| 開発者 | イングリッシュエレクトリック |
|---|---|
| メーカー | イングリッシュエレクトリック |
| 世代 | 2 |
| 発売日 | 1964年 |
| 出荷数 | 29 |
| オペレーティング·システム | タイムシェアリング ディレクター、Eldon 2、EGDON、COTAN |
| CPU | トランス結合ダイオード・トランジスタ・ロジック(ゲルマニウム・ダイオード、約 20,000 個のトランジスタ、約 2,000 個のトロイド・パルス・トランスで構成)@ 1 MHz |
| メモリ | 48 ビット コア ストレージ 32K ワード (192K バイト) |
| 質量 | 5.2ショートトン(4.7t) |
KDF9は、イングリッシュ・エレクトリック(1968年にインターナショナル・コンピューターズ・リミテッド(ICL)に合併)によって設計・製造された初期のイギリスの48ビットコンピュータである。最初のマシンは1964年に稼働し、29台のうち最後の1台は1980年に国立物理学研究所で廃止された。KDF9は数学および科学処理の分野向けに設計され、ほぼこの分野で使用された。1967年には、9台がイギリスの大学や専門学校で使用されていた。[1]並行して開発されたKDF8は、商用処理ワークロードを対象としていた。
KDF9 は、コア メモリへのオフセットを使用してプログラムを個別の仮想アドレス空間に分離し、マルチプログラミングを直接サポートしたマシンの初期の例です。このプラットフォーム用にいくつかのオペレーティング システムが開発されましたが、その中にはスマートターミナル サーバーとして機能するPDP-8マシンを介して完全にインタラクティブな使用を提供するものもありました。Algol 60用のチェックアウト コンパイラとグローバル最適化コンパイラの両方をはじめ、多数のコンパイラが利用可能でした。
建築
KDF9の論理回路は完全にソリッドステートだった。KDF9は、ゲルマニウムダイオード、約20,000個のトランジスタ、約2,000個のトロイドパルストランスから構成されるトランス結合ダイオードトランジスタロジックを使用していた。[2]これらは1MHzのクロックで動作し、各クロックサイクルで500ns間隔で250nsのパルスを2つ出力した。最大構成では、サイクルタイムが6マイクロ秒の48ビットコアストレージの32Kワード(192Kバイト)が組み込まれていた。各ワードには、1つの48ビット整数または浮動小数点数、2つの24ビット整数または浮動小数点数、6つの8ビット命令シラブル、または8つの6ビット文字を保持できた。[3]また、整数と浮動小数点の両方の形式でダブルワード(96ビット)数を効率的に処理する機能もあった。しかし、バイトまたは文字のアドレス指定機能がなかったため、数値以外の作業は比較すると劣っていました。その標準文字セットは、 Algol 60 向けのFriden Flexowriter紙テープ コードのバージョンであり、Algol の添え字 10 などの珍しい文字が含まれていました。ただし、他の各 I/O デバイス タイプは、その独自のサブセットを実装していました。たとえば、紙テープから読み取れるすべての文字を正常に印刷できるわけではありませんでした。
レジスター
CPU アーキテクチャには 3 つのレジスタ セットがありました。Nestは16 段のプッシュダウン スタックの算術レジスタで、SJNS (サブルーチン ジャンプ ネスティング ストア) は同様の戻りアドレスのスタックでした。Qストアは16 個のインデックス レジスタのセットで、各レジスタは 48 ビットで、カウンタ(C)、増分(I)、および修飾子(M) の各部分に分かれており、それぞれ 16 ビットでした。メモリ参照命令のフラグによって、アドレスが Q ストアの M 部分で変更されるかどうか、また変更される場合は C 部分を 1 減らして M 部分を I 部分の内容で増やすかどうかが指定されました。これにより、カウント ループのコーディングが非常に効率的になりました。さらに 3 つの Nest レベルと 1 つの SJNS レベルがディレクター (オペレーティング システム) 用に予約されており、明示的なレジスタの保存と復元を行わずにショート パス割り込みを処理できます。
命令セット
命令は 1 音節、2 音節、または 3 音節でした。「バイト」という言葉は、IBM 7030 Stretchの設計者によって 8ビットのグループを表すために造られましたが、まだよく知られておらず、English Electric は、現在バイトと呼ばれているものに「音節」という言葉を使用していました。ほとんどの演算はネストの先頭で行われ、ゼロ アドレス、1 音節の命令が使用されましたが、アドレス演算とインデックスの更新は Q ストアで個別に処理されました。Q ストアの処理と一部のメモリ参照命令では 2 音節が使用されました。16 ビット アドレス オフセットのメモリ参照命令、ほとんどのジャンプ命令、および 16 ビット リテラル ロード命令では、すべて 3 音節が使用されました。
高密度の命令コーディングとレジスタ セットの集中的な使用により、スカラー積や多項式の内部ループなどの一般的な科学コードに必要なストア アクセスは比較的少なくて済みました。これにより、比較的遅いコア サイクル タイムが大幅に相殺され、KDF9 は、はるかに有名であるものの 8 倍高価で商業的にはあまり成功しなかった同時代のマンチェスター/フェランティ アトラス コンピュータの約 3 分の 1 の速度を実現しました。
マルチプログラミング(タイムシェアリング)
KDF9 は、最も初期の完全にハードウェアで保護されたマルチプログラミング システムの 1 つでした。タイムシェアリング ディレクターという非常にシンプルなオペレーティング システムの制御下で、最大 4 つのプログラムを同時に実行できました。各プログラムは、BA (ベース アドレス) レジスタと NOL (ロケーション数) レジスタによって独自のコア領域に制限されていました。各プログラムには独自のスタック セットと Q ストア レジスタがあり、プログラムがディスパッチされるとアクティブ化されるため、コンテキストの切り替えが非常に効率的でした。
各プログラムはハードウェア I/O デバイスを直接操作できましたが、ハードウェア チェックによって Director が割り当てたものに制限されていました。割り当てられていないデバイスを使用しようとすると、エラー割り込みが発生しました。Nest または SJNS がオーバーフィル (またはオーバーエンプティ) になった場合、または NOL レジスタで指定されたアドレスより上のアドレスにあるストレージにアクセスしようとした場合にも、同様の割り込みが発生しました。若干異なるのはロックアウト割り込みです。これは、現在 I/O デバイスによって使用されているストア領域にアクセスしようとした場合に発生し、DMA バッファーへのアクセスがハードウェアによって相互に排他的になります。プログラムがロックアウトでブロックされた場合、または I/O 転送が終了するのを自発的に待機した場合、プログラムが中断され、Director はブロックされていない最も優先度の高いプログラムに切り替えました。ロックアウトが解除された場合、または待機中の転送が終了し、原因となっているプログラムの優先度が現在実行中のプログラムよりも高かった場合、I/O 制御 (IOC) ユニットが割り込み、即時のコンテキスト スイッチを可能にしました。 IOC は、優先度の高いプログラムが優先度の低いプログラムによって使用中のデバイスを待機し、その場合に別の割り込みを要求するという優先度の逆転を回避するための規定も作成しました。
その後のオペレーティングシステムには、リーズ大学のEldon 2 [4]や、UKAEAカルハム研究所がグラスゴー大学と共同で開発したCOTANなどがあり、端末を処理するためのPDP-8フロントエンドを備えた完全にインタラクティブなマルチアクセスシステムでした。
Kidsgrove と Whetstone Algol 60 コンパイラは、同クラスのコンパイラとしては最初のものでした。Kidsgrove コンパイラは最適化を重視し、Whetstone コンパイラはデバッグを目的とした解釈型オブジェクト コードを生成しました。後者をインストルメント化することで、Brian Wichmann はプログラムの動作に関する統計情報を取得し、科学計算用のWhetstoneベンチマーク[5]を生み出しました。これが今度は非数値計算ワークロード用のDhrystoneベンチマーク[6]のきっかけとなりました。
回想
マシンコードの命令は、公式には音節八進法[7](「slob-octal」または「slob」表記法[8] [9]とも呼ばれる)と呼ばれる八進法の形式で記述されました。これは8ビットを3桁の8進数で表しますが、最初の桁は最上位2ビットのみを表し、他の桁は残りの3ビットの2つのグループを表します。
English Electric では、その前身であるDEUCE に、GIP (General Interpretive Programme) に基づくよく使われたマトリックス方式がありました。真空管マシンの信頼性の低さから、マトリックス演算のエラーを検出するためにサムチェック機構が組み込まれました。[nb 1]この方式では、固定小数点演算ハードウェアを使用したブロック浮動小数点が使用され、サムチェックは正確でした。しかし、対応する方式が KDF9 に実装されたとき、数学的分析が限られている新しい概念である浮動小数点が使用されました。サムチェックはもはや正確ではないことがすぐに明らかになり、使用可能なチェックを提供するためのプロジェクトが設立されました。(浮動小数点では、(A + B) + C は必ずしも A + (B + C) と同じではありません。つまり、 + 演算は結合的ではありません。) しかし、すぐにトランジスタ マシンのエラー率は問題ではないことが認識されました。トランジスタ マシンは正しく機能するか、まったく機能しないかのどちらかでした。その結果、サムチェックのアイデアは放棄されました。初期のマトリックス パッケージは、その後開発されたより正式なテスト パッケージよりかなり前に長時間のパフォーマンス チェックを生成できたため、非常に便利なシステム テスト ツールであることが証明されました。
KDF9 はプロジェクト KD9 (Kidsgrove Development 9) として開発され、その名称の「F」は、発売時にマシンの名前を何にするかという長く退屈な議論の末、当時の会長が「F と呼んでも構わない」と提案したという伝説があります。真実はもっと平凡で、名前はマーケティング マネージャーによって基本的にランダムに選ばれました。[10] (商業志向のコンピューターの並行開発と使用については、 KDF8も参照してください。)
EGDONオペレーティングシステムは、 UKAEA ウィンフリスに行くことからそのように名付けられました。トーマス・ハーディの著書「帰郷」では、ウィンフリス・ヒースはエグドン・ヒースと呼ばれています。EGDON FortranはEGTRANと呼ばれていました。[10]エルドンは、リーズ大学のコンピューターが改装されたエルドン礼拝堂に設置されていたことからそのように名付けられました。
物理的な
機械の重量は10,300ポンド(5.2米トン、4.7t)以上。割り込みタイプライター付き制御盤300ポンド(136kg)、メイン記憶装置および入出力制御装置3,500ポンド(1,587kg)、演算およびメイン制御装置3,500ポンド(1,587kg)、電源装置3,000ポンド(1,360kg)。[11]
注記
- ^ 合計チェックは、マトリックスの一部または全部が誤って上書きされた場合でも、プログラミング エラーに対して同様に十分に保護されます。
参考文献
- ^ ロバーツ、ゴロンウィ (1967-03-06)。 「コンピューター」。議会討論 (ハンサード)。 HC 。2017-07-08に取得。
- ^ 「KDF9 コンピュータ - 30 年後」
- ^ English Electric KDF9: 商業、産業、科学向けの超高速データ処理システム(PDF) (製品チラシ). English Electric . c. 1961. 発行番号 DP/103. 096320WP/RP0961. 2020-07-27 にオリジナルからアーカイブ(PDF)されました。2020-07-27に取得。
- ^ David Holdsworth (2009-10年冬)。「KDF9タイムシェアリング:Eldon 2はEGDONではない!」Computer RESURRECTION – 49号。Computer Conservation Society 。2010年10月3日閲覧。
- ^ Curnow, HJ および Wichman, BA「合成ベンチマーク」Computer Journal、第 19 巻、第 1 号、1976 年 2 月、pp. 43–49。
- ^ Weiss, Alan. 「Dhrystone ベンチマーク: 歴史、分析、「スコア」、および推奨事項」(PDF)。
- ^ ディレクター - マニュアル(PDF) (フローチャート). English Electric . 1960年代頃. 2020年7月27日時点のオリジナルよりアーカイブ(PDF) . 2020年7月27日閲覧。(注: 「音節八進法」という用語に言及しています。)
- ^ Beard, Bob (1997年秋) [1996-10-01]. 「KDF9コンピュータ — 30年後」(PDF) . Resurrection - The Bulletin of the Computer Conservation Society . No. 18. Computer Conservation Society (CCS). pp. 7–15 [9, 11]. ISSN 0958-7403. 2020-07-27にオリジナルからアーカイブ(PDF) . 2020-07-27に取得。[1] (注: これは、1996 年 10 月 1 日に英国マンチェスターの科学産業博物館で行われた協会の北西グループへの講演の編集版です。この講演では、「slob」および「slob-octal」という用語が「syllabic octal」と同義であると言及されています。)
- ^ 「English Electric KDF9 コンピューターのアーキテクチャ」(PDF)。バージョン 1。Computer Conservation Society (CCS)。2009 年 9 月。CCS-N4X2。2020年 4 月 4 日時点のオリジナルよりアーカイブ(PDF) 。2020 年 7 月 27 日閲覧。(注: ビアードの 1997 年の記事を参照)
- ^ ab 「(再)KDF9の紹介」www.findlayw.plus.com . 2020年12月27日閲覧。
- ^ 「English Electric | コンピュータ革命の販売 | コンピュータ歴史博物館」www.computerhistory.org . p. 27。
外部リンク
- イングリッシュ・エレクトリックKDF9
- KDF9のハードウェア
- KDF9のソフトウェア
- KDF9とベンチマーク
- KDF9: 参考文献
- KDF9文字コード
- ee9、 GNU Adaで書かれた KDF9 エミュレータ
- PASKAL、Pascal で書かれた KDF9 Pascal クロスコンパイラ
- English Electric KDF9 の納入リストとアプリケーションは、Wayback Machineで 2020-04-04 にアーカイブされています
- KDF9 Algol コンパイラの歴史
- Whetstone KDF9 Algol トランスレータ
- KDF9 Algol コンパイラの逸話
- ダイクストラ氏の訪問によるKDF9アルゴルに関するプレゼンテーション
- KDF9 ネスト (画像)
- Atlas Autocode コンパイラの KDF9 ポートのソース コード
