今日はアン・ワングの命日(1990年)。
コアメモリの発明者です。発明は 1949年。
コアメモリ…僕がその存在を知ったのは、たしか高校生の頃。もう30年以上も前になりましょうか。
UNIX で、ソフトが不具合を起こして OS が強制停止すると、その瞬間のメモリの状況をファイルにして残します。
このファイルを「コアダンプ」と言いますが、この「コア」とは、記憶素子であるコアメモリの意味です。
コアウォーズ、という、30年ほど昔に流行したゲームがあります。
このコアも、コアメモリの意味。メモリの中でプログラム同士が戦う、と言うゲームです。
今調べたら、日本語でまともにコアウォーズを説明した文書ないのね。そのうち書くか。
ともかく、僕がコアメモリを知ったのは NHK の「電子立国日本の自叙伝」だったと思う。
電卓戦争の話で、コアメモリと言うメモリ素子が出てきたのではないかな。
その後大学の頃に、ASCII でコアウォーズの連載記事があり、コアメモリの実物の写真を見るのだけど、連載の趣旨はコアメモリを伝えることではないので動作原理などはわからなかった。
電線で編んだ布のようなものに、黒いビーズが大量にちりばめられている。
コアウォーズのゲームのタイトル画面などによれば、黒いビーズには、縦横の線に加えてもう一本、斜めの線が入っている。
メモリ素子なんだから縦横の線でアドレスを決めるのは良いとして、もう一本の線は何だろう。
さらに、別の情報からビーズはフェライト(鉄粉を焼き固めたもの。フェライト磁石などの材料)と知った。
…なんでこれがメモリになるのか、やっぱりわからなかった。
もったいぶらずに、先に仕組みを書いてしまおう。
フェライトは鉄粉を焼き固めたものだが、材料の選び方でいろいろな性質を持たせることができる。
コアメモリで使用するフェライトは、ある程度の磁場にさらされた場合に、磁化するように作られている。
磁化する、と言うのはつまり磁石になるのだ。
フェライト磁石だったら家の冷蔵庫にも張り付いているよ、という人は多いと思うが、あれは永久磁石。
別の磁場に入れても、磁性が変わったりはしない。
コアメモリのフェライトは、逆向きの磁場に入れると磁性を失ったり、逆向きになったりする。
つまりは、磁場の向きによって情報を記憶しているわけで、その意味ではフロッピーディスク(これもすでに見たことがない人が多そうだ)や、ハードディスクと同じようなものだ。
ただし、ハードディスクのように外部から「ヘッド」を使って読み書きをするのではない。
可動部分はなく、電気的に動作するため、物理的な動作を伴う水銀遅延管などよりはるかに高速だ。
電線に電流を通すと、周囲に弱い磁場が発生する。
コアメモリのフェライトは、この程度の磁場では磁性に変化を起こさないように作ってある。
でも、縦横の電線に同時に電流を流すと、その交点では磁場があわさり、特に強くなる。
この強い磁場では、フェライトは磁化してしまい、極性が変化する。
これによって、狙った一つにだけ情報を書き込むことができる。
磁場の向きは、電流の向きによって変わる。
だから、縦横2本の線を決定することで変化させたい素子を選び、流す電流の向きを決定することで、書き込む情報を選べる。
これで、任意の bit に任意の情報を書き込めるのだ。
ここで巧妙なのは、電線の交点、と言う考え方だ。
縦横に 16本の電線、合計で 32本の電線を用意すると、交点の数は 256にもなる。
256bit を記録するからと言って、256本の素子に、256本の配線をつなぐ必要はないのだ。
これ、今だと当たり前だけど、ものすごい大発明。
書き込みは上に書いた方法で出来る。
じゃぁ、読み出しはと言うと、ここで斜めに入れられた電線が意味を持つ。
コアメモリに書き込みが行われる際、以前そこにあった情報と同じものを書き込むときは、それ以前の状態と磁場は変わらない。…当たり前だ。
でも、逆向きの情報を書き込むと、フェライトの極性が逆になり、磁場が変化する。…これも当たり前だ。
何も電流が流れていない電線があり、その周囲で磁場を変化させると、電線の中に電流が起きる。
これは、中学生の理科で習う、初歩的な知識だ。
これらを総合して考えると、こうなる。
・ある素子に対して、新たな情報を書き込む。
・以前と同じ情報であれば、第三の線に電流は流れない。
・以前と違う情報であれば、第三の線に電流が流れる。
つまり、読み出したいときはダミーデータを書き込んでやれば、以前に書いてあった内容を知ることができる。
読み出すことで元のデータは破壊される場合があるので、後で元の情報に書き戻さないといけない。
これを発明したのが、1990年の今日が命日のアン・ワング博士。
当時のメモリは水銀遅延管が主流でしたが、これは遅くて大きく、温度変化により不安定になり、水銀の清掃、という定期メンテナンスが必要だが、水銀は人間に対して毒性がある、という厄介な代物でした。
利点は、真空管で構成されたメモリよりもはるかに安いことだけ。
当時、水銀遅延管に代わるものとしてウィリアムス管が発明されていましたが、技術的な困難が多く、理想的な性能が出せないままでした。
Whirlwind Iではウィリアムス管を採用予定でしたが技術的な困難を克服できず、数多くのメモリを手当たり次第に試します。
そして、結果として世界初のコアメモリ採用コンピューターとなりました。
2017.3.24 追記
一般にワング博士がコアメモリを発明した、とされているのですが、ちょっと違っていました。
フェライトによる 1bit の磁気記録を発明したのはワング博士ですが、「電線の交点だけ記録される」ような巧妙な方法を考案し、コンピューターメモリに応用したのは、Whirlwind I 開発チームの、ジェイ・フォレスター。
詳細は「コアメモリ特許成立」の日の記事に書いています。
コアメモリは、水銀遅延管よりも安く、ウィリアムス管よりも高速で、他のすべてのメモリよりも壊れにくいものでした。
唯一問題があるとすれば、真空管で構成されたメモリよりも速度が遅いこと。
それでも、水銀遅延管よりはるかに高速でしたし、当時高速メモリの筆頭だったウィリアムス管と同程度だったのです。
コアメモリは、あっというまにコンピューター界を席巻し、その後20年間メモリとして使用され続けました。
当初は 1bit が1ドルとされていたようですが、Whirlwind で検討されたときには 3~4bit で1ドル、日本の電卓戦争の頃(利用末期)には、1bit 1セントとも、1円とも言われていました。
当時は 1ドルおよそ360円なので、1セントと1円はずいぶん違います。
でも、実際コアメモリはアメリカより人件費の安かった日本で良く作られていましたし、アメリカよりも日本の方が安く手に入ったかもしれません。
ちなみに、今では 16GB の SD カードが千円で買えます。だいたい、100万ビットで1円、と言う計算。
スペースシャトルが1990年代途中までコアメモリを使用していたのは有名な話です。
静電気で記録を行う半導体 D-RAM では、宇宙線の影響で記憶が不安定になる可能性が考えられたためです。
コアメモリはアポロ計画の頃から宇宙で使われていましたから、宇宙でも使用に耐えうる、と言う信頼性があったのですね。
スペースシャトルのコアメモリに関しては、「プログラミング HAL/S」が詳しいです。
プログラム言語の教則本…の形をかりて、プログラム言語の歴史の闇を掘り起こす、非常に面白い読み物。
コンピューターの歴史に興味がある人は、是非ご一読を。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |