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