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

アクセスカウンタ

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

<<   作成日時 : 2012/02/25 03:46   >>

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

SIMD命令は色々あるがMIMD命令ですよ。演算限定ですが。

前回検討した論理演算命令の強化。
ぼくのかんがえたさいきょうCPU 強化論理演算命令

が、もっと考えてみるとコレワという思いつきがあった。ボツ案の中に論理演算の種類を汎用レジスタで指定するというのがあったが、3ソース+1ディスティネーションの4オペランド命令だったら可能だ。

・GRs1とGRs2をGRoで指定した演算を行いGrdに格納する。
LOGIC GRa,GRb,GRo,GRd

さらにSIMD命令の様に8bitごとに区切り、それぞれに対して別々の演算を行うことが出来る。

・GRs1とGRs2をGRoで指定した演算を行いGrdに格納する(SIMD)。
LOGICB GRa,GRb,GRo,GRd

GRa/GRb/GRdについて、8bitごとにフィールドを分けた場合:

a0=GRa[7:0]
a1=GRa[15:8]
a2=GRa[23:16]
a3=GRa[31:24]

b0=GRb[7:0]
b1=GRb[15:8]
b2=GRb[23:16]
b3=GRb[31:24]

d0=GRd[7:0]
d1=GRd[15:8]
d2=GRd[23:16]
d3=GRd[31:24]

演算の指示はGRoの8bitごと区切ったフィールドで指定:

o0=GRo[7:0]
o1=GRo[15:8]
o2=GRo[23:16]
o3=GRo[31:24]

演算の種類は次の様に指定:(詳細は今後。とりあえずのパターン)

0x0000_0000 AND
0x0000_0001 OR
0x0000_0010 NOR
0x0000_0011 XOR
0x0000_0100 ANDN
0x0000_0101 ORN
0x0000_0110 NORN
0x0000_0111 XORN
0x0000_1000 ADD
0x0000_1001 SUB
0x0000_1010 ADDS 飽和加算
0x0000_1011 SUBS 飽和減算
0x0000_1100 SLL
0x0000_1101 SRL
0x0000_1110 SRA
0x0000_1111 ROL ローテート
...
その他比較命令など

※演算命令は8bit分=256種類まで定義可能
※bit7=リザーブ、bit6=GRa側反転、bit5=GRb側反転、bit4=演算結果反転、を入れてもいい

この命令を実行すると:

d0 = a0 (o0で指定した演算) b0
d1 = a1 (o1で指定した演算) b1
d2 = a2 (o2で指定した演算) b2
d3 = a3 (o3で指定した演算) b3

以上は32bitレジスタ長で考えたが、256bit長だと32個の個別の演算が同時にできる。(もうちょっとうまい表現方法募集中)


指定できる演算命令には以下の制限がある。
(1)組み合わせ回路のみで実現できる
(2)1cycleで完了する
(3)演算で例外を発生しない

 除算のような途中結果を保持しながら計算する演算器や、乗算のように組み合わせ回路でも1cycle内に収まりそうにない演算器を入れることはできない。入れるとするならすべてが完了するまで待ち合わせる制御が必要となり複雑になる。ただし乗算器でも8bit×8bitで1cycleで収まりそうなら入れることができる。
また、例外が発生すると、どのフィールドの演算で例外となったか検出する必要があり保存する場所などが必要になる。これも制御を複雑にする。
なお、演算命令種別の定義のビットパターンはALU命令フォーマットでの定義に合わせておくと実装がより楽になる。
ペナルティとして4オペランドを必要とするのでプリフィックスの指定が必須。

 この程度ならALUの実装も簡単で、ソフトウェア側からも分かりやすいのではないだろうか。

□演算命令の整理
・直接演算
ALU命令フォーマット内で指定、3オペランド → 通常の演算、SIMD演算
・間接演算
プレフィックス命令でのレジスタ指定、4オペランド → 通常の演算、SIMD演算、MIMD演算

 これ読んでて思いついた。SIMD/MIMDの説明もあるよ。
コンピュータの構成と設計 第3版 「別冊」歴史展望コンピュータの構成と設計 第3版 「別冊」歴史展望
David A. Patterson/John L. Hennessy 成田 光彰

日経BP社 2007-05-24
売り上げランキング : 307512

Amazonで詳しく見る
by G-Tools

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




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