見出し画像

corememory〜ハンドル名の由来

 今日は少しコンピュータのお話、というか、私がよく使っているハンドル名(noteでも使っていますね)の由来について書いておこうと思います。

 ご年配の計算機技術者の方には、いまさらですし、そのような諸先輩方に読まれるとこっ恥ずかしい限りですが。。昔のコンピュータでよく使われていた記憶素子に、磁気コアメモリ(磁心記憶装置とも)というものがあります。これが私のハンドル名の由来です。  あ〜、ちなみにUNIXやLinuxなどで、プログラムが異常終了したりしたときにデバッグ情報を出力することを「コアを吐く」なんぞと申しますが、あれも、この磁気コアメモリ(つまりメインメモリのダンプ:コアダンプ)に由来しますね。

 磁気コアメモリ(以後は略してコアメモリと表記します)の発明は1949〜51年、商用でたくさん使われたのは、1954年頃から1970年台中盤までだそうです。私が初めて使ったコンピュータもコアメモリを搭載していました。そのコンピュータは合計16KW(キロワットじゃなくてキロワード。1ワードが16bitsでした)のコアメモリを搭載していました。つまり262,144(16,384 x 16)個の小さな磁石(コア)を使っていたという。実際にはパリティなどユーザが使えない部分も含めると、もう少し多めになっていたのかもしれません。 

Wikiにあった磁気コアメモリの記事からの写真を引用します。

この写真のコアメモリは、コントロールデータ社(CDC)の大型コンピュータCDC6600に使われていたものだそうです。右上の拡大図には、真ん中に穴を開けてある小さなビーズ状のフェライトコアが見えます。小さな磁石ですね。ここにX軸とY軸に相当する2つの信号線に電流を流すことで、その交点にあたるコアの位置を特定(アドレッシング)してコアを励磁して磁気を帯びさせてデータを記憶します。1個のコアで1bitのデータを記憶できます。但し、データを読み出すのはコアを特定するX,Yの信号線ではなく、X,Yの信号で励磁された時に生じる電流を読み出すために別の信号線Sを使います。つまり、こうやってX,Yの信号線で励磁しないとデータを読み出せません。もちろん書き込みは励磁することで行います。つまり、データを読み出すには、励磁が必要なため、データを読み出すと同時に消えてしまいます。そのため、データを読み出した後には、もういちどX,Yの信号線を使ってもとのデータを書き戻しておく必要があります。つまり1つのコアに対してデータを書き込むXとYの2本の「書き込み線」、読み出しのための「探査線(Sense)」Sという3つの信号線を通して1bitのデータを記憶しようというデバイスです。細かい話ですが、さらに書込禁止線(インヒビット線:下図のZ信号)と呼ぶ線も通してあるものも存在しました。これは、たとえばOSやプログラムなど、大事なデータを上書きできないようにする仕組みを持つためです。記憶領域ないし記憶の保護機構ですね。

 まぁ、ここでコアメモリの詳しい技術のお話をするつもりはないのですが、もう少しだけ。これ、1つのコア(ビーズ)にX,Y,S,(インヒビット線Z)という3ないし4本もの信号線を通さねばならなくて、しかも、実はデータを読み出すと記憶が失われるため、読んだ後に書き戻してあげないといけません(Read after Write)。作るのにも、使うのにも、大変手間がかかるメモリだったわけです。そういえば、学生時代、コアメモリの構造や読み書きの原理などが試験に出たなぁ、と今更ながら思い出してしまいました。そんな難しいことは、さておき。

  上の写真はTDK製のコアメモリ。これで432bitsの記憶容量だそうです。上図右下は大きさを比較するため(米国25セント硬貨)。写真中央部の四角いところに432個ものコアが配線された状態で置かれているということでして。とにかく小さなところにたくさんのビーズ状のコアが詰め込まれていて、その配線はすべて手作業で作られていたわけです。より小さく作ることができれば、より小型化ができる。当然、小型化すると、より細かな手作業が必要になる。ですから手先が器用な日本人向けの仕事として、日本でたくさん作られたそうです。4kbitsのコアメモリで4,096個、64kbitsで65,536個もの小さなコアに、顕微鏡を使いながらすべて手作業で信号線を編組していたのだといいます。

 当時は、最先端のハイテク機器の代表格であるコンピュータのキーパーツが、手作業で作られていたなんて面白いですね。そういえば、当時のコンピュータの配線盤(バックプレーン)は、ワイヤーラッピングと呼ばれる技法で、やはり手作業で線の長さを微妙に調整しながら、何百本、機種によっては何千本もの線が配線されていたのも思い出しました。これは後のICメモリやLSIを駆使した汎用大型コンピュータにもありましたねぇ。

 ともあれ、そんなコアメモリの登場によって、コンピュータは一気に広まったとも考えられます。コンピュータの高性能化と低価格化に劇的な変化をもたらしたのです。

 それまでのコンピュータのメモリといえば、ブラウン管を使った蓄積管や水銀遅延線などを使った、非常に大掛かりかつ高価なものでした。コアメモリはそれらに比べ、手作業での組み立てが必要とはいえ安価で、しかも読み出し(読むとデータが壊れるので、読んだ後に必ず書き戻しが必要なため、読み出しと書込がセットで)サイクルも最盛期のものは数μ秒以下という高性能でした。コアメモリの登場によって高速化と大容量化が一気に進み、しかも単価も劇的に下がることで、コンピュータの小型化も可能になり普及にもはずみがついたとも考えられます。専用の電源設備や空調が完備された計算機センターだけでなく、研究室レベルでミニコンピュータを導入したりといったこともできるようになりました。とにかく、実用性が増したことと、まだ高価だけれど政府機関の中枢や一部の大手企業だけが買う超高額装置ではなくなったのでした。

 そんなコアメモリも1970年代に入ると、一気に半導体メモリに置き換わっていきます。その象徴とも言えるのが、当時ベンチャー企業であったインテルです。インテルは半導体メモリの製造で起業した半導体メーカーだったんですよね。ある資料によれば、1972年には半導体メモリがコアメモリの市場シェアを上回ったといいます。今のメモリに比べると、±5Vと+12Vといった3つの電源が必要だったり(DRAM)、容量の少ない(SRAM)ものでしたが、それでもコアメモリに比べると、使いやすさと価格差は圧倒的でしたから。しかもものすごい勢いでした。最初の大容量半導体メモリ(DRAM)が登場したのが1970年で、1972年にシェアが逆転したということが、その凄まじさを物語っていると思います。

 こうした半導体メモリの登場の延長線上には、マイクロコンピュータの登場があり、やがてパソコンが登場してくるというのは歴史の必然とも思えてきます。

 けれども、最後にひとつだけ、私の体験したコアメモリの良い点を紹介しておきたいと思います。設計次第ではありますが、コアメモリは磁気で記憶していますので、基本的に電源を切っても記憶が残っているんです。今で言うFlashメモリと同じですね。でも違うのは、このメモリがコンピュータのメインメモリ、つまりRAMとして使われていた点です。学生時代、プログラムの実行が終わらず、でも、もう帰らないと終電に乗り遅れてしまう!という生活を長いことしていましたが、帰宅時にはコンピュータの電源を落として帰らないといけませんでした。でも大丈夫。コアメモリでしたから。翌朝、まだ他の人が起動するより前に、コンピュータを起動し、昨夜電源を落とした時にメモしてあった、プログラムの実行を停止した時のアドレスをちょちょいと入力してStart!(この時、ちょっと深呼吸と、うまく行きますようにというお祈りも大事です) すると、あら不思議。昨夜の続きを何の問題もなく再開してくれるのでした。プログラムの再起動や読み込みも必要ありません。まるで一晩の処理の中断などなかったかのように。。。この機能(!?)、いえ、性質といったほうが良いのか。これにはずいぶん助けられました。

 思わず長くなってしましましたが、こんなコアメモリ(core memory)への私なりの思い入れにより、このハンドルをよく使っているという、なんか締まらない終わり方で申し訳ありません。



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