IBM 1620
出典: フリー百科事典『ウィキペディア(Wikipedia)』
IBM 1620は、IBMが1959年10月21日に発表した低価格「科学技術計算コンピュータ」。1970年11月19日に販売終了となった。派生機種として IBM 1710、IBM 1720 工業プロセス制御システムがある(工場のリアルタイムプロセス制御用として十分な信頼性を持った初めてのコンピュータ)。
ユーザーの間では 1620 を冗談めかして CADET(Can't Add, Doesn't Even Try; 足し算すらできないし試しもしない)と呼ぶ。というのも1620は加算回路を持たず、メモリ上の加算テーブルを参照して加算を実現していたからである。
目次 |
[編集] 1620のアーキテクチャ
可変ワード長の十進(BCD)コンピュータであり、メモリは20,000桁分から60,000桁分まで、20,000桁分ずつ拡張可能である。アドレスは十進5桁で表され、100,000桁分のアドレス指定が可能だが、60,000桁分以上のメモリを搭載したシステムは製造されなかった。
2桁分のメモリに一度にアクセスする(奇数番目と偶数番目の数字のペア、または1文字の英数字として扱われる)。各数字は6ビットで表され、奇数パリティのCheckビット、フラグ Flagビット、BCDビット 4ビットがあり、以下のようなフォーマットで並んでいる:
C F 8 4 2 1
Fビットは以下のように使われる:
- 数値の最下位桁でセットされた場合、負の数値であることを示す符号ビットとなる。(符号付数値表現)
- 数値の最上位桁でセットされ、ワードの開始を示す。(ワードマーク)
- アドレスの最下位桁でセットされた場合、間接アドレス指定であることを示す。(アドレッシングモード)
- アドレスの中間3桁のFビットで7本のインデックスレジスタの指定をする。(1620 II の場合)
BCDビット群は通常の数字を示す以外に3種類の特殊な値がある(これらは計算には使えない):
C F 8 4 2 1 1 0 1 0 - レコードマーク(レコード右端を示す) 1 1 0 0 - 数字的空白(Numeric Blank、パンチカードで何もパンチされていない状態に相当) 1 1 1 1 - グループマーク(ディスク入出力用のレコード群の右端を示す値)
命令は固定長(12桁)で、2桁の命令コード、5桁の "Pアドレス"、5桁の "Qアドレス"から構成される。
固定小数点数データ「ワード」は、メモリの許す限り2桁から任意の長さまで使用可能である。
浮動小数点数データ「ワード」は、ハードウェアのオプションが必要だが、4桁から102桁まで可能である(仮数部が2~100桁、指数部が2桁)。
このマシンはプログラムが使用可能なレジスタを持たない。全ての命令はメモリからメモリへの操作である。
[編集] アーキテクチャ上の問題点
IBM 1620のアーキテクチャは科学技術分野では非常に人気となったが、情報工学者エドガー・ダイクストラはいくつかの設計上の問題点を EWD37 "A review of the IBM 1620 data processing system" で指摘した(テキサス大学のダイクストラのアーカイブ http://www.cs.utexas.edu/users/EWD/index00xx.html を参照)。
ダイクストラが指摘したのは、1620 の Branch and Transmit 命令(サブルーチンコール)と Branch Back 命令(サブルーチンからの復帰)による1レベルのサブルーチンコールの問題である。復帰先アドレスをレジスタに保持する方式になっており、しかも先述の通りレジスタにプログラムからアクセスすることができない。したがって、入れ子構造にすることができず、プログラミングは極めて限定されてしまう。第二の問題はレコードマークのあるレコードを紙テープから正しく読み込めない点である。1620は紙テープの終わりを示す END OF LINE(EOL)をレコードマークに置換してメモリ上に格納する。したがって、読み込んだ内容を調べるとき、それが元々レコードマークなのかEOLだったのか区別できない。また、読み込んだデータのサイズもプログラムからは分からないようになっていた。この結果、レコードマークを含んだ内容を紙テープにパンチすることもできない(最初のレコードマークでパンチが止まってしまう)し、紙テープをコピーすることもできない。
1620を設置したところでは、可能な限り紙テープよりもパンチカードを入出力に使用した。1620の後継であるIBM 1130は全く異なる16ビットアーキテクチャとなっている。
[編集] ソフトウェア
IBM は 1620 に以下のようなソフトウェアを供給した:
- 1620 Symbolic Programming System (SPS) (アセンブリ言語)
- FORTRAN
- FORTRAN II - 40,000桁分以上のメモリを必要とする
- GOTRAN - 単純なインタプリタ式のFORTRAN [1]
- Monitor I と Monitor II - ディスクオペレーティングシステム
[編集] ハードウェアの実装
1620 の論理回路の大部分はレジスタートランジスタロジック(RTL)であり、ドリフト型トランジスタ(1957年に Herbert Kroemer が発明)を高速化のために使用していた(IBMはこれを SDTRL と呼んでいた)。
回路は2.5×4.5インチ(38×114mm)の紙エポキシプリント基板に片面実装されている。この基板には16ピンの金メッキエッジコネクタがあり、IBMはこれを SMS(標準モジュラーシステム)カードと呼んだ。1枚のカード上の回路は74シリーズ標準ロジックIC程度である。
基板はラック上のソケットに挿入される。これをIBMは「ゲート」と称した。基本構成で以下のようなゲートを備えていた:
- ゲートA - 前方に蝶番があって開いて保守する形である。ゲートBの後ろにある。
- ゲートB - 後方に蝶番があって開いて保守する形である。
- ゲートC - 後方に引き出して保守する形。コンソールタイプライタのインターフェイス。主にリレー回路。
- ゲートD - 後方に引き出して保守する形。標準入出力インターフェイス。
1620では2種類の磁気コアメモリを使用している:
- 主メモリ
- 20,000、40,000、60,000桁。12ビット単位にアドレス指定。1アドレス単位に奇数番桁と偶数番桁のペアを格納。1ビットプレーンを12枚でモジュールを構成し、1~3モジュール。プレーンには10,000個のコアがある。
- メモリアドレスレジスタストレージ(MARS)メモリ
- ワード単位のアドレス指定。16ワードまで(基本構成では8ワードまで使用)。1ワード読み込み、複数ワードクリア/書き込み。1ワード 24ビットで、5桁格納。1プレーン、384個のコア。
ハードウェア実装の異なる2つの機種がある:
- IBM 1620 I
- ALUを持たず、磁気コアメモリ上のテーブルを参照して計算を行う。加減算には100桁分のメモリを使用し、乗算には200桁分のメモリを使用したテーブルを用意している。基本構成では除算はソフトウェアで実現しているが、減算を自動的に繰り返すハードウェアオプションもある。除算オプションと浮動小数点オプションは同時に装備できない。クロック速度は1MHz。
- IBM 1620 II
- ALUを持ち、加減算をハードウェアで実現。乗算は依然としてメモリ上のテーブル参照で行う。加減算用のテーブルに使用していたメモリは新たにインデックスレジスタとして使用。クロック速度は2MHz。
[編集] 開発の経緯
[編集] 小規模科学技術計算向けコンピュータ
1958年、IBMはニューヨーク州ポキプシーの研究所に小型科学技術計算市場についての研究チームを立ち上げた。当初のメンバーは、Wayne Winger(マネージャ)、Robert C. Jackson、William H. Rhodes である。
[編集] 要求仕様と設計
この市場での競争相手は Librascope LGP-30 と Bendix G-15 であった。いずれも磁気ドラムメモリマシンであり、IBMはこの領域では何ら新しいことを提供できないと結論付けられた。競争を有利に運ぶにはIBMが大型コンピュータの領域で開発した技術を利用する必要があったが、同時に価格を抑える必要があった。
この目標に対して、チームは以下の要求事項を定義した:
- 磁気コアメモリを使用する。
- 命令セットを限定する。
- 除算や浮動小数点演算は用意せず、サブルーチンを使用する。
- 可能な限りハードウェアを論理的機能で置き換える。
- 演算回路を持たず、コアメモリ上にテーブルを用意する。
- 高価な入出力部は必要最小限とする。
- パンチカードではなく紙テープを基本とする。
- プリンタは使わず、コンソールのタイプライタを使用する。
内部コードネームは CADETとされた。"Computer with ADvanced Economic Technology"(先進の経済的技術によるコンピュータ)の略であるという者もいるが、同時期に開発された IBM 1401 のコードネームが SPACE であったことから Space Cadet(宇宙飛行訓練生) の連想ではないかという者もいる。
[編集] プロトタイプ
チームにはさらに Anne Deckman、Kelly B. Day、William Florac、James Brenza が加わった。CADET のプロトタイプは1959年春に完成した。
一方、カリフォルニア州サンノゼでも同種の提案書に関して作業が行われていた。IBMは両者を競わせ、ポキプシーの案が採用されることとなった。採用理由は「サンノゼ版は完成形で拡張性がなく、ポキプシー版は各種拡張が可能。拡張できないマシンは推奨できない」ということであった。
経営陣は磁気コアメモリをこのような小型マシンに収められるという点に確信を持てなかった。そこで代替案として磁気ドラムメモリの設計も並行して行われた。製品検査部門での受け入れ試験でコアメモリの障害が何度も発生し、経営陣の悪い予感が当たったように思われた。しかし、冷却用のファンに問題があってノイズが障害を起こしていたことが判明し、磁気コアメモリの問題は解決した。結局、その後何の問題も発生せず、磁気ドラムメモリの設計は不要となった。
[編集] サンノゼでの生産
1959年10月22日の IBM 1620 発表に続いて、IBM内部の組織改編の結果、IBM 1620 はポキプシーのデータ処理部門(大型メインフレーム部門)からサンノゼの汎用製品部門(小型コンピュータとサポート製品部門)に移管されることになった。
サンノゼに移管されると、CADET は "Can't Add, Doesn't Even Try"(足し算もできず、試してもみない)の略と冗談交じりに言われた。これはユーザーにも知れ渡ることとなった。
[編集] レベル毎の実装
- モデルI
- レベルA: プロトタイプ。このレベルだけが垂直な制御パネルである。サンノゼに移管された後で設計が変更され、角度のついた制御パネルになった。
- レベルB: 最初の製品版。アルミニウムそのままのパネルを使用。後のバージョンは白く塗装された。
- レベルC: パンチカードリーダーとパンチが導入された。
- レベルD: ディスク装置が接続可能となった。そのための回路は新たなゲートJに格納された。
- レベルE:
- レベルF: 浮動小数点オプションが導入された。
- レベルG: 最後のモデルI。モデルII向けカードを使って回路がコンパクトになっている。そのため、ゲートJで構成されていた回路がゲートAとゲートBに収まるようになった。
- モデルII: (レベルに関する情報がない)
- モデルIII: System/360に集中するため開発途中でキャンセルとなった。
[編集] 外部リンク
- IBM 1620 restoration project
- 1620 Data Processing System
- IBM 1620 documents bitsavers.org
- IBM 1620 Simulator Applet (IBM 1620 再建プロジェクトの一部)
カテゴリ: IBM | コンピュータ (歴代)