JPS6113260B2 - - Google Patents
Info
- Publication number
- JPS6113260B2 JPS6113260B2 JP50149427A JP14942775A JPS6113260B2 JP S6113260 B2 JPS6113260 B2 JP S6113260B2 JP 50149427 A JP50149427 A JP 50149427A JP 14942775 A JP14942775 A JP 14942775A JP S6113260 B2 JPS6113260 B2 JP S6113260B2
- Authority
- JP
- Japan
- Prior art keywords
- segment
- address
- record
- register
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、コンピユータシステムに関し、特に
データベース演算の部分における改良されたデイ
ジタルコンピユータに関する。 エレクトロニクスによるコンピユータは、主と
して真空管による第1世代ハードウエアから、ト
ランジスタによる第2世代ハードウエア、更には
集積回路を主体とする第3世代へと成長してき
た。 こられの異なる世代のハードウエアに伴い、ソ
フトウエアにも異なる世代が存在し、その第1世
代は主として機械語、アセンブラおよびサブルー
チンを特徴とし、第2世代は高級言語、モニター
およびマクロアセンブラを特徴としていた。第3
世代のソフトウエアは、オペレーテイングシステ
ム、オンラインリアルタイムシステム、マルチプ
ログラミングシステム、およびデータベース管理
システムを特徴としている。 第1世代のソフトウエアと組合わされた第1世
代のハードウエアおよび第2世代のソフトウエア
と組合わされた第2世代のハードウエアは、各ジ
ヨブが主として直列に実行されるバツチ演算処理
を主としていた。更に、第3正代のハードウエ
ア/ソフトウエアシステムも又バツチ処理を目的
としているがマルチプログラミングの出現により
いくつかのジヨブは直列ではなく並列に実行でき
処理の為の入力情報が生じた時にこれを受入れる
事が可能となる。 第4世代のシステムは、主として多様に変化し
たプロセサアプリケーシヨンが可能な伝送系およ
び制御系として分類され、情報の提供がバツチプ
ログラムによらず総じてリアルタイムである様な
主として伝送データにより(即ち、システムの制
御がオペレータ操作によらず主として入力により
行われる)動作させられる。 前記の各世代のコンピユータシステムの変遷に
おいて、最も大きな要望はコンピユータシステム
のデータベースのアクセスの為の有効な方法の開
発であつた。システムのデータベースの開発にお
いては、最初の成界は各々の使用の為の多様なデ
ータベースの発達であつた。この様なデータベー
スの数が増大した結果、過度の記憶容量の要求と
冗長なデータ記憶が問題となり、この為異なる時
点において冗長データをある領域では正確に他の
領域では不正確に更新させることによりその問題
を悪化させる事になつた。あるシステムは多くの
データベースを単一のデータベースに綜合する事
によりこれ等の問題の解決策を講じた。ハネウエ
ル社の集中データ記憶装置(IDS)はこれらの問
題緩和の為に設計されたシステムの一例であつ
た。この集中データ記憶装置は1つの中央データ
ベースからなつており、このデータベースは例え
ば棚卸し管理システム、社内監査手続、および賃
金支払手続等によりデータベース中の関連データ
アクセスの為使用できた。この中央集中データベ
ースにおいては、いくつかの演算機能の需要に共
通の単一の記録解説情報が収められていた。例え
ば、棚卸し管理および社内監査処理はウエアハウ
ス内のある部分の数値をアクセスする事になる。 集中データベースを用いる有効な手法は、ソフ
トウエア技術の絶え間ない改良により変ぼうを遂
げた。「セツト概念」とは、各記録間の関係を基
にして集中データベースにおける記録のアクセス
を可能にする手法である。典型的な関係は、例え
ば製造部等の如き特定の部内の全従業員である。
この製造部門は「オーナ記録」と呼ばれるものに
より記述され、同部の従業員は「メンバー記録」
と呼ばれるものにより記述される。ある部門の部
員の如き関係を記述するセツトは、これによりオ
ーナ記録によりアクセスができ、この記録により
ソフトウエアをして全てのメンバー記録を得さし
め、例えばその部内の全ての従業員名を打出させ
る。 この開発の段階においては、集中データ記憶装
置は、前記の純粋なデータの諸問題のあるもの、
即ち異なるデータベース内の冗長データおよび多
くの記録コピーの更新の問題を解決した。この問
題は単一の記録により解決され、従つてこの記録
はデータ記憶装置の大きさの減少を可能にさせ、
データの単一コピーを行う。データベースを用い
る他の問題が演算実行効率の領域に残る。このセ
ツト概念はコンピユータの新しい利用法を与える
が、それ以来この新しい技法を補佐する為現在の
中央処理装置に存在する専用のハードウエア命令
はなかつた。その結果、セツトの第1のメンバー
の発見の如きセツト演算は、加算、ロード、記憶
等の一連の標準的な機械の命令によりソフトウエ
アにおいて編成される事になる。その結果、第1
のメンバー発見は、セツト内への記録の挿入、お
よび他のセツト演算等の比較的簡単なセツト演算
に対して長い実行時間を要する。 必要とされるのは、セツト演算法を用いる集中
データ技法で既に解決された如き伝統的なデータ
問題を解決し、更に実行時間および他のシステム
効率パラメータにおいて有効なデータベースシス
テムである。これを実行する為には、専用のハー
ドウエア/フアームウエアが維持する諸命令が前
記セツト演算において補助作用を行うために必要
とされた。例えば、ある記録に対するデータベー
スポインタを見出す単一命令により、伝統的な計
算機における同一の演算を実施するのに必要な一
連の5乃至10の標準的なハードウエア命令よりも
ずつと短い時間で実行が可能になる。 本発明の主目的は、改良された汎用デイジタル
コンピユータの提供にある。 本発明の他の目的は、データベースマネージメ
ント演算の改良された性能を有する改良された汎
用デイジタルコンピユータの提供にある。 本発明の更に他の目的は、データベースポイン
タを対応するセグメント化されたアドレスに変換
し、次いで前記のセグメント化されたアドレスを
データレジスタにロードするハードウエア/フア
ームウエア命令の提供にある。 本発明の更に別の目的は、ユーザプログラムお
よびオペレーテイングシステムプログラムにおけ
る命令数の減少にある。 前記の各目的は、メモリーからデータベースポ
インタを取出し、このポインタをそのポインタク
ラスに従つてセグメント化されたアドレスに変換
し、このセグメント化されたアドレスをベースレ
ジスタにロードする一連のハードウエア/フアー
ムウエアで編成された諸命令の1つを与える本発
明の1実施態様により達成される。もしポインタ
がデータベース型の記録の一部である場合、この
ポインタは又インデツクスレジスタにもロードさ
れる。 本発明による装置の動作環境は、アドレス指定
可能なスペースの複数個のセグメントからなるメ
モリー(第1図の102)を有し、前記各セグメ
ントが1つのセグメント番号(SEG)によつて
識別されて1つ以上の記録(第15図)のセツト
を記憶するものであり、各セツトは1つのオーナ
ー記録と1つ以上のメンバー記録とを有し、各記
録はそのセグメント番号と、該セグメント内でそ
の記録を予め定められた記憶位置から相対的に位
置決めするためのオフセツトアドレス情報
(SRA)とによつて前記メモリー内で位置決めさ
れ、前記複数のセツトの各々の中の各記録は、そ
のセツト内の他の複数の記録の内の所定のもの即
ちポイント記録の夫々の識別を与えるための1つ
以上のデータベースポインター(第15b図の1
513)を記憶しており、各ポインターは、それ
によつて前記セツトの予め定められた記録に関し
て相対的に識別される前記ポイント記録の記憶位
置を表すような、内部にプログラムされたデータ
処理装置である。そしてその用途は、前記の環境
において用いられる、データベース記録をその記
録を指示するポインタにより直接発見するための
XI命令を実現する装置であつて、この装置は、 (a) 前記命令のアドレスシラブル(第19b図の
1922)により前記複数のセツトの内の1つ
の中の1つの記録から前記データベースポイン
ターの内の1つ(第15g図、第15h図)を
アクセスし、該ポインターをスクラツチパツド
記憶内の便宜的に「X」と呼ばれる第1の一時
的レジスタへ転送するための第1の手段(第2
0a図の2005)と、 (b) 前記セツトの内の所用のものを保持する前記
メモリーの1区分の実際の構造を定義し、かつ
該1区分が存在するセグメントの番号(第16
b図の1625)を含む、ページデイスクリプ
タ(第16b図)を記憶位置から得るために、
前記第1の一時的レジスタ内の前記データベー
スポインターの内容の「領域−ページ」フイー
ルド(第15h図の1572,1573)に応
答する第2の手段(第17図,第20a図20
07)と、 (c) 前記セツト中の行オフセツト要素の配列表
(第16a図の1602)から、前記セツト内
の予め定めた記憶位置に関する前記ポイント記
録の各セツト内相対的位置即ちオフセツト(第
16a図の1603)を得るために、前記第1
の一時的レジスタ内の前記データベースポイン
タの内容のもう1つの「行」フイールド(第1
5h図の1574)に応答する第3の手段(第
20b図の2021)と、 (d) 前記ポイント記録を保持するメモリーの記憶
位置の表示を得るために、前記セグメント番号
(第16b図の1625)と前記ポイント記録
の相対位置即ちオフセツト(第16a図の16
03)とを第2の一時的レジスタBRへロード
するための第4の手段(第20c図の202
4)と、 から成り、前記識別される記録のポインターの識
別情報をそのメモリー中の記憶位置を表示するセ
グメント化アドレスに自動的に変換するように動
作する装置である。 1 解説 A 開示の範囲および構成 大規模なコンピユータにおいて直接発見データ
ベース命令に用いられる手段は必然的に複雑にな
る。更に、本発明の教示する内容の完全な理解は
この様な手段が帰属する分野に対してある程度の
知識があれば得られる。この為、本発明の原理が
有効に用いられる型式の典型的な大規模データ処
理システムの全般的な構成を簡単に解決する事が
望ましい。又、本発明がこれに基く基本的概念を
最初に確定しかつこれを理解する事も望ましい事
である。 このデータベースのセツト概念は、コンピユー
タ特にプログラミングの歴史の殆んどにおいて共
通して使用されてきたいくつかの技法(テーブ
ル、リスト、チエーン、リング、フアイル、およ
びフイールド配列)を統一するものである。(こ
の概念は、「データ構造セツト」がその名称と性
質の多くを得る更に一般的な数学的セツト概念の
特定化である。本文の開示においては、「セツ
ト」なる語は常にデータ構造において用いられ数
学的な意味ではない。) 多くのシステムは前記のセツト概念をソフトウ
エアにおいてのみ有する。データベースマネージ
メント領域において、ハネウエル社の集中データ
記憶装置(IDS)は、複雑な製造作業および銀行
業の諸問題の処理の為このセツト概念の広範囲の
使用を最初に開拓している。IDSはセツト実現の
チエーン(リング)形態を用いている。これ等の
基本的概念は、ハードウエア/フアームウエアに
偏成され、漸新で改良されたデイジタルコンピユ
ータとする為に現存の計算機内に内蔵される。 このセツトとは、自然世界の対象物を緊密に近
似させるデータ構造を形成しかつこれを記憶する
のに必要な3つの補完的な概念(記録、フイール
ドおよびセツト)の1つである。もし自然世界が
実在する実体に照して考慮される場合はこれ等の
実体を記述する特性、又これ等実体を関連付ける
関係があり、これらに対等な情報システムの概念
は、それぞれ、記録、フイールド、およびセツト
である。学校における単純な事例においては、こ
の実体とは教師および子供となろう。教師の特性
のあるものは、「名前」、「学年」および「教室」
である。子供の特性のあるものは、「名前」、「年
令」および「両親の名前」である。教師と子供と
の間にはある関係が存在する。この自然世界の状
態のある情報システムのモデルにおいては、記録
の2つのクラス(1つは教師、他は子供)が形成
される。各教師の記録においてはあるフイールド
があり、1つは教師の名前を、他は学年を、他は
クラスの室番号を記憶する。各々の子供の記録
は、子供の名前のフアイルと、彼の年令のフアイ
ルと、更に彼の両親の名前のフアイルとを有す
る。 この情報システムは各子供の記録を前記セツト
概念を偏成する様に選択されたいくつかの方法の
1つによりこの教師の記録に結び付ける事ができ
る。これは、フアイル内で全ての子供の記録をそ
の教師の記録配列の後に物理的に配置させる事に
より行われよう。これはテーブル又は記録配列と
呼ばれる。本実施態様はセツト概念のチエーン
(リング)編成技法を包含する。この形態におい
ては、オーナ記録は第1のメンバー記録に対する
ポインタを含んでいる。各メンバー記録は更に後
続のメンバー記録に対するポインタを含んでい
る。このセツトの最後のメンバー記録は再びオー
ナ記録に対するポインタを含んでいる。又、オー
ナ記録又はオーナ記録及び全メンバー記録により
前の記録のアドレスと、又できればメンバー記録
用のオーナー記録に対するポインタとを保持する
附加的ポインタフイールドを与える様な変更が可
能である。 前述の如きデータ構造セツト概念は数学的なセ
ツト概念における改善であり、即ちデータ構造セ
ツトにおいてはこのセツトの定義は「オーナー」
ロールの場合に実施されている。セツトのメンバ
ーシツプは「メンバー」ロールの場合に実施され
る。各記録は現在異なるセツトのオーナおよびメ
ンバーの如き多くのロールを有する。この特性の
為、実世界の複雑性をモデル化する複雑なデータ
構造の形成および諸操作が可能になる。この数学
的セツト概念の改善においては、定義としてのオ
ーナーから各メンバーへ、又任意のメンバーから
オーナへセツトの定義を再編成することができ
る。 データ構造セツトに対しては、セツト定義は通
常オーナー記録内のあるフイールドの数値に基づ
き、このセツトのメンバーシツプは可能なメンバ
ー記録内の対等のフイールドのマツチした値によ
りコンピユータ内に再編成される。この事象の利
点は、マツチングデータを保持するメンバー記録
からこのフイールドを除去し、かつ再偏成の為オ
ーナー記録に依存させる事により屡々利用され
る。 前述の学校の例においては、教師は教師/子供
のセツトの「オーナー」の役割を有するものとさ
れた。この例を拡張する為次の如く設定する。即
ち、殆んどの学校においては、教師と子供間の関
係は単純な関係(1:n)ではなく、子供が異な
る課目に対して異なる教師を有するとする複雑な
関係(m:n)であるとする。この教師対子供の
複雑な関係は、新しい人間関係の実体である「生
徒」、および2つの単純な関係「教師対生徒」お
よび「子供対生徒」に転換される。教師はそのク
ラスの生徒として多くの子供を持ち、生徒として
の子供は多くの教師を持つている。この新しい
「生徒」の実体は、その一を他から識別記述する
為の「課目」と「時限」なる属性を有する。1人
の子供はいくつかの課目に対して同一の教師を持
ち得る。 このデータ構造セツト概念は4つの基本的な特
質を有する。即ち、 (1) 1つのセツトはオーナーロールにおいて1つ
それも唯一で常に1つの記録を有する。 (2) 1つのセツトはメンバーロールにおいては
零、1又はそれ以上の記録を有し、その数は時
間と共に変化する。 (3) どの記録も同時に零、1又はそれ以上のセツ
トのオーナーたり得る。 (4) どの記録も同時に零、1又はそれ以上のセツ
トにおけるメンバーたり得て、この為同時にい
くつかのオーナー記録により所有され得る。各
記録は特定のセツトのメンバーとして唯1度形
成される。メンバーロールはオーナーロールと
干渉しない。 「次の」と「前の」なる記事は記憶装置プログ
ラムコンピユータにおける問題の解に対する基礎
となる手続のアルゴリズムに対して重要な概念で
ある。同時に1つの記録を取扱う手続上の制約に
加えて、もしセツト中のメンバー記録が予め定め
たデータ数値で並べられたシーケンス又は時間的
挿入順のシーケンス(FIFO:先入れ先出し、又
はLIFO:後入れ先出し)において伝送できる場
合、あるアルゴリズムに対して更に重要な簡素化
と言う結果が得られる。「最初」および「最後」
なる記述はデータのアルゴリズムの反復的実行の
開始および停止に関して重要である。この様に、
あるセツトにおけるメンバーの順序はそのセツト
の合理的な諸操作に対する前提要件である。 各記録のフアイル内のセツトへの関与操作の第
1の要因は、現実世界の諸関連のモデル化であ
り、又ある特定の関係を表わすフアイル内の選択
された記録の呼出しを助長する事である。これ等
は表1に列記されている。
データベース演算の部分における改良されたデイ
ジタルコンピユータに関する。 エレクトロニクスによるコンピユータは、主と
して真空管による第1世代ハードウエアから、ト
ランジスタによる第2世代ハードウエア、更には
集積回路を主体とする第3世代へと成長してき
た。 こられの異なる世代のハードウエアに伴い、ソ
フトウエアにも異なる世代が存在し、その第1世
代は主として機械語、アセンブラおよびサブルー
チンを特徴とし、第2世代は高級言語、モニター
およびマクロアセンブラを特徴としていた。第3
世代のソフトウエアは、オペレーテイングシステ
ム、オンラインリアルタイムシステム、マルチプ
ログラミングシステム、およびデータベース管理
システムを特徴としている。 第1世代のソフトウエアと組合わされた第1世
代のハードウエアおよび第2世代のソフトウエア
と組合わされた第2世代のハードウエアは、各ジ
ヨブが主として直列に実行されるバツチ演算処理
を主としていた。更に、第3正代のハードウエ
ア/ソフトウエアシステムも又バツチ処理を目的
としているがマルチプログラミングの出現により
いくつかのジヨブは直列ではなく並列に実行でき
処理の為の入力情報が生じた時にこれを受入れる
事が可能となる。 第4世代のシステムは、主として多様に変化し
たプロセサアプリケーシヨンが可能な伝送系およ
び制御系として分類され、情報の提供がバツチプ
ログラムによらず総じてリアルタイムである様な
主として伝送データにより(即ち、システムの制
御がオペレータ操作によらず主として入力により
行われる)動作させられる。 前記の各世代のコンピユータシステムの変遷に
おいて、最も大きな要望はコンピユータシステム
のデータベースのアクセスの為の有効な方法の開
発であつた。システムのデータベースの開発にお
いては、最初の成界は各々の使用の為の多様なデ
ータベースの発達であつた。この様なデータベー
スの数が増大した結果、過度の記憶容量の要求と
冗長なデータ記憶が問題となり、この為異なる時
点において冗長データをある領域では正確に他の
領域では不正確に更新させることによりその問題
を悪化させる事になつた。あるシステムは多くの
データベースを単一のデータベースに綜合する事
によりこれ等の問題の解決策を講じた。ハネウエ
ル社の集中データ記憶装置(IDS)はこれらの問
題緩和の為に設計されたシステムの一例であつ
た。この集中データ記憶装置は1つの中央データ
ベースからなつており、このデータベースは例え
ば棚卸し管理システム、社内監査手続、および賃
金支払手続等によりデータベース中の関連データ
アクセスの為使用できた。この中央集中データベ
ースにおいては、いくつかの演算機能の需要に共
通の単一の記録解説情報が収められていた。例え
ば、棚卸し管理および社内監査処理はウエアハウ
ス内のある部分の数値をアクセスする事になる。 集中データベースを用いる有効な手法は、ソフ
トウエア技術の絶え間ない改良により変ぼうを遂
げた。「セツト概念」とは、各記録間の関係を基
にして集中データベースにおける記録のアクセス
を可能にする手法である。典型的な関係は、例え
ば製造部等の如き特定の部内の全従業員である。
この製造部門は「オーナ記録」と呼ばれるものに
より記述され、同部の従業員は「メンバー記録」
と呼ばれるものにより記述される。ある部門の部
員の如き関係を記述するセツトは、これによりオ
ーナ記録によりアクセスができ、この記録により
ソフトウエアをして全てのメンバー記録を得さし
め、例えばその部内の全ての従業員名を打出させ
る。 この開発の段階においては、集中データ記憶装
置は、前記の純粋なデータの諸問題のあるもの、
即ち異なるデータベース内の冗長データおよび多
くの記録コピーの更新の問題を解決した。この問
題は単一の記録により解決され、従つてこの記録
はデータ記憶装置の大きさの減少を可能にさせ、
データの単一コピーを行う。データベースを用い
る他の問題が演算実行効率の領域に残る。このセ
ツト概念はコンピユータの新しい利用法を与える
が、それ以来この新しい技法を補佐する為現在の
中央処理装置に存在する専用のハードウエア命令
はなかつた。その結果、セツトの第1のメンバー
の発見の如きセツト演算は、加算、ロード、記憶
等の一連の標準的な機械の命令によりソフトウエ
アにおいて編成される事になる。その結果、第1
のメンバー発見は、セツト内への記録の挿入、お
よび他のセツト演算等の比較的簡単なセツト演算
に対して長い実行時間を要する。 必要とされるのは、セツト演算法を用いる集中
データ技法で既に解決された如き伝統的なデータ
問題を解決し、更に実行時間および他のシステム
効率パラメータにおいて有効なデータベースシス
テムである。これを実行する為には、専用のハー
ドウエア/フアームウエアが維持する諸命令が前
記セツト演算において補助作用を行うために必要
とされた。例えば、ある記録に対するデータベー
スポインタを見出す単一命令により、伝統的な計
算機における同一の演算を実施するのに必要な一
連の5乃至10の標準的なハードウエア命令よりも
ずつと短い時間で実行が可能になる。 本発明の主目的は、改良された汎用デイジタル
コンピユータの提供にある。 本発明の他の目的は、データベースマネージメ
ント演算の改良された性能を有する改良された汎
用デイジタルコンピユータの提供にある。 本発明の更に他の目的は、データベースポイン
タを対応するセグメント化されたアドレスに変換
し、次いで前記のセグメント化されたアドレスを
データレジスタにロードするハードウエア/フア
ームウエア命令の提供にある。 本発明の更に別の目的は、ユーザプログラムお
よびオペレーテイングシステムプログラムにおけ
る命令数の減少にある。 前記の各目的は、メモリーからデータベースポ
インタを取出し、このポインタをそのポインタク
ラスに従つてセグメント化されたアドレスに変換
し、このセグメント化されたアドレスをベースレ
ジスタにロードする一連のハードウエア/フアー
ムウエアで編成された諸命令の1つを与える本発
明の1実施態様により達成される。もしポインタ
がデータベース型の記録の一部である場合、この
ポインタは又インデツクスレジスタにもロードさ
れる。 本発明による装置の動作環境は、アドレス指定
可能なスペースの複数個のセグメントからなるメ
モリー(第1図の102)を有し、前記各セグメ
ントが1つのセグメント番号(SEG)によつて
識別されて1つ以上の記録(第15図)のセツト
を記憶するものであり、各セツトは1つのオーナ
ー記録と1つ以上のメンバー記録とを有し、各記
録はそのセグメント番号と、該セグメント内でそ
の記録を予め定められた記憶位置から相対的に位
置決めするためのオフセツトアドレス情報
(SRA)とによつて前記メモリー内で位置決めさ
れ、前記複数のセツトの各々の中の各記録は、そ
のセツト内の他の複数の記録の内の所定のもの即
ちポイント記録の夫々の識別を与えるための1つ
以上のデータベースポインター(第15b図の1
513)を記憶しており、各ポインターは、それ
によつて前記セツトの予め定められた記録に関し
て相対的に識別される前記ポイント記録の記憶位
置を表すような、内部にプログラムされたデータ
処理装置である。そしてその用途は、前記の環境
において用いられる、データベース記録をその記
録を指示するポインタにより直接発見するための
XI命令を実現する装置であつて、この装置は、 (a) 前記命令のアドレスシラブル(第19b図の
1922)により前記複数のセツトの内の1つ
の中の1つの記録から前記データベースポイン
ターの内の1つ(第15g図、第15h図)を
アクセスし、該ポインターをスクラツチパツド
記憶内の便宜的に「X」と呼ばれる第1の一時
的レジスタへ転送するための第1の手段(第2
0a図の2005)と、 (b) 前記セツトの内の所用のものを保持する前記
メモリーの1区分の実際の構造を定義し、かつ
該1区分が存在するセグメントの番号(第16
b図の1625)を含む、ページデイスクリプ
タ(第16b図)を記憶位置から得るために、
前記第1の一時的レジスタ内の前記データベー
スポインターの内容の「領域−ページ」フイー
ルド(第15h図の1572,1573)に応
答する第2の手段(第17図,第20a図20
07)と、 (c) 前記セツト中の行オフセツト要素の配列表
(第16a図の1602)から、前記セツト内
の予め定めた記憶位置に関する前記ポイント記
録の各セツト内相対的位置即ちオフセツト(第
16a図の1603)を得るために、前記第1
の一時的レジスタ内の前記データベースポイン
タの内容のもう1つの「行」フイールド(第1
5h図の1574)に応答する第3の手段(第
20b図の2021)と、 (d) 前記ポイント記録を保持するメモリーの記憶
位置の表示を得るために、前記セグメント番号
(第16b図の1625)と前記ポイント記録
の相対位置即ちオフセツト(第16a図の16
03)とを第2の一時的レジスタBRへロード
するための第4の手段(第20c図の202
4)と、 から成り、前記識別される記録のポインターの識
別情報をそのメモリー中の記憶位置を表示するセ
グメント化アドレスに自動的に変換するように動
作する装置である。 1 解説 A 開示の範囲および構成 大規模なコンピユータにおいて直接発見データ
ベース命令に用いられる手段は必然的に複雑にな
る。更に、本発明の教示する内容の完全な理解は
この様な手段が帰属する分野に対してある程度の
知識があれば得られる。この為、本発明の原理が
有効に用いられる型式の典型的な大規模データ処
理システムの全般的な構成を簡単に解決する事が
望ましい。又、本発明がこれに基く基本的概念を
最初に確定しかつこれを理解する事も望ましい事
である。 このデータベースのセツト概念は、コンピユー
タ特にプログラミングの歴史の殆んどにおいて共
通して使用されてきたいくつかの技法(テーブ
ル、リスト、チエーン、リング、フアイル、およ
びフイールド配列)を統一するものである。(こ
の概念は、「データ構造セツト」がその名称と性
質の多くを得る更に一般的な数学的セツト概念の
特定化である。本文の開示においては、「セツ
ト」なる語は常にデータ構造において用いられ数
学的な意味ではない。) 多くのシステムは前記のセツト概念をソフトウ
エアにおいてのみ有する。データベースマネージ
メント領域において、ハネウエル社の集中データ
記憶装置(IDS)は、複雑な製造作業および銀行
業の諸問題の処理の為このセツト概念の広範囲の
使用を最初に開拓している。IDSはセツト実現の
チエーン(リング)形態を用いている。これ等の
基本的概念は、ハードウエア/フアームウエアに
偏成され、漸新で改良されたデイジタルコンピユ
ータとする為に現存の計算機内に内蔵される。 このセツトとは、自然世界の対象物を緊密に近
似させるデータ構造を形成しかつこれを記憶する
のに必要な3つの補完的な概念(記録、フイール
ドおよびセツト)の1つである。もし自然世界が
実在する実体に照して考慮される場合はこれ等の
実体を記述する特性、又これ等実体を関連付ける
関係があり、これらに対等な情報システムの概念
は、それぞれ、記録、フイールド、およびセツト
である。学校における単純な事例においては、こ
の実体とは教師および子供となろう。教師の特性
のあるものは、「名前」、「学年」および「教室」
である。子供の特性のあるものは、「名前」、「年
令」および「両親の名前」である。教師と子供と
の間にはある関係が存在する。この自然世界の状
態のある情報システムのモデルにおいては、記録
の2つのクラス(1つは教師、他は子供)が形成
される。各教師の記録においてはあるフイールド
があり、1つは教師の名前を、他は学年を、他は
クラスの室番号を記憶する。各々の子供の記録
は、子供の名前のフアイルと、彼の年令のフアイ
ルと、更に彼の両親の名前のフアイルとを有す
る。 この情報システムは各子供の記録を前記セツト
概念を偏成する様に選択されたいくつかの方法の
1つによりこの教師の記録に結び付ける事ができ
る。これは、フアイル内で全ての子供の記録をそ
の教師の記録配列の後に物理的に配置させる事に
より行われよう。これはテーブル又は記録配列と
呼ばれる。本実施態様はセツト概念のチエーン
(リング)編成技法を包含する。この形態におい
ては、オーナ記録は第1のメンバー記録に対する
ポインタを含んでいる。各メンバー記録は更に後
続のメンバー記録に対するポインタを含んでい
る。このセツトの最後のメンバー記録は再びオー
ナ記録に対するポインタを含んでいる。又、オー
ナ記録又はオーナ記録及び全メンバー記録により
前の記録のアドレスと、又できればメンバー記録
用のオーナー記録に対するポインタとを保持する
附加的ポインタフイールドを与える様な変更が可
能である。 前述の如きデータ構造セツト概念は数学的なセ
ツト概念における改善であり、即ちデータ構造セ
ツトにおいてはこのセツトの定義は「オーナー」
ロールの場合に実施されている。セツトのメンバ
ーシツプは「メンバー」ロールの場合に実施され
る。各記録は現在異なるセツトのオーナおよびメ
ンバーの如き多くのロールを有する。この特性の
為、実世界の複雑性をモデル化する複雑なデータ
構造の形成および諸操作が可能になる。この数学
的セツト概念の改善においては、定義としてのオ
ーナーから各メンバーへ、又任意のメンバーから
オーナへセツトの定義を再編成することができ
る。 データ構造セツトに対しては、セツト定義は通
常オーナー記録内のあるフイールドの数値に基づ
き、このセツトのメンバーシツプは可能なメンバ
ー記録内の対等のフイールドのマツチした値によ
りコンピユータ内に再編成される。この事象の利
点は、マツチングデータを保持するメンバー記録
からこのフイールドを除去し、かつ再偏成の為オ
ーナー記録に依存させる事により屡々利用され
る。 前述の学校の例においては、教師は教師/子供
のセツトの「オーナー」の役割を有するものとさ
れた。この例を拡張する為次の如く設定する。即
ち、殆んどの学校においては、教師と子供間の関
係は単純な関係(1:n)ではなく、子供が異な
る課目に対して異なる教師を有するとする複雑な
関係(m:n)であるとする。この教師対子供の
複雑な関係は、新しい人間関係の実体である「生
徒」、および2つの単純な関係「教師対生徒」お
よび「子供対生徒」に転換される。教師はそのク
ラスの生徒として多くの子供を持ち、生徒として
の子供は多くの教師を持つている。この新しい
「生徒」の実体は、その一を他から識別記述する
為の「課目」と「時限」なる属性を有する。1人
の子供はいくつかの課目に対して同一の教師を持
ち得る。 このデータ構造セツト概念は4つの基本的な特
質を有する。即ち、 (1) 1つのセツトはオーナーロールにおいて1つ
それも唯一で常に1つの記録を有する。 (2) 1つのセツトはメンバーロールにおいては
零、1又はそれ以上の記録を有し、その数は時
間と共に変化する。 (3) どの記録も同時に零、1又はそれ以上のセツ
トのオーナーたり得る。 (4) どの記録も同時に零、1又はそれ以上のセツ
トにおけるメンバーたり得て、この為同時にい
くつかのオーナー記録により所有され得る。各
記録は特定のセツトのメンバーとして唯1度形
成される。メンバーロールはオーナーロールと
干渉しない。 「次の」と「前の」なる記事は記憶装置プログ
ラムコンピユータにおける問題の解に対する基礎
となる手続のアルゴリズムに対して重要な概念で
ある。同時に1つの記録を取扱う手続上の制約に
加えて、もしセツト中のメンバー記録が予め定め
たデータ数値で並べられたシーケンス又は時間的
挿入順のシーケンス(FIFO:先入れ先出し、又
はLIFO:後入れ先出し)において伝送できる場
合、あるアルゴリズムに対して更に重要な簡素化
と言う結果が得られる。「最初」および「最後」
なる記述はデータのアルゴリズムの反復的実行の
開始および停止に関して重要である。この様に、
あるセツトにおけるメンバーの順序はそのセツト
の合理的な諸操作に対する前提要件である。 各記録のフアイル内のセツトへの関与操作の第
1の要因は、現実世界の諸関連のモデル化であ
り、又ある特定の関係を表わすフアイル内の選択
された記録の呼出しを助長する事である。これ等
は表1に列記されている。
【表】
クセス法 ル中の各記録の検索
最初の4つのアクセス法は主として変動処理お
よび間合せ処理において使用され、この場合は、
特定の実体と、実体の関連するグループとの記録
状態の決定、又はそれ等の記録状態の更新に対応
する必要がある。フアイルシーケンスアクセス法
は主として周期的なバツチフアイルの更新とレポ
ートの形成の為に使用される。同一記録において
は必要に応じ5つの全ての方法によるアクセスが
可能である。同様に、これらのアクセス法を特定
の効果を得るために組合わせて使用する事も可能
である。 前述の事例を用いれば、ある教師の記録は「デ
ータキーアクセス法」により検索され、従つてそ
の教師の全生徒の記録は「セツトメンバーアクセ
ス法」で検索できる。各生徒の記録については、
子供の記録は「セツトオーナーアクセス法」で検
索できる。あるいは、検索は子供の記録に対して
は「データキーアクセス」から開始して、次いで
全ての子供の生徒記録を呼出し、次に教師の記録
を呼出す。このセツトから得られる基本的な検索
の機会は下の表2に示される。
最初の4つのアクセス法は主として変動処理お
よび間合せ処理において使用され、この場合は、
特定の実体と、実体の関連するグループとの記録
状態の決定、又はそれ等の記録状態の更新に対応
する必要がある。フアイルシーケンスアクセス法
は主として周期的なバツチフアイルの更新とレポ
ートの形成の為に使用される。同一記録において
は必要に応じ5つの全ての方法によるアクセスが
可能である。同様に、これらのアクセス法を特定
の効果を得るために組合わせて使用する事も可能
である。 前述の事例を用いれば、ある教師の記録は「デ
ータキーアクセス法」により検索され、従つてそ
の教師の全生徒の記録は「セツトメンバーアクセ
ス法」で検索できる。各生徒の記録については、
子供の記録は「セツトオーナーアクセス法」で検
索できる。あるいは、検索は子供の記録に対して
は「データキーアクセス」から開始して、次いで
全ての子供の生徒記録を呼出し、次に教師の記録
を呼出す。このセツトから得られる基本的な検索
の機会は下の表2に示される。
【表】
各メンバー セツトオーナー セツトのオーナー
各セツトに適用する1組の基本的演算がある。
これらは、更に良く知られる記録およびフイール
ドに関する基本的演算に対する補足となる。各セ
ツトに関する基本的演算結果の収集と、記録とフ
イールドに対する補足的な基礎演算は、ユーザが
演算を行うデータをアクセスし、修正し、移動さ
せ、消去する等を行うハードウエア/フアームウ
エアの命令の集合である処の操作用施設として知
られるものを構成する。基礎事項(即ち、ハード
ウエア/フアームウエアの命令)のこの集合は、
フイールド(即ち、データ項目)、記録、セツ
ト、および手続用論理制御に関する諸演算に再分
割する事ができる。 下記のハードウエア/フアームウエアの命令群
はフイールド中のデータの操作を行うものであ
る。実行すべき演算に必要なフイールド記述情報
(例、大きさ、ロケーシヨン、記録モード)は、
演算と関連するデータデイスクリプタの一部とし
て保持される。このグループに含まれる演算と
は、例えば移動(move)、比較、ハツシユ、加
算、減算、乗算および除算等である。 以下のハードウエア/フアームウエアの命令群
はデータの直接アクセスおよび直列アクセス処理
の両方を行う。これ等は、データ記録の発生、そ
の後の検索、修飾、テスト、および破壊を行う。
記録フアームウエア/ハードウエア命令とは、記
録の発生、記録破壊、直接記録の発見、直列記録
の発見および記録タイプのテストである。 以下のセツトのハードウエア/フアームウエア
命令の群は、従来のデータ処理の内容と、前のデ
ータベースとメツセージマネージメントシステム
の組込みブロツクを提供する。これらはセツトの
発生、そのアクセス、およびその操作およびテス
トを行う。このハードウエア/フアームウエアの
命令とは、記録の挿入、記録の取出し、相対的記
録の発見(最初、最後、次の、前の、およびi番
目の発見)、オーナー記録の発見、空のセツトの
テスト、挿入されたメンバーのテスト、オーナー
記録の開始、およびメンバー記録の開始である。 ベースレジスタのハードウエア/フアームウエ
ア命令の下記のグループは、データベースのアク
セスに対する現時点のプロセス状態の決定および
修飾を与える。このハードウエア命令とは、ベー
スレジスタのアンロード、ベースレジスタおよび
ベースレジスタをロードする前述の「発見」命令
のナル(null)化である。 アプリケーシヨン用データベースにおける記録
のアクセスを構成しかつこれを行う為に使用され
ると同様に、各セツトも又非常に多種のシステム
のソフトウエア領域において使用できる。 以下の表に示されるのは、システムのソフトウ
エアの領域のリストで、その各々についてはセツ
ト概念の前記領域におけるある用途を列挙したも
のである。この表は明確な用途を示すもので、完
全を期すものではない。 1 データベースシステム a インデツクス構成(シーケンスインデツクス
とランダムインデツクス) b データ記述構造 c 共有アクセス制御リスト d プロセスリスポンスビリテイ構造 2 フアイルシステム a カタログ構成 b アクセス権制御 3 メツセージシステム a メールボツクスインデツクスの構成 b キユー用メツセージ c マルチエレメントメツセージの呼出し 4 プログラミングシステム a プログラムライブラリの管理 b テキスト編集 c プログラム制御構造 d バインデイングの為のシンボル参照とシンボ
ル定義構造 e コンパイルの為の中間プログラム形態 5 オペレーテイング・システム a ジヨブのキユー(待ち行列) b 資源割付け表 c デツドロツク検出 d イベントのプロセスの待ちキユー(I/O完
了、タイマー) e デイスパツチングキユー 1 一般的論義 本発明は、オペレーテイングシステムにより関
連させられた以下に記述されたハードウエアシス
テム環境(エンバイロメント)において作用を行
うものである。第1図において、サブシステムと
は、プロセササブシステム101、記憶装置サブ
システム102、および1個以上(32個迄)の周
辺装置サブシステム103である。プロセササブ
システムは1つの中央処理装置(CPU)104
と4個迄の入出力制御装置(IOC)105とを含
んでいる。各周辺装置サブシステムは、1個の周
辺装置制御装置(PCU)106と、多数の機器
アダプタ(DA)107と、256個迄の周辺装置の
入出力機器108を含む。記憶装置サブシステム
102は、各々32乃至512キロバイトの1乃至4
個の半導体メモリーモジユールからなる。 プロセササブシステム101においては、
CPU104はシステムの為の基本処理演算を行
い、又メモリー102とインターフエイスしてい
る。 IOC105は、記憶装置サブシステム102と
周辺機器106間の全ての情報交換を制御する。 A 中央処理装置(CPU) 中央処理装置(CPU)は、主メモリーシンク
ロナイザ109と、バツフア記憶装置110と、
計算ユニツト111からなる各種要素と、オプシ
ヨンのエミユレーシヨン設備112とを含む。主
メモリーシンクロナイザ109は、計算ユニツト
111とバツフア記憶装置110とIOC109と
の間の主メモリーの使用上の競合を解決する。こ
の競合は以下の如く優先順位で解決される。即
ち、IOCはメモリー書込み(計算ユニツトから)
が続き、次いで(バツフア記憶装置への)メモリ
ー読込みが続く最も高い優先順位を有する。主
CPUは又、主メモリー指定を制御するアドレス
制御ユニツトACU131と、主メモリーの最後
に使用されたアドレスの記憶に用いられた連想メ
モリAS132とを含んでいる。バツフア記憶装
置110は小形の高速バツフアメモリーであつ
て、主メモリーの選択された領域を再生して、平
均メモリーアクセス時間を減らす様計算ユニツト
とインターフエイスする。各メモリー読出しの
間、バツフア記憶装置と主メモリーの両方がアク
セスされる。取出すべき情報が既にバツフア記憶
装置内にある場合、主メモリ読出しは終了して情
報はバツフア記憶装置から取出される。さもなけ
れば、主メモリ102が読出される。これが行わ
れる都度、CPU104は所望の情報を含む32バ
イトを取出す。この情報は将来のメモリー照会の
為バツフア記憶装置内に残される。このバツフア
記憶装置はソフトウエアに対し透過的である。
(transparentto)為、コンピユータを制御するプ
ログラムは、コンピユータが処理する情報がバツ
フア記憶装置からあるいは主メモリから取出され
たかどうかを決定できない。 計算ユニツト111はCPU内で全てのデータ
処理およびアドレス形成を行う。計算ユニツト内
の典型的な制御記憶装置130(プレンテイスホ
ール社刊サミールSハツセン著「マイクロプログ
ラミング、その原理と応用」参照)は、システム
を始動し、CPU104とIOC105を制御し、か
つ命令セツトを復合するフアームウエアを含む。
制御記憶装置は任意に科学的命令、テストルーチ
ン、エミユレーシヨン(emulation)パツケー
ジ、を与え、又はプロセササブシステムの能力を
拡張する特殊目的の特性を具有する。 選択的に、CPUは本システム以外のシステム
のエミユレーシヨンを行う。エミユレータ112
はフアームウエア、ソフトウエア、およびある場
合にはハードウエアの構成要素である。 B 入出力制御ユニツト プロセササブシステムのIOC105部分は、全
ての周辺装置サブシステム103と記憶装置サブ
システム102間のデータ経路を提供する。この
経路は周辺装置のコマンドの開始を可能にし結果
として得られるデータ伝送を制御する。1つの
IOCは一般に32チヤンネル迄の制御ユニツト(図
示せず)を取扱う事ができる。 C 周辺装置サブシステム 第1図の周辺装置サブシステム103において
は、PCU106は独立のマイクロプログラミン
グプロセサであり、入出力操作の間入出力機器1
08を制御する事によりCPU104のロードを
解除する。このPCUは、あるチヤンネルプログ
ラムに含まれる各命令の実行により前記操作を行
う。このプログラムは、算術的、論理的転送と桁
送り(shift)を惹起し、ブランチ演算がPCUで
行われる。PCUにはいくつかの種類があり、機
器の種類によりそれぞれ単位記録、マス(デイス
ク)記憶装置、磁気テープ、コミユニケーシヨン
等を制御する。 機器アダプタ107は各PCUとその制御する
機器間に介在する。その各々は、特定の種類の機
器との通信を行うのに必要な決められたフアーム
ウエアとロジツクを含んでいる。DA107はそ
の種類により1つ又はいくつかの機器を制御す
る。 周辺装置サブシステム103により実施される
主な機能は以下の通りである。即ち、 1 CPU命令の直列の周辺機器に対する変換 2 CPU又は適当な周辺機器により必要とされ
る形態へのデータのパツクおよびアンパツク 3 CPUに対するサブシステムとその制御下に
ある各機器との状態の報告維持 4 エラー手続きおよび回復手続きの独立的な開
始および処理 5 関連する周辺装置プロセサの機器分担能力を
阻げる事のない機器のオンライン状態での診断
の許容 PCUはこれに付属する各機器間での主メモリ
ーに対する競合を解消するが、IOCはPCU間の競
合を解消する。 D 記憶装置サブシステム 各メモリーモジユール1乃至4は4又は8バイ
トの幅である。モジユールの数、大きさ、および
データ経路の幅はコンピユータの大きさによつて
変化する。メモリーモジユールは、4つのモジユ
ールが順次アクセスされる様に4重にインターリ
ーブされている(モジユール1は最初の8バイト
を含み、モジユール2は2番目の8バイトを含む
と言う様に)。このインターリーブ処置は、主メ
モリーのアクセスの為の競合数を減少し、これに
より平均メモリーアクセス時間を減少する。メモ
リーは故障の際再構成できる。即ち、1つのモジ
ユール内のメモリーの各ブロツクは隣接するアド
レス指定を破壊する事なく除去できる。 主メモリー102は、金属酸化膜半導体MOS
チツプの形態の容量性の記憶媒体からなる。この
媒体は情報を維持する様リフレツシユ
(refresh)原理で作用する。各メモリーのロケー
シヨンは2ミリ秒毎に少くとも1回リフレツシユ
され、この設計によりリフレツシユのタイミング
とメモリー呼出しとの間の競合が少くなる様保証
する。(競合の生じた場合はリフレツシユ操作が
優先する) 主メモリーの最初の領域はハードウエアとフア
ームウエアの為に確保される。この領域の上限
は、システムのソフトウエアから見える境界アド
レスレジスタ(BAR、これについては以下に記
述する)の内容により決められている。この
BARの内容はシステムの起動時にセツトされ
る。BAR内に規定されたアドレス以下のメモリ
ー領域はIOC表を包含でき、これは周辺装置サブ
システム、CPUを制御するフアームウエア、又
はエミユレーシヨンの為のマイクロプログラムお
よび表の構成を決める。このBAR内に規定され
たアドレスの下方の領域の大きさはシステム構成
に依存する。マイクロプログラムが主メモリーに
あるか制御記憶装置内にあるかはシステム構成お
よびシステムにおけるアプリケーシヨン実行に依
存する。 2 基本的な計算機構造 一般に、このハードウエアに使用されるものに
は3つの基本的なデータ構造がある。即ち、デー
タフオーマツト(書式)、ソフトウエアから見え
るレジスタ、および命令フオーマツトである。 A データフオーマツト 情報はメモリーとCPU間で8並列ビツトの倍
数で転送される。情報の各8ビツトユニツトはバ
イトと呼ばれる。パリテイ即ちエラー補正データ
も又データと共に転送されるが、ソフトウエアに
より影響を受ける事はできない。従つて、この明
細書においては、データは関連するパリテイ即ち
エラー補正データを除外する。 B バイト(Bytes) 1バイト内の各ビツトは左から右へ0から7迄
番号が付されている。各バイトは個別に又はグル
ープで処理される。2つのバイトが半ワードを、
4バイトで1ワード、8バイトで2ワード、16バ
イトで4ワードを形成する。これ等は命令を含む
全データに対する基本フオーマツトである。 C データの提示 全データは2進形態であるが、2進法、10進法
あるいは英数字符号にも翻訳できる。データビツ
トは4個のグループでは2進符号化された10進デ
ータ、8個のグループでは英数字符号、又は16乃
至64個では2進法のデイジツトとして翻訳され
る。後者は2進法の記号を付した数、固定小数点
数又は浮動小数点数として翻訳される。2ワード
迄のどんな連続ビツトも又ストリングとして操作
できる。英数字のセツトはEBCDIC(コード)で
表わされる。ASCIIを代替コードとして使用でき
る。 D バイトアドレス 主メモリーにおけるバイトロケーシヨンは零で
始まる連番を付し、各数はバイトのアドレスであ
る。連続するバイト群は、もし1グループ内の左
方のバイトのアドレスがそれぞれ2,4,8又は
16の倍数である場合、半ワード、1ワード、2ワ
ード又は4ワードに整列されていると言う。半ワ
ード、1ワード、2ワード、又は4ワードと言う
様に整列される時は常にそのユニツトはそのアド
レスから取出す事ができる。主メモリーのデータ
のロケーシヨンは、アドレス形成の間間接的に呼
出されるデータデイスクリプタにより指定され
る。(本願と同一人に譲渡された昭和51和2月10
日特許の「セグメント化されたアドレス形成」な
る名称の米国特許第3938096号参照) E 可視レジスタ 第1図のCPU104には33個のユーザが参照
できるレジスタがあり、その内容はCPUの状態
を綜合的に規定する。それ等には4つの形態があ
る。(第2図参照)即ち、 1 汎用レジスタ 2 ベースレジスタ 3 科学データ用レジスタ(任意) 4 各種レジスタ F 汎用レジスタ 第2図の汎用レジスタ(GR)201は固定小
数点およびビツトストリングの操作に用いられ
る。CPU104においては16個の32ビツト汎用
レジスタ即ちGR0乃至GR15がある。汎用レジ
スタGR8乃至GR15は又インデツクスレジスタ
としても使用可能である。インデツクスとして使
用する時は、本文ではX0乃至X7と呼び、イン
デツクシングは32ビツトを有し1レジスタ中に含
まれる2の補数の整数を用いて実施される。 G ベースレジスタ ベースレジスタ(BR)は命令カウンタICとス
タツクレジスタ202〜203と同じフオーマツ
トを有する。ベースレジスタはアドレス計算の間
使用されてメモリーの一部を規定する。一般に8
つの32ビツトベースレジスタBR0乃至BR7があ
る。 H 科学データ用レジスタ 科学データ用レジスタ(SR)は浮動小数点2
進数による計算の為のオプシヨンの装置である。
4つの8バイト科学計算レジスタがあり、これ等
はSR0乃至SR3と呼ばれる。科学用レジスタは
第2図のフオーマツト204〜205を有する。 I 各種レジスタ 他に5種類のレジスタがある。即ち、 ・ フオーマツト202〜203を有する命令カ
ウンタ ・ フオーマツト207を有する状態レジスタ ・ スタツクレジスタ(Tレジスタと呼ぶ) ・ フオーマツト206を有する境界アドレスレ
ジスタ、および ・ フオーマツト208を有するハードウエア制
御マスクレジスタ 命令カウンタICは32ビツトのレジスタで実行
される命令のアドレスを含む。状態レジスタ
(STR)207は8ビツトのレジスタで、現在実
行されつゝある手続に関する事実、例えばアンダ
ーフローが最後の演算により生じたかどうかを記
録する。スタツクレジスタは又Tレジスタとして
も知られ、現在稼動中の手続と関連するプツシユ
ダウンスタツクの先頭部に対するポインタを含
む。以下に記述するスタツクは、作業スペース、
および局部変数の保持および手続エントリの保護
の為の機構、およびリターン情報を与える。境界
アドレスレジスタ(BAR)206は28ビツトの
レジスタで、ソフトウエアによりアクセス可能な
最も下位の絶対主メモリーアドレスを規定する。
このレジスタはシステム起動の間にロードされ、
ソフトウエアによつて読出しのみ可能である。ハ
ードウエア制御マスクレジスタ208は8ビツト
のレジスタで計算機の条件情報を記録する。 J 命令フオーマツト 約200個の命令があつてともかく使用される。
各命令は4つの異なる長さの内1つを有するが、
常に偶数個のバイト長さである。各命令は連続す
る記憶装置のロケーシヨンに記憶される。左端部
のバイトのアドレスは2の倍数で、この命令のア
ドレスである。 ある命令の8個の最も上位のビツト(およびあ
る場合にはビツト8乃至11又は12乃至15)
は演算コードを表わし、残りのビツトは1つ以上
のオペランド(演算数)を表わす。1つのオペラ
ンドはあるレジスタの指示子、変位の指示子、ア
ドレスシラブル(論理的アドレス)、リテラル
値、即値リテラル値でよい。オペランドの種類お
よび数値は命令のフオーマツトにより決まる。 3 システムの構造 A ジヨブステツプとタスク コンピユータシステムにより実施されるべき作
業はジヨブ制御言語を介して一連のジヨブステツ
プにより外部で規定される。ジヨブステツプは、
ハードウエアの資源が割付けされる作業の一単位
である。一般に1ジヨブステツプはいくつかのタ
スクからなる。1タスクは、並列になる事なく実
行される一連の命令からなるユーザの規定になる
作業の最小単位である。 B プロセス タスクおよびジヨブステツプのユーザ側の概念
は、1つのプロセスとプロセス群によりそれぞれ
ハードウエア中に示されている。1プロセスは、
CPUにより非同期的に実行し得る命令のある順
序として定義される(即ち、いくつかのプロセス
が活動できかつ資源を分割できるが、実際にある
時点では唯1のプロセスのみが実行されてい
る)。あるプロセス群は1つのジヨブステツプを
実施するのに必要なプロセスの関連する組であ
る。 C プロセス制御ブロツクとシステムベース 各プロセスはその実行中に多くの点でCPU制
御を止める事ができる為、主メモリーのある記憶
領領域はCPUの状態を保管するためにプロセス
に利用可能とされる。この状態の情報は、あるプ
ロセスが再びCPUの制御下に入る以前にCPUを
予め条件けする為に利用される。 あるプロセスに割当てられた記憶領域は、第4
図においてプロセス制御ブロツク(PCB)400
と呼ばれる。1つのPCBに含まれるデータはこの
プロセスに割当てられたメモリー領域のアドレス
(アドレススペース)と、全ての関連するレジス
タの内容と、プロセスの状態を含んでいる。この
様な、PCBはいかなる情報ロスもなくあるプロセ
スを起動又は再起動する為に必要な情報に対する
一時的な記憶領域として作用する。各PCBはハー
ドウエアから見え、システムの始動の間に形成さ
れシステム演算の間修飾される一組のハードウエ
ア表(第5図)によりオペレーテイングシステム
によりアドレスを指定できる。 システムベース(第5および6図)と呼ばれる
絶対主メモリー領域がある。この領域はフアーム
ウエアにより形成され、読出しは出来るが書込み
はできないベースアドレスレジスタ(BAR)5
01を介してアクセス可能である。このシステム
ベース502は多数のシステム属性を有し、これ
等には現在実行中のプロセスに対してそれぞれジ
ヨブステツプ番号とプロセスグループ番号(J.
P)が含まれる。このシステムベースにおける別
の属性はJ表503として知られるハードウエア規
定のデータ構造に対するポインタである。この表
はシステム中の現行の各ジヨブステツプを含む。
J表503への各エントリは関連するP表504を指示
し、これも又ハードウエア規定のデータ構造であ
る。この表は、あるプロセスグループを規定し、
又そのプロセスグループにおける各プロセスに対
するエントリを含む。各P表エントリはPCB40
0を指示する。 第5図において、計算ユニツト111(第1
図)の算術演算部506を介してJ番号値により
インデツクスされたJ表ポインタ505はJ表の
エントリ503のアクセスを行う。このエントリ
はP表ポインタを含み、これは計算ユニツト50
6を介してP番号値によりインデツクスされる時
P表のエントリ504のアクセスを行う。このP
表エントリは現在実行中のプロセスのPCBに対す
るポインタ507を含む。この様に、オペレーテ
イングシステムは、BAR501の内容を用いて
活動PCBをアクセスでき、又その関連する(J.
P)ロジツクネームを与える他のどんなPCBもア
クセスできる。 D メモリーセグメンテーシヨン 以下に記述する様なマルチプロセス条件におい
ては、いかなる時点でもメモリには多くのプロセ
スがある。これ等のプロセスは大きさが異なり、
メモリーの割付け問題を惹起するメモリー要求を
する。本文においてあるオペレーテイングシステ
ム(図示せず)と協働する様に起述されるハード
ウエアは、メモリースペースを動的に割付ける事
によりこの問題を解決する。メモリーの要求の任
意性の故に、メモリーは多様な大きさのセグメン
トに割付けされ、このメモリー割付けはプロセス
実行時間中再構成できる。このように、1つのプ
ロセスは多数の非隣接メモリーセグメントに割付
けが可能である。このメモリー割付け法はセグメ
ンテーシヨンと呼ばれる。 セグメンテーシヨンは、メモリーのアドレスが
あるプロセスの一部又は全部が再配置される時は
常に修飾されねばならないという別の問題を提起
する。この問題の解決の為、本文に述べるシステ
ムはあるプロセスに用いられるアドレスが絶対主
メモリーアドレスよりも論理的なものとなる手法
を提供する。これ等の論理アドレスは絶対アドレ
スの形成に用いられる。 又、セグメンテーシヨンは、一式のセグメント
デイスクリプタを介して各プロセスの自身の又は
関連するアドレスセグメントを各プロセスがアク
セス可能にする。あるセグメントデイスクリプタ
のアクセスにより、あるプロセスはあるセグメン
トのアドレスを得る事ができる。セグメントデイ
スクリプタは主メモリーに含まれ、オペレーテイ
ングシステムにより維持される。 各プロセスは2068個迄のメモリーセグメントの
アクセスができる。通常この為にはプロセス当り
同数のセグメントデイスクリプタが必要とされ
る。然し、セグメントは共有できる為、オペレー
テイングシステムはセグメントデイスクリプタを
セグメント表に分類する。この分類は、1プロセ
ス(タスク)、1プロセスグループ(ジヨブステ
ツプ)、又は全体(システム全体)によるアクセ
ス能力に基づく。各プロセスはこれと関連する15
個のセグメント表を有する。この手法は、あるセ
グメント表を介してプロセスによりアクセス可能
な各セグメントに対して唯1つのセグメントデイ
スクリプタを必要とする丈である。この様に、セ
グメントデイスクリプタに必要なメモリースペー
スが減少し、再配置の間のメモリー更新は低減
し、あるプログラムの保護が行われる。(プログ
ラム保護の為の主要機構はリングシステムであ
る。昭和50年10月28日特許の「マルチプログラ
ム、マルチプロセサコンピユータシステムにおけ
る情報の保護」なる名称の米国特許第3916385号
参照) プロセスは、これがアクセスできるセグメント
を決める事が可能でなければならない。従つて、
システムはプロセスに2つのセグメント表ワード
配列(STWA)を与える。これ等の配列はプロ
セスがアクセスできる全てのセグメント表のアド
レスを含んでいる。大小の2つのセグメントサイ
ズがある為、プロセス毎に2つのセグメント表の
ワード配列がある。大きなセグメントは最大サイ
ズ222バイトを有し、小さいセグメントは最大サ
イズ216バイトを有する。全てのセグメントは最
大サイズ迄の16バイト宛の増分においてそのサイ
ズが変化する。1システムは一般に28の大きなセ
グメントと204の小さなセグメント迄収納でき
る。 セグメント表ワード配列はオペレーテイングシ
ステムにより再配置でき、従つて、プロセスはそ
の関連するSTWAの絶対アドレスを知らねばな
らない。どのプロセスのPCBも2つのワードを含
み、これ等は第4図のアドレススペースワード
ASW0〜1として知られるこの情報を含んでい
る。各ワードは1つのセグメント表のワード配列
STWAを指示する。オペレーテイングシステム
は、関連するSTWAが再配置される時は必ず
ASWの内容を更新する。ポインタのチエーンの
下方向の動作およびセグメントデイスクリプタの
復号はフアームウエアの一機能であり、こうして
一旦始動されるとオペレーテイングシステムから
でも見えない。 セグメンテーシヨンは、プロセスに利用可能な
様にアドレススペースの2億バイト以上を規定す
る。この数は主メモリーの容量を超過し、従つて
2次記憶装置(磁気デイスク又はドラム)が主メ
モリーと関連して使用される。このオペレーテイ
ングシステムは、それが実際に利用可能なものよ
りはるかに大きな主メモリーを有すると言う錯覚
を与える。この概念は仮想メモリーと呼ばれる。 いかなる時点でも、規定されるセグメントは物
理的に主メモリー内にあるかないかわからない。
セグメントデイスクリプタの内容は関連するセグ
メントが主メモリーにあるかどうかを示す。ハー
ドウエアは、主メモリーにないセグメントのアク
セスを行うプロセスによる如何なる試みをも検出
し、オペレーテイングシステムに通知する。オペ
レーテイングシステムは所望のセグメントを2次
記記憶装置から主メモリーにロードさせる。次い
で、オペレーテイングシステムは、あるセグメン
トの絶対アドレスが発見できる唯一の場所である
セグメントデイスクリプタにセグメントのメモリ
ーアドレスを格納する。この演算はプロセスから
見えず、この為セグメントが主メモリーになかつ
た事、又は主メモリーに再配置される必要がある
かも知れない事は判らない。(メモリーセグメン
テーシヨンに関する詳細については、昭和51年2
月10日特許の「セグメント化されたアドレス形
成」なる名称の米国特許第3938096号参照) 本文に記述するコンピユータシステムは、各プ
ロセスを相互に干渉しない様にする事によるか、
又は相互のアドレススペースを非認可方式
(unauthorizedmanner)で共有する事によりデー
タおよび手続の保護を行う。この保護は、メモリ
ーセグメンテーシヨンを介するアドレス指定能力
に限定する事により、又リングシステムにより実
施される。 セグメント表はシステム内の各プロセスのアド
レススペースを分離する。各プロセスは常に演算
の実行中にセグメント化されたアドレスを使用す
る。セグメント化されたアドレスは、セグメント
番号とセグメント内の相対的アドレスとからなる
(セグメント化されたアドレスの生成に関する前
述の特許参照)。ハードウエアは、プロセスに使
用されたアドレスがプロセスに割当てられたアド
レススペースの一部である事をチエツクする。も
しこのアドレスが予定されたアドレススペースの
外側にある場合は、例外操作が生じる。プロセス
は別のプロセスのアドレススペース内のデータを
参照する事ができないが、その理由はハードウエ
アは参照するプロセスのセグメント表を使用して
いる為である。この様に、1プロセス又はプロセ
ス群には別のプロセスグループに属する実体を参
照する可能性はない。 一般に、システム内のアドレススペースにおけ
るオーバーラツプは、全てのプロセスにより共有
されるこれ等のセグメントに対して生じる。これ
等の共有セグメントは、アドレスの競合がない事
の保証を確認するシステムプログラムにより開設
される。このように、セグメンテーシヨンはユー
ザのプログラムを相互に保護し、ユーザのプログ
ラムに対してオペレーテイングシステムを保護す
る。 いくつかのプロセスにより共有されるセグメン
トは、これらのプログラムの1つによる誤用から
保護されない。この問題を解決する為にリングシ
ステムが利用され、これにより手続およびデータ
セグメントは4クラスの体系に分類される。この
4つのリングクラスは0から3迄番号を付されて
いる。各リングはシステムの優先順位を示し、レ
ベル0(最も内側のリング)は最優先順位を、レ
ベル3(最も外側のリング)は最後の順位を示
す。システムの各手続は、どれがその手続を呼出
し得るかを示す、手続に割当てられた最小又は最
大の実行リング番号を有する。1つの手続はサブ
ルーチンで、他の手続を呼出しでき、又これらに
複数のパラメータを送る事ができる。 即ち、このリングシステムの一般法則は次の如
くである。 1 1つの内側リングの手続は外側リング内のデ
ータを自由にアクセスする。逆に、外側リング
の手続は内側リングのデータをアクセスできな
い。 2 外側リングの手続は内側リングの手続にブラ
ンチできるが、その逆はできない。 3 データを含むセグメントは、2つのリング番
号値に割当てられ、その1つは読出し(RD)
他の1つは書込み(WR)である。これらのリ
ング字号値は手続が、読出し又は書込みの何れ
かのモードでデータのアクセスを行う時実行で
きる最大のリング番号値を指定する。 ある手続命令が実行される都度、その手続のリ
ング番号値(有効アドレスリング、BAR)は、
参照されたデータを含むセグメントに割当てられ
たリング番号値に対して検査される。このEAR
は、命令カウンタにおけるプロセスリング番号値
の最大値であり、又アドレス指定経路において見
出されたベースレジスタとデータデイスクリプタ
における全てのリング番号値である。このデータ
のアクセスはリング番号値の比較に基づいて行わ
れたり拒絶されたりする事になる。例えば、もし
あるシステム表が、最大読出しリング値3と最大
書込みリング値1を有するセグメントにあるもの
とすれば、リング3で実行されるユーザ手続はそ
の表を読出すがこれを更新しない。 事前の設定により、リング0と1はオペレーテ
イングシステムの為にリザーブされ、リング2と
3はユーザ用としてリザーブされる。リング0は
全システム演算に重要なセグメントを含む。リン
グ1は前記システムの各セグメントの集りを包含
し、その故障は決定的ではなく回復が可能であ
る。ユーザは、検査済みプログラムに対してリン
グ2を用い、デバツクされるプログラムに対して
はリング3を用いる。 F 手続の呼出し 手続の呼出しは本文に記述するシステムにおい
ては重要な機能である。手続の呼出しは1つの手
続から他の手続への通過し、ユーザ手続によるオ
ペレーテイングシステム作業の許容と、オペレー
テイングシステム内のモジユラー構造の達成の為
に用いられる。手続呼出しは、各命令により実施
され、ハードウエアが認識した構成要素はあるス
タツクを呼出す(第7A図)。 あるスタツクはLIFOによるデータの検索を受
入れ、記憶しかつ許容する一機構である。各スタ
ツクはスタツクセグメントと呼ばれる特殊なセグ
メントに存在する。1つのスタツクセグメントは
動的に各手続に割付けられるスタツクフレーム7
01(第7Aおよび7B図)と呼ばれる多数の隣
接する部分からなる。最初のスタツクフレームは
セグメントの頂部にロードされ、これに続くフレ
ームはこの部分の後にロードされる。最後のロー
ドされたフレームはスタツクの頂部と考えられ
る。T−レジスタ702Aは、現在動作中のプロ
セスに対するスタツクの頂部を見出す。実際のT
レジスタは本システムにおける他の全プロセスの
PCBに存在する。 第7B図のスタツクフレーム701は3つの領
域からなる。即ち、変数を記録する作業領域70
2と、レジスタの内容を保管する保管領域703
と各手続間にパラメータを送る通信領域704で
ある。手続呼出しに先立ち、ユーザは、保管を望
むこれ等のレジスタを指定し、呼出される手続に
送られるパラメータを通信領域にロードしなけれ
ばならない。呼出しが行われる時、このハードウ
エアは、命令カウンタICの内容を保管し、呼出
し手続からのリターンを容易にする為ベースレジ
スタを指定する。 各手続呼出しはスタツクセグメント701内の
スタツクフレームを開設し、後続の入れ子状の呼
出しは別のフレームを開設する。これらの呼出さ
れた手続の1つからの各出口はスタツクフレーム
をスタツクから削除させる。このように、呼出し
の履歴は維持され、これが順次のリターン操作を
容易にする。 異なるリングで実行される各手続間の保護を確
保する為、異なるスタツクセグメントが用いられ
る。各プロセス毎の保護リングに対応する1つの
スタツクセグメントがある。1つのPCBは3つの
スタツクベースワードを含み、これらはプロセス
と関連する各リング0,1および2に対するスタ
ツクセグメントの開始を指示する。リング3のス
タツクセグメントは内側の呼出しによつては決し
てエントリされず、従つて、そのスタツク起動ア
ドレスはPCBにおいて要求されない。 4 プロセスマネージメントと同期操作 本文のシステムは、ソフトウエア、ハードウエ
アおよびフアームウエアの組合せを用いるオペレ
ーテイングシステムにより制御されるマルチプロ
セシング演算を行うものである。ソフトウエアは
システム中の各プロセスの発生および削除を行
い、一方ハードウエアとフアームウアエアは
CPUにおける各プロセスのマルチプレクサを行
う。更に、ソフトウエア、ハードウエアおよびフ
アームウエアの組合せは各プロセス間の同期操作
を行う。 通常、プロセスは、常にではないが、関連する
ジヨブ取扱いの間およびオペレーテイングシステ
ムにより必要と見なされる諸目的の為の別の機会
に、入出力演算の開始と終了時に起動および停止
させられる。従つて、関連するプロセスを有効に
起動および停止し、その間に情報を送る為に通信
システムが必要である。本文におけるハードウエ
アシステムはセマフオアと呼ばれる内部メツセー
ジを与えて各プロセス間に通信リンクを与える。 A プロセスの状態 プロセスはいつでも4つの状態即ち実行、レデ
イ、待機および中断のいずれかにあり得る。ハー
ドウエアはこれらの4つのプロセスの状態を認識
して、プロセスのデイスパツチと状態の変更を行
い、あるプロセスの状態に基くデータ構造を維持
するように各種のフアームウエア手続を実行す
る。PCBはその関連するプロセスの現在の状態を
規定する状態のフイールドを含んでいる。 プロセスは、これがCPUの制御の行う時実行
の状態にある。この状態は、あるアドレススペー
ス(セグメント表)と開始アドレスのCPUへの
供給を含む。次いでCPUはプロセスの手続セグ
メントにおいて命令を実行する。現在実行中のプ
ロセスに対するPCBのプロセスネームJ表のワー
ド(論理的アドレス)は、システムベース(第6
図)の実行プロセスワード(BAR+60)に保持
される。(注:第5図に示すシステムベースは第
6図に示すものと同じであるが、細かい点を省略
してある)。 レデイ状態は、プロセスがCPUにより認識さ
れなかつた為、CPUの制御を行わない点を除き
実行状態と等しい。レデイ状態のプロセスは、他
のレデイ位置の各プロセスと実行プロセスとの
CPUに対する競合状態にある。 プロセスは、セマフアオを介するメツセージの
如き特殊な事象が生じる迄継続し得ない時待機状
態にある。待機プロセスはCPUに対して競合状
態にないが、所要の事象に対しては他の待機状態
の各プロセスと競合関係にある。 中断されたプロセスは、ソフトウエアによりあ
る時間停止されたプロセスであり、これについて
は以下に取止げる。プロセスを停止させ再び起動
する決定はそのプロセスの外部である。このよう
に中断されたプロセスは動作状態になく、従つて
事象の通知を受取れず、CPUを使用できない。 プロセスは以下の条件下で中断される。即ち、 (1) 「停止」命令の実行による(全ての機能の完
了の結果) (2) オペレーテイングシステムによる「中断」命
令の実行による (3) 例外条件の発生によるもので、これにより制
御はオペレーテイングシステムに移行される。 B プロセスのデイスパツチ プロセスは、実行中その作用により任意に1つ
の状態から他の状態に移行し、又は他のプロセス
の作用により強制的に他の状態に移行する。デイ
スパツチヤとして知られるCPUフアームウエア
は、各状態間のプロセスのトランザクシヨンを制
御する。デイスパツチヤは1組のキユー(待ち行
列、以下に記述)を用いてレデイ(作動可能)又
は待機状態にある各プロセスを操作する。中断さ
れたプロセスはソフトウエアにより制御される。 第6,8および9図においては、レデイ又は待
機状態のプロセスはあるPCBと、プロセスリンク
と呼ばれる特殊なキユーエントリにより表わされ
る。第9図はGOセグメント802の内容の展開
図を示し、動作中のプロセスのプロセスリンク8
03a〜803bおよび803c〜803gと、
中断されたプロセスの自由プロセスリンク805
a〜805cを含む。各プロセスリンクはプロセ
スネーム(J.P)を指定し、そのプロセスの優先
順位と、キユーにおいて次のプロセスリンクに対
するポインタを指定する。待機キユー803a〜
803bとレデイキユー803c〜gの如き各種
のキユーがある。 G表として知られるJ表(第6および8図)に
類似したハードウエア機器は全ての汎用(システ
ム全体にわたる事が知られる)セグメント802
〜802nに対するポインタを含む。G表801
の最初の要素であるGOはデイスパツチヤキユー
を含む前記セグメント802を指示する。G表8
01に対するG表ポインタは第5図のシステムベ
ースに見出される。又、システムベースにはエン
トリ呼出しによる内部プロセスキユーワード
(IPQW)があり、これはGOセグメント802に
おけるレデイキユー803c〜803dのヘツド
803を識別する。 このように、デイスパツチヤはレデイキユー8
03c〜803dを参照する事により全てのレデ
イプロセスを検討できる。現在実行中のプロセス
が状態を変化させる時、デイスパツチヤはレデイ
キユーのヘツドにおいてプロセスリンクを除去
し、そのPCBをアクセスする為J.Pネームを用い
る。次いでPCBにより規定されたプロセスは新ら
しい実行プロセスとなる。 1つ以上のプロセスが同一事象で待機している
かも知れない為、待機プロセスのキユー803a
〜803bは各事象に対して存在する。又、待機
プロセスは、GOセグメントに存在するプロセス
リンク804を介して一体に配列されている。待
機キユーのヘツドに対するポインタはセマフオア
903(以下に記述)に存在する。あるプロセス
が待機する多くの事象が存在し、従つて、各々が
関連するセマフオア903,904を有する多数
の待機キユーがある。 レデイ状態又は待機状態のプロセスの数は動的
に変化する。このように、レデイ状態又は待機状
態のキユーを必要とするプロセスリンクの数も又
変動する。この事実はデイスパツチヤに対するメ
モリーマネージメントの問題を惹起する。この問
題は自由プロセスリンクキユー805a〜cと呼
ばれる別のキユーにより解決される。このキユー
はレデイ又は待機状態のキユーにより使用され
ず、レデイ又は待機状態のプロセスの特定のキユ
ーを拡張する為に使用できるセグメントGOにお
ける全てのプロセスリンクを一緒にリンクする。
自由プロセスリンクキユー805のヘツド902
に対するポインタ901は、GOセグメント80
2の始めの部分付近に存在する。 C プロセスの同期操作 プロセスの同期操作は、同じタスク上で動作す
る2つのプロセスの嫁動性を関連させる為に必要
である。この同期操作は、通信用プロセスのアド
レススペースに存在するデータ構造であるセマフ
オア903〜904を用いて達成される。セマフ
オアは、事象の発生を信号し、メツセージのキユ
ーを取扱う為に使用される。この場合の事象と
は、別のあるプロセスにとり興味のある1プロセ
スにより観察されるものである。この事象は非同
期演算の完了か、あるいはある資源の利用度であ
る。 プロセスは2つのセマフオア演算を用いて事象
の発生を信号する。演算は信号をセマフオアに送
り、他の演算はセマフオアから信号を取出す。
(この送信操作は屡々V操作と呼ばれ、受信操作
はP操作と呼ばれる。)この送信操作は、あるプ
ロセスにデータ又はデータが準備されたという信
号を送らせる。セマフオアは、別のプロセスが信
号を取上げる準備ができる迄この信号を記憶す
る。このように、送信プロセスは、このデータを
送つた為自由に進行できる。受信操作は特定のセ
マフオアを検討してこの信号を取上げる。もし信
号があれば、受信操作は実行を続行する。しかし
ながら、セマフオアに信号がなければ受信プロセ
スは待機状態に入る。次にこのセマフオアは待機
キユーのヘツドに対するポインタとして作用す
る。このプロセスは、別のプロセスが前記のセマ
フオアに対して信号を送出する迄セマフオアを待
機する待機状態を維持する。このように、セマフ
オアは、プロセスが信号を取上げる迄この信号を
保持でき、あるいはセマフオアは信号がプロセス
に対し送られる迄そのプロセスを保持する。 メツセージも又プロセスからプロセスに送られ
る。メツセージは信号に別の情報が加わつたもの
と同じ存在性又は非存在性を有する。情報の一部
はハードウエアにより供給され、一部はこのメツ
セージを送つたプロセスの手続により供給され
る。メツセージは送るプロセスのプロセスネーム
を有する。このように多くのプロセスは送出側の
ネームを付した単一のセマフオアを介して情報を
送る事ができる。 メツセージセマフオアは、プロセスにより取上
げられるのを待機するメツセージのキユーを有す
る。信号セマフオアにおけるように、メモリース
ペースに対する要求は増減して、メモリーマネー
ジメント問題が提起される。再び、この問題も自
由メツセージリンクのキユーで解決される。これ
等のリンクは、メツセージリンクを供給又は吸収
する為に必要な時容易に発見できるセグメントの
既知の場所に存在する。 これらのリンクに構成されたセマフオアとキユ
ーが異なるプロセスにより共有される為、全セマ
フオア構造は保護される。これは、セマフオアを
含むどのセグメントのアクセスをも制限するハー
ドウエアおよびソフトウエアの約束により実施さ
れる。従つて、そのいくつかがGセグメント(シ
ステム通信が必要な場合)であるセマフオアデイ
スクリプタ中にセマフオアは存在しなければなら
きい。しかしながら、全てのGセグメント(GO
を除く)はセマフオアデイスクリプタセグメント
である。 各セマフオアデイスクリプタはセマフオアに対
するポインタを含んでいる。セマフオアのアドレ
スはセマフオアデイスクリプを介して生成され、
こうしてこのセマフオアの為の保護を強化する。
セマフオアセグメントは、セグメント番号値と、
そのセグメント内の相対的ロケーシヨンを用い、
あるいはG.D番号を直接用いて論理的にアドレス
指定できる。 D プロセス制御ブロツク構造 第4図において、プロセス制御ブロツク
(PCB)のフオーマツトが示されている。このプ
ロセス制御ブロツク400は、CPUの状態を保
管する為プロセスに利用できる主メモリーの記憶
領域である。PCBのアドレス指定は第5図に関連
して既に述べた如く実施される。PCBポインタ5
07(第5図)は第4図のメモリロケーシヨン0
におけるプロセス制御ブロツクPCBを指示する。
下方向へのメモリーロケーシヨンを進めれば4バ
イト宛増加し、一方メモリーロケーシヨン0から
上方へ進むと8バイト宛増加する事に留意すべき
である。下方のメモリーロケーシヨンは0から正
と考えられ、同ロケーシヨン0から上方のロケー
シヨンは負の方向と考えられる。上方のロケーシ
ヨンはオプシヨンであり、プロセス制御ブロツク
内に含まれても含まれなくても良く、又ロケーシ
ヨン148〜176もオプシヨンである。(下方
のメモリーロケーシヨンの数字は、プロセス制御
ブロツクPCBの0参照ロケーシヨンからのバイト
の変位を示し、添付図面の部分識別に用いられる
共通の数字と混同してはならない。)バイト0か
らバイト16より小のバイトから考えると、4つ
のプロセス主ワードPMW0乃至PMW3が記憶さ
れ、各プロセス主ワードPMWは長さにおいて4
バイトである。プロセス主ワード0はバイト0乃
至3を占有し、4つの部分即ち能力(ケイパビリ
テイ)バイト、優先順位バイト、状態バイトおよ
びデコール(decor)拡張バイトDEXTからな
る。第10a乃至10dにおいて、プロセス主ワ
ードPMW0の詳細が示され、能力バイト100
1の更に詳細については第10b図に示される。
第10b図においては、最初のビツト1005
は、時間アカウント機能がそのプロセスについて
実施されるかどうかを示すアカウンテイングモー
ドビツトである。このアカウンテイングモードビ
ツト1005が2進数の0にセツトされる時、そ
のプのプロセスについては時間アカウント機能は
実施されないが、アカウンテイングモード100
5が2進数の1にセツトされる時は時間アカウン
トがなされる。科学モードビツト1006が零に
セツトされる時、計算機の科学データ用レジスタ
の保管は行われず、第4図のバイト148乃至1
76に配置される科学データ用レジスタ保管領域
はプロセス制御ブロツクPCBに存在しない事を示
す。科学モードビツト1006が2進数1にセツ
トされると、科学演算機能が存在しプロセス中に
使用され、必要に応じて科学データ用レジスタの
内容を保管する為科学データ用レジスタ保管領域
が使用される。コードモードビツト1007は、
標準コードセツト又は互換コードセツトのどちら
がプロセスに用いられているかを示し、前記ポジ
シヨンの2進数の0は標準コードセツトが使用さ
れている事を示す一方、第3のビツトポジシヨン
1007における2進数の1は互換コードセツト
が使用されている事を示す。この能力バイトの各
ビツトの残部は零にセツトする。 優先順位バイト1002の詳細は第10c図に
示される。第10c図において、優先順位バイト
1002の最初の4つのビツト1008は、与え
られたプロセス制御ブロツクPCBと関連するプロ
セスの優先順位をセツトする様に使用される。各
プロセスは、優先順位の16のレベルの1つに割当
てられ、競合するプロセスの順位決定即ち(a)レデ
イ状態のプロセス間に実行されるプロセスの選
択、および(b)プロセスをキユー内への投入の為に
使用される。優先順位は0から15に向けて減少
し、与えられた優先順位に対してはFIEO(先入
れ先出し)の原則が与えられる。優先順位バイト
1002の次の4ビツト1009は零である。 第10d図において状態バイト1003の詳細
が示される。状態バイトは、プロセス制御ブロツ
クPCB400と関連するプロセスに関する情報を
提供するように使用される。嫁動フイールドビツ
トA1010は、プロセスが嫁動されている時2
進数の1にセツトされる。中断フイールドS10
11は、プロセスが中断されている時2進数の1
にセツトされている。サブステートフイールド
SS1012は2ビツトのフイールドで、プロセ
スの下記のサブステートを規定する。即ち、(a)2
進数00にセツトされた時プロセスは不嫁動であ
る、(b)2進数01にセツトされた時プロセスはレデ
イ状態プロセスのキユー(Q/PR/RDY)に待
機状態にある、(c)2進数10にセツトされた時プロ
セスはセマフオアのキユー(Q/PR/S)中の
セマフオアに待機状態にある、(d)2進数11にセツ
トされた時プロセスはプロセサにより実行中であ
る。演算中(mid−operation)フイールド
(MOI)1013は割込みが生じた時2進数の1
にセツトされ、命令の実行の間、即ちプロセス終
了以前はこれを維持する。拡張デコール
(decor)モードビツトEXTD1014は、プロセ
スが計算機のエミユレーシヨンモードである拡張
デコールモードにある時1にセツトされる。ビツ
ト1015と1016は0にセツトされる。プロ
セス主ワードPMW0の4番目のバイトはデコー
ル拡張番号を含み、システムがエミユレーシヨン
モードにある時使用される。 プロセス主ワードPMW1はプロセス制御ブロ
ツクPCBのバイト4〜7に記憶される。PMW1
の詳細は第10e図に示される。状態バイト10
16はPMW1における最初のバイトであつて、
状態レジスタ内容を記憶する。マルチプロセサバ
イトMP1018はマルチプロセサ構造でハイト
であり、さもなければこのフイールドは零であ
る。プロセス主ワードの第2と第4番目のバイト
はそれぞれMBZフイールド1017と1019
で、通常の演算においては零でなければならな
い。 プロセス主ワードPMW2はプロセス制御ブロ
ツクのバイト8乃至11を占め、第10f図に更
に詳細に示される。第10f図において、ビツト
4乃至ビツト31のフイールドはセマフオアの局
部ネームSEG,SRA1021を含み、これに対
してプロセスが待機状態又は中断状態にある時
PCBがリンクされている。例外クラスおよびタイ
プフイールド1023は割込みに似た例外のクラ
スおよびタイプを含み、これが例外操作の後プロ
セスを中断状態にエントリさせる。ビツト4乃至
15のフイールド1022は、プロセスが前述の
状態以外の状態にある時無意味となる。 プロセス主ワードPMW3はPCB400のバイ
ト12乃至15を占め、デコール拡張表を指示す
る。PMW3の詳細に関する第10g図におい
て、DETSZフイールド1024は表中のエント
リ数を規定し、もしこのフイールドが零であれば
プロセスに対するデコール拡張操作は許されな
い。DETAフイールド1025は16バイトの単位
のデコール拡張表の絶対アドレスで、DETSZが
0でない場合にのみ有意義である。このデコール
拡張表はDETSZエントリから構成される。各エ
ントリは1バイトの大きさである。テーブルの
DEXT番目のエントリはプロセスの能力を規定
し、デコール拡張モードDEXTにおいて操作を行
う。DEXT番目のバイトが0である時、デコール
拡張番号値DEXTは許されないが、DEXT番目の
バイトが1であればデコール拡張番号値DEXTは
許される。0および1以外のDEXT番号値は違法
となる。(第10a図DEXT番号値1004参
照) PCB400のバイト16乃至23はそれぞれア
ドレススペースワードASW0とASW1を含み各
ASWはセグメント表ワード配列に対するポイン
タを含む。ASW0とASW1の相方は、それぞれ
第10h図に示されたものと同じフオーマツトを
有する。セグメント表ワード配列の大きさは1配
列中のセグメント表ワード番号により規定され、
主としてASW0に対しては6、ASW1に対して
は8となる。STWSZフイールド1026はセグ
メント表ワード配列の大きさを示す。セグメント
表ワード配列のフイールドSTWA1027は、
16バイトの単位の配列の絶対アドレスSTWAを
含み、即ちこの配列の絶対アドレスはバイトにお
いてSTWAの16倍である。 PCBにおけるバイト24乃至27は、第10i
図に更に詳細に示される例外ワードEXWを含
む。この例外ワードは例外クラス表に対するポイ
ンタ(SEG,SPA)1029を含み、前記表
は、プロセス主ワードPMW2に記憶される如き
そのクラスによるプロセス例外に続いて取られる
べき作用を規定する。(第10f図参照)例外ワ
ードEXWのMBZフイールド1028は0でなけ
ればならない。 PCBのバイト28乃至31に配置されるスタツ
クワードSKWは、第10j図に更に詳細に示さ
れ、プロセスが実行中でない時、そのプロセスの
スタツクのTレジスタの頂部の数値を含む。第1
0j図において、ビツト0と1はTAGフイール
ド1030を規定する。このTAGフイールドは
その内容によりデイスクリプタのタイプを示し、
SKWに対しては零でなければならない。SKWワ
ードのビツト2と3はRINGフイールド1031
を含みこのフイールドはスタツクのセグメント化
されたアドレスと関連する保護目的のリング番号
を含み、この場合零でなければならない。ビツト
4乃至31はセグメント番号SEGとセグメント
相対アドレスSRA1032を含み、セグメント
表に記述されたセグメントとその内部のセグメン
ト相対アドレスを識別するフイールドである。ス
タツクワードSKWは、プロセスが実行状態でな
くなる都度更新される。これは、プロセスが実行
状態になる毎にTレジスタの内容を再格納する為
に用いられる。この最後の場合には、TAG10
30とRING1031は零である事をテストさ
れ、さもなければ違法のPCB例外動作が生じる。 PCB400のバイト32乃至35は、屡々ICC
と呼ばれる命令カウンタ内容ワードICWを含
む。第10k図において、TAGフイールド10
33が2進数00を含まねばならない(即ち零以外
の数値は命令カウンタにおいては違法である)命
令カウンタワードICWの詳細が示されている。
ビツト2と3を占める現行RINGフイールド10
34は、主記憶装置へのアクセス権の決定に用い
られるプロセスのカレントリング番号を規定す
る。ビツト4乃至31はセグメント番号とセグメ
ント相対アドレス(SES,SRA)1035を規
定し、これらは実行すべき次の命令のアドレスを
規定する。 バイト36乃至39のMBZフイールドは零で
なければならない。(MBZフイールドは常に零で
なければならないフイールドを示す)このMBZ
ワードは、PCBがネームJ.Pから呼出される都度
テストされる。もしこれが零でなければ違法PCB
例外が起る。 スタツクベースワードSBW0〜2はプロセス
制御ブロツク400におけるバイト40〜51を
占める。これらのワードは、第10l図に更に詳
細に示される同一のフオーマツトを有する。これ
らはスタツク操作に間使用され、使用される時は
そのTAGフイールド1036とRINGフイールド
1037は零でなければならず、さもなければ違
法のPCB例外が起る。ビツト4乃至31は、リン
グ0,1,2に対するそれぞれのスタツクセグメ
ントの最初のビツトのセグメント化されたアドレ
ス(SEG,SRA)1038を含む。 プロセス制御ブロツク400のバイト52乃至
83はベースレジスタ保管領域(8ワード)の為
にリザーブされたスペースである。バイト84乃
至147は全ての汎用レジスタ(16ワード)の数
値を保管する為に用いられる保管領域である。バ
イト148乃至179は科学データ用レジスタ
(8ワード)を保管する為に使用される保管領域
である。 PMW0ワードのアカウンテイングモードビツ
トがセツトされる時、時間アカウントの為にPCB
零アドレス以上のPCB400には5つの2重ワー
ドが与えられる。こられのワードは、PCBアドレ
ス−8からPCBアドレス−40に配置される。各
ワードは、そのビツト52〜63を零としたその
最初の52ビツトにおいてマイクロ秒単位で表示さ
れる時間又は時間間隔を含む。残り時間切れ2重
ワードRTO(PCBで0以上の最初の8バイト)
は、時間切れの例外操作が起る以前にプロセスの
ためにプロセサにより実際に費やされる特定量の
時間を含む。RTOワードは以下の方法で更新さ
れる。即ち、プロセスが実行状態を脱する度にプ
ロセスのタイマーの数値はRTOワードに記憶さ
れる。プロセスが実行状態に入る度にプロセスタ
イマーの数値はRTOからロードされる。 バイト7乃至15における実行時間アカウンテ
イングRUAの2重ワードは時間カウンタであつ
て、これは、プロセスが実行状態にあつたプロセ
サ時間の全量を規定する。アカウントされた時間
は、完全にプロセスのためにプロセサにより実際
に費やされた時間である。RUAワードは以下の
方法で更新される。即ち、プロセスが実行状態を
脱する都度、プロセスタイマーPTの数値が読取
られる。RTOとPTの内容の差異がRUAに加えら
れる。(続いて、PT数値はRTOに記憶される)
プロセスが中断される時間は計算されない点に留
意されたい。RTOおよびRUAワードは、もしア
カウンテイングモードビツトが0にセツトされる
場合でも更新される。しかしながら、CET,
RTA、およびWTAワード(以下に記述する)
は、プロセス主ワードPMW0におけるアカウン
テイングモードビツトが1にセツトされる時にの
みプロセス制御ブロツク内に与えられる。これら
のワードはこの場合丈更新される。 バイト17乃至23における待機時間アカウン
テイングWTAワードは実時間カウンタで、プロ
セスが待機状態にあつた全実時間を規定する。
WTAワードは以下の方法で更新される。即ち、
プロセスが待機状態を脱する都度、デイ(day)
クロツク(図示せず)の時間値TODが読取られ
て、TODの値−CETワードの値がWTAワードに
加えられる。 バイト24乃至31において配置されるレデイ
時間アカウンテイングRTAワードは実時間カウ
ンタである2重ワードで、プロセスがレデイ状態
にあつた全時間を規定する。RTAは以下の方法
で更新される。即ちプロセスがレデイ状態を脱す
る都度、デイクロツク時間値TODが読取られ
て、TODの内容−CETの内容がRTAに加えられ
る。 バイト32乃至39における現行エントリ時間
CET2重ワードは、プロセスが以下の各状態、即
ちレデイ、待機、実行および中断の1つに入つた
デイ時間を含む。 システムベースの構造 第6図において、システムベース600のフオ
ーマツトが示される。このシステムベースは絶対
主メモリー内にあり、フアームウエアにより生成
され読出しは可能であるが書込みはできない境界
アドレスレジスタ(BAR)を介してアクセス可
能である。この境界アドレスレジスタBARはハ
ードウエアの為にリザーブされた主メモリの1領
域の下方にあり、ハードウエアの為リザーブされ
たメモリーの領域とシステムベース600を分割
する。次に第6図において、このシステムベース
600は多数のシステム属性を含み、これは現在
実行中のプロセスに対するジヨブステツプ番号と
プロセスグループ番号(J.P)を含んでいる。プ
ロセスJ.Pの論理的ネームからは、対応するプロ
セス制御ブロツクPCBの絶対アドレスが得られ
る。J表の大きさとアドレスはJ表ワード
(JTW)の内容により規定される。このワードは
BARレジスタにより規定されるアドレスに配置
される。JTWのフオーマツトは第11a図に示
される。第12図はJ表1204の大きさを表わ
す(JTSZ)1101は、255迄であるJ表120
4におけるエントリ番号を規定する。JTSZ11
01は8ビツトの正の整数で、もしJがJTSZよ
りも大きい場合はJ表からの例外が起る。J表1
204の絶対アドレスはJ表ポインタ1102の
16倍により得られる。J表1204はJ表エント
リを含み、そのフオーマツトは第11b図に更に
詳細に示される。各J表エントリは、P表ポイン
タ1104の16倍により得られるP表1205の
絶対アドレスを規定する。P表の大きさ
(PTSZ)1103はP表におけるエントリ番号
を規定する。このPTSZは8ビツトの正の整数
で、P表のエントリ番号を示す為一般に0から
255まで変化する。もしPがPTSZより大きい場
合は、P表からの例外が起る。P表1205の各
エントリは、プロセス制御ブロツクポインタ11
07の16倍によりプロセス制御ブロツク(PCB)
1206の絶対アドレスを規定する。存在インデ
イケータP1105は、2進数の0にセツトされ
た時PCBが存在しない事を示し、2進数の1にセ
ツトされた時PCBの存在する事を示す。(存在イ
ンデイケータP1105が0である事が伴ると、
空のP表エントリ例外操作が起る。)P表インデ
イケータ(第11c図)のビツト1乃至7
(MBZ)1106は0でなければならず、さもな
ければ違法のP表エントリ例外操作が起る。 システムベース600のアドレスBAR+4に
おいては、第11d図に更に詳細に示されたG表
ワード(GTW)のフオーマツトバイトがある。
第12図のGセグメント表1212の大きさとア
ドレスはG表ワード(GTW)の内容により規定
される。G表1212の大きさ(GTSZ)110
8はG表へのエントリ番号を規定し、G表は一般
に255迄である。GTSZは8ビツトの正の整数
であり、もしG表の数値がGTSZより大きい場合
はG表からの例外が起る。G表1212の絶対ア
ドレスはG表ポインタ1109の16倍により得ら
れる。Gセグメント表エントリのフオーマツトは
2ワードの大きさで、Gセグメントデイスクリプ
タと呼ばれる。Gセグメントデイスクリプタのフ
オーマツトは第11eおよび11f図に詳細に示
されている。全てのGセグメントデイスクリプタ
は直接であり、従つて間接ビツトI、111は零
でなければならず、さもなければ違法のセグメン
トデイスクリプタ例外操作が起る。存在インデイ
ケータP1110は1プロセスのフイールドで、
これは2進数の1にセツトされる時デイスクリプ
タが対応するセグメント番号に対して主記憶装置
にセグメントが規定される事を示すが、もしこれ
が0にクリアされるとセグメントは規定されずセ
グメントデイスクリプタの参照はミシング(欠
落)セグメント例外の原因となる。利用可能なビ
ツトA1112は1ビツトのフイールドで、これ
はセグメントが利用可能であるかどうかを示し、
このセグメントが規定される(即ち、Pは2進数
1に等しい)がどうかを検査される丈で、さもな
ければ無視される。使用済フラツグフイールドU
1113はセグメントがアクセスされたかどうか
を示す。もしUビツトが2進数の0にセツトされ
れば、そのセグメントはアクセスされていない
が、もしUフイールドが2進数1にセツトされれ
ば、セグメントはアクセスされた。書込み済フラ
ツグフイールドW1114はセグメントが書込ま
れたかどうかを示す。もしWが2進数の0にセツ
トされれば、セグメントは書込まれていないが、
Wが2進数の1にセツトされれば、セグメントは
書込まれた。Gセグメントデイスクリプタのゲー
ト作用インジケータGS1115は2進数01にセ
ツトされねばならず、さもなければ違法セグメン
トデイスクリプタ例外が起る。この理由は、Gセ
グメントは常にセマフオアを含み(逆は真でない
が。即ち、全てのセマフオアはGセグメントにあ
る事を要求されない)、セマフオアの命令はGSコ
ードが2進数01である事を要求する為である。セ
グメント1214のベースの絶対アドレスは、24
ビツトのベースフイールド1116により第11
e図のGセグメントデイスクリプタに規定され、
このフイールドの内容は16倍されて絶対アドレス
を得る。第11f図のGセグメントデイスクリプ
タの2番目のワードはG表1212においてビツ
トポジシヨン32乃至63を占める。ビツト32
乃至39のRSUフイールド1117はソフトウ
エア用にリザーブされ、この場合のようにGセグ
メントデイスクリプタとして使用される時一般に
無視される。MBZフイールド1118は0でな
ければならず、さもなくば違法のセグメント例外
が起る。MBZフイールド1118はビツト40
乃至51を占める為、小さなセグメントSIZEに
対するフイールドであるSIZEフイールド111
9をセツトする為、全てのGセグメントは小さな
セグメントタイプでなければならない。セグメン
トSIZE1119は、そのセグメントにおいてバ
イト数値を規定する12ビツトの正の整数であり、
このセグメントの大きさは16の倍数であると考え
られる。従つて、Gセグメント1214に対する
セグメントの大きさは216バイトを超える事がで
きない(小さなセグメント)。 再び第6図のシステムベース600において、
BAR+8およびBAR+4の間に配置された9つ
のシステム例外セルワードがある。このシステム
例外セルワードEXCのフオーマツトは第11g
図に示される。システム例外が起る時セマフオア
は与えられたプロセスに対しメツセージを伝送す
る為に使用されるので、これらセマフオアに対す
るポインタはメモリーの9つのロケーシヨンに見
出されるが各ロケーシヨンはシステム例外セルと
呼ばれシステム例外操作のクラス毎に1つある。
MBZフイールド1120は2進数の0にセツト
されねばならず、さもなければシステムチエツク
が起る。各例外セル(EXC)はそれぞれシステ
ムネームGD1121と1122を含む。 システムベース600のBAR+44に配置さ
れるチヤンネル例外セルは、前述のシステム例外
セルに似たフオーマツトを有し、チヤンネル例外
が起る時与えられたプロセスにメツセージを伝送
する為に使用されるセマフオアのシステムネーム
GDを含む。 内部プロセサキユーワードIPQWはBAR+48
から始まるように配置され、そのフオーマツトの
詳細は第11h図に示される。このIPQWワード
は、参照番号905および805で第9図に示さ
れるレデイ状態のプロセスのキユー(Q/PR/
RDY)のヘツドを指示する。レデイ状態のプロ
セスキユー(Q/PR/RDY)はレデイ状態にあ
る全てのプロセスをリンクする。これは、レデイ
状態のプロセスキユーの頂部を指示する事によ
り、IPQWワードのQ/PR/RDYのHEADフイ
ールド1124(第11h図)により参照され
る。Q/PR/RDYのHEADフイールド1124
は16ビツトの正の整数を含み、これはGOセグメ
ントと呼ばれるGセグメント番号0のベースから
Q/PR/RDYの最初のバイト迄の変位である。
もしこのQ/PR/PDYビツトフイールドが0な
ら、レデイ状態のキユーは空であると考えられ
る。MBZフイールド1123は0でなければな
らず、さもなければシステムチエツクが起る。 システムベース600のBAR+52におい
て、初期および現時の再トライカウントの記憶装
置が示され、そのフオーマツトは第11i図に詳
細に示される。NFSフイールド1125は非機
能的記憶フイールドであり、システムベースによ
り使用されない。初期再トライカウントフイール
ド1126と現時再トライカウントフイールド1
127は回数を制御し、自動命令再トライは、機
械的エラーが機械故障例外条件を形成させられる
以前に実行される。これらのフイールドはリセツ
ト再トライカウント(本文には示さず)により同
数丈ロードされる。 第11j図に示された実行プロセスワード
(RPW)はシステムベース600のBAR+56に
記憶され、モノプロセサ構造の場合に優先順位を
もつた実行プロセスのネームを記憶するのに用い
られる。NFSフイールド1128と1131は
それぞれ非機能記憶フイールドで、どの装置にも
どんな目的にも使用できるが一般にシステムベー
スには使用されない。実行プロセスの優先順位は
PRIフイールド1129に記憶される。非同期ト
ラツプビツトはABフイールド1130に記憶さ
れるが、非同期トラツプリングはARNフイール
ド1132に記憶される。モノプロセサ構造の場
合の実行プロセスの論理的ネームJ.PはJ.Pフイー
ルド1133に記憶される。 第11k図に示される絶対値化表ポインタはシ
ステムベース600のBAR+60に配置され、
初期システムロード(ISL)において使用されて
ISLプログラムの全ての絶対アドレスにBARの内
容を加える事により初期システムロード(ISL)
における絶対アドレスを初期設定する。この絶対
値化表ポインタ1135は絶対値化表(図示せ
ず)のロケーシヨンを規定する。この絶対値化表
サイズはATSZフイールド1134により示され
る。 第11l図に示されるCPU連続番号ワードは
BAR+64に配置された4バイトのワードで、
CPU連続番号フイールド1136においてCPU
の連続番号を含んでいる。 第11m図に示された主記憶装置上限ワードは
BAR+68に配置され、主記憶装置における最
後に利用可能なワードの絶対アドレスを与える事
により主記憶装置上限1139を示す。 BAR+72においては、初期システムロード
ISL機器チヤンネル番号(CN)1140とハー
ドウエア機器チヤンネル番号(CN)1141と
を与える為に、第11n図に示されるワードが配
置されている。 コンピユータシステムに用いられる機器のタイ
プとサブタイプはそれぞれフイールド1143と
1144においてハードウエア機器タイプワード
(第11o図)により示され、この場合RSUフイ
ールド1142はソフトウエアに対してリザーブ
されている。このワードはBAR+76における
システムベース内に見い出される。第11p図に
示された前述のフオーマツトと似たタイプのフオ
ーマツトを有する類似のワードは初期システムロ
ードに用いられた機器のタイプとサブタイプを含
む。このワードはBAR+80に配置される。 コンピユータの再起動ボタンを押すと、シミユ
レートV演算が1セマフオアについて実施され、
レデイ状態に入る。このセマフオアに対するポイ
ンタはシステムベース600のBAR+84に見
出され、再起動セルワードと呼ばれ、第11q図
に示されたフオーマツトを有する。このフオーマ
ツトは前記のシステム例外セルと似ており、それ
ぞれGフイールド1149とDフイールド115
0におけるセマフオアのシステムネームG.Dを含
む。MBZフイールド1148は0でなければな
らない。 このコンピユータシステムに対して1つ以上の
プロセサがある場合は、マルチプロセサ拡張の為
のワードがシステムベース600のBAR+88
に与えられる。このワードの詳細は第11r図に
示される。 システムベースとプロセス制御ブロツク使用例 第12図において示されるのは、ユーザセグメ
ント、システムセグメント、又はレデイ状態プロ
セスキユー(Q/PR/RDY)セグメントのアド
レス指定およびアクセスの為、どの様にしてシス
テムベースが、プロセス制御ブロツクと組合せて
使用できるかを示す一例である。主メモリー12
00はハードウエア用途としてリザーブされた部
分1203を有する。境界アドレスレジスタ
BAR1202はシステムベース1215をハー
ドウエア用にリザーブされたメモリー1203の
一部から分離する。この境界アドレスレジスタ
BAR1202は、その内容をシステムベースで
所望される事項の4バイト単位の変位分に対して
加える事によりシステムベース1215における
事項をアドレス指定する為に使用される。次にこ
のアドレスは所望のシステムベースにおける事項
の最初のバイトを指示する。第12図において
は、BAR1202はJ表ワード(JTW)を指示
している。前述の如く、このJ表ワードは、J表
1204を指示するポインタを有する。第5図に
示されたJ番号をインデツクスする事により、J
表エントリ1216が得られる。J表エントリに
おいて、P表1205の絶対アドレスを指示する
P表ポインタがある。P表1205内のP番号
(第5図参照)をインデツクスする事により、プ
ロセス制御ブロツク1206の絶対アドレスが得
られる。プロセス制御ブロツクPCB1206に既
に示す如く、2つのアドレススペースワード
ASW0とASW1がある。ベースレジスタ120
1におけるセグメント表番号フイールドSTNの
上位ビツトはこれら2つのアドレススペースワー
ドの1つをアクセスする為に使用され、この事例
においては、ASW1はセグメント表ワード配列
STWA1208を指示するセグメント表ワード
配列STWAのポインタを有する。ベースレジス
タ1201のセグメント表番号STNと共に、8
つのセグメント表ワードの1つがSTWA120
8でアクセスされ、これが8つのセグメント表1
210の1つを指示する。ベースレジスタ120
1からのセグメント表エントリSTEは、次いで
あるセグメントデイスクリプタが配置されるセグ
メント表1210における256のエントリの1つ
を行う為に使用される。次に、このセグメントデ
イスクリプタはユーザーセグメント1211をア
クセスする為に使用される。(更に詳細は、本発
明の被譲渡人と同一人に譲渡され本文に参考の為
作用された。昭和51年2月10日特許の「セグメン
ト化されたアドレス生成」なる名称の米国特許第
3938096号を参照されたい) セマフオアの記憶に使用されるシステムセグメ
ント1214をアクセスする為、システムベース
1215においてG表ワードGTWが使用され
る。このG表ワードのアドレスは、システムベー
スにおけるG表ワードの変位分を境界アドレスレ
ジスタBAR1202(第6図)に加える事によ
り得られる。このG表ワードGTWはG表121
2を指示するG表ポインタを含む。システムに利
用可能なG番号を使用し、G表内でインデツクス
する事により、システムセグメント1214をア
ドレス指定する為に使用されるGセグメントデイ
スクリプタがアクセスされる。 同様に、Q/PR/RDYセグメント1213を
指示する内部プロセスキユーワードIPQWを配置
する事により、レデイ状態プロセスキユー(Q/
PR/RDY)をアクセスする為に、システムベー
ス1215が使用される。 G 制御ユニツト 第13a〜13c図において制御ユニツトの詳
細が示されている。この制御ユニツトは、中央処
理装置(CPU)から切離されて示されている
が、実際にはCPUの一部であり、制御記憶ユニ
ツトCSU1301と、制御記憶インターフエー
タアダプタCIA1302とは付属サブユニツト
と、制御記憶ローダCSL1303と、制御及びロ
ードユニツトCLU1304とからなる。 制御記憶ユニツトCSU1301は、制御及び
ロードユニツトCLU1304と制御記憶インタ
ーフエイスアダプタCIA1302を介して制御記
憶ローダCSL1303からマイクロ命令を受取
る。通常の演算条件下では、マイクロプログラム
は、システム初期設定の間に外部ソースからロー
ドされて計算機の恒久的な制御機能となる。然し
ながら、制御記憶ユニツトCSU1301は、多
様な中央処理装置CPU104の演算モードを行
う様に再ロードされ初期設定される能力がある。
CPUの下記の演算モードがCSU1301の制御
下で利用可能である。即ち、(a)ネーテイブモー
ド、(b)エミレーシヨンモード、(c)ネーテイブ兼エ
ミユレーシヨンモード、(d)診断モードである。こ
の能力は、CSUにあるマイクロ命令が他の全て
のCPU機能ユニツトの演算の制御に使用される
マイクロ命令のソースである為に可能となる。前
記のCPU機能ユニツトとは、エミユレーシヨン
ユニツト1316、算術論理ユニツトALU13
17、命令取出しユニツトIFU1318、アドレ
ス制御ユニツトACU1319およびデータマネ
ージメントユニツトDMU1321である。又中
央処理装置CPU104内に知られているもの
は、前述の汎用レジスタ1307と、ベースレジ
スタ1308と、科学データ用レジスタ1309
と、Tレジスタ1310と、状態レジスタ131
1と、命令カウンタIC1312と、ハードウエ
ア制御マスクレジスタ1313である。 一般に、制御記憶ユニツトCSU1301は、
9Kのバイポーラ集積回路で、読出し/書込みラ
ンダムアクセス記憶装置(RAM)と混成された
プログラム可能読出し専用メモリ(PROM)であ
る。これは特に150ナノ秒の読出しサイクルと450
ナノ秒の書込みサイクルとを有する。制御記憶装
置の各ロケーシヨンは1つの84ビツトマイクロ命
令ワード(以下に更に詳細に記述)を記憶し、各
マイクロ命令ワードは1つのCPUサイクルを制
御する。制御記憶ユニツトCSU1301の制御
記憶装置の各ロケーシヨンが読出されると、その
内容はマイクロ演算デコーダにより復号され、こ
のデコーダは、各々がCPU内で生じる特殊な演
算(以下に詳細に記述)を惹起するマイクロ演算
制御信号を与える。 各マイクロ命令ワード内にロケーシヨンを分類
する(以下詳細に記述)事により、特定のCPU
演算即ち命令を実施できる制御記憶のシーーケン
スが得られる。各命令がCPUにより起動される
と、OPコード内のあるビツトが制御記憶起動シ
ーケンスの決定に使用される。命令デコード機能
によりセツト又はリセツトされるあるフリツプフ
ロツプ(図示せず)のテストにより、制御記憶メ
モリーが必要に応じて更に特定のシーケンスにブ
ランチされる。 制御記憶インターフエイスアダプタCIA130
2は、制御記憶ユニツト1301、データマネー
ジメントユニツトDMU1321、および第13
b図の制御記憶メモリー1333の演算を指示す
る為の算術論理ユニツトALU1317と通信す
る。このCIA1302は、制御記憶アドレス修
飾、テスト、エラー検査、およびハードウエアア
ドレス生成の為のロジツクを含む。ハードウエア
アドレス生成は、一般にエラーシーケンスの起動
アドレスの生成と、初期設定シーケンスの為に使
用される。 データマネージメントユニツトDMU1321
はCPU104と、第1図に示す主メモリーおよ
び(又は)バツフア記憶装置メモリーとの間のイ
ンターフエイスを提供する。どのユニツトが他の
ユニツトにより必要な情報を有しているかを認識
し適正な時点にこの情報をCPUレジスタにスト
ローブ(strobe)する事がこのデータマネージメ
ントユニツトの責務である。又このデータマネー
ジメントユニツトDMUは部分書込み操作の間マ
スキングを行う。 命令取出しユニツトIFU1318は、DMU1
321、ACU1319、ALU1317および
CSU1301とインターフエイスして、CPUに
命令を与え続ける様応答可能である。命令取出し
ユニツトは、現在の命令の完了以前にそのレジス
タにおいて次の命令を利用可能な状態に維持す
る。この能力を与える為、命令取出しユニツト
IFU1318は、通常1つ以上の命令を含む12バ
イトの命令レジスタ(図示せず)を含む。更に、
CSUの制御下にあるIFUは、命令が実際に必要と
される以前に主メモリーに情報(命令)を要求し
て、その12バイトの命令レジスタを常に更新状態
に維持している。命令はこの様に通常使用されな
いメモリーサイクルにより予め取出される。又こ
の命令取出しユニツトは各命令を復号して他のユ
ニツトの命令の長さおよびフオーマツトを通知す
る。 アドレス制御ユニツトACU1319はCIAを
介してIFU,ALU,DMU,およびCSUと通信す
る。ACU1319はCPU内の全てのアドレス生
成を受持つている。ACU内外の伝送を含め全て
のACUの動作はCSUのマイクロ演算および当ユ
ニツト内のロジツクにより指示される。ACUの
通常のサイクル動作は、命令タイプよりも命令中
のアドレスのタイプに依存する。アドレスのタイ
プ次第で、ACUはある命令中の各アドレスに対
して異なる操作を行う。又このACUは、8つの
最後に使用したメモリーセグメントのベースアド
レスを、それらのセグメント番号と共に記憶する
連想メモリー1319aを含む。メモリー要求が
なされる都度、このセグメント番号は連想メモリ
ーの内容に対して検査され、セグメントのベース
アドレスが既に生成され記憶されたかを決定す
る。もしベースアドレスが連想メモリー1319
aに含まれる場合は、このアドレスは絶対アドレ
ス生成に使用され、かなりの時間が節減さされ
る。もしベースアドレスが連想メモリー1319
a内に含まれていない場合は主メモリー表をアク
セスして生成される。然しながら、このセグメン
トのベースアドレスが生成された後は、将来の参
照操作の為そのセグメント番号と共に連想メモリ
ー内に記憶される。 ACU,IFU,DMU,およびCSUとインターフ
エイスしているのは算術論理ユニツトALU13
17である。その基本的な機能は、CPUに必要
な算術的演算とデータ操作の実施にある。この算
術論理ユニツトの動作は、完全に制御記憶ユニツ
トCSU1301からのマイクロ演算制御信号に
依存する。 ALU1317とCSU1301とに関連してい
るのはスクラツチパツドメモリーユニツトLSU
1315(時には又局部記憶ユニツトとも呼ばれ
る)である。これは、一般には256ロケーシヨン
(1ロケーシヨン当り32ビツト)のソリツドステ
ートメモリーと、そのメモリーに対する選択読出
し/書込みロジツクからなつている。このスクラ
ツチパツドメモリー1315は、CPUの制御情
報と保全度情報を記憶する為に使用される。更に
スクラツチパツドメモリー1315は作業ロケー
シヨンを含み、これは主としてデータ操作の間オ
ペランドと部分的結果の一時的な記憶の為に使用
される。又、ALU1317と関連しているの
は、特にコンピユータシステムの各状態を記憶す
る為の64のフリツプフロツプからなる補助メモリ
ー1317aである。 又、CPUはクロツクユニツト1320を有
し、1基に対し2つのクロツクシステムとなつて
いる。即ち、第1のクロツクシステムは制御イン
ターフエースアダプタCIA1302のタイミング
を与え第2のクロツクシステムは中央処理装置内
の機能ユニツトの動作の為のタイミングパルスを
発生する。 次に第13c図において、制御記憶ワード13
25のフオーマツトが示される。この制御記憶ワ
ードは84ビツトの幅を有し6つの主なフイールド
に分割されている。即ち、 a シーケンスタイプフイールド1326(3ビ
ツト)、 b ブランチおよび(又は)マイクロ演算132
7(23ビツト)、 c 定数生成および指示1328(14ビツト)、 d バスへのデータ1329(ビツト)、 e マイクロ演算1330(32ビツト)、 f チエツキング1331(4ビツト)。 制御記憶ワード1325の3ビツトのEフイー
ルドは、シーケンス制御フイールドとして使用さ
れる。本コンピユータシステムにおいては7つの
異なるシーケンスタイプと1つのリザーブされた
タイプがある。第13b図のブロツク1335に
おいて、Eフイールドが2進数の0,1又は2に
等しい時、マイクロ命令1325のブランチフイ
ールドA,B,C,D,およびLは次のアドレス
の生成に使用される。KSレジスタ1337の最
初の6ビツトはBフイールド、Cテスト結果、D
テスト結果およびLフイールドと共に使用され
て、次のマイクロ命令の次のアドレスを与え、前
記マイクロ命令は次のアドレスレジスタKS13
37に格納される。Eフイールドが2進数の4
(ブロツク1335参照)にセツトされる時、次
の選択されたアドレスが割込みリターンレジスタ
KA1339から取出される。KAレジスタに記
憶されたアドレスは、ハードウエアの割込みが生
じる時次のアドレス生成により生成されたもので
ある。Eフイールドが2進数の5にセツトされた
時は、ブランチ操作が用いられてマイクロプログ
ラサブルーチンからのサブリターンが設定され
る。ブランチ操作が用いられると、リターンレジ
スタKR1346の内容は次の制御記憶アドレス
として使用される。このリターンレジスタ134
6は制御記憶コマンドを出す事によりロードさ
れ、このコマンドは、インクリメンタ1338か
らKRレジスタ1346に対し、KSレジスタ13
37の現在の制御記憶アドレス+1をロードす
る。1レベルの入れ子形サブルーチン能力は、
KTリターンブランチレジスタ1347を介して
与えられる。KRレジスタ1346がロードされ
る都度、KRレジスタの元の内容は、KTレジス
タ1347に転送されマイクロプログラムリター
ンが呼出される度にKTレジスタの内容はKRレ
ジスタに転送される。第3のレベルの入れ子形サ
ブルーチン能力はKUレジスタ1348により与
えられ、第4レベル入れ子形サブルーチン能力は
KVリターンブランチレジスタ1349により与
えられる。制御記憶ワードのEフイールドが2進
数の6にセツトされた時は、次のアドレス指定さ
れた制御記憶ワードは、インクリメンタ1338
におけるKSレジスタ1337の現在のアドレス
+1に等しい。このEフイールドが2進数の7に
セツトされる時は、CSU1301は診断モード
に入り、次のアドレスは現在のアドレス+1とな
ろう。 前に記述されたブロツク1335に示した次の
制御記憶アドレスへのブランチ操作のシーケンス
制御に加え、第13b図のブロツク1336に示
されるハードウエアが生成するシーケンス制御が
ある。(注意:ブロツク1335と1336は実
際にハードウエアのレジスタで、マイクロ命令ワ
ードが有する形態とは異なる様に示されている)
このハードウエアが生成するブランチ操作はオー
バライド条件(エラー、初期設定、制御記憶走査
等)であり、この為Eフイールドを制御して固定
アドレスを制御記憶アドレスレジスタKS133
7に強制的に送らせる。このブランチ操作は1ク
ロツク期間丈割込み線(図示せず)をハイとして
Eフイールド制御下に生成された筈のアドレスを
KA割込みリターンレジスタ1339に記憶させ
る事により行われる。ハードウエア生成アドレス
は制御記憶アドレスレジスタに格納される。ある
ハードウエア/フアームウエア生成による割込み
操作は、そのクラスにおける別の割込みが割込み
条件が満される迄実行できない様に阻止する割込
み阻止用フリツプフロツプ(図示せず)より優先
順位を有する。フアームウエアマイクロ演算は、
フアームウエアの制御下にあるこられのシーケン
スに対し割込み阻止フリツプフロツプのリセツト
を制御する為に存在する。このハードウエア制御
下のシーケンスは、自動的にそのシーケンスの終
りで阻止用フリツプフロツプのリセツトを行う。
優先順にリストされた下記の条件はこのカテゴリ
ーに入る。即ち、(a)制御記憶ロード、(b)制御記憶
アドレス走査、(c)ハードウエアエラー、(d)ソフト
ウエアエラー。残るハードウエア条件は割込み防
止フリツプフロツプをセツトせず、生成された時
生じる様に直ちに作用させられる。以下の諸条件
は優先順に示されてこのカテゴリーに入る。 (a) 初期設定 (b) ソフトのクイア (c) 保全パネルのエントリ (d) 保全チヤンネルのエントリ (e) ハードウエアによる終了 初期設定信号は、2進数の0をアドレス指定
し、ハードウエアリセツト可能エラーをクリア
し、ハードウエア制御下の制御記憶走査シーケン
スが続く制御記憶ロード演算を実行する様ブラン
チをCSU1301に行わせる。又これはシステ
ムの初期設定を実施する。ソフトクリア信号は、
2進数の0をアドレス指定し、ハードウエアリセ
ツト可能エラーをクリアし、割込み防止フリツプ
フロツプをリセツトする様CSU1301をブラ
ンチさせる。保全パネルエントリ信号は、保全パ
ネル(図示せず)のCSUアドレススイツチにお
けるアドレスリセツトの為CSUをブランチさせ
る。 保全チヤンネルエントリ信号は、保全チヤンネ
ル(図示せず)を介して生成されたアドレスに
CSUをブランチさせる。このロードされたアド
レスは保全バスQMB1344からで、これは保
全チヤンネルの一部であり右寄せされている。ハ
ードウエアによる終了信号は、2進数アドレス2
にCSUをブランチさせる。このシーケンスは保
全手段として使用される。このシーケンスの終り
にはEフイールドを2進数の4にセツトしたEフ
イールドブランチを行う事によりリターンが初期
設定される。 制御記憶ロード信号は2進数0のアドレスに
CSUをブランチさせる。これも又CSUのレデイ
サイクルフリツプフロツプ(図示せず)とシステ
ムクロツク1320をOFFとし、CSUをロード
状態にする。このロード状態においては、CSU
は制御記憶ローダCSL1303,IOC1305、
主メモリー102、又は保守パネル1355から
ロードできる。CSLからロードされる時は自動的
な走査がロード操作の終期に生じる。ロード操作
が他のどんな手段による時も、走査はマイクロ演
算信号の生成によつても、保全パネルの走査スイ
ツチの設定によつても発生できる。制御記憶装置
走査信号はCSUを2進数の0のアドレスにブラ
ンチさせる。制御記憶装置走査はシーケンスの存
在中ハードウエア制御下にある。走査の間システ
ムクロツク1320はOFFとなり従つてコマン
ド即ちテストは実行されない。走査シーケンスの
終りにハードウエアは割込みリターンレジスタ
KAの内容をアドレスレジスタKSに転送し、シス
テムクロツクはONとなり、制御はフアームウエ
アにリターンされる。 ハードウエアエラー信号はCSUを2進数の4
のアドレスにブランチさせる。通常の処理モード
においては、どのCPUの機能ユニツトに検出さ
れたハードウエアエラーもハードウエアエラー回
線(図示せず)を動作させる。生成された制御記
憶装置のシーケンスはシステム条件をテストして
行うべき作用を決める。診断モードにおいては、
ハードウエア検出可能なエラー条件はマイクロ診
断操作から発見される。このマイクロ診断操作は
行うべき作用を制御する。一方、ソフトウエアエ
ラー信号は制御記憶装置を2進数の1のアドレス
にブランチさせる。このアドレスはマイクロプロ
グラムの制御下にあるソフトウエアエラー報告シ
ーケンスの開始である。 再び第13c図において、Eフイールド132
6は前述の如くブランチコード用の3ビツトのフ
イールドである。ブランチおよび(又は)マイク
ロ演算フイールド1327はA,B,C,Dおよ
びLフイールド(第13b図のブロツク1335
に示す)からなり、この場合Aフイールドは次の
アドレスの上位6ビツト、Bフイールドは64ブラ
ンチにおけるマスクフイールドの次のアドレスの
中間4ビツト、Cフイールドは64テストの1つに
対する6ビツトテストフイールド、Dフイールド
は64テストの1つに対する別の6ビツトテストフ
イールド、およびLフイールドは最下位ビツトで
ある。Kフイールド1328は14ビツトのフイー
ルドで、その内6ビツトは定数フイールド、4ビ
ツトは定数又は操作フイールド、および4ビツト
は定数に対する操作フイールドである。バスへの
データフイールド1329は、QMBバス134
4のQA部への情報を制御する為の4ビツトを有
するQAフイールドと、QMBバス1344のQB
部への情報を制御する4ビツトを有するQBフイ
ールドからなる。Fフイールド1330は32ビツ
トのフイールドで、マイクロ演算サブコマンドを
形成する様コード化される。Pフイールド133
1は検査用にリザーブされた4ビツトからなる。 作用において、マイクロ命令ワードは制御記憶
装置配列1333に記憶される。演算サイクルの
間、制御記憶装置配列はKSアドレスレジスタ1
337の内容によりアドレス指定される。これ
は、アドレス指定されるロケーシヨンの内容を読
出しラツチのグループ1357に読出させる。読
出しラツチのワード内容の各部はCPUの各機能
ユニツト内の記憶レジスタに分散即ち転送され
る。各機能ユニツトは、システムクロツクソース
の制御下の制御記憶装置ワードにより規定される
所定のサブコマンドを生成する為の復号論理回路
を含む。一般に、復号はその時間も最も短縮し復
号が中央部で行われる場合のコマンド信号も伝送
するのに必要なケーブル数を減少する為、中央部
で行うよりもCPUの各機能ユニツトで実施され
る。更に、復号はケーブル遅延の差から生じるタ
イミング問題を避ける為にも各ユニツト内で行わ
れる。更に、各ユニツトを用いてサブコマンドを
復号する事によりサブコマンド信号の生成に必要
な機能ユニツト内に存在するある条件を表わすこ
れらの信号をCIAユニツト1302にリターンす
る必要はない。典型的なデコーダユニツト135
9は、マイクロ命令ワードから各種のフイールド
を受取りマイクロ演算信号a,b,c,d……
q,rを生成する事が第13b図に示される。マ
イクロ命令デコーダ1359はマイクロ命令ワー
ドからコマンドを受取る。マイクロ命令ワードか
らのフイールドは復号され、複数の回線s,t,
u……y,zの1つをセツトする。マトリツクス
は、s−z回線とポイントα,β,γ……ψ,ω
で接続された予め定めた制御回線インピーダンス
を持たせる事により形成される。次に、マイクロ
命令からのフイールドが復号される時、回線s−
zの1つがハイとなる。ギリシヤ文字α……ωに
よりマトリツクスに示される濃い点は2組の回線
間を結ぶインピーダンスを表わす為、どの水平方
向回線に伝播する電気信号も接続されて、インピ
ーダンス接続(点)が示される垂直方向の線a−
rに沿つて伝わる。次に、各垂直方向線a−r
は、ANDゲート1360〜1365の各々への
1つの入力として接続される。中央部のタイミン
グユニツトからの調時信号tsを含む他の入力信号
も又ANDゲート1360〜1365に接続され
る。従つて、各調時信号tsがハイになると、他の
入力信号がハイとなる全てのゲートは駆動され、
マイクロ命令信号をCPUの予め定めた機能ユニ
ツトに与える。例えば、もし読出しラツチ135
7からコマンド1341が復号され、水平方向線
Sがハイであると、a,b,cおよびqの垂直方
向の制御線がハイとなり、ANDゲート136
0,1361,1362および1364は、ts調
時信号がこれらのゲートに順次与えられるにつれ
て駆動される。こうして、垂直方向の制御線がギ
リシヤ文字α乃至ωにより示された異なる点で水
平方向の制御線に接続される組合せは、マイクロ
命令信号を、制御記憶装置列1333から与えら
れるマイクロ命令により中央処理ユニツト内で各
機能ユニツトの制御の為に中央処理装置CPUに
供給する為の恒久的切換マトリツクスを表わす。
このように、切換特性を有する恒久的フアームウ
エアは、コンピユータシステムの能力として必要
なマイクロ演算のシーケンスを単に規定する事に
より本発明の計算機内で構成できる。 通常の条件下では、データは、局部レジスタ
yo1343としても知られるCPU書込みデータ
レジスタを介して制御記憶装置列1333に書込
まれる。制御フリツプフロツプ(図示せず)は、
記憶装置配列の上半部又は下半部のどちらが書込
まれるかを規定する。制御兼ロードユニツト
CLU1304からのデータは、保全バスQMB1
344を介してCIA/CSUに到達し、制御記憶装
置配列1333への書込み以前に記憶装置局部レ
ジスタyo1343によりバツフアされる。この
記憶装置局部レジスタ1343は、読出しと書込
み局部レジスタの両方に時分割される。マルチプ
レクサKQM1345は、保全パネル1355又
はマイクロ診断プログラムの何れかにより制御さ
れ、各レジスタから接続された読出し経路を提供
する。比較レジスタKP1350は非機能用途に
設けられ、保全目的の為に使用され又比較ロジツ
ク1352と復号ロジツク1351と共に用いら
れる。 H プロセス制御の為のデイスパツチヤフアーム
ウエア このデイスパツチヤはフアームウエア/ハード
ウエアユニツトで、その主な目的は、プロセスの
種々のキユーの管理、各プロセス間の切換えであ
り、プロセスのキユーと、プロセス制御ブロツク
PCBと、システムベース内の実行プロセスと、新
しいプロセスのレジスタの更新を含む。又、この
デイスパツチヤは、セマフオアにおいてプロセス
を実際に待機する(IOC又は例外ハンドラに対す
るV操作、シミユレートV操作の後)プロセスへ
メツセージを伝送する。又、これは、プロセスが
そのメツセージを伝送する為自由リンクセマフオ
アを待機する時、メツセージリンクを解放するP
操作の後セマフオアにメツセージをキユー化す
る。 このデイスパッチヤは更に、ネーテイブモード
におけるプロセス実行の「ロールイン」の後、又
はもし現在のプロセスがネーテイブモードで実行
中であれば「コンテスト」の後、ネーテイブモー
ドの命令フアームウエアに呼出しを行う。又これ
は以下の態様でデコール拡張フアームウエアで呼
出しを行う。即ち、 (a) 前記デコール拡張におけるプロセス実行のロ
ールアウトの間の一時的呼出し、 (b) 前記デコール拡張におけるプロセス実行のロ
ールインの間の一時的呼出し (c) 前記デコール拡張におけるプロセス実行のロ
ールインの終端における限定的呼出し、および (d) もし現在のプロセスが前記デコール拡張にお
いて実行状態を維持する場合はコンテストの後
の限定的呼出しである。 更に、デスパツチヤは、実行中のプロセスが存
在しない時当システムを休止ループに位置させ
る。 以下の如きデイスパツチヤに対する出入りの方
法がいくつかある。即ち、 (1) 初期設定手続(SIP)は、最終ステツプの如
きエントリを与える(本文に記名された譲受人
と同一人に譲渡された「システム初期設手続」
なる名称の昭和49年12月2日出願の米国特許出
願第528814号参照) (2) 起動および中断命令はデイスパツチヤへのエ
ントリを行う。起動命令はプロセスの起動、中
断命令はプロセスを停止させる。(「起動および
中断命令」なる名称の昭和49年12月2日出願の
米国特許出願第529253号参照) (3) PおよびV操作はデイスパツチヤへのエント
リを行う。P操作はセマフオアからのメツセー
ジを取上げ、メツセージがなければプロセスは
待機状態に入る。(「セマフオアにおけるPおよ
びV操作」なる名称の昭和48年2月15日特許の
米国特許第4374409号参照) 次に、簡単に説明すれば、このデイスパッチヤ
は、各プロセスを管理し、従つてどのプロセスが
実行されるかを決定し次いで現在実行中のプロセ
スをロールアウト(即ち、ハードウエアレジス
タ、スクラツチパツドメモリー等に含まれる現在
実行中のプロセスに関する全情報をPCBに書込
む)し、新しいプロセスをロールイン(即ち、新
しいプロセスを実行するのに必要な全情報を各種
のハードウエアレジスタ、スクラツチパツドメモ
リー等にPCBから書込む)する等の適当な操作を
行う事によりプロセス制御ブロツクPCBを管理す
る主要な機構である。 デイスパツチヤにより実施されるフアームウエ
アにおける(即ち、制御ユニツトにおける)演算
の表示はフローチヤート第14a〜14i図に示
される。例えば、第14a図のブロツク1402
はデイスパツチヤにより実施される演算の表示で
あり、この場合マイクロプログラムワードは制御
記憶ユニツトにより伝送され、デコーダ1359
による信号と同時に適当な一連のマイクロ演算信
号1360,1361等を介してCPUの適用部
分を制御して記憶サブシステム102のシステム
ベースからIPQWを検索し、かつこれをスクラツ
チパツドメモリー1315に転送する。同時に、
デイスパツチヤは、システムベースのG表ワード
GTWにより指示されたセグメントデイスクリプ
タのG表からGOセグメントデイスクリプタ(第
12図)を取出す(1404)。IPQWワードの
ビツト16〜31は16ビツトの正の整数を含み、
この整数はGOセグメントと呼ばれるGセグメン
ト番号0のベースからレデイ状態のプロセスキユ
ーQ/PR/RDYのヘツド(最初のバイト)への
変位である。もしIPQWワードのビツト16〜3
1が0である場合(1403)、レデイ状態キユ
ーは空であると考えられる。もしレデイ状態キユ
ーが空である場合は、Q/PR/RDYで現在待機
中のプロセスがなく、レデイ状態キユーは存在し
ない。判断ブロツク1405で判断されるべき次
の質問は、空表示インデイケータがセツトされて
いるかどうかを決定する事によりプロセスが現在
計算機内で実行されているかどうかについて決定
することである。もし空表示インデイケータがセ
ツトされていれば(即ち、現在実行中のプロセス
がない)、プロセサを使用する為待機中のレデイ
状態キユーにプロセスがない事は既に決定されて
いるから、計算機は休止状態に入る(140
6)。然しながら、もし現在実行中のプロセスが
計算機にある場合であつて、計算機の使用に対す
る待機中のプロセスが存在しなければ、現在のプ
ロセスはその次の命令をアクセスする(140
7)。 再び第14a図のフローチヤートの判断ブロツ
ク1403において、もしIPQWのポインタ領域
において正の整数がある場合は、GOセグメント
のIPQWワードにより指示されたレデイ状態キユ
ーのヘツドはスクラツチパツドメモリーに取出さ
れる。(注:反復を避け、明確にする為、制御ユ
ニツトとCPUと関連するデイスパツチヤの中間
的機能については省略する。然し、事例により既
に記述した如き中間的諸機能については典型例に
より示すものとする。)これ迄の処、本文ではレ
デイ状態のキユーで待機中のプロセスがあるもの
と決めていた。次の操作が始められる前に、中央
処理装置内で現在実行中のプロセスがあるかどう
かの決定が必要である。フローチヤートの判断ブ
ロツク1410においてこれが決定され、もし中
央処理装置に現在実行中のプロセスがない(即
ち、CJPがない)場合、レデイ状態のキユーのヘ
ツドが実行される(1412)。然し中央処理装
置でプロセスが実行中であると、デイスパツチヤ
は現在実行中のプロセスとレデイ状態のキユーの
ヘツドのいずれが優先順位を有するかを決定しな
ければならない。 従つて、システムベースPCB400の実行プロ
セスワードに配置される現行プロセス(CJP)の
優先バイトが取出される(1413)。次に現行
プロセスCJPが、レデイ状態キユーのヘツドで待
機中の新らしいプロセスNJPよりも低い優先順位
であるかどうかについて決定がなされる(判断ブ
ロツク1414参照)。もしCIPがNJPより低い
優先順位でない場合は、CIPは中央処理装置の制
御下の状態に維持され、コンテストインデイケー
タがリセツトされる(1415a)。(このコンテ
ストインデイケータは、CJPのために実行され従
つて競合の可能性が生じる最後の命令の開始後1
つ以上の新らしいプロセスがレデイ状態キユーに
置かれた時(この条件下では、コンテストインデ
イケータは2進数の1にセツトされる。)を除き
常に0にセツトされる。現行プロセスCJPが継続
させられるが、これ以上の命令を実行させられる
以前に、CJPがデコール拡張モードで実行されて
いるかどうか決定がなされる(1415)。もし
CJPがデコール拡張モードに実行されている場合
は、次の命令はエミユレーシヨンモード(即ち、
デコール拡張)で実行され(1419a)、もし
CJPがデコール拡張モードで実行されていない場
合は、次の命令はネーテイブモードで実行される
(1419b)。再び判断ブロツク1414におい
ても、もしレデイ状態のキユーのヘツドのNJPが
CJPよりも高い優先順位を有する(即ち、その優
先順位番号はCJPの優先順位番号よりも小さい)
場合は、現在実行中のプロセスCJPは計算機から
「ローアウト」され、新らしいプロセスNJPが計
算機に「ロールイン」される。従つて、フアーム
ウエア優先サブルーチンPRIQ1418は現行プ
ロセスCJPのキユー化操作をLIFO順位により、
およびフアームウエアサブルーチンRLLO141
9の指令下の最初の「ローアウト」CJPによる優
先順位番号によりレデイ状態のキユーに指向させ
る。このRLLOサブルーチンは、汎用レジスタ、
ベースレジスタ、科学データ用レジスタ、Tレジ
スタ、状態レジスタおよび命令カウンタに記憶さ
れるCJPの情報の書込みを、主メモリーにおける
プロセス制御ブロツクPCBの適当な記憶領域に返
戻させて、RUAの更新を生じさせる。更に、
PCB400におけるプロセス主ワード0
(PMWO)のDEXT番号が更新される。(142
0) ここで、新らしいプロセスNJPが「ロールイ
ン」される用意ができる。境界アドレスレジスタ
BARが取出され(1442)、実行プロセスワー
ドRPWがシステムベースのアドレスBAR+56
から取出される(ブロツク1423参照)。この
新しいプロセスNJPのネームは次に実行プロセス
ワードRPWへ書込まれ、新らしいプロセスNJP
のネームがQ/PR/RDYのプロセスリンクPL内
に書込まれている為、プロセスリンクPL内のネ
ームは従つてRPWブロツクに置かれる(142
4)。従つて、レデイ状態のキユーからのNJPは
この時CJPとなり、中央処理装置を制御する状態
になり、従つてもはやQ/PR/RDYに待機せ
ず、そのネームをQ/PR/RDYのプロセスリン
クPLから取去る事によりキユーから除かれねば
ならない(1425)。これが行われると、レデ
イ状態のプロセスQ/PR/RDYのキユーはフア
ームウエアサブルーチンUQLK、1425aによ
り更新される。従つて、計算機から取出された許
りのプロセスのJP番号は、もはや計算機の制御
下になく待機状態にならねばならない為、Q/
PR/RDYのプロセスリンクに置かれる(142
6)。この時点において、新らしいプロセスに対
し中央処理装置のこの制御を与える為の変形操作
およびレデイ状態のキユーに元のプロセスを位置
する操作が実施され、中央処理装置の制御下にプ
ロセス(新らしいCJP)がある為、空表示インデ
イケータは0にセツトされる(1427)。一方
もし中央処理装置の制御下のCJPがなければ、空
表示インデイケータは1にセツトされる事にな
る。この時点において、前記中央処理装置の割当
て操作が完了し、新らしいプロセスは中央処理装
置に入るが、元のプロセスはレデイ状態キユーに
置かれる。然し、新らしいプロセスは第13a図
の中央処理装置1306のハードウエア例えば汎
用レジスタ1307、ベースレジスタ1308、
科学データ用レジスタ1309、Tレジスタ13
10、状態レジスタ1311、および命令カウン
タ1312に対して末だ実行の用意ができておら
ず、これらは新らしいプロセスのプロセス制御ブ
ロツクからの制御情報を供給されなければならな
い。 従つて、フアームウエアのサブルーチン143
0はCPUを制御し、最初にPCB(第4図)から
スクラツチパツドメモリ1315に向けてPMW
3を取出し、次にPMW0を取出す。PMW0の
MBZフイールドは検査され(1433)、もしこ
れが2進数の0でなければ違法のPCB例外が起
る。然し、もしPMW0のMBZフイールドが零で
あればPMW1が取出される(1413)。再び
PMW1のMBZフイールドがテストされてこれが
2進数の0であるかどうかを決める。もし0でな
ければ違法PCB例外が起るが、もし0であればデ
イスパツチヤはCに進む。 従つて、アドレススペースワード0
(ASWO)はPCBの適当なスペースから取出さ
れ、セグメント表ワードの大きさSTWSZはテス
トされて7よりも小であるかどうかを決める。も
しこれが7より大きければ、違法PCB例外が起
り、もしこれが7より小か等しい場合はASW1
はPCBから取出され(ブロツク1438)、その
STWSZフイールドがテストされて8より小か等
しいかを決める(1439)。もしこのフイール
ドが8より大である場合、違法のPCB例外が起る
が、もしそのSTWSZフイールドが8と等しいか
これより小であれば例外ワードEXWは取出され
(1440)、そのMBZフイールドがテストされ
て0と等しいかどうかが決まる。もしそのMBZ
フイールドが0に等しくなければ、違法のPCN
例外が起るが、もし0に等しければスタツクワー
ドSKTが取出され(1442)、そのMBZフイー
ルドがテストされ(1143)0に等しいかどう
かが決まる。もしMBZフイールドが0に等しく
なければ違法のPCB例外が生じるが、もし0に等
しければ命令カウンターワードICWがPCBから
取出されて命令カウンタICに置かれ(144
4)、そのTAGフイールドがテストされて0に等
しいかどうかが決まる(1445)。もしTAGフ
イールドが0に等くなければ、違法のPCB例外が
生じる。然し、もしTAGフイールドが0に等し
ければ、MBZワードが取出され(1446)、そ
のMBZフイールド(ビツト0〜31)がテスト
されて0に等しくないかどうかを決める(144
7)。もしこれが0に等しくなければ違法のPCB
例外が生じるが、もし0に等しければ、スタツク
ベースワード0,1,2(SBW0,1,2)が
取出される(1448)。PCBのベースレジスタ
保管領域の8ベースレジスタの内容が次に取出さ
れ、機械のベースレジスタ1308に記憶される
(1449)。次に、PCBの汎用レジスタ保管領域
からの16汎用レジスタの内容が取出され機械の汎
用レジスタ1307に記憶される(1450)。
然しながら、科学データレジスタの内容の取出し
以前に、プロセス主ワード0(PMW0)の能力
バイトについて検査が行われて科学計算モードが
使用されるかどうかを決める(1451)。もし
科学計算モードが使用されている場合は、PCBの
科学計算レジスタ保管領域からの科学計算レジス
タの内容が取出されて記憶される(1452)。
次に、フアームウエアが進行してPMW0の能力
バイトの検査を行いアカウントモードが使用され
ているかどうかを決める(1453)。もしアカ
ウントモードが使用されている場合(即ち、能力
バイトのアカウントビツトが2進数の1にセツ
ト)、このアカウントワードはPCBに存在し、レ
デイ状態のタイムアカウントワードRTAが更新
される。次に、フアームウエアが進行してDEXT
番号が0にセツトされたかどうかを決める(14
54)。もしこれが0にセツトされていなけれ
ば、機械はエミユレーシヨンモードにある(即
ち、デコール拡張能力が使用されている)事を示
し、従つてPMW0のDEXT番号が検査され(1
455)プロセス主ワード3のDETSZフイール
ドより大きいか小さいかを決め、もしこれが
DETSZフイールドよりも大きい場合は違法の
PCB例外(1456)が生じる。その理由は、
DEXT番号はDETSZフイールドよりも小である
が零に等しくないからで、もしそうなら機械は適
法のエミユレーシヨンモードで実施されてF迄進
行する。再び判断ブロツク1454において、も
しDEXTフイールドが2進数の0である場合、ネ
ーテイブモードが実行されて機械はSTWを取出
す(1457)。PCBの残りのタイムアウトワー
ドRTOワードが取出され(1458)、CJPが実
行状態で消費できる時間制限によりプロセスタイ
マがロードされる。 この時点迄に、(a)機械内に元のプロセスCJPが
あり新らしいプロセスNJPが元のプロセスCJPよ
り高い優先順位にあつた時新らしいプロセスNJP
が「ロールイン」されてCPUの管理を行うか、
(b)CPUの制御にはCJPがなくレデイ状態のキユー
のヘツドが実行された。条件(a)においてはCJPは
RPWから取出されてQ/PR/RDYにおけるプロ
セスリンクPLに置かれ、Q/PR/RDYにおける
プロセスリンクPLのNJPはRPWに置かれ、こう
してこの時点でCJPとなるNJPに制御を与え、元
のCJPから制御を外すように2つのプロセスの位
置を有効に切換える。次いで、NJPのPCBがアク
セスされ、NJP(現在のCJP)の実行に必要な情
報がスクラツチパツドメモリ又はACUのレジス
タ配列に与えられる。 もしCPUの制御下にCJPがない場合レデイ状態
のキユーのヘツドが実行される、即ちレデイ状態
のキユーのヘツドからプロセスリンクPLからの
NJPを取出しこれをRPWワードに入れるデイス
パツチヤの故に、NJPはCJPとなる。こうする事
により、プロセスリンクPLはQ/PR/RDYの空
のまま残され、これを取出す事が必要となる。 従つて、判断ブロツク1461から始つて、フ
アームウエアは、CPUの制御下のCJPがあるかど
うかを決定し、もし自由なプロセスリンク
(FPLS)があつた場合、これはアクセスされ、
キユー状態にされて、このCJPはこのプロセスリ
ンクに書込まれる。然しながら、もしCPUの制
御下のCJPがなかつた場合、NJPのPMW0の状
態バイトは更新され(1460)、再び機械に
CJPがあつたかどうかの決定が行われる(146
3)。CPUの制御下のCJPがなかつた場合、NJP
のプロセスリンク(かつてQ/PR/RDYにあつ
て今は機械の制御下にある)がQ/PR/RDYか
ら取出され(1466)(即ち、Q/PR/RDYの
キユー状態から外される)、自由リンクのセマフ
オアFLSPとなり、この時自由プロセスリンクの
キユー(第9図の805)にキユー化されて自由
プロセスリンクのキユーの一部になる(1466
a)。境界アドレスレジスタBARの内容は取出さ
れ(1464)。システムベースのBAR+56に
配置されたNJP(現在のCJP)の実行プロセスワ
ードRPWが、RPWにNJP識別を置く事により更
新される(ブロツク1465)。空表示インデイ
ケータは、CJPがなかつた場合に0にセツトされ
る。次に、コンテストインデイケータが0にセツ
トされ(1467)、典型的な内容のアドレス指
定可能なメモリであるセグメント連想装置(第1
図のAS132)がクリアされ(1471)次い
でプロセスモードに入る(1470)。(プロセス
モードは、オペレーテイングシステムよりもむし
ろプロセサにおいて操作されるプロセスにより例
外が取扱われる事を示す。)次いでフアームウエ
アはCAB迄継続し(1480)、非同期トラツプ
ビツトABが検査されてこれが2進数の1にセツ
トされているかどうかを決定する(1481)。
もしABビツトが2進数の1にセツトされる場合
は、検査が行われて、プロセスリング番号PRN
が非同期トラツプビツトARNより大きいか又は
これと等しいかどうかを決定する。(ABおよび
ARNは各プロセスのPCBの優先順位バイトに配
置されて、プロセスが実行状態にある時有意義で
あり、ABおよびARNはシステムベースのBAR+
56に置かれたRPWから得られる。)RPWの
BAR+56におけるABとARNは、非同期トラツ
プビツト又は同期リング番号を最初にセツトさせ
る条件を作る非同期トラツプルーチンに対して次
のステツプ1484が進行する為リセツトされ
る。もしこれらがリセツトされなかつた場合は、
フアームウエアにより次のパス(pass)におい
て実際には何も誤りがないのに誤りがあつたと表
示を与えて、この為常に同期トラツプルーチン1
484に進み、決して実行に入らない事になる。
次に、判断ブロツク1481と1482にもど
り、もしABビツトがセツトされないか、又はAB
ビツトがセツトされPRNがARNより大きくない
場合は、フアームウエアは進行して処理装置がど
のモード即ち通常のモードかエミユレーシヨンモ
ードのどちらで実行するかを決定する。従つて、
DEXT番号が検査されこれが0にセツトされてい
るかどうかを決定し、もしそれが0にセツトされ
ている場合は機械の通常モードが実行される(1
487)。しかしもしDEXT番号が0にセツトさ
れない場合は、エミユレーシヨンモードが実行さ
れる(1486)。 本発明の説明 ハードウエア/フアームウエアシステムは、セ
ツト演算において操作される2つの基本的な記録
のタイプを認識するものである。これらの2つの
タイプの記録は、第15A図に示した仮想記憶装
置の記録と、第15B図に示したデータベース記
録とである。仮想記憶装置の記録は一般に記録が
セグメント化されたアドレスによりアドレス指定
できる様なオペレーテイングシステム手続の内容
的に使用される。データベース記録は更に「領域
一頁一行」番号を用いてそのデータをアドレス指
定するユーザプログラムにより使用される。この
領域とはユーザのフアイルを指し、頁とはそのユ
ーザのデータフアイル内のデイビジヨンを指し、
行番号とは前記フアイルの前記ページ内の特定の
記録を指す。 第15A図に示す如く、仮想記憶装置の記録は
以下のフイールドからなつている。即ち、タイプ
フイールド1501は、記録タイプの記述であり
この記録の記録デイスクリプタ(以下に記述す
る)から得られる。仮想記憶装置の記録のD切換
フイールドは記録の状態を記述する。この記録は
以下の状態にあり得る。即ち、活動(これは記録
が現在有効なデータを含む事を意味する。)およ
び論理的削除(これは記録がもはや有効なデータ
を含まぬが、未だメモリースペースを占有してい
る事を意味する。)である。長さフイールド15
03は記録における実際のバイト数を記述する。
記録体1504は記録の実データを含む。ポイン
タシーケンスフイールド1505はこの記録体の
一部で、この記録がオーナー又はメンバーの何れ
かであるセツトの次の、前の、最初の、最後のお
よびオーナーの記録に対するポインタを含む。 ハードウエア/フアームウエアにより認識され
る記録の第2の主なタイプは第15B図に記述さ
れる如きデータベース記録である。タイプフイー
ルド1510は再び記録のタイプを記述し、以下
に記述される記録の記録デイスクリプタから得ら
れる。長さフイールド1511はバイト中の記録
の長さを記述する。記録体1512は記録の実デ
ータを含む。ポインタシーケンス1513はこの
セツトの次の、前の……等の記録に対するポイン
タを含む。又、別個に記録され以下に記述される
各記録に対するDスイツチフイールド1604も
ある。 更に、第15Cおよび15D図は1つの記録の
ポインタシーケンスのフオーマツトについて記述
する(第15A図のフイールド1505と第15
B図のフイールド1513)。ハードウエア/フ
アームウエアシステムは、2つの異なるポインタ
ーシーケンスフオーマツト、即ちメンバー記録に
対し認識されるシーケンスである第15C図のフ
オーマツトと、記録がオーナー記録となる時に認
識されるシーケンスである第15D図のフオーマ
ツトを認識する。メンバー記録(第15C図)に
対しては、次のポインタフイールド1520は前
記セツトにおいて次のメンバーのアドレスを含
む。前のポインタ1521は現在のセツトの先行
メンバーのアドレスを含む。オーナーポインタフ
イールド1524は前記セツトのオーナーのアド
レスを含む。オーナー記録に対しては、ハードウ
エア/フアームウエアにより認識されるポインタ
ーシーケンスフオーマツトは第15D図に示され
る。最初のポインターフイールド1532は前記
セツトの最初のメンバー記録のアドレスを含む。
最後のポインターフイールド1533は前記セツ
トの最後のメンバーのアドレスを含む。 記述された各ポインタ(次の、前の、オーナー
の、最初のおよび最後の)は任意である。然しな
がら、与えられたセツトに対しては以下の組合せ
のみが適法である。即ち、 ケース1 オーナー又はメンバー記録に対しては
最初の、最後の、次の、又は前のポインターは
ない。(メンバー記録はオーナーポインタを有
する) ケース2 オーナー記録は最初のポインタを有
し、メンバー記録は次のポインタを有する(メ
ンバー記録はオーナーポインタを持つても持た
なくても良い)。 ケース3 オーナー記録は最初と最後のポインタ
を有し、メンバー記録は次のポインタを有する
(メンバー記録はオーナー記録を持つても持た
なくても良い)。 ケース4 オーナー記録は最初と最後のポインタ
を有し、メンバー記録は次のおよび前のポイン
タを有する(メンバー記録はオーナーポインタ
を持つても持たなくても良い)。 ハードウエア/フアームウエアシステムの他の
特性は4つの異なるクラス、又はポインタのフオ
ーマツトの認識である。記録内ではこれらのクラ
スは、仮想メモリー記録のみに対して使用され
る。クラス零と、仮態メモリー記録のみに対して
使用されるクラス1と、データベース記録のみに
対して使用されるクラス2と、データベース記録
に対して使用されるクラス3等として参照され
る。 全ての4ポインタークラスで、それらの最初の
2ビツトは共通の意味を有する。最初のビツト、
即ちEOSビツトはセツトの終りインデイケータ
である。このビツトが1にセツトされる時、ポイ
ンタは定義によりオーナー記録を指示する。第2
のビツト、即ちNINSビツトは非挿入記録インデ
イケータである。このビツトが1にセツトされた
時、記録は現在参照されるセツトのメンバーとし
て挿入されていない。 クラス零ポインターフオーマツトは第15E図
に示される。EOSビツト1540と非挿入ビツ
ト1541は最初の2ビツト位置を占めている。
SRAフイールド1542は14ビツトオフセツト
で、これは前記セグメントに配置された記録を指
示する与えられたセグメント内での変位である。
クラス零のポインタから得られたSRAフイール
ドはクラス零ポインタを介して記録のアドレス指
定に使用されるベースレジスタから一般に得られ
るセグメント番号と常に組合わされる。 クラス1ポインタは第15F図に示される。
EOSビツト1550および非挿入ビツト155
1は標準的定義である。フイールドSEG,SRA
1552は前に定義された如くSEGとSRAによ
る標準的なセグメント化されたアドレスからな
る。これらのポインタは、ポインタを介してセグ
メント番号を直接供給して記録を直接アドレス指
定するのに使用される。 データベース記録と共に使用されるクラス2と
クラス3のポインタに対し、フアームウエア/ハ
ードウエアシステムは、既に述べたが如く(第2
図202参照)システムの各ベースレジスタと関
連するインデツクスレジスタがあると言う約束を
認識する。汎用レジスタ8−15(201)はそ
れぞれインデツクスレジスタ0〜7に対応する。
このインデツクスレジスタ番号IXR1はベースレ
ジスタBR1とマツチさせられる。例えば、ベース
レジスタBR3に対しては、インデツクスレジスタ
IXR3(GR11)が領域一貫一行番号ポインタ(第1
5H図参照)を含む事になり、その現在の
SEG,SRAアドレスはベースレジスタBR3に含ま
れる。この様に、ユーザは、SEG,SRAアドレ
スを有するベースレジスタか又はインデツクスレ
ジスタに含まれる領域一貫一行フオーマツトのデ
ータベースポインタの何れかを介して彼の記録を
アドレス指定する事ができる。 データベース記録について演算するハードウエ
ア/フアームウエア命令は、領域一貫一行ポイン
タからSEG,SRAアドレスに自動的に変換する
能力を実現する。この為、データベース命令によ
り作られる全ての実メモリー参照は標準的ハード
ウエア機構を使用し、この機構は、必要に応じて
ハードウエアにより自動的に行われるインデツク
スレジスタに含まれる如き領域一貫一行からの変
換によりセグメントおよびSRA番号でメモリー
をアドレス指定する。 ユーザフアイル(領域)における1つのページ
と、ハードウエア/フアームウエアにより認識さ
れる1つのセグメントの間には一時的な1対1の
対応付けが行われる。この様に、以下に記述され
るページデイクリプタ機構を介して、ハードウエ
ア/フアームウエアはどの与えられたページ番号
もセグメント番号に変換する。 クラス2ポインタフオーマツトは第15G図に
示される。EOSと非挿入ビツトはフイールド1
560と1561に示される。ページ番号はフイ
ールド1562に含まれる。行番号はフイールド
1563に示され、1ページおよび領域における
記録の番号を表わす。領域一貫一行番号ポインタ
全体は、データベース命令により参照される筈の
インデツクスレジスタから得られる領域番号を得
る事によりクラス2記録を使用する時に得られ
る。 クラス3ポインタフオーマツトは第15H図に
示される。EOSと非挿入ビツトはフイールド1
570と1571に示される。領域番号はフイー
ルド1572に示される。これはユーザフアイル
番号を参照する。ページ番号1573と行番号1
574はユーザフアイルにおいて特定の記録をア
ドレス指定する。 第16A図はデータベースページを示し、これ
はハードウエア/フアームウエアシステムにより
認識される如きユーザフアイル(領域)の一部で
ある。データベースページは既に第15B図に記
述された如きデータベース記録を含む。既に述べ
た如く、データベースページが主メモリーに存在
する時、データベースページとセグメント間に1
対1の対応付けが行われる。 ページヘツダ1601は、これが含まれるペー
ジに関するある事情を含む。例えば、このページ
ヘツダはバイトで表わしたページの長さと、又ペ
ージに含まれる記録(行)の数を記述する。又、
これは書込みビツトの如き情報も含み、この書込
みビツトは主メモリーに前記ページが含まれてい
る時これへの書込みと同時にセツトされる。ペー
ジヘツダに続いて、データベースページの次の主
な部分は行オフセツト配列1602である。これ
は16ビツトの要素配列で、1対1の割合でページ
に対する有効行数に対応する。行オフセツト配列
の各要素に対しては、2ビツトのDスイツチ16
04と14ビツトのオフセツト1603がある。D
スイツチは記録の不動作、論理的削除、物理的削
除、又は動作の状態を記述する。オフセツトは、
ページの開始位置からの相対的変位である記録に
対する14ビツトポインタである。ハードウエアは
このページに対応するセグメント番号と連結され
たオフセツトを用いる事によつてこのページにお
いてデータベース記録のアドレス指定が可能であ
る事がわかる。対応するセグメント番号を得る方
法については以下に記述する。データベースの残
りの部分は、記録1610と1612に示される
如き実データベース記録からなる。これらの記録
は、ページ(セグメント)のどの部分にも配置で
き、必ずしも行オフセツト配列のそれらの位置と
同じ順序になるわけではない。もしDスイツチが
不動作又は物理的に削除された記録状態を記述す
る場合は、オフセツトは零にセツトされ、記録は
存在しない。 実データベースページは第16B図に示される
如きページデイスクリプタによりアドレス指定さ
れる。このページデイスクリプタのセグメント番
号1625は、それが主メモリーにロードされた
後このページに対応するセグメント番号を含む。
領域番号1622はこのページの領域番号(フア
イル)を含んでいる。ページ番号1624は実ペ
ージ番号である。最後ページインデイケータ16
26は与えられた領域の最も大きなページ番号に
対して1に等しい。シフトカウンタ1623はペ
ージ番号のビツト数を含む。ハードウエア/フア
ームウエアシステムは、領域一貫一行ポインタフ
オーマツトを使用する時、可変長のページ番号を
認識する。「次の」デイスクリプタ1620は、
一連のページデイスクリプタにおける次のページ
デイスクリプタの指示に使用される。「前の」デ
イスクリプタ1621はページデイスクリプタチ
エーンにおける前のデイスクリプタを指示する。
これらのページデイスクリプタチエーンの使用に
ついては以下に記述される。 このページデイスクリプタチエーンは、どのフ
アイルのページが現在コンピユータシステムの主
メモリーに配置されているかを示すのに使用され
るハードウエア/フアームウエアである。メモリ
ーに存在する各ページに対しては、ページデイス
クリプタは単一のシステムを認識したチエーンに
配置され、このチエーンは第16C図に示す統合
アクセス制御(IAC)ポインタにより指示され
る。この統合アクセス制御ポインタは前述のシス
テムベースに対する1ワード拡張を表わす。IAC
ポインタはアドレスBAR+92に配置され、この
アドレスは前記システムベースの端部を1ワード
過ぎた所である。IACポインタのフオーマツト
は、零でなければならないフイールド1630、
G番号1631、および変位1632を含んでい
る。このG番号は前述の如きGセグメントの番号
である。この変位とは、ページデイスクリプタの
開始部が開始する前記Gセグメント内での変位で
ある。主メモリーに含まれるページの全てのペー
ジデイスクリプタは、次に従来のチエーンフオー
マツトにおいて一緒にリンクされる。次のデイス
クリプタフイールドと前のデイスクリプタフイー
ルドはこのリンクを形成する。 第17図は、主メモリーにおいてページデータ
ベースページの位置決めを実現する為のハードウ
エア/フアームウエアのフローチヤートを示す。
このフアームウエアは、領域一頁一行番号ポイン
タの取得に用いられ、最初にページが主メモリー
にあるかどうかを決めるのに用いられ、次にもし
これが主メモリーに存在する事が見出される場合
にはそのページのページデイスクリプタをデリバ
ーするのに用いられる。このフアームウエアは1
701に示された如くに起動する。 最初のフアームウエア動作は1702に示され
る如くに起るが、この場合主メモリー取出しIAC
ポインタはBAR+92のロケーシヨンに形成され
る。(IACポインタは第6図に示すシステムベー
スに合体されている)。このメモリー取出しの結
果として、メモリーアクセス例外1703が生じ
得る。メモリーアクセス例外の例は、物理メモリ
ー又はメモリー読出しエラーにはない。フアーム
ウエアにより起される次のステツプは、MBZフ
イールドが零である事を検査される1704に示
される。(第16C図参照)もしこのフイールド
が零でない事が見出されれば、システム検査17
05が起る。システム検査の発生と同時に、この
システムは診断状態に入る。 MBZフイールドが零であれば、ステツプ17
06が次に実行される。IACフイールドからのG
番号は一時的なレジスタGに転送される。変位フ
イールドは一時的なレジスタDにも転送される。
この変位は又「最初のクラス」と呼ばれるロケー
シヨンのスクラツチパツドメモリーにも転送され
る。ステツプ1707が次に実行される。主メモ
リーの取出しはアドレスG,Dで行われてページ
デイスクリプタを取出す(第16B図参照)。こ
の取出しは、前述の如くG,Dアドレス指定の約
束に応じて行われる。G,Dアクセス例外170
8はこのメモリー取出し(例、セグメント、違法
G−Dセグメントデイスクリプタから)の結果生
じ得る。次いでステツプ1709がフアームウエ
アにより実行される。フアームウエアサブルーチ
ンにより検査される領域一貫一行番号の領域番号
とページ番号は、マツチングの為ページデイスク
リプタの領域番号フイールド1622とページ番
号フイールド1624に対し比較される。もしこ
の領域とページ番号がマツチする場合は、ステツ
プ1720が実行され、この場合フアームウエア
ルーチンは、主メモリーから取出された許りのペ
ージデイスクリプタをスクラツチパツドメモリー
にロードして終了する。 もし現在のページデイスクリプタの領域又はペ
ージ番号が検査される領域一頁一行ポインタの領
域およびページ番号に等しくなければ、ステツプ
1711が実行される。ページの現時ページデイ
スクリプタの「次の」デイスクリプタフイールド
1620が一時的スクラツチパツドロケーシヨン
「最初のポインタ」の内容に対して検査される。
もしこれらの2つの数値が等しくなければ、ステ
ツプ1713が実行され、この場合一時レジスタ
Dは現時ページデイスクリプタの「次の」デイス
クリプターフイールドによりロードされる。ステ
ツプ1713に続いて、フアームウエアによるブ
ランチは、新らしいページデイスクリプタ(「次
の」デイスクリプタによりアドレス指定された)
がこの時取出されて続いて検査されるステツプ1
707について行われる。 再びステツプ1711において、もし「次の」
デイスクリプタが「最初のポインタ」の一時的に
書込まれたロケーシヨンの内容と等しい場合、こ
れは、メモリーにおいて存在する全ページを記述
するページデイスクリプタの全リングがこの時フ
アームウエアにより探索されている領域一頁を見
出す事なく終つた事を示す。この場合、ページン
グ例外が生じ(1712)、所望のページは主メ
モリーに位置しない事を示す。この実行に続いて
適当なソフトウエア動作が行われて、この所望の
ページの主メモリーへの実際の移動を惹起する。 本文に記述されたハードウエア/フアームウエ
アの更に2つの重要な要素が第18Aと18B図
に示される。セツトデイスクリプタ(第18A
図)は与えられたセツトの特性の記述に用いられ
る。第18A図に示される如く、Pフイールド1
802は、このセツトにおける記録ポインタのポ
インタクラス(モード)を記述する2ビツトのフ
イールドである。オーナーとメンバーの相方の全
ての記録は与えられたセツトに対して同じポイン
タクラスのポインタを有する。セツトデイスクリ
プタ1803のオーナーポインタフイールドは、
もしメンバー記録がオーナー記録に対するオーナ
ーポインタを含む場合は、1にセツトされる(第
15C図参照)。他のポインターフイールド18
04は、オーナーおよびメンバーが最初のポイン
タ、最後のポインタ、次のポインタ、および前の
ポインタを有すをかどうかを記述する。セツト編
成モードフイールドK1805は、現在のセツト
に対して使用されるセツト編成のモードを記述す
る。リングセツトのモードについてのみ本文で詳
述される。しかしながら、表配列又はリスト配列
の如きセツト編成の他のモードへの拡張の能力を
有する。デイスプレイスメントフイールド180
6はメモリにおける記録の開始からその記録のポ
インターシーケンスの開始までのオフセツトを示
すために使用される。(第15Aおよび15B図
参照)。第18A図に記述された如きセツトデイ
スクリプタは常に、ハードウエア/フアームウエ
アに参照セツトの記述を供給する為あるセツトに
ついて演算を行う時、データベース命令によりア
クセスされる。 第18B図に示す如き記録デイスクリプタは、
記録のある特性の記述の為に使用される。Fフイ
ールド1820は記録フオーマツトの記述に使用
される。記録のフオーマツトは、第15Aおよび
15B図に記述される如く仮想メモリー記録とデ
ータベース記録の何れかである。記録タイプフイ
ールド1821は記録のタイプを示し、最後には
第15Aおよび15B図に示される如きメモリー
の実記録のタイプフイールドにロードされる。記
録長さフイールド1822は、記録の主メモリー
における実際の長さであり、第15Aおよび15
B図に示す如く主メモリー記録にロードされる。 実データベース命令は第19A乃至19F図に
示す如き6つのフオーマツトの1つである。 第19A図に示すGROPフオーマツトは、演算
コード1910、零でなくてはならないフイール
ド1911、ベースレジスタ番号1912、およ
び補数コード1912を含んでいる。ベースレジ
スタは記録のセグメント化されたアドレスを含ん
でいる。補数コードは演算コードにより記述され
る特定の命令のそれ以上の弁別の為に使用され
る。 第19B図に示されたXIフオーマツトは、演
算コード1920、更に演算コードを弁別する為
に使用される補数コード1921、アドレスシラ
ブル1922、零でなくてはならないフイールド
1923、論理的削除フイールド1924、ポイ
ンターモードフイールド1925、およびBRフ
イールド1926を含んでいる。ベースレジスタ
は記録のセグメント化されたアドレスを含む。ア
ドレスシラブル1922は、そのある使用方とし
て、扱われるべきセツトのセツトデイスクリプタ
(第18A図)を指示する。アドレスシラブル
は、前述のようなアドレス生成の規則によりセグ
メント化されたアドレスに展開される。 第19C図に示すDXDXフオーマツトは、演算
コード1930、命令を更に弁別するのに使われ
る補数コード1931、1つのアドレスシラブル
AS1 1932、零でなければならないMBZ1フ
イールド1933、ベースレジスタ1934、第
2の零でなければならないMBZ2フイールド、お
よび第2のアドレスシラブルAS2 1936から
なる。ベースレジスタは再び記録のセグメント化
されたアドレスを含む。第1のアドレスシラブル
AS1 1932はセツトデイスクリプタを指示す
る。第2のアドレスシラブルAS2 1936は2
進法の整数のアドレス指定に使われる。 第19D図に示されるBRXフオーマツトは、
演算コード1940、命令を更に弁別する為に使
われるタイプフイールド1941、ベースレジス
タフイールド1942、およびアドレスシラブル
1943を含んでいる。ベースレジスタは記録の
セグメント化されたアドレスを含んでいる。アド
レスシラブルはセツトデイスクリプタのアドレス
指定に使われる。 第19E図に示すDXGRフオーマツトは、演算
コード1950、命令を更に弁別する為に使われ
るタイプフイールド1951、第1のベースレジ
スタ番号BR1 1952、アドレスシラブル19
53、零でなければならないMBZ1フイールド1
954、第2のベースレジスタ番号BR2 195
5、前−後−最初−最後フイールド1956、お
よび第2の零でなければならないMBZ2フイール
ド1957を含んでいる。2つのベースレジスタ
はメモリーに配置された2つの異なる記録のアド
レス指定に使われる。アドレスシラブルはセツト
デイスクリプタのアドレス指定に使われる。前−
後−最初−最後フイールドはセツト内の記録の所
望の設定を記述する。 第19F図に示すOPDDフオーマツトは、演算
コード1960、特定のデータベース演算の記述
に使われるプリミテイブフイールド1961、命
令を更に弁別する為に使われるタイプフイールド
1962、ポインターフイールドの記述に使われ
るPフイールド1963、およびオーナーとメン
バー記録の他のポインタを記述する最初−最後−
次−前ポインターフイールド1965、ポインタ
ーシーケンスの開始に対するオフセツトを記述す
る変位フイールド1966、およびベースレジス
タの番号を含むBRフイールド1967を含んで
いる。ベースレジスタは主メモリーの記録のセグ
メント化されたアドレスを含んでいる。 直接データベース発見命令はフアームウエア/
ハードウエア命令で、これはデータベースポイン
タを相等するセグメント化アドレスに変換し、次
にこのセグメント化アドレスをベースレジスタに
ロードする。クラス2又はクラス3のタイプポイ
ンタによるセツトの一部である記録に対しては、
生成されたポインタは又インデツクスレジスタに
もロードされる。直接発見命令は第19B図に示
すXIフオーマツトである。 直接発見命令に対するフアームウエアフローチ
ヤートは第20A乃至20E図に示される。この
フアームウエアは、命令中のMBZフイールドが
零であるか検査されるステツプ2002(第19
B図参照)で始まる。もしこのフイールドが零で
なければ、違法のフオーマツト例外が生じる(2
003)。さもなければ、ステツプ2004で、
記録フオーマツトを決める為にPフイールド19
25(ポインタクラス)の検査が実行される。ク
ラス0又はクラス1ポインター(仮想メモリー記
録)に対しては、ステツプ2050(第20D
図)へのブランチが行われる。 クラス2又はクラス3ポインタ(データベース
記記録)に対しては、ステツプ2005が実行さ
れる。このステツプにおいては、アドレスシラブ
ルにより指示されるロケーシヨンにおける4バイ
トのポインタの取出し動作が行われる。この取出
し動作の結果、メモリーアクセス例外2006が
生じ得る。さもなければ、ポインタは「X」と呼
ばれる一時スクラツチパツドロケーシヨンに記憶
される。この取出されたポインタは、領域一頁一
行(第15H図参照)の形態になつている。実行
される次のステツプは2007に示されるが、こ
こでポインタの領域一頁一行番号はページがメモ
リー中に存在するかどうかを見る為に検査され
る。この検査は、第17図に示したページ位置決
めサブーチンのフアームウエアにより行われる。
もしページがメモリー中に存在しない場合は、ペ
ージング例外2008が生じる。 さもなければ、ステツプ2009が実行され、
この場合スクラツチパツドロケーシヨン「X」に
おけるポインタからの行番号は、算術論理ユニツ
ト1317に配置された一時的16ベースレジスタ
Wに転送される(第13A図参照)。このポイン
タの行番号に見出されたビツトの実数は、ページ
デイスクリプタのシフト(桁送り)カウント16
23により決定される。第17図に示す如くペー
ジデイスクリプタは、ページ配置フアームウエア
サブルーチンの一部として主メモリーから取出さ
れる(ページデイスクリプタの記述については第
16B図を参照)。実行される次のステツプは2
010に示され、この場合ページにおける行の総
数はページヘツダから取出される(第16A図の
フイールド1601参照)。 ステツプ2011においては、行番号Wを検査
して、これがページにおける行の最大番号より小
か又はこれと等しい事を確認する。もしこれが当
らなければ、無効ページフオーマツト例外201
2が生じる。さもなければ、ブランチが第20B
図の2020に行われる。実行される次のステツ
プは2021で、この場合ページの行オフセツト
配列の(W+1)番目の要素が取出される。この
取出し操作は、16×Wにより与えられるビツト数
によりインデツクスされた行配列の開始のアドレ
ス指定により行われる。メモリーアクセス例外2
022はこのメモリー取出し操作の結果生じ得
る。 実行される次のステツプは2023で、この場
合行オフセツト配列(第16A図参照)は、行番
号Wにより記述される記録が割当てられていない
(不動作)かどうかを見る為検査される。もしこ
の行が不動作状態にある場合は、不使用行例外2
024が生じる。さもなければ、行Wにより記述
される記録が物理的に削除された状態にあるかど
うかを見る為に検査が行われる。もしこれが当つ
ているならば、削除行例外2026が生じる。さ
もなければ、2027の検査が行われて、行Wに
より記述された記録が論理的に削除された状態に
あるかを調べる。もしこれが当らなければ、ブラ
ンチが2033に行われ、さもなければ、命令に
おける論理削除ビツト1924が零に等しいかど
うかを調べる為検査(2028)が行われる(第
19B図参照)。もしこのビツトが零にセツトさ
れている場合は、削除行例外2029が生じる。
さもなければ、状態レジスタ(第2図、フイール
ド207)の条件コードが1にセツトされ、ブラ
ンチが2040に行われる。 命令における論理的削除ビツトの目的は、記録
がもはやメモリーにおいては不動作であるが依然
として主メモリースペースを物理的に占有する場
合を検出する事をプログラマーに許容する事であ
る。「ごみ集め」(ガーベージコレクシヨン)」ル
ーチンは、不動作記録を除去する際メモリー中の
動作記録を圧縮して、これら記録の除去を非常に
効率的に行う。この様に直接発見命令は「ごみ集
め(ガーベージコレクシヨン)」ルーチンに命令
中の論理的削除ビツトの「1」セツチイングの使
用、並びに条件コードの検査により、論理的に削
除された記録の検出の機能を与える。 ステツプ2033において、動作的記録に対す
る手続は続行する。状態レジスタ条件コードは零
にセツトされ、ブランチが2040に行われる。
このステツプにおいて、行Wのセグメント化され
たアドレスが、ページデイスクリプタからセグメ
ント番号1625を取り、これをステツプ202
1の行オフセツト配列要素から得たオフセツト1
603と連結される事により生成される。このセ
グメント化されたアドレスは、算術論理ユニツト
1317に配置された一時的な32ビツトのレジス
タYにロードされる。ステツプ2042において
は、この一時的レジスタYは、命令フオーマツト
からのベースレジスタBR1926により記述さ
れたベースレジスタに転送される。このベースレ
ジスタは、アドレス制御ユニツト1319に配置
される。ステツプ2043においては、ステツプ
2005において取上げられたポインタが、命令
フオーマツトから得られた番号BRのインデツク
スレジスタにロードされる。この様に、インデツ
クスレジスタ(IXR)とベースレジスタ(BR)
は、それぞれ領域一頁一行ポインタとセグメント
化アドレスを含み、ステツプ2040はこの命令
を完了する様に実行される。 ポインタ「X」により指示される記録に関し
て、命令フオーマツトにおけるPフイールド19
25により仮想メモリータイプの記録が指示され
る場合には、第20D図の2050へのブランチ
が行われる。この場合4バイトのポインタが、こ
の命令フオーマツトのアドレスシラブルにより与
えられるアドレスにおいて取出される。このポイ
ンタはセグメント化されたアドレス(第15F図
参照)の形態で、スクラツチパツドメモリーロケ
ーシヨン「X」にロードされる。このメモリー取
出しの結果、メモリーアクセス例外2052が生
じ得る。 ステツプ2053においては、ロケーシヨンに
記録されたポインタ「X」により指示された記録
のDスイツチ1502が取出される(第15A図
参照)。このメモリー取出しの結果、メモリーア
クセス例外が生じ得る。ステツプ2053におい
て、記録の論理的に削除された状態に対する検査
がされる。もしこの状態がなければ、ブランチが
2060に行われる。もしこの状態が有れば、命
令中の論理的に削除されたビツトについて検査が
2054において行われる。もしこのビツトが零
にセツトされていれば、削除記録例外2055が
生じる。さもなければ、ステツプ2056が実行
され、この場合状態レジスタの条件コードは1に
セツトされ、ブランチは2070に行われる。も
し記録が2053の論理的削除検査ステツプでノ
ーならば、活動状態になければならず、ブランチ
が2060に行われる。第20E図参照。 ステツプ2060はステツプ2061に進む。
ステツプ2061において、状態レジスタの条件
コードは零にセツトされる。次いでブランチが2
070に行われる。ステツプ2070はステツプ
2071に進み、スクラツチパツドロケーシヨン
Xに記憶されたポインタは、命令のフイールド
BR1926により指示されたベースレジスタに
ロードされる。(第19b図)次いで命令が完了
する。 本発明についてはその1実施態様を示し記述し
たが、当業者にとつて明らかな様に多くの変更改
変が本発明の実施において可能であり、かつ本発
明の主旨範囲内にある。このように、多くのステ
ツプは、同一の結果をもたらしかつ本発明の主旨
の範囲内にある他のステツプにより変更置換され
得るのである。従つて、本発明は頭書の特許請求
範囲により明示される範囲にのみ限定されるべき
ものである。 用語の定義 「絶対アドレス」 主メモリー装置におけるハードウエアバイトの
物理的アドレス 「アドレス生成」 主メモリー装置におけるロケーシヨンを参照す
る為に使用される絶対アドレスを計算する為多数
のアドレス要素について動作するハードウエア機
能 「アドレス指定」 多数の仮想的、論理的および物理的手段の何れ
かにより対象を見出す事 「アドレススペース」 CPUがあるプロセスの実行の間絶対アドレス
に変換する事が許される前記プロセスに対応する
論理的なセグメント化されたアドレスのセツト 「アドレススペースワード」 セグメント表ワード配列を指示するプロセス制
御ブロツクにおける1つ又は2つのワード。この
セグメント表ワード配列はプワセスと関連するセ
グメント表を規定する。 「アドレスシラブル」 CPUハードウエアにより認識される論理的ア
ドレスで、通常はある命令のオペランド 「アナライザ/トランスレータ」 最初に制御用言語の流れをリンカーに通過させ
次にもし制御用言語にエラーがない場合、アナラ
イザ/トランスレータはこれを使用する静止リン
カーの為に表および他の構造に変換する。 「非同期処理」 1つ以上のプロセスの同時的動作化 「補助メモリー」 システムの各種の状態を記憶させる為の64のフ
リツプフロツプからなり、ALUに配置される 「ベースレジスタ」 各アドレスシラブルにおける値により参照され
るセグメントのアドレス指定における1次的要素 「境界アドレスレジスタ」 フアームウエア/ソフトウエアをアクセス可能
な最下方のメモリーアドレスを定義する直読可能
なハードウエアレジスタ 「呼出し」 「インワード呼出し」「アウトワード呼出し」
等の、手続き呼出し項参照 「中央処理装置(CPU)」 命令の割込みおよび実行を制御する回路を含む
コンピユータの一部 「チヤンネル」 プロセスのサブシステムと周辺装置のサブシス
テム間を通信する手段で、物理的および論理的な
2種のチヤンネルがある。物理的チヤンネルは、
入出力制御ユニツトICOと周辺装置制御ユニツト
PCU間のハードウエア接続で、論理的チヤンネ
ルは、主メモリーと単一の周辺装置間のソフトウ
エア通信経路である 「チヤンネルコマンドエントリ」 チヤンネルプログラムにおける命令 「チヤンネルコマンドワード」 チヤンネルコマンドエントリの一要素。2つの
チヤンネルコマンドワードが1つのコマンドエン
トリを構成する 「チヤンネルプログラム」 ある特定の入出力、入出力演算を周辺装置によ
り実施させる命令の一シーケンス 「補助コード」 演算コードと共に命令の機能を定義するいくつ
かの命令におけるコード 「コンピレーシヨンユニツト(CD)」 任意の高位の言語プロセサにおける1手続きの
コンパイリング又はアセンブリングから得られる
単一の対象コード。CUはリンクされる迄実行可
能でない。 「同時性(コンカレンシイ)」 明確な同時性 「条件フイールド」 ブランチ命令における4ビツトフイールド。フ
イールドの各ビツトは状態レジスタビツト0と1
における条件コードのセツテイングに対応する。 「コンテスト(競合)インデイケータ」 補助メモリーに配置されたハードウエア構造で
新らしいエントリがレデイ状態キユーに置かれ、
かつ優先順位に対する競合が生じ得る事を示す 「データアドレススペース」 データ管理プログラムによりプログラムでアク
セス可能な論理的記録アドレスのセツトで、4つ
の要素、即ち論理フイールド、論理記録、データ
ベースページおよびフアイルからなる。 「データデイスクリプタ」 間接アドレス指定においてデータ操作の記述と
して使用される情報構造 「デコール」 コンピユータシステムの機能的特性又は構造 「デコール拡張モード」 エミユレーシヨンモードにおけるシステムの演
算を許容する演算モード 「デイスクリプタ」 どのデータフイールドのアドレスでも生成する
時に使用される32又は64ビツトのフイールド。本
発明のアドレス指定操作における多くのポインタ
の1つ。 「デイスクリプタブロツク」 セマフオアデイスクリプタを除き多くのデイス
クリプタの宣言を含むデータブロツクで、他のデ
ータは許容されない。 「機器アダプタ」 周辺装置制御装置に対する特定の機器を適合さ
せる電子装置 「機器アダプタインターフエイス」 機器アダプタとその関連する周辺装置制御装置
との間のインターフエイス 「機器制御部」 機器の特性を取扱うソフトウエア設備 「デイスパツチヤ」 CPUにおけるプロセスのデイスパツチ操作に
応答するフアームウエア 「デイスパツチング」 セグメント内の相対的位置情報を与える命令フ
オーマツト内のフイールド又はデータデイスクリ
プタ 「変位アドレス指定」 即時セグメントのベース又は現時ロケーシヨン
カウンタの何れかに対するロケーシヨンをオペラ
ンドが定義する直接アドレス指定の形態 「動的アドレス指定」 実行の間にプロセスのグループ内で結果を得る
アドレス指定 「エデイタ(編集プログラム)」 特定の手続きのリング操作から得られる情報の
全て又はそのいずれかを書式化および出力する静
止リンカーの部分 「有効アドレス」 物理的アドレスに対して、セグメント表番号、
セグメント表エントリ、およびセグメントの相対
的アドレスからなる論理的アドレス。これらの要
素は、結局参照されるセグメントを指示する特定
のセグメントデイスクリプタへの行程を示す。 「エミユレーシヨンモード」 別のコンピユータを起動し他のコンピユータの
環境で演算する様に見えるコンピユータの演算。 「例外」 例外は、特殊な取扱いを要求する如く規定され
たある条件の存在をハードウエアが検出する時生
じる 「事象」 他のあるプロセスにとつて価値のある、プロセ
スによりシステム内で見出される全てのもの 「フイールドクラス」 各々が同じ記録クラスにおける異る記録であり
同じ特性を記憶するのに使用される類似のフイー
ルド値のセツト。例えば、従業員の記録クラス内
の年令に対する全てのフイールド値。 「フイールド値」 記録により表わされる実体のある特性の値を表
わす記録と関連するデータの一要素。この値は、
文字ストリング、数、ブール値又は値として翻訳
できるか又は間接的にその値に導くあるデータと
して表わされる。 「フアームウエア」 マイクロプログラム化された制御の一形態を用
いるハードウエアユニツト編成の部分 「G.Dネーム」 あるセマフオアを参照するハードウエアにより
用いられるネーム。G即ちGセグメントネームは
セグメントデイスクリプタを含むG表へのエント
リ番号。Dはそのセグメントにおける相対的アド
レス。 「G−セグメント」 G.Dネーム形態を用いてアドレス指定でき、関
連する設備(G表)であるセマフオアを含むセグ
メント 「G表」 G.Dネーム形態が用いられる時、記憶マツピン
グ(Gセグメントの見出し)に用いられる表 「ゲーテイング」 手続きデイスクリプタの使用により(ゲート化
された)セグメントにおける手続きに対するエン
トリを制御する設備 「汎用レジスタ」 2進数即ちビツトストリングデータを全般的に
保有する実行プロセスに利用可能な32ビツトのレ
ジスタ。ある汎用レジスタはインデツクシングに
用いる事が可能である(GR8乃至GR15)。 「インデツクス」 システムにより維持され演算されるデータ構
造。この構造はキー形態のみでユーザに識別さ
れ、このキーはユーザが特定の記録の発生の利用
を可能にし、かつこれを位置決めする為に提供さ
れる。 「インデツクシング」 あるものをあるものに加える事により符号を付
した算術的数値によるアドレスの修正 「インデツクスレジスタ」 インデツクシングの為に使用される汎用レジス
タ(GR8乃至DR15)。 「インデイレクシヨン」 アドレス指定方法で、これによりあるアドレス
を用いて実データの代りに別のアドレスを得る。 「ベースへのインデイレクシヨン」 ベースレジスタ番号と変位を含むデータデイス
クリプタが参照されたアドレスにおいて見出され
る如き形態のインデイレクシヨン 「セグメントへのインデイレクシヨン」 インデイレクシヨンの形態で、これによりセグ
メントアドレスを含むデータデイスクリプタを参
照されたアドレスにおいて見出す 「間接セグメントデイスクリプタ」 セグメントより別のセグメントデイスクリプタ
をアドレス指定する為の情報を含むセグメントデ
イスクリプタの一形式。 「命令」 プログラマにより見ることのできる中央処理装
置の実行単位 「命令カウンタ」 実行される手続きの次の命令のセグメント化さ
れたアドレスを含む実行プロセスと関連するレジ
スタ 「インターリーブ」 メモリーアクセス時間を短縮する為のメモリー
モジユールの遂次アクセス 「割込み」 ある事象発生によるシステムにおけるプロセス
の中断 「割込みプロセス」 ある割込み操作に応答して動作させられるプロ
セス 「インワード呼出し」 1つのリング番号における1つの手続き実行の
際の下方リンク番号における実行の為の別手続き
の呼出し 「I/O制御装置」 特殊なI/Oサブシステムに対するベースの制
御を行う装置 「I/Oプロセサ」 周辺記憶装置即ちI/O装置と主記憶装置との
間でデータの移動を主に取扱う潜在的非同期シス
テム 「J.P表」 プロセス制御ブロツクの見出し用の論理的アド
レスの収集 「ジヨブ」 システムの仕事の単位 「ジヨブ制御用言語(JCL)」 ジヨブとその構成部分を記述する為の言語 「ジヨブステツプ」 JCLステートメントにより定義されるプログラ
ムの実行に止まるジヨブの主なサブデイビジヨン 「ジヨブステツプ表」 プロセスネームの最初の部分のマツプ化即ちプ
ロセス群の表を見出す為に用いられるシステム表 「リンクされたモジユール」 静止リンカーの出力。相互参照が静止リンカー
により解かれたコンピレーシヨンユニツト
(CU)の集合群 「リンキング」 静止リンキング項参照 「論理チヤンネル」 チヤンネル項参照 「論理的プロセサ」 プロセスの実行に必要なハードウエア資源およ
び制御情報の収集 「主記憶装置」 命令が実行でき、又はこれからデータが直接レ
ジスタにロードできる全てのアドレス指定可能な
記憶装置 「磁気テープ制御装置」 磁気テープ装置に関連する周辺サブシステムの
諸要素 「大容量記憶装置制御装置」 大容量記憶装置に関する周辺装置サブシステム
の諸要素 「メンバー」 セツトの発生との関連において記録が行う役
割。メンバーとしての記録の現状態は、セツトに
挿入されたものか、挿入されたものでないかの何
れかである。 「メモリーマネージメント」 物理的メモリーの割当て、再配置、および割当
て解除の為のオペレーテイングシステム設備 「メツセージ」 共にフアイルではないソースから、又は最終結
果に対して伝送される情報 「マイクロ命令」 マイクロ命令ワード、および制御記憶ワードと
同じ 「マイクロプログラム」 プロセサの制御機能を実現するのに使用される
機械コードのセツト 「マルチプレツクス」 通常時分割によるメモリーの如きハードウエア
資源の分割 「マルチプログラミング」 単一のコンピユータによる2つ以上のプログラ
ムの同時実行 「ネーテイブモード」 ネーテイブな環境におけるコンピユータの演算 「オフセツト」 アドレス生成において、セグメントのアドレス
指定された部分が始動するセグメントの開始後の
バイト数 「オペレーテイングシステム」 ユーザのソフトウエアの有効な演算を確保する
為に設計された基本ソフトウエアのシステム 「アウトワード呼出し」 1つのリング番号で1手続き実行の際より高位
のリング番号における実行の為の別の手続きの呼
出し 「オーナー」 セツトとの関連において記録が行う役割。セツ
トの発生はオーナーの役割と共に記録が存在する
存続時間に対して存在する。 「周辺装置制御ユニツト」 入出力演算を実施するチヤンネルプログラムを
実行する独立マイクロプログラム化されたプロセ
サ。 「周辺装置サブシステムインターフエイス」 自由な周辺装置制御ユニツトとI/O制御ユニ
ツト間に転送および制御する為に使用される標準
的インターフエイス 「物理的チヤンネル」 チヤンネル項参照 「物理的データ構造」 媒体に物理的に記録される際の、データの構成
の完全な定義 「物理的I/O」 メモリーと周辺装置又は末端機器間のデータの
転送を起動および制御するオペレーテイングシス
テムの部分 「物理的記憶装置」 データの記憶の為に使用されるハードウエア。
記録媒体および記録/読出しハードウエアの各形
態からなる。 「P操作」 待機状態へのエントリ又はメツセージ受取りを
プロセスに行わせるセマフオアを含む機械命令 「ポインタ」 情報構造内のエントリを独自に識別する為に使
用される情報要素。ポインタの内容は独特の記号
で、あるアドレススペースにおけるエントリの実
体即ちアドレスを識別する。 「ポインターデータベース」 コンピユータの通常のアドレス指定スペースと
異なるアドレススペースにその内容が基くポイン
タ。一般に、データベースポインタは、ハードウ
エアが有するアドレスより大きいアドレススペー
スに関連し、現在使用されていない記憶を統合す
る問題を緩和するある形態のインデイレクシヨン
を行う。 「ポインタ内のセグメント」 その内容が、アドレス指定される実体の部分的
な仮想メモリーアドレスであるポインタ。仮想メ
モリーアドレスの足りないセグメント部分は、内
部のセグメントポインタのセグメント部分と同じ
である為黙示的に知る事ができる。 「仮想メモリーポインタ」 その内容が、アドレス指定される実体の仮想メ
モリーアドレスであるポインタ 「優先命令」 リング0において実行されなばならない命令 「手続き」 同時性を持たぬプロセサにより実行可能なネー
ムを付されたソフトウエア機能即ちアルゴリズム
(算法)で、これは即ちフオートランサフルーチ
ン、ゴボルプログラム、PL/1内部手続き等で
ある。 「手続きの呼出し」 スタツクセグメント内部にスタツクフレームを
開設する為の機構 「手続きデイスクリプタ」 手続きのロケーシヨンおよびエントリポインタ
を含むワード 「手続きのセグメント」 その内容が手続き、又は手続きの部分を表わす
セグメントの形式 「プロセス」 中央又はI/Oプロセサによる同時性のない諸
命令の遂次的実行 「プロセスアドレススペース」 参照でき、あるいは制御が特定のプロセスの間
で転送可能であるメモリーアドレス 「プロセス制御ブロツク」 いかなる時でもプロセスの状態を規定するのに
必要な情報を含むデータ(定義され、認識可能な
ハードウエア) 「プロセス群」 通常単一のジヨブステツプの実施に必要なプロ
セスの関連するセツト 「プロセス群ビルダ」 その動作がリンクされたモジユールを生じる静
止リンカーの部分 「プロセス群ローダ」 リンクされたモジユールにおける最終的解を行
い実行可能なプロセス群を発生し、次いでプロセ
ス群をメモリーにロードし、その実行を開始する
オペレーテインシステム設備 「プロセス群表」 P表の項参照 「プロセスのリンク」 レデイ状態プロセス又は待機プロセスキユーへ
のエントリ 「プロセスの状態」 CPUのプロセスの動的状態、例えば実行、レ
デイ、待機、又は中継状態 「プロセスのスイツチ」 1つのプロセスを中央処理装置から切離し、別
の装置に関連させるハードウエアの機能 「プロセスの同期」 各プロセス間の非同期動作を関連させる様動作
する諸機能。一般にこれらの機能はセマフオアお
よびP.V操作を含む。 「プロセサ」 データを受取り、これを処理し、結果を与え、
記憶されたプログラムに応答してその演算のシー
ケンスを制御する事のできるユニツトで、狭義に
は中央処理装置、広義には中央処理装置、周辺装
置処理装置、又はハードウエア/ソフトウエア処
理装置を意味する。 「プログラム」 ある問題を解決する為に必要な手続きおよび関
連情報に仕様書、即ちコンピユータにより実行さ
れデータについて演算してユーザのジヨブ又はそ
のジヨブのある位相を実施する順序を付した命令
集。 「プログラムの実行」 プログラムの仕様書に従うプロセスの操作 「保護」 ハードウエアおよびソフトウエアにより強化さ
れ、各プロセスが相互に干渉し、あるいは不適正
な方法で相互のアドレススペースが共有される事
を防止する機能 「P表」 各々がプロセス制御ブロツクの起点を指示する
エントリを含むハードウエア定義によるデータ構
造。P表エントリは、いかなる時もプロセス群を
含むPCBの全セツトを指示する。又、プロセス群
表とも呼ばれる。 「Q/PR/RDY」 レデイ状態にあるプロセスのキユー、即ちレデ
イ状態キユー 「キユー(待ち行列)」 情報、プロセス又は利用度を待機する実体の順
序を付したリスト 「レデイ状態」 関連するプロセサはないが、プロセサを除く全
ての必要な資源が実行状態への変更に利用可能で
あるプロセスの状態 「記録」 1つの現実世界の物象を表わすデータの一要
素。例えば、従業員を示す「人員」記録、顧客を
示す「顧客」記録、買付けを示す「購入注文」記
録。 「記録のクラス」 各記録が唯一の記録クラスを許容する様に定義
された類似記録のセツト。例としては、全人員の
記録、全顧客の記録、全購入注文の記録等。 「記録デイスクリプタ」 記録構造の発生、認識、および破壊において使
用される情報の構造。記録デイスクリプタは単一
の記録クラスに関する。 「相対アドレス」 ある対象の他に対する増減ロケーシヨン 「再配置」 主記憶装置における1ロケーシヨンからその以
前のロケーシヨンの全ての必要な参照の調整を含
む他のロケーシヨンへのセグメントの移動 「リターン」 ある手続きが、他の手続きにエントリした点の
直後の点における手続きの動作を再び行うのに必
要な機能および演算 「リング」 あるセグメントに対するプロセスの呼出しの読
出し、書込み、および実行を制限するセグメント
の保護属性 「ロールイン」 新らしいプロセスに対してあるプロセサの制御
を行うのに必要な演算の実施 「ロールアウト」 あるプロセスによるプロセサの制御を止めるの
に必要な演算の実施 「実行状態」 実行中のプロセス(CPUに接続された)の動
的な状態 「スクラツチパツドメモリー」 局部記憶ユニツトとしても知られるCPU制御
情報を記憶する為のALUにおける256ロケーシヨ
ン 「スケジユーリング」 演算のシーケンスの決定 「科学演算用レジスタ」 2進法の浮動小数点数の操作に使用される64ビ
ツトのレジスタ。システムが科学演算用である時
本発明において4つの科学演算用レジスタがあ
る。 「セグメント」 1単位として取扱われる隣接する主メモリース
ペース 「セグメンテーシヨン」 主メモリーの単一の線形記憶の代りにセグメン
トと呼ばれる論理的組分けへの分割 「セグメントベース」 セグメントの現在の起点。これはセグメントデ
イスクリプタの1ワードにおける各フイールドの
1つ 「セグメントデイスクリプタ」 セグメントの特性の定義を行うセグメント表へ
のエントリ、即ちセグメントデイスクリプタの指
示 「セグメント化されたアドレス」 有効アドレスの項参照 「セグメント番号」 セグメント表番号(プロセスの選択されたセグ
メント表の1つ)からなる特定のセグメント、お
よび選択された表のセグメント表のエントリの識
別 「セグメントの相対アドレス」 アドレスの生成の間、絶対アドレスを得る為に
セグメントベースに加えられる最後の数値 「セグメント表」 プロセスのそのセグメントに対するアドレス指
定能力を確保する為に使用されるセグメントデイ
スクリプタを含む表。あるプロセスのセグメント
表の収集は前記プロセスに対するアドレススペー
スを定義する。 「セグメント表エントリ」 セグメント表における一項目。 各セグメント表エントリはセグメントデイスク
リプタである。 「セグメント表ワード」 あるプロセスのセグメント表を指示するセグメ
ント表ワード配列に対するエントリ。この配列は
プロセス制御ブロツク内の2つのアドレススペー
スワードの1つにより指示される。 「セマフオア」 各プロセス間の通信を制御する為に使用される
データ構造 「セマフオアブロツク」 セマフオアデイスクリプタの宣言のみを含むデ
ータブロツク 「セツト」 1つ以上の記録の収集。このセツトの定義であ
る1つの「オーナー」記録を有し、零、1つ以上
の「メンバー」記録を有する。1セツトは、順序
付けられて以下の意味を与える。即ち、 「最初のメンバー」 「最後のメンバー」 「次のメンバー」 「前のメンバー」 「セツトクラス」 セツトクラスとは以下に対する規則に基くセツ
トのネームを付した収集である。即ち、 セツトの割役 セツト発生の選択 セツトの順序付け 1つのセツトは唯1つのセツトクラスのメンバ
ーである。1つの記録は1セツトクラス内の唯1
つのセツトの1メンバーであり得る。 「セツトデイスクリプタ」 セツト構造に関する初期設定、挿入、検索、お
よび除去において使用される情報構造。1セツト
デイスクリプタは単一のセツトクラスに関する。 「スタツク」 後入れ先出し方式によるデータの受入れ、記憶
および検索の許容を行う機構。スタツクフレーム
と呼ばれる多数の隣接する部分からなる。 「スタツク動作領域」 保管領域、呼出し側の命令カウンタ、パラメー
タスペースおよび局部変数−簡潔にいえば呼出さ
れた手続きの実行に最も役に立つ現在のフレーム
のデータに対するポインタを保持する現在のスタ
ツクフレームの部分 「スタツクベースワード」 あるプロセス制御ブロツクにおいてプロセスと
関連するリング0,1および2に対するスタツク
セグメントのセグメント分割されたアドレスを含
む3ワードのグループ 「スタツクフレーム」 単一の手続き呼出しに対して記憶されたデータ
を保持するスタツクセグメントの隣接部分 「スタツク演算」 スタツクに対するおよびスタツクからの情報の
記憶および検索のプツシユダウンおよびポツプア
ツプ操作。実際には、スタツクに記憶される情報
の参照に用いられるポインタの操作。 「スタツクオーバーフロー(桁あふれ)」 更に情報をスタツクに記憶させようとして利用
可能なスペースが保持できない動作。これはハー
ドウエアにより検出される。 「スタツクレジスタ」 Tレジスタの項参照 「スタツクセグメント」 スタツクを含むプロセスのセグメント 「静止リンキング」 ソース手続きのコンパイルと前記手続きの対象
の形態の実行との間の中間ステツプ。リンキング
は前記手続きに対してなされた外部の参照をリゾ
ルブ(resolve)する 「状態レジスタ」 現在実行中の手続きの状態を規定する8ビツト
のレジスタ 「スワツピング」 セグメントを2次記憶装置に書出す事によりセ
グメントにより占有される主メモリースペースの
解除。2次記憶装置に対する実際の書込みは、セ
グメントが最後に読込まれた為もしセグメントが
変更されていなければ抑制できる。 「同期」 時間的に固定された関係を有する2つ以上のプ
ロセスの同期的実行。 「システムベース」 全ての情報構造に対する基幹部として動作する
主メモリーにおける固定領域 「タスク」 非同期命令の1つの流れのみからなるユーザ固
有の最小単位 「Tレジスタ」 手続きのスタツクの最初のセグメント分割され
たアドレスを含むソフトウエアから見えるハード
ウエアレジスタ 「単位記録制御装置」 カード装置、紙テープ装置、および印刷装置の
如き単一記録装置に関連する周辺装置サブシステ
ムの要素 「ユーザプロセス群」 どのジヨブとも独立に存在するシステムプロセ
ス群とは別の任意のジヨブステツプの内部表示 「空白インデイケータ」 CPの制御を行うプロセスがそれ自体を中断し
た即ちCPU内にはCJPがない事を示すハードウエ
ア構造でALUの補助レジスタ内に位置する。 「仮想メモリー」 物理的メモリーの大きさに無関係にプログラマ
ににコード化を行わせるアドレス指定概念で、仮
想メモリーの管理装置が自動的に主メモリーと2
次記憶装置との間にセグメントの交換を管理す
る。 「V操作」 ある事象の完結のプロセス間の信号発信の為に
意図された機械命令。このV操作は指示されたセ
マフオアについて演算する。 略記方式 ACU :アドレス制御ユニツト ALU :算術/論理ユニツト AS :アドレスシラブル ASW :アドレススペースワード BAR :境界アドレスレジスタ BCD :2進化10進数 BR :ベースレジスタ CCE :チヤンネルコマンドエントリ CCU :チヤンネル制御ユニツト CMRN:呼出側最大リング番号 CCW :チヤンネルコマンドワード CET :現状態エントリタイム CIA :制御記憶装置インターフエイスアダプタ CJP :現在実行中のプロセス CPU :中央処理装置 CU :コンピレーシヨンユニツト CSU :制御記憶ユニツト D :変位 DMU :データマネージメントユニツト DA :機器アダプタ EAR :有効アドレスリング EXW :例外ワード GR :汎用レジスタ GTW :G表ワード IC :命令カウンタ IFU :命令取出しユニツト I/O :入出力 IOC :入出力制御装置 IPQW:内部プロセスキユーワード IR :インデツクスレジスタ ITBB:ベースレジスタへのインデイレクシヨン ITS :セグメントへのインデイレクシヨン J :ジヨブ JCL :ジヨブ制御用言語 JTW :J表ワード LCT :論理チヤンネル表 LIFO:後入れ先出し LSU :局部記憶装置メモリー又はスクラツチ
パツドメモリー MBZ :零でなければならない MOS :金属酸化膜半導体 MAXR:手続きが実行できる最大リング番号。
MAXRはSEG EPのセグメントデイスク
リプタに見出される。 MSC :大容量記憶装置制御装置 MTC :磁気テープ制御装置 NFS :非機能的状態 NPRN:新らしいプロセスリング番号 NJP :現在実行中のプロセスを置換する新らし
いプロセス PCB :プロセス制御ブロツク PCT :物理的チヤンネル表 PCU :周辺装置制御ユニツト PL/1:プログラミング言語/1 PMW :プロセス主ワード Q/PR/RDY:レデイ状態のプロセスのキユー RD :読出しリング RHU :ハードウエア用途の為にリザーブされ
た RPW :実行プロセスワード RSU :ソフトウエア用途の為にリザーブされ
た RTA :レデイ状態時間のアカウンテイング RTO :残り時間切れ SBW :スタツクベースワード SEG :セグメント番号 SKW :スタツクワード SEGEP:手続きデイスクリプタにおいて見出さ
れたエントリ点を含むセグメント SEGPD:手続きデイスクリプタを含むセグメン
ト SR :科学演算用レジスタ SRA :セグメント相対アドレス STE :セグメント表エントリ STN :セグメント表番号 STR :状態レジスタ STW :セグメント表ワード STWA:セグメント表ワード配列 T :Tレジスタ(スタツクレジスタ) URC :ユニツト記録制御装置 WR :書込みリング WTA :書込み時間アカウンテイング
各セツトに適用する1組の基本的演算がある。
これらは、更に良く知られる記録およびフイール
ドに関する基本的演算に対する補足となる。各セ
ツトに関する基本的演算結果の収集と、記録とフ
イールドに対する補足的な基礎演算は、ユーザが
演算を行うデータをアクセスし、修正し、移動さ
せ、消去する等を行うハードウエア/フアームウ
エアの命令の集合である処の操作用施設として知
られるものを構成する。基礎事項(即ち、ハード
ウエア/フアームウエアの命令)のこの集合は、
フイールド(即ち、データ項目)、記録、セツ
ト、および手続用論理制御に関する諸演算に再分
割する事ができる。 下記のハードウエア/フアームウエアの命令群
はフイールド中のデータの操作を行うものであ
る。実行すべき演算に必要なフイールド記述情報
(例、大きさ、ロケーシヨン、記録モード)は、
演算と関連するデータデイスクリプタの一部とし
て保持される。このグループに含まれる演算と
は、例えば移動(move)、比較、ハツシユ、加
算、減算、乗算および除算等である。 以下のハードウエア/フアームウエアの命令群
はデータの直接アクセスおよび直列アクセス処理
の両方を行う。これ等は、データ記録の発生、そ
の後の検索、修飾、テスト、および破壊を行う。
記録フアームウエア/ハードウエア命令とは、記
録の発生、記録破壊、直接記録の発見、直列記録
の発見および記録タイプのテストである。 以下のセツトのハードウエア/フアームウエア
命令の群は、従来のデータ処理の内容と、前のデ
ータベースとメツセージマネージメントシステム
の組込みブロツクを提供する。これらはセツトの
発生、そのアクセス、およびその操作およびテス
トを行う。このハードウエア/フアームウエアの
命令とは、記録の挿入、記録の取出し、相対的記
録の発見(最初、最後、次の、前の、およびi番
目の発見)、オーナー記録の発見、空のセツトの
テスト、挿入されたメンバーのテスト、オーナー
記録の開始、およびメンバー記録の開始である。 ベースレジスタのハードウエア/フアームウエ
ア命令の下記のグループは、データベースのアク
セスに対する現時点のプロセス状態の決定および
修飾を与える。このハードウエア命令とは、ベー
スレジスタのアンロード、ベースレジスタおよび
ベースレジスタをロードする前述の「発見」命令
のナル(null)化である。 アプリケーシヨン用データベースにおける記録
のアクセスを構成しかつこれを行う為に使用され
ると同様に、各セツトも又非常に多種のシステム
のソフトウエア領域において使用できる。 以下の表に示されるのは、システムのソフトウ
エアの領域のリストで、その各々についてはセツ
ト概念の前記領域におけるある用途を列挙したも
のである。この表は明確な用途を示すもので、完
全を期すものではない。 1 データベースシステム a インデツクス構成(シーケンスインデツクス
とランダムインデツクス) b データ記述構造 c 共有アクセス制御リスト d プロセスリスポンスビリテイ構造 2 フアイルシステム a カタログ構成 b アクセス権制御 3 メツセージシステム a メールボツクスインデツクスの構成 b キユー用メツセージ c マルチエレメントメツセージの呼出し 4 プログラミングシステム a プログラムライブラリの管理 b テキスト編集 c プログラム制御構造 d バインデイングの為のシンボル参照とシンボ
ル定義構造 e コンパイルの為の中間プログラム形態 5 オペレーテイング・システム a ジヨブのキユー(待ち行列) b 資源割付け表 c デツドロツク検出 d イベントのプロセスの待ちキユー(I/O完
了、タイマー) e デイスパツチングキユー 1 一般的論義 本発明は、オペレーテイングシステムにより関
連させられた以下に記述されたハードウエアシス
テム環境(エンバイロメント)において作用を行
うものである。第1図において、サブシステムと
は、プロセササブシステム101、記憶装置サブ
システム102、および1個以上(32個迄)の周
辺装置サブシステム103である。プロセササブ
システムは1つの中央処理装置(CPU)104
と4個迄の入出力制御装置(IOC)105とを含
んでいる。各周辺装置サブシステムは、1個の周
辺装置制御装置(PCU)106と、多数の機器
アダプタ(DA)107と、256個迄の周辺装置の
入出力機器108を含む。記憶装置サブシステム
102は、各々32乃至512キロバイトの1乃至4
個の半導体メモリーモジユールからなる。 プロセササブシステム101においては、
CPU104はシステムの為の基本処理演算を行
い、又メモリー102とインターフエイスしてい
る。 IOC105は、記憶装置サブシステム102と
周辺機器106間の全ての情報交換を制御する。 A 中央処理装置(CPU) 中央処理装置(CPU)は、主メモリーシンク
ロナイザ109と、バツフア記憶装置110と、
計算ユニツト111からなる各種要素と、オプシ
ヨンのエミユレーシヨン設備112とを含む。主
メモリーシンクロナイザ109は、計算ユニツト
111とバツフア記憶装置110とIOC109と
の間の主メモリーの使用上の競合を解決する。こ
の競合は以下の如く優先順位で解決される。即
ち、IOCはメモリー書込み(計算ユニツトから)
が続き、次いで(バツフア記憶装置への)メモリ
ー読込みが続く最も高い優先順位を有する。主
CPUは又、主メモリー指定を制御するアドレス
制御ユニツトACU131と、主メモリーの最後
に使用されたアドレスの記憶に用いられた連想メ
モリAS132とを含んでいる。バツフア記憶装
置110は小形の高速バツフアメモリーであつ
て、主メモリーの選択された領域を再生して、平
均メモリーアクセス時間を減らす様計算ユニツト
とインターフエイスする。各メモリー読出しの
間、バツフア記憶装置と主メモリーの両方がアク
セスされる。取出すべき情報が既にバツフア記憶
装置内にある場合、主メモリ読出しは終了して情
報はバツフア記憶装置から取出される。さもなけ
れば、主メモリ102が読出される。これが行わ
れる都度、CPU104は所望の情報を含む32バ
イトを取出す。この情報は将来のメモリー照会の
為バツフア記憶装置内に残される。このバツフア
記憶装置はソフトウエアに対し透過的である。
(transparentto)為、コンピユータを制御するプ
ログラムは、コンピユータが処理する情報がバツ
フア記憶装置からあるいは主メモリから取出され
たかどうかを決定できない。 計算ユニツト111はCPU内で全てのデータ
処理およびアドレス形成を行う。計算ユニツト内
の典型的な制御記憶装置130(プレンテイスホ
ール社刊サミールSハツセン著「マイクロプログ
ラミング、その原理と応用」参照)は、システム
を始動し、CPU104とIOC105を制御し、か
つ命令セツトを復合するフアームウエアを含む。
制御記憶装置は任意に科学的命令、テストルーチ
ン、エミユレーシヨン(emulation)パツケー
ジ、を与え、又はプロセササブシステムの能力を
拡張する特殊目的の特性を具有する。 選択的に、CPUは本システム以外のシステム
のエミユレーシヨンを行う。エミユレータ112
はフアームウエア、ソフトウエア、およびある場
合にはハードウエアの構成要素である。 B 入出力制御ユニツト プロセササブシステムのIOC105部分は、全
ての周辺装置サブシステム103と記憶装置サブ
システム102間のデータ経路を提供する。この
経路は周辺装置のコマンドの開始を可能にし結果
として得られるデータ伝送を制御する。1つの
IOCは一般に32チヤンネル迄の制御ユニツト(図
示せず)を取扱う事ができる。 C 周辺装置サブシステム 第1図の周辺装置サブシステム103において
は、PCU106は独立のマイクロプログラミン
グプロセサであり、入出力操作の間入出力機器1
08を制御する事によりCPU104のロードを
解除する。このPCUは、あるチヤンネルプログ
ラムに含まれる各命令の実行により前記操作を行
う。このプログラムは、算術的、論理的転送と桁
送り(shift)を惹起し、ブランチ演算がPCUで
行われる。PCUにはいくつかの種類があり、機
器の種類によりそれぞれ単位記録、マス(デイス
ク)記憶装置、磁気テープ、コミユニケーシヨン
等を制御する。 機器アダプタ107は各PCUとその制御する
機器間に介在する。その各々は、特定の種類の機
器との通信を行うのに必要な決められたフアーム
ウエアとロジツクを含んでいる。DA107はそ
の種類により1つ又はいくつかの機器を制御す
る。 周辺装置サブシステム103により実施される
主な機能は以下の通りである。即ち、 1 CPU命令の直列の周辺機器に対する変換 2 CPU又は適当な周辺機器により必要とされ
る形態へのデータのパツクおよびアンパツク 3 CPUに対するサブシステムとその制御下に
ある各機器との状態の報告維持 4 エラー手続きおよび回復手続きの独立的な開
始および処理 5 関連する周辺装置プロセサの機器分担能力を
阻げる事のない機器のオンライン状態での診断
の許容 PCUはこれに付属する各機器間での主メモリ
ーに対する競合を解消するが、IOCはPCU間の競
合を解消する。 D 記憶装置サブシステム 各メモリーモジユール1乃至4は4又は8バイ
トの幅である。モジユールの数、大きさ、および
データ経路の幅はコンピユータの大きさによつて
変化する。メモリーモジユールは、4つのモジユ
ールが順次アクセスされる様に4重にインターリ
ーブされている(モジユール1は最初の8バイト
を含み、モジユール2は2番目の8バイトを含む
と言う様に)。このインターリーブ処置は、主メ
モリーのアクセスの為の競合数を減少し、これに
より平均メモリーアクセス時間を減少する。メモ
リーは故障の際再構成できる。即ち、1つのモジ
ユール内のメモリーの各ブロツクは隣接するアド
レス指定を破壊する事なく除去できる。 主メモリー102は、金属酸化膜半導体MOS
チツプの形態の容量性の記憶媒体からなる。この
媒体は情報を維持する様リフレツシユ
(refresh)原理で作用する。各メモリーのロケー
シヨンは2ミリ秒毎に少くとも1回リフレツシユ
され、この設計によりリフレツシユのタイミング
とメモリー呼出しとの間の競合が少くなる様保証
する。(競合の生じた場合はリフレツシユ操作が
優先する) 主メモリーの最初の領域はハードウエアとフア
ームウエアの為に確保される。この領域の上限
は、システムのソフトウエアから見える境界アド
レスレジスタ(BAR、これについては以下に記
述する)の内容により決められている。この
BARの内容はシステムの起動時にセツトされ
る。BAR内に規定されたアドレス以下のメモリ
ー領域はIOC表を包含でき、これは周辺装置サブ
システム、CPUを制御するフアームウエア、又
はエミユレーシヨンの為のマイクロプログラムお
よび表の構成を決める。このBAR内に規定され
たアドレスの下方の領域の大きさはシステム構成
に依存する。マイクロプログラムが主メモリーに
あるか制御記憶装置内にあるかはシステム構成お
よびシステムにおけるアプリケーシヨン実行に依
存する。 2 基本的な計算機構造 一般に、このハードウエアに使用されるものに
は3つの基本的なデータ構造がある。即ち、デー
タフオーマツト(書式)、ソフトウエアから見え
るレジスタ、および命令フオーマツトである。 A データフオーマツト 情報はメモリーとCPU間で8並列ビツトの倍
数で転送される。情報の各8ビツトユニツトはバ
イトと呼ばれる。パリテイ即ちエラー補正データ
も又データと共に転送されるが、ソフトウエアに
より影響を受ける事はできない。従つて、この明
細書においては、データは関連するパリテイ即ち
エラー補正データを除外する。 B バイト(Bytes) 1バイト内の各ビツトは左から右へ0から7迄
番号が付されている。各バイトは個別に又はグル
ープで処理される。2つのバイトが半ワードを、
4バイトで1ワード、8バイトで2ワード、16バ
イトで4ワードを形成する。これ等は命令を含む
全データに対する基本フオーマツトである。 C データの提示 全データは2進形態であるが、2進法、10進法
あるいは英数字符号にも翻訳できる。データビツ
トは4個のグループでは2進符号化された10進デ
ータ、8個のグループでは英数字符号、又は16乃
至64個では2進法のデイジツトとして翻訳され
る。後者は2進法の記号を付した数、固定小数点
数又は浮動小数点数として翻訳される。2ワード
迄のどんな連続ビツトも又ストリングとして操作
できる。英数字のセツトはEBCDIC(コード)で
表わされる。ASCIIを代替コードとして使用でき
る。 D バイトアドレス 主メモリーにおけるバイトロケーシヨンは零で
始まる連番を付し、各数はバイトのアドレスであ
る。連続するバイト群は、もし1グループ内の左
方のバイトのアドレスがそれぞれ2,4,8又は
16の倍数である場合、半ワード、1ワード、2ワ
ード又は4ワードに整列されていると言う。半ワ
ード、1ワード、2ワード、又は4ワードと言う
様に整列される時は常にそのユニツトはそのアド
レスから取出す事ができる。主メモリーのデータ
のロケーシヨンは、アドレス形成の間間接的に呼
出されるデータデイスクリプタにより指定され
る。(本願と同一人に譲渡された昭和51和2月10
日特許の「セグメント化されたアドレス形成」な
る名称の米国特許第3938096号参照) E 可視レジスタ 第1図のCPU104には33個のユーザが参照
できるレジスタがあり、その内容はCPUの状態
を綜合的に規定する。それ等には4つの形態があ
る。(第2図参照)即ち、 1 汎用レジスタ 2 ベースレジスタ 3 科学データ用レジスタ(任意) 4 各種レジスタ F 汎用レジスタ 第2図の汎用レジスタ(GR)201は固定小
数点およびビツトストリングの操作に用いられ
る。CPU104においては16個の32ビツト汎用
レジスタ即ちGR0乃至GR15がある。汎用レジ
スタGR8乃至GR15は又インデツクスレジスタ
としても使用可能である。インデツクスとして使
用する時は、本文ではX0乃至X7と呼び、イン
デツクシングは32ビツトを有し1レジスタ中に含
まれる2の補数の整数を用いて実施される。 G ベースレジスタ ベースレジスタ(BR)は命令カウンタICとス
タツクレジスタ202〜203と同じフオーマツ
トを有する。ベースレジスタはアドレス計算の間
使用されてメモリーの一部を規定する。一般に8
つの32ビツトベースレジスタBR0乃至BR7があ
る。 H 科学データ用レジスタ 科学データ用レジスタ(SR)は浮動小数点2
進数による計算の為のオプシヨンの装置である。
4つの8バイト科学計算レジスタがあり、これ等
はSR0乃至SR3と呼ばれる。科学用レジスタは
第2図のフオーマツト204〜205を有する。 I 各種レジスタ 他に5種類のレジスタがある。即ち、 ・ フオーマツト202〜203を有する命令カ
ウンタ ・ フオーマツト207を有する状態レジスタ ・ スタツクレジスタ(Tレジスタと呼ぶ) ・ フオーマツト206を有する境界アドレスレ
ジスタ、および ・ フオーマツト208を有するハードウエア制
御マスクレジスタ 命令カウンタICは32ビツトのレジスタで実行
される命令のアドレスを含む。状態レジスタ
(STR)207は8ビツトのレジスタで、現在実
行されつゝある手続に関する事実、例えばアンダ
ーフローが最後の演算により生じたかどうかを記
録する。スタツクレジスタは又Tレジスタとして
も知られ、現在稼動中の手続と関連するプツシユ
ダウンスタツクの先頭部に対するポインタを含
む。以下に記述するスタツクは、作業スペース、
および局部変数の保持および手続エントリの保護
の為の機構、およびリターン情報を与える。境界
アドレスレジスタ(BAR)206は28ビツトの
レジスタで、ソフトウエアによりアクセス可能な
最も下位の絶対主メモリーアドレスを規定する。
このレジスタはシステム起動の間にロードされ、
ソフトウエアによつて読出しのみ可能である。ハ
ードウエア制御マスクレジスタ208は8ビツト
のレジスタで計算機の条件情報を記録する。 J 命令フオーマツト 約200個の命令があつてともかく使用される。
各命令は4つの異なる長さの内1つを有するが、
常に偶数個のバイト長さである。各命令は連続す
る記憶装置のロケーシヨンに記憶される。左端部
のバイトのアドレスは2の倍数で、この命令のア
ドレスである。 ある命令の8個の最も上位のビツト(およびあ
る場合にはビツト8乃至11又は12乃至15)
は演算コードを表わし、残りのビツトは1つ以上
のオペランド(演算数)を表わす。1つのオペラ
ンドはあるレジスタの指示子、変位の指示子、ア
ドレスシラブル(論理的アドレス)、リテラル
値、即値リテラル値でよい。オペランドの種類お
よび数値は命令のフオーマツトにより決まる。 3 システムの構造 A ジヨブステツプとタスク コンピユータシステムにより実施されるべき作
業はジヨブ制御言語を介して一連のジヨブステツ
プにより外部で規定される。ジヨブステツプは、
ハードウエアの資源が割付けされる作業の一単位
である。一般に1ジヨブステツプはいくつかのタ
スクからなる。1タスクは、並列になる事なく実
行される一連の命令からなるユーザの規定になる
作業の最小単位である。 B プロセス タスクおよびジヨブステツプのユーザ側の概念
は、1つのプロセスとプロセス群によりそれぞれ
ハードウエア中に示されている。1プロセスは、
CPUにより非同期的に実行し得る命令のある順
序として定義される(即ち、いくつかのプロセス
が活動できかつ資源を分割できるが、実際にある
時点では唯1のプロセスのみが実行されてい
る)。あるプロセス群は1つのジヨブステツプを
実施するのに必要なプロセスの関連する組であ
る。 C プロセス制御ブロツクとシステムベース 各プロセスはその実行中に多くの点でCPU制
御を止める事ができる為、主メモリーのある記憶
領領域はCPUの状態を保管するためにプロセス
に利用可能とされる。この状態の情報は、あるプ
ロセスが再びCPUの制御下に入る以前にCPUを
予め条件けする為に利用される。 あるプロセスに割当てられた記憶領域は、第4
図においてプロセス制御ブロツク(PCB)400
と呼ばれる。1つのPCBに含まれるデータはこの
プロセスに割当てられたメモリー領域のアドレス
(アドレススペース)と、全ての関連するレジス
タの内容と、プロセスの状態を含んでいる。この
様な、PCBはいかなる情報ロスもなくあるプロセ
スを起動又は再起動する為に必要な情報に対する
一時的な記憶領域として作用する。各PCBはハー
ドウエアから見え、システムの始動の間に形成さ
れシステム演算の間修飾される一組のハードウエ
ア表(第5図)によりオペレーテイングシステム
によりアドレスを指定できる。 システムベース(第5および6図)と呼ばれる
絶対主メモリー領域がある。この領域はフアーム
ウエアにより形成され、読出しは出来るが書込み
はできないベースアドレスレジスタ(BAR)5
01を介してアクセス可能である。このシステム
ベース502は多数のシステム属性を有し、これ
等には現在実行中のプロセスに対してそれぞれジ
ヨブステツプ番号とプロセスグループ番号(J.
P)が含まれる。このシステムベースにおける別
の属性はJ表503として知られるハードウエア規
定のデータ構造に対するポインタである。この表
はシステム中の現行の各ジヨブステツプを含む。
J表503への各エントリは関連するP表504を指示
し、これも又ハードウエア規定のデータ構造であ
る。この表は、あるプロセスグループを規定し、
又そのプロセスグループにおける各プロセスに対
するエントリを含む。各P表エントリはPCB40
0を指示する。 第5図において、計算ユニツト111(第1
図)の算術演算部506を介してJ番号値により
インデツクスされたJ表ポインタ505はJ表の
エントリ503のアクセスを行う。このエントリ
はP表ポインタを含み、これは計算ユニツト50
6を介してP番号値によりインデツクスされる時
P表のエントリ504のアクセスを行う。このP
表エントリは現在実行中のプロセスのPCBに対す
るポインタ507を含む。この様に、オペレーテ
イングシステムは、BAR501の内容を用いて
活動PCBをアクセスでき、又その関連する(J.
P)ロジツクネームを与える他のどんなPCBもア
クセスできる。 D メモリーセグメンテーシヨン 以下に記述する様なマルチプロセス条件におい
ては、いかなる時点でもメモリには多くのプロセ
スがある。これ等のプロセスは大きさが異なり、
メモリーの割付け問題を惹起するメモリー要求を
する。本文においてあるオペレーテイングシステ
ム(図示せず)と協働する様に起述されるハード
ウエアは、メモリースペースを動的に割付ける事
によりこの問題を解決する。メモリーの要求の任
意性の故に、メモリーは多様な大きさのセグメン
トに割付けされ、このメモリー割付けはプロセス
実行時間中再構成できる。このように、1つのプ
ロセスは多数の非隣接メモリーセグメントに割付
けが可能である。このメモリー割付け法はセグメ
ンテーシヨンと呼ばれる。 セグメンテーシヨンは、メモリーのアドレスが
あるプロセスの一部又は全部が再配置される時は
常に修飾されねばならないという別の問題を提起
する。この問題の解決の為、本文に述べるシステ
ムはあるプロセスに用いられるアドレスが絶対主
メモリーアドレスよりも論理的なものとなる手法
を提供する。これ等の論理アドレスは絶対アドレ
スの形成に用いられる。 又、セグメンテーシヨンは、一式のセグメント
デイスクリプタを介して各プロセスの自身の又は
関連するアドレスセグメントを各プロセスがアク
セス可能にする。あるセグメントデイスクリプタ
のアクセスにより、あるプロセスはあるセグメン
トのアドレスを得る事ができる。セグメントデイ
スクリプタは主メモリーに含まれ、オペレーテイ
ングシステムにより維持される。 各プロセスは2068個迄のメモリーセグメントの
アクセスができる。通常この為にはプロセス当り
同数のセグメントデイスクリプタが必要とされ
る。然し、セグメントは共有できる為、オペレー
テイングシステムはセグメントデイスクリプタを
セグメント表に分類する。この分類は、1プロセ
ス(タスク)、1プロセスグループ(ジヨブステ
ツプ)、又は全体(システム全体)によるアクセ
ス能力に基づく。各プロセスはこれと関連する15
個のセグメント表を有する。この手法は、あるセ
グメント表を介してプロセスによりアクセス可能
な各セグメントに対して唯1つのセグメントデイ
スクリプタを必要とする丈である。この様に、セ
グメントデイスクリプタに必要なメモリースペー
スが減少し、再配置の間のメモリー更新は低減
し、あるプログラムの保護が行われる。(プログ
ラム保護の為の主要機構はリングシステムであ
る。昭和50年10月28日特許の「マルチプログラ
ム、マルチプロセサコンピユータシステムにおけ
る情報の保護」なる名称の米国特許第3916385号
参照) プロセスは、これがアクセスできるセグメント
を決める事が可能でなければならない。従つて、
システムはプロセスに2つのセグメント表ワード
配列(STWA)を与える。これ等の配列はプロ
セスがアクセスできる全てのセグメント表のアド
レスを含んでいる。大小の2つのセグメントサイ
ズがある為、プロセス毎に2つのセグメント表の
ワード配列がある。大きなセグメントは最大サイ
ズ222バイトを有し、小さいセグメントは最大サ
イズ216バイトを有する。全てのセグメントは最
大サイズ迄の16バイト宛の増分においてそのサイ
ズが変化する。1システムは一般に28の大きなセ
グメントと204の小さなセグメント迄収納でき
る。 セグメント表ワード配列はオペレーテイングシ
ステムにより再配置でき、従つて、プロセスはそ
の関連するSTWAの絶対アドレスを知らねばな
らない。どのプロセスのPCBも2つのワードを含
み、これ等は第4図のアドレススペースワード
ASW0〜1として知られるこの情報を含んでい
る。各ワードは1つのセグメント表のワード配列
STWAを指示する。オペレーテイングシステム
は、関連するSTWAが再配置される時は必ず
ASWの内容を更新する。ポインタのチエーンの
下方向の動作およびセグメントデイスクリプタの
復号はフアームウエアの一機能であり、こうして
一旦始動されるとオペレーテイングシステムから
でも見えない。 セグメンテーシヨンは、プロセスに利用可能な
様にアドレススペースの2億バイト以上を規定す
る。この数は主メモリーの容量を超過し、従つて
2次記憶装置(磁気デイスク又はドラム)が主メ
モリーと関連して使用される。このオペレーテイ
ングシステムは、それが実際に利用可能なものよ
りはるかに大きな主メモリーを有すると言う錯覚
を与える。この概念は仮想メモリーと呼ばれる。 いかなる時点でも、規定されるセグメントは物
理的に主メモリー内にあるかないかわからない。
セグメントデイスクリプタの内容は関連するセグ
メントが主メモリーにあるかどうかを示す。ハー
ドウエアは、主メモリーにないセグメントのアク
セスを行うプロセスによる如何なる試みをも検出
し、オペレーテイングシステムに通知する。オペ
レーテイングシステムは所望のセグメントを2次
記記憶装置から主メモリーにロードさせる。次い
で、オペレーテイングシステムは、あるセグメン
トの絶対アドレスが発見できる唯一の場所である
セグメントデイスクリプタにセグメントのメモリ
ーアドレスを格納する。この演算はプロセスから
見えず、この為セグメントが主メモリーになかつ
た事、又は主メモリーに再配置される必要がある
かも知れない事は判らない。(メモリーセグメン
テーシヨンに関する詳細については、昭和51年2
月10日特許の「セグメント化されたアドレス形
成」なる名称の米国特許第3938096号参照) 本文に記述するコンピユータシステムは、各プ
ロセスを相互に干渉しない様にする事によるか、
又は相互のアドレススペースを非認可方式
(unauthorizedmanner)で共有する事によりデー
タおよび手続の保護を行う。この保護は、メモリ
ーセグメンテーシヨンを介するアドレス指定能力
に限定する事により、又リングシステムにより実
施される。 セグメント表はシステム内の各プロセスのアド
レススペースを分離する。各プロセスは常に演算
の実行中にセグメント化されたアドレスを使用す
る。セグメント化されたアドレスは、セグメント
番号とセグメント内の相対的アドレスとからなる
(セグメント化されたアドレスの生成に関する前
述の特許参照)。ハードウエアは、プロセスに使
用されたアドレスがプロセスに割当てられたアド
レススペースの一部である事をチエツクする。も
しこのアドレスが予定されたアドレススペースの
外側にある場合は、例外操作が生じる。プロセス
は別のプロセスのアドレススペース内のデータを
参照する事ができないが、その理由はハードウエ
アは参照するプロセスのセグメント表を使用して
いる為である。この様に、1プロセス又はプロセ
ス群には別のプロセスグループに属する実体を参
照する可能性はない。 一般に、システム内のアドレススペースにおけ
るオーバーラツプは、全てのプロセスにより共有
されるこれ等のセグメントに対して生じる。これ
等の共有セグメントは、アドレスの競合がない事
の保証を確認するシステムプログラムにより開設
される。このように、セグメンテーシヨンはユー
ザのプログラムを相互に保護し、ユーザのプログ
ラムに対してオペレーテイングシステムを保護す
る。 いくつかのプロセスにより共有されるセグメン
トは、これらのプログラムの1つによる誤用から
保護されない。この問題を解決する為にリングシ
ステムが利用され、これにより手続およびデータ
セグメントは4クラスの体系に分類される。この
4つのリングクラスは0から3迄番号を付されて
いる。各リングはシステムの優先順位を示し、レ
ベル0(最も内側のリング)は最優先順位を、レ
ベル3(最も外側のリング)は最後の順位を示
す。システムの各手続は、どれがその手続を呼出
し得るかを示す、手続に割当てられた最小又は最
大の実行リング番号を有する。1つの手続はサブ
ルーチンで、他の手続を呼出しでき、又これらに
複数のパラメータを送る事ができる。 即ち、このリングシステムの一般法則は次の如
くである。 1 1つの内側リングの手続は外側リング内のデ
ータを自由にアクセスする。逆に、外側リング
の手続は内側リングのデータをアクセスできな
い。 2 外側リングの手続は内側リングの手続にブラ
ンチできるが、その逆はできない。 3 データを含むセグメントは、2つのリング番
号値に割当てられ、その1つは読出し(RD)
他の1つは書込み(WR)である。これらのリ
ング字号値は手続が、読出し又は書込みの何れ
かのモードでデータのアクセスを行う時実行で
きる最大のリング番号値を指定する。 ある手続命令が実行される都度、その手続のリ
ング番号値(有効アドレスリング、BAR)は、
参照されたデータを含むセグメントに割当てられ
たリング番号値に対して検査される。このEAR
は、命令カウンタにおけるプロセスリング番号値
の最大値であり、又アドレス指定経路において見
出されたベースレジスタとデータデイスクリプタ
における全てのリング番号値である。このデータ
のアクセスはリング番号値の比較に基づいて行わ
れたり拒絶されたりする事になる。例えば、もし
あるシステム表が、最大読出しリング値3と最大
書込みリング値1を有するセグメントにあるもの
とすれば、リング3で実行されるユーザ手続はそ
の表を読出すがこれを更新しない。 事前の設定により、リング0と1はオペレーテ
イングシステムの為にリザーブされ、リング2と
3はユーザ用としてリザーブされる。リング0は
全システム演算に重要なセグメントを含む。リン
グ1は前記システムの各セグメントの集りを包含
し、その故障は決定的ではなく回復が可能であ
る。ユーザは、検査済みプログラムに対してリン
グ2を用い、デバツクされるプログラムに対して
はリング3を用いる。 F 手続の呼出し 手続の呼出しは本文に記述するシステムにおい
ては重要な機能である。手続の呼出しは1つの手
続から他の手続への通過し、ユーザ手続によるオ
ペレーテイングシステム作業の許容と、オペレー
テイングシステム内のモジユラー構造の達成の為
に用いられる。手続呼出しは、各命令により実施
され、ハードウエアが認識した構成要素はあるス
タツクを呼出す(第7A図)。 あるスタツクはLIFOによるデータの検索を受
入れ、記憶しかつ許容する一機構である。各スタ
ツクはスタツクセグメントと呼ばれる特殊なセグ
メントに存在する。1つのスタツクセグメントは
動的に各手続に割付けられるスタツクフレーム7
01(第7Aおよび7B図)と呼ばれる多数の隣
接する部分からなる。最初のスタツクフレームは
セグメントの頂部にロードされ、これに続くフレ
ームはこの部分の後にロードされる。最後のロー
ドされたフレームはスタツクの頂部と考えられ
る。T−レジスタ702Aは、現在動作中のプロ
セスに対するスタツクの頂部を見出す。実際のT
レジスタは本システムにおける他の全プロセスの
PCBに存在する。 第7B図のスタツクフレーム701は3つの領
域からなる。即ち、変数を記録する作業領域70
2と、レジスタの内容を保管する保管領域703
と各手続間にパラメータを送る通信領域704で
ある。手続呼出しに先立ち、ユーザは、保管を望
むこれ等のレジスタを指定し、呼出される手続に
送られるパラメータを通信領域にロードしなけれ
ばならない。呼出しが行われる時、このハードウ
エアは、命令カウンタICの内容を保管し、呼出
し手続からのリターンを容易にする為ベースレジ
スタを指定する。 各手続呼出しはスタツクセグメント701内の
スタツクフレームを開設し、後続の入れ子状の呼
出しは別のフレームを開設する。これらの呼出さ
れた手続の1つからの各出口はスタツクフレーム
をスタツクから削除させる。このように、呼出し
の履歴は維持され、これが順次のリターン操作を
容易にする。 異なるリングで実行される各手続間の保護を確
保する為、異なるスタツクセグメントが用いられ
る。各プロセス毎の保護リングに対応する1つの
スタツクセグメントがある。1つのPCBは3つの
スタツクベースワードを含み、これらはプロセス
と関連する各リング0,1および2に対するスタ
ツクセグメントの開始を指示する。リング3のス
タツクセグメントは内側の呼出しによつては決し
てエントリされず、従つて、そのスタツク起動ア
ドレスはPCBにおいて要求されない。 4 プロセスマネージメントと同期操作 本文のシステムは、ソフトウエア、ハードウエ
アおよびフアームウエアの組合せを用いるオペレ
ーテイングシステムにより制御されるマルチプロ
セシング演算を行うものである。ソフトウエアは
システム中の各プロセスの発生および削除を行
い、一方ハードウエアとフアームウアエアは
CPUにおける各プロセスのマルチプレクサを行
う。更に、ソフトウエア、ハードウエアおよびフ
アームウエアの組合せは各プロセス間の同期操作
を行う。 通常、プロセスは、常にではないが、関連する
ジヨブ取扱いの間およびオペレーテイングシステ
ムにより必要と見なされる諸目的の為の別の機会
に、入出力演算の開始と終了時に起動および停止
させられる。従つて、関連するプロセスを有効に
起動および停止し、その間に情報を送る為に通信
システムが必要である。本文におけるハードウエ
アシステムはセマフオアと呼ばれる内部メツセー
ジを与えて各プロセス間に通信リンクを与える。 A プロセスの状態 プロセスはいつでも4つの状態即ち実行、レデ
イ、待機および中断のいずれかにあり得る。ハー
ドウエアはこれらの4つのプロセスの状態を認識
して、プロセスのデイスパツチと状態の変更を行
い、あるプロセスの状態に基くデータ構造を維持
するように各種のフアームウエア手続を実行す
る。PCBはその関連するプロセスの現在の状態を
規定する状態のフイールドを含んでいる。 プロセスは、これがCPUの制御の行う時実行
の状態にある。この状態は、あるアドレススペー
ス(セグメント表)と開始アドレスのCPUへの
供給を含む。次いでCPUはプロセスの手続セグ
メントにおいて命令を実行する。現在実行中のプ
ロセスに対するPCBのプロセスネームJ表のワー
ド(論理的アドレス)は、システムベース(第6
図)の実行プロセスワード(BAR+60)に保持
される。(注:第5図に示すシステムベースは第
6図に示すものと同じであるが、細かい点を省略
してある)。 レデイ状態は、プロセスがCPUにより認識さ
れなかつた為、CPUの制御を行わない点を除き
実行状態と等しい。レデイ状態のプロセスは、他
のレデイ位置の各プロセスと実行プロセスとの
CPUに対する競合状態にある。 プロセスは、セマフアオを介するメツセージの
如き特殊な事象が生じる迄継続し得ない時待機状
態にある。待機プロセスはCPUに対して競合状
態にないが、所要の事象に対しては他の待機状態
の各プロセスと競合関係にある。 中断されたプロセスは、ソフトウエアによりあ
る時間停止されたプロセスであり、これについて
は以下に取止げる。プロセスを停止させ再び起動
する決定はそのプロセスの外部である。このよう
に中断されたプロセスは動作状態になく、従つて
事象の通知を受取れず、CPUを使用できない。 プロセスは以下の条件下で中断される。即ち、 (1) 「停止」命令の実行による(全ての機能の完
了の結果) (2) オペレーテイングシステムによる「中断」命
令の実行による (3) 例外条件の発生によるもので、これにより制
御はオペレーテイングシステムに移行される。 B プロセスのデイスパツチ プロセスは、実行中その作用により任意に1つ
の状態から他の状態に移行し、又は他のプロセス
の作用により強制的に他の状態に移行する。デイ
スパツチヤとして知られるCPUフアームウエア
は、各状態間のプロセスのトランザクシヨンを制
御する。デイスパツチヤは1組のキユー(待ち行
列、以下に記述)を用いてレデイ(作動可能)又
は待機状態にある各プロセスを操作する。中断さ
れたプロセスはソフトウエアにより制御される。 第6,8および9図においては、レデイ又は待
機状態のプロセスはあるPCBと、プロセスリンク
と呼ばれる特殊なキユーエントリにより表わされ
る。第9図はGOセグメント802の内容の展開
図を示し、動作中のプロセスのプロセスリンク8
03a〜803bおよび803c〜803gと、
中断されたプロセスの自由プロセスリンク805
a〜805cを含む。各プロセスリンクはプロセ
スネーム(J.P)を指定し、そのプロセスの優先
順位と、キユーにおいて次のプロセスリンクに対
するポインタを指定する。待機キユー803a〜
803bとレデイキユー803c〜gの如き各種
のキユーがある。 G表として知られるJ表(第6および8図)に
類似したハードウエア機器は全ての汎用(システ
ム全体にわたる事が知られる)セグメント802
〜802nに対するポインタを含む。G表801
の最初の要素であるGOはデイスパツチヤキユー
を含む前記セグメント802を指示する。G表8
01に対するG表ポインタは第5図のシステムベ
ースに見出される。又、システムベースにはエン
トリ呼出しによる内部プロセスキユーワード
(IPQW)があり、これはGOセグメント802に
おけるレデイキユー803c〜803dのヘツド
803を識別する。 このように、デイスパツチヤはレデイキユー8
03c〜803dを参照する事により全てのレデ
イプロセスを検討できる。現在実行中のプロセス
が状態を変化させる時、デイスパツチヤはレデイ
キユーのヘツドにおいてプロセスリンクを除去
し、そのPCBをアクセスする為J.Pネームを用い
る。次いでPCBにより規定されたプロセスは新ら
しい実行プロセスとなる。 1つ以上のプロセスが同一事象で待機している
かも知れない為、待機プロセスのキユー803a
〜803bは各事象に対して存在する。又、待機
プロセスは、GOセグメントに存在するプロセス
リンク804を介して一体に配列されている。待
機キユーのヘツドに対するポインタはセマフオア
903(以下に記述)に存在する。あるプロセス
が待機する多くの事象が存在し、従つて、各々が
関連するセマフオア903,904を有する多数
の待機キユーがある。 レデイ状態又は待機状態のプロセスの数は動的
に変化する。このように、レデイ状態又は待機状
態のキユーを必要とするプロセスリンクの数も又
変動する。この事実はデイスパツチヤに対するメ
モリーマネージメントの問題を惹起する。この問
題は自由プロセスリンクキユー805a〜cと呼
ばれる別のキユーにより解決される。このキユー
はレデイ又は待機状態のキユーにより使用され
ず、レデイ又は待機状態のプロセスの特定のキユ
ーを拡張する為に使用できるセグメントGOにお
ける全てのプロセスリンクを一緒にリンクする。
自由プロセスリンクキユー805のヘツド902
に対するポインタ901は、GOセグメント80
2の始めの部分付近に存在する。 C プロセスの同期操作 プロセスの同期操作は、同じタスク上で動作す
る2つのプロセスの嫁動性を関連させる為に必要
である。この同期操作は、通信用プロセスのアド
レススペースに存在するデータ構造であるセマフ
オア903〜904を用いて達成される。セマフ
オアは、事象の発生を信号し、メツセージのキユ
ーを取扱う為に使用される。この場合の事象と
は、別のあるプロセスにとり興味のある1プロセ
スにより観察されるものである。この事象は非同
期演算の完了か、あるいはある資源の利用度であ
る。 プロセスは2つのセマフオア演算を用いて事象
の発生を信号する。演算は信号をセマフオアに送
り、他の演算はセマフオアから信号を取出す。
(この送信操作は屡々V操作と呼ばれ、受信操作
はP操作と呼ばれる。)この送信操作は、あるプ
ロセスにデータ又はデータが準備されたという信
号を送らせる。セマフオアは、別のプロセスが信
号を取上げる準備ができる迄この信号を記憶す
る。このように、送信プロセスは、このデータを
送つた為自由に進行できる。受信操作は特定のセ
マフオアを検討してこの信号を取上げる。もし信
号があれば、受信操作は実行を続行する。しかし
ながら、セマフオアに信号がなければ受信プロセ
スは待機状態に入る。次にこのセマフオアは待機
キユーのヘツドに対するポインタとして作用す
る。このプロセスは、別のプロセスが前記のセマ
フオアに対して信号を送出する迄セマフオアを待
機する待機状態を維持する。このように、セマフ
オアは、プロセスが信号を取上げる迄この信号を
保持でき、あるいはセマフオアは信号がプロセス
に対し送られる迄そのプロセスを保持する。 メツセージも又プロセスからプロセスに送られ
る。メツセージは信号に別の情報が加わつたもの
と同じ存在性又は非存在性を有する。情報の一部
はハードウエアにより供給され、一部はこのメツ
セージを送つたプロセスの手続により供給され
る。メツセージは送るプロセスのプロセスネーム
を有する。このように多くのプロセスは送出側の
ネームを付した単一のセマフオアを介して情報を
送る事ができる。 メツセージセマフオアは、プロセスにより取上
げられるのを待機するメツセージのキユーを有す
る。信号セマフオアにおけるように、メモリース
ペースに対する要求は増減して、メモリーマネー
ジメント問題が提起される。再び、この問題も自
由メツセージリンクのキユーで解決される。これ
等のリンクは、メツセージリンクを供給又は吸収
する為に必要な時容易に発見できるセグメントの
既知の場所に存在する。 これらのリンクに構成されたセマフオアとキユ
ーが異なるプロセスにより共有される為、全セマ
フオア構造は保護される。これは、セマフオアを
含むどのセグメントのアクセスをも制限するハー
ドウエアおよびソフトウエアの約束により実施さ
れる。従つて、そのいくつかがGセグメント(シ
ステム通信が必要な場合)であるセマフオアデイ
スクリプタ中にセマフオアは存在しなければなら
きい。しかしながら、全てのGセグメント(GO
を除く)はセマフオアデイスクリプタセグメント
である。 各セマフオアデイスクリプタはセマフオアに対
するポインタを含んでいる。セマフオアのアドレ
スはセマフオアデイスクリプを介して生成され、
こうしてこのセマフオアの為の保護を強化する。
セマフオアセグメントは、セグメント番号値と、
そのセグメント内の相対的ロケーシヨンを用い、
あるいはG.D番号を直接用いて論理的にアドレス
指定できる。 D プロセス制御ブロツク構造 第4図において、プロセス制御ブロツク
(PCB)のフオーマツトが示されている。このプ
ロセス制御ブロツク400は、CPUの状態を保
管する為プロセスに利用できる主メモリーの記憶
領域である。PCBのアドレス指定は第5図に関連
して既に述べた如く実施される。PCBポインタ5
07(第5図)は第4図のメモリロケーシヨン0
におけるプロセス制御ブロツクPCBを指示する。
下方向へのメモリーロケーシヨンを進めれば4バ
イト宛増加し、一方メモリーロケーシヨン0から
上方へ進むと8バイト宛増加する事に留意すべき
である。下方のメモリーロケーシヨンは0から正
と考えられ、同ロケーシヨン0から上方のロケー
シヨンは負の方向と考えられる。上方のロケーシ
ヨンはオプシヨンであり、プロセス制御ブロツク
内に含まれても含まれなくても良く、又ロケーシ
ヨン148〜176もオプシヨンである。(下方
のメモリーロケーシヨンの数字は、プロセス制御
ブロツクPCBの0参照ロケーシヨンからのバイト
の変位を示し、添付図面の部分識別に用いられる
共通の数字と混同してはならない。)バイト0か
らバイト16より小のバイトから考えると、4つ
のプロセス主ワードPMW0乃至PMW3が記憶さ
れ、各プロセス主ワードPMWは長さにおいて4
バイトである。プロセス主ワード0はバイト0乃
至3を占有し、4つの部分即ち能力(ケイパビリ
テイ)バイト、優先順位バイト、状態バイトおよ
びデコール(decor)拡張バイトDEXTからな
る。第10a乃至10dにおいて、プロセス主ワ
ードPMW0の詳細が示され、能力バイト100
1の更に詳細については第10b図に示される。
第10b図においては、最初のビツト1005
は、時間アカウント機能がそのプロセスについて
実施されるかどうかを示すアカウンテイングモー
ドビツトである。このアカウンテイングモードビ
ツト1005が2進数の0にセツトされる時、そ
のプのプロセスについては時間アカウント機能は
実施されないが、アカウンテイングモード100
5が2進数の1にセツトされる時は時間アカウン
トがなされる。科学モードビツト1006が零に
セツトされる時、計算機の科学データ用レジスタ
の保管は行われず、第4図のバイト148乃至1
76に配置される科学データ用レジスタ保管領域
はプロセス制御ブロツクPCBに存在しない事を示
す。科学モードビツト1006が2進数1にセツ
トされると、科学演算機能が存在しプロセス中に
使用され、必要に応じて科学データ用レジスタの
内容を保管する為科学データ用レジスタ保管領域
が使用される。コードモードビツト1007は、
標準コードセツト又は互換コードセツトのどちら
がプロセスに用いられているかを示し、前記ポジ
シヨンの2進数の0は標準コードセツトが使用さ
れている事を示す一方、第3のビツトポジシヨン
1007における2進数の1は互換コードセツト
が使用されている事を示す。この能力バイトの各
ビツトの残部は零にセツトする。 優先順位バイト1002の詳細は第10c図に
示される。第10c図において、優先順位バイト
1002の最初の4つのビツト1008は、与え
られたプロセス制御ブロツクPCBと関連するプロ
セスの優先順位をセツトする様に使用される。各
プロセスは、優先順位の16のレベルの1つに割当
てられ、競合するプロセスの順位決定即ち(a)レデ
イ状態のプロセス間に実行されるプロセスの選
択、および(b)プロセスをキユー内への投入の為に
使用される。優先順位は0から15に向けて減少
し、与えられた優先順位に対してはFIEO(先入
れ先出し)の原則が与えられる。優先順位バイト
1002の次の4ビツト1009は零である。 第10d図において状態バイト1003の詳細
が示される。状態バイトは、プロセス制御ブロツ
クPCB400と関連するプロセスに関する情報を
提供するように使用される。嫁動フイールドビツ
トA1010は、プロセスが嫁動されている時2
進数の1にセツトされる。中断フイールドS10
11は、プロセスが中断されている時2進数の1
にセツトされている。サブステートフイールド
SS1012は2ビツトのフイールドで、プロセ
スの下記のサブステートを規定する。即ち、(a)2
進数00にセツトされた時プロセスは不嫁動であ
る、(b)2進数01にセツトされた時プロセスはレデ
イ状態プロセスのキユー(Q/PR/RDY)に待
機状態にある、(c)2進数10にセツトされた時プロ
セスはセマフオアのキユー(Q/PR/S)中の
セマフオアに待機状態にある、(d)2進数11にセツ
トされた時プロセスはプロセサにより実行中であ
る。演算中(mid−operation)フイールド
(MOI)1013は割込みが生じた時2進数の1
にセツトされ、命令の実行の間、即ちプロセス終
了以前はこれを維持する。拡張デコール
(decor)モードビツトEXTD1014は、プロセ
スが計算機のエミユレーシヨンモードである拡張
デコールモードにある時1にセツトされる。ビツ
ト1015と1016は0にセツトされる。プロ
セス主ワードPMW0の4番目のバイトはデコー
ル拡張番号を含み、システムがエミユレーシヨン
モードにある時使用される。 プロセス主ワードPMW1はプロセス制御ブロ
ツクPCBのバイト4〜7に記憶される。PMW1
の詳細は第10e図に示される。状態バイト10
16はPMW1における最初のバイトであつて、
状態レジスタ内容を記憶する。マルチプロセサバ
イトMP1018はマルチプロセサ構造でハイト
であり、さもなければこのフイールドは零であ
る。プロセス主ワードの第2と第4番目のバイト
はそれぞれMBZフイールド1017と1019
で、通常の演算においては零でなければならな
い。 プロセス主ワードPMW2はプロセス制御ブロ
ツクのバイト8乃至11を占め、第10f図に更
に詳細に示される。第10f図において、ビツト
4乃至ビツト31のフイールドはセマフオアの局
部ネームSEG,SRA1021を含み、これに対
してプロセスが待機状態又は中断状態にある時
PCBがリンクされている。例外クラスおよびタイ
プフイールド1023は割込みに似た例外のクラ
スおよびタイプを含み、これが例外操作の後プロ
セスを中断状態にエントリさせる。ビツト4乃至
15のフイールド1022は、プロセスが前述の
状態以外の状態にある時無意味となる。 プロセス主ワードPMW3はPCB400のバイ
ト12乃至15を占め、デコール拡張表を指示す
る。PMW3の詳細に関する第10g図におい
て、DETSZフイールド1024は表中のエント
リ数を規定し、もしこのフイールドが零であれば
プロセスに対するデコール拡張操作は許されな
い。DETAフイールド1025は16バイトの単位
のデコール拡張表の絶対アドレスで、DETSZが
0でない場合にのみ有意義である。このデコール
拡張表はDETSZエントリから構成される。各エ
ントリは1バイトの大きさである。テーブルの
DEXT番目のエントリはプロセスの能力を規定
し、デコール拡張モードDEXTにおいて操作を行
う。DEXT番目のバイトが0である時、デコール
拡張番号値DEXTは許されないが、DEXT番目の
バイトが1であればデコール拡張番号値DEXTは
許される。0および1以外のDEXT番号値は違法
となる。(第10a図DEXT番号値1004参
照) PCB400のバイト16乃至23はそれぞれア
ドレススペースワードASW0とASW1を含み各
ASWはセグメント表ワード配列に対するポイン
タを含む。ASW0とASW1の相方は、それぞれ
第10h図に示されたものと同じフオーマツトを
有する。セグメント表ワード配列の大きさは1配
列中のセグメント表ワード番号により規定され、
主としてASW0に対しては6、ASW1に対して
は8となる。STWSZフイールド1026はセグ
メント表ワード配列の大きさを示す。セグメント
表ワード配列のフイールドSTWA1027は、
16バイトの単位の配列の絶対アドレスSTWAを
含み、即ちこの配列の絶対アドレスはバイトにお
いてSTWAの16倍である。 PCBにおけるバイト24乃至27は、第10i
図に更に詳細に示される例外ワードEXWを含
む。この例外ワードは例外クラス表に対するポイ
ンタ(SEG,SPA)1029を含み、前記表
は、プロセス主ワードPMW2に記憶される如き
そのクラスによるプロセス例外に続いて取られる
べき作用を規定する。(第10f図参照)例外ワ
ードEXWのMBZフイールド1028は0でなけ
ればならない。 PCBのバイト28乃至31に配置されるスタツ
クワードSKWは、第10j図に更に詳細に示さ
れ、プロセスが実行中でない時、そのプロセスの
スタツクのTレジスタの頂部の数値を含む。第1
0j図において、ビツト0と1はTAGフイール
ド1030を規定する。このTAGフイールドは
その内容によりデイスクリプタのタイプを示し、
SKWに対しては零でなければならない。SKWワ
ードのビツト2と3はRINGフイールド1031
を含みこのフイールドはスタツクのセグメント化
されたアドレスと関連する保護目的のリング番号
を含み、この場合零でなければならない。ビツト
4乃至31はセグメント番号SEGとセグメント
相対アドレスSRA1032を含み、セグメント
表に記述されたセグメントとその内部のセグメン
ト相対アドレスを識別するフイールドである。ス
タツクワードSKWは、プロセスが実行状態でな
くなる都度更新される。これは、プロセスが実行
状態になる毎にTレジスタの内容を再格納する為
に用いられる。この最後の場合には、TAG10
30とRING1031は零である事をテストさ
れ、さもなければ違法のPCB例外動作が生じる。 PCB400のバイト32乃至35は、屡々ICC
と呼ばれる命令カウンタ内容ワードICWを含
む。第10k図において、TAGフイールド10
33が2進数00を含まねばならない(即ち零以外
の数値は命令カウンタにおいては違法である)命
令カウンタワードICWの詳細が示されている。
ビツト2と3を占める現行RINGフイールド10
34は、主記憶装置へのアクセス権の決定に用い
られるプロセスのカレントリング番号を規定す
る。ビツト4乃至31はセグメント番号とセグメ
ント相対アドレス(SES,SRA)1035を規
定し、これらは実行すべき次の命令のアドレスを
規定する。 バイト36乃至39のMBZフイールドは零で
なければならない。(MBZフイールドは常に零で
なければならないフイールドを示す)このMBZ
ワードは、PCBがネームJ.Pから呼出される都度
テストされる。もしこれが零でなければ違法PCB
例外が起る。 スタツクベースワードSBW0〜2はプロセス
制御ブロツク400におけるバイト40〜51を
占める。これらのワードは、第10l図に更に詳
細に示される同一のフオーマツトを有する。これ
らはスタツク操作に間使用され、使用される時は
そのTAGフイールド1036とRINGフイールド
1037は零でなければならず、さもなければ違
法のPCB例外が起る。ビツト4乃至31は、リン
グ0,1,2に対するそれぞれのスタツクセグメ
ントの最初のビツトのセグメント化されたアドレ
ス(SEG,SRA)1038を含む。 プロセス制御ブロツク400のバイト52乃至
83はベースレジスタ保管領域(8ワード)の為
にリザーブされたスペースである。バイト84乃
至147は全ての汎用レジスタ(16ワード)の数
値を保管する為に用いられる保管領域である。バ
イト148乃至179は科学データ用レジスタ
(8ワード)を保管する為に使用される保管領域
である。 PMW0ワードのアカウンテイングモードビツ
トがセツトされる時、時間アカウントの為にPCB
零アドレス以上のPCB400には5つの2重ワー
ドが与えられる。こられのワードは、PCBアドレ
ス−8からPCBアドレス−40に配置される。各
ワードは、そのビツト52〜63を零としたその
最初の52ビツトにおいてマイクロ秒単位で表示さ
れる時間又は時間間隔を含む。残り時間切れ2重
ワードRTO(PCBで0以上の最初の8バイト)
は、時間切れの例外操作が起る以前にプロセスの
ためにプロセサにより実際に費やされる特定量の
時間を含む。RTOワードは以下の方法で更新さ
れる。即ち、プロセスが実行状態を脱する度にプ
ロセスのタイマーの数値はRTOワードに記憶さ
れる。プロセスが実行状態に入る度にプロセスタ
イマーの数値はRTOからロードされる。 バイト7乃至15における実行時間アカウンテ
イングRUAの2重ワードは時間カウンタであつ
て、これは、プロセスが実行状態にあつたプロセ
サ時間の全量を規定する。アカウントされた時間
は、完全にプロセスのためにプロセサにより実際
に費やされた時間である。RUAワードは以下の
方法で更新される。即ち、プロセスが実行状態を
脱する都度、プロセスタイマーPTの数値が読取
られる。RTOとPTの内容の差異がRUAに加えら
れる。(続いて、PT数値はRTOに記憶される)
プロセスが中断される時間は計算されない点に留
意されたい。RTOおよびRUAワードは、もしア
カウンテイングモードビツトが0にセツトされる
場合でも更新される。しかしながら、CET,
RTA、およびWTAワード(以下に記述する)
は、プロセス主ワードPMW0におけるアカウン
テイングモードビツトが1にセツトされる時にの
みプロセス制御ブロツク内に与えられる。これら
のワードはこの場合丈更新される。 バイト17乃至23における待機時間アカウン
テイングWTAワードは実時間カウンタで、プロ
セスが待機状態にあつた全実時間を規定する。
WTAワードは以下の方法で更新される。即ち、
プロセスが待機状態を脱する都度、デイ(day)
クロツク(図示せず)の時間値TODが読取られ
て、TODの値−CETワードの値がWTAワードに
加えられる。 バイト24乃至31において配置されるレデイ
時間アカウンテイングRTAワードは実時間カウ
ンタである2重ワードで、プロセスがレデイ状態
にあつた全時間を規定する。RTAは以下の方法
で更新される。即ちプロセスがレデイ状態を脱す
る都度、デイクロツク時間値TODが読取られ
て、TODの内容−CETの内容がRTAに加えられ
る。 バイト32乃至39における現行エントリ時間
CET2重ワードは、プロセスが以下の各状態、即
ちレデイ、待機、実行および中断の1つに入つた
デイ時間を含む。 システムベースの構造 第6図において、システムベース600のフオ
ーマツトが示される。このシステムベースは絶対
主メモリー内にあり、フアームウエアにより生成
され読出しは可能であるが書込みはできない境界
アドレスレジスタ(BAR)を介してアクセス可
能である。この境界アドレスレジスタBARはハ
ードウエアの為にリザーブされた主メモリの1領
域の下方にあり、ハードウエアの為リザーブされ
たメモリーの領域とシステムベース600を分割
する。次に第6図において、このシステムベース
600は多数のシステム属性を含み、これは現在
実行中のプロセスに対するジヨブステツプ番号と
プロセスグループ番号(J.P)を含んでいる。プ
ロセスJ.Pの論理的ネームからは、対応するプロ
セス制御ブロツクPCBの絶対アドレスが得られ
る。J表の大きさとアドレスはJ表ワード
(JTW)の内容により規定される。このワードは
BARレジスタにより規定されるアドレスに配置
される。JTWのフオーマツトは第11a図に示
される。第12図はJ表1204の大きさを表わ
す(JTSZ)1101は、255迄であるJ表120
4におけるエントリ番号を規定する。JTSZ11
01は8ビツトの正の整数で、もしJがJTSZよ
りも大きい場合はJ表からの例外が起る。J表1
204の絶対アドレスはJ表ポインタ1102の
16倍により得られる。J表1204はJ表エント
リを含み、そのフオーマツトは第11b図に更に
詳細に示される。各J表エントリは、P表ポイン
タ1104の16倍により得られるP表1205の
絶対アドレスを規定する。P表の大きさ
(PTSZ)1103はP表におけるエントリ番号
を規定する。このPTSZは8ビツトの正の整数
で、P表のエントリ番号を示す為一般に0から
255まで変化する。もしPがPTSZより大きい場
合は、P表からの例外が起る。P表1205の各
エントリは、プロセス制御ブロツクポインタ11
07の16倍によりプロセス制御ブロツク(PCB)
1206の絶対アドレスを規定する。存在インデ
イケータP1105は、2進数の0にセツトされ
た時PCBが存在しない事を示し、2進数の1にセ
ツトされた時PCBの存在する事を示す。(存在イ
ンデイケータP1105が0である事が伴ると、
空のP表エントリ例外操作が起る。)P表インデ
イケータ(第11c図)のビツト1乃至7
(MBZ)1106は0でなければならず、さもな
ければ違法のP表エントリ例外操作が起る。 システムベース600のアドレスBAR+4に
おいては、第11d図に更に詳細に示されたG表
ワード(GTW)のフオーマツトバイトがある。
第12図のGセグメント表1212の大きさとア
ドレスはG表ワード(GTW)の内容により規定
される。G表1212の大きさ(GTSZ)110
8はG表へのエントリ番号を規定し、G表は一般
に255迄である。GTSZは8ビツトの正の整数
であり、もしG表の数値がGTSZより大きい場合
はG表からの例外が起る。G表1212の絶対ア
ドレスはG表ポインタ1109の16倍により得ら
れる。Gセグメント表エントリのフオーマツトは
2ワードの大きさで、Gセグメントデイスクリプ
タと呼ばれる。Gセグメントデイスクリプタのフ
オーマツトは第11eおよび11f図に詳細に示
されている。全てのGセグメントデイスクリプタ
は直接であり、従つて間接ビツトI、111は零
でなければならず、さもなければ違法のセグメン
トデイスクリプタ例外操作が起る。存在インデイ
ケータP1110は1プロセスのフイールドで、
これは2進数の1にセツトされる時デイスクリプ
タが対応するセグメント番号に対して主記憶装置
にセグメントが規定される事を示すが、もしこれ
が0にクリアされるとセグメントは規定されずセ
グメントデイスクリプタの参照はミシング(欠
落)セグメント例外の原因となる。利用可能なビ
ツトA1112は1ビツトのフイールドで、これ
はセグメントが利用可能であるかどうかを示し、
このセグメントが規定される(即ち、Pは2進数
1に等しい)がどうかを検査される丈で、さもな
ければ無視される。使用済フラツグフイールドU
1113はセグメントがアクセスされたかどうか
を示す。もしUビツトが2進数の0にセツトされ
れば、そのセグメントはアクセスされていない
が、もしUフイールドが2進数1にセツトされれ
ば、セグメントはアクセスされた。書込み済フラ
ツグフイールドW1114はセグメントが書込ま
れたかどうかを示す。もしWが2進数の0にセツ
トされれば、セグメントは書込まれていないが、
Wが2進数の1にセツトされれば、セグメントは
書込まれた。Gセグメントデイスクリプタのゲー
ト作用インジケータGS1115は2進数01にセ
ツトされねばならず、さもなければ違法セグメン
トデイスクリプタ例外が起る。この理由は、Gセ
グメントは常にセマフオアを含み(逆は真でない
が。即ち、全てのセマフオアはGセグメントにあ
る事を要求されない)、セマフオアの命令はGSコ
ードが2進数01である事を要求する為である。セ
グメント1214のベースの絶対アドレスは、24
ビツトのベースフイールド1116により第11
e図のGセグメントデイスクリプタに規定され、
このフイールドの内容は16倍されて絶対アドレス
を得る。第11f図のGセグメントデイスクリプ
タの2番目のワードはG表1212においてビツ
トポジシヨン32乃至63を占める。ビツト32
乃至39のRSUフイールド1117はソフトウ
エア用にリザーブされ、この場合のようにGセグ
メントデイスクリプタとして使用される時一般に
無視される。MBZフイールド1118は0でな
ければならず、さもなくば違法のセグメント例外
が起る。MBZフイールド1118はビツト40
乃至51を占める為、小さなセグメントSIZEに
対するフイールドであるSIZEフイールド111
9をセツトする為、全てのGセグメントは小さな
セグメントタイプでなければならない。セグメン
トSIZE1119は、そのセグメントにおいてバ
イト数値を規定する12ビツトの正の整数であり、
このセグメントの大きさは16の倍数であると考え
られる。従つて、Gセグメント1214に対する
セグメントの大きさは216バイトを超える事がで
きない(小さなセグメント)。 再び第6図のシステムベース600において、
BAR+8およびBAR+4の間に配置された9つ
のシステム例外セルワードがある。このシステム
例外セルワードEXCのフオーマツトは第11g
図に示される。システム例外が起る時セマフオア
は与えられたプロセスに対しメツセージを伝送す
る為に使用されるので、これらセマフオアに対す
るポインタはメモリーの9つのロケーシヨンに見
出されるが各ロケーシヨンはシステム例外セルと
呼ばれシステム例外操作のクラス毎に1つある。
MBZフイールド1120は2進数の0にセツト
されねばならず、さもなければシステムチエツク
が起る。各例外セル(EXC)はそれぞれシステ
ムネームGD1121と1122を含む。 システムベース600のBAR+44に配置さ
れるチヤンネル例外セルは、前述のシステム例外
セルに似たフオーマツトを有し、チヤンネル例外
が起る時与えられたプロセスにメツセージを伝送
する為に使用されるセマフオアのシステムネーム
GDを含む。 内部プロセサキユーワードIPQWはBAR+48
から始まるように配置され、そのフオーマツトの
詳細は第11h図に示される。このIPQWワード
は、参照番号905および805で第9図に示さ
れるレデイ状態のプロセスのキユー(Q/PR/
RDY)のヘツドを指示する。レデイ状態のプロ
セスキユー(Q/PR/RDY)はレデイ状態にあ
る全てのプロセスをリンクする。これは、レデイ
状態のプロセスキユーの頂部を指示する事によ
り、IPQWワードのQ/PR/RDYのHEADフイ
ールド1124(第11h図)により参照され
る。Q/PR/RDYのHEADフイールド1124
は16ビツトの正の整数を含み、これはGOセグメ
ントと呼ばれるGセグメント番号0のベースから
Q/PR/RDYの最初のバイト迄の変位である。
もしこのQ/PR/PDYビツトフイールドが0な
ら、レデイ状態のキユーは空であると考えられ
る。MBZフイールド1123は0でなければな
らず、さもなければシステムチエツクが起る。 システムベース600のBAR+52におい
て、初期および現時の再トライカウントの記憶装
置が示され、そのフオーマツトは第11i図に詳
細に示される。NFSフイールド1125は非機
能的記憶フイールドであり、システムベースによ
り使用されない。初期再トライカウントフイール
ド1126と現時再トライカウントフイールド1
127は回数を制御し、自動命令再トライは、機
械的エラーが機械故障例外条件を形成させられる
以前に実行される。これらのフイールドはリセツ
ト再トライカウント(本文には示さず)により同
数丈ロードされる。 第11j図に示された実行プロセスワード
(RPW)はシステムベース600のBAR+56に
記憶され、モノプロセサ構造の場合に優先順位を
もつた実行プロセスのネームを記憶するのに用い
られる。NFSフイールド1128と1131は
それぞれ非機能記憶フイールドで、どの装置にも
どんな目的にも使用できるが一般にシステムベー
スには使用されない。実行プロセスの優先順位は
PRIフイールド1129に記憶される。非同期ト
ラツプビツトはABフイールド1130に記憶さ
れるが、非同期トラツプリングはARNフイール
ド1132に記憶される。モノプロセサ構造の場
合の実行プロセスの論理的ネームJ.PはJ.Pフイー
ルド1133に記憶される。 第11k図に示される絶対値化表ポインタはシ
ステムベース600のBAR+60に配置され、
初期システムロード(ISL)において使用されて
ISLプログラムの全ての絶対アドレスにBARの内
容を加える事により初期システムロード(ISL)
における絶対アドレスを初期設定する。この絶対
値化表ポインタ1135は絶対値化表(図示せ
ず)のロケーシヨンを規定する。この絶対値化表
サイズはATSZフイールド1134により示され
る。 第11l図に示されるCPU連続番号ワードは
BAR+64に配置された4バイトのワードで、
CPU連続番号フイールド1136においてCPU
の連続番号を含んでいる。 第11m図に示された主記憶装置上限ワードは
BAR+68に配置され、主記憶装置における最
後に利用可能なワードの絶対アドレスを与える事
により主記憶装置上限1139を示す。 BAR+72においては、初期システムロード
ISL機器チヤンネル番号(CN)1140とハー
ドウエア機器チヤンネル番号(CN)1141と
を与える為に、第11n図に示されるワードが配
置されている。 コンピユータシステムに用いられる機器のタイ
プとサブタイプはそれぞれフイールド1143と
1144においてハードウエア機器タイプワード
(第11o図)により示され、この場合RSUフイ
ールド1142はソフトウエアに対してリザーブ
されている。このワードはBAR+76における
システムベース内に見い出される。第11p図に
示された前述のフオーマツトと似たタイプのフオ
ーマツトを有する類似のワードは初期システムロ
ードに用いられた機器のタイプとサブタイプを含
む。このワードはBAR+80に配置される。 コンピユータの再起動ボタンを押すと、シミユ
レートV演算が1セマフオアについて実施され、
レデイ状態に入る。このセマフオアに対するポイ
ンタはシステムベース600のBAR+84に見
出され、再起動セルワードと呼ばれ、第11q図
に示されたフオーマツトを有する。このフオーマ
ツトは前記のシステム例外セルと似ており、それ
ぞれGフイールド1149とDフイールド115
0におけるセマフオアのシステムネームG.Dを含
む。MBZフイールド1148は0でなければな
らない。 このコンピユータシステムに対して1つ以上の
プロセサがある場合は、マルチプロセサ拡張の為
のワードがシステムベース600のBAR+88
に与えられる。このワードの詳細は第11r図に
示される。 システムベースとプロセス制御ブロツク使用例 第12図において示されるのは、ユーザセグメ
ント、システムセグメント、又はレデイ状態プロ
セスキユー(Q/PR/RDY)セグメントのアド
レス指定およびアクセスの為、どの様にしてシス
テムベースが、プロセス制御ブロツクと組合せて
使用できるかを示す一例である。主メモリー12
00はハードウエア用途としてリザーブされた部
分1203を有する。境界アドレスレジスタ
BAR1202はシステムベース1215をハー
ドウエア用にリザーブされたメモリー1203の
一部から分離する。この境界アドレスレジスタ
BAR1202は、その内容をシステムベースで
所望される事項の4バイト単位の変位分に対して
加える事によりシステムベース1215における
事項をアドレス指定する為に使用される。次にこ
のアドレスは所望のシステムベースにおける事項
の最初のバイトを指示する。第12図において
は、BAR1202はJ表ワード(JTW)を指示
している。前述の如く、このJ表ワードは、J表
1204を指示するポインタを有する。第5図に
示されたJ番号をインデツクスする事により、J
表エントリ1216が得られる。J表エントリに
おいて、P表1205の絶対アドレスを指示する
P表ポインタがある。P表1205内のP番号
(第5図参照)をインデツクスする事により、プ
ロセス制御ブロツク1206の絶対アドレスが得
られる。プロセス制御ブロツクPCB1206に既
に示す如く、2つのアドレススペースワード
ASW0とASW1がある。ベースレジスタ120
1におけるセグメント表番号フイールドSTNの
上位ビツトはこれら2つのアドレススペースワー
ドの1つをアクセスする為に使用され、この事例
においては、ASW1はセグメント表ワード配列
STWA1208を指示するセグメント表ワード
配列STWAのポインタを有する。ベースレジス
タ1201のセグメント表番号STNと共に、8
つのセグメント表ワードの1つがSTWA120
8でアクセスされ、これが8つのセグメント表1
210の1つを指示する。ベースレジスタ120
1からのセグメント表エントリSTEは、次いで
あるセグメントデイスクリプタが配置されるセグ
メント表1210における256のエントリの1つ
を行う為に使用される。次に、このセグメントデ
イスクリプタはユーザーセグメント1211をア
クセスする為に使用される。(更に詳細は、本発
明の被譲渡人と同一人に譲渡され本文に参考の為
作用された。昭和51年2月10日特許の「セグメン
ト化されたアドレス生成」なる名称の米国特許第
3938096号を参照されたい) セマフオアの記憶に使用されるシステムセグメ
ント1214をアクセスする為、システムベース
1215においてG表ワードGTWが使用され
る。このG表ワードのアドレスは、システムベー
スにおけるG表ワードの変位分を境界アドレスレ
ジスタBAR1202(第6図)に加える事によ
り得られる。このG表ワードGTWはG表121
2を指示するG表ポインタを含む。システムに利
用可能なG番号を使用し、G表内でインデツクス
する事により、システムセグメント1214をア
ドレス指定する為に使用されるGセグメントデイ
スクリプタがアクセスされる。 同様に、Q/PR/RDYセグメント1213を
指示する内部プロセスキユーワードIPQWを配置
する事により、レデイ状態プロセスキユー(Q/
PR/RDY)をアクセスする為に、システムベー
ス1215が使用される。 G 制御ユニツト 第13a〜13c図において制御ユニツトの詳
細が示されている。この制御ユニツトは、中央処
理装置(CPU)から切離されて示されている
が、実際にはCPUの一部であり、制御記憶ユニ
ツトCSU1301と、制御記憶インターフエー
タアダプタCIA1302とは付属サブユニツト
と、制御記憶ローダCSL1303と、制御及びロ
ードユニツトCLU1304とからなる。 制御記憶ユニツトCSU1301は、制御及び
ロードユニツトCLU1304と制御記憶インタ
ーフエイスアダプタCIA1302を介して制御記
憶ローダCSL1303からマイクロ命令を受取
る。通常の演算条件下では、マイクロプログラム
は、システム初期設定の間に外部ソースからロー
ドされて計算機の恒久的な制御機能となる。然し
ながら、制御記憶ユニツトCSU1301は、多
様な中央処理装置CPU104の演算モードを行
う様に再ロードされ初期設定される能力がある。
CPUの下記の演算モードがCSU1301の制御
下で利用可能である。即ち、(a)ネーテイブモー
ド、(b)エミレーシヨンモード、(c)ネーテイブ兼エ
ミユレーシヨンモード、(d)診断モードである。こ
の能力は、CSUにあるマイクロ命令が他の全て
のCPU機能ユニツトの演算の制御に使用される
マイクロ命令のソースである為に可能となる。前
記のCPU機能ユニツトとは、エミユレーシヨン
ユニツト1316、算術論理ユニツトALU13
17、命令取出しユニツトIFU1318、アドレ
ス制御ユニツトACU1319およびデータマネ
ージメントユニツトDMU1321である。又中
央処理装置CPU104内に知られているもの
は、前述の汎用レジスタ1307と、ベースレジ
スタ1308と、科学データ用レジスタ1309
と、Tレジスタ1310と、状態レジスタ131
1と、命令カウンタIC1312と、ハードウエ
ア制御マスクレジスタ1313である。 一般に、制御記憶ユニツトCSU1301は、
9Kのバイポーラ集積回路で、読出し/書込みラ
ンダムアクセス記憶装置(RAM)と混成された
プログラム可能読出し専用メモリ(PROM)であ
る。これは特に150ナノ秒の読出しサイクルと450
ナノ秒の書込みサイクルとを有する。制御記憶装
置の各ロケーシヨンは1つの84ビツトマイクロ命
令ワード(以下に更に詳細に記述)を記憶し、各
マイクロ命令ワードは1つのCPUサイクルを制
御する。制御記憶ユニツトCSU1301の制御
記憶装置の各ロケーシヨンが読出されると、その
内容はマイクロ演算デコーダにより復号され、こ
のデコーダは、各々がCPU内で生じる特殊な演
算(以下に詳細に記述)を惹起するマイクロ演算
制御信号を与える。 各マイクロ命令ワード内にロケーシヨンを分類
する(以下詳細に記述)事により、特定のCPU
演算即ち命令を実施できる制御記憶のシーーケン
スが得られる。各命令がCPUにより起動される
と、OPコード内のあるビツトが制御記憶起動シ
ーケンスの決定に使用される。命令デコード機能
によりセツト又はリセツトされるあるフリツプフ
ロツプ(図示せず)のテストにより、制御記憶メ
モリーが必要に応じて更に特定のシーケンスにブ
ランチされる。 制御記憶インターフエイスアダプタCIA130
2は、制御記憶ユニツト1301、データマネー
ジメントユニツトDMU1321、および第13
b図の制御記憶メモリー1333の演算を指示す
る為の算術論理ユニツトALU1317と通信す
る。このCIA1302は、制御記憶アドレス修
飾、テスト、エラー検査、およびハードウエアア
ドレス生成の為のロジツクを含む。ハードウエア
アドレス生成は、一般にエラーシーケンスの起動
アドレスの生成と、初期設定シーケンスの為に使
用される。 データマネージメントユニツトDMU1321
はCPU104と、第1図に示す主メモリーおよ
び(又は)バツフア記憶装置メモリーとの間のイ
ンターフエイスを提供する。どのユニツトが他の
ユニツトにより必要な情報を有しているかを認識
し適正な時点にこの情報をCPUレジスタにスト
ローブ(strobe)する事がこのデータマネージメ
ントユニツトの責務である。又このデータマネー
ジメントユニツトDMUは部分書込み操作の間マ
スキングを行う。 命令取出しユニツトIFU1318は、DMU1
321、ACU1319、ALU1317および
CSU1301とインターフエイスして、CPUに
命令を与え続ける様応答可能である。命令取出し
ユニツトは、現在の命令の完了以前にそのレジス
タにおいて次の命令を利用可能な状態に維持す
る。この能力を与える為、命令取出しユニツト
IFU1318は、通常1つ以上の命令を含む12バ
イトの命令レジスタ(図示せず)を含む。更に、
CSUの制御下にあるIFUは、命令が実際に必要と
される以前に主メモリーに情報(命令)を要求し
て、その12バイトの命令レジスタを常に更新状態
に維持している。命令はこの様に通常使用されな
いメモリーサイクルにより予め取出される。又こ
の命令取出しユニツトは各命令を復号して他のユ
ニツトの命令の長さおよびフオーマツトを通知す
る。 アドレス制御ユニツトACU1319はCIAを
介してIFU,ALU,DMU,およびCSUと通信す
る。ACU1319はCPU内の全てのアドレス生
成を受持つている。ACU内外の伝送を含め全て
のACUの動作はCSUのマイクロ演算および当ユ
ニツト内のロジツクにより指示される。ACUの
通常のサイクル動作は、命令タイプよりも命令中
のアドレスのタイプに依存する。アドレスのタイ
プ次第で、ACUはある命令中の各アドレスに対
して異なる操作を行う。又このACUは、8つの
最後に使用したメモリーセグメントのベースアド
レスを、それらのセグメント番号と共に記憶する
連想メモリー1319aを含む。メモリー要求が
なされる都度、このセグメント番号は連想メモリ
ーの内容に対して検査され、セグメントのベース
アドレスが既に生成され記憶されたかを決定す
る。もしベースアドレスが連想メモリー1319
aに含まれる場合は、このアドレスは絶対アドレ
ス生成に使用され、かなりの時間が節減さされ
る。もしベースアドレスが連想メモリー1319
a内に含まれていない場合は主メモリー表をアク
セスして生成される。然しながら、このセグメン
トのベースアドレスが生成された後は、将来の参
照操作の為そのセグメント番号と共に連想メモリ
ー内に記憶される。 ACU,IFU,DMU,およびCSUとインターフ
エイスしているのは算術論理ユニツトALU13
17である。その基本的な機能は、CPUに必要
な算術的演算とデータ操作の実施にある。この算
術論理ユニツトの動作は、完全に制御記憶ユニツ
トCSU1301からのマイクロ演算制御信号に
依存する。 ALU1317とCSU1301とに関連してい
るのはスクラツチパツドメモリーユニツトLSU
1315(時には又局部記憶ユニツトとも呼ばれ
る)である。これは、一般には256ロケーシヨン
(1ロケーシヨン当り32ビツト)のソリツドステ
ートメモリーと、そのメモリーに対する選択読出
し/書込みロジツクからなつている。このスクラ
ツチパツドメモリー1315は、CPUの制御情
報と保全度情報を記憶する為に使用される。更に
スクラツチパツドメモリー1315は作業ロケー
シヨンを含み、これは主としてデータ操作の間オ
ペランドと部分的結果の一時的な記憶の為に使用
される。又、ALU1317と関連しているの
は、特にコンピユータシステムの各状態を記憶す
る為の64のフリツプフロツプからなる補助メモリ
ー1317aである。 又、CPUはクロツクユニツト1320を有
し、1基に対し2つのクロツクシステムとなつて
いる。即ち、第1のクロツクシステムは制御イン
ターフエースアダプタCIA1302のタイミング
を与え第2のクロツクシステムは中央処理装置内
の機能ユニツトの動作の為のタイミングパルスを
発生する。 次に第13c図において、制御記憶ワード13
25のフオーマツトが示される。この制御記憶ワ
ードは84ビツトの幅を有し6つの主なフイールド
に分割されている。即ち、 a シーケンスタイプフイールド1326(3ビ
ツト)、 b ブランチおよび(又は)マイクロ演算132
7(23ビツト)、 c 定数生成および指示1328(14ビツト)、 d バスへのデータ1329(ビツト)、 e マイクロ演算1330(32ビツト)、 f チエツキング1331(4ビツト)。 制御記憶ワード1325の3ビツトのEフイー
ルドは、シーケンス制御フイールドとして使用さ
れる。本コンピユータシステムにおいては7つの
異なるシーケンスタイプと1つのリザーブされた
タイプがある。第13b図のブロツク1335に
おいて、Eフイールドが2進数の0,1又は2に
等しい時、マイクロ命令1325のブランチフイ
ールドA,B,C,D,およびLは次のアドレス
の生成に使用される。KSレジスタ1337の最
初の6ビツトはBフイールド、Cテスト結果、D
テスト結果およびLフイールドと共に使用され
て、次のマイクロ命令の次のアドレスを与え、前
記マイクロ命令は次のアドレスレジスタKS13
37に格納される。Eフイールドが2進数の4
(ブロツク1335参照)にセツトされる時、次
の選択されたアドレスが割込みリターンレジスタ
KA1339から取出される。KAレジスタに記
憶されたアドレスは、ハードウエアの割込みが生
じる時次のアドレス生成により生成されたもので
ある。Eフイールドが2進数の5にセツトされた
時は、ブランチ操作が用いられてマイクロプログ
ラサブルーチンからのサブリターンが設定され
る。ブランチ操作が用いられると、リターンレジ
スタKR1346の内容は次の制御記憶アドレス
として使用される。このリターンレジスタ134
6は制御記憶コマンドを出す事によりロードさ
れ、このコマンドは、インクリメンタ1338か
らKRレジスタ1346に対し、KSレジスタ13
37の現在の制御記憶アドレス+1をロードす
る。1レベルの入れ子形サブルーチン能力は、
KTリターンブランチレジスタ1347を介して
与えられる。KRレジスタ1346がロードされ
る都度、KRレジスタの元の内容は、KTレジス
タ1347に転送されマイクロプログラムリター
ンが呼出される度にKTレジスタの内容はKRレ
ジスタに転送される。第3のレベルの入れ子形サ
ブルーチン能力はKUレジスタ1348により与
えられ、第4レベル入れ子形サブルーチン能力は
KVリターンブランチレジスタ1349により与
えられる。制御記憶ワードのEフイールドが2進
数の6にセツトされた時は、次のアドレス指定さ
れた制御記憶ワードは、インクリメンタ1338
におけるKSレジスタ1337の現在のアドレス
+1に等しい。このEフイールドが2進数の7に
セツトされる時は、CSU1301は診断モード
に入り、次のアドレスは現在のアドレス+1とな
ろう。 前に記述されたブロツク1335に示した次の
制御記憶アドレスへのブランチ操作のシーケンス
制御に加え、第13b図のブロツク1336に示
されるハードウエアが生成するシーケンス制御が
ある。(注意:ブロツク1335と1336は実
際にハードウエアのレジスタで、マイクロ命令ワ
ードが有する形態とは異なる様に示されている)
このハードウエアが生成するブランチ操作はオー
バライド条件(エラー、初期設定、制御記憶走査
等)であり、この為Eフイールドを制御して固定
アドレスを制御記憶アドレスレジスタKS133
7に強制的に送らせる。このブランチ操作は1ク
ロツク期間丈割込み線(図示せず)をハイとして
Eフイールド制御下に生成された筈のアドレスを
KA割込みリターンレジスタ1339に記憶させ
る事により行われる。ハードウエア生成アドレス
は制御記憶アドレスレジスタに格納される。ある
ハードウエア/フアームウエア生成による割込み
操作は、そのクラスにおける別の割込みが割込み
条件が満される迄実行できない様に阻止する割込
み阻止用フリツプフロツプ(図示せず)より優先
順位を有する。フアームウエアマイクロ演算は、
フアームウエアの制御下にあるこられのシーケン
スに対し割込み阻止フリツプフロツプのリセツト
を制御する為に存在する。このハードウエア制御
下のシーケンスは、自動的にそのシーケンスの終
りで阻止用フリツプフロツプのリセツトを行う。
優先順にリストされた下記の条件はこのカテゴリ
ーに入る。即ち、(a)制御記憶ロード、(b)制御記憶
アドレス走査、(c)ハードウエアエラー、(d)ソフト
ウエアエラー。残るハードウエア条件は割込み防
止フリツプフロツプをセツトせず、生成された時
生じる様に直ちに作用させられる。以下の諸条件
は優先順に示されてこのカテゴリーに入る。 (a) 初期設定 (b) ソフトのクイア (c) 保全パネルのエントリ (d) 保全チヤンネルのエントリ (e) ハードウエアによる終了 初期設定信号は、2進数の0をアドレス指定
し、ハードウエアリセツト可能エラーをクリア
し、ハードウエア制御下の制御記憶走査シーケン
スが続く制御記憶ロード演算を実行する様ブラン
チをCSU1301に行わせる。又これはシステ
ムの初期設定を実施する。ソフトクリア信号は、
2進数の0をアドレス指定し、ハードウエアリセ
ツト可能エラーをクリアし、割込み防止フリツプ
フロツプをリセツトする様CSU1301をブラ
ンチさせる。保全パネルエントリ信号は、保全パ
ネル(図示せず)のCSUアドレススイツチにお
けるアドレスリセツトの為CSUをブランチさせ
る。 保全チヤンネルエントリ信号は、保全チヤンネ
ル(図示せず)を介して生成されたアドレスに
CSUをブランチさせる。このロードされたアド
レスは保全バスQMB1344からで、これは保
全チヤンネルの一部であり右寄せされている。ハ
ードウエアによる終了信号は、2進数アドレス2
にCSUをブランチさせる。このシーケンスは保
全手段として使用される。このシーケンスの終り
にはEフイールドを2進数の4にセツトしたEフ
イールドブランチを行う事によりリターンが初期
設定される。 制御記憶ロード信号は2進数0のアドレスに
CSUをブランチさせる。これも又CSUのレデイ
サイクルフリツプフロツプ(図示せず)とシステ
ムクロツク1320をOFFとし、CSUをロード
状態にする。このロード状態においては、CSU
は制御記憶ローダCSL1303,IOC1305、
主メモリー102、又は保守パネル1355から
ロードできる。CSLからロードされる時は自動的
な走査がロード操作の終期に生じる。ロード操作
が他のどんな手段による時も、走査はマイクロ演
算信号の生成によつても、保全パネルの走査スイ
ツチの設定によつても発生できる。制御記憶装置
走査信号はCSUを2進数の0のアドレスにブラ
ンチさせる。制御記憶装置走査はシーケンスの存
在中ハードウエア制御下にある。走査の間システ
ムクロツク1320はOFFとなり従つてコマン
ド即ちテストは実行されない。走査シーケンスの
終りにハードウエアは割込みリターンレジスタ
KAの内容をアドレスレジスタKSに転送し、シス
テムクロツクはONとなり、制御はフアームウエ
アにリターンされる。 ハードウエアエラー信号はCSUを2進数の4
のアドレスにブランチさせる。通常の処理モード
においては、どのCPUの機能ユニツトに検出さ
れたハードウエアエラーもハードウエアエラー回
線(図示せず)を動作させる。生成された制御記
憶装置のシーケンスはシステム条件をテストして
行うべき作用を決める。診断モードにおいては、
ハードウエア検出可能なエラー条件はマイクロ診
断操作から発見される。このマイクロ診断操作は
行うべき作用を制御する。一方、ソフトウエアエ
ラー信号は制御記憶装置を2進数の1のアドレス
にブランチさせる。このアドレスはマイクロプロ
グラムの制御下にあるソフトウエアエラー報告シ
ーケンスの開始である。 再び第13c図において、Eフイールド132
6は前述の如くブランチコード用の3ビツトのフ
イールドである。ブランチおよび(又は)マイク
ロ演算フイールド1327はA,B,C,Dおよ
びLフイールド(第13b図のブロツク1335
に示す)からなり、この場合Aフイールドは次の
アドレスの上位6ビツト、Bフイールドは64ブラ
ンチにおけるマスクフイールドの次のアドレスの
中間4ビツト、Cフイールドは64テストの1つに
対する6ビツトテストフイールド、Dフイールド
は64テストの1つに対する別の6ビツトテストフ
イールド、およびLフイールドは最下位ビツトで
ある。Kフイールド1328は14ビツトのフイー
ルドで、その内6ビツトは定数フイールド、4ビ
ツトは定数又は操作フイールド、および4ビツト
は定数に対する操作フイールドである。バスへの
データフイールド1329は、QMBバス134
4のQA部への情報を制御する為の4ビツトを有
するQAフイールドと、QMBバス1344のQB
部への情報を制御する4ビツトを有するQBフイ
ールドからなる。Fフイールド1330は32ビツ
トのフイールドで、マイクロ演算サブコマンドを
形成する様コード化される。Pフイールド133
1は検査用にリザーブされた4ビツトからなる。 作用において、マイクロ命令ワードは制御記憶
装置配列1333に記憶される。演算サイクルの
間、制御記憶装置配列はKSアドレスレジスタ1
337の内容によりアドレス指定される。これ
は、アドレス指定されるロケーシヨンの内容を読
出しラツチのグループ1357に読出させる。読
出しラツチのワード内容の各部はCPUの各機能
ユニツト内の記憶レジスタに分散即ち転送され
る。各機能ユニツトは、システムクロツクソース
の制御下の制御記憶装置ワードにより規定される
所定のサブコマンドを生成する為の復号論理回路
を含む。一般に、復号はその時間も最も短縮し復
号が中央部で行われる場合のコマンド信号も伝送
するのに必要なケーブル数を減少する為、中央部
で行うよりもCPUの各機能ユニツトで実施され
る。更に、復号はケーブル遅延の差から生じるタ
イミング問題を避ける為にも各ユニツト内で行わ
れる。更に、各ユニツトを用いてサブコマンドを
復号する事によりサブコマンド信号の生成に必要
な機能ユニツト内に存在するある条件を表わすこ
れらの信号をCIAユニツト1302にリターンす
る必要はない。典型的なデコーダユニツト135
9は、マイクロ命令ワードから各種のフイールド
を受取りマイクロ演算信号a,b,c,d……
q,rを生成する事が第13b図に示される。マ
イクロ命令デコーダ1359はマイクロ命令ワー
ドからコマンドを受取る。マイクロ命令ワードか
らのフイールドは復号され、複数の回線s,t,
u……y,zの1つをセツトする。マトリツクス
は、s−z回線とポイントα,β,γ……ψ,ω
で接続された予め定めた制御回線インピーダンス
を持たせる事により形成される。次に、マイクロ
命令からのフイールドが復号される時、回線s−
zの1つがハイとなる。ギリシヤ文字α……ωに
よりマトリツクスに示される濃い点は2組の回線
間を結ぶインピーダンスを表わす為、どの水平方
向回線に伝播する電気信号も接続されて、インピ
ーダンス接続(点)が示される垂直方向の線a−
rに沿つて伝わる。次に、各垂直方向線a−r
は、ANDゲート1360〜1365の各々への
1つの入力として接続される。中央部のタイミン
グユニツトからの調時信号tsを含む他の入力信号
も又ANDゲート1360〜1365に接続され
る。従つて、各調時信号tsがハイになると、他の
入力信号がハイとなる全てのゲートは駆動され、
マイクロ命令信号をCPUの予め定めた機能ユニ
ツトに与える。例えば、もし読出しラツチ135
7からコマンド1341が復号され、水平方向線
Sがハイであると、a,b,cおよびqの垂直方
向の制御線がハイとなり、ANDゲート136
0,1361,1362および1364は、ts調
時信号がこれらのゲートに順次与えられるにつれ
て駆動される。こうして、垂直方向の制御線がギ
リシヤ文字α乃至ωにより示された異なる点で水
平方向の制御線に接続される組合せは、マイクロ
命令信号を、制御記憶装置列1333から与えら
れるマイクロ命令により中央処理ユニツト内で各
機能ユニツトの制御の為に中央処理装置CPUに
供給する為の恒久的切換マトリツクスを表わす。
このように、切換特性を有する恒久的フアームウ
エアは、コンピユータシステムの能力として必要
なマイクロ演算のシーケンスを単に規定する事に
より本発明の計算機内で構成できる。 通常の条件下では、データは、局部レジスタ
yo1343としても知られるCPU書込みデータ
レジスタを介して制御記憶装置列1333に書込
まれる。制御フリツプフロツプ(図示せず)は、
記憶装置配列の上半部又は下半部のどちらが書込
まれるかを規定する。制御兼ロードユニツト
CLU1304からのデータは、保全バスQMB1
344を介してCIA/CSUに到達し、制御記憶装
置配列1333への書込み以前に記憶装置局部レ
ジスタyo1343によりバツフアされる。この
記憶装置局部レジスタ1343は、読出しと書込
み局部レジスタの両方に時分割される。マルチプ
レクサKQM1345は、保全パネル1355又
はマイクロ診断プログラムの何れかにより制御さ
れ、各レジスタから接続された読出し経路を提供
する。比較レジスタKP1350は非機能用途に
設けられ、保全目的の為に使用され又比較ロジツ
ク1352と復号ロジツク1351と共に用いら
れる。 H プロセス制御の為のデイスパツチヤフアーム
ウエア このデイスパツチヤはフアームウエア/ハード
ウエアユニツトで、その主な目的は、プロセスの
種々のキユーの管理、各プロセス間の切換えであ
り、プロセスのキユーと、プロセス制御ブロツク
PCBと、システムベース内の実行プロセスと、新
しいプロセスのレジスタの更新を含む。又、この
デイスパツチヤは、セマフオアにおいてプロセス
を実際に待機する(IOC又は例外ハンドラに対す
るV操作、シミユレートV操作の後)プロセスへ
メツセージを伝送する。又、これは、プロセスが
そのメツセージを伝送する為自由リンクセマフオ
アを待機する時、メツセージリンクを解放するP
操作の後セマフオアにメツセージをキユー化す
る。 このデイスパッチヤは更に、ネーテイブモード
におけるプロセス実行の「ロールイン」の後、又
はもし現在のプロセスがネーテイブモードで実行
中であれば「コンテスト」の後、ネーテイブモー
ドの命令フアームウエアに呼出しを行う。又これ
は以下の態様でデコール拡張フアームウエアで呼
出しを行う。即ち、 (a) 前記デコール拡張におけるプロセス実行のロ
ールアウトの間の一時的呼出し、 (b) 前記デコール拡張におけるプロセス実行のロ
ールインの間の一時的呼出し (c) 前記デコール拡張におけるプロセス実行のロ
ールインの終端における限定的呼出し、および (d) もし現在のプロセスが前記デコール拡張にお
いて実行状態を維持する場合はコンテストの後
の限定的呼出しである。 更に、デスパツチヤは、実行中のプロセスが存
在しない時当システムを休止ループに位置させ
る。 以下の如きデイスパツチヤに対する出入りの方
法がいくつかある。即ち、 (1) 初期設定手続(SIP)は、最終ステツプの如
きエントリを与える(本文に記名された譲受人
と同一人に譲渡された「システム初期設手続」
なる名称の昭和49年12月2日出願の米国特許出
願第528814号参照) (2) 起動および中断命令はデイスパツチヤへのエ
ントリを行う。起動命令はプロセスの起動、中
断命令はプロセスを停止させる。(「起動および
中断命令」なる名称の昭和49年12月2日出願の
米国特許出願第529253号参照) (3) PおよびV操作はデイスパツチヤへのエント
リを行う。P操作はセマフオアからのメツセー
ジを取上げ、メツセージがなければプロセスは
待機状態に入る。(「セマフオアにおけるPおよ
びV操作」なる名称の昭和48年2月15日特許の
米国特許第4374409号参照) 次に、簡単に説明すれば、このデイスパッチヤ
は、各プロセスを管理し、従つてどのプロセスが
実行されるかを決定し次いで現在実行中のプロセ
スをロールアウト(即ち、ハードウエアレジス
タ、スクラツチパツドメモリー等に含まれる現在
実行中のプロセスに関する全情報をPCBに書込
む)し、新しいプロセスをロールイン(即ち、新
しいプロセスを実行するのに必要な全情報を各種
のハードウエアレジスタ、スクラツチパツドメモ
リー等にPCBから書込む)する等の適当な操作を
行う事によりプロセス制御ブロツクPCBを管理す
る主要な機構である。 デイスパツチヤにより実施されるフアームウエ
アにおける(即ち、制御ユニツトにおける)演算
の表示はフローチヤート第14a〜14i図に示
される。例えば、第14a図のブロツク1402
はデイスパツチヤにより実施される演算の表示で
あり、この場合マイクロプログラムワードは制御
記憶ユニツトにより伝送され、デコーダ1359
による信号と同時に適当な一連のマイクロ演算信
号1360,1361等を介してCPUの適用部
分を制御して記憶サブシステム102のシステム
ベースからIPQWを検索し、かつこれをスクラツ
チパツドメモリー1315に転送する。同時に、
デイスパツチヤは、システムベースのG表ワード
GTWにより指示されたセグメントデイスクリプ
タのG表からGOセグメントデイスクリプタ(第
12図)を取出す(1404)。IPQWワードの
ビツト16〜31は16ビツトの正の整数を含み、
この整数はGOセグメントと呼ばれるGセグメン
ト番号0のベースからレデイ状態のプロセスキユ
ーQ/PR/RDYのヘツド(最初のバイト)への
変位である。もしIPQWワードのビツト16〜3
1が0である場合(1403)、レデイ状態キユ
ーは空であると考えられる。もしレデイ状態キユ
ーが空である場合は、Q/PR/RDYで現在待機
中のプロセスがなく、レデイ状態キユーは存在し
ない。判断ブロツク1405で判断されるべき次
の質問は、空表示インデイケータがセツトされて
いるかどうかを決定する事によりプロセスが現在
計算機内で実行されているかどうかについて決定
することである。もし空表示インデイケータがセ
ツトされていれば(即ち、現在実行中のプロセス
がない)、プロセサを使用する為待機中のレデイ
状態キユーにプロセスがない事は既に決定されて
いるから、計算機は休止状態に入る(140
6)。然しながら、もし現在実行中のプロセスが
計算機にある場合であつて、計算機の使用に対す
る待機中のプロセスが存在しなければ、現在のプ
ロセスはその次の命令をアクセスする(140
7)。 再び第14a図のフローチヤートの判断ブロツ
ク1403において、もしIPQWのポインタ領域
において正の整数がある場合は、GOセグメント
のIPQWワードにより指示されたレデイ状態キユ
ーのヘツドはスクラツチパツドメモリーに取出さ
れる。(注:反復を避け、明確にする為、制御ユ
ニツトとCPUと関連するデイスパツチヤの中間
的機能については省略する。然し、事例により既
に記述した如き中間的諸機能については典型例に
より示すものとする。)これ迄の処、本文ではレ
デイ状態のキユーで待機中のプロセスがあるもの
と決めていた。次の操作が始められる前に、中央
処理装置内で現在実行中のプロセスがあるかどう
かの決定が必要である。フローチヤートの判断ブ
ロツク1410においてこれが決定され、もし中
央処理装置に現在実行中のプロセスがない(即
ち、CJPがない)場合、レデイ状態のキユーのヘ
ツドが実行される(1412)。然し中央処理装
置でプロセスが実行中であると、デイスパツチヤ
は現在実行中のプロセスとレデイ状態のキユーの
ヘツドのいずれが優先順位を有するかを決定しな
ければならない。 従つて、システムベースPCB400の実行プロ
セスワードに配置される現行プロセス(CJP)の
優先バイトが取出される(1413)。次に現行
プロセスCJPが、レデイ状態キユーのヘツドで待
機中の新らしいプロセスNJPよりも低い優先順位
であるかどうかについて決定がなされる(判断ブ
ロツク1414参照)。もしCIPがNJPより低い
優先順位でない場合は、CIPは中央処理装置の制
御下の状態に維持され、コンテストインデイケー
タがリセツトされる(1415a)。(このコンテ
ストインデイケータは、CJPのために実行され従
つて競合の可能性が生じる最後の命令の開始後1
つ以上の新らしいプロセスがレデイ状態キユーに
置かれた時(この条件下では、コンテストインデ
イケータは2進数の1にセツトされる。)を除き
常に0にセツトされる。現行プロセスCJPが継続
させられるが、これ以上の命令を実行させられる
以前に、CJPがデコール拡張モードで実行されて
いるかどうか決定がなされる(1415)。もし
CJPがデコール拡張モードに実行されている場合
は、次の命令はエミユレーシヨンモード(即ち、
デコール拡張)で実行され(1419a)、もし
CJPがデコール拡張モードで実行されていない場
合は、次の命令はネーテイブモードで実行される
(1419b)。再び判断ブロツク1414におい
ても、もしレデイ状態のキユーのヘツドのNJPが
CJPよりも高い優先順位を有する(即ち、その優
先順位番号はCJPの優先順位番号よりも小さい)
場合は、現在実行中のプロセスCJPは計算機から
「ローアウト」され、新らしいプロセスNJPが計
算機に「ロールイン」される。従つて、フアーム
ウエア優先サブルーチンPRIQ1418は現行プ
ロセスCJPのキユー化操作をLIFO順位により、
およびフアームウエアサブルーチンRLLO141
9の指令下の最初の「ローアウト」CJPによる優
先順位番号によりレデイ状態のキユーに指向させ
る。このRLLOサブルーチンは、汎用レジスタ、
ベースレジスタ、科学データ用レジスタ、Tレジ
スタ、状態レジスタおよび命令カウンタに記憶さ
れるCJPの情報の書込みを、主メモリーにおける
プロセス制御ブロツクPCBの適当な記憶領域に返
戻させて、RUAの更新を生じさせる。更に、
PCB400におけるプロセス主ワード0
(PMWO)のDEXT番号が更新される。(142
0) ここで、新らしいプロセスNJPが「ロールイ
ン」される用意ができる。境界アドレスレジスタ
BARが取出され(1442)、実行プロセスワー
ドRPWがシステムベースのアドレスBAR+56
から取出される(ブロツク1423参照)。この
新しいプロセスNJPのネームは次に実行プロセス
ワードRPWへ書込まれ、新らしいプロセスNJP
のネームがQ/PR/RDYのプロセスリンクPL内
に書込まれている為、プロセスリンクPL内のネ
ームは従つてRPWブロツクに置かれる(142
4)。従つて、レデイ状態のキユーからのNJPは
この時CJPとなり、中央処理装置を制御する状態
になり、従つてもはやQ/PR/RDYに待機せ
ず、そのネームをQ/PR/RDYのプロセスリン
クPLから取去る事によりキユーから除かれねば
ならない(1425)。これが行われると、レデ
イ状態のプロセスQ/PR/RDYのキユーはフア
ームウエアサブルーチンUQLK、1425aによ
り更新される。従つて、計算機から取出された許
りのプロセスのJP番号は、もはや計算機の制御
下になく待機状態にならねばならない為、Q/
PR/RDYのプロセスリンクに置かれる(142
6)。この時点において、新らしいプロセスに対
し中央処理装置のこの制御を与える為の変形操作
およびレデイ状態のキユーに元のプロセスを位置
する操作が実施され、中央処理装置の制御下にプ
ロセス(新らしいCJP)がある為、空表示インデ
イケータは0にセツトされる(1427)。一方
もし中央処理装置の制御下のCJPがなければ、空
表示インデイケータは1にセツトされる事にな
る。この時点において、前記中央処理装置の割当
て操作が完了し、新らしいプロセスは中央処理装
置に入るが、元のプロセスはレデイ状態キユーに
置かれる。然し、新らしいプロセスは第13a図
の中央処理装置1306のハードウエア例えば汎
用レジスタ1307、ベースレジスタ1308、
科学データ用レジスタ1309、Tレジスタ13
10、状態レジスタ1311、および命令カウン
タ1312に対して末だ実行の用意ができておら
ず、これらは新らしいプロセスのプロセス制御ブ
ロツクからの制御情報を供給されなければならな
い。 従つて、フアームウエアのサブルーチン143
0はCPUを制御し、最初にPCB(第4図)から
スクラツチパツドメモリ1315に向けてPMW
3を取出し、次にPMW0を取出す。PMW0の
MBZフイールドは検査され(1433)、もしこ
れが2進数の0でなければ違法のPCB例外が起
る。然し、もしPMW0のMBZフイールドが零で
あればPMW1が取出される(1413)。再び
PMW1のMBZフイールドがテストされてこれが
2進数の0であるかどうかを決める。もし0でな
ければ違法PCB例外が起るが、もし0であればデ
イスパツチヤはCに進む。 従つて、アドレススペースワード0
(ASWO)はPCBの適当なスペースから取出さ
れ、セグメント表ワードの大きさSTWSZはテス
トされて7よりも小であるかどうかを決める。も
しこれが7より大きければ、違法PCB例外が起
り、もしこれが7より小か等しい場合はASW1
はPCBから取出され(ブロツク1438)、その
STWSZフイールドがテストされて8より小か等
しいかを決める(1439)。もしこのフイール
ドが8より大である場合、違法のPCB例外が起る
が、もしそのSTWSZフイールドが8と等しいか
これより小であれば例外ワードEXWは取出され
(1440)、そのMBZフイールドがテストされ
て0と等しいかどうかが決まる。もしそのMBZ
フイールドが0に等しくなければ、違法のPCN
例外が起るが、もし0に等しければスタツクワー
ドSKTが取出され(1442)、そのMBZフイー
ルドがテストされ(1143)0に等しいかどう
かが決まる。もしMBZフイールドが0に等しく
なければ違法のPCB例外が生じるが、もし0に等
しければ命令カウンターワードICWがPCBから
取出されて命令カウンタICに置かれ(144
4)、そのTAGフイールドがテストされて0に等
しいかどうかが決まる(1445)。もしTAGフ
イールドが0に等くなければ、違法のPCB例外が
生じる。然し、もしTAGフイールドが0に等し
ければ、MBZワードが取出され(1446)、そ
のMBZフイールド(ビツト0〜31)がテスト
されて0に等しくないかどうかを決める(144
7)。もしこれが0に等しくなければ違法のPCB
例外が生じるが、もし0に等しければ、スタツク
ベースワード0,1,2(SBW0,1,2)が
取出される(1448)。PCBのベースレジスタ
保管領域の8ベースレジスタの内容が次に取出さ
れ、機械のベースレジスタ1308に記憶される
(1449)。次に、PCBの汎用レジスタ保管領域
からの16汎用レジスタの内容が取出され機械の汎
用レジスタ1307に記憶される(1450)。
然しながら、科学データレジスタの内容の取出し
以前に、プロセス主ワード0(PMW0)の能力
バイトについて検査が行われて科学計算モードが
使用されるかどうかを決める(1451)。もし
科学計算モードが使用されている場合は、PCBの
科学計算レジスタ保管領域からの科学計算レジス
タの内容が取出されて記憶される(1452)。
次に、フアームウエアが進行してPMW0の能力
バイトの検査を行いアカウントモードが使用され
ているかどうかを決める(1453)。もしアカ
ウントモードが使用されている場合(即ち、能力
バイトのアカウントビツトが2進数の1にセツ
ト)、このアカウントワードはPCBに存在し、レ
デイ状態のタイムアカウントワードRTAが更新
される。次に、フアームウエアが進行してDEXT
番号が0にセツトされたかどうかを決める(14
54)。もしこれが0にセツトされていなけれ
ば、機械はエミユレーシヨンモードにある(即
ち、デコール拡張能力が使用されている)事を示
し、従つてPMW0のDEXT番号が検査され(1
455)プロセス主ワード3のDETSZフイール
ドより大きいか小さいかを決め、もしこれが
DETSZフイールドよりも大きい場合は違法の
PCB例外(1456)が生じる。その理由は、
DEXT番号はDETSZフイールドよりも小である
が零に等しくないからで、もしそうなら機械は適
法のエミユレーシヨンモードで実施されてF迄進
行する。再び判断ブロツク1454において、も
しDEXTフイールドが2進数の0である場合、ネ
ーテイブモードが実行されて機械はSTWを取出
す(1457)。PCBの残りのタイムアウトワー
ドRTOワードが取出され(1458)、CJPが実
行状態で消費できる時間制限によりプロセスタイ
マがロードされる。 この時点迄に、(a)機械内に元のプロセスCJPが
あり新らしいプロセスNJPが元のプロセスCJPよ
り高い優先順位にあつた時新らしいプロセスNJP
が「ロールイン」されてCPUの管理を行うか、
(b)CPUの制御にはCJPがなくレデイ状態のキユー
のヘツドが実行された。条件(a)においてはCJPは
RPWから取出されてQ/PR/RDYにおけるプロ
セスリンクPLに置かれ、Q/PR/RDYにおける
プロセスリンクPLのNJPはRPWに置かれ、こう
してこの時点でCJPとなるNJPに制御を与え、元
のCJPから制御を外すように2つのプロセスの位
置を有効に切換える。次いで、NJPのPCBがアク
セスされ、NJP(現在のCJP)の実行に必要な情
報がスクラツチパツドメモリ又はACUのレジス
タ配列に与えられる。 もしCPUの制御下にCJPがない場合レデイ状態
のキユーのヘツドが実行される、即ちレデイ状態
のキユーのヘツドからプロセスリンクPLからの
NJPを取出しこれをRPWワードに入れるデイス
パツチヤの故に、NJPはCJPとなる。こうする事
により、プロセスリンクPLはQ/PR/RDYの空
のまま残され、これを取出す事が必要となる。 従つて、判断ブロツク1461から始つて、フ
アームウエアは、CPUの制御下のCJPがあるかど
うかを決定し、もし自由なプロセスリンク
(FPLS)があつた場合、これはアクセスされ、
キユー状態にされて、このCJPはこのプロセスリ
ンクに書込まれる。然しながら、もしCPUの制
御下のCJPがなかつた場合、NJPのPMW0の状
態バイトは更新され(1460)、再び機械に
CJPがあつたかどうかの決定が行われる(146
3)。CPUの制御下のCJPがなかつた場合、NJP
のプロセスリンク(かつてQ/PR/RDYにあつ
て今は機械の制御下にある)がQ/PR/RDYか
ら取出され(1466)(即ち、Q/PR/RDYの
キユー状態から外される)、自由リンクのセマフ
オアFLSPとなり、この時自由プロセスリンクの
キユー(第9図の805)にキユー化されて自由
プロセスリンクのキユーの一部になる(1466
a)。境界アドレスレジスタBARの内容は取出さ
れ(1464)。システムベースのBAR+56に
配置されたNJP(現在のCJP)の実行プロセスワ
ードRPWが、RPWにNJP識別を置く事により更
新される(ブロツク1465)。空表示インデイ
ケータは、CJPがなかつた場合に0にセツトされ
る。次に、コンテストインデイケータが0にセツ
トされ(1467)、典型的な内容のアドレス指
定可能なメモリであるセグメント連想装置(第1
図のAS132)がクリアされ(1471)次い
でプロセスモードに入る(1470)。(プロセス
モードは、オペレーテイングシステムよりもむし
ろプロセサにおいて操作されるプロセスにより例
外が取扱われる事を示す。)次いでフアームウエ
アはCAB迄継続し(1480)、非同期トラツプ
ビツトABが検査されてこれが2進数の1にセツ
トされているかどうかを決定する(1481)。
もしABビツトが2進数の1にセツトされる場合
は、検査が行われて、プロセスリング番号PRN
が非同期トラツプビツトARNより大きいか又は
これと等しいかどうかを決定する。(ABおよび
ARNは各プロセスのPCBの優先順位バイトに配
置されて、プロセスが実行状態にある時有意義で
あり、ABおよびARNはシステムベースのBAR+
56に置かれたRPWから得られる。)RPWの
BAR+56におけるABとARNは、非同期トラツ
プビツト又は同期リング番号を最初にセツトさせ
る条件を作る非同期トラツプルーチンに対して次
のステツプ1484が進行する為リセツトされ
る。もしこれらがリセツトされなかつた場合は、
フアームウエアにより次のパス(pass)におい
て実際には何も誤りがないのに誤りがあつたと表
示を与えて、この為常に同期トラツプルーチン1
484に進み、決して実行に入らない事になる。
次に、判断ブロツク1481と1482にもど
り、もしABビツトがセツトされないか、又はAB
ビツトがセツトされPRNがARNより大きくない
場合は、フアームウエアは進行して処理装置がど
のモード即ち通常のモードかエミユレーシヨンモ
ードのどちらで実行するかを決定する。従つて、
DEXT番号が検査されこれが0にセツトされてい
るかどうかを決定し、もしそれが0にセツトされ
ている場合は機械の通常モードが実行される(1
487)。しかしもしDEXT番号が0にセツトさ
れない場合は、エミユレーシヨンモードが実行さ
れる(1486)。 本発明の説明 ハードウエア/フアームウエアシステムは、セ
ツト演算において操作される2つの基本的な記録
のタイプを認識するものである。これらの2つの
タイプの記録は、第15A図に示した仮想記憶装
置の記録と、第15B図に示したデータベース記
録とである。仮想記憶装置の記録は一般に記録が
セグメント化されたアドレスによりアドレス指定
できる様なオペレーテイングシステム手続の内容
的に使用される。データベース記録は更に「領域
一頁一行」番号を用いてそのデータをアドレス指
定するユーザプログラムにより使用される。この
領域とはユーザのフアイルを指し、頁とはそのユ
ーザのデータフアイル内のデイビジヨンを指し、
行番号とは前記フアイルの前記ページ内の特定の
記録を指す。 第15A図に示す如く、仮想記憶装置の記録は
以下のフイールドからなつている。即ち、タイプ
フイールド1501は、記録タイプの記述であり
この記録の記録デイスクリプタ(以下に記述す
る)から得られる。仮想記憶装置の記録のD切換
フイールドは記録の状態を記述する。この記録は
以下の状態にあり得る。即ち、活動(これは記録
が現在有効なデータを含む事を意味する。)およ
び論理的削除(これは記録がもはや有効なデータ
を含まぬが、未だメモリースペースを占有してい
る事を意味する。)である。長さフイールド15
03は記録における実際のバイト数を記述する。
記録体1504は記録の実データを含む。ポイン
タシーケンスフイールド1505はこの記録体の
一部で、この記録がオーナー又はメンバーの何れ
かであるセツトの次の、前の、最初の、最後のお
よびオーナーの記録に対するポインタを含む。 ハードウエア/フアームウエアにより認識され
る記録の第2の主なタイプは第15B図に記述さ
れる如きデータベース記録である。タイプフイー
ルド1510は再び記録のタイプを記述し、以下
に記述される記録の記録デイスクリプタから得ら
れる。長さフイールド1511はバイト中の記録
の長さを記述する。記録体1512は記録の実デ
ータを含む。ポインタシーケンス1513はこの
セツトの次の、前の……等の記録に対するポイン
タを含む。又、別個に記録され以下に記述される
各記録に対するDスイツチフイールド1604も
ある。 更に、第15Cおよび15D図は1つの記録の
ポインタシーケンスのフオーマツトについて記述
する(第15A図のフイールド1505と第15
B図のフイールド1513)。ハードウエア/フ
アームウエアシステムは、2つの異なるポインタ
ーシーケンスフオーマツト、即ちメンバー記録に
対し認識されるシーケンスである第15C図のフ
オーマツトと、記録がオーナー記録となる時に認
識されるシーケンスである第15D図のフオーマ
ツトを認識する。メンバー記録(第15C図)に
対しては、次のポインタフイールド1520は前
記セツトにおいて次のメンバーのアドレスを含
む。前のポインタ1521は現在のセツトの先行
メンバーのアドレスを含む。オーナーポインタフ
イールド1524は前記セツトのオーナーのアド
レスを含む。オーナー記録に対しては、ハードウ
エア/フアームウエアにより認識されるポインタ
ーシーケンスフオーマツトは第15D図に示され
る。最初のポインターフイールド1532は前記
セツトの最初のメンバー記録のアドレスを含む。
最後のポインターフイールド1533は前記セツ
トの最後のメンバーのアドレスを含む。 記述された各ポインタ(次の、前の、オーナー
の、最初のおよび最後の)は任意である。然しな
がら、与えられたセツトに対しては以下の組合せ
のみが適法である。即ち、 ケース1 オーナー又はメンバー記録に対しては
最初の、最後の、次の、又は前のポインターは
ない。(メンバー記録はオーナーポインタを有
する) ケース2 オーナー記録は最初のポインタを有
し、メンバー記録は次のポインタを有する(メ
ンバー記録はオーナーポインタを持つても持た
なくても良い)。 ケース3 オーナー記録は最初と最後のポインタ
を有し、メンバー記録は次のポインタを有する
(メンバー記録はオーナー記録を持つても持た
なくても良い)。 ケース4 オーナー記録は最初と最後のポインタ
を有し、メンバー記録は次のおよび前のポイン
タを有する(メンバー記録はオーナーポインタ
を持つても持たなくても良い)。 ハードウエア/フアームウエアシステムの他の
特性は4つの異なるクラス、又はポインタのフオ
ーマツトの認識である。記録内ではこれらのクラ
スは、仮想メモリー記録のみに対して使用され
る。クラス零と、仮態メモリー記録のみに対して
使用されるクラス1と、データベース記録のみに
対して使用されるクラス2と、データベース記録
に対して使用されるクラス3等として参照され
る。 全ての4ポインタークラスで、それらの最初の
2ビツトは共通の意味を有する。最初のビツト、
即ちEOSビツトはセツトの終りインデイケータ
である。このビツトが1にセツトされる時、ポイ
ンタは定義によりオーナー記録を指示する。第2
のビツト、即ちNINSビツトは非挿入記録インデ
イケータである。このビツトが1にセツトされた
時、記録は現在参照されるセツトのメンバーとし
て挿入されていない。 クラス零ポインターフオーマツトは第15E図
に示される。EOSビツト1540と非挿入ビツ
ト1541は最初の2ビツト位置を占めている。
SRAフイールド1542は14ビツトオフセツト
で、これは前記セグメントに配置された記録を指
示する与えられたセグメント内での変位である。
クラス零のポインタから得られたSRAフイール
ドはクラス零ポインタを介して記録のアドレス指
定に使用されるベースレジスタから一般に得られ
るセグメント番号と常に組合わされる。 クラス1ポインタは第15F図に示される。
EOSビツト1550および非挿入ビツト155
1は標準的定義である。フイールドSEG,SRA
1552は前に定義された如くSEGとSRAによ
る標準的なセグメント化されたアドレスからな
る。これらのポインタは、ポインタを介してセグ
メント番号を直接供給して記録を直接アドレス指
定するのに使用される。 データベース記録と共に使用されるクラス2と
クラス3のポインタに対し、フアームウエア/ハ
ードウエアシステムは、既に述べたが如く(第2
図202参照)システムの各ベースレジスタと関
連するインデツクスレジスタがあると言う約束を
認識する。汎用レジスタ8−15(201)はそ
れぞれインデツクスレジスタ0〜7に対応する。
このインデツクスレジスタ番号IXR1はベースレ
ジスタBR1とマツチさせられる。例えば、ベース
レジスタBR3に対しては、インデツクスレジスタ
IXR3(GR11)が領域一貫一行番号ポインタ(第1
5H図参照)を含む事になり、その現在の
SEG,SRAアドレスはベースレジスタBR3に含ま
れる。この様に、ユーザは、SEG,SRAアドレ
スを有するベースレジスタか又はインデツクスレ
ジスタに含まれる領域一貫一行フオーマツトのデ
ータベースポインタの何れかを介して彼の記録を
アドレス指定する事ができる。 データベース記録について演算するハードウエ
ア/フアームウエア命令は、領域一貫一行ポイン
タからSEG,SRAアドレスに自動的に変換する
能力を実現する。この為、データベース命令によ
り作られる全ての実メモリー参照は標準的ハード
ウエア機構を使用し、この機構は、必要に応じて
ハードウエアにより自動的に行われるインデツク
スレジスタに含まれる如き領域一貫一行からの変
換によりセグメントおよびSRA番号でメモリー
をアドレス指定する。 ユーザフアイル(領域)における1つのページ
と、ハードウエア/フアームウエアにより認識さ
れる1つのセグメントの間には一時的な1対1の
対応付けが行われる。この様に、以下に記述され
るページデイクリプタ機構を介して、ハードウエ
ア/フアームウエアはどの与えられたページ番号
もセグメント番号に変換する。 クラス2ポインタフオーマツトは第15G図に
示される。EOSと非挿入ビツトはフイールド1
560と1561に示される。ページ番号はフイ
ールド1562に含まれる。行番号はフイールド
1563に示され、1ページおよび領域における
記録の番号を表わす。領域一貫一行番号ポインタ
全体は、データベース命令により参照される筈の
インデツクスレジスタから得られる領域番号を得
る事によりクラス2記録を使用する時に得られ
る。 クラス3ポインタフオーマツトは第15H図に
示される。EOSと非挿入ビツトはフイールド1
570と1571に示される。領域番号はフイー
ルド1572に示される。これはユーザフアイル
番号を参照する。ページ番号1573と行番号1
574はユーザフアイルにおいて特定の記録をア
ドレス指定する。 第16A図はデータベースページを示し、これ
はハードウエア/フアームウエアシステムにより
認識される如きユーザフアイル(領域)の一部で
ある。データベースページは既に第15B図に記
述された如きデータベース記録を含む。既に述べ
た如く、データベースページが主メモリーに存在
する時、データベースページとセグメント間に1
対1の対応付けが行われる。 ページヘツダ1601は、これが含まれるペー
ジに関するある事情を含む。例えば、このページ
ヘツダはバイトで表わしたページの長さと、又ペ
ージに含まれる記録(行)の数を記述する。又、
これは書込みビツトの如き情報も含み、この書込
みビツトは主メモリーに前記ページが含まれてい
る時これへの書込みと同時にセツトされる。ペー
ジヘツダに続いて、データベースページの次の主
な部分は行オフセツト配列1602である。これ
は16ビツトの要素配列で、1対1の割合でページ
に対する有効行数に対応する。行オフセツト配列
の各要素に対しては、2ビツトのDスイツチ16
04と14ビツトのオフセツト1603がある。D
スイツチは記録の不動作、論理的削除、物理的削
除、又は動作の状態を記述する。オフセツトは、
ページの開始位置からの相対的変位である記録に
対する14ビツトポインタである。ハードウエアは
このページに対応するセグメント番号と連結され
たオフセツトを用いる事によつてこのページにお
いてデータベース記録のアドレス指定が可能であ
る事がわかる。対応するセグメント番号を得る方
法については以下に記述する。データベースの残
りの部分は、記録1610と1612に示される
如き実データベース記録からなる。これらの記録
は、ページ(セグメント)のどの部分にも配置で
き、必ずしも行オフセツト配列のそれらの位置と
同じ順序になるわけではない。もしDスイツチが
不動作又は物理的に削除された記録状態を記述す
る場合は、オフセツトは零にセツトされ、記録は
存在しない。 実データベースページは第16B図に示される
如きページデイスクリプタによりアドレス指定さ
れる。このページデイスクリプタのセグメント番
号1625は、それが主メモリーにロードされた
後このページに対応するセグメント番号を含む。
領域番号1622はこのページの領域番号(フア
イル)を含んでいる。ページ番号1624は実ペ
ージ番号である。最後ページインデイケータ16
26は与えられた領域の最も大きなページ番号に
対して1に等しい。シフトカウンタ1623はペ
ージ番号のビツト数を含む。ハードウエア/フア
ームウエアシステムは、領域一貫一行ポインタフ
オーマツトを使用する時、可変長のページ番号を
認識する。「次の」デイスクリプタ1620は、
一連のページデイスクリプタにおける次のページ
デイスクリプタの指示に使用される。「前の」デ
イスクリプタ1621はページデイスクリプタチ
エーンにおける前のデイスクリプタを指示する。
これらのページデイスクリプタチエーンの使用に
ついては以下に記述される。 このページデイスクリプタチエーンは、どのフ
アイルのページが現在コンピユータシステムの主
メモリーに配置されているかを示すのに使用され
るハードウエア/フアームウエアである。メモリ
ーに存在する各ページに対しては、ページデイス
クリプタは単一のシステムを認識したチエーンに
配置され、このチエーンは第16C図に示す統合
アクセス制御(IAC)ポインタにより指示され
る。この統合アクセス制御ポインタは前述のシス
テムベースに対する1ワード拡張を表わす。IAC
ポインタはアドレスBAR+92に配置され、この
アドレスは前記システムベースの端部を1ワード
過ぎた所である。IACポインタのフオーマツト
は、零でなければならないフイールド1630、
G番号1631、および変位1632を含んでい
る。このG番号は前述の如きGセグメントの番号
である。この変位とは、ページデイスクリプタの
開始部が開始する前記Gセグメント内での変位で
ある。主メモリーに含まれるページの全てのペー
ジデイスクリプタは、次に従来のチエーンフオー
マツトにおいて一緒にリンクされる。次のデイス
クリプタフイールドと前のデイスクリプタフイー
ルドはこのリンクを形成する。 第17図は、主メモリーにおいてページデータ
ベースページの位置決めを実現する為のハードウ
エア/フアームウエアのフローチヤートを示す。
このフアームウエアは、領域一頁一行番号ポイン
タの取得に用いられ、最初にページが主メモリー
にあるかどうかを決めるのに用いられ、次にもし
これが主メモリーに存在する事が見出される場合
にはそのページのページデイスクリプタをデリバ
ーするのに用いられる。このフアームウエアは1
701に示された如くに起動する。 最初のフアームウエア動作は1702に示され
る如くに起るが、この場合主メモリー取出しIAC
ポインタはBAR+92のロケーシヨンに形成され
る。(IACポインタは第6図に示すシステムベー
スに合体されている)。このメモリー取出しの結
果として、メモリーアクセス例外1703が生じ
得る。メモリーアクセス例外の例は、物理メモリ
ー又はメモリー読出しエラーにはない。フアーム
ウエアにより起される次のステツプは、MBZフ
イールドが零である事を検査される1704に示
される。(第16C図参照)もしこのフイールド
が零でない事が見出されれば、システム検査17
05が起る。システム検査の発生と同時に、この
システムは診断状態に入る。 MBZフイールドが零であれば、ステツプ17
06が次に実行される。IACフイールドからのG
番号は一時的なレジスタGに転送される。変位フ
イールドは一時的なレジスタDにも転送される。
この変位は又「最初のクラス」と呼ばれるロケー
シヨンのスクラツチパツドメモリーにも転送され
る。ステツプ1707が次に実行される。主メモ
リーの取出しはアドレスG,Dで行われてページ
デイスクリプタを取出す(第16B図参照)。こ
の取出しは、前述の如くG,Dアドレス指定の約
束に応じて行われる。G,Dアクセス例外170
8はこのメモリー取出し(例、セグメント、違法
G−Dセグメントデイスクリプタから)の結果生
じ得る。次いでステツプ1709がフアームウエ
アにより実行される。フアームウエアサブルーチ
ンにより検査される領域一貫一行番号の領域番号
とページ番号は、マツチングの為ページデイスク
リプタの領域番号フイールド1622とページ番
号フイールド1624に対し比較される。もしこ
の領域とページ番号がマツチする場合は、ステツ
プ1720が実行され、この場合フアームウエア
ルーチンは、主メモリーから取出された許りのペ
ージデイスクリプタをスクラツチパツドメモリー
にロードして終了する。 もし現在のページデイスクリプタの領域又はペ
ージ番号が検査される領域一頁一行ポインタの領
域およびページ番号に等しくなければ、ステツプ
1711が実行される。ページの現時ページデイ
スクリプタの「次の」デイスクリプタフイールド
1620が一時的スクラツチパツドロケーシヨン
「最初のポインタ」の内容に対して検査される。
もしこれらの2つの数値が等しくなければ、ステ
ツプ1713が実行され、この場合一時レジスタ
Dは現時ページデイスクリプタの「次の」デイス
クリプターフイールドによりロードされる。ステ
ツプ1713に続いて、フアームウエアによるブ
ランチは、新らしいページデイスクリプタ(「次
の」デイスクリプタによりアドレス指定された)
がこの時取出されて続いて検査されるステツプ1
707について行われる。 再びステツプ1711において、もし「次の」
デイスクリプタが「最初のポインタ」の一時的に
書込まれたロケーシヨンの内容と等しい場合、こ
れは、メモリーにおいて存在する全ページを記述
するページデイスクリプタの全リングがこの時フ
アームウエアにより探索されている領域一頁を見
出す事なく終つた事を示す。この場合、ページン
グ例外が生じ(1712)、所望のページは主メ
モリーに位置しない事を示す。この実行に続いて
適当なソフトウエア動作が行われて、この所望の
ページの主メモリーへの実際の移動を惹起する。 本文に記述されたハードウエア/フアームウエ
アの更に2つの重要な要素が第18Aと18B図
に示される。セツトデイスクリプタ(第18A
図)は与えられたセツトの特性の記述に用いられ
る。第18A図に示される如く、Pフイールド1
802は、このセツトにおける記録ポインタのポ
インタクラス(モード)を記述する2ビツトのフ
イールドである。オーナーとメンバーの相方の全
ての記録は与えられたセツトに対して同じポイン
タクラスのポインタを有する。セツトデイスクリ
プタ1803のオーナーポインタフイールドは、
もしメンバー記録がオーナー記録に対するオーナ
ーポインタを含む場合は、1にセツトされる(第
15C図参照)。他のポインターフイールド18
04は、オーナーおよびメンバーが最初のポイン
タ、最後のポインタ、次のポインタ、および前の
ポインタを有すをかどうかを記述する。セツト編
成モードフイールドK1805は、現在のセツト
に対して使用されるセツト編成のモードを記述す
る。リングセツトのモードについてのみ本文で詳
述される。しかしながら、表配列又はリスト配列
の如きセツト編成の他のモードへの拡張の能力を
有する。デイスプレイスメントフイールド180
6はメモリにおける記録の開始からその記録のポ
インターシーケンスの開始までのオフセツトを示
すために使用される。(第15Aおよび15B図
参照)。第18A図に記述された如きセツトデイ
スクリプタは常に、ハードウエア/フアームウエ
アに参照セツトの記述を供給する為あるセツトに
ついて演算を行う時、データベース命令によりア
クセスされる。 第18B図に示す如き記録デイスクリプタは、
記録のある特性の記述の為に使用される。Fフイ
ールド1820は記録フオーマツトの記述に使用
される。記録のフオーマツトは、第15Aおよび
15B図に記述される如く仮想メモリー記録とデ
ータベース記録の何れかである。記録タイプフイ
ールド1821は記録のタイプを示し、最後には
第15Aおよび15B図に示される如きメモリー
の実記録のタイプフイールドにロードされる。記
録長さフイールド1822は、記録の主メモリー
における実際の長さであり、第15Aおよび15
B図に示す如く主メモリー記録にロードされる。 実データベース命令は第19A乃至19F図に
示す如き6つのフオーマツトの1つである。 第19A図に示すGROPフオーマツトは、演算
コード1910、零でなくてはならないフイール
ド1911、ベースレジスタ番号1912、およ
び補数コード1912を含んでいる。ベースレジ
スタは記録のセグメント化されたアドレスを含ん
でいる。補数コードは演算コードにより記述され
る特定の命令のそれ以上の弁別の為に使用され
る。 第19B図に示されたXIフオーマツトは、演
算コード1920、更に演算コードを弁別する為
に使用される補数コード1921、アドレスシラ
ブル1922、零でなくてはならないフイールド
1923、論理的削除フイールド1924、ポイ
ンターモードフイールド1925、およびBRフ
イールド1926を含んでいる。ベースレジスタ
は記録のセグメント化されたアドレスを含む。ア
ドレスシラブル1922は、そのある使用方とし
て、扱われるべきセツトのセツトデイスクリプタ
(第18A図)を指示する。アドレスシラブル
は、前述のようなアドレス生成の規則によりセグ
メント化されたアドレスに展開される。 第19C図に示すDXDXフオーマツトは、演算
コード1930、命令を更に弁別するのに使われ
る補数コード1931、1つのアドレスシラブル
AS1 1932、零でなければならないMBZ1フ
イールド1933、ベースレジスタ1934、第
2の零でなければならないMBZ2フイールド、お
よび第2のアドレスシラブルAS2 1936から
なる。ベースレジスタは再び記録のセグメント化
されたアドレスを含む。第1のアドレスシラブル
AS1 1932はセツトデイスクリプタを指示す
る。第2のアドレスシラブルAS2 1936は2
進法の整数のアドレス指定に使われる。 第19D図に示されるBRXフオーマツトは、
演算コード1940、命令を更に弁別する為に使
われるタイプフイールド1941、ベースレジス
タフイールド1942、およびアドレスシラブル
1943を含んでいる。ベースレジスタは記録の
セグメント化されたアドレスを含んでいる。アド
レスシラブルはセツトデイスクリプタのアドレス
指定に使われる。 第19E図に示すDXGRフオーマツトは、演算
コード1950、命令を更に弁別する為に使われ
るタイプフイールド1951、第1のベースレジ
スタ番号BR1 1952、アドレスシラブル19
53、零でなければならないMBZ1フイールド1
954、第2のベースレジスタ番号BR2 195
5、前−後−最初−最後フイールド1956、お
よび第2の零でなければならないMBZ2フイール
ド1957を含んでいる。2つのベースレジスタ
はメモリーに配置された2つの異なる記録のアド
レス指定に使われる。アドレスシラブルはセツト
デイスクリプタのアドレス指定に使われる。前−
後−最初−最後フイールドはセツト内の記録の所
望の設定を記述する。 第19F図に示すOPDDフオーマツトは、演算
コード1960、特定のデータベース演算の記述
に使われるプリミテイブフイールド1961、命
令を更に弁別する為に使われるタイプフイールド
1962、ポインターフイールドの記述に使われ
るPフイールド1963、およびオーナーとメン
バー記録の他のポインタを記述する最初−最後−
次−前ポインターフイールド1965、ポインタ
ーシーケンスの開始に対するオフセツトを記述す
る変位フイールド1966、およびベースレジス
タの番号を含むBRフイールド1967を含んで
いる。ベースレジスタは主メモリーの記録のセグ
メント化されたアドレスを含んでいる。 直接データベース発見命令はフアームウエア/
ハードウエア命令で、これはデータベースポイン
タを相等するセグメント化アドレスに変換し、次
にこのセグメント化アドレスをベースレジスタに
ロードする。クラス2又はクラス3のタイプポイ
ンタによるセツトの一部である記録に対しては、
生成されたポインタは又インデツクスレジスタに
もロードされる。直接発見命令は第19B図に示
すXIフオーマツトである。 直接発見命令に対するフアームウエアフローチ
ヤートは第20A乃至20E図に示される。この
フアームウエアは、命令中のMBZフイールドが
零であるか検査されるステツプ2002(第19
B図参照)で始まる。もしこのフイールドが零で
なければ、違法のフオーマツト例外が生じる(2
003)。さもなければ、ステツプ2004で、
記録フオーマツトを決める為にPフイールド19
25(ポインタクラス)の検査が実行される。ク
ラス0又はクラス1ポインター(仮想メモリー記
録)に対しては、ステツプ2050(第20D
図)へのブランチが行われる。 クラス2又はクラス3ポインタ(データベース
記記録)に対しては、ステツプ2005が実行さ
れる。このステツプにおいては、アドレスシラブ
ルにより指示されるロケーシヨンにおける4バイ
トのポインタの取出し動作が行われる。この取出
し動作の結果、メモリーアクセス例外2006が
生じ得る。さもなければ、ポインタは「X」と呼
ばれる一時スクラツチパツドロケーシヨンに記憶
される。この取出されたポインタは、領域一頁一
行(第15H図参照)の形態になつている。実行
される次のステツプは2007に示されるが、こ
こでポインタの領域一頁一行番号はページがメモ
リー中に存在するかどうかを見る為に検査され
る。この検査は、第17図に示したページ位置決
めサブーチンのフアームウエアにより行われる。
もしページがメモリー中に存在しない場合は、ペ
ージング例外2008が生じる。 さもなければ、ステツプ2009が実行され、
この場合スクラツチパツドロケーシヨン「X」に
おけるポインタからの行番号は、算術論理ユニツ
ト1317に配置された一時的16ベースレジスタ
Wに転送される(第13A図参照)。このポイン
タの行番号に見出されたビツトの実数は、ページ
デイスクリプタのシフト(桁送り)カウント16
23により決定される。第17図に示す如くペー
ジデイスクリプタは、ページ配置フアームウエア
サブルーチンの一部として主メモリーから取出さ
れる(ページデイスクリプタの記述については第
16B図を参照)。実行される次のステツプは2
010に示され、この場合ページにおける行の総
数はページヘツダから取出される(第16A図の
フイールド1601参照)。 ステツプ2011においては、行番号Wを検査
して、これがページにおける行の最大番号より小
か又はこれと等しい事を確認する。もしこれが当
らなければ、無効ページフオーマツト例外201
2が生じる。さもなければ、ブランチが第20B
図の2020に行われる。実行される次のステツ
プは2021で、この場合ページの行オフセツト
配列の(W+1)番目の要素が取出される。この
取出し操作は、16×Wにより与えられるビツト数
によりインデツクスされた行配列の開始のアドレ
ス指定により行われる。メモリーアクセス例外2
022はこのメモリー取出し操作の結果生じ得
る。 実行される次のステツプは2023で、この場
合行オフセツト配列(第16A図参照)は、行番
号Wにより記述される記録が割当てられていない
(不動作)かどうかを見る為検査される。もしこ
の行が不動作状態にある場合は、不使用行例外2
024が生じる。さもなければ、行Wにより記述
される記録が物理的に削除された状態にあるかど
うかを見る為に検査が行われる。もしこれが当つ
ているならば、削除行例外2026が生じる。さ
もなければ、2027の検査が行われて、行Wに
より記述された記録が論理的に削除された状態に
あるかを調べる。もしこれが当らなければ、ブラ
ンチが2033に行われ、さもなければ、命令に
おける論理削除ビツト1924が零に等しいかど
うかを調べる為検査(2028)が行われる(第
19B図参照)。もしこのビツトが零にセツトさ
れている場合は、削除行例外2029が生じる。
さもなければ、状態レジスタ(第2図、フイール
ド207)の条件コードが1にセツトされ、ブラ
ンチが2040に行われる。 命令における論理的削除ビツトの目的は、記録
がもはやメモリーにおいては不動作であるが依然
として主メモリースペースを物理的に占有する場
合を検出する事をプログラマーに許容する事であ
る。「ごみ集め」(ガーベージコレクシヨン)」ル
ーチンは、不動作記録を除去する際メモリー中の
動作記録を圧縮して、これら記録の除去を非常に
効率的に行う。この様に直接発見命令は「ごみ集
め(ガーベージコレクシヨン)」ルーチンに命令
中の論理的削除ビツトの「1」セツチイングの使
用、並びに条件コードの検査により、論理的に削
除された記録の検出の機能を与える。 ステツプ2033において、動作的記録に対す
る手続は続行する。状態レジスタ条件コードは零
にセツトされ、ブランチが2040に行われる。
このステツプにおいて、行Wのセグメント化され
たアドレスが、ページデイスクリプタからセグメ
ント番号1625を取り、これをステツプ202
1の行オフセツト配列要素から得たオフセツト1
603と連結される事により生成される。このセ
グメント化されたアドレスは、算術論理ユニツト
1317に配置された一時的な32ビツトのレジス
タYにロードされる。ステツプ2042において
は、この一時的レジスタYは、命令フオーマツト
からのベースレジスタBR1926により記述さ
れたベースレジスタに転送される。このベースレ
ジスタは、アドレス制御ユニツト1319に配置
される。ステツプ2043においては、ステツプ
2005において取上げられたポインタが、命令
フオーマツトから得られた番号BRのインデツク
スレジスタにロードされる。この様に、インデツ
クスレジスタ(IXR)とベースレジスタ(BR)
は、それぞれ領域一頁一行ポインタとセグメント
化アドレスを含み、ステツプ2040はこの命令
を完了する様に実行される。 ポインタ「X」により指示される記録に関し
て、命令フオーマツトにおけるPフイールド19
25により仮想メモリータイプの記録が指示され
る場合には、第20D図の2050へのブランチ
が行われる。この場合4バイトのポインタが、こ
の命令フオーマツトのアドレスシラブルにより与
えられるアドレスにおいて取出される。このポイ
ンタはセグメント化されたアドレス(第15F図
参照)の形態で、スクラツチパツドメモリーロケ
ーシヨン「X」にロードされる。このメモリー取
出しの結果、メモリーアクセス例外2052が生
じ得る。 ステツプ2053においては、ロケーシヨンに
記録されたポインタ「X」により指示された記録
のDスイツチ1502が取出される(第15A図
参照)。このメモリー取出しの結果、メモリーア
クセス例外が生じ得る。ステツプ2053におい
て、記録の論理的に削除された状態に対する検査
がされる。もしこの状態がなければ、ブランチが
2060に行われる。もしこの状態が有れば、命
令中の論理的に削除されたビツトについて検査が
2054において行われる。もしこのビツトが零
にセツトされていれば、削除記録例外2055が
生じる。さもなければ、ステツプ2056が実行
され、この場合状態レジスタの条件コードは1に
セツトされ、ブランチは2070に行われる。も
し記録が2053の論理的削除検査ステツプでノ
ーならば、活動状態になければならず、ブランチ
が2060に行われる。第20E図参照。 ステツプ2060はステツプ2061に進む。
ステツプ2061において、状態レジスタの条件
コードは零にセツトされる。次いでブランチが2
070に行われる。ステツプ2070はステツプ
2071に進み、スクラツチパツドロケーシヨン
Xに記憶されたポインタは、命令のフイールド
BR1926により指示されたベースレジスタに
ロードされる。(第19b図)次いで命令が完了
する。 本発明についてはその1実施態様を示し記述し
たが、当業者にとつて明らかな様に多くの変更改
変が本発明の実施において可能であり、かつ本発
明の主旨範囲内にある。このように、多くのステ
ツプは、同一の結果をもたらしかつ本発明の主旨
の範囲内にある他のステツプにより変更置換され
得るのである。従つて、本発明は頭書の特許請求
範囲により明示される範囲にのみ限定されるべき
ものである。 用語の定義 「絶対アドレス」 主メモリー装置におけるハードウエアバイトの
物理的アドレス 「アドレス生成」 主メモリー装置におけるロケーシヨンを参照す
る為に使用される絶対アドレスを計算する為多数
のアドレス要素について動作するハードウエア機
能 「アドレス指定」 多数の仮想的、論理的および物理的手段の何れ
かにより対象を見出す事 「アドレススペース」 CPUがあるプロセスの実行の間絶対アドレス
に変換する事が許される前記プロセスに対応する
論理的なセグメント化されたアドレスのセツト 「アドレススペースワード」 セグメント表ワード配列を指示するプロセス制
御ブロツクにおける1つ又は2つのワード。この
セグメント表ワード配列はプワセスと関連するセ
グメント表を規定する。 「アドレスシラブル」 CPUハードウエアにより認識される論理的ア
ドレスで、通常はある命令のオペランド 「アナライザ/トランスレータ」 最初に制御用言語の流れをリンカーに通過させ
次にもし制御用言語にエラーがない場合、アナラ
イザ/トランスレータはこれを使用する静止リン
カーの為に表および他の構造に変換する。 「非同期処理」 1つ以上のプロセスの同時的動作化 「補助メモリー」 システムの各種の状態を記憶させる為の64のフ
リツプフロツプからなり、ALUに配置される 「ベースレジスタ」 各アドレスシラブルにおける値により参照され
るセグメントのアドレス指定における1次的要素 「境界アドレスレジスタ」 フアームウエア/ソフトウエアをアクセス可能
な最下方のメモリーアドレスを定義する直読可能
なハードウエアレジスタ 「呼出し」 「インワード呼出し」「アウトワード呼出し」
等の、手続き呼出し項参照 「中央処理装置(CPU)」 命令の割込みおよび実行を制御する回路を含む
コンピユータの一部 「チヤンネル」 プロセスのサブシステムと周辺装置のサブシス
テム間を通信する手段で、物理的および論理的な
2種のチヤンネルがある。物理的チヤンネルは、
入出力制御ユニツトICOと周辺装置制御ユニツト
PCU間のハードウエア接続で、論理的チヤンネ
ルは、主メモリーと単一の周辺装置間のソフトウ
エア通信経路である 「チヤンネルコマンドエントリ」 チヤンネルプログラムにおける命令 「チヤンネルコマンドワード」 チヤンネルコマンドエントリの一要素。2つの
チヤンネルコマンドワードが1つのコマンドエン
トリを構成する 「チヤンネルプログラム」 ある特定の入出力、入出力演算を周辺装置によ
り実施させる命令の一シーケンス 「補助コード」 演算コードと共に命令の機能を定義するいくつ
かの命令におけるコード 「コンピレーシヨンユニツト(CD)」 任意の高位の言語プロセサにおける1手続きの
コンパイリング又はアセンブリングから得られる
単一の対象コード。CUはリンクされる迄実行可
能でない。 「同時性(コンカレンシイ)」 明確な同時性 「条件フイールド」 ブランチ命令における4ビツトフイールド。フ
イールドの各ビツトは状態レジスタビツト0と1
における条件コードのセツテイングに対応する。 「コンテスト(競合)インデイケータ」 補助メモリーに配置されたハードウエア構造で
新らしいエントリがレデイ状態キユーに置かれ、
かつ優先順位に対する競合が生じ得る事を示す 「データアドレススペース」 データ管理プログラムによりプログラムでアク
セス可能な論理的記録アドレスのセツトで、4つ
の要素、即ち論理フイールド、論理記録、データ
ベースページおよびフアイルからなる。 「データデイスクリプタ」 間接アドレス指定においてデータ操作の記述と
して使用される情報構造 「デコール」 コンピユータシステムの機能的特性又は構造 「デコール拡張モード」 エミユレーシヨンモードにおけるシステムの演
算を許容する演算モード 「デイスクリプタ」 どのデータフイールドのアドレスでも生成する
時に使用される32又は64ビツトのフイールド。本
発明のアドレス指定操作における多くのポインタ
の1つ。 「デイスクリプタブロツク」 セマフオアデイスクリプタを除き多くのデイス
クリプタの宣言を含むデータブロツクで、他のデ
ータは許容されない。 「機器アダプタ」 周辺装置制御装置に対する特定の機器を適合さ
せる電子装置 「機器アダプタインターフエイス」 機器アダプタとその関連する周辺装置制御装置
との間のインターフエイス 「機器制御部」 機器の特性を取扱うソフトウエア設備 「デイスパツチヤ」 CPUにおけるプロセスのデイスパツチ操作に
応答するフアームウエア 「デイスパツチング」 セグメント内の相対的位置情報を与える命令フ
オーマツト内のフイールド又はデータデイスクリ
プタ 「変位アドレス指定」 即時セグメントのベース又は現時ロケーシヨン
カウンタの何れかに対するロケーシヨンをオペラ
ンドが定義する直接アドレス指定の形態 「動的アドレス指定」 実行の間にプロセスのグループ内で結果を得る
アドレス指定 「エデイタ(編集プログラム)」 特定の手続きのリング操作から得られる情報の
全て又はそのいずれかを書式化および出力する静
止リンカーの部分 「有効アドレス」 物理的アドレスに対して、セグメント表番号、
セグメント表エントリ、およびセグメントの相対
的アドレスからなる論理的アドレス。これらの要
素は、結局参照されるセグメントを指示する特定
のセグメントデイスクリプタへの行程を示す。 「エミユレーシヨンモード」 別のコンピユータを起動し他のコンピユータの
環境で演算する様に見えるコンピユータの演算。 「例外」 例外は、特殊な取扱いを要求する如く規定され
たある条件の存在をハードウエアが検出する時生
じる 「事象」 他のあるプロセスにとつて価値のある、プロセ
スによりシステム内で見出される全てのもの 「フイールドクラス」 各々が同じ記録クラスにおける異る記録であり
同じ特性を記憶するのに使用される類似のフイー
ルド値のセツト。例えば、従業員の記録クラス内
の年令に対する全てのフイールド値。 「フイールド値」 記録により表わされる実体のある特性の値を表
わす記録と関連するデータの一要素。この値は、
文字ストリング、数、ブール値又は値として翻訳
できるか又は間接的にその値に導くあるデータと
して表わされる。 「フアームウエア」 マイクロプログラム化された制御の一形態を用
いるハードウエアユニツト編成の部分 「G.Dネーム」 あるセマフオアを参照するハードウエアにより
用いられるネーム。G即ちGセグメントネームは
セグメントデイスクリプタを含むG表へのエント
リ番号。Dはそのセグメントにおける相対的アド
レス。 「G−セグメント」 G.Dネーム形態を用いてアドレス指定でき、関
連する設備(G表)であるセマフオアを含むセグ
メント 「G表」 G.Dネーム形態が用いられる時、記憶マツピン
グ(Gセグメントの見出し)に用いられる表 「ゲーテイング」 手続きデイスクリプタの使用により(ゲート化
された)セグメントにおける手続きに対するエン
トリを制御する設備 「汎用レジスタ」 2進数即ちビツトストリングデータを全般的に
保有する実行プロセスに利用可能な32ビツトのレ
ジスタ。ある汎用レジスタはインデツクシングに
用いる事が可能である(GR8乃至GR15)。 「インデツクス」 システムにより維持され演算されるデータ構
造。この構造はキー形態のみでユーザに識別さ
れ、このキーはユーザが特定の記録の発生の利用
を可能にし、かつこれを位置決めする為に提供さ
れる。 「インデツクシング」 あるものをあるものに加える事により符号を付
した算術的数値によるアドレスの修正 「インデツクスレジスタ」 インデツクシングの為に使用される汎用レジス
タ(GR8乃至DR15)。 「インデイレクシヨン」 アドレス指定方法で、これによりあるアドレス
を用いて実データの代りに別のアドレスを得る。 「ベースへのインデイレクシヨン」 ベースレジスタ番号と変位を含むデータデイス
クリプタが参照されたアドレスにおいて見出され
る如き形態のインデイレクシヨン 「セグメントへのインデイレクシヨン」 インデイレクシヨンの形態で、これによりセグ
メントアドレスを含むデータデイスクリプタを参
照されたアドレスにおいて見出す 「間接セグメントデイスクリプタ」 セグメントより別のセグメントデイスクリプタ
をアドレス指定する為の情報を含むセグメントデ
イスクリプタの一形式。 「命令」 プログラマにより見ることのできる中央処理装
置の実行単位 「命令カウンタ」 実行される手続きの次の命令のセグメント化さ
れたアドレスを含む実行プロセスと関連するレジ
スタ 「インターリーブ」 メモリーアクセス時間を短縮する為のメモリー
モジユールの遂次アクセス 「割込み」 ある事象発生によるシステムにおけるプロセス
の中断 「割込みプロセス」 ある割込み操作に応答して動作させられるプロ
セス 「インワード呼出し」 1つのリング番号における1つの手続き実行の
際の下方リンク番号における実行の為の別手続き
の呼出し 「I/O制御装置」 特殊なI/Oサブシステムに対するベースの制
御を行う装置 「I/Oプロセサ」 周辺記憶装置即ちI/O装置と主記憶装置との
間でデータの移動を主に取扱う潜在的非同期シス
テム 「J.P表」 プロセス制御ブロツクの見出し用の論理的アド
レスの収集 「ジヨブ」 システムの仕事の単位 「ジヨブ制御用言語(JCL)」 ジヨブとその構成部分を記述する為の言語 「ジヨブステツプ」 JCLステートメントにより定義されるプログラ
ムの実行に止まるジヨブの主なサブデイビジヨン 「ジヨブステツプ表」 プロセスネームの最初の部分のマツプ化即ちプ
ロセス群の表を見出す為に用いられるシステム表 「リンクされたモジユール」 静止リンカーの出力。相互参照が静止リンカー
により解かれたコンピレーシヨンユニツト
(CU)の集合群 「リンキング」 静止リンキング項参照 「論理チヤンネル」 チヤンネル項参照 「論理的プロセサ」 プロセスの実行に必要なハードウエア資源およ
び制御情報の収集 「主記憶装置」 命令が実行でき、又はこれからデータが直接レ
ジスタにロードできる全てのアドレス指定可能な
記憶装置 「磁気テープ制御装置」 磁気テープ装置に関連する周辺サブシステムの
諸要素 「大容量記憶装置制御装置」 大容量記憶装置に関する周辺装置サブシステム
の諸要素 「メンバー」 セツトの発生との関連において記録が行う役
割。メンバーとしての記録の現状態は、セツトに
挿入されたものか、挿入されたものでないかの何
れかである。 「メモリーマネージメント」 物理的メモリーの割当て、再配置、および割当
て解除の為のオペレーテイングシステム設備 「メツセージ」 共にフアイルではないソースから、又は最終結
果に対して伝送される情報 「マイクロ命令」 マイクロ命令ワード、および制御記憶ワードと
同じ 「マイクロプログラム」 プロセサの制御機能を実現するのに使用される
機械コードのセツト 「マルチプレツクス」 通常時分割によるメモリーの如きハードウエア
資源の分割 「マルチプログラミング」 単一のコンピユータによる2つ以上のプログラ
ムの同時実行 「ネーテイブモード」 ネーテイブな環境におけるコンピユータの演算 「オフセツト」 アドレス生成において、セグメントのアドレス
指定された部分が始動するセグメントの開始後の
バイト数 「オペレーテイングシステム」 ユーザのソフトウエアの有効な演算を確保する
為に設計された基本ソフトウエアのシステム 「アウトワード呼出し」 1つのリング番号で1手続き実行の際より高位
のリング番号における実行の為の別の手続きの呼
出し 「オーナー」 セツトとの関連において記録が行う役割。セツ
トの発生はオーナーの役割と共に記録が存在する
存続時間に対して存在する。 「周辺装置制御ユニツト」 入出力演算を実施するチヤンネルプログラムを
実行する独立マイクロプログラム化されたプロセ
サ。 「周辺装置サブシステムインターフエイス」 自由な周辺装置制御ユニツトとI/O制御ユニ
ツト間に転送および制御する為に使用される標準
的インターフエイス 「物理的チヤンネル」 チヤンネル項参照 「物理的データ構造」 媒体に物理的に記録される際の、データの構成
の完全な定義 「物理的I/O」 メモリーと周辺装置又は末端機器間のデータの
転送を起動および制御するオペレーテイングシス
テムの部分 「物理的記憶装置」 データの記憶の為に使用されるハードウエア。
記録媒体および記録/読出しハードウエアの各形
態からなる。 「P操作」 待機状態へのエントリ又はメツセージ受取りを
プロセスに行わせるセマフオアを含む機械命令 「ポインタ」 情報構造内のエントリを独自に識別する為に使
用される情報要素。ポインタの内容は独特の記号
で、あるアドレススペースにおけるエントリの実
体即ちアドレスを識別する。 「ポインターデータベース」 コンピユータの通常のアドレス指定スペースと
異なるアドレススペースにその内容が基くポイン
タ。一般に、データベースポインタは、ハードウ
エアが有するアドレスより大きいアドレススペー
スに関連し、現在使用されていない記憶を統合す
る問題を緩和するある形態のインデイレクシヨン
を行う。 「ポインタ内のセグメント」 その内容が、アドレス指定される実体の部分的
な仮想メモリーアドレスであるポインタ。仮想メ
モリーアドレスの足りないセグメント部分は、内
部のセグメントポインタのセグメント部分と同じ
である為黙示的に知る事ができる。 「仮想メモリーポインタ」 その内容が、アドレス指定される実体の仮想メ
モリーアドレスであるポインタ 「優先命令」 リング0において実行されなばならない命令 「手続き」 同時性を持たぬプロセサにより実行可能なネー
ムを付されたソフトウエア機能即ちアルゴリズム
(算法)で、これは即ちフオートランサフルーチ
ン、ゴボルプログラム、PL/1内部手続き等で
ある。 「手続きの呼出し」 スタツクセグメント内部にスタツクフレームを
開設する為の機構 「手続きデイスクリプタ」 手続きのロケーシヨンおよびエントリポインタ
を含むワード 「手続きのセグメント」 その内容が手続き、又は手続きの部分を表わす
セグメントの形式 「プロセス」 中央又はI/Oプロセサによる同時性のない諸
命令の遂次的実行 「プロセスアドレススペース」 参照でき、あるいは制御が特定のプロセスの間
で転送可能であるメモリーアドレス 「プロセス制御ブロツク」 いかなる時でもプロセスの状態を規定するのに
必要な情報を含むデータ(定義され、認識可能な
ハードウエア) 「プロセス群」 通常単一のジヨブステツプの実施に必要なプロ
セスの関連するセツト 「プロセス群ビルダ」 その動作がリンクされたモジユールを生じる静
止リンカーの部分 「プロセス群ローダ」 リンクされたモジユールにおける最終的解を行
い実行可能なプロセス群を発生し、次いでプロセ
ス群をメモリーにロードし、その実行を開始する
オペレーテインシステム設備 「プロセス群表」 P表の項参照 「プロセスのリンク」 レデイ状態プロセス又は待機プロセスキユーへ
のエントリ 「プロセスの状態」 CPUのプロセスの動的状態、例えば実行、レ
デイ、待機、又は中継状態 「プロセスのスイツチ」 1つのプロセスを中央処理装置から切離し、別
の装置に関連させるハードウエアの機能 「プロセスの同期」 各プロセス間の非同期動作を関連させる様動作
する諸機能。一般にこれらの機能はセマフオアお
よびP.V操作を含む。 「プロセサ」 データを受取り、これを処理し、結果を与え、
記憶されたプログラムに応答してその演算のシー
ケンスを制御する事のできるユニツトで、狭義に
は中央処理装置、広義には中央処理装置、周辺装
置処理装置、又はハードウエア/ソフトウエア処
理装置を意味する。 「プログラム」 ある問題を解決する為に必要な手続きおよび関
連情報に仕様書、即ちコンピユータにより実行さ
れデータについて演算してユーザのジヨブ又はそ
のジヨブのある位相を実施する順序を付した命令
集。 「プログラムの実行」 プログラムの仕様書に従うプロセスの操作 「保護」 ハードウエアおよびソフトウエアにより強化さ
れ、各プロセスが相互に干渉し、あるいは不適正
な方法で相互のアドレススペースが共有される事
を防止する機能 「P表」 各々がプロセス制御ブロツクの起点を指示する
エントリを含むハードウエア定義によるデータ構
造。P表エントリは、いかなる時もプロセス群を
含むPCBの全セツトを指示する。又、プロセス群
表とも呼ばれる。 「Q/PR/RDY」 レデイ状態にあるプロセスのキユー、即ちレデ
イ状態キユー 「キユー(待ち行列)」 情報、プロセス又は利用度を待機する実体の順
序を付したリスト 「レデイ状態」 関連するプロセサはないが、プロセサを除く全
ての必要な資源が実行状態への変更に利用可能で
あるプロセスの状態 「記録」 1つの現実世界の物象を表わすデータの一要
素。例えば、従業員を示す「人員」記録、顧客を
示す「顧客」記録、買付けを示す「購入注文」記
録。 「記録のクラス」 各記録が唯一の記録クラスを許容する様に定義
された類似記録のセツト。例としては、全人員の
記録、全顧客の記録、全購入注文の記録等。 「記録デイスクリプタ」 記録構造の発生、認識、および破壊において使
用される情報の構造。記録デイスクリプタは単一
の記録クラスに関する。 「相対アドレス」 ある対象の他に対する増減ロケーシヨン 「再配置」 主記憶装置における1ロケーシヨンからその以
前のロケーシヨンの全ての必要な参照の調整を含
む他のロケーシヨンへのセグメントの移動 「リターン」 ある手続きが、他の手続きにエントリした点の
直後の点における手続きの動作を再び行うのに必
要な機能および演算 「リング」 あるセグメントに対するプロセスの呼出しの読
出し、書込み、および実行を制限するセグメント
の保護属性 「ロールイン」 新らしいプロセスに対してあるプロセサの制御
を行うのに必要な演算の実施 「ロールアウト」 あるプロセスによるプロセサの制御を止めるの
に必要な演算の実施 「実行状態」 実行中のプロセス(CPUに接続された)の動
的な状態 「スクラツチパツドメモリー」 局部記憶ユニツトとしても知られるCPU制御
情報を記憶する為のALUにおける256ロケーシヨ
ン 「スケジユーリング」 演算のシーケンスの決定 「科学演算用レジスタ」 2進法の浮動小数点数の操作に使用される64ビ
ツトのレジスタ。システムが科学演算用である時
本発明において4つの科学演算用レジスタがあ
る。 「セグメント」 1単位として取扱われる隣接する主メモリース
ペース 「セグメンテーシヨン」 主メモリーの単一の線形記憶の代りにセグメン
トと呼ばれる論理的組分けへの分割 「セグメントベース」 セグメントの現在の起点。これはセグメントデ
イスクリプタの1ワードにおける各フイールドの
1つ 「セグメントデイスクリプタ」 セグメントの特性の定義を行うセグメント表へ
のエントリ、即ちセグメントデイスクリプタの指
示 「セグメント化されたアドレス」 有効アドレスの項参照 「セグメント番号」 セグメント表番号(プロセスの選択されたセグ
メント表の1つ)からなる特定のセグメント、お
よび選択された表のセグメント表のエントリの識
別 「セグメントの相対アドレス」 アドレスの生成の間、絶対アドレスを得る為に
セグメントベースに加えられる最後の数値 「セグメント表」 プロセスのそのセグメントに対するアドレス指
定能力を確保する為に使用されるセグメントデイ
スクリプタを含む表。あるプロセスのセグメント
表の収集は前記プロセスに対するアドレススペー
スを定義する。 「セグメント表エントリ」 セグメント表における一項目。 各セグメント表エントリはセグメントデイスク
リプタである。 「セグメント表ワード」 あるプロセスのセグメント表を指示するセグメ
ント表ワード配列に対するエントリ。この配列は
プロセス制御ブロツク内の2つのアドレススペー
スワードの1つにより指示される。 「セマフオア」 各プロセス間の通信を制御する為に使用される
データ構造 「セマフオアブロツク」 セマフオアデイスクリプタの宣言のみを含むデ
ータブロツク 「セツト」 1つ以上の記録の収集。このセツトの定義であ
る1つの「オーナー」記録を有し、零、1つ以上
の「メンバー」記録を有する。1セツトは、順序
付けられて以下の意味を与える。即ち、 「最初のメンバー」 「最後のメンバー」 「次のメンバー」 「前のメンバー」 「セツトクラス」 セツトクラスとは以下に対する規則に基くセツ
トのネームを付した収集である。即ち、 セツトの割役 セツト発生の選択 セツトの順序付け 1つのセツトは唯1つのセツトクラスのメンバ
ーである。1つの記録は1セツトクラス内の唯1
つのセツトの1メンバーであり得る。 「セツトデイスクリプタ」 セツト構造に関する初期設定、挿入、検索、お
よび除去において使用される情報構造。1セツト
デイスクリプタは単一のセツトクラスに関する。 「スタツク」 後入れ先出し方式によるデータの受入れ、記憶
および検索の許容を行う機構。スタツクフレーム
と呼ばれる多数の隣接する部分からなる。 「スタツク動作領域」 保管領域、呼出し側の命令カウンタ、パラメー
タスペースおよび局部変数−簡潔にいえば呼出さ
れた手続きの実行に最も役に立つ現在のフレーム
のデータに対するポインタを保持する現在のスタ
ツクフレームの部分 「スタツクベースワード」 あるプロセス制御ブロツクにおいてプロセスと
関連するリング0,1および2に対するスタツク
セグメントのセグメント分割されたアドレスを含
む3ワードのグループ 「スタツクフレーム」 単一の手続き呼出しに対して記憶されたデータ
を保持するスタツクセグメントの隣接部分 「スタツク演算」 スタツクに対するおよびスタツクからの情報の
記憶および検索のプツシユダウンおよびポツプア
ツプ操作。実際には、スタツクに記憶される情報
の参照に用いられるポインタの操作。 「スタツクオーバーフロー(桁あふれ)」 更に情報をスタツクに記憶させようとして利用
可能なスペースが保持できない動作。これはハー
ドウエアにより検出される。 「スタツクレジスタ」 Tレジスタの項参照 「スタツクセグメント」 スタツクを含むプロセスのセグメント 「静止リンキング」 ソース手続きのコンパイルと前記手続きの対象
の形態の実行との間の中間ステツプ。リンキング
は前記手続きに対してなされた外部の参照をリゾ
ルブ(resolve)する 「状態レジスタ」 現在実行中の手続きの状態を規定する8ビツト
のレジスタ 「スワツピング」 セグメントを2次記憶装置に書出す事によりセ
グメントにより占有される主メモリースペースの
解除。2次記憶装置に対する実際の書込みは、セ
グメントが最後に読込まれた為もしセグメントが
変更されていなければ抑制できる。 「同期」 時間的に固定された関係を有する2つ以上のプ
ロセスの同期的実行。 「システムベース」 全ての情報構造に対する基幹部として動作する
主メモリーにおける固定領域 「タスク」 非同期命令の1つの流れのみからなるユーザ固
有の最小単位 「Tレジスタ」 手続きのスタツクの最初のセグメント分割され
たアドレスを含むソフトウエアから見えるハード
ウエアレジスタ 「単位記録制御装置」 カード装置、紙テープ装置、および印刷装置の
如き単一記録装置に関連する周辺装置サブシステ
ムの要素 「ユーザプロセス群」 どのジヨブとも独立に存在するシステムプロセ
ス群とは別の任意のジヨブステツプの内部表示 「空白インデイケータ」 CPの制御を行うプロセスがそれ自体を中断し
た即ちCPU内にはCJPがない事を示すハードウエ
ア構造でALUの補助レジスタ内に位置する。 「仮想メモリー」 物理的メモリーの大きさに無関係にプログラマ
ににコード化を行わせるアドレス指定概念で、仮
想メモリーの管理装置が自動的に主メモリーと2
次記憶装置との間にセグメントの交換を管理す
る。 「V操作」 ある事象の完結のプロセス間の信号発信の為に
意図された機械命令。このV操作は指示されたセ
マフオアについて演算する。 略記方式 ACU :アドレス制御ユニツト ALU :算術/論理ユニツト AS :アドレスシラブル ASW :アドレススペースワード BAR :境界アドレスレジスタ BCD :2進化10進数 BR :ベースレジスタ CCE :チヤンネルコマンドエントリ CCU :チヤンネル制御ユニツト CMRN:呼出側最大リング番号 CCW :チヤンネルコマンドワード CET :現状態エントリタイム CIA :制御記憶装置インターフエイスアダプタ CJP :現在実行中のプロセス CPU :中央処理装置 CU :コンピレーシヨンユニツト CSU :制御記憶ユニツト D :変位 DMU :データマネージメントユニツト DA :機器アダプタ EAR :有効アドレスリング EXW :例外ワード GR :汎用レジスタ GTW :G表ワード IC :命令カウンタ IFU :命令取出しユニツト I/O :入出力 IOC :入出力制御装置 IPQW:内部プロセスキユーワード IR :インデツクスレジスタ ITBB:ベースレジスタへのインデイレクシヨン ITS :セグメントへのインデイレクシヨン J :ジヨブ JCL :ジヨブ制御用言語 JTW :J表ワード LCT :論理チヤンネル表 LIFO:後入れ先出し LSU :局部記憶装置メモリー又はスクラツチ
パツドメモリー MBZ :零でなければならない MOS :金属酸化膜半導体 MAXR:手続きが実行できる最大リング番号。
MAXRはSEG EPのセグメントデイスク
リプタに見出される。 MSC :大容量記憶装置制御装置 MTC :磁気テープ制御装置 NFS :非機能的状態 NPRN:新らしいプロセスリング番号 NJP :現在実行中のプロセスを置換する新らし
いプロセス PCB :プロセス制御ブロツク PCT :物理的チヤンネル表 PCU :周辺装置制御ユニツト PL/1:プログラミング言語/1 PMW :プロセス主ワード Q/PR/RDY:レデイ状態のプロセスのキユー RD :読出しリング RHU :ハードウエア用途の為にリザーブされ
た RPW :実行プロセスワード RSU :ソフトウエア用途の為にリザーブされ
た RTA :レデイ状態時間のアカウンテイング RTO :残り時間切れ SBW :スタツクベースワード SEG :セグメント番号 SKW :スタツクワード SEGEP:手続きデイスクリプタにおいて見出さ
れたエントリ点を含むセグメント SEGPD:手続きデイスクリプタを含むセグメン
ト SR :科学演算用レジスタ SRA :セグメント相対アドレス STE :セグメント表エントリ STN :セグメント表番号 STR :状態レジスタ STW :セグメント表ワード STWA:セグメント表ワード配列 T :Tレジスタ(スタツクレジスタ) URC :ユニツト記録制御装置 WR :書込みリング WTA :書込み時間アカウンテイング
第1図は本発明によるマルチプログラミンシス
テムのブロツクダイヤグラム、第2図は本発明に
用いられる各種のハードウエアの略図、第3図は
第2図に示されるレジスタにおける記憶領域のリ
ザーブされた領域に使用される用語の略記、第4
図は本発明に使用される機械のプロセス制御ブロ
ツクの略図、第5図はプロセス制御ブロツクをア
ドレス指定するシステムの略図、第6図は本発明
を用いるコンピユータシステムのシステムベース
の略図、第7Aおよび7B図は本発明を用いるコ
ンピユータシステムのスタツクセグメントとスタ
ツクフレームの略図、第8図は本発明のコンピユ
ータシステムにおけるGセグメント、特にG−O
セグメントにおけるプロセスのキユーのアドレス
指定の為のシステムの略図、第9図は本発明を用
いたコンピユータシステムのプロセスおよびプロ
セスリンキングのキユーを示すG−Oセグメント
の展開略図、第10A乃至10L図はPCBにおけ
る諸構造部のブロツクダイヤグラム、第11A乃
至11R図はシステムベースにおける諸構造部の
ブロツクダイヤグラム、第12図はシステムベー
スとPCB構造部を用いるユーザセグメントとシス
テムセグメントのアドレス指定計画の略図、第1
3A乃至13C図は本発明の制御ユニツトの略
図、第14A乃至14I図は本発明を用いるコン
ピユータシステムのフアームウエアにおけるデイ
スパツチヤユニツトのフローチヤート、第15A
乃至15H図はセツト命令に使用される記録とそ
れらのポインタの略図、第16A乃至16C図は
ページを記述するデータベースページフオーマツ
トとデイスクリプタの略図、第17図は主メモリ
ーにデータベースのページを見出す為に用いられ
たフアームウエアのフローチヤート、第18Aお
よび18B図はデータベース命令により使用され
るセツトおよび記録を記述するデイスクリプタの
略図、第19A図乃至19F図はデータベース命
令により使用される命令フオーマツトの略図、お
よび第20A乃至20E図はフアームウエア/ハ
ードウエアにおけるデータベース直接発見命令の
フローチヤートである。 101……処理装置サブシステム、102……
記憶装置サブシステム、103……周辺装置サブ
システム、104……中央処理装置(CPU)、1
05……入出力制御ユニツト(IOC)、106…
…周辺装置制御ユニツト、107……機器アダプ
タ、108……周辺装置入出力機器、109……
主メモリーシンクロナイザ、110……バツフア
記憶装置、111……計算ユニツト、112……
エミユレーシヨン設備(エミレータ)、130…
…制御記憶装置、201……汎用レジスタ
(GR)、202〜203……スタツクレジスタ、
204〜205……フオーマツト、206……境
界アドレスレジスタ(BAR)、207……状態レ
ジスタ(STR)、400……プロセス制御ブロツ
ク(PCB)、501……ベースアドレスレジスタ
(BAR)、502……システムベース、503…
…J表(エントリ)、505……J表ポインタ、
701……スタツクフレーム、702……Tレジ
スタ、703……保管領域、704……通信領
域、801……G表、802……GOセグメン
ト、803,805……プロセスリング(キユ
ー)、901……ポインタ、902……ヘツド、
903〜904……セマフオア、905……キユ
ー、1001……能力バイト、1002……優先
順位バイト、1003……状態バイト、1004
……DEXT番号、1005……アカウントモード
ビツト、1006……科学モードビツト、100
7……コードモードビツト、1008……最初の
4ビツト、1009……次の4ビツト、1010
……動作フイールドビツト(A)、1011……
中断フイールドビツト(S)、1012……サブ
ステートフイールド(SS)、1013……中間演
算フイールド(MOI)、1014……拡張デコー
ルモードビツト、1016……状態バイト、10
17,1019……MBZフイールド、1018
……マルチプロセサバイト、1019……MBZ
フイールド、1026……STWSZフイールド、
1027……STWAフイールド、1028……
MBZフイールド、1030……ATGフイール
ド、1031……RINGフイールド、1032…
…セグメント相対アドレス(SRA)、1033…
…TAGフイールド、1034……RINGフイール
ド、1036……TAGフイールド、1037…
…RINGフイールド、1102……J表ポイン
タ、1105……インデイケータ、1107……
プロセス制御ブロツクポインタ、1109……G
表ポインタ、1110……存在インデイケータ、
1113……フラツグフイールド(U)、111
4……書込まれたフラグフイールド(W)、11
15……ゲーテイングインデイケータ、1116
……ベースフイールド、1117……RSUフイ
ールド、1118……MBZフイールド、111
9……SIZEフイールド、1120……MBZフイ
ールド、1123……MBZフイールド、112
5,1128,1131……MFSフイールド、
1126〜1127……再トライカウントフイー
ルド、1129……PRIフイールド、1130…
…ABフイールド、1132……ARNフイール
ド、1133……J.Pフイールド、1136……
連番フイールド、1139……上限、1140,
1141……チヤンネル番号(CN)、1142〜
1144……フイールド、1148……MBZフ
イールド、1149……Gフイールド、1201
……ベースレジスタ、1202……境界アドレス
レジスタ、1204……J表、1205……P
表、1206……プロセス制御ブロツク
(PCB)、1211……ユーザセグメント、121
2……Gセグメント表、1213……キユー、1
214……セグメント、1215……システムベ
ース、1216……J表エントリ、1301……
制御記憶ユニツト(CSU)、1302……制御記
憶インターフエイスアダプタ(CIA)、1303
……制御記憶ローダ(CSL)、1304……制御
ロードユニツト(CLU)、1306……中央処理
装置、1307……汎用レジスタ、1308……
ベースレジスタ、1309……科学データレジス
タ、1310……Tレジスタ、1311……状態
レジスタ、1312……命令カウンタ、1313
……ハードウエア制御マスクレジスタ、1315
……スクラツチパツドメモリー、1317……算
術論理ユニツト(ALU)、1318……命令取出
しユニツト(IFU)、1319……アドレス制御
ユニツト(ACU)、1320……システムクロツ
ク、1321……データマネージメントユニツト
(DMU)、1325……制御記憶ワード、132
6……遂次タイプフイールド、1327……ブラ
ンチング/マイクロOPフイールド、1328…
…内容生成指示、1329……データからバスへ
のフイールド、1330……マイクロOPフイー
ルド、1331……チエツキングフイールド
(P)、1333……制御記憶配列、1335……
ブロツク、1337……KSレジスタ、1338
……インクリメンタ、1339……割込みリター
ンレジスタ(KA)、1340……KUレジスタ、
1341……コマンド、1343……局部レジス
タ、1344……QMBバス、1346……リタ
ーンレジスタ、1347……KTリターンレジス
タ、1349……KVリターンランチレジスタ、
1351……デコードロジツク、1352……比
較ロジツク、1355……保全パネル、1357
……読出しラツチ、1359……マイクロOPデ
コーダ、1360〜1365……ANDゲート、
1501,1510……タイプのフイールド、1
502……記録フイールド、1503,1511
……長さのフイールド、1504,1512……
記録体、1505,1513……ポインタシーケ
ンスフイールド、1520……次のポインタフイ
ールド、1521……前のポインタフイールド、
1524……オーナポインタフイールド、153
2……最初のポインタフイールド、1533……
最後のポインタフイールド、1601……ページ
ヘツダ、1602……行オフセツト配列、160
3……オフセツト、1604……D−スイツチ、
1610,1612……記録、1622……領域
番号、1623……桁送りカウント、1624…
…頁番号、1625……セグメント番号、162
6……最終頁インデイケータ、1630……
MBZフイールド、1632……変位、1802
……Pフイールド、1803……セツトデイスク
リプタ、1804……他のポインタフイールド、
1805……セツト編集モードフイールド
(K)、1806……変位フイールド、1820…
…Fフイールド、1821……記録タイプフイー
ルド、1822……記録長さフイールド、191
0,1920,1930……演算コード、191
1,1923,1933,1935……MBZフ
イールド、1912,1934……ベースレジス
タ番号(補数コード)、1921,1931,1
932……補数コード、1924……論理削除フ
イールド、1925……ポインタモードフイール
ド、1926……BRフイールド、1941,1
951……タイプフイールド、1942,195
2……ベースレジスタフイールド、1943,1
953……アドレスシラブル、1954……
MBZフイールド、1955……ベースレジスタ
番号、1957……MBZフイールド、1960
……演算コード、1961……基本フイールド、
1962……タイプフイールド、1963……P
フイールド、1965……最初−次−前ポインタ
フイールド、1966……変位フイールド、19
67……BRフイールド。
テムのブロツクダイヤグラム、第2図は本発明に
用いられる各種のハードウエアの略図、第3図は
第2図に示されるレジスタにおける記憶領域のリ
ザーブされた領域に使用される用語の略記、第4
図は本発明に使用される機械のプロセス制御ブロ
ツクの略図、第5図はプロセス制御ブロツクをア
ドレス指定するシステムの略図、第6図は本発明
を用いるコンピユータシステムのシステムベース
の略図、第7Aおよび7B図は本発明を用いるコ
ンピユータシステムのスタツクセグメントとスタ
ツクフレームの略図、第8図は本発明のコンピユ
ータシステムにおけるGセグメント、特にG−O
セグメントにおけるプロセスのキユーのアドレス
指定の為のシステムの略図、第9図は本発明を用
いたコンピユータシステムのプロセスおよびプロ
セスリンキングのキユーを示すG−Oセグメント
の展開略図、第10A乃至10L図はPCBにおけ
る諸構造部のブロツクダイヤグラム、第11A乃
至11R図はシステムベースにおける諸構造部の
ブロツクダイヤグラム、第12図はシステムベー
スとPCB構造部を用いるユーザセグメントとシス
テムセグメントのアドレス指定計画の略図、第1
3A乃至13C図は本発明の制御ユニツトの略
図、第14A乃至14I図は本発明を用いるコン
ピユータシステムのフアームウエアにおけるデイ
スパツチヤユニツトのフローチヤート、第15A
乃至15H図はセツト命令に使用される記録とそ
れらのポインタの略図、第16A乃至16C図は
ページを記述するデータベースページフオーマツ
トとデイスクリプタの略図、第17図は主メモリ
ーにデータベースのページを見出す為に用いられ
たフアームウエアのフローチヤート、第18Aお
よび18B図はデータベース命令により使用され
るセツトおよび記録を記述するデイスクリプタの
略図、第19A図乃至19F図はデータベース命
令により使用される命令フオーマツトの略図、お
よび第20A乃至20E図はフアームウエア/ハ
ードウエアにおけるデータベース直接発見命令の
フローチヤートである。 101……処理装置サブシステム、102……
記憶装置サブシステム、103……周辺装置サブ
システム、104……中央処理装置(CPU)、1
05……入出力制御ユニツト(IOC)、106…
…周辺装置制御ユニツト、107……機器アダプ
タ、108……周辺装置入出力機器、109……
主メモリーシンクロナイザ、110……バツフア
記憶装置、111……計算ユニツト、112……
エミユレーシヨン設備(エミレータ)、130…
…制御記憶装置、201……汎用レジスタ
(GR)、202〜203……スタツクレジスタ、
204〜205……フオーマツト、206……境
界アドレスレジスタ(BAR)、207……状態レ
ジスタ(STR)、400……プロセス制御ブロツ
ク(PCB)、501……ベースアドレスレジスタ
(BAR)、502……システムベース、503…
…J表(エントリ)、505……J表ポインタ、
701……スタツクフレーム、702……Tレジ
スタ、703……保管領域、704……通信領
域、801……G表、802……GOセグメン
ト、803,805……プロセスリング(キユ
ー)、901……ポインタ、902……ヘツド、
903〜904……セマフオア、905……キユ
ー、1001……能力バイト、1002……優先
順位バイト、1003……状態バイト、1004
……DEXT番号、1005……アカウントモード
ビツト、1006……科学モードビツト、100
7……コードモードビツト、1008……最初の
4ビツト、1009……次の4ビツト、1010
……動作フイールドビツト(A)、1011……
中断フイールドビツト(S)、1012……サブ
ステートフイールド(SS)、1013……中間演
算フイールド(MOI)、1014……拡張デコー
ルモードビツト、1016……状態バイト、10
17,1019……MBZフイールド、1018
……マルチプロセサバイト、1019……MBZ
フイールド、1026……STWSZフイールド、
1027……STWAフイールド、1028……
MBZフイールド、1030……ATGフイール
ド、1031……RINGフイールド、1032…
…セグメント相対アドレス(SRA)、1033…
…TAGフイールド、1034……RINGフイール
ド、1036……TAGフイールド、1037…
…RINGフイールド、1102……J表ポイン
タ、1105……インデイケータ、1107……
プロセス制御ブロツクポインタ、1109……G
表ポインタ、1110……存在インデイケータ、
1113……フラツグフイールド(U)、111
4……書込まれたフラグフイールド(W)、11
15……ゲーテイングインデイケータ、1116
……ベースフイールド、1117……RSUフイ
ールド、1118……MBZフイールド、111
9……SIZEフイールド、1120……MBZフイ
ールド、1123……MBZフイールド、112
5,1128,1131……MFSフイールド、
1126〜1127……再トライカウントフイー
ルド、1129……PRIフイールド、1130…
…ABフイールド、1132……ARNフイール
ド、1133……J.Pフイールド、1136……
連番フイールド、1139……上限、1140,
1141……チヤンネル番号(CN)、1142〜
1144……フイールド、1148……MBZフ
イールド、1149……Gフイールド、1201
……ベースレジスタ、1202……境界アドレス
レジスタ、1204……J表、1205……P
表、1206……プロセス制御ブロツク
(PCB)、1211……ユーザセグメント、121
2……Gセグメント表、1213……キユー、1
214……セグメント、1215……システムベ
ース、1216……J表エントリ、1301……
制御記憶ユニツト(CSU)、1302……制御記
憶インターフエイスアダプタ(CIA)、1303
……制御記憶ローダ(CSL)、1304……制御
ロードユニツト(CLU)、1306……中央処理
装置、1307……汎用レジスタ、1308……
ベースレジスタ、1309……科学データレジス
タ、1310……Tレジスタ、1311……状態
レジスタ、1312……命令カウンタ、1313
……ハードウエア制御マスクレジスタ、1315
……スクラツチパツドメモリー、1317……算
術論理ユニツト(ALU)、1318……命令取出
しユニツト(IFU)、1319……アドレス制御
ユニツト(ACU)、1320……システムクロツ
ク、1321……データマネージメントユニツト
(DMU)、1325……制御記憶ワード、132
6……遂次タイプフイールド、1327……ブラ
ンチング/マイクロOPフイールド、1328…
…内容生成指示、1329……データからバスへ
のフイールド、1330……マイクロOPフイー
ルド、1331……チエツキングフイールド
(P)、1333……制御記憶配列、1335……
ブロツク、1337……KSレジスタ、1338
……インクリメンタ、1339……割込みリター
ンレジスタ(KA)、1340……KUレジスタ、
1341……コマンド、1343……局部レジス
タ、1344……QMBバス、1346……リタ
ーンレジスタ、1347……KTリターンレジス
タ、1349……KVリターンランチレジスタ、
1351……デコードロジツク、1352……比
較ロジツク、1355……保全パネル、1357
……読出しラツチ、1359……マイクロOPデ
コーダ、1360〜1365……ANDゲート、
1501,1510……タイプのフイールド、1
502……記録フイールド、1503,1511
……長さのフイールド、1504,1512……
記録体、1505,1513……ポインタシーケ
ンスフイールド、1520……次のポインタフイ
ールド、1521……前のポインタフイールド、
1524……オーナポインタフイールド、153
2……最初のポインタフイールド、1533……
最後のポインタフイールド、1601……ページ
ヘツダ、1602……行オフセツト配列、160
3……オフセツト、1604……D−スイツチ、
1610,1612……記録、1622……領域
番号、1623……桁送りカウント、1624…
…頁番号、1625……セグメント番号、162
6……最終頁インデイケータ、1630……
MBZフイールド、1632……変位、1802
……Pフイールド、1803……セツトデイスク
リプタ、1804……他のポインタフイールド、
1805……セツト編集モードフイールド
(K)、1806……変位フイールド、1820…
…Fフイールド、1821……記録タイプフイー
ルド、1822……記録長さフイールド、191
0,1920,1930……演算コード、191
1,1923,1933,1935……MBZフ
イールド、1912,1934……ベースレジス
タ番号(補数コード)、1921,1931,1
932……補数コード、1924……論理削除フ
イールド、1925……ポインタモードフイール
ド、1926……BRフイールド、1941,1
951……タイプフイールド、1942,195
2……ベースレジスタフイールド、1943,1
953……アドレスシラブル、1954……
MBZフイールド、1955……ベースレジスタ
番号、1957……MBZフイールド、1960
……演算コード、1961……基本フイールド、
1962……タイプフイールド、1963……P
フイールド、1965……最初−次−前ポインタ
フイールド、1966……変位フイールド、19
67……BRフイールド。
Claims (1)
- 【特許請求の範囲】 1 アドレス指定可能なスペースの複数個のセグ
メントからなるメモリーを有し、 各セグメントは1つのセグメント番号によつて
識別され、1つ以上の記録のセツトを記憶するも
のであり、 各セツトは1つのオーナー記録と1つ以上のメ
ンバー記録とを有し、 各記録はそのセグメント番号と、該セグメント
内でその記録を予め定められた記憶位置から相対
的に位置決めするためのオフセツトアドレス情報
とによつて前記メモリー内で位置決めされ、 前記複数のセツトの各々の中の各記録は、その
セツト内の他の複数の記録の内の所定のもの即ち
ポイント記録の夫々の識別を与えるための1つ以
上のデータベースポインターを記憶しており、 各ポインターは、それによつて前記セツトの予
め定められた記録に関して相対的に識別される前
記ポイント記録の記憶位置を表すような、 内部にプログラムされたデータ処理装置におい
て、 (a) データベース記録を直接取り出す命令のアド
レスシラブルにより前記複数のセツトの内の1
つの中の、1つの記録から前記データベースポ
インターの内の1つをアクセスし、該ポインタ
ーを第1の一時的レジスタへ転送するための第
1の手段と、 (b) 前記セツトの内の所用のものを保持する前記
メモリーの1区分の実際の構造を定義し、かつ
該1区分が存在するセグメントの番号を含む、
デイスクリプタを記憶位置から得るために、前
記第1の一時的レジスタ内の前記データベース
ポインターの内容のフイールドに応答する第2
の手段と、 (c) 前記セツト中の表から、前記セツト内の予め
定めた記憶位置に関する前記ポイント記録の各
セツト内相対位置即ちオフセツトを得るため
に、前記第1の一時的レジスタ内の前記データ
ベースポインタの内容のもう1つのフイールド
に応答する第3の手段と、 (d) 前記ポイント記録を保持するメモリーの記憶
位置の表示を得るために、前記セグメント番号
と前記ポイント記録の相対手段即ちオフセツト
とを第2の一時的レジスタへロードするための
第4の手段と、 から成る、前記ポイント記録のポインターの識別
情報をそのメモリー中の記憶位置の表示に自動的
に変換するための装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US53539274A | 1974-12-23 | 1974-12-23 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5186940A JPS5186940A (ja) | 1976-07-30 |
| JPS6113260B2 true JPS6113260B2 (ja) | 1986-04-12 |
Family
ID=24133984
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP50149427A Expired JPS6113260B2 (ja) | 1974-12-23 | 1975-12-15 |
Country Status (5)
| Country | Link |
|---|---|
| JP (1) | JPS6113260B2 (ja) |
| CA (1) | CA1216074A (ja) |
| DE (1) | DE2556953A1 (ja) |
| FR (1) | FR2296222A1 (ja) |
| GB (1) | GB1534290A (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6311207Y2 (ja) * | 1980-10-27 | 1988-04-01 | ||
| GB2218833A (en) * | 1988-05-16 | 1989-11-22 | Ardent Computer Corp | File system |
-
1975
- 1975-11-10 CA CA000239298A patent/CA1216074A/en not_active Expired
- 1975-12-15 JP JP50149427A patent/JPS6113260B2/ja not_active Expired
- 1975-12-18 DE DE19752556953 patent/DE2556953A1/de not_active Ceased
- 1975-12-22 FR FR7539381A patent/FR2296222A1/fr active Granted
- 1975-12-23 GB GB52581/75A patent/GB1534290A/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| CA1216074A (en) | 1986-12-30 |
| JPS5186940A (ja) | 1976-07-30 |
| FR2296222A1 (fr) | 1976-07-23 |
| DE2556953A1 (de) | 1976-07-01 |
| GB1534290A (en) | 1978-11-29 |
| FR2296222B1 (ja) | 1982-02-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4130867A (en) | Database instruction apparatus for determining a database record type | |
| US4044334A (en) | Database instruction unload | |
| US4369494A (en) | Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system | |
| US4077058A (en) | Method and apparatus for executing an extended decor instruction | |
| US4084228A (en) | Process management structures and hardware/firmware control | |
| US4297743A (en) | Call and stack mechanism for procedures executing in different rings | |
| US4395757A (en) | Process synchronization utilizing semaphores | |
| US4394725A (en) | Apparatus and method for transferring information units between processes in a multiprocessing system | |
| US4025901A (en) | Database instruction find owner | |
| US4374409A (en) | Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system | |
| US4316245A (en) | Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization | |
| US4084224A (en) | System of controlling procedure execution using process control blocks | |
| US4432051A (en) | Process execution time accounting system | |
| US4318182A (en) | Deadlock detection and prevention mechanism for a computer system | |
| US4024508A (en) | Database instruction find serial | |
| US4447874A (en) | Apparatus and method for communication of information between processes in an information system | |
| US4042912A (en) | Database set condition test instruction | |
| EP0106670B1 (en) | Cpu with multiple execution units | |
| US3599176A (en) | Microprogrammed data processing system utilizing improved storage addressing means | |
| US4205370A (en) | Trace method and apparatus for use in a data processing system | |
| US5218712A (en) | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption | |
| JPS5939785B2 (ja) | デ−タ処理装置 | |
| JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
| CA1326566C (en) | Computer with intelligent memory system | |
| US3510847A (en) | Address manipulation circuitry for a digital computer |