セキュリティ
冷戦時代のIBM製スーパーコンピューターは、たった一つの仕事のために作られた
Secret Cold War IBM Supercomputer Was Built for One Job (spectrum.ieee.org)
要約
NSA(アメリカ国家安全保障局)のためにIBMが開発した「Harvest」(IBM 7950)は、冷戦時代に極秘裏に運用された高性能コンピューターでした。このマシンは、当時の他のどのコンピューターよりも200倍高速に処理を実行し、信号傍受の解析や暗号解読に特化していました。その革新的な設計は、現代のストリーミングデータ処理やAI処理に繋がる先駆的なものでした。
全文翻訳
ComputingMagazineFeature IBMはNSAのために冷戦時代の最も強力な暗号解読機を製造したそれは、地球上の他のどのコンピューターよりも200倍高速にジョブを実行した Peter Capek9時間12分前 NSAの本部でHarvest(IBM 7950)を設置する作業員たち。2つのコンソールは、システムの汎用メインフレームであるStretchと、傍受、暗号、コードの高速分析のために設計されたHarvestのストリーミングコプロセッサの両方の設定を構成していました。National Cryptologic Museum 冷戦の最盛期、非常に特殊なコンピューターが1台あり、その存在は世界に知られないほど極秘でした。それは、キューバ危機(1962年)からベトナム戦争、そして1975年のヘルシンキ協定以降まで運用されていた、アメリカ国家安全保障局(NSA)の主要な暗号処理装置でした。このマシンは、その可動部品が最終的に寿命を迎えるまで稼働を続けました。Harvestコンピューターは、その運用時期だけでなく、その存在自体が重要でした。14年間にわたり、信号情報が核弾頭以外の戦略兵器に匹敵するほど重要だった時代に、NSAの最も機密性の高い傍受データを処理するエンジンでした。NSAのためにIBMが設計・製造したHarvestは、膨大なデータストリームに操作を適用するために設計された最初のマシンの一つであり、リアルタイムで連続ビデオストリームやセキュリティシステムを管理する今日のコンピューターの先駆けとなりました。また、汎用コンピューターに接続された、一つの仕事を例外的にうまくこなすために作られた特殊なヘルパーとして、アドオンとして構築された最初期のマシンの一つでもありました。Harvestのモジュラー設計は、CPUが yoğun video-game や AI処理負荷を実行するために使用する、今日のグラフィックスチップの1960年代版のようなものです。その生々しい処理能力は、Harvestが絶え間ないデータストリームを必要とすることも意味しました。そしてそれは、もう一つの先駆的な成果、数百もの大きな磁気テープカセットのいずれか1つをロボットで取り出すことができる、世界初の自動テープライブラリへと繋がりました。Harvestの前例のない処理能力とストレージ容量を考慮すると、マシンの設計者は当然、システムが情報をどのように処理するかを再考する必要がありました。そこでIBMは、科学者が当時、新興言語Fortranを使って方程式やデータ処理アルゴリズムを記述していたのと同様に、コード解読者が暗号問題を厳密に記述できるように、Alphaというカスタムプログラミング言語を作成しました。メリーランド州フォート・ミードにあるNSAのデータセンターは、当時世界最速のコンピューターの一つを収容していましたが、その機密性の高い、高度なセキュリティを要するコード解読および暗号探査の作業のため、あまり話題に上ることはありませんでした。National Cryptologic Museum Harvestの物語は、機密解除された文書、当時のマニュアル、技術概要から再構築されており、コンピューティングの歴史に新たな、そして予期せぬ展望を提供します。また、国家安全保障上のニーズ、特に冷戦時代に、機密解除された民生用コンピューティングの遥か先までコンピューター技術を押し進めたかどうかのケーススタディも提供します。Harvestの独特な歴史は、時代を数十年先取りした、先見の明のあるアルゴリズム、コーディング、メモリ、ハードウェアアーキテクチャを明らかにしています。しかし、このマシンは一度だけ、ただ一つの目的のために作られ、そして最終的に静かに引退しました。NSAの秘密マシンの心臓部 IBMの画期的な1960年代のトランジスタ製メインフレーム、IBM 7030(通称Stretch)は、Harvest(公式にはIBM 7950として知られていた)のフロントエンドを提供しました。IBMは1961年から63年にかけて、主に科学研究機関である8〜9の顧客にStretchを納入しました。1950年代後半に設計・試作されたStretchは、現在標準となっている8ビットバイトの概念を導入しました。稼働開始から最初の3年間、Stretchは非機密分野で最速のコンピューターでしたが、IBMがStretchの前身であるIBM 704の100倍の速度を達成するという野心的な目標を達成できませんでした。ニューヨーク州ポキプシーのIBMエンジニアがStretchを設計・製造していた頃、同社はNSAのために構築される新しいシステムについても静かに議論していました。当時、NSAの既存の暗号解析コンピューター(オペレーターが手動で各テープ実行をステージングする必要がある大規模なバッチ処理マシン)は、世界中から届く傍受メッセージトラフィックの膨大な量に追いつくのに苦労していました。同庁が必要としていたのは、自動化され、昼夜を問わず、途切れることのないデータストリームを処理できるマシンでした。この要件だけで、Harvestの設計は大きく形作られました。NSAのためにカスタムビルドされたIBMのHarvestシステムは、IBM 7030 Stretchメインフレームと、特注のデータストリームプロセッサを組み合わせていました。Stretchは、Tractor自動テープライブラリを含む通常のコンピューティングと入出力を担当しました。両ユニットは、大規模なメインバンクと、より小さく高速なバンクという2種類のメモリを共有していました。Stretchがストリーミングモードに切り替わると、Harvestはメモリから2つのデータストリーム、PとQを引き出し、それらを並列処理し、結果をRという3番目のストリームとして返しました。Chris Philpot 2度のNSAへの提案失敗の後、1958年にIBMは契約を獲得しました。それは、カスタムコプロセッサで拡張されたStretchベースのマシンと、Tractorと呼ばれる革新的なテープベースのストレージシステムでした。Stretchの得意分野は科学計算のための浮動小数点演算でした。IBMは主に核兵器設計や気象予測のような最先端の研究に取り組む研究所向けにそれを設計しました。対照的に、Stretchの上に構築されるカスタムコプロセッサは、NSAアナリストが英数字、つまり本質的には整数データをふるいにかけるのを助けることになっていました。Harvestのコプロセッサは汎用システムとは対照的でした。むしろ、それはストリーミングコンピューターでした。長い命令シーケンスを実行するのではなく、一つの固定されたステップシーケンスに従い、そのシーケンスをストリーミングされてくる各文字ペアに適用しました。HarvestはメインのStretchプロセッサとメモリを共有し、バーストで動作しました。Stretchが動作しているか、あるいはHarvestのコプロセッサがメモリ内のデータを極端な速度で処理している間、Stretchは一時停止しました。StretchとHarvestは、回路カードにパッケージ化されたトランジスタのみで完全に構築され、大型の冷蔵庫サイズのフレームに収められた最初の大型コンピューターの一部でした。Stretchに関する1962年の技術マニュアルは、CPUが命令ユニット、ルックアヘッドユニット、(並列およびシリアル)算術ユニット、メモリバスユニットといった機能的なセクションに分かれていると説明しています。HarvestはStretchの基本的な回路設計を継承しましたが、それに加えて非従来的なものを追加しました。そのストリーミングユニットは、パイプラインと呼ばれる重複するステージでデータを処理しました。そのため、あるデータバイトペアが比較されている間に、次のペアがメモリからフェッチされていました。Harvestのコプロセッサは、システムメモリからPとQという2つのデータストリームをフェッチし、それらに操作を実行し、結果をRという3番目のストリームとしてメモリに書き込むことで動作しました。各ストリームの幅は1ビットから8ビットまで可能でした。Harvestのメモリはビットアドレス可能であり、ワード境界を完全に無視することができました。例えば、完全なバイトを埋めるのではなく、わずか5ビットをフェッチすることができました。ストリームP、Q、Rには、ループ処理や複雑なパターンでのデータアドレス指定のための柔軟な規定が含まれており、例えば、メモリから短い文字列を繰り返しフェッチすることが可能でした。PとQからのデータは、2つの機能ユニットに供給されました。より単純なのはロジックユニットで、基本的なビット単位の操作(今日のプログラマーが認識するであろう操作と同じ)を実行し、結果をメモリに書き戻しました。より複雑なのはテーブルルックアップユニットでした。これはPとQからの入力データを組み合わせてメモリのアドレスを形成し、そのアドレスを使ってカウンターを1つ進めたり、特定のビットを設定したり、格納された値を取得したりすることができました。後者のユニットは、その時代の暗号エンコーダー/デコーダーマシン内部のローターホイールのように機能し、暗号マシンの配線に従ってある値を別の値に電子的に置き換えていました。Harvestの複雑さは、NSAの一部の担当者を困惑させました。