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

●今まで説明してきた命令を整理してみました

いままで1枚目の試作基板と2枚目の試作基板の回路について説明してきましたが、先回までで、作成した試作基板に実装した命令回路については、説明を全て完了したことになります。
ここで、どれだけの命令について説明をしてきたかを表にまとめてみました。

命令コード アセンブラ表記 説明(初出)回
01 ddd sss MOV rm, r 第40回
01 ddd 110 MOV r, M 第40回
01 110 110 HLT 第53回
00 ddd 110 MVI rm, imm 第49回
00 ddd 100 INR rm 第58回
00 ddd 101 DCR rm 第58回
10 000 sss ADD rm
10 001 sss ADC rm
10 010 sss SUB rm
10 011 sss SBB rm
10 100 sss ANA rm
10 101 sss XRA rm
10 110 sss ORA rm
10 111 sss CMP rm
11 000 110 ADI imm
11 001 110 ACI imm
11 010 110 SUI imm
11 011 110 SBI imm
11 100 110 ANI imm
11 101 110 XRI imm
11 110 110 ORI imm
11 111 110 CPI imm
00 000 111 RLC
00 001 111 RRC
00 010 111 RAL
00 011 111 RAR
11 000 011 JMP addr 第61回
11 011 010 JC addr 第63回
11 010 010 JNC addr 第63回
11 001 010 JZ addr 第63回
11 000 010 JNZ addr 第63回
11 110 010 JP addr 第63回
11 111 010 JM addr 第63回
11 101 010 JPE addr 第63回
11 100 010 JPO addr 第63回
11 001 101 CALL addr 第97回
11 011 100 CC addr 第97回
11 010 100 CNC addr 第97回
11 001 100 CZ addr 第97回
11 000 100 CNZ addr 第97回
11 110 100 CP addr 第97回
11 111 100 CM addr 第97回
11 101 100 CPE addr 第97回
11 100 100 CPO addr 第97回
11 001 001 RET 第98回
11 011 000 RC 第98回
11 010 000 RNC 第98回
11 001 000 RZ 第98回
11 000 000 RNZ 第98回
11 110 000 RP 第98回
11 111 000 RM 第98回
11 101 000 RPE 第98回
11 100 000 RPO 第98回
11 vvv 111 RST vec
11 011 011 IN port 第106回
11 010 011 OUT port 第106回
00 pp0 001 LXI rp, imm1

第65回

11 pp0 101 PUSH rr 第69回
11 pp0 001 POP rr 第70回
00 110 010 STA addr 第64回
00 111 010 LDA addr 第64回
11 101 011 XCHG 第91回
11 100 011 XTHL 第100回
11 111 001 SPHL 第93回
11 101 001 PCHL 第93回
00 pp1 001 DAD rp
00 pp0 010 STAX rx 第66回
00 pp1 010 LDAX rx 第66回
00 pp0 011 INX rp 第95回
00 pp1 011 DCX rp 第95回
00 101 111 CMA
00 110 111 STC
00 111 111 CMC
00 100 111 DAA
00 100 010 SHLD addr 第104回
00 101 010 LHLD addr 第104回
11 111 011 EI
11 110 011 DI
00 000 000 NOP

こうしてみると、いささか自画自賛になりますけれど、よくぞここまでやってきたもの、と感慨もひとしおです。
でも、いつまでも感慨にひたっているわけにもいきません。
まだ片付いていない命令がいくつか残っています。
なかでもADD、SUB、AND、OR、XOR、CMPという、肝心かなめの演算命令が全く手付かずで残っています。
さて、どうしましょう?

じつは、これらの命令の回路についても、すでに設計は完了しています。
3枚目の基板として、配線作業もはるかな昔(?)に完了済みです([第8回])。
もっとも、最終チェックはまだ済んでいませんけれど…。

ほんとうは、2枚目の試作基板にのっている命令の回路について説明をしながら、3枚目の試作基板の図面チェックを進めていくつもりでした。
でもなんだか気が進まなくて、ずっとそのままになってしまいました。

●作るべきか、それとも、作らざるべきか。それが問題だ…

最初は、この基板を組立キットとして商品化しよう、という意気込みでスタートしたのですが、命令の説明を続けていくうちに、「いくらなんでも、こんなものすごいものを商品にするのはムリ」という感じがだんだん強くなってきてしまって、それとともにやる気もだんだん失せてきてしまいました。

内部データバスを4ビットにして、命令の数も少なくしたらどうだろうか、という案についても検討をしてみました([第11回])。
この案はなかなかに魅力的で、いずれぜひ実現してみたいと思います。
しかし、それはそれ。
いまは、この作りかけのキットをどうするか、です。

なにしろ、2枚目の基板がこんなすごいことになってしまったものですから、多分、3枚目の基板も無事ではとても済みそうにはない。
ということは、せっかく作業した3枚目の基板の配線図も多分全面的に手直ししなければならないのではなかろうか。
もう商品化はほぼムリなことは決定的になったいま、使い物にならない試作基板のチェック作業をして、その結果、大幅な変更作業をしたところで、果たしていったい何になる?

勢い込んで設計をしてはみたものの、当初は本当に動作するかどうか、という、不安半分、でも興味津々といった趣きもあったのですけれど、ここまでくると、あとの回路も基本的には、動作することはほぼ間違いありません。
なおさら作る気が失せてしまいます。

いっそ、止めてしまおうか。

でも、それでは、せっかくここまで読んで来てくださった皆様のご期待を、多分裏切ってしまうことになります。
やっぱり最後まで、やらなくっちゃ。
うーん。なんとも、悩ましい。

いや。実際、私自身としても、何とかしたい。
せっかくここまでやってきて、ここで中止してしまうのは、なんとも残念ではあります。

しかしながら、この、使い物にならない3番目の基板の試作を続けるというのも、なんともムダだというのも事実です。なんたってタダで試作基板を作ることはできません。それなりに費用もかかりますから、ムダなことはしたくありません。
さて、どうしましょう。
なんだか、ハムレット状態であります。

いったい、ごくノーマルな人間にとっては、ムダとわかっていることをするのは、なかなかに苦痛なものだと思います(そもそもこの私がノーマルかどうか、と問われると、ちょいと自信はないのですが)。
なにかそれなりの価値があることなら、労をいとわない、のですけれど…。

●しかし、悪魔のささやきが…

悪魔のささやき、なのでしょうか、ねえ。
思いついて、しまったんですよ。
残りの回路の試作をやって、それもムダにならないようにやるってことを。

う。いや。確かに、それなら、まんざら、ムダではない。
しかし、ムダではないけれど、そこまでやるのは、あまりといえばあまりに、異常、というか、バカ…。

つまりですねぇ。
今のままで、3枚目の基板を作るのは全くといっていいほどムダ。
でも、このまま止めてしまうのでは、中途半端のそしりを免れない。
では、いっそのこと、すでに検証済みではあるけれど、回路変更のジャンパ配線でスパゲティと化してしまった1枚目と2枚目の基板の回路を3枚目の未検証の回路と合体させて、1枚の基板にしてしまって、それの試作基板を作ることにしたら、どうだろうか。
それならば、試作費用は1回分で済むから、3枚目の試作を単独でやるのとそれほど変わらない。
お、お、お。なんと、恐ろしい考えだこと。
この、ものすごい回路をもう一度、最初から、ですと!

でも、ついに、悪魔にとりつかれてしまったらしい、この私は、身悶えしつつも、頭の中で計算をしておりました。
当初、必要なICは300個。しかし検証を進めていく中でムダな回路を省くこともできてきたし、3枚を1枚にまとめることで、それぞれの基板にあった重複している回路を1つにまとめることもできるはず。
ざっと頭の中で計算してみたところ、なんとか2割ていどカットできそうな感じ。

問題は基板のサイズだが、現在の試作基板は、1枚目が23cm×23cm=529cu、2枚目が23cm×33cm=759cu、3枚目は23cm×31cm=713cuだから、合計は2007cu。
けれど、3枚目は少し空きがあるので、ここは少なめにできるし、3枚を1枚にすることで配線のための面積もカットできるはず。
すると、もしICが2割カットできるのならば、基板面積は25%〜30%減はなんとか可能なのでは。
2000cu×0.7=1400cu
ちょいと大きい基板になってしまうけれど、タテ31cm×ヨコ48cmの基板ならば、=1488cu、おお、ちょうど、ぴったり!

これなら、なんとか、商品化も可能なのでは…。
しかし、そのためには、もう一度、最初から(!)、基板の配線作業をしなければならない、という、なんともとんでもない、作業をクリアする必要が…!
お、お、お。神さま、仏さま(じゃ、なかった。ああ、悪魔よ)。

●ついに、試作2号基板です!

いくらなんでも、これはちょいと荷が重い。
もともと3枚に基板を分けた理由も、こんなとてつもないボリュームの回路を1枚基板で配線をする自信が無かったことと、CADソフトもそれだけのボリュームに耐えうる能力があるのかどうかもわからなかったため、などの理由からでした。

こんなことを、うかつに書いてしまって、途中で、やっぱり出来ませんでした。止めておきます。などということになったのでは、恥じさらしもいいところです。
やっぱり、実際に作業をしてからでないと、これはなかなか書くわけにはいきません。

じつは、ここのところ、記事を書くペースが落ちていたのは、バックグランドでこっそりと、その作業中だったから、なのですよ。

これが、その試作2号基板の配線図です!

まだやっと一通りの配線作業が終わったばかりで、これからプリンタに出力して、回路図とつきあわせチェックをしなければなりません。

2008.11.12upload

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