IBM 650

IBM 650（アイビーエムろくごーまる）はIBMの最初のコンピュータのひとつであり、世界初の大量生産されたコンピュータである。1953年に発表され、1954年の初出荷から生産終了の1962年までに2000システム以上が製造された。保守サポートは1969年に終了。
概要.
650は主に科学技術計算用とされ、IBMのパンチカード機器（タビュレーティングマシンの進化した などの機械）のユーザーに対してまともなコンピュータへのアップグレードパスを提供する目的で設計された。同時期に科学技術計算用のIBM 701と、磁気テープ装置を基本としたビジネス用のIBM 702がリリースされたが、650が最も多く製造された。1958年までに800台が販売されたが、これは当時世界で販売されたコンピュータ全体の半分以上を占める台数である。トーマス・J・ワトソン・ジュニアはこれを「コンピュータ界のT型フォード」と称した。
2アドレス命令形式で、データもアドレスも二五進法の二進化十進表現である。メモリは磁気ドラムメモリである。比較的安価でプログラミングも単純であるため、潜水艦乗組員の能力のモデリングから高校でのプログラミング教育まで、様々な用途がここから生まれた。
ハードウェア.
基本の650システムは以下の3つの機器筐体から構成される。
オプション装備として以下のものがある。
磁気ドラムメモリには2000個の符号付十桁のワードが格納できる（文字ならば、1ワードに5文字格納）。アドレス範囲は 0000 から 1999 で、今日の単位で言えば約8.5kBである。1959年に登場した Model 4 では磁気ドラムの容量が倍増して4,000ワードとなった。この装置は必要なデータが格納されている部分が回転によってヘッドのところに来るまで読み書きできないため、非常に低速だった（回転数は12,500rpmで、最適化した平均アクセス時間は2.5ミリ秒）。このため、各命令ワード内の二つ目のアドレスは次に実行すべき命令のアドレスを格納するようになっていた。プログラムを最適化するには、前の命令の実行時間から次の命令語を置くべきドラム上の位置を計算してアドレスを求める必要があった。"table lookup" という特殊な命令が用意されている。これは磁気ドラムの1トラック（50ワードが格納されている）の先頭ワードを比較のための値とし、その後に昇順に整列したデータが並んでいるものとして、ドラムが1回転する間に比較を行い、最初に等しいかまたは大きい値が出現したときのワードのアドレスをアキュムレータにセットする。これを使うと、1963年の1000倍高速なコンピュータの約3分の1程度の速度でテーブル比較が可能である（IBM 7040 で同じことを行うと1.5ミリ秒かかり、IBM 650 で table lookup 命令で同じことをすると5ミリ秒かかる）。高水準言語を使うと、（テーブル参照に限ると）IBM 7040 の方がずっと遅くなる。
オプションの補助装置（IBM 653）は1955年5月3日にリリースされたもので、以下の3つの機能を持っていた。
IBM 533 パンチカードリーダ/パンチ装置は、26桁の英数字を読み取ることしかできない。拡張は可能だが、最大でも50桁を超えられない。そのため1枚から最大でも10ワードまでしか読み取れない（1ワードは5文字）。
1960年に発表された IBM 7070 は「トランジスタ化した IBM 650」としてアップグレードパスを提供するよう設計されている。1959年に登場した IBM 1620 は科学技術計算分野のローエンド用である。どちらも十進方式だが、命令セットの互換性はない。
命令セット.
IBM 650 の命令は、2桁の命令コード、4桁のデータアドレス、4桁の次命令アドレスで構成される。符号は無視される。アキュムレータは20桁で、上半分の10桁と下半分の10桁ずつ別に扱われることが多い。符号は全体で1つである。磁気ドラムからデータを読み込むとディストリビュータという一種のレジスタに格納される。実行中命令はプログラムレジスタに保持される。算術演算は1桁相当の加算器を使って行う。浮動小数点演算機構や磁気コアメモリ、インデックスレジスタ、入出力装置を追加すると、命令も追加される。基本モデルには42種類の命令がある。あらゆるオプションを追加すると、全部で97命令となる。
ソフトウェア.
ソフトウェアとしては、以下のものがあった。