JPS6030974B2 - プロシージヤ呼出し装置 - Google Patents

プロシージヤ呼出し装置

Info

Publication number
JPS6030974B2
JPS6030974B2 JP49137673A JP13767374A JPS6030974B2 JP S6030974 B2 JPS6030974 B2 JP S6030974B2 JP 49137673 A JP49137673 A JP 49137673A JP 13767374 A JP13767374 A JP 13767374A JP S6030974 B2 JPS6030974 B2 JP S6030974B2
Authority
JP
Japan
Prior art keywords
segment
register
procedure
word
address
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
Application number
JP49137673A
Other languages
English (en)
Other versions
JPS50117335A (ja
Inventor
エス フランクリン ベンジヤミン
ヨゼフ ブラドレイ ジヨン
ロワ ボゲ−ル ジヤン
マルク レジ マスア−ル クロ−ド
マルク ミツシエル アペル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ANTERUNASHONARU PUURU RANFUORUMATEIKU SEE I I HANIIUERUBURU CO
Original Assignee
ANTERUNASHONARU PUURU RANFUORUMATEIKU SEE I I HANIIUERUBURU CO
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ANTERUNASHONARU PUURU RANFUORUMATEIKU SEE I I HANIIUERUBURU CO filed Critical ANTERUNASHONARU PUURU RANFUORUMATEIKU SEE I I HANIIUERUBURU CO
Publication of JPS50117335A publication Critical patent/JPS50117335A/ja
Publication of JPS6030974B2 publication Critical patent/JPS6030974B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Description

【発明の詳細な説明】
発明の分野 この発明は概してコンピュータシステムに関し、特に多
量プログラミング、多重処理においてコンピュータ処理
を制御するシステムにおけるプロシージャ呼出し装置に
関するものである。 従来技術の発明電子計算機すなわちコンピュータは、主
として真空管を特徴とする第1世代ハードウェアからト
ランジスタを特徴とする第2世代ハードウェアを経て、
主に集積回路を特徴とする第3世代ハードウェアに成長
した。 このようにハードウェアの世代が異なることに随伴して
、ソフトウェアにもいろいろな世代があり、第1世代の
ソフトウェアは主として機械語、アセンブラおよびサブ
ルーチンを特徴とし、そして第2世代のソフトウェアは
高レベルの言語、モニタおよびマクロアセンブラを特徴
としていた。第3世代のソフトウェアは、演算システム
、オンライン実時間システム、多重プログラミングシス
テムおよびデータ管理システムを特徴としている。第1
世代ソフトウェアと縦合せての第1の世代ハードウェア
ならびにまた第2世代ソフトウェアと組合せての第2世
代ハードウェアは、主として、ジョブが主に直列的な仕
方で実行されるバッチ処理を行うように構成されていた
。 さらに、第3世代のハードウェア/ソフトウェアシステ
ムもバッチ処理に向けられているが、しかしながら、多
重プログラミングの出現で、幾つかのジョブを直列では
なく並列に実行することができ、それにより入力情報の
発生に伴い該入力を処理するように受け入れることがで
きるようになった。第4世代システムは、次のような要
件を満すことができるものとされている。 ‘1} 「この第4世代システムは、通信および制御シ
ステムとして分類されるものであり、広汎に多様化され
たプロセッサの用途を享受することができる。 ハードウエアならびにソフトウエアには、双方共に、シ
ステム管理およびシステム内通信もしくは交信インタフ
ェースが要求される。」■ 「第4世代システムは、主
として、従来のマシンとは異なりプログラムではなくヂ
ー外こよって制御される。 即ち、システム制御は主として記憶されている命令では
なく入力によって設定される。この特徴をさらに発展し
得るか否かは、実時間での情報の処理に依存する。フィ
ードバックが枢要な問題となっている。システム間およ
びシステム内インタフェース間の適当な相互作用も非常
に重要である。データ(通信ビット)とプログラム(情
報ビット)との間の相関関係は注意深く定義しなければ
ならない。」「多重のシフトレジスタ、低コストの大規
模謙出し専用メモリおよびバッチ製作された機能半導体
デバイスが、新しいコンピュータ組織を容易にしている
。論理要素は種々なタスクを行う。例えば、ステアリン
グフリツプフロツプは特定の動作もしくは演算を識別す
る。このフリップフロップは、各論理パッケージのリー
ド線のサブセット(下位集合)にビットを直列または直
一並列に挿入することにより、またクロツクおよび制御
信号の適当な組合せによってセットされる。データは、
システム内の他の箇所に普遍的(または迅速)にアクセ
スすることができる記憶要素に送られる。ステアリング
フリップフロップは、入力を、制御データ、演算情報或
いは彼処理データとして識別できるもので、自動再編成
およびいろいろな制御メモリ構造が可能である。したが
って、主メモリまたはスクラツチパツドメモ1」はコン
ピュータで制御メモリの機能を過渡的に引受ける。ほぼ
瞬時的べ−スで、コンピュータ組織の再編成が可能であ
る。並列処理は容易に実行される。」
【3} 「ハード
ウェアは通信および制御プロシージヤを支配する。 したがってシステム制御プログラムの使用は相当に低減
されるかまたは除去される。この特徴は、前節に述べた
特徴と密接に関係がある。通信回路網を用いることによ
る局部化(ローカル化)システム設計でソフトウェアへ
の依存が大きく減少されシステム制御が容易となる。シ
ステム間およびシステム内データフローも重要な考察対
象である。このような技術を適用することにより、シス
テムのソフトウェア制御に対する需要が最小限に減少さ
れる。 」‘4)「殆んどの処理は実時間で実行される。 入力に対する演算は、所要の応答時間内に出力を発生す
る速度で行われる。ここで言う所の実時間とは、プログ
ラムのインターリーブや時分割マンーマシン相互作用を
意味するものではない。寧ろ、実時間の意味は、データ
が利用可能になるとシステムが該データを受け付けて所
望の応答時間により課せられる制約内でこのデータを処
理することを言う。」【5ー 「システムは容易に拡張
可能である。 ハードウェアおよびソフトウェアは設計上機能的にモジ
ュール化される。システムの設計変更無しで計算能力を
変更できる。但しこれは、可変命令セット(信号)を意
味するものではない。しかしながら、ソフトウェアの入
れ子関係にあるサブセットを補完するために入れ子関係
にあるハードウエアのサブセツトを利用することができ
る。実際、ソフトウェアのこの入れ子構成もしくはネス
チングは、現在実際に行われている。使用者もしくはユ
ーザのソフトウェアには通常、アクションマクロおよび
システムマクロが含まれている。システムマクロは通常
、特定の端末デバイスに対し通信機能を行う入れ子構成
のマクロを含んでいる。このようなマクロは取り払った
り特殊化することができる。即ち、システムのモジユー
ラ化である。ハードウエア(例えば端末)の設計に、族
の概念を適用する試みがなされている」(以上mないし
(5i節で述べた内容は、米国ニュージヤ−シー州、E
mgleWoodCIifis所在のPrentice
−Hall Inc社発行のFred Grue肋er
ger編集による「Fou九hC治neration
Compute岱:User Requirement
sandTransition」の16ないし1刀割こ
掲載されているDr.C.J.WaiterおよびAM
ine BohI Waiterの論文「The Si
gnificance of the NewCやne
rati。n Technical
KeynotePresentation」から発行
者の許しを受けてここに引用したものである)。第1世
代ハードウェアーソフトゥェアコンピュータシステムに
おける処理は比較的直裁的なものであって、ジョブ或い
はプログラムは基本的なものであって、ジョブ或し、は
フ。 。グラムは基本的な処理単位と見徹されていた。個々の
使用者がジョブ或いはトランザクッションを開始すると
、プログラムは、一般に、殆んど或いは全く中断もしく
は割込みを伴うことなく、該ジョブまたはトランザクッ
ションが完了するまで実行される。例えば、FORTR
ANのような高レベル語プログラムの編集や実行のよう
な多くの直裁的なジョブは単一のプロセスとして実行す
ることができ且つ実行されていた。しかしながら、さら
に難しいジョブでは、マルチタスク演算が必要とされ、
このようなジョブの実行中に他のプロセスが創成される
。(ここでプロセスとは、或る活動の実行を意味する概
念であって、活動の記述であるところの1つまたは2つ
以上のプロセスによって用いることができるプログラム
の概念と混同しないように注意されたい。)またプロセ
スとプログラムを実行するプロセッサとは別の意味であ
る。定義集参照)。基本的な処理の単位であるプロセス
の概念は第3世代のコンピュータの多重プログラミング
と多重処理の環境での必要性を満たすように発展して来
た。 多くのユーザーが同時にサービスを欲している様な環境
では多重処理がコンピュータシステム内でリソースを目
当に競い合っていると理解するのは当然のことである。
各プロセスは一つのフ。ログラム(即ち命令の順番付け
られた収集及び命令に関連する他のデータ‐)から成り
、プログラムはコンピュータによって実行され、かつユ
ーザーのジョブまたはそのジョブのいくつかのフエ−ズ
を実行する為にデータ一に作用する。多くのその様なプ
ロセスがシステムに同時にアテンションを求めていると
ころでは、プ。セスとのおよびプロセス間での通信のタ
スク、制御のタスク、およびこのようなプロセスヘリソ
ースを割当てるタスクは特に第4世代のシステム要求の
見地から見て極度に複雑になる。バローズのB−650
0およびB一7500コンピュータは、バローズB−6
500/B−7500スタツクメカニズム(Proc.
AFIPS Spring Joint Comp.C
onf.1968pps.245一251、トンブソン
、ワシントンD.C.)と題してE.A.Hauchと
B.A.Dentにより論議されており、また南オース
トラリア、アデレード、196g王、第4回オーストラ
リア、コンピュータ会議のバローズB−6500プロシ
ーディングスに関するプロセス・ハンドリングと題され
てジェイ、ジー、クレアリーにより論議されているが、
このコンピュータはスタツク機構を利用してプロセス制
御方法を供給してくれる。 基本的には各プロセスは記憶をスタックに割当てそのス
タックに、プログラム・プロシージヤ、データ配列そし
て現行のプロセス状態を参照してローカル変数すなわち
局所変数をたくわえる。・・・・・・・・・スタックは
後入れ先出しの記憶領域として動作する。・・・・・・
・・・実際のプロセスは実際のスタックにて代表される
(J.○.CIeaひaのveppe:231〜232
)。従ってスタックは実行する動的なプログラムの履歴
を記憶する設備をもつ。pps233−234には、多
重プログラミングおよび並列プロセシングの制御の為の
ビークル(vehicle)を提供するために、“サグ
ロ型のスタツクツリースまたはカクタススタック”が如
何に簡単に創造されるかを一層明確に説明している。 然し記事に発表されたスタック機構技術は第4世代コン
ピュータシステムには全お満足出来るものではない。何
故ならば該技術は、各プロセスに与えられたいくつかの
特権に従ったかかる第4世代コンピュータの他の無数の
プロセスに対する情報へのアクセスを制限することによ
る情報の充分な保護をしていないからである。1969
年10月Princeton UniveBityで催
された船sociatjonゆrComputingM
achineひ後援の講演集「Proceedings
oftheSecond SのmposlwmonOp
eratingSysにmsPrinciples」に
公表されているAJ.茂rnstejn、G.D.De
tlefeenおよびR.日.Kerr の 論 文
「 Process Control andComu
nication」には「汎用演算システム内に実現さ
れているプロセスの構造およびプロセス間交信機能」が
記述されている。 このシステムによれば、1つのプロセスは論理セグメン
トと称される4つまでの部分から構成することができる
。 プロセスが格納されている時には、これらセグメントは
物理的に分離した場所に存在することができる。これら
セグメントの再配置および保護は4つのレジスタによっ
て達成される。一般に、プロセスは、プロセスが相互に
交信するのに用いる機構を利用して、プロセスにより発
生されるプリミチブ(即ち擬命令)を実現するオペレー
ティング・システムによって制御される。 この交信では、主に、プロセスが1つのファイルを共用
するのと同じ仕方でイベントが共有される。各プロセス
は、現在開かれている各ファイルに対する独特のヱント
リを含む山T(活動項目テーブル)を指し示すKIT(
既知項目テーブル)ェントリを有する。この構成により
1つのプロセスは、イベントが生じた時に、(「通知」
プリミチブを発生することにより)通知を要求すること
ができる。その結果、オペレーティングシステムは、通
知を待機している要求プロセスを識別するェントリィを
イベントと関連のイベント待ち行列(イベント・キュー
)に創成する。この時点で、要求を出しているプロセス
は実行を続けても良いしあるいはまた「阻止」プリミチ
ブを発生して休止もしくは中断することもできる。何ん
らかの他のプロセスが「原因」プリミチブを発生した時
にイベントは生起したと称され、そしてこのイベントは
カタログに納められて同じプリミチブを用いている直援
構造で処理される。情報は1つのプロセスから他のプロ
セスまたは所与のタスクを実行するために協働するプロ
セスに転送することができる。プロセスはオペレーティ
ングシステム内の他のプリミチブにより創成されたりあ
るいは破壊される。このようなプロセス交信および制御
方法では、実行中のプログラムの規則的な動的歴史は得
られず、プロセスおよびイベント管理のソフトウェアで
の多重化と言う概念が導入されている。 またこの方法では、特権レベルで、プロセス相互間の保
護が行なわれない。またプロセス相互間におけるメッセ
ージの伝達も効率的な仕方では行なわれない。さらにま
た、アドレツシングプロセスならびに再配置は、第4世
代システムにとって不充分であると考えられる。第4世
代システムにとって必要なのは、プロセスを効率的にア
ドレスし再配置して、プロセスの状態を識別する情報パ
ターンを発生し、さらに、上記の状態を制御もしくは管
理し、特権レベルで他のプロセスならびに当該プロセス
自体からプロセスを保護し、しかもプロセスを効率良く
ディスパッチし且つ他のプロセスと同期させ、さらに個
別的な仕方でプログラムを書込んだ使用者が1つのプロ
グラムモジュールから他のプログラムモジュールに移行
するのを可能にするファームウエア−ハードウエアシス
テムである。所要の機能を効率的に遂行するコンピュー
タシステムの設計における上に述べたような要件および
他の要件ならびにそれらに関連する問題は、このような
機能のうちの幾つかを達成するための示唆と共に、「C
ommunicationoftheACM」11巻5
号(196群王5月)に掲載のButerW.Lamp
sonの論文「A Scheduling Phil
osophy forMultiprocessing
Sysにms」に論述されている。 しかしながら、この論文で論述されている示唆では問題
の解決には到らないと考えられる。発明の目的 この発明の基本的な目的は多量プログラミング、多重プ
ロセシングの環境においてフ。 。シージャ呼出し及びスタツク機構の改善された装置を
提供することにある。もう一つの目的は操作上のオーバ
ーヘッドを削減するプロシージャ呼出しとスタック動作
の為の装置を提供することである。 この発明のさらに他の目的には、プロシージヤを、それ
が呼出されたプロセス内の点に正しく戻すことを可能に
するために、コールもしくは呼出しの歴史を維持する改
良されたシステムおよび方法を提供することにある。こ
の発明のさらに他の目的は、改良されたスタック・フレ
ーム・ハードウェア構造を提供することにある。 この発明のさらに他の目的は、スタツク・フレームを創
成したり削除するためのハードウェア/ファームウェア
構造を提供することにある。 この発明のこれらおよび他の目的は、この発明の好まし
い実施例の説明を図面と関連して読む時、明らかになる
であろう。発明の要約 プロシージヤ呼出し‘ま、一つのプログラムモジュール
から次のモジュールへと進むようなモジュ−ル方式でプ
ログラムを書いたユーザーもしくは使用者によって使用
される。 プログラムモジュールはオペレーティングシステムのサ
ービスを利用するためにユーザープログラムにより使用
され、オペレーティングシステムそれ自身によって応答
するモジュール構造を達成する様に使用される。プロシ
ージャ呼出し‘まハードウェアの命令、及びハードウェ
アが認知可能なスタックと呼ばれる機構により行われる
。プロシージャ呼出し機構に対し主に要求されるものは
{a} コーラ一(呼出し者)がコーリー(被呼出し者
)を呼ぶ権利があるかチェックすること(リング保護機
構がこの権利のチェックを可能とした場合のみ)。 ‘b} コーラ一の状態を退避すること。 これは退避レジスタ、命令カウンター(リターン用)、
および他の状態ビットを含む。{c} パラメーターの
通過を可能とする。 【dー 呼び出されたプロシージャの為の有効なヱント
リイポィントを決定すること。‘e} アドレス指定機
構における何らかの必要な調整をすること。 ‘f} 新しいプロシージャを入れること。 呼び出されたプロシージャが終了し、出される時、呼出
し‘こよってなされたことは元に戻されなければならず
、それ故呼出しプロシージャの状態が呼出し以前の状態
に戻りそのプロシージャ内の次の命令が実行される。ス
タツクはこれを行うのを可能とするように使用される機
構である。 それはハードウェアによって特別な方法で使用される一
つのセグメントである。それは、スタツクフレームと呼
ばれる一群の連続する部分からなり、そのスタックフレ
ームの一つだけが普通は一時にアクセスされ、かつ後入
り先出しの態様でアクセスされる。スタックフレームは
プロシージャの呼出しの結果として創成され、情報を記
憶するのに使用される。続いてのプロシージャ呼出し‘
ま新しいスタックフレームを創成し、そこからの出口は
前のフレームを取出す。(popsup)。この様にし
て呼び出しの履歴は復帰を可能とするために正しく維持
される。 実際のスタックフレームの場所は特別のレジスタ、すな
わちT−レジスタあるいはトップオブスタツクレジスタ
により維持される。レジス外こないパラメータを通過す
ることはプログラマーにより選ばれた中間ベースレジス
タを使用して為される。プロシージャ呼出しを作るため
の準備として、命令PREPARESTACKが実行さ
れる。 この命令は、その命令内にプログラマーによって特定さ
れたそれらのレジスタを、スタック内に退避するように
する。この命令はまた状態レジスタをも退避するように
し、そしてプログラマーにパラメータースペースに対す
るポィンタを提供し、従ってプログラマ−はこのパラメ
ータースベイスに、呼出されたプロシージャに通される
べき情報をロードすることができる。次にENTER
PROCEDURE命令が実行されて、上述した要求項
目に相応する以下のステップを通してプロシージャ呼出
しを完了させる。 【a)リング検査、コーラーリングはそのコーフ−が位
置しているリングが新しいブロシージヤを呼ぶ特権を持
つのを確めるために、(即ち呼出しはより小さいか又は
同等のりング番号に対して存在すべきである)チェック
もしくは検査される。若しリング・ク。シングが必要と
されるならば新しいプロシージャが特別のりングゲート
を通じて通さなければならない。新しいリング番号は呼
出されたプロシージャの番号である。 {b)命令カウンターが退避される。 これは退避状態を完了する。‘c)ベースレジスタ0は
通過するパラメーターを効果的に示す様に作られる。 ‘dー 呼出されたブロシージヤのェントリ・ポィント
はプロシージャ・ディスクリプタから得られ、そのディ
スクリプタのアドレスはENTERPROCEDURE
命令に含まれている。 ‘e’結合情報のポィンタは代表的にはベースレジスタ
番号7にロードされている。 ‘f} 新しいプロシージヤは新しいリング番号と、命
令カウンタにおけるエントリ・ポイントのアドレスとを
ロードすることによって入れられる。 現行のスタックフレームの残りもローカル変数の記憶の
為に呼出されたブロシージャに利用される。 呼出されたプロシージャが復帰することを望む時には、
それはEXITPROCEDURE命令を実行する。レ
ジスタおよび命令カウンターはスタツク内のそれらの退
避領域から回復される。PCBの絶対アドレスはプロセ
スの論理名と呼ばれる2つの整数JとPによって決めら
れる。 ファームウェアによて知られた絶対場所には、Jテーブ
ルと呼ばれるテーブルがある。Jテーブルのエントリj
はPテーブルと呼ばれるテーブルの絶対アドレスPJを
含む。Pテーブルのェントリイpは論理名J.Pで決め
られるPCBの絶対場所を含む。好ましい実施例の説明 概論 本発明は代表的にはハードウェア/ファームウエア/ソ
フトウエアのオベレーテイングシステムによって統合さ
れる、後述のハードウェアシステムの環境において動作
する。 第1図を参照すると、サブシステムは、プロセッサ・サ
ブシステム101、記憶サブシステム102、及び1つ
或いはそれ以上(32迄)の周辺サブシステム103で
ある。プロセッサ・サブシステム101は中央処理装置
CPUI04と、4迄の入力/出力制御装置IOCI0
5とを含んでいる。各周辺サブシスブムは周辺制御装置
PSUI06と、一群の装置アダプタDAI07と、2
5釜室の周辺入力/出力装置108とよりなる。記憶サ
ブシステム102はそれぞれが32なし、し512キロ
バイトよりなる1なし、し4つの半導体メモIJ・モジ
ュールによって構成されている。1 フ。 ロセツサ・サブシステムプロセッサ・サフシステム10
1において、CDRI04は、システム及び記憶サブシ
ステム102とのインタフェースに対して基本的な処理
操作を行う。 IOCI05は記憶サブシステム102と周辺装置10
6間のすべての情報交換を制御する。■ 中央処理装置 CPUは主メモリ・シンクロナイザ109と、バッファ
・メモリ110と、計算装置111よりなる種々の要素
と、任意のエミュレーション装置112とよりなる。 主メモリ・シンクロナィザ109は計算装置111、バ
ッファ・メモリ110、及びIOCI05間で主メモl
iを使用するための衝突もしくは競合を解決する。衝突
は優先順次に基いて解決される。即ち、IOCは最も高
い優先順位を有しており、次の優先順位は(計算装置か
ら)メモリへの書き込みであり、さらに次の優先順位は
(バッファ・メモリへの)メモリからの読み出しである
。主CPUは又、主メモリのアドレス指定を制御するア
ドレス制御装置ACU1 31と、主メモリの最も最近
使用されたアドレスを記憶する為に使用される連想メモ
リAS132とを含んでいる。 バッファ・メモリ1川ま小容量の高速バッファ・メモリ
であり、平均メモリ・アクセス時間を減少するために、
主メモリの選択された領域と、計算装置とのインタフェ
ースとの写しを作る。 各メモリの読み出しが行わる間、バッフ ァ・メモIJと主メモIJとの双方がアクセスされる。 取り出されるべき情報がすでにバッファ・メモリ内にあ
るならば主メモリの読み出し‘ま終了され、情報がバッ
ファ・メモリから取り出される。さもなければ主メモリ
ー02が読み出される。これが行なわれる度毎にCPU
I04は所望の情報を含む32のバイトを取り出す。 この情報は将来のメモリ参照の為にバッファ・メモリ内
にとどまる。バッファ・メモ川まソフトウェアに対して
透明であるので、ある瞬間においてコンピュータを制御
するプログラムは、そのコンピュータが処理する情報が
バッファ・メモリから取り出されたものか、或いは主メ
モリから取り出されたものかを決定する事が出来ない。
計算装置111はCPU内でのすべてのデータ処理とア
ドレス発生とを行う。 計算装置内の典型的な制御メモリー30(サミール・ェ
ス・ヒュッソン著、プレンティス ホールィンコーポレ
ーション発行の原理と実際、マイクロプログラミングを
参照の事)はシステムを初期設定するファームウェアを
含み、CPUI04及びIOCI05を制御し、そして
命令セット((図示せず)を符号解読する。 随意に制御メモリは科学的命令、検査ルーチン、エミュ
レーション・パッケージ或いはプロセッサ・サプシステ
ムの能力を延長する特殊な目的の態様を提供する。オプ
ションとしてCPUはこのシステム以外のシステムのエ
ミュレーションを提供する。 エミユレータ112は、フアームウエア、ソフトウェア
、そしてある場合にはハードウェアの構成要素である。 ‘B} 入力−出力制御装置 プロセッサ・サブシステムのIOCI05の部分は、周
辺サブシステム103と記憶サブシステム102間のデ
ータパスを提供する。 このパスは周辺装置の指令の初期設定を可能とし、その
結果のデータ転送を制御する。IOCは典型的に32迄
のチャネル制御装置(図示せず)を取扱う事が出来る。 {C} 周辺サブシステム 第1図の周辺サブシステム103においてPOUI06
は、入力/出力オペレーションの間、入力/出力周辺装
置108を制御する事によってCPUI04へのロード
を緩和するスタンドーアロン・マイクロプログラミング
・プロセッサである。 CPUはチャネル・プログラムに含まれる命令を実行す
る事によってこれを行なう。このプログラムはCPU内
にて行われる演算論理、転送、シフト、及び分岐操作に
帰結する。それぞれが制御する周辺装置の種類(例えば
、ユニット・レコード、大容量記憶装置(ディスク)、
磁気テープ、通信等)に応じて数種類のPCUがある。 装置アダプター07はPCUとこのPCUが制御する周
辺装置108との間を仲介する。 各装置アダプタは、特殊な型の周辺装置との通信を行う
のに必要な、デリケートなフア−ムウェアと論理回路を
含む。型式によっては装置アダプタすなわちDAI07
は一つあるいは数個の周辺装置を制御する。周辺装置サ
プシステム103によって行われる主な作用は次の通り
である。 I CPUの命令を適当な周辺装置へ受容しうる一連の
指令に変換する事2 CPU或いは適当な周辺装置によ
って必要とされる型のデータをパックする事並びにアン
パツクする事 3 サブシステム及びその制御下にある周辺装置の状態
をCPUに知らせるよう保つ事4 誤差及び回復プロシ
ージャを独立的に初期設定しかつ処理する事5 関連し
た周辺プロセッサの周辺装置共有能力を妨害する事なく
周辺装置のオンライン診断を可能とする事 PCUは、それに取付けられる周辺装置間での主メモリ
に対する衝突もしくは競合を解決する。 しかし、IOCはPCU間の衝突もしくは競合を解決す
る。皿 記憶サブシステム 各誌億モジュ−ル1一4は4なし、し8バイトの幅を有
する。 モジュールの数、大きさ及びデータ・パスの幅は計算機
の大きさによって変える事が出来る。記憶モジュールは
4つのモジュール(モジュール1は第1の8バイトを含
み、モジュール2は第2の8バイトを含む、等)が順次
アクセスされるような方法で4通りにインターリーブが
為される。インターリーブは主メモリへのアクセスに対
する衝突もしくは競合の数を減少し、それによって平均
メモリ・アクセス時間を減少する。メモリは故障の場合
、再び形成しうる。即ち、モジュール内のメモリのブロ
ックは隣接するアドレスを壊す事なしに除去される事が
出釆る。主記憶装置もしくは主メモリ102は、金属酸
化物半導体MOSチップの形態にある容量性記憶媒体か
らなる。 この媒体は、情報を維持するためにリフレッシュ原理で
動作する。 各記憶場所は、典型的には、少なくとも2ミリ秒毎に1
度リフレッシュされる。設計上、リフレツシユのタイミ
ングとメモリ・アクセスとの間に衝突もしくは競合が殆
んど生じないようにすることができる(競合が生じた場
合にはリフレッシュの方が優先する)。主メモリの最初
の領域はハードウェアおよびファームウェアのための保
存もしくは予約される。 この領域の上限は、システム・ソフトウェアが監視する
ことができる境界アドレスレジスタ(以後BARと称す
る)の内容によって定義される。このBARの内容は、
システム初期設定時間に設定される。BAR内で指定さ
れたアドレスの下側の記憶領域は、周辺サブシステムC
PUを制御するためのファームウェアまたはマイクロプ
ログラムの構成を定義するIOCテーブルならびにエミ
ュレーション用のテーブルを格納することができる。B
ARで指定されたアドレスの下側の領域の大きさ(サイ
ズ)は、システム構成によって左右される。マイクロプ
ログラムが主メモ川こ存在するか或いは制御ストアもし
くはメモリ内に存在するかは、システム構成ならびにシ
ステムで実行される事例に依存する。0 基本的な機械
(マシン)構造 このハードウェアにおいては、典型的に、3つの基本デ
ータ構造が利用される。 即ちデータフオーマットと、ソフトウェア監視レジスタ
と、命令フオーマツトとである。■ データフォーマッ
ト 情報は、メモリとCPUとの間で8並列ビット単位で転
送される。 各8ビット単位の情報はバイトと称される。またパリテ
ィもしくは誤り修正データもデータと共に転送されるが
、この転送はソフトウェアによって影響を受けない。し
たがって、本明細書においては、術語「データ」には、
関連のパリティもしくは誤り修正データもデータと共に
転送されるが、この転送はソフトウェアによって影響を
受けない。 したがって、本明細書においては、術語「データ」には
、関連のパリティもしくは誤り修正データは含まれない
。(B} /ゞイト 1バイト内のビットは左から右に0ないし7の番号が付
けられる。 バイトは個々にまたはグループ単位で処理される。2つ
のバイトが半ワードを構成し、4バイトが1ワードを構
成し、8バイトが2ワード(倍長ワード)を構成し、1
6ゞィトが4ワード(4倍長ワード)を構成する。 これは、命令を含め全てのデータに対する基本的なフオ
ーマットである。 (C} データ表示 全てのデータは2進もしくは2値形態にあるが、2進法
、IG隼法或いは英数文字データとして解釈され得る。 データビットは、4ビットベースで2進符号化1Q隼デ
ータとして、また8ビットべ−スで英数文字データとし
て、或いはまた16ないし64ビットで2進数字として
解釈される。 後者は、2進法で、記号付きの固定または浮動小数点数
と解釈され、2ワードまでの連続ビット数をストリング
として操作することもできる。英数文字はEBCDIC
で表わされる。ASCIIが交替コードとして用意され
る。肋バイトアドレス 主メモリ内のバイト位置は零から出発して連続的に番号
を付けられている。 各番号がバイトのアドレスである。或る群内の左側のバ
イトのアドレスが、2、4、8または16の倍数である
場合には、該群を構成する連続したバイトは、それぞれ
、半ワード、1ワード、2ワードまたは4ワードで位置
合せ(アラィンメシト)されていると称される。半ワー
ド、1ワード、2ワードまたは4ワードは、その単位で
当該アドレスから取り出すことができるように位置合せ
されている。 主メモリ内のデータの記憶場所は、アドレス展開中に間
接的にアクセスされるデータディスクリブタ(記述子)
によって特定される。(1974年5 月16日付の「
Segmented AddressDevelopm
ent」に関する放棄した米国特許願Ser.No.4
70496の継続特許願である「Adresslng
of Operan船 Within aSegme
nt Utilizing Segment Desc
riptore」に関する197群王12月12日付の
Bien戊nuの米国特許願Ser.No.96869
度参照。また、同様の開示内容に関しては、「Appa
ねtusforDeveloping an Addr
ess of a SegmentWithin N
ねin Memoひ and an AbSolnte
Address of an Operand Wim
in theSegment」に関するBmwn他の1
973王12月17日付の米国特許魔Ser.No.4
25356もしくは対応の米国特許第3938096号
を参照されたい)。{E} 可視レジスタCPUI04
内に33の使用者−可視レジスタがある。第1図の内容
は集約的にCPUの状態を定義している。可視レジスタ
には下記の4つの型がある。(第2図を参照せよ) 1 汎用レジス夕 2 ベース・レジスタ 3 科学的レジスタ(任意) 4 種々雑多なしジスタ {F} 汎用レジスタ 汎用レジスタGR201は固定4・数点の2進数及びビ
ット・ストリングを処理する為に使用される。 代表的にはCPUI04内にあるGROからGR15ま
での16個の32ビット・汎用レジスタがある。GR8
からGR15の汎用レジスタは又指察しジスタもしくは
インデックス・レジスタとして使用しうる。指票もし〈
はインデックスレジスタとして使用されるとき、それら
はここではXOからX7と称される。ィンデクシングは
、レジス外こ含まれる32ビットの二つの橘数を使用す
る事によって行われる。に)ベース・レジスタ ベースレジスタBRは命令カウンタIC及びスタツク・
レジスタ202−203と同じフオーマットを有する。 ベース・レジスタは記憶の一部を定義する為にアドレス
計算中使用される。典型的なBROからBR7の8つの
32ビット・ベース・レジスタがある。m)科学的レジ
スタ 科学的レジスタSRは浮動小数点2進数でもつて計算す
るための選択的な装置である。 典型的には、SROからSR3で参照される4つの8バ
イト科学的レジスタがある。科学的レジス外ま第2図の
フオーマット204−205を有する。0)種々雑多な
しジスタ 5個のレジスタがある。 ・フオーマット202一203を有する命令力ウンタ・
フオーマット207を有する状態もしくはステータスレ
ジスタ・スタツクレジスタ(Tレジスタと称される) ・フオーマット206を有する境界アドレスレジスタ、
及び・フオーマツト208を有するハードウェア制御マ
スク・レジス夕命令カウソタICは、実行される命令の
アドレスを含む32ビット・レジスタである。 状態レジスタSTR207はプロシージャが目下実行さ
れている事に関する事実、例えば最も最近のオペレーシ
ョンによってアンダフローが生ぜしめられたかどうかに
関する事実を記録する8ビットレジスタである。Tレジ
スタとしても知られるスタック・レジスタは、目下活動
中のプロシージヤと関連されるプッシュ・ダウン・スタ
ックの頂部のポィンタを含む32ビット・レジスタであ
る。後述のスタックは、ワーク・スペースと、ローカル
変数を省きプロシージャ・ェントリを保存する機構と、
復帰情報とを提供する。境界アドレス.レジスタBAR
206は、ソフトウエアにつてアクセスし得る主メモリ
の最下位の絶対アドレスを特定する28ビット・レジス
タである。 このレジスタはシステムの初期設定の間に。ードされ、
ソフトウエアによってのみ読取られ得る。ハードウェア
制御マスク・レジスタ208は機械条件情報を記録する
8ビット・レジスタである。0)命令フオーマツト 多少にかかわらず使用される命令は約200ある。 各命令は4つの異なった長さを有し、必ずバイト規模の
長さの偶数である。命令は一連の記憶場所内に記憶装置
される。極左バイトのアドレスは2の倍数であり、命令
のアドレスである。命令の8つの最も有効であるビット
(或る場合にはビット8から11または12から15)
がオペレーションコードを表わし、一方残りのビットは
一つあるいはそれ以上のオペランドを表わす。 オペランドはしジスタ指示子(desi柳ator)、
置換指示子、アドレス・シラブル(論理・アドレス)、
リテラル値、及び即時のリテラル値であって良い。オペ
ランドの型と数は命令フオーマットによって決定される
。m システムの組織 A ジョブステップとタスク コンピュータ・システムによって行われる仕事はジョブ
制御言語によってあるわした一連のジョブ・ステップに
よって外部的に定義される。 ジョブ・ステップはハードウェア資源が割付けられる仕
事の単位である。典型的にはジョブ・ステップは数個の
タスクよりなる。タスクはユーザによって定義される仕
事の最少単位であり、類似のもののない実行される命令
の流れよりなる。Bプロセス タスク及びジョブ・ステップについてのユーザ可視の概
念はそれぞれプロセスとプロセスグループによってハー
ドウエアにおいてあらわされている。 プロセスはCPUによって非同期的に実行され得る命令
の順序付けられたシーケンスとして定義される。(すな
わち数個のプロセスが活動的であってリソースを分担す
ることができるが、実際には或る瞬間において1つのプ
ロセスのみが走行する。)プロセスグループは1つのジ
ョブ・ステップを実行するのに必要なプロセスの関連づ
けられたセットである。C プロセス制御ブロックおよ
びシステム1べ‐−スプロセスは、それらの実行中のい
ろいろな時点でCPU制御から離れることがでるので、
CPU状態を退避するためにプロセスに対し主メモリ内
の記憶領域が利用可能にされている。 この状態情報は、プロセスがCPUの制御を再び取り戻
す前に該CPUを予め条件設定するのに用いられる。プ
ロセスに割当てられる記憶領域は、第4図に示すように
プロセス制御ブロックPCB400と称される。 プロセスに割当てられたメモリもしくは記憶領域のアド
レス(アドレス空間)内部で、PCBにはデータ、全て
の関連のレジスタの内容ならびにプロセスの状態が格納
される。したがって、PCBは、情報損失を伴うことな
く、プロセスを開始または再開するのに必要な情報のた
めの一時記憶領域としての働きをなす。各PCBはハー
ドウェアで管理可能であって、システムの初期設定中に
創成されてシステムの動作中に修正されるハードウェア
・テーブルの集合を用いてオペレーティング・システム
によってアドレス指定することができる(第5図)。シ
ステム・ベースと称される絶対主記憶領域が存在する(
第5図および第6図)。 この領域は、ファームウェアによって展開され、そして
謙出すことはできるが書き込むことはできないベース・
アドレス・レジスタBAR501を介してアクセスする
ことができる。システム・ベース502は、現在実行中
のプロセスのためのジョブ、ステップ番号およびプロセ
ス群番号J,Pを含む多数のシステム属性を収容してい
る。システム。ベースにおける別の属性としてJ−テー
ブル503として知られているハードウェア定義データ
構造(パターン)に対するポインタがある。このJーテ
ーブルは、システム内に現存する各ジョフ、ステップの
ためのヱントリを格納している。Jーテーブル503内
の各ェントリは、やはりハードウェア定義データ構造で
ある関連のP−テーブル504を指定する。 このテーブル504は、プロセス群を定義し、そしてプ
ロセス群内の各プロセスのためのェントリを格納してい
る。P−テーブルの各ヱントリはPCB400を指定す
る。第5図を参照するに、計算装置111(第1図)の
演算部分506を介して、J番号により検索されるJー
テーブルのポィンタ505がJーテーフル・ェントリ5
03に対するアクセスを可能にする。 このェントリは、計算ユニット506を介してP番号に
より検作された時にP−テーフル・ェントリ504に対
するアクセスを可能にするP−テーブル・ポインタを含
む。P−テーブルのェントリは、現在実行中のプロセス
のPCBに対するポインタ507を含む。 このようにして、オペレーティングシステムは、BAR
501の内容を用いて使用中のPCBにアクセスするこ
とができ、そして関連のJ,P論理名が与えられれば他
の任意のPCBにアクセスすることができる。D メモ
リの区分化(セグメンテーション)ここで述べているよ
うな多重プロセス環境においては、任意時点でメモリ内
には多数のプロセスが存在する。 これらプロセスは、大きさ(サイズ)およびメモリ要求
において異なっており、そのためにメモリ割当てに関す
る問題が生ずる。ここに述べるハードウェアは、オペレ
ーティングシステム(図示せず)と協働して、メモリ空
間を動的に割当てることにより上記の問題を解決してい
る。メモリ要求はランダムな性質であるので、メモリは
可変の大きさのセグメントもしくは区分で割当てられ、
そしてこのメモリ割当てはプロセスの実行時間中に再編
可能である。したがって、1つのプロセスには多数の不
連続メモリ・セグメントが割当てられ得る。 このメモリ割当て方法をセグメンテーションもしくは区
分化と称する。セグメンテーションには、付加的な問題
が生ずる。 即ち、或るプロセスの部分もしくは全体を再配置する場
合には、常にメモリ・アドレスを修正しなければならな
いという問題である。この問題を軽減するために、ここ
に述べるシステムにおいては、或るプロセスによって用
いられるアドレスを絶対主メモリ・アドレスではなく論
理アドレスにするという技術が採用される。これら論理
アドレスは絶対アドレスを展開するのに用いられる。ま
た、このセグメンテーションによれば、セグメント・デ
ィスクリプタ(記述子)系を介して、各プロセスはそれ
自身のメモリ・セグメントもしくは関連のメモリ・セグ
メントにアクセスすることができる。 セグメント・ディスクリプタにアクセスすることにより
、プロセスはセグメントのアドレスを得ることができる
。セグメント・ディスクリプタは、主メモリ内に格納さ
れておってオペレーティングシステムによって保守され
る。各プロセスは、2068個までのメモリ・セグメン
トにアクセスすることができる。 このためには、通常、各プロセス毎に同数のセグメント
・ディスクリプタが要求されるが、しかしながら、セグ
メントを共有することができるので、オペレーティング
・システムによりセグメント・デイスクリプタはセグメ
ント・テーブルとして群別化される。この群別化は、1
つのプロセス(タスク)、プロセス群(ジョブ・ステッ
プ)によるまたは普遍的(システム全体)なアクセスの
可能性を基に行われる。 各プロセスはそれに関連の13固までのセグメント・テ
ーブルを有し得る。この方法によれば、1つのセグメン
ト・テーフルを介して1つのプロセスによりアクセスす
ることができる各セグメントに対し1つのセグメント・
ディスクリプタしか要求されない。したがって、セグメ
ント・ディスクリプタに対し要求されるメモリ空間が減
少する。再配置中のメモリの更新も減少され、ある程度
のプログラム保護が保証される。(メモリ保護のための
主たるメカニズムはリング方式である。「Proにct
ionofDatainanlnbrmationMu
ltiprocessjngS$tem by Imp
lementinga Concept of Ri
ngs to Represent theDif笹r
ent Levels of Privileges
AmongPrMessesJに関するMarcApp
ell他の1974年12月2日付の米国特許魔Ser
.No.528953、現米国特許第417751び号
参照。)プロセスはアクセスすることが許されるセグメ
ントを決定する能力を有しなければならない。 したがって、システムはプロセスに対し2つのセグメン
ト・テーフル・ワード・アレイ(STWA)を与える。
これらアレイには、1つのプロセスにアクセス可能な全
てのセグメント・テーブルのアドレスが収容されている
。2つの大小のセグメント・サイズが存在するので、各
プロセス毎に2つのセグメント・テーフル・ワード・ア
レイが設けられる。 大きい方のセグメントは、最大夕2バイトの大きさもし
くはサイズを有し、他方小さい方のセグメントは、最大
ぞ6バイトの大きさを有する。全てのセグメントは、上
記の最大バイト数まで1ふゞィト増分でその大きさを変
え得る。典型的には28個までの大きいセグメントおよ
び204の固までの小さいセグメントを収容することが
できる。セグメント・テーフル・ワード・アレイはオペ
レーティング・システムによって再配置可能である。 したがって、プロセスはそれに関連のSTWAの絶対ア
ドレスを知らなければならない。任意のプロセスに対す
るPCBは第4図に示すようにアドレス空間ワードAS
WO−1として知られているこの情報を格納する2つの
ワードを有する。 各ワードは1つのセグメント・テーブル・ワード・アレ
イSTWAを指定する。オペレーティング・システムは
、関連のSTWAが再配置される時には常にASWの内
容を更新する。ポィンタの連鎖を辿って作業しセグメン
ト・ディスクリプタを解読することはファームウェアの
機能であり、一旦開始されるとオペレーティング・シス
テムでも監視することはできない。 セグメンテーションで、200×100万バイトのアド
レス空間がプロセスに対し利用可能になる。 この数は主メモリの容量を超える。したがって、第2の
記憶装置(磁気ディスクまたはドラム)が主メモリと関
連して用いられる。オベレーテイング・システムは、シ
ステムが実際利用可能なものよりもかなり大きな王〆モ
リを有するが如くの仮想を創成する。この概念が仮想メ
モリと称される。任意時点において、確認されたセグメ
ントが物理的に主メモリ内に存在することもあれば存在
しない場合もあり得る。 これと関連して、セグメント・ディスクリプタの内容で
、関連のセグメントが主メモリ内に存在するか杏かが指
示される。ハードウェアは、或るプロセスの主メモリ内
に存在しないセグメントへのアクセス試みを検出してそ
の事をオペレーティング・システムに報知する。オペレ
ーティング・システムは、そこで所望のセグメントを2
次記憶装置から主メモリ内にロードする。次いで、オペ
レーティング・システムは、セグメントのメモリ・アド
レスを、或るセグメントの絶対アドレスを見つけること
ができる唯一の場所であるセグメント・ディスクリプタ
にセグメントのメモリ・アドレスをセットする。この動
作は、プロセスには解らないので、したがってプロセス
は該セグメントが主メモリ内に存在しなかったこと或い
はまた該セグメントが主メモリ内に再配置されねばなら
なかったことに関しては知る立場にない。(メモリのセ
グメンテーションもしくは区分化に関する詳細について
は、「SegmentedAddress Devel
opment」に関する1974年5月16日付の既に
放棄された米国特許蕨Ser.No.470496の継
続特許願である「Addressing of Ope
ran船 Within aSegment Util
iZing Segment DeSCriptorS
Jに関する1978王12月12日付のBienven
uの米国特許厭Ser.No.968696号明細書参
照。 さらに類似の開示技術として、「Apparatusf
orDeveloping an Address o
f a SegmentWithin Main M
emoひ and an Address ofanO
perandWithintheSegment」に関
する1973王12月17日付のBrowm他の米国特
許願Ser.No.425356、現米国特許第393
8096号参照。)ここで述べるコンピュータ・システ
ムは、プロセスが互いに干渉したり或いは相互のアドレ
ス空間を許されない仕方で共有することを阻止すること
により、データおよびプロシージャの保護を行う。 この保護は、メモリのセグメンテーション(区分化)お
よびリング方式を介しアドレッシングを制限することに
より達成される。セグメント・テーブルはシステム内の
いろいろなプロセスのアドレス空間を分離している。 プロセスは実行中常に区分化されたアドレスを用いる。
1つの区分化もしくはセグメント化されたアドレスは、
セグメント内にセグメント番号と相対アドレスを有する
(「Segmented Address Devel
opment」に関する上記特許願参験)。 ハードウェアは、或るプロセスによって用いられるアド
レスが当該プロセスに割当てられたアドレス空間の一部
分であるか否かをチェックする。該アドレスが予め規定
されたアドレス空間の外部に存在する場合には、例外が
生ずる。ハードウェアはプロセス参照用のセグメント・
テーフルを使用するので、或るプロセスは別のアドレス
空間内のデータを参照することはできない。したがって
、或るプロセスまたはプロセス君羊が他のプロセス群に
属する事項を参照することは不可能である。一般に、全
てのプロセスによって共有されているセグメントに対し
ては、アドレス空間における重り合いもしくは重複(オ
−バーラツプ)が生ずる。 これら共有セグメントは、アドレス競合を阻止するため
のチェックを行うシステム・プログラムによって創成さ
れる。 このようにしてセグメンテーション(区分化)によりユ
ーザのプログラムは互いに保護され且つオペレーティン
グ・システムもユーザのプログラムに対して保護される
。数個のプロセスによって共有されるセグメントをそれ
らのプロセスの1つによる謀使用から守る事は出来ない
。 この問題を解決する為にリング本発明が使用され、プロ
シージヤとデータ・セグメントは4クラスの階層に分類
される。4個のIJング・クラスには0から3迄の番号
が付けられる。 各リングのあらわすシステム制約のレベルについてのべ
るならば、レベル0(最内側のりング)は最高の制約を
有し、レベル3(最外側のリング)は最低の制約を有す
る。システムにおける各プロシージャはそのプロシージ
ャを誰が呼び出し得るかを特定する、それぞれに割りあ
てられた最4・の実行リングナンバー及び最大の実行リ
ングナンバーを有する。プロシ−ジヤは他のプロシージ
ヤを呼び出し、それらにパラメータを与える事が出来る
サブルーチンである。 リング・システムの一般的なルールは次の通りである。 1 内側のりングのプロシージャは外側のリングのデー
タヘアクセスを自由に行なう事が出来る。 逆に外側のリングのブロシージャは内側のりングのデー
外こアクセスする事が出来ない。 2 外側のリングのプロシージャは内側の1ノングのプ
ロシージヤへ分岐する事が出来る。 しかし逆は不可である。3 デ−夕を含む各セグメント
には二つのりング値、すなわち読取りRDに対するもの
と書き込みWRに対するものが割りあてられる。 それらのリング値は論取りまたは書込みモードのいずれ
かでデータにアクセスするときにプロシージャが実行す
る最大のリング値を特定している。 プロシージャ命令が実行される度毎にプロシージャのリ
ング・ナンバー(実効アドレス・リングEAR)が参照
データを含むセグメントへ割り当てられるリング・ナン
バーに対してチェックされる。 EARは命令カウンタのプロセス・リング・ナンバーと
、べ−ス・レジスタおよびアドレシング・パスにおいて
見出されるデータ・ディスクリプタ内のすべてのりング
・ナンバーとの中の最大番号である。 データへのアクセスはリング・ナンバーの比較によって
許可され、或いは拒絶される。例えばもしもシステム・
テーブルが最大読み取りリング値3と最大書き込みリン
グ値1とを有するセグメント中に存在するならば、リン
グ3にて実行するユーザのプロシージヤはテーブルを読
みとる事が出来る。しかし、そのテーブルを更新する事
は出釆ない。事前設計によって、リング0とりング1は
オペレーティング・システムに対して予約されリング2
及びリング3はユーザに対して予約される。 リング0は全体のシステム・オペレーションに対して臨
界的であるセグメントを含むリング1は故障が破滅的で
はなく回復が可能であるシステム・セグメントの大半を
有する。ユーザはチェック・アウトされたプログラムに
対してはリング2を又、プログラムの手直しがされたプ
ログラムに対してはリング3を用いる事が出来る。E
プロシージヤの呼び出し プロシージャの呼び出し‘ま上述のシステムにおける重
要な機能である。 プロシージャの呼び出し‘ま一方のプロシージャから他
方のプロシージャへパスする事、ユーザのプロシージヤ
にオベレーテイング・システム・サービスを使用させる
事、及びオペレーティング・システム内のモジュール構
造を完成する事の為に使用される。プロシージャ呼び出
し‘ま命令とハードウェアで認めたスタツクと呼ばれる
実体(第3A図参照)とによって行われる。 スタックは後に書き込まれたものほど遠く読み出す事を
原則として、受容し、記憶し、データの検索を可能とす
る機構である。 ス夕ックはスタック・セグメントと称する特殊なセグメ
ント内に存在する。スタツク・セグメントは動的に各プ
ロシージャへ割りあてられるスタックフレーム701(
第7A図及び第7B図参照)と呼ばれる連続数よりなる
。第1のスタツクフレームはセグメントにロードされ、
次のフレームはその後にロードされる。 ロードされる最後のフレームはスタツクの初めと見なさ
れる。Tーレジス夕702は現在実行されるべきプロセ
スに対してスタックの初めを位置付ける。仮想T−レジ
ス外まシステム内のすべての他のプロセスのPCBに存
在する。第7B図のスタック・フレーム701は変数を
記憶する作業領域702としジスタの内容を退避するた
め退避領域703、及びプロシージャ間にパラメータを
通す通信領域704の3つの領域よりなる。 プロシージヤの呼び出しに先立ち、ユーザは彼が退避す
べきであると望んでいるレジスタを特定し、そして、呼
び出されたプロシージャへ送られるパラメータを通信領
域にロードしなければならない。 呼び出しが行われているとき、ハードウェアは命令カウ
ン夕ICの内容と、呼び出されたプロシージャからの復
帰を容易にする特定のベース・レジスタと退避する。各
プロシージヤの呼び出しはスタツク・セグメ,ント70
1内にスタックフレ−ムを作り、次の入れ子になってい
る呼び出しが付加フレームを構成する。 プロシージャと称されるそれらのうちの1つから各出口
はスタツクから抹消されるスタツク・フレームを引き起
す。それ故、呼び出しの履歴は規則正しい復帰を容易に
するように保全される。種々のりングにおいて実行する
ブロシージャ間の保護を保証する為に、種々のスタック
・セグメントが使用される。 プロセスごとに各保護リングに対応して1つのスタック
・セグメントがある。PCBは、プロセスに結合される
リング0,1及び2のスタツク・セグメントのスタート
を指し示す3つのスタック・ベース・ワードを含む。リ
ング3のスタック・セグメントは決して内方呼び出し‘
こよっては入りさまれない。それ故、そのスタツク・ス
ターテイング・アドレスはPCBには必要ではない。W
プロセス管理と同期化 ここにシステムは、ソフトウエア、ハードウェアそして
ファームウェアを組み合わせたオペレーティング。 システムによって制御される多重プロセシング・オペレ
ーティングを想定している。ソフトウエアはシステム内
でプロセスを作り抹消する。ハードウェアとファームウ
ェアはCPUでプロセスを多重化する。その他にソフト
ウェア、ハードウェア及びファームウェアの組み合せは
プロセス間の同期化に対して対処している。プロセスは
通常では、しかし、常にではなく関連するジョブの取扱
い中、入力/出力オペレーションの始点及び終点そして
オペレーティング・システムによって必要と思われる目
的に対して開始されそして中止される。 それ故コミュニケーションシステムは関連プロセスを有
効に開始しそして中止する為に必要であり、又、それら
の間に情報を送る為に必要である。ここにおいてハード
ウエアはプロセス間にコミュニケーション・リングを供
給するセマフオアと呼ばれる中間メッセージを提供する
。A プロセスの状態 プロセスは4つのおこりうる状態即ち、走行、準備、待
ち、中断のうちの1つをいつでもとることができる。 ハードウェアはそれらの4つのおこりうる状態を識別す
る。そして状態が変化するプロセスのジスパッチングを
行ない、且つプロセスの状態に基いてデータ構造を保全
するために種々のファームウェアのプロシージャを実行
する。PCBはその関連プロセスの現在の状態を定義す
る状態フィ−ルドを含む。プロセスはCPUの制御を有
する時走行状態にある。 この状態はCPUにアドレス・スペース(セグメント・
テーブル)とスターティング・アドレスを供給する事を
も含む。CPUは次いでプロセスのプロシージャ・セグ
メント中の命令を実行する。 現在走行しているプロセスの為のPCBのプロセス名J
テーフル・ワード(論理アドレス)はシステム・ベース
(第6図)内の走行プロセス・ワード(BAR+60)
内に保持される。(注:第5図に示したシステム・ベー
スは幾つかの細部が省略されている点を除き第6図に示
したものと同じである)準備状態はそれがCPUによっ
て識別されないのでプロセスがCPUの制御を行なわな
い点を除いては走行状態と同じである。 準備状態のプロセスは他の準備状態及び走行プロセスと
CPUに対して競合関係にある。セマフオアによるメッ
セージの如き特殊なイベントがおこる迄プロセスが続行
しえないときプロセスは待ちの状態にある。 待ちのプロセスはCPUに対して競合関係にない。しか
し、必要なイベントに対しては他の待ちプロセスと競合
関係にある。中断プロセスはソフトウェアによって一時
中止され後に回復されるプロセスである。 プロセスを中止し、そして回復する決定はプロセスに対
して外部的である。それ故、中断プロセスは活性ではな
く、それ故イベントの発生の通知を受ける事が出来ず、
又、CPUを利用する事が出来ない。プロセスは次の条
件下に中断される。 (1} 終止命令を実行する事によって。 (その機能のすべてを果した結果として)■ オペレー
ティング・システムによる中断命令の実行によって。 {3} 制御がオペレーティング・システムに転送され
る例外条件の発生によって。 B プロセス・デイス/ぐンチング プロセスは走行中、そのプロセスの作用により自発的に
、または他のプロセスの作用により不本意に、一つの状
態から他の状態へ移動する。 ディスパッチャとして知られるCPUファームウェアは
状態間のプロセスのトランザクッションを制御する。 ディスパッチャは準備あるいは待ち状態にあるプロセス
を取扱う一組みの待ち行列(後述の)を使用する。中断
プロセスはソフトウェアによって制御される。第6図、
第8図および第9図を参照する に、レディ(準備)状態のプロセスもしくは待機中のプ
ロセスは、PCBおよびプロセスリンクと称する特殊待
ち行列ェントリ(記述項)で表わされている。 第9図は、GOセグメント802の内容の展開図であり
、活動プロセスのプロセス・リンク803a一803b
および803c−803gならびに中断されているプロ
セスの空きプロセス・リンク805a−805cが示さ
れている。各プロセス・リンクは、プロセス名J,P、
プロセスの優先順位ならびに待ち行列中の次のフ。oセ
ス・リンクに対するポィンタを特定する。待機待ち行列
803a−bおよびレディー状態待ち行列803a−d
のようないろいろな種類の待ち行列が存在する。G−テ
ーブルと称されるJ−テーブルに類似のハードウェアデ
バイス(第6図および第8図)は、総ての汎用(システ
ム汎用)セグメント802−802nに対するポインタ
を格納している。 G−テーブル801の第1番目の要素℃は、ディスパッ
チャの待ち行列(キュー)を格納しているセグメント8
02を指定する。 Gーテーブル801のG−テーブルポィン外ま、第5図
に示すようにシステムベース502内に在る。またシス
テムベース内には、GOセグメント802内のレディー
状態待ち行列803c−803dの先頭805を識別す
る内部プロセス待ち行列ワードIPQWと称するェント
リ(記述項)が存在する。したがってディスパッチャは
、レディー状態の待ち行列(すなわち準備キュー)80
3c−803dを参照することにより、総てのレディー
状態(すなわち準備状態)のプロセスを検査することが
できる。 現在実行中のプロセスが状態を変えると、ディスパッチ
ャはしディー状態の待ち行列の先頭のプロセス・リンク
を取払って、J,P名を用いてそのPCBをアクセスす
る。 そこで、PCBによって確定されるプロセスが新たに実
行されるプロセスとなる。同一のイベントに対して1つ
以上のプロセスが待機していることがあり得るので、各
イベントには、待機プロセス803a−803bの行列
が存在する。 これら特機プロセスはまたGOセグメント内に存在する
プロセス・リンク805を介して互いに連結されている
(プロセスのストリング)。待機待ち行列の先頭に対す
るポインタ、(追って説明する)セマフオア903内に
存在する。或る1つのプロセスが待機しているイベント
は、複数個存在し得る。したがって、それぞれが関連の
セマフオア903,904を有する複数の待機待ち行列
が存在する。レディー状態または待機状態にあるプロセ
スの数は動的に変化する。 したがって、レディー状態および待機状態の待ち行列に
要求されるプロセス・リンクの数も変化する。この事実
から、ディスパッチャに対するメモリ管理問題が生ずる
。この問題は、空きもしくは自由プロセス・リンク待ち
行列805a−cと称する別の待ち行列によって解決さ
れる。この待ち行例は、レディー状態または待機状態の
待ち行列によって使用されておらず、レディー状態また
は待機状態のプロセスの特定の待ち行列を拡張するのに
用いることができるセグメントGO内の総てのプロセス
・リンクを連結する。空きフ。。セス・リンク待ち行列
805の先頭902に対するポィンタ901は00セグ
メント802の始端近傍に存在する。C プロセスの同
期化 同じタスクに作用する2つのプロセスの活動もしくはア
クチビティを調和するためにプロセス同期が要求される
。 このプロセス同期は交信しているプロセスのアドレス空
間内にあるデータ構造であるセマフオア903一904
を用いて達成される。セマフオアはイベントの生起を信
号しメッセージの待ち行列を取扱うのに用いられる。こ
こで、イベントとは、幾つかの他のプロセスにとって関
D事であり得るプロセスにより観察される事象である。
即ち、イベントは、非同期動作の完了でもあり得るし、
或いはまた資源の利用可能性でもあり得る。1つのイベ
ントの生起を信号するためのプロセスにおいては、2つ
のセマフオア動作が用いられる。 そのうちの1つの動作においては、信号が1つのセマフ
オアに送られる。他の動作においては、セマフオアから
の信号が受信される。(ここで送出動作はしばしばV動
作と称され、受信動作はP動作と称される)。 送出動作により、プロセスはデータあるいは当該データ
がレディー状態にあることを表わす信号を送出すること
ができる。セマフオアは、他のプロセスが他の信号を受
信することができる状態になるまで該信号を格納する。
したがって、送出プロセスは、自由に行なうことができ
る。受信動作では、特定のセマフオアが検査されて信号
が受信プロセスは続けて実行される。しかしながら信号
がセマフオアに存在しない場合には、受信プ。セスは待
機状態に入る。そこでセマフオァは、待機待ち行列の先
頭に対するポィンタとしての働きをなす。フ。。セスは
、他のプロセスが特定のセマフオアに信号を送出するま
で該特定のセマフオアで待ち行列で待機状態に留まる。
このようにして、セマフオアは、或るプロセスが信号を
受信するまで当該信号を保持することができるし、また
セマフオアは、信号が該セマフオアに送出するまでプロ
セスを保持することができる。また、プロセスからプロ
セスにメッセージを移すことができる。 メッセージは追加の情報を加えた信号と同じ性質を有す
る。情報の一部はハードウェアによって供給され、一部
は当該メッセージを送出するプロセスのプロシージャに
よって供給される。メッセージは、送出プロセスのプロ
セス名を含む。 したがって、多数のプロセスは送出プロセス名が付いた
単一のセマフオアを介して情報を送ることができる。メ
ッセージのセマフオアは、プロセスによる受信を待機し
ているメッセージの待ち行列を有し得る。 信号セマフオアでメモリ空間もしくはスペースに対する
要求が増減し、メモリ管理上の問題が生ずる。この問題
も、空きメッセージ・リンクの待ち行列で解決される。 これらのリンクは、メッセージ・リンクを供給したり吸
収する必要がある場合に容易に見付けることができるセ
グメント内の既知の個所に存在する。セマフオアおよび
該セマフオアに形成された待ち行列は、異なったプロセ
スによって共用されるので、セマフオア構造全体は保護
される。 この保護は、セグメントを保有するセマフオアへのアク
セスを制限するハードウェアおよびソフトウェア規約に
より達成される。 したがって、セマフオアは、幾つかのGセグメント(シ
ステム交信が必要な場合)であり得るセマフオア・ディ
スクリプタ・セグメント内で存在しなければならない。
これに対して、総てのGセグメント(但しGOを除く)
は、セマフオア・ディスクリプタ(記述子)セグメント
である。各セマフオア・ディスクリプ外ま、セマフオア
に対するポィンタを保有している。 セマフオアのアドレスはセマフオア・デイスクリプタを
用いて発生され、したがってセマフオアに対し付加的な
保護が与えられる。任意のセマフオア・セグメントは、
セグメント内の相対位置およびセグメント番号を用いて
論理的にあるいはG,D番号を用いて直接的にアドレシ
ングすることができる。プロセス制御ブロックの構造 第4図を参照するに、この図には、プロセス制御ブロッ
クPCBのフオーマツトが示してある。 プロセス制御ブロック400は、CPU状態を退避する
ためのプロセスに対し利用可能である王〆モリ内の記憶
領域である。PCBのアドレシングは、第5図と関連し
て上に述べたような仕方で行なわれる。PCBボィンタ
507(第5図)は、第4図に示す記憶場所01こおけ
るプロセス制御ブロックPCBを指定する。下向きの方
向に進んで記憶場所は4バイトづつ増加し、他方、記憶
場所0から上向きの方向において記憶場所は8バイトづ
っ増加する。下方に向う記憶場所は0から上向きの方向
における記憶場所は負の方向にあると見倣される。上向
きの方向の記憶場所は任意選択的なものであり、プロセ
ス制御ブロックに含ませても含ませなくても良い。また
記憶場所148なし・し176も任意選択的なものであ
る。(記憶場所の下にある数字は、プロセス制御ブロッ
クPCBの基準場所からの変位をバイト特定する数字で
あって、図面に示してある部品もしくは要素を識別する
のに通常用いられる参照数字と混合してはならない点に
注意されたい。バイト0からバイト16まで(但しバイ
ト16は含まない)に、4つのプロセス主ワードPMW
OないしPMW3で格納され、各プロセス主ワードPM
Wは4バイト長を有する。プロセス主ワード0は0なし
、し3を占拠し、4つの部分からなる。即ち、能力バイ
トと、優先順位バイトと、状態バイトと、修飾(装飾)
拡張バイトDEXTとからなる。第10a図ないし第1
0d図を参照するに、これら図には、能力バイト100
1の詳細(第10b図)と共にプロセス主ワ−ドPMW
Oの詳細が示されている。第10b図を参照するに、第
1番目のビット1005は、プロセスに対し時間アカウ
ンチング機能が実行されているか否かを指示するための
アカゥンチング・モード・ビットである。アカウンチン
グ・モード・ビットloo5が2進「0」にセットされ
ている時には、当該プロセスに対する時間アカウンチン
グ機能は実行されていない。他方、アカウンチング・モ
ードlo05が2進「1」にセットされている時には、
時間アカウンチング(時間計数)が実行されつつある。
科学モード・ビット1006が零にセットされると、こ
のことは、マシンもしくは機械の科学的レジスタの退避
が行なわれておらず、第4図に示したバイト148なし
、し176に位置する科学的レジスタ退避領域がプロセ
ス制御ブロックPCB内に存在しないことを表わす。科
学モード・ビット1006が2進「1」にセットされて
いると、任意選択的な科学的相が存在しプロセスで利用
されていること、ならびに科学的レジスタ退避領域が必
要に応じ科学的レジスタの内容を退避するのに使用され
ていることを意味する。コード・モード・ビット100
7は、標準コードの集合または互換性コード集合が、プ
ロセスによって用いられているか否かを表わし、2進「
0」の場合には、標準コード集合が使用されていること
を表わし、他方、第3ビット位置1007における2進
「1」は互換性コード集合が用いられていることを表わ
す。能力バイトの残りのビットは零にセットされる。優
先順位バイト1002の詳細は、第10c図に示してあ
る。 第10c図を参照するに、優先順位バイト1002の最
初から4つのビット1008は、当該プロセス制御ブロ
ックPCBと関連のプロセスの優先レベルを設定するの
に用いられる。各プロセスには競合するプロセスを順序
化する。即ち、{a}レディー状態にあるプロセスのう
ち実行すべきプロセスを選択する。{b}待ち行列中に
プロセスを組入れるのに用いられる16の優先レベルの
うちの1つを割当てる。優先度すなわち優先順位は0か
ら15に向って減少し、そして所与の優先レベルに対し
ては、FIF○(先入れ、先出し)ルールが適用される
。優先度バイトすなわち優先順位バイト1002の次の
4つのビット1009は零である。第10d図を参照す
るに、この図には状態バイト1003の詳細が示してあ
る。 状態バイトは、プロセス制御ブロックPCB400と関
連のプロセスに関する情報を与えるのに用いられる。活
動フィールド・ビットAIOI0は、プロセスが付活も
しくは起動されると2進「1」にセットされる。中断も
しくは休止フィールドSIOIIは、プロセスが中断さ
れると2進「1」セットされる。サブ状態フィールドS
SIO12は、2ビット・フィールドであって、プロセ
スの次のようなサブ状態もしくは下位状態を定義する。
即ち、(a}2進「00」にセットされると、プロセス
は休止状態である。(b}2進「01」にセットされる
と、それはプロセスがレディー状態のプロセスの待ち行
列(Q/PR/RDY)で待機中であることを意味する
。‘cー2進「10」にセットされると、それはプロセ
スがセマフオアの待ち行列(Q/PR/S)内のセマフ
オアで待機中であることを意味する。‘dー2進「11
」にセットされると、それはプロセスがプロセッサによ
り実行されつつあることを意味する。演算中、フィール
ドMOIIO12は、割込みが出じた時に2進「1」に
セットされて命令の実行中に、即ちプロセスの完了前に
考慮される。拡張修飾(装飾)モードビットEXTDI
O14は、マシンのエミュレーション・モードである拡
張修飾モードでプロセスが処理されている時に「1」に
セットされる。ビット1015および1016は「0」
にセットされる。プロセス主ワードPMWOの4番目の
バイトは、システムがエミュレーション・モードである
時に用いられるものであって、修飾拡張番号を含む。プ
ロセス主ワードPMWIは、プロセス制御ブロックPC
Bのバイト4なし、し7に格納されている。 PMWの詳細は第10e図に示してある。この状態バイ
ト1016はPMWIにおける第1番目のバイトであっ
て状態レジスタの内容を格納する。マルチプロセッサ・
バイトMPIO18はマルチプロセッサのアーキテクチ
ヤにおいて有意味であり、そうでない場合にはこのフィ
ールドは零である。 プロセス主ワード1の第2および第4番目のバイトは、
通常の動作においては奏でなければならないNBZフィ
ールド1 0 1 7および1 0 1 9である。プ
ロセス主ワードPMW2は、プロセス制御ブロックのバ
イト8ないし11を占め、詳細は第10f図に示されて
いる。 第10f図を参照するに、ビット4なし、しビット31
からなるフイールドは、プロセスが待機状態または休止
(中断)状態にある時にPCBが連結されるセマフオァ
のローカル名SEG,SRAI021を収容している。
例外クラスおよびタイプフィールド1023は、例外後
に休止状態にプロセスに入らせる割込み類似例外のクラ
スおよびタイプを収容している。ビット4なし、し15
からなるフイールド1022は、プロセスが上に述べた
ような状態とは異なった状態にある時には無意味である
。プロセス主ワードPMW3は、PCB400内のバイ
ト12なし、し15を占め、そして修飾拡散テーブルを
指定する。 PMW3の詳細に関し第10d図を参照するに、DET
SZフィールド1024は、テーブル中のェントリ(記
述項)の番号を定め、このフィールドが零である時には
、プロセス2は、修飾もしくは装飾拡張を許されない。
DETAフィールド1025は、16ぐィト単位の修飾
拡張テーブルの絶対アドレスであって、DETSZが「
0」でない場合にのみ有意味である。 修飾もしくは装飾拡張テーブルはDETSZェントリ(
記述項)から構成されている。各ェントリは1バイトの
大きさである。テーブルのDEXT番目のェントリが、
修飾拡張モードDEXTで動作するプロセスの能力を定
める。このDEXT番目のバイトが零である時には、修
飾拡張番号DEXTは許容されず、他方、DEXT番目
のバイトが「1」である時には、修飾拡張番号EDXT
が許容されず、他方、DEXT番目のバイトが「1」で
ある時には、修飾拡張番号DEXTが許容される。「0
」および「1」以外のDEXTの値はィリーガルすなわ
ち不法である(第10a図、DEXT番号1004を参
照)。PCB400のバイト16なし、し23は、それ
ぞれ2つのアドレス空間ワードASWOおよびASWI
を収容しており、そして各ASWはセグメント・テーフ
ル・ワードアレイを保有している。 ASWOおよびASWIはそれぞれ、第10h図に示し
た同じフオーマツトを有する。セグメント・テーブル・
ワードのアレイの大きさは、アレイ内のセグメント・テ
ーフル・ワードの数によって定められ、典型的にはAS
W01こ対しては6で、そしてASWIに対しては8で
ある。STWSZフィールド1026はセグメント・テ
ーブル・ワードのアレイをの大きさを指示する。セグメ
ント・テーブル・ワード・アレイ・フイールドSTWA
I 027は、16バイト単位でアレイの絶対アドレス
STWAを格納している。アレイの絶対アドレスは、バ
イト単位でSTWAの1所音である。PCB内のバイト
24なし、し27は、第10i図に詳細に示してある例
外ワ−ド8XWを構成する。この例外ワードは、プロセ
スに続いてとられるべき動作もしくはアクションを、プ
ロセス主ワードPMW2に格納されているそのクラスに
従って定義する例外クラス・テーブルに対すポィンタS
EC,SRAI029を有する(第10f図参照)。例
外ワードEXWのMBZフィールド1028は零でなけ
ればならない(必要零)。PCBのバイト28から31
に位置したスタツク・ワードSKWはプロセスが走行し
ていないときプロセスのスタックのTレジスタの最初の
値を有し、第10i図に詳述されている。ビット0とビ
ット1はTAGフィールド1 030を定義する。TA
Gはその内容によってディスクリプタの型を示しSKW
に対しては零でなければならない。SKWワードのビッ
ト2とビット3は保護目的のためにスタツクのセグメン
ト化アドレスと関連したりング・番号を有するRING
フィールド1031を含み、そしてこの場合ゼロでなけ
ればならない。ビット4から31はセグメント番号SE
Gとセグメント相対アドレスSRAI032とを含むも
のであり、セグメント・テーブルに記載されたセグメン
トとセグメント内のセグメント相対アドレスとを固定す
るフィールドである。スタック・ワードSKWはプロセ
スが走行状態を離れる度毎に更新される。それはプロセ
スが走行するようになる度毎にTレジス夕内容を回復す
る為に使用される。最後の例の場合、TAGI 030
とRINGI031は零である事を検査され、さもなけ
れば不法PCB例外がおこる。PCB400のバイト3
2から35は時にはICCとも呼ばれる命令カウンタ内
容ワードICWを含む。 第10k図を参照するに、この図には、命令カウンタワ
ードICWの詳細が示されている。図中、TAGフィー
ルド1033は2進「00」を格納していなければなら
ない(即ち、零以外の値は命令カウンタにおいては不法
である)。ビット2および3を占める現在のRWGフィ
ールド1034が、主メモリに対するアクセス権の決定
で用いられるプロセスの現在のリング番号を定める。ビ
ット4ないし31は次に実行される命令のアドレスを定
めるセグメント番号およびセグメント相対アドレスSE
E,SRAI035を確定する。バイト36なし、し3
9のM欧フィールドは零でなければならない(MBZフ
ィールドは、常に、零でなければならないフィールドを
指示する点に注意されたい)。MBZワードは、PCB
が名称J,Pからアクセスされる都度試験される。該M
旧Zが零でない場合には、不法PCB例外が生ずる。ス
タツク・ベース・ワードSBWO一2はプロセス制御ブ
ロック内のバイト40から51を占めている。 それらのワードは第10i図で詳述する同様な形式を有
する。それらはスタックオベレーション中利用され、使
用されるそれらのTAGフイールド1036とRING
フイールド1037は何時でも零でなければならない。
さもなければ不法PCB例外がおきる。ビット4からビ
ット31はそれぞれリング0,1,2に対するスタツク
・セグメントの初めのバイトのセグメント化アドレスS
EG,SRAI038を含む。プロセス制御ブロック4
00のバイト52からバイト83はベース・レジスタの
退避領域に対して保有されたスペース(8ワード)であ
る。 バイト84から147は全ての汎用レジスタ(16ワー
ド)の値を退避するために用いられる退避領域である。
バイト148から179は科学レジスタ(8ワード)を
退避するために用いられる退避領域である。PMWOワ
ード内のアカウンチング・モード・ビットがセットされ
ると、時間アカウンチング(計数)の目的で、PCBO
アドレスの情報で該PCB400内に5つの倍長ワード
が設けられる。 これらワードはPCBアドレスから8を引いた場所から
、PCBアドレスから40をを引いた場所に再配置され
る。各ワードは最初から52ビットに、マイクロ秒単位
で表わされる時間または期間を収容しており、ビット5
2なし、し63には零が入れられている。残りの時間切
れ情長ワードPT○(PCB内の「0」の上の最初から
8バイト」は、時間切れ例外が生ずる前にプロセスのた
めにプロセッサが実際に使った時間の量を格納している
。このRTOワードは次のような仕方で更新される。即
ち、プロセスが実行状態から出る都度、プロセス・タイ
マの値力主RTCワード‘こ格納されるように更新され
る。プロセスが実行状態に入る都度プロセスタイマ値は
、RTOからロ−ドされる。バイト7ないし15からな
る実行時間アカウンチングRUA倍長ワードは、プロセ
スが実行状態にあったプロセッサ時間の全体の量を特定
するタイムカウンタである。このカウンタで計数された
時間は、プロセスのために排他的にプロセッサによって
実際に費された時間である。RUAワードは、次の仕方
で更新される。即ち、プ。セスが実行状態を出る都度、
プロセス・タイマPTの値を読取ることにより更新され
る。RTOおよびPTの内容の差はRUAに加算される
(即ち、連続的に、PTの値はRTOに格納される)。
プロセスが中断されている時間は計算されない点に注意
されたい。RTOおよびRUAワードは、アカウンチン
グ・モード・ビットが「0」に設定された場合でも更新
される。しかしながら、(後述する)WTA,CETお
よびRTAワードは、プロセス主ワードPMWO内のア
カウンチング・モード・ビットが「1」に設定された場
合にのみプロセス制御フロックに設けられる。これらワ
ードは、この場合にのみ更新される。バイト17なし、
し23における待ち時間計数WTAワードは、プロセス
が待機状態にあった全実時間量を特定する実時間カウン
タである。WTAワードは次の仕方で更新される。即ち
、プロセスが待機状態から出る都度ディ(船y)クロツ
ク(図示せず)の時間TODを読取り、TODの値から
CETワードの値を差引いたものをWTAワ−ド‘こ加
算することにより更新される。バイト24ないし31に
あるレディー状態時間計数RTAワードは、プロセスが
レディー状態にあった実際の全時間量を特定する実時間
カゥンタを晃成する倍長ワードである。 このRTAは、次の仕方で更新される。即ち、プロセス
がレディー状態を出る都度、デイ・クロックの時間値T
ODを議取り、このTODの内容からCETの内容を引
いたものをRTAに加えるのである。バイト32なし、
し39における現ェントリ時間CET倍長ワードは、プ
ロセスが次の状態、即ちレディー状態、待機状態および
休止もしくは中断状態のうちの1つの状態に入った歴日
時間もしくはディ・タイムを記録する。 システム・ベースの構造 第6図を参照するに、この図にはシステム・べ−ス60
0のフオーマツトが示してある。 このシステム・ベースは絶対主メモリ内にありファーム
ウェアによって展開され、そして読出すことはできるが
書込むことはできない境界アドレス・レジスタBARを
介してアクセス可能である。この境界アドレス・レジス
タBARは、ハードウェアのために予約された主メモリ
内の領域の下側にあって、ハードウェアのために予約も
しくは保存されているこのメモリ内の領域とシステム・
ベース600とを分離している。そこで第6図を参照す
るに、システム・ベース60川ま、現在実行中のプロセ
スに対するジョブ・ステップ番号およびプロセス群番号
J,Pを含む多数のシステム属性を収容している。プロ
セスJ,Pの論理名から、対応のプロセス制御ブロック
PCBの絶対アドレスが得られる。J−テーブルの大き
さおよびアドレスは、JーテープルワードJTWの内容
によって定められる。このワードは、BARレジスタに
よって定められるアドレスに位置する。JTWのフオー
マットは第11a図に示してある。第12図に示したJ
−テーブル1204の大きさもしくはサイズJTSZI
IOIは、223固までのェントリとすることができ
るJ−テーブル1204内のエントリの数を定める。J
TSZI101は、8ビットの正の整数である。JがJ
TSZよりも大きい場合には、Jーテーブル例外が生ず
る。Jーテーブル1204の絶対アドレスはJーテーフ
ル・ポインタ1102に16を乗ずることによって得ら
れる。Jーテーブル1204は第11b図に詳細に示さ
れているフオーマツトを有するJ−テーフル・ェントリ
を格納している。各Jーテーフル・ェントリは、P−テ
ーフル・ポィン夕1104に16を乗ずることによって
得られるPーテープル1205の絶対アドレスを定める
。P−テーブルの大きさもしくはサイズPTSZII0
3は、Pーテーブル内のェントリの数を定める。PTS
Zは、8ビットの正の整数であり、この整数は典型的に
は0から255までの範囲で変化して、P−テーブル内
のェントリの数を表示する。P−がPTSZよりもも大
きくなるとP−テーブル例外が生ずる。P−テーブルー
205の各ェントリは、プロセス制御ブロック・ポイン
タ1107に16を乗ずることにより、プロセス制御ブ
ロックPCB1206の絶対アドレスを定める。存在ィ
ンジケータPII05は、2進「0」にセットされると
PCB1206の不在を表わし、そして2進「1」にセ
ットされた時にはPCBの存在を指示する。(存在ィン
ジケータPII05が「0」であると、空きP−テーフ
ル・ェントリ例外が生ずる)。P−テーフル・ィンジケ
ータ1106(第11c図)のビット1なし・し7は「
0」でなければならないMBZ。さもなければ、不法P
−テーフル・ェントリ例外が生ずる。システム・ベース
600の4を加えたアドレスBARには、第1 1d図
に詳細に示したG−テーフル・ワードGTWのフオーマ
ット・バイトが在る。 第12図のGセグメント・テーブル1212の大きさお
よびアドレスは、上記Gーテープル・ワードGTWの内
容によって定められる。G−テーブル1212の大きさ
もしくはサイズGTSZII08は、典型的には255
個までのェントリとすることができるG−テーブル内の
ェントリの数を定義する。GTSZは8ビットの正の整
数である。Gの数がGTSZよりも大きくなると、Gー
テーフル例外が生ずる。Gーテーブル1212の絶対ア
ドレスは、G−テーフル・ポイン夕1109に16を乗
ずることによって得られる。Gセグメント・テーフル、
エントリイのフオーマツトは、2ワ−ド分の大きさ(8
バイト)を有しており3セグメント・ディスクリプタと
称される。Gセグメント・ディスクリプタのフオーマッ
トは、第11e図および第11f図に詳細に示してある
。全てのGセグメント・ディスクリプタはダイレクトで
あり、したがって間接ビット1 1111は「0」でな
ければならない。さもなければ、不法セグメント・ディ
スクリプタ例外が生ずる。存在ィンジケータPIIIO
は、1ビット・フイールドであって、2進「1」にセッ
トされた時には、上記ディスクリプタが対応するセグメ
ント番号に対し当該セグメントが主メモリに定義されて
いることを表し、他方「0」にクリャされている時には
セグメントは定義されておらず、セグメント・ディスク
リプタに対する参照で、不明セグメント例外が生ずる。
利用可能なビットAII12は1ビット・フィールドで
あり、セグメントが利用可能であるか杏かを指示する。
このビットは、上記セグメントが定義されている場合(
即ちPが2進「1」に等しい場合)にのみチェックされ
る。そうでない時には無視される。フラッグ・フィール
ドUII13は、セグメントにアクセスがなされたか否
かを指示する。Uフィールド・ビットが2進「0」にセ
ットされている時には、セグメントはアクセスされなか
ったことを表し、他方、Uフィールド・ビットが2進「
1」にセットされている時には、セグメントにアクセス
がなされたことを表わす。書込みフラッグ・フィールド
NII14は、セグメントに書込みがなされたか否かを
表わす。Wが2進「0」にセットされている時には、こ
のセグメントには書込みはなされていない。他方、Wが
2進「1」にセットされている時には、セグメントに書
込みがなされている。Gセグメント・ディスクリプタの
ゲート・インジケータGSI I 15は2進「01J
にセットされてし、なればならなにい。そうでなければ
、不法セグメント・ディスクリプタ例外が生ずる。その
理由は、Gセグメントは常にセマフオアを収容しており
(但し逆は真ではない。即ち全てのセマフオアがGセグ
メント内に在る必要はない)、そしてセマフオア命令で
、GSコードは2進「01」でなければならない。セグ
メント1214のベースの絶対アドレスは、第11e図
のGセグメント・ディスクリプタにおいて、24ビット
のベース・フイールド1116により定義される。この
フィールドの内容に16を乗じて絶対アドレスを得る。
第11f図のGセグメント・ディスクリプタの第2番目
のワードはSテーブル1212においてビット位置32
ないし63を占める。RUSフイールド1117(ビッ
ト32ないし39)は、ソフトウエアでの使用のために
予約されており、本例の場合のようにGセグメント・デ
ィスクリプタとして使用される時には一般に無視される
。M旧Zフィールド1118は零でなければならない。
そうでなければ、不法セグメント例外が生ずる。M旧Z
フィールド1118はビット40なし、し51を占める
ので、小さいセグメントSIZのためのフイードである
SIZFフィールド1 1 1 9がセットされる。し
たがって全てのGセグメントは小セグメント型(タイプ
)でなければならない。セグメントSIZIII9は、
12ビットの正の整数であって、セグメント内のバイト
数を定め、そしてセグメントの大きさは16の倍数とし
て解釈される。したがって、Gセグメント1214のた
めのセグメントの大きさは、216バイトを超えること
はできない(小セグメント)。再び第6図のシステム・
ベー600を参照するに、BARに8を加えたものとB
ARに44を加えたものとの間に9つのシステム例外セ
ル・ワードが位置する。 システム例外セル・ワードEXCのフオーマットは第1
1g図に示してある。関連のプロセスへのメッセージの
伝達にはセマフオアが用いられているので、システム例
外が生じた時に、これらセマフオアに対するポインタは
、それぞれがシステム例外セルと称され、システム例外
クラス毎に1つずつ設けられている9つの記憶場所に存
在する。M欧フィールド1120‘ま、2進「0」にセ
ットされなければならない。さもなければ、システムの
チェックが行われる。各例外セルEXCはそれぞれ、シ
ステムの名前G,DI121および1122を保有する
。システム・ベース600のBARに44を加えた箇所
にあるチャンネル例外セルは、先に述べたシステム例外
セルに類似のフオーマットを有しており、チャンネル例
外が生じた時に関連のプロセッサにメッセージを伝達す
るのに用いられるセマフオアのシステム名G,Dを保有
している。 内部プロセッサ待ち行列ワードmQWは、BARに48
を加えた場所で始まり、そのフオーマツトの詳細は第1
1h図に示してある。 IPQWワードは、第9図に参照数字905および80
5で示すように、レディー状態(準備状態)のプロセス
の待ち行列(Q/PR/RDY)の先頭を指定する。レ
ディー状態のプロセスに待ち行列(Q/PR/RDY)
は、レディー状態にある全てのプロセスを連結(リンク
)する。この待ち行列は、レディー状態のプロセス待ち
行列の先頭を指定することにより、IPQWワードのQ
/PR/RDYフィールド1124(第11h図参照)
の先頭により参照される。Q/PR/RDYI124の
先頭は、GOセグメントと称されるGセグメント番号0
のベースもしくは基底からQ/PRノRDYの第1番目
のバイトへの変位である16ビットの正の整数を保有す
る。このQ/PR/RDYビット・フイールドが「0」
である場合には、レディー状態の待ち行列は空きである
と見倣される。M旧Zフィールド1123は「0」でな
ければならない。そうでない場合にはシステム・チェッ
クが行われる。システム・ベース600のBARに52
を加えた箇所に、初期および現在の再試行計数のための
記憶場所があり、そのフオーマットは第11i図に詳細
に示してある。 NFSフィールド1 1 25は、非機能記憶フィール
ドであって、システム・ベースによっては用いられない
。初期再試行計数フィールド1126および現在再試行
計数フィールド1127は、機械もしくはマシン・エラ
ーが生じてマシン故障例外状態が発生される以前に、自
動命令再試行が実行される回数を制御するのに用いられ
る。これらフィールドには、リセット再試行計数(図示
せず)により同じ数がロードされる。第11i図は示さ
れている実行プロセス・ワ−ドRPWは、システムベー
ス6 0 0のBARに5 6を加えた記憶場所に格納
されて、モノ(単)プロセッサ・アーキテクチャの場合
t優先的に実行プロセスの名前を記憶するのに用いられ
る。 NFSフィールド1128および1131は、それぞれ
非機能記憶フィールドであって任意の設備により任意の
目的で用いることができるが、一般には、システム・ベ
ースによっては用いられない。或る実行プロセスの優先
レベルは、PRIフィールド1129に格納されている
。ABフィールド1130には、非同期トラップ・ビッ
トが格納されており、他方非同期トラツプ・リングは、
ARNフィールド1132内に格納されている。モノ(
単)プロセッサ・アーキテクチャの場合、実行中のプロ
セスの論理名J.PはJ.Pフィールド1133に記載
される。第11k図に示してある絶対化テーフル・ポィ
ンタ・ワードは、システムベース600内のBARに6
0を加えた箇所に位置し、そして初期システム・ロード
において、BARの内容をISLプログラム内の全ての
絶対アドレスに加えることにより、初期システム・ロー
ドISLプログラムにおける絶対アドレスの初期設定に
用いられる。 絶対化テーフル・ポィンタ1135は、絶対化テーフル
(図示せず)の記憶場所を定める。絶対化テーフルの大
きさもしくはサイズは、ATSZフィールド1134に
より示される。第111図に示してあるCPUシリアル
番号ワードは、BAR64を加えた箇所に記憶されてい
る4バイトワードであって、CPUシリアル番号フィー
ルド1 1 36に、当該CPUのシIJアル番号を保
有している。 第11m図に示してある主メモリ上限ワードは、BA則
こ68を加えた場所に格納されておって、王〆モ川こお
ける最後に利用可能なワードの絶対アドレスを与えるこ
とにより、主メモリの上限1139を指定する。 BARに72を加えた記憶場所には、初期システム・ロ
ード(ISLデバイス・チャンネル番号CN)1140
およびハードウエア・デバイス・チャンネル番号PCN
)1 141を与えるための第11n図に示したワード
が格納されている。 コンピュータ・システムで用いられるデバイスのタイプ
(型)およびサブタイプは、それぞれ、フィールド11
43および1144でハードウエア・デバイス・タイプ
・ワード(第11o図)によって示されている。同図に
おいて、RSUフィールド1142はソフトウェアのた
めに予約されている。このワードはシステム・ベースの
BARに76を加えた場所に在る。第11p図に示して
ある類似のタイプフオーマツトを有する類似のワ−ドは
、初期のシステムロードで用いられるデバイスのタイプ
およびサブタイプを格納している。このヮード‘まBA
Rに80を加えた箇所に存在する。コンピュータの再起
動ボタンを押すと、模擬V−動作がセマフオアで行われ
、レディー状態に入る。このセマフオアに対するポイン
夕はシステム・ベース600のBARに84を加えた場
所に存在し、再起動セルと称され、第11q図に示すフ
オーマットを有している。このフオーマットは上に述べ
たシステム例外セルに類似しており、Gフィールド11
49およびD−フィールド1150に、それぞれセマフ
オアのシステム名G、Dを収容している。M故フィール
ド1148は「0」でなければならない。コンピュータ
・システムに対し1つ以上のプロセッサが存在する場合
には、多重処理拡張のためのワードが、システム・ベー
ス600内のBARに88を加えた場所に設けられてい
る。 このワードの詳細は第11r図に示してある。システム
・ベースおよびプロセス制御ブロックの使用に関する例
第12図を参照するに、この図にはユーザのセグメント
、システム・セグメント或いはまたレディー状態プロセ
ス待ち行列(Q/PR/RDY)セグメントにアドレス
およびアクセスするために、プロセス制御ブロックと組
合せてシステム・ベースがどのように用いられるかに関
する一例が示してある。 主メモリ120川ま、ハードウェア使用のために予約さ
れている部分1203を有している。境界アドレス・レ
ジスタBAR1202は、システムベース1215を、
ハードウエアのために予約してあるメモリ部分1203
から分離している。境界アドレス・レジスタBAR1
202は、境界アドレス・レジスタの内容を、システム
・べ−ス内の所望の項目の4バイト単位の変位に加算す
ることにより、システム・ベース1215内の項目をア
ドレシングするのに用いられる。このアドレシングで、
システム・ベース内の所望の項目の第1番目のバイトが
指定される。第12図においては、Jーテーブルワード
JTWでBAR1202が指定されている。既に述べた
ように、Jーテーブルワードは、Jーテーブル1204
を指定するポィンタを有する。第5図に示されているJ
番号をインデクシングすることにより、J−テーフル・
ェントリ1216が得られる。このJーテーブル・ヱン
トリには、Pーテーブル1205の絶対アドレスを指定
するP−テーフル・ポィンタが存在する。そこでP−テ
ーブル1205内の番号(第5図参照)をィンデクスす
ることにより、プロセス制御ブロック1206の絶対ア
ドレスが得られる。プロセス制御ブロックPCB120
6と関連して既に述べたように、2つのアドレス空間ワ
ードASWOおよびASWIが在る。べ‐ス.レジスタ
1201内のセグメント・テーフル番号フィールドST
Nの上位ビットが、上記2つのアドレス空間ワードのう
ちの1つ、この例では、セグメント・テーフル・ワード
・アレイST「yA1 208を指定するセグメント・
テーフル・ワード・アレイSTWAポィンタを有するA
SWIにアクセスするのに用いられる。ベース・レジス
タ1201のセグメント・テーブル番号STNと共に、
8つのセグメント・テーフル・ワードのうちの1つが、
8つのセグメント・テーブル1210のうちの1つを指
定するTSWA1208でアクセスされる。ベース・レ
ジスタ1201からのセグメント・テーフル・エントリ
STBがそこで用いられて、セグメント・ディスクリプ
タが格納されているセグメント・テーフル1 210内
の25針固のヱントリのうちの1つが謙出される。読出
されたセグメント・ディスクリプタは、そこでユーザ・
セグメント1211をアクセスするのに用いられる(詳
細に関しては、本願と同一の出願人に譲渡されている「
SegmentedAddressDevelopme
nt」に関する1974王5月16日付の放棄した米国
特許豚第笛er.No.470496の継続特許願であ
る「Addresslng of OperandsW
ithin a Segment Util
jzing Segment戊scriptors」に
関する1978年12月12日付のBienvenuの
米国特許擬$er.No.96869度参照。なおこの
米国特許願の明細書の記述は参考のために本明細書にお
いて援用する)。なお類似の開示事項に関しては「Ap
pra血s for DevelopinganAdd
ress of a Segmentwithin M
ainMemoびand an Addres of
an Operand within thesegm
ent」に関する1973年12月17日付のBrow
n他の米国特許願Ser.No.425356、現米国
特許第3938096号明細書を参照されたい。セマフ
オアを格納するのに用いられているシステム・セグメン
ト1214にアクセスするために、システム・ベース1
215内のG−テーフルワードGTWが用いられる。 このGーテーブル・ワードのアドレスは、システム・ベ
ース内のG−テーブル・ワードの変位を境界アドレス・
レジスタBAR1202に加算することにより求められ
る(第6図参照)。このGーテーフル・ワードGTWは
、G−テーブル121 2を指定するG−テーブル・ポ
ィンタを含む。システムに利用可能なG番号を用いてG
ーテーブルを索引することにより、システム・セグメン
ト1214にアドレスするのに用いられるGセグメント
・ディスクリプタがアクセスされる。同様にして、シス
テムベース1215を用いQ/PR/RDYセグメント
1213を指定する内部プロセッサ待ち行列ワードIP
QWを検索することにより、レディ状態プロセス待ち行
列(Q/PR/RDY)にアクセスすることができる。 制御装置第13a図−第13c図に制御装置の詳細が図
示されている。 制御装置は中央処理装置(CPU)から分離して図示さ
れているが、実際にはCPUの一部分であり、制御メモ
リCSU1301、制御メモリ・インターフェース・ア
ダプタCIA1302とそれに従属する副装層、すなわ
ち制御メモリ・ローダCSL1303と制御及びロード
装置CLU1304よりなる。 制御メモリCSU1301は制御及びロード装置CLU
1304及び制御インターフェース・アダプタCIA1
302を経て制御メモリ・ローダCSL1303からの
マイクロ命令を受ける。 正常な動作条件下では、マイクロプログラムはシステム
の初期設定中外部資源からロードされ、機械の永久制御
機能となる。しかし、制御メモリCSU1301は種々
の中央処理装置CPU1306の演算モードを提供する
方式で再ロードされ、かつ初期設定される能力を有する
。CPUのオペレーションの次の諸モードがCSU13
01の制御下で利用しうる;【a}ネイテイブ・モード
すなわち本釆モード;(b’エミュレーション・モード
:‘c}ネィテイブ・モードとエミュレーション・モー
ドの同時発生モード;{d}診断モード。この能力は可
能であり、なぜならばCSU内に存在するマイクロ命令
が、エミュレーション装置1316、演算論理装置AL
U1 317、命令取出し装置IFU1 318、アド
レス制御装置ACU1319及びデータ管理装置DMU
1321の如きすべての他のCPUの作用装置のオペレ
ーションを制御する為に使用されるマイクロオペレーシ
ョンの資源であるからである。前述した汎用レジスタ1
307、ベース・レジスタ1308、科学的レジスタ1
309、Tーレジスタ1310、状態レジスタ1311
、命令カウンタIC1312、及びハードウェア制御マ
スク・レジスター313も又中央処理装置CPU130
6内に図示されている。代表的には、制御メモリCSU
1301は、読み取り:書き込みランダム・アクセス・
メモリ(RAM)と混合された弧のバィポーラ集積回路
のプログラマブルな議出し専用メモリ(FROM)であ
る。 それは典型的な150ナノセコンドの読み取りサイクル
と450ナノセコンドの書き込みサイクルを有する。制
御メモリの各記憶場所は1つの84ビットマイクロ命令
ワード(後で詳述される)を記憶し、そして各マイクロ
命令ワードもしくは語は1つのCPUサイクルを制御す
る。制御メモリCSU1301の制御記憶の各記憶場所
が読み取られるとき、その内容はマイクロオペレーショ
ン制御信号を提供するマイクロオペレーション・デコー
ダによって符号化され、該制御信号の各々は、CPU内
に特定のオペレーションを生ぜしめる(後で詳述する)
。(後で詳述する)各マイクロ命令ワード内の記憶場所
をグループ化する事によって特定のCPUオペレーショ
ン或いは命令を行うことができる制御記憶シーケンスが
得られる。 各命令はCPUによって開始されるので操作符号(オペ
レーション・コードOP)内のあるビットは制御記憶開
始シーケンスを決める為に使用される。命令デコ−ド機
能によってセットされ或いはリセットされるあるフロッ
プ(図示せず)の検査は、必要時に制御メモリがより特
定のシーケンスへ分岐するのを可能とする。制御メモリ
・インターフェース・アダプタCIA1312は制御メ
モリ1301、データ処理装置DMU1321、アドレ
ス制御装置1319、及び第13b図の制御メモリ13
33のオペレーションを指示する演算論理装置ALU1
317の間で情報の通信を行なっている。 CIA1302は制御記憶アドレス修飾論理、試験、誤
りの検査、及びハードウェアアドレス成生を含む。ハー
ドウェア・アドレス成生は一般に誤りシーケンス、ある
いは初期設定のシーケンスの開始アドレスを生ずる為に
利用される。データ管理装置DMU1321はCPU1
306と第1図の主メモリ及び/又はバッファ・メモリ
との間のインターフェースを提供する。 どの装置が他の装置によって必要とされる情報を含み、
かつ適当な時にCPUレジスタ内に情報をストローブし
たかを識別するのがデータ管理装置の責任である。デー
タ管理装置DMUは又、部分的書き込みオペレーション
の間中マスキングの役目をも果している。命令取り出し
装置IFU1 3 1 8はDMU1 321、ACU
1319、ALU1 3 1 7、及びCSU1301
とインターフェースしており、CPUに命令が供給され
るのを保つ事に対して責任がある。 命令取り出し装置は現在の命令の完行される以前にその
レジスタ内で利用しうる次の命令を有している。この能
力を備える為に、命令取り出し装置mU1318は通常
1つ以上の命令を有する12バイトの命令レジスタ(図
示せず)を含有する。次いで『UはCSUの制御下で、
命令が実際上必要とされる以前に主メモリから情報(命
令)を要求し、それによって常に12バイトの命令レジ
スタが更新せしめられる。命令はそれ故、通常使用され
ないメモリ・サイクルによって事前に取り出される。命
令取り出し装置は又、各命令をも符号化し、他の装置に
命令の長さと形式を知らせる。アドレス制御装置ACU
1319はC山を経て、IFU,ALU,DMU及びC
SUと通信する。ACU1319はCPU内のすべての
アドレス展開に対して責任を負っている。ACUへ、A
CUから、そしてACU内での転送を含むACUのすべ
てのオペレーションは、CUSマイクロオペレーション
とACU内の論理によって指示される。ACUの通常の
サイクリングは命令の型に依存するよりも、命令内のア
ドレスの型に依存する。アドレスの型によってAUCは
命令における各アドレスに対して異なったオペレーショ
ンを行う事が出釆る。ACUは又、典型的に8つの最も
最近使用されたメモリ・セグメントのベースアドレスを
それらのセグメント番号と共に記憶する連想メモリー3
91aをも含む。記憶の要求がある度毎にセグメント番
号はすでにセグメントのベース・アドレスが展開され記
憶されているかどうかを決める為に連想メモリの内容に
対してチェックされる。もしも連想メモリ1319a内
にベース・アドレスが含まれるならば、このアドレスは
絶対アドレス展開において使用され膨大な時間が節約さ
れる。もしもベース・アドレスが連想メモリ1391a
内に含まれないならば壬〆モリ・テーブルをアクセスす
る事によって展開せしめられられる。しかし、セグメン
トのベース・アドレスが展開せしめられた後、それは連
想メモリ内に未来の参照の為にセグメント・ナンバーと
ともに記憶される。ACU,IFU,DMU、及びCS
Uとのインターフェースは算術的及び論理装置ALU1
317である。その第1の機能はCPU‘こ必要とされ
る算術的オペレーション及びデータ処理を行なう事であ
る。算術的論理装置の動作は完全に制御メモリCSU1
301からのマイクロオペレーション制御信号による。
ALU1 3 1 7とCSU1 30 1とに結合さ
れるのはスクラツチ・/ぐソド・メモリ(時にはローカ
ル・メモリとも呼ばれる)である。 それは典型的に256の記憶場所の(1記憶場所につき
32ビット)ソリツド・ステート・メモリとこのメモリ
に対する選択及び読み取り/書き込み論理よりなる。ス
クラツチ・パッド・メモリ1315はCPUの制御情報
及び情報の保全性を記憶する為に使用される。加えてス
クラツチ・パッド・メモリー315は、データ処理の間
中オペランドと部分的結果との一時記憶領域として主に
使用される作業場所を含む。さらにALU1 3 1
7に結合されるものは、典型的にはコンピュータ・シス
テムの種々雑多な状態を記憶する為の64フリップフロ
ップよりなる補助メモリ1317aである。CPUは又
クロック・ユニット1320をも有しており、1つの中
に2つのクロツク−システムを必ず有する。第1のクロ
ツク・システムは制御インターフェース・アダプタCI
A1302に対するタイミングを発生し、第2のクロッ
ク・システムは中央処理装置内の作用装置のオペレーシ
ョンもしくは動作に対するタイミングパルスを発生する
。第13c図には制御メモリー・ワード1325のフオ
ーマツトが図示されている。 制御メモリ・ワードは典型的に84ビットの幅であり6
つの主フィールドに分割されている。a シーケンス型
フィールド1326(3ビット)b 分岐及び/又はマ
イクロオペレーション1327(23ビツト)c 定数
生成及び指示1328(14ビット)d 母線に対する
データ1329(8ビット)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レジスター
337の初めの6ビットはBフィールド、C検査結果、
D検査結果、及びLフィールドと共に利用されるアドレ
スレジスタKS1337内に配置される次のマイクロ命
令の次のアドレスを提供する。Eフイールドがバイナリ
4(ブロック1335を参照せよ)にセットされるとき
、選択される次のアドレスは割込みリターン・レジスタ
KA1339から取られる。KAレジスタ内に記憶され
たアドレスはハードウェアの割込みがおきるとき次のア
ドレス発生ロジックによって発生せしめられるものであ
る。Eフイ−ルドがバイナリ5へセットされるとき分岐
はマイクロプログラム・サブルーチンからのサプリター
ンを開始する為に使用される。使用されているとき、リ
ターン・レジスタすなわち復帰レジスタKR1346の
内容は次の制御記憶アドレスとして使用される。リター
ン・レジスター346はKSレジスタ1337の現在の
制御記憶アドレスにインクリメンタすなわち増分器13
38からKRレジスター346迄の1を加えたものをロ
ードする制御記憶指令を発する事によってロードされる
。一つのレベルの入れ子形サフルーチン能力はKTリタ
ーン分岐レジスター347を経て与えられる。KRレジ
スター 346がロードされる度毎にKRレジスタの古
い内容はKTレジスター347へ転送され、マイクロプ
ログラム・リターンが呼び出される度毎に、KTレジス
タの内容がKRレジスタへ転送される。第3のレベルの
入れ子を行なうサブルーチン能力はKUレジスタ134
0‘こよって与えられ、第4のレベルの入れ子形サブル
ーチン能力はKVリターン分岐レジスタ1349によっ
て与えられる。制御メモリ・ワードのBフィールドがバ
イナリ6へセットされるとき、アドレスされる次の制御
メモリ・ワードはKSレジスタ1337の現在のアドレ
スにインクレメタ1338の1を加えたものに等しい。
Eフィールドがバイナリ7にセットされるとき、CSU
1301は診断モードに入り、次のアドレスは現在のア
ドレスに足す事に1になる。前述し、ブロック1335
にて図示した次の制御メモリ・アドレスへ分岐する事に
関するシーケンス制御に加えて、第13b図のブロック
1336にて図示したハードウェアで成生したシーケン
ス制御がある。 (洋:ブ。ツク1335とブロック13336はマイク
ロ命令がとる種々の形態を画くように設計された実際の
ハードウェアレジスタ内にある。)ハードウェアの発生
する分岐はEフィールドを抑制し、固定されたアドレス
を制御メモリ・アドレス・レジスタKS1337に押し
やる条件(誤り、初期設定、制御メモリ・スキャン、等
)を無効にしている。分岐は、一つのクロック周期の間
、割込み回線(図示せず)を高にし、そしてKA割込み
リターン・レジスタ1339にEフィールドの制御下で
発生されているアドレスを記憶する事によってなされる
。ハードウェア発生アドレスは制御メモリ・アドレス・
レジスタ内に置かれる。あるハードウェア/ファームウ
ェア発生割込みは、割込み条件が満足されるまで割込み
ブロックのフリップ・フロップ(図示せず)がそれらの
クラスにおける付加的割込みを実行するのを阻止する時
の優先順位をとる。フオ−ムウエア・マイクロオペレー
ションは、フアームウェアの制御下にあるそれらのシー
ケンスに対して割込みブロックのフリツプ・フロツプの
リセツトを制御するために存在する。ハードウェア制御
下でのこれらのシーケンスはそれらシーケンスの終りも
こおいてブロックーフロツプのリセットを自動的に発生
する。優先順位によって作表された次の条件がこのカテ
ゴリーに存在する:{a滞日御メモリー・ロード;〔b
席U御メモリ・スキャン;{C】ハ−ドウェアの誤り;
{d)ソフトウェアの誤り。残りのハードウェアの条件
は割込みブロックフロツプをセットしないが発生せしめ
られたとき即時のアクションを生ぜしめる。優先順位に
よって作表される次の条件がこのカテゴリ−の中に存在
する。{a)初期設定‘b} ソフトークリア ‘c’保守パネル入 ‘d} 保守チャネル入 ‘elハードウエア出 初期設定信号はCBU1 30 1をしてアドレス・バ
ィナリ0へ分岐させハードウェアのリセットしうる誤り
をクリアさせ、ハードウェア制御下で制御メモリ・スキ
ャン・シーケンスによって伴なわれる制御メモリ・ロー
ド・オペレーションを実行させる。 それは又システムの初期設定をも行なう。ソフトークリ
ア信号はCSU1301をしてアドレス・バィナリ0へ
分岐させ、ハードウェアのリセットしうる誤りをクリア
させ、割込みブロックーフロツプをリセットさせる。保
守パネル入信号はCSUをして、保守パネル(図示せず
)上のCSUアドレス・スイッチ内にプレセットされた
アドレスへ分岐させる。保守チャネル入信号はCSUを
して、保守チャネル(図示せず)によって発生されたア
ドレスに分岐させる。 ロードされたアドレスは保守母線QMB1344からで
あり、それは保守チャネルの一部分であり、正しく正当
化されている。ハードウェア出信号をCSUをしてバィ
ナリ・アドレス2へ分岐させる。このシーケンスは保守
設備として使用される。シーケンスの終りにおいてリタ
ーンはバイナリ4へセットされたEフィールドについて
Eフィールドの分岐を発する事によって開始される。制
御メモリ・ロード信号はCSUをしてアドレス・バィナ
リ0へ分岐させる。 それは又、CSUの読み取り−サイクルフロップ(図示
せず)と、システム・クロック(系統クロック)132
0とを止め、ロード状態にCSUを置く。ロード状態に
おいて、CSUは制御メモリ・ローダCSL1303、
IOC1305、主メモリ102、或いは保守パネル1
355からロードされることができる。CSLからロー
ドされるとき、自動スキャンはロードの終りで発生せし
められる。他の媒体からロードされるとき、スキャンは
マイクローオベレーション・信号を発生するか或いは保
守パネル上にスキャンスイッチをセットする事によって
生ぜしめられる。制御メモリ・スキャン信号はCSUを
してアドレス・バィナリ0へ分岐させる。制御メモリ・
スキャンはシーケンスの存続性についてはハードウェア
の制御下にある。スキャン中にシステム・クロック13
20は切られており、それ故何らの指令も検査も実行さ
れない。スキャンのシーケンスの終りにおいて、ハード
ウェアは割り込みリターンレジスタKAの内容をアドレ
ス・レジスタKSの方へ転送し、システム・クロックが
オンされ、制御はファームウェアに復帰される。ハード
ウェア・エラー信号はCSUをしてアドレス・バイナリ
4の方へ分岐させる。正常の処理モードにおいてどのC
SU作用装置で検知されるハードウェアの誤りもハード
ウェアエラー線(図示せず)を付勢するだろう。発生せ
しめられる制御メモリ・シーケンスは取られるアクショ
ンを決める為にシステム条件を検査する。診断モード‘
こおいて、ハードウェアが検知しうる誤りもし〈はエラ
ー条件はマイクロ診断に対して可視である。マイクロ診
断は取られるべきアクションを制御する。一方、ソフト
ウェア・エラー信号は制御メモリをしてアドレス・バィ
ナリ1へ分岐させる。このアドレスはマイクロプログラ
ム制御下にあるソフトウェアのエラーを報告するシーケ
ンスの出発点である。第13c図に再び戻って、Eフィ
ールド1326は前記したように分岐コード用の3ビッ
トのフィールドである。 分岐及び/又はマイクロオペレーションフイールド13
27はA、B、C、〇、及びLフィールド(これらは又
第13b図のブロック1335にも図示されている)よ
りなる。ここにおいてAフィールドは次のアドレスの上
位は6ビットでなり、Bフィールドは次のアドレスの中
位の4ビット即ち6亀重りの分岐のマスク・フィールド
であり、Cフィールドは64の検査の1つに対する6ビ
ット検査フィールドであり、Dフィールドは64の検査
の1つに対するもう1つの6ビット検査フィールドであ
り、Lシーケンスは最下位のビットである。Kフィール
ド1328は14ビットのフィールドでそのうちの6ビ
ットは定数フィールド用であり、4ビットは定数又はス
テイアリング・フィールド用であり、4ビットは定数に
対するステアリング・フィールドである母線に関するデ
ータ・フィールド1329はQMB母線のQB部分への
情報を制御する4ビットを有するQAフィールドと、Q
M旧母線1344のQB部分への情報を制御する4ビッ
トを有するQBフィールドとよりなる。Fフィールド1
331は検査の為に保有される。オペレーションにおい
て、マイクロ命令語は制御メモリ・アレイ1333に記
憶される。 オペレーションのサイクル中、制御メモリ・アレイはK
Sアドレス・レジスタ1337の内容によってアドレス
される。これはアドレスによって特定される記憶場所の
内容をしてリード・ラッチ1357のグループ内に読み
取られる。リード・ラッチ語の内容の部分はCPUの各
作用装置内の記憶レジスタへ転送される。各作用装置は
システム・クロツク資源の制御下で制御メモリ・ワ−ド
‘こよって特定された必要なサブコマンドを発生するデ
コーディング論理回路を含む。一般にデコーデイング(
復合もしくは解読)は、デコーディング時間を最小にす
る為に、又はデコーディングが集中的に行なわれるなら
ば指令信号を伝送するのに通常要するケーブルの数を減
じる為に、集中的に行われるよりもむしろCPUの各作
用装置内で行われる。加えて、デコーヂイングはケーブ
ルの遅れの差からタイミングの問題がおきるのをさげる
為に各装置内になされる。更に各装置でサブコマソドを
デコードする事によって、作用装置に存ずる或る条件を
表わし、かつ或るサブコマンド信号の発生のために必要
な信号がCIA装置1302へ復帰される事を必要とし
ない。典型的なデコーダ装置1359は第13b図に図
示されており、マイクロ命令ワードから種々のフィール
ドを受け、マイク。オペレーション信号a,b,C’.
・・.・…・q’rを発生させるものである。典型的な
マイクロオペレーション・デコーダ1359はマイクロ
命令ワードから命令を受ける。マイクロ命令ワードから
のフィールドはデコードされ、複数の糠s,t’u’…
.・..・・y,zの1つを高く(高電位に)セットす
る。点Q,8,y………◇,のでS一Z線へ結合された
所定の制御線型インピーダンスを有する事によってマト
リクスが形成される。(第13b図)典型的にマイクロ
命令からのフィールドがデコードされると、線s−zの
1つは高電位となる。 ギシャ文字Qからの迄のマトリクスであらわされる黒点
が二組の線間を結合するインピーダンスを示しているの
で、水平なワイヤに沿って伝わる電気的信号もインピー
ダンス結合(黒点)が示されている垂直ワイヤa−rに
沿って伝わるように結合され得る。各垂直線a−rはつ
いでANDゲード1360−1365の各1つへ1入力
として結合される。中央タイミング装置からのタイミン
グ信号tsを含む他の入力信号も又ANDゲート136
0−1365へ結合され得る。よって、各タイミング信
号tSが高電位となる時、すべての他の入力信号を高く
するそれらのゲートは可能化され、CPUの予め定めら
れた作用装置へマイクロ命令信号を与える。例えば、リ
ード・ラツチから指令1341がデコードされ、そして
1つの水平線が高電位ならば、a,b,c、及びqの垂
直制御線は高電位となり、ANDゲードの1360,1
361,1362、及び1364はtsタイミング信号
がそれらのゲートへ順次に与えられた時、可能化される
。それ故、垂直制御線が水平制御線へギリシャ文字ばか
らのによってあらわされる異った点において結合される
組合せは制御メモリ・アレイ1333から供給されるマ
イク。命令によって中央処理装置の作用装置を制御する
為に中央処理装置へマイクロ・オペレーション信号を供
給する永久スイッチング・マトリックスをあらわす。変
更可能な特徴を有する永久ファームウェアは、コンピュ
…夕・システムの能力として必要とされるマイクロオペ
レーションのシーケンスを特定するだけで本発明の機械
中に確立する事が出来る。 ・通常の条件下では
、データはローカル・レジスタYO1343としても知
られるCPU書き込みーデー夕・レジスタを経て制御メ
モリ・アレイ1333に書き込まれる。 制御フロツプ(図示せず)はメモリ・アレイの上半分も
しくは下半分が書き込まれるべきかどうかを決定する。
制御及びロード装置CLU1304からのデータは保守
母線QMB1344を経てCIA/CSUに到着し、制
御メモリ・アレイ1333に書き込まれる以前に記憶ロ
ーカル・レジスタYO1343によって緩衝せしめられ
る。記憶ローカル・レジスタ1343は読み取り及び書
き込みローカル・レジスタの双方として時分割される。
マルチプレクサKQM1345は保守パネル1355或
いはマイクロ‐診断装置のいずれかによって制御され、
それに結合されたレジスタからの読み出しパスを提供す
る。比較レジスタKP1350はノンーフアンクショナ
ルな用途の為に備えられており、主に保全の為に使用さ
れ比較論理1352とデコーダ論理1351と共に利用
される。プロセス制御用ディスパツチヤ・ファームウェ
アデイスパツチャは、プロセスの種々の待ち行列を管理
しプロセス間をスイッチする事を主目的とするファーム
ウェア/ハードウェア装置であり、それはプロセスの待
ち行列の更新、プロセス制御フロックPCBの更新、シ
ステム・ベースの走行プロセスワードの更新、及び新プ
ロセスのレジスタの更新を含む。 それは又、セマフオア上にそれを実際に待っているプロ
セスにメッセージを出す(但し、V−オベレ−ション、
シミュレートされたVーオベレーションを10C或いは
イクセプション・ハンドラに対して行なった後において
)。それは又、プロセスがそのメッセージを出すために
フリーリンク・セマフオア上で待っているときメッセー
ジリンクをP−オペレーションが自由にした後、セマフ
オア上のメッセージを待ち行列に加える働きをする。デ
ィスパッチャ装置は本来(ネィティブ)モードで実行し
ているプロセスのロール・ィンの後或いは現在のプロセ
スが尚走行しておりかつ本釆モード‘こて実行している
ならばコンテスト後、本来モード命令に関して、ファー
ムウェアを呼び出す。 それは又、デコール(装飾)拡張に関して、以下の呼び
出しのためにファームウェアを呼び出す。(a)その装
飾拡張において実行するプロセスの。 ール・アウトの間の一時的な呼び出し‘b)そのデコー
ル拡張において実行するプロセスのロール・インの間の
一時的な呼び出し【c} そのデコール拡張において実
行するプロセスのロール・インの終りにおける限定的な
呼び出し‘d’現在のプロセスが未だ走行しておりかつ
そのデール拡張において命令を実行しているならば、コ
ンテスト後の限定的な呼び出し更に走行しているプロセ
スがないときはディスパッチヤはシステムをアイドル・
ループ内に置く。 下記の如きディスパツチャに出入するいくつかの方法が
ある。 ○ー 初期設定プロシージャSIPは最後のステップと
てェントリを提供する。 ‘2’開始及び中断命令をデイスパツチャへのェントリ
を提供する。 開始命令はプロセスを開始し、中断命令はプロセスを中
止する。‘3’ P及びVオペレーションはデイスパツ
チヤへのェントリを提供する。 Pオペレーションはメッセージをセマフオアからひろい
出し、もしメッセージないならば、フ。。セスは待ち状
態となる要するに、デイパツチヤは、どのプロセスが走
行されるべきかを決めることによって、また現在走行し
ているプロセスをロール・アウトするような(すなわち
、ハードウェアレジスタ、スクラツチ・パッド・メモリ
、等に含まれる現在走行しているプロセスに関するすべ
ての情報をPCBに書き込むような)、そして新しいプ
ロセスをロール・ィンするような(すなわち、新しいプ
ロセスを走行させるに必要なすべての情報を、PCBか
ら種々のハードウエア・レジスタやスクラツチ・/ぐツ
ド・メモリ等へ書き込むような)適切な動作を取ること
によって、プロセス従ってプロセス制御ブロックPCB
を管理する主要機構である。 ディスパッチャによって実行される機能は、第14a図
ないし第14i図のフローチャートに示されている。 例えば、第14a図のブロック図1402では、ディス
パッチャによって実行されて制御メモリによりマイクロ
プログラム・ワードが供給され、デコーダー359によ
る解読で適当なマイクロ演算信号1360,1361等
々の信号別によりCPUの関連部分を制御して、システ
ム・ベースから記憶サブシステム102にIPQWを取
り出し、それをスクラッチパツド・メモリ1315に転
送する機能が示されている。同時に、デイスパツチャは
、システム・ベース内のG−テーフル・ワードGTWに
より指し示されたセグメント・ディスクリプタのG−テ
ーブルからGOセグメント・ディスクリプタ(第12図
)を取り出す1 404。IPQWのビット1 6ない
し3 1は、GOセグメントと称するGセグメント番号
零のベースからしディ(準備)状態プロセスの待ち行列
(キュー)Q/PR/RDYの先頭(第1番目のバイト
)に対する変位である16ビットの正の整数を含む。I
PQWワードのビット1 6なし、し3 1が「0」で
である場合には1403レディ(準備)状態の待ち行列
(キュー)は空と見撤される。レディー状態の待ち行列
が空である場合には、その事は、Q/PR/RDYで現
在待機しているプロセスは存在せず、したがってレディ
ー状態の待ち行列は空であことを意味する。決定ブロッ
ク1405において決定されねばならない次の問題はヴ
ェィカウント・ィンジゲータがセットされているか否か
を決める事によって機械の中を現在プロセスが走行して
いるか否かということである。 (ヴエイカント・インジゲータは補助メモリー317a
中に配置されたフリップーフロップでありプロセッサ中
に走行している現在のプロセスCJPがないときセット
される。)もしもヴェイカント・インジケータがセット
されているとき(即ち、現在走行しているプロセスかな
いとき)、プロセッサを使用する為に待っている準備キ
ュー中のプロセスがない事が事前に定められたので、機
械あそび(アイドル)状態1406となる。しかし、機
械において現在走行しているプロセスがあるが、機械を
使用する為に待っているプロセスかない場合、現在のプ
ロセスはその次の命令1407にアクセスする。決定ブ
ロック1403にもどって、IPQW(即ち、ビット1
6一31)のポィン夕領域に正の整数があるとき、GO
セグメント内のIPQWワードで指し示された準備キュ
ーのヘッドはスクラッチ・パッド・メモリへ取り出され
る。 (注:重複をさげる為にまた明瞭ごの為に制御装置とC
PUと関連したディスパッチャの中間的な機能は省略す
る。しかしながら実施例によって前に説明がなされてい
るように、このような中間的機能は典型的に存在する。
)ここまで、準備キュー(レディ待ち行列、ディー・キ
ュー)においてフ。。セスの待ちがある事が定められた
。それ以上のアクションが取られる前に中央プロセッサ
内を現在走行しているプロセスがあるかどうかを決める
事が必要である。これはフローチャートに図示の決定ブ
ロック141川こて定められる。もしも中央プロセッサ
中に現在走行しているプロセスがないならば(即ちno
CJP)、準備キュー(レディ状態の待ち行列)のヘッ
ドは走行される1412。しかし、中央プロセッサに走
行しているプロセスがある場合、ディスパッチャは、現
在走行しているプロセス、或いは準備キュー(レディ待
ち行例もしくはレディ・キュー)のヘッドのいずれかが
優先順位を有するかを決定しなければならない。それ故
、システム・ベース600の走行プロセス・ワード中に
もし〈はPCB400のプロセス主ワード0,PMWO
中に配置されている現在プロセスCJPの優先順位バイ
トが取り出される1413。決定は次いで現在走行して
いるプロセスCJPが準備キューの先頭もしくはへッデ
ドで待っている新しいプロセスNJPよりも低い優先順
位を有しているか否かに関してなされる(決定ブロック
1414を見よ)。もしもCJPがNJPよりも低い優
先順位を有しないならば、CJPが中央プロセッサの制
御にとどまりコンテスト・ィンジケ−夕はリセットされ
る1415。(コンテストすなわち競合ィンジケータは
必ず川こセットされる。但し、CJPの為にすぐ前の命
令を実行してから1つ或いはそれ以上のプロセスが準備
キュー上に配置され、それによって衝突もしくは競合の
可能性を作った時は、コンテスト・インジケ−夕はバイ
ナリ1にセットされる。)現在プロセスCJPが続行し
更に命令を実行することが許可される以前に、CJPが
装飾拡張でモードで走行しているかどうかの決定がなさ
れる1415。もしもCJPが装飾拡張モードで走行し
ているときは、次の命令はエミュレーション・モードで
(即ち、デコールもしくは装飾拡張)実行される。そし
て、装飾拡張モードで走行していないときは次の命令は
ネイティブ(本来)モードで実行される。再び決定ブロ
ック1414にもどって、準備待ち行列(準備キュー、
レディ・キュー)のヘッドのNJPがCJPよりも高い
顔先順位を有するとき(云いかえれば、その優先番号カ
ギCJPの優先番号よりも低いときは)現在走行してい
るプロセスCJPは機械からロールアウトされ、新しい
プロセスNJPが機械へロール・ィンされる。よってフ
ァームウェア優先順位サブルーチンPRIQ1418は
、まずファームウェア・サブルーチンRLLOI 14
19の指示下で現在のプロセスCJPをロールアウトし
、該CJPをLIFO優先順位及び優先順位番号によっ
て準備キューに組込むよう指示する。RLLOサブルー
チン汎用レジスタ、ベース・レジスタ、科学的レジスタ
、Tーレジスタ、ステータス(状態)レジスタ、及び命
令カウンタ、に記憶されるCJPの情報の書き込みを、
主メモリのプロセス制御ブロックPCBの適当な記憶領
城に逆に向ける。そしてそれはRUAの更新を指示する
。更に、PCB400のプロセス主ワードOPMWOの
DEXT番号が更新される1420。新しいプロセスN
JPはロールィンされるべく準備している。境界アドレ
スレジス夕BARが取り出され1422、そして走行プ
ロセス・ワードRPWはシステム・ベースのアドレスB
ARプラス56から取り出される(ブロック1423を
見よ)。新しいプロセスNJPの名前は次いで走行プロ
セス・ワードRPWに書き込まれる。そして新しいプロ
セスNJPの名前がQ/PR/RDYのプロセス・リン
クPL‘こ書き込まれたプロセス・リンクPLの名前は
RPWに置かれる(ブロック1424)。それ故、準備
キューからのNJPはCJPとなり、中央プロセッサを
制御する資格が与えられ、Q/PR/RDYにではもは
や待機しない。そしてQ/PR/RDYのプロセス・リ
ンクPLからその名前をとる事によって待ち行列すなわ
ちキューから外されねばならない(ブロック1425)
。これがなされると、プロセス準備キューQ/PR/R
DYは、フアームウエア・サブルーチンUQLKによっ
て更新される(ブロック1425a)。よって機械から
今取り出されたプロセスのJP番号は、それがもはや機
械の制御をせず、それを待たばならないのでQ/PR/
RDYのプロセス・リンクに配置される1426。この
時点で、中央プロセッサの制御を新しいプロセスに与え
古いフ。。セスを準備キューに配置する変換は達成され
、中央プロセッサの制御におけるプロセス(新しいCJ
P)があるので、ヴエイカント・インジケータは0にさ
れる1427。もしも他方、中央プロセッサの制御にお
いて何らのCJPがなかったならばヴエイカント・イン
ジケータは1にセットされるであろう。この時点でプロ
セッサの割当ては完了し、新しいプロセスが中央プロセ
ッサを取得し、古いプロセスが準備キューに置かれてい
る。しかし、新しいプロセスは汎用レジスター307、
ベース・レジスタ1308、科学的レジスタ1309、
Tーレジスタ1310、状態レジスタ1311、及び命
令カゥンタ1312の如き第13a図の中央処理装置1
306のハードウェアに対しては未だ走行する準備をし
ておらず、該新しいプロセスのプロセス制御ブロックか
らの制御情報が供給されなければならない。よつて、フ
アームウエア・サブルーチン1430はCPUを制御し
、最初にPCBからクラッチ・パッド・メモリ1315
へPMW3を取り出し、次いでPMWOを取り出す。P
MWOのM旧Zフィールドは検査され1433、もしも
それがバィナリ0でないならば、不法PCB例外がおき
る。しかし、もしもPMWOのM旧Zフィールドが0で
あるならばPMWIは取り出される1434。再びPM
WIのM旧Zフィールドはそれがバイナリ0であるかど
うかを決める為に検査される。もしもそれがバイナリ0
でないならば、不法PCB例外がおき、それが0に等し
いならばデイスパツチヤはCへ進む。よつて、アドレス
・スペース・ワード0、ASWOはPCBの適当なスペ
ースから取り出され、セグメント・テーブル・ワード・
サイズSTWSZはそれが7以下であるか否かを決める
為に検査される1437。 もしもそれが7よりも大きいならば、不法PCBが生じ
る。もしもそれが7に等しいか、もしくはそれ以下であ
るならばASWIがPCBから取り出される(ブロック
1 438)。そしてそのSTWSZフィールドがそれ
が8に等しいかもし〈はそれ以下であるか否かを決める
為に検査される1439。もしもそのフィールドが8よ
りも大きければ、不法PCBがおきる。しかもそのST
WSZフィールドが8に等しいかもしくはそれ以下であ
るならば例外ワードEXWが取り出される1 440。
そしてそのM旧Zフィールドが0に等しいか否かを決め
る為に検査される。もしもそのMBZフィールドが0に
等しくないならば、不法PCBがおきる。一方、それが
0に等しいときはスタツク・ワードSKWが取り出され
る1 4 4 2。そしてそのMBZフィールドはそれ
が0に等しいか否かを決める為に検査される1443。
もしもMBZフィールドは0に等しくないならば不法P
CBがおきる。一方、それが0に等しいときは命令カウ
ンタ・ワードICWがPCBから取り出されて命令カゥ
ンタICに置かれ、そしてそのTAGフィールドが0に
等しいか杏かを決める為に検査される1445。もしも
TAGフィールドが0に等しくないならば不法PCBが
おきる。しかし、TAGフィールドが0に等しいときは
M旧Zワードが取り出される1446。そしてそのM旧
Zフィールド(ビット0−3 1)が0に等しし・か否
かを決める為に検査される1447。もしもそれが0に
等しくないならば、不法PCBがおきる。一方、それが
0に等しいときはスタツク・ベース・ワード0,1、及
び2すなわちSBW0,1及び2が取り出される144
8。PCBのべ−ス・レジスタ退避領域の8ベース・レ
ジスタの内容が次いで取り出され1449、そして機械
のベース・レジスタ1308に記憶される。次いでPC
Bの汎用レジスタの退避領域から1針固の汎用レジスタ
の内容が取り出され1450、機械の汎用レジスター3
07中に記憶される。科学的レジスタの内容を取り出す
以前に、科学的モードが利用されているか否かを決める
為にプロセス主ワード0(PMWO)の能力バイトにつ
いて検査が行われる1451。もしも科学的モードが利
用されているならば、PCBの科学的レジスタ退避領域
からの科学的レジスタの内容が取り出され、記憶される
1452。ファームウェアは次にで、カウンテイング・
モードが利用されているか否かを決める為にPMWOの
能力バイトの検査を行うことを進める1453。もしも
アカウンテイング・モードが利用されているときは(い
いかえれば能力バイトのアカウンテイング・ビットがバ
イナリ1にセットされているときは)アカウンテイング
・ワードがPCB内に存在し、準備時間アカウント・ワ
ードRTAが更新される。次いでファームウェアはDE
XT番号が0にセットされているか否かを決めるよう進
める1454。もしもそれが0にセットされないときは
それは機械がエミュレーション・モードである(いいか
えれば装飾拡張能力が利用されている)事を示している
。従ってPMWOのDEXT番号がプロセス主ワード3
のDETSZフィールドよりも大きいかもし〈は少なし
・は否かを決める為に検査される1455。もしそれが
DETSZフィールドより大きいときは不法PCB例外
がおきる1 456。 一方、DEXT番号がDETSZフィールドより小さい
がしかし0に等しくないときは機械は正当なエミュレー
ション・モードで演じており、Fへ進行する。決定ブロ
ック1454にもどって、もしもDEXTフィールドが
バイナリ0であるならネイテイブ・モードすなわち本来
モードが演じられ、機械はSTWを取り出す1457。
PCBのレジデユアル・タイム・アウトRTOワードが
取り出され1458、そしてフ。ロセス・タイマーはC
JPが走行状態にあるとき消費する時間制限の元にロー
ドされる。この時点までには、‘a}機械中に古いプロ
セスCJPがあってかつ新しいプロセスNJPが古いプ
ロセスCJPよりも高い優先順位にあったときに、新し
いプロセスNJPがCUの制御をとるようにロールィン
されたか、或いは、{bーCPUの制御にCJPがなく
つて、準備キューのヘッドが走行されたかのいずれかで
ある。 要するに{a}条件下ではCJPはRPWから取出され
、Q/PR/RDYのプロセス・リンクPLが置かれ、
そしてQ/PR/RDYのプロセス・リンクPL内のN
JPはRPW内に置かれ、このようにして2つのプロセ
スの位置を有効に切替え、CJPになるNJPに制御を
与え、古いCJPからは制御を取り去っている。次いで
NJPのPCBがアクセスされ、NJPを走行するのに
要する情報がスクラッチ・パッド・メモリ或いはACU
のレジスタ・アレイに置かれる。もしもCPUの制御に
何らのCJPもなかったならば(条件b)、準備キュー
のヘッドが走行される。 すなわちヂィスパッチャが準備キューのヘッドからのプ
ロセス・リンクPLからNJPを取り、それをRPWワ
−ド‘こ置くのでNJPはCJPとなっている。こうす
る事によって、プロセス・リンクPLはQ/PR/RD
Yにおいて空にされ、そしてそれを取る事が必要される
。よって、決定ブロック1461に始まってファームウ
ェアは、CJPがCPUの制御下にあったか否かを決定
する。 そしてもしもフリー・プロセス・リンク(FPは)があ
ったときはそれはアクセスされてキューに組込まれ、そ
してCJPがその中に書き込まれる。しかし、CJPが
CPUの制御下になかったときは、NJPのPMWOの
状態バイトが更新される1460。そして再び機械内に
CJPがあったか否かの決定が行われる1463。もし
もプロセッサの制御下にCJPがなかったときは、NJ
Pのプロセス・リンク(それはQ/PR/ROYにあっ
た。そして、今の機械の制御下にある)はQ/PR/R
DYから取出され(すなわち外され)1466、そして
フリー・リンク・セマフオアFLSPとなり、そして今
フリー・プロセス・リンク・キュー(805、第9図)
に組込まれ、そしてフリー・プロセス・リンク・キュー
の一部となる1466a。境界アドレス・レジスタBA
Rの内容が取り出され1464、そしてシステム・ベー
スのBAR+56に配置されたNJR(今はCJP)の
走行プロセス・ワードRPWがNJP識別をRPW内に
置く事によって更新される(ブロック1465)。ヴェ
ィカント・インジケータはCJPがなかった場合には0
1こセットされる。次にコンテスト(競合)ィンジケー
タ(すなわちCJPと準備キュー内に配置されたプロセ
スとの間の優先順位における可能なる衝突もしくは競合
を示す為に使用される補助メモリ1317aにおけるフ
リップ・フロップ)が0にセットされ1467、そして
典型的な内容アドレサブル・メモリであるセグメント・
アソシェー夕(第1図のAS132)がクリアされ14
71、次いで、プロセス・モードが入れられる1470
。(プロセス・モードは例外がオペレーティング・シテ
ムによるよりもむしろプロセッサ内で操作するプロセス
によって取扱われる事を示す。)ファームウェアは次い
でCABへ続き1480、そして非同期トラツプ・ビッ
トABがバィナリ1にセットされているか否かを決める
為に検査される1481。もしもABビットがバィナリ
1にセットされるときはプロセス・リング番号PRNが
非同期リング番号ARN以上か否かを決める為に検査さ
れる1 482。(ABとARMま各プロセスのPCB
の優先順位バイトに位置されておりtプロセスが走行状
態になるとき意味がある。ABとARNはシステム・ベ
ースのBAR十56に位置されたRPWから得られる。
)RPWのBARプラス56の中のABとARNは、次
のステップ1484が、非同期トラツプ・ビット或いは
非同期リング番号を第1の場所にセットするようにする
条件を管理する非同期トラップ・ルーチンへ進行する事
であるので、リセットされる。 そしてもしもそれらがリセツトされなかったならば、フ
イームウエアによる次のパスにおいて、それは実際何も
悪くなかったのだが何かが悪かったという指示を与え、
そしてそれ故必ず非同期トラップ・ルーチン1484へ
進行し決して実行しないであろう。そこで判定ブロック
1481および1482に戻り、ABビットがセットさ
れていないか、またはABビットがセットにされておっ
てPRNがARNよりも大きくない場合には、ファーム
ウェアは、プロセッサなどがどのモードで走行するか、
言い換えるならば通常のモードか或いはエミュレーショ
ン・モードであるかを判定する。 この目的で、DEXT番号がチェックされて、該番号が
零にセットされているか否かを判定し「0」にセットさ
れている場合には、機械の通常モードが走行される14
87。しかしながら、DEXT番号が「0」にセットさ
れていない場合には、エミュレーション・モードが走行
される1486。V プロシージャの呼びしとスタック
・オベレーシヨン総論ブロシージャの呼び出し‘ま、一
方のプログラムから他方のプログラムヘパスするために
モジュール方式にでそれらのプログラムを書込んだ使用
者によって、かつオペレーティング・システム・サービ
スを利用するための使用者プログラムによって使用され
る。 それはオペレーティング・システム自身によって、応答
的なモジュール構造を得るために使用される。プロシー
ジヤの呼び出し‘ま、ハードウェアノフアームウェア命
令と、スタックと呼ばれるハードウェア識別構造によっ
て遂行される。プ。 シージャ呼び出し機構についての主な要件は次の通りで
ある。1 呼び出し対象物を呼び出すための呼び出し者
の権利をチェックする事(保護機構がそれがチェックさ
れるのをこばまないかぎり)2 呼び出し者のステータ
ス(状態)を退避もしくは保存する事、これは退避レジ
スタ、命令カウンタ(リターン用)、及び他のステ−タ
ス情報を含む。 3 パラメータのパスを考慮に入れる事 4 呼び出されたプロシージャに対する有効なェントリ
を決める事5 アドレス機構に必要な調整をする事 6 新しし、プロシージャを入れる事 呼び出されたプロシージャが終止或いは現存するとき、
呼び出し‘こおいて行われた事は皆、呼び出しとそのプ
ロシージャにおける次の命令とが実行される以前にそれ
が存在したところの物に、呼び出しするプロシージヤの
ステータスが回復されるように行われてはならない。 このスタックはこれらすべてが為される事を許すために
使用される機構である。 それはハードウェア及びソフトウェアによって特殊な方
法で使用される他のセグメントと同様なセグメントであ
る。それはスタツクフレームと云われるいくつかの連続
部分よりあり、その1つだけが総体的に一度にアクセス
される。そして、スタツクフレームはLIFOの態様で
アクセスされる。スタツクフレームはプロシージヤの呼
び出しの結果創られ、情報を記憶するために使用される
。引続くプロシージャの呼び出しが新しいスタツクフレ
ームを創り、そのスタツクからの出口が以前のスタツク
・フレームをポップアップ(POPSUP)する。この
ように、呼び出しの履歴は復帰を許すために正しく維持
される。有効なスタックフレームの場所はベース・レジ
スタ番号0に維持される。それにおける次の利用しうる
場所は特殊なしジスタ、すなわちTジスタ、或いはトッ
プーオブースタック・レジスタによって維持される。レ
ジスタにないパラメータのパスは、プログラマによって
勝手に選択される中間ベース・レジスタの使用によって
為されるプロシージヤを呼び出す準備として命令プリベ
ア・スタック(PRSK)が実行される。この命令は命
令内にプログラマによって供給されるレジスタがスタツ
ク内に退避されるようにする。それは、ステータス・レ
ジスタが退避されるようにする。そして呼び出されたプ
ロシージヤへパスされるべき情報でプロログラマがロー
ドしうるパラメータ・スペースへのポインタをプログラ
マに提供する。命令ェンタ・プロシージャが実行される
とき、上に特定された要件に相当する次のステップを経
てプロシージヤの呼び出しを完了する。1 リングの検
査:呼び出し者のりングが検査されて、このリングが新
しいプロシージヤを呼び出す事が出釆る事を確かめる。 呼び出しはリング番号に等しいかそれよりも小さくなけ
ればならない。もしもリングのクロスがおきるならば、
新しいプロシージャはゲートされなければならない。新
しいリング番号は呼び出されたプロシージャのリング番
号である。 (特開昭50一114934号公報、米国特許第417
751ぴ号参照)2 命令カウンタが退避される。 このことはステータスの退避を完了する。3 ベース・
レジス夕0がパスされるパラメ−夕を指し示すように作
られる。 4 呼び出されたプロシージヤのェントリ・ポイントが
プロシージヤ・デイスクリプタから得られ、そのディス
クリプタのアドレスはェン夕・プロシージヤ命令に含ま
れている。 5 例えば、ベース・レジスタ番号7の如き予め定めら
れたベース・レジスタタに、リンケージ情報へのポィン
タがロードされる。 6 薪しいリング番号と命令カウンタ内のェントリ・ポ
イントのアドレスをロードする事によって新しいプロシ
ージャが入れられる。 残りのカレト・スタツクフレームも又ローカル変数を記
憶するために呼び出されたプロシージヤに対して利用し
うる。 呼び出されたプロシージヤが復帰することを望んだとき
は、それは命令工グジットプロシージャを実行する。 レジスタ及び命令カウンタは次いでスタック中の退避領
域から回復される。プロシージャの呼び出し、スタック
・オペレーション、及びスタツクに関するより詳細な説
明を以下において、第15図乃至第32図を参照して行
なう。 好ましい実施例の詳細な説明プロシージャは、常にェン
タ・プロシージャ命令(ENT)によってプロシージヤ
・ディスクリプタ1510(第15図b)を介してアク
セスされる。 ェンタ・プロシージヤ命令1500のフオーマットは、
第15a図に示されている。オペレーション・コード(
OP)1501は、ビット位置0から7までを占める。
コンブリメンタリ・コード1502は、1ビット・コー
ドであり、ビット位置8を占める:コンブリメンタリ・
コードが論理1にセットされると、命令ENTであるの
に対して、コンブリメンタリが論理0‘こセットされる
と、命令は特別なェンタ(enter)命令であるEN
TSRであり、ベース・レジスタは、ベース・レジス夕
0(BRO)ではればならない。アドレス・シラブル(
AS)1504はビット位置12から31を占め、プロ
シージヤ・ディスクリプタ1510(第15b図)のア
ドレス・シラブル(AS)を提供する。ェンタ・プロシ
ージャ命令がリング・クロシングを要求するときは、ゲ
ーテイング・プロシージヤ・ディスクリプ夕〇PDが必
ずアクセスされる。これは、セグメントディスクリプタ
1701のGSフイード1702(第17図)が論理1
0にセットされることによって示される。一般に、GS
フィールドは、ェンタ・プロシージャ命令の1つが利用
されるときに、10にセットされる。(米国特許第39
38096号参照)セグメント・ディスクリプタは所望
のセグメントのベースを指し示すために使用され、この
場合、セグメント1700はゲート・プロシージヤ・デ
ィスクリプタGPD1 720を含んでいる。ゲーテイ
ング・プロシージヤ・ディスクリプタ(GPDs)を含
むセグメント1700の最初の語は、第15c図に示さ
れるようにフオーマツト化される。TAG1521は、
ビット位置0から1を占め、間違ったディスクリプタを
示さなければならない。即ち、TAGフィールドは、論
理11にセットされなければならない。呼出しの最大リ
グ番号(CMRN)1522は、ビット位置2を3を占
め、ゲーテイド・プロシージヤ・ディスクリプタ(GP
D)を介しての呼出しプロシージャが合法的である最大
リングを示す。呼出しリング番号がCMRN1522よ
り大きいと、呼出し違反の例外(a callviol
ationecception)が発生する。ゲーテイ
ド・プロシージヤ・デイスクリプタのアドレス境界(G
PDAB)1524は、ビット位置10から31を占め
、それはセグメント相対アドレス(SRA)(即ち、プ
ロシージヤ・デイスクリプタ1700のセグメント内の
GPDの変位)より大きくなければならない。さもなけ
れば、違法の(ille鱗1)のGPDアクセス例外が
生じるこのようにして、ゲーテイング・プロシージヤ・
ディスクリプタGPDは、プロシージヤ・デイスクリプ
タを含むセグメントの最初の語を利用する。その最初の
語は、呼出し者が呼出し者の最大リング番号CMRNを
経てセグメントにアクセスする権利があるか否かを、そ
して呼出されたブロシージヤ・ディスクリプタがゲーテ
イング・プロシージャ・ディスクリブ夕のアドレス境界
以内にあるか杏かを決める。一度、セグメントに対する
合法的呼出があり、呼出し者がセグメントに入る権利す
ることが決められると、アドレスは、ェンタ命令(EN
T)1 500のアドレス、シラブルAS1 504か
ら得られ、要求されたブロシージャ・ディスクリプタ1
510(第17図も見よ。)がアクセスされる。プロシ
ージヤ・ディスクリプタ1510のフオーマットは、第
15b図に示され、2つの32ビット・ワード−それぞ
れワード0及び1からなる。ワード0は、所望プロシー
ジヤのェントリ・ポイントEPのセグメント化されたア
ドレス化されたアドレス1513を含む。いくつかのオ
ペランドのセグメント化されたアドレスの場合と同様、
セグメント化されたアドレスは、セグメント番号SEC
と、セグメント相対アドレスSRAとからなる。プロシ
ージヤ・ディスクリプタの語もしくはワード川ま、エン
トリ・ポイントのリング番号EPRN1 5 1 2及
びTAGフィールド1 51 1を含む。TAGの値は
、次のように判断される。a TAGが論理00を含む
なら、プロシージヤ・ディスクリブタはダイレクトであ
る;b TAGが論理01であるなら、ブロシージヤ・
ディスクリプタは拡張されたディスクリプタであり、ワ
ードーを含んで合計2ワードとなる。 c TAGが論理10であるなら、ブロシージヤ・ディ
スクリプタは、間接的であり、違法のプロシージャ・デ
ィスクリプタ例外が起きる;そして、d TAGが論理
11であるなら、それは間違いプロシージャ・ディスク
リプタであり、例外が起きる。 プロシージヤ・デイスクリプタのワードーは、32ビッ
トの長さであり、TAGが拡張されたディスクリプタを
示すときに利用され、リンケージ部分のセグメント化さ
れたアドレスを含み、その内容はフ。 oシージヤの入力時(entuytime)にベース・
レジスタBR7に。ードされる。さて、第15b図を参
照すると、ェグジット・プロシージャ命令(EXIT)
1530のフオーマツトが示されている。 オペレーション・コードOPフィールドは、ビット0か
ら7を占め、それに対してコンブリメンタリ・コードC
は、ビット11から15を占める。ビット8から11ま
でのM旧Zは、0でなければならず、さもなければ、違
法のフオーマツト・フィールド例外が起きる。さて、第
15e図を参照すると、プリベア・スタツク命令(PR
SK)1540のフオーマツトが示されている。PRS
K命令は、2つの32ビットのワードからなっている。
最初のワードは、OPコードOP、ベース・レジスタ通
Rn及びパラメータ空間内のバイト番号をもつ。OPコ
ードはビット0から7、BRnビット9から1 1及び
NBPは、ビット12から3 1を占める。M旧Zフィ
ールド・ビット8は、0でなければならない。退避領域
マスクSAMは、命令のワード2にあり、ビット32か
ら63を占める。退避領域マスクSAMはまた、スタツ
ク・フレーム・レイアウト1601の退避領域にも蓄積
される。退避領域マスクSAMのフオーマットは第15
gの1570に示され、第16図のスタツク・フレーム
のレジスタ退避領域へのレジスタの退避およびそれから
のレジスタの回復を制御する。SAMの各ビットは、1
つのレジスタ(即ち、ベース・レジスタBR、汎用レジ
スタGR又は科学レジスタSR)に相応する。もし相応
するレジス夕の1ビットが1にセットされると、そのレ
ジスタは、スタツク・フレームに退避されかつ回復され
なければならない。SAMのM旧Zフイールドの0から
3のビットは、0でなければならない。BROからBR
7,1572一1576の8つのベース・レジスタは、
ビット4から11を占め;DROからGR15 157
7−1581の16の汎用レジス夕は、ビット12から
27を占めている;一方SROからSR3,1582一
1585の4つの科学レジスタは、ビット28から31
を占める。スタツク・フレームの通信領域の最初のワー
ドは、PSAワード1607であり、退避領域マスクS
AM1603へのポィンタを含む。 (第18a図も見よ。)(詳細は後述される)ベース・
レジスタ川ま、呼出し者のスタツク・フレームの通信領
域内のPSAワードを指し示すために用いられる。ベー
ス・レジスタ0のRINGフィールドは、呼出し者のR
ING番号を含む。機械の命令カウンタICの内容は、
スタック・フレーム・レイアウトの通信領域の命令カウ
ンタ内容ICC1608に退避される。 ENTER命令が行われるとき、ICCは、ENTER
命令に続く命令を指し示す。NBPワード1609(パ
ラメータ空間内のバイト番号)は、パラメータ空間16
10内のバイト番号を示す32−ビット2の補数整数で
ある。 スタツク操作において使用されるレジスタ第2図中のス
タツク・レジスタ(T−レジスタ)203は、スタック
の頂部を指し示す。 TAG及びRINGフィールドは、スタツク操作中、そ
れが更新されるときはいつでも0にさせられる。ベース
・レジスタ0、BROもまた、第2図のフオーマット2
03を有しており、通信レジスタとして使用され、そし
て呼出し者のスタツク・フレームの通信領域内の最初の
ワード(即ち、PASワード)を指し示す。 そのRINGフィールドは、呼出し者のRING番号を
含む。ベース・レジスタ番号1、BRIも第2図のフオ
ーマット203を有しており、作業レジスタとして使用
され、スタツク・セグメントの作業領域の最初のバイト
を指し示す。 そのRINGフィールドは、ENTER命令の間に0に
させるれる。第18a図を参照して、BRIが作業領域
の最初のバイトを指し示すだけでなく「 この場合スタ
ック・ベース・ワード0,SBWOも作業領域の最初の
バイトを指し示すことがわかるであろう。しかしながら
スタツク・ベース・ワードは、そのプロセスのPCB(
プロセス制御ブロック)の内に置かれ、そしてリング・
スタック・セグメントのスターティング・アドレスを指
し示すという点で、2つのワードの間には相違がある。
第18a図の例において、リング・スタツク・セグメン
トのスターティング・アドレスもまた、作業用記憶領域
(作業領域)内の最初のバイトに一致する。これに反し
てベース・レジスタ1、BRIは、カレント・スタック
・フレームの作業領域の最初のバイトを指し示す。この
ように、1つのスタック.セグメント中に唯一つのスタ
ック●,フレームが存在する場合には、BR1とSBW
は同じである。ベース・レジスタ脂Rnは、命令PRS
K、ENT、EXITの間、中間レジスタとして使用さ
れ、スタツク・フレーム内のPSAワードを指し示す。 ベース・レジスタ7、BR7は、リンケージ部分を指し
示すために使用され、必要に応じて、ENTER命令の
間ハードウェアによってロードされる。 第18図を参照すると、AGT命令−汎用レジスタをT
レジスタに加えよ一力ミラ示されている。 この命令のOPコードは、ビット0から7を占め、一方
、汎用レジスタ番号GRは、ビット8から11を占め、
そしてコンブリメンタ・コードCは、ビット12から1
5を占める。ACT命令は、スタツク・フレームの作業
領域を取扱うのに利用され、スタック領域を増加又は減
少するのを許す。スタツクプッシュダウン・スタツクは
、プロシージヤの一方と他方とを連結するための機構で
ある。 スタツクの一部、スタック・フレームは、各プロシージ
ャに動的に割り付けられる。異なったりングにおいて実
行するプロシージャ間の保護機構を履行するために、異
なったスタック・セグメントが各リングに対して使用さ
れ、1つのスタック・セグメントが1つのりングに対応
する。(第18a図を見よ。)このようにして、或るプ
ロシージャがリングRNで実行されるとき、そのスタツ
ク・フレームは、RNスタツク・セグメントに置かれる
。第18a図を参照すると3つのスタック・セグメント
1801一1803が示されており、各スタツク・セグ
メントはそれぞれスタツク・フレームSI一S3を有し
ている。リング3は、スタツク・セグメント1801に
割り当てられ、リング1は、スタツク・セグメント18
02に割り当てられ、そしてリング0は、スタツク・セ
グメント1803に割り当てられる。各スタツク・セグ
メント内にはセグメント1801のスタック・フレーム
SIに関連するプロシージャP1、セグメント1802
のスタック・フレームS2に関連するブロシージヤP2
、そしてスタツク・セグメント1803のスタツク・フ
レームS3に関連するプロシージヤP3がある。それぞ
れリング0,1及び2のためのスタック・セグメントの
最初のバイトのセグメント化されたアドレス(即ち、セ
グメント番号及びセグメント相対アドレス、SEG及び
SRA)は、それぞれスタツク・ベース・ワードSBW
0,1及び2に置かれており、これらのスタック・ベー
ス・ワードは、プロセス制御ブロック18041こ置か
れている。リング3のスタック・セグメントは、内方の
呼出し(即ち、リング3より高いリングから)によって
入り込まれないので、そのスタツクのスターテイング・
アドレスは必要とされない。各スタック・フレームSI
,S2,S3は、第16図に示すとおり作業鏡城、退避
領域、及び通信領域に分けられている。スタツク・フレ
ーム第16図を参照して、スタック・フレームは、次の
領域のためにスペースを与える。 a プロシージャがそのローカル変数のために使用し得
る作業領域b プロシージヤがもう1つのプロシージヤ
を呼出す前に情報を退避する退避領域c プロシージヤ
がもう1つのプロシージヤによって使用される情報を準
備する通信領域プロシージヤを入れると、そのプロシー
ジヤのためのいずれの領域も存在しない。 退避領域及び通信領域は、プリベア・スタツク命令PR
SKの間に、もう1つのプロシージャを呼出す前に作ら
れる。作業領域は、必要とされたプロシージャによって
作られ、使用される。作業領域の最初のバイトは、ベー
ス1レジスター、BRIによって指し示される。(第1
8a図参照)退避領域の最初のワードは、退避領域マス
クSAM、1 603である。 それは第1 5g図に示されるフオーマットを有してお
り、レジスタ退避領域におけるレジスタの退避及び回復
を制御するために使用される。(先の検討を見よ。)退
避領域は、前にも印したように、プロシージャがもう1
つのプロシージャを呼出す前に情報を退避する領域であ
る。退避領域の末尾から2番目のワード1605は、次
のものを退避するために使用される:a このワードの
最初のバィ日こ退避されるステータス・レジス夕STR
b プロシージャが実行していたDEXT番号、これは
、ワード1605の最終バイトに退避される。 c ワードの残りの部分は、ワード1605の無機熊ス
テータスNFSフィールド(使用しないフィールド)で
ある。 退避領域の末尾のワードは、先のT・レジスタ値RTV
であり、PRSK命令の初めにおいてこのTレジスタ値
を含んでいる。 もう1つのフ。 qシージャから、与えられたプロシージャへの呼出し1
こ先だって、使用者は、退避することを望まれたこれら
のレジスタを退避し、更に、呼出されたプロシージャに
パスされるべきパラメータを、通信領域にロードする。
呼出しが行なわれたときに、ハードウェアは、呼出され
さプロシージヤからのIJターンもしくは復帰を容易に
するために命令カウン夕及び他の指定されたレジスタの
内容を退避する。各プロシージャ呼出しは、スタツク・
セグメント内に1つのスタツク・フレームを作り、その
後のプロシージャの呼出しは、追加のフレームを作る。
このようにフタックは作られ、それはプロシージヤに動
的に割り付けられるいくつかの隣接するスタック・フレ
ームからなる。これらのスタツクは、スタツク・セグメ
ントの内にある。一般に最初のスタック・フレームは、
セグメントの初めにロードされ、それに続くフレームは
、その後にロードされる。ロードされた最後のフレーム
は、スタックの頂部とみなされる。第13a図のT・レ
ジス夕1310は、現在活動中のプロセスに対してスタ
ックの頭部を置く。RING3で実行している例えばプ
ロシージャPIは、RINGIで実行する。ブロシージ
ャP2を呼出し、プロシージャP2は次にRINGOで
実行するプロシージャP3を呼出す。各プロシージヤが
呼出されるに従って、そのRINGスタツク・セグメン
トの中にスタツク・フレームを作る。(即ち、プロシー
ジャ実行のための環境限定)そして、T・レジスタ13
10(第13a図)がロードされて、現在活動中のプロ
セスのためのスタックの頂部のアドレスを与える。プロ
シージャP1(前に仮定したとおり)はプロシージャP
2を呼び出し、P2はプロシージヤP3を呼出し、これ
らの呼び出し‘ま、より高いリング番号から低いリング
番号に及ぶので、内方呼出しに伴うリング・クロシング
が要求され、以下に限定される方法で完了する。先に検
討されたように、各プロシージャの交換の間、必要なし
ジスタ及びパラメータは、呼出されたプロシージヤから
のりターンを容易にするために退避される。(より詳細
は、米国特許第417751び号参照)リング・チェツ
キング及びリング・クロシング異なったりングで実行す
るプロシージャ間のRING保護計画を実施するために
、アクセス・チェッキング機構が利用される。(第20
図〜第22図参照)。一般に次のアクセス操作が、命令
ENTの発生ごとに行なわれる。a セグメント・ディ
スクリプタの2番目のワ−ドから、被呼出者すなわちコ
ーリーが実行するのを許される呼出しブラケツトを最初
に決定することによって、被呼出者すなわちコーリーを
呼出し者すなわちコーラ一の権利がチェックされる。 (呼出しブラケットは、書込みリング番号フィールドW
Rから最小リング番号を、そして最大リング番号フィー
ルドMAXRから最大リング番号をとることによって決
定される。)b 次のプロセス・リング番号に関する決
定は以下のいずれかを決定することによって為される:
呼出し者すなわちコーラ‐がコーリーとしての呼出しブ
ラケット内のりングにある(何もしないことを意味する
)のか否かを決定することによってか;呼出し者が外方
呼出しを行うことを要求するりングに該呼出者があるの
か否かを(外方呼出しの場合には例外状態が発生し、こ
れはこ)では述べられない機構によって扱われる)決定
することによってか;または最後に、コーリーの呼出し
ブラケットへの内方呼出しを要求するりングにコーラ‐
がある(即ち、より大きいリング番号からより小さいリ
ング番号ヘリング・クロシングを必要とする呼出しブラ
ケツトへ行くこと、この場合にリング・クロシング・ユ
ニットは、有効なェントリ・ポイントになければならず
、そしてェントリ・ポイントは、有効にされなければな
らない。)のか否かを決定することによって;c スタ
ッフ・フレームは、コーリーのために作られる。 (即ち、適切なセグメントの前述のフオーマツトにおけ
るスペースが割り付けられる。)そしてスタツク・フレ
ーム及びスタツク・フレーム・レジスターが更新される
。d フ。 。シージヤ・ディスクリプタによって指し示されるプロ
シージヤのェントリ・ポイントへの分岐がなされる。第
20図を参照して、アクセス・チヱッキングは、有効ア
ドレス・リング番号EAR、プロシージャ・ディスクリ
プタのセグメント番号SEGPD及びプロシージャ・デ
ィスクリプタのセグメント相対アドレスSRへoを含む
アドレス・シラブルASを得ることによってステップ2
00 1でスタートさせられる。 この情報を展開して、プロシージヤ・ディスクリプタ1
510はステップ2003で、アクセス権を無視して、
SECPo,SRAPoからスクラツチ・パッド・メモ
リへ取り出される。プロシージヤ・デイスクリプ夕15
10は、ディスクリプタが直接すなわちダイレクトか、
拡張か、関接的か又は誤った(間違った)ディスクリプ
タかを決定するTAGと、ェントリ・ポイントのリング
番号EPRNと、ュントリ・ポイントを含むセグメント
番号SEGEPと、ヱントリ・ポイントのセグメント相
対アドレスSR&Pとをもたらす。TAGは、ディスク
リプ夕151 0が直接すなわちダイレクトか、拡大か
、間接か、誤ったディスクリプタか否かを前述したコー
ドに従ってそのフィールドをチェックすることによって
決定するためにステップ2004で検査される。直接的
又は拡張されたプロシージャ・ディスクリプタだけが正
当である。間接的又は誤ったディスクリプタは不当であ
り、アクセス時に、ここに記述されていない例外機構を
求める。 一度正当なプロシージヤ・ディスクリプタがアクセスさ
れたことが決定されると、実際の呼出し書込みチェッキ
ングが点Aで始まる(ステップ2005)。さて21図
を参照すると、点A 2005から続いて、SEGEP
に対応するセグメントための最大リング番号MAXRと
、書込リング番号WRと、実行許可ビットEPとがセグ
メント・ディスクリプタから取り出される。 書込みリング番号WRはステップ21 03で最大リン
グ番号MAXRと比較され、書込みリング番号WRが最
大リング番号MAXRより大きければ、セグメントは実
行不可能で、実行違反例外2113が起きる(ステップ
2113)。もし、書込リング番号WRが最大リング番
号MAXRより小さいか又は等しければ、次に実行許可
ビットEPは論理1と比較され、もしEPが1に等しく
なければ、もう一度実行違反例外2113が起こる;し
かしながら、もしEPビットが1に等しければ、呼出し
プロシージャの有効アドレス・リング番号EARがEP
RNとともに最大とされ、新しいEAR2…・・・〔M
AX(EAR,,EPRN)〕を与える。ここで、EA
Rは、命令カウンタICに見出されるPRNと、もしあ
るならプロシージャ・ディスクリプタに導くパスの中に
見出されるベース・レジスタ及びデータ・ディスクリプ
タの中のすべてのりング番号との最大である。次に、有
効アドレス・リング番号EAR2は、プロシージャが実
行し得る最大リング番号であるSECEPのセグメント
・ディスクリプタ内の最大リング番号MAXRと比較さ
れる2106。もし、EAR2がMAXRより大きけれ
ば、プロシージャ呼出しは、プロシージャが正当なェン
トリ・ポイントによって入れるように要求する内方呼出
しであり、アクセス・チェツキング動作は点B 210
7に分岐する。‘aー SECEPに対応するセグメン
トが正当なゲート・セグメントか、又はそうでないかを
決定するためにチェックされる。 次で、 ‘b} 呼出しの最大リング番号CM旧Nが呼出し者の
有効アドレス・リング番号EARより大きいか等しいか
、又そうでないかを決定するためにチェックされる。 もし、これらの条件が正しくなければ、次に不適当(不
法)なゲート・セグメント例外2203又は呼出し違反
例外2215が起きる。 さて、第22図の分岐点B 2107を参照すると、行
なわれる最初のチェック2202は、プロシージャ・デ
ィスクリプタを含むセグメントがゲート・セグメントか
否かを決定することである。 これは、プロシージヤ・ディスクリプタのセグメントを
指し示すセグメント・ディスクリプタのゲーテイング/
セマフオア・フィールドGSを調べ、それが論理10に
セットされているかどうかを決定することによって行わ
れる。もしプロシージヤ・ディスクリプタを含むセグメ
ントのセグメント・ディスクリプタのGSフイールドが
10にセットされていれば、それはゲート・セグメント
であり、プロシージヤ・ディスクリプタを含むセグメン
トの最初のワードは、第15c図及び第17図のゲート
されたプロシージヤ・ディスクリプタOPD1520で
ある。プロシージヤ・ディスクリプタを含むセグメント
の最初のワード1520は、次にアドレスSECPoか
らアクセス権を無視して、スクラッチ・パッド・メモリ
へ取り出される。第17図のプロシージャ・ディスクリ
プタを含むセグメントSEGP。1 700の最初のワ
ード1520のTAGフィールドは、それが誤ったディ
スクリプ夕であることを示す論理11でなければならな
い。 更に、M故フィールドは、0にセットされなければなら
ない。これらの条件は、ハードウエア/フアームウエア
(ALU)によつてステツプ2205でチェックされる
。そしてもし、これらの条件が保持されていなければ不
適当(不法)なゲート・セグメント例外2203が生じ
る。しかし、もしこれらの条件が保持されていると、プ
ロシージヤ・ディスクリプタのセグメント相対アドレス
SRへ。1510が8の倍数であることを決定するため
に、ステップ2206で更にチェックが行なわれる。 もしステップ2206の条件が保持されていなければ、
不適当なシステム目的アドレス例外2213が生じ、も
し保持されていれば次のステップ2207が行われる。
ステップ2207は、プロシージヤ・デイスクリプタの
セグメント相対アドレスSRん。がゲーテイド(鞍te
d)プロシージヤ・デイスクリプタ1520のアドレス
境界GPDAB1524以内にあるか否かを決定するた
めチェックする。もしそのアドレス境界内になければ、
それは不適当なプロシージヤ・ディスクリプタであり、
不法なGPDゲーテイド・プロシージヤ・ディスクリプ
タ・アクセス例外が生じる2214。しかし、ゲーティ
ド・プロシージャ・ディスクリプタのアドレス境界以内
にあれば(即ちSRAPDはGPDABより小さければ
)、次でコーリー(被呼出者)を呼出すコーフ−(呼出
し者)の権利がチェックされる2208。これは、有効
アドレス・リング番号EAR2を、プロシージヤ・ディ
スクリプタのセグメント1700(第17図)の最初の
ワード1520に見出される呼出し者の最大リング番号
CMRN1522(第15c図)と比較することによっ
て行われる。もしEAR2が呼出し者のCMRNより大
きければ、この特定の場合における呼出し者が合法的に
内方の呼出す権利をもたない(即ち、より高いリング番
号からより低いリング番号へ)ことを示す呼出し違反例
外2215が生じる。これに反して、もしEAR2がC
M眼Nもこ等しいか又は小さければ、内方呼出し‘ま正
当であり、呼出しがなされる直前に命令カウンタICの
中にある現在のプロセス・リング番号であるプロセス・
リング番号PRNがセグメント・ディスクリプタ内の最
大リング番号MAXRより小さいということを決定する
ために、ステップ2209でチェックが行なわれる。そ
してそのとおりであればアクセシング機構は、点Cに分
岐し2108、そうでなれば新しいプロセス・リング番
号NPRNが計算されて、最大リング番号MAXRにセ
ットされる22 1 1。一般に有効アドレス・リング
番号EAR2は、呼出し者のプロセス・リング番号PR
Nと同じである。しかし、時には呼出し者が与えられた
セグメントへのアクセスを拒否されないという最大の保
証を与えることが必要な場合には、EAR2はPRNよ
りも大きい。このような場合には、PRNは、呼出しが
出口上で最大リング番号に戻されたことを確めるために
EAR2の値をとらされる。この時点までに、EAR2
がMAXRより大きくそれ故プロシージャの呼出しブラ
ケツトの頂部より大きいので、また、有効なゲートを通
過する必要がある内方呼出しが必要とするので、このチ
ェツキング機構が熱望され、そしてこのチェッキング機
構がこれらのゲート・チェックを含んでいたということ
が注目されるであろう。Cに戻って分岐することによっ
て2108(第21図)、プロセス・リング番号PRN
が、このような状況においてはプロシージャの実行でき
る最小リング番号であるセグメント・ディスクリプタの
書込みリング番号WRより大きいことを決定するために
、ステップ2109で更なるチェックが為される。もし
書込み番号WRがプロセス・リング番号PRNより大き
ければ、外方呼出し例外2114が生じる。しかし、も
しWRがPRNより小さいか等しければ、呼出しは合法
であり、NPRMまPRNにセットされる21100上
述のチェックがなされた後内外呼出しを行い得て、望ま
れたオペレーションの遂行後実行におけるプログラムの
始めの点へ戻りもしくは復帰が、以後更に詳しく説明さ
れるEXIT命令によって為される。 ごて、特に第23,24及び25図を参照すると、準備
されたスタッフ命令PRSKのフローチャートが示され
ている。 第23図のフローチャートはブロック2301に入れら
れ、次で命令フオーマットPRSKのビット8及び32
から35が、これらが0であるか否か決定するためにチ
ェックされる2302。前述したように、これらのビッ
トは0でなければならず、さもなければ、不法フオーマ
ット・フィールド例外が生じる2303。もしPRSK
命令のこれらのビット位置のフィールド(第15a図)
が0であるならば、Tレジスタの現在値が作業レジスタ
Yにロードされ2304、このレジスタは演算及び論理
装置ALUにある。さてYはスタックの頂部のアドレス
を明確にし、従って、スタックにいずれかの位置を置く
ためには、ただ作業レジスタYにバイト位置の適当数を
加えることだけが必要である。従って、レジスタY中の
一時アドレス・ワードがワード境界と整列させられるこ
とが必要であり2305、もしそうでなければレジスタ
Y中のワードは、1、2又は3バイトを加えることによ
ってワード境界にフオースされる2306(なぜなら1
ワードは、4バイトの長さであるから)。もしYワード
が整列させられるか、整列させられた後で整列させられ
ない場合は、Yレジスタの内容は、スクラツチパツド・
メモリ内の領域Zに転送される2307。次でPRTK
命令の退避領域マスクSAM(第15e図)は、そのア
ドレスが作業レジスタYに記憶されている場所に退避さ
れる2310。これはPRSK命令の結果として作られ
べきスタツク・フレームの内の最初のワードであるので
あろう。スタツク・セグメントが有効なセグメントであ
るか杏かを決定するために、メモリ・アクセス・チェッ
クが行なわれ、もし無効な条件が存在するならば、メモ
リ・アクセス例外が結果として生ずる2308。また、
スタツク・オーバフロー・チェックが為され、もしスタ
ツク・セグメントの内の十分なメモリがない場合は、ス
タック・オーバフロー例外が生じる2309。この時点
までに、4バイトがメモ川こ書き込まれており、さらに
もう1つの4バイト・ワードがメモリに書き込まれるこ
とが望まれ、従ってYィンジゲー夕が4でインデックス
され(即ち、4は、そのインジゲータにおける前のアド
レスに加えられる)2311、ベース・レジスタ0、B
ROは、アドレスYの主記憶装置の内にそれを書き込む
ことによって退避される2312。次にYインジゲータ
は4によってインデックスされ2 3 1 4、ベース
・レジスター、BRIは、それをYに書き込むことによ
って退避され2315、次にYは、それに4を加えた新
しいアドレスを示すために増分される2316。 中間スタック・ポィンタYがT・レジスタの内容にセッ
トされたことは、この点までのフローチャートを吟味す
ることによって容易に認めるられることができ、次でそ
れは、整列されたワードであり、次のワード境界を示す
ため増加したワードであった。次で、スタツクに対する
中間ポィンタとしてYを使用することで、退避領域マス
クSAM並びにベース・レジスタ0、BRO及びベース
・レジスタ1、BRIは退避された。1ワードが記憶さ
れるたびに、Yは新しい位置に更新された。 さらにスタック・フレームを作るために、SAMによっ
て指し示される他のレジスタもまた退避されるであろう
。しかしながら以下の説明で、ポィンタYを増分するこ
とが理解され、そしてたいていの場合以下に続くフロー
チャートには示されない。第24図に続いて、残りのベ
ース・レジス夕は、スタックのオーバフロー2403が
起こらない場合には、SAMにセットされたビットによ
って示されるように作られているスタック・セグメント
の退避領域に記憶される2402。次で、スタック・オ
ーバフローが起きない場合2405は、SAMによって
示される汎用レジスタGRが記憶される2404。続い
て、SAMによって示される科学レジスタSRは、スタ
ツクオーバフロー2408がないならば記憶され240
6、そして浮動点特徴は存在する2407(即ち、プ。
セス制御ブロックPCBの内のプロセス主ワード0、P
MWOの能力バイトは、科学モード・ビット・セットを
もつ)。次に、ステータス・レジスタSTRとDEXT
バイトが記憶され2409、スタック・オーバフローの
決定が為される2410。オーバフローが起こらない場
合は、古いTレジスタの値は前のTレジスタ値PTVワ
ード(第16図の1606)に記憶される。これは、ス
タック・フレームの退避領域に退避された最後のワード
を表わす。再び、スタツク・オーバフロー・チェック2
412が行われる。この時点までに、スタック・フレー
ムの退避領域部分が作られてしまっており、そしてYポ
ィンタは、通信領域の最初のワード(第16図参照)に
インデックスされている。 通信領域の最初のワードは、退避領域マスクへのポィン
夕PSA1607である。従って、SAMに対するこの
ポィンタはPSAに記憶され、PSAのアドレスが退避
される2413。再度、スタック・オーバフロー・チェ
ックが行われる2414。次で、Yポィンタは、命令カ
ウンタ・ワードICCをこえてインデックスされる24
15が、というのは、このワードがこの時点では利用さ
れないが、後述する後の時点で利用されるからである。
中間ポィンタYは、現在はNBPワード1609(第1
6図)を指し示している。(NBPは、パラメータスペ
ース内のバイトの番号である)。従って、PRSK命令
のNBPワードは、スタック・フレームの通信領域のN
BPワード内に記憶される2416。再度スタック・オ
ーバフロー・チェック2417が行なわれる。さて、第
25図のB 2418に続いて、(Y+NBP十4)の
値がセグメントの大きさより小さいかどうかを決定する
ために検査が行なわれる2520。この検査は、作られ
てしまっておりかつ第16図のパラメータ・スペース1
610内で完成されるであろうスタツク・フレームが現
在のセグメント内にあることの保障を与える。スタック
・フレームを完成させてしまった後、Y+NBP+4の
値をT・レジスタに置くことによってT−レジスタを更
新することが望まれる2522。従って、これは、スタ
ートさせられる新しいスタック・フレームの開始アドレ
スとなる。また、ベース・レジスタn、BRn・・・・
・・PSAワードへのポインタ・・・・・・を更新する
ことも必要である。PSAのアドレスが上のステップ2
413の間スクラツチパツド・メモリ内に退避されたこ
とが思い起こされよう。従って、PSAはBRnにロー
ドされる2523。ステップ2523 PSAワードのアドレスは、上のステップ2413の間
、スクラツチパツド・メモリ内に退避されたことが思い
起こされよう。 この点において、PSAを指し示すこのアドレスは、ベ
ース・レジスタBRnにロードされよう25 2 3。
PSAアドレスのこのロードは、BRnが新しいスタッ
ク・フレームの通信領域を指し示す中間レジスタとして
使用されるのを可能とする。次で、ENTER命令はB
Rnの内容をBR川こ転送して、BROが現在のスタッ
ク・フレームの通信領域を常に指し示すのを可能とする
。さて、第19図及び第26図を参照すると「ENTE
R命令のフローチャートが示されている。 第19図は、ENTER命令の部分であり、特に1つの
スタックに関連したりング・クロシング及びリング検査
の要求に関係した部分である。第19図を参照すると、
ENTER命令が呼出され1901、そして比較が行わ
れ1902、そこでベース・レジスタBRnのアドレス
のセグメント化された部分がT・レジスタのアドレスの
セグメント化された部分と比較され、これらが等しくな
い場合は、不法スタック・ベース・レジスタが示される
1908。反対にこれらが等しい場合は、もう1つの比
較が行われ1903、ベース・レジス夕n、BRnの3
0及び31番目のビットが0と比較され、0に等しくな
い場合は、次いでもう一度不法スタツク・ベース・レジ
スタが示される1908。しかし、0に等しい場合は、
BRnの内容がワード境界について整列されたことを示
し、もう1つの比較1904がBRnのTAG(即ち、
ビット0から始まる2ビット)が0に等しいことを決定
するために行われる。(0を有するTAGは、ENT命
令の要求の1つである直接もしくはダイレクト・ディス
クリプタによってアクセスされる情報を示している)。
TAG(即ちBRnのビット0及び1)が0に等しいな
らば、そこで第20図から第22図のフローチャートに
述べられた作用が行われる(第19図のフローチャート
、フロツク1905参照)。これらが(第19図から第
22図を参照して前に検討された)必要な要件に合うな
らば、さらに進んだチェック1906が、ェントリ・ポ
イントのセグメント相対アドレス(SRAEP)が偶数
か否かを決定するために為される。 これは、命令が半ワード境界でスタ−トするので必要で
ある。偶数でない場合は、そこで不法分岐アドレス例外
が生じ1909;SRAEPが偶数の場合は、そこでE
NT命令が実行される(第26図)。さて、第26図を
参照すると、前に決定された新しいプロセス・リング番
号NPRN(第21図及び第22図についての前の説明
参照)が現在のプロセス・リング番号PRN(即ち、呼
出し直前のICにあるフ。 。セス・リング番号又はENTER命令によって計算さ
れたプロセス・リング番号)と比較される。EPRNが
PRMこ等しくない場合は、リング・クロシングが必要
であり、外方のりング呼出しがこの機械では許されない
ので、呼出しは内方呼出しでなければならない(即ち、
より高いリング番号からより低いリング番号へ)。従っ
て、新しいプロセス・リング番号のスタック・ベース・
ワードSB「VNPRNがプロセス制御ブロックから取
り出される2603。スタック・ベース・ワードSBW
(第10L図)は、ビット位置0及び1にTAGフィー
ルドを含むが、そのフィールドは、スタッフ・ベース・
ワード‘こ対して常に0でなければならない。それはビ
ット位置2及び3にリングを有し、そのリングもまたス
タック・ベース・ワードに対して0でなければならない
。そしてそれはビット位置4から31までにSEG及び
SRAを含んでいる。これらのフィールドは、次のよう
に検査される2605:a スタツク・ベース・ワード
のTAG及びR瓜○フィールドは、0でなければならず
、かつ、スタツク・ベース・ワードのアドレス・フイー
ルドは、整列されたワードでなければならない;b そ
のアドレスは、米国特許第417751ぴ号に特定され
た態様ですべてのメモリ・アクセス例外(読取り又は書
込み例外は除く。 )について検査される。いかなる逸脱(deviati
ons)も不法PCB例外として報告される2604。
スタツク・ベース・ワードが検査をパスしたとすれば、
スタツク・ベース・ワードのNPRNがT・レジスタに
ロードされ2606、T・レジスタの新しい内容となる
。 こ)で、簡単に復習すると、NPRNがPRNIこ等し
くない場合は、もう1つのりングのスタツク・セグメン
トにあるもう1つのスタックをアクセスすることを意味
するりング・クロシングが必要であることが決定されて
おり、これはプロセス制御ブロック内のスタック・ベー
ス・ワードを通してなされる。T・レジスタの新しい内
容は、次にベース・レジスタ番号1、BRIにロードさ
れる2 6 0 7。こ)で、ベース・レジスタ1、B
RIは、プリベア・スタツク命令PRSKがすでにスタ
ックを作ってしまった後に残したアドレスを指し示して
いるか(リング・クロシングは、必要としない)、又は
、リング番号変更が必要になった場合には、アドレスが
プロセス制御ブロックPCBのスタツク・ベース・ワー
ドから得られる新しいスタックを指し示しているかとい
うことが、ブロック2602から2607までの2つの
パスをチェックすることにより第26図から解る。次に
PRNは、ベース・レジスタn、BRnのビット2及び
3のリング・フィールドの中にロ−ドされる2608。 ベース・レジス夕n、BRnの内容は、次でベース・レ
ジスタ0、BROにロードされる2609。さて、BR
Oはスタツク・フレームの通信領域を指し示すレジスタ
であるので、また、BRnは、PRSK命令の結果とし
て、俺Aワ‐ドへのポィンタをもって、以前にロードさ
れていたので、次にBRnの内容をBRO‘こロードす
ることにより、BRnが指し示している。PSAワード
を指し示すことが行われる。このようにして、BROが
常に現在のスタック・フレームの通信領域の最初を指し
示すことが決った場合には(ENTERは、新しい現在
のスタツク・フレームを作るので)、BR川ま更新され
なければらならい。この時点までに、命令カウンタは現
在実行されている命令、即ちENTER命令を指し示し
ている。しかし、今、通信領域のICCワード1608
(第16図)において、ENTER命令に続く次の命令
アドレスを退避することが望まれる。これをする前に、
セグメントの境界の逸脱を招くことなく命令カウンタI
Cが次の命令に対し糟分され得るか否かを決めるために
チェックが行われる2610。セグメントの境界逸脱が
指示される場合には、セグメントの境界逸脱例外261
1が生じよう。逸脱が指示されない場合は、(次の命令
を指し示すために増分された)命令内容は、ICCワー
ド1608(第16図)内に退避される。ICCワード
内のアドレスは、BRn+4である。……即ち、ICC
は、BRnポィンタから4バイト移動される(ブロック
2613参照)。次に、古いプロセス・リング番号が、
ステータス・レジスタSTR内の“古いリング番号”の
ために保存されたフィールドにロードされる2614:
このフィールドは、ステータス・レジス夕STRのビッ
ト2及び3であり、古いリング番号即ち先のりング番号
は、ACUのアドレス制御装置から得られる。次に、プ
ロシージヤ・ディスクリプタのTAGフィールドが、拡
張プロシージャ・ディスクリブタであるか(即ち、TA
Gフィールドが、01か)否か決めるためにチェックさ
れる2615:拡張ブロシージャ・ディスクリプタの場
合は、プロシージヤ・ディスクリプタの2番目のワード
が、ベース・レジスタ7、BR7にロードされる261
6リンケージ部分のセグメント化アドレスである。最後
に、新しいプロセス・リング番号の値NPRNが命令カ
ウンタのビット2及び3にロードされ、プロシージヤ・
ディスクリプタのエントリ・ポイントの有効もまた命令
カウン外こビット4から31にロードされる(ブロック
2617を見よ)。これらのステップを遂行すると、E
NTER命令は完成される。 第27図〜第31図を参照すると、EXITプロシージ
ャ命令のフローチャートが示されている。 EXIT命令のスタートは、第27図のブロック270
1に示され、遂行される最初の動作は、EXITプロシ
ージャ命令のビット8から11で構成されるフィールド
が0かどうかをチェックすることである。これらのビッ
トが0の場合は、次の動作2704及び2705が、前
に示したようにPSAワードを指し示すベース・レジス
タ0、BROで遂行される。最初にPSAワードを指し
示すBROの内容がワード境界上に整列されていること
が決定されなければならず2704、これは、ビット3
0及び31が0であるか否かを調べるためにそれらをチ
ェックすることにより決められる。第2の、そのTAG
フィールド即ちビット0から1が0であることを決定さ
れなければならない2705。これらのチェックのどち
らかが0でないフィールドを検出すると、BRO‘ま妥
当なべース・レジスタ0でなく、不法スタック・ベース
・レジスタ例外2706が生じる。しかし、これらの動
作の双方がBROが妥当なべース・レジス夕0、BRO
であることを示した場合にはBROワードから4ビット
の退避領域に記憶されたICCの命令カウンタの内容が
取り出される2707。あるメモリ・アクセス検査がブ
ロック2711一2715でIOCの内容について遂行
されるべきであるので、ICCの内容はスクラツチパッ
ド・メモリ内の一時記憶領域に置かれ、実効アドレスY
はSEGrに等しく展開される。これは、BRO‘こよ
って指し示されるPSAワードの次のICCワード‘こ
ある復帰点の実効アドレスである。次でアクセス・チェ
ック2711一2715は、実行サブルーチンがICC
ワードを変えなかったということを決定するために遂行
される。従って、ICCワードのTAGは、それがダイ
レクトであること、即ち、TAGフィールドが0に等し
いことを決めるためにチェックされる。0でない場合は
、不法なスタツク・データ例外2712が生じる;しか
し、ダイレクトTAGの場合は、ICCレジスタにある
IJング・フィールドは、新しいプロセス・リング番号
NPRNに等しくなされ2713、これは、復帰のプロ
セス・リング番号として利用されるべきである。 BROのビット2及び3は古いプ。セス・リング番号を
含み、そのプロセスへの他のプロセスによるどんな復帰
も同じリング番号をもたなければならないことが思い起
こされよう。従って、新しいプロセス・リング番号NP
RNは、ベース・レジス夕0、BROのビット2及び3
と比較されて2714、これらが同じか否かを決める。
これらが同じでない場合には、不法なスタック・データ
例外2712が生じる。しかし、同じ場合には、現在の
実行プロセスの出口がより高いリング番号またはより低
いリング番号をもつプロセスになろうとしているか否か
を決めるために、チェックがなされる2715。 より高いリング番号からより低いリング番号に入ること
は許されないので、NPRNがPRNより小さい場合に
は、内方復帰例外2716が生じる:しかし、NPRN
がPRNより大きいか又は等しい場合は、呼出しプロシ
ージャの復帰点に進むのは合法である。従って、ICC
に記憶された復帰点のセグメントのセグメント・ディス
クリプ夕が取り出される2717。MAXR、WR及び
EPがセグメント・ディスクリプタSECr内にある実
行アクセス・フィールド権である場合は、NPRNはM
AXRより小さいか等しく2720、WRはNPRNよ
り4・さし、か等しくなければならない2721。また
、そうでない場合には、実行違反例外2719が起こる
。更に、EPは1に等しくなければならす2722、そ
うでない場合は、もう1つの実行違反例外2719が起
きる。ベース・レジスタBR…こよって指し示されるP
SAワードが次に取出される2804。PSAワードの
ビット0から3は、これらが0に等しいか否かを決める
ためにチェックされる2806。これらが0り等しくな
い場合は、不法スタツク・データ例外2807が起きる
、しかし、PSAワードのビット0から3が0に等しい
場合は、これらが整列されたワードであるか杏かを決め
るためにPSAの内容がテストされ、これはビット30
及び31が0に等しいことを決めるようチェックするこ
とによって行われる2808:これらが0に等しくない
場合は、不法スタック・データ例外2807が生ずる。
しかし、もし0に等しいと、次に中間スタック・ポイン
タYが的Aワードの内容に等しくセットされる2809
。Yは、SAMワードを指し示す。スタツク・フレーム
の退避領域内のSAMに直ぐ続くワードは“記憶されて
いるベース・レジスタ0、BRO”である;これは、機
械の実際のベース・レジスタ0、BROに回復されるで
あろう値である。退避領域内の“記憶されているBRO
”に続くワード‘ま“記憶されているベース・レジスタ
1、BRI”である。従って、中間スタツク・ポインタ
Yによって指し示されるSAMワードが取出され281
0;また、ベース・レジスタの0及び記憶されているベ
ース・レジスターもまた取出される2810。これらの
値は、その特定のスタック・フレームの退避領域内に以
前に退避されていた。次に、“記憶されているベース・
レジスタ0、BRO”は、これらが0であるかどうかを
決定するためにチェックされ2812、0でない場合は
、不法スタック・データ例外が生ずる2814。しかし
、BROが整列されたワードである場合は、“記憶され
ているベース・レジスタ0、BRO”のTAGフィール
ド・ビット0及び1は、それが0か否かを決めるために
チェックされ2813、0でない場合は、不法スタック
・データ例外2814が生じる。しかし、記憶されてい
るBROのTAGフィールドが0に等しければ、SAM
ワードの最初の4ビットが、これらが0であるか否かを
決めるためチェックされ2815、これらが0に等しく
ない場合は、再び不法なスタック・データ例外2814
が起きる。他方、SAMワードのビットDから3が0に
等しい場合は、機械は、第29図のフローチャートの点
2901によって指示される次の動作へ進む。 第29図を参照して、ステップ2902〜291 2は
、ENTER命令によってスタツク・フレームの退避領
域に前もって退避された機械の実際のベース・レジスタ
の再ロード‘こ関する。 従って、“記憶されているベース・レジスタ1、BRI
”の内容は、実際のベース・レジスター、BRIに回復
される2902。記憶されているBRO及びBRIは、
退避領域マスクSAM内のビット4及び5の状態に関係
なく常に自動的に回復される;もしそうでなければ、退
避領域マスクSAMは、SAMにセットされているビッ
トに従って、ベース・レジスタBRs、汎用レジスタG
Rs又は科学レジスタSRsのいずれが退避又は回復さ
れるべきかを指示する。 (第15図参照)次で、スタック・フレームの退避領域
に退避されれたすべてのベース・レジスタBRsは、S
AM内でこれらを表わすビットがセットされているか否
かによって、実際のベース・レジスタBRsに回復され
る2903。同機に、退避された汎用レジスタGRs及
び退避された科学レジスタSRsがそれぞれ2905及
び2907で回復される。次で、ステータスレジスタが
取出され2910、実際のステータス・レジスタ内に回
復される2912。これらのステップの遂行に当って、
種々のタイプの例外2904,2906,2908,2
909又は2911が第29図に示されるように生じ得
る。そこで、退避領域に以前に退避されていた機械のす
べてのレジス夕は、これらが最初に機械から取られたも
のと機械のレジスタに、Tレジスタ及びICレジスタを
除いて、復帰されかつ回復される。しかし、T及びIC
レジスタが回復される前には、EXITが今行われてい
るプロシージャを最初に呼出した呼出しプロシージャが
ェミューレーション・モードであったは否かを決めるこ
とが必要である。ヱミューレーション・モー日こおける
呼出しプロシージャがネィティブ・モードもしくは本来
モード‘こおける呼出されるプロシージヤを呼出すこと
はあり得ることであり、それ故EXIT及び復帰は、ェ
ミューレーション・モードにされなければならず、ネー
ティブ・モード‘こされてはならない。それ故、この万
一の場合のためにステップ3002から3010(第3
0図)に記述されている予備策が必要である。これが遂
行された後、残りのレジスタがステップ3012−30
18で回復される。さて、第30図を参照して、デコー
ルもしくは装飾拡張命令DEXTは、スタック・フレー
ムのビット位置24から31における退避領域から取出
される3002。 DEXTフィールドは、それが0(即ちネーティブ・モ
ード)であるから否かを決めるためにチェックされ、0
でない場合は、ステップ3004から3010が実行さ
れなければならない。最初にDEXTフィールドは、D
EXTがDETSZより大きいか又は小さいかどうかを
決めるのためにDETSZフィールド3004と比較さ
れる;DEXTフィールドがDETSZフィールドより
大きいか又は等しい場合は、次に不法デコール拡張番号
例外3007が起こる。(DETSZフィールドは、プ
ロセス制御ブロックPCBのプロセス主ワード番号3か
ら得られる)。しかし、DEXTフィールドがDETS
Zフィールドより4・さし、場合は、DETフィールド
のDESTthビットが1に等しいか否かを決めるため
にチェックされ3006、1に等しくない場合は、不法
デコール拡張番号例外3007が起きる。しかし、DE
ST山ビットが1に等しい場合は、それは、デコール拡
張DEXTがこの機械のハードウェア/ファームウェア
の中に存在するか杏かを見るためにチェックされる。デ
コール拡張DEXT(即ち、ェミューレーション・モー
ド)がこの機械のハードウェアノフアームウェアに存在
する3008場合は、プロセス制御ブロックPCBのプ
ロセス主ワード0、PMWOがDEXT番号でロードさ
れる3009。デコール拡張番号DEXTが新しい番号
なら、次に、新しいェミューレーション・モードで実行
するために特別のハードウェアをセット・アップするた
めに必要な特定の動作が遂行されて3010、次で一時
的のポィンタ・レジスタYがスタツク・フレームの次の
ワードを指し示すように4だけ増分される。(SAMと
共に始まって一時的ポインタYはいくつかの動作が、記
憶された異なった量で遂行されるべき度ごとに4だけ増
分される。前述のように、一時的ポインタYの増分は、
スタック・フレームの異なった場所にアクセスするため
に必要であった。)さて、一時的ポインタYは、PTV
ワードを指し示し30 1 2、PTVワードが取り出
される3013。PTVの内容のビット0から3は、こ
れらが0‘こ等しいか杏かを決めるためにチェックされ
3014、これらが0に等しくない場合は、不法スタッ
ク・データ例外3015が起こる。しかし、PTVワー
ドのビット0から3が0に等しい場合は、次にPTVワ
ードの内容は機械のTレジスタにロートごれる3016
。“記憶されているBRO”は、今や他のスタック・フ
レーム通信退避領域のPSAワードを指し示すように、
機械のベース・レジスタ0、BR川こロードされる30
17。新しいプロセス・IJング番号NPRNは、次で
命令カウンタ・レジスタのビット2及び3に記憶されて
、セグメント番号SECr及びセグメント相対アドレス
SRArもまた、命令カウンタのビット4から31に記
憶される3018。これでEXIT命令は終了する。第
31図を参照して、非同期トラップ・ビットAB及び非
同期リング番号ARNは、走行プロセス・ワードRPW
から取出されて3102、スクラツチパツド・メモ川こ
置かれる。 非同期トラツプ・ビットABは、最初に、それが0に等
しいか否かを決めるために検査される3103。そして
0に等しい場合は、以前に取出されたデコール拡張番号
DEXTが、0に等しいか杏かを決めるために検査され
3106、0でない場合は、次でデコール拡張モード(
即ち、ェミューレーション・モード)が入れられる31
09。一方、DEXT番号が0に等しい場合は、その命
令は終る3103。さて、もう一度ブロック3103に
戻って、もし非同期トラップ・ビットABが0に等しく
ない場合は、非同期リング番号が命令カウン夕のビット
2及び3と比較され3104、どちらが大きいかを決め
る。命令カウンタのビット2及び3がARNより小さい
場合は、ブロシージヤは、ブロック3106に分岐し、
ブロック3106,3108及び3109に関して前述
したプロシージャが続けられる。しかし、命令カウンタ
のビット位置2及び3の内容がARNより大きいか等し
い場合は、走行プロセス・ワードRPW内の非同期トラ
ツプ・ビットABが0にセットされ3105、次で非同
期トラップ例外3107が起こる。さて、第32図を参
照して、AGT命令(汎用レジスタをT・レジスタに加
えよ)が示されている。AGT命令は、単にスタツク・
フレームの作業領域を扱うためにある(即ち、作業領域
は、T・レジス外こ正数又は負数を加えることによって
増加又は減少させられる)。最初にT・レジスタの内容
が読み出されて、そのT・レジスタの値はスクラツチパ
ツド・メモリに退避される3202。次で、Tセグメン
トがアソシェータ内にあるか否かが決められて3203
、もしアソシェータ内にない場合は、Tセグメントのセ
グメント・ディスクリプタが取出されて3214、アソ
シェータの内に置かれる。しかし、T・レジスタ含まれ
るセグメント番号がアソシェータにある場合は、汎用レ
ジスタGR1502の内容は(第15G図)、一時アド
レスを作る3204ために、T●レジスタのセグメント
相対アドレスSRAに加えられる。Xは、それが0より
4・さし、か否かを決めるために検査されて3205、
もし0より小さければスタツク・オーバフロー例外が起
きる3206。しかし、0より小さくない場合には、一
時アドレスXがセグメントの大きさより4・さし、かど
うかを決めるために検査され3208、4・さくない場
合は、もう一度スタツク・オーバフロー例外が起きる3
209。しかし、一時アドレスXがセグメントの大きさ
より小さい場合は、一時アドレス×は、T・レジスタの
SRAとなる3210。次でT・レジスタが機械に書き
戻され3211、汎用レジスタ0、GR川ま、T・レジ
スタが以前に持っていた内容でロードされる3212(
これは、上のブロック3202で退避された番号である
)。最後に機械は次の命令に行く3213。以上、この
発明の一実施例を示しかつ説明してきたが、この発明を
為すための多くの変化と変更がこの発明の精神と範囲内
で可能であることを理解されたい。
【図面の簡単な説明】
第1図は本発明を用いる多重プログラミングシステムの
ブロック・ダイアグラム。 第2図は、本発明によって用いられるいろいろなハード
ウェア構成を略示する図。第3図は、第2図に示したレ
ジスタの予約格納領域で用いられる術語の凡例を示す図
。第4図は、プロセス制御ブロックの略図。第5図は、
プロセス制御ブロックをアドレッシングするためのシス
テムの略図。第6図は、本発明のシステム・ベースの略
図。第7A図およよび第7B図は、それぞれスタック・
セグメントおよびスタック・フレームを示す略図。第8
図は、G・セグメント特にGOセグメント内のプロセス
待ち行列をアドレツシングするためのシステムの略図。
第9図は、プロセス待ち行列(キュー)およびプロセス
のリンキング(連結)を図解するGOセグメントの展開
図。第10a図ないし第101図は、PCBにおける構
成を示すブロック・ダイアグラム。第11a図ないし第
11r図は、システム・ベースにおける構成を示すブロ
ック・ダイアグラム。第12図は、システム・ベースお
よびPCB構造を用いてユーザのスキーマおよびシステ
ム・セグメントにアドレッシンングする方式を示す略図
。第13a図ないし第13c図は共に、制御装置の構成
を示す簡略ダイアグラム。第14a図ないし第14i図
は、ファームウェアのディスパッチャ・ユニットのフロ
ーダイアグラム。第15A図はENTER・PROCE
DURE命令のフオーマットを示す図。第15B図は、
プロシージャ・ディスクリプタのフオーマットを示す図
。第15C図は、ゲ−ト、プロシージヤ・ディスクリプ
タを格納しているセグメントの第1番目のワードのフオ
ーマットを示す図。第15D図は、EXITPROCE
DURE命令を示す図。第158図は、PREPARE
STACK命令のフオーマツトを示す図。第15F図は
、ACT命令 艮0ちTレジスタに対する汎用レジスタ
の付加命令のフオーマットを示す図。第15G図は、退
避領域マスク(SAM)のフオーマツトを示す図。第1
6図は、スタック・フレームのフオーマットを示す図。
第17図は、セグメント・ディスクリプタおよびプロシ
ージャ・ディスクリプタ・セグメントの一部分を略示す
る図。第18A図は、リング保護機構と関連して用いら
れるスタックを略示する図。第18B図は、ENTER
命令がリング・クロシングを要求する時のスタックの使
用を示す図。第18C図は、NPRNがPRNに等しく
ない場合のスタックの使用を示す図。第19図は、リン
グ・クロシングおよびリング・チェックに属するENT
ERPROCEDURE命令の一部分を示すフローダイ
アグラム。第20図ないし第22図は、ENTERPR
OCEDURE命令が実行される時に行われる種々な演
算を示すフローダイアグラム。第23図ないし第25図
は、PREPARESTACK命令のフローダイアグラ
ム。第2 6図は、ENTERPROCEDURE命令
の別のフローダイアグラム。第2 7図ないし第3 1
図は、EXITPROCEDURE命令のフローダイ
アグラム。第32図は、AFT命令のフローダイアグラ
ムである。なお図中主な構成要素と参照番号との関係は
以下の通りである。101はプロセスサブシステム、1
02は蓄積サブシステム、103は周辺サブシステム、
104はセントラルプロセスユニット、105は入力/
出力制御ユニット、106は周辺制御ユニット、107
は装置アダプタ、109は主要メモリ同期装置、110
は緩衝蓄積、111は計算ユニット、112はエミユレ
ーター。 FIG.l FIG.2 FIG.3 寸 ○ U ■ ○ U FIG.5 FIG.7A FIG.78 の ○ 山 の ○ 山 90 ○ U ○ ○ ○ 山 ○ ○ ○ U 〇 ○ ○ 山 ■ ○ ○ 山 ○ ○ 山 〇 ○ ○ 山 上 ○ ○ U ○ ○ い ○ ○ 山 〆 ○ ○ 山 q ○ ○ 山 〇 ○ い Q ○ 山 ○ ○ U 口 ○ 山 ■ ○ U ○ い ○ ○ い 上 ○ 山 ○ 山 ○ U ヱ ○ い q ○ 山 FIGljm FIG.lln FIG.lio FIG.lip FIG.llq FIG.llr FIG.l2 FIG.l3o FIG.l3b FIG.l3c FIGl4o FIG.l4b 寸 ○ U ○ 寸 ○ 山 ■ 寸 ○ ] 寸 ○ U 〇 寸 ○ 山 FIG.l4h FIG.l4も FIG.l5A FIG.l5B FIG.l5C FIG.l50 FIG.l5E FIG.l5F FIG.l5G FIG.l6 FIG.l7 FIG.l8A FIG.l88 FIG.l8C FIG.l9 FIG.20 FIG.2l FIG.22 蟹 ○ U N寸 ○ U 特 ○ 山 鱒 ○ 山 の ○ 山 句 ○ 止 のN ○ U 舞 ○ U ○ の ○ 山 FIG,.32

Claims (1)

  1. 【特許請求の範囲】 1 記憶装置および管理手段とから成る仮想メモリと、
    この仮想メモリと通信する中央処理装置CPUとを備え
    、前記仮想メモリは、スタツク(スタツク・セグメント
    700)中の複数の異つた型の情報グループを記憶する
    ためのプツシユーダウン・ストアを有し、これにおいて
    、記憶した最後の情報グループがスタツクの頂部であり
    、前記情報グループは後入先出方式LIFOでアクセス
    され、前記スタツクの各々は調整可能の境界を有するセ
    グメントによつて境界付けられたアドレス・スペースと
    関連しており、このセグメントの各々は、このセグメン
    トへのアクセスに必要な所定の特権レベル(すなわちリ
    ング番号)を有し、前記CPUは、各々が最大のリング
    番号(すなわち最小の特権レベル)と関連した複数のプ
    ロシージヤのうちの選択された1つのプロシージヤの制
    御のもとに情報を処理し、前記CPUはまた現在このC
    PUの制御にある前記プロシージヤのうちの選択された
    1つのプロシージヤの状態を示すためのレジスタを有し
    ている、自動データ処理装置において、(a)複数の第
    1のデータ構造(スタツク・フレーム701)を作成す
    る第1の手段(PRSK1540、第15e図により制
    御される)であつて、第1のデータ構造の各々が所定の
    フオーマツト(第16図)を有すると共に前記複数のプ
    ロシージヤのうちの選択された1つと関連しているもの
    と、(b)前記第1の手段と通信して、前記データ構造
    のうちの選択されたいくつかを、前記プツシユーダウン
    ・ストア内の前記情報グループのうちの予め定められた
    いくつかにスタツクするための第2の手段ICであつて
    、それによつてデータ構造の複数のスタツクは前記仮想
    メモリ中に記憶され、データ構造の前記スタツクの各々
    は前記セグメントのうちの予め定められたいくつかによ
    つて境界付けられ、前記セグメントのうちの前記予め定
    められたいくつかの各々は予め定められたリング番号と
    関連しているものと、(c)前記第1および第2の手段
    と通信して、前記仮想メモリ中の前記スタツクのうちの
    選択された1つの頂部(スタツクの頂部)を見つけるた
    めの第3の手段(T、203或いは1310)と、(d
    )前記第1、第2および第3の手段と通信して、前記C
    PUの制御を、選択された第1のプロシージヤ(すなわ
    ちコーラ)から、選択された第2のプロシージヤ(すな
    わちコーリー)に転移する第4の手段(ENT或はEN
    TSR、1500、第15a図により制御される)であ
    つて、前記第1のプロシージヤは、前記コーラと関連し
    た最小の特権レベルを表わす第1のリング番号PRNを
    有した前記セグメントのうちの第1のものの中にあり、
    前記第2のプロシージヤは前記コーリーと関連した第2
    のリング番号の値WR,MAXRを有した前記セグメン
    トのうちの第2のものの中にあるようなものとを備えた
    ことを特徴とする前記自動データ処理装置のためのプロ
    シージヤ呼出し装置。 2 前記プツシユーダウン・ストア、前記第2の手段お
    よび前記第4の手段と通信して、前記コーラの前記第1
    のリング番号の値を決定する第5の手段BROと、前記
    プツシユーダウン・ストア、前記第2、第4および第5
    の手段と通信して、前記コーリーの前記第2のリング番
    号の値を決定する第6の手段(PD1510、第15B
    図)と、前記第5および第6の手段と通信して、コーラ
    のリング番号がコーリーのリング番号の値より小さいか
    、大きいかもしくは同じであるかを決定する第7の手段
    と、前記第7の手段と通信して、コーラのリング番号が
    コーリーの最小リング番号の値WRよりも小さいときに
    、コーラからコーリーへの前記CPUの制御の転移を禁
    止する第8の手段と、前記第7の手段と通信して、コー
    ラのリング番号がコーリーの最大リング番号の値MAX
    Rよりも大きいときに、コーラからコーリーへの前記C
    PUの制御の転移を監視する第9の手段とを含んだこと
    を特徴とする特許請求の範囲第1項記載のプロシージヤ
    呼出し装置。 3 前記第1のデータ構造は、第1(作業領域)、第2
    (退避領域)および第3(通信領域)のサブデータ構造
    を含んでおり、前記第1のサブデータ構造は、前記デー
    タ構造の関連したプロシージヤの局所変数に関係した情
    報を記憶するためのものであり、前記第2のサブデータ
    構造は、前記データ構造の関連したプロシージヤによる
    前記CPUの制御に関係した情報を退避するためのもの
    であり、そして前記第3のサブデータ構造は、前記第1
    、第2および第3のサブデータ構造の間で通信するため
    の情報、また異つたスタツク内にあるデータ構造および
    サブデータ構造の間で通信するための情報を記憶するた
    めのものであることを特徴とする特許請求の範囲第1項
    記載のプロシージヤ呼出し装置。
JP49137673A 1973-11-30 1974-11-30 プロシージヤ呼出し装置 Expired JPS6030974B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR7342705A FR2253425A5 (ja) 1973-11-30 1973-11-30
FR7342705 1973-11-30

Publications (2)

Publication Number Publication Date
JPS50117335A JPS50117335A (ja) 1975-09-13
JPS6030974B2 true JPS6030974B2 (ja) 1985-07-19

Family

ID=9128513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP49137673A Expired JPS6030974B2 (ja) 1973-11-30 1974-11-30 プロシージヤ呼出し装置

Country Status (5)

Country Link
US (1) US4297743A (ja)
JP (1) JPS6030974B2 (ja)
FR (1) FR2253425A5 (ja)
GB (1) GB1495514A (ja)
IT (1) IT1026661B (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4257096A (en) * 1978-10-23 1981-03-17 International Business Machines Corporation Synchronous and conditional inter-program control apparatus for a computer system
FR2471631B1 (fr) * 1979-12-11 1986-02-21 Cii Honeywell Bull Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un systeme de traitement de l'information
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4410940A (en) * 1980-12-05 1983-10-18 International Business Machines Corporation Transfer of control method and means among hierarchical cooperating sequential processes
US4633406A (en) * 1981-01-05 1986-12-30 Data General Corporation Digital data processing system method for making a general call
US4493023A (en) * 1981-05-22 1985-01-08 Data General Corporation Digital data processing system having unique addressing means and means for identifying and accessing operands
US4503492A (en) * 1981-09-11 1985-03-05 Data General Corp. Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure
US4445173A (en) * 1981-09-11 1984-04-24 Data General Corporation Improved system for saving and restoring state in call and return operations
US4454579A (en) * 1981-09-11 1984-06-12 Data General Corporation System for performing call and return operations
US4450522A (en) * 1981-09-11 1984-05-22 Data General Corporation Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
US4575817A (en) * 1983-06-27 1986-03-11 International Business Machines Corporation Switching of programming routine supporting storage stacks
US4803619A (en) * 1984-03-15 1989-02-07 Bernstein David H Digital data processing system incorporating apparatus for resolving names
US4882674A (en) * 1985-03-05 1989-11-21 Wang Laboratories, Inc. Apparatus and method for control of one computer system by another computer system
US4866599A (en) * 1985-06-27 1989-09-12 Bull Hn Information Systems Inc. Call instruction, return instruction and trap procedure for ring crossing architecture
US4703417A (en) * 1985-06-27 1987-10-27 Honeywell Information Systems Inc. Call instruction for ring crossing architecture
JPS6250931A (ja) * 1985-08-30 1987-03-05 Hitachi Ltd パラメ−タ・テ−ブルの利用方式
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
DE3750171T2 (de) * 1986-08-28 1995-02-02 Nec Corp Multiaufgabenverarbeitungsgerät.
US4922417A (en) * 1986-10-24 1990-05-01 American Telephone And Telegraph Company Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers
US4819155A (en) * 1987-06-01 1989-04-04 Wulf William A Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
US4915863A (en) * 1987-08-14 1990-04-10 Kao Corporation Bleaching composition
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US4979098A (en) * 1988-02-10 1990-12-18 International Business Machines Corporation Multiple address space token designation, protection controls, designation translation and lookaside
US5220669A (en) * 1988-02-10 1993-06-15 International Business Machines Corporation Linkage mechanism for program isolation
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
JPH01255035A (ja) * 1988-04-05 1989-10-11 Matsushita Electric Ind Co Ltd プロセサ
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5117387A (en) * 1988-08-18 1992-05-26 Delco Electronics Corporation Microprogrammed timer processor
US4928222A (en) * 1988-10-31 1990-05-22 International Business Machines Corporation Enhanced semaphore architecture
US5117491A (en) * 1989-03-31 1992-05-26 Bull Hn Information Systems Inc. Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
US5257358A (en) * 1989-04-18 1993-10-26 Nec Electronics, Inc. Method for counting the number of program instruction completed by a microprocessor
US5291595A (en) * 1989-05-22 1994-03-01 Martins Augusto B Batch/application program processing
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
DE69024753T2 (de) * 1989-10-31 1996-05-30 Hewlett Packard Co Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
US5522072A (en) * 1990-09-04 1996-05-28 At&T Corp. Arrangement for efficiently transferring program execution between subprograms
TW313282U (en) * 1991-03-07 1997-08-11 Digital Equipment Corp Apparatus for automatically interfacing call conventions between two dissimilar program units
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
AU651453B2 (en) * 1991-03-07 1994-07-21 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5680584A (en) * 1991-03-07 1997-10-21 Digital Equipment Corporation Simulator system for code execution and debugging within a multi-architecture environment
US5161226A (en) * 1991-05-10 1992-11-03 Jmi Software Consultants Inc. Microprocessor inverse processor state usage
US5414821A (en) * 1991-12-17 1995-05-09 Unisys Corporation Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
US5487158A (en) * 1993-04-06 1996-01-23 International Business Machines Corporation Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
CA2093451C (en) * 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
US5931941A (en) * 1995-04-28 1999-08-03 Lsi Logic Corporation Interface for a modularized computational unit to a CPU
WO1997015001A2 (en) * 1995-10-06 1997-04-24 Patriot Scientific Corporation Risc microprocessor architecture
US5761740A (en) * 1995-11-30 1998-06-02 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US6119206A (en) * 1996-02-12 2000-09-12 Sun Microsystems, Inc. Design of tags for lookup of non-volatile registers
US6012129A (en) * 1997-03-31 2000-01-04 International Business Machines Corporation Apparatus and method allocating virtual memory upon demand
US6192418B1 (en) * 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US6289391B1 (en) * 1997-06-25 2001-09-11 Unisys Corp. System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
US6141697A (en) * 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US6151638A (en) * 1997-06-25 2000-11-21 Unisys Corp. System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer
DE102004007614A1 (de) * 2004-02-17 2005-09-01 Giesecke & Devrient Gmbh Datenträger mit Ablaufdiagnosespeicher
US8269792B2 (en) * 2006-11-21 2012-09-18 Qualcomm Incorporated Efficient scissoring for graphics application
US8190861B2 (en) * 2006-12-04 2012-05-29 Texas Instruments Incorporated Micro-sequence based security model
EP2150889A1 (en) * 2007-04-10 2010-02-10 Cambridge Consultants Limited Data processing apparatus
US7921274B2 (en) * 2007-04-19 2011-04-05 Qualcomm Incorporated Computer memory addressing mode employing memory segmenting and masking
WO2010004240A1 (en) * 2008-07-10 2010-01-14 Cambridge Consultants Limited Data processing apparatus, for example using modes
US9530000B2 (en) * 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
CN113891072B (zh) * 2021-12-08 2022-02-11 北京拙河科技有限公司 基于亿级像素数据的视频监测与异常分析系统与方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3153225A (en) * 1961-04-10 1964-10-13 Burroughs Corp Data processor with improved subroutine control
US3286236A (en) * 1962-10-22 1966-11-15 Burroughs Corp Electronic digital computer with automatic interrupt control
US3548384A (en) * 1967-10-02 1970-12-15 Burroughs Corp Procedure entry for a data processor employing a stack
US3665487A (en) * 1969-06-05 1972-05-23 Honeywell Inf Systems Storage structure for management control subsystem in multiprogrammed data processing system
BE758813A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Structures de programme pour la mise en oeuvre de systemes de traitement d'information, communes a des langages de programme de niveau plus eleve
US3675209A (en) * 1970-02-06 1972-07-04 Burroughs Corp Autonomous multiple-path input/output control system
US3614740A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with circuits for transferring between operating routines, interruption routines and subroutines
US3727192A (en) * 1971-04-30 1973-04-10 North Electric Co A central processing system having preloader and data handling units external to the processor control unit
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
US3878513A (en) * 1972-02-08 1975-04-15 Burroughs Corp Data processing method and apparatus using occupancy indications to reserve storage space for a stack
US3781810A (en) * 1972-04-26 1973-12-25 Bell Telephone Labor Inc Scheme for saving and restoring register contents in a data processor

Also Published As

Publication number Publication date
FR2253425A5 (ja) 1975-06-27
GB1495514A (en) 1977-12-21
IT1026661B (it) 1978-10-20
US4297743A (en) 1981-10-27
JPS50117335A (ja) 1975-09-13

Similar Documents

Publication Publication Date Title
JPS6030974B2 (ja) プロシージヤ呼出し装置
US4369494A (en) Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US4395757A (en) Process synchronization utilizing semaphores
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US4084224A (en) System of controlling procedure execution using process control blocks
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US4077058A (en) Method and apparatus for executing an extended decor instruction
US4084228A (en) Process management structures and hardware/firmware control
US4432051A (en) Process execution time accounting system
JPS602691B2 (ja) 内部プログラムデータ処理装置
US4318182A (en) Deadlock detection and prevention mechanism for a computer system
US4320451A (en) Extended semaphore architecture
US4025901A (en) Database instruction find owner
US5197138A (en) Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US6732276B1 (en) Guarded computer instruction execution
JP2810896B2 (ja) データ処理装置
JPS58137200A (ja) デ−タ処理装置
US4024508A (en) Database instruction find serial
US4305124A (en) Pipelined computer
JPS646488B2 (ja)
JPH08278917A (ja) デジタル計算機システム及びポインター決定方法
JPH07501163A (ja) マルチプルスレッド用同期コプロセッサ付データ処理システム
JPS59132044A (ja) デ−タ処理システムにおいて複合デイスクリプタを発生する方法および装置
US4042912A (en) Database set condition test instruction
US4351024A (en) Switch system base mechanism