Yamamoto's Laboratory
Z80
メモリー
コンピューター Z80 メモリー

8ビット CPU Z80メモリー

メモリーを Z80 に接続する方法を述べます.

目次


メモリーとは

CPUとメモリーは,コンピューターの最も重要な要素です.コンピューターの動作原理は非常に単純で,それはCPUとメモリーで説明できます.大雑把に述べるとその動作は,(1)CPUはメモリーから命令を読み込む,(2)その命令に従いCPUはメモリーからデータを読み込みデータを加工する,(3)CPUは加工されたデータをメモリーに保存する — の繰り返しです.これらの合間に,時々,CPUは周辺機器とデータの授受を行います.周辺機器もまた,レジスターと呼ばれるメモリーを持っており,CPUはそれにアクセスします.ここでは,周辺機器のレジスターについては述べません.CPUが直接アクセスする主記憶装置と呼ばれるメモリーについて,説明します.

先に述べたようにコンピューターは,メモリーに書かれたプログラムに従い,メモリーに書かれたデータを処理する装置です.その処理を行う装置が CPU で,Z80はそのひとつです.メモリーにはプログラムとデータが区別なく書かれているということ理解しておくべきです.

メモリーは,電源が切れても記憶が残る Read Only Memory(ROM) と,電源が切れると記憶が消去される Random Access Memory(RAM) に大別できます.前者の ROM は,名前の通りCPUから見ると読み込み専用で,書き込むことができません.その内容(プログラムやデータ)は,あらかじめ別の方法で書き込まれます.一方,RAM はCPUにより,読み込みも書き込みも可能です.名前に Random Access と付くのは,奇異な感じがします.ROM も Random Access ですから.

普通のコンピュータの CPU は,データバスを通して 8ビット(1バイト)単位でメモリーにアクセスします,従って,CPU もメモリーも,8本の導線がデータバスになります.メモリーには,この8ビットのデータがひとかたまりで,大量に保管されています.これらのデータはアドレスにより管理されます.Z80 CPU は 64キロバイト[kB]のメモリーにアクセスできます.64[kB]は,216[Byte]です.従って,メモリーのアドレスを指定するために,CPUはアドレスバスと呼ばれる 16本の導線が必要になります.一方,メモリーのアドレスバスの電線は16本とは限りません.1[kB](210[B])のメモリーだとアドレスバスは10本,2[kB]だと11本,4[kB]だと12本になります.CPUとメモリーのアドレスバスの接続については,後述します.

メモリーのハードウェアー

ここでは,参考資料[1]と同様に 32[kB] の ROM と 32[kB] の RAM を Z80 CPU に接続する方法を述べます.ROM は アドレスの 0000h — 7fffh に,RAMは 8000h — ffffh に配置します.

ROM

ROM
図1: ROM

データを書き込む方法に応じて,様々な ROM があります.ここではその詳細は述べません.一方,読み込み方法はどれも似たり寄ったりです.チップセレクタでメモリを有効にし,メモリーのアドレスを指定し,読み込み信号をあたえると,メモリーはデータを出力します.

自宅に,日立製の UV-EPROM HN27C256G-20 が大量にあります.図1に,その端子配列を示します.

端子 機能
A0 — A14
(アドレスバス)
入力: アクティブ High
メモリーのデータを読み書きするアドレスを指定します,アドレスバスは15本なので,215=32[kB]のデータの保管が可能です.
D0 — D7
(データバス)
出力: アクティブ High,トライステート
ROM内のデータの受け渡しに使われます.受け渡しは,1バイト(8ビット)単位です.
CE
(Chip Enable)
入力  アクティブ Low
Lレベルにすると,トライステートのハイインピーダンスが解除されます.ROMが使用可能になります.
OE
(Output Enable)
入力  アクティブ Low
Lレベルにすると,ROM内のデータが出力されます.
VPP 入力
データ書き込みの時,12.5[V]を印可します.
VCC 入力
電源端子(+5[V])です.
VSS グランドレベルに接続します.

このROMの動作モードを表1に示します.

日立製の UV-EPROM HN27C256G-20 の動作モード.VL: Lレベル電圧(0[V]),VH: Hレベル電圧(+5[V]),VCC: 電源電圧(+5[V]),VPP: 書き込み電圧(+12.5[V]).
動作モード ピン
CE (20) OE (22) A9 (24) VPP (1) VCC (28) Ox (11-13, 15-19)
読み込み VL VL X VCC VCC Dout
出力禁止 VL VH X VCC VCC ハイインピーダンス
スタンバイ HL X X VCC VCC ハイインピーダンス
高速書き込み VL VH X VPP VCC Din
プログラム確認 VH VL X VPP VCC Dout
オプション確認 VL VL X VPP VCC Dout
プログラム禁止 VH VH X VPP VCC ハイインピーダンス
Identifier VL VL VH VCC VCC Code

ROM HN27C256G のデータは,2537[Å]の紫外線を 15 [W·sec/cm2]を照射すると消去できます.照射後は,全てのビットは,「1」になります.

RAM

RAM
図2: RAM

ROMは,フリップフロップで記憶する SRAM と,コンデンサーに記憶する DRAM があります.ここでは,CPU との接続が簡単な SRAM を使います.

自宅には,富士通製の SRAM「MB84256C-70L」が複数有りました.それを使うことにします.図2に,その端子配列を示します.

端子 機能
A0 — A14
(アドレスバス)
入力: アクティブ High
メモリーのデータを読み書きするアドレスを指定します,アドレスバスは15本なので,215=32[kB]のデータの保管が可能です.
D0 — D7
(データバス)
入出力: アクティブ High,トライステート
ROM内のデータの受け渡しに使われます.受け渡しは,1バイト(8ビット)単位です.
CS
(Chip Select)
入力  アクティブ Low
L レベルにすると,トライステートのハイインピーダンスが解除されます.RAMが使用可能になります.
OE
(Output Enable)
入力  アクティブ Low
L レベルにすると,RAM内のデータが出力されます.
WE
(Write Enable)
入力  アクティブ Low
L レベルにすると,RAM内のデータにデータが書き込まれます.
VCC 入力
電源端子(+5[V])です.
GND グランドレベルに接続します.

CPU がRAM からデータを読み込む場合,(1)アドレスバスに読み込むデータのアドレスを指定,(2)CSを L レベル,(3)OEを L レベルにします.すると,RAM はデータバスにデータを出力します.一方,データを書き込む場合には,(1)アドレスバスに読み込むデータのアドレスを指定,(2)CSを L レベル,(3)WEを L レベルにします.すると,RAM はデータバスのデータを保管します.

Z80との接続

ページ作成情報

参考資料

  1. 鈴木哲哉,古典電脳物語(マイコン黎明期のコンピューター自作法)
    古典電脳物語 8085,Z80,CP/M,タイニーBASIC…古典電脳物語 8085,Z80,CP/M,タイニーBASIC…
    鈴木 哲哉

    ラトルズ 2006-07-01
    売り上げランキング : 447288

    Amazonで詳しく見る
    by G-Tools

更新履歴

2014年 ページの新規作成


no counter