タグベースのアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/18 16:30 UTC 版)
「バロース B5000」の記事における「タグベースのアーキテクチャ」の解説
多くの人にとってB5000は上述の通りスタックマシンとして記憶されている。しかし、アーキテクチャ上重要な点として他にタグベースである点と記述子ベースである点がある。 当初のB5000では、各ワードにビットが付属していて、そのワードがコードなのかデータなのかを示していた。これはセキュリティ機構の一種であり、コードの破壊(ハッカーによる不正な書き換えなど)を防ぐ。 コードを書き換えることができないため、B5000では完全なリエントラント性を備えることができる。あるプログラムを何人のユーザーが実行していてもメモリ上にはそのプログラムのコードはひとつしか存在しない。これによってメモリ利用効率が向上する。 後にB6500でこの機能が強化され、48ビットワードに3ビットのタグが付属するように実装された。内部的なデータビットはワードの0番~47番のビットであり、タグは48~50番である。ビット48はリードオンリービットである。つまりタグの値が奇数であればユーザーレベルのプログラムはそのワードに書き込むことができない。コードに使用されるタグは3となっている。以下にタグの値とその機能を列挙する: タグワード種別説明0 Data 全てのデータ(文字データと単精度数値) 2 Double 倍精度数値データ 4 SIW ステップインデックスワード(ループで使用) 6 未初期化データ SCW ソフトウェアコントロールワード(スタックのカットバックに使用) 1 IRW 間接参照ワード SIRW スタック間の間接参照ワード 3 Code プログラムのコードワード MSCW スタック制御ワードのマーク RCW リターン制御ワード TOSCW スタック制御ワードの先頭 SD セグメント記述子 5 Descriptor データブロック記述子 7 PCW プログラム制御ワード 内部的には一部機種はワード長が60ビットになっている。追加されたビットはハミング符号によるエラー訂正などに使われる。もちろんこれらもプログラマからは見えない。 最近の後継であるClearPathはタグを4ビットに拡張している。 偶数のタグの付いたワードはユーザーデータであり、ユーザープログラムが更新できる。奇数のタグの付いたワードはハードウェアが生成し、プログラムの実行状態を示している。これらのワードは特定の命令やハードウェアが生成し使用するので、そのワードの内容はハードウェアの実装によって変化するが、ユーザープログラムにはその変化は全く影響しない。 タグ1のワードはスタック上のデータアドレスを表している。IRWは現在のスタック上のアドレスを指している。SIRWはスタックを識別する番号を含んでいて、任意のスタック上のデータを参照する。 タグ5のついたワードは記述子である。タグ5のワードはスタック以外のデータのアドレスを含んでいる。 タグ7はプロシージャのエントリポイントを記述するプログラム制御ワード(PCW)である。 タグ3はコードワード自体を表す場合は、スタック上には現われない。ただし、タグ3は MSCW、RCW、TOSCWなどのスタック制御ワードとしても使われていて、これらはスタック上に存在する。
※この「タグベースのアーキテクチャ」の解説は、「バロース B5000」の解説の一部です。
「タグベースのアーキテクチャ」を含む「バロース B5000」の記事については、「バロース B5000」の概要を参照ください。
- タグベースのアーキテクチャのページへのリンク