chocopaの日記: 「ロボットの起源」 ALUとCPU開発者たち 1
ハードウェア記述言語で書いたり図面の上だけのCPUと異なり、TTLを使ってCPUを作る場合はTTLにどんなゲートがあるかに加えて入手性・ディスコン(廃品種)を考慮する必要が出てきます。
そこで何よりも問題になるのがALU(演算装置)です。
ALUとは、加算、減算、論理演算、シフト命令などの数値演算を処理するユニットでTTLでは、74181などが有名ですが商品としてはとっくに寿命が尽きているものなので手に入りにくいです。
そこでTTL ALUで検索すると他のTTLでCPUを作っている開発者が見つかり、先輩方々のお仕事を勉強させて貰おうと思いました。
「Z80マイコンボード・中日電工のホームページにようこそ!」
http://www.alles.or.jp/~thisida/index.htm
CPU:MYCPU80
記事が膨大で未だ全部読めてないんですが、びっくりしました。
i8080をTTLで作ろうとするだなんて・・・。
MYCPU80というTTL 270個でTK80互換機というとんでもない怪物マシン?の組み立てキットを販売されています。
割り込みもスタックも全部あるんだから凄い!!
中日電工さまは、TK80互換機で創業されたそうで、製品にはBASICコンパイラもあります。
ALUは、全加算器の74HC283しか使ってないのでALU自作に近いですね。
減算は引く数を2の補数にしてから加算でしょうか?
「TTLのみでコンピュータを自作する」
http://22lab.web.fc2.com/index.htm
CPU:RETROF-8
TTLでCPUを作って円周率100桁を計算する事を目標に開発されています。
2月に決意してもう完成間近とは凄いです。
設計が秀逸でデータ8bit、アドレス12bitのシステムで命令語は16bitになります。
命令語の最初の4bitが命令そのもので、残りの12bitがオペランドのアドレスを示します。
部品数も少なくこれは上手いと思いました。
ALUは加算・減算・論理演算、シフトは無しの74LS382を使用されています。
そこで私の新CPUなんですが、昨日(日付変わったので一昨日か)、先週より超強力な74F281の見積を取っていたのですが探しても見つからないとの連絡が帰ってきました。
加算・減算・論理演算・シフトの全部入りで高速な74F281がありそうとの事で期待していたのですが無いとなると別の形にしなければなりません。
本来は高級過ぎるALUは「ロボットの起源」のブラックボックスを無くすという趣旨から遠ざかるのですが、超強力の魅力が勝って検討していたのです。
超強力なのが手に入らないならシンプルなALU路線で行こうかと思います。
加算・NAND・右シフトこの3つが有れば機能的にはなんでも出来るでしょう。
論理演算子 AND=*,OR=+,NOT=~,NAND=@として、
~A=A@A
A+B=(~A)@(~B)
A*B=~(A@B)
減算は、引く数を2の補数にする。
乗除算で必要なシフトは、左シフトは同じ数で加算する。
これで、--Cコンパイラの試作をしてCPU仕様が確定しますね。
このあたりはまたツイッターでも呟いていきます。@kouaisshin
レジスタを増やしてインデックスアドレッシングってのは捨てようか迷っています。
RETROF-8みたいな自己書き換え直接アドレッシングだとだいぶ軽くなるよね。
沢山のレジスタを有効活用ってのはコンパイラの負担が大きいのとCPUを失速させないためのレジスタまわりのバスの設計が複雑になるんだよねぇ。
シンプル設計にしたほうが賢明そうだなぁ。
ホントは74HC、CMOSなんだけど… (スコア:2)
中日電工さんの名前は知っていましたが、このキットは知りませんでした。
MYCPU80の組立キットは専用基板を興して5万円そこそこ、全く儲からないでしょう。
連載の内容は濃いです。しかも面白い。次を読みたくなります。