標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第6回]

●では、どんなICを使っているのでしょう?

TTLだけで8080と同じ動作をする回路を作るとして、ごくありふれたICのみを使うとするならば、いったいどのようなICを使えばそのような回路をつくることができるのでしょうか?
一応は回路設計を終えたとはいっても、まだこれから試作という段階ですから、ある程度の変更は当然でてくるとは思います。
とりあえず、現段階でのTTLICの使用状況です。

TTL  使用個数
74HC00 8
74HC02 1
74HC03 54
74HC04 23
74HC05 35
74HC08 38
74HC11 8
74HC32 23
74HC74 9
74HC86 4
74HC126 13
74HC138 2
74HC157 5
74HC161 3
74HC191 10
74HC194 2
74HC238 28
74HC244 28
74HC245 1
74HC283 2
74HC373 13
合計 310

ICの種類は以外と少なくて、本当に、これだけ?でできるのか、と疑問に思うほど簡単なICばかりです。しかし使用個数は半端ではありません(!)。
じつは途中で、どうもICの数が300個ほどになりそうだ、ということがわかってきた時、もう中止しよう、と思いました。こんな、すごいもの、組立キットにしたって、誰もやらないに決まっているじゃぁありませんか!
数が多くなったことについては、理由があって、最終的にはこれより多分1割程度は減ると思います。それにしたってベラボーなことに違いはありません。
うう…。これだけのICを基板に並べて配線するとしたら、…!
ああ、頭が痛くなってきた…。

ま、それについては少し横に置くとして、使用したICの中身を見ていくことにしましょう。
74HC00〜HC32はそれこそフツーのゲートICです。使用個数が多いのもむべなるかな、でこれらのICこそがロジック回路の主役だからこそです。3入力までのゲートICだけで、それ以上の多入力ゲートICは使っていませんねぇ。

HC74はご存知定番、もっともポピュラーなFF(フリップフロップ)です。
フリップフロップって、何だぁ?(これを考え出した人は、エライ!)

HC86、HC126は少し変わっていますが、まあ、ゲートICの仲間と言えるでしょう。
HC138、HC157、HC238はコードのデコードやデータのセレクタには欠かせません。これらもごくごくポピュラーなICです。

HC161は4ビットのバイナリカウンタ、HC191、HC194は同じく4ビットのシフトレジスタです。CPUのどの部分に利用されるかわかりますでしょうか?
HC244、HC245は8ビットのデータバスバッファとして、もっともポピュラーなICです。
HC373は8ビットレジスタです。これはそのまま8ビットのレジスタとして利用することがすぐに想像できますね?

さて残ったHC283です。
これだけが唯一CPU的で一般の回路ではそれほどおなじみとは言えないICです。4ビットのアダー(加算器。もちろんバイナリ)です。4ビットの2進数、0000〜1111を2つ入力すると、それを加算した結果がただちに出力されます。というとなにかすごい回路のようですけれど、これ自体をゲートICだけでつくることも可能です(けっこう大変ですけれど)。
これを2つ使って、ADD命令に利用するのだな、ということは、すぐにわかりますね(あれ?DADはどうするの?)。

DADはともかくとして、SUB(減算)については、いったいどーするのでしょうね!
これはハード(ロジック回路)のみの経験しか無い方には、ちょいと想像がつかないかもしれません。逆に、ハードはまったくわからないけれど、ソフト(機械語)をある程度やってきた方ならば、加算器で減算をする方法は、わかりますよね。多分。

いかがでしょうか?
CPUと聞くとなにかすごいLSIのような気がしますけれど、なんだか少しその神秘のベール(?)がはがれてきたように思いませんか?もちろん、もし、これだけのICで本当にCPUをつくることができたら、の話ですけれど、ね。
これは、しかし、よーく落ち着いて考えてみれば、不思議なことでもなんでもなくてごくごく当たり前の話なのです。
なんたってCPUももとをただせば、ただのトランジスタの集合体にすぎないのですから!
2008.7.13upload

前へ
次へ
ホームページトップへ戻る