「Z80」の版間の差分
Luckas-bot (会話 | 投稿記録) m r2.7.1) (ロボットによる 追加: el:Zilog Z80 |
編集の要約なし |
||
1行目: | 1行目: | ||
[[ファイル:Z0840008PSC_01.jpg|thumb|Z80 CPU(1993年第45週製造品)]] |
[[ファイル:Z0840008PSC_01.jpg|thumb|Z80 CPU(1993年第45週製造品)]] |
||
'''Z80''' は、[[アメリカ合衆国|米国]][[ザイログ|ザイログ社]]によって製造された [[8ビット]]・[[マイクロプロセッサー]]である。[[1976年]]に発表され、1980年代の中頃までは、[[パーソナルコンピューター|パーソナル・コンピューター]]の[[CPU]]としてなど、幅広い用途に使用された。以後も周辺デバイスを集積した製品が出されるなど、現在でも[[組み込みシステム|組み込み]]用途等、目に見えないところで多用されている。 |
'''Z80''' は、[[アメリカ合衆国|米国]][[ザイログ|ザイログ社]]によって製造された [[8ビット]]・[[マイクロプロセッサー]]である。[[1976年]]に発表され、[[1980年代]]の中頃までは、[[パーソナルコンピューター|パーソナル・コンピューター]]の[[CPU]]としてなど、幅広い用途に使用された。以後も周辺デバイスを集積した製品が出されるなど、現在でも[[組み込みシステム|組み込み]]用途等、目に見えないところで多用されている。 |
||
==Z80の概要== |
==Z80の概要== |
||
7行目: | 7行目: | ||
ザイログ社オリジナルの製品として[[クロック|クロック周波数]]が2.5[[メガヘルツ|MHz]]のZ80から20MHzの派生製品まで、各社から[[セカンドソース]]や互換製品が製造されている。現在では実チップではなく、[[FPGA]]や[[ASIC]]用の[[IPコア]]として活用されている。[[パチンコ]]の主基板向けプロセッサに使われているNECのμPD70008 IPをはじめ、商用の互換コアは20社以上存在し、[[オープンソース]]のIPコアも5種類以上存在している。 |
ザイログ社オリジナルの製品として[[クロック|クロック周波数]]が2.5[[メガヘルツ|MHz]]のZ80から20MHzの派生製品まで、各社から[[セカンドソース]]や互換製品が製造されている。現在では実チップではなく、[[FPGA]]や[[ASIC]]用の[[IPコア]]として活用されている。[[パチンコ]]の主基板向けプロセッサに使われているNECのμPD70008 IPをはじめ、商用の互換コアは20社以上存在し、[[オープンソース]]のIPコアも5種類以上存在している。 |
||
Z80とその互換CPUは、当初はより高速な8080互換CPUとして応用され、S-100バス互換機にもこぞって搭載されるなど、黎明期のパーソナルコンピューター市場を支配した。日本国内においても、1970年代の末から80年代前半頃にかけて、ビジネス用のオフィスコンピューターなどの他、各社の[[ホビーパソコン]]にも搭載された。 |
Z80とその互換CPUは、当初はより高速な8080互換CPUとして応用され、[[Altair 8800#S-100バス|S-100バス]]互換機にもこぞって搭載されるなど、黎明期のパーソナルコンピューター市場を支配した。日本国内においても、1970年代の末から80年代前半頃にかけて、ビジネス用のオフィスコンピューターなどの他、各社の[[ホビーパソコン]]にも搭載された。 |
||
また組み込み用としては21世紀に至るまで応用され続けて来ており、多数の機器に搭載されたほか、初期のゲーム専用機などにも搭載されていた。パチンコ・パチスロの抽選を司る主基板部分のコアCPUには暗号機能を付与したZ80ベースのカスタムLSIが使われており、もっとも消費量の多い分野の一つである。このLSIはCPUとメモリの間で交換するデータを暗号化し、プローブを当ててもプログラムやデータが読み取れない様にしている。 |
また組み込み用としては[[21世紀]]に至るまで応用され続けて来ており、多数の機器に搭載されたほか、初期のゲーム専用機などにも搭載されていた。パチンコ・パチスロの抽選を司る主基板部分のコアCPUには暗号機能を付与したZ80ベースのカスタムLSIが使われており、もっとも消費量の多い分野の一つである。このLSIはCPUとメモリの間で交換するデータを暗号化し、プローブを当ててもプログラムやデータが読み取れない様にしている。 |
||
8080が、それと組み合わせられる8251([[UART|USART]])、8253([[CTC]]/[[PIT]])、8255([[パラレルポート|PPI]])でファミリーを構成していたのに対応して、Z80SIO、Z80CTC、Z80PIOや、Z80[[Direct Memory Access|DMA]]でZ-80ファミリーを構成する。また、これらを組み合わせたマイコンがある。 |
8080が、それと組み合わせられる8251([[UART|USART]])、8253([[CTC]]/[[PIT]])、8255([[パラレルポート|PPI]])でファミリーを構成していたのに対応して、Z80SIO、Z80CTC、Z80PIOや、Z80[[Direct Memory Access|DMA]]でZ-80ファミリーを構成する。また、これらを組み合わせたマイコンがある。 |
2011年5月13日 (金) 08:15時点における版
Z80 は、米国ザイログ社によって製造された 8ビット・マイクロプロセッサーである。1976年に発表され、1980年代の中頃までは、パーソナル・コンピューターのCPUとしてなど、幅広い用途に使用された。以後も周辺デバイスを集積した製品が出されるなど、現在でも組み込み用途等、目に見えないところで多用されている。
Z80の概要
嶋正利らインテルを退社した8080の開発スタッフが設計を行っており、8080とはバイナリレベルで上位互換性がある。
ザイログ社オリジナルの製品としてクロック周波数が2.5MHzのZ80から20MHzの派生製品まで、各社からセカンドソースや互換製品が製造されている。現在では実チップではなく、FPGAやASIC用のIPコアとして活用されている。パチンコの主基板向けプロセッサに使われているNECのμPD70008 IPをはじめ、商用の互換コアは20社以上存在し、オープンソースのIPコアも5種類以上存在している。
Z80とその互換CPUは、当初はより高速な8080互換CPUとして応用され、S-100バス互換機にもこぞって搭載されるなど、黎明期のパーソナルコンピューター市場を支配した。日本国内においても、1970年代の末から80年代前半頃にかけて、ビジネス用のオフィスコンピューターなどの他、各社のホビーパソコンにも搭載された。
また組み込み用としては21世紀に至るまで応用され続けて来ており、多数の機器に搭載されたほか、初期のゲーム専用機などにも搭載されていた。パチンコ・パチスロの抽選を司る主基板部分のコアCPUには暗号機能を付与したZ80ベースのカスタムLSIが使われており、もっとも消費量の多い分野の一つである。このLSIはCPUとメモリの間で交換するデータを暗号化し、プローブを当ててもプログラムやデータが読み取れない様にしている。
8080が、それと組み合わせられる8251(USART)、8253(CTC/PIT)、8255(PPI)でファミリーを構成していたのに対応して、Z80SIO、Z80CTC、Z80PIOや、Z80DMAでZ-80ファミリーを構成する。また、これらを組み合わせたマイコンがある。
開発者の間では、しばしば「ぜっぱち」と略して呼ばれることが多い。しかし、同社にはZ8というマイクロコントローラもあるため、混乱の原因になることもある。
ハードウェアの仕様
Z80は、インテルの Intel 8080マイクロプロセッサー の改良型といえる製品であり、他のIntel系CPUと同じくリトルエンディアンである。8080に対して、若干のアーキテクチャーの拡張、電源の 5V単一化、より高いクロック周波数への対応などが図られた。メモリー空間は16ビット(64KB)で、それ以上のメモリー空間を操作する場合には、MMUなどを追加しバンク切り替えなどを行う必要がある。
最大クロック周波数は、Z80が2.5MHz版、Z80Aが4MHz版、Z80Bが6MHz版、Z80EもしくはZ80Hが8MHz版、など、末尾のアルファベットの有無と種類で識別する。トランジスター数は8,200個。
8080からのアーキテクチャーの拡張では、DRAMの情報を維持(リフレッシュ)する機能の内蔵とそのためのレジスタの追加、8080では1組だった汎用レジスター群を、切り替えて使用できる表と裏の2組とし、また、IXとIYの2つのインデックスレジスターを使用したメモリー操作を含む命令の増強、割り込みモードの追加、ワイヤードロジックによる命令の実行、などが行われている。乗算・除算命令は8080同様に存在しない。
また、本来16ビット固定のインデックスレジスターを8ビット単位に分割して使用できるなど、ロジックの設計上で派生したとおぼしき、命令表には存在しない隠し命令が存在した。これらの一部はZ280のマニュアル中で正式にドキュメント化されている。
アセンブラの仕様
8080に対して上位互換性を持ち、8080用のバイナリーをそのまま実行できる。アセンブリプログラミングの際に命令を書き表すための「ニーモニック」は、8080のバイナリに対応する命令でもインテル版とザイログ版では全く異なっており、記述の容易さが勘案され、より整理されたものとなった。これは初心者にも判りやすいとされる反面、他のCPUのニモニックと比較して、アドレッシングモードがはっきりしない、という欠点もあった。オペランドの順番は、ディスティネーションが前でソースが後である。
特徴
8080との差別化のため、命令の1サイクル目(M1サイクル)では他のサイクルに比べて所要ステート数が少なくなっている。通常のサイクルが3ステート必要なのに対しM1サイクルでは2ステートである。仕様を見るとM1サイクルには4ステート必要なように見えるが、後半の2ステートはリフレッシュ機能のために使用され、通常のメモリーアクセスとは関係がない。
これは同じ命令を実行しても8080よりも高速に実行するためのZ80の売りの一つだった。反面、このM1サイクルだけのために速いメモリーが必要になり、ハードウェア設計者からは不評を買っていた。
Z80には「特定の命令の組み合わせを用いると、普通に命令を書いた場合よりも実行にかかるクロック数や命令の総バイト数を少なくできる」というテクニックが多数存在し、これらは「最適化」「クロック削り」などと呼ばれた。例えば、Z80にて追加されたブロック転送命令やインデックスレジスタ命令は、一連の処理に必要なプログラムコードのバイト数を節約できる反面、他の命令で代用する場合よりも所要クロック数が増大するといったデメリットもあり、命令のメモリ空間上の占有量と処理速度とのトレードオフの関係にあった。
またZ80は、同時期に新規に開発された他社製の8bitCPUと比較すると、相対ジャンプは可能であるもののジャンプ先の範囲が狭いなどリロケータブルな構成をとりづらく、バイナリー化したコードをリロケータブルに配置して動作させるドライバーやデバッガ、オペレーティングシステム等の環境を作るには不向きとされた。リロケータブルでない一般的なバイナリーは、配置アドレスを変更する度に再コンパイルや再リンクが必要となった。またアドレス参照時のオフセットも汎用レジスター使用時には指定できず、インデックスレジスター使用のオフセット指定も-128~0~127の範囲で制限されるため、C言語のポインタとの相性がよくない面があった。
なお、Z80にはアドレッシングモードが少ないこともあり、各命令コードを16進数で覚えることもそう難しくはなかった。ただし、Z80の場合、命令のビット配列は本来8進数で考えるのが妥当である。
レジスタセット
A,B,C,D,E,H,Lは8080の同名レジスタと同じ機能を持つ。 Fは8080上位互換のフラグレジスターである。 Rはリフレッシュカウンタで、オリジナルのZ80では下位7ビットが変化し、読み出した際の最上位ビットの初期値は不定である。書き込んだ場合、最上位ビットが保存され、読み出すと最上位ビットは書き込んだ値が得られる。周辺LSI統合CPU・上位互換CPUでは8ビット全部使用するものもある。その場合は8ビット全部が変化し、書き込んでも最上位ビットは保存されない。
命令セット
ここではZ80で追加された命令のみ示す。 8080からある命令についてはIntel 8080#命令セットを参照。 また、IXとIYについては同等の命令が存在するが、ここではIXのみを示す。
- rは8ビットレジスタA,B,C,D,E,H,Lまたは(HL)を表す。
- rrは16ビットレジスタBC,DE,HL,SPを表す。
- rxは16ビットレジスタBC,DE,IX,SPを表す。
- nは8ビットの即値を表す。
- nnは16ビットの数値(即値またはメモリアドレス)を表す。
- bはビット位置0~7を表す。
- dはインデクスレジスタの変位(符号つき8ビット)を表す。
- eはプログラムカウンタの変位(符号つき8ビット)を表す。
転送・交換命令
- LD r,(IX+d)
- LD (IX+d),r
- インデクスレジスターを用いたメモリーとレジスターの転送。rに(HL)は指定できない。
- LD (IX+d),n
- メモリーに即値をストアする。
- LD IX,nn
- インデクスレジスターに即値をロードする。
- LD IX,(nn)
- メモリーの内容をインデクスレジスターにロードする。
- LD (nn),IX
- インデクスレジスターの内容をメモリーにストアする。
- LD BC,(nn)
- LD DE,(nn)
- LD SP,(nn)
- メモリーの内容を16ビットレジスターにロードする。8080ではHLレジスターでしかできなかった。
- LD (nn),BC
- LD (nn),DE
- LD (nn),SP
- 16ビットレジスターの内容をメモリにストアする。8080ではHLレジスターでしかできなかった。
- LD SP,IX
- インデクスレジスターの内容をSPレジスターに転送する。
- EX AF,AF'
- AFレジスターとAF'レジスターを交換する。
- EXX
- BC,DE,HLレジスタとBC',DE',HL'レジスターを交換する。
- LD A,I
- LD I,A
- 割り込みベクタレジスターとAレジスターの転送。この命令を使用するときは、特にNMOS品では、この命令を実行中に割り込みがかかった場合、元の割り込み状態に関わらず割り込み禁止になる場合がある。このバグはNMOS品は全般にある。CMOS品でも、東芝TMPZ84Cxx・日立HD64180 R0マスク・他にはこのバグがある。ザイログのものは修正されている。HD64180はR1マスクおよびZバージョンで修正済み。シャープLH5080も修正済みの模様。NEC μPD70008は不明。
- LD A,R
- LD R,A
- リフレッシュレジスターとAレジスターの転送。Rの下位7ビットは常に変動しているため、LD A,Rは簡易な乱数発生器としてよく使われる。
算術演算命令
- ADD IX,rx
- 16ビットレジスターの内容をインデクスレジスターに加算する。
- ADC HL,rr
- 16ビットレジスターの内容とCフラグをHLレジスターに加算する。ADD命令は8080から存在した。
- SBC HL,rr
- 16ビットレジスターの内容とCフラグをHLレジスターから減算する。なお16ビットのSUB命令はない。そのため8ビットの算術演算命令のうちSUB命令だけAを表記しない。
- INC IX
- インデクスレジスターの内容をインクリメントする。
- DEC IX
- インデクスレジスターの内容をデクリメントする。
- NEG
- Aレジスターの2の補数をとる。
ローテート・シフト命令
- RLC r
- RLC (IX+d)
- レジスターまたはメモリーの内容とCフラグを連結して左ローテートする。RLC Aと8080からあるRLCAとではフラグの変化が異なる。
- RRC r
- RRC (IX+d)
- レジスターまたはメモリーの内容とCフラグを連結して右ローテートする。RRC Aと8080からあるRRCAとではフラグの変化が異なる。
- RL r
- RL (IX+d)
- レジスターまたはメモリーの内容を左ローテートする。RL Aと8080からあるRLAとではフラグの変化が異なる。
- RR r
- RR (IX+d)
- レジスターまたはメモリーの内容を右ローテートする。RR Aと8080からあるRRAとではフラグの変化が異なる。
- RLD
- RRD
- Aレジスターの下位4ビットと(HL)を連結して4ビット単位でローテートする。BCD用の命令。
- SLA r
- SLA (IX+d)
- レジスターまたはメモリーの内容を左に算術シフトする。
- SRA r
- SRA (IX+d)
- レジスターまたはメモリーの内容を右に算術シフトする。
- SRL r
- SRL (IX+d)
- レジスターまたはメモリーの内容を右に論理シフトする。
ビット操作命令
- BIT b,r
- BIT b,(IX+d)
- レジスターまたはメモリーの特定のビットをテストする。
- SET b,r
- SET b,(IX+d)
- レジスターまたはメモリーの特定のビットをセットする。
- RES b,r
- RES b,(IX+d)
- レジスターまたはメモリーの特定のビットをリセットする。
ジャンプ・コール・リターン命令
- JR e
- 無条件相対ジャンプ。
- JR NZ,e
- JR Z,e
- JR NC,e
- JR C,e
- 条件付相対ジャンプ。
- DJNZ e
- Bレジスタをデクリメントして0でなければ相対ジャンプする(Decrement and Jump if Non Zero)。ループに使う。
- JP (IX)
- インデクスレジスターの内容をPCに転送する。
- RETI
- 割り込みからのリターン。
- RETN
- NMIからのリターン。
スタック操作命令
- PUSH IX
- インデクスレジスターの内容をスタックにプッシュする。
- POP IX
- スタックトップの内容をインデクスレジスターにポップする。
- EX (SP),IX
- インデクスレジスターとスタックトップの内容を交換する。
入出力命令
- IN r,(C)
- OUT (C),r
- CレジスターまたはBCレジスターによる間接指定の入出力。rに(HL)は指定できない。
CPU制御命令
- IM x
- 割り込みモードを設定する。xの値は0~2。
ブロック命令
8086のストリング命令、80186/V30のI/Oストリング命令に相当する。LDIRが最もよく使われる。
- LDI/LDD/LDIR/LDDR
- ブロック転送。HLレジスタの指すメモリの内容をDEレジスタの指すメモリへ転送することを、DE,HLレジスターをインクリメント/デクリメントしながらBCレジスタの回数だけ繰り返す。LDIRとLDDRは転送元と転送先のアドレスが重なる場合に使い分ける。
- CPI/CPD/CPIR/CPDR
- ブロックサーチ。AレジスタとHLレジスタの指すメモリの内容を比較することを、HLレジスタをインクリメント/デクリメントしながらBCレジスタの回数だけ、あるいは比較結果が一致するまで繰り返す。
- INI/IND/INIR/INDR
- ブロック入力。Cレジスタの指すI/OポートからHLレジスターの指すメモリに入力することを、HLレジスターをインクリメント/デクリメントしながらBレジスターの回数だけ繰り返す。
- OUTI/OUTD/OTIR/OTDR
- ブロック出力。HLレジスターの指すメモリーからCレジスターの指すI/Oポートに出力することを、HLレジスターをインクリメント/デクリメントしながらBレジスタの回数だけ繰り返す。
I/Oポート
Z80には8080と同じくメモリーアドレスとは別に0からFF(255)までのI/Oポートアドレスを持っていた。ポートアドレスはメインメモリーのアドレスデコーダーを流用していたのか、アドレスバスの下位8ビットに出力されたが、上位8ビットにも同時に値が出力される仕様になっていた。この値にはI/OアドレスをCレジスタで指定する命令の場合はBレジスター、それ以外の命令はAレジスターの値が用いられる。
この仕様を利用するとI/Oポート空間を16ビットアドレスで取り扱うことができ、VRAMをここに割り当てることで、メインメモリーがVRAMによって圧迫されることを防ぐことができる。そのような構成をとった日本製パソコンには、シャープのX1、ソニーのSMC-777、BUBCOM80などがある。X1と同じくシャープのMZ-1500ではオプションのRAMファイル(MZ-1R18、容量64KB)のアクセスにこの仕様を使用している[1]。
ただし、通常に16bitアドレスをデコードしてI/Oのハードを構成してしまうと、アドレス指定にBCレジスターを指定しないOUT命令の時にアドレスバス上位8bitにはAレジスターの内容が出力されてしまうため、アドレス指定にBCレジスターを指定しないOUT命令を用いることが出来なくなってしまう。そこで、SONYのSMC-70では、I/Oアドレスの上位8bitを下位に、下位8bitを上位にアドレスデコードした。こうして、多くのI/Oアドレスの割り付けが必要なところでは上位8bit・下位8bit両方をデコードしてBCレジスターアドレシングのOUT命令でアクセス、他のI/Oアドレスでは元の下位アドレスのみをデコードしてデバイスに割り付けることにより、通常のOUT命令を使用できるようにした。
Z80の互換CPU
セカンド・ソース契約に基づいてピンコンパチブルな互換製品が他社で生産された。こうした製品には、シャープの「LH0080」モステックの「MK3880」などがある。一方、日本電気(NEC)が独自に互換性のある「μPD780」を出荷したことに対し、ザイログはこれをチップ著作権侵害として訴訟を起こしたが、最終的には両者は和解して製造販売が継続された。
もともとはNMOSプロセスで製造されたが、一部のセカンド・ソースの製造者からは、NEC「μPD70008」、シャープ「LH5080」、東芝「TMPZ84C00」など、独自にCMOSプロセス化し消費電力の低減を図った製品も出荷されている。
また、2002年にシャープがシステム液晶のデモンストレーションとしてガラス基板上にZ80を形成し、MZ80CのCPUと交換し動作させた。
この他にも東欧諸国でライセンスによらないクローン製品、例えば東ドイツのU880、ルーマニアのMMN80CPUや、ソ連のT34BM1などがあった。
派生品
ナショナル・セミコンダクターからは、CMOS化とともに、インテル8085のようにアドレスバスの下位とデータバスとをマルチプレックスさせ、Z80とソフトウェアの互換性を持つ「NSC800」が製造された。ただし8085とはピン配置が異なり、置き換えだけでの移行はできない。
現在でも制御、組込用として、メモリおよび周辺機器の制御用回路を単一のパッケージに集積したLSIが製造されており、ASICのIPコアとしてZ80の互換プロセッサーを用意するデバイスメーカーも多い。Z80 IPコアは、「オリジナルが4bit ALUで多くの命令がマイクロコードで実行される」「レジスタがダイナミック動作をするため、クロックを停止できない」「LDx、LDxRのような繰り返し実行する命令やインデックスレジスターを使う命令等、組み込み用途では不要な複雑な命令がある」といった欠点を解消した物も提供されている。任天堂のゲームボーイに使われたZ80ライクなIPコアではクロックを停止・再開できる物が使われている。
他社によるZ80上位互換CPU
以下にZ80互換のCPUのうち、ザイログ以外の会社で開発された上位互換性を持つものを示す。高速化を図ったものや、周辺デバイスを集積したものである。
- HD64180
- 日立製作所(現ルネサス エレクトロニクス)が開発。高速化されたZ80バイナリーレベル互換命令とMMUを集積し、アドレス空間を512KB~1MBにしたもの。乗算、除算命令を追加している。68系周辺デバイスのバスサイクル(同期バス)に合わせたHD64180と、Z80用周辺デバイスのバスサイクル(非同期バス)を直接接続できるHD64180Zがある。ザイログからは、HD64180Zのセカンドソース品としてZ64180が出た。
- R800
- アスキーが開発した、内部16ビットの高速版Z80互換CPU。1990年4月に発表。乗算命令を拡張しているが、使用するレジスターの組み合わせで計算結果が不正になる不具合があるため、実質使用できるレジスターが制限されていた。また隠し命令のうち、IX/IYレジスタの8ビットアクセスを主とするいくつかの命令が正式命令としてサポートされる。MSXturboRに搭載された。MMUやDMAを集積しているが、仕様がMSXのものとは異なるため使用されなかった。CPU機能を停止しメモリーコントローラーとして動作するモードも持ち、こちらは同機で使用された。
- μPD9002
- 日本電気が開発した、16ビットパソコンPC-88VAに搭載されたCPU。型番が示すとおり汎用量産品ではなく日本電気ホームエレクトロニクス社からの特注品として開発され、V30が8080互換モードを持つのと同様に、V30モードとZ80互換モードを持つ。チップそのものはV30をベースに周辺回路を統合したV50を基本としているため、Intel 8086とのソケット互換性はないが、PC-88VA2/3においては、V30モード時に8087-1コプロセッサが稼動する数値演算プロセッサソケットが用意されていた。
- KC80
- 川崎マイクロエレクトロニクス(旧川崎製鉄)の、Z80互換の高速版CPU。乗算・除算命令を持つ。KC80をコアにMMUなどを追加した組み込み用ICとしてKL5C8012、KL5C8016、KL5C8400が販売されている。16ビット版で上位互換のKC160も販売されている。2009/7/1に一連の汎用マイコンの生産終了を発表。代替品の予定も無し。
- TMPZ84C011
- 東芝 CMOS版Z80CPU、Z80CTC、Z80PIO非互換パラレルI/Oを集積したチップ。
- TMPZ84C013
- 東芝 CMOS版Z80CPU、Z80CTC、Z80SIO等を集積したチップ。
- TMPZ84C015
- 東芝 CMOS版Z80CPU、Z80CTC、Z80PIO、Z80SIO、CGC、ウォッチドッグタイマー等)を集積したチップ。また、本家にあたるザイログからも同等のZ84C15が販売されている。ただし、ピン機能の一部が異なる。東芝TMPZ84C015は製造中止。
- TMPZ84C112
- 東芝 CMOS版Z80CPU、Z80PIO非互換パラレルI/O、タイマー、256バイトRAM等を集積したチップ。
- TMPZ84C710
- 東芝 CMOS版Z80CPU、ISDN基本インターフェイス、Z80SIO等を集積したチップ。
- TMPZ84C711
- 東芝 CMOS版Z80CPU、ISDN基本インターフェイス、Z80SIO等を集積したチップ。Z84C710上位互換。
- TMPZ84C810
- 東芝 CMOS版Z80CPU、Z80CTC、Z80SIO、パラレルI/O、DMA、MMU、DRAMリフレッシュコントローラー、ウォッチドッグタイマー等を集積したチップ。
後継CPU
ザイログ社自身の開発による上位互換CPUを以下に示す。
- Z180
- 日立が開発したHD64180Zについてザイログ社がセカンドソーサとなったZ64180の改良品。HD64180Z/Z64180とは仕様が微妙に異なる。Z80180やZ8S180がある。
- Z800
- Z80を16bit-CPUとして大幅に拡張するとともに周辺チップを集積したもの。命令体系拡張として、乗除算命令の追加、16ビットオペランド命令の増強、PC相対アドレッシングモードやSP相対アドレッシングモードの拡充などを行い、また従来隠し命令となっていたIX,IYレジスタを分割操作する命令などが公式にサポートされる。システムとしてはユーザーモード・スーパーパイザーモードの区別を持ち、内蔵MMUによるメモリ保護機能が提供される。256byteのRAMを内蔵し、ローカルメモリとして使用する他に、キャッシュとして使用することも可能である。外部バスは従来のZ80と互換性の高い8bit幅のZ80-BUSと、16bit幅のZ-BUSを選択することが可能で、またMMUの機能により512KBアドレス空間と16MBアドレス空間が選べる。このバスの種別とサポートするアドレス空間の種別により4つの製品(Z8108,Z8116,Z8208,Z8216)が計画された。のちにC-MOS化されたZ280に引き継がれた。
- Z280
- あまり採用される事無く、消え去った。ほとんど生産されなかったZ800をCMOS化したもの。Z800のZ-BUSインターフェース・16MBアドレス空間サポート版であるZ8216の仕様をおおよそ引き継ぎ、起動時にコンフィギュレーションで他のバージョンの仕様もサポートする。
- Z380
- 1993年2月5日に発表されたZ80互換の32ビットCPU。レジスタは従来の汎用レジスターに加えて16ビット追加部分を含めたグループが4バンク存在する。4GBのアドレス空間をリニアにアクセス可能。DRAMリフレッシュコントローラやINT0~3の割込みが追加されている。Z8000との互換性はない。
- eZ80
- 命令パイプラインを導入し、同一クロックのZ80に対して約4倍のパフォーマンスを持つ。最大クロックスピードは50MHz、アドレスレジスタを24bitに拡張しており、16MByteアドレッシング可能。
主な開発環境
脚注
- ^ 「MZ-1500 オーナーズマニュアル」(付属説明書)に具体的な記述あり。