あんたCPUなんか創ってどうするのよ?! Vol.1 第6章 第5節

~TD4とかいうCPUがあまりにも残念だったので拡張してみた~

2016/8/14
コミックマーケット C90 3日目 西g16b

第6章 第5節 それではTD4をどう拡張するか?

4004 の方法はオペコードのビット数を抑えたまま多くの命令をサポートできるものの、命令デコーダーの複雑化という重大な問題があります。これは使用するIC を極力減らすと言うTD4 の方針に反します。

では、どうすれば良いのでしょうか?

筆者は4004 のアプローチをTD4 の拡張に取り入れても良いと考えています。全てをそのまま取り入れるのではなく、IC の数が増えない範囲であれば構わないでしょう。

例えば以下のような例が考えられます。

命令1バイト目説明
bit7~4bit3~0
MOV A,B00010000AレジスタにBレジスタの内容を転送

命令1バイト目説明
bit7~4bit3~0
MOV A,B00010000AレジスタにBレジスタの内容を転送
ADD A,B00010001AレジスタにBレジスタの内容を加算
SUB A,B00010010AレジスタからBレジスタの内容を減算
…………

レジスタ間転送命令をレジスタ間演算命令に拡張する案です。

TD4 およびTD4EX2 にはレジスタ間の演算命令がありませんが、マルチプレクサや命令デコーダーを拡張すれば可能になるはずです。もしこれら命令がIC を増やさずに実現できるのなら、やる価値がありますし、多少のIC の追加が必要になる場合は、プラスとマイナスを天秤にかけて判断することになるでしょう。

いずれにしても電卓を実現するためにはTD4 の大幅な拡張が必要ですから、いかにして最小のIC でその拡張を実現するかが鍵となります。

実際の拡張はVol.3 で行う予定ですので、続巻をお待ちください。