RETROF-2017(仮称)とは

本当はRETROF-16Mで終わりにするつもりだったのですが...

2015年の12月に、本物と同じ解像度でのインベーダーゲームを走らせるのに十分な性能を持つ「TTLコンピュータ」を完成させ、RETROF-16Mと命名しました。小学生の時に初めて『コンピュータ』という言葉を耳にしてから丁度半世紀の月日が流れておりました。

RETROF16M全景 RETROF16Mインベーダー全景

2016年の2月にはオリジナル言語(BAC+と命名)のコンパイラも完成し、コンピュータを作るという活動もこれで一段落となる予定でした。
でも、どうしても「気になる」というか「心残り」に思う事がありました。

それは、コンピュータの心臓部にあたる「算術論理演算回路」に関する事でした。

1970年頃の手作りコンピュータは、この演算回路にANDやEXORといった単純ゲートを多数使うか、あるいはそれ専用に開発されたTTLを使うのが一般的でした。
RETROF-16M
74LS181の型番で知られる演算専用のTTLを使用しました。

他の演算装置の実現方法としてはLUT(Lookup tabel:テーブル参照式)があります。
この方法は特に目新しいものではなく、この世にコンピュータが誕生する以前から三角関数などの近似値を求めるのによく使われてきた計算手法です。

しかし個人の趣味としてのCPU作成にこの方法を採用するのはつい最近まで不可能でした。
なぜなら、足し算の様な単純計算でも、あらゆる数の和をLUTで求めるには、大容量のROM(Read Only Memory)が必要だからです。
その様なROMは現実には入手不可能だったためです。

ところが現在(2016年)は、メガビットクラスの容量をもつROMが個人でも容易に入手できます。これは「あらゆる種類の演算の結果」を予めROMに書き込んでおく事が決して不可能ではない事を意味します。

というわけで、RETROF-16Mで最後にしようと思っていたTTLコンピュータ作りですが、どうしても、演算装置をLUTにしたTTLコンピュータを作りたくなった次第です。

尚、筆者は作品の正式名称は「作品の完成後に命名する」を是としています。
しかし、それでは何かと面倒なのでここでは仮称としてRETROF-2017と呼びます。
これは「2017年中には完成させたいRETROFシリーズ」という意味です。

(この項は、2016年の4月に思ったことを同年9月に記述)


しかし、結局LUT式は見送りました。

その後ROMライターを製作したり、ROMによる演算速度の限界把握などの実験を重ねてきたのですが、実験を重ねる内にある一つの疑問を感じ始めました。

ROMライター

画像は2016年の6月に作成したフラッシュROMライター。
FT245Rを使い、WindosPCからUSB経由でデータを流し込む。
専用ツールもC++/CLIで自作

対象ROMは、
SST39SF040や
EN29F002など。


その疑問の発端は「大容量ROMを使えば設計の自由度が極端に広がる」という点です。
これは、「演算だけではなくレジスタやメモリに与える各種制御信号もROMで簡単に作れてしまう」と気づいてしまった、とも言えます。
すなわち、ROMに必要な情報を書き込む事自体が「製作の主体」となってしまうのです。

これでは「TTL式コンピュータ」というよりも、PAL(programmable logic device)式や、FPGA(field-programmable gate array)式のコンピュータに限りなく近いコンピュータになってしまいます。PAL式やFPGA式自体を否定する訳ではありませんが、小生のライフワークとも言える「TTLでコンピュータを作る」とは趣がかなり異なってしまうのです。

結局、ROMによるLUT演算式は回路設計のみで中断し、今回は74シリーズを代表する演算素子である74181(正式型番はSN74LS181)を使ったコンピュータをもう一度作る事にした次第です。

もし、将来時間があれば、今回の経験を活かして「TTLのみで作るコンピュータ」ではなく「ROMのみで作るコンピュータ」も作ってみたいのですが、その原理や設計の詳細は、また別の機会に紹介したく思います。
 

RETROF-2017とRETROF-16Mの違いについて

結果的にRETROF-2017は2016年に完成したRETROF-16Mとほぼ同じ構成となります。
しかし、全く同じものを作っても「面白くない」ので、RETROF-16Mと決定的に異なる設計とした点も多々あります。この件に関しては「本編」の方で詳しく述べたいと思います。

 

(2017年1月記)