設計した計算機

o All TTL Computer (中学校時代)
思えばもう遠い昔の物語。 某ラジオ関係の雑誌があり、そこに連載でコンピュータ製作の記事が出ていた。 それを見たまだ若かった私は無謀なことに、 TTL IC 規格表一冊だけを手に、 計算機設計を始めてしまったのである。 その雑誌は人から借りて読んでいただけだったので、ろくに読んでもいない。 すなわち当然、できた機械は全くの我流。

語長は 8 ビット、アキュムレータは 12 ビット。 メモリ・アクセス・レジスタはなんと 32 ビット、 メモリは多けりゃいいとしか思っていなかったようだ。 そのメモリも、 all TTL だから、256 bit/chip である。
クロック、などというものは、無かった。完全非同期式である。 今なら計算機が速くなり過ぎて、同期式を諦めるケースもあるが、 この時は単に知らなかっただけ。 処理の手順にしたがって、 one-shot で作ったパルスが計算機内部をグルッと回るのである。 戻ってくるところは program counter であり、確かに動くことは動く。 一応、処理を並列化できるところはちゃんとしてたようだ。
で、当然のことながら、実際には作らなかった。 消費電力があまりに多き過ぎてやる気を無くしてしまったためである。 まぁ、実際に手を付けていたとしても、当時はテスタしか持っていなかったから、 完成させることはできなかったであろうが。

この後、 MOS の存在(まだ p-MOS が主流だった)を知り、 RAS/CAS 付きの高密度記憶素子が発表されて消費電力の壁も低くなった。 さらに system clock というものも理解したところで、 paper machine の設計は大学入学の頃まで続くこととなる。 その間に設計したのはおよそ 4 台。 全部、作るあてなどないお遊びだった。

当時、秋葉原で ASR-33 を見つけ、 財布の中を見ながらその前を 10 分以上 うろうろと行ったり来たりしていたのを憶えている。
当然、買わなかった。 (というより、買えなかった。)

o NECO: Non-deterministic Executive COmputer (学部・修士時代)
卒論/修論のテーマであった、バックトラック・マシンのハードを作っていた。 高さ 1.8 メートルほどの 19-inch のオープン・ラックに ユニバーサル基板をずらりと並べて、 ワイヤラッパ(とアンラッパ)を握って毎日を過ごしていたのである。
この頃は LSI の高集積化がもの凄く、次々に高速大容量のメモリが発表され、 TTL もきれいなピン配置の 500, 600 番台のものや 高速低消費電力化されたものがどんどん出てきた。 やはり消費電力やタイミングなどに悩まされていたため、 設計変更も頻繁に行なっていたと思う。

そういえば研究室のミニコンのメモリ・ボードの 4K メモリ・チップを基板から引き抜いて、 全部 16K チップに載せ替えてしまったのもこの頃である。 (追加されたアドレス線 1 本は、なんと空中配線!) 基板が 4 層基板になっていたために配線を読むのがエラく大変だったのを覚えている。 しかし、このような安価なメモリ拡張をしていなかったなら、 私は恐らく修論を書けていなかったことであろう。

この頃はまだ PLA が出始めの頃で、私の居た研究室にはプログラマが無く、 フロッピー・ディスクを MMI に送っては、プログラムしてもらっていた。 こんな不便をしていても、 PLA を全面的に使った設計は当時としても先進的であり、 おかげでマイクロプログラム・デコードも楽ができたし、システム自体も小さくなった。

o ロボット制御用 FPP (IBM基礎研時代)
入社して初めての仕事が、 ロボットの動作制御用の高速浮動小数点演算器の開発であった。
どうしても 1 MFLOPS の浮動小数点演算器が必要になったのだが、 当時はマイクロプロセッサのコプロもあまり無い頃で、結局作ることにしたのである。

Weitek の 32 ビット浮動小数点演算器を加減算器と乗算器の 二個ワンセット 400Kyen で買ってきて、 それに AMD 2910 命令シーケンサと、 パイプライン・レジスタやプログラムメモリとデータメモリを付け、 FIFO 付きの VME バスインターフェースを付加した。
これで、メイン CPU の 68000 (!! 趣味が出てる) と 完全に並列に動作できるようになり、 ロボットの制御周波数を高めることも可能になって、 なかなかの成功作となった。

システム・クロック作りには、 1) 原発振をリング・カウンタで 10 分周し、 2) これを PLA に食わせて各クロックの波形を作ってから、 3) その出力をラインドライバ兼用の F-TTL の F/F に食わせ、 4) ドライバ兼用 F/F 全ては共通のクロックでドライブする、という、もの凄い設計にした。 どう考えても、それまでにクロック回りで苦労させられていたことの反動であろう。
このおかげで原発振 10 MHz 10 分周のクロックにはほんの数 nS のスキューしかなく、 その他のタイミングもマージンがあり過ぎるくらいになってしまっていたため、 その後一部の chip を LS から ALS に変更しただけで倍速に上げることができた。
オーバー・スペックだらけの何だか良く判らない基板であったが、 単に私の設計に無駄が多過ぎただけのことなのかも知れない。
# でも試作回路なんだから、これで良いのだ!

あぁぁ…。そういえば、最近全然ハードをいじってないなぁ…。

 [go to HomePage]  [written & copyrighted by Masayuki Takata]