自己満足系 「〜オリジナルCPU・そして挫折〜」
高校生の頃、オリジナルのCPUを作ろうとたくらんでいた。
だが、あまりにも欲張った仕様のため、結局は挫折してしまった。
そのCPUの名前はGENESYSという。GENESISに、SYSTEMを混ぜたものだ。なかなか格好良い名前だったが、最近、
どこかで見かけた。同じ事を考える人っているもんだね。
仕様書の一部:
(これはMZ−2000で、いまはなきキャリーラボ製のJET−2200Aワープロで入力し、MZ−1P07プリンタで出力したものだ)
この、16ビット版は結局完成できず、そのまま学校を卒業してしまった。
その後、専門学校に進学してから、マイプロジェクトという事で、完成しようと努力した。しかし、結局、完成できなかった。
絶対に16ビット(当時は80286の時代)でなければいかん!と、強気だったのだが、バス配線が16本ずつになり大変という事まで
気が回らなかったらしい。あるいは若かったからかもしれない。
あれこれ凝りすぎたため複雑になり完成できなかった。最初から、シンプルにするという知恵が無かったのだ。一度は、極端に4ビットで
いこうとしていた事もあったが、結局、アドレスの扱いを考えて8ビットにした。
その8ビット版も中途半端に終わってしまったのだが・・・。
8ビット版は新旧2種類あって、旧は制御回路だけできなくて放棄してしまった。新は設計の途中のまま、物は作っていない。
ここにその資料の一部を紹介しよう。
言い訳をすれば、やれる時間があるうちに集中してやらないと、先送りしていたらいつまでもできないって事だよね。いろいろ他の用事が
あって、なかなかやれなくなる。ブランクがあると内容を忘れてしまい、次に取りかかるときに以前の状態に戻りにくい。
まずブロック図。
基本的には、旧版のアーキテクチャを引き継いでいる。
I/Oなんか、スイッチとLEDだけだし、外部にはメモリしかつながない(メモリマップドでI/Oを増やすことはできるだろう)。
メモリにプログラムを入力するためのDMA機構(要するに、スイッチでアドレスとデータを指定してプログラムを入力するやつ)は、CPU内には
備えない。外部にROMエミュレータをつないで実現する。むかしならパソコンがなかったからトグルスイッチを使ったが、現代は、パソコンからROM
エミュレータにプログラムをダウンロードする。
演算回路は、電卓が実現できるぐらいのもので、論理演算は無い。
アドレスは8ビットしか扱えないが、こういう実験的なCPUなら256バイトでじゅうぶんだ。16ビット版のときは、アドレスも16ビットにしていた
が、フロントパネルのトグルスイッチで64キロもプログラムを入力できるわけがない。指にタコ、である。
キーボードでも、8キロとか16キロバイトを入力するのは大変だ。むかしI/Oなんかに載っていたダンプリストを打ち込んだが、最近久しぶり
に見たら、よくこんなの打ち込んでいたなと思った。見上げた根性と情熱だったと思う。
入力が一応終わったら、早く動かしてみたいもんだからついついGコマンドを実行してしまって、いきなり暴走で、いままで打ち込んだ奴がパー
なのは自分の責任だが。
ダンプリストをプリントアウトして、サムをチェックして、全部修正してからテープにセーブするものだが、あとでロードするときにテープがワカメに
なったりして(チリチリというテープを巻き込む不穏な音がするのでわかる)、ロードできなくなったという事もあった。
いまでこそカセットテープは100円でもまともだが、当時の100円テープは呪いがかかっていて、遅かれ早かれこのような災難にあうのだった。
テープをロードするときは、心のどこかで、成功をいのりながら待つのだった。
ちなみにノーブランドのフロッピーにも、安いからと飛びついたらあとでデータ消失の憂き目にあった。当時、あやしげなソフトレンタル屋(コピー
屋)で買ったものだ。
さてブロック図については、とくにこれ以上のコメントは無い。
ほかにもいろんな構成が考えられると思う。内部バスを複数にするとか、レジスタをレジスタファイルICにまとめるとか。演算回路を、専用ICの
74LS181にするとか。
極力シンプルにして、失敗しないようにしたい(経験者は語る)。色気を出すのは、完成してからである。まず道を通すことだ。
命令表
制御回路の設計資料(一部)
回路図(一部)
(作成中)