IBM 305 RAMAC

IBM 305 RAMACは、世界初の二次記憶装置として可動ヘッドハードディスクドライブ（磁気ディスク記憶装置）を使用した商用コンピュータである。このシステムは1956年9月14日に発表され、その時点で米海軍と民間企業でテスト運用が開始されていた。RAMACは"Random Access Method of Accounting and Control"（会計と管理のランダムアクセス手法）の略であり、その設計はビジネスにおけるリアルタイム会計の必要性によって動機付けられたものであった。
歴史.
米国の自動車産業で使用された最初のRAMACは、1957年にクライスラーのMOPAR事業部に設置されたものである。それはMOPARの部品在庫管理と注文処理システムの一部であった膨大なタブファイルを置き換えた。
1960年スコーバレー冬季オリンピックで、IBMは初の電子データ処理システムを提供した。このシステムには、IBM RAMAC 305コンピューター、パンチカード・データ収集、および中央印刷機能が備わっていた。
RAMACによるシステムは1000件以上構築された。 RAMACの生産は1961年に終了した。RAMACコンピュータは、1962年にIBM 1401用のIBM 1405ディスク記憶装置が導入されたときに時代遅れになり、305は1969年に廃止された。
概要.
最初のハードディスク装置は1956年9月13日に出荷された。システムの追加機器には、カードパンチ、中央処理装置、電源装置、オペレータ用コンソール・カードリーダ装置、プリンタがあった。保存された記録への直接アクセスを可能にする手動の問い合わせステーションもあった。IBMは、このシステムで64,000枚のパンチカードに相当するデータが保管できると主張した。
305は、IBMが製造した最後の真空管式コンピュータの1つである。その重量は1トン以上あった。
IBM 350ディスクシステムは、1つの英数字の記録に8ビット(データ用に6ビット、パリティビットとして1ビット、スペースビットとして1ビット）使用し、500万文字を記憶した。のディスクを50枚有した。2つの独立したアクセスアームが上下に移動してディスクを選択し、内外に移動して記録トラックを選択する。アクセスアームはサーボ制御されている。1つのレコードを見つけるのに平均で600ミリ秒かかった。1950年代に改良モデルがいくつか追加された。350個のディスクストレージを搭載したIBM RAMAC 305システムは、1箇月あたり3,200ドル（2018年の物価換算で28646ドル）でリースされた。
オリジナルの305 RAMACコンピュータシステムは約9メートル×15メートルの部屋に収容することができる。350ディスク記憶装置の寸法は約である。日立グローバルストレージテクノロジーズ（IBMのハードディスクドライブ事業を買収した）調査担当副社長のCurrie Munceは、ウォール・ストリート・ジャーナルのインタビューで、RAMACのユニットは1トンを超えるため、フォークリフトで移動し、大型貨物飛行機によって輸送しなければならないと述べた。Munceによると、ドライブのストレージ容量は5メガバイト以上まで増やすことができたが、当時のIBMのマーケティング部門は、そのような大容量の製品の販売方法を知らなかったため、大容量ドライブには反対していた。
305のプログラミングは、ドラムメモリに保存される機械語命令を書くだけでなく、システム内のほぼすべてのユニット（コンピュータ自体を含む）はプラグボードコントロールパネルにワイヤジャンパを挿入することによってもプログラムされた。
アーキテクチャ.
システムアーキテクチャは、305 RAMAC Manual of Operation（305 RAMAC操作マニュアル）として文書化されている。305は、可変ワード長十進数(BCD)のキャラクタ指向のコンピュータであり、6000prmで回転し3200文字の英数字を記憶する磁気ドラムメモリを有する。データ転送中の一時記憶には、100文字のコアメモリバッファを使用した。
各文字は6ビットで表され、先頭の2ビット（下の例の"X", "O"）はゾーンビットであり、残りの4ビットが数値を表す。その後ろに1ビットのパリティビット（下の例の"R"）がつき、1つの文字は次の形式で表される。
命令はドラムメモリの20トラックにのみ格納でき、次のフォーマットによる10文字の固定長だった。
固定小数点データの「ワード」は、1桁から100桁までの任意のサイズにすることができる。最下位桁のXビットに符号（符号付き絶対値）を格納する。
データレコードは、1文字から最大100文字までの任意のサイズにすることができる。
ドラムメモリ.
ドラムメモリは、それぞれ100文字の32トラックで構成されていた。
表の凡例：
codice_1とcodice_2は、10個の10文字の「アキュムレータ」を含む同じトラックを選択する。宛先"L"は加算を指定し、 "M"は減算を指定する（これらのアキュムレータの数値は10の補数形式で格納され、最上位桁のXビットに符号が格納されていた。各アキュムレータの符号もリレーで保持されていた。ただし、305は特別なプログラミングを必要とせずに、標準の符号付き等級フォーマットとこのフォーマットの間で自動的に変換される）。
codice_3、codice_4、codice_5はドラム上のトラックを選択せずに、他のソースと目的地を指定する。
ジャンプ.
305の命令セットにはジャンプは含まれていない。ジャンプはコントロールパネルでプログラムする。
タイミング.
305の全てのタイミング信号はドラムに記録された"クロックトラック"から供給される。クロックトラックには、同期のための208µs間隔の816個の12µsのパルスが含まれる。
キャラクタの読み書きには96µsを要する。
305の典型的な命令にはドラムの3回転(30ms)を要する。命令をフェッチするための1回転（Iフェーズ）、ソースオペランドを読み取りそれをコアバッファにコピーするための1回転（Rフェーズ）、コアバッファからデスティネーションオペランドを書き込むための1回転（Wフェーズ）である。Pフィールド（プログラム終了コード）が空白でない場合は、リレーが選択されることを可能にするためドラムをさらに2回転させる（Dフェーズ、Pフェーズ）。"Improved Processing Speed"オプションを導入することにより、次の回転が始まるのを待つ代わりに3つの命令フェーズ（"IRW"）がすぐに続くことが可能となる。このオプションと最適化されたコード・オペランドの配置により、典型的な命令はドラムの1回転(10ms)で実行できる。
ただし、特定の命令は通常の命令の30msより長い50msを要した。例えば、乗算はドラムの6回転から19回転（60msから190ms）を要し、除算（オプション）はドラムの10回転から37回転（100msから370ms）を要する。入出力命令は、ハードウェアによって必要とされるだけのドラムの回転数の間、プロセッサをインターロックすることができる。
ハードウェア実装.
305の論理回路は、1管と2管の挿入可能なユニットとリレーで構成されていた。
関連周辺機器.
基本システムは次のユニットで構成されていた。