見出し画像

MicroCPUの話:i4004

Intel 最初の市販4ビットCPUだ。
1971年発表。
4004については間違った情報が多い・・・ような気がする。
海外では・・・と思って探したらこんなページ(http://www.intel4004.com/)とかこんなページ(http://www.antiquetech.com/chips/4004.htm)とか、なかなか力作が多い(いずれもすでに消失しているが、リンク先に保存されているので読むことが可能)。
困ったことに、私が記憶しているものと、かなり前から(日本で)流布している情報にはずいぶんと乖離した部分があるし、当事者である嶋氏が話し書いていることもまた少し違う。
通常であれば何よりも当事者が一番詳しく正確だと思うだろう。しかし人間の記憶と言う物は・・・と言って私自身の記憶(当時の雑誌等を通じて知った事柄)が間違いだと認めるにも抵抗がある・・・
というわけで、4004 はもう少し調べが済むまでペンディング(笑

ただ、確実に言えることは、4004はIntel最初の「市販」マイクロプロセッサではあるが、けっしてIntel最初のマイクロプロセッサではないし(i8008の項参照)まして「世界最初」の、でもない。また、嶋氏が主になって設計したわけではない、と言うのが事実だと思う。
実際、チップ上にはチップ設計を担当したFederico Faggin氏の頭文字が刻まれており、彼とTed Hoff氏を中心に設計されたチップであることがわかる。

i4004のチップ写真(上記の最初のページから引用)
右下の部分を拡大して、読みやすいように回転してみた。「F.F.」と読める。

4004の伝説(特に日本では)と言うと
 ・世界最初のワンチップ・コンピュータ
 ・日本のビジコムの依頼で開発され、設計はビジコムの技術者「嶋正利」
 ・4ビットCPUの代表作
等々。

完全に間違いとも言いきれないが、誤解も多い。特に嶋氏自身が、後に語っていることにも「間違い」が見受けられるだけに・・・もちろん、本人の記憶の方が私の「記憶」などよりは正確だろう・・・と思うのは勝手だ。それに「物証」もないし(上記のF.F.などをどう解釈するかは勝手)。でも私は自分の記憶を信じる(^^ゞ

当時、日本にビジコムと言う電卓の専業メーカがあり(現存するビジコムとは無関係)、IC化の計画を立てたが、計画が野心的であったためかビジコムが小さい会社であったためか国内で引き受けるICメーカはなかったようだ。そこでICなら米国(シリコンバレー)だろうと、渡米して探すが、なかなか引き受け手がいなかった。それでも、当時まだ新興ベンチャーであった Intel と言う会社が引き受けてくれそうだと言うので交渉を始める。
この交渉の技術的な面を任されたのが、まだうら若き嶋氏である。
ビジコムの計画とは、すなわち個々の電卓毎に専用のIC(チップ)を設計するのではなく、ある程度汎用的なチップを一個作り、それを低機能機から高機能機まで共用で使えないか、と言うものである。
この計画に好意的な反応を示したのが Intel だったのだ。
当時の Intel にしてみれば、どんな仕事でも欲しいという状況もあったのか、内部で検討した結果、当時すでに設計が進んでいたワンチップコンピュータと同様な考えで、電卓機能に的を絞ったものを作れば行けるのではないか、ということになったようだ。
このワンチップな計画は、もちろん Intel としても極秘で進めていたし、まだ設計段階だっただろうから、ビジコムや嶋氏に具体例として見せたとは考えられない。設計は8ビットデータを扱うチップとして進められていた(文字などを扱うため)が、電卓なら数字だけで良い。だったら4ビットで十分じゃないか?ということで、別途4ビット用のチップを設計することになったらしい。
こうして基本的に受注する方向で話がまとまったため、嶋氏は技術アドバイザのような形で Intel に常駐するようになる。彼は主に電卓として必要な機能を洗い出す仕事をしていたようだ。繰り返すようだが、嶋氏自身はまだビジコムに入社したての若手であり、電卓についても詳しくはなく、ビジコムの技術部門を引っ張っていた人物でもない。

ともかく4004の開発は終わり、ビジコムに納入されたが、インテルはこのチップをビジコムに独占させたくなかったのか、契約条件の変更を申し入れ、インテルとして自由に販売出来るようにしたようだ。このあたりの経緯は今となっては良くわからない。一説には、すでに経営的に行き詰まりつつあったビジコムが、独占権を手放す替わりに開発費として支払った金額(の一部?)を返してほしいと申し入れた、というものもある。いずれにしても、契約金の大半がビジコムに返却され、インテルは4004を自由に市販出来る権利を手に入れたのは事実のようだ。
ところが皮肉なことに、その後まもなくビジコムは倒産してしまう。行き所のなくなった嶋氏はそのまま Intel に残ることになったようだ。
こうして完成した i4004 と云われるチップに周辺チップも含めて世界最初のワンチップマイクロコンピュータシステム「MCS-4」として一般に市販されることになった。

それまでこのような形で市販されたIC化されたコンピュータ部品と言うものはなかったから、たしかに4004は「世界初」なのだが、では4004が全く新しい商品であったのかと言うと少し?もある。
それ以前にTIの技術者であった某氏がコンピュータを一個のIC上に実現すると言うことそのもので特許を取っていた、というのは有名な話だ。
かと言って某氏が独創的であったとは思えない。

そもそも1940年代後半にショックレーらがトランジスタを発明・実用化して以来、当時はまだ実験段階にあったコンピュータと言うものをトランジスタで実現したいと思った人はたくさんいたはずだし、米国だけでなく日本などでも開発が進んでいた。なにしろその頃コンピュータは真空管やリレーで作られており、消費電力や発熱量が凄いだけでなく、数分に一本はどこかの真空管が切れて・・・と言うようなシロモノであったらしいのだから。

1950年代後半には、キルビーやノイスらがトランジスタを発展させる形でICの概念を確立、実用化する。キルビーがいたテキサス・インストゥルメント(TI)社はもっと古い会社だが、1954年くらいからトランジスタの製造を始めている。1957年には、その後重要な位置を占めるフェアチャイルド社がノイスらによって設立される。ここで今日のICの根幹技術とも言えるプレーナー・トランジスタが開発され、ICの実用化が始まった。
ICが実際に市販されるようになったのは1960年代になってからである。

こうして始まった論理回路のIC化の末にコンピュータを一個乃至数個のICで実現することを夢見た人も数限りなくいたはずだ。
実際、1960年代中頃からこうした試みはあちこちで行なわれていたようだが、企業秘密や軍事秘密の壁に隠され表に表れていないものも多い。
ある程度情報が残っているものに、たとえば通信関係のプロジェクトとして開発されていた PACE16 と言うチップがある。これはずっと後にナショナルセミコンダクターが市販化を行なう。他にも軍用として開発されていたものも多いようだ。

と言うわけで、4004 と言うのは「最初に市販された」と言う注釈つきでの世界初なのだ。

4004 と言うか、MCS-4のコンピュータシステムとしてのスペックや命令等の詳細な解説は、インテルの公式ページ(すでに消失しているのでこちらでイメージを)や、こちらのページが詳しい(ページが消失した場合はこちら)し、実際にこのCPUを使った経験がないため、改めて詳細には書かない。
上記と重複する部分もあるが少しだけ解説すると、ハード的には4004がCPUユニットで、それに4001と言うROMと4Bit I/Oを一体化したチップと、4002と言うRWM(RAM)と4Bit I/Oを一体化したチップ、および4021Aと言うクロック生成用のチップを組み合わせれば基本的なコンピュータが出来上がるようになっている。ただし4001は工場で「作り付け」にされるタイプのROMなので、開発時はソフトエミュレータや、RAMでROMをエミュレートする開発用のボードを使用したようだ。

注:以後、改めて説明しないが、ROMは正確にはRA/ROM(Random Acccess/Read Only Memoryの略。通常はRAは省略される)で、読み出し専用のメモリー。RAM(Random Access Memory)は、正確にはRA/RWM(Random Access/ReWritable Memoryの略)だが、ROMと対比する意味で、通常はRAMと略される。ROMにもRAMにも幾つもの種類があるが、本題からずれるので改めて別に機会にまとめて書ければ書くかも。
I/OはInput/Outputの略で、CPUが外界と信号(データ)をやり取りする入出力線(ポートとも言う)のこと。

i4004のシステムは、ソフト的には、ROMが256ワード(1ワードは8bits)、RAMは80ワード(1ワードは4bits)である。今日的な常識だと、GigaだのTeraだのと言う単位が付くので違和感あるかもしれないが、単位は付かない素のままの数値である。そういう時代だったのだ(笑)
ROMがプログラム用、RAMがデータ格納用である。これでわかるように、そもそもプログラムとデータは扱うサイズ(ワード)が異なり、プログラム上から直接扱えるのはデータ用のRAMのみである。これ以後、様々なメーカーが4ビットタイプのCPUを製造販売するようになるが、ほとんどのチップもこれを踏襲している(特殊な命令でプログラム領域を扱えるものもあったが、あくまで汎用メモリーとしてではなかった)。

いいなと思ったら応援しよう!