| 開発者 | イングリッシュエレクトリック |
|---|---|
| メーカー | イングリッシュエレクトリック |
| 世代 | 1 |
| 発売日 | 1961年KDP10として) |
| 寿命 | 5年 |
| 導入価格 | 40万ポンド |
| 販売数 | 13 |
| メモリ | (磁気コアメモリ) |
| ストレージ | 磁気テープ |
| リムーバブルストレージ | 紙テープ |
KDF8 は、 RCA 501のバージョンとしてEnglish Electricが製造した初期の英国製コンピュータです。ソフトウェア互換システムを製造することで、ソフトウェア開発の時間とコストを削減することが目的でした。しかし、製造能力の開発に長いプロセスが必要だったため、このシステムはすぐに他のベンダーのシステムに追い抜かれてしまいました。5 年間の製造期間中に販売されたシステムはわずか数台でした。英国のコンピュータ業界の統合により、English Electric のコンピュータ部門はICLとなる組織の構成要素の 1 つとなりました。
背景
1950 年代後半、イングリッシュ エレクトリックは 2 つの主要なコンピュータ プロジェクトに着手しました。
まず、イングリッシュ・エレクトリック社は、 KDP10(KDP は Kidsgrove Data Processing の略)として知られるRCA 501コンピュータのバージョンを製造しました。これは、固定長の命令と可変長の数値および英数字データを処理する機能を備えた、商用データ処理アプリケーション向けのマシンでした。RCA の元の設計は、英国で製造されたトランジスタ、ダイオード、その他のコンポーネントのタイプを使用するように変更されました。KDP10 は 1961 年に最初に納品されました。1964 年に KDF8 に再指定され、1965 年まで販売が続きました。 [1]このマシンは基本的に RCA 501 と同じで、ライセンスに基づいて製造されたため、イングリッシュ・エレクトリック社は、まったく新しいマシンを開発する費用をかけずに、すべての顧客にフルレンジのコンピュータシステムを提供できました。このマシンは 40 万ポンドで販売されました。販売されたのは 13 台だけでした。[2] [3]
キッズグローブの開発作業から生まれた 2 番目の大型コンピュータは、主に科学研究用に設計された KDF9でした。
1 台の KDF8 が、イングリッシュ エレクトリック カンパニーのコンピュータ局のキッズグローブ (スタッフォードシャー) に設置されました。長年にわたり、合併が相次ぎ、この組織は、イングリッシュ エレクトリック レオ マルコーニ (EELM)、インターナショナル コンピューティング サービス リミテッド (ICSL) となり、最終的には ICL とバークレイズ バンク(バリック) の共同協定の下になりました。
基本機能
プロセッサ/メインストア
KDF8 は、磁気コア メモリを備えたトランジスタ ベースのマシンでした。キッズグローブ コンピュータ ビューローにインストールされたマシンのコア メモリは、64k から当時の最大コア メモリである 96k にアップグレードされました。KDF8 は、8 進数 (基数 8) のアドレス指定システムを使用していました。マシン コード命令は固定長で、8 進数文字が 10 文字です。命令セットは、特に商用利用向けに設計されました。可変長の数値を操作する 4 つの 10 進数演算機能すべてに対するマシン コード レベルの命令があり、可変長データ文字列を効率的に操作するための命令もありました。すべての命令が 10 文字すべてを必要とするわけではありません。使用可能なコア メモリが最小限であることから、プログラマーは、定数の保存や同様のストレージ節約トリックのために、命令で「予備」文字を頻繁に使用していました。
KDF8 は、厳密にはバッチ処理コンピュータであり、一度に 1 つのプログラムを実行します。一度に処理できる計算命令は 1 つだけですが、読み取り命令と書き込み命令 (通常は磁気テープからの書き込みと磁気テープへの書き込み) を 1 つずつ並行して実行することも可能です。マシン コード レベルで設定およびチェックされるハードウェア「ゲート」のシステムを使用して、同期操作の度合いを制御しました。ただし、オペレーティング システムは一切存在しなかったため、これは個々のプログラム レベルで完全に制御する必要がありました。
サービス ビューローの KDP10 は、システムが RCA ゲルマニウム トランジスタで構築されていたため、その場で更新されました。更新の一部は、メイン ロジックをシリコン トランジスタに変換することでした。また、3 文字のアドレス アダーが追加され、マシン サイクルは 15 マイクロ秒で、タイミング パルスは 6 つあり、6 番目のパルスは整定時間用であるため、マシン サイクルは 12.5 マイクロ秒に短縮されました。
特にデータ レコードが磁気テープ上の「実際の」データ ブロックに複数回「バッチ処理」されている場合、すべての同時性チェックをプログラムに手動でコーディングする必要があったため、読み取り/書き込み/計算の完全なオーバーラップを制御するプログラマーのスキル レベルは相当なものでした。自動エラー検出は基本的に文字レベルでのハードウェア パリティ チェックに限定されており、プログラマーが実行できる処理に関するプロセッサ ハードウェア チェックはありませんでした。たとえば、物理メモリを超えるメモリ位置にアクセスするように指示された場合、コンピューターは単に停止します。
周辺機器
磁気ディスク、ドラム、その他の同様の一時的なバックアップ記憶装置はありませんでした。バルクストレージはオープンリールの磁気テープに限られており、各リールの厚さは約 1 インチ、幅は 9 インチ (229 mm) で、最大 2,400 フィート (730 m) のテープを保持できました。データとプログラムはこれらのテープに保存されました。周辺機器のエラーチェックは、すべての読み取りと書き込みのパリティチェックと書き込み許可リングの使用に限定されていました。Kidsgrove KDF8 には、それぞれ 40k 文字/秒の読み取り/書き込み速度の定格を持つ 8 つの磁気テープ装置がオンラインでありました。各テープ装置の高さは約 6 フィート (1.8 m)、幅は 2 フィート (0.61 m) で、プロセッサとメモリのキャビネットのサイズと数はほぼ同じでした。Kidsgrove の構成には、空調設備の整った大きな部屋が必要でした。
実際の KDF8 構成では、テープ ユニットの最大動作数は 8 個 (チャネルごとに 1 台) と考えられていました。各テープ チャネルは、追加のハードウェア ユニットを介して 8 台のテープ デッキのサブグループに分割することができ、理論上は最大 61 台のオンライン テープ ユニットになります (他のデバイスには、少なくとも 3 つの一意にコード化された I/O チャネル識別子が必要でした)。
メインフレームから独立して動作できる他のテープ ユニット/プリンター ペアも利用可能でした。これらは、大量出力用のオフライン印刷機能を提供し、KDF8 を他の作業に使用できるようになりました。
その他の周辺機器には以下が含まれます:
- データおよび(初期)プログラム入力用の紙テープリーダー(1000cps)、
- オペレータのテレプリンタ装置(低速の紙テープパンチが内蔵されている)により、プログラムがオペレータに情報を表示し、オペレータがキーボードを使用して短いプログラムまたはデータ項目を紙テープにパンチアップすることができます。このテレプリンタを使用してコンピュータに直接データを入力することはできませんでした。すべてのオペレータコマンドはオペレータのコンソールから入力する必要がありました。
- 主に失敗したプログラムのコアダンプに使用されるオンライン プリンター。
オンライン プリンタとオフライン プリンタは両方ともインパクト プリンタで、モデルに応じて 120 文字または 160 文字の行を印刷できます。これらは単一の書体で、小文字はありません。プリンタのファン フォールド ペーパーは連続紙で、ページ間にミシン目があり、紙送り機構用のスプロケット穴が紙の両側にありました。特に給与計算などのアプリケーションでは、線/テキスト/色などが事前に印刷されたカスタム ペーパー サイズが一般的で、各ペーパー タイプにページ送りサイズを合わせるために小さなペーパー テープ制御ループが必要でした。
命令セット
各KDF8マシンコード命令は次の形式をとる。
OO AAA RR BBB
この表現では
OO は、実行される命令を識別する 00 から 77 の範囲の 2 文字 (8 進数) のオペレーション コードを表します。AAA は、000000 から 777777 の範囲の 6 文字 (8 進数) の「A」コア アドレスを表します。(理論上の1 ⁄ 4メガの直接アドレス指定可能なメイン ストア、実際の 96K!) RR は、2 文字のレジスタ設定 (「A」および「B」アドレスを変更するために使用される 1 から 7 の番号が付けられた 2 つの可能なレジスタのそれぞれに 1 文字、0 はレジスタ変更がないことを示します) を表します。BBB は、「B」アドレスを表します。これは、形式が「A」アドレスと同じです。
命令はメインストアからレジスタに順番に読み込まれ、実行されました。
例: オンライン紙テープリーダーからストア位置(8進数)200000から始まる位置までデータを読み取る命令は次のようになります。
14 200000 00 770000 (わかりやすくするためにスペースを入れています)
14 はこのタイプの読み取りの操作コード、200000 はデータが読み取られる最下位のストア位置、00 は命令の A または B アドレスにレジスタ変更が行われないことを示し、77 は紙テープ リーダーの (固定) デバイス ID です。(注 - 書き込み操作のデバイス ID として 77 を使用すると、書き込みはオペレーターのテレプリンターに向けられます。これがプログラム エラーによるもので、磁気テープ用の大きなデータ ブロックだった場合は困ったものです.....) 最後の 4 つの 8 進文字 (0000) はこの命令では不要で、命令が処理されるときに無視されます。このような「予備」文字は、使用可能なメイン ストアが非常に限られているため、プログラマーが定数を格納するためによく使用されます。
命令セットのいくつかの側面は進歩しており、商用システムのプログラミングが大幅に容易になりました。
オペレーション コード 51-54 は、10 進文字として格納された可変長の数値に対して、10 進演算の加算、減算、乗算、除算を実行しました。各オペランドの一方の端は、命令の「A」および「B」アドレスに格納されました。もう一方の端は、8 進数 74 の ISS (項目区切り記号) によって識別されました。したがって、数値は任意の長さにすることができます。「セクター比較」命令 (8 進数 43) は、次のアセンブラ言語バージョンで説明しようとしているように、「A」アドレスから「B」アドレスまでの範囲に格納されたデータが、(以前に設定された)「T」レジスタの左側の場所に格納された同じ数の文字の値より大きいか、小さいか、等しいかに応じて、プログラム制御の 3 方向の条件分岐を許可しました。
タグ Op A アドレス RR B アドレス
比較セット£T給与、R
SC 税限度額 税限度額、R
CTC 税額制限以下 税額制限以上
平等TC平等税制限
この例では、給与と税限度額を比較し、それぞれの値に応じて 3 つのプログラム位置のいずれかにジャンプします。アセンブラ規則の ",R" は、名前付きフィールドの右端の文字を表します。CTC は "Conditional Transfer of Control" の略で、TC は (無条件の) Transfer of Control の略です。
上記の「比較」コードでは、元の (KDP10?) 命令セットは右から左に比較し、データ文字列の全長を 1 文字ずつ比較する必要がありました。KDP8 は左から右に比較するように拡張されたため、相対値が明確になるとすぐに比較を停止でき、このような命令の処理が大幅に高速化されました。
可変長データは、特別に指定された文字を使用して処理されました。ISS または項目区切り記号 (8 進数 74、通常は「●」で表されます) は、可変長データ フィールドを区切るために使用されました。8 進数 75 の「<」と 76 の「>」は、データ メッセージの開始と終了を識別し、8 進数 77777 は、慣習と実践によりファイルの終了を識別するために使用されました。そのため、名前や住所などのデータは、データ入力用に紙テープにパンチすることができました (例)
<イアン●テイラー●41●ハイストリート●キッズグローブ●スタッフ>
さまざまな命令がこの可変長データに直接作用し、レコードをたとえば 10 個ずつ磁気テープにバッチ処理して効率的に保存できます。プロセッサと I/O 速度が (今日の基準では) 比較的遅いことを考慮すると、プログラマーの重要なタスクは、テープ上のデータのバッチ処理とレコードごとに必要な計算処理のバランスを取り、同時 I/O と計算操作を整理して、計算と I/O の重複を最大化し、バッチ読み取りの間にテープ デッキが停止しないようにすることでした。
ソフトウェア
オペレーティング システムはありませんでした。プログラムは、オペレーター コンソールを介してオンライン オペレーターによって開始されました。オペレーターは、プログラム間でのメモリの手動クリアとコンピューターの再設定、テープのマウントと交換、オフライン印刷の制御などにも責任を負っていました。
いくつかの標準ソフトウェア パッケージが利用可能であったか、利用可能になりつつありましたが、それらはすべて米国の RCA 組織によって作成されました。これには次のものが含まれます。
- パラメータ駆動型のソート/マージ プログラムで、非常に大量のデータを処理できます。ソート パラメータは、1 回限りのソートの場合は紙テープ リーダーから読み取ることも、"コンパイル" することもできます (実際にはプログラムに格納されるだけです)。ソート/マージ プロセスのさまざまな段階で、ユーザー提供のコードを挿入できる広範なユーザー "フック" がありました。
- EZ-Code と呼ばれるアセンブラ言語コンパイラ。コンパイル時間が大きなオーバーヘッドと見なされていたため、しばらくの間は商用には使用されませんでしたが、後年ますます使用されるようになりました。コンピュータ時間を節約するために、通常、プログラマーは最初にコンパイルし、手動でプログラムをドライチェックし、再コンパイルし、コンパイルされたマシンコードバージョンのプログラムをテストしてデバッグし、修正が行われるたびにプログラムに紙テープマシンコードパッチを巻き上げます。かなり堅牢なコピーが利用可能になると、変更がアセンブラで複製され、プログラムが再コンパイルされて再テストされます。最後の段階が完全に完了することはなく、実稼働プログラムでは実行ごとに紙テープからマシンコードパッチをロードする必要があることも珍しくありませんでした。また、給与、会計、株式登録用の主要な商用パッケージの多くは、アセンブラコンパイラが受け入れられる前に局のスタッフによって作成され、完全にマシンコードのままでした。さらに奇妙なことに、アセンブラの I/O 生成ルーチンは、COBOL ファイル記述テーブル形式に基づいて Tape Control と呼ばれる独自の汎用 I/O パッケージを作成したプログラミング セクションでは使用されていませんでした。これにより、レコードのバッチ処理/バッチ解除、同時読み取り/書き込み操作およびファイル終了条件の制御など、エラーが発生しやすいプログラミングの多くが自動化されました。
- COBOL コンパイラ。これは、初期の経験が必ずしも好ましいものではなかったため、めったに使用されませんでした。注目すべき例外の 1 つは、配線設計プログラム「WRS1」で、これは、後の English Electric KDF9およびSystem 4メインフレーム コンピュータのハードウェア設計に使用されました。もう 1 つの奇妙な点は、COBOL プログラム用の決定表プリプロセッサで、これも COBOL で記述されていました。これは、当時、局のプログラミング スタッフがフローチャートの代わりに決定表を使用する実験を行っていたため、興味深いものでした。ただし、これらのプログラマーは、手書きの決定表からアセンブラで手作業でコードを作成し続け、ある程度の成功を収めましたが、コンパイルのオーバーヘッドにより、プリプロセッサは使用されませんでした。
生産プログラムのスループットを最適化するために、給与計算、売上および購入元帳、株式登録、在庫管理などのソフトウェアの標準パッケージがビューローのプログラマーによって作成され、給与計算などの一部のアプリケーションは、個々のパラメータ設定で個々の顧客の要件を管理しながら、1 回のコンピュータ実行でビューローの多くの顧客からのデータを処理できるようにサポートしました。より複雑なクライアントの要件は、カスタム構築されたプログラムによって満たされました。
コンピュータ操作
非常に小さな (約 20 命令) ブートストラップ ローダーを各プログラム テープの先頭に保持することもできますが、このアプローチも常に使用されるわけではありませんでした。テープ ラベルは (COBOL およびテープ制御管理アプリケーションを除いて) ほとんど存在しませんでした。テープ ローテーションの祖父/父/息子サイクルにより、実動テープは大きな障害から保護されていましたが、注意深い手動制御が必要でした。プログラマー (または運用スイートの実動制御スタッフ) は、どのプログラム テープとデータ テープをどのデバイスにロードするかについての書面による指示と、各プログラムのロード方法と起動方法の概要をオペレーターに渡しました。オペレーターはテープをロードし、コンソールから各プログラムを手動でロードして起動しました。
コンソールは、高さ約 10 インチ (250 mm)、長さ約 5 フィート (1.5 m) の垂直ディスプレイ パネルと、その下にある同様のサイズのわずかに角度のついたコントロール パネルで構成されています。これらの 2 つの部分にはそれぞれ、ラベルの付いたボタンと、それぞれ (およそ) 1 インチ四方の点灯インジケータが並んでいます。ディスプレイ セクションはインジケータで構成されており、点灯すると、進行中の計算、読み取り、および書き込み操作について、個々のマシン コア アドレスとレジスタ レベルでのマシンの現在の実行 (または静的) 状態が、バイナリ (8 進数としてグループ化) 文字で表示されます。プログラムの実行中、このディスプレイは、急速に変化し、点滅する多色のライトの万華鏡のようになります。コントロール パネル セクションは、次に設定するレジスタを選択するための押しボタンと、単一のマシン コア アドレスのレイアウトを反映する中央部分で構成されています。その他のボタンは、より複雑な操作にアクセスします。これらのボタンを使用すると、オペレーターは、手動で入力した 8 進数パターンをマシンのコア ストレージの場所とレジスタに直接選択して入力できます。オペレーターが単一のマシン命令を入力するには、命令の最大 10 個の 8 進文字のそれぞれを選択し、それぞれ正しい (奇数の) パリティ ビットとともにバイナリ パターンとしてキー入力する必要がありました。
参照
- 初期のイギリスのコンピューター
