KITE マイクロプロセッサの 16 ビット ALU


このALUの設計ページには、ALUを設計するために必 要最小限のことしか記述されていません。ALUを完成させるためには予め自分 で良く考え回路を設計した後、回路入力を行うようにしてください。
ALUを設計するために、まず設計する ALU の仕様を明確にする必要があります。 KITEマイクロプロセッサのALUは、KITEの命令およびアドレス計算等に使用す るため、以下に挙げる演算機能を備えておく必要があります。

算術系命令
演算種類 動作 備考
加算(ADD) 被演算数 + 演算数 算術的な加算を行います。またインデクスアドレッシングにおけるアドレス計算の際にも使用されます。
デクリメント(DEC) 被演算数 − 1 デクリメント命令や、スタックポインタ変更に使用します。
インクリメント(INC) 被演算数 + 1 インクリメント命令や、スタックポインタ変更に使用します。
減算(SUB) 被演算数 − 演算数 算術的な減算を行います

論理系命令
演算種類 動作 備考
論理和(OR) 被演算数 or 演算数 論理な和(or)を取ります。
排他的論理和(XOR) 被演算数 xor 演算数 排他的な論理和(xor)を取ります。
論理積(AND) 被演算数 and 演算数 論理な積(and)を取ります。
論理否定(NOT) not 被演算数 1の補数を取ります。

シフト系命令
演算種類 動作 備考
算術右シフト(ASR) 被演算数/2 算術的な1ビットの右シフトをします。意味的には2で割ったことになります。
算術左シフト(ASL) 被演算数×2 算術的な1ビットの左シフトをします。意味的には2をかけたことになります。
論理右シフト(LSR) (被演算数/2)&0x7fff 算術的な1ビットの右シフトをします。
論理左シフト(LSL) 被演算数×2 論理的な1ビットの左シフトをします。結果は算術左シフトと同じ結果に なりますが、フラグの変化が算術左シフトとは異なります。
右回転(ROR) 被演算数の1ビット右回転  
左回転(ROL) 被演算数の1ビット左回転  
バイトスワップ(SWP) 上位バイトと下位バイトの交換 バイト単位の操作を行えるよう設けられた命令です。

特別な演算機能
演算種類 動作 備考
パス(PASS) 被演算数 演算的には意味がありません。しかし、3バス構成のプロセッサでは、レ ジスタ間データ転送命令において使用されます。1バス構成のプロセッサでは 必要ない機能です。

ALUを設計する際には、3つのグループ(パス機能除く)に分けると設計がし易く なります。


この Web の内容は以下のようになっています。

では、 演算器の構成例 についてみていきます。


| Back | CAD Home |

Our mail address is kite@arch.cs.kumamoto-u.ac.jp .
Last modified on