i960

386以降の時代になってパーソナルコンピュータ的なものに32 bit CPUが大量に使われるようになってきても、数だけならそれをはるかに凌駕する市場があります。ま、組み込み用のプロセッサなんですけどね。で、その組み込み分野でも高度な応用にはやはり32 bit CPUを使いたい場合もあると。そのためにIntel社が開発したのがi960アーキテクチャのプロセッサです。i960シリーズは1985年にP7というコードネームの原形プロセッサが開発され、それを若干修正したi960MCが最初のプロセッサになります。386などとは異なり、RISC系のアーキテクチャになっています。その後、プロセッサコアは共通のまま、浮動小数点演算ユニット(FPU)やメモリ管理ユニット(MMU)の省略や周辺機能の違いなどにより、多数のプロセッサファミリが形成されます。

80960CA
あ、大きい。168ピンPGAパッケージです。i960アーキテクチャの個別のプロセッサには80960XXという型番が付けられていて、XXの部分で実装されている機能の違いを表します。

写真のものは80960CAで、i960シリーズでは初めてスーパースケーラ実行メカニズムを組み込んだプロセッサです。1989年9月に発表され、14.9 mm×9.9 mm角のシリコン上に1.0 umルールのCMOSプロセスで543000個のトランジスタを集積しています。MMUやFPUは内蔵していませんが、1 KByteの命令キャッシュや1 KByte分のデータメモリ、DMAコントローラなどを内蔵しています。アドレス空間4 GByteで32 bit分のアドレス信号と同じく32 bitのデータ信号がマルチプレクスされずに別々に端子に割り当てられています。ただし、ある種のダイナミックバスサイジングの能力があり、データが8 bit幅や16 bit幅のデバイスやメモリを使用することも可能です。具体的には4 GByteのアドレス空間を16個の256 MByte空間に分割し、それぞれの256 MByte空間単位にバス幅を設定したりバーストサイクルの許可やウエイトサイクル数などのアクセスタイミング制御や、バイト格納順序などをプログラム可能になっています。
グローバルレジスタ16本とローカルレジスタ16本を持ち、一般の演算命令は3アドレス命令となっています。つまり、C <- A + Bというような加算命令の場合、A, B, Cに別々のレジスタを指定することができます。ローカルレジスタは複数の組を備えていて、簡単に別のレジスタセットに切り替えることができます。分岐などのCTRL命令とメモリ参照系のMEM命令とレジスタ間演算のREG命令は同時に実行することができ、最高で1クロックで3命令を同時実行可能です。実際はREG命令が続いたりMEM命令が続いたりすることも多く、そこまで同時実行できませんけれど。コンパイラの能力が高ければ、それなりの効率で多重命令発行を行えます。命令は基本的に32 bit固定長ですが、一部メモリアクセスを扱う命令で64 bit命令も存在します。アドレッシングモードは9種類あり、RISC的なプロセッサとしては豊富なほうです。命令長やレジスタセットや実行制御などはRISCの流れを汲んでいますが、内部にはマイクロコード用のROMもあり、CISC的な複雑な命令も備えていて、プログラムの命令数ないしコードサイズが小さくなるようにも配慮してあります。整数実行ユニットで実行される通常の加減算や論理演算などは1クロックで実行されますが、32 bitないし64 bitの乗算には4クロック、同じく32 bitないし64 bitの除算には34クロックを必要とします。こういう点がRISCっぽくないところですね。

Return to IC Collection.