バロース B5000
最初のB5000はロバート・S・バートン(英語版)率いるチームが設計した。先進的なマシンとして知られている。 コンピュータアーキテクトとして知られる John Mashey は最も素晴らしいアーキテクチャの1つに B5000 を挙げ、「私が見た中でも最も革新的なハードウェア/ソフトウェアの結合された例であり、当時としては極めて先進的だった」としている。後継としてB5500やB5700がある。その後、直接の後継は存在しないが、B6500はB5000シリーズから大きな影響を受けている。またオペレーティングシステムの Master Control Program(英語版) (MCP) がB5000シリーズから移植されている。
追加されたビットはハミング符号によるエラー訂正などに使われる。もちろんこれらもプログラマからは見えない。
最近の後継であるClearPathはタグを4ビットに拡張している。
偶数のタグの付いたワードはユーザーデータであり、ユーザープログラムが更新できる。奇数のタグの付いたワードはハードウェアが生成し、プログラムの実行状態を示している。これらのワードは特定の命令やハードウェアが生成し使用するので、そのワードの内容はハードウェアの実装によって変化するが、ユーザープログラムにはその変化は全く影響しない。
タグ1のワードはスタック上のデータアドレスを表している。IRWは現在のスタック上のアドレスを指している。SIRWはスタックを識別する番号を含んでいて、任意のスタック上のデータを参照する。
タグ5のついたワードは記述子である。タグ5のワードはスタック以外のデータのアドレスを含んでいる。
タグ7はプロシージャのエントリポイントを記述するプログラム制御ワード(PCW)である。
タグ3はコードワード自体を表す場合は、スタック上には現われない。ただし、タグ3は MSCW、RCW、TOSCWなどのスタック制御ワードとしても使われていて、これらはスタック上に存在する。
NEWPで書かれたOSとALGOLで書かれたユーザープログラムの中間に位置するものとしてミドルウェアがある。ミドルウェアはDCALGOL (data comms ALGOL) で記述される。これはOSおよびプロセス間のメッセージ交換に使われる。例えばCOMSというミドルウェアはネットワークからメッセージを受け取り、それを特定のプロセスやMCS(メッセージ制御システム)にディスパッチする。
MCSは複数のユーザーセッションを単一のMCSスタックで制御する。負荷バランス制御もMCSレベルで行われる。例えば、ひとつのスタックで30ユーザーまで管理するとした場合、ユーザーセッションが増えたらスタックを増やすことで対応する。このため、B5000では普通ならセッション毎にプロセスを生成するところをひとつのスタックで複数セッションを制御するため、性能的に有利である。MCSは大規模トランザクション処理の根幹も担っている。
MCSは外部コプロセッサ TCP (Terminal Control Processor) とやりとりする。