あんたCPUなんか創ってどうするのよ?! Vol.1 第1章 第4節
~TD4とかいうCPUがあまりにも残念だったので拡張してみた~
2016/8/14
コミックマーケット C90 3日目 西g16b
第1章 第4節 史上最悪の残念CPU、その名もTD8
たった10個のICで製作しているだけあってTD4には多くの欠点が存在します。そのうち最も分かりやすい部分が「プログラムサイズが最大16ステップである」という制限でしょう。言い方を変えればアドレス空間が16バイトしかないと言う事です。
渡波郁氏もそのことは良く分かっていて、「CPUの創りかた」の最後の第11章で「もう少しマトモなCPU」と称してアドレス空間の拡大方法を紹介しています。
具体的には4ビットCPUだったTD4を8ビット化して、ジャンプ命令で指定できるアドレス空間を拡大しています。それまで4ビットしかなかったアドレス空間を8ビットにすることで、256バイトのアドレス空間を可能にしています。これがTD8です。
はっきり言いましょう。
「CPUの創りかた」を読んでTD8の記述を見つけた時、筆者は目を疑いました。
あまりにも酷い。
なぜならアドレス空間を広げたところで、このCPUはまともな加算すらできない、残念なCPUのままだからです。そもそもアドレス空間を拡張するために8ビット化するという発想が間違っています。
第11章には他にも、演算回路に74HC181という汎用ALUを使用することで減算、AND、OR、XOR、NOTなどの機能を追加する案が載っていますが、残念ながら74HC181を使ったとしてもTD4(もしくはTD8)はまともな計算ができるようにはなりません。非常に残念です。
インターネットで検索すると数名の方がTD8を実際に制作していらっしゃいますが、その中にはTD8の欠点に気づき、大幅な拡張をして見事なCPUを作り上げている方もいらっしゃいました。大変素晴らしいと思います。
本書ではTD8とは全く違ったアプローチでROMアドレス空間を4KBに拡大します。しかもTD4の他の問題点は一切直しません。その結果、広大なアドレス空間を持つ、何の役にも立たないCPUが出来上がりました。
そしてVol.3でそれらの欠点を全て克服し、まともなCPUへと姿を変えます。
そこで、皆さんも筆者がTD4のどこを間違っていると言っているのか気づくでしょう。