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

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

日々

link permalink

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]
link 編集する

コメント一覧

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



link permalink

強いオセロ

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

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

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

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


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

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

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

コメント一覧

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



link permalink

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]
link 編集する

コメント一覧

  • コメントはありません。
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 コード

最終更新: 9/20 00:01

カレンダー

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

最近のコメント 5件

  • link 19年09月01日
    すずき 「私も正直びっくりです。間違って違う製品を...」
    (更新:09/04 23:39)
  • link 19年09月01日
    hdk 「車向けの製品の中でも、車載コンピューター...」
    (更新:09/02 23:20)
  • link 19年07月18日
    hdk 「あっ、AAMはマニュアルのオペレーション...」
    (更新:07/25 00:02)
  • link 19年07月18日
    すずき 「AAM(ASCII Adjust AX ...」
    (更新:07/24 22:22)
  • link 19年07月18日
    hdk 「加算減算は符号のありなしどちらも命令が同...」
    (更新:07/24 07:25)

最近の記事 3件

link もっとみる
  • link 19年09月18日
    すずき 「[linux-next が久しぶりに更新された] ここしばらく更新...」
    (更新:09/20 00:01)
  • link 19年09月17日
    すずき 「[今まで知らなかった make の挙動] シェルから make に...」
    (更新:09/19 02:27)
  • link 19年09月07日
    すずき 「[Sin 波の美しさ勝負] 最近 linux-next で Roc...」
    (更新:09/08 13:17)

こんてんつ

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 過去日記について

その他の情報

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