この世のCPUを食べ尽くすのだ! 第2章 第2節

~あんたCPUなんか創ってどうするのよ?! Vol.3~

2018/10/8
技術書典5 け39

第2章 第2節 アドレスバスの概要

アドレスバスは簡単……なのですが、これも筆者的に不満が残る結果になったので後ほど説明します。

まずは簡単なところから。

アドレスバスは命令コードの下位4ビットをそのままI/Oユニットに出力します。4ビット幅のアドレスバスなのでRAMの容量は最大16語までとなります(1語4ビット)。

たった16語で使い物になるのか、というご意見は当然出てくるとは思いますが、TD4のアーキテクチャではこれ以上RAM容量を増やしても無意味なのでこのままとします。

TD4にはIN命令とOUT命令がありますが、このうちIN命令は命令コードの下位4ビットを使用していません(ゼロを指定する)。そのため、これをRAMのアドレス指定に転用することができます。つまりIN命令がRAMからの読み出し命令になるのです。

OUT命令も同様に、命令コードの下位4ビットをRAMのアドレス指定に使いたいところですが、ちょっとした問題があります。OUT Im 命令という、命令コードの下位4ビットを出力ポートに直接出力する機能があるからです。

この命令は非常に便利なのですが、残念ながら OUT Im 命令はTD4EX3では削除せざるを得ません。命令コードの下位4ビットをRAMのアドレス指定用に使う以上、出力データとしては扱えないからです。どうしてもこの命令を残したければ2バイト命令化するしかなく、やれば確実にIC数が増加してしまいますので仕方ありません。

OUT命令のうち、残りの OUT B 命令は問題ありません。IN命令と同様に命令コードの下位4ビットをRAMのアドレス指定に転用します。これがRAMへの書き込み命令になります。

なお OUT A 命令はTD4にありませんのでTD4EX3にもありません。