あなたCPUなんか創ってどうするのかしら?! 第5章

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

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

第5章 もう少しマトモなCPU

『CPUの創りかた』の最後にも同じタイトルの章があり、そこではTD8という史上最悪の残念CPUを紹介していました。では、同じ轍を踏まないようにするにはTD4EX4はどちらの方向に進めば良いのでしょうか?

重要なのは目的です。

TD4EX4の場合、目的は電卓でした。ただし電卓とは言っても中身は必要最小限度としたため、出来上がった電卓は2桁の整数電卓と言う、およそ実用性に欠けるものになっています。ならば次のステップは、実用性のある電卓を目標にするのが妥当でしょう。

現代のCPUの歴史はインテルの4004から始まったといっても過言ではありません。ですから同じ4ビットCPUの基礎であるTD4から始まって、最終的に4004に比肩する電卓用CPUを作り上げるというストーリーも有りでしょう。

ではTD4EX4をどのように拡張すれば4004に近づけるでしょうか?

  • 10進補正命令
  • 繰り上がり付き加算、繰り下がり付き減算
  • サブルーチン
  • RAMの容量拡大
  • インデックスレジスタ
  • テーブル参照
  • 割り込み

電卓を作るだけでも、ざっと挙げるとこの程度の機能は必要でしょう。ほかにも乗除算命令や浮動小数点など、上を見ればキリがありません。これらの機能を最小限のICでどうやって実現するかが次のプロジェクトの焦点になるでしょう。

また、CPUの機能が増え、プログラムの規模が大きくなると、そのプログラムをどうやって作成するのかという新たな問題も生じます。アセンブラで作成するのか、C言語などの高級言語を使うのかという事です。もし高級言語を使うなら、その言語の仕様を満たすための機能がCPUに必要になります。本文中でも述べましたが、例えばC言語ならば配列やポインタ、構造体、スタック、ヒープといった機能が必要です。

それらの機能をCPUでどのように実現するか、あるいは実現しないかが、CPUの性格を大きく変えるでしょう。

設計する人によって様々な考え方の違いが出る、最も面白い部分です。

本書を読んだ皆様が色々なCPUを作ってみようと思ったならば、筆者としては大変うれしいです。