LGP-30 (初めはLibrascope General Purposeの略で、その後はLibrascope General Precisionに改められた)は初期の既製コンピュータ。

## 解説

en:General Precision Inc. の1部門であるen:Librascope社(カリフォルニア州グレンデール)によって製造され、en:Royal Typewriter Companyの en:Royal McBee部門との合弁事業であるRoyal Precision Electronic Computer Companyによって販売およびサービスが提供された。

LGP-30は1956年に初めて製造され、その当時小売価格で47,000ドル、2023年時点の$530,000と同等である。

LGP-30は、一般的にデスク・コンピューターと呼ばれていた。その高さ、幅、奥行きは(タイプライターの棚を除く) 33×44×26インチ (84×112×66 cm)であった。重さは約800ポンド (360 kg)あったが、頑丈なキャスターが備え付けられていたため本体の移動は簡単であった。

## デザイン

Librascopeコンピュータの主要な設計コンサルタントは、マンハッタン計画のベテラン(退役軍人)であり、ENIAC初のプログラマーの内1人であるスタン・フランケルであった。彼は最小限のハードウェアを備えた使いやすいコンピュータを設計した。単一アドレス命令セットには16個のコマンドしかなかった。磁気ドラムメモリは、メイン・メモリ、中央処理装置 (CPU) のレジスタ、タイミング情報、マスター・ビット・クロックをそれぞれ専用トラック上に保持した。真空管の数は、ソリッド=ステート・ダイオード・ロジック、ビット=シリアル・アーキテクチャ、および15個の各フリップフロップを複数回使用することにより、最小化された。

それはバイナリで、4096ワードのドラムメモリを備えた31ビットワードのコンピュータであった。標準入力は(フリーデン計算機社)Flexowriter(フレキソライター)キーボードと紙テープ (6ビット文字で10文字/秒) であった。標準出力はFlexowriter付属のプリンタ (タイプライター、10文字/秒で動作)であった。オプションの高速紙テープ・リーダーとパンチは、別個の周辺機器として利用可能であった。

コンピュータには113個の電子管と1450個のダイオードが含まれていた。(真空)管は、関連コンポーネントも含む34枚のエッチングされた回路のプラグ可能カードに取り付けられた。34枚のカードの種類はわずか12種類であった。すべてのマシン機能の動的テストが可能になるカード=エクステンダーも利用できた。1450個のダイオードのうち680個が1つのプラグイン可能なロジック・ボードに実装された。

LGP-30は、全負荷で動作する場合に1500ワットを必要とした。電源の引込線は(北米)標準の115ボルト60サイクル単相線に差し込むことができた。このコンピュータには、95~130ボルトの電力線変動に適した電圧調整機能が組み込まれていた。電力調整に加えて、このコンピューターには真空管への熱衝撃を最小限に抑えて長寿命を保証する、ウォームアップ段階用の回路も組み込まれていた。コンポーネントの寿命を延ばし、適切な動作を保証するために、コンピュータには冷却ファンが内蔵されており、濾過された空気がダクトを介して(真空)管とダイオードに送られた。LGP-30が適切な温度で動作していれば、高価な空調は必要ない。

ドラムワードあたり32ビット分の位置があったが、しかし31ビット分だけが使用され、32ビット目で「ヘッド内の磁束の回復」を可能にしていた。命令ごとにアドレスが1つしかないため、オペランドの割り当てを最適化する方法が必要であった。さもなくば、各命令はデータ参照が行われるたびにドラム (またはディスク) が完全に回転するまで待機する羽目になる。LGP-30はドラム上の論理アドレスをインターリーブすることによってオペランド位置最適化を提供したため、したがって2つの隣接するアドレス(00と01など)は9つの物理的位置によって分離された。これらのスペースはオペランドを使用する命令の隣にオペランドを配置できるようにした。(ドラムは)64トラックあり、各トラックにつき64ワード(セクター)から成っていた。2つの隣接する物理ワード間の時間は約0.260ミリ秒、2つの隣接するアドレス間の時間は9×0.260、つまり2.340ミリ秒であった。最悪の場合のアクセス時間は16.66ミリ秒であった。

命令の半分(15ビット)は使用されなかった。使わなかった半分は追加の命令、インデックス付け、間接アドレス指定、または次の命令を見つけるための2番目(+1)アドレスに使用できた可能性があり、それぞれがプログラムのパフォーマンスを向上させたであろう。これらの機能はいずれもLGP-30には実装されなかったが、一部は1960年の後継機であるRPC-4000で実現された。

LGP-30のユニークな特徴は、安価であるにもかかわらず乗算機能を内蔵していることであった。これはドラムコンピュータだったので、ビットはドラムから読み取られる際にシリアルに処理された。乗算に関連するそれぞれの加算を行うときと同様に、これはオペランドを効果的に右にシフトし、他のほとんどのコンピュータのように2進小数点がワードの右側にあるのとは対照的に、ワードの左側にあるかのように動作する。除算操作も同様に機能した。

さらにコストを削減するために、内部レジスタを示す従来のフロント・パネルのライトは廃止された。代わりに、Librascopeはフロント・パネルに小型のオシロスコープを取り付け、3つのレジスタ読み取りヘッドからの出力を上下に表示して、オペレーターがビットを確認して読み取ることができるようにした。(オシロの)水平および垂直のサイズ調整機能により、オペレータはビット番号が刻まれたプラスチックのオーバーレイに一致するようにディスプレイを制御できる。ビットを読み取るために、オペレーターはオシロスコープの結果の遷移を数え上げそして数え下げた。

当時の他のコンピュータと異なり、内部データは8進数ではなく16進数で表現され、しかし非常に安価な機械なので、物理的なタイプライターのキーを使用しており、(現在では通常A~Fと表現されるのとは対照的に)タイプ・バスケットの10~15の位置に対応する、6つの非10進文字ついて、それらの値を表すために、結果として0 – 9 f g j k q wが用いられ、その語呂合わせとして"FiberGlass Javelins Kill Quite Well"(ガラス繊維(製)ジャベリンは非常によく殺せる)が用いられた。

## スペック

- ワード長: 31ビット (符号ビットを含むが、空白スペーサー・ビットは含まない)
- メモリ容量: 4096ワード
- 速度: 2つの隣接する物理ワード間のアクセス時間は0.260ミリ秒、2つの隣接するアドレス間のアクセス時間は2.340ミリ秒。
- クロック周波数: 120 kHz
- 消費電力: 1500ワット
- 放熱: 5,000 BTU/h (1,500 W)
- 演算素子: 3つのワーキングレジスタ: Cはカウンタ・レジスタ、Rは命令レジスタ、Aはアキュムレータ・レジスタ。
- 命令形式: ハーフワード形式を使用する16命令
- 技術: 113本の真空管と1350個のダイオード。
- 生産台数: 320~493台
- 初納入: 1956年9月
- 価格: 47,000ドル
- 後継機: LGP-21
- 業績: LGP-30は小規模な科学計算を提供する最初のデスクサイズのコンピュータの1つ。LGP-30はかなり人気があり「500台」が販売され、その中には学生がダートマスALGOL 30とDOPE (ダートマス超単純化プログラミング実験)をマシンに実装したダートマス大学への1台も含まれていた(ちなみに再帰的頭字語DOPEはドーピングの動詞形であり、麻薬を意味する)。

## ACT-III プログラミング言語

LGP-30にはACT-IIIと呼ばれる高級言語が搭載されていた。すべてのトークンをアポストロフィで区切る必要があったため、読みにくくなり、テープを準備するのがさらに困難になった:

## ALGOL 30

ダートマス大学はLGP-30用のALGOL 60の2つの実装を開発した。ダートマスALGOL 30は、実行時のストレージ割り当てを必要とする機能を除く、ALGOLのほぼすべての機能を提供する3パス・システム (コンパイラ、ローダー、インタープリタ) であった。SCALP(Self Contained Algol Processor、自己完結型ALGOLプロセッサ)はプロシージャ宣言なし、条件文はあるが条件式は存在しない、`for`文内には`while`以外の構成要素がない、ネストされた`switch`宣言がない (ネストされた呼び出しは許可される)、そしてブール変数と演算子もない(プログラム全体以外のブロックがない)ALGOLの小さなサブセット用の1パス・システムであった。ACT-IIIと同様に、すべてのトークンをアポストロフィで区切る必要があった。

## マシンの起動(方法)

LGP-30 を起動または「ブート」する手順は、これまでに考案されたものの中で最も複雑なものの1つであった。まず、ブートストラップ紙テープをコンソール・タイプライター、フリーデンFlexowriter(フレキソライター)に取り付け、オペレータはフレキソライターのレバーを押してアドレス・フィールドを読み取り、フロント・パネルのボタンを押してアドレスをコンピュータ・レジスタに転送する。次に、Flexowriterのレバーを押してデータ・フィールドを読み取り、フロント・パネルにあるさらに3つのボタンを押して、データを指定されたアドレスに保存した。このプロセスが繰り返され(たぶん6〜8回)、そしてリズムが生まれた:

(その後)オペレーターはブートストラップ・テープを取り外し、通常のローダーを含むテープを取り付け、詰まらないよう慎重に配置し、さらにいくつかのボタンを押してブートストラップ・プログラムを起動した。通常のローダーが入ったら、コンピュータはプログラム・テープを読み取る準備ができていた。通常のローダーはブートストラップ・ローダーよりもコンパクトなフォーマットのテープを読み取った。各ブロックは開始アドレスで始まるため、エラーが発生した場合はテープを巻き戻して再試行できた。万が一その過程でミスがあった場合、またはプログラムがクラッシュしてローダー・プログラムが破損した場合、プロセスを最初からやり直す必要があった。

## LGP-21

1963年に、Librascopeは、LGP-21という名前のLGP-30のトランジスタ化された改良版をプロデュースした。新しいコンピュータには約460個のトランジスタと約375個のダイオードが搭載されていた。価格はわずか16,250ドルで、前モデルの3分の1であった。残念なことに、それは以前のコンピュータの約3分の1の速度でもあった。

中央コンピューターの重さは約90ポンド (41 kg)、基本システム(プリンター、スタンド含む)は約155ポンド (70 kg)であった。

## RPC 4000

もう一つ(より強力な後継機)は1960年に発表された、General Precision RPC 4000であった。LGP-30と似ているが、トランジスタ化されており、8008ワードの32ビット・ワードのメモリ・ドラム・ストレージを備えていた。500個のトランジスタと4500個のダイオードを持ち、87,500ドルで販売され重さは500ポンド (230 kg)であった。

## 注目すべき用途

- エドワード・ローレンツは、変化する気象パターンをモデル化する試みにLGP-30を使用した。初期データのわずかな違いから予測に大きな違いが生じる可能性があるという彼の発見は、カオス理論の中核概念であるストレンジ・アトラクターとバタフライ効果という用語を生み出すきっかけとなった。
- RPC-4000 (LGP-30の後継機) は、ハッカー叙事詩『メルの物語』でエド・ナザーによって語り直された、メル・ケイが機械語で伝説的なプログラミング作業を実行したコンピュータとしても記憶されている。