Burroughs B5000 のアーキテクチャを学ぶ|高水準言語に最適化された1961年の設計
1961 年に発表された機種が、今の CPU の設計と向き合うときの参考になるとしたら、信じられるだろうか。Burroughs B5000 は、高水準言語の実行を最初から前提に設計されたメインフレームだ。その思想は、現代のコンピュータにも通じる。アーキテクチャを深掘りして気づいた点をまとめる。
B5000 とは何か
Burroughs B5000 は、1961 年にバロース社が発表したメインフレームです。バロース初の自社設計機であり、高水準言語 ALGOL 60 の実行に最適化された点で有名です。
当時の主流がアセンブリ言語中心だったのに対し、B5000 は「ハードウェアが高水準言語を支援する」という思想で作られました。この逆張りが後年高い評価を受けます。
ハードウェアスタックマシン
B5000 の演算は、すべてスタックの先頭に対して行われます。トップ 2 段は A・B レジスタに置かれ、高速化しています。倍精度は X・Y レジスタを併用します。
命令にオペランドフィールドが要らないため、命令セットは非常にコンパクトです。命令を「シラブル」と呼び、1語に6命令詰め込めます。 手続き呼び出しやコンテキストスイッチはハードウェアで高速処理されます。
記述子と仮想メモリ
配列アクセスには記述子を使います。ハードウェアによる境界チェックを自動実行する仕組みです。
記述子内の presence bit が、配列が主記憶にあるかを示します。これにより、商業機としておそらく最初の仮想メモリを実現しました。
タグ付きWord
B5000 系の各 Word はタグを持ち、データの種類を識別します。B6000 系以降は Word の外に 3 ビットタグを使います。
この仕組みで、コードとデータをハードウェア的に区別しました。 データを実行したり、コードを書き換えたりするのが物理的に不可能になります。これは強力なメモリ保護です。今日の W^X という考え方に通じます。
OS とハードウェアの同時設計
OS MCP は、ALGOL の方言である ESPOL で書かれました。ハードウェアと OS が一体で設計された点が特徴です。
割り込みのとき、ハードウェアが自動でコンテキストを保存し、応答ルーチンへ手続き呼び出しを行うという OS 向け機能を搭載しています。
その後の系譜
B5000 の流れは次のように続きました。
- B5000。1961 年に発表。
- B5500。1964 年。
- B6500。1966 年。
- B5700 / B6700。B6700 は CPU 3 台まで構成可能。
- B7700。CPU/I/O プロセッサ計 8 台まで構成可能。
初期からマルチプロセッシングとマルチプログラミングに対応していたのも特筆すべき点です。
現代的視点での学び
B5000 の設計は時代を先取りしていました。タグ付きWord、境界チェック、コードとデータの分離は、現代のセキュリティ設計が同じ問題を解いています。
スタックマシン、仮想メモリ、言語を支援する設計。「ハードウェアとソフトウェアを一緒に設計する」という姿勢は、今の AI エージェントや専用ハードウェアの設計にも通じる価値があります。
このテーマは産みの途中です。深掘りして得た知見があれば、この記事も更新します。