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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU ポストフィックス命令

<<   作成日時 : 2012/08/22 01:05   >>

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

 既存の命令を拡張するのにプリフィックス命令を考えたが、後ろにくっつけるポストフィックス命令を検討してみた。

関連項目:
ぼくのかんがえたさいきょうCPU 分岐エントリポイントの指定
ぼくのかんがえたさいきょうCPU なぜポストフィックスではなくプレフィックス命令か
ぼくのかんがえたさいきょうCPU プリフィックス命令を考える

 まず、演算命令でトラップを発生させたくないのだが、どうしても必要なものがある。特定のビット幅の範囲で二の補数による加減算で発生するオーバーフローだ。オーバーフローは加減算の結果と同時にわかる。
整数演算のオーバーフロー

 で、オーバーフローの結果を保存したいのだが、ステータスレジスタを持たない実装では汎用レジスタに保管しなければならない。しかしそのままではディスティネーションレジスタが演算結果とステータス用に2つ必要となる。基本的なパイプラインではA+B=Cを実行するのに2R1W(同一サイクルに2つの読み出しと1つの書き込み)のレジスタファイルを使うが、これが2R2Wとなってしまう。

 ということで直前の演算結果の状態が必要な時は後続のポストフィックス命令で保存する。こうすることにより最小限の実装では2R1Wのレジスタファイルのままでよい。

ADD A,B,C # A+B→C
OVF A,B,D # Dにオーバーフローかどうかの結果が入る

これは1つのニーモニックにまとめることができる。例えば:

ADDV A,B,C,D

 ここにはオーバーフロー以外にもキャリー/ボロー、コンペア結果を入れることができるだろう。この内容についてはもうちょっと考えてみる。


 ポストフィックス命令は直前の命令のみ有効、ソースレジスタは直前の命令と同じ組み合わせ。それ以外は結果が保証されない。

ポストフィックス命令の条件:
・直前の命令の演算結果を利用する
・直前の演算命令を修飾する(単独では意味がない)
・ポストフィックス命令には分岐できない


※整数演算トラップのメモ:
除算命令では0除算と符号付き除算での負の最大値での除算はトラップの対象となりえるが、これは事前に確認できる。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




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