科学・技術
宇宙のコアメモリ:1980年製スペースラボ用コンピュータのコアメモリモジュール
Cores in space: The core memory module from a 1980 Spacelab computer (righto.com)
要約
この記事は、1980年代のスペースシャトルに搭載されたスペースラボ用コンピュータに使用されていた磁気コアメモリモジュールを詳細に解説しています。シリコンメモリではなく、微小なフェライトリングに磁気的にデータを記録するこの技術は、当時のコンピュータストレージの課題を解決するために開発されました。コアメモリの仕組み、その歴史的背景、そして宇宙という過酷な環境での使用について掘り下げています。
全文翻訳
宇宙のコアメモリ:1980年製スペースラボ用コンピュータのコアメモリモジュール
スペースラボは、スペースシャトルのカーゴベイに搭載できる再利用可能な実験室で、宇宙飛行士や実験のためのスペースを提供していました。
スペースラボはヨーロッパのプロジェクトであったため、シャトルのメインコンピュータであるIBM製AP-101システムではなく、フランス製のミニコンピュータ、Mitra 125 MSを使用していました。
ストレージとして、スペースラボ用コンピュータには128キロバイトのRAMが搭載されていました。シリコンメモリではなく、コンピュータは磁気コアメモリを使用しており、各ビットは微小なフェライトリングに格納されていました。
この記事では、このコンピュータのコアメモリシステムを詳しく見ていきます。
スペースラボ用コンピュータのコアスタック。
上部のボードを取り除き、コアプレーンを見せています。
下の図は、スペースラボがシャトルのカーゴベイにどのように収まっていたかを示しています。
与圧された実験室は、トンネルでシャトルに接続されたカーゴベイ前方の円筒形モジュールです。
実験は、実験室の後ろのパレットに取り付けられていました。
実験室には3台の同一のMitraコンピュータが搭載されていました。
1台のコンピュータがスペースラボ自体を管理し、2台目のコンピュータが実験を管理しました。
3台目のコンピュータは、障害発生時のバックアップを提供しました。
スペースラボは、シャトルのカーゴベイにある与圧された円筒で、トンネルでシャトルに接続されていました。
研究者が実験を行うための実験室を提供しました。
このスペースラボのイラストはNASA(C-1976-4380)のものです。
下の写真は、コンピュータから取り外されたコアメモリスタックを示しています。
コアメモリスタックは、コンピュータのおおよそ3分の1を占めています。
コンピュータのサイドパネル全体が取り外され、コアメモリユニットがスライドして出てきます。
コンピュータは伝導冷却されていたため、コアメモリスタックをサイドパネルにしっかりと取り付けることで冷却を保っていました。
コアメモリスタックは7つのボードで構成されています:ドライバボード、4つのコアプレーンボード、2番目のドライバボード、そしてインターフェースボードです。
各ボードには2つの160ピンコネクタがあり、両側の大きなdaughter boardに差し込まれ、ボード間の広範な接続を提供しています。
右側のdaughter boardには、メモリスタックをコンピュータの他の部分にリンクする別の160ピンコネクタがあります。
(これらのコネクタは写真の長い青いコネクタです。)
Mitraコンピュータの前面にあるコアメモリスタック。
回路基板はコンピュータの奥側から取り外されています。
コアメモリの仕組み
初期のコンピュータにおける最も困難な問題の1つはストレージでした。
1940年代後半から1950年代初頭のコンピュータは、水銀中の音波、CRTスクリーンのスポット、または回転する磁気ドラムなどの技術でデータを格納していましたが、これらすべてには限界がありました。
コンピュータが必要としていたのは、高密度で安価、かつ高速で信頼性があり、ランダムアクセス可能なストレージでした。
第二次世界大戦中、ドイツは一方の磁気状態からもう一方の状態に「反転」できる特殊な磁気合金を開発しました。
戦後、アメリカの研究者たちは、これらの材料がバイナリデータを格納するために使用できることに気づきました。「この材料でメモリを作れることは完全に明白だった」とJan Rajchmanは述べています。
コアメモリのさまざまな側面は、さまざまな発明者(独立発明者のFrederick Viehe、ハーバード大学のAn Wang、RCAのJan Rajchman、MITのJay Forresterなど)によって特許が取得され、高額な特許紛争につながりました。
(IBMは、Wang Laboratoriesを設立するためにその資金を使用したWangに40万ドル、MITに1300万ドルを支払いました。)
私はJay Forresterを最も重要な発明者と見なしており、実用的なコアメモリの設計を開発し、磁気材料を研究し、画期的なWhirlwindコンピュータのために1953年に最初のコアメモリを構築しました。
コアメモリは、1ビットあたり1つの微小なトロイダル磁気コアを中心に構築されています。
コアは、時計回りにまたは反時計回りに磁化することでビットを格納できます。
コアは、コアを通してワイヤを這わせることで磁化できます:ワイヤに電流を流すと磁場が発生してコアを磁化し、反対方向に電流を流すと反対の磁化が発生します。
コアメモリの重要な問題は、不条理な数のワイヤなしでコアを配線する方法でした:各コアに個別のワイヤがあるとすると、わずか16KBのストレージでも10万本以上のワイヤが必要になります。
その解決策は「同時電流アドレス指定」と呼ばれました。
コアは、グリッド状に配置され、水平および垂直ワイヤがあります。
1本の水平ワイヤと1本の垂直ワイヤに電流を流すことで、交点にある単一のコアが選択されました。
しかし、水平ワイヤと垂直ワイヤに沿ったすべてのコアが磁化されるのではないでしょうか?
鍵は、コアがヒステリシスと呼ばれる特性を持つ特殊な磁性材料で構成されていたことでした:小電流はコアを全く変化させませんが、大電流はコアの磁気状態を反転させます。
水平ワイヤと垂直ワイヤを流れる電流は、各ワイヤがコアを反転させるのに必要な電流の半分になるように慎重に選択されていました。ワイヤが交差する場所では、2つの電流がコアを反転させるのに十分な磁場を提供しました。
XドライブワイヤとYドライブワイヤを励磁すると、1つのコア(黄色で強調表示)が選択されます。
図は、Digital Computer Components and Circuits, R. K. Richards, p355から改変。
次のステップはコアの読み取りでした。
2次元プレーン内のすべてのコアを通してセンスワイヤが這わされていました。
コアを読み取るには、XおよびY選択ワイヤを駆動して、目的のコアを0状態に反転させます。
コアが既に0状態にあった場合、何も起こりませんでした。
しかし、コアが元々1状態にあった場合、コアの状態が変化するにつれて磁場が変化しました。
これにより、センスラインに微小な電流が誘導され、コアが1を保持していたことが示されました。
ビットの値を読み取ると、その値が破壊されることに注意してください。
したがって、コアは読み取り後に書き戻して、元のデータを復元する必要があります。
一度に1ワードのメモリにアクセスするために、コアプレーンは3次元スタックに結合されました。
各プレーンがワードの1ビットを保持していたため、16ビットワードは16プレーンのスタックを持つことになります。
すべてのプレーンはXおよびYラインを駆動するための信号を共有していたため、スタックを通過する1ワードの列は並列にアクセスされました。
各プレーンには、ビットを読み出すための個別のセンスラインがありました。
Saturn V LVDC(Launch Vehicle Digital Computer)のコアスタックは、14個のコアプレーンで構成されています。
このスタックは、米国宇宙ロケットセンターにあります。
プラスチックケースからの歪みを軽減するために写真をレタッチしました。
しかし、異なるワードの異なるビットにどのように書き込むのでしょうか?
トリックは、各プレーンのすべてのコアを通して「インヒビット」ラインを配置することでした。インヒビットラインはXラインとは反対方向に走っていました。
インヒビットラインに電流を流すと、Xラインを流れる電流が相殺され、そのプレーンのコアが変更されるのを防ぎます。
要約すると、読み書きサイクルは、まずXおよびYラインのペアを励磁してワードを選択し、そのワードのコア列に0を書き込むことから始まりました。
センスラインはビット値の読み出しを提供しました。
次に、XおよびYラインを反対方向に励磁してコアに1を書き込みました。
同時に、各プレーンのインヒビットラインは0ビットで励磁されました。
したがって、コアは必要に応じて1に反転するか、0のままでした。
下のものを含む多くのコアメモリは、センスおよびインヒビットに共有ワイヤを使用していたため、各コアには3本のワイヤがありました。
IBM 360 Model 50コアプレーンのクローズアップ。
このコンピュータのコアは、内径が19ミル、外径が32ミル(0.8 mm)であったため、19-32と呼ばれていました。
コアメモリを実用的なものにするための最後の要素は、ダイオードマトリックスでした。
XおよびYラインには、高速で双方向の高電流(例:600 mA)パルスを生成できるドライバ回路が必要です。
コアメモリプレーンには、これらのラインが数百本ある場合があります。
各ワイヤに個別のドライバを提供すると、特に真空管時代には非常に高価になります。
解決策は、ワイヤの両端に個別のドライバを配置し、各ドライバが複数のワイヤをサポートすることでした。
些細な例として、9本の垂直線があるとします。
3つのドライバ(A、B、a