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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU

<<   作成日時 : 2009/07/07 12:17   >>

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

 小さい頃、スイッチやつまみのいっぱいついたラジカセやオーディオの絵を落書きしたことはないだろうか。自分好みの機能を追加したオーディオ装置を空想したことはないだろうか。
そんな感じでこれまでの各種プロセッサのいいとこどりをして、現在私が考えうる命令セットアーキテクチャを検討してみた。検討することにより各種プロセッサの特徴も理解できるという目的もある。

前提条件:
・チップの面積、リソースはとりあえず無視する。
・実装に依存した動作が命令セットに現れるものは採用しない。例えば遅延分岐やレジスタウィンドウ。MIPSアーキ並の簡素さを目標とする。
・命令セットはグループ分けし、実装するかどうかは選択できるものとする。これにより組み込み系からハイエンドまでのサポートを可能にする。
さらに細かく:
・3オペランドのレジスタマシンとする。つまり、通常のRISC。
・パイプライン実行。
・ゼロレジスタを持つ。
・128bit幅の整数レジスタ64本、浮動小数点レジスタ64本を持つ。これはSIMD命令と四倍精度浮動小数点を扱うため。従来のプロセッサが別レジスタで持っていたSIMD機能は整数系と浮動小数点系に分けて通常のレジスタに吸収する。
・レジスタ数が多いのはレジスタリネーミングをコンパイラにやらせたいため。しかしOOO実行にするとレジスタリネーミングのハードは必要になるかも。
・レジスタのビットはMSB 127 - LSB 0
・ビッグエンディアン。データ系はリトルエンディアンもサポートする。
・命令フォーマットは32ビットを基本とし、プレフィックスに16ビットを追加した可変長とする。これは64ビットや128ビットでは大きすぎて命令キャッシュがもったいないから。
・命令フォーマット検討時に命令を取捨選択し、必要なものだけ採り入れる。

では、簡単なところから。

□ALU命令(1サイクル整数系命令)

Rs1,Rs2は入力、Rdは結果を格納するレジスタ。
Rs2は即値(imm)も使用できる。ビット幅未定。

算術演算命令
ADD Rs1,Rs2,Rd (Rd = Rs1+Rs2)
SUB Rs1,Rs2,Rd (Rd = Rs1-Rs2)
演算はすべて符号付き。

符号拡張命令
SEX Rs1,pos,Rd (Rs1[pos]の値を[pos+1]からRs1[127]までにセットし、Rdに代入。符号拡張)
ZEX Rs1,pos,Rd (Rs1[pos+1]からRs1[127]までを0にセットし、Rdに代入。Unsigned化)

シフト命令
SLL Rs1,Rs2,Rd (Rd = Rs1<<Rs2 , Unsigned)
SRL Rs1,Rs2,Rd (Rd = Rs1>>Rs2 , Unsigned)
SRA Rs1,Rs2,Rd (Rd = Rs1>>Rs2 , Signed)

論理演算命令
AND Rs1,Rs2,Rd
OR Rs1,Rs2,Rd
XOR Rs1,Rs2,Rd
XNOR Rs1,Rs2,Rd
ANDN Rs1,Rs2,Rd
ORN Rs1,Rs2,Rd
NAND Rs1,Rs2,Rd
NOR Rs1,Rs2,Rd
NANDN Rs1,Rs2,Rd
NORN Rs1,Rs2,Rd
これらは見ての通り。ANDN,ORNと末尾にNがあるものはRs2を反転したものを入力する。

NEG Rs1,Rd 2の補数
NOT Rs1,Rd 1の補数
これらはSUB命令や論理演算命令で代用できる。疑似命令として残すか?

転送命令
MOV Rs1,Rd
これも代用できる。

即値の設定
命令フォーマットが決まるまで保留。

レジスタが128bitもあるからビットフィールド命令は欲しいところだ。
また、実行に多サイクルを要する乗除算はここからは外した。なんか、IA-64やPOWER6でもなかったり浮動小数点側で処理されたりといい扱いをされてない。

こんな感じで検討していきます。

参考資料:
The Alpha Archtecture Handbook
http://www.alphalinux.org/docs/alphaahb.html

Alpha 21264Aのマニュアルは以下から入手した。(要登録)
http://www.euromanual.eu/

その他現行のアーキテクチャ
Ando's Processor Information Pageより
命令セットアーキテクチャドキュメント

書籍:
MC68030ユーザーズマニュアル
PowerPC Programming for Intel Programmers
マイクロプロセッサ・アーキテクチャ入門
ヘネシー&パターソン コンピュータアーキテクチャ定量的アプローチ第4版
ヘネシー&パターソン コンピュータアーキテクチャ 第1版(DLX命令を見るため)

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

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




ぼくのかんがえたさいきょうCPU 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる