70〜80年代を駆け抜けたCPU、AMD「Am2900」:マイクロプロセッサ懐古録(4)(2/4 ページ)
今回は、1975年にAMDが開発した「Am2900」シリーズを紹介する。ビットスライス方式の同シリーズを採用して多くのミニコンが構築されたが、NMOS/CMOS化やプロセス微細化により、1980年代にはマーケットがほぼ消えていった。
ビルディングブロックとして提供されたAm2900シリーズ
これまでもちょっと触れたが、Am2900シリーズは大規模なCPUを構築するためのビルディングブロックとして提供された、ちょっと他に類のないチップ群である。バス幅は4bitになっているが、別に4bitのCPUしか作れない訳ではなく、これを複数個組み合わせて8/12/16/24/32bitのCPUを構築できる。こうしたbit数の多いCPUを4bit単位に分割して提供する事をBit Slicingと呼ぶが、Am2900はこのBit Slicingを実装した代表的なチップと位置付けられている。
「Am2901」の外観。Konstantin Lanzet (with permission) - CPU collection Konstantin Lanzet, CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=4774211による
そのAm2900シリーズでどうCPUを構築するのか?というのが図3だ。まずデータバスからInstruction Register(Am2918)でFetchを行い、1命令単位での送り出しを行うが、この命令というのはAm2900シリーズを組み合わせて構築するCPUの命令セットのものである。
次いでPLAないしPROMに入るが、ここでもともとの命令をAm2900シリーズのmicroinstructionに変換する。といっても、まずはOpCodeとOperandを分離すると共に、アドレス指定がある場合にはそのアドレスを確定させる必要がある。OpCodeとOperandの分離はMapping PROMで行い、続くAm2909/2910/2911で構成されるSequencerでアドレスの確定を行う。
これが済んだら、その結果を基にProgram Memory(PROM)からMicroprogramを取り出す形になる。そもそも、もともとの命令とAm2900のMicroprogramが1:1に対応するケースはレアで、実際には複数のMicroprogram命令でロジックを組んで処理するような事もありえる(特に複雑なAddressing Modeを持つ命令でこれが顕著)ということで、Program Memoryは最大4KW分保持できる様になっている。古い話だが、DECの「VAX-11/730」はCPUのMicrocodeを書き換え可能で、実際にDECから書き換えを行うためのツールが顧客に提供されており、国内でも1社が実際にこれを利用したなんていう話を昔聞いたことがあるのだが、これは要するにこのMicroprogram Memoryの中のロジックを書き換えするためのツールだった訳だ。
さて、Microprogram MemoryからPipeline Registerを経て最終的にMicroprogramはALU(Arithmetic and Logic Unit)であるAm2901/2903に渡される格好だが、実はこのPipeline RegisterはAm2901A/2903Aでは不要になっている。Pipeline Registerの機能そのものは、現在実行中の命令の保持と、次に実行するMicroinstructionのアドレスの確定、さらにデータ操作制御ビットの出力などで、昨今のCPUで言うならALUの手前にあるScheduler的な役割を果たす格好だ。
Copyright © ITmedia, Inc. All Rights Reserved.
