Intel 8080(i8080)は、1970年代に
インテルが開発した
8ビットマイクロプロセッサです。
1973年末にエンジニアリングサンプルが出荷され、
1974年2月に正式発表されました。その前身である8008の後継機にあたりますが、命令セットに互換性はありません。8080の命令は、後にザイログの
Z80や
日立製作所の64180といったプロセッサに受け継がれました。
歴史
8080の開発は、前モデルの8008の限界を克服するために始まりました。8008は、シングルアドレッシングモードや低いクロック速度、少ないピン数など、いくつかの制約がありました。8080の開発にあたっては、既存の8008アーキテクチャを拡張するのか、完全に新しいアーキテクチャを導入するのかが検討されました。最終的には、8008との互換性を一部維持しつつ、大幅な改良を加えた新しい設計が採用されました。
1972年初頭、8080のアーキテクチャを考案したフェデリコ・ファジンは、
インテルの経営陣にこのチップの提案を行い、開発許可を得ました。その後、ファジンは4004の開発にも携わった
嶋正利を日本から招聘し、嶋がファジンの指示の下、詳細設計を担当しました。8080は、汎用性を重視し、8008の周辺チップの機能を統合することを目指しました。バイナリ互換性は放棄されましたが、ソースコード変換による互換性は維持されました。
スタックは外部メモリに移動され、ルーチンと割り込み機能が拡張されました。
1973年8月、嶋はレイアウトを完成させ、
1974年1月頃に試作品が完成しました。しかし、
インテルの営業部が特性評価前に大量生産を開始してしまい、初期の8080には物理設計上のミスが判明しました。この問題は、8080Aでグラウンド線の幅を太くすることで解決されました。当時の8080のサンプル価格は非常に高価でしたが、その後、歩留まりの改善や互換品の登場により価格は低下しました。1975年末には、周辺回路をセットにしたキットや、組立キットも発売され、ホビイストにも普及しました。
レジスタセット
8080は、
8ビットの汎用レジスタを7つ持っています。これらは、アキュムレータ(Aレジスタ)と、B、C、D、E、H、Lレジスタです。これらのうち、BとC、DとE、HとLのレジスタは、それぞれペアとして
16ビットのレジスタとしても扱うことができます。例えば、BCレジスタは
16ビットのデータを扱うことができます。また、命令中ではHLレジスタをポインタとして使用し、メモリ参照は「M」と表記されます。
フラグレジスタ
8080のフラグレジスタには、以下のビットが含まれています。これらのフラグは、演算結果やプロセッサの状態を示すために使用されます。
S (Sign):符号フラグ
Z (Zero):ゼロフラグ
H (Auxiliary Carry):補助キャリーフラグ(BCD演算用)
P (Parity):パリティフラグ
C (Carry):キャリーフラグ
このフラグの位置は、後の8086やIA-32にも受け継がれています。
命令セット
8080の命令は、1バイトから3バイトの可変長です。主な命令には、レジスタ間のデータ転送、即値ロード、加減算、論理演算、ジャンプ、コール、リターン、スタック操作などがあります。
データ転送命令: MOV, MVI, LXI, LDA, STA, LHLD, SHLD, LDAX, STAX, SPHL, XCHG
算術演算命令: ADD, ADI, ADC, ACI, SUB, SUI, SBB, SBI, CMP, CPI, INR, DCR, INX, DCX, DAD, DAA
論理演算命令: ANA, ANI, ORA, ORI, XRA, XRI, CMA
ローテート命令: RLC, RRC, RAL, RAR
ジャンプ命令: JMP, JNZ, JZ, JNC, JC, JPO, JPE, JP, JM, PCHL
コール/リターン命令: CALL, CNZ, CZ, CNC, CC, CPO, CPE, CP, CM, RST, RET, RNZ, RZ, RNC, RC, RPO, RPE, RP, RM
スタック操作命令: PUSH, POP, XTHL
フラグ操作命令: STC, CMC
入出力命令: IN, OUT
*
CPU制御命令: NOP, HLT, DI, EI
8080には、相対ジャンプや相対コール命令がないため、命令を動的に再配置することが難しいという制約がありました。また、
スタックはメモリの下位アドレスに向かって伸びるという特徴があります。
NECは、8080の
セカンドソースとしてμPD8080Aを製造しました。この製品はオリジナルの8080とは10進補正フラグの扱いが異なっており、この点を修正したμPD8080AFも販売されました。
また、
任天堂の
ゲームボーイに搭載されたカスタムプロセッサLR35902は、8080と
Z80の両方の特徴を持つ亜種として知られています。このプロセッサは、
Z80の拡張機能の一部が削除されているため、命令セットは8080に近いものとなっています。
ソフトウェア
8080用のソフトウェアとして有名なのは、
デジタルリサーチの
CP/M|CP_Mオペレーティングシステムです。
CP/M|CP_Mは、初期の
パーソナルコンピュータで広く利用され、多くのソフトウェアが開発される基盤となりました。
まとめ
Intel 8080は、
マイクロプロセッサの歴史において非常に重要な役割を果たしたチップです。その設計は、後のプロセッサに大きな影響を与え、
パーソナルコンピュータの発展を大きく加速させました。8080を理解することは、コンピュータアーキテクチャの基礎を理解する上で不可欠です。