RAM:忘れられた歴史
RAM: the forgotten history (2024) (blog.coredump.cx)
要約
現代のコンピューターの進化は、チャールズ・バベッジよりも電子制御されたワーキングメモリの発明に負うところが大きいと論じています。初期のコンピューターにおけるリレーや真空管を用いたメモリの限界と、その後のコンデンサや遅延線を用いたダイナミックメモリの発展、そして現代のDRAMに至るまでの歴史を解説しています。
全文翻訳
RAM:忘れられた歴史
2023年の記事「計算機の進化」で、私はコンピュータの歴史の教え方について不満を述べました。チャールズ・バベッジにあまりにも多くの功績を与えすぎていると感じたのです。少なくとも17世紀から機械式計算機を作る方法は知られていましたし、プログラム可能な機械の概念は、このイギリスの博学者の著作よりもずっと前から存在していました。残されたボトルネックは主に技術的なものでした。ごく小規模なものを超えると、スプロケットやカムは、十分に複雑な計算機内部でのデータのやり取りを非常に煩雑なものにしていました。
ブレークスルーとなったのは、電子制御のデータレジスタでした。これらの回路により、計算結果を所定の位置に保持し、全体の設計がいかに複雑で広範囲であっても、必要に応じて簡単にルーティングできるようになりました。バベッジ氏の思索とは対照的に、この「ワーキングメモリ」の歴史は、その重要性に見合うだけの注目を集めていません。私たちはそれを大容量データストレージやコンピュータのI/Oの進化と混同し、20世紀末までパーソナルコンピューティングにおける最大のボトルネックがRAMの制約であったことを忘れがちです。
バイナリセル
電子メモリの最初の実用的な形態はリレーでした。リレーは基本的に電磁石によって作動する機械式スイッチです。そのスイッチング動作は、電磁石に通電している間だけ一時的なものか、あるいは別の「リセット」コイルに通電されるまで「オン」の状態を維持する持続的なものかのどちらかです。
ラッチングリレーはビットを保存するために非常に分かりやすい方法で使用できます。一時的なリレーも、接点が閉じられたらリレー自身が電力を供給するように配線することでラッチングするように配線できます。この原理の簡単な例を以下に示します。
単純な単一リレーラッチ。RESETボタンは通常閉じていることに注意してください。
この回路では、「セット」ボタンを押すとリレーが励磁され、並列のリレー作動スイッチも閉じられます。「セット」ボタンを離した後も、この経路を通じて電流は流れ続けます。回路のラッチを解除するには、通常閉じている(NC)「リセット」ボタンを押して電気の流れを遮断する必要があります。
リレーベースのメインメモリは、おそらく最初の真の電子コンピュータであるコンラート・ツーゼのZ3で prominent な役割を果たしました。
ツーゼ Z3 メモリユニット、約1938年。コンラート・ツーゼインターネットアーカイブより。
電気機械式リレーのスイッチング速度はヘルツ単位で測定されます。ツーゼ氏は、この技術が行き止まりであることを最初から理解していました。彼はナチス政権からの長期的な資金調達を確保する希望から、その場しのぎの道を選びました。残念ながら彼にとって(そしてヨーロッパの多くの人々にとって幸運なことに)、当局は感銘を受けず、資金は実現しませんでした。
連合国側のツーゼ氏の同僚たちはより幸運でした。初期の暗号解読の成功により、彼らはより高価で複雑な真空管設計を追求することができました。管ベースのメモリセルの設計図は、ウィリアム・エクルスとフランク・ウィルフレッド・ジョーダンという、ほとんど忘れられたイギリスの発明家デュオによるものです。彼らは電気機械式リレーの代替として、以下のバイナリ回路を提案しました。
「イオンリレーの改良」、イギリスの特許、1918年。
この回路は、左側のトランス巻線に電流が流れるとラッチします。これにより、G1グリッド電圧が一瞬だけより正になり、自己強化フィードバックループでチューブ間の電流バランスが崩れます。
現代的な用語では、これらの回路はどちらもセットリセット(SR)ラッチとして説明されるでしょう。その基本的な動作は、今日のほとんどのマイクロコントローラーやマイクロプロセッサーのダイに搭載されている高速・低消費電力SRAMメモリを構成するセルと共有されています。SRアーキテクチャの現代的な教科書的な例は次のようになります。
S-Rラッチの簡単な実装。
回路を分析するために、「リセット」ラインがハイの場合に何が起こるかを考えてみましょう。このシナリオでは、ANDゲートの片方の入力は常にゼロなので、回路はOR側の状態に関係なく「0」を出力します。
逆に、「リセット」がローの場合、ANDゲートはORのパススルーとして機能します。OR自体については、「セット」がハイであれば、無条件に「1」を出力します。しかし、「セット」がアサートされていない場合、ORは、回路図の上部にあるフィードバックループを通じて、回路の以前の出力値を通過させます。実質的に、S = R = 0 の場合、デバイスはラッチされ、SとRの入力ラインに以前現れた値を表す単一のビットデータを格納します。
ここで終わりにすることもできますが、一つだけ小さな詳細があります。ほとんどの真空管コンピュータは、その大部分のニーズに真空管メモリを使用していませんでした。その理由は、ツーゼのZ3のメモリユニットが約2,000個のリレーを必要としたのに対し、機械の残りの部分は600個だったことを考えると明らかです。比較的コストのかかる真空管の場合、その計算はさらに悪く、各真空管がヒーターフィラメントのためにかなりの定常電力を必要とすることを考慮する前です。要するに、1970年代半ばのLSI(大規模集積回路)チップが登場するまで、メインメモリは通常、別の方法で行う必要がありました。
メリーゴーラウンド
この問題の解決策は、「ダイナミック」メモリでした。これは、比較的短命な物理現象(静電気や音響など)に依存して、安価な媒体に情報を保存するものでした。基盤となる物理プロセスは短時間しか持続しないため、データは定期的に取得してリフレッシュ(または再送信)する必要がありました。
この初期の例の1つが、アタナソフ・ベリー「コンピュータ」(ABC)でした。実際には、機械的にスイッチされたコンデンサのアレイを備えた回転ドラムを使用した、洗練された非プログラム可能な計算機でした。
アタナソフ・ベリーメモリドラム、1942年。CC-BY、Flickrユーザーmonchanより。
各コンデンサの電荷状態がデジタル情報を伝達しました。セルの徐々に自己放電するため、定期的なリフレッシュが必要でした。これは、多くの点で、現代のDRAMの前身でした。デスクトップコンピュータやスマートフォンにあるDRAMチップは依然としてコンデンサを使用しています。ただ、シリコンダイ上に大量生産し、電子的にアドレス指定する方法を見つけました。このタイプのメモリはSRAMよりも遅く、より多くの電力を消費しますが、DRAMの永続的な利点は、保存されるビットあたりのコンポーネント数がはるかに少なく、したがってダイスペースも少なくて済むことです。
しかし、初期のコンピューティングに戻りましょう。このアイデアのもう1つの魅力的な具体化は、遅延線メモリでした。これらのデバイスは、材料の長さに送り込まれた音波を反対側で検知することでデータをエンコードしました。音波は伝播するのに時間がかかるため、電気音響ループ内で飛行中のビットをある数だけ「保存」できました。主な利点は、音波がかなり速く伝播するため、このシステムのレイテンシが回転するコンデンサドラムよりもはるかに優れていたことです。
このジャンルの最も奇妙な例は、水銀遅延線です。名前が示すように、これらのデバイスは音波の媒体として有毒な金属に依存していました。
水銀遅延線メモリの詳細、UNIVAC I、1952年。著者撮影。
Wikipediaは、水銀が圧電トランスデューサーの音響インピーダンスとユニークに一致したため選ばれたと述べていますが、私はそれが元の特許(US2629827A)の誤読だと思います。固体金属の問題は、おそらく縦方向の音速が液体よりもはるかに高かったため、特定のクロックスピードと列長で、より多くのビットを保存できなかったことでしょう。逆に、密度が低く圧縮性の高い液体の場合、高周波を減衰させて最大伝送レートを低下させた可能性があります。全体として、水銀は、安全性や重量を気にしない限り、その時代の最適な記憶容量を提供したと私は推測します。
幸いなことに、この「マッドサイエンティスト」時代は、より多くのデータを飛行中に収容するために金属をコイル状にするという考えが生まれた瞬間に終わりました。トルクメモリを紹介しましょう。
モンロー925計算機、1970年のトルクメモリ。作者:Brent Hilpertより。
このアプローチは、スプリングワイヤーを伝わる音波に依存していましたが、今回は縦方向(プッシュプル)の動きではなく、トルク(ねじれ)を使用しました。これにより、ワイヤーを緩くコイル状にし、ゴムスペーサーで所定の位置に保持することができました。縦波の場合、すべてのターンで音響エネルギーの多くが失われていました。
さらに興味深い初期のダイナミックメモリのクラスには、ウィリアムズ管とRCAセレクトロン管がありました。どちらも可動部品はありませんでした。後者のデバイスを以下に示します。
これらのメモリは、CRTのように動作し、選択的に電子を蛍光体基板に照射し、光る点のパターンとして数百ビットを保存しました。保存されたデータは肉眼で見えましたが、読み出しは静電場の変化を感知することに依存していました。本質的に、電子が蛍光体層内で動き回り、正味の電荷が生成され、近くの電極によってしばらくの間ピックアップ可能になりました。
磁気時代
今日、コンピュータ史愛好家の間でも、磁気メディアは大容量の静止データストレージ(ハードディスク、フロッピー、LTOテープ)と関連付けられるのが一般的です。しかし、約20年間、つまり1950年から1970年頃まで、磁気メインメモリも非常に一般的でした。
この初期の具体化は、アタナソフ・ベリーコンピュータのコンデンサベースのメモリと現代のハードドライブの中間段階とも言える磁気ドラムメモリでした。
ERA磁気ドラムメモリ、約1950年。CC-BY-NC-SA、Flickrユーザーspyndleより。
この設計では、読み書きヘッドが高速回転する強磁性円筒の上をホバリングしていました。円筒の比較的直径が小さく、表面に接触する必要のない多数の並列ヘッドがあったため、読み取り時間は比較的短く保たれていました。しかし、それでも十分ではありませんでした。当時のコンピュータはすでにマルチメガヘルツ速度で動作していました。より良いアプローチが必要でした。
IC以前の時代に私たちが到達した最善のものは、ソリッドステート磁気コアメモリでした。これらのデバイスは、絶縁された銅線が織り込まれたパターンを持つ、微細なフェライトビーズ(「コア」)のアレイで構成されていました。
Ampex高密度コアメモリ、 circa 1970年。著者撮影。
コアの重要な特性は、外部磁場によって磁化されることはできましたが、磁極は特定のしきい値を超える磁化フィールドがあった場合にのみ反転することでした。そのしきい値を下回ると、以前の状態を保持していました。
特定のセルに書き込むには、その長さの電流を校正して供給することにより、特定の水平ワイヤの周りにしきい値未満の磁場を誘導しました。別のしきい値未満の磁場が垂直ワイヤに沿って作成されました。2本のワイヤの交差点で、結合されたフィールドの強度が磁化しきい値を超え、選択されたコアを「反転」させました。
読み出しプロセスはもう少し複雑でした。セルを上書きし、磁極が反転した場合に期待される誘導電流を感知することに依存していました。そのような電流パルスが検出されなかった場合、書き込まれた値はセルに以前に格納されていた値と同じであったことを意味します。
磁気メモリは高速で非常に小型でした。上記の顕微鏡写真は、全体で8x8インチの32kBモジュールの約63ビットを示しています。
興味深いことに、磁気RAMの遺産は生きています。Everspin Technologiesという会社は、組み込みアプリケーション向けに最大16MBの magnetoresistive (MRAM) チップを販売しています。これらのチップはSRAMのように動作しますが、電源なしでデータを保持します。現時点では、この技術は特に競争力があるようには見えません。放射線やEMPに対する耐性が高いため、航空宇宙および防衛アプリケーションにいくつかの用途があるかもしれません。とはいえ、メモリ技術でたどってきた曲がりくねった道を考えると、将来どうなるかは誰にもわかりません。
他の歴史関連の記事はこちら:
[画像: An illustrated history of the calculator]
[画像: Random objects: Ball's patent anti-garrotter]
[画像: Random objects: the Petal camera]
私は、ギークカルチャー、コンピューティングの歴史などについて、よく調査されたオリジナルの記事を書いています。コンテンツが気に入ったら、購読してください。
投稿なし