link もっと前
   2019年 7月 29日 -
      2019年 7月 20日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

link 編集する

RISC-V 原典

RISC-V 原典という本も買って読んでいます。どちらかというと頭から読む本ではなく、辞書的な本です。命令一覧の章はとても便利ですね。

RISC-V 原典では「過去のアーキテクチャが患ったインクリメンタリズム」と他のアーキテクチャの複雑さを評していましたが、RISC-V は出来たばかりなので「今」シンプルなのは当然だよね……などと思ったりしました。

RISC-V と昔の ARM

RISC-V は命令セットの独自拡張を許しているため、同じ RISC-V CPU を名乗っていても「A社 CPU と B社 CPU では、同じバイナリが実行できない」ことがありえます。

ARM や x86 も互換性のない CPU は存在しますが、共通の命令セットが大きいためあまり問題にはなりません。一方 RISC-V は共通命令セットが小さい(RV32I、MMU なしのマイコンレベル)ので、非互換性で問題が起きそうですね。ARM でいうと Cortex-A 系と Cortex-M 系を混ぜて売るようなもので、混乱を招きそうです……。

このタイプの命令拡張方式で私が思い出したのは ARM です。ARM も昔は ARMv5TEJ のように、対応する拡張命令をアルファベットで追記する、似たような方式を採用していましたが、ARMv6 で拡張命令に全て対応したため、拡張命令方式は消滅しました。

未来予想

私の予想としては、スマートフォン、デジタル家電、PC のような、比較的高性能な分野には RV64GC(G = IMAFD、multiple, atomic, float, double)が共通命令セットになり、マイコン系には RV32I か IM くらいが共通命令セットになる、辺りが落としどころかなと思います。

RISC-V も「インクリメンタリズム」に陥る未来は避けられず、拡張に次ぐ拡張でゴチャゴチャになる未来を迎えると思いますが、20年後、

  • RISC-V がそもそも使われているか
  • RISC-V は今と同じことを言えるくらいシンプルを維持できるか
  • RISC-V が別のアーキから同じ欠点を指摘されていないか(歴史は繰り返す…)

期待が大きいだけに、将来的にどうなるか、楽しみです。

[編集者: すずき]
[更新: 2019年 8月 11日 17:20]

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

link 編集する

強いオセロ

どうやっても圧勝してしまう「最弱オセロ」(リンク)が話題ですが、実はその横に「強いオセロ」リンク)もあります。URL から推測するにこちらの方が先に作られたように見えます。

名前に偽りはなく、ものすごく強いです。私のような素人の実力ですと 50石(ほぼ真っ白)〜64石(全て白)で完敗します。終盤に一気にひっくり返され、全く勝てません。

まともにやっても全く勝てなかったので、どんな手でも良いから、1度でも勝てないだろうか?と試行錯誤するうちに、ちょっとしたクセが見えてきました。この AI は「終盤の大逆転」を重視していて、序盤〜中盤は石数が不利でも無視する傾向があります。

このクセを逆手に取り、中盤戦でとにかくゴリ押しして、白を全滅させる作戦を取ると、ごくたまに勝てることがあります。下記はその例です。


中盤でゴリ押しして勝てたケース

中盤で押し切れなければ負けです。20〜30局やりましたが、これ以外の勝ち方はできませんでした……。

[編集者: すずき]
[更新: 2019年 8月 25日 21:59]

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

link 編集する

RISC-V の命令

最近、何かと関わっている RISC-V の理解のため、エミュレータを書いてみています。先日購入した HiFive Unleashed(2019年 5月 26日の日記参照)の 1st ROM と 2nd ROM を拝借して、Linux がブートする辺りまで作るのが当面の目標です。

スクラッチから作ると辛いので、ARMv5 のエミュレータ ememu(GitHub へのリンク)をベースにして改造して作っています。まがりなりにも ARMv5 が動いているんだから、RISC-V も楽勝だろうと思いきや、世の中そんなに甘くありませんでした。

最初にコケたのは Unaligned な命令ロードです。RISC-V の C 拡張をサポートする場合 32bit 境界ではないアドレスから、32bit 命令をロードする場合があります。ARMv5 では Unaligned アクセス例外が発生します。

RISC-V の命令エンコード

まだ完成していないので、現時点での感想ですが、RISC-V の命令エンコードは比較的わかりやすい気がします。ただ、ブランチ命令のオフセットは、下記のような並びになっていて、不思議な配置です。


RISC-V のブランチ命令

今まで見た中で一番見づらいものは、C 拡張命令のバイナリです、これは異様に見づらいです。しかし C 拡張の目的(命令長を削るため 16bit 長に無理して詰めている)からすると、仕方ないでしょうね。

[編集者: すずき]
[更新: 2019年 7月 24日 03:17]

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2019年 7月 29日 -
      2019年 7月 20日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 6/4 12:18

カレンダー

<2019>
<<<07>>>
-123456
78910111213
14151617181920
21222324252627
28293031---

最近のコメント 5件

  • link 20年05月02日
    すずき 「ちょっと調べたところ、コアが焼けると騒ぎ...」
    (更新:05/08 15:43)
  • link 20年05月02日
    すずき 「結構、怖い制御に見えますね&hellip...」
    (更新:05/08 15:23)
  • link 20年05月02日
    hdk 「デスクトップ用のNVIDIA Quadr...」
    (更新:05/07 20:30)
  • link 20年01月27日
    すずき 「詳細は調べていないので、コード中のコメン...」
    (更新:04/18 23:05)
  • link 20年01月27日
    superzeros 「少し気になったのでglibcの履歴を調べ...」
    (更新:04/16 21:07)

最近の記事 3件

link もっとみる
  • link 20年06月04日
    すずき 「[GCC を調べる - その 14-2 - genopinit] ...」
    (更新:06/04 12:18)
  • link 20年06月03日
    すずき 「[GCC を調べる - その 14-1 - genopinit] ...」
    (更新:06/03 23:12)
  • link 20年06月02日
    すずき 「[GCC を調べる - まとめリンク] 日記が増えすぎて、一覧が欲...」
    (更新:06/03 23:11)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報