IBM 1620
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/19 08:55 UTC 版)
固定ワード長の二進法ではなく、可変ワード長の十進法を採用し、最初に学ぶコンピュータとしては非常に魅力的だった。このためアメリカでは IBM 1620 で初めてコンピュータを体験したという学生が多かった[1]。
磁気コアメモリのサイクルタイムは Model I では20μ秒、Model II では10μ秒である。2006年時点の一般的コンピュータの主記憶に比べると1000倍ほど時間がかかっている。
ユーザーの間では 1620 を冗談めかして CADET(Can't Add, Doesn't Even Try; 足し算すらできないし試しもしない)と呼ぶ。というのも1620は加算回路を持たず、メモリ上の加算テーブルを参照して加算を実現していたからである[2]。
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アドレス"(通常は演算の引数を示し、即値のこともある)から構成される。分岐命令などでは、Pアドレスしか使わない。
固定小数点数データ「ワード」は、メモリの許す限り2桁から任意の長さまで使用可能である。
浮動小数点数データ「ワード」は、ハードウェアのオプションが必要だが、4桁から102桁まで可能である(仮数部が2から100桁、指数部が2桁)。
このマシンはプログラムが使用可能なレジスタを持たない。全ての命令はメモリからメモリへの操作である。
アーキテクチャ上の問題点
IBM 1620のアーキテクチャは科学技術分野では非常に人気となったが、情報工学者エドガー・ダイクストラはいくつかの設計上の問題点を EWD37 "A review of the IBM 1620 data processing system" で指摘した[3]。
ダイクストラが指摘したのは、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
- FORTRAN II は、40,000桁分以上のメモリを必要とする。これらは使い方が複雑だった[4][5]。そのため、サードパーティ製のFORTRANがいくつか開発されており、ライス大学のプログラマ Bob Richardson が開発した FLAG (FORTRAN Load-and-Go) などがある。こちらはメモリ上に常駐し、連続してソースコードを受け付けてコンパイルすることができた。
- GOTRAN
- 単純なインタプリタ式のFORTRAN[6]。こちらの使い方はずっと単純である。ただし、FORTRANの完全な実装ではない。
- Monitor I と Monitor II
- ディスクオペレーティングシステム。この上でディスクベースの SPS と FORTRAN II が動作する。また、ディスクユーティリティプログラムも含まれている。どちらのシステムも20,000桁以上のメモリをそれ自体が必要とし、当然ながら1311磁気ディスク装置を必要とする。
IBM 1620 関連のマニュアル類はPDF形式でアーカイブされている[7]。
- ^ Zannos, Susan (2002). Edward Roberts and the Story of the Personal Computer. Mitchell Lane Publishers. p. 19. ISBN 978-1-58415-118-0 Oklahoma State University had an IBM 1620 for engineering students in the 1960s.
- ^ Ornstein, Severo (2002). Computing in the Middle Ages: A View from the Trenches 1955-1983. Lexington, KY: 1st Books. p. 62. ISBN 978-1-4033-1517-5
- ^ Dijkstra archive at the University of Texas
- ^ IBM Systems Reference Library – 1620 FORTRAN (with FORMAT) pp. 51-56 (PDF)
- ^ IBM Systems Reference Library – IBM 1620 FORTRAN II Programming System Reference Manual pp. 22-28 (PDF)
- ^ http://hissa.nist.gov/mlists/ibm1620/199901/19990128-2.html
- ^ http://www.bitsavers.org/pdf/ibm/1620/
- ^ Personal recollections of Donald N. Huff, son of Vearl N. Huff
- ^ Spicer, Dag (July-Sept. 2005), “The IBM 1620 Restoration Project”, IEEE Annals of the History of Computing 27 (3): 33–43., doi:10.1109/MAHC.2005.46
- 1 IBM 1620とは
- 2 IBM 1620の概要
- 3 ハードウェアの実装
- 4 開発の経緯
- 5 周辺装置
- IBM 1620のページへのリンク