Am2901 Bit Slice Microprocessor

AMD社のAm2901ファミリは、コンピュータや専用制御回路を作成するためのLSI群です。1個ないし数個で特定のアーキテクチャを持つコンピュータの主要部ができあがる一般のマイクロプロセッサと異なり、Am2901ファミリはCPUを作成するためのLSIであり、命令体系は設計によって変わってきます。
実は、マイクロプログラムを実行するためのLSIセットがAm2901ファミリなのです。マイクロプログラムや付加回路によって、Am2901シリーズを用いたCPUの命令体系などアーキテクチャが自在に変化します。
Am2901はマイクロプログラムに従って演算を行うためのALU(算術論理演算ユニット)やシフト回路やレジスタなどがセットになったLSIで、1個で4 bit分の演算を行います。8 bitプロセッサを作りたければ2個組み合わせて使い、16 bitのプロセッサなら4個組み合わせます。多ビットのCPUを4 bit単位でスライスしてLSI化したものがAm2901シリーズなので、ビットスライスという名称が使われます。完全1チップのCPUが一般的になる前、研究用コンピュータの試作品やミニコンピュータを作成するため、この手のICが何種類も開発されていました。その中でも特に有名なのがAm2901シリーズというわけです。
もちろんALUだけでCPUが完成するはずはなく、マイクロプログラムの実行制御を司るシーケンサと呼ばれる部分や、レジスタファイルなど、CPU内の重要なモジュールが個別にLSI化されています。
Am2901シリーズが実行するのはマイクロプログラムであり、複数のマイクロ命令でユーザから見える機械命令を実行するため、充分に高速でなくてはなりません。Am2901の場合、実用条件で約200 nsでマイクロ命令ひとつを実行できるように設計できます。当時のミニコンピュータレベルのシステムバス〜メモリシステムの速度は速くても1 usくらいでしたから、機械命令のフェッチにかかる時間の1/5以下でマイクロ命令を実行でき、これで充分な速度だと考えられます。

ミニコンピュータなどを作製する他、浮動小数点演算プロセッサを開発したりするのにも使われますし、フロッピーディスクコントローラやハードディスクコントローラなどに使われる例もたくさんありました。たとえばフロッピーディスクコントローラは、フロッピーディスクドライブから送られてくるパルス列を解読して、セクタの先頭を示す特有のビットパターンを探し出して次に記録されているセクタ番号を読み取るなど、小規模のデジタルICを組み合わせて実現すると200個くらい必要になるほど、面倒な回路になります。これをAm2901シリーズで実現すれば、パルス列の間隔が4 usですから、ビットパターンの解読をマイクロプログラムで行っても間に合う計算になります。このようにして、40個程度のICでフロッピーディスクコントロール回路を構成できます。もちろん、フロッピーディスクが普及しはじめる頃には1チップに集積されたLSIが完成しているわけですが、専用LSIを量産するほどの市場規模がなかったときは、これらのビットスライスプロセッサが使われていました。今ならHDLを使ってゲートアレイやFPLAで実現してしまいそうですが、当時は1000ゲート程度の規模でもLSIの設計開発や製造は最先端の特殊な技術でしたから、量産する価値のある回路と見なされた場合に限って、その回路のLSI化が少数の企業だけによって行われていたわけでして、その隙間を埋める技術としてビットスライス方式のLSIが使われていたのです。

以下、説明略で悪いけど、主なLSIの写真を。

Am2901A, Am2910A, Am2964B
 
 
 

Return to IC Collection