竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU このCPUは何をターゲットとするのか?/ステータスレジスタの操作

<<   作成日時 : 2009/09/17 21:18   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

 特徴としては、RISCベースのレジスタ幅のスケーラビリティ(32〜256ビット)、レジスタ数(64〜512本)だが、これらをどう生かすか。
高級言語とのセマンティックギャップをどのように埋めるかによって方向性が違ってくる。

・RISCのインプリでC言語マシン→ 最小限の構成、浮動小数点なし、MMU等なしで組み込み系32ビットマシン
・浮動小数点SIMD強化→ FORTRANマシン(スパコン方面)
・10進命令追加→ COBOLマシン 通常用途では数値の変数を1レジスタで表現可能(ビット長が長いため)
・整数SIMD強化→ これはマルチメディア命令の歴史を調べて取捨選択しなければならない。グラフィックス用ライブラリ?
 →昔VISのキャンペーンでネットワークやRAIDに使いましょうというのがあった 何をしたいのかを確認する必要あり。
・有り余る汎用レジスタをどう活用するか。なんらかのグルーピングが必要?→SPARC,IA-64はレジスタウィンドウを持ち、大量のレジスタを効率良く扱う。

実現の可能性があれば順次検討していく。
ー ー ー ー ー ー ー ー ー ー
 ステータスレジスタの操作
・ステータスレジスタ操作命令 2オペランド版と3オペランド版
(1)RDSR SRs,GRd ステータスレジスタの値を汎用レジスタにセット
(2)WRSR GRs,SRd 汎用レジスタの値をステータスレジスタにセット

以下の命令があれば、ステータスレジスタの変更は2命令で済む。
(3)ORSR GRs1,GRs2,SRd GRs1の値について、GRs2でフラグを立てて、SRdにセット
(4)ANDNSR GRs1,GRs2,SRd GRs1の値について、GRs2でフラグを落とし、SRdにセット

または、ステータスレジスタ書き込み時にマスクをかける。xorで演算するのはSPARCのwrasr命令をまねた。
(5)WRSR GRs1,GRs2,SRd 汎用レジスタの値をステータスレジスタにセット,SRd=GRs1 xor GRs2 反転したいビットをGRs2で指定

(1)は必須、(2)は(5)で代替できる。(3),(4)の操作は(5)でまとめることができるので、結局は(1),(5)でいい。
しかし3オペランド命令の空き領域が不足した時は(1),(2)にしてビット操作は普通の論理演算で行う。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文




ぼくのかんがえたさいきょうCPU このCPUは何をターゲットとするのか?/ステータスレジスタの操作 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる