アカウント名:
パスワード:
RISC-Vって、80年代RISCのうち、結果的に失敗だった特徴を抜いて、CISCからよいところを取り入れた感じかな。
■80年代の結果的失敗MIPSの遅延スロットRISC-Iのレジスタウインドウ
■CISCから取り入れたもの可変長命令
遅延スロットは実装を直接ISAに反映させた糞というのが現代のコンセンサス
レジスタウィンドウは誤解が多いこれはVAXなど既存のISAの狭いレジスタ空間をそのままに大容量レジスタファイルの恩恵をもたらす互換性第一のアイデアなのだ事実VAXや68000へレジスタウィンドウを追加すると1割から2割の性能向上が得られる(坂村健氏の単行本に引用されている)
インテルのi960はレジスタウィドウマシンと紹介されることが多いが、これも違うi960のレジスタファイルは32本しかなく、プロシージャコール時に4ワード/サイクルの超高速DMAが専用のスタックキャッシュとやりとりするレジスタファイルはマルチポートだがスタックキャッシュはシングルポートで安くつくから、合理的なアイデアといえる
高くつくのか安くあがるのかはっきりしてください(挨拶
レジスタウィンドウ使ってると特に当てはまると思うが、やたらとレジスタ数が多いアーキテクチャでは、コンテキストスイッチのコストが馬鹿みたいに増えてしまうので、後年「失敗」とされたのはそこだという印象。
1つのジョブを黙々やるなら良いと思うんだけどね。しかし現代的な実運用だとマルチプロセス・スレッドはあたりまえだと思うので。
i960のレジスタファイルは32本しかなく、プロシージャコール時に4ワード/サイクルの超高速DMAが専用のスタックキャッシュとやりとりするレジスタファイルはマルチポートだがスタックキャッシュはシングルポートで安くつくから、合理的なアイデアといえる
むしろそういう、レジスタを「スタックの一部をキャッシュしたもの」として使う方法なら、キャッシュの持ち方次第では、コンテキストスイッチのコストを抑えつつレジスタウィンドウの恩恵に与れるので、今でも十分有意義な気がする。
# しかし後続で似たような機構を見かけないのはなぜなんだろう…。
IA-64はレジスタスタックですねもっともウィンドウではなくすべてのレジスタをアドレスできますがレジスタ-メモリ間の転送はDMAで行えますSPARCはレジスタウィンドウのオーバーフロー・アンダーフロー時には割り込みがかかり速度低下の一因になっていました
命令セットの設計がすっかりコンサバになってしまったのは、IA-64のせいかも
ちゃんと継承されていたんですね。
コンテキストスイッチだけ考えるなら、レジスタ退避・復元のスループットさえ出れば目的は果たせますのでおいしいところだけ残したような感じでしょうか。
確かに、あれだけ挑戦的なアーキテクチャに大ゴケされると後続には響くと思います…。
# ARMもv8でフツーになってしまいましたし…。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
RISCの決定版 (スコア:3, 興味深い)
RISC-Vって、80年代RISCのうち、結果的に失敗だった特徴を抜いて、CISCからよいところを取り入れた感じかな。
■80年代の結果的失敗
MIPSの遅延スロット
RISC-Iのレジスタウインドウ
■CISCから取り入れたもの
可変長命令
Re:RISCの決定版 (スコア:3, 参考になる)
遅延スロットは実装を直接ISAに反映させた糞というのが現代のコンセンサス
レジスタウィンドウは誤解が多い
これはVAXなど既存のISAの狭いレジスタ空間をそのままに大容量レジスタファイルの恩恵をもたらす互換性第一のアイデアなのだ
事実VAXや68000へレジスタウィンドウを追加すると1割から2割の性能向上が得られる(坂村健氏の単行本に引用されている)
インテルのi960はレジスタウィドウマシンと紹介されることが多いが、これも違う
i960のレジスタファイルは32本しかなく、プロシージャコール時に4ワード/サイクルの超高速DMAが専用のスタックキャッシュとやりとりする
レジスタファイルはマルチポートだがスタックキャッシュはシングルポートで安くつくから、合理的なアイデアといえる
Re: (スコア:0)
高くつくのか安くあがるのかはっきりしてください(挨拶
Re: (スコア:0)
レジスタウィンドウ使ってると特に当てはまると思うが、
やたらとレジスタ数が多いアーキテクチャでは、コンテキストスイッチのコストが馬鹿みたいに増えてしまうので、
後年「失敗」とされたのはそこだという印象。
1つのジョブを黙々やるなら良いと思うんだけどね。
しかし現代的な実運用だとマルチプロセス・スレッドはあたりまえだと思うので。
i960のレジスタファイルは32本しかなく、プロシージャコール時に4ワード/サイクルの超高速DMAが専用のスタックキャッシュとやりとりする
レジスタファイルはマルチポートだがスタックキャッシュはシングルポートで安くつくから、合理的なアイデアといえる
むしろそういう、レジスタを「スタックの一部をキャッシュしたもの」として使う方法なら、キャッシュの持ち方次第では、
コンテキストスイッチのコストを抑えつつレジスタウィンドウの恩恵に与れるので、今でも十分有意義な気がする。
# しかし後続で似たような機構を見かけないのはなぜなんだろう…。
Re: (スコア:0)
IA-64はレジスタスタックですね
もっともウィンドウではなくすべてのレジスタをアドレスできますが
レジスタ-メモリ間の転送はDMAで行えます
SPARCはレジスタウィンドウのオーバーフロー・アンダーフロー時には割り込みがかかり速度低下の一因になっていました
命令セットの設計がすっかりコンサバになってしまったのは、IA-64のせいかも
Re: (スコア:0)
ちゃんと継承されていたんですね。
コンテキストスイッチだけ考えるなら、レジスタ退避・復元のスループットさえ出れば目的は果たせますので
おいしいところだけ残したような感じでしょうか。
命令セットの設計がすっかりコンサバになってしまったのは、IA-64のせいかも
確かに、あれだけ挑戦的なアーキテクチャに大ゴケされると後続には響くと思います…。
# ARMもv8でフツーになってしまいましたし…。