MCP-1600は、1975年にウエスタンデジタルによって発売された複数チップ構成の16ビットマイクロプロセッサである。1980年代初頭まで製造された 。 Pascal MicroEngine、Alpha MicrosystemsAM-100のWD16プロセッサ、そしてDEC LSI-11マイクロコンピューターで使用された。 DEC PDP-11のコストを削減し、小型化した実装である。
解説
チップセットに3種類のチップが存在する。
- CP1611 RALU - レジスタ・ALUチップ
- CP1621 CON - 制御チップ
- CP1631 MICROM - プログラムされたマイクロコードが入ったマスクROMチップ(512ワード。1ワードは22ビット)
これらのチップは、3.3 MHzの4相クロックと3つの電源電圧 ( 5V, 12V, -5V) を使用した。 当時、ウエスタンデジタルで利用可能だったNチャネルシリコンゲートプロセスによって製造された。 内部的にMCP-1600は、(比較的高速な)8ビットプロセッサである。その8ビットプロセッサは、16ビットCPUをエミュレートするためにマイクロコードでプログラムすることができた。 全てのバイト長命令は、1クロックで実行できる。ワード長命令と分岐命令は、2クロック必要だった。 4個までのMICROMがサポートされたが、1つのプロセッサに必要とされるのは、通常2個あるいは3個であった。
レジスタファイルは、26個の8ビットレジスタで構成されている。 10個のレジスタ(RX)は、マイクロ命令によって直接アドレスされる。 4個のレジスタ(Rx/Gx)は、直接あるいは間接のどちらでもアドレスされる。 そして、残りの12個のレジスタ(Gx)は、間接的にしかアドレスされない。 間接アドレッシングは、3ビットのGレジスタを使って行われた。Gレジスタは、PDP-11命令のレジスタフィールドの値が常にロードされている。
MCP-1600の最も重要な機能は、プログラマブル・トランスレーション・アレイ(PTA)である。 PTAは、数個のパラメーターを持つ機能に対応するマイクロ命令の読み出しアドレスを新しく生成するための機能である。 これらのパラメーターは、マクロ命令(エミュレートされるCPUの命令)のデコード時に通常考慮されるものである。 PTAは、マクロ命令の翻訳のオーバーヘッドのほとんどを削減するために特別に設計されたものであった。
本質的にマクロ命令のオペコードは、一つのアドレスに素早く翻訳される。そのアドレスは、Location Counter へロードされ、マクロ命令を処理するための適切なマイクロ命令への分岐アドレスを作る。
ジョン・ウォレス(John Wallace)は、プロジェクトマネージャーであり、CP1621を設計した。 マイク・ブリナー(Mike Briner)は、CP1611を設計し、後にSilicon Storage Technologyでシニア・バイスプレジデントになった。 ビル・ポールマン(Bill Pohlman)は、設計エンジニアリングマネージャーであり、後にIntel 8086プロセッサのプロジェクトマネージャーになった。
1976年にナショナル セミコンダクターがMCP-1600のセカンドソース品を製造・販売するだろうという発表がされた。 実際にナショナルセミコンダクターが製造したものが存在するのかどうかは不明である。
CP1611とCP1621のクローンが、KR581IK1とKR581IK2(ロシア語: КР581ИК1とКР581ИК2)という名称でソビエト連邦で製造されていた ソビエトの581シリーズは、MCP-1600ファミリーの他のチップも含んでいた。
シミュレーター
cp16simは、オープンソースのMCP-1600のシミュレーターである。 C言語で書かれており、MCP-1600プロセッサをエミュレートする。そのPLAは、WD900 Pascal Microengine プロセッサのマイクロ命令を実行する。 2016年現在、未完成である。 「雑草に入る(苦境に陥る)前に ACD PDQ-3 boot ROM の最初の数ダースのPコード命令を実行する程度には動作する。」という評判である。 GNU General Public Licenseバージョン3の下でリリースされている。
ギャラリー
- LSI-11チップセットのダイの写真
出典



