LARCは第1世代のトランジスタを使って作られたが、Stretchは開発時期が1~2年遅かったので、第2世代のディフュージョン型のトランジスタを使うことができた。これにより、トランジスタの信頼度が向上し、特性のばらつきも小さくなった。そして、最も高速と言われる「Current Mode Logic」という基本回路を使ったのであるが、ゲートやメモリの速度は当初の想定より遅く、目標クロックサイクルは100nsであったのであるが、各ユニットのクロックは300~600nsと3~6倍遅くなってしまった。なお、Stretchはユニットごとに独立のクロックドメインを持ち、ユニット間のデータ伝送は非同期という設計であった。

結果として、メモリのサイクルタイムは2.1μs、64bitの浮動小数点数の加算は1.5μs、浮動小数点数の乗算は2.7μsで実行できた。LARCの倍精度加算は16μs、倍精度乗算は26μsであるのと比べると、浮動小数点の演算は、おおよそ10倍速いことになる。

物量の削減と、論理回路の速度が当初の半分程度しか出ない。メモリも2倍程度遅い、アーキテクチャが複雑で、当初想定していなかったボトルネックがあるなどの理由から、当初想定した性能は達成できず、数値計算が中心のプログラムでは、IBM 704の50倍程度の性能が得られるものもあったが、5倍程度の性能しか出ない計算もあり、平均的にはIBM 704の35倍程度の性能しか出なかったという。

なお、Stretchの消費電力は21kWで、図1.18に見られるように、メモリを含まないCPU部の筐体は30ft×6ft×5ftである。

  • IBM 7030 Stretchのコンソール

    図1.18 StretchのコンソールとCPU筐体 (出典:http://encyclopedia2.thefreedictionary.com/stretch)

1961年にStretchは、UNIVACのLARCを抜いて世界一のスーパーコンピュータとなり、1964年にCDC 6600が登場するまでその地位を保っていた。

Stretchは、より高速のディフュージョントランジスタを使い、高速のCML回路を採用してクロック速度を上げている。さらに最大では6つの演算器を並列に動作させて、性能を稼ぐというアーキテクチャで、Out-of-Order実行や、条件分岐命令の投機実行を行うなど、極めて野心的な設計であった。トランジスタやコアメモリの高速化の恩恵も受けているが、どちらかと言えばAmdahl氏の並列アーキテクチャで性能を引き上げたマシンと言える。

しかし、複雑な制御を行っているので、クロック周波数が当初見積もりより下がってしまった面もあり、顧客に約束した目標性能が出ないため、1350万ドルという契約価格を778万ドルに値下げすることを余儀なくされた。IBM社長のT.J.Watson Jr.はこれに激怒し、1961年に責任者のDunwell氏は平社員に降格されてしまった。

しかし、Stretchで開発した技術は、後にSystem/360などのマシンで大いに役に立つことになり、1966年にその功績が認められ、Dunwell氏はIBM Fellowに任命された。Fellow昇格の記念ディナーで、T.J.Watson Jr.は公式に、降格したことをDunwell氏に詫びたとのことである。

(次回は2月23日に掲載します)