8008は、
インテルが1972年4月に発表した初期の
マイクロプロセッサです。このプロセッサは、
8ビットの
CPUでありながら、1
4ビットの外部アドレスバスを持ち、最大16KBのアドレス空間を扱うことができました。当初、8008はComputer Terminal Corporation (CTC) の依頼により、同社のプログラマブル
端末 Datapoint 2200 向けに設計されたものでした。
開発の背景
CTCは1968年に設立され、当初はデスクトップ型コンピュータの製造を目指していました。しかし、市場の状況から、
テレタイプ端末 ASR-33 の代替となる製品の開発に方向転換し、Datapoint 3300 をリリースしました。Datapoint 3300は商業的には成功しましたが、発熱問題に悩まされていました。この発熱問題に対処するため、
CPU部分をワンチップ化する設計変更が行われました。
CTCは、このチップを製造してくれる企業を探し、当時メモリチップを製造していた
インテルにたどり着きました。
インテルは当初、このプロジェクトに懐疑的でしたが、1970年初めに開発契約を締結しました。しかし、
インテルによるチップの提供が遅れたことと、性能がCTCの目標に達しなかったため、Datapoint 2200には8008は採用されませんでした。Datapoint 2200は結局TTL素子で製作されました。しかし、
インテルはCTCとの契約により、このチップを他の顧客に販売する許可を得ていました。
8008の誕生
CTCは、
CPUのワンチップ化を諦め、TTL素子で
CPUを構成する方向で再設計を進めました。一方、
インテルは、セイコーが電卓市場への参入を表明したことから、このチップを電卓に採用することを検討しました。
インテルは、4004の設計にも関わったフェデリコ・ファジンをプロジェクトリーダーとして、1201の再設計を行い、ピン数を16から18に増やした新たな1201を1971年後半に完成させました。その後、CTCは、
ハードディスクドライブを搭載した新たな Datapoint 2200 II を開発しており、1201は新製品には非力すぎて使えないと判断しました。CTCは1201の知的財産権を
インテルに譲渡し、
インテルはそれを8008と改名し、1972年4月に発売しました。
8008のアーキテクチャ
8008は、10μmルールの
PMOSロジックで実装されています。初期バージョンは最高クロック周波数が0.5MHzで、後の8008-1では0.8MHzに向上しました。命令の実行には、5から11T-states(クロックサイクル)が必要です。8008は、
8ビットの演算が可能であり、大きなメモリ空間にアクセスできるため、
4ビットチップと比較して3~4倍の計算能力があると言われました。
トランジスタ数は3,500個です。
8008は、8本の入力ポートと24本の出力ポートにアクセスできました。メモリへのアクセスは、HLレジスタペアによる間接指定のみが可能で、
16ビットレジスタの概念は存在しません。スタックポインタはレジスタとしては存在せず、コール・リターン以外のスタック操作命令も存在しません。
命令セット
8008の命令セットは、1〜3バイトの命令長を持ちます。
オペコードはすべて1バイトで、2バイト命令は1バイトの即値を、3バイト命令(ジャンプ・コール)は2バイトのアドレスを持ちます。
以下に、代表的な命令を示します。
転送命令:
`Lrr`: レジスタ間のデータ転送
`LrI`: レジスタに即値をロード
算術演算命令:
`ADr`: Aレジスタにレジスタの内容を加算
`ADI n`: Aレジスタに即値を加算
`SUr`: Aレジスタからレジスタの内容を減算
`SUI n`: Aレジスタから即値を減算
論理演算命令:
`NDr`: Aレジスタとレジスタの論理積
`NDI n`: Aレジスタと即値の論理積
`ORr`: Aレジスタとレジスタの論理和
`ORI n`: Aレジスタと即値の論理和
`XRr`: Aレジスタとレジスタの排他的論理和
`XRI n`: Aレジスタと即値の排他的論理和
ローテート命令:
`RLC`: AレジスタとCフラグを連結して左ローテート
`RRC`: AレジスタとCフラグを連結して右ローテート
`RAL`: Aレジスタを左ローテート
`RAR`: Aレジスタを右ローテート
ジャンプ・コール・リターン命令:
`JMP nn`: 指定アドレスへジャンプ
`CAL nn`: 指定アドレスをコール
`RET`: リターン
入出力命令:
`INP p`: Aレジスタに入力ポートからデータを入力
`OUT p`: Aレジスタの内容を出力ポートへ出力
CPU制御命令:
`NOP`: 何もしない
`HLT`:
CPUを停止
8008のインパクト
8008は、初期の
パーソナルコンピュータ製品にも採用され、フランス製のMicralやアメリカ製のSCELBIなどがあります。8008の後継となる8080や8085は、バイナリ互換性はありませんが、アセンブリ言語レベルで8008との互換性があり、内部設計も基本的に似ています。x86ファミリの最初の実装である8086は8080の拡張であり、Datapoint 2200の設計に若干似ているとも言えます。
8008の各命令に対応する命令は、8080(および8085、Z80など)の命令セットだけでなく、
32ビット化されたx86の命令セットにも存在します。これにより、8008は、その後のコンピュータアーキテクチャに大きな影響を与えたと言えるでしょう。
まとめ
インテルの8008は、初期の
マイクロプロセッサとして、その後のコンピュータ技術の発展に重要な役割を果たしました。当初は特定の用途向けに設計されたものでしたが、その汎用性の高さから、様々な分野で利用されるようになり、
パーソナルコンピュータの普及にも貢献しました。8008の設計思想は、その後の
インテルの
マイクロプロセッサにも受け継がれ、今日のx86アーキテクチャの礎となっています。