8ビット CPU Z80端子と機能
Zilog Z80 について説明します.
目次
Z80 ピン配置
Z80は,図1に示すとおり 40ピンの Dual inline package(DIP)に納められています.当時使われていた DIP の最大ピン数が40個だったからだと言われています.技術者は,このピン数の制限に葛藤があったと思われます.ちょっと考えただけでも,アドレスバス:16ピン,データバス:8ピン,タイミング:1ピン,メモリー制御:1ピン,IO/メモリの切り替え:1ピン,I/Oポート指定:8ピン,電源とグラウンド:2ピンが少なくとも必要です.これで37ピンです.そのほかにも,割り込みとかいろいろな制御ピンが必要です.共用などでなんとか40ピンに抑えました.
Z80は同じ40ピンの Intel 8080や8085とバイナリレベルで互換(上位互換)があります.しかし,ハードウェアーでの互換はありません.ピン配置や制御方法も異なります.
各ピンの機能
カテゴリー分類
図1の実体図だとZ80 の機能が分かりにくいので,ピン(端子)を機能毎に分類します(図2).Z80のピンの機能は,
- (1)アドレスバス
- (2)データバス
- (3)システム制御
- (4)CPU制御
- (5)CPUバス制御
- (6)その他
のカテゴリーに分けられます.カテゴリー名から機能は類推できるでしょう.
ピンには,CPUから見て信号を入力するものと出力するものがものがあります.それらの区別は,図中の矢印で示します.図中の機能名称の上に線が引かれているピンはアクティブ Low であることを示しています.
動作
各ピンの機能は,以下の通りです.これは,参考資料[1][2][3]に書かれている内容です.
アドレスバス |
A0 — A15 (アドレスバス) |
出力: アクティブ High,トライステート このバスはメモリーのアドレス,外部デバイスのI/Oポートアドレス,DRAMのリフレッシュのアドレスの指定に使われます.メモリは216=64[kB]が直接接続可能です.外部デバイスのI/Oポートは下位8ビットで指定し,256個の外部ポートの指定が可能です.リフレッシュのアドレス指定には,下位7ビットを使います. |
データバス |
D0 — D7 (データバス) |
入出力: アクティブ High,トライステート メモリーや外部機器のデータの受け渡しに使われます.受け渡しは,1バイト(8ビット)単位です. |
システム制御 |
M1 (マシンサイクル1) |
出力: アクティブ Low マシンサイクルがOPコードのフェッチサイクルのときにアクティブになります.フェッチとは命令を取り出すことで,このサイクルをM1サイクルといいます. |
MREQ (メモリ要求) |
出力: アクティブ Low,トライステート メモリー読み出し/書き込みのための実行アドレスが,アドレスバスに出力されているときにアクティブになります.また,DRAMのリフレッシュのアドレスが出力されているときにもアクティブになります.この場合は,同時にRFSHもアクティブになります. |
IORQ (I/O要求) |
出力: アクティブ Low,トライステート I/O(入出力)のための実行アドレスが,アドレスバスの下位8ビットに出力されているときにアクティブになります.また,IORQは割り込みアクノリッジ時にM1とともに出力されます.この二つの信号により,割り込み応答ベクトルをデータバスに乗せてよいことを入出力装置に知らせます. |
RD (メモリ呼び出し) |
出力: アクティブ Low,トライステート CPUが,データバスからデータの読み出しが可能な状態の場合にアクティブになります. |
WR (メモリ書き込み) |
出力: アクティブ Low,トライステート メモリーあるいは入出力デバイスに向けたデータが,データバスに出力されていることを示します. |
RFSH (リフレッシュ) |
出力: アクティブ Low DRAMのためのリフレッシュアドレスがアドレスバスの下位7ビットに出力されているときにアクティブになります.DRAMをリフレッシュする場合は,MREQも必要です. |
CPU 制御 |
HALT (ホルト) |
出力: アクティブ Low HALT命令が実行し,ノンマスカラブル,あるいはマスカブルな割り込み待ち状態になった時にアクティブになります. |
WAIT (ウェイト) |
入力: アクティブ Low メモリーあるいは入出力デバイスがデータ転送できないときに,それらの機器が Low 信号を出して,CPUに伝えます.この信号がアクティブまで,CPUはウェイト状態を続けます. |
INIT (割り込み要求) |
入力: アクティブ Low EI/DI 命令を使いソフトウェアーで割り込み要求を受け付ける/受け付けないようにすることができます.割り込み許可フラグ (IFF) がセット,かつ BUSREQ が H (ノンアクティブ) ならば,割り込み要求は実行中の命令が終わり次第,受け付けられます.割り込みを受け付ければ,アクノリッジ信号 (M1期間中の IORQ) を次の命令のはじめに出します. |
NMI (ノンマスカラブル割り込み要求) |
入力: 立ち下がりエッジ これは割り込み許可フラグ (IFF) に関係なく実行され,INIT よりも,優先順位が高い割り込みになります.この割り込みが入ると,プログラムは自動的に,0066H 番地からリスタートします.プログラムカウンター (PC) の値はスタック領域へ自動的に待避され,RETN 命令で元のプログラムに戻ることができます. |
CPU バス制御 |
BUSRQ (バス要求) |
入力: アクティブ Low バス要求信号が入力されると,CPUのアドレスバスやアドレスバス,トライステート信号出力の制御線などをハイインピーダンスにします.この状態になると,他のデバイスはこれらのバスを使用できます. |
BUSAK (バスアクノリッジ) |
出力: アクティブ Low バス要求信号BUSRQが受け付けられ,CPUのデータバスやアドレスバス,トライステート制御バスがハイインピーダンスになったときにアクティブになります. |
その他 |
CLK (クロック) |
入力: アクティブ Low クロック信号を入力します. |
+5V (電源) |
入力 電源端子です.+5[V]を印可します. |
GND (グランド) |
回路のグランド電位に接続します. |
ページ作成情報
参考資料
更新履歴
2014年 |
ページの新規作成 |
2015年08月29日 |
動作の説明の記述完了 |
|