パタヘネChapter3 part2
Chpter3--命令:マシンの言葉
ハードウェアの設計に関する四つの基本原則
- 単純性は規則性につながる。
- 小さければ小さいほど高速になる。
- 優れた設計には適度な妥協が必要である。
- 一般的な場合を高速化せよ。
3.4 コンピューター内での命令の表現 p.105
- 数の表現
命令はフィールドと呼ばれる区切られた部分に分けられる。
- 命令を数値で表現したものを機械語(machine language)と呼び、
- それらの命令を連ねたものをマシン・コード(machine code)と呼ぶ。
- 命令を表記するこのような枠組みを命令形式(instruction format)と呼ぶ。
単純性は規則性につながるという設計原則にのっとり、MIPSの命令はすべて長さが32ビットになっている。
各フィールドには以下のようになっている。
op | rs | rt | rd | shamt | funct |
6bit | 5bit | 5bit | 5bit | 5bit | 6bit |
- op
- 命令の基本操作。従来から命令操作コード(opcode オペコード)と呼ばれている。
- rs
- 第1のソース・オペランドのレジスタ。
- rt
- 第2のソース・オペランドのレジスタ。
- rd
- デスティネーション・オペランドのレジスタ。つまり結果を収める先。
- shamt
- シフト量。
- funct
- 機能。命令操作フィールドのバリエーションを表す。機能コード(functional code)と呼ばれることがある。
しかし、ここで上に記したフィールドよりも長いフィールドを必要とする命令があると、問題が発生する。
ロード命令などでは5ビットのフィールドでは小さ過ぎて役に立たない。
相反する要求
- すべての命令長を同じにしたい
- 命令形式を1つにしたい
これらは両立しない。
そこでハードウェア設計に関する3番目の原則
- 優れた設計には適度な妥協が必要である。
MIPSの設計者が選択した妥協案
すべての命令長を同じに保つこと。ロード命令を以下のようにする。
op | rs | rt | adress |
6bit | 5bit | 5bit | 16bit |
複数の命令形式を許すとハードウェアが複雑になる。しかし、命令形式にある程度の類似性を持たせれば、複雑性を抑えることが出来る。
今日のコンピューターは2つの基本原理に基づいて設計されている。
- 命令は数値として表現される。
- プログラムをメモリ中に格納して、数値と同様に読み書きすることが出来る。
この根本原理からプログラム内蔵(stored-program)方式の概念が生まれた。
メモリ中に種々の要素が格納される。具体的には
など。