JPS6334490B2 - - Google Patents
Info
- Publication number
- JPS6334490B2 JPS6334490B2 JP55502045A JP50204580A JPS6334490B2 JP S6334490 B2 JPS6334490 B2 JP S6334490B2 JP 55502045 A JP55502045 A JP 55502045A JP 50204580 A JP50204580 A JP 50204580A JP S6334490 B2 JPS6334490 B2 JP S6334490B2
- Authority
- JP
- Japan
- Prior art keywords
- segment
- access
- processor
- descriptor
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000000034 method Methods 0.000 abstract description 402
- 230000008569 process Effects 0.000 abstract description 375
- 238000004891 communication Methods 0.000 abstract description 147
- 230000007246 mechanism Effects 0.000 abstract description 76
- 239000011159 matrix material Substances 0.000 description 98
- 238000012545 processing Methods 0.000 description 85
- 230000006870 function Effects 0.000 description 46
- 238000006073 displacement reaction Methods 0.000 description 41
- 238000012546 transfer Methods 0.000 description 31
- 210000003128 head Anatomy 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 230000004044 response Effects 0.000 description 19
- 230000033001 locomotion Effects 0.000 description 13
- 230000006399 behavior Effects 0.000 description 12
- 238000007667 floating Methods 0.000 description 12
- 238000002372 labelling Methods 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 11
- 238000004886 process control Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 238000012797 qualification Methods 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006378 damage Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 241000894007 species Species 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 235000021419 vinegar Nutrition 0.000 description 3
- 239000000052 vinegar Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 210000002784 stomach Anatomy 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 235000003899 Brassica oleracea var acephala Nutrition 0.000 description 1
- 235000012905 Brassica oleracea var viridis Nutrition 0.000 description 1
- 244000064816 Brassica oleracea var. acephala Species 0.000 description 1
- 241000257465 Echinoidea Species 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000012369 In process control Methods 0.000 description 1
- 102000010954 Link domains Human genes 0.000 description 1
- 108050001157 Link domains Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 244000221110 common millet Species 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010965 in-process control Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Communication Control (AREA)
Description
請求の範囲
1 命令中で指定されているオペレーシヨンをオ
ペレータにより実行できる少なくとも1つのプロ
セツサ200(第5図)と、 多数のプロセツサ200,202,204(第
5図)により共用できるメモリ206(第5図)
に格納されたアドレス可能な複数のオブジエクト
と、 前記メモリのセグメントの配置用のベースおよ
び長さ情報を格納しているセグメント記述子を含
んでいるアドレツシング機構12(第1図)とを
備えたデータ処理装置において、 前記複数のオブジエクトは第1の基本的な種類
の第1のオブジエクト(データ・セグメント)を
含み、この第1のオブジエクトは、前記命令も含
む命令にしてオペレーシヨンを定める命令をもつ
て構成された命令オブジエクト90(第3b図)
を含み、そして第1のオブジエクトそれぞれは連
続してアドレスされるメモリ場所のセグメントに
維持される関連する第1の情報を表わすものであ
り、 前記複数のオブジエクトは更に第2の基本的な
種類の第2のオブジエクト(アクセス・リスト)
を含み、この第2のオブジエクトはアクセス記述
子のリストをもつて構成されたプロセツサ・オブ
ジエクト76(第2a図),142(第4b図)
を含み、そして第2のオブジエクトそれぞれは連
続してアドレスされるメモリ場所のセグメントに
維持される関連する第2の情報を表わすものであ
り、 複数のタスクに関連する複数のセグメント表の
うちの1つのセグメント表50(第2a図)に、
前記第1のオブジエクトおよび前記第2のオブジ
エクトへのアドレスの形成において前記アドレツ
シング機構で使用するセグメント記述子を格納し
ており、 このセグメント表50はベース・アドレスに配
置され、 前記プロセツサ・オブジエクト76(第2a
図),142(第4b図)にはセグメント表のダ
イレクトリー68(第2a図)が組合わされ、 前記セグメント表のダイレクトリー68は前記
複数のセグメント表に対するベース・アドレスを
含むセグメント記述子を格納しており、その第1
のセグメント記述子70(第2a図)が前記セグ
メント表50のベース・アドレスを含んでおり、 前記セグメント表50のエントリイには第2の
セグメント記述子54(第2a図)を含み、 前記セグメント記述子のうち前記第2のセグメ
ント記述子54を含むものそれぞれは、当該セグ
メント44が、前記第1の基本的な種類のオブジ
エクト(データ・セグメント)に対応するのか又
は前記第2の基本的な種類のオブジエクト(アク
セス・リスト)に対応するのかを示すベースの種
類のフイールド46(第2a図)を有しており; 前記プロセツサ・オブジエクト中のアクセス記
述子(セグメント表ダイレクトリーAD)は、前
記第1の基本的な種類のオブジエクトまたは前記
第2の基本的な種類のオブジエクトに対して許さ
れる。アクセスの範囲とアクセスの種類とを指定
するためのベース・ライト種類用のフイールド4
6(第2a図)を有し、 前記アクセス記述子はセグメント索引番号とダ
イレクトリー索引番号とを格納しており; 前記ダイレクトリー索引番号を前記セグメント
表のダイレクトリー68内への索引として利用す
ることにより、前記第1のセグメント記述子を前
記セグメント表のダイレクトリー68内に配置す
るための手段RGU232(第6図)を備え; 前記第2のセグメント記述子54(第2a図)
の前記セグメント表50内への配置用のアドレス
を形成するために、前記第1のセグメント記述子
70中のベース・アドレスを前記アクセス記述子
(セグメント表ダイレクトリーAD)のセグメン
ト索引番号に組合わせるための手段404,43
0,433(第8図)を備え; 前記第2のセグメント記述子54のベースの種
類のフイールドを前記アクセス記述子(セグメン
ト表ダイレクトリーAD)のベース・ライト種類
用のフイールドと比較し、かつ、前記第2のセグ
メント記述子54(第2a図)のベースの種類の
フイールドが前記プロセツサ・オブジエクト7
6,142内の前記アクセス記述子(セグメント
表ダイレクトリーAD)のベース・ライト種類用
のフイールドとは異なるという条件の時に障害を
アサートするための手段410(第8図)とを備
えることを特徴とするデータ処理装置。 2 請求の範囲第1項記載のデータ処理装置にお
いて、 前記第2の基本的な種類(アクセス・リスト)
のコンテクスト・オブジエクト94(第3a図)
にして、前記複数のタスクの1つをアクセスでき
るオブジエクトの環境14,16(第1図)を定
めるアクセス・リストを含む、コンテクスト・オ
ブジエクトを備え、 オブジエクトの前記環境14,16は前記第1
の基本的な種類のオブジエクト(データ・セグメ
ント)および前記第2の基本的な種類のオブジエ
クト(アクセス・リスト)を含み; 前記第2の基本的な種類の(アクセス・リス
ト)のプロセス・オブジエクト140(第4a
図)にして、前記プロセツサ200において現在
実行しているプロセスを定めるアクセス・リスト
を含み、そのアクセス・リストは現在のコンテク
スト・アクセス記述子を含んでいるプロセス・オ
ブジエクトを備え、 前記コンテクスト・オブジエクトが、前記現在
のコンテクスト・アクセス記述子により、前記プ
ロセツサ200で現在実行している前記プロセス
の前記プロセス・オブジエクト140(第4a
図)に関連づけられることを特徴とするデータ処
理装置。 3 請求の範囲第2項記載のデータ処理装置にお
いて、 前記プロセス・オブジエクト140(第4a
図)は、前記メモリ中の前記命令オブジエクトの
1つ90に関連する計算の状態であつて、各プロ
セスに対して定められる仮想プロセツサを表す状
態を格納でき、 前記プロセツサ・オブジエクト142(第4b
図)は、いくつかのプロセツサのうちの1つを前
記プロセス・オブジエクト140(第4a図)に
関連づけるための手段(現在のプロセツサ・オブ
ジエクトAD)を有することを特徴とするデータ
処理装置。 4 請求の範囲第3項記載のデータ処理装置にお
いて、 キユーイング手段(デイスパツチ・ポート14
6(第4b図)を備え、 前記プロセツサ・オブジエクト142(第4b
図)は多数のプロセツサの1つを前記キユーイン
グ手段に関連づける関連付け手段(通常デイスパ
ツチ・ポートAD)を有し、 前記キユーイング手段146は前記多数のプロ
セツサの1つにより実行するためにプロセスのデ
イスパツチを行うことができ、 前記キユーイング手段146は実行のために送
られたプロセスをキユーイングするために実行可
能プロセス用キユーイング手段194(第4b
図)と、実行のためのプロセスを受けるために利
用できるプロセツサをキユーイングするプロセツ
サキユーイング手段192(第4b図)とを含む
ことを特徴とするデータ処理装置。 5 請求の範囲第3項または第4項記載のデータ
処理装置において、プロセツサが2つの通信セグ
メントに対して前記プロセツサ・オブジエクト1
42を介してのアクセス権を有し、一方の通信セ
グメントはシステムワイド通信用(グローバル通
信セグメント190(第4a図)であり、もう一
方はプロセツサ特定通信用(ローカル通信セグメ
ント172)であり; 前記通信セグメント内のプロセツサ制御フラツ
グ190,172を備えることを特徴とするデー
タ処理装置。 6 請求の範囲第1項〜第5項の1項に記載のデ
ータ処理装置において、 特定の記憶装置リソースから割当てるために利
用できる物理的メモリのブロツクを定めるための
記憶装置リソース制御セグメント82,170
(第2b図)を備え、 この記憶装置リソース制御セグメントは、前記
プロセツサで実行中のプロセスからの要求に応答
して、前記第1の基本的な種類のシステム・オブ
ジエクトまたは第2の基本的な種類のシステム・
オブジエクトのデータ・セグメントをプロセスに
割当てるのに使用するために前記プロセス・オブ
ジエクト140(第4a図)に関連づけられ、 前記プロセス・オブジエクトアクセス・リスト
140(第4b図)は記憶装置リソース制御セグ
メント・アクセス記述子143(第4b図)を含
み、 前記プロセツサ・オブジエクト・アクセス・リ
スト140(第4b図)は記憶装置リソース制御
セグメント・アクセス記述子143(第4b図)
を含み、 記憶装置リソース制御セグメント82,170
(第2b図)は、前記プロセツサ200で現在実
行されている前記プロセスの前記プロセス・オブ
ジエクト140(第4a図)に、前記記憶装置リ
ソース制御セグメント・アクセス記述子により、
関連づけられることを特徴とするデータ処理装
置。 7 請求の範囲第6項記載のデータ処理装置にお
いて、 前記システム・オブジエクト内のデータを取扱
うデータ取扱い手段DMU230(第8図)と、 セグメント・セレクタ(セグメント記述子また
はアクセス記述子)内のベースの種類のフイール
ドに応答して、前記第2の基本的な種類のシステ
ム・オブジエクト(アクセス・リスト)内のデー
タの取扱いを阻止する、前記取扱い手段内の手段
と、を備えることを特徴とするデータ処理装置。 8 請求の範囲第1項記載のデータ処理装置にお
いて、 送信側プロセツサ38(第1図)と、 ターゲツト・プロセツサ40(第1図)とを備
え、かつプロセツサ間通信機構42(第1図)を
備え、このプロセツサ間通信機構は、 前記メモリに格納され、前記ターゲツト・プロ
セツサに関連づけられた第1のプロセツサ・オブ
ジエクト142(第4b図)と、 前記メモリに格納され、前記ターゲツト・プロ
セツサ40および前記送信側プロセツサ38を含
む前記複数のプロセツサの1つに関連づけられた
第2のプロセツサ・オブジエクト620(第16
b図)と、 前記メモリに格納され、前記複数のプロセツサ
の任意の1つのプロセツサに関連づけられている
プロセツサ・オブジエクト620,142に格納
されているアクセス情報を用いることにより、前
記1つのプロセツサによりアクセスできる通信セ
グメントであつて、通信機能を指定する制御フラ
ツグを含む通信セグメント190(第4a図)
と、 通信機能を指定する前記制御フラツグを含むメ
ツセージを前記通信セグメント190(第4a
図)内に置くことができるように、前記通信セグ
メントを配置する、前記送信側プロセツサ・オブ
ジエクト620(第16b図)内の手段(I/O
プロセツサ制御セグメントAD)と、 前記送信側プロセツサと前記ターゲツトプロセ
ツサの間に接続され、前記ターゲツトプロセツサ
に合図することにより、前記通信セグメント中に
メツセージが存在することを前記ターゲツトプロ
セツサへ知らせる手段(ISB線401(第8図))
と、 を備えることを特徴とするデータ処理装置。 9 請求の範囲第8項記載のデータ処理装置にお
いて、 前記送信側プロセツサと前記ターゲツトプロセ
ツサは同じプロセツサであり、 それによりプロセツサはメツセージをそれ自身
へ送ることができることによりタスクの実行を開
始できることを特徴とするデータ処理装置。 10 請求の範囲第8項記載のデータ処理装置に
おいて、 前記通信セグメントはグローバル通信セグメン
ト190(第4b図)であり、 前記プロセツサ・オブジエクト142(第4b
図)中のグローバル通信セグメント・アクセス記
述子と、 前記プロセツサ・オブジエクト620(第4b
図)中のグローバル通信セグメント・アクセス記
述子と、 を備え、このグローバル通信セグメント・アクセ
ス記述子は190(第4a図)は前記複数のプロ
セツサに共通であることを特徴とするデータ処理
装置。 11 請求の範囲第8項記載のデータ処理装置に
おいて、 前記通信セグメント(ローカル通信領域172
(第4b図)は前記ターゲツトプロセツサのみに
関連づけられ、 前記複数のプロセツサの残りのもののうち特定
の1つに関連づけられた少くとも1つの付加通信
セグメント(ローカル通信領域622(第16b
図)、を備えることを特徴とするデータ処理装置。 12 請求の範囲第8項記載のデータ処理装置に
おいて、 前記通信セグメントは、多数のプロセツサ制御
フラツグを含むフイールドを備え、 それにより、前記送信側プロセツサにより前記
フラツグがセツトされ、前記通信セグメントに対
するアクセス権を有する前記ターゲツトプロセツ
サにより後で検査された時に、検査するターゲツ
トプロセツサは前記制御フラツグのセツトに応じ
て各種の機能を実行することを特徴とするデータ
処理装置。 13 請求の範囲第8項記載のデータ処理装置に
おいて、 各通信セグメント190,622(第4a図)
はプロセツサ間メツセージの伝送をインターロツ
クするための1組の除外フラツグ(ロツク・フイ
ールド、ロツカーID(第4a図))を含むことを
特徴とするデータ処理装置。 14 請求の範囲第1項記載のデータ処理装置に
おいて、 バツフア付きポート・システム・オブジエクト
144(第4a図)と、 アクセスの種類と、前記プロセツサの前記1つ
に対して実行すべきプロセスに関連づけられてい
るシステム・オブジエクト(前記バツフア付きポ
ート・システム・オブジエクト144(第4b
図)を含む)に対して許されたアクセスの範囲と
を格納するプロセス・オブジエクト140(第4
a図)と、 前記プロセス・オブジエクト140(第4a
図)へアクセス権を与える前記プロセツサ・オブ
ジエクト142(第4b図)中の第1のアクセス
記述子(現在のプロセツサ・オブジエクトAD)
と、 前記現在のバツフア付きポート・システム・オ
ブジエクト144(第4b図)へアクセス権を与
える情報を含んでいる第2のアクセス記述子(現
在のバツフア付きポートAD139(第4a図))
と、 システム・オブジエクトとしてメツセージへア
クセス権を与える前記バツフア付きポート144
(第4a図)中の第3のアクセス記述子(メツセ
ージまたはプロセスAD158(第4a図))と
を備え、 前記プロセツサ・オブジエクトは記憶装置に格
納され、 前記プロセスの命令に応答して、前記プロセ
ス・オブジエクト140(第4a図)をフエツチ
するために前記第1のアクセス記述子(現在のプ
ロセス・オブジエクトAD(第4b図))を用いる
ことができる制御手段(第7図および第8図)に
して、前記第2のアクセス記述子(現在のバツフ
ア付きポートAD)を用いて前記バツフア付きポ
ート・システム・オブジエクト144(第4a
図)をアクセスする手段を含んでいる制御手段
と、 前記バツフア付きポート・オブジエクトをアク
セスするために前記第2のアクセス記述子(現在
のバツフア付きポートAD)を用いる手段と、 前記アクセス記述子(障害メツセージAD14
9(第4a図)または現在のサービスポート
AD)を 前記プロセス・オブジエクト140(第4a
図)から前記バツフア付きポート・オブジエクト
144(第4a図)へ動かす手段とを備え、それ
により前記プロセツサは、プロセスと対にすべき
メツセージのための前記メツセージアクセス記述
子を並べるために前記バツフア付きポート・シス
テム・オブジエクトを用いることを特徴とするデ
ータ処理装置。 15 請求の範囲第14項記載のデータ処理装置
において、 前記プロセツサの前記1つにより実行するため
にプロセスをデイスパツチするデイスパツチ・ポ
ート・システム・オブジエクト146(第4b
図)を備え、 前記デイスパツチ・ポート146は、実行のた
めに送られたプロセスを並べる手段194(第4
b図)と、それの実行のためにプロセスを受ける
のに利用できるプロセスをキユーイングする手段
192(第4b図)とを含み、 前記多数のアクセス記述子のうち、システム・
オブジエクトとして前記プロセツサを表す1つの
アクセス記述子は、前記デイスパツチ・ポート・
システム・オブジエクト146(第4b図)にア
クセス権を与える第4のアクセス記述子(現在の
サービスポートAD(第4a図))であり、 前記制御手段は、前記デイスパツチ・ポート・
システム・オブジエクト146(第4b図)をア
クセスするために前記第4のアクセス記述子(現
在のサービス・ポートAD(第4a図))を用いる
手段を含むことを特徴とするデータ処理装置。 16 請求の範囲第15項記載のデータ処理装置
において、 スケジユーリング制御データを前記デイスパツ
チ・ポート・オブジエクトと前記プロセス・オブ
ジエクトに格納するポート制御手段152(第4
a図)を更に備え、前記データは、行列中のどこ
にプロセスを挿入するかについての情報と、ひと
たびデイスパツチされるとプリエンプシヨンまで
に前記プロセスをどれくらい長く実行させるかに
ついての情報と、スケジユーリング・サービスを
するソフトウエア・サーバに前記プロセスを送る
べきかどうかを指示する情報と、前記プロセスを
次のサービスのためにどこへ送るべきかを指示す
る情報とを含むことを特徴とするデータ処理装
置。 17 請求の範囲第14項記載のデータ処理装置
において、前記バツフア付きポートの少くとも一
部はアクセス記述子を含むアクセス・リストによ
つて表わされ、前記アクセス記述子の1つはサー
ビス・ポート用のサービス・ポート・アクセス記
述子であることを特徴とするデータ処理装置。 18 請求の範囲第14項記載のデータ処理装置
において、前記バツフア付きポートで行列に並べ
られたメツセージはアクセス記述子の形であり、
各アクセス記述子は前記アクセス記述子に関連す
るセグメントにアクセスするプロセスにて利用で
きるアクセス・ライトを指定する符号化された情
報を含むことを特徴とするデータ処理装置。 19 請求の範囲第14項記載のデータ処理装置
において、前記バツフア付きポート144(第4
a図)は、 送られたメツセージについてはアクセス記述子
を保持する要求行列として、およびメツセージの
到着を待つて中断されているプロセスについては
プロセス・オブジエクトアクセス記述子を保持す
るサーバ行列として選択的に働くキユーイング手
段158,152(第4a図)と、 このキユーイング手段が現在サーバ行列と要求
行列のいずれとして働いているか、またはからで
あるかどうかを指示するステータス情報手段16
0(第4a図)と、 を更に備えることを特徴とするデータ処理装置。 発明の分野 本発明はデータ処理システムに関し、より具体
的には、多重処理システムに関する。 従来技術の説明 多重処理システムは同時に2つかそれ以上のコ
ンピユータ・プログラムつまり命令系統を実行す
ることができる。密に結合された多重処理システ
ムでは、幾つかのプロセツサが1個の共用のメモ
リに接続される。これらのシステムは、1つかそ
れ以上のプロセツサに関する数多くの並行機能ま
たはタスクを多重送信する。各タスクの間に必要
な分離と交信を保証すると共に、実行準備ができ
ているタスクに利用できるプロセツサを割り当て
るための機能を設けなければならない。従来の方
法では、ソフトウエア、フアームウエアおよびハ
ードウエアの各技術が利用された。 従来のソフトウエア技術には、タスクをシステ
ム内の他のプロセツサに割り当てるよう1台のプ
ロセツサがエグゼキユーテイブ機能を実行するマ
スタ・スレーブ型のシステムがある(メリン
(Mellen)他を発明者とする米国特許第3530438
号およびバーバー(Barbour)を発明者とする米
国特許第3984817号)。どれもマスタの役割を引き
受けない同一のプロセツサを利用するシステムも
ある。これらのシステムはタスクを割り当てるソ
フトウエアがメモリに記憶される中央制御装置を
利用する(ドリスコル(Driscoll)を発明者とす
る米国特許第3496551号およびオクスナー
(Ochsner)を発明者とする米国特許第3348210
号)。最後に、各プロセツサ内でのタスク割り当
てを実行するために特殊命令を利用するシステム
がある(ポドビン(Podvin)を発明者とする米
国特許第3614745号およびクラーク(Clark)を
発明者とする米国特許第3725864号)。 メレシ他の米国特許第3530438号には、どのタ
スクでも実行することができる同一のプロセツサ
を有する多重プロセツサが開示されている。エグ
ゼキユーテイブ・コントロール・プログラムは、
受け取つたリクエストのタスク優先リストを維持
することによつて、タスク・スケジユーリングを
処理する。このリクエストはリストから取り除か
れ、そして利用できるようになつた際に各プロセ
ツサに割り当てられる。プロセツサはあるタスク
を終えると、新しい割り当てがないかどうかタス
ク・テーブルを問い合わせる。このシステムはエ
グゼキユーテイブ・コントロール・プログラミン
グに依存してタスク・スケジユーリングを実行す
る。このコントロール・プログラムは、タスクの
要求の発生と各要求に対する優先度の割り当てを
制御し、タスク・テーブル内の各要求の優先処理
をし、そしてプロセツサがタスクを実行できるよ
うになつた際にタスク・テーブルからの要求の1
つづつの取り除きを制御する。 バーバーの米国特許第3984817号は、各プログ
ラムのアクテイビテイ・レベルに基づいてデータ
処理装置のメモリ内の各リソースを複数のプログ
ラムに割り当てる。プログラムの各使用によつ
て、使用されたプログラムのアクテイビテイ行列
は最も高いアクテイビテイ状態を与えられる。 ドリスコルの米国特許第3496551号では、異な
る行列にタスクを割り当てる監視プログラムによ
つてタスク割り当てが実行される。監視プログラ
ムによつて設定される割り当てシステムが各種の
プロセツサを行列に割り当てるので、各行列には
間違いなくある数のプロセツサが作用する。各行
列について設定された割り当てシステムによつて
プロセツサは、特定の行列がこれに作用するプロ
セツサの割り当てを有するようになつたとき、ス
キヤナー・シーケンス内の次の行列に進められ
る。このようにして、監視プログラムはシステム
の効率を最大にしようとする。 オクスナーの米国特許第3348210号では、多数
の同一のプロセツサが1個の共通のメモリを共用
して各タスクを並行に実行する。あるプロセツサ
がタスクを1つ完了すると、そのタスク内の最後
の命令はプロセツサの制御権を、共通のメモリと
は別のメモリに記憶されているタスク割り当てア
ルゴリズムに渡す。これは、タスク割り当て機能
を実行する中央制御装置にプロセツサが制御権を
譲る形式の多重プロセツサの一例である。 ポドビンの米国特許第3614745号では、タスク
の切り替えを開始するためにフオーク命令が利用
される。プロセツサがこの命令を実行すると、フ
オーク・ステータス・ワードが、システム全体に
ついてリソース・マネージメントを処理する中央
制御装置に送られる。ステータス・ワーク行列が
各種類のフオーク命令ごとに維持される。中央制
御装置は利用できるプロセツサを割り当てて、こ
れらプロセツサに行列からタスクを取らせてそれ
を実行させる。本特許は並行なタスクが実行され
ているとき、リソースを動的に割り当てることに
よつてシステムの最高の効率を達成しようとする
ものである。この技術では、他の自由なプロセツ
サの間にタスクを分配するジヨブをプロセツサの
うちの1つが取る必要がある。 クラークの米国特許第3725864号では、複数の
I/Oプロセツサが、このI/Oプロセツサが利
用できるときには常にタスクの行列からI/Oタ
スクを選択する。I/Oプロセツサは、一時的に
停止することができるプログラム内の一点まで
I/Oプログラムを実行する。次にプログラムは
装置行列内に記憶され、I/Oプロセツサはこれ
によつて解放されてタスク行列から別のタスクを
選択できるようになり、それによつて新しいタス
クに関連するI/Oプログラムを実行する。装置
行列内に記憶されていて、半ば実行されたタスク
が旧状態に戻る準備ができると、指定された装置
はI/Oプロセツサに合図を送る。利用できるプ
ロセツサのうちのどの1台でも、信号に応答し、
半ば実行されたタスクを装置行列から取り出し、
そして先に停止されていたI/Oプログラムを再
開する。チヤンネルプログラムの自己スケジユー
リングは、チヤンネルプログラムの一部である特
殊エンキユー指令によつて行われる。 フアームウエアを利用する技術は、スケジユー
リングと各機能の割り当てを実行するために専用
のマイクロプログラムド・コントローラを使用す
る。 ナーダ(Nadir)を発明者とする米国特許第
4011545号はその一例であり、この米国特許はル
ープ・アーキテクチヤを利用する多重処理システ
ムを開示している。多数のプロセツサが通信ルー
プに接続されてポートを通してアクセスされ、こ
のポートは独特のアドレスによつて識別される。
データと指令はループ上のタイム・スロツトによ
つて受け取られる。情報は受信プロセツサにある
シフト・レジスタにシフトされる。プロセツサの
アドレスがシフトされたデータ内に発見される
と、動作が開始される。プロセツサのアドレスが
発見されないと、データはループに戻されて何の
変化も生じない。 従来のハードウエア技術の中には、行列を操作
することによつて多数のプロセツサの間にタスク
を割り当てる中央制御装置(タツカー(Tucker)
を発明者とする米国特許第3449722号)またはス
キヤナー(バラシス(Valassis)を発明者とする
米国特許第39597875号)を利用し、タスク行列を
有する技術がある。他のハードウエア技術はタイ
ム・スロツトを各プロセツサに割り当て、それに
よつて、同期バス技術(アンソ(Anceau)他を
発明者とする米国特許第4011545号)を利用する
か、プロセツサにメモリ・サイクルを割り振る
(ブラウン(Brown)を発明者とする米国特許第
3896418号)ことによつてプロセツサをプログラ
ムに同期させる。 バラシス他の米国特許第3959775号は、バス・
アサイナという共通の制御装置がプロセツサを走
査することによつて、優先度ベースまたは逐次ベ
ースでプロセツサを割り当てる、同期式の多重プ
ロセツサを開示している。 タツカーの米国特許第3449722号では、共通の
行列が多数の独立したプロセツサを処理する。動
作はすべて、共通の行列にアクセスする中央制御
部の制御下にある。従つて、中央制御装置は、自
由なプロセツサに取つておかれる要求を見つける
ために、プロセツサが自由になると行列を調べる
ことによつて適当なプロセツサを選択する。 アンソ他の米国特許第4015242号は、1台のハ
ードウエア主プロセツサと、多数のプログラムを
実行する幾つかの特殊プロセツサを有する多重処
理システムを開示している。タスクの切り替えは
ソフトウエアのリストと優先度処理によつて制御
される。レジスタ内の一群のフリツプフロツプ
が、どのプロセツサが作動しているかを指示す
る。マネージメント・ロジツクは、割り振り機能
を実行するため、これらフリツプフロツプの状態
を調べる手段を含む。この特許は、割り振りとス
ケジユーリングの両機能が特殊な自動マイクロプ
ログラムド・ロジツクによつて実行される最近の
技術の一例である。 ブラウンの米国特許第3896418号は、プロセツ
サが同時に別々のプログラムを実行することがで
きるように共通のメモリを共用する多重プロセツ
サを処理する、さらに別の同期方法の一例であ
る。このブラウンの特許では、一方のプロセツサ
が取り出しサイクルにある間に他方のプロセツサ
が実行サイクルにあるように、各プロセツサの取
り出しサイクルと実行サイクルが同期化される。 従来のデータ処理システムのなかで、超LSIの
技術水準の近年の進歩を最大限利用するものは1
つもなかつた。従つて、これら従来システムの性
能は低く、多重処理を支持するためのプログラミ
ングは非常に複雑である。 前述の従来のソフトウエア技術に関しては、複
雑な多重処理動作を実行することができるが、こ
のような動作を支持するためのプログラミングを
制御するのに多大なコストがかかる欠点がある。 フアームウエア技術は、ソフトウエア技術のプ
ログラミングのコストを多少軽減するが、融通性
と汎用性に欠ける。 従来のハードウエア技術もまた、同期式の動作
を処理することができるのにすぎないので融通性
に欠ける。従来のハードウエア技術はまた、例え
ばプロセツサ・レベルでの割り込みのような前述
の動作を支持する高価なコントロール・プログラ
ムに頼ることなく、各種の非同期動作を有効に交
信させるのに必要なハードウエア機構も有してい
ない。 従つて本発明の主要な目的は、高速で経済的で
あり、しかもLSI技術を有効に利用するように設
計された、新規なデータ処理装置を提供すること
である。 本発明のもう1つの目的は、各システム間の互
換性を保ちながらシステムの性能の幾つかのレベ
ルを支持するアーキテクチヤ構造を提供すること
である。 本発明のさらにもう1つの目的は、1台または
それ以上のプロセツサが1つのメモリ・スペース
を共用する、密に結合された多重処理システム内
に利用することができるデータ処理装置を提供す
ることである。 本発明のさらにもう1つの目的は、プロセツ
サ・レベルの割込みまたはサービス要求を必要と
しないデータ処理システムを提供することであ
る。 本発明のさらにもう1つの目的は、論理的な制
約なしに汎用プロセツサと入出力プロセツサを追
加可能にすることによつて、処理能力を増大させ
る能力があるデータ処理システム構造を提供する
ことである。 本発明のさらにもう1つの目的は、1つかそれ
以上のプロセツサを同時に実行するように多重化
されるタスクを分離・交信するハードウエア機構
を提供すると共に、実行の準備ができたタスクに
利用できるプロセツサを自動的に割り当てる機能
を提供することである。 本発明のさらにもう1つの目的は、新しいタス
クを動的なソフトウエア制御の下に発生し、処理
し、削除し、また、共用のハードウエア・リソー
スとソフトウエア・リソースを動的に割り当て、
連動し、矯正する手段を提供することである。 本発明の簡単な要約 簡単に述べると前述の諸目的は、システム内部
のプロセツサによつて利用されオブジエクトを基
準とするアクセス機構を設けることによつて、本
発明に従つて実現される。オブジエクトとは、メ
モリ位置の連続的なアドレスの1組に維持された
関連の情報を表わす用語である。オブジエクトの
2つの基本的な種類はプロセツサによつて認識さ
れ、識別される。第1の基本的な種類(データ・
セグメント)は、文字、整数、実数などのような
通常のデータを含む。第2の基本的な種類(アク
セス・リスト)は、アクセス記述子を含む。各ア
クセス記述子は、これに関連するオブジエクトを
突き止めてこのオブジエクトへのアクセスの程度
を定める情報を生ずる。プロセツサは、基本的な
種類のオブジエクトを組合せることによつて複雑
なオブジエクトを作る。プロセツサ内部の機構が
複雑なオブジエクトの種類を識別してそれらの使
用を制御する。 そのような複雑なオブジエクトでは、1個のコ
ンテクストが手続き動作の一定の例にアクセス可
能なオブジエクトより成る環境を決定する。プロ
セツサはコンテクストのオブジエクトを認識して
それらをプロセス実行で利用する。 本発明の一態様に従うと、他の2種類のハード
ウエアが認識可能なオブジエクト、バツフア付き
通信ポートおよびデイスパツチ・ポートが定義さ
れる。 バツフア付きポートは現在実行中のプロセスに
応答し、各プロセスを交信する手段である。各バ
ツフア付きポートは、送られたメツセージを行列
に並べることと、メツセージを受け取るように待
機しているプロセスを行列に並べることの二重目
的行列を含む。 デイスパツチ・ポートとバツフア付きポート
は、利用できるプロセツサによつて実行される、
実行準備完了のプロセスのデイスパツチに利用さ
れる。各デイスパツチ・ポートは、実行のためバ
ツフア付きポートから送られるプロセスを行列に
並べるためと、実行のためプロセスを受け取るた
めに利用されるプロセスを行列に並べるための別
個の手段を含む。 本発明の別の態様に従うと、バツフア付きポー
トとデイスパツチ・ポートのいずれかにプロセス
を選択的に待機させるために、プロセスによつて
作動可能な手段が設けられる。これによつてプロ
セスはあるプロセツサまたは他のプロセツサによ
つて処理されるように選択的に交信され、それに
よつてプロセツサによるプロセスの実行の前に別
のプロセス通訳が挿入される。 本発明のさらに別の態様に従うと、「デツドラ
イン」という値がデイスパツチ・ポートで使用さ
れる。この値は、プロセツサがプロセスをデイス
パツチ・ポートで待機しているときプロセツサに
よつて発生され、最も近いデツドラインを有する
プロセスが要求行列の頭に置かれる。従つて要求
行列の各プロセスは、デツドラインを増加するこ
とによつて優先度順に並べられる。プロセツサは
常に要求行列の頭からプロセスを取り除くので、
最も近いデツトラインを有するプロセスが最初に
処理される。将来実行されるためにプロセスがひ
とりで待機するようにするための手段も設けられ
る。デツトラインがどちらでもプロセスが待機し
ない場合には、デイスパツチ・ポートで待機して
いる遊びプロセツサは将来、自動的に遅延プロセ
スに合わせてスケジユーリングがやり直される。 本発明は、監視コントロール・プログラムを不
要とする利点を有する。これはハードウエア・バ
ツフア付きポート機構(これによつてプロセツサ
はプロセス間の通信機能、従つて実行のためのデ
イスパツチ・ポートへのプロセスを遅延または中
継を実行することができる。)と共にハードウエ
ア・デイスパツチ・ポート機構(これによつてプ
ロセツサは自己待機機能を実行することができ、
従つて実行すべきプロセスが到着するまでデイス
パツチ・ポートで待機することができる。)を設
けることによつて実施される。 本発明は、従来の中央制御技術がタスク割り当
てとして必要でなく、プロセス間の通信がプロセ
ツサ自体によつて実行される、という別の利点も
有する。マスタ・スレーブ型システムの欠点は除
去される。 本発明は、遅延期間およびサービス期間という
情報のフイールドを含むリソース・コントロー
ル・セグメントを利用する。これは、ソフトウエ
アを通して初期設定した方針に従つてプロセツサ
が自動的に処理中のリソースを制御分配できる利
点を有する。 本発明は、新規なバツフア付きポートとデイス
パツチ・ポートによつて同時同期または非同期動
作を処理することができるという点で、従来の同
期式多重処理システムよりすぐれている。 本発明はまた、プロセツサの個数を増やすこと
によつて、各新規な構成に新しいソフトウエアを
付けることなく性能を高めることができる、とい
う利点を有する。これは、プロセツサが自動的に
準備完了プロセスに割り当てられるか、あるいは
何かほかのプロセツサでのアクテイビテイによつ
てプロセスの準備が完了するのを待機することに
よつて可能となる。 本発明の他の利点は、コンテクストの静的成分
を共用アクセス・リストと私用アクセス・リスト
に分ける新規な方法によつて、近代的なプログラ
ム言語が支持されるという点にある。一定の拡張
型の動作はすべて、共用アクセス・リストを介し
て利用でき、データの隠匿またはオブジエクトの
隠匿は私用アクセス・リストによつて行われる。 本発明はまた、ベース・アドレスとセグメント
記述子を記憶するセグメント・テーブルを設ける
ことにより、セグメントを記述するパラメータの
更新がパラメータの1個のコピーの更新によつて
実行されるという利点を有する。
ペレータにより実行できる少なくとも1つのプロ
セツサ200(第5図)と、 多数のプロセツサ200,202,204(第
5図)により共用できるメモリ206(第5図)
に格納されたアドレス可能な複数のオブジエクト
と、 前記メモリのセグメントの配置用のベースおよ
び長さ情報を格納しているセグメント記述子を含
んでいるアドレツシング機構12(第1図)とを
備えたデータ処理装置において、 前記複数のオブジエクトは第1の基本的な種類
の第1のオブジエクト(データ・セグメント)を
含み、この第1のオブジエクトは、前記命令も含
む命令にしてオペレーシヨンを定める命令をもつ
て構成された命令オブジエクト90(第3b図)
を含み、そして第1のオブジエクトそれぞれは連
続してアドレスされるメモリ場所のセグメントに
維持される関連する第1の情報を表わすものであ
り、 前記複数のオブジエクトは更に第2の基本的な
種類の第2のオブジエクト(アクセス・リスト)
を含み、この第2のオブジエクトはアクセス記述
子のリストをもつて構成されたプロセツサ・オブ
ジエクト76(第2a図),142(第4b図)
を含み、そして第2のオブジエクトそれぞれは連
続してアドレスされるメモリ場所のセグメントに
維持される関連する第2の情報を表わすものであ
り、 複数のタスクに関連する複数のセグメント表の
うちの1つのセグメント表50(第2a図)に、
前記第1のオブジエクトおよび前記第2のオブジ
エクトへのアドレスの形成において前記アドレツ
シング機構で使用するセグメント記述子を格納し
ており、 このセグメント表50はベース・アドレスに配
置され、 前記プロセツサ・オブジエクト76(第2a
図),142(第4b図)にはセグメント表のダ
イレクトリー68(第2a図)が組合わされ、 前記セグメント表のダイレクトリー68は前記
複数のセグメント表に対するベース・アドレスを
含むセグメント記述子を格納しており、その第1
のセグメント記述子70(第2a図)が前記セグ
メント表50のベース・アドレスを含んでおり、 前記セグメント表50のエントリイには第2の
セグメント記述子54(第2a図)を含み、 前記セグメント記述子のうち前記第2のセグメ
ント記述子54を含むものそれぞれは、当該セグ
メント44が、前記第1の基本的な種類のオブジ
エクト(データ・セグメント)に対応するのか又
は前記第2の基本的な種類のオブジエクト(アク
セス・リスト)に対応するのかを示すベースの種
類のフイールド46(第2a図)を有しており; 前記プロセツサ・オブジエクト中のアクセス記
述子(セグメント表ダイレクトリーAD)は、前
記第1の基本的な種類のオブジエクトまたは前記
第2の基本的な種類のオブジエクトに対して許さ
れる。アクセスの範囲とアクセスの種類とを指定
するためのベース・ライト種類用のフイールド4
6(第2a図)を有し、 前記アクセス記述子はセグメント索引番号とダ
イレクトリー索引番号とを格納しており; 前記ダイレクトリー索引番号を前記セグメント
表のダイレクトリー68内への索引として利用す
ることにより、前記第1のセグメント記述子を前
記セグメント表のダイレクトリー68内に配置す
るための手段RGU232(第6図)を備え; 前記第2のセグメント記述子54(第2a図)
の前記セグメント表50内への配置用のアドレス
を形成するために、前記第1のセグメント記述子
70中のベース・アドレスを前記アクセス記述子
(セグメント表ダイレクトリーAD)のセグメン
ト索引番号に組合わせるための手段404,43
0,433(第8図)を備え; 前記第2のセグメント記述子54のベースの種
類のフイールドを前記アクセス記述子(セグメン
ト表ダイレクトリーAD)のベース・ライト種類
用のフイールドと比較し、かつ、前記第2のセグ
メント記述子54(第2a図)のベースの種類の
フイールドが前記プロセツサ・オブジエクト7
6,142内の前記アクセス記述子(セグメント
表ダイレクトリーAD)のベース・ライト種類用
のフイールドとは異なるという条件の時に障害を
アサートするための手段410(第8図)とを備
えることを特徴とするデータ処理装置。 2 請求の範囲第1項記載のデータ処理装置にお
いて、 前記第2の基本的な種類(アクセス・リスト)
のコンテクスト・オブジエクト94(第3a図)
にして、前記複数のタスクの1つをアクセスでき
るオブジエクトの環境14,16(第1図)を定
めるアクセス・リストを含む、コンテクスト・オ
ブジエクトを備え、 オブジエクトの前記環境14,16は前記第1
の基本的な種類のオブジエクト(データ・セグメ
ント)および前記第2の基本的な種類のオブジエ
クト(アクセス・リスト)を含み; 前記第2の基本的な種類の(アクセス・リス
ト)のプロセス・オブジエクト140(第4a
図)にして、前記プロセツサ200において現在
実行しているプロセスを定めるアクセス・リスト
を含み、そのアクセス・リストは現在のコンテク
スト・アクセス記述子を含んでいるプロセス・オ
ブジエクトを備え、 前記コンテクスト・オブジエクトが、前記現在
のコンテクスト・アクセス記述子により、前記プ
ロセツサ200で現在実行している前記プロセス
の前記プロセス・オブジエクト140(第4a
図)に関連づけられることを特徴とするデータ処
理装置。 3 請求の範囲第2項記載のデータ処理装置にお
いて、 前記プロセス・オブジエクト140(第4a
図)は、前記メモリ中の前記命令オブジエクトの
1つ90に関連する計算の状態であつて、各プロ
セスに対して定められる仮想プロセツサを表す状
態を格納でき、 前記プロセツサ・オブジエクト142(第4b
図)は、いくつかのプロセツサのうちの1つを前
記プロセス・オブジエクト140(第4a図)に
関連づけるための手段(現在のプロセツサ・オブ
ジエクトAD)を有することを特徴とするデータ
処理装置。 4 請求の範囲第3項記載のデータ処理装置にお
いて、 キユーイング手段(デイスパツチ・ポート14
6(第4b図)を備え、 前記プロセツサ・オブジエクト142(第4b
図)は多数のプロセツサの1つを前記キユーイン
グ手段に関連づける関連付け手段(通常デイスパ
ツチ・ポートAD)を有し、 前記キユーイング手段146は前記多数のプロ
セツサの1つにより実行するためにプロセスのデ
イスパツチを行うことができ、 前記キユーイング手段146は実行のために送
られたプロセスをキユーイングするために実行可
能プロセス用キユーイング手段194(第4b
図)と、実行のためのプロセスを受けるために利
用できるプロセツサをキユーイングするプロセツ
サキユーイング手段192(第4b図)とを含む
ことを特徴とするデータ処理装置。 5 請求の範囲第3項または第4項記載のデータ
処理装置において、プロセツサが2つの通信セグ
メントに対して前記プロセツサ・オブジエクト1
42を介してのアクセス権を有し、一方の通信セ
グメントはシステムワイド通信用(グローバル通
信セグメント190(第4a図)であり、もう一
方はプロセツサ特定通信用(ローカル通信セグメ
ント172)であり; 前記通信セグメント内のプロセツサ制御フラツ
グ190,172を備えることを特徴とするデー
タ処理装置。 6 請求の範囲第1項〜第5項の1項に記載のデ
ータ処理装置において、 特定の記憶装置リソースから割当てるために利
用できる物理的メモリのブロツクを定めるための
記憶装置リソース制御セグメント82,170
(第2b図)を備え、 この記憶装置リソース制御セグメントは、前記
プロセツサで実行中のプロセスからの要求に応答
して、前記第1の基本的な種類のシステム・オブ
ジエクトまたは第2の基本的な種類のシステム・
オブジエクトのデータ・セグメントをプロセスに
割当てるのに使用するために前記プロセス・オブ
ジエクト140(第4a図)に関連づけられ、 前記プロセス・オブジエクトアクセス・リスト
140(第4b図)は記憶装置リソース制御セグ
メント・アクセス記述子143(第4b図)を含
み、 前記プロセツサ・オブジエクト・アクセス・リ
スト140(第4b図)は記憶装置リソース制御
セグメント・アクセス記述子143(第4b図)
を含み、 記憶装置リソース制御セグメント82,170
(第2b図)は、前記プロセツサ200で現在実
行されている前記プロセスの前記プロセス・オブ
ジエクト140(第4a図)に、前記記憶装置リ
ソース制御セグメント・アクセス記述子により、
関連づけられることを特徴とするデータ処理装
置。 7 請求の範囲第6項記載のデータ処理装置にお
いて、 前記システム・オブジエクト内のデータを取扱
うデータ取扱い手段DMU230(第8図)と、 セグメント・セレクタ(セグメント記述子また
はアクセス記述子)内のベースの種類のフイール
ドに応答して、前記第2の基本的な種類のシステ
ム・オブジエクト(アクセス・リスト)内のデー
タの取扱いを阻止する、前記取扱い手段内の手段
と、を備えることを特徴とするデータ処理装置。 8 請求の範囲第1項記載のデータ処理装置にお
いて、 送信側プロセツサ38(第1図)と、 ターゲツト・プロセツサ40(第1図)とを備
え、かつプロセツサ間通信機構42(第1図)を
備え、このプロセツサ間通信機構は、 前記メモリに格納され、前記ターゲツト・プロ
セツサに関連づけられた第1のプロセツサ・オブ
ジエクト142(第4b図)と、 前記メモリに格納され、前記ターゲツト・プロ
セツサ40および前記送信側プロセツサ38を含
む前記複数のプロセツサの1つに関連づけられた
第2のプロセツサ・オブジエクト620(第16
b図)と、 前記メモリに格納され、前記複数のプロセツサ
の任意の1つのプロセツサに関連づけられている
プロセツサ・オブジエクト620,142に格納
されているアクセス情報を用いることにより、前
記1つのプロセツサによりアクセスできる通信セ
グメントであつて、通信機能を指定する制御フラ
ツグを含む通信セグメント190(第4a図)
と、 通信機能を指定する前記制御フラツグを含むメ
ツセージを前記通信セグメント190(第4a
図)内に置くことができるように、前記通信セグ
メントを配置する、前記送信側プロセツサ・オブ
ジエクト620(第16b図)内の手段(I/O
プロセツサ制御セグメントAD)と、 前記送信側プロセツサと前記ターゲツトプロセ
ツサの間に接続され、前記ターゲツトプロセツサ
に合図することにより、前記通信セグメント中に
メツセージが存在することを前記ターゲツトプロ
セツサへ知らせる手段(ISB線401(第8図))
と、 を備えることを特徴とするデータ処理装置。 9 請求の範囲第8項記載のデータ処理装置にお
いて、 前記送信側プロセツサと前記ターゲツトプロセ
ツサは同じプロセツサであり、 それによりプロセツサはメツセージをそれ自身
へ送ることができることによりタスクの実行を開
始できることを特徴とするデータ処理装置。 10 請求の範囲第8項記載のデータ処理装置に
おいて、 前記通信セグメントはグローバル通信セグメン
ト190(第4b図)であり、 前記プロセツサ・オブジエクト142(第4b
図)中のグローバル通信セグメント・アクセス記
述子と、 前記プロセツサ・オブジエクト620(第4b
図)中のグローバル通信セグメント・アクセス記
述子と、 を備え、このグローバル通信セグメント・アクセ
ス記述子は190(第4a図)は前記複数のプロ
セツサに共通であることを特徴とするデータ処理
装置。 11 請求の範囲第8項記載のデータ処理装置に
おいて、 前記通信セグメント(ローカル通信領域172
(第4b図)は前記ターゲツトプロセツサのみに
関連づけられ、 前記複数のプロセツサの残りのもののうち特定
の1つに関連づけられた少くとも1つの付加通信
セグメント(ローカル通信領域622(第16b
図)、を備えることを特徴とするデータ処理装置。 12 請求の範囲第8項記載のデータ処理装置に
おいて、 前記通信セグメントは、多数のプロセツサ制御
フラツグを含むフイールドを備え、 それにより、前記送信側プロセツサにより前記
フラツグがセツトされ、前記通信セグメントに対
するアクセス権を有する前記ターゲツトプロセツ
サにより後で検査された時に、検査するターゲツ
トプロセツサは前記制御フラツグのセツトに応じ
て各種の機能を実行することを特徴とするデータ
処理装置。 13 請求の範囲第8項記載のデータ処理装置に
おいて、 各通信セグメント190,622(第4a図)
はプロセツサ間メツセージの伝送をインターロツ
クするための1組の除外フラツグ(ロツク・フイ
ールド、ロツカーID(第4a図))を含むことを
特徴とするデータ処理装置。 14 請求の範囲第1項記載のデータ処理装置に
おいて、 バツフア付きポート・システム・オブジエクト
144(第4a図)と、 アクセスの種類と、前記プロセツサの前記1つ
に対して実行すべきプロセスに関連づけられてい
るシステム・オブジエクト(前記バツフア付きポ
ート・システム・オブジエクト144(第4b
図)を含む)に対して許されたアクセスの範囲と
を格納するプロセス・オブジエクト140(第4
a図)と、 前記プロセス・オブジエクト140(第4a
図)へアクセス権を与える前記プロセツサ・オブ
ジエクト142(第4b図)中の第1のアクセス
記述子(現在のプロセツサ・オブジエクトAD)
と、 前記現在のバツフア付きポート・システム・オ
ブジエクト144(第4b図)へアクセス権を与
える情報を含んでいる第2のアクセス記述子(現
在のバツフア付きポートAD139(第4a図))
と、 システム・オブジエクトとしてメツセージへア
クセス権を与える前記バツフア付きポート144
(第4a図)中の第3のアクセス記述子(メツセ
ージまたはプロセスAD158(第4a図))と
を備え、 前記プロセツサ・オブジエクトは記憶装置に格
納され、 前記プロセスの命令に応答して、前記プロセ
ス・オブジエクト140(第4a図)をフエツチ
するために前記第1のアクセス記述子(現在のプ
ロセス・オブジエクトAD(第4b図))を用いる
ことができる制御手段(第7図および第8図)に
して、前記第2のアクセス記述子(現在のバツフ
ア付きポートAD)を用いて前記バツフア付きポ
ート・システム・オブジエクト144(第4a
図)をアクセスする手段を含んでいる制御手段
と、 前記バツフア付きポート・オブジエクトをアク
セスするために前記第2のアクセス記述子(現在
のバツフア付きポートAD)を用いる手段と、 前記アクセス記述子(障害メツセージAD14
9(第4a図)または現在のサービスポート
AD)を 前記プロセス・オブジエクト140(第4a
図)から前記バツフア付きポート・オブジエクト
144(第4a図)へ動かす手段とを備え、それ
により前記プロセツサは、プロセスと対にすべき
メツセージのための前記メツセージアクセス記述
子を並べるために前記バツフア付きポート・シス
テム・オブジエクトを用いることを特徴とするデ
ータ処理装置。 15 請求の範囲第14項記載のデータ処理装置
において、 前記プロセツサの前記1つにより実行するため
にプロセスをデイスパツチするデイスパツチ・ポ
ート・システム・オブジエクト146(第4b
図)を備え、 前記デイスパツチ・ポート146は、実行のた
めに送られたプロセスを並べる手段194(第4
b図)と、それの実行のためにプロセスを受ける
のに利用できるプロセスをキユーイングする手段
192(第4b図)とを含み、 前記多数のアクセス記述子のうち、システム・
オブジエクトとして前記プロセツサを表す1つの
アクセス記述子は、前記デイスパツチ・ポート・
システム・オブジエクト146(第4b図)にア
クセス権を与える第4のアクセス記述子(現在の
サービスポートAD(第4a図))であり、 前記制御手段は、前記デイスパツチ・ポート・
システム・オブジエクト146(第4b図)をア
クセスするために前記第4のアクセス記述子(現
在のサービス・ポートAD(第4a図))を用いる
手段を含むことを特徴とするデータ処理装置。 16 請求の範囲第15項記載のデータ処理装置
において、 スケジユーリング制御データを前記デイスパツ
チ・ポート・オブジエクトと前記プロセス・オブ
ジエクトに格納するポート制御手段152(第4
a図)を更に備え、前記データは、行列中のどこ
にプロセスを挿入するかについての情報と、ひと
たびデイスパツチされるとプリエンプシヨンまで
に前記プロセスをどれくらい長く実行させるかに
ついての情報と、スケジユーリング・サービスを
するソフトウエア・サーバに前記プロセスを送る
べきかどうかを指示する情報と、前記プロセスを
次のサービスのためにどこへ送るべきかを指示す
る情報とを含むことを特徴とするデータ処理装
置。 17 請求の範囲第14項記載のデータ処理装置
において、前記バツフア付きポートの少くとも一
部はアクセス記述子を含むアクセス・リストによ
つて表わされ、前記アクセス記述子の1つはサー
ビス・ポート用のサービス・ポート・アクセス記
述子であることを特徴とするデータ処理装置。 18 請求の範囲第14項記載のデータ処理装置
において、前記バツフア付きポートで行列に並べ
られたメツセージはアクセス記述子の形であり、
各アクセス記述子は前記アクセス記述子に関連す
るセグメントにアクセスするプロセスにて利用で
きるアクセス・ライトを指定する符号化された情
報を含むことを特徴とするデータ処理装置。 19 請求の範囲第14項記載のデータ処理装置
において、前記バツフア付きポート144(第4
a図)は、 送られたメツセージについてはアクセス記述子
を保持する要求行列として、およびメツセージの
到着を待つて中断されているプロセスについては
プロセス・オブジエクトアクセス記述子を保持す
るサーバ行列として選択的に働くキユーイング手
段158,152(第4a図)と、 このキユーイング手段が現在サーバ行列と要求
行列のいずれとして働いているか、またはからで
あるかどうかを指示するステータス情報手段16
0(第4a図)と、 を更に備えることを特徴とするデータ処理装置。 発明の分野 本発明はデータ処理システムに関し、より具体
的には、多重処理システムに関する。 従来技術の説明 多重処理システムは同時に2つかそれ以上のコ
ンピユータ・プログラムつまり命令系統を実行す
ることができる。密に結合された多重処理システ
ムでは、幾つかのプロセツサが1個の共用のメモ
リに接続される。これらのシステムは、1つかそ
れ以上のプロセツサに関する数多くの並行機能ま
たはタスクを多重送信する。各タスクの間に必要
な分離と交信を保証すると共に、実行準備ができ
ているタスクに利用できるプロセツサを割り当て
るための機能を設けなければならない。従来の方
法では、ソフトウエア、フアームウエアおよびハ
ードウエアの各技術が利用された。 従来のソフトウエア技術には、タスクをシステ
ム内の他のプロセツサに割り当てるよう1台のプ
ロセツサがエグゼキユーテイブ機能を実行するマ
スタ・スレーブ型のシステムがある(メリン
(Mellen)他を発明者とする米国特許第3530438
号およびバーバー(Barbour)を発明者とする米
国特許第3984817号)。どれもマスタの役割を引き
受けない同一のプロセツサを利用するシステムも
ある。これらのシステムはタスクを割り当てるソ
フトウエアがメモリに記憶される中央制御装置を
利用する(ドリスコル(Driscoll)を発明者とす
る米国特許第3496551号およびオクスナー
(Ochsner)を発明者とする米国特許第3348210
号)。最後に、各プロセツサ内でのタスク割り当
てを実行するために特殊命令を利用するシステム
がある(ポドビン(Podvin)を発明者とする米
国特許第3614745号およびクラーク(Clark)を
発明者とする米国特許第3725864号)。 メレシ他の米国特許第3530438号には、どのタ
スクでも実行することができる同一のプロセツサ
を有する多重プロセツサが開示されている。エグ
ゼキユーテイブ・コントロール・プログラムは、
受け取つたリクエストのタスク優先リストを維持
することによつて、タスク・スケジユーリングを
処理する。このリクエストはリストから取り除か
れ、そして利用できるようになつた際に各プロセ
ツサに割り当てられる。プロセツサはあるタスク
を終えると、新しい割り当てがないかどうかタス
ク・テーブルを問い合わせる。このシステムはエ
グゼキユーテイブ・コントロール・プログラミン
グに依存してタスク・スケジユーリングを実行す
る。このコントロール・プログラムは、タスクの
要求の発生と各要求に対する優先度の割り当てを
制御し、タスク・テーブル内の各要求の優先処理
をし、そしてプロセツサがタスクを実行できるよ
うになつた際にタスク・テーブルからの要求の1
つづつの取り除きを制御する。 バーバーの米国特許第3984817号は、各プログ
ラムのアクテイビテイ・レベルに基づいてデータ
処理装置のメモリ内の各リソースを複数のプログ
ラムに割り当てる。プログラムの各使用によつ
て、使用されたプログラムのアクテイビテイ行列
は最も高いアクテイビテイ状態を与えられる。 ドリスコルの米国特許第3496551号では、異な
る行列にタスクを割り当てる監視プログラムによ
つてタスク割り当てが実行される。監視プログラ
ムによつて設定される割り当てシステムが各種の
プロセツサを行列に割り当てるので、各行列には
間違いなくある数のプロセツサが作用する。各行
列について設定された割り当てシステムによつて
プロセツサは、特定の行列がこれに作用するプロ
セツサの割り当てを有するようになつたとき、ス
キヤナー・シーケンス内の次の行列に進められ
る。このようにして、監視プログラムはシステム
の効率を最大にしようとする。 オクスナーの米国特許第3348210号では、多数
の同一のプロセツサが1個の共通のメモリを共用
して各タスクを並行に実行する。あるプロセツサ
がタスクを1つ完了すると、そのタスク内の最後
の命令はプロセツサの制御権を、共通のメモリと
は別のメモリに記憶されているタスク割り当てア
ルゴリズムに渡す。これは、タスク割り当て機能
を実行する中央制御装置にプロセツサが制御権を
譲る形式の多重プロセツサの一例である。 ポドビンの米国特許第3614745号では、タスク
の切り替えを開始するためにフオーク命令が利用
される。プロセツサがこの命令を実行すると、フ
オーク・ステータス・ワードが、システム全体に
ついてリソース・マネージメントを処理する中央
制御装置に送られる。ステータス・ワーク行列が
各種類のフオーク命令ごとに維持される。中央制
御装置は利用できるプロセツサを割り当てて、こ
れらプロセツサに行列からタスクを取らせてそれ
を実行させる。本特許は並行なタスクが実行され
ているとき、リソースを動的に割り当てることに
よつてシステムの最高の効率を達成しようとする
ものである。この技術では、他の自由なプロセツ
サの間にタスクを分配するジヨブをプロセツサの
うちの1つが取る必要がある。 クラークの米国特許第3725864号では、複数の
I/Oプロセツサが、このI/Oプロセツサが利
用できるときには常にタスクの行列からI/Oタ
スクを選択する。I/Oプロセツサは、一時的に
停止することができるプログラム内の一点まで
I/Oプログラムを実行する。次にプログラムは
装置行列内に記憶され、I/Oプロセツサはこれ
によつて解放されてタスク行列から別のタスクを
選択できるようになり、それによつて新しいタス
クに関連するI/Oプログラムを実行する。装置
行列内に記憶されていて、半ば実行されたタスク
が旧状態に戻る準備ができると、指定された装置
はI/Oプロセツサに合図を送る。利用できるプ
ロセツサのうちのどの1台でも、信号に応答し、
半ば実行されたタスクを装置行列から取り出し、
そして先に停止されていたI/Oプログラムを再
開する。チヤンネルプログラムの自己スケジユー
リングは、チヤンネルプログラムの一部である特
殊エンキユー指令によつて行われる。 フアームウエアを利用する技術は、スケジユー
リングと各機能の割り当てを実行するために専用
のマイクロプログラムド・コントローラを使用す
る。 ナーダ(Nadir)を発明者とする米国特許第
4011545号はその一例であり、この米国特許はル
ープ・アーキテクチヤを利用する多重処理システ
ムを開示している。多数のプロセツサが通信ルー
プに接続されてポートを通してアクセスされ、こ
のポートは独特のアドレスによつて識別される。
データと指令はループ上のタイム・スロツトによ
つて受け取られる。情報は受信プロセツサにある
シフト・レジスタにシフトされる。プロセツサの
アドレスがシフトされたデータ内に発見される
と、動作が開始される。プロセツサのアドレスが
発見されないと、データはループに戻されて何の
変化も生じない。 従来のハードウエア技術の中には、行列を操作
することによつて多数のプロセツサの間にタスク
を割り当てる中央制御装置(タツカー(Tucker)
を発明者とする米国特許第3449722号)またはス
キヤナー(バラシス(Valassis)を発明者とする
米国特許第39597875号)を利用し、タスク行列を
有する技術がある。他のハードウエア技術はタイ
ム・スロツトを各プロセツサに割り当て、それに
よつて、同期バス技術(アンソ(Anceau)他を
発明者とする米国特許第4011545号)を利用する
か、プロセツサにメモリ・サイクルを割り振る
(ブラウン(Brown)を発明者とする米国特許第
3896418号)ことによつてプロセツサをプログラ
ムに同期させる。 バラシス他の米国特許第3959775号は、バス・
アサイナという共通の制御装置がプロセツサを走
査することによつて、優先度ベースまたは逐次ベ
ースでプロセツサを割り当てる、同期式の多重プ
ロセツサを開示している。 タツカーの米国特許第3449722号では、共通の
行列が多数の独立したプロセツサを処理する。動
作はすべて、共通の行列にアクセスする中央制御
部の制御下にある。従つて、中央制御装置は、自
由なプロセツサに取つておかれる要求を見つける
ために、プロセツサが自由になると行列を調べる
ことによつて適当なプロセツサを選択する。 アンソ他の米国特許第4015242号は、1台のハ
ードウエア主プロセツサと、多数のプログラムを
実行する幾つかの特殊プロセツサを有する多重処
理システムを開示している。タスクの切り替えは
ソフトウエアのリストと優先度処理によつて制御
される。レジスタ内の一群のフリツプフロツプ
が、どのプロセツサが作動しているかを指示す
る。マネージメント・ロジツクは、割り振り機能
を実行するため、これらフリツプフロツプの状態
を調べる手段を含む。この特許は、割り振りとス
ケジユーリングの両機能が特殊な自動マイクロプ
ログラムド・ロジツクによつて実行される最近の
技術の一例である。 ブラウンの米国特許第3896418号は、プロセツ
サが同時に別々のプログラムを実行することがで
きるように共通のメモリを共用する多重プロセツ
サを処理する、さらに別の同期方法の一例であ
る。このブラウンの特許では、一方のプロセツサ
が取り出しサイクルにある間に他方のプロセツサ
が実行サイクルにあるように、各プロセツサの取
り出しサイクルと実行サイクルが同期化される。 従来のデータ処理システムのなかで、超LSIの
技術水準の近年の進歩を最大限利用するものは1
つもなかつた。従つて、これら従来システムの性
能は低く、多重処理を支持するためのプログラミ
ングは非常に複雑である。 前述の従来のソフトウエア技術に関しては、複
雑な多重処理動作を実行することができるが、こ
のような動作を支持するためのプログラミングを
制御するのに多大なコストがかかる欠点がある。 フアームウエア技術は、ソフトウエア技術のプ
ログラミングのコストを多少軽減するが、融通性
と汎用性に欠ける。 従来のハードウエア技術もまた、同期式の動作
を処理することができるのにすぎないので融通性
に欠ける。従来のハードウエア技術はまた、例え
ばプロセツサ・レベルでの割り込みのような前述
の動作を支持する高価なコントロール・プログラ
ムに頼ることなく、各種の非同期動作を有効に交
信させるのに必要なハードウエア機構も有してい
ない。 従つて本発明の主要な目的は、高速で経済的で
あり、しかもLSI技術を有効に利用するように設
計された、新規なデータ処理装置を提供すること
である。 本発明のもう1つの目的は、各システム間の互
換性を保ちながらシステムの性能の幾つかのレベ
ルを支持するアーキテクチヤ構造を提供すること
である。 本発明のさらにもう1つの目的は、1台または
それ以上のプロセツサが1つのメモリ・スペース
を共用する、密に結合された多重処理システム内
に利用することができるデータ処理装置を提供す
ることである。 本発明のさらにもう1つの目的は、プロセツ
サ・レベルの割込みまたはサービス要求を必要と
しないデータ処理システムを提供することであ
る。 本発明のさらにもう1つの目的は、論理的な制
約なしに汎用プロセツサと入出力プロセツサを追
加可能にすることによつて、処理能力を増大させ
る能力があるデータ処理システム構造を提供する
ことである。 本発明のさらにもう1つの目的は、1つかそれ
以上のプロセツサを同時に実行するように多重化
されるタスクを分離・交信するハードウエア機構
を提供すると共に、実行の準備ができたタスクに
利用できるプロセツサを自動的に割り当てる機能
を提供することである。 本発明のさらにもう1つの目的は、新しいタス
クを動的なソフトウエア制御の下に発生し、処理
し、削除し、また、共用のハードウエア・リソー
スとソフトウエア・リソースを動的に割り当て、
連動し、矯正する手段を提供することである。 本発明の簡単な要約 簡単に述べると前述の諸目的は、システム内部
のプロセツサによつて利用されオブジエクトを基
準とするアクセス機構を設けることによつて、本
発明に従つて実現される。オブジエクトとは、メ
モリ位置の連続的なアドレスの1組に維持された
関連の情報を表わす用語である。オブジエクトの
2つの基本的な種類はプロセツサによつて認識さ
れ、識別される。第1の基本的な種類(データ・
セグメント)は、文字、整数、実数などのような
通常のデータを含む。第2の基本的な種類(アク
セス・リスト)は、アクセス記述子を含む。各ア
クセス記述子は、これに関連するオブジエクトを
突き止めてこのオブジエクトへのアクセスの程度
を定める情報を生ずる。プロセツサは、基本的な
種類のオブジエクトを組合せることによつて複雑
なオブジエクトを作る。プロセツサ内部の機構が
複雑なオブジエクトの種類を識別してそれらの使
用を制御する。 そのような複雑なオブジエクトでは、1個のコ
ンテクストが手続き動作の一定の例にアクセス可
能なオブジエクトより成る環境を決定する。プロ
セツサはコンテクストのオブジエクトを認識して
それらをプロセス実行で利用する。 本発明の一態様に従うと、他の2種類のハード
ウエアが認識可能なオブジエクト、バツフア付き
通信ポートおよびデイスパツチ・ポートが定義さ
れる。 バツフア付きポートは現在実行中のプロセスに
応答し、各プロセスを交信する手段である。各バ
ツフア付きポートは、送られたメツセージを行列
に並べることと、メツセージを受け取るように待
機しているプロセスを行列に並べることの二重目
的行列を含む。 デイスパツチ・ポートとバツフア付きポート
は、利用できるプロセツサによつて実行される、
実行準備完了のプロセスのデイスパツチに利用さ
れる。各デイスパツチ・ポートは、実行のためバ
ツフア付きポートから送られるプロセスを行列に
並べるためと、実行のためプロセスを受け取るた
めに利用されるプロセスを行列に並べるための別
個の手段を含む。 本発明の別の態様に従うと、バツフア付きポー
トとデイスパツチ・ポートのいずれかにプロセス
を選択的に待機させるために、プロセスによつて
作動可能な手段が設けられる。これによつてプロ
セスはあるプロセツサまたは他のプロセツサによ
つて処理されるように選択的に交信され、それに
よつてプロセツサによるプロセスの実行の前に別
のプロセス通訳が挿入される。 本発明のさらに別の態様に従うと、「デツドラ
イン」という値がデイスパツチ・ポートで使用さ
れる。この値は、プロセツサがプロセスをデイス
パツチ・ポートで待機しているときプロセツサに
よつて発生され、最も近いデツドラインを有する
プロセスが要求行列の頭に置かれる。従つて要求
行列の各プロセスは、デツドラインを増加するこ
とによつて優先度順に並べられる。プロセツサは
常に要求行列の頭からプロセスを取り除くので、
最も近いデツトラインを有するプロセスが最初に
処理される。将来実行されるためにプロセスがひ
とりで待機するようにするための手段も設けられ
る。デツトラインがどちらでもプロセスが待機し
ない場合には、デイスパツチ・ポートで待機して
いる遊びプロセツサは将来、自動的に遅延プロセ
スに合わせてスケジユーリングがやり直される。 本発明は、監視コントロール・プログラムを不
要とする利点を有する。これはハードウエア・バ
ツフア付きポート機構(これによつてプロセツサ
はプロセス間の通信機能、従つて実行のためのデ
イスパツチ・ポートへのプロセスを遅延または中
継を実行することができる。)と共にハードウエ
ア・デイスパツチ・ポート機構(これによつてプ
ロセツサは自己待機機能を実行することができ、
従つて実行すべきプロセスが到着するまでデイス
パツチ・ポートで待機することができる。)を設
けることによつて実施される。 本発明は、従来の中央制御技術がタスク割り当
てとして必要でなく、プロセス間の通信がプロセ
ツサ自体によつて実行される、という別の利点も
有する。マスタ・スレーブ型システムの欠点は除
去される。 本発明は、遅延期間およびサービス期間という
情報のフイールドを含むリソース・コントロー
ル・セグメントを利用する。これは、ソフトウエ
アを通して初期設定した方針に従つてプロセツサ
が自動的に処理中のリソースを制御分配できる利
点を有する。 本発明は、新規なバツフア付きポートとデイス
パツチ・ポートによつて同時同期または非同期動
作を処理することができるという点で、従来の同
期式多重処理システムよりすぐれている。 本発明はまた、プロセツサの個数を増やすこと
によつて、各新規な構成に新しいソフトウエアを
付けることなく性能を高めることができる、とい
う利点を有する。これは、プロセツサが自動的に
準備完了プロセスに割り当てられるか、あるいは
何かほかのプロセツサでのアクテイビテイによつ
てプロセスの準備が完了するのを待機することに
よつて可能となる。 本発明の他の利点は、コンテクストの静的成分
を共用アクセス・リストと私用アクセス・リスト
に分ける新規な方法によつて、近代的なプログラ
ム言語が支持されるという点にある。一定の拡張
型の動作はすべて、共用アクセス・リストを介し
て利用でき、データの隠匿またはオブジエクトの
隠匿は私用アクセス・リストによつて行われる。 本発明はまた、ベース・アドレスとセグメント
記述子を記憶するセグメント・テーブルを設ける
ことにより、セグメントを記述するパラメータの
更新がパラメータの1個のコピーの更新によつて
実行されるという利点を有する。
本発明の前述の目的とそれ以外の目的、特徴お
よび利点は、添付図面に示した本発明の好適な実
施例の以下の詳細な説明から明らかとなるもので
ある。 第1図は本発明の各種の部品を示す機能的ブロ
ツク図である。 合わせて取つた第2Aおよび2B図は第1図に
示している主メモリ内のオブジエクト・アドレス
指定と保護を支持するシステム・オブジエクトの
ブロツク図である。 合わせて取つた第3Aおよび3B図は第1図に
示している個々のプロセス環境を構成しているシ
ステム・オブジエクトのブロツク図である。 合わせて取つた第4Aおよび4B図は第1図に
示しているプロセス間通信、プロセスのスケジユ
ーリングとデイスパツチングおよびプロセツサ間
通信を支持するシステム・オブジエクトのブロツ
ク図である。 第5図は本発明が具体化される種類のコンピユ
ータ・システムのブロツク回路図である。 第6図は第5図に示している処理装置の1つの
ブロツク回路図である。 第7図は第6図の命令装置のブロツク回路図で
ある。 第8図は第6図の実行装置のブロツク回路図で
ある。 第9図はクロツク・タイミング図である。 第10図は典型的な読み取りサイクルのタイミ
ング図である。 第11図は典型的な書き込みサイクルのタイミ
ング図である。 第12図は失敗したアクセスのタイミング図で
ある。 第13図はマイクロコードの照会のタイミング
図である。 第14図はセルフ・チエツクのタイミング図で
ある。 第15図は真、警報およびHERRINの各ライ
ンのタイミング図である。 合わせて取つた第16Aおよび16B図は入出
力操作を支持するシステム・オブジエクトのブロ
ツク図である。 目 次 明細書 発明の分野 従来技術の説明 発明の簡単な要約 図面の簡単な説明 目 次 発明の紹介 オブジエクト発生、アドレス指定およびタイピ
ング 個々のプロセス環境 コンテクスト間通信 プロセス間通信 デイスパツチ機構 プロセツサ間通信 プロセツサの種類 第1部 一般化されたデータ処理装置のアーキテ
クチヤ 1.0 総合システム 1.1 セグメンテツド・アドレス指定 1.2 セグメントの種類 1.3 オブジエクト 1.4 機能的階層 1.5 通信 1.6 データの種類、演算子および命令 2.0 情報構造 2.1 メモリ 2.1.1 論理アドレス指定 2.1.2 物理アドレス指定 2.2 データ書式 2.3 データ表示 2.4 データの位置決め 2.5 データの保全 2.6 オペランド・スタツク 2.7 命令セグメント 3.0 一般化されたデータ処理 3.1 計算データの種類 3.1.1 文字 3.1.2 短序数 3.1.3 短整数 3.1.4 序数 3.1.5 整数 3.1.6 短実数 3.1.7 実数 3.1.8 一時実数 3.2 命令構成 3.2.1 引用の種類 3.2.2 演算子 3.2.3 データ引用 3.2.3.1 明示データ引用 3.2.3.2 暗黙データ引用 3.3 オペランド・スタツクの挙動 3.4 命令の逐次実行 3.5 ブランチング 4.0 システム・オブジエクト構造 4.1 セグメント 4.1.1 セグメント・テーブルとセグメント
記述子 4.1.2 システムの種類とその符号化 4.1.3 セグメント・テーブル・ダイレクト
リとセグメント・テーブル 4.1.4 一時セグメント・テーブル・ダイレ
クトリ 4.2 アクセス・リスト 4.2.1 アクセス記述子とアクセス経路 4.2.1.1 アクセス・ライト 4.2.1.2 記述子制御 4.2.2 アクセス・リスト・アクセス・ライ
ト 4.2.3 ヌル・アクセス記述子 4.3 データ・セグメント 4.3.1 データ・セグメント・アクセス・ラ
イト 4.3.2 セグメント・テーブル・セグメント 4.4 ドメイン 4.4.1 共用アクセス・リストと私用アクセ
ス・リスト 4.5 オペレーシヨンとコンテクスト 4.5.1 コンテクスト・オブジエクト 4.5.1.1 命令セグメント 4.5.1.2 コンテクスト・コントロールセグ
メント 4.5.1.3 オペランド・スタツク 4.5.1.4 エントリ・アクセス・リスト 4.6 コルーチン 4.6.1 バツフアなし通信ポート 4.7 プロセス 4.7.1 プロセス・オブジエクト 4.7.1.1 プロセス・コントロール・セグメ
ント 4.7.1.2 現在サービスとバツフア付きポー
ト 4.7.1.3 セグメント・テーブルとストレー
ジ・リソース 4.7.1.4 トレース、通知およびフオール
ト・バツフア付きポート 4.7.1.5 フオールト・アクセス記述子 4.7.2 バツフア付き通信ポート 4.7.2.1 バツフア付きポート・コントロー
ル・セグメント 4.7.2.2 サービス・ポート 4.8 プロセツサ 4.8.1 プロセツサ・オブジエクト 4.8.1.1 プロセツサ・セルフ・キユーイン
グ 4.8.1.2 プロセツサ・コントロール・セグ
メント 4.8.1.3 グローバル通信セグメント 4.8.1.4 現在プロセス・オブジエクト 4.8.1.5 現在セグメント・テーブル・デイ
レクトリ 4.8.1.6 警報デイスパツチ・ポート 4.8.1.7 診断デイスパツチ・ポート 4.8.1.8 フオールト・アクセス記述子とフ
オールト・プロセス・オブジエクト 4.8.2 デイスパツチ・ポート 4.8.2.1 デイスパツチ・ポート・コントロ
ール・セグメント 4.8.2.2 リクエストとサービス行列 4.8.2.3 デツドライン 4.8.2.4 プリエンプシヨン・ポート 4.9 ストレージ 4.9.1 フリー・セグメント記述子リスト 4.9.2 ストレージ・リソース・コントロー
ル・セグメント 4.10 トランス 4.11 ラベル 4.11.1 経路レベル記述子 4.11.2 ラベル・リンケージ 4.11.3 ラベル・オブジエクト 4.12 プロセツサ・レジスタ 5.0 アクセス環境操作と通信 5.1 アクセス環境操作機構 5.1.1 一般的なアクセス記述子の運動 5.1.2 複雑なオブジエクトの操作 5.1.3 種類、ライトの応用、操作 5.1.4 アクセス経路ラベリングと横断 5.1.5 ダイナミツク・セグメントと経路レ
ベル発生 5.1.6 アクセス経路検査 5.1.7 オブジエクト・インターロツク 5.2 通信機構 5.2.1 命令相互間の通信 5.2.2 コンテクスト相互間の通信 5.2.2.1 ドメイン内コンテクスト発生 5.2.2.2 ドメイン間コンテクスト発生 5.2.2.3 パラメータと結果伝送 5.2.2.4 コンテクスト参照 5.2.2.5 コンテクスト戻り 5.2.3 コルーチン相互間の通信 5.2.3.1 コルーチン・パラメータ伝送 5.2.3.2 コルーチン・再開/中断 5.2.4 プロセス相互間の通信 5.2.4.1 プロセス・パラメータ伝送 5.2.4.2 プロセス再開/中断 5.2.4.3 バツフア付き通信ポートとデイス
パツチ・ポート 5.2.5 プロセツサ相互間の通信 5.2.5.1 プロセツサ間通信プロトコル 5.2.5.2 プロセツサ制御機能 5.3 例外処理 5.3.1 通告 5.3.2 フオールト機構データ構造 5.3.3 コンテクスト・レベル・フオールト 5.3.3.1オブジエクト・アクセス・フオール
ト 5.3.3.2 変位フオールト 5.3.3.3 記述子コントロール・フオールト 5.3.3.4 計算フオールト 5.3.3.5 ソフトウエア・コンテクスト・フ
オールト 5.3.4 プロセス・レベル・フオールト 5.3.4.1 引用妥当性フオールト 5.3.4.2 再始動可能中断動作フオールト 5.3.4.3 コンテクスト・フオールト故障フオ
ールト 5.3.4.4 再始動不能フオールト 5.3.5 プロセツサ・レベル・フオールト 5.3.5.1 プロセス・レベル・フオールト故
障フオールト 5.3.5.2 プロセスのフオールト 5.3.5.3 矯正不能なハードウエアの故障 5.3.6 一貫性停止 5.4 デバツギング・サポート 5.5 初期設定とソフトウエア制御リセツト 5.6 警報処理 6.0 浮動点計算 6.1 浮動点モデル 6.2 まるめモード 6.3 精密制御 6.4 浮動点の例外 6.4.1 無効オペランド 6.4.2 オーバフロー 6.4.3 アンダフロー 6.6.4 ゼロによる割算 6.6.5 ドメイン・エラー 6.5 浮動点剰余計算 7.0 一般化されたデータ・プロセツサ命令 7.1 クラス・フイールド 7.2 書式フイールド 7.3 レフアレンス・フイールド 7.3.1 データ参照 7.3.1.1 セグメント・セレクタ成分 7.3.1.2 変位成分 7.3.1.3 スカラー・データ参照 7.3.1.4 静的ベクトル成分データ参照 7.3.1.5 レコード項目データ参照 7.3.1.6 動的ベクトル成分データ参照 7.3.2 ブランチ参照 7.4 オペレーシヨン・コード・フイールド 7.5 命令通訳 7.5.1 物理的アドレス発生 7.5.1.1 セグメント・セレクタ・サーチ 7.5.1.2 アクセス記述子修飾 7.5.1.3 ダイレクトリ・インデツクス・サ
ーチ 7.5.1.4 セグメント・ダイレクトリ・レジ
スタ・リロード 7.5.1.5 セグメント・テーブル記述子修飾 7.5.1.6 セグメント記述子レジスタ・リロ
ード 7.5.1.7 セグメント記述子修飾 7.5.1.8 アクセス・ライト修飾 7.5.1.9 変位修飾 7.5.1.10 変更ビツト更新 7.5.2 スタツク・インタラクシヨン 7.5.3 実行 8.0 一般化されたデータ処理装置演算子セツト 8.1 文字演算子 8.1.1 文字移動演算子 8.1.2 文字論理演算子 8.1.3 文字算術演算子 8.1.4 文字関係演算子 8.1.5 文字変換演算子 8.2 短序数演算子 8.2.1 短序数移動演算子 8.2.2 短序数論理演算子 8.2.3 短序数算術演算子 8.2.4 短序数関係演算子 8.2.5 短序数変換演算子 8.3 短整数演算子 8.3.1 短整数移動演算子 8.3.2 短整数算術演算子 8.3.3 短整数関係演算子 8.3.4 短整数変換演算子 8.4 序数演算子 8.4.1 序数移動演算子 8.4.2 序数論理演算子 8.4.3 序数算術演算子 8.4.4 序数関係演算子 8.4.5 序数変換演算子 8.5 整数演算子 8.5.1 整数移動演算子 8.5.2 整数算術演算子 8.5.3 整数関係演算子 8.5.4 整数変換演算子 8.6 短実数演算子 8.6.1 短実数移動演算子 8.6.2 短実数算術演算子 8.6.3 短実数関係演算子 8.6.4 短実数変換演算子 8.7 実数演算子 8.7.1 実数移動演算子 8.7.2 実数算術演算子 8.7.3 実数関係演算子 8.7.4 実数変換演算子 8.8 一時実数演算子 8.8.1 一時実数移動演算子 8.8.2 一時実数算術演算子 8.8.3 一時実数関係演算子 8.8.4 一時実数変換演算子 8.9 アクセス環境操作演算子 8.9.1 アクセス記述子移動演算子 8.9.2 種類・ライト操作演算子 8.9.3 ラベル操作演算子 8.9.4 セグメント創造演算子 8.9.5 アクセス経路検査演算子 8.9.6 オブジエクト・インターロツキング 8.10 ブランチ演算子 8.10.1 セグメント内ブランチ演算子 8.10.2 セグメント間ブランチ演算子 8.11 通信演算子 8.11.1 コンテクスト通信演算子 8.11.2 コルーチン通信演算子 8.11.3 プロセス通信演算子 8.11.4 プロセツサ通信演算子 第2部 一般化されたデータ処理装置とシステム
相互接続 9.0 命令ユニツト 9.1 一般動作 9.2 チツプ間バス 9.3 マイクロ命令バス 9.4 帯域フイルタ・ライン 9.5 真・実施ライン 9.6 プロセツサ間通信 9.7 命令ユニツト診断特徴 9.8 初期設定と誤り状態 10.0 実行ユニツト 10.1 一般動作 10.2 クロツク・ラインと特殊ライン 10.3 アドレス/コントロール・データ・ライ
ン 10.4 機能の説明 10.4.1 データ操作ユニツト(DMU) 10.4.2 コントロール・ユニツト(CU) 10.4.3 参照発生ユニツト(RGU) 10.4.4 小回路ブロツク 11.0 命令ユニツト/実行ユニツト・マイクロ命
令セツト 11.1 メモリとオペラント・スタツク・アクセ
ス・マイクロ命令 11.2 アドレス展開マイクロ命令 11.3 データ操作マイクロ命令 11.4 浮動点マイクロ命令 11.5 通信マイクロ命令 11.5.1 IP操作マイクロ命令 11.5.2 セグメント操作マイクロ命令 11.5.3 タイマ制御マイクロ命令 11.5.4 キヤツシユ・マネージメント・マイ
クロ命令 11.6 制御マイクロ命令 11.6.1 命令ユニツト制御マイクロ命令 11.6.2 命令ユニツト/実行ユニツト制御マ
イクロ命令 11.6.3 実行ユニツト制御マイクロ命令 12.0 命令ユニツト/実行ユニツト動作の要約 12.1 3段階パイプライン 12.2 第1段:命令復号器(ID) 12.3 第2段:マイクロ命令シーケンサ
(MIS) 12.4 第3段:マイクロ命令実行ユニツト
(MEU) 12.5 典型的なプロセツサ動作 第3部 入力/出力アーキテクチヤ 13.0 総合I/Oシステム 13.1 基本的構造と機能 13.2 ソフトウエアの観点から 13.3 データ転送 13.3.1 セツトアツプ 13.3.2 転送 13.3.2.1 同期 13.3.2.2 終了 13.3.3 クリーンアツプ 13.4 データ転送以外に 13.5 構造概説 13.6 支持されたインターフエース 14.0 情報構造 14.1 メモリ 14.1.1 論理アドレス指定 14.1.2 物理アドレス指定 14.2 オペランド書式 14.3 オペランド表示 14.4 オペランド位置決め 14.5 オペランドの保全 14.6 オペランド・スタツク 14.7 命令セグメント 14.8 周辺インタフエース・アドレス指定 15.0 入力/出力処理 15.1 計算データの種類 15.1.1 文字 15.1.2 短序数 15.1.3 短整数 15.2 環境操作 15.3 命令構成 15.3.1 参照の種類 15.3.2 演算子 15.3.3 データ参照 15.3.3.1 明示データ参照 15.3.3.2 スタツク参照 15.3.4 アクセス記述子参照 15.4 オペランド・スタツクの挙動 15.5 命令の逐次実行 15.6 ブランチング 16.0 入力/出力オブジエクト構造 16.1 セグメント 16.1.1 入力/出力セグメントとセグメント
記述子 16.1.2 周辺オブジエクト 16.1.2.1 周辺コントロール・セグメント 16.2 動作とコンテクスト 16.3 コルーチン 16.4 プロセス 16.4.1 現在事象ポート 16.4.2 事象ポート 16.4.2.1 事象ポート・コントロール・セ
グメント 16.4.2.2 サービス・ポート 16.5 プロセツサ 16.5.1 プロセツサ・オブジエクト 16.5.1.1 プロセツサ間メツセージ 16.5.1.2 インターフエース要求 16.5.1.3 事象リスト 16.5.1.4 事象制御オブジエクト 16.5.1.5 転送制御オブジエクト 16.5.1.6 帯域幅制御オブジエクト 16.6 ストレージ・リソース、トランスおよび
ラベル 16.7 プロセツサ・レジスタ 17.0 入力/出力機能 17.1 アドレス・スペース操作 17.2 周辺からプロセスへの通信 17.2.1 転送コントローラの要求受け入れ 17.2.2 事象コントローラの要求受け入れ 17.3 データ転送 17.3.1 ブロツク転送演算子 17.3.1.1 ブロツク・データ転送 17.3.2 ブロツク・データ通訳 17.3.3 アクセス記述子転送 17.3.3.1 ブロツクアクセス記述子転送 17.3.4 転送アルゴリズム 17.4 プロセス相互間通信 17.5 プロセツサ相互間通信 17.6 低レベル初期設定 18.0 入力/出力プロセツサ命令 18.1 オペレーシヨン・コード・フイールド 18.2 参照フイールド 18.2.1 データ参照 18.2.1.1 明示データ参照 18.2.1.2 スタツク参照 18.2.1.3 即値データ 18.2.1.4 即値 18.2.2 アクセス記述子参照 18.2.3 ブランチ参照 18.3 命令通訳 18.4 物理アドレス発生 18.4.1 実行 19.0 入力/出力プロセツサ演算子セツト 19.1 文字演算子 19.1.1 文字運動演算子 19.1.2 文字論理演算子 19.1.3 文字算術演算子 19.1.4 文字関係演算子 19.1.5 文字変換演算子 19.2 短序数演算子 19.2.1 短序数運動演算子 19.2.2 短序数論理演算子 19.2.3 短序数算術演算子 19.2.4 短序数関係演算子 19.2.5 短序数変換演算子 19.3 短整数演算子 19.3.1 短整数運動演算子 19.3.2 短整数算術演算子 19.3.3 短整数関係演算子 19.4 アクセス環境操作演算子 19.4.1 アクセス記述子運動演算子 19.4.2 種類・ライト操作演算子 19.4.3 ラベル操作演算子 19.4.4 セグメント発生演算子 19.4.5 アクセス経路検査演算子 19.4.6 オブジエクト・インタロツキング演
算子 19.5 ブランチ演算子 19.5.1 セグメント内ブランチ演算子 19.5.2 セグメント間ブランチ演算子 19.6 通信演算子 19.6.1 コンテクスト通信演算子 19.6.2 コルーチン通信演算子 19.6.3 プロセス通信演算子 19.6.4 プロセツサ通信演算子 19.7 ブロツク転送演算子 発明の紹介 次に第1図を参図すると、以下の紹介は本発明
を具体化したシステムの各種の部品を広く説明す
ると共に、以下の説明を通じて使用する用語の一
部を紹介するものである。第1図はシステム内の
各種の作用体と、これら作用体が利用するメカニ
ズムを示している。この図の矢印は以下のことを
指示している。作用体は矢印の出所に配置され、
作用体が利用しているメカニズムは矢印の目標地
に配置されている。2種類の作用体、すなわち、
特定の状態にあるプロセスとこのプロセスを実行
しているプロセツサが示されている。 オブジエクト発生、アドレス指定およびタイピン
グ システム内の全情報は、オブジエクトという、
ハードウエアで認識されメモリにある情報構造に
よつて表わされる。オブジエクトにはデータ・セ
グメントとアクセス・リストの2種類が基本的に
ある。アクセス・リストはオブジエクトへのアク
セスを制御し、データ・セグメントはデータのス
カラー値を得るために使用される。 本システムは、オブジエクトの発生を動的に支
持するための、ハードウエアのオブジエクト発生
機構10を有する。この機構は、現在割り当てら
れていない物理メモリの各種の領域を記述する、
ストレージ・リソース・オブジエクトという特定
の種類のオブジエクトに基づく。ハードウエアで
支持されたアルゴリズムの特定の1組を利用する
ことによつて、この機構は要求に応じて基本的な
2種類のオブジエクトの一方のデータ・セグメン
トの割り当てを実行する。ひとたび1組のオブジ
エクトが発生すると、所定のプロセツサを動かし
ている所定のプロセスがこれらオブジエクトへの
参照を発生する。これら参照は、オブジエクト・
アドレス指定、保護、タイピング機構12という
機構によつて主メモリの物理アドレスとなるよう
にマツピングされる。この機構は、あるオブジエ
クトへのどのひとつの参照もそのオブジエクトの
物理アドレスに変換されることを可能とする手段
である。このオブジエクト・アドレス指定機構
は、いわゆるオブジエクトへのアクセス経路、と
いうものを利用する。例えば簡単な例では、アク
セス経路は3つのレベルより成る。アドレスの展
開で利用される最初のレベルはアクセス記述子と
いい、これはアクセス・リストという種類のオブ
ジエクトの内部に含まれる。アクセス記述子は、
アクセス経路のベースでオブジエクトに対してア
クセス記述子の利用者が有している種類のアクセ
スを記述する。アクセス記述子は、これを保持し
ているものがそのオブジエクトに関して有してい
るアクセスの様々な種類を決定する(オブジエク
トの種類によつて)読み取りライトや書き取りラ
イトのようなライト(権利)の種類を記述する。 参照が発生されてアドレスが展開されている、
オブジエクトへの経路を1段下がつた次のレベル
にはセグメント記述子がある。本システムは2レ
ベル・セグメントテツド・アドレス指定スペース
を利用する。すなわち、セグメント・テーブルの
レベルは2つある。最も高いレベルのセグメン
ト・テーブルはセグメント・テーブル・ダイレク
トリという。この内部にはセグメント・テーブル
のセグメント記述子がある。アクセス記述子は、
アドレス展開で使用するセグメント記述子を選択
するのに使用する2つの要素を含む。第1の参照
は、最後のセグメント記述子があるはずのセグメ
ント・テーブルをセグメント・テーブル・ダイレ
クトリから選択する。第2の参照は、問題のセグ
メントのセグメント記述子をそのセグメント・テ
ーブルから選択する。 アドレスを開展中のオブジエクトのセグメント
記述子は、そのオブジエクトを物理メモリ内で突
き止める情報を含み、その長さを与え、オブジエ
クトに関する各種のタイピング情報を与え、各種
のメモリ・マネージメント情報(例えば、このオ
ブジエクトへのアクセス経路の数の計数値、セグ
メントが変更または参照されたかについての情報
など)を含む。 個々のプロセス環境 各種のプロセス環境14と16は第1図に示さ
れている。現在のプロセス・アクセス環境18,
20は図面の正面に示され、過去のヒストリー2
2,24(現在招来されていないプロセス環境)
は図面の背後に向かつて示されている。これらプ
ロセス環境の瞬間状態は現在プロセス・イメージ
26,28として示されている。前述のように、
プロセツサに働いているプロセスは参照を発生
し、一方、プロセツサはオブジエクト・アドレス
指定・保護・タイピング機構を利用して物理アド
レスに変換する。コンテクスト・オブジエクト
は、動作の特定例を実行することができるプロセ
ス環境を表わす。ある期間中、潜在的なまたは並
行なアクテイビテイの箇所であるプロセスは、そ
の実行中に各コンテクストの間を動く。 本システムのコンテクスト・オブジエクトには
4つの構成要素があり、これらはアクセス記述子
を含む4つのアクセス・リストである。この環境
でのアクセス記述子の総計が与えられると、アク
セス記述子が存在している各種のオブジエクトに
対してその環境がどのような種類のアクセスをす
るかを正確に言うことができる。 コンテクスト間通信 コンテクストの各1つづつは最低限、その環境
での動作がアクセスすることができるオブジエク
トのすべてについてのアクセス記述子を含まなけ
ればならない。モジユラ・プログラミングを支持
するためにある動作は、ある期間を通じて別の動
作を呼び出す必要がある。第2の動作は第1の動
作と同じ環境で働くとは限らないので、ある環境
(そしてそこでの動作)から別の環境の動作に制
御権を渡すための機構が利用される。この機構は
コンテクスト間通信機構(第1図で30,32)
という。コンテクスト間通信には2種類あり、一
方の種類は制御遷移の下向き呼び出し/上向きリ
ターンまたは呼び出し/リターンの各種類を支持
する。第2の種類は非階層通信またはコルーチン
通信という。この種の通信は、呼び出し/リター
ン機構によつて支持されるコンテクストの間の階
層的なまたは非同期的な種類の通信を支持すると
共に、コルーチンの間に起る同期制御権流れパタ
ーンを支持する。コンテクストというプログラム
環境は本来保持性である。すなわちコンテクスト
は、制御権の流れの直前またはそれの一部がはい
るときに必ずしも作られず、制御権の直後にまた
はその一部が出るときに必ずしも破壊されない。
コンテクストの寿命は、コンテクストを利用した
り横断したりする単なる制御権の流れのパターン
よりも長い。 コンテクストは静的な構成要素と動的な構成要
素を有する。どのコンテクストの静的な構成要素
はドメインという2成分オブジエクトより成る。
ドメインとは、そのコンテクストの内部で実行す
べき動作の定義範囲を指す。ドメインの2成分は
共用アクセス・リストと私用アクセス・リストよ
り成る。この区分によつてドメインは、一部の近
代的なプログラム言語で必要な種類のセマンテイ
ツクス(意味)を支持することができる。そのよ
うな場合、一定の所期の種類の公用動作のすべて
は公用アクセス・リストを通して利用され、その
種類の隠されたデータまたは動作は私用アクセ
ス・リストによつて利用できるようにされる。 どのコンテクストの動的構成要素もコンテクス
ト・アクセス・リストという。このコンテクス
ト・アクセス・リストはそれぞれの場合に特有な
アクセス記述子作業域となる。一定の定義範囲内
に定義された特定の動作の一例が動的なアクセス
記述子操作を行なうはこの作業域の内部において
である。 一定のコンテクストによつて動的に選択可能な
別の構成要素は、いわゆるエントリ・アクセス・
リストである。一定のコンテクストが適当な権利
を有するどのアクセス・リストでも、エントリ・
アクセス・リストによつて選択可能であつて現在
のアクセス環境の一部にされる。 プロセス間通信 2つのプロセスは互いに連路する必要がある
が、1つまたはそれ以上のプロセツサで非同期式
に計画され、従つて実行される。2つのプロセツ
サの間の時間差が調整できるよう、プロセス間通
信機構34という緩衝機構が利用される。プロセ
ス間通信は、バツフア付き通信ポートという、ハ
ードウエアが認識できるオブジエクトによつて支
持される。バツフア付き通信ポートは、どの1つ
のプロセスが別のプロセスに送信したいかという
メツセージが待機され、メツセージを受け取ろう
と待機しているプロセスも待機されるキユーイン
グ機構である。キユーイング能力を備えたこれら
のポートはこのように、2つのプロセスの非同期
挙動を取り除くのに必要な緩衝を行なう。 デイスパツチ機構 ひとたび待機中のプロセスがバツフア付きポー
トでメツセージを受け取ると、プロセスは多数の
利用できるプロセツサ38,40の1つで実行す
る準備ができる。デイスパツチ機構36はプロセ
スをプロセツサに計画する一手段となる。このデ
イスパツチ機構は、すでに設定してあるソフトウ
エアのパラメータに従つて実行準備完了のプロセ
スのスケジユーリングとデイスパツチングを自動
的に行なうハードウエア機構である。このように
してデイスパツチ機構は、システム内の全プロセ
スですでに指定してあるソフトウエアのスケジユ
ーリング方針または低レベル・スケジユーリング
方針を実施する。どのくらい長くプロセスがプロ
セツサで実行されるできかについての制御がなく
て単にそのプロセスをプロセツサに割り当てるだ
けならば、そのプロセスはそのプロセツサで最後
まで実行される。プロセスが決つして終了しない
ものならば、プロセツサはそのプロセスに恒久的
に割り当てられよう。デイスパツチ機構は、プロ
セツサに関する時間を通じてどのようにプロセス
を多重化するかをソフトウエアで指定するために
利用される。デイスパツチ機構はプリエンプテイ
ブな(先制的な)形態のスケジユーリング方針を
支持しないが、いわゆる相対周波数スケジユーリ
ング方針の一群を支持する。プロセスがデイスパ
ツチ・ポートで待機されているとき、すべてのプ
ロセスに2つの値が利用される。第1の値は最大
許容遅延であり、第2の値は最大許容可能サービ
ス期間である。これらの2つの値を用いて、相対
周波数に基づくある範囲のソフトウエア・スケジ
ユーリング方針は、ラウンド・ロビンから純相対
周波数まで実現される。 プロセツサがデイスパツチ・ポート内のリクエ
スト行列からまたはプロセス行列からプロセスを
取り除くとき、このプロセスがプロセツサに拘束
されることをどのくらい長いソフトウエアが希望
するかをプロセツサが告げることができるよう
に、サービス期間情報が利用される。これによつ
て、プロセツサを永久に結び付ける無拘束プロセ
スがないことが保証される。サービス期間が終了
した後、プロセスとプロセツサの間の結合は解消
され、デイスパツチ機構は他のプロセスをプロセ
ツサに割り当てる。 プロセツサ間通信 すでに述べたように、バツフア付きポート機構
はメツセージをプロセスに結び付けるために利用
され、デイスパツチ機構はプロセスを利用できる
プロセツサで計画を立てるために利用される。メ
ツセージ・プロセスの対を有するプロセツサは適
当なデイスパツチ・ポートを調べる。プロセツサ
がそのポートで待機していないと、メツセージ・
プロセスの対がそのポートで並んで利用できるプ
ロセツサを待機する。デイスパツチ・ポートで並
んでサービス・リクエスト(メツセージ・プロセ
スの対)の到着を待機しているプロセツサがある
と、そのメツセージを送つたプロセツサはサービ
ス・リクエストを待機中のプロセツサに送ること
ができる。プロセツサ間通信機構42によつて、
要求を出しているプロセツサは、結び付けられた
プロセスの実行を開始することができる待機中の
プロセツサに交信する。 プロセツサ間通信機構はまた、あるプロセツサ
で実行中のソフトウエアに対して、別のプロセツ
サが初期設定シーケンス、警報シーケンスまたは
リセツト・シーケンスの作業のような一部の診断
機能を実行することを求めるように使用される。
これによつてシステムの動作中にシステム内部の
プロセツサのデバツギングが可能となる。 プロセツサ間通信機構の別の使用方法は、特定
のプロセツサと交信するか、このシステム内の全
プロセツサに同報通信して、アドレス展開機構に
ついてプロセツサに保持されていた一部の情報を
再修飾すべきであることを各プロセツサに通告す
ることである。 プロセツサ間通信機構はまた、プロセツサの機
能を停止させたことによつて誤動作したプロセツ
サからの回復を支援するために使用される。この
機構はまた、プロセツサをシステムに動的に挿入
したり取り出したりすることができるように再構
成を支援する。 プロセツサ間通信機構は以下のように構成され
ている。各プロセツサは共通のメモリに記憶され
たローカル通信セグメントに関連している。ロー
カル通信セグメントはプロセツサに特有の通信の
ためのものである。別のセグメントであるグロー
バル通信セグメントは、すべてのプロセツサに共
通であり、システムに広く使用される通信用であ
る。 各通信セグメントは制御標識を含むフイールド
を有する。制御標識はあるプロセツサによつて設
定され、後に別のプロセツサによつて検査され
る。この検査を行なうプロセツサは、制御標識の
状態によつて指定された多数の機能を実行するよ
うに命令される。アクセスを通信機構に連係させ
るために、すべての通信セグメントにはカウン
ト・フイールドとロツク・フイールドがある。 プロセツサの種類 多くの種類のプロセツサが本システムによつて
供給される。2種類のプロセツサ、つまり、『一
般化されたデータ・プロセツサ(GDP)』と
『I/O・プロセツサ(IOP)』を詳細に説明す
る。GDPはアドレス空間内で働き、その空間内
にあるオブジエクトを参照できるだけである。
IOPは2つの異なる空間でオブジエクトを参照す
ることができ、これら2つのアドレス空間の境界
で働く。第1のアドレス空間は、GDPが使用す
るアドレス空間と同一である。どの特定のIOPで
も使用する他のアドレス空間はIOアドレス空間
といい、GDPアドレス空間とは別のGDPアドレ
ス空間を横断しない。すなわち、アドレス空間は
共通のアドレスを共有しない。 GDPの主要な目的は、この種のプロセツサに
よつて支援される広範囲の種類のデータについて
一般化された計算を実行することである。IOPの
機能は支援されるデータの種類の数に関しては、
それより制限される。IOPの主要な目的は、これ
がアクセスして参照することができる2つのアド
レス空間の間にデータを転送することである。一
例は、I/Oアドレス空間に存在する入力装置か
ら、GDPアドレス空間に存在するデータ・セグ
メントにデータを転送することであろう。逆にデ
ータは、GDPアドレス空間内のデータ・セグメ
ントから、I/Oアドレス空間内に存在する出力
装置に転送される。 IOPはGDPと同じように、記述子制御されセ
グメントに基づくアドレス展開機構を使用する。
I/O操作はまた、GDPに利用されるものと同
じコンテクストに基づく環境内で実行される。
IOPは同じプロセス間通信機構を利用し、IOPは
前述したのと同じデイスパツチ機構を介して処理
のため選択される。同様のプロセツサ間通信機構
が利用される。 IOPに関しては異なるアドレス指定機構を利用
しなければならない。それは、参照されているセ
グメントがI/Oアドレス空間またはGDPアド
レス空間であることを告げる何らかの方法がなけ
ればならないからである。特定の種類の装置を処
理するタイミング上の考慮のように、セグメント
の参照にも特別な考慮が払われる。 データ転送動作の性能を向上するために、IOP
には特殊なハードウエアが設けられる。これはデ
ータのブロツクの転送を可能とするものである。 IOPはGDPとは異なるデイスパツチ・ポート
からプロセスを割り当てる。これによつて、正し
い種類がGDPとIOPのいずれであるかを知るた
めに、特定のデイスパツチ・ポートで待機してい
るプロセツサを調べる必要はなくなる。機構を簡
単にするため、システム内のGDPは一方の種類
のデイスパツチ・ポートからプロセスを割り当て
る。他方、IOPは異なる種類のデイスパツチ・ポ
ートを利用し、そしてプロセスの全部が同一のポ
ートにアクセスするわけではない。これはIOPの
全部がすべてのI/O装置にアクセスするわけで
はないからである。従つて、I/Oプロセスが特
定の装置だけを処理するのならば、I/Oプロセ
スの全部を任意のIOPに関連づけることができる
わけではない。一般に、1組のIOPのうちで任意
の特定のI/Oアドレス空間にアクセスするもの
の数は少ない。例えば、1台の周辺装置に対して
IOPが1つであるほどその数が少ないかもしれな
い。一方、1個のI/Oアドレス空間として働く
1本のI/Oバスで幾つかのIOPが幾台かの周辺
装置を処理する場合もあり得る。この理由によ
り、I/OプロセスのためI/Oプロセツサのデ
イスパツチ・ポートへの組合せは次のとおりであ
る。1カ所のI/Oアドレス空間にアクセスする
すべてのIOPは(通常のデイスパツチ状態にある
とき)1カ所の入出力プロセス・デイスパツチ・
ポートからI/Oプロセスを割り当てる。 第1部 一般化されたデータ処理装置のアーキテ
クチヤ 1.0 総合システム 1.1 セグメンテツド・アドレス指定 次に第2Aおよび2B図を参照する。セグメン
ト44は本システムでのすべてのアドレス指定と
保護の基礎である。概念的には、セグメントはサ
イズや長さの定まつた1個のリニア・アドレス空
間にすぎない。実際にはセグメントは主メモリ内
に存在して開始アドレスつまりベース・アドレス
46に関連するであろう。セグメント内部のデー
タ項目の実際の物理アドレスを決めるためには、
変位48というセグメント内の項目の位置を、セ
グメントのベース・アドレス46に加えるだけで
よい。簡単であるが重要な形態の保護を実現する
ために、変位をチエツクしてからこの変位をベー
ス・アドレスに加えれば、アドレスがセグメント
の決つた長さを越えることは確実に防止される。 セグメンテツド・アドレス指定を利用する従来
のシステムでは、セグメントのベース・アドレス
をそのどんな変位からも分離しておいて、最後の
可能な瞬間まで物理アドレスの形成を遅らせる努
力がしばしばなされる。物理アドレスが必要なと
きは、望みの変位を前述のようにベース・アドレ
スに加えることによつて物理アドレスが形成され
る。 これらの手段を取れば、セグメントの移動はそ
のベース・アドレスの更新を必要とするだけでよ
いことが期待される。不幸なことにこれらのシス
テムでは、メモリ全体とプロセツサのレジスタ内
にベース・アドレス情報が分配されるのを阻止す
るために何らの手段も講じられなかつた。これ
は、セグメントを移動すると、そのベース・アド
レスの1つではなく恐らく何百というコピーを位
置決めし、変化を表わすために更新しなければな
らないことを意味する。プログラマー側で特別の
注意を払わなければ、この方法は適当な時間に信
頼できるように実行することは事実上不可能であ
る。 セグメントが動くたびに多数のベース・アドレ
スを見つけて更新する問題を回避するために本発
明は、セグメント・アドレスのマネージメントに
2つの基本的な改良を行なう。第1に本発明は、
セグメントについての全情報(例えばその現在の
ベース・アドレスと長さ)を集め、システム内の
他の全セグメントについての同じ情報と共にセグ
メント・テーブル50にその情報を置く。第2に
本発明は、セグメントへの全参照がこのテーブル
から必要なベース・アドレスと長さ情報を得るこ
とを要求する。任意のセグメントのベース・アド
レスを変更するか、そのサイズを決め直すには、
セグメント・テーブルへの入力、つまりセグメン
ト記述子52,54を変更するだけでよい。セグ
メントへのどのような参照でもセグメント記述子
がアクセスされ、正しい現在のベース・アドレス
46と長さ情報48が得られる。 しかしセグメント・アドレス情報の集中化は、
セグメントに基づくアドレス指定アーキテクチヤ
に関連する問題を完全には解決しない。例えば、
一定のプログラムにアクセス可能なセグメントの
数をある任意の小さな集合に制限することができ
ることが有益であることがしばしば生ずる。セグ
メント情報のすべてが集中化される場合には、ど
のプログラムでも必要・不必要にかかわらず、セ
グメント・テーブルを通して索引づけるだけでメ
モリ内のどのセグメントでも見つけてアドレス指
定することができる。セグメント・テーブルの集
中化はまた、索引づけに必要な索引のサイズに関
する問題を導くことがある。本システムでは、セ
グメント・テーブルは2百万以上のセグメントの
記述子を含むことができ、これはフル・アクセス
で21ビツトのセグメント・テーブルを意味する。
所望のセグメントを選択するのにすべてのオペラ
ンド・アドレスがそれほど多数のビツトを必要と
するならば、有用な変位サイズに加えて命令とプ
ログラムは途方もなく大きくなつてしまう。 前述の問題を取り除くため、本システムはセグ
メント・テーブルによつて提供される前述のアド
レス・マツピングの第2のレベルを提供する。独
立に通訳される各プログラム・ユニツトつまりモ
ジユールには実行時に、実行中にアクセスする必
要があるセグメントのすべてについてのセグメン
ト数のリスト(つまり、セグメント記述子の索
引)が提供される。プログラムは命令内の各オペ
ランドのアドレスの一部として、アクセス可能な
セグメントのリストつまりアクセス・リストに索
引を指定することによつて特定のセグメントを選
択する。ここで、索引はこの特定のプログラム・
モジユールにのみわかることに気をつける必要が
ある。それは、他のモジユールは自分自身のアク
セス・リストを有しているため、自分自身のロー
カル的に知られる索引を使用することができるか
らである。 モジユールのアクセス・リストにはいるものだ
けはアクセスする必要があるセグメント用である
ため、それらの間で選択する必要がある索引のサ
イズは一般に可能なセグメントの総数よりはるか
に小さい。これはローカル索引を小さく保つのに
役立ち、それによつて命令とプログラムのサイズ
を縮小するのが促進される。それと同時に、アク
セス・リストはプログラムにアクセス可能なセグ
メントの集合を、プログラムがその動作に必要と
する集合に正確に制限する。プログラムのアクセ
ス性を制限するこの能力は、変位が定義されたセ
グメントの限度内にあることを確認する能力と組
合わせると、本発明の保護システムの基礎を成
す。 1.2 セグメントの種類 セグメントはシステム内にあらゆる種類の有用
な情報を保持するのに使用される。例えば、セグ
メントは全情報をセグメント・テーブル50に保
持するのに使用される。さらに精密に述べると、
セグメントはメモリ内のセグメント・テーブルの
データ構造を表わすのに使用される。同様にして
セグメントはプログラム・モジユールのアクセ
ス・リストを表わすためにも使用される。セグメ
ントは実際に、データ、命令およびシステム内で
記憶表示を必要とするその他のすべてを保持する
のに使用される。 セグメントがそれほど多くの異なるものを表わ
すのに使用される場合には、どのような種類の情
報が特定のセグメントを表わすのかを正確に告げ
ることができることは、特に保護の観点から非常
に有益であり得る、ということが明白となる。例
えば、特定のセグメントがセグメント・テーブル
を表わしていることがわかつており、プログラム
が不注意に命令としてそのセグメント・テーブ
ル・データの実行が試みられたとすると、エラー
が検出され、損害が生ずる前にプログラムが中断
されることが可能である。 各種類をセグメントに割り当てるという有用性
を認識して、本システムは各セグメント記述子5
2,54にさらに情報を含む。この情報は、セグ
メントの種類の定義56が許容するものに対し
て、セグメントに行なつているアクセスの種類を
チエツクするために実行中にプロセツサによつて
使用される。種類の定義56は後述するように、
ベースの種類とシステムの種類の両情報を含む。
行なつているアクセスの種類と種類の定義の間に
不一致があればエラーが生ずる。 システム内のセグメントには2つの基本的な種
類がある。第1の種類はデータ・セグメントとい
い、アレイ、リスト、行列のようにプログラマー
が定義するのに選択するかもしれないデータ構造
のほとんどあらゆる種類を表わすのに使用され
る。第1の種類はまた、セグメント・テーブルの
ようにハードウエアで認識される幾つかの重要な
データ構造を表わすのに使用される。データ・セ
グメントが単にデータ・セグメントとして使用さ
れると、そのセグメント記述子内のベース種類情
報46はそれが単にデータ・セグメントとして使
用されていることも指示する。セグメントがハー
ドウエアによつて認識され使用されるデータ構造
を表わすのに使用されていると、そのベース種類
情報はやはりそれがデータ・セグメントであるこ
とを指示するが、セグメント記述子内のベース種
類の隣りに配置されたシステム種類情報47はセ
グメントが特殊な機能に使用されていることを指
示する。この2レベル・タイピング(分類)の例
には、命令を保持するのに使用するデータ・セグ
メント(すなわち、ベース種類データ・セグメン
ト、システム種類命令セグメント)および算術式
評価中に先入れ後出しスタツクとして使用するデ
ータ・セグメント(すなわち、ベース種類デー
タ・セグメント、システム種類オペランド・スタ
ツク)が含まれる。 システム内のセグメントの第2の基本的な種類
はアクセス・リスト(AL)である。前述のよう
に、アクセス・リストは所定のプログラム・モジ
ユールにアクセス可能なセグメントのすべてにつ
いての索引を含む。これらの索引はどのようなプ
ログラムによつても隅発的にも悪意に基づいても
操作されないことを保証するため、アクセス・リ
ストはデータ・セグメントとして絶対的にアクセ
ス不可能である。ハードウエアはデータとしてア
クセス・リストに含まれない情報には単純に作用
しない。アクセス・リストの絶対的な保全性を確
保する能力は、本発明の保護システムにおける別
の基本的な概念である。 アクセス・リストはまたデータ・セグメントの
ように、プログラマーが定義する情報構造とハー
ドウエアが認識する情報構造の両方を表わすため
にも使用することができる。しかしアクセス・リ
ストはデータ・セグメントとは異なり、原始デー
タの構造(例えば、整数アレイ、文字ストリング
など)を表わすことができない。その代わりにア
クセス・リストが表わす情報構造は幾つかのセグ
メント全体の集合である。アクセス・リストによ
つて参照されるセグメントは他のアクセス・リス
トまたはデータ・セグメントであり得るので、こ
のセグメントは任意に複雑なセグメントに基づく
情報構造を作るのに使用することができる。アク
セス・リストがソフトウエアで通訳されるマルチ
セグメント情報構造を表わすのに使用されると、
セグメント記述子内のベース種類情報はそのセグ
メントがアクセス・リストであつて他の特殊な機
能を有しないことを指示する。アクセス・リスト
がハードウエア認識フアンクシヨンでマルチセグ
メント構造を表わすのに使用されると、そのフア
ンクシヨンはセグメント記述子内のシステム種類
情報によつて指示される。第2A,2B,3A,
3B,4Aおよび4B図に関連した以下の説明は
様々なこれらハードウエア認識マルチセグメント
構造を紹介すると共に、システム・アーキテクチ
ヤに対するそれらの重要性を述べるものである。
これらの図に示している各システム・オブジエク
トはベース種類=AL(アクセス・リスト)または
ベース種類=データ(データ・セグメント)とい
うようにそのベースの種類に関して表記されてい
る。システム・オブジエクトは「システム・オブ
ジエクト構造」という見出しのもとでさらに詳細
に説明する。 1.3 オブジエクト アクセス・リストとデータ・セグメントから作
ることができる非常に様々な情報構造では、各構
造を詳細に知ることはすぐに困難となる。概念的
な理解を容易とするため、構造の各種類を1個の
不規則実体、すなわちいわゆるオブジエクトと呼
称されるもの、としてみることはさらに容易とな
る。ひとたびこの見方を取ると、システム内に使
用されている多くのセグメントに基づく情報構造
の見掛け上の複雑さは大幅に少なくなる。 命令実行からプロセス間通信までのシステム内
でのすべてのハードウエア支援フアンクシヨンに
ついて、単純なデータ・セグメントから、そのフ
アンクシヨンによつてアクセスされ具体的に操作
されるアクセス・リスト、データ・セグメントお
よびその他のオブジエクトの任意に複雑なネツト
ワークまで、特定の種類のオブジエクトがある。
しかし大部分の場合プログラマーは、オブジエク
トの内部構造を完全に無視することができるが、
それでもなお、演算子またはフアンクシヨンが加
えられたときは常に、オブジエクトの種類と構造
がその定義と指定のフアンクシヨンに一致してい
ることがハードウエアによつて確認されることを
確信し続けることができる。 本システムは多くのオブジエクトとそのフアン
クシヨンをプログラマーに利用できるようにする
が、一定のプログラムによつて使用されるオブジ
エクトについては、フアンクシヨンの小集合のみ
が実際にそのプログラムに必要であるのにすぎな
いことがしばしばある。この小集合を特定するた
めに、アクセス・リストの各入力項目には別の情
報が追加される。この情報が入力項目の関連する
セグメント記述子から入手できる種類情報と組合
わされると、このオブジエクトのプログラムに利
用できるアクセス・ライトの小集合が定義され
る。これにより、アクセス・リストへの入力項目
はアクセス記述子と呼称される。これら入力項目
は、どのセグメントまたはオブジエクトがアクセ
ス可能であるかを記述するだけでなく、どのよう
にアクセスされるかも同様に記述するからであ
る。 データ・セグメント・アクセス記述子(すなわ
ち、データ・セグメントのためのアクセス記述
子)は、アクセス記述子によつてもたらされる種
類のアクセス・コントロールの良い例である。デ
ータ・セグメントがデータを保持するためのみに
使用されるときは(すなわち、特殊なハードウエ
ア認識使用法は意図しない)、可能な2つの基本
的なアクセス・ライトは読み取りと書き込みであ
る。そのようなセグメントのアクセス記述子は、
そのデータが読み出すことができる、書き込むこ
とができる、読み出すか書き込むことができる、
あるいは読み出すことも書き込むこともできな
い、ということを指示することができる。万一、
2つの異なるプログラムが共同的に同じセグメン
トを使用することが起ると、プログラムの一方の
アクセス・リスト内のアクセス記述子は読み取り
のみを可能とし、他のプログラムのアクセス・リ
スト内のアクセス記述子はセグメント内のデータ
が読み取りと書き込みの両方が行われることを可
能とする。 アクセス・リスト・アクセス記述子はまた読み
取りアクセス・ライトと書き込みアクセス・ライ
トの両方を有するように定義されるが、これらラ
イトの意味はデータ・セグメントに適用される同
じライトの意味とはかなり異なる。アクセス・リ
ストを読み取ることができることは、そのアクセ
ス記述子の任意の1つをコピーするか別のアクセ
ス・リストに移動することができることを意味す
る。同様に、アクセス・リストを書き込むことが
できることは、リスト内のアクセス記述子のある
ものを別のものに交換することができることを意
味する。当然のことながらシステム保護システム
の保全性は、その内部の情報の変更のように、ア
クセス記述子に対して何かほかのことをすること
が絶対に不可能であることに依存する。 前述のように、セグメントの2つの基本的な種
類、つまりデータ・セグメントとアクセス・リス
ト、から様々な複雑なオブジエクトを作ることが
でき、これらオブジエクトの種類の幾つかはシス
テム・ハードウエアによつて認識される。ハード
ウエアで認識される種類にとつて最も重要なこと
に、セグメント記述子はベースの種類とシステム
の種類の両方についてセグメントを自動的に識別
してハードウエアに知らせる。しかしさらに進ん
だソフトウエア・システムでは、ハードウエアの
知識を越える新しい種類のオブジエクトを定義し
たり区別したりすることをプログラマーに可能に
することが必要となる。この必要条件を支持する
ため、本システムは利用できるオブジエクトの種
類の数をプログラマーがほとんど無限大にまで拡
張することができるようにする機能を提供する。
プログラマー拡張種類として定義されるオブジエ
クトはハードウエア認識種類のオブジエクトと同
一である。ただし1つの例外として、オブジエク
トのアクセス記述子はオブジエクトのセグメン
ト・アクセス記述子とプログラマー定義種類ラベ
ルの両方を選択することができる。ハードウエア
は拡張種類オブジエクトであると認識する以外は
このオブジエクトに対して何もすることができな
いので、プログラマーがソフトウエアでのオブジ
エクトの操作を定義することが必要となる。この
タスクを簡単にする基本的機構は幾つかある。そ
のような例は、拡張したオブジエクトの種類のラ
ベルをデータ・セグメントに読み込む能力と、そ
のような2つのラベルが同一かどうか比較する能
力である。プログラマーが拡張した種類のオブジ
エクトに関してハードウエアがさらに大きな予防
策を講ずることを主張すれば、オブジエクトをそ
のラベルの背後に隠すことができる。このように
拡張した種類を隠すことによつて、ハードウエア
はオブジエクトを露呈する前に適当な一致したラ
ベルを提示することを主張する。これらの機能に
よつてプログラマーは、認識されたオブジエクト
についてハードウエアで行われる同じ種類のチエ
ツクの多くをソフトウエアで行なうことができ
る。 多くの異なるラベルを同じオブジエクトに付け
ることができ、同じラベルを多くの異なるオブジ
エクトに付けることができる。ラベルの付いたオ
ブジエクトは大体その他のあらゆる種類のオブジ
エクトのように振舞うので、ラベル付きオブジエ
クト自体にラベルを付けることができる。論理的
に言つて、ラベルを1つオブジエクトに付けるご
とに、新しいアクセス経路が作られる。ハードウ
エアは、この経路に沿つたどのアクセスでもプロ
グラマーの定義したラベルに出会うことを保証す
る。オブジエクトが隠されていないとラベルはう
回されることがあり、隠されていると、オブジエ
クトにアクセスするために一致するラベル(すな
わち、保護されたキー)をプログラマーが提示し
なければならない。経路はすでにラベルを付けら
れたオブジエクトにラベルを付けることによつて
階層的に形成されるので、経路はラベリングのレ
ベルを有するという。この理由により、ラベリン
グのレベルを表わすためにセグメント・テーブル
内で使用されるハードウエア認識データ構造は経
路レベル記述子という(例えば、第2B図、6
0,62を参照のこと)。 システムの機能ほど広いのはあらゆる種類のオ
ブジエクトの定義、識別、操作についてである
が、そのような機能は融通性のある動的記憶割り
当て機能を利用することができなければ完全でな
いであろう。本システムが利用する割り当て機構
(第2B図、77)は、新しいデータ・セグメン
トと新しいアクセス・リストについてのストレー
ジとセグメントのテーブル・スペースの両方の瞬
間的な割り当てを支援する。前述のオブジエク
ト・タイピングとラベリングの機能は、ハードウ
エア認識オブジエクト種類とプログラマー定義オ
ブジエクト種類の両方の簡単で直接的な構造を可
能とする。 1.4 機能的階層 次に第3Aおよび3B図を参照する。システム
のアーキテクチヤは機能レベルの階層として設計
する。この階層の最低レベルにあるのは、主とし
てオペランド参照とオペレータ・コードより成る
個々の命令フイールドである。これらのフイール
ドは組合わされて、様々な原始的なデータの種類
と構造に関するかなりの数の有用な命令を形成す
る。完全な手続き行為つまり操作(本システムで
はこう呼称する)を定義するために、命令系統を
命令セグメント90というハードウエア認識オブ
ジエクトに格納することができる。そのようなオ
ブジエクトから得られる命令だけが実行可能であ
る。何らかの他の種類のオブジエクトから命令を
実行しようとする試みはすべてプログラムのエラ
ーと考えられる。操作は命令セグメントに同等で
ないことに注意を要する。これは、1つの操作を
表わすのに幾つかの命令セグメントが必要である
ためであるが、そのような合成命令を表わすため
に「オペレーシヨン・オブジエクト」の種類は定
義されない。この明細書でオペレーシヨンという
用語は、論理的に1つまたはそれ以上の命令セグ
メントより成る描象的なオペレーシヨン・オブジ
エクトを指すために使用する。 システムの機能的階層での次のレベルは、オペ
レーシヨンの集合を定義する。この集合は通常、
ある種類のオブジエクトを操作するためのある組
のオペレーシヨンの論理的結合に基づく。例えば
自然に分類される1組のオペレーシヨンは、辞書
を表わすのに使用する種類のオブジエクトを操作
するために定義された集合であろう。この1組の
オペレーシヨンは辞書の見出し語をさがしたり、
新しい見出し語を挿入したり、あるいは古い見出
し語を除いたりするための手続き行為を含むかも
しれない。特定の種類のオブジエクトを操作する
ためにソフトウエアに定義した1群のオペレーシ
ヨンは、原始的なデータの種類を操作するために
ハードウエアに定義した1組の演算子に対して間
違いようのない類似性を有することに気をつけな
ければならない。オペレーシヨンという用語は事
実、ハードウエア・オペレータに同等なソフトウ
エアと考えることができる「ソフトウエア・オペ
レータ」の概念を示すためのものである。 オペレーシヨンの論理的集合を表わすために使
用するハードウエア・オブジエクトはドメイン9
2という。オペレーシヨンの集合のみを表わす、
あるいはもつと正確に述べると、オペレーシヨン
の集合にアクセスする、ことはドメインにとつて
可能であるが、大部分の時間中にドメインは他の
オブジエクトを1組のオペレーシヨンにも関連づ
ける。これらオブジエクトは通常、ドメインのオ
ペレーシヨンのすべてによつて共用される定数、
変数およびアクセス記述子を含む。この理由によ
り、ドメインは単なる集合ではなく、各種の他の
オブジエクトと共に幾つかの可能なオペレーシヨ
ンの1つをアクセスすることができる環境と考え
られる。 しかし、ドメインによつて作られる環境は、オ
ペレーシヨンを実行するのに十分なものではな
く、さらにアクセスしなければならない。例え
ば、多数のオペレーシヨンは実行前にパラメータ
を渡される必要があり、しかもローカル変数と式
評価に使用する一時的な項目の余地を必要とす
る。実行可能なオペレーシヨンの環境上の必要条
件は、ドメイン・オブジエクトの所期の機能を簡
単に越える。 オペレーシヨンを実行することができる環境を
作る秘訣は、ドメインの静的な特性を実行準備完
了のオペレーシヨンの動的な態様に組合せるハイ
ブリツド・アクセス環境を作ることである。これ
をまさに行なうハードウエア認識オブジエクトは
コンテクスト94という。コンテクストはオペレ
ーシヨンの実行前に作られるアクセス環境(すな
わち、アクセス・リスト)であつて、オペレーシ
ヨンが定義されるドメインへのアクセスを含む。
コンテクストのコンテクスト・アクセス・リスト
は、ローカル式評価、先入れ後出しオペランド・
スタツクに使用する特殊オブジエクト、パラメー
タ・オブジエクトおよびローカル・データ・セグ
メントのアクセス記述子用の作業域を含む。 ひとたび実行すべきオペレーシヨンがコンテク
ストに与えられるとこれは通常、サブルーチンや
手続きの結果とされる振舞い以上のものを示し始
める。例えば、コンテクスト(すなわち、コンテ
クストでのオペレーシヨン)はサブルーチンのよ
うに互いに呼び出したり戻つたりすることができ
る。呼び出しているコンテクスト用のリターン・
リンク96は呼び出されたコンテクスト94のコ
ンテクスト・アクセス・リストに記憶するのが好
都合である。もちろんコンテクストを呼び出す
と、計算のアクセス環境にかなりの変化を生ずる
ことがある。呼び出し側と同じドメインに定義さ
れたオペレーシヨンのためにコンテクストを呼び
出すと、環境のコンテクストの特定の構成要素が
変化するだけである。ドメインの構成要素は変化
しない。別のドメインに定義されたオペレーシヨ
ンのためにコンテクストを呼び出すと、計算のア
クセス環境の全構成要素が変化する。 単にあるコンテクストから別のコンテクストに
移ることができてアクセス環境が前述のように完
全に変化することによつて、本システムには別の
非常に有用な形の保護がもたらされる。ドメイン
は、特に重要な情報ブロツクまたはデータ・ベー
スへのアクセスを利用して簡単な定義することが
できる。それが所定箇所にある場合、ドメインの
オペレーシヨンは、情報の保全を保証するのに必
要な方法から寸分違わないようにして情報を操作
するよう定義することができる。次に、ドメイン
内の情報を呼び出すための唯一の方法は、ドメイ
ン内のオペレーシヨンの1つのコンテクストを作
つてそれを呼び出すことである。データ・ベース
は隅発的または悪意の変更から完全に保護され
る。ドメインの情報隠匿能力をさらに高めるため
に、ドメイン・オブジエクト92自体は半ば隠さ
れるように設計される。あるドメインから別のド
メインにそのアクセス記述子を介してアクセスす
ると、前者のドメインの内部に定義されたオペレ
ーシヨンのコンテクストの内部からは、後者のド
メインの公用アクセス・リスト98に見出される
オブジエクトだけが自由にアクセスされる。呼び
出し側のコンテクストに隠され続けているものは
実際には、その私用アクセス・リスト100とい
う、2つの部分より成るドメイン・オブジエクト
の他の半分である。ドメインの私用アクセス・リ
ストに見出されるオブジエクトを呼び出す唯一の
方法は、そのオペレーシヨンの1つのコンテクス
トに制御権を渡すことであり、具体的には、その
公用アクセス・リストを介してアクセス可能な任
意のコンテクストに制御権を渡すことである。 万一、命令セグメント108のアクセス記述子
のみがドメインの公用アクセス・リスト98にあ
ると、呼び出し側コンテクストは、呼び出す前に
被呼び出しオペレーシヨンのコンテクストを最初
に作ることが必要であることを知る。ハードウエ
アは作られるコンテクストまたはドメインの保護
的な様相を妥協することなく、作るコンテクスト
のドメインと異なるドメインでのオペレーシヨン
のコンテクストの動的な構造を可能にすることに
注意しなければならない。言い換えると、他のコ
ンテクストにアクセスするあるコンテクストはそ
れを呼び出すことができるだけである。呼び出さ
れるコンテクストのコンテクスト・アクセス・リ
ストと、従つてそれのローカルにアクセス可能な
オブジエクトの集合は、隠さずにアクセスするこ
とはできない。 通常、制御権(すなわち、処理活動の中心)は
サブルーチンによく似ているように互いに呼び出
したり戻つたりするので、コンテクストからコン
テクストに階層的に移動する。あるコンテクスト
から別のコンテクストに転送し、次いで第3のコ
ンテクストに、それから再び第1のコンテクスト
に戻して一回りすることを含んで、もつと気まま
に制御権をコンテクストの間を転送させる必要性
が生ずることが時おりある。(ただし、この一回
りの転送は反復的な制御権の流れではない。それ
は同じオペレーシヨンの各呼び出しごとに新しい
コンテクストを作ることを伴なうであろう。)周
期的な制御権の流れとは、その制御権が実際にル
ープを回るごとに同じコンテクストを再び取るこ
とを意味する。別のもつと気まぐれな制御権構造
はパイプラインであり、これでは制御権があるコ
ンテクストにはいつて出て、次いで別のコンテク
ストにはいつて出ることを行ない、決つして再び
戻らない。これらの非階層的な制御権構造を支援
するために、システム内のコンテクストは制御権
を受け取る前に作られ、そして制御権を失なつた
後でも保持される(すなわち、割り当てが解除さ
れたり、再初期設定されたりしない)。この理由
によりコンテクストはALGOL的な意味で単なる
手続きではなく、これは制御権を得たり渡したり
するのと同時に存在したり消失したりするように
定義される。コンテクストはもちろん、適当な時
期にコンテクストを明示的に作つたり削除したり
することによつて、他のほとんどあらゆる形の制
御権や環境の規則に加えて、手続き環境をモデル
化するために使用することができる。この明細書
でコルーチンという用語は、非階層的に動作する
どのようなコンテクストをも指すために使用され
る。 次に第4Aおよび4B図を参照する。逐次計算
活動またはプロセスは、コンテクスト相互間の制
御権の転送から生ずる一連のコンテクストとドメ
インの遷移によつて特徴づけられる。物理的なプ
ロセツサ以上の計算プロセスが存在するかもしれ
ないので、アーキテクチヤは実行準備完了プロセ
スの間で利用できるプロセツサを自動的に切替え
たり、多重化したりする機能を有する。これはプ
ロセツサの概念を抽象化または視覚化することに
よつて行われる。物理的なプロセツサは所定期間
中、所定の計算過程の仮想的なプロセツサに関連
づけられる。物理プロセツサが仮想プロセツサか
ら関係を断つと、計算状態は仮想プロセツサの状
態としてメモリに記憶される。これによつて対応
する種類の別の物理プロセツサが利用できるとき
には常に、その仮想プロセツサの処理を都合よく
再開することができる。本システムでは、異なる
仮想プロセツサは各計算過程ごとに定義し、従つ
て、仮想プロセツサという用語とプロセスという
用語は同義語として使用する。しかしこの明細書
の残りの部分では、ほとんどプロセスという用語
だけを使用する。 各独立のプロセスに関連した仮想プロセツサの
状態を保つために、本システムはプロセス・オブ
ジエクト140という別の種類のハードウエア認
識オブジエクトを利用する。プロセス状態に加え
て、このオブジエクトはソフトウエアによつてそ
の位置にすでに記憶されている情報を含み、この
情報はリソースとメモリ・スペースを処理する自
動割り当てにおいてシステムのハードウエアによ
つて利用される。プロセツサ・オブジエクト14
2という別のオブジエクトは各プロセツサに割り
当てられ、その状態情報を維持すると共に、処理
する1組のプロセスを決定する。 1.5 通信 再び第3Aおよび3B図を参照する。システム
のアーキテクチヤ階層の各レベルには、プログラ
ム・オブジエクトのための異なる通信機構が設け
られている。最下位レベルでは、一時的なスカラ
ー・オペランド用の後入れ先出しスタツクを含む
共通にアクセス可能なメモリ位置を介して命令相
互間の通信が起こる。命令から命令への通常の逐
次的な制御権の流れはもちろん、無条件ブランチ
ングと条件付きブランチングのいずれかによつて
も変更することができる。このレベルの実行は常
に逐次的であるため、命令通信の緩衝やインタロ
ツキングは不要である。 次のレベルでは、従来サブルーチンまたは手続
きとして相互作用するコンテクスト相互間の通信
は、メツセージの送受に基づく。伝送すべき情報
は最初にメツセージ・オブジエクト102に組立
てる。この情報が簡単なスカラー・データである
と、メツセージ・オブジエクトは1個のデータ・
セグメントにすぎない。もつと複雑な情報の伝送
の場合には、メツセージ・オブジエクトは他のア
クセス・リスト、データ・セグメントおよびオブ
ジエクトの記述子を含むアクセス・リストとな
る。どのような場合にも、メツセージは1個の、
しかし任意の複雑度のオブジエクトとして処理さ
れる。メツセージを伝送するにはハードウエア
は、メツセージ・オブジエクトのアクセス記述子
112を送信側コンテクストから受信側コンテク
ストに移動するだけである。言うまでのなくこの
形態のコンテクスト相互間通信は高速で融通性が
高くて極めて強力である。 あるコンテクストがサブルーチンや手続きのよ
うに別のコンテクストを階層的に呼び出すと、呼
び出し側のコンテクストのリターン・リンク96
は別個のアーギユメント・メツセージとして呼び
出されたコンテクストに渡されもする。やはりア
クセス記述子の形であるリンクは、望むとき呼び
出されたコンテクスト94によつて使用されて結
果メツセージと共に制御権を呼び出し側コンテク
スト95に戻すことができる。重要なことに、コ
ンテクストを呼び出すことと、コンテクストに戻
ることの相違は、後者の場合にリターン・リンク
が供給されないことだけである。 メツセージはまた、厳密な呼び出し/リターン
階層を要求しないコンテクスト相互間通信の基礎
を成す。しかし階層的コンテクストとは異なり、
非階層的コンテクストつまりコルーチン通信は各
種の潜在的な呼び出し側に関してもう少し選択す
ることを要求する。通常のコンテクストはその潜
在的な呼び出し側の任意の1つによつて呼び出さ
れるが、コルーチンは呼び出しを行なうコルーチ
ンの小集合のみから制御権と通信を受け入れるよ
うに動的に選択する。この選択はバツフアなし通
信ポート104という別の種類のハードウエア認
識オブジエクトによつて可能になる。メツセージ
を受け入れて制御権を得たい特定のポートを指定
するために、別のバツフアなしポートを介して何
か他のコルーチンにあるコルーチンが制御権を転
送してメツセージを渡すときは常に、そのコルー
チンはそのポートで停止する。その点から先に
は、コルーチンはそれが中断されているポートを
介して制御権とメツセージを受け入れるだけであ
る。他のバツフアなしポートを介してコルーチン
に制御権と情報を渡そうとする他の試みはすべて
エラーとして処理される。選択が利用できるけれ
ども、コルーチン通信はどのような形の緩衝もイ
ンタロツキングも必要としない。それは、コルー
チンは定義上、互いに逐次的に交信するからであ
る。 再び第4Aおよび4B図を参照する。機能的階
層の最上位レベルで、潜在的に非同期式の逐次プ
ロセスの通信機構は十分に緩衝され、インタロツ
クされる。これらの機能は両方とも、バツフア付
き通信ポート144という別の種類のハードウエ
ア認識オブジエクトによつてもたらされる。独立
した各プロセスの相対速度は予言可能ではないの
で、ポートにより行われる緩衝はかなり広範囲に
わたる。各バツフア付きポートは2つの行列を生
じ、一方は送られたメツセージのためのものであ
り、もう一方はメツセージが到着するのを待機し
ているプロセスのためのものである。他のプロセ
スを待機していないポートに対してあるプロセス
がメツセージを送ると、そのプロセツサはメツセ
ージのアクセス記述子をポートのメツセージ行列
150に格納して実行を続行するだけである。そ
の後、別のプロセスが同じポートでメツセージを
受け取ろうとすると、すぐにメツセージを受け取
つて実行を続行する。受け取つているプロセスは
ポートに待機されたメツセージを発見しなけれ
ば、そのプロセス・オブジエクトのアクセス記述
子をポートのプロセス行列に格納する。その後、
メツセージが到着してプロセスがポートのプロセ
ス行列の頭にあると、送信プロセスは行列から待
機中のプロセスを除去し、そしてこれを新しい実
行に利用できるようにする。 非同期式プロセス間通信に必要な緩衝とインタ
ロツクを提供するのに加えて、バツフア付きポー
トは他の幾つかの重要な能力を提供する。例え
ば、同じポートを通して2つ以上のプロセスがメ
ツセージを送ることを可能とすると共に2つ以上
のプロセスが同じポートを通してメツセージを受
け取ることを可能とすることによつて、幾つかの
同一のプロセツサで並列に動作自在な幾つかの同
一のプロセスは多数の他の顧客のプロセスに対し
て同時サービスを提供する。この特徴は進んだリ
アルタイム・システムで効果的に利用することが
でき、ピーク負荷期間に応答時間を調整・改善す
る。プロセスはアクセスすることができる任意の
ポートで受け取ることが自在であるので、コルー
チンの場合によく似ているように、はいつて来る
メツセージのトラフイツクの処理を任意に選択す
ることができる。ポートはまた、一般にリソー
ス・マネージメント・ソフトウエアで見出される
高度な形のプログラミングされた相互排他を支援
するように、より簡単に使用することができる。
メツセージを送るのに加えて、待機中のプロセス
を並べるバツフア付きポートの能力によつて、メ
ツセージの到着を確認するためプロセスを際限な
くテストさせるか、ロツク・ビツトの周囲で循環
させる種類の多忙待機は完全に除去される。本シ
ステムでの一部のハードウエア機能はスピン・ロ
ツク(循環停止)を利用するが、実際に循環する
状況では不必要なメモリ保持を避けるために特殊
な技術を利用する。 論理的には、プロセツサへのプロセスの割り当
ては、バツフア付きポートによつて可能にされる
同じ種類の待機した通信によつて支援される。す
なわち、新しい実行の準備ができているプロセス
は、多分幾つかの受信プロセツサの1つのメツセ
ージと全く同じように処理される。プロセスを待
機するためにプロセツサは、プロセスがバツフア
付きポートでメツセージを受け取るために待機す
るのと全く同じように、プロセスが到着するまで
デイスパツチ・ポート146で待機する。本シス
テムはまた、あるプロセスが別のプロセスをメツ
セージとして受け取るのを可能とするため、この
機構では物理プロセツサ、仮想プロセツサおよび
プロセスの論理的同等性は明白である。プロセス
を直接実行することはできないが、受信プロセス
は受け取つたプロセスを検査、遅延または通訳的
に実行してから、それをメツセージとして物理プ
ロセツサまたは多分何かほかのプロセスに送り返
す。 通常、バツフア付きポートのプロセス行列を出
るプロセスは、プロセツサ割り当てのためにデイ
スパツチ・ポートに直接送られる。特定のデイス
パツチ・ポートはバツフア付きポート内のアクセ
ス記述子148によつて指定される。バツフア付
きポートが別のバツフア付きポートのアクセス記
述子を有していなければ、そのプロセスのアクセ
ス記述子が代わりにそこに送られる。システムの
通信機能のこの様相は、システム構造を動作する
のに重要な実際的な結果をもたらす。この機構に
よつて、ソフトウエア・スケジユーラや他のサー
ビス・プロセスをハードウエア・スケジユーラ相
互間に全く無関係に挿入することができる。 前述したのと同じプロセス間通信が、汎用デー
タ処理装置に関連したプロセス相互間に、または
入出力処理装置に関連したプロセス相互間に使用
される。これは入出力の非同期的性質に一致する
と共に、汎用データ処理装置への割り込みを不要
とする。すべての通常の割り込み、直接メモリ・
アクセス・リクエストなどは入出力処理装置によ
つて処理される。装置の必要な処理機能を完了し
た後、入出力プロセスはメツセージを送受するこ
とによつて関連する汎用データ・プロセスと交信
する。入出力プロセスのデイスパツチングに加え
て、指令と完了メツセージのキユーイングは、装
置の入出力システムをそのプロセス間通信機構の
上に作ることの自然の副産物である。 通常の割り込みはシステムの内側には存在しな
いけれども、プロセツサが互いに交信することを
可能にする機構がある。この機構は典型的に、保
守のために他のプロセツサによつて休まされた
か、低い計算活動またはメモリ・アクセス・イン
タロツクの期間中に自分自身で休んだかもしれな
いプロセツサを再動作するために使用される。こ
れはプロセツサ特定通信という。それは、プロセ
ツサ間メツセージのターゲツトが再動作される必
要があるプロセツサのみであるからである。他の
状況では、プロセツサ間通信はシステム・ワイ
ド・プロセツサ指示文を同報通信するために使用
する。通常これはシステム内の全プロセツサに対
するグローバル・リクエストであり、プロセツサ
のすべてが内部で緩衝するセグメント・アドレス
情報を再修飾する。通常の割り込みからプロセツ
サ相互間通信を最も区別するものは多分、プロセ
ツサ相互間通信が受信プロセツサに対して実行し
ているプロセス内部で制御権の流れを決つして変
えさせないことである。 ソフトウエアやハードウエアの例外に応答する
通信は本システムで幾つかの形を取る。大部分の
計算フオールトはフオールト・コンテクスト内部
の簡単なブランチを指定のフオールト・ハンドラ
命令セグメントに導く。保護フオールトのような
もつと厳しいフオールトの結果、フオールト・プ
ロセスの実行は中断され、そのプロセス・オブジ
エクトのアクセス記述子は指定されたバツフア付
きポートを介してフオールト・サービス・プロセ
スに送られる。プログラミングされた診断プロセ
スの実行を試みる別のデイスパツチ・ポートにア
クセス記述子を割り当てることによつて、フオー
ルト・プロセツサは多少異なるように処理され
る。 エラー補正故障、バス応答故障または主要電源
故障のようなシステム警報状態を独立に監視する
外部装置は、現在実行中のプロセスのすべての中
断と危険警報処理プロセスの実行を強制するかも
しれない。 1.6 データの種類、演算子および命令 汎用型のデータ群と演算子は汎用データ処理装
置によつて提供される。このデータ群に含まれて
いるのは、個々のビツト、ビツト・フイールド、
文字、2サイズの序数(符号の付いていない整
数)、2サイズの整数、および3サイズの実数
(すなわち、浮動点データ)のための演算子であ
る。また、任意の特殊演算子の代わりに用いられ
るは、ベルトルやレコードのような集合データ構
造の個々の構成要素を効率的に選択するための多
目的オペランド基準機構である。 極めて鮮やかな実際の算術を保証するために、
本システムの浮動点アーキテクチヤには特別な考
慮が与えられている。利用される演算子群は、ほ
とんどどんな数学上の関数をも正確に64ビツトの
精度に決定することを可能とする。浮動点アーキ
テクチヤの他の特徴には、結果の精度とまるめに
対する完全な制御が含まれる。この後者の特徴は
最も有名なことに、システムのソフトウエアでの
インターバル算術の実際的で効率的な実行に貢献
する。 命令書式は各演算子を用いて、指定すべき明示
オペランド基準と暗黙オペランド基準(すなわ
ち、現在のオペランド・スタツクの上から)のほ
とんどどのような組合せも可能とする。転数元ア
ドレスと転送先アドレスが同一であるとき起るか
もしれないような冗長オペランド基準は、命令に
2回以上現われるように、共通の基準を不要とす
るよう指定することができる。データの種類とオ
ペランド位置に関して演算子集合と命令書式のほ
ぼ総合的な対称性によつて、高めのレベルのプロ
グラム言語で記述されるプログラムの通訳が大幅
に簡単になると共に、プログラムを実行するのに
必要な時間とスペースがかなり減少する。演算子
コードとオペランド基準の頻度の符号化に基づく
可変長命令書式の使用によつても、プログラムを
表わすのに必要な記憶容量がかなり減少する。圧
縮は機能性やアドレスを用いた読み書き能力が同
等の他のコンピユータ・システムと比較したと
き、50パーセントも高いことがしばしばある。 入出力プロセツサは、周辺装置とコントローラ
との間の情報の流れを処理するよう具体的に設計
された、限られた集合のデータ種類と演算子を支
援する。この集合に含まれているのは、1個の文
字または短かい序数を転送する演算子と、文字ま
たは短かい序数のストリングを転送する演算子で
ある。やはり含まれるのは、データが動いている
間に送受両データを走査・通訳する幾つかの演算
子である。これら演算子は転送同期・終了方法の
選択に大きな融通性を与える。本システムの入出
力プロセツサのアーキテクチヤはこの明細書の第
3部で説明する。 2.0 情報構造 2.1 メモリ 本システムは2レベル・メモリ構造を具体化す
る。ソフトウエア・システムは、論理アドレスが
データ項目の位置を指定する、分割された環境内
に存在する。プロセツサは物理アドレス内の値に
アクセスするよう、この論理アドレスを自動的に
物理アドレスに通訳する。 2.1.1 論理アドレス指定 ソフトウエア・システムは多くのセグメントに
仕切られている。セグメントは連続的なアドレス
のメモリ・バイトのグループであり、ここでは1
つのバイトは8個の2進ビツトの情報を含む。セ
グメントは1バイトから65,536バイトまでの任
意の長さである。 あるオペレーシヨンの命令は現在のコンテクス
トを構成しているセグメント内部に含まれている
情報にアクセスする。命令は、論理アドレスでメ
モリ内のオペランドの位置を指定する1個かそれ
以上のデータ基準を含む。各論理アドレスは、セ
グメント・セレクタとオペランド変位の2つの構
成要素を有する。セグメント・セレクタは、コン
テクストのアクセス・リストの1つへの入力項目
の索引を指定する。その入力項目はオペランドを
含むメモリ・セグメントを間接的に指定する。オ
ペランド変位とは、選択したセグメントのベース
から望みのオペランドの最初のバイトまでのずれ
である。ソフトウエア・システムの最大論理アド
レス空間は各々が65536個のバイトより成る
2097152個のセグメントに限定され、バイトの総
計は137438953472となる。 2.1.2 物理アドレス指定 論理アドレスは、「一般化されたデータ処理装
置の命令」という見出しの下で説明するように、
プロセツサによつて物理アドレスに通訳される。
物理アドレスは、参照すべきメモリの値の最初の
バイトを選択するよう、プロセツサによつてメモ
リに伝達される。物理アドレスの長さは24個の2
進ビツトである。これによつて物理メモリのサイ
ズは16777216バイトに限定される。 2.2 データ書式 プロセツサはコンテクスト内のオペレーシヨン
の命令を実行するとき、コンテクストのセグメン
ト内に見出されるオペランドを操作する。個々の
オペランドはメモリの1個、2個、4個、8個ま
たは10個のバイト、つまりそれぞれバイト、ダブ
ルバイト、ワード、ダブルワードまたは拡張ワー
ドを占めることができる。オペランドはすべて前
述のように論理アドレスによつて参照される。そ
のようなアドレスでの変位は、データ・セグメン
トのベース・アドレスからオペランドの最初のバ
イトまでのバイト内の変位である。多数のバイト
より成るオペランドの場合、アドレスは下位のバ
イトを位置決めし、高位のバイトほど順に高い隣
りのアドレスに見出される。 2.3 データ表示 メモリに記憶されるデータ構造を表わすため
に、以下の約束事を利用する。1つのフイールド
内の各ビツトは順に高位の数字が付され、最下位
ビツトは右側である。バイト・アドレスは右側か
ら左側に沿つて増大する。システム内の基本的な
4つの長さは、1バイト(ビツト0−7)、ダブ
ルバイト(ビツト0−15)、ワード(4個のバイ
ト、ビツト0−31)、タブルワード(8個のバイ
ト、ビツト0−63)、および拡張ワード(10個の
バイト、ビツト0−79)である。 2.4 データ位置決め 前述のデータ構造はデータ・セグメント内部の
任意のバイト境界に整列される。メモリ・システ
ムがダブルバイト単位で構成される場合、多数バ
イト・データ構造がダブル・バイト境界で整列さ
せられると、さらに効率的なシステム・オペレー
シヨンが得られることに注意する必要がある。 2.5 データ保全 本システムの多重プロセツサ・アーキテクチヤ
は、同時にアクセスされる可能性があるデータ項
目の保全を保証するために、メモリ・システムの
オペレーシヨンに一定の必要条件を課す。メモリ
内のダブルバイトとワード・オペランドの双方へ
の分割不能な読み取り・修正・書き込み
(RMW)オペレーシヨンは、システム・オブジ
エクトを操作するのに必要である。メモリ内のあ
る位置に対してRMW読み込みが処理されるとき
から、その位置への他のすべてのRMW読み込み
は、その位置へのRMW書き込みが受け取られる
まで(またはRMW時間切れが起るまで)メモ
リ・システムによつて阻止される。また、ダブル
バイトかそれより長いオペランドの通常の読み取
りと書き込みの場合、メモリ・システムはオペラ
ンド全体が読み取られるか書き込まれてから同じ
位置への別のアクセスの処理を開始することを保
証しなければならない。そうしないと例えば、
(2つのプロセツサによる)同じ位置への2つの
同時書き込みの結果として、オペランドを記憶す
るために使用する1組の位置は、2つの書き込ま
れた値の交互の組合せを含むことがある。 2.6 オペランド・スタツク ハードウエアによつて管理されるスタツク・ポ
インタ(SP)は、セグメントのベースから次の
フリー・スタツク要素までのバイト内での変位を
含む。オペランドがスタツクに退避されると、そ
の値はスタツク・ポインタによつて指定される位
置に記憶され、次にスタツク・ポインタはオペラ
ンドの長さだけ増加される。同様にして、オペラ
ンドをスタツクから取り出すとき、最初にスタツ
ク・ポインタはオペランドの長さだけ減らされ、
次に値がスタツク・ポインタによつて指定された
位置からロードされる。スタツクがダブルバイト
AとワードBを含んでいたのであれば、スタツク
は第3B図に示しているように見えるであろう。
(バイト変位はオペランド・スタツク・セグメン
ト106の右手側に数字で示している。) スタツクの一番上の要素を参照する命令はセグ
メント・セレクタも変位も指定する必要はない。
それは、プロセツサはどのセグメントが実行中の
プロセスの現在のスタツクを含むかを知つてお
り、スタツク・ポインタは現在のスタツクの一番
上の変位を指定するからである。実行中のオペレ
ーシヨンが生ずる一時的な結果は、オペランド・
スタツクに最も効率的に記憶される。それは、ス
タツクを参照するのに命令内に必要な情報は非常
にわずかであるからである。 オペランド・スタツクへオペランドを記憶する
正確な方法はオペランドの長さに左右される。本
システムでは、スタツクに記憶されたバイト・オ
ペランドは、16ビツトのスタツク要素内で全部が
ゼロの高位のバイトで右寄せされる。ダブルバイ
ト・オペランドはスタツク内の一要素を占めるだ
けである。ワード・ダブルワードおよび拡張ワー
ドの各オペランドはそれぞれ2個、4個および5
個のスタツク要素を必要とし、高位のオペランド
ほど高位のアドレスに記憶される。 2.7 命令セグメント すべてのソフトウエア・オペレーシヨンの命令
は命令セグメント90、(第3B図)内に含まれ
ている。しかしデータ項目とは異なり、命令は前
述の固定長書式の内部にはまるようには限定され
ない。その代わりにプロセツサは、命令ストリー
ムという連続的なビツトのストリングとして命令
セグメントを見る。可変数のビツトを含む個々の
プロセツサ命令は、ストリング内のどのビツトか
らでも開始可能である。一般化されたデータ処理
装置の命令の位置は論理アドレスによつて指定さ
れ、この論理アドレスの変位は、命令ストリーム
を含む命令セグメントの初めから命令の最初のビ
ツトまでのビツト変位である。この変位は16ビツ
トに制限されるため、命令セグメントは65536ビ
ツトつまり8192バイトに制限される。プロセツサ
は32ビツトを単位としてメモリから命令セグメン
トを読み取る。この理由により、命令セグメント
はワード境界で終らなければならない。さもない
と、プロセツサが命令セグメントの最後の命令の
ビツトを読み取ろうとすると、境界エラーが生ず
る。 3.0 一般化されたデータ処理 3.1 計算データの種類 一般示されたデータ処理装置は、ハードウエア
が認識する異なる計算データの種類を幾つか処理
するよう、広範囲の演算子の集合を利用する。各
種類は必要な記憶容量と、その種類のオペランド
に利用することができる演算子によつて特色づけ
られる。これらの種類(各々は後述する)は原始
的な種類であり、これらを用いてシステム内にも
つと複雑なデータ構造を作ることができる。その
種類のデータについてすべての有意義な演算子が
利用できるという意味で、各種類の演算子は完全
と考えられる。いずれかの演算子の結果がそのデ
ータの種類の範囲を越えれば、この状態はハード
ウエアによつて認識され、そして次に定義するよ
うに特殊な手段が講ぜられる。 3.1.1 文字 文字オペランドはメモリを1バイト必要とし、
論理式、文字または符号の付いていない整数値を
表わすために使用することができる。後者は0か
ら255までの範囲に限定される。文字オペランド
によつて行われる演算には、論理演算(例えば、
論理積、論理和、排他的論理和、排他的NORな
ど)、簡単な符号の付いていない算術演算(例え
ば、加算、減算、インクリメント、デクリメント
など)および関係演算(例えば、等しい、を越え
る、以上、など)が含まれる。 3.1.2 短かい序数 短序数オペランドは、順序づけられたリスト内
の一要素の位置を指定するセレクタとして最も一
般的に使用される。例えばそのようなオペランド
は、ベクトルまたはアレイの索引として役立つで
あろう。これらオペランドはメモリのダブルバイ
トを占めるため、それらの値は0から65535まで
の範囲に限定される。さらに、短序数オペランド
は16ビツトかそれ以上のビツト・フイールドを表
わすために使用することができる。短序数演算に
は、論理演算、ビツト処理および完全な符号の付
いていない算術演算と関係演算が含まれる。 3.1.3 短かい整数 短整数オペランドもメモリのダブルバイトを占
めるが、2の補数の形で−32768から32767の範囲
内の符号の付いた整数を表わす。符号の付いた算
術演算子と関係演算子の完全な一そろえは、短整
数オペランドを処理するのに利用される。 3.1.4 序数 序数オペランドはメモリの1ワードを占め、0
から4294967295までの範囲(両端を含む)内の整
数の付いていない整数を表わす。また序数オペラ
ンドは、32ビツトまでの、短序数オペランドによ
つて処理できるものより長いビツト・フイールド
に使用することができる。序数値に関連する演算
の集合には、論理演算、ビツト処理および完全な
符号の付いていない算術演算と関係演算が含まれ
る。 3.1.5 整数 整数オペランドはメモリの1ワードを必要とす
る。このデータの種類は、短整数データの種類で
利用できるものを越えた拡張精度を与える。これ
らのオペランドの値は2の補数の形であり、−
2147483648から2147483647までの範囲内にある。
32ビツトの符号の付いた算術演算子と関係演算子
の集合は、整数オペランドを処理するため利用さ
れる。 3.1.6 短かい実数 短実数の種類のデータ値は、整数オペランドや
短整数オペランドで得られるよりも広い範囲の値
を生ずるが、その範囲を通じて精度は劣る。この
種類の値は小数部とスケール・フアクタ(基準化
因数)の2つの部分より成り、スケール・フアク
タ自体は底と指数より成る。10進数を用いる一例
は (1.2345)*10-3 であり、これは10進値、0.0012345を表わす。こ
の例では小数部は1.2345であり、スケール・フア
クタは底10と指数−3より成る。下で詳細に説明
するように、短実数の種類の値の表示に実際に含
まれるのは小数部と指数だけである。短実数オペ
ランドはメモリの1ワードを占め、以下の書式を
有する。 最上位ビツト(ビツト31)は、短実数値の符号
(0では正で、1は負)を指定する。短実数オペ
ランドを表わすすべてのビツト・パターンがハー
ドウエアによつて同じように解釈されるわけでは
ない。オペランドには、不当オペランド、正規化
オペランド、ゼロオペランドおよび非正規化オペ
ランドの4種類がある。 不当オペランドは、指数フイールドが全部1で
あるか、符号ビツトが1で指数と小数部のフイー
ルドがすべてゼロであるオペランドである。ハー
ドウエアが不当オペランドに応答するあり様は、
「浮動点計算」の見出しの下で説明する。 正規化オペランドは指数フイールドが全部ゼロ
でもなく、全部1でもないオペランドである。2
進小数部は、値1で小数部の最上位ビツトの左に
暗黙ビツトを取る正規化された形の厳密な絶対値
で記憶される。小数点はこの暗黙ビツトと最上位
小数部ビツトの間にある。短実数オペランドのス
ケール・フアクタは2進法の底と指数を用い、こ
の指数の値は短実数オペランドの指数フイールド
内に記憶され符号の付いていない2進整数より
127小さい。指数フイールドの値は0から255まで
の範囲を取る。全部がゼロまたは全部が1である
(符号が付いていない値が0または255)指数フイ
ールドは特別な意味を有するため、スケール・フ
アクタの指数の範囲は−126から127までである。
短実数オペランドの値は として記憶される。正規化された短実数オペラン
ドは7個の10進数字の精度に相当する。最大と最
小の各絶対値は近似的に次のように与えられる。 最大絶対値=3.4*1038 最小絶対値=1.2*1038 ゼロ短実数値は独特の表示を有する。この表示
は、符号、指数および小数部の各フイールドにす
べてゼロを有する。 非正規化短実数オペランドは、ゼロの近くで表
わすことができる値の範囲を拡張するために、ハ
ードウエアによつて認識され支援される。非正規
化オペランドを認識しないシステムでは、一部の
計算は複雑なソフトウエアの介在なしには正しく
完了することができない。しかし本システムでは
これら同じ計算は、ハードウエアによつて簡単に
完全に実行することができる。非正規化値は、す
べてゼロである指数フイールドと、全部がゼロで
ない小数部フイールドによつて表わされる。2進
小数部は暗黙ビツトなしに厳密な絶対値で記憶さ
れる。小数点は小数部の最上位ビツトの左に置か
れ、スケール・フアクタの指数は−126から127ま
での範囲である。 と記憶される非正規化短実数オペランドは (−1)S*(0.f22……f0)*(2-126) である。小数部の高位のゼロビツトの数が増大す
るにつれて、対応する短実数値の精度が低下する
ことに注意する必要がある。非正規化値を支援す
ると、短実数オペランドの最小絶対値は大体次の
値まで減少する。 最小絶対値=ほぼ1.4*10-45 3.1.7 実数 メモリのダブルワードを占める実数オペランド
は、前述の短実数オペランドと同じような計算能
力を提供する。しかし実数オペランドは、より広
い範囲の値とより高い精度を与える。実数オペラ
ンドの書式は次のとおりである。 この書式の解釈は前述の短実数書式の解釈と同
じである。そしてやはり4種類のオペランドがあ
る。不当オペランドは、指数フイールドがすべて
1であるオペランドであるか、符号ビツトが1で
指数と小数部のフイールドがすべてゼロであるオ
ペランドである。 正規化オペランドは、指数フイールドが全部ゼ
ロでもなく、全部1でもないオペランドである。
2進小数部は、暗黙1ビツトで小数部の最上位ビ
ツトの左に正規化された厳密な絶対値の形で記憶
される。小数点はこの暗黙ビツトと、小数部の最
上位ビツトの間にある。スケール・フアクタの指
数は、実数オペランドの指数フイールドに記憶さ
れる符号の付いていない2進整数より1023小さ
い。全部がゼロまたは全部が1(符号の付いてい
ない整数が0または2047)の指数フイールドは特
殊な意味を有するため、スケール・フアクタの指
数は−1022から1023までの範囲にある。 と記憶される正規化実数オペランドは (−1)S*(1.f51……f0)*
(2(e10……e0)-1023) である。 実数オペランドは、15個の10進数字の精度に相
当する。最大と最小の各絶対値は大体次のように
与えられる。 最大絶対値=ほぼ1.8*10308 最小絶対値=ほぼ2.2*10-308 短実数オペランドの場合のように、独特なゼロ
である実数値は、符号、指数および小数部の各フ
イールドが全部ゼロである実数オペランドによつ
て表わされる。 非正規化実数値は、全部がゼロの指数フイール
ドと、ゼロでない小数部フイールドを有する。2
進小数部は暗黙ビツトなしに厳密な絶対値の形で
記憶され、スケール・フアクタの指数は−1022で
ある。 と記憶される非正規化実数オペランドの値は (−1)S*(0.f51……f0)*(2-1022) である。 3.1.8 一時実数 一時実数種類の値はメモリの拡張ワードを占
め、実数種類の値よりも広い範囲の値とより高い
精度を与える。一時実数オペランドは浮動点計算
中に、中間結果つまり一時的な結果として使用す
るためのものである。そのような一時的な結果を
支援すると、2つの非常に重要な効果が生ずる。
第1に、多段階計算の中間値への一時実数オペラ
ンドを使用すると、中間値を保持するために短実
数オペランドまたは実数オペランドを使用する場
合よりもかるかに少ない精度の損失で結果を得る
ことができる。第2に、拡張された指数範囲は、
オーバフローやアンダフローが起きて計算の完了
前に計算が停止する可能性を大幅に減少する。例
えば、中間結果に一時実数値を使用することによ
つて、正確に短実数または実数の値の精度で基本
的な三角関数を計算することができる。一時実数
オペランドの書式は次のとおりである。 前述の短実数オペランドの場合のように、一時
実数オペランドは4種類ある。不当オペランド
は、全部が1の指数フイールドのオペランド、ま
たは符号ビツトが1で指数フイールドと小数部フ
イールドが全部ゼロのオペランドである。 正規化オペランドは、全部が1でない指数フイ
ールドを有し、小数部の最上位ビツトが1である
オペランドである。2進小数部は正規化された形
の厳密な絶対値で記憶され、小数点は小数部の2
つの最上位ビツトの間に置かれる。暗黙1ビツト
は一時実数書式と共に使用されないことに注意を
要する。スケール・フアクタの指数は、一時実数
オペランドの指数フイールド内に記憶されている
符号の付いていない2進整数より16383小さい。
全部が1の指数フイールド(符号の付いていない
整数値32767)が不当オペランドに確保されてい
るため、正規化オペランドのスケール・フアクタ
の指数は−16383から16383までの範囲にある。 として記憶される正規化一時実数オペランドの値
は (−1)S*(1.f62……f0)*
(2(e14……30)-16383) である。 一時実数オペランドは19個の10進数字の精度に
相当する。最大と最小の各絶対値はほぼ次のよう
に与えられる。 最大絶対値=ほぼ1.2*104932 最小絶対値=ほぼ1.7*104932 独特なゼロの一時実数値は、符号、指数および
小数部の各フイールドがすべてゼロである一時実
数オペランドによつて表わされる。 非正規化一時実数値は、指数フイールドの全部
が1でなく、小数部の最上位ビツトがゼロである
値である。2進小数部も厳密な絶対値の形で記憶
され、小数点は小数部の2つの最上位ビツトの間
に置かれる。正規化オペランドの場合のように、
スケール・フアクタの指数は指数フイールドに記
憶されている符号の付いていない2進整数より
16383小さい。従つてこの指数は正規化一時実数
オペランドの場合と同じ範囲を有する。 として記憶される非正規化一時実数オペランドは (−1)S*(0.f62……f0)*
(2(e14……e0)-16383) である。 非正規化オペランドを支援すると、一時実数オ
ペランドの最小絶対値はほぼ次の値まで減少す
る。 最小絶対値=ほぼ1.8*10-4951 3.2 命令構成 一般化されたデータ処理装置の行為は、実行さ
れているプロセスの「現在命令セグメント」から
得られる命令によつて決定される。すべての命令
は1個の演算子と幾つかの参照を指定する。演算
子はプロセツサに対してどの「ハードウエア・オ
ペレーシヨン」を実行すべきかを指定し、参照は
使用または処理すべきオペランドを選択する。各
命令ごとに、この演算子と参照の情報は幾つかの
可変長フイールドに符号化される。命令内のこれ
らフイールドの順序は下の図に示すとおりであ
る。 各フイールドの一般形と機能は次の幾つかの項
目で説明する。 3.2.1 参照の種類 1つの命令の「参照フイールド」には2種類の
参照が現われる。「データ参照」はデータ・セグ
メント内のオペランドの論理アドレスの符号化し
た形である。ブランチ演算子と常に一緒に使用す
る「ブランチ参照」は、命令セグメント内の命令
の論理アドレスの符号化した形にすぎない。命令
が一定の場合、必要な参照の種類と数は演算子に
よつて一義的に決定される。例えば、ADD
INTEGER演算子が命令内に生ずると、3つのデ
ータ参照が必要となる。それらのうち2つは合計
すべき演算子を指定し、第3のデータ参照はどこ
に結果を記憶すべきかについての論理アドレスを
指定する。一方、無条件ブランチ演算子が必要と
するブランチ参照は1つであり、これは実行すべ
き次の命令の論理アドレスを指定する。 3.2.2 演算子 命令内で指定される演算子は2つのフイール
ド、つまり「類フイールド」と「オペレータ・コ
ード(OP.コード)」、内で符号化される。類フイ
ールドは演算子が属する演算子類を指定し、オペ
レータ・コード・フイールドはその類の内部から
実行すべきハードウエア・オペレーシヨンを選択
する。 演算子の類は演算子の順序(すなわち、必要な
データ参照の数)と関連するオペランドの長さに
よつて決定される。BRANCH演算子のような
「オーダ・ゼロ」演算子はデータ参照を必要とし
ない。「オーダ・ワン」演算子はデータ参照を1
つ必要とし、このデータ参照は長さの範囲が1バ
イトから拡張ワードまでであるオペランドを指定
する。この参照は転送元オペランドと転送先アド
レスのいずれかを指定する。例えば、条件付きブ
ランチ演算子は1個のデータ参照を必要とし、こ
のデータ参照はテストすべき条件を供給するバイ
ト・オペランドを指定する。あるいはZERO
REAL演算子は、演算子の働きによつてゼロにセ
ツトされるダブルワードのアドレスを指定するデ
ータ参照を1つ必要とする。「オーダ・ツー」演
算子はデータ参照を2つ必要とし、これらは長さ
が1バイトから1拡張ワードまでの範囲のオペラ
ンドを独立に指定する。大部分の場合、一方の参
照は処理すべき転送元オペランドを指定し、他方
の参照は結果に関する「転送先アドレス」を指定
する。例えば、EQUAL ZERO INTEGER演算
子はワード・ソース・オペランドとゼロが等しい
かどうかを比較し、そして1バイトである論理結
果を生ずる。最後に、「オーダ・スリー」演算子
はデータ参照を3つ必要とし、これらもまたオペ
ランド長の幾つかの組合せを指定する。大部分の
場合、3つの参照は演算子が処理すべき2つの転
送元オペランドと、オペランドの結果についての
1つの転送先アドレスを指定する。NOT
EQUAL SHORT INTEGER演算子は2つのダ
ブルバイト転送元オペランドが不一致かどうかを
比較し、そして1バイトである論理結果を生ず
る。 3.2.3 データ参照 各演算子が必要とするデータ参照は様々に供給
されて、融通性とメモリの使用効率が高められ
る。オペランドの論理アドレスの符号化した形
は、命令の参照フイールドに直接現われる。その
ような「明示データ参照」は、現在アクセス可能
な任意のデータ・セグメント内のオペランドにラ
ンダム・アクセスする。しかし、オペランドを現
在のオペランド・スタツクの一番上から読み取る
か、そこに結果を書き込む場合には、明示データ
参照は不要である。その代わり、「暗黙データ参
照」が使用される。各必要なデータ参照が明示的
に与えられるのか、暗黙的に与えられるかを指定
するために、「書式フイールド」がオーダ1、2
または3の演算子と共に必要とされる。 3.2.3.1 明示データ参照 符号化された暗黙データ参照は、所望のオペラ
ンドの全論理アドレスの両構成要素を決定するた
めに、プロセツサにとつて十分な情報を含まなけ
ればならない。論理アドレスのセグメント・セレ
クタ構成要素は、データ参照内で直接、またはデ
ータ・セグメント内のデータ値内で間接的に指定
することができる。変位構成要素は2つ以上の方
法でも指定することができる。データ参照内で直
接指定されるのに加えて、データ・セグメントか
らのデータ値とデータ基準内の情報の組合せから
でも決定することができる。これによつて、複雑
なデータ構造が効率的にアクセスされる。 書式は、1つの明示データ参照によつて参照さ
れるオペランドが命令の実行中に2つ以上の役割
を演ずることを可能とする情報を提供する。一例
として、メモリ内の整数の値を増大する命令を考
えてみる。この命令は演算子がオーダ・ツーであ
り、しかも2つのオペランドがいずれもメモリの
1ワードを占めることを指定する類フイールドを
含み、書式フイールドがこれに続き、この書式フ
イールドの値は1つの参照が転送元オペランドを
取り出すと共にその結果を記憶するために使用す
べき論理アドレスを指定することを指示する。増
加すべき整数への明示データ参照がそれに続き、
そして最後に、オーダ・ツー演算子
INCREMENT INTEGERのオペレータ・コー
ド・フイールドが続く。 3.2.3.2 暗黙データ参照 高レベル言語命令文 A=A+B*C を考慮する命令を指示することは書式フイールド
にとつて可能である。 この命令文の命令ストリーム・フラグメント
(断片)は2つの命令より成り、以下の形を有す
る。 A、BおよびCは整数オペランドと仮定する。
第1類のフイールド(上の図で右端のフイール
ド)は、演算子がオーダ・スリーを有し、しかも
3つの参照がすべてワード・オペランドを参照す
ることを指定する。最初の書式フイールドは、明
示データ参照が2つあり、しかもこれら2つの明
示参照は2つの転送元オペランドのみを供給する
はずであることを指定するコードを含む。掛け算
の結果がオペランド・スタツクに退避されること
になるように、転送先は暗黙的に参照される。第
2種のフイールドは第1種のフイールドと同じ
で、演算子がオーダ・ツリーを有し、しかも3つ
の参照すべてがワード・オペランドを参照するこ
とを指定する。第2の書式は、明示データ参照が
1つあり、しかもこの参照が第1の転送元オペラ
ンドと転送先の両方に使用されるものであること
を指定する。第2の転送元オペランドは暗黙的に
参照され、そして命令が実行されるとオペラン
ド・スタツクから取り出される。 3.3 オペランド・スタツクの挙動 オペランド・スタツクは、暗黙参照が命令内で
使用されるときは常に一様に処理される。演算子
が退避演算子の1つでなければ、転送元オペラン
ドを得るためにオペランド・スタツクを用いる
と、その値は呼び出される際にスタツクから取り
出される。退避演算子はオペランド・スタツクの
一番上の値を取り出すことなく、その値を読み取
る能力を与える。オペランド・スタツクが転送先
と指定されるときには常に、オペレーシヨンの結
果はスタツクに退避される。オペランド・スタツ
クがオーダ・スリー演算子の両方の演算子の転送
元として使用される場合には、命令内の書式フイ
ールドはスタツク上で2つの演算子が現われる順
序を指定する。 3.4 命令の逐次実行 通常プロセツサは、実行されているプロセスの
現在の命令セグメントから逐次取られる命令によ
つて制御される。命令は、プロセツサの内部で維
持される「命令ポインタ(IP)」から得られるビ
ツト変位を用いて、現在の命令セグメントから呼
び出される。その命令が実行された後、命令ポイ
ンタは次の逐次命令を指示するようその命令内の
ビツト数だけ増加される。 3.5 ブランチング この逐次的な「制御権の流れ」は、ブランチ演
算子の使用によつて変更することができる。ブラ
ンチ演算子には、無条件、条件付き、間接および
インタセグメントの4種類がある。これらの演算
子はブランチのターゲツトである命令の位置を突
き止める情報を必要とする。これは無条件ブラン
チ演算子と条件付きブランチ演算子に関してはブ
ランチ参照によつて、間接ブランチ演算子に関し
ては短序数値へのデータ参照によつて、そしてイ
ンタセグメント・ブランチ演算子に関しては短序
数値への2つのデータ参照によつて与えられる。 無条件ブランチ演算子を含む命令を実行する
と、次の命令はブランチ参照によつて指定される
ものとなる。条件付きブランチ演算子は、先に実
行された命令によつて発生される真・偽状態の値
(すなわち、論理値)によりブランチが取つたり
取られなかつたりするのを除いて、同じように振
舞う。条件付きブランチ演算子はすべてオーダ・
ワンである。この1番で必要なデータ参照はテス
トすべき論理値の位置を指定する。条件付きブラ
ンチ演算子は2つあり、状態が真ならばこれらの
うちの一方によつてブランチが生じ、状態が偽な
らば他方によつてブランチが生ずる。 2種類のブランチ参照は条件付きブランチ演算
子、無条件ブランチ演算子と共に使用される。こ
れら演算子は現在の命令セグメント内部でのみブ
ランチが取られるようにするので、これら参照は
論理アドレスのセグメント・セレクタ構成要素を
指定する必要がない。第1の種類の「相対ブラン
チ参照」は、ブランチ演算子を含む命令の初めに
関してビツト変位をターゲツト命令に送る10ビツ
トの符号付き整数値である。第2の種類の「絶対
ブランチ参照」は、現在の命令セグメントのベー
スに関してビツト変位をターゲツト命令に送る16
ビツトの符号なし整数である。この値はブランチ
を実行するために、命令ポインタの新しい値とし
て使用されるにすぎない。 BRANCH INDIRECT演算子は、任意のセグ
メントからの任意の16ビツトの値を命令ポインタ
に格納するメカニズムを提供する。演算子はオー
ダ・ワンであり、この1番で必要なデータ参照は
新しい命令ポインタとして使用すべき短序数値を
指定する。別の見方をすると、短序数値は現在の
命令セグメントのベースからターゲツト命令まで
のビツトの変位を与える。 BRANCH INTERSEGMENT演算子は、現
在の命令を変更すると共にそのセグメント内部の
ターゲツト命令に分岐する能力を与える。この演
算子はオーダ・ツーである。第1のデータ参照に
よつて参照される短序数値は新しい命令セグメン
トを指定し、第2のデータ基準によつて参照され
る短序数はそのセグメントの初めからターゲツト
命令までのビツト変位を生ずる。 4.0 システム・オブジエクト構造 システムは機能的階層内で定義される各種の計
算オブジエクトを表わすために、非原始的でハー
ドウエアで認識されるデータ構造を広く使用す
る。便利さと効率と論理的一貫性のために、これ
らのシステムのデータ構造は「一般化されたデー
タ処理」という見出しの下で説明する原始的な種
類のデータから作る。これによつて本システムの
アクセス機構の安全性と保護が阻害されることな
く、どんな一般化されたデータ処理装置によつて
もシステム・オブジエクトは作られ処理される。 システム・オブジエクトの認識と使用を支援す
る機能はまた、使用前にそれらの種類と構造を絶
えずチエツクする。いずれかの仕様からのずれが
プロセツサによつて検出されると、例外が認識さ
れる。そのような例外は、ソフトウエアに知らせ
なければならないが現在の命令の流れの継続実行
を阻止しない事象と、直ちにソフトウエアの注目
を必要とする事象のいずれかである。多数のその
ような例外は後述する。例外処理機構は「例外処
理」という見出しの下で詳細に説明する。 4.1 セグメント すべての種類のシステム・オブジエクトの論理
的基礎としてのセグメントの使用法は重要であ
る。それは、セグメントがすべてのアドレスの展
開とアクセス制御の基礎を成すからである。セグ
メントはまた、すべてのもつと大きくてもつと専
門的な計算オブジエクトのビルデイング・ブロツ
クとして働き、多重レベルまたは仮想メモリ能力
を実現する基礎である。通常、1個のセグメント
は1個のシステム・オブジエクトについて定義さ
れるデータ構造を含むのに十分である。しかし、
システム・オブジエクトが原始データと他のシス
テム・オブジエクトを合成したものである場合に
は、多数のセグメントが使用される。 4.1.1 セグメント・テーブルおよびセグメント
記述子 各セグメントは、セグメント・テーブル(例え
ば第2A図のセグメント・テーブル50)という
ある種のシステム・オブジエクト内に指定された
その物理的なベース・アドレス、長さおよびその
他の情報を有する。セグメント・テーブル・エン
トリ内の各エントリ(入力)は8バイトの長さで
あり、1個のセグメントを記述する。セグメン
ト・テーブル・エントリはセグメント記述子と呼
称され、以下の構造を有する。
よび利点は、添付図面に示した本発明の好適な実
施例の以下の詳細な説明から明らかとなるもので
ある。 第1図は本発明の各種の部品を示す機能的ブロ
ツク図である。 合わせて取つた第2Aおよび2B図は第1図に
示している主メモリ内のオブジエクト・アドレス
指定と保護を支持するシステム・オブジエクトの
ブロツク図である。 合わせて取つた第3Aおよび3B図は第1図に
示している個々のプロセス環境を構成しているシ
ステム・オブジエクトのブロツク図である。 合わせて取つた第4Aおよび4B図は第1図に
示しているプロセス間通信、プロセスのスケジユ
ーリングとデイスパツチングおよびプロセツサ間
通信を支持するシステム・オブジエクトのブロツ
ク図である。 第5図は本発明が具体化される種類のコンピユ
ータ・システムのブロツク回路図である。 第6図は第5図に示している処理装置の1つの
ブロツク回路図である。 第7図は第6図の命令装置のブロツク回路図で
ある。 第8図は第6図の実行装置のブロツク回路図で
ある。 第9図はクロツク・タイミング図である。 第10図は典型的な読み取りサイクルのタイミ
ング図である。 第11図は典型的な書き込みサイクルのタイミ
ング図である。 第12図は失敗したアクセスのタイミング図で
ある。 第13図はマイクロコードの照会のタイミング
図である。 第14図はセルフ・チエツクのタイミング図で
ある。 第15図は真、警報およびHERRINの各ライ
ンのタイミング図である。 合わせて取つた第16Aおよび16B図は入出
力操作を支持するシステム・オブジエクトのブロ
ツク図である。 目 次 明細書 発明の分野 従来技術の説明 発明の簡単な要約 図面の簡単な説明 目 次 発明の紹介 オブジエクト発生、アドレス指定およびタイピ
ング 個々のプロセス環境 コンテクスト間通信 プロセス間通信 デイスパツチ機構 プロセツサ間通信 プロセツサの種類 第1部 一般化されたデータ処理装置のアーキテ
クチヤ 1.0 総合システム 1.1 セグメンテツド・アドレス指定 1.2 セグメントの種類 1.3 オブジエクト 1.4 機能的階層 1.5 通信 1.6 データの種類、演算子および命令 2.0 情報構造 2.1 メモリ 2.1.1 論理アドレス指定 2.1.2 物理アドレス指定 2.2 データ書式 2.3 データ表示 2.4 データの位置決め 2.5 データの保全 2.6 オペランド・スタツク 2.7 命令セグメント 3.0 一般化されたデータ処理 3.1 計算データの種類 3.1.1 文字 3.1.2 短序数 3.1.3 短整数 3.1.4 序数 3.1.5 整数 3.1.6 短実数 3.1.7 実数 3.1.8 一時実数 3.2 命令構成 3.2.1 引用の種類 3.2.2 演算子 3.2.3 データ引用 3.2.3.1 明示データ引用 3.2.3.2 暗黙データ引用 3.3 オペランド・スタツクの挙動 3.4 命令の逐次実行 3.5 ブランチング 4.0 システム・オブジエクト構造 4.1 セグメント 4.1.1 セグメント・テーブルとセグメント
記述子 4.1.2 システムの種類とその符号化 4.1.3 セグメント・テーブル・ダイレクト
リとセグメント・テーブル 4.1.4 一時セグメント・テーブル・ダイレ
クトリ 4.2 アクセス・リスト 4.2.1 アクセス記述子とアクセス経路 4.2.1.1 アクセス・ライト 4.2.1.2 記述子制御 4.2.2 アクセス・リスト・アクセス・ライ
ト 4.2.3 ヌル・アクセス記述子 4.3 データ・セグメント 4.3.1 データ・セグメント・アクセス・ラ
イト 4.3.2 セグメント・テーブル・セグメント 4.4 ドメイン 4.4.1 共用アクセス・リストと私用アクセ
ス・リスト 4.5 オペレーシヨンとコンテクスト 4.5.1 コンテクスト・オブジエクト 4.5.1.1 命令セグメント 4.5.1.2 コンテクスト・コントロールセグ
メント 4.5.1.3 オペランド・スタツク 4.5.1.4 エントリ・アクセス・リスト 4.6 コルーチン 4.6.1 バツフアなし通信ポート 4.7 プロセス 4.7.1 プロセス・オブジエクト 4.7.1.1 プロセス・コントロール・セグメ
ント 4.7.1.2 現在サービスとバツフア付きポー
ト 4.7.1.3 セグメント・テーブルとストレー
ジ・リソース 4.7.1.4 トレース、通知およびフオール
ト・バツフア付きポート 4.7.1.5 フオールト・アクセス記述子 4.7.2 バツフア付き通信ポート 4.7.2.1 バツフア付きポート・コントロー
ル・セグメント 4.7.2.2 サービス・ポート 4.8 プロセツサ 4.8.1 プロセツサ・オブジエクト 4.8.1.1 プロセツサ・セルフ・キユーイン
グ 4.8.1.2 プロセツサ・コントロール・セグ
メント 4.8.1.3 グローバル通信セグメント 4.8.1.4 現在プロセス・オブジエクト 4.8.1.5 現在セグメント・テーブル・デイ
レクトリ 4.8.1.6 警報デイスパツチ・ポート 4.8.1.7 診断デイスパツチ・ポート 4.8.1.8 フオールト・アクセス記述子とフ
オールト・プロセス・オブジエクト 4.8.2 デイスパツチ・ポート 4.8.2.1 デイスパツチ・ポート・コントロ
ール・セグメント 4.8.2.2 リクエストとサービス行列 4.8.2.3 デツドライン 4.8.2.4 プリエンプシヨン・ポート 4.9 ストレージ 4.9.1 フリー・セグメント記述子リスト 4.9.2 ストレージ・リソース・コントロー
ル・セグメント 4.10 トランス 4.11 ラベル 4.11.1 経路レベル記述子 4.11.2 ラベル・リンケージ 4.11.3 ラベル・オブジエクト 4.12 プロセツサ・レジスタ 5.0 アクセス環境操作と通信 5.1 アクセス環境操作機構 5.1.1 一般的なアクセス記述子の運動 5.1.2 複雑なオブジエクトの操作 5.1.3 種類、ライトの応用、操作 5.1.4 アクセス経路ラベリングと横断 5.1.5 ダイナミツク・セグメントと経路レ
ベル発生 5.1.6 アクセス経路検査 5.1.7 オブジエクト・インターロツク 5.2 通信機構 5.2.1 命令相互間の通信 5.2.2 コンテクスト相互間の通信 5.2.2.1 ドメイン内コンテクスト発生 5.2.2.2 ドメイン間コンテクスト発生 5.2.2.3 パラメータと結果伝送 5.2.2.4 コンテクスト参照 5.2.2.5 コンテクスト戻り 5.2.3 コルーチン相互間の通信 5.2.3.1 コルーチン・パラメータ伝送 5.2.3.2 コルーチン・再開/中断 5.2.4 プロセス相互間の通信 5.2.4.1 プロセス・パラメータ伝送 5.2.4.2 プロセス再開/中断 5.2.4.3 バツフア付き通信ポートとデイス
パツチ・ポート 5.2.5 プロセツサ相互間の通信 5.2.5.1 プロセツサ間通信プロトコル 5.2.5.2 プロセツサ制御機能 5.3 例外処理 5.3.1 通告 5.3.2 フオールト機構データ構造 5.3.3 コンテクスト・レベル・フオールト 5.3.3.1オブジエクト・アクセス・フオール
ト 5.3.3.2 変位フオールト 5.3.3.3 記述子コントロール・フオールト 5.3.3.4 計算フオールト 5.3.3.5 ソフトウエア・コンテクスト・フ
オールト 5.3.4 プロセス・レベル・フオールト 5.3.4.1 引用妥当性フオールト 5.3.4.2 再始動可能中断動作フオールト 5.3.4.3 コンテクスト・フオールト故障フオ
ールト 5.3.4.4 再始動不能フオールト 5.3.5 プロセツサ・レベル・フオールト 5.3.5.1 プロセス・レベル・フオールト故
障フオールト 5.3.5.2 プロセスのフオールト 5.3.5.3 矯正不能なハードウエアの故障 5.3.6 一貫性停止 5.4 デバツギング・サポート 5.5 初期設定とソフトウエア制御リセツト 5.6 警報処理 6.0 浮動点計算 6.1 浮動点モデル 6.2 まるめモード 6.3 精密制御 6.4 浮動点の例外 6.4.1 無効オペランド 6.4.2 オーバフロー 6.4.3 アンダフロー 6.6.4 ゼロによる割算 6.6.5 ドメイン・エラー 6.5 浮動点剰余計算 7.0 一般化されたデータ・プロセツサ命令 7.1 クラス・フイールド 7.2 書式フイールド 7.3 レフアレンス・フイールド 7.3.1 データ参照 7.3.1.1 セグメント・セレクタ成分 7.3.1.2 変位成分 7.3.1.3 スカラー・データ参照 7.3.1.4 静的ベクトル成分データ参照 7.3.1.5 レコード項目データ参照 7.3.1.6 動的ベクトル成分データ参照 7.3.2 ブランチ参照 7.4 オペレーシヨン・コード・フイールド 7.5 命令通訳 7.5.1 物理的アドレス発生 7.5.1.1 セグメント・セレクタ・サーチ 7.5.1.2 アクセス記述子修飾 7.5.1.3 ダイレクトリ・インデツクス・サ
ーチ 7.5.1.4 セグメント・ダイレクトリ・レジ
スタ・リロード 7.5.1.5 セグメント・テーブル記述子修飾 7.5.1.6 セグメント記述子レジスタ・リロ
ード 7.5.1.7 セグメント記述子修飾 7.5.1.8 アクセス・ライト修飾 7.5.1.9 変位修飾 7.5.1.10 変更ビツト更新 7.5.2 スタツク・インタラクシヨン 7.5.3 実行 8.0 一般化されたデータ処理装置演算子セツト 8.1 文字演算子 8.1.1 文字移動演算子 8.1.2 文字論理演算子 8.1.3 文字算術演算子 8.1.4 文字関係演算子 8.1.5 文字変換演算子 8.2 短序数演算子 8.2.1 短序数移動演算子 8.2.2 短序数論理演算子 8.2.3 短序数算術演算子 8.2.4 短序数関係演算子 8.2.5 短序数変換演算子 8.3 短整数演算子 8.3.1 短整数移動演算子 8.3.2 短整数算術演算子 8.3.3 短整数関係演算子 8.3.4 短整数変換演算子 8.4 序数演算子 8.4.1 序数移動演算子 8.4.2 序数論理演算子 8.4.3 序数算術演算子 8.4.4 序数関係演算子 8.4.5 序数変換演算子 8.5 整数演算子 8.5.1 整数移動演算子 8.5.2 整数算術演算子 8.5.3 整数関係演算子 8.5.4 整数変換演算子 8.6 短実数演算子 8.6.1 短実数移動演算子 8.6.2 短実数算術演算子 8.6.3 短実数関係演算子 8.6.4 短実数変換演算子 8.7 実数演算子 8.7.1 実数移動演算子 8.7.2 実数算術演算子 8.7.3 実数関係演算子 8.7.4 実数変換演算子 8.8 一時実数演算子 8.8.1 一時実数移動演算子 8.8.2 一時実数算術演算子 8.8.3 一時実数関係演算子 8.8.4 一時実数変換演算子 8.9 アクセス環境操作演算子 8.9.1 アクセス記述子移動演算子 8.9.2 種類・ライト操作演算子 8.9.3 ラベル操作演算子 8.9.4 セグメント創造演算子 8.9.5 アクセス経路検査演算子 8.9.6 オブジエクト・インターロツキング 8.10 ブランチ演算子 8.10.1 セグメント内ブランチ演算子 8.10.2 セグメント間ブランチ演算子 8.11 通信演算子 8.11.1 コンテクスト通信演算子 8.11.2 コルーチン通信演算子 8.11.3 プロセス通信演算子 8.11.4 プロセツサ通信演算子 第2部 一般化されたデータ処理装置とシステム
相互接続 9.0 命令ユニツト 9.1 一般動作 9.2 チツプ間バス 9.3 マイクロ命令バス 9.4 帯域フイルタ・ライン 9.5 真・実施ライン 9.6 プロセツサ間通信 9.7 命令ユニツト診断特徴 9.8 初期設定と誤り状態 10.0 実行ユニツト 10.1 一般動作 10.2 クロツク・ラインと特殊ライン 10.3 アドレス/コントロール・データ・ライ
ン 10.4 機能の説明 10.4.1 データ操作ユニツト(DMU) 10.4.2 コントロール・ユニツト(CU) 10.4.3 参照発生ユニツト(RGU) 10.4.4 小回路ブロツク 11.0 命令ユニツト/実行ユニツト・マイクロ命
令セツト 11.1 メモリとオペラント・スタツク・アクセ
ス・マイクロ命令 11.2 アドレス展開マイクロ命令 11.3 データ操作マイクロ命令 11.4 浮動点マイクロ命令 11.5 通信マイクロ命令 11.5.1 IP操作マイクロ命令 11.5.2 セグメント操作マイクロ命令 11.5.3 タイマ制御マイクロ命令 11.5.4 キヤツシユ・マネージメント・マイ
クロ命令 11.6 制御マイクロ命令 11.6.1 命令ユニツト制御マイクロ命令 11.6.2 命令ユニツト/実行ユニツト制御マ
イクロ命令 11.6.3 実行ユニツト制御マイクロ命令 12.0 命令ユニツト/実行ユニツト動作の要約 12.1 3段階パイプライン 12.2 第1段:命令復号器(ID) 12.3 第2段:マイクロ命令シーケンサ
(MIS) 12.4 第3段:マイクロ命令実行ユニツト
(MEU) 12.5 典型的なプロセツサ動作 第3部 入力/出力アーキテクチヤ 13.0 総合I/Oシステム 13.1 基本的構造と機能 13.2 ソフトウエアの観点から 13.3 データ転送 13.3.1 セツトアツプ 13.3.2 転送 13.3.2.1 同期 13.3.2.2 終了 13.3.3 クリーンアツプ 13.4 データ転送以外に 13.5 構造概説 13.6 支持されたインターフエース 14.0 情報構造 14.1 メモリ 14.1.1 論理アドレス指定 14.1.2 物理アドレス指定 14.2 オペランド書式 14.3 オペランド表示 14.4 オペランド位置決め 14.5 オペランドの保全 14.6 オペランド・スタツク 14.7 命令セグメント 14.8 周辺インタフエース・アドレス指定 15.0 入力/出力処理 15.1 計算データの種類 15.1.1 文字 15.1.2 短序数 15.1.3 短整数 15.2 環境操作 15.3 命令構成 15.3.1 参照の種類 15.3.2 演算子 15.3.3 データ参照 15.3.3.1 明示データ参照 15.3.3.2 スタツク参照 15.3.4 アクセス記述子参照 15.4 オペランド・スタツクの挙動 15.5 命令の逐次実行 15.6 ブランチング 16.0 入力/出力オブジエクト構造 16.1 セグメント 16.1.1 入力/出力セグメントとセグメント
記述子 16.1.2 周辺オブジエクト 16.1.2.1 周辺コントロール・セグメント 16.2 動作とコンテクスト 16.3 コルーチン 16.4 プロセス 16.4.1 現在事象ポート 16.4.2 事象ポート 16.4.2.1 事象ポート・コントロール・セ
グメント 16.4.2.2 サービス・ポート 16.5 プロセツサ 16.5.1 プロセツサ・オブジエクト 16.5.1.1 プロセツサ間メツセージ 16.5.1.2 インターフエース要求 16.5.1.3 事象リスト 16.5.1.4 事象制御オブジエクト 16.5.1.5 転送制御オブジエクト 16.5.1.6 帯域幅制御オブジエクト 16.6 ストレージ・リソース、トランスおよび
ラベル 16.7 プロセツサ・レジスタ 17.0 入力/出力機能 17.1 アドレス・スペース操作 17.2 周辺からプロセスへの通信 17.2.1 転送コントローラの要求受け入れ 17.2.2 事象コントローラの要求受け入れ 17.3 データ転送 17.3.1 ブロツク転送演算子 17.3.1.1 ブロツク・データ転送 17.3.2 ブロツク・データ通訳 17.3.3 アクセス記述子転送 17.3.3.1 ブロツクアクセス記述子転送 17.3.4 転送アルゴリズム 17.4 プロセス相互間通信 17.5 プロセツサ相互間通信 17.6 低レベル初期設定 18.0 入力/出力プロセツサ命令 18.1 オペレーシヨン・コード・フイールド 18.2 参照フイールド 18.2.1 データ参照 18.2.1.1 明示データ参照 18.2.1.2 スタツク参照 18.2.1.3 即値データ 18.2.1.4 即値 18.2.2 アクセス記述子参照 18.2.3 ブランチ参照 18.3 命令通訳 18.4 物理アドレス発生 18.4.1 実行 19.0 入力/出力プロセツサ演算子セツト 19.1 文字演算子 19.1.1 文字運動演算子 19.1.2 文字論理演算子 19.1.3 文字算術演算子 19.1.4 文字関係演算子 19.1.5 文字変換演算子 19.2 短序数演算子 19.2.1 短序数運動演算子 19.2.2 短序数論理演算子 19.2.3 短序数算術演算子 19.2.4 短序数関係演算子 19.2.5 短序数変換演算子 19.3 短整数演算子 19.3.1 短整数運動演算子 19.3.2 短整数算術演算子 19.3.3 短整数関係演算子 19.4 アクセス環境操作演算子 19.4.1 アクセス記述子運動演算子 19.4.2 種類・ライト操作演算子 19.4.3 ラベル操作演算子 19.4.4 セグメント発生演算子 19.4.5 アクセス経路検査演算子 19.4.6 オブジエクト・インタロツキング演
算子 19.5 ブランチ演算子 19.5.1 セグメント内ブランチ演算子 19.5.2 セグメント間ブランチ演算子 19.6 通信演算子 19.6.1 コンテクスト通信演算子 19.6.2 コルーチン通信演算子 19.6.3 プロセス通信演算子 19.6.4 プロセツサ通信演算子 19.7 ブロツク転送演算子 発明の紹介 次に第1図を参図すると、以下の紹介は本発明
を具体化したシステムの各種の部品を広く説明す
ると共に、以下の説明を通じて使用する用語の一
部を紹介するものである。第1図はシステム内の
各種の作用体と、これら作用体が利用するメカニ
ズムを示している。この図の矢印は以下のことを
指示している。作用体は矢印の出所に配置され、
作用体が利用しているメカニズムは矢印の目標地
に配置されている。2種類の作用体、すなわち、
特定の状態にあるプロセスとこのプロセスを実行
しているプロセツサが示されている。 オブジエクト発生、アドレス指定およびタイピン
グ システム内の全情報は、オブジエクトという、
ハードウエアで認識されメモリにある情報構造に
よつて表わされる。オブジエクトにはデータ・セ
グメントとアクセス・リストの2種類が基本的に
ある。アクセス・リストはオブジエクトへのアク
セスを制御し、データ・セグメントはデータのス
カラー値を得るために使用される。 本システムは、オブジエクトの発生を動的に支
持するための、ハードウエアのオブジエクト発生
機構10を有する。この機構は、現在割り当てら
れていない物理メモリの各種の領域を記述する、
ストレージ・リソース・オブジエクトという特定
の種類のオブジエクトに基づく。ハードウエアで
支持されたアルゴリズムの特定の1組を利用する
ことによつて、この機構は要求に応じて基本的な
2種類のオブジエクトの一方のデータ・セグメン
トの割り当てを実行する。ひとたび1組のオブジ
エクトが発生すると、所定のプロセツサを動かし
ている所定のプロセスがこれらオブジエクトへの
参照を発生する。これら参照は、オブジエクト・
アドレス指定、保護、タイピング機構12という
機構によつて主メモリの物理アドレスとなるよう
にマツピングされる。この機構は、あるオブジエ
クトへのどのひとつの参照もそのオブジエクトの
物理アドレスに変換されることを可能とする手段
である。このオブジエクト・アドレス指定機構
は、いわゆるオブジエクトへのアクセス経路、と
いうものを利用する。例えば簡単な例では、アク
セス経路は3つのレベルより成る。アドレスの展
開で利用される最初のレベルはアクセス記述子と
いい、これはアクセス・リストという種類のオブ
ジエクトの内部に含まれる。アクセス記述子は、
アクセス経路のベースでオブジエクトに対してア
クセス記述子の利用者が有している種類のアクセ
スを記述する。アクセス記述子は、これを保持し
ているものがそのオブジエクトに関して有してい
るアクセスの様々な種類を決定する(オブジエク
トの種類によつて)読み取りライトや書き取りラ
イトのようなライト(権利)の種類を記述する。 参照が発生されてアドレスが展開されている、
オブジエクトへの経路を1段下がつた次のレベル
にはセグメント記述子がある。本システムは2レ
ベル・セグメントテツド・アドレス指定スペース
を利用する。すなわち、セグメント・テーブルの
レベルは2つある。最も高いレベルのセグメン
ト・テーブルはセグメント・テーブル・ダイレク
トリという。この内部にはセグメント・テーブル
のセグメント記述子がある。アクセス記述子は、
アドレス展開で使用するセグメント記述子を選択
するのに使用する2つの要素を含む。第1の参照
は、最後のセグメント記述子があるはずのセグメ
ント・テーブルをセグメント・テーブル・ダイレ
クトリから選択する。第2の参照は、問題のセグ
メントのセグメント記述子をそのセグメント・テ
ーブルから選択する。 アドレスを開展中のオブジエクトのセグメント
記述子は、そのオブジエクトを物理メモリ内で突
き止める情報を含み、その長さを与え、オブジエ
クトに関する各種のタイピング情報を与え、各種
のメモリ・マネージメント情報(例えば、このオ
ブジエクトへのアクセス経路の数の計数値、セグ
メントが変更または参照されたかについての情報
など)を含む。 個々のプロセス環境 各種のプロセス環境14と16は第1図に示さ
れている。現在のプロセス・アクセス環境18,
20は図面の正面に示され、過去のヒストリー2
2,24(現在招来されていないプロセス環境)
は図面の背後に向かつて示されている。これらプ
ロセス環境の瞬間状態は現在プロセス・イメージ
26,28として示されている。前述のように、
プロセツサに働いているプロセスは参照を発生
し、一方、プロセツサはオブジエクト・アドレス
指定・保護・タイピング機構を利用して物理アド
レスに変換する。コンテクスト・オブジエクト
は、動作の特定例を実行することができるプロセ
ス環境を表わす。ある期間中、潜在的なまたは並
行なアクテイビテイの箇所であるプロセスは、そ
の実行中に各コンテクストの間を動く。 本システムのコンテクスト・オブジエクトには
4つの構成要素があり、これらはアクセス記述子
を含む4つのアクセス・リストである。この環境
でのアクセス記述子の総計が与えられると、アク
セス記述子が存在している各種のオブジエクトに
対してその環境がどのような種類のアクセスをす
るかを正確に言うことができる。 コンテクスト間通信 コンテクストの各1つづつは最低限、その環境
での動作がアクセスすることができるオブジエク
トのすべてについてのアクセス記述子を含まなけ
ればならない。モジユラ・プログラミングを支持
するためにある動作は、ある期間を通じて別の動
作を呼び出す必要がある。第2の動作は第1の動
作と同じ環境で働くとは限らないので、ある環境
(そしてそこでの動作)から別の環境の動作に制
御権を渡すための機構が利用される。この機構は
コンテクスト間通信機構(第1図で30,32)
という。コンテクスト間通信には2種類あり、一
方の種類は制御遷移の下向き呼び出し/上向きリ
ターンまたは呼び出し/リターンの各種類を支持
する。第2の種類は非階層通信またはコルーチン
通信という。この種の通信は、呼び出し/リター
ン機構によつて支持されるコンテクストの間の階
層的なまたは非同期的な種類の通信を支持すると
共に、コルーチンの間に起る同期制御権流れパタ
ーンを支持する。コンテクストというプログラム
環境は本来保持性である。すなわちコンテクスト
は、制御権の流れの直前またはそれの一部がはい
るときに必ずしも作られず、制御権の直後にまた
はその一部が出るときに必ずしも破壊されない。
コンテクストの寿命は、コンテクストを利用した
り横断したりする単なる制御権の流れのパターン
よりも長い。 コンテクストは静的な構成要素と動的な構成要
素を有する。どのコンテクストの静的な構成要素
はドメインという2成分オブジエクトより成る。
ドメインとは、そのコンテクストの内部で実行す
べき動作の定義範囲を指す。ドメインの2成分は
共用アクセス・リストと私用アクセス・リストよ
り成る。この区分によつてドメインは、一部の近
代的なプログラム言語で必要な種類のセマンテイ
ツクス(意味)を支持することができる。そのよ
うな場合、一定の所期の種類の公用動作のすべて
は公用アクセス・リストを通して利用され、その
種類の隠されたデータまたは動作は私用アクセ
ス・リストによつて利用できるようにされる。 どのコンテクストの動的構成要素もコンテクス
ト・アクセス・リストという。このコンテクス
ト・アクセス・リストはそれぞれの場合に特有な
アクセス記述子作業域となる。一定の定義範囲内
に定義された特定の動作の一例が動的なアクセス
記述子操作を行なうはこの作業域の内部において
である。 一定のコンテクストによつて動的に選択可能な
別の構成要素は、いわゆるエントリ・アクセス・
リストである。一定のコンテクストが適当な権利
を有するどのアクセス・リストでも、エントリ・
アクセス・リストによつて選択可能であつて現在
のアクセス環境の一部にされる。 プロセス間通信 2つのプロセスは互いに連路する必要がある
が、1つまたはそれ以上のプロセツサで非同期式
に計画され、従つて実行される。2つのプロセツ
サの間の時間差が調整できるよう、プロセス間通
信機構34という緩衝機構が利用される。プロセ
ス間通信は、バツフア付き通信ポートという、ハ
ードウエアが認識できるオブジエクトによつて支
持される。バツフア付き通信ポートは、どの1つ
のプロセスが別のプロセスに送信したいかという
メツセージが待機され、メツセージを受け取ろう
と待機しているプロセスも待機されるキユーイン
グ機構である。キユーイング能力を備えたこれら
のポートはこのように、2つのプロセスの非同期
挙動を取り除くのに必要な緩衝を行なう。 デイスパツチ機構 ひとたび待機中のプロセスがバツフア付きポー
トでメツセージを受け取ると、プロセスは多数の
利用できるプロセツサ38,40の1つで実行す
る準備ができる。デイスパツチ機構36はプロセ
スをプロセツサに計画する一手段となる。このデ
イスパツチ機構は、すでに設定してあるソフトウ
エアのパラメータに従つて実行準備完了のプロセ
スのスケジユーリングとデイスパツチングを自動
的に行なうハードウエア機構である。このように
してデイスパツチ機構は、システム内の全プロセ
スですでに指定してあるソフトウエアのスケジユ
ーリング方針または低レベル・スケジユーリング
方針を実施する。どのくらい長くプロセスがプロ
セツサで実行されるできかについての制御がなく
て単にそのプロセスをプロセツサに割り当てるだ
けならば、そのプロセスはそのプロセツサで最後
まで実行される。プロセスが決つして終了しない
ものならば、プロセツサはそのプロセスに恒久的
に割り当てられよう。デイスパツチ機構は、プロ
セツサに関する時間を通じてどのようにプロセス
を多重化するかをソフトウエアで指定するために
利用される。デイスパツチ機構はプリエンプテイ
ブな(先制的な)形態のスケジユーリング方針を
支持しないが、いわゆる相対周波数スケジユーリ
ング方針の一群を支持する。プロセスがデイスパ
ツチ・ポートで待機されているとき、すべてのプ
ロセスに2つの値が利用される。第1の値は最大
許容遅延であり、第2の値は最大許容可能サービ
ス期間である。これらの2つの値を用いて、相対
周波数に基づくある範囲のソフトウエア・スケジ
ユーリング方針は、ラウンド・ロビンから純相対
周波数まで実現される。 プロセツサがデイスパツチ・ポート内のリクエ
スト行列からまたはプロセス行列からプロセスを
取り除くとき、このプロセスがプロセツサに拘束
されることをどのくらい長いソフトウエアが希望
するかをプロセツサが告げることができるよう
に、サービス期間情報が利用される。これによつ
て、プロセツサを永久に結び付ける無拘束プロセ
スがないことが保証される。サービス期間が終了
した後、プロセスとプロセツサの間の結合は解消
され、デイスパツチ機構は他のプロセスをプロセ
ツサに割り当てる。 プロセツサ間通信 すでに述べたように、バツフア付きポート機構
はメツセージをプロセスに結び付けるために利用
され、デイスパツチ機構はプロセスを利用できる
プロセツサで計画を立てるために利用される。メ
ツセージ・プロセスの対を有するプロセツサは適
当なデイスパツチ・ポートを調べる。プロセツサ
がそのポートで待機していないと、メツセージ・
プロセスの対がそのポートで並んで利用できるプ
ロセツサを待機する。デイスパツチ・ポートで並
んでサービス・リクエスト(メツセージ・プロセ
スの対)の到着を待機しているプロセツサがある
と、そのメツセージを送つたプロセツサはサービ
ス・リクエストを待機中のプロセツサに送ること
ができる。プロセツサ間通信機構42によつて、
要求を出しているプロセツサは、結び付けられた
プロセスの実行を開始することができる待機中の
プロセツサに交信する。 プロセツサ間通信機構はまた、あるプロセツサ
で実行中のソフトウエアに対して、別のプロセツ
サが初期設定シーケンス、警報シーケンスまたは
リセツト・シーケンスの作業のような一部の診断
機能を実行することを求めるように使用される。
これによつてシステムの動作中にシステム内部の
プロセツサのデバツギングが可能となる。 プロセツサ間通信機構の別の使用方法は、特定
のプロセツサと交信するか、このシステム内の全
プロセツサに同報通信して、アドレス展開機構に
ついてプロセツサに保持されていた一部の情報を
再修飾すべきであることを各プロセツサに通告す
ることである。 プロセツサ間通信機構はまた、プロセツサの機
能を停止させたことによつて誤動作したプロセツ
サからの回復を支援するために使用される。この
機構はまた、プロセツサをシステムに動的に挿入
したり取り出したりすることができるように再構
成を支援する。 プロセツサ間通信機構は以下のように構成され
ている。各プロセツサは共通のメモリに記憶され
たローカル通信セグメントに関連している。ロー
カル通信セグメントはプロセツサに特有の通信の
ためのものである。別のセグメントであるグロー
バル通信セグメントは、すべてのプロセツサに共
通であり、システムに広く使用される通信用であ
る。 各通信セグメントは制御標識を含むフイールド
を有する。制御標識はあるプロセツサによつて設
定され、後に別のプロセツサによつて検査され
る。この検査を行なうプロセツサは、制御標識の
状態によつて指定された多数の機能を実行するよ
うに命令される。アクセスを通信機構に連係させ
るために、すべての通信セグメントにはカウン
ト・フイールドとロツク・フイールドがある。 プロセツサの種類 多くの種類のプロセツサが本システムによつて
供給される。2種類のプロセツサ、つまり、『一
般化されたデータ・プロセツサ(GDP)』と
『I/O・プロセツサ(IOP)』を詳細に説明す
る。GDPはアドレス空間内で働き、その空間内
にあるオブジエクトを参照できるだけである。
IOPは2つの異なる空間でオブジエクトを参照す
ることができ、これら2つのアドレス空間の境界
で働く。第1のアドレス空間は、GDPが使用す
るアドレス空間と同一である。どの特定のIOPで
も使用する他のアドレス空間はIOアドレス空間
といい、GDPアドレス空間とは別のGDPアドレ
ス空間を横断しない。すなわち、アドレス空間は
共通のアドレスを共有しない。 GDPの主要な目的は、この種のプロセツサに
よつて支援される広範囲の種類のデータについて
一般化された計算を実行することである。IOPの
機能は支援されるデータの種類の数に関しては、
それより制限される。IOPの主要な目的は、これ
がアクセスして参照することができる2つのアド
レス空間の間にデータを転送することである。一
例は、I/Oアドレス空間に存在する入力装置か
ら、GDPアドレス空間に存在するデータ・セグ
メントにデータを転送することであろう。逆にデ
ータは、GDPアドレス空間内のデータ・セグメ
ントから、I/Oアドレス空間内に存在する出力
装置に転送される。 IOPはGDPと同じように、記述子制御されセ
グメントに基づくアドレス展開機構を使用する。
I/O操作はまた、GDPに利用されるものと同
じコンテクストに基づく環境内で実行される。
IOPは同じプロセス間通信機構を利用し、IOPは
前述したのと同じデイスパツチ機構を介して処理
のため選択される。同様のプロセツサ間通信機構
が利用される。 IOPに関しては異なるアドレス指定機構を利用
しなければならない。それは、参照されているセ
グメントがI/Oアドレス空間またはGDPアド
レス空間であることを告げる何らかの方法がなけ
ればならないからである。特定の種類の装置を処
理するタイミング上の考慮のように、セグメント
の参照にも特別な考慮が払われる。 データ転送動作の性能を向上するために、IOP
には特殊なハードウエアが設けられる。これはデ
ータのブロツクの転送を可能とするものである。 IOPはGDPとは異なるデイスパツチ・ポート
からプロセスを割り当てる。これによつて、正し
い種類がGDPとIOPのいずれであるかを知るた
めに、特定のデイスパツチ・ポートで待機してい
るプロセツサを調べる必要はなくなる。機構を簡
単にするため、システム内のGDPは一方の種類
のデイスパツチ・ポートからプロセスを割り当て
る。他方、IOPは異なる種類のデイスパツチ・ポ
ートを利用し、そしてプロセスの全部が同一のポ
ートにアクセスするわけではない。これはIOPの
全部がすべてのI/O装置にアクセスするわけで
はないからである。従つて、I/Oプロセスが特
定の装置だけを処理するのならば、I/Oプロセ
スの全部を任意のIOPに関連づけることができる
わけではない。一般に、1組のIOPのうちで任意
の特定のI/Oアドレス空間にアクセスするもの
の数は少ない。例えば、1台の周辺装置に対して
IOPが1つであるほどその数が少ないかもしれな
い。一方、1個のI/Oアドレス空間として働く
1本のI/Oバスで幾つかのIOPが幾台かの周辺
装置を処理する場合もあり得る。この理由によ
り、I/OプロセスのためI/Oプロセツサのデ
イスパツチ・ポートへの組合せは次のとおりであ
る。1カ所のI/Oアドレス空間にアクセスする
すべてのIOPは(通常のデイスパツチ状態にある
とき)1カ所の入出力プロセス・デイスパツチ・
ポートからI/Oプロセスを割り当てる。 第1部 一般化されたデータ処理装置のアーキテ
クチヤ 1.0 総合システム 1.1 セグメンテツド・アドレス指定 次に第2Aおよび2B図を参照する。セグメン
ト44は本システムでのすべてのアドレス指定と
保護の基礎である。概念的には、セグメントはサ
イズや長さの定まつた1個のリニア・アドレス空
間にすぎない。実際にはセグメントは主メモリ内
に存在して開始アドレスつまりベース・アドレス
46に関連するであろう。セグメント内部のデー
タ項目の実際の物理アドレスを決めるためには、
変位48というセグメント内の項目の位置を、セ
グメントのベース・アドレス46に加えるだけで
よい。簡単であるが重要な形態の保護を実現する
ために、変位をチエツクしてからこの変位をベー
ス・アドレスに加えれば、アドレスがセグメント
の決つた長さを越えることは確実に防止される。 セグメンテツド・アドレス指定を利用する従来
のシステムでは、セグメントのベース・アドレス
をそのどんな変位からも分離しておいて、最後の
可能な瞬間まで物理アドレスの形成を遅らせる努
力がしばしばなされる。物理アドレスが必要なと
きは、望みの変位を前述のようにベース・アドレ
スに加えることによつて物理アドレスが形成され
る。 これらの手段を取れば、セグメントの移動はそ
のベース・アドレスの更新を必要とするだけでよ
いことが期待される。不幸なことにこれらのシス
テムでは、メモリ全体とプロセツサのレジスタ内
にベース・アドレス情報が分配されるのを阻止す
るために何らの手段も講じられなかつた。これ
は、セグメントを移動すると、そのベース・アド
レスの1つではなく恐らく何百というコピーを位
置決めし、変化を表わすために更新しなければな
らないことを意味する。プログラマー側で特別の
注意を払わなければ、この方法は適当な時間に信
頼できるように実行することは事実上不可能であ
る。 セグメントが動くたびに多数のベース・アドレ
スを見つけて更新する問題を回避するために本発
明は、セグメント・アドレスのマネージメントに
2つの基本的な改良を行なう。第1に本発明は、
セグメントについての全情報(例えばその現在の
ベース・アドレスと長さ)を集め、システム内の
他の全セグメントについての同じ情報と共にセグ
メント・テーブル50にその情報を置く。第2に
本発明は、セグメントへの全参照がこのテーブル
から必要なベース・アドレスと長さ情報を得るこ
とを要求する。任意のセグメントのベース・アド
レスを変更するか、そのサイズを決め直すには、
セグメント・テーブルへの入力、つまりセグメン
ト記述子52,54を変更するだけでよい。セグ
メントへのどのような参照でもセグメント記述子
がアクセスされ、正しい現在のベース・アドレス
46と長さ情報48が得られる。 しかしセグメント・アドレス情報の集中化は、
セグメントに基づくアドレス指定アーキテクチヤ
に関連する問題を完全には解決しない。例えば、
一定のプログラムにアクセス可能なセグメントの
数をある任意の小さな集合に制限することができ
ることが有益であることがしばしば生ずる。セグ
メント情報のすべてが集中化される場合には、ど
のプログラムでも必要・不必要にかかわらず、セ
グメント・テーブルを通して索引づけるだけでメ
モリ内のどのセグメントでも見つけてアドレス指
定することができる。セグメント・テーブルの集
中化はまた、索引づけに必要な索引のサイズに関
する問題を導くことがある。本システムでは、セ
グメント・テーブルは2百万以上のセグメントの
記述子を含むことができ、これはフル・アクセス
で21ビツトのセグメント・テーブルを意味する。
所望のセグメントを選択するのにすべてのオペラ
ンド・アドレスがそれほど多数のビツトを必要と
するならば、有用な変位サイズに加えて命令とプ
ログラムは途方もなく大きくなつてしまう。 前述の問題を取り除くため、本システムはセグ
メント・テーブルによつて提供される前述のアド
レス・マツピングの第2のレベルを提供する。独
立に通訳される各プログラム・ユニツトつまりモ
ジユールには実行時に、実行中にアクセスする必
要があるセグメントのすべてについてのセグメン
ト数のリスト(つまり、セグメント記述子の索
引)が提供される。プログラムは命令内の各オペ
ランドのアドレスの一部として、アクセス可能な
セグメントのリストつまりアクセス・リストに索
引を指定することによつて特定のセグメントを選
択する。ここで、索引はこの特定のプログラム・
モジユールにのみわかることに気をつける必要が
ある。それは、他のモジユールは自分自身のアク
セス・リストを有しているため、自分自身のロー
カル的に知られる索引を使用することができるか
らである。 モジユールのアクセス・リストにはいるものだ
けはアクセスする必要があるセグメント用である
ため、それらの間で選択する必要がある索引のサ
イズは一般に可能なセグメントの総数よりはるか
に小さい。これはローカル索引を小さく保つのに
役立ち、それによつて命令とプログラムのサイズ
を縮小するのが促進される。それと同時に、アク
セス・リストはプログラムにアクセス可能なセグ
メントの集合を、プログラムがその動作に必要と
する集合に正確に制限する。プログラムのアクセ
ス性を制限するこの能力は、変位が定義されたセ
グメントの限度内にあることを確認する能力と組
合わせると、本発明の保護システムの基礎を成
す。 1.2 セグメントの種類 セグメントはシステム内にあらゆる種類の有用
な情報を保持するのに使用される。例えば、セグ
メントは全情報をセグメント・テーブル50に保
持するのに使用される。さらに精密に述べると、
セグメントはメモリ内のセグメント・テーブルの
データ構造を表わすのに使用される。同様にして
セグメントはプログラム・モジユールのアクセ
ス・リストを表わすためにも使用される。セグメ
ントは実際に、データ、命令およびシステム内で
記憶表示を必要とするその他のすべてを保持する
のに使用される。 セグメントがそれほど多くの異なるものを表わ
すのに使用される場合には、どのような種類の情
報が特定のセグメントを表わすのかを正確に告げ
ることができることは、特に保護の観点から非常
に有益であり得る、ということが明白となる。例
えば、特定のセグメントがセグメント・テーブル
を表わしていることがわかつており、プログラム
が不注意に命令としてそのセグメント・テーブ
ル・データの実行が試みられたとすると、エラー
が検出され、損害が生ずる前にプログラムが中断
されることが可能である。 各種類をセグメントに割り当てるという有用性
を認識して、本システムは各セグメント記述子5
2,54にさらに情報を含む。この情報は、セグ
メントの種類の定義56が許容するものに対し
て、セグメントに行なつているアクセスの種類を
チエツクするために実行中にプロセツサによつて
使用される。種類の定義56は後述するように、
ベースの種類とシステムの種類の両情報を含む。
行なつているアクセスの種類と種類の定義の間に
不一致があればエラーが生ずる。 システム内のセグメントには2つの基本的な種
類がある。第1の種類はデータ・セグメントとい
い、アレイ、リスト、行列のようにプログラマー
が定義するのに選択するかもしれないデータ構造
のほとんどあらゆる種類を表わすのに使用され
る。第1の種類はまた、セグメント・テーブルの
ようにハードウエアで認識される幾つかの重要な
データ構造を表わすのに使用される。データ・セ
グメントが単にデータ・セグメントとして使用さ
れると、そのセグメント記述子内のベース種類情
報46はそれが単にデータ・セグメントとして使
用されていることも指示する。セグメントがハー
ドウエアによつて認識され使用されるデータ構造
を表わすのに使用されていると、そのベース種類
情報はやはりそれがデータ・セグメントであるこ
とを指示するが、セグメント記述子内のベース種
類の隣りに配置されたシステム種類情報47はセ
グメントが特殊な機能に使用されていることを指
示する。この2レベル・タイピング(分類)の例
には、命令を保持するのに使用するデータ・セグ
メント(すなわち、ベース種類データ・セグメン
ト、システム種類命令セグメント)および算術式
評価中に先入れ後出しスタツクとして使用するデ
ータ・セグメント(すなわち、ベース種類デー
タ・セグメント、システム種類オペランド・スタ
ツク)が含まれる。 システム内のセグメントの第2の基本的な種類
はアクセス・リスト(AL)である。前述のよう
に、アクセス・リストは所定のプログラム・モジ
ユールにアクセス可能なセグメントのすべてにつ
いての索引を含む。これらの索引はどのようなプ
ログラムによつても隅発的にも悪意に基づいても
操作されないことを保証するため、アクセス・リ
ストはデータ・セグメントとして絶対的にアクセ
ス不可能である。ハードウエアはデータとしてア
クセス・リストに含まれない情報には単純に作用
しない。アクセス・リストの絶対的な保全性を確
保する能力は、本発明の保護システムにおける別
の基本的な概念である。 アクセス・リストはまたデータ・セグメントの
ように、プログラマーが定義する情報構造とハー
ドウエアが認識する情報構造の両方を表わすため
にも使用することができる。しかしアクセス・リ
ストはデータ・セグメントとは異なり、原始デー
タの構造(例えば、整数アレイ、文字ストリング
など)を表わすことができない。その代わりにア
クセス・リストが表わす情報構造は幾つかのセグ
メント全体の集合である。アクセス・リストによ
つて参照されるセグメントは他のアクセス・リス
トまたはデータ・セグメントであり得るので、こ
のセグメントは任意に複雑なセグメントに基づく
情報構造を作るのに使用することができる。アク
セス・リストがソフトウエアで通訳されるマルチ
セグメント情報構造を表わすのに使用されると、
セグメント記述子内のベース種類情報はそのセグ
メントがアクセス・リストであつて他の特殊な機
能を有しないことを指示する。アクセス・リスト
がハードウエア認識フアンクシヨンでマルチセグ
メント構造を表わすのに使用されると、そのフア
ンクシヨンはセグメント記述子内のシステム種類
情報によつて指示される。第2A,2B,3A,
3B,4Aおよび4B図に関連した以下の説明は
様々なこれらハードウエア認識マルチセグメント
構造を紹介すると共に、システム・アーキテクチ
ヤに対するそれらの重要性を述べるものである。
これらの図に示している各システム・オブジエク
トはベース種類=AL(アクセス・リスト)または
ベース種類=データ(データ・セグメント)とい
うようにそのベースの種類に関して表記されてい
る。システム・オブジエクトは「システム・オブ
ジエクト構造」という見出しのもとでさらに詳細
に説明する。 1.3 オブジエクト アクセス・リストとデータ・セグメントから作
ることができる非常に様々な情報構造では、各構
造を詳細に知ることはすぐに困難となる。概念的
な理解を容易とするため、構造の各種類を1個の
不規則実体、すなわちいわゆるオブジエクトと呼
称されるもの、としてみることはさらに容易とな
る。ひとたびこの見方を取ると、システム内に使
用されている多くのセグメントに基づく情報構造
の見掛け上の複雑さは大幅に少なくなる。 命令実行からプロセス間通信までのシステム内
でのすべてのハードウエア支援フアンクシヨンに
ついて、単純なデータ・セグメントから、そのフ
アンクシヨンによつてアクセスされ具体的に操作
されるアクセス・リスト、データ・セグメントお
よびその他のオブジエクトの任意に複雑なネツト
ワークまで、特定の種類のオブジエクトがある。
しかし大部分の場合プログラマーは、オブジエク
トの内部構造を完全に無視することができるが、
それでもなお、演算子またはフアンクシヨンが加
えられたときは常に、オブジエクトの種類と構造
がその定義と指定のフアンクシヨンに一致してい
ることがハードウエアによつて確認されることを
確信し続けることができる。 本システムは多くのオブジエクトとそのフアン
クシヨンをプログラマーに利用できるようにする
が、一定のプログラムによつて使用されるオブジ
エクトについては、フアンクシヨンの小集合のみ
が実際にそのプログラムに必要であるのにすぎな
いことがしばしばある。この小集合を特定するた
めに、アクセス・リストの各入力項目には別の情
報が追加される。この情報が入力項目の関連する
セグメント記述子から入手できる種類情報と組合
わされると、このオブジエクトのプログラムに利
用できるアクセス・ライトの小集合が定義され
る。これにより、アクセス・リストへの入力項目
はアクセス記述子と呼称される。これら入力項目
は、どのセグメントまたはオブジエクトがアクセ
ス可能であるかを記述するだけでなく、どのよう
にアクセスされるかも同様に記述するからであ
る。 データ・セグメント・アクセス記述子(すなわ
ち、データ・セグメントのためのアクセス記述
子)は、アクセス記述子によつてもたらされる種
類のアクセス・コントロールの良い例である。デ
ータ・セグメントがデータを保持するためのみに
使用されるときは(すなわち、特殊なハードウエ
ア認識使用法は意図しない)、可能な2つの基本
的なアクセス・ライトは読み取りと書き込みであ
る。そのようなセグメントのアクセス記述子は、
そのデータが読み出すことができる、書き込むこ
とができる、読み出すか書き込むことができる、
あるいは読み出すことも書き込むこともできな
い、ということを指示することができる。万一、
2つの異なるプログラムが共同的に同じセグメン
トを使用することが起ると、プログラムの一方の
アクセス・リスト内のアクセス記述子は読み取り
のみを可能とし、他のプログラムのアクセス・リ
スト内のアクセス記述子はセグメント内のデータ
が読み取りと書き込みの両方が行われることを可
能とする。 アクセス・リスト・アクセス記述子はまた読み
取りアクセス・ライトと書き込みアクセス・ライ
トの両方を有するように定義されるが、これらラ
イトの意味はデータ・セグメントに適用される同
じライトの意味とはかなり異なる。アクセス・リ
ストを読み取ることができることは、そのアクセ
ス記述子の任意の1つをコピーするか別のアクセ
ス・リストに移動することができることを意味す
る。同様に、アクセス・リストを書き込むことが
できることは、リスト内のアクセス記述子のある
ものを別のものに交換することができることを意
味する。当然のことながらシステム保護システム
の保全性は、その内部の情報の変更のように、ア
クセス記述子に対して何かほかのことをすること
が絶対に不可能であることに依存する。 前述のように、セグメントの2つの基本的な種
類、つまりデータ・セグメントとアクセス・リス
ト、から様々な複雑なオブジエクトを作ることが
でき、これらオブジエクトの種類の幾つかはシス
テム・ハードウエアによつて認識される。ハード
ウエアで認識される種類にとつて最も重要なこと
に、セグメント記述子はベースの種類とシステム
の種類の両方についてセグメントを自動的に識別
してハードウエアに知らせる。しかしさらに進ん
だソフトウエア・システムでは、ハードウエアの
知識を越える新しい種類のオブジエクトを定義し
たり区別したりすることをプログラマーに可能に
することが必要となる。この必要条件を支持する
ため、本システムは利用できるオブジエクトの種
類の数をプログラマーがほとんど無限大にまで拡
張することができるようにする機能を提供する。
プログラマー拡張種類として定義されるオブジエ
クトはハードウエア認識種類のオブジエクトと同
一である。ただし1つの例外として、オブジエク
トのアクセス記述子はオブジエクトのセグメン
ト・アクセス記述子とプログラマー定義種類ラベ
ルの両方を選択することができる。ハードウエア
は拡張種類オブジエクトであると認識する以外は
このオブジエクトに対して何もすることができな
いので、プログラマーがソフトウエアでのオブジ
エクトの操作を定義することが必要となる。この
タスクを簡単にする基本的機構は幾つかある。そ
のような例は、拡張したオブジエクトの種類のラ
ベルをデータ・セグメントに読み込む能力と、そ
のような2つのラベルが同一かどうか比較する能
力である。プログラマーが拡張した種類のオブジ
エクトに関してハードウエアがさらに大きな予防
策を講ずることを主張すれば、オブジエクトをそ
のラベルの背後に隠すことができる。このように
拡張した種類を隠すことによつて、ハードウエア
はオブジエクトを露呈する前に適当な一致したラ
ベルを提示することを主張する。これらの機能に
よつてプログラマーは、認識されたオブジエクト
についてハードウエアで行われる同じ種類のチエ
ツクの多くをソフトウエアで行なうことができ
る。 多くの異なるラベルを同じオブジエクトに付け
ることができ、同じラベルを多くの異なるオブジ
エクトに付けることができる。ラベルの付いたオ
ブジエクトは大体その他のあらゆる種類のオブジ
エクトのように振舞うので、ラベル付きオブジエ
クト自体にラベルを付けることができる。論理的
に言つて、ラベルを1つオブジエクトに付けるご
とに、新しいアクセス経路が作られる。ハードウ
エアは、この経路に沿つたどのアクセスでもプロ
グラマーの定義したラベルに出会うことを保証す
る。オブジエクトが隠されていないとラベルはう
回されることがあり、隠されていると、オブジエ
クトにアクセスするために一致するラベル(すな
わち、保護されたキー)をプログラマーが提示し
なければならない。経路はすでにラベルを付けら
れたオブジエクトにラベルを付けることによつて
階層的に形成されるので、経路はラベリングのレ
ベルを有するという。この理由により、ラベリン
グのレベルを表わすためにセグメント・テーブル
内で使用されるハードウエア認識データ構造は経
路レベル記述子という(例えば、第2B図、6
0,62を参照のこと)。 システムの機能ほど広いのはあらゆる種類のオ
ブジエクトの定義、識別、操作についてである
が、そのような機能は融通性のある動的記憶割り
当て機能を利用することができなければ完全でな
いであろう。本システムが利用する割り当て機構
(第2B図、77)は、新しいデータ・セグメン
トと新しいアクセス・リストについてのストレー
ジとセグメントのテーブル・スペースの両方の瞬
間的な割り当てを支援する。前述のオブジエク
ト・タイピングとラベリングの機能は、ハードウ
エア認識オブジエクト種類とプログラマー定義オ
ブジエクト種類の両方の簡単で直接的な構造を可
能とする。 1.4 機能的階層 次に第3Aおよび3B図を参照する。システム
のアーキテクチヤは機能レベルの階層として設計
する。この階層の最低レベルにあるのは、主とし
てオペランド参照とオペレータ・コードより成る
個々の命令フイールドである。これらのフイール
ドは組合わされて、様々な原始的なデータの種類
と構造に関するかなりの数の有用な命令を形成す
る。完全な手続き行為つまり操作(本システムで
はこう呼称する)を定義するために、命令系統を
命令セグメント90というハードウエア認識オブ
ジエクトに格納することができる。そのようなオ
ブジエクトから得られる命令だけが実行可能であ
る。何らかの他の種類のオブジエクトから命令を
実行しようとする試みはすべてプログラムのエラ
ーと考えられる。操作は命令セグメントに同等で
ないことに注意を要する。これは、1つの操作を
表わすのに幾つかの命令セグメントが必要である
ためであるが、そのような合成命令を表わすため
に「オペレーシヨン・オブジエクト」の種類は定
義されない。この明細書でオペレーシヨンという
用語は、論理的に1つまたはそれ以上の命令セグ
メントより成る描象的なオペレーシヨン・オブジ
エクトを指すために使用する。 システムの機能的階層での次のレベルは、オペ
レーシヨンの集合を定義する。この集合は通常、
ある種類のオブジエクトを操作するためのある組
のオペレーシヨンの論理的結合に基づく。例えば
自然に分類される1組のオペレーシヨンは、辞書
を表わすのに使用する種類のオブジエクトを操作
するために定義された集合であろう。この1組の
オペレーシヨンは辞書の見出し語をさがしたり、
新しい見出し語を挿入したり、あるいは古い見出
し語を除いたりするための手続き行為を含むかも
しれない。特定の種類のオブジエクトを操作する
ためにソフトウエアに定義した1群のオペレーシ
ヨンは、原始的なデータの種類を操作するために
ハードウエアに定義した1組の演算子に対して間
違いようのない類似性を有することに気をつけな
ければならない。オペレーシヨンという用語は事
実、ハードウエア・オペレータに同等なソフトウ
エアと考えることができる「ソフトウエア・オペ
レータ」の概念を示すためのものである。 オペレーシヨンの論理的集合を表わすために使
用するハードウエア・オブジエクトはドメイン9
2という。オペレーシヨンの集合のみを表わす、
あるいはもつと正確に述べると、オペレーシヨン
の集合にアクセスする、ことはドメインにとつて
可能であるが、大部分の時間中にドメインは他の
オブジエクトを1組のオペレーシヨンにも関連づ
ける。これらオブジエクトは通常、ドメインのオ
ペレーシヨンのすべてによつて共用される定数、
変数およびアクセス記述子を含む。この理由によ
り、ドメインは単なる集合ではなく、各種の他の
オブジエクトと共に幾つかの可能なオペレーシヨ
ンの1つをアクセスすることができる環境と考え
られる。 しかし、ドメインによつて作られる環境は、オ
ペレーシヨンを実行するのに十分なものではな
く、さらにアクセスしなければならない。例え
ば、多数のオペレーシヨンは実行前にパラメータ
を渡される必要があり、しかもローカル変数と式
評価に使用する一時的な項目の余地を必要とす
る。実行可能なオペレーシヨンの環境上の必要条
件は、ドメイン・オブジエクトの所期の機能を簡
単に越える。 オペレーシヨンを実行することができる環境を
作る秘訣は、ドメインの静的な特性を実行準備完
了のオペレーシヨンの動的な態様に組合せるハイ
ブリツド・アクセス環境を作ることである。これ
をまさに行なうハードウエア認識オブジエクトは
コンテクスト94という。コンテクストはオペレ
ーシヨンの実行前に作られるアクセス環境(すな
わち、アクセス・リスト)であつて、オペレーシ
ヨンが定義されるドメインへのアクセスを含む。
コンテクストのコンテクスト・アクセス・リスト
は、ローカル式評価、先入れ後出しオペランド・
スタツクに使用する特殊オブジエクト、パラメー
タ・オブジエクトおよびローカル・データ・セグ
メントのアクセス記述子用の作業域を含む。 ひとたび実行すべきオペレーシヨンがコンテク
ストに与えられるとこれは通常、サブルーチンや
手続きの結果とされる振舞い以上のものを示し始
める。例えば、コンテクスト(すなわち、コンテ
クストでのオペレーシヨン)はサブルーチンのよ
うに互いに呼び出したり戻つたりすることができ
る。呼び出しているコンテクスト用のリターン・
リンク96は呼び出されたコンテクスト94のコ
ンテクスト・アクセス・リストに記憶するのが好
都合である。もちろんコンテクストを呼び出す
と、計算のアクセス環境にかなりの変化を生ずる
ことがある。呼び出し側と同じドメインに定義さ
れたオペレーシヨンのためにコンテクストを呼び
出すと、環境のコンテクストの特定の構成要素が
変化するだけである。ドメインの構成要素は変化
しない。別のドメインに定義されたオペレーシヨ
ンのためにコンテクストを呼び出すと、計算のア
クセス環境の全構成要素が変化する。 単にあるコンテクストから別のコンテクストに
移ることができてアクセス環境が前述のように完
全に変化することによつて、本システムには別の
非常に有用な形の保護がもたらされる。ドメイン
は、特に重要な情報ブロツクまたはデータ・ベー
スへのアクセスを利用して簡単な定義することが
できる。それが所定箇所にある場合、ドメインの
オペレーシヨンは、情報の保全を保証するのに必
要な方法から寸分違わないようにして情報を操作
するよう定義することができる。次に、ドメイン
内の情報を呼び出すための唯一の方法は、ドメイ
ン内のオペレーシヨンの1つのコンテクストを作
つてそれを呼び出すことである。データ・ベース
は隅発的または悪意の変更から完全に保護され
る。ドメインの情報隠匿能力をさらに高めるため
に、ドメイン・オブジエクト92自体は半ば隠さ
れるように設計される。あるドメインから別のド
メインにそのアクセス記述子を介してアクセスす
ると、前者のドメインの内部に定義されたオペレ
ーシヨンのコンテクストの内部からは、後者のド
メインの公用アクセス・リスト98に見出される
オブジエクトだけが自由にアクセスされる。呼び
出し側のコンテクストに隠され続けているものは
実際には、その私用アクセス・リスト100とい
う、2つの部分より成るドメイン・オブジエクト
の他の半分である。ドメインの私用アクセス・リ
ストに見出されるオブジエクトを呼び出す唯一の
方法は、そのオペレーシヨンの1つのコンテクス
トに制御権を渡すことであり、具体的には、その
公用アクセス・リストを介してアクセス可能な任
意のコンテクストに制御権を渡すことである。 万一、命令セグメント108のアクセス記述子
のみがドメインの公用アクセス・リスト98にあ
ると、呼び出し側コンテクストは、呼び出す前に
被呼び出しオペレーシヨンのコンテクストを最初
に作ることが必要であることを知る。ハードウエ
アは作られるコンテクストまたはドメインの保護
的な様相を妥協することなく、作るコンテクスト
のドメインと異なるドメインでのオペレーシヨン
のコンテクストの動的な構造を可能にすることに
注意しなければならない。言い換えると、他のコ
ンテクストにアクセスするあるコンテクストはそ
れを呼び出すことができるだけである。呼び出さ
れるコンテクストのコンテクスト・アクセス・リ
ストと、従つてそれのローカルにアクセス可能な
オブジエクトの集合は、隠さずにアクセスするこ
とはできない。 通常、制御権(すなわち、処理活動の中心)は
サブルーチンによく似ているように互いに呼び出
したり戻つたりするので、コンテクストからコン
テクストに階層的に移動する。あるコンテクスト
から別のコンテクストに転送し、次いで第3のコ
ンテクストに、それから再び第1のコンテクスト
に戻して一回りすることを含んで、もつと気まま
に制御権をコンテクストの間を転送させる必要性
が生ずることが時おりある。(ただし、この一回
りの転送は反復的な制御権の流れではない。それ
は同じオペレーシヨンの各呼び出しごとに新しい
コンテクストを作ることを伴なうであろう。)周
期的な制御権の流れとは、その制御権が実際にル
ープを回るごとに同じコンテクストを再び取るこ
とを意味する。別のもつと気まぐれな制御権構造
はパイプラインであり、これでは制御権があるコ
ンテクストにはいつて出て、次いで別のコンテク
ストにはいつて出ることを行ない、決つして再び
戻らない。これらの非階層的な制御権構造を支援
するために、システム内のコンテクストは制御権
を受け取る前に作られ、そして制御権を失なつた
後でも保持される(すなわち、割り当てが解除さ
れたり、再初期設定されたりしない)。この理由
によりコンテクストはALGOL的な意味で単なる
手続きではなく、これは制御権を得たり渡したり
するのと同時に存在したり消失したりするように
定義される。コンテクストはもちろん、適当な時
期にコンテクストを明示的に作つたり削除したり
することによつて、他のほとんどあらゆる形の制
御権や環境の規則に加えて、手続き環境をモデル
化するために使用することができる。この明細書
でコルーチンという用語は、非階層的に動作する
どのようなコンテクストをも指すために使用され
る。 次に第4Aおよび4B図を参照する。逐次計算
活動またはプロセスは、コンテクスト相互間の制
御権の転送から生ずる一連のコンテクストとドメ
インの遷移によつて特徴づけられる。物理的なプ
ロセツサ以上の計算プロセスが存在するかもしれ
ないので、アーキテクチヤは実行準備完了プロセ
スの間で利用できるプロセツサを自動的に切替え
たり、多重化したりする機能を有する。これはプ
ロセツサの概念を抽象化または視覚化することに
よつて行われる。物理的なプロセツサは所定期間
中、所定の計算過程の仮想的なプロセツサに関連
づけられる。物理プロセツサが仮想プロセツサか
ら関係を断つと、計算状態は仮想プロセツサの状
態としてメモリに記憶される。これによつて対応
する種類の別の物理プロセツサが利用できるとき
には常に、その仮想プロセツサの処理を都合よく
再開することができる。本システムでは、異なる
仮想プロセツサは各計算過程ごとに定義し、従つ
て、仮想プロセツサという用語とプロセスという
用語は同義語として使用する。しかしこの明細書
の残りの部分では、ほとんどプロセスという用語
だけを使用する。 各独立のプロセスに関連した仮想プロセツサの
状態を保つために、本システムはプロセス・オブ
ジエクト140という別の種類のハードウエア認
識オブジエクトを利用する。プロセス状態に加え
て、このオブジエクトはソフトウエアによつてそ
の位置にすでに記憶されている情報を含み、この
情報はリソースとメモリ・スペースを処理する自
動割り当てにおいてシステムのハードウエアによ
つて利用される。プロセツサ・オブジエクト14
2という別のオブジエクトは各プロセツサに割り
当てられ、その状態情報を維持すると共に、処理
する1組のプロセスを決定する。 1.5 通信 再び第3Aおよび3B図を参照する。システム
のアーキテクチヤ階層の各レベルには、プログラ
ム・オブジエクトのための異なる通信機構が設け
られている。最下位レベルでは、一時的なスカラ
ー・オペランド用の後入れ先出しスタツクを含む
共通にアクセス可能なメモリ位置を介して命令相
互間の通信が起こる。命令から命令への通常の逐
次的な制御権の流れはもちろん、無条件ブランチ
ングと条件付きブランチングのいずれかによつて
も変更することができる。このレベルの実行は常
に逐次的であるため、命令通信の緩衝やインタロ
ツキングは不要である。 次のレベルでは、従来サブルーチンまたは手続
きとして相互作用するコンテクスト相互間の通信
は、メツセージの送受に基づく。伝送すべき情報
は最初にメツセージ・オブジエクト102に組立
てる。この情報が簡単なスカラー・データである
と、メツセージ・オブジエクトは1個のデータ・
セグメントにすぎない。もつと複雑な情報の伝送
の場合には、メツセージ・オブジエクトは他のア
クセス・リスト、データ・セグメントおよびオブ
ジエクトの記述子を含むアクセス・リストとな
る。どのような場合にも、メツセージは1個の、
しかし任意の複雑度のオブジエクトとして処理さ
れる。メツセージを伝送するにはハードウエア
は、メツセージ・オブジエクトのアクセス記述子
112を送信側コンテクストから受信側コンテク
ストに移動するだけである。言うまでのなくこの
形態のコンテクスト相互間通信は高速で融通性が
高くて極めて強力である。 あるコンテクストがサブルーチンや手続きのよ
うに別のコンテクストを階層的に呼び出すと、呼
び出し側のコンテクストのリターン・リンク96
は別個のアーギユメント・メツセージとして呼び
出されたコンテクストに渡されもする。やはりア
クセス記述子の形であるリンクは、望むとき呼び
出されたコンテクスト94によつて使用されて結
果メツセージと共に制御権を呼び出し側コンテク
スト95に戻すことができる。重要なことに、コ
ンテクストを呼び出すことと、コンテクストに戻
ることの相違は、後者の場合にリターン・リンク
が供給されないことだけである。 メツセージはまた、厳密な呼び出し/リターン
階層を要求しないコンテクスト相互間通信の基礎
を成す。しかし階層的コンテクストとは異なり、
非階層的コンテクストつまりコルーチン通信は各
種の潜在的な呼び出し側に関してもう少し選択す
ることを要求する。通常のコンテクストはその潜
在的な呼び出し側の任意の1つによつて呼び出さ
れるが、コルーチンは呼び出しを行なうコルーチ
ンの小集合のみから制御権と通信を受け入れるよ
うに動的に選択する。この選択はバツフアなし通
信ポート104という別の種類のハードウエア認
識オブジエクトによつて可能になる。メツセージ
を受け入れて制御権を得たい特定のポートを指定
するために、別のバツフアなしポートを介して何
か他のコルーチンにあるコルーチンが制御権を転
送してメツセージを渡すときは常に、そのコルー
チンはそのポートで停止する。その点から先に
は、コルーチンはそれが中断されているポートを
介して制御権とメツセージを受け入れるだけであ
る。他のバツフアなしポートを介してコルーチン
に制御権と情報を渡そうとする他の試みはすべて
エラーとして処理される。選択が利用できるけれ
ども、コルーチン通信はどのような形の緩衝もイ
ンタロツキングも必要としない。それは、コルー
チンは定義上、互いに逐次的に交信するからであ
る。 再び第4Aおよび4B図を参照する。機能的階
層の最上位レベルで、潜在的に非同期式の逐次プ
ロセスの通信機構は十分に緩衝され、インタロツ
クされる。これらの機能は両方とも、バツフア付
き通信ポート144という別の種類のハードウエ
ア認識オブジエクトによつてもたらされる。独立
した各プロセスの相対速度は予言可能ではないの
で、ポートにより行われる緩衝はかなり広範囲に
わたる。各バツフア付きポートは2つの行列を生
じ、一方は送られたメツセージのためのものであ
り、もう一方はメツセージが到着するのを待機し
ているプロセスのためのものである。他のプロセ
スを待機していないポートに対してあるプロセス
がメツセージを送ると、そのプロセツサはメツセ
ージのアクセス記述子をポートのメツセージ行列
150に格納して実行を続行するだけである。そ
の後、別のプロセスが同じポートでメツセージを
受け取ろうとすると、すぐにメツセージを受け取
つて実行を続行する。受け取つているプロセスは
ポートに待機されたメツセージを発見しなけれ
ば、そのプロセス・オブジエクトのアクセス記述
子をポートのプロセス行列に格納する。その後、
メツセージが到着してプロセスがポートのプロセ
ス行列の頭にあると、送信プロセスは行列から待
機中のプロセスを除去し、そしてこれを新しい実
行に利用できるようにする。 非同期式プロセス間通信に必要な緩衝とインタ
ロツクを提供するのに加えて、バツフア付きポー
トは他の幾つかの重要な能力を提供する。例え
ば、同じポートを通して2つ以上のプロセスがメ
ツセージを送ることを可能とすると共に2つ以上
のプロセスが同じポートを通してメツセージを受
け取ることを可能とすることによつて、幾つかの
同一のプロセツサで並列に動作自在な幾つかの同
一のプロセスは多数の他の顧客のプロセスに対し
て同時サービスを提供する。この特徴は進んだリ
アルタイム・システムで効果的に利用することが
でき、ピーク負荷期間に応答時間を調整・改善す
る。プロセスはアクセスすることができる任意の
ポートで受け取ることが自在であるので、コルー
チンの場合によく似ているように、はいつて来る
メツセージのトラフイツクの処理を任意に選択す
ることができる。ポートはまた、一般にリソー
ス・マネージメント・ソフトウエアで見出される
高度な形のプログラミングされた相互排他を支援
するように、より簡単に使用することができる。
メツセージを送るのに加えて、待機中のプロセス
を並べるバツフア付きポートの能力によつて、メ
ツセージの到着を確認するためプロセスを際限な
くテストさせるか、ロツク・ビツトの周囲で循環
させる種類の多忙待機は完全に除去される。本シ
ステムでの一部のハードウエア機能はスピン・ロ
ツク(循環停止)を利用するが、実際に循環する
状況では不必要なメモリ保持を避けるために特殊
な技術を利用する。 論理的には、プロセツサへのプロセスの割り当
ては、バツフア付きポートによつて可能にされる
同じ種類の待機した通信によつて支援される。す
なわち、新しい実行の準備ができているプロセス
は、多分幾つかの受信プロセツサの1つのメツセ
ージと全く同じように処理される。プロセスを待
機するためにプロセツサは、プロセスがバツフア
付きポートでメツセージを受け取るために待機す
るのと全く同じように、プロセスが到着するまで
デイスパツチ・ポート146で待機する。本シス
テムはまた、あるプロセスが別のプロセスをメツ
セージとして受け取るのを可能とするため、この
機構では物理プロセツサ、仮想プロセツサおよび
プロセスの論理的同等性は明白である。プロセス
を直接実行することはできないが、受信プロセス
は受け取つたプロセスを検査、遅延または通訳的
に実行してから、それをメツセージとして物理プ
ロセツサまたは多分何かほかのプロセスに送り返
す。 通常、バツフア付きポートのプロセス行列を出
るプロセスは、プロセツサ割り当てのためにデイ
スパツチ・ポートに直接送られる。特定のデイス
パツチ・ポートはバツフア付きポート内のアクセ
ス記述子148によつて指定される。バツフア付
きポートが別のバツフア付きポートのアクセス記
述子を有していなければ、そのプロセスのアクセ
ス記述子が代わりにそこに送られる。システムの
通信機能のこの様相は、システム構造を動作する
のに重要な実際的な結果をもたらす。この機構に
よつて、ソフトウエア・スケジユーラや他のサー
ビス・プロセスをハードウエア・スケジユーラ相
互間に全く無関係に挿入することができる。 前述したのと同じプロセス間通信が、汎用デー
タ処理装置に関連したプロセス相互間に、または
入出力処理装置に関連したプロセス相互間に使用
される。これは入出力の非同期的性質に一致する
と共に、汎用データ処理装置への割り込みを不要
とする。すべての通常の割り込み、直接メモリ・
アクセス・リクエストなどは入出力処理装置によ
つて処理される。装置の必要な処理機能を完了し
た後、入出力プロセスはメツセージを送受するこ
とによつて関連する汎用データ・プロセスと交信
する。入出力プロセスのデイスパツチングに加え
て、指令と完了メツセージのキユーイングは、装
置の入出力システムをそのプロセス間通信機構の
上に作ることの自然の副産物である。 通常の割り込みはシステムの内側には存在しな
いけれども、プロセツサが互いに交信することを
可能にする機構がある。この機構は典型的に、保
守のために他のプロセツサによつて休まされた
か、低い計算活動またはメモリ・アクセス・イン
タロツクの期間中に自分自身で休んだかもしれな
いプロセツサを再動作するために使用される。こ
れはプロセツサ特定通信という。それは、プロセ
ツサ間メツセージのターゲツトが再動作される必
要があるプロセツサのみであるからである。他の
状況では、プロセツサ間通信はシステム・ワイ
ド・プロセツサ指示文を同報通信するために使用
する。通常これはシステム内の全プロセツサに対
するグローバル・リクエストであり、プロセツサ
のすべてが内部で緩衝するセグメント・アドレス
情報を再修飾する。通常の割り込みからプロセツ
サ相互間通信を最も区別するものは多分、プロセ
ツサ相互間通信が受信プロセツサに対して実行し
ているプロセス内部で制御権の流れを決つして変
えさせないことである。 ソフトウエアやハードウエアの例外に応答する
通信は本システムで幾つかの形を取る。大部分の
計算フオールトはフオールト・コンテクスト内部
の簡単なブランチを指定のフオールト・ハンドラ
命令セグメントに導く。保護フオールトのような
もつと厳しいフオールトの結果、フオールト・プ
ロセスの実行は中断され、そのプロセス・オブジ
エクトのアクセス記述子は指定されたバツフア付
きポートを介してフオールト・サービス・プロセ
スに送られる。プログラミングされた診断プロセ
スの実行を試みる別のデイスパツチ・ポートにア
クセス記述子を割り当てることによつて、フオー
ルト・プロセツサは多少異なるように処理され
る。 エラー補正故障、バス応答故障または主要電源
故障のようなシステム警報状態を独立に監視する
外部装置は、現在実行中のプロセスのすべての中
断と危険警報処理プロセスの実行を強制するかも
しれない。 1.6 データの種類、演算子および命令 汎用型のデータ群と演算子は汎用データ処理装
置によつて提供される。このデータ群に含まれて
いるのは、個々のビツト、ビツト・フイールド、
文字、2サイズの序数(符号の付いていない整
数)、2サイズの整数、および3サイズの実数
(すなわち、浮動点データ)のための演算子であ
る。また、任意の特殊演算子の代わりに用いられ
るは、ベルトルやレコードのような集合データ構
造の個々の構成要素を効率的に選択するための多
目的オペランド基準機構である。 極めて鮮やかな実際の算術を保証するために、
本システムの浮動点アーキテクチヤには特別な考
慮が与えられている。利用される演算子群は、ほ
とんどどんな数学上の関数をも正確に64ビツトの
精度に決定することを可能とする。浮動点アーキ
テクチヤの他の特徴には、結果の精度とまるめに
対する完全な制御が含まれる。この後者の特徴は
最も有名なことに、システムのソフトウエアでの
インターバル算術の実際的で効率的な実行に貢献
する。 命令書式は各演算子を用いて、指定すべき明示
オペランド基準と暗黙オペランド基準(すなわ
ち、現在のオペランド・スタツクの上から)のほ
とんどどのような組合せも可能とする。転数元ア
ドレスと転送先アドレスが同一であるとき起るか
もしれないような冗長オペランド基準は、命令に
2回以上現われるように、共通の基準を不要とす
るよう指定することができる。データの種類とオ
ペランド位置に関して演算子集合と命令書式のほ
ぼ総合的な対称性によつて、高めのレベルのプロ
グラム言語で記述されるプログラムの通訳が大幅
に簡単になると共に、プログラムを実行するのに
必要な時間とスペースがかなり減少する。演算子
コードとオペランド基準の頻度の符号化に基づく
可変長命令書式の使用によつても、プログラムを
表わすのに必要な記憶容量がかなり減少する。圧
縮は機能性やアドレスを用いた読み書き能力が同
等の他のコンピユータ・システムと比較したと
き、50パーセントも高いことがしばしばある。 入出力プロセツサは、周辺装置とコントローラ
との間の情報の流れを処理するよう具体的に設計
された、限られた集合のデータ種類と演算子を支
援する。この集合に含まれているのは、1個の文
字または短かい序数を転送する演算子と、文字ま
たは短かい序数のストリングを転送する演算子で
ある。やはり含まれるのは、データが動いている
間に送受両データを走査・通訳する幾つかの演算
子である。これら演算子は転送同期・終了方法の
選択に大きな融通性を与える。本システムの入出
力プロセツサのアーキテクチヤはこの明細書の第
3部で説明する。 2.0 情報構造 2.1 メモリ 本システムは2レベル・メモリ構造を具体化す
る。ソフトウエア・システムは、論理アドレスが
データ項目の位置を指定する、分割された環境内
に存在する。プロセツサは物理アドレス内の値に
アクセスするよう、この論理アドレスを自動的に
物理アドレスに通訳する。 2.1.1 論理アドレス指定 ソフトウエア・システムは多くのセグメントに
仕切られている。セグメントは連続的なアドレス
のメモリ・バイトのグループであり、ここでは1
つのバイトは8個の2進ビツトの情報を含む。セ
グメントは1バイトから65,536バイトまでの任
意の長さである。 あるオペレーシヨンの命令は現在のコンテクス
トを構成しているセグメント内部に含まれている
情報にアクセスする。命令は、論理アドレスでメ
モリ内のオペランドの位置を指定する1個かそれ
以上のデータ基準を含む。各論理アドレスは、セ
グメント・セレクタとオペランド変位の2つの構
成要素を有する。セグメント・セレクタは、コン
テクストのアクセス・リストの1つへの入力項目
の索引を指定する。その入力項目はオペランドを
含むメモリ・セグメントを間接的に指定する。オ
ペランド変位とは、選択したセグメントのベース
から望みのオペランドの最初のバイトまでのずれ
である。ソフトウエア・システムの最大論理アド
レス空間は各々が65536個のバイトより成る
2097152個のセグメントに限定され、バイトの総
計は137438953472となる。 2.1.2 物理アドレス指定 論理アドレスは、「一般化されたデータ処理装
置の命令」という見出しの下で説明するように、
プロセツサによつて物理アドレスに通訳される。
物理アドレスは、参照すべきメモリの値の最初の
バイトを選択するよう、プロセツサによつてメモ
リに伝達される。物理アドレスの長さは24個の2
進ビツトである。これによつて物理メモリのサイ
ズは16777216バイトに限定される。 2.2 データ書式 プロセツサはコンテクスト内のオペレーシヨン
の命令を実行するとき、コンテクストのセグメン
ト内に見出されるオペランドを操作する。個々の
オペランドはメモリの1個、2個、4個、8個ま
たは10個のバイト、つまりそれぞれバイト、ダブ
ルバイト、ワード、ダブルワードまたは拡張ワー
ドを占めることができる。オペランドはすべて前
述のように論理アドレスによつて参照される。そ
のようなアドレスでの変位は、データ・セグメン
トのベース・アドレスからオペランドの最初のバ
イトまでのバイト内の変位である。多数のバイト
より成るオペランドの場合、アドレスは下位のバ
イトを位置決めし、高位のバイトほど順に高い隣
りのアドレスに見出される。 2.3 データ表示 メモリに記憶されるデータ構造を表わすため
に、以下の約束事を利用する。1つのフイールド
内の各ビツトは順に高位の数字が付され、最下位
ビツトは右側である。バイト・アドレスは右側か
ら左側に沿つて増大する。システム内の基本的な
4つの長さは、1バイト(ビツト0−7)、ダブ
ルバイト(ビツト0−15)、ワード(4個のバイ
ト、ビツト0−31)、タブルワード(8個のバイ
ト、ビツト0−63)、および拡張ワード(10個の
バイト、ビツト0−79)である。 2.4 データ位置決め 前述のデータ構造はデータ・セグメント内部の
任意のバイト境界に整列される。メモリ・システ
ムがダブルバイト単位で構成される場合、多数バ
イト・データ構造がダブル・バイト境界で整列さ
せられると、さらに効率的なシステム・オペレー
シヨンが得られることに注意する必要がある。 2.5 データ保全 本システムの多重プロセツサ・アーキテクチヤ
は、同時にアクセスされる可能性があるデータ項
目の保全を保証するために、メモリ・システムの
オペレーシヨンに一定の必要条件を課す。メモリ
内のダブルバイトとワード・オペランドの双方へ
の分割不能な読み取り・修正・書き込み
(RMW)オペレーシヨンは、システム・オブジ
エクトを操作するのに必要である。メモリ内のあ
る位置に対してRMW読み込みが処理されるとき
から、その位置への他のすべてのRMW読み込み
は、その位置へのRMW書き込みが受け取られる
まで(またはRMW時間切れが起るまで)メモ
リ・システムによつて阻止される。また、ダブル
バイトかそれより長いオペランドの通常の読み取
りと書き込みの場合、メモリ・システムはオペラ
ンド全体が読み取られるか書き込まれてから同じ
位置への別のアクセスの処理を開始することを保
証しなければならない。そうしないと例えば、
(2つのプロセツサによる)同じ位置への2つの
同時書き込みの結果として、オペランドを記憶す
るために使用する1組の位置は、2つの書き込ま
れた値の交互の組合せを含むことがある。 2.6 オペランド・スタツク ハードウエアによつて管理されるスタツク・ポ
インタ(SP)は、セグメントのベースから次の
フリー・スタツク要素までのバイト内での変位を
含む。オペランドがスタツクに退避されると、そ
の値はスタツク・ポインタによつて指定される位
置に記憶され、次にスタツク・ポインタはオペラ
ンドの長さだけ増加される。同様にして、オペラ
ンドをスタツクから取り出すとき、最初にスタツ
ク・ポインタはオペランドの長さだけ減らされ、
次に値がスタツク・ポインタによつて指定された
位置からロードされる。スタツクがダブルバイト
AとワードBを含んでいたのであれば、スタツク
は第3B図に示しているように見えるであろう。
(バイト変位はオペランド・スタツク・セグメン
ト106の右手側に数字で示している。) スタツクの一番上の要素を参照する命令はセグ
メント・セレクタも変位も指定する必要はない。
それは、プロセツサはどのセグメントが実行中の
プロセスの現在のスタツクを含むかを知つてお
り、スタツク・ポインタは現在のスタツクの一番
上の変位を指定するからである。実行中のオペレ
ーシヨンが生ずる一時的な結果は、オペランド・
スタツクに最も効率的に記憶される。それは、ス
タツクを参照するのに命令内に必要な情報は非常
にわずかであるからである。 オペランド・スタツクへオペランドを記憶する
正確な方法はオペランドの長さに左右される。本
システムでは、スタツクに記憶されたバイト・オ
ペランドは、16ビツトのスタツク要素内で全部が
ゼロの高位のバイトで右寄せされる。ダブルバイ
ト・オペランドはスタツク内の一要素を占めるだ
けである。ワード・ダブルワードおよび拡張ワー
ドの各オペランドはそれぞれ2個、4個および5
個のスタツク要素を必要とし、高位のオペランド
ほど高位のアドレスに記憶される。 2.7 命令セグメント すべてのソフトウエア・オペレーシヨンの命令
は命令セグメント90、(第3B図)内に含まれ
ている。しかしデータ項目とは異なり、命令は前
述の固定長書式の内部にはまるようには限定され
ない。その代わりにプロセツサは、命令ストリー
ムという連続的なビツトのストリングとして命令
セグメントを見る。可変数のビツトを含む個々の
プロセツサ命令は、ストリング内のどのビツトか
らでも開始可能である。一般化されたデータ処理
装置の命令の位置は論理アドレスによつて指定さ
れ、この論理アドレスの変位は、命令ストリーム
を含む命令セグメントの初めから命令の最初のビ
ツトまでのビツト変位である。この変位は16ビツ
トに制限されるため、命令セグメントは65536ビ
ツトつまり8192バイトに制限される。プロセツサ
は32ビツトを単位としてメモリから命令セグメン
トを読み取る。この理由により、命令セグメント
はワード境界で終らなければならない。さもない
と、プロセツサが命令セグメントの最後の命令の
ビツトを読み取ろうとすると、境界エラーが生ず
る。 3.0 一般化されたデータ処理 3.1 計算データの種類 一般示されたデータ処理装置は、ハードウエア
が認識する異なる計算データの種類を幾つか処理
するよう、広範囲の演算子の集合を利用する。各
種類は必要な記憶容量と、その種類のオペランド
に利用することができる演算子によつて特色づけ
られる。これらの種類(各々は後述する)は原始
的な種類であり、これらを用いてシステム内にも
つと複雑なデータ構造を作ることができる。その
種類のデータについてすべての有意義な演算子が
利用できるという意味で、各種類の演算子は完全
と考えられる。いずれかの演算子の結果がそのデ
ータの種類の範囲を越えれば、この状態はハード
ウエアによつて認識され、そして次に定義するよ
うに特殊な手段が講ぜられる。 3.1.1 文字 文字オペランドはメモリを1バイト必要とし、
論理式、文字または符号の付いていない整数値を
表わすために使用することができる。後者は0か
ら255までの範囲に限定される。文字オペランド
によつて行われる演算には、論理演算(例えば、
論理積、論理和、排他的論理和、排他的NORな
ど)、簡単な符号の付いていない算術演算(例え
ば、加算、減算、インクリメント、デクリメント
など)および関係演算(例えば、等しい、を越え
る、以上、など)が含まれる。 3.1.2 短かい序数 短序数オペランドは、順序づけられたリスト内
の一要素の位置を指定するセレクタとして最も一
般的に使用される。例えばそのようなオペランド
は、ベクトルまたはアレイの索引として役立つで
あろう。これらオペランドはメモリのダブルバイ
トを占めるため、それらの値は0から65535まで
の範囲に限定される。さらに、短序数オペランド
は16ビツトかそれ以上のビツト・フイールドを表
わすために使用することができる。短序数演算に
は、論理演算、ビツト処理および完全な符号の付
いていない算術演算と関係演算が含まれる。 3.1.3 短かい整数 短整数オペランドもメモリのダブルバイトを占
めるが、2の補数の形で−32768から32767の範囲
内の符号の付いた整数を表わす。符号の付いた算
術演算子と関係演算子の完全な一そろえは、短整
数オペランドを処理するのに利用される。 3.1.4 序数 序数オペランドはメモリの1ワードを占め、0
から4294967295までの範囲(両端を含む)内の整
数の付いていない整数を表わす。また序数オペラ
ンドは、32ビツトまでの、短序数オペランドによ
つて処理できるものより長いビツト・フイールド
に使用することができる。序数値に関連する演算
の集合には、論理演算、ビツト処理および完全な
符号の付いていない算術演算と関係演算が含まれ
る。 3.1.5 整数 整数オペランドはメモリの1ワードを必要とす
る。このデータの種類は、短整数データの種類で
利用できるものを越えた拡張精度を与える。これ
らのオペランドの値は2の補数の形であり、−
2147483648から2147483647までの範囲内にある。
32ビツトの符号の付いた算術演算子と関係演算子
の集合は、整数オペランドを処理するため利用さ
れる。 3.1.6 短かい実数 短実数の種類のデータ値は、整数オペランドや
短整数オペランドで得られるよりも広い範囲の値
を生ずるが、その範囲を通じて精度は劣る。この
種類の値は小数部とスケール・フアクタ(基準化
因数)の2つの部分より成り、スケール・フアク
タ自体は底と指数より成る。10進数を用いる一例
は (1.2345)*10-3 であり、これは10進値、0.0012345を表わす。こ
の例では小数部は1.2345であり、スケール・フア
クタは底10と指数−3より成る。下で詳細に説明
するように、短実数の種類の値の表示に実際に含
まれるのは小数部と指数だけである。短実数オペ
ランドはメモリの1ワードを占め、以下の書式を
有する。 最上位ビツト(ビツト31)は、短実数値の符号
(0では正で、1は負)を指定する。短実数オペ
ランドを表わすすべてのビツト・パターンがハー
ドウエアによつて同じように解釈されるわけでは
ない。オペランドには、不当オペランド、正規化
オペランド、ゼロオペランドおよび非正規化オペ
ランドの4種類がある。 不当オペランドは、指数フイールドが全部1で
あるか、符号ビツトが1で指数と小数部のフイー
ルドがすべてゼロであるオペランドである。ハー
ドウエアが不当オペランドに応答するあり様は、
「浮動点計算」の見出しの下で説明する。 正規化オペランドは指数フイールドが全部ゼロ
でもなく、全部1でもないオペランドである。2
進小数部は、値1で小数部の最上位ビツトの左に
暗黙ビツトを取る正規化された形の厳密な絶対値
で記憶される。小数点はこの暗黙ビツトと最上位
小数部ビツトの間にある。短実数オペランドのス
ケール・フアクタは2進法の底と指数を用い、こ
の指数の値は短実数オペランドの指数フイールド
内に記憶され符号の付いていない2進整数より
127小さい。指数フイールドの値は0から255まで
の範囲を取る。全部がゼロまたは全部が1である
(符号が付いていない値が0または255)指数フイ
ールドは特別な意味を有するため、スケール・フ
アクタの指数の範囲は−126から127までである。
短実数オペランドの値は として記憶される。正規化された短実数オペラン
ドは7個の10進数字の精度に相当する。最大と最
小の各絶対値は近似的に次のように与えられる。 最大絶対値=3.4*1038 最小絶対値=1.2*1038 ゼロ短実数値は独特の表示を有する。この表示
は、符号、指数および小数部の各フイールドにす
べてゼロを有する。 非正規化短実数オペランドは、ゼロの近くで表
わすことができる値の範囲を拡張するために、ハ
ードウエアによつて認識され支援される。非正規
化オペランドを認識しないシステムでは、一部の
計算は複雑なソフトウエアの介在なしには正しく
完了することができない。しかし本システムでは
これら同じ計算は、ハードウエアによつて簡単に
完全に実行することができる。非正規化値は、す
べてゼロである指数フイールドと、全部がゼロで
ない小数部フイールドによつて表わされる。2進
小数部は暗黙ビツトなしに厳密な絶対値で記憶さ
れる。小数点は小数部の最上位ビツトの左に置か
れ、スケール・フアクタの指数は−126から127ま
での範囲である。 と記憶される非正規化短実数オペランドは (−1)S*(0.f22……f0)*(2-126) である。小数部の高位のゼロビツトの数が増大す
るにつれて、対応する短実数値の精度が低下する
ことに注意する必要がある。非正規化値を支援す
ると、短実数オペランドの最小絶対値は大体次の
値まで減少する。 最小絶対値=ほぼ1.4*10-45 3.1.7 実数 メモリのダブルワードを占める実数オペランド
は、前述の短実数オペランドと同じような計算能
力を提供する。しかし実数オペランドは、より広
い範囲の値とより高い精度を与える。実数オペラ
ンドの書式は次のとおりである。 この書式の解釈は前述の短実数書式の解釈と同
じである。そしてやはり4種類のオペランドがあ
る。不当オペランドは、指数フイールドがすべて
1であるオペランドであるか、符号ビツトが1で
指数と小数部のフイールドがすべてゼロであるオ
ペランドである。 正規化オペランドは、指数フイールドが全部ゼ
ロでもなく、全部1でもないオペランドである。
2進小数部は、暗黙1ビツトで小数部の最上位ビ
ツトの左に正規化された厳密な絶対値の形で記憶
される。小数点はこの暗黙ビツトと、小数部の最
上位ビツトの間にある。スケール・フアクタの指
数は、実数オペランドの指数フイールドに記憶さ
れる符号の付いていない2進整数より1023小さ
い。全部がゼロまたは全部が1(符号の付いてい
ない整数が0または2047)の指数フイールドは特
殊な意味を有するため、スケール・フアクタの指
数は−1022から1023までの範囲にある。 と記憶される正規化実数オペランドは (−1)S*(1.f51……f0)*
(2(e10……e0)-1023) である。 実数オペランドは、15個の10進数字の精度に相
当する。最大と最小の各絶対値は大体次のように
与えられる。 最大絶対値=ほぼ1.8*10308 最小絶対値=ほぼ2.2*10-308 短実数オペランドの場合のように、独特なゼロ
である実数値は、符号、指数および小数部の各フ
イールドが全部ゼロである実数オペランドによつ
て表わされる。 非正規化実数値は、全部がゼロの指数フイール
ドと、ゼロでない小数部フイールドを有する。2
進小数部は暗黙ビツトなしに厳密な絶対値の形で
記憶され、スケール・フアクタの指数は−1022で
ある。 と記憶される非正規化実数オペランドの値は (−1)S*(0.f51……f0)*(2-1022) である。 3.1.8 一時実数 一時実数種類の値はメモリの拡張ワードを占
め、実数種類の値よりも広い範囲の値とより高い
精度を与える。一時実数オペランドは浮動点計算
中に、中間結果つまり一時的な結果として使用す
るためのものである。そのような一時的な結果を
支援すると、2つの非常に重要な効果が生ずる。
第1に、多段階計算の中間値への一時実数オペラ
ンドを使用すると、中間値を保持するために短実
数オペランドまたは実数オペランドを使用する場
合よりもかるかに少ない精度の損失で結果を得る
ことができる。第2に、拡張された指数範囲は、
オーバフローやアンダフローが起きて計算の完了
前に計算が停止する可能性を大幅に減少する。例
えば、中間結果に一時実数値を使用することによ
つて、正確に短実数または実数の値の精度で基本
的な三角関数を計算することができる。一時実数
オペランドの書式は次のとおりである。 前述の短実数オペランドの場合のように、一時
実数オペランドは4種類ある。不当オペランド
は、全部が1の指数フイールドのオペランド、ま
たは符号ビツトが1で指数フイールドと小数部フ
イールドが全部ゼロのオペランドである。 正規化オペランドは、全部が1でない指数フイ
ールドを有し、小数部の最上位ビツトが1である
オペランドである。2進小数部は正規化された形
の厳密な絶対値で記憶され、小数点は小数部の2
つの最上位ビツトの間に置かれる。暗黙1ビツト
は一時実数書式と共に使用されないことに注意を
要する。スケール・フアクタの指数は、一時実数
オペランドの指数フイールド内に記憶されている
符号の付いていない2進整数より16383小さい。
全部が1の指数フイールド(符号の付いていない
整数値32767)が不当オペランドに確保されてい
るため、正規化オペランドのスケール・フアクタ
の指数は−16383から16383までの範囲にある。 として記憶される正規化一時実数オペランドの値
は (−1)S*(1.f62……f0)*
(2(e14……30)-16383) である。 一時実数オペランドは19個の10進数字の精度に
相当する。最大と最小の各絶対値はほぼ次のよう
に与えられる。 最大絶対値=ほぼ1.2*104932 最小絶対値=ほぼ1.7*104932 独特なゼロの一時実数値は、符号、指数および
小数部の各フイールドがすべてゼロである一時実
数オペランドによつて表わされる。 非正規化一時実数値は、指数フイールドの全部
が1でなく、小数部の最上位ビツトがゼロである
値である。2進小数部も厳密な絶対値の形で記憶
され、小数点は小数部の2つの最上位ビツトの間
に置かれる。正規化オペランドの場合のように、
スケール・フアクタの指数は指数フイールドに記
憶されている符号の付いていない2進整数より
16383小さい。従つてこの指数は正規化一時実数
オペランドの場合と同じ範囲を有する。 として記憶される非正規化一時実数オペランドは (−1)S*(0.f62……f0)*
(2(e14……e0)-16383) である。 非正規化オペランドを支援すると、一時実数オ
ペランドの最小絶対値はほぼ次の値まで減少す
る。 最小絶対値=ほぼ1.8*10-4951 3.2 命令構成 一般化されたデータ処理装置の行為は、実行さ
れているプロセスの「現在命令セグメント」から
得られる命令によつて決定される。すべての命令
は1個の演算子と幾つかの参照を指定する。演算
子はプロセツサに対してどの「ハードウエア・オ
ペレーシヨン」を実行すべきかを指定し、参照は
使用または処理すべきオペランドを選択する。各
命令ごとに、この演算子と参照の情報は幾つかの
可変長フイールドに符号化される。命令内のこれ
らフイールドの順序は下の図に示すとおりであ
る。 各フイールドの一般形と機能は次の幾つかの項
目で説明する。 3.2.1 参照の種類 1つの命令の「参照フイールド」には2種類の
参照が現われる。「データ参照」はデータ・セグ
メント内のオペランドの論理アドレスの符号化し
た形である。ブランチ演算子と常に一緒に使用す
る「ブランチ参照」は、命令セグメント内の命令
の論理アドレスの符号化した形にすぎない。命令
が一定の場合、必要な参照の種類と数は演算子に
よつて一義的に決定される。例えば、ADD
INTEGER演算子が命令内に生ずると、3つのデ
ータ参照が必要となる。それらのうち2つは合計
すべき演算子を指定し、第3のデータ参照はどこ
に結果を記憶すべきかについての論理アドレスを
指定する。一方、無条件ブランチ演算子が必要と
するブランチ参照は1つであり、これは実行すべ
き次の命令の論理アドレスを指定する。 3.2.2 演算子 命令内で指定される演算子は2つのフイール
ド、つまり「類フイールド」と「オペレータ・コ
ード(OP.コード)」、内で符号化される。類フイ
ールドは演算子が属する演算子類を指定し、オペ
レータ・コード・フイールドはその類の内部から
実行すべきハードウエア・オペレーシヨンを選択
する。 演算子の類は演算子の順序(すなわち、必要な
データ参照の数)と関連するオペランドの長さに
よつて決定される。BRANCH演算子のような
「オーダ・ゼロ」演算子はデータ参照を必要とし
ない。「オーダ・ワン」演算子はデータ参照を1
つ必要とし、このデータ参照は長さの範囲が1バ
イトから拡張ワードまでであるオペランドを指定
する。この参照は転送元オペランドと転送先アド
レスのいずれかを指定する。例えば、条件付きブ
ランチ演算子は1個のデータ参照を必要とし、こ
のデータ参照はテストすべき条件を供給するバイ
ト・オペランドを指定する。あるいはZERO
REAL演算子は、演算子の働きによつてゼロにセ
ツトされるダブルワードのアドレスを指定するデ
ータ参照を1つ必要とする。「オーダ・ツー」演
算子はデータ参照を2つ必要とし、これらは長さ
が1バイトから1拡張ワードまでの範囲のオペラ
ンドを独立に指定する。大部分の場合、一方の参
照は処理すべき転送元オペランドを指定し、他方
の参照は結果に関する「転送先アドレス」を指定
する。例えば、EQUAL ZERO INTEGER演算
子はワード・ソース・オペランドとゼロが等しい
かどうかを比較し、そして1バイトである論理結
果を生ずる。最後に、「オーダ・スリー」演算子
はデータ参照を3つ必要とし、これらもまたオペ
ランド長の幾つかの組合せを指定する。大部分の
場合、3つの参照は演算子が処理すべき2つの転
送元オペランドと、オペランドの結果についての
1つの転送先アドレスを指定する。NOT
EQUAL SHORT INTEGER演算子は2つのダ
ブルバイト転送元オペランドが不一致かどうかを
比較し、そして1バイトである論理結果を生ず
る。 3.2.3 データ参照 各演算子が必要とするデータ参照は様々に供給
されて、融通性とメモリの使用効率が高められ
る。オペランドの論理アドレスの符号化した形
は、命令の参照フイールドに直接現われる。その
ような「明示データ参照」は、現在アクセス可能
な任意のデータ・セグメント内のオペランドにラ
ンダム・アクセスする。しかし、オペランドを現
在のオペランド・スタツクの一番上から読み取る
か、そこに結果を書き込む場合には、明示データ
参照は不要である。その代わり、「暗黙データ参
照」が使用される。各必要なデータ参照が明示的
に与えられるのか、暗黙的に与えられるかを指定
するために、「書式フイールド」がオーダ1、2
または3の演算子と共に必要とされる。 3.2.3.1 明示データ参照 符号化された暗黙データ参照は、所望のオペラ
ンドの全論理アドレスの両構成要素を決定するた
めに、プロセツサにとつて十分な情報を含まなけ
ればならない。論理アドレスのセグメント・セレ
クタ構成要素は、データ参照内で直接、またはデ
ータ・セグメント内のデータ値内で間接的に指定
することができる。変位構成要素は2つ以上の方
法でも指定することができる。データ参照内で直
接指定されるのに加えて、データ・セグメントか
らのデータ値とデータ基準内の情報の組合せから
でも決定することができる。これによつて、複雑
なデータ構造が効率的にアクセスされる。 書式は、1つの明示データ参照によつて参照さ
れるオペランドが命令の実行中に2つ以上の役割
を演ずることを可能とする情報を提供する。一例
として、メモリ内の整数の値を増大する命令を考
えてみる。この命令は演算子がオーダ・ツーであ
り、しかも2つのオペランドがいずれもメモリの
1ワードを占めることを指定する類フイールドを
含み、書式フイールドがこれに続き、この書式フ
イールドの値は1つの参照が転送元オペランドを
取り出すと共にその結果を記憶するために使用す
べき論理アドレスを指定することを指示する。増
加すべき整数への明示データ参照がそれに続き、
そして最後に、オーダ・ツー演算子
INCREMENT INTEGERのオペレータ・コー
ド・フイールドが続く。 3.2.3.2 暗黙データ参照 高レベル言語命令文 A=A+B*C を考慮する命令を指示することは書式フイールド
にとつて可能である。 この命令文の命令ストリーム・フラグメント
(断片)は2つの命令より成り、以下の形を有す
る。 A、BおよびCは整数オペランドと仮定する。
第1類のフイールド(上の図で右端のフイール
ド)は、演算子がオーダ・スリーを有し、しかも
3つの参照がすべてワード・オペランドを参照す
ることを指定する。最初の書式フイールドは、明
示データ参照が2つあり、しかもこれら2つの明
示参照は2つの転送元オペランドのみを供給する
はずであることを指定するコードを含む。掛け算
の結果がオペランド・スタツクに退避されること
になるように、転送先は暗黙的に参照される。第
2種のフイールドは第1種のフイールドと同じ
で、演算子がオーダ・ツリーを有し、しかも3つ
の参照すべてがワード・オペランドを参照するこ
とを指定する。第2の書式は、明示データ参照が
1つあり、しかもこの参照が第1の転送元オペラ
ンドと転送先の両方に使用されるものであること
を指定する。第2の転送元オペランドは暗黙的に
参照され、そして命令が実行されるとオペラン
ド・スタツクから取り出される。 3.3 オペランド・スタツクの挙動 オペランド・スタツクは、暗黙参照が命令内で
使用されるときは常に一様に処理される。演算子
が退避演算子の1つでなければ、転送元オペラン
ドを得るためにオペランド・スタツクを用いる
と、その値は呼び出される際にスタツクから取り
出される。退避演算子はオペランド・スタツクの
一番上の値を取り出すことなく、その値を読み取
る能力を与える。オペランド・スタツクが転送先
と指定されるときには常に、オペレーシヨンの結
果はスタツクに退避される。オペランド・スタツ
クがオーダ・スリー演算子の両方の演算子の転送
元として使用される場合には、命令内の書式フイ
ールドはスタツク上で2つの演算子が現われる順
序を指定する。 3.4 命令の逐次実行 通常プロセツサは、実行されているプロセスの
現在の命令セグメントから逐次取られる命令によ
つて制御される。命令は、プロセツサの内部で維
持される「命令ポインタ(IP)」から得られるビ
ツト変位を用いて、現在の命令セグメントから呼
び出される。その命令が実行された後、命令ポイ
ンタは次の逐次命令を指示するようその命令内の
ビツト数だけ増加される。 3.5 ブランチング この逐次的な「制御権の流れ」は、ブランチ演
算子の使用によつて変更することができる。ブラ
ンチ演算子には、無条件、条件付き、間接および
インタセグメントの4種類がある。これらの演算
子はブランチのターゲツトである命令の位置を突
き止める情報を必要とする。これは無条件ブラン
チ演算子と条件付きブランチ演算子に関してはブ
ランチ参照によつて、間接ブランチ演算子に関し
ては短序数値へのデータ参照によつて、そしてイ
ンタセグメント・ブランチ演算子に関しては短序
数値への2つのデータ参照によつて与えられる。 無条件ブランチ演算子を含む命令を実行する
と、次の命令はブランチ参照によつて指定される
ものとなる。条件付きブランチ演算子は、先に実
行された命令によつて発生される真・偽状態の値
(すなわち、論理値)によりブランチが取つたり
取られなかつたりするのを除いて、同じように振
舞う。条件付きブランチ演算子はすべてオーダ・
ワンである。この1番で必要なデータ参照はテス
トすべき論理値の位置を指定する。条件付きブラ
ンチ演算子は2つあり、状態が真ならばこれらの
うちの一方によつてブランチが生じ、状態が偽な
らば他方によつてブランチが生ずる。 2種類のブランチ参照は条件付きブランチ演算
子、無条件ブランチ演算子と共に使用される。こ
れら演算子は現在の命令セグメント内部でのみブ
ランチが取られるようにするので、これら参照は
論理アドレスのセグメント・セレクタ構成要素を
指定する必要がない。第1の種類の「相対ブラン
チ参照」は、ブランチ演算子を含む命令の初めに
関してビツト変位をターゲツト命令に送る10ビツ
トの符号付き整数値である。第2の種類の「絶対
ブランチ参照」は、現在の命令セグメントのベー
スに関してビツト変位をターゲツト命令に送る16
ビツトの符号なし整数である。この値はブランチ
を実行するために、命令ポインタの新しい値とし
て使用されるにすぎない。 BRANCH INDIRECT演算子は、任意のセグ
メントからの任意の16ビツトの値を命令ポインタ
に格納するメカニズムを提供する。演算子はオー
ダ・ワンであり、この1番で必要なデータ参照は
新しい命令ポインタとして使用すべき短序数値を
指定する。別の見方をすると、短序数値は現在の
命令セグメントのベースからターゲツト命令まで
のビツトの変位を与える。 BRANCH INTERSEGMENT演算子は、現
在の命令を変更すると共にそのセグメント内部の
ターゲツト命令に分岐する能力を与える。この演
算子はオーダ・ツーである。第1のデータ参照に
よつて参照される短序数値は新しい命令セグメン
トを指定し、第2のデータ基準によつて参照され
る短序数はそのセグメントの初めからターゲツト
命令までのビツト変位を生ずる。 4.0 システム・オブジエクト構造 システムは機能的階層内で定義される各種の計
算オブジエクトを表わすために、非原始的でハー
ドウエアで認識されるデータ構造を広く使用す
る。便利さと効率と論理的一貫性のために、これ
らのシステムのデータ構造は「一般化されたデー
タ処理」という見出しの下で説明する原始的な種
類のデータから作る。これによつて本システムの
アクセス機構の安全性と保護が阻害されることな
く、どんな一般化されたデータ処理装置によつて
もシステム・オブジエクトは作られ処理される。 システム・オブジエクトの認識と使用を支援す
る機能はまた、使用前にそれらの種類と構造を絶
えずチエツクする。いずれかの仕様からのずれが
プロセツサによつて検出されると、例外が認識さ
れる。そのような例外は、ソフトウエアに知らせ
なければならないが現在の命令の流れの継続実行
を阻止しない事象と、直ちにソフトウエアの注目
を必要とする事象のいずれかである。多数のその
ような例外は後述する。例外処理機構は「例外処
理」という見出しの下で詳細に説明する。 4.1 セグメント すべての種類のシステム・オブジエクトの論理
的基礎としてのセグメントの使用法は重要であ
る。それは、セグメントがすべてのアドレスの展
開とアクセス制御の基礎を成すからである。セグ
メントはまた、すべてのもつと大きくてもつと専
門的な計算オブジエクトのビルデイング・ブロツ
クとして働き、多重レベルまたは仮想メモリ能力
を実現する基礎である。通常、1個のセグメント
は1個のシステム・オブジエクトについて定義さ
れるデータ構造を含むのに十分である。しかし、
システム・オブジエクトが原始データと他のシス
テム・オブジエクトを合成したものである場合に
は、多数のセグメントが使用される。 4.1.1 セグメント・テーブルおよびセグメント
記述子 各セグメントは、セグメント・テーブル(例え
ば第2A図のセグメント・テーブル50)という
ある種のシステム・オブジエクト内に指定された
その物理的なベース・アドレス、長さおよびその
他の情報を有する。セグメント・テーブル・エン
トリ内の各エントリ(入力)は8バイトの長さで
あり、1個のセグメントを記述する。セグメン
ト・テーブル・エントリはセグメント記述子と呼
称され、以下の構造を有する。
【表】
各セグメント記述子の22ビツト・ベース・アド
レス・フイールドは、1個のセグメントの全24ビ
ツトのワード整列した(すなわち、2つの最下位
ビツトはゼロであると暗示されている)物理ベー
ス・アドレスを指定する。 各セグメントの長さはそのセグメント記述子の
第3のダブルバイト内に見出されて長さフイール
ドと呼称される短序数によつて与えられる。この
フイールドの値はバイト内のセグメントの長さよ
り1つ小さい。長さフイールドはセグメントを1
バイトほど短かいと定義するか、あるいは65536
バイトほど長いと定義することを可能とする。セ
グメントが論理アドレスによつて参照されるごと
に、そのアドレスの変位要素は長さフイールドの
値に比較される。変位がこの値を越えると、セグ
メント変位のフオールトが起こる。1つのセグメ
ント・テーブルは1つのセグメントによつて表わ
されるため、最大で8192のセグメント記述子を任
意の1つのセグメント・テーブル内に保持するこ
とができる。 1ビツト・ベース種類フイールドはセグメント
の基本的な内容、すなわちアクセス・リストまた
はデータ・セグメントを指示する。すべてのハー
ドウエア・オペレータは、そのオペランドが指定
のベース種類のオブジエクトから得られるか、そ
のオブジエクトによつて表わされることを要求す
る。命令の実行中にアクセスされる任意のオブジ
エクトのベース種類がこの仕様に一致しなけれ
ば、ベース種類不一致フオールトが発生する。 5ビツトのシステム種類フイールドは、2つの
ベース種類から作られたプロセツサ認識種類のど
れが(あれば)関連のセグメントによつて表わさ
れるのかを指示する。すべてのハードウエア・オ
ペレータは、そのオペランドが指定のシステム種
類のオブジエクトから得られるか、そのオブジエ
クトによつて表わされることを要求する。命令の
実行中にアクセスされる任意のオブジエクトのシ
ステム種類がこの仕様に一致しなければ、システ
ム種類不一致フオールトが生ずる。 4.1.2 システムの種類とその符号化 アクセス・リストから作られたシステムの種類
とそれらに関連するシステム種類フイールドの符
号は次のとおりである。 00000−アクセス・リスト 00001−ドメイン 00010−バツフアなし通信ポート 00011−GDPプロセス 00100−バツフア付き通信ポート 00101−デイスパツチ・ポート 00110−一般化されたデータ処理装置 00111−入出力プロセツサ 01000−私用アクセス・リスト 01001−留保 01010−留保 01011−GDPコンテクスト 01101−IOPコンテクスト 01110−ストレージ・リソース 01111−IOPプロセス 10000ないし11111−留保 データ・セグメントから作つたシステムの種類
とそれらに関連するシステム種類フイールドの符
号は次のとおりである。 00000−データ・セグメント 00001−GDP命令セグメント 00010−IOP命令セグメント 00011−セグメント・テーブル 00100−セグメント・テーブル・ダイレクトリ 00101−オペランド・スタツク 00110−コンテクスト・コントロール・セグメ
ント 00111−プロセス・コントロール・セグメント 01000−ラベル 01001−経路レベル・テーブル 01010−ストレージ・リソース・コントロー
ル・セグメント 01011−トランス 01100−バツフア付きポート・コントロール・
セグメント 01101−デイスパツチ・ポート・コントロー
ル・セグメント 01110−プロセツサ・コントロール・セグメン
ト 01111−グローバル通信セグメント 10000ないし11111−留保 各セグメント記述子の4番目のダブルバイト
は、そのセグメントの経路カウントという12ビツ
トのフイールドを含む。このフイールドは、その
セグメントのために現在存在しているアクセス経
路の総数を追跡するために使用する。経路カウン
トはセグメントのアクセス経路が複写または削除
されるときに常に、自動的にかつ分割不能にそれ
ぞれ増加または減少させられる。経路カウントが
オーバフローまたはアンダフローの結果としてゼ
ロに達すると、経路カウント通知が生ずる。 1ビツトのストレージ関連フイールドは、この
セグメント記述子に関連するストレージがあるか
どうかを指示する。ゼロの値はこのセグメント記
述子に関連するストレージがないことを指示す
る。1の値はこのセグメント記述子に関連するス
トレージがあることを指示する。このフイールド
はプロセツサがセグメント記述子にアクセスする
ごとにプロセツサによつてチエツクされる。その
ビツトがゼロであると、関連するストレージなし
のフオールトが生ずる。そうでないときは、実行
は正常に続行する。 1ビツトの正当フイールドは、このセグメント
記述子を介してセグメントを参照することができ
るかどうかを指示する。このフイールドは、プロ
セツサがセグメント記述子にアクセスするごとに
プロセツサによつてチエツクされる。そのビツト
がゼロであると、セグメント記述子正当性フオー
ルトが生ずる。そうでないときは、実行は正常に
続行する。主メモリとそれより低速の2次メモ
リ・システムの間のセグメントの制御された運動
に基づいて、フオールト応答機構を通して正当フ
イールドはシステム・ソフトウエアによつて使用
され、分割された仮想メモリ能力が実行される。 1ビツトのアクセスされるフイールドは、関連
のセグメントが何らかの実行中のプロセスによつ
てアクセスされたかどうかを指示する。このフイ
ールドは、セグメント記述子が割り当てられたと
きゼロに設定される。このフイールドは、ビツト
がゼロであるセグメント記述子にプロセツサがア
クセスするときは常に、そのプロセツサによつて
1の値に更新される。 同様にして1ビツトの変更されるフイールド
は、関連のセグメント内に含まれている情報が何
らかの実行中のプロセスによつて修正された(す
なわち、書き込まれた)かどうかを指示する。こ
のフイードは、セグメント記述子が割り当てられ
るときゼロに設定される。このフイールドは、ビ
ツトがゼロであるセグメント記述子に関連するセ
グメントにプロセツサが書き込むときは常に、そ
のプロセツサによつて1の値に更新される。 2ビツトの記述子種類フイールドは、この記述
子がセグメント記述子、経路レベル記述子、フリ
ー・セグメント記述子リスト・ヘツド、非割り当
てセグメント記述子のいずれであるかを指示す
る。ゼロの値は記述子がセグメント記述子である
ことを指示する。1の値は記述子が経路レベル記
述子であることを指示する。2の値は、記述子が
フリー(すなわち、非割り当て)・セグメント記
述子のリストの頭であることを指示する。3の値
は記述子が割り当てられないことを指示する。演
算子が、そのオペランドが指定の種類の記述子を
介して供給されるか記述子であることを要求し、
その演算子を含む命令の実行中にアクセスされる
記述子がその種類でないときは、記述子種類フオ
ールトが発生する。 1ビツトの矯正フイールドは、このセグメント
記述子のアクセス記述子が移動または複写された
かどうかを指示する。ゼロの値は移動や複写が生
じなかつたことを指示する。1の値は移動または
複写が生じたことを指示する。このフイールドは
セグメント記述子が割り当てられたとき1に設定
される。このフイールドは、ビツトがゼロである
セグメント記述子のアクセス記述子をプロセツサ
が移動または複写するとき常に、そのプロセツサ
によつて1の値に更新される。記述子とセグメン
トの矯正の多くは経路カウント機構を介して実現
することができるけれども、循環構造つまり自己
参照構造の矯正はガーベツジ・コレクシヨン(不
要情報整理)というソフトウエア機能なしには実
現することができない。ハードウエアで維持され
る矯正ビツトは、そのような機能を実施する際に
ソフトウエアを助けるよう設計される。 4.1.3 セグメント・テーブル・ダイレクトリと
セグメント・テーブル セグメントの数を、従つてアドレス指定するこ
とができるオブジエクトの数を、かなり増加する
ために、本システムは多数のセグメント・テーブ
ルを定義して使用することを可能とする。これら
多数のセグメント・テーブルをアドレス指定する
ために、セグメント・テーブルのテーブル、つま
りセグメント・テーブル・ダイレクトリ・オブジ
エクト(第2A図、68)、が定義される。基本
的にはそのようなダイレクトリは、他のセグメン
ト・テーブルのセグメント記述子(例えば70)
を含むだけであることを除いて、他のすべてのセ
グメント・テーブルに類似している。 個々のセグメント記述子を選択するため、アク
セス記述子によつて供給されるセグメント索引は
2つの要素を有するように再定義される。第1の
索引は、所望のセグメント記述子を含むセグメン
ト・テーブル50に関する、プロセツサの現在の
セグメント記述子70への索引である。第2の要
素は、第1の索引によつて選択されるセグメン
ト・テーブル50への索引である。そのセグメン
ト・テーブル内で索引付けられるセグメント記述
子52,54は所望のセグメント記述子である。
後述するようにアクセス記述子の書式が与えられ
ると、セグメント・テーブル・ダイレクトリ索引
は8ビツトの値に限定される。これによつてセグ
メント・テーブル・ダイレクトリの実効サイズは
256エントリに制限される。ただしそのような条
件でないときは、セグメント・テーブル・ダイレ
クトリは通常のセグメント・テーブル・オブジエ
クトで可能な8192エントリを含むことができる。 アーキテクチヤは使用することができるセグメ
ント・テーブル・ダイレクトリの総数に何らの制
限も課さないが、1個のプロセツサは一度にその
ようなテーブルを1つ使用することができるだけ
である。セグメント・ダイレクトリを変更するた
めには、システム・ソフトウエアがプロセツサに
自らリセツトするように命令しなければならな
い。しかし、2つ以上のセグメント・テーブル・
ダイレクトリを使用する1つのソフトウエア・シ
ステムは効率的に働かず、多分信頼性に欠けるの
で、そのようなセグメント・テーブル・ダイレク
トリの切替えは非常にまれである。この多重セグ
メント・テーブル・ダイレクトリ能力は、幾つか
の完全で独立したソフトウエア・システムが1つ
の物理システムの内部で共存することを可能とす
るものである。例えば多重セグメント・テーブ
ル・ダイレクトリは、同じハードウエアに作用し
ている別個の、しかし既存のソフトウエア・シス
テムの監督の下で新しいソフトウエア・システム
を開発しテストすることを可能とする。 4.1.4 一時セグメント・テーブル・ダイレクト
リ どのプロセツサでも通常の動作を開始する前
に、その現在のセグメント・テーブル・ダイレク
トリの位置を確定しなければならない。不幸なこ
とに、このダイレクトリの位置は論理アドレスに
よつて指定され、この論理アドレスは必要な物理
アドレス情報を得るためにセグメント・テーブル
の使用を必要とする。この見掛け上の堂々巡り
は、プロセツサの初期設定中に使用する一時セグ
メント・テーブル・ダイレクトリ(第2A図、7
2)を定義することによつて解決される。一時セ
グメント・テーブル・ダイレクトリの物理ベー
ス・アドレスは、物理メモリ・アドレスゼロと定
義される。そこにあるのは前述のようなセグメン
ト記述子であり、これは一時セグメント・テーブ
ル・ダイレクトリの記述を完成するのに必要な情
報の残りを提供する。 プロセツサの初期設定に関する一時セグメン
ト・テーブル・ダイレクトリの使用方法は、「ア
クセス環境処理と通信」という見出しの下で説明
する。 4.2 アクセス・リスト アクセス情報を隅発的または悪意に基づく損害
から保護するために、アクセス記述子の形のすべ
てのアクセス情報は、アクセス・リストと総称さ
れる別個のセグメントに保持される。アクセス・
リスト(AL)は最も異常な環境を除くあらゆる
環境で通常のデータを含まなかつたり通常データ
としてアクセスされないかもしれず、そしてアク
セス・リストまたはアクセス・リストから作られ
た他のシステム・オブジエクトにある情報だけを
アクセス情報として使用することができる。アク
セス・リストである、第2Aないし4B図のオブ
ジエクトはそのようなものとして、すなわち、ベ
ース種類=ALと表記されている。 4.2.1 アクセス記述子とアクセス経路 その幾つかの重要な機能の中でアクセス記述子
は、論理アドレスのセグメント・セレクタを、プ
ロセツサの現在のセグメント・テーブル・ダイレ
クトリおよび幾つかの可能なセグメント・テーブ
ルの1つを介して関連のセグメント記述子を位置
決めする1対の索引に変換する手段として働く。
アクセス記述子によつて行われるマツピングのレ
ベルは非常に有用である。これによつてドメイン
のオペレーシヨンは、他のドメインでの他のオペ
レーシヨンによつて使用される論理アドレスに無
関係に、それ自身の論理アドレスの集合を使用す
ることが可能となる。その結果、ドメインは独立
にコンパイルつまり編成翻訳することができる。
幾つかのドメインを結び付けるには、リンケー
ジ・プログラムつまりコンストラクタは単に各ド
メインの各アクセス・リスト内のあらかじめ定義
した位置に適当なアクセス記述子を置くだけであ
る。このリンク方法によつて、従来のコンピユー
タ・システムで非常に一般的であつたオブジエク
ト・テキスト編集の必要性は完全になくなる。こ
れによつて、ソフトウエアでの動的プログラム・
リンク機能の実行が簡単になる。アクセス記述子
によつて行われるマツピングのレベルはまた個々
のプログラムによつて使用されるセグメント・セ
レクタのサイズを縮小するのに役立ち、従つてプ
ログラムの規模を最小とするのに役立つ。 アクセス記述子とそれに関連するセグメント記
述子の組合せによつて論理アドレスに与えられる
マツピングはアクセス経路という。以下の図はそ
のようなアクセス経路の1つによつて行われるマ
ツピングつまりリンケージを示すものである。 アクセス記述子 | 0 ↓ セグメント記述子 ↓ セグメント 各アクセス記述子はオブジエクトへの独自の経
路を提供するので、このような経路の多くが存在
することができることは言うまでもない。これ
は、同じセグメントに対して異なるアクセス記述
子が多くの異なるアクセス・ライトを供給する能
力によつて例示される。どの1つのオブジエクト
への経路の数でも、セグメント記述子内の経路カ
ウント・フイールドのサイズによつて制限され、
4096経路である。アクセス記述子とセグメント記
述子の間のリンケージ内の−0−の上は、セグメ
ント・テーブル・ダイレクトリによるマツピング
のレベルを指示することに注意を要する。 アクセス記述子のすべては以下のような同じ書
式を有する。
レス・フイールドは、1個のセグメントの全24ビ
ツトのワード整列した(すなわち、2つの最下位
ビツトはゼロであると暗示されている)物理ベー
ス・アドレスを指定する。 各セグメントの長さはそのセグメント記述子の
第3のダブルバイト内に見出されて長さフイール
ドと呼称される短序数によつて与えられる。この
フイールドの値はバイト内のセグメントの長さよ
り1つ小さい。長さフイールドはセグメントを1
バイトほど短かいと定義するか、あるいは65536
バイトほど長いと定義することを可能とする。セ
グメントが論理アドレスによつて参照されるごと
に、そのアドレスの変位要素は長さフイールドの
値に比較される。変位がこの値を越えると、セグ
メント変位のフオールトが起こる。1つのセグメ
ント・テーブルは1つのセグメントによつて表わ
されるため、最大で8192のセグメント記述子を任
意の1つのセグメント・テーブル内に保持するこ
とができる。 1ビツト・ベース種類フイールドはセグメント
の基本的な内容、すなわちアクセス・リストまた
はデータ・セグメントを指示する。すべてのハー
ドウエア・オペレータは、そのオペランドが指定
のベース種類のオブジエクトから得られるか、そ
のオブジエクトによつて表わされることを要求す
る。命令の実行中にアクセスされる任意のオブジ
エクトのベース種類がこの仕様に一致しなけれ
ば、ベース種類不一致フオールトが発生する。 5ビツトのシステム種類フイールドは、2つの
ベース種類から作られたプロセツサ認識種類のど
れが(あれば)関連のセグメントによつて表わさ
れるのかを指示する。すべてのハードウエア・オ
ペレータは、そのオペランドが指定のシステム種
類のオブジエクトから得られるか、そのオブジエ
クトによつて表わされることを要求する。命令の
実行中にアクセスされる任意のオブジエクトのシ
ステム種類がこの仕様に一致しなければ、システ
ム種類不一致フオールトが生ずる。 4.1.2 システムの種類とその符号化 アクセス・リストから作られたシステムの種類
とそれらに関連するシステム種類フイールドの符
号は次のとおりである。 00000−アクセス・リスト 00001−ドメイン 00010−バツフアなし通信ポート 00011−GDPプロセス 00100−バツフア付き通信ポート 00101−デイスパツチ・ポート 00110−一般化されたデータ処理装置 00111−入出力プロセツサ 01000−私用アクセス・リスト 01001−留保 01010−留保 01011−GDPコンテクスト 01101−IOPコンテクスト 01110−ストレージ・リソース 01111−IOPプロセス 10000ないし11111−留保 データ・セグメントから作つたシステムの種類
とそれらに関連するシステム種類フイールドの符
号は次のとおりである。 00000−データ・セグメント 00001−GDP命令セグメント 00010−IOP命令セグメント 00011−セグメント・テーブル 00100−セグメント・テーブル・ダイレクトリ 00101−オペランド・スタツク 00110−コンテクスト・コントロール・セグメ
ント 00111−プロセス・コントロール・セグメント 01000−ラベル 01001−経路レベル・テーブル 01010−ストレージ・リソース・コントロー
ル・セグメント 01011−トランス 01100−バツフア付きポート・コントロール・
セグメント 01101−デイスパツチ・ポート・コントロー
ル・セグメント 01110−プロセツサ・コントロール・セグメン
ト 01111−グローバル通信セグメント 10000ないし11111−留保 各セグメント記述子の4番目のダブルバイト
は、そのセグメントの経路カウントという12ビツ
トのフイールドを含む。このフイールドは、その
セグメントのために現在存在しているアクセス経
路の総数を追跡するために使用する。経路カウン
トはセグメントのアクセス経路が複写または削除
されるときに常に、自動的にかつ分割不能にそれ
ぞれ増加または減少させられる。経路カウントが
オーバフローまたはアンダフローの結果としてゼ
ロに達すると、経路カウント通知が生ずる。 1ビツトのストレージ関連フイールドは、この
セグメント記述子に関連するストレージがあるか
どうかを指示する。ゼロの値はこのセグメント記
述子に関連するストレージがないことを指示す
る。1の値はこのセグメント記述子に関連するス
トレージがあることを指示する。このフイールド
はプロセツサがセグメント記述子にアクセスする
ごとにプロセツサによつてチエツクされる。その
ビツトがゼロであると、関連するストレージなし
のフオールトが生ずる。そうでないときは、実行
は正常に続行する。 1ビツトの正当フイールドは、このセグメント
記述子を介してセグメントを参照することができ
るかどうかを指示する。このフイールドは、プロ
セツサがセグメント記述子にアクセスするごとに
プロセツサによつてチエツクされる。そのビツト
がゼロであると、セグメント記述子正当性フオー
ルトが生ずる。そうでないときは、実行は正常に
続行する。主メモリとそれより低速の2次メモ
リ・システムの間のセグメントの制御された運動
に基づいて、フオールト応答機構を通して正当フ
イールドはシステム・ソフトウエアによつて使用
され、分割された仮想メモリ能力が実行される。 1ビツトのアクセスされるフイールドは、関連
のセグメントが何らかの実行中のプロセスによつ
てアクセスされたかどうかを指示する。このフイ
ールドは、セグメント記述子が割り当てられたと
きゼロに設定される。このフイールドは、ビツト
がゼロであるセグメント記述子にプロセツサがア
クセスするときは常に、そのプロセツサによつて
1の値に更新される。 同様にして1ビツトの変更されるフイールド
は、関連のセグメント内に含まれている情報が何
らかの実行中のプロセスによつて修正された(す
なわち、書き込まれた)かどうかを指示する。こ
のフイードは、セグメント記述子が割り当てられ
るときゼロに設定される。このフイールドは、ビ
ツトがゼロであるセグメント記述子に関連するセ
グメントにプロセツサが書き込むときは常に、そ
のプロセツサによつて1の値に更新される。 2ビツトの記述子種類フイールドは、この記述
子がセグメント記述子、経路レベル記述子、フリ
ー・セグメント記述子リスト・ヘツド、非割り当
てセグメント記述子のいずれであるかを指示す
る。ゼロの値は記述子がセグメント記述子である
ことを指示する。1の値は記述子が経路レベル記
述子であることを指示する。2の値は、記述子が
フリー(すなわち、非割り当て)・セグメント記
述子のリストの頭であることを指示する。3の値
は記述子が割り当てられないことを指示する。演
算子が、そのオペランドが指定の種類の記述子を
介して供給されるか記述子であることを要求し、
その演算子を含む命令の実行中にアクセスされる
記述子がその種類でないときは、記述子種類フオ
ールトが発生する。 1ビツトの矯正フイールドは、このセグメント
記述子のアクセス記述子が移動または複写された
かどうかを指示する。ゼロの値は移動や複写が生
じなかつたことを指示する。1の値は移動または
複写が生じたことを指示する。このフイールドは
セグメント記述子が割り当てられたとき1に設定
される。このフイールドは、ビツトがゼロである
セグメント記述子のアクセス記述子をプロセツサ
が移動または複写するとき常に、そのプロセツサ
によつて1の値に更新される。記述子とセグメン
トの矯正の多くは経路カウント機構を介して実現
することができるけれども、循環構造つまり自己
参照構造の矯正はガーベツジ・コレクシヨン(不
要情報整理)というソフトウエア機能なしには実
現することができない。ハードウエアで維持され
る矯正ビツトは、そのような機能を実施する際に
ソフトウエアを助けるよう設計される。 4.1.3 セグメント・テーブル・ダイレクトリと
セグメント・テーブル セグメントの数を、従つてアドレス指定するこ
とができるオブジエクトの数を、かなり増加する
ために、本システムは多数のセグメント・テーブ
ルを定義して使用することを可能とする。これら
多数のセグメント・テーブルをアドレス指定する
ために、セグメント・テーブルのテーブル、つま
りセグメント・テーブル・ダイレクトリ・オブジ
エクト(第2A図、68)、が定義される。基本
的にはそのようなダイレクトリは、他のセグメン
ト・テーブルのセグメント記述子(例えば70)
を含むだけであることを除いて、他のすべてのセ
グメント・テーブルに類似している。 個々のセグメント記述子を選択するため、アク
セス記述子によつて供給されるセグメント索引は
2つの要素を有するように再定義される。第1の
索引は、所望のセグメント記述子を含むセグメン
ト・テーブル50に関する、プロセツサの現在の
セグメント記述子70への索引である。第2の要
素は、第1の索引によつて選択されるセグメン
ト・テーブル50への索引である。そのセグメン
ト・テーブル内で索引付けられるセグメント記述
子52,54は所望のセグメント記述子である。
後述するようにアクセス記述子の書式が与えられ
ると、セグメント・テーブル・ダイレクトリ索引
は8ビツトの値に限定される。これによつてセグ
メント・テーブル・ダイレクトリの実効サイズは
256エントリに制限される。ただしそのような条
件でないときは、セグメント・テーブル・ダイレ
クトリは通常のセグメント・テーブル・オブジエ
クトで可能な8192エントリを含むことができる。 アーキテクチヤは使用することができるセグメ
ント・テーブル・ダイレクトリの総数に何らの制
限も課さないが、1個のプロセツサは一度にその
ようなテーブルを1つ使用することができるだけ
である。セグメント・ダイレクトリを変更するた
めには、システム・ソフトウエアがプロセツサに
自らリセツトするように命令しなければならな
い。しかし、2つ以上のセグメント・テーブル・
ダイレクトリを使用する1つのソフトウエア・シ
ステムは効率的に働かず、多分信頼性に欠けるの
で、そのようなセグメント・テーブル・ダイレク
トリの切替えは非常にまれである。この多重セグ
メント・テーブル・ダイレクトリ能力は、幾つか
の完全で独立したソフトウエア・システムが1つ
の物理システムの内部で共存することを可能とす
るものである。例えば多重セグメント・テーブ
ル・ダイレクトリは、同じハードウエアに作用し
ている別個の、しかし既存のソフトウエア・シス
テムの監督の下で新しいソフトウエア・システム
を開発しテストすることを可能とする。 4.1.4 一時セグメント・テーブル・ダイレクト
リ どのプロセツサでも通常の動作を開始する前
に、その現在のセグメント・テーブル・ダイレク
トリの位置を確定しなければならない。不幸なこ
とに、このダイレクトリの位置は論理アドレスに
よつて指定され、この論理アドレスは必要な物理
アドレス情報を得るためにセグメント・テーブル
の使用を必要とする。この見掛け上の堂々巡り
は、プロセツサの初期設定中に使用する一時セグ
メント・テーブル・ダイレクトリ(第2A図、7
2)を定義することによつて解決される。一時セ
グメント・テーブル・ダイレクトリの物理ベー
ス・アドレスは、物理メモリ・アドレスゼロと定
義される。そこにあるのは前述のようなセグメン
ト記述子であり、これは一時セグメント・テーブ
ル・ダイレクトリの記述を完成するのに必要な情
報の残りを提供する。 プロセツサの初期設定に関する一時セグメン
ト・テーブル・ダイレクトリの使用方法は、「ア
クセス環境処理と通信」という見出しの下で説明
する。 4.2 アクセス・リスト アクセス情報を隅発的または悪意に基づく損害
から保護するために、アクセス記述子の形のすべ
てのアクセス情報は、アクセス・リストと総称さ
れる別個のセグメントに保持される。アクセス・
リスト(AL)は最も異常な環境を除くあらゆる
環境で通常のデータを含まなかつたり通常データ
としてアクセスされないかもしれず、そしてアク
セス・リストまたはアクセス・リストから作られ
た他のシステム・オブジエクトにある情報だけを
アクセス情報として使用することができる。アク
セス・リストである、第2Aないし4B図のオブ
ジエクトはそのようなものとして、すなわち、ベ
ース種類=ALと表記されている。 4.2.1 アクセス記述子とアクセス経路 その幾つかの重要な機能の中でアクセス記述子
は、論理アドレスのセグメント・セレクタを、プ
ロセツサの現在のセグメント・テーブル・ダイレ
クトリおよび幾つかの可能なセグメント・テーブ
ルの1つを介して関連のセグメント記述子を位置
決めする1対の索引に変換する手段として働く。
アクセス記述子によつて行われるマツピングのレ
ベルは非常に有用である。これによつてドメイン
のオペレーシヨンは、他のドメインでの他のオペ
レーシヨンによつて使用される論理アドレスに無
関係に、それ自身の論理アドレスの集合を使用す
ることが可能となる。その結果、ドメインは独立
にコンパイルつまり編成翻訳することができる。
幾つかのドメインを結び付けるには、リンケー
ジ・プログラムつまりコンストラクタは単に各ド
メインの各アクセス・リスト内のあらかじめ定義
した位置に適当なアクセス記述子を置くだけであ
る。このリンク方法によつて、従来のコンピユー
タ・システムで非常に一般的であつたオブジエク
ト・テキスト編集の必要性は完全になくなる。こ
れによつて、ソフトウエアでの動的プログラム・
リンク機能の実行が簡単になる。アクセス記述子
によつて行われるマツピングのレベルはまた個々
のプログラムによつて使用されるセグメント・セ
レクタのサイズを縮小するのに役立ち、従つてプ
ログラムの規模を最小とするのに役立つ。 アクセス記述子とそれに関連するセグメント記
述子の組合せによつて論理アドレスに与えられる
マツピングはアクセス経路という。以下の図はそ
のようなアクセス経路の1つによつて行われるマ
ツピングつまりリンケージを示すものである。 アクセス記述子 | 0 ↓ セグメント記述子 ↓ セグメント 各アクセス記述子はオブジエクトへの独自の経
路を提供するので、このような経路の多くが存在
することができることは言うまでもない。これ
は、同じセグメントに対して異なるアクセス記述
子が多くの異なるアクセス・ライトを供給する能
力によつて例示される。どの1つのオブジエクト
への経路の数でも、セグメント記述子内の経路カ
ウント・フイールドのサイズによつて制限され、
4096経路である。アクセス記述子とセグメント記
述子の間のリンケージ内の−0−の上は、セグメ
ント・テーブル・ダイレクトリによるマツピング
のレベルを指示することに注意を要する。 アクセス記述子のすべては以下のような同じ書
式を有する。
【表】
8ビツトのダイレクトリ索引フイールドは、
256個の可能なセグメント・テーブルの1つを選
択し位置決めするために使用する、プロセツサの
現在のセグメント・テーブル・ダイレクトリへの
索引を指定する。 13ビツトのセグメント索引フイールドは、所望
のセグメント記述子を選択し位置決めするために
使用するダイレクトリ索引によつて指定されるセ
グメント・テーブルへの索引を指定する。 1ビツトの正当フイールドは、このアクセス記
述子を介してセグメントがアクセスできるかどう
かを指示する。1の値はこのアクセス記述子が正
当で使用可能であることを指示する。ゼロの値は
このアクセス記述子が不当または無意味であるこ
とを指示する。このフイールドは、アクセス記述
子を介してプロセツサが参照を試みるごとにその
プロセツサによつてチエツクされる。アクセス記
述子が不当であると、アクセス記述子正当性フオ
ールトが生ずる。 アクセス記述子の残りのフイールドは、以下の
2つ項で説明する。 4.2.1.1 アクセス・ライト アクセス記述子は、任意のセグメントへのアク
セスの程度を制御する手段にもなる。同じセグメ
ントの異なるアクセス記述子が幾つかの環境に存
在するかもしれないので、セグメントのアクセス
方法はこれら環境の各々で異なる。例えば、ある
環境では、プロセスは所定のセグメント内でデー
タを読み取るのも書き込むのも許されるが、別の
環境では、プロセスはセグメントからデータを読
み取ることだけを許されよう。所定の方法で(例
えばデータを読み取るために)セグメントにアク
セス記述子は、所定の環境の内部の関連のセグメ
ントにアクセスするプロセスに利用できるアクセ
ス・ライトを精密に指定する情報を符号化した形
で含む。例えば、セグメントが一定のベース種類
であることのみを要求する参照を介してセグメン
トにアクセスするとき、ベース・ライト・フイー
ルドは利用できるアクセス・ライト(すなわち、
読み込み、書き込みまたは何らかの組合せ)を指
定する。 本システムは、読み出しや書き込みのような簡
単なベース・アクセス・ライトが有意義でないか
必ずしも利用できない、多数の異なる高めのレベ
ルの種類のオブジエクトを認識するので、アクセ
ス制御の第2のレベルはアクセス記述子によつて
行われる。例えば、セグメントが所定のベース種
類であるだけでなく所定のシステム種類(すなわ
ち、ベース種類アクセス・リストとシステム種類
バツフア付き通信ポート)も要求する参照を介し
てセグメントにアクセスする際、システム・ライ
ト・フイールドは利用できるアクセス・ライトを
指定する。従つて、各システム種類のアクセス記
述子に関連するのは、その特定のシステム種類の
オブジエクトの使用法のみに関する1組のアクセ
ス・ライトである。例えば、バツフア付き通信ポ
ート・アクセス記述子は、送信ライト、受信ライ
トまたは何らかの組合せを有することができる。
システム・ソフトウエアは新しいオブジエクトが
作られるごとに適当な種類を、そして新しいアク
セス経路が作られるごとにライトを設定する。ア
クセス記述子が特定のやり方でセグメントにアク
セスするのに使用されるときは常に、経路のライ
トと種類がそのアクセス方法を許可することをプ
ロセツサが自動的に確認する。確認されないとき
は試みられたアクセスは否定され、そして種類ま
たはライトのフオールトが生ずる。 すべての場合にライトの符号化は、フイールド
がゼロを含めばそのライトが許可されるという規
則に従う。逆にフイールドが1を含めば、そのラ
イトは否定される。アクセス記述子内での他の2
つのライト・フイールドは特殊な意味を有する。
留保されたライト・フイールドは、将来のハード
ウエアの定義と使用を可能とするために定義され
ている。非解読ライトは、ソフトウエアの定義と
解読のために利用することができる。 4.2.1.2 記述子制御 アクセス記述子は通常のデータ・セグメントの
内部に現われないようにすることによつて変更や
骨抜きから保護されるが、一部のライトが認めた
とき、所定の環境のアクセス・リストの内部でア
クセス記述子を移動することは可能である。さら
に、アクセス記述子の1つまたはグループをメツ
セージとしてコンテクスト、コルーチンまたはプ
ロセスに送ることによつて、アクセス記述子をパ
ラメータとして渡すことは可能である。同様にし
てアクセス記述子は結果として戻されることがあ
る。あらゆる場合に、記述子が現われるアクセ
ス・リストまたは環境に無関係に、アクセス記述
子がオブジエクトとその情報への一様な参照によ
つてアクセス記述子の好都合な動きが可能とな
る。 各アクセス記述子内部の別個のフイールドは記
述子の動く程度を制御する。ある意味ではこの制
御は、個々の記述子にのみ関連して関連のオブジ
エクトに関しないことを除いて、アクセス・ライ
トに類似している。あらゆる種類のアクセス記述
子にある、2ビツトの記述子制御フイールドの高
位のビツトはいつでも記述子を削除するライトを
指示する。そのビツトが設定され(すなわち、1
の値を有する)て記述子をオーバライトしようと
する試みがなされると、アクセス記述子削除フオ
ールトが生ずる。フイールドの次の下位のビツト
は、いつでも記述子を複写するライトを指示す
る。ビツトが設定されて記述子を複写しようとす
る試みがなされると、アクセス記述子複写フオー
ルトが生ずる。アクセス記述子が実際に複写され
るときには常に、アクセス記述子の新しい複写は
必ず削除ライトをもつことに注意する必要があ
る。この保証がなければ、削除不能なアクセス記
述子の急増が起こることがある。これら2つのビ
ツトの組合せは、あるシステムを通じて記述子の
動きを精密に制御することを可能とする。別のビ
ツトの組合せの使用法は、次により詳細に説明す
る。 4.2.2 アクセス・リスト・アクセス・ライト アクセス・リスト・アクセス記述子のベース・
ライト.フイールドは次のように解読される。 00−アクセス記述子がリストから読み取られる
か、リストに書き込まれる。 01−アクセス記述子がリストから読み取られな
い。 10−アクセス記述子がリストに書き込まれな
い。 11−アクセス記述子はリストから読み取られも
しなければ、リストに書き込まれもしな
い。 システム・ライト・フイールドはアクセス・リ
ストとデータ・セグメントの2つの一般的なデー
タ・オブジエクトを解読しない。16384個までの
アクセス記述子は任意の1つのアクセス・リスト
内に保持することができるが、それらのうち64個
だけが論理アドレスによつて直接選択可能であ
る。所望のセグメントへのアクセス記述子がアク
セス・リストの最初の64個のエントリにない場合
には、セグメントが論理アドレスによつて参照さ
れる前にそのアクセス記述子はこれら直接的に選
択可能な位置の1つまで移動するか間接的に参照
されなければならない。 4.2.3 ヌル・アクセス記述子 現在あるアクセス記述子を破壊したり、また入
手できていないアクセス記述子のためにアクセ
ス・リスト内に空所を確保したりすることが必要
になることが時おりある。そのような留保されて
未使用のエントリは、ヌル・アクセス記述子とい
う種類のアクセス記述子によつて指示される。ヌ
ルまたは不当アクセス記述子は、そのアクセス記
述子正当フイールドがゼロに設定された任意のア
クセス記述子である。しかし、全部がゼロを含む
のがヌル・アクセス記述子にとつて通常である。
そのような全ゼロヌル・アクセス記述子は無制限
に複写または削除することができることに注意を
要する。 4.3 データ・セグメント 前述のシステム・オブジエクトの第1の一般的
な種類はアクセス・リストである。システム・オ
ブジエクトの他の一般的な種類はデータ・セグメ
ントである。すべての原始的な種類およびこれら
の種類から作つた集合データ構造のスカラー・オ
ペランドは、データ・セグメントに格納されたり
それからアクセスされたりする。 4.3.1 データ・セグメント・アクセス・ライト データ・セグメント・アクセス記述子のベー
ス・ライト・フイールドは次のように解読され
る。 00−データがセグメントから読み取られたりセ
グメントに書き込まれたりする。 01−データがセグメントから読み取られない。 10−データがセグメントに書き込まれない。 11−データはセグメントから読み取れもしなけ
ればそこに書き込まれもしない。 システム・ライト・フイールドはアクセス・ラ
イトとデータ・セグメントの2つの一般的なシス
テム・オブジエクトを解読しない。 4.3.2 データ・セグメント・セグメント セグメント・テーブル(第2A図、50)は基
本的には、数多くのプロセツサによつて同時に自
動的にアクセスされるデータ・セグメントであ
る。通常、そのような高度の並列アクセスを用い
るデータ・セグメントには広範なインタロツクが
利用され、それに働くオペレーシヨンの順序が常
に保証される。しかしセグメント・テーブルは、
これらインタロツクがアドレス展開サイクルで導
入するオーバヘツドによつてこれらインタロツク
を使用することができない。幸いなことに、所定
のセグメント・テーブル内の情報、とりわけその
セグメントのすべてについてのベース・アドレス
は比較的長時間変らないので、インタロツクは通
常の場合不必要である。 セグメント・テーブル・インタロツクはセグメ
ント・テーブルの内容を変えようとするとき(す
なわち、書き換える)のみ必要である。変更した
いプロセスは、正当な(▽)フイールド47をゼ
ロに設定することによつて、変更すべきセグメン
ト記述子52,54を不当と最初に指示しなけれ
ばならない。次に、動作中のプロセツサを含むシ
ステム内のプロセツサのすべてが、内部で退避ま
た緩衝しているどんなセグメント・アドレス情報
でも再修飾(すなわち、リロードと再計算)する
ことを要求しなければならない。次に、セグメン
ト記述子を望みのように変更し、そして正当フイ
ールド47を1に設定することによつてそれを正
当と表示する。 セグメント・テーブル・アクセス記述子につい
てのベース・ライト・フイールドは、ベース種類
データ・セグメントのすべてのオブジエクトにつ
いてと同じように解読される。セグメント・テー
ブル・アクセス記述子のシステム・ライト・フイ
ールドの下位ビツトは次のように解読される。 0−このセグメント・テーブルはセグメント記
述子の割り当てに使用される。 1−このセグメント・テーブルはセグメント記
述子の割り当てには使用されない。 セグメント・テーブル・アクセス記述子のシス
テム・ライト・フイールドの上位ビツトは解読さ
れない。 4.4 ドメイン ドメイン(例えば第3B図の92)は典型的
に、最小で独立して編成翻訳されたりアセンブル
されたりするプログラム・ユニツトまたはモジユ
ールのために定義される静的なアクセス環境に対
応する。これが表わすプログラム・モジユールの
定義に一致する最小可能アクセス環境を生ずると
いう意味でそれは小さいだけである。多くのモジ
ユールを有する大きなプログラムは、分離を最大
とすると共にそれらの隅然または悪意の相互干渉
の可能性を最小とするために、ドメインを各ドメ
インに結び付ける。従つて実行中にプロセスは、
あるモジユールを出て別のモジユールにはいるご
とに別のドメインに移る。どの瞬間にも、プロセ
スは現在のモジユールにあると定義され従つて現
在のドメインにあるこれらオブジエクトにアクセ
スすることができるだけである。 物理的にはドメインの主要な構造は1対のアク
セス・リストによつて表わされる。これらは私用
アクセス・リスト98と公共アクセス・リスト1
00である。 4.4.1 公用アクセス・リストと私用アクセス・
リスト 公用アクセス・リストは、隠さずに利用できる
ようにするためにドメインが選択するオブジエク
トのすべてについてのアクセス記述子を含む。こ
れは、第2のドメインのドメイン・アクセス記述
子を有するどの所定のドメインにおいても、第2
のドメインの公用アクセス・リスト内にあるアク
セス記述子が第1のドメインに完全にアクセス可
能であることを意味する。典型的には、ドメイン
の公用アクセス・リスト内にのみ現われるアクセ
ス記述子は、それに関連するオペレーシヨンの命
令セグメント(例えば、第3B図の108)に関
するものである。ドメインの公用アクセス・リス
トは、ドメインの私用アクセス・リストのアクセ
ス記述子のために留保されたエントリ110を1
つ有する。これはゼロ・エントリである。このエ
ントリに現われるアクセス記述子を介してアクセ
スされるセグメントは通常、私用アクセス・リス
トのシステム種類を有する。通常、ドメインの公
用アクセス・リスト内のオペレーシヨンの1つの
一例を呼び出すだけで、プロセスはそのドメイン
の私用アクセス・リストにアクセスする。 私用アクセス・リストは、プロセスがそのオペ
レーシヨンの1つの一例を呼び出す結果としてド
メインの内部で動作しているときのみアクセス可
能なオブジエクトに関してアクセス記述子を含
む。典型的に私用アクセス・リストは、ローカル
命令セグメントと、ローカルなしかし恒久的なデ
ータ・セグメントに関する記述子を含む。その上
非常によくあることだが、私用アクセス・リスト
はさらに別のドメインに関してのアクセス記述子
を含む。ドメインの全体構造は第3B図に簡略化
して示している。典型的に、私用アクセス・リス
トのアクセス記述子は複写ライトも削除ライトも
有しない。ドメイン・アクセス記述子のベース・
ライト・フイールドは、ベース種類アクセス・リ
ストのすべてのオブジエクトについてと同じよう
に解読される。ドメイン・アクセス記述子のシス
テム・ライト・フイールドは解読されない。 私用アクセス・リストのアクセス記述子のベー
ス・ライト・フイールドは、ベース種類アクセ
ス・リストのすべてのオブジエクトについてと同
じように解読される。私用アクセス・リストのア
クセス記述子のシステム・ライト・フイールドは
解読されない。 4.5 オペレーシヨンとコンテクスト プロセスはオペレーシヨンの一例を呼び出した
りそれから戻る結果としてそのアクセス環境を変
える。通常入れ子式に起こるプロセスの「現在の
アクセス環境」へのこの変化は、「コンテクス
ト・オブジエクト」という結合された1組のアク
セス・リストの形で記録される。このようにして
プロセスの現在のコンテクスト・オブジエクト
(第3A図、94)は、各呼び出されたオペレー
シヨンが出て行くにつれて先のアクセス環境を再
設定する手段をプロセスに提供する。 4.5.1 コンテクスト・オブジエクト オペレーシヨンを呼び出す前に、オペレーシヨ
ンの逐次実行可能な1つの「例」を表わすコンテ
クスト・オブジエクト(例えば、第3A図の9
4)を作らなければならない。そのようなオブジ
エクトの各々は、少なくとも10個のアクセス記述
子より成る。 コンテクスト・オブジエクト内の最下位位置か
ら上に移動した最初の記述子111はコンテクス
ト・コントロール・セグメントのアクセス記述子
である。次の3つの記述子エントリは最初にヌ
ル・アクセス記述子によつて占められる。第1の
エントリはコンテクストが実際に呼び出されたと
きに交換される。第2のエントリ112は、コン
テクストにメツセージがあるときそのコンテクス
トから渡されるメツセージのアクセス記述子であ
る。第3のエントリ113と114は、記述子作
業用記憶域として使用するためのものである。第
5のアクセス記述子115はコンテクストのオペ
ランド・スタツクのためのものである。第6のア
クセス記述子116は、コンテクストが呼び出さ
れたときコンテクスト自体のアクセス記述子に交
換される。次の2つの記述子117と118は、
コンテクストのオペレーシヨンが定義されたドメ
インの公用アクセス・リストと私用アクセス・リ
ストである。第9のアクセス記述子119は、コ
ンテクストが新しいエントリ・アクセス・リスト
を選択するときは常に動的に交換される。第10の
アクセス記述子110は、このコンテクストを呼
び出したコンテクスト95にこのコンテクストを
結び付けるアクセス記述子によつてコンテクスト
が呼び出されると動的に交換される。上に定義し
たエントリのコンテクストの残りは、コンテクス
トの記述子作業用記憶域として使用するためのも
のである。 コンテクスト・オブジエクト・アクセス記述子
のベース・ライト・フイールドは、ベース種類ア
クセス・リストのすべてのオブジエクトについて
と同じように解読される。コンテクスト・オブジ
エクト・アクセス記述子のシステム・ライト・フ
イールドは解読されない。 4.5.1.1 命令セグメント 命令セグメント(第3B図、90)はプログラ
マーの定義したオペレーシヨンの命令を保持する
のに使用される。モジユラー・プログラム言語の
場合、命令セグメントは各別個のオペレーシヨン
に1つ割り当てられる。COBOLのように本質的
に非モジユラーな言語の場合、大規模なモノリシ
ツク・プログラムの命令を含むために命令セグメ
ントが幾つか使用される。 命令セグメントのアクセス記述子のベース・ラ
イト・フイールドは、ベース種類データ・セグメ
ントのすべてのオブジエクトについてと同じよう
に解読される。命令セグメント・アクセス記述子
のシステム・ライト・フイールドの下位ビツトは
次のように解読される。 0−コンテクストがこの命令セグメントのため
に作られる。 1−コンテクストがこの命令セグメントのため
に作られない。 命令セグメントの高位のシステム・ライト・ビ
ツトは解読されない。 命令セグメントは8192バイト長以上にはならな
いことに注意を要する。この制限は短序数値への
限られたブランチ変位の結果である。新しい命令
セグメントが選択されると、プロセツサは自動的
にセグメントの長さが8192バイトを越えないこと
を確認する。その長さを越えると、「命令セグメ
ント長さフオールト」が発生する。 新しいコンテクストを発生する際にハードウエ
アを助けるために命令セグメントは、そのベース
にコンテクスト発生制御情報91,93,95を
含む。3つの短序数値より成るこの情報は、所定
の命令セグメントのためにコンテクストを作るの
に必要な3つのセグメントの必要なサイズを指定
する。命令セグメントの構造は第3B図に示され
ている。 コンテクストを作る際にプロセツサはコンテク
スト・アクセス・リスト94とコンテクスト・コ
ントロール・セグメント122を作り、各々の長
さはハードウエアがそのセグメントに要求するサ
イズに命令セグメント内でそのセグメントに指定
されたサイズを加えた長さに等しい。オペラン
ド・スタツク106もコンテクストのために作ら
れる。オペランド・スタツク・サイズには最小限
度がないので、そのサイズは命令セグメント内で
指定される値にすぎない。スタツク・サイズがゼ
ロであると、オペランド・スタツクは作られな
い。 4.5.1.2 コンテクスト・コントロール・セグメン
ト 新しいコンテクスト・オブジエクト94が作ら
れるごとに、関連のコンテクスト・コントロー
ル・セグメント122も作られ、そしてその新し
いアクセス記述子は新しいコンテクスト・オブジ
エクトの第2のエントリに格納される。このデー
タ・セグメントの所期の使用法は、フオールト情
報を記録するための、その場合に特有な制御情報
やランダムにアドレス指定可能なスカラー作業用
記憶域にある。コンテクスト・コントロール・セ
グメントは第3B図に図式的に示す。 コンテクスト・コントロール・セグメントの第
1のダブルバイト131と第2のダブルバイト1
32は、最後のコンテクストの実行が終わる瞬間
に命令ポインタIPとスタツク・ポインタSPを含
む。コンテクストが作られるときにIPフイール
ドは値48に初期設定されてそれを命令セグメン
ト内の最初の命令の開始ビツトに向ける。それと
同時にSPフイールドは値0に初期設定されてか
らスタツクを指示する。コンテクスト・コントロ
ール・セグメント内の第3のダブルバイト133
はコンテクスト・ステータス情報を含む。これは
最後のコンテクストの実行が終つた瞬間の一部の
内部プロセツサの標識の状態を指定する。それは
また、コンテクストが呼び出されているか中断さ
れているかのようなコンテクスト自身の状態を含
む。コンテクスト・ステータス・フイールド13
3の構造を下に示す。
256個の可能なセグメント・テーブルの1つを選
択し位置決めするために使用する、プロセツサの
現在のセグメント・テーブル・ダイレクトリへの
索引を指定する。 13ビツトのセグメント索引フイールドは、所望
のセグメント記述子を選択し位置決めするために
使用するダイレクトリ索引によつて指定されるセ
グメント・テーブルへの索引を指定する。 1ビツトの正当フイールドは、このアクセス記
述子を介してセグメントがアクセスできるかどう
かを指示する。1の値はこのアクセス記述子が正
当で使用可能であることを指示する。ゼロの値は
このアクセス記述子が不当または無意味であるこ
とを指示する。このフイールドは、アクセス記述
子を介してプロセツサが参照を試みるごとにその
プロセツサによつてチエツクされる。アクセス記
述子が不当であると、アクセス記述子正当性フオ
ールトが生ずる。 アクセス記述子の残りのフイールドは、以下の
2つ項で説明する。 4.2.1.1 アクセス・ライト アクセス記述子は、任意のセグメントへのアク
セスの程度を制御する手段にもなる。同じセグメ
ントの異なるアクセス記述子が幾つかの環境に存
在するかもしれないので、セグメントのアクセス
方法はこれら環境の各々で異なる。例えば、ある
環境では、プロセスは所定のセグメント内でデー
タを読み取るのも書き込むのも許されるが、別の
環境では、プロセスはセグメントからデータを読
み取ることだけを許されよう。所定の方法で(例
えばデータを読み取るために)セグメントにアク
セス記述子は、所定の環境の内部の関連のセグメ
ントにアクセスするプロセスに利用できるアクセ
ス・ライトを精密に指定する情報を符号化した形
で含む。例えば、セグメントが一定のベース種類
であることのみを要求する参照を介してセグメン
トにアクセスするとき、ベース・ライト・フイー
ルドは利用できるアクセス・ライト(すなわち、
読み込み、書き込みまたは何らかの組合せ)を指
定する。 本システムは、読み出しや書き込みのような簡
単なベース・アクセス・ライトが有意義でないか
必ずしも利用できない、多数の異なる高めのレベ
ルの種類のオブジエクトを認識するので、アクセ
ス制御の第2のレベルはアクセス記述子によつて
行われる。例えば、セグメントが所定のベース種
類であるだけでなく所定のシステム種類(すなわ
ち、ベース種類アクセス・リストとシステム種類
バツフア付き通信ポート)も要求する参照を介し
てセグメントにアクセスする際、システム・ライ
ト・フイールドは利用できるアクセス・ライトを
指定する。従つて、各システム種類のアクセス記
述子に関連するのは、その特定のシステム種類の
オブジエクトの使用法のみに関する1組のアクセ
ス・ライトである。例えば、バツフア付き通信ポ
ート・アクセス記述子は、送信ライト、受信ライ
トまたは何らかの組合せを有することができる。
システム・ソフトウエアは新しいオブジエクトが
作られるごとに適当な種類を、そして新しいアク
セス経路が作られるごとにライトを設定する。ア
クセス記述子が特定のやり方でセグメントにアク
セスするのに使用されるときは常に、経路のライ
トと種類がそのアクセス方法を許可することをプ
ロセツサが自動的に確認する。確認されないとき
は試みられたアクセスは否定され、そして種類ま
たはライトのフオールトが生ずる。 すべての場合にライトの符号化は、フイールド
がゼロを含めばそのライトが許可されるという規
則に従う。逆にフイールドが1を含めば、そのラ
イトは否定される。アクセス記述子内での他の2
つのライト・フイールドは特殊な意味を有する。
留保されたライト・フイールドは、将来のハード
ウエアの定義と使用を可能とするために定義され
ている。非解読ライトは、ソフトウエアの定義と
解読のために利用することができる。 4.2.1.2 記述子制御 アクセス記述子は通常のデータ・セグメントの
内部に現われないようにすることによつて変更や
骨抜きから保護されるが、一部のライトが認めた
とき、所定の環境のアクセス・リストの内部でア
クセス記述子を移動することは可能である。さら
に、アクセス記述子の1つまたはグループをメツ
セージとしてコンテクスト、コルーチンまたはプ
ロセスに送ることによつて、アクセス記述子をパ
ラメータとして渡すことは可能である。同様にし
てアクセス記述子は結果として戻されることがあ
る。あらゆる場合に、記述子が現われるアクセ
ス・リストまたは環境に無関係に、アクセス記述
子がオブジエクトとその情報への一様な参照によ
つてアクセス記述子の好都合な動きが可能とな
る。 各アクセス記述子内部の別個のフイールドは記
述子の動く程度を制御する。ある意味ではこの制
御は、個々の記述子にのみ関連して関連のオブジ
エクトに関しないことを除いて、アクセス・ライ
トに類似している。あらゆる種類のアクセス記述
子にある、2ビツトの記述子制御フイールドの高
位のビツトはいつでも記述子を削除するライトを
指示する。そのビツトが設定され(すなわち、1
の値を有する)て記述子をオーバライトしようと
する試みがなされると、アクセス記述子削除フオ
ールトが生ずる。フイールドの次の下位のビツト
は、いつでも記述子を複写するライトを指示す
る。ビツトが設定されて記述子を複写しようとす
る試みがなされると、アクセス記述子複写フオー
ルトが生ずる。アクセス記述子が実際に複写され
るときには常に、アクセス記述子の新しい複写は
必ず削除ライトをもつことに注意する必要があ
る。この保証がなければ、削除不能なアクセス記
述子の急増が起こることがある。これら2つのビ
ツトの組合せは、あるシステムを通じて記述子の
動きを精密に制御することを可能とする。別のビ
ツトの組合せの使用法は、次により詳細に説明す
る。 4.2.2 アクセス・リスト・アクセス・ライト アクセス・リスト・アクセス記述子のベース・
ライト.フイールドは次のように解読される。 00−アクセス記述子がリストから読み取られる
か、リストに書き込まれる。 01−アクセス記述子がリストから読み取られな
い。 10−アクセス記述子がリストに書き込まれな
い。 11−アクセス記述子はリストから読み取られも
しなければ、リストに書き込まれもしな
い。 システム・ライト・フイールドはアクセス・リ
ストとデータ・セグメントの2つの一般的なデー
タ・オブジエクトを解読しない。16384個までの
アクセス記述子は任意の1つのアクセス・リスト
内に保持することができるが、それらのうち64個
だけが論理アドレスによつて直接選択可能であ
る。所望のセグメントへのアクセス記述子がアク
セス・リストの最初の64個のエントリにない場合
には、セグメントが論理アドレスによつて参照さ
れる前にそのアクセス記述子はこれら直接的に選
択可能な位置の1つまで移動するか間接的に参照
されなければならない。 4.2.3 ヌル・アクセス記述子 現在あるアクセス記述子を破壊したり、また入
手できていないアクセス記述子のためにアクセ
ス・リスト内に空所を確保したりすることが必要
になることが時おりある。そのような留保されて
未使用のエントリは、ヌル・アクセス記述子とい
う種類のアクセス記述子によつて指示される。ヌ
ルまたは不当アクセス記述子は、そのアクセス記
述子正当フイールドがゼロに設定された任意のア
クセス記述子である。しかし、全部がゼロを含む
のがヌル・アクセス記述子にとつて通常である。
そのような全ゼロヌル・アクセス記述子は無制限
に複写または削除することができることに注意を
要する。 4.3 データ・セグメント 前述のシステム・オブジエクトの第1の一般的
な種類はアクセス・リストである。システム・オ
ブジエクトの他の一般的な種類はデータ・セグメ
ントである。すべての原始的な種類およびこれら
の種類から作つた集合データ構造のスカラー・オ
ペランドは、データ・セグメントに格納されたり
それからアクセスされたりする。 4.3.1 データ・セグメント・アクセス・ライト データ・セグメント・アクセス記述子のベー
ス・ライト・フイールドは次のように解読され
る。 00−データがセグメントから読み取られたりセ
グメントに書き込まれたりする。 01−データがセグメントから読み取られない。 10−データがセグメントに書き込まれない。 11−データはセグメントから読み取れもしなけ
ればそこに書き込まれもしない。 システム・ライト・フイールドはアクセス・ラ
イトとデータ・セグメントの2つの一般的なシス
テム・オブジエクトを解読しない。 4.3.2 データ・セグメント・セグメント セグメント・テーブル(第2A図、50)は基
本的には、数多くのプロセツサによつて同時に自
動的にアクセスされるデータ・セグメントであ
る。通常、そのような高度の並列アクセスを用い
るデータ・セグメントには広範なインタロツクが
利用され、それに働くオペレーシヨンの順序が常
に保証される。しかしセグメント・テーブルは、
これらインタロツクがアドレス展開サイクルで導
入するオーバヘツドによつてこれらインタロツク
を使用することができない。幸いなことに、所定
のセグメント・テーブル内の情報、とりわけその
セグメントのすべてについてのベース・アドレス
は比較的長時間変らないので、インタロツクは通
常の場合不必要である。 セグメント・テーブル・インタロツクはセグメ
ント・テーブルの内容を変えようとするとき(す
なわち、書き換える)のみ必要である。変更した
いプロセスは、正当な(▽)フイールド47をゼ
ロに設定することによつて、変更すべきセグメン
ト記述子52,54を不当と最初に指示しなけれ
ばならない。次に、動作中のプロセツサを含むシ
ステム内のプロセツサのすべてが、内部で退避ま
た緩衝しているどんなセグメント・アドレス情報
でも再修飾(すなわち、リロードと再計算)する
ことを要求しなければならない。次に、セグメン
ト記述子を望みのように変更し、そして正当フイ
ールド47を1に設定することによつてそれを正
当と表示する。 セグメント・テーブル・アクセス記述子につい
てのベース・ライト・フイールドは、ベース種類
データ・セグメントのすべてのオブジエクトにつ
いてと同じように解読される。セグメント・テー
ブル・アクセス記述子のシステム・ライト・フイ
ールドの下位ビツトは次のように解読される。 0−このセグメント・テーブルはセグメント記
述子の割り当てに使用される。 1−このセグメント・テーブルはセグメント記
述子の割り当てには使用されない。 セグメント・テーブル・アクセス記述子のシス
テム・ライト・フイールドの上位ビツトは解読さ
れない。 4.4 ドメイン ドメイン(例えば第3B図の92)は典型的
に、最小で独立して編成翻訳されたりアセンブル
されたりするプログラム・ユニツトまたはモジユ
ールのために定義される静的なアクセス環境に対
応する。これが表わすプログラム・モジユールの
定義に一致する最小可能アクセス環境を生ずると
いう意味でそれは小さいだけである。多くのモジ
ユールを有する大きなプログラムは、分離を最大
とすると共にそれらの隅然または悪意の相互干渉
の可能性を最小とするために、ドメインを各ドメ
インに結び付ける。従つて実行中にプロセスは、
あるモジユールを出て別のモジユールにはいるご
とに別のドメインに移る。どの瞬間にも、プロセ
スは現在のモジユールにあると定義され従つて現
在のドメインにあるこれらオブジエクトにアクセ
スすることができるだけである。 物理的にはドメインの主要な構造は1対のアク
セス・リストによつて表わされる。これらは私用
アクセス・リスト98と公共アクセス・リスト1
00である。 4.4.1 公用アクセス・リストと私用アクセス・
リスト 公用アクセス・リストは、隠さずに利用できる
ようにするためにドメインが選択するオブジエク
トのすべてについてのアクセス記述子を含む。こ
れは、第2のドメインのドメイン・アクセス記述
子を有するどの所定のドメインにおいても、第2
のドメインの公用アクセス・リスト内にあるアク
セス記述子が第1のドメインに完全にアクセス可
能であることを意味する。典型的には、ドメイン
の公用アクセス・リスト内にのみ現われるアクセ
ス記述子は、それに関連するオペレーシヨンの命
令セグメント(例えば、第3B図の108)に関
するものである。ドメインの公用アクセス・リス
トは、ドメインの私用アクセス・リストのアクセ
ス記述子のために留保されたエントリ110を1
つ有する。これはゼロ・エントリである。このエ
ントリに現われるアクセス記述子を介してアクセ
スされるセグメントは通常、私用アクセス・リス
トのシステム種類を有する。通常、ドメインの公
用アクセス・リスト内のオペレーシヨンの1つの
一例を呼び出すだけで、プロセスはそのドメイン
の私用アクセス・リストにアクセスする。 私用アクセス・リストは、プロセスがそのオペ
レーシヨンの1つの一例を呼び出す結果としてド
メインの内部で動作しているときのみアクセス可
能なオブジエクトに関してアクセス記述子を含
む。典型的に私用アクセス・リストは、ローカル
命令セグメントと、ローカルなしかし恒久的なデ
ータ・セグメントに関する記述子を含む。その上
非常によくあることだが、私用アクセス・リスト
はさらに別のドメインに関してのアクセス記述子
を含む。ドメインの全体構造は第3B図に簡略化
して示している。典型的に、私用アクセス・リス
トのアクセス記述子は複写ライトも削除ライトも
有しない。ドメイン・アクセス記述子のベース・
ライト・フイールドは、ベース種類アクセス・リ
ストのすべてのオブジエクトについてと同じよう
に解読される。ドメイン・アクセス記述子のシス
テム・ライト・フイールドは解読されない。 私用アクセス・リストのアクセス記述子のベー
ス・ライト・フイールドは、ベース種類アクセ
ス・リストのすべてのオブジエクトについてと同
じように解読される。私用アクセス・リストのア
クセス記述子のシステム・ライト・フイールドは
解読されない。 4.5 オペレーシヨンとコンテクスト プロセスはオペレーシヨンの一例を呼び出した
りそれから戻る結果としてそのアクセス環境を変
える。通常入れ子式に起こるプロセスの「現在の
アクセス環境」へのこの変化は、「コンテクス
ト・オブジエクト」という結合された1組のアク
セス・リストの形で記録される。このようにして
プロセスの現在のコンテクスト・オブジエクト
(第3A図、94)は、各呼び出されたオペレー
シヨンが出て行くにつれて先のアクセス環境を再
設定する手段をプロセスに提供する。 4.5.1 コンテクスト・オブジエクト オペレーシヨンを呼び出す前に、オペレーシヨ
ンの逐次実行可能な1つの「例」を表わすコンテ
クスト・オブジエクト(例えば、第3A図の9
4)を作らなければならない。そのようなオブジ
エクトの各々は、少なくとも10個のアクセス記述
子より成る。 コンテクスト・オブジエクト内の最下位位置か
ら上に移動した最初の記述子111はコンテクス
ト・コントロール・セグメントのアクセス記述子
である。次の3つの記述子エントリは最初にヌ
ル・アクセス記述子によつて占められる。第1の
エントリはコンテクストが実際に呼び出されたと
きに交換される。第2のエントリ112は、コン
テクストにメツセージがあるときそのコンテクス
トから渡されるメツセージのアクセス記述子であ
る。第3のエントリ113と114は、記述子作
業用記憶域として使用するためのものである。第
5のアクセス記述子115はコンテクストのオペ
ランド・スタツクのためのものである。第6のア
クセス記述子116は、コンテクストが呼び出さ
れたときコンテクスト自体のアクセス記述子に交
換される。次の2つの記述子117と118は、
コンテクストのオペレーシヨンが定義されたドメ
インの公用アクセス・リストと私用アクセス・リ
ストである。第9のアクセス記述子119は、コ
ンテクストが新しいエントリ・アクセス・リスト
を選択するときは常に動的に交換される。第10の
アクセス記述子110は、このコンテクストを呼
び出したコンテクスト95にこのコンテクストを
結び付けるアクセス記述子によつてコンテクスト
が呼び出されると動的に交換される。上に定義し
たエントリのコンテクストの残りは、コンテクス
トの記述子作業用記憶域として使用するためのも
のである。 コンテクスト・オブジエクト・アクセス記述子
のベース・ライト・フイールドは、ベース種類ア
クセス・リストのすべてのオブジエクトについて
と同じように解読される。コンテクスト・オブジ
エクト・アクセス記述子のシステム・ライト・フ
イールドは解読されない。 4.5.1.1 命令セグメント 命令セグメント(第3B図、90)はプログラ
マーの定義したオペレーシヨンの命令を保持する
のに使用される。モジユラー・プログラム言語の
場合、命令セグメントは各別個のオペレーシヨン
に1つ割り当てられる。COBOLのように本質的
に非モジユラーな言語の場合、大規模なモノリシ
ツク・プログラムの命令を含むために命令セグメ
ントが幾つか使用される。 命令セグメントのアクセス記述子のベース・ラ
イト・フイールドは、ベース種類データ・セグメ
ントのすべてのオブジエクトについてと同じよう
に解読される。命令セグメント・アクセス記述子
のシステム・ライト・フイールドの下位ビツトは
次のように解読される。 0−コンテクストがこの命令セグメントのため
に作られる。 1−コンテクストがこの命令セグメントのため
に作られない。 命令セグメントの高位のシステム・ライト・ビ
ツトは解読されない。 命令セグメントは8192バイト長以上にはならな
いことに注意を要する。この制限は短序数値への
限られたブランチ変位の結果である。新しい命令
セグメントが選択されると、プロセツサは自動的
にセグメントの長さが8192バイトを越えないこと
を確認する。その長さを越えると、「命令セグメ
ント長さフオールト」が発生する。 新しいコンテクストを発生する際にハードウエ
アを助けるために命令セグメントは、そのベース
にコンテクスト発生制御情報91,93,95を
含む。3つの短序数値より成るこの情報は、所定
の命令セグメントのためにコンテクストを作るの
に必要な3つのセグメントの必要なサイズを指定
する。命令セグメントの構造は第3B図に示され
ている。 コンテクストを作る際にプロセツサはコンテク
スト・アクセス・リスト94とコンテクスト・コ
ントロール・セグメント122を作り、各々の長
さはハードウエアがそのセグメントに要求するサ
イズに命令セグメント内でそのセグメントに指定
されたサイズを加えた長さに等しい。オペラン
ド・スタツク106もコンテクストのために作ら
れる。オペランド・スタツク・サイズには最小限
度がないので、そのサイズは命令セグメント内で
指定される値にすぎない。スタツク・サイズがゼ
ロであると、オペランド・スタツクは作られな
い。 4.5.1.2 コンテクスト・コントロール・セグメン
ト 新しいコンテクスト・オブジエクト94が作ら
れるごとに、関連のコンテクスト・コントロー
ル・セグメント122も作られ、そしてその新し
いアクセス記述子は新しいコンテクスト・オブジ
エクトの第2のエントリに格納される。このデー
タ・セグメントの所期の使用法は、フオールト情
報を記録するための、その場合に特有な制御情報
やランダムにアドレス指定可能なスカラー作業用
記憶域にある。コンテクスト・コントロール・セ
グメントは第3B図に図式的に示す。 コンテクスト・コントロール・セグメントの第
1のダブルバイト131と第2のダブルバイト1
32は、最後のコンテクストの実行が終わる瞬間
に命令ポインタIPとスタツク・ポインタSPを含
む。コンテクストが作られるときにIPフイール
ドは値48に初期設定されてそれを命令セグメン
ト内の最初の命令の開始ビツトに向ける。それと
同時にSPフイールドは値0に初期設定されてか
らスタツクを指示する。コンテクスト・コントロ
ール・セグメント内の第3のダブルバイト133
はコンテクスト・ステータス情報を含む。これは
最後のコンテクストの実行が終つた瞬間の一部の
内部プロセツサの標識の状態を指定する。それは
また、コンテクストが呼び出されているか中断さ
れているかのようなコンテクスト自身の状態を含
む。コンテクスト・ステータス・フイールド13
3の構造を下に示す。
【表】
コンテクスト状態のサブフイールドは以下のよ
うに解読される。 00−呼び出しのために中断 01−戻りのための中断 10−再開のために中断 11−呼び出されている このフイールドはコンテクストが作られる際に
ゼロに初期設定される。 フオールト状態標識は、コンテクストがフオー
ルト状態にあるかどうかを指定する。ゼロの値
は、コンテクストがフオールト状態にないことを
指示する。1の値は、コンテクストがフオールト
状態にあることを指示する。計算フオールト・モ
ード標識は、計算フオールトの後にコンテクスト
の残りの状態によつてプロセツサの挙動を制御す
る。ゼロの値はコンテクストがポスト・フオール
ト・モードにあることを指示する。逆に1の値
は、コンテクストがプリフオールト・モードにあ
ることを指示する。このコントロール・フイール
ドの使用法は、「アクセス環境操作と通信」とい
う見出しの下で詳細に説明する。アンダフロー制
御標識は、実数のアンダフローが起つたときプロ
セツサがどんな行為を取るべきかを指定する。精
密制御標識は、一時実数結果を丸める精度を指定
する。まるめ制御標識はどのようにプロセツサが
全実数結果をまるめるべきかを指定する。最後の
3つの制御フイールドの使用法は、「浮動点計算」
の見出しの下で詳細に説明する。 第4のダブルバイト134は、コンテクストの
現在の命令セグメントのセグメント・セレクタを
含む。これはコンテクストが作られる際に初期設
定され、そしてインタセグメント・ブランチ・オ
ペレータまたはコンテクスト・レベルのフオール
トの結果として変更される。 コンテクスト内部にフオールトが生ずるときは
常に、特にオーバフローのような例外的なデータ
状態の結果として、暗黙ブランチ・オペレータが
実行されて制御権は現在のオペレーシヨンからフ
オールト・ハンドラという命令セグメントに移動
させられる。可能ならどんな修理作業でもこのハ
ンドラにプログラミングすることができる。コン
テクストが一定の場合、関連のフオールト・ハン
ドラはそのコンテクスト制御セグメント内の第5
番目のエントリを介して指定される。このエント
リは所望のフオールト処理命令セグメントの命令
セグメント・セレクタを含む。このフイールドは
いつでも、コンテクスト内部からソフトウエアに
よつて初期設定または変更することができる。 フオールトの診断を助けるため、フオールト情
報がコンテクスト制御セグメント内に記録され
る。フオールトが発生するとプロセツサは、フオ
ールトを取囲む環境と種類を定義する情報をこの
領域に自動的に格納する。コンテクスト内部に定
義され、従つてこのフオールト情報にアクセスす
る適当なフオールト・ハンドラはそれを利用して
修理に乗り出す。所定のフオールトに特有なデー
タを記録するのに必要なフイールドのみが、フオ
ールト・ハンドラへの入力の際に有効である。ど
のフイールドがどの環境の下で有効であるかは
「アクセス環境操作と通信」という見出しの下で
説明する。 第3B図に示されているコンテクスト制御セグ
メントを参照すると、フオールトが生じた命令セ
グメントのセグメント・セレクタを記録するため
に6番目のダブルバイト136が使用される。フ
オールトの原因(すなわち、浮動点オーバフロ
ー)を記録するためにフオールト・コード・ワー
ドが使用される。フオールトを生じた命令のIP
を記録するためにプリインストラクシヨンIPが
使用される。フオールトを生じたものに順に続く
命令のIPを記録するためにポストインストラク
シヨンIPが使用される。 フオールトした命令の結果が書き込まれたであ
ろうセグメントの結果セグメント・セレクタまた
はフオールトを生じたセグメントのセグメント・
セレクタを記録するために11番目のダブルバイト
138が使用される。フオールトした命令の結果
が書き込まれたであろう結果セグメントに変位を
記録する(すべてのスケーリングや索引付けの
後)ために、あるいは、フオールトを生じた変位
やアクセス記述子セグメント・セレクタを記録す
る(すべてのスケーリングや索引付けの後)ため
に結果変位が利用される。フオールトを生じた計
算についての情報を記録するために、例外結果フ
イールド139が使用される。 コンテクスト制御セグメント・アクセス記述子
のベース・ライト・フイールドは、ベース種類ア
クセス・リストのすべてと同じように解読され
る。コンテクスト制御セグメント・アクセス記述
子のシステム・ライト・フイールドは解読されな
い。 4.5.1.3 オペランド・スタツク 新しいコンテクスト・オブジエクトが作られる
ごとに、関連のオペランド・スタツク・セグメン
ト(第3B図、106)も作られる。このデー
タ・セグメントの所期の使用は、式評価のための
その場合に特有なスカラー作業用記憶域である。
新しいアクセス記述子は新しいコンテクスト・オ
ブジエクトの第3のエントリ113に格納され
る。 オペランド・スタツクの最後のダブルバイト
は、セグメントがデータ・セグメント・アクセス
記述子を介して参照されなければ、ソフトウエア
にアクセス不可能である。そのようなアクセス記
述子は通常、コンテクストに利用できない。「情
報構造」という見出しの下で説明するように、ス
タツク・ポインタ(SP)の挙動によつて、それ
は常にスタツクの次に利用できるダブルバイトを
指示する。例えば、オペランドがスタツクの最後
の隣りのダブルバイトに退避されていると、その
結果として生ずるSPはスタツクの最後のダブル
バイトを指示する。次に、別のオペラントがスタ
ツクに退避されると、その結果生ずるSPはスタ
ツクの端を通り越して最初のダブルバイトを指示
し、そしてオペランド・スタツク変位フオールト
が生ずる。スタツク・ポインタのアンダフローも
オペランド・スタツク変位フオールトを生ずる。 オペランド・スタツク・アクセス記述子のベー
ス・ライト・フイールドは、ベース種類データ・
セグメントのオブジエクトのすべてについてと同
じように解読される。オペランド・スタツク・ア
クセス記述子のシステム・ライト・フイールドは
解読されない。 4.5.1.4 エントリ・アクセス・リスト コンテクストがベース読み取りライトを保持す
るどんなアクセス・リストにも直接アクセスする
ために、オペレーシヨンはそのコンテクスト用に
新しいエントリ・アクセス・リスト(第3B図、
93)を動的に選択する。このようにどの瞬間で
も現在のエントリ・アクセス・リストはヌルまた
は幾分かアクセス可能であり、読み出し可能なア
クセス・リストである。アクセス環境操作オペレ
ータの1つによつて、現在のエントリ・アクセ
ス・リストが選択される。このオペレータの働き
は「アクセス環境操作と通信」という見出しの下
で説明する。 4.6 コルーチン プロセスは、あるオペレータを実行する結果と
して、またはコンテクストから呼び出したり戻し
たりする結果として、その現在のエントリ・アク
セス・リストを変えることによつてそのアクセス
環境を変える。 所望のアクセス環境または制御権の流れの遷移
が入れ子式にまたは階層的に支援されることが不
可能であるときは常に、コルーチンという非階層
プログラム構造が利用される。 4.6.1 バツフアなし通信ポート コンテクストはコルーチンとして振舞つている
とき、バツフアなし通信ポート(第3A図、10
4)というシステム・リンケージ・オブジエクト
を介して、アクセス記述子の形でメツセージを送
受することによつて互いに交信する。概念的には
バツフアなしポートは1個のエントリを含む。そ
れらは第3図に示すように、単一エントリ・アク
セス・リスト105によつて表わされる。 コンテクストがバツフアなしポートで停止する
と、現在のコンテクストのアクセス記述子が指定
のポートに置かれる。コンテクスト・アクセス記
述子がバツフアなしポートに存在し、関連のコン
テクスト制御セグメント122に状態情報133
(すなわち、再開を待つて中断している)がある
と、どの再開コルーチンにも再開可能コルーチン
が利用できることが指示される。制御権がバツフ
アなしポートを介してコンテクストに渡される
と、そのポートはヌル・アクセス記述子でオーバ
ライトされ、新しく呼び出されたコルーチンが現
在利用できないことが指示される。 バツフアなしポート・アクセス記述子のベー
ス・ライト・フイールドはベース種類アクセス・
リストのオブジエクトのすべてについてと同じよ
うに解読される。バツフアなしポート・アクセス
記述子のシステム・ライト・フイールドは次のよ
うに解読される。 00−コンテクストはこのポートで中断するか、
このポートを通して別のコンテクストを再
開する。 01−コンテクストはこのポートを通して別のコ
ンテクストを再開する。 10−コンテクストはこのポートで中断する。 11−コンテクストはこのポートで中断もしなけ
れば、このポートを通して別のコンテクス
トを再開することもしない。 4.7 プロセス 論理的にはプロセスは、プロセツサによる実行
が生ずることができる環境にすぎない。これら環
境の幾つかがシステムの内部に存在すると、実行
は互いに独立して生ずることができる。プロセツ
サがそのシステムの内部に幾つか存在すると、実
行は対応する数の環境内部で同時に生ずることが
できる。幾つかのプロセスの同時実行は、様々な
用途においてシステムの性能を向上するのに利用
することができる。 あるプロセスの実行が起こるとき、その実行は
関連の環境の内部の特定の箇所または点で生ず
る。本システムではその点は特定のオペレーシヨ
ン内部で、特定のコンテクスト内部で、特定のド
メイン内部で特定の命令によつてどの瞬間にも定
義される。新しい命令が自動的に指定されるた
め、実行点はもちろん各命令が実行されるにつれ
て移動する。命令実行の結果として、新しいコン
テクスト、または新しいコンテクストと新しいド
メインが指定されることも時おりある。プロセス
がその終了を指示しなければ、実行点はこのよう
にして永久に移動し続ける。 任意の特定の実行点の座標を記録する何らかの
手段があると、プロセツサは終了前にそれを知つ
たり同意したりすることなくいつでもプロセスの
実行を中断することができる。このようにして中
断されたプロセスは、しばらくした後に困難なし
に、中断中のプロセツサを含む任意の互換性のあ
るプロセツサで実行を再開することができる。後
述する種類のオブジエクトをすでに述べたオブジ
エクトに関連して使用すると、プロセツサはプロ
セスの中断と再開を迅速に自動的に実行すること
ができる。 4.7.1 プロセス・オブジエクト プロセスの実行が中断されたとき、そのコンテ
クスト・オブジエクトはその実行を再開するのに
必要な情報の大部分をすでに記録してある。記録
されない唯一の情報は、プロセスによつて現在使
用されているコンテクスト・オブジエクトの同一
性情報である。この情報はプロセス・オブジエク
ト(第4A図、140)という別のハードウエア
認識データ構造に記録される。プロセスがあるコ
ンテクストを中断して別のコンテクストを呼び出
すごとに、現在のコンテクスト・オブジエクトの
アクセス記述子を含むそのプロセス・オブジエク
トの第2のエントリが変更される。これは呼び出
されたコンテクストのコンテクスト・オブジエク
トのコンテクスト・アクセス記述子によつて交換
される。プロセスが中断される場合には、現在コ
ンテクスト・モード、現在命令セグメント・セレ
クタ、現在命令ポインタ値および現在コンテクス
ト制御セグメント内のオペランド・スタツク・ポ
インタ値の4つの情報だけが退避される必要があ
る。他の基本的な実行箇所情報は、その現在のコ
ンテクストとプロセス・オブジエクトの両方の構
造にすでに記録されている。 現在のコンテクスト・オブジエクト情報に加え
て、プロセス・オブジエクトはプロセスに関連し
た他の幾つかのオブジエクトの記述子を含む。一
般にこれらのオブジエクトはプロセスにアクセス
できないが、代わりにハードウエアとシステム・
ソフトウエアによつて使用されてプロセスが維持
され制御される。プロセス・オブジエクト140
の全体構造は第4A図に示されている。 プロセス・オブジエクト・アクセス記述子のベ
ース・ライト・フイールドは、ベース種類アクセ
ス・リストのオブジエクトのすべてについてと同
じように解読される。プロセス・オブジエクト・
アクセス記述子のシステム・ライト・フイールド
は解読されない。 プロセス・オブジエクトによつて参照されるオ
ブジエクトは、以下の幾つかの小項目で機能的に
説明する。参照されるオブジエクトがプロセス・
オブジエクトに一意的に関連(すなわち、実際に
その基本構造の一部)する場合には、オブジエク
トの機能に加えてその構造も説明する。 4.7.1.1 プロセス・コントロール・セグメント プロセス・オブジエクト内の最初のエントリを
介してアクセス可能なプロセス・コントロール・
セグメントは、システム・リソースの自動割り振
りとプログラム制御割り振りの両方を手助けする
情報フイールドを幾つか含む。これはまた、プロ
セス状態とフオールト情報の双方を記録するフイ
ールドを含む。プロセス・コントロール・セグメ
ント150の構造は第4A図に示している。 プロセス・コントロール・セグメント150内
の最初のダブルバイトは、プロセスに関連するセ
グメントのどれにも通常見出されないプロセス・
ステータス情報を含む。具体的に説明すると、こ
のバイトはプロセスの実行が最終的に停止した瞬
間に、ある内部プロセツサの標識の状態を指定す
る。最後に、このバイトはプロセスが実行中かプ
ロセツサを待機しているか、というようなプロセ
ス自体の状態を含む。プロセス・ステータス・フ
イールドの構造は次ページの上に示す。 プロセスが保守を待機するように、保守要求標
識がプロセス・ステータス・フイールドにある。
プロセス・ステータス情報を検査したりロードし
たりする通常の過程においてプロセツサがこの標
識が設定されていることを確認すると、関連のプ
ロセスは保守待機状態に格納され、そしてソフト
ウエアの保守のため現在のサービス・ポートのプ
リエンプシヨン・ポートにすぐに送られる。プロ
セスを実行しようとする試みはそれ以上行われな
い。保守要求の検出に至らせる特定の状況は、
「アクセス環境操作と通信」という見出しの下で
説明する。
うに解読される。 00−呼び出しのために中断 01−戻りのための中断 10−再開のために中断 11−呼び出されている このフイールドはコンテクストが作られる際に
ゼロに初期設定される。 フオールト状態標識は、コンテクストがフオー
ルト状態にあるかどうかを指定する。ゼロの値
は、コンテクストがフオールト状態にないことを
指示する。1の値は、コンテクストがフオールト
状態にあることを指示する。計算フオールト・モ
ード標識は、計算フオールトの後にコンテクスト
の残りの状態によつてプロセツサの挙動を制御す
る。ゼロの値はコンテクストがポスト・フオール
ト・モードにあることを指示する。逆に1の値
は、コンテクストがプリフオールト・モードにあ
ることを指示する。このコントロール・フイール
ドの使用法は、「アクセス環境操作と通信」とい
う見出しの下で詳細に説明する。アンダフロー制
御標識は、実数のアンダフローが起つたときプロ
セツサがどんな行為を取るべきかを指定する。精
密制御標識は、一時実数結果を丸める精度を指定
する。まるめ制御標識はどのようにプロセツサが
全実数結果をまるめるべきかを指定する。最後の
3つの制御フイールドの使用法は、「浮動点計算」
の見出しの下で詳細に説明する。 第4のダブルバイト134は、コンテクストの
現在の命令セグメントのセグメント・セレクタを
含む。これはコンテクストが作られる際に初期設
定され、そしてインタセグメント・ブランチ・オ
ペレータまたはコンテクスト・レベルのフオール
トの結果として変更される。 コンテクスト内部にフオールトが生ずるときは
常に、特にオーバフローのような例外的なデータ
状態の結果として、暗黙ブランチ・オペレータが
実行されて制御権は現在のオペレーシヨンからフ
オールト・ハンドラという命令セグメントに移動
させられる。可能ならどんな修理作業でもこのハ
ンドラにプログラミングすることができる。コン
テクストが一定の場合、関連のフオールト・ハン
ドラはそのコンテクスト制御セグメント内の第5
番目のエントリを介して指定される。このエント
リは所望のフオールト処理命令セグメントの命令
セグメント・セレクタを含む。このフイールドは
いつでも、コンテクスト内部からソフトウエアに
よつて初期設定または変更することができる。 フオールトの診断を助けるため、フオールト情
報がコンテクスト制御セグメント内に記録され
る。フオールトが発生するとプロセツサは、フオ
ールトを取囲む環境と種類を定義する情報をこの
領域に自動的に格納する。コンテクスト内部に定
義され、従つてこのフオールト情報にアクセスす
る適当なフオールト・ハンドラはそれを利用して
修理に乗り出す。所定のフオールトに特有なデー
タを記録するのに必要なフイールドのみが、フオ
ールト・ハンドラへの入力の際に有効である。ど
のフイールドがどの環境の下で有効であるかは
「アクセス環境操作と通信」という見出しの下で
説明する。 第3B図に示されているコンテクスト制御セグ
メントを参照すると、フオールトが生じた命令セ
グメントのセグメント・セレクタを記録するため
に6番目のダブルバイト136が使用される。フ
オールトの原因(すなわち、浮動点オーバフロ
ー)を記録するためにフオールト・コード・ワー
ドが使用される。フオールトを生じた命令のIP
を記録するためにプリインストラクシヨンIPが
使用される。フオールトを生じたものに順に続く
命令のIPを記録するためにポストインストラク
シヨンIPが使用される。 フオールトした命令の結果が書き込まれたであ
ろうセグメントの結果セグメント・セレクタまた
はフオールトを生じたセグメントのセグメント・
セレクタを記録するために11番目のダブルバイト
138が使用される。フオールトした命令の結果
が書き込まれたであろう結果セグメントに変位を
記録する(すべてのスケーリングや索引付けの
後)ために、あるいは、フオールトを生じた変位
やアクセス記述子セグメント・セレクタを記録す
る(すべてのスケーリングや索引付けの後)ため
に結果変位が利用される。フオールトを生じた計
算についての情報を記録するために、例外結果フ
イールド139が使用される。 コンテクスト制御セグメント・アクセス記述子
のベース・ライト・フイールドは、ベース種類ア
クセス・リストのすべてと同じように解読され
る。コンテクスト制御セグメント・アクセス記述
子のシステム・ライト・フイールドは解読されな
い。 4.5.1.3 オペランド・スタツク 新しいコンテクスト・オブジエクトが作られる
ごとに、関連のオペランド・スタツク・セグメン
ト(第3B図、106)も作られる。このデー
タ・セグメントの所期の使用は、式評価のための
その場合に特有なスカラー作業用記憶域である。
新しいアクセス記述子は新しいコンテクスト・オ
ブジエクトの第3のエントリ113に格納され
る。 オペランド・スタツクの最後のダブルバイト
は、セグメントがデータ・セグメント・アクセス
記述子を介して参照されなければ、ソフトウエア
にアクセス不可能である。そのようなアクセス記
述子は通常、コンテクストに利用できない。「情
報構造」という見出しの下で説明するように、ス
タツク・ポインタ(SP)の挙動によつて、それ
は常にスタツクの次に利用できるダブルバイトを
指示する。例えば、オペランドがスタツクの最後
の隣りのダブルバイトに退避されていると、その
結果として生ずるSPはスタツクの最後のダブル
バイトを指示する。次に、別のオペラントがスタ
ツクに退避されると、その結果生ずるSPはスタ
ツクの端を通り越して最初のダブルバイトを指示
し、そしてオペランド・スタツク変位フオールト
が生ずる。スタツク・ポインタのアンダフローも
オペランド・スタツク変位フオールトを生ずる。 オペランド・スタツク・アクセス記述子のベー
ス・ライト・フイールドは、ベース種類データ・
セグメントのオブジエクトのすべてについてと同
じように解読される。オペランド・スタツク・ア
クセス記述子のシステム・ライト・フイールドは
解読されない。 4.5.1.4 エントリ・アクセス・リスト コンテクストがベース読み取りライトを保持す
るどんなアクセス・リストにも直接アクセスする
ために、オペレーシヨンはそのコンテクスト用に
新しいエントリ・アクセス・リスト(第3B図、
93)を動的に選択する。このようにどの瞬間で
も現在のエントリ・アクセス・リストはヌルまた
は幾分かアクセス可能であり、読み出し可能なア
クセス・リストである。アクセス環境操作オペレ
ータの1つによつて、現在のエントリ・アクセ
ス・リストが選択される。このオペレータの働き
は「アクセス環境操作と通信」という見出しの下
で説明する。 4.6 コルーチン プロセスは、あるオペレータを実行する結果と
して、またはコンテクストから呼び出したり戻し
たりする結果として、その現在のエントリ・アク
セス・リストを変えることによつてそのアクセス
環境を変える。 所望のアクセス環境または制御権の流れの遷移
が入れ子式にまたは階層的に支援されることが不
可能であるときは常に、コルーチンという非階層
プログラム構造が利用される。 4.6.1 バツフアなし通信ポート コンテクストはコルーチンとして振舞つている
とき、バツフアなし通信ポート(第3A図、10
4)というシステム・リンケージ・オブジエクト
を介して、アクセス記述子の形でメツセージを送
受することによつて互いに交信する。概念的には
バツフアなしポートは1個のエントリを含む。そ
れらは第3図に示すように、単一エントリ・アク
セス・リスト105によつて表わされる。 コンテクストがバツフアなしポートで停止する
と、現在のコンテクストのアクセス記述子が指定
のポートに置かれる。コンテクスト・アクセス記
述子がバツフアなしポートに存在し、関連のコン
テクスト制御セグメント122に状態情報133
(すなわち、再開を待つて中断している)がある
と、どの再開コルーチンにも再開可能コルーチン
が利用できることが指示される。制御権がバツフ
アなしポートを介してコンテクストに渡される
と、そのポートはヌル・アクセス記述子でオーバ
ライトされ、新しく呼び出されたコルーチンが現
在利用できないことが指示される。 バツフアなしポート・アクセス記述子のベー
ス・ライト・フイールドはベース種類アクセス・
リストのオブジエクトのすべてについてと同じよ
うに解読される。バツフアなしポート・アクセス
記述子のシステム・ライト・フイールドは次のよ
うに解読される。 00−コンテクストはこのポートで中断するか、
このポートを通して別のコンテクストを再
開する。 01−コンテクストはこのポートを通して別のコ
ンテクストを再開する。 10−コンテクストはこのポートで中断する。 11−コンテクストはこのポートで中断もしなけ
れば、このポートを通して別のコンテクス
トを再開することもしない。 4.7 プロセス 論理的にはプロセスは、プロセツサによる実行
が生ずることができる環境にすぎない。これら環
境の幾つかがシステムの内部に存在すると、実行
は互いに独立して生ずることができる。プロセツ
サがそのシステムの内部に幾つか存在すると、実
行は対応する数の環境内部で同時に生ずることが
できる。幾つかのプロセスの同時実行は、様々な
用途においてシステムの性能を向上するのに利用
することができる。 あるプロセスの実行が起こるとき、その実行は
関連の環境の内部の特定の箇所または点で生ず
る。本システムではその点は特定のオペレーシヨ
ン内部で、特定のコンテクスト内部で、特定のド
メイン内部で特定の命令によつてどの瞬間にも定
義される。新しい命令が自動的に指定されるた
め、実行点はもちろん各命令が実行されるにつれ
て移動する。命令実行の結果として、新しいコン
テクスト、または新しいコンテクストと新しいド
メインが指定されることも時おりある。プロセス
がその終了を指示しなければ、実行点はこのよう
にして永久に移動し続ける。 任意の特定の実行点の座標を記録する何らかの
手段があると、プロセツサは終了前にそれを知つ
たり同意したりすることなくいつでもプロセスの
実行を中断することができる。このようにして中
断されたプロセスは、しばらくした後に困難なし
に、中断中のプロセツサを含む任意の互換性のあ
るプロセツサで実行を再開することができる。後
述する種類のオブジエクトをすでに述べたオブジ
エクトに関連して使用すると、プロセツサはプロ
セスの中断と再開を迅速に自動的に実行すること
ができる。 4.7.1 プロセス・オブジエクト プロセスの実行が中断されたとき、そのコンテ
クスト・オブジエクトはその実行を再開するのに
必要な情報の大部分をすでに記録してある。記録
されない唯一の情報は、プロセスによつて現在使
用されているコンテクスト・オブジエクトの同一
性情報である。この情報はプロセス・オブジエク
ト(第4A図、140)という別のハードウエア
認識データ構造に記録される。プロセスがあるコ
ンテクストを中断して別のコンテクストを呼び出
すごとに、現在のコンテクスト・オブジエクトの
アクセス記述子を含むそのプロセス・オブジエク
トの第2のエントリが変更される。これは呼び出
されたコンテクストのコンテクスト・オブジエク
トのコンテクスト・アクセス記述子によつて交換
される。プロセスが中断される場合には、現在コ
ンテクスト・モード、現在命令セグメント・セレ
クタ、現在命令ポインタ値および現在コンテクス
ト制御セグメント内のオペランド・スタツク・ポ
インタ値の4つの情報だけが退避される必要があ
る。他の基本的な実行箇所情報は、その現在のコ
ンテクストとプロセス・オブジエクトの両方の構
造にすでに記録されている。 現在のコンテクスト・オブジエクト情報に加え
て、プロセス・オブジエクトはプロセスに関連し
た他の幾つかのオブジエクトの記述子を含む。一
般にこれらのオブジエクトはプロセスにアクセス
できないが、代わりにハードウエアとシステム・
ソフトウエアによつて使用されてプロセスが維持
され制御される。プロセス・オブジエクト140
の全体構造は第4A図に示されている。 プロセス・オブジエクト・アクセス記述子のベ
ース・ライト・フイールドは、ベース種類アクセ
ス・リストのオブジエクトのすべてについてと同
じように解読される。プロセス・オブジエクト・
アクセス記述子のシステム・ライト・フイールド
は解読されない。 プロセス・オブジエクトによつて参照されるオ
ブジエクトは、以下の幾つかの小項目で機能的に
説明する。参照されるオブジエクトがプロセス・
オブジエクトに一意的に関連(すなわち、実際に
その基本構造の一部)する場合には、オブジエク
トの機能に加えてその構造も説明する。 4.7.1.1 プロセス・コントロール・セグメント プロセス・オブジエクト内の最初のエントリを
介してアクセス可能なプロセス・コントロール・
セグメントは、システム・リソースの自動割り振
りとプログラム制御割り振りの両方を手助けする
情報フイールドを幾つか含む。これはまた、プロ
セス状態とフオールト情報の双方を記録するフイ
ールドを含む。プロセス・コントロール・セグメ
ント150の構造は第4A図に示している。 プロセス・コントロール・セグメント150内
の最初のダブルバイトは、プロセスに関連するセ
グメントのどれにも通常見出されないプロセス・
ステータス情報を含む。具体的に説明すると、こ
のバイトはプロセスの実行が最終的に停止した瞬
間に、ある内部プロセツサの標識の状態を指定す
る。最後に、このバイトはプロセスが実行中かプ
ロセツサを待機しているか、というようなプロセ
ス自体の状態を含む。プロセス・ステータス・フ
イールドの構造は次ページの上に示す。 プロセスが保守を待機するように、保守要求標
識がプロセス・ステータス・フイールドにある。
プロセス・ステータス情報を検査したりロードし
たりする通常の過程においてプロセツサがこの標
識が設定されていることを確認すると、関連のプ
ロセスは保守待機状態に格納され、そしてソフト
ウエアの保守のため現在のサービス・ポートのプ
リエンプシヨン・ポートにすぐに送られる。プロ
セスを実行しようとする試みはそれ以上行われな
い。保守要求の検出に至らせる特定の状況は、
「アクセス環境操作と通信」という見出しの下で
説明する。
【表】
プロセス状態サブフイールドの解読は次のとお
りである。 000−実行中 001−010 留保 001−トレースを待機中 100−メツセージを待機中 101−プロセツサを待機中 110−サービスを待機中 111−保守を待機中 トレース・モード・サブフイールドの解読は次
のとおりである。 00−通常モード 01−フオールト・トレース・モード 10−フロー・トレース・モード 11−フル・トレース・モード クロツク・モード・ビツトはプロセス・クロツ
ク保守を行なうべきかどうかを指示する。ゼロの
値はプロセス・クロツク保守を行なうべきである
ことを指示する。1の値はプロセス・クロツク保
守を行なうべきではないことを指示する。クロツ
ク・モード・ビツトは、クロツク保守が望ましか
つたり必要であつたりしないときにシステムの性
能を向上させるのに使用することができる。 遅延期間とサービス期間という2つの短序数値
によつてプロセツサは、ソフトウエアで定義され
るプロセツサ・リソース割り当て方針を自動的に
実施することができる。適当なプロセツサ・スケ
ジユーリング・ソフトウエアによつて設定される
とこれらの値は、いつどのくらいの時間所定のプ
ロセスを実行すべきかをプロセツサに指定する。
期間カウントという短序数値はプロセツサによつ
て使用され、ソフトウエアによつて再計画される
前に所定のプロセスが受け取るべきサービス期間
の数を告げる。この決定を行なうためにプロセツ
サが使用する正確な方法は、「アクセス環境操作
と通信」という見出しの下で説明する。プロセツ
サはまた、プロセス・コントロール・セグメント
内にプロセス・クロツク・フイールドを維持する
ことによつて、プロセスに与えられる総処理時間
の精密な測定においてソフトウエアを計画するの
を手助けする。各サービス期間の後、プロセスは
受け取り、実行中のプロセツサはサービス期間の
持続時間をプロセス・クロツク・フイールド内の
序数値に加える。このフイールドはプロセスが作
られるときソフトウエアによつてゼロに設定され
る。プロセス・クロツクはプロセスによつていつ
でも読み取られる。 やはりプロセス・コントロール・セグメントに
含まれているのは2つの識別番号である。これら
のうちプロセスIDという第1の識別番号は、シ
ステムのリソース・マネージメント・ソフトウエ
アのモジユール内でそれ自身の身元を確認するた
めにいつでもプロセスによつて読み出される。同
様にして本人IDは、プロセスの発生に責任があ
る行為者または行為の身元の確認するためにいつ
でもプロセスによつて読み出される。通常、これ
はシステムのリソースを共用することを許可され
た行為者である。 プロセス・レベル・フオールトが起ると、フオ
ールト情報はプロセス・コントロール・セグメン
ト内に記録される。ダイレクトリ・インデツクス
は、フオールトが関連するセグメント・テーブル
の現在のセグメント・テーブル・ダイレクトリに
索引を記録するために使用される。セグメント索
引は、フオールトを起したセグメントのセグメン
ト記述子のそのテーブルに索引を記録するために
使用される。 プロセス・コントロール・セグメント・アクセ
ス記述子のベース・ライト・フイールドは、ベー
ス種類データ・セグメントのオブジエクトのすべ
てについてと同じように解読される。システム・
ライト・フイールドは解読されない。 4.7.1.2 現在のサービスとバツフア付きポート 一部の状況においては、後にハードウエアとソ
フトウエアの両方によつて使用するため、プロセ
ス・サービスに使用された最後のポートの身元を
記録することはハードウエアにとつて必要不可欠
である。この情報はプロセス・オブジエクト14
0の第3のエントリで見出され、そしてそのプロ
セスのアクセス記述子がサービス・ポートに送ら
れるごとに更新される。大部分の場合、現在のサ
ービス・ポートは、プロセスをプロセツサに組合
せるのに最後に使用したデイスパツチ・ポート1
46にすぎない。時おりそれは中期のプロセツ
サ・スケジユーラーや他のリソース・マネージヤ
ーのような、ソフトウエア・サービスのためのバ
ツフア付きポートである。 同様の理由により、ハードウエアはまたプロセ
スをメツセージに組合せるのに使用した最後のバ
ツフア付きポート144の身元を記録する。この
情報はそのプロセス・オブジエクト140の4番
目のエントリに見出され、そしてプロセスがバツ
フア付きポートを介してメツセージを受け取るか
プロセス・オブジエクトのアクセス記述子がバツ
フア付きポートで行列に並べられるごとに更新さ
れる。 4.7.1.3 セグメント・テーブルとストレージ・リ
ソース プロセスの実行中、未割り当てストレージやセ
グメント記述子への暗黙の必要条件が存在すると
きがある(例えば、コンテクスト・オブジエクト
を動的に作らなければならないとき)。プロセ
ス・オブジエクト内のセグメント・テーブル・ア
クセス記述子141とストレージ・リソース・ア
クセス記述子143は、そのようなリソースへア
クセスすることによつてその必要条件を満足す
る。 4.7.1.4 トレース、通知およびフオールト・バツ
フア付きポート プロセスがトレース・モードにあつてトレース
事象が起るときは常に、そのプロセスは中断され
て検査や可能な変更のためにサービス・プロセス
にメツセージとして送られる。サービス・プロセ
スが待機するポートはトレース・バツフア付きポ
ート(アクセス記述子145)という。 プロセスの実行中に経路アンダフローが起こる
ときは常に、その経路の最後のアクセス記述子が
ソフトウエア処理のためのプロセスの通知ポート
(アクセス記述子147)に送られる。 プロセスが現在のコンテクストの内部で処理す
ることのできないフオールトを犯すときは常に、
そのプロセスは中断され、フオールト情報はその
プロセス・コントロール・セグメント内に記録さ
れ、そしてそのプロセスはメツセージとして修理
や破壊のための保守プロセスに送られる。そのよ
うな保守プロセスが中断されたプロセスを受け取
るのを待機する場所であるポートは、フオール
ト・バツフア付きポート(アクセス記述子)とい
う。 4.7.1.5 フオールト・アクセス記述子 プロセスレベルの再開不能な通信命令フオール
トが起こるときは常に、送ることができなかつた
メツセージのアクセス記述子149が現在のプロ
セス・オブジエクト内に記録される。 4.7.2 バツフア付き通信ポート プロセスは、バツフア付き通信ポート(第4A
図、144)というシステム・オブジエクトでア
クセス記述子の形でメツセージを送受することに
よつて互いに交信する。概念的には、バツフア付
きポートは2つの行列を含む。第1の行列はクリ
エスト行列といい、送られたがまだ受け取られて
いないメツセージのアクセス記述子を保持する。
第2の行列はサーバ行列といい、メツセージの到
着を待ちながら中断されたプロセスのプロセス・
オブジエクト・アクセス記述子を保持する。 両種類の記述子は同時に行列に並べられないた
め、バツフア付きポートは物理的に行列を1つだ
け含む。ポート内に見出されるステータス情報
は、物理行列が現在サーバ行列であるか、リクエ
スト行列であるか、あるいはからにすぎないかを
指示する。 バツフア付きポートはバツフア付きポート・ア
クセス記述子(例えば、プロセス・オブジエクト
140内の139)を介してアクセスされる。 バツフア付きポート・アクセス記述子のベー
ス・ライト・フイールドは、ベース種類アクセ
ス・リストのオブジエクトのすべてについてと同
じように解読される。 バツフア付きポート・アクセス記述子のシステ
ム・ライト・フイールドは次のように解読され
る。 00−メツセージはこのポートを介して送られる
か受け取られる。 01−このポートを介して送られる。 10−メツセージはこのポートを介して受け取ら
れる。 11−メツセージはこのポートを介して送られも
しなければ受け取られもしない。 以下の幾つかの小項目はポートの他の要素を詳
細に説明する。 4.7.2.1 バツフア付きポート・コントロール・セ
グメント バツフア付きポートの2つの論理行列は、その
ポート・コントロール・セグメント(第4A図、
152)のハードウエア認識データ構造によつて
定義される。このセグメントの最初の8ダブルバ
イトは行列ステータス情報とコントロール情報を
含み、セグメントの残りは行列リンク・レコード
のための動的に割り当てられる領域を含む。 ポート・コントロール・セグメント152の最
初のダブルバイト160はポート・ステータス・
フイールドを含む。 下に示すようにこのフイールド内の情報は、両
方の種類の行列記述子の有無を指示する。
りである。 000−実行中 001−010 留保 001−トレースを待機中 100−メツセージを待機中 101−プロセツサを待機中 110−サービスを待機中 111−保守を待機中 トレース・モード・サブフイールドの解読は次
のとおりである。 00−通常モード 01−フオールト・トレース・モード 10−フロー・トレース・モード 11−フル・トレース・モード クロツク・モード・ビツトはプロセス・クロツ
ク保守を行なうべきかどうかを指示する。ゼロの
値はプロセス・クロツク保守を行なうべきである
ことを指示する。1の値はプロセス・クロツク保
守を行なうべきではないことを指示する。クロツ
ク・モード・ビツトは、クロツク保守が望ましか
つたり必要であつたりしないときにシステムの性
能を向上させるのに使用することができる。 遅延期間とサービス期間という2つの短序数値
によつてプロセツサは、ソフトウエアで定義され
るプロセツサ・リソース割り当て方針を自動的に
実施することができる。適当なプロセツサ・スケ
ジユーリング・ソフトウエアによつて設定される
とこれらの値は、いつどのくらいの時間所定のプ
ロセスを実行すべきかをプロセツサに指定する。
期間カウントという短序数値はプロセツサによつ
て使用され、ソフトウエアによつて再計画される
前に所定のプロセスが受け取るべきサービス期間
の数を告げる。この決定を行なうためにプロセツ
サが使用する正確な方法は、「アクセス環境操作
と通信」という見出しの下で説明する。プロセツ
サはまた、プロセス・コントロール・セグメント
内にプロセス・クロツク・フイールドを維持する
ことによつて、プロセスに与えられる総処理時間
の精密な測定においてソフトウエアを計画するの
を手助けする。各サービス期間の後、プロセスは
受け取り、実行中のプロセツサはサービス期間の
持続時間をプロセス・クロツク・フイールド内の
序数値に加える。このフイールドはプロセスが作
られるときソフトウエアによつてゼロに設定され
る。プロセス・クロツクはプロセスによつていつ
でも読み取られる。 やはりプロセス・コントロール・セグメントに
含まれているのは2つの識別番号である。これら
のうちプロセスIDという第1の識別番号は、シ
ステムのリソース・マネージメント・ソフトウエ
アのモジユール内でそれ自身の身元を確認するた
めにいつでもプロセスによつて読み出される。同
様にして本人IDは、プロセスの発生に責任があ
る行為者または行為の身元の確認するためにいつ
でもプロセスによつて読み出される。通常、これ
はシステムのリソースを共用することを許可され
た行為者である。 プロセス・レベル・フオールトが起ると、フオ
ールト情報はプロセス・コントロール・セグメン
ト内に記録される。ダイレクトリ・インデツクス
は、フオールトが関連するセグメント・テーブル
の現在のセグメント・テーブル・ダイレクトリに
索引を記録するために使用される。セグメント索
引は、フオールトを起したセグメントのセグメン
ト記述子のそのテーブルに索引を記録するために
使用される。 プロセス・コントロール・セグメント・アクセ
ス記述子のベース・ライト・フイールドは、ベー
ス種類データ・セグメントのオブジエクトのすべ
てについてと同じように解読される。システム・
ライト・フイールドは解読されない。 4.7.1.2 現在のサービスとバツフア付きポート 一部の状況においては、後にハードウエアとソ
フトウエアの両方によつて使用するため、プロセ
ス・サービスに使用された最後のポートの身元を
記録することはハードウエアにとつて必要不可欠
である。この情報はプロセス・オブジエクト14
0の第3のエントリで見出され、そしてそのプロ
セスのアクセス記述子がサービス・ポートに送ら
れるごとに更新される。大部分の場合、現在のサ
ービス・ポートは、プロセスをプロセツサに組合
せるのに最後に使用したデイスパツチ・ポート1
46にすぎない。時おりそれは中期のプロセツ
サ・スケジユーラーや他のリソース・マネージヤ
ーのような、ソフトウエア・サービスのためのバ
ツフア付きポートである。 同様の理由により、ハードウエアはまたプロセ
スをメツセージに組合せるのに使用した最後のバ
ツフア付きポート144の身元を記録する。この
情報はそのプロセス・オブジエクト140の4番
目のエントリに見出され、そしてプロセスがバツ
フア付きポートを介してメツセージを受け取るか
プロセス・オブジエクトのアクセス記述子がバツ
フア付きポートで行列に並べられるごとに更新さ
れる。 4.7.1.3 セグメント・テーブルとストレージ・リ
ソース プロセスの実行中、未割り当てストレージやセ
グメント記述子への暗黙の必要条件が存在すると
きがある(例えば、コンテクスト・オブジエクト
を動的に作らなければならないとき)。プロセ
ス・オブジエクト内のセグメント・テーブル・ア
クセス記述子141とストレージ・リソース・ア
クセス記述子143は、そのようなリソースへア
クセスすることによつてその必要条件を満足す
る。 4.7.1.4 トレース、通知およびフオールト・バツ
フア付きポート プロセスがトレース・モードにあつてトレース
事象が起るときは常に、そのプロセスは中断され
て検査や可能な変更のためにサービス・プロセス
にメツセージとして送られる。サービス・プロセ
スが待機するポートはトレース・バツフア付きポ
ート(アクセス記述子145)という。 プロセスの実行中に経路アンダフローが起こる
ときは常に、その経路の最後のアクセス記述子が
ソフトウエア処理のためのプロセスの通知ポート
(アクセス記述子147)に送られる。 プロセスが現在のコンテクストの内部で処理す
ることのできないフオールトを犯すときは常に、
そのプロセスは中断され、フオールト情報はその
プロセス・コントロール・セグメント内に記録さ
れ、そしてそのプロセスはメツセージとして修理
や破壊のための保守プロセスに送られる。そのよ
うな保守プロセスが中断されたプロセスを受け取
るのを待機する場所であるポートは、フオール
ト・バツフア付きポート(アクセス記述子)とい
う。 4.7.1.5 フオールト・アクセス記述子 プロセスレベルの再開不能な通信命令フオール
トが起こるときは常に、送ることができなかつた
メツセージのアクセス記述子149が現在のプロ
セス・オブジエクト内に記録される。 4.7.2 バツフア付き通信ポート プロセスは、バツフア付き通信ポート(第4A
図、144)というシステム・オブジエクトでア
クセス記述子の形でメツセージを送受することに
よつて互いに交信する。概念的には、バツフア付
きポートは2つの行列を含む。第1の行列はクリ
エスト行列といい、送られたがまだ受け取られて
いないメツセージのアクセス記述子を保持する。
第2の行列はサーバ行列といい、メツセージの到
着を待ちながら中断されたプロセスのプロセス・
オブジエクト・アクセス記述子を保持する。 両種類の記述子は同時に行列に並べられないた
め、バツフア付きポートは物理的に行列を1つだ
け含む。ポート内に見出されるステータス情報
は、物理行列が現在サーバ行列であるか、リクエ
スト行列であるか、あるいはからにすぎないかを
指示する。 バツフア付きポートはバツフア付きポート・ア
クセス記述子(例えば、プロセス・オブジエクト
140内の139)を介してアクセスされる。 バツフア付きポート・アクセス記述子のベー
ス・ライト・フイールドは、ベース種類アクセ
ス・リストのオブジエクトのすべてについてと同
じように解読される。 バツフア付きポート・アクセス記述子のシステ
ム・ライト・フイールドは次のように解読され
る。 00−メツセージはこのポートを介して送られる
か受け取られる。 01−このポートを介して送られる。 10−メツセージはこのポートを介して受け取ら
れる。 11−メツセージはこのポートを介して送られも
しなければ受け取られもしない。 以下の幾つかの小項目はポートの他の要素を詳
細に説明する。 4.7.2.1 バツフア付きポート・コントロール・セ
グメント バツフア付きポートの2つの論理行列は、その
ポート・コントロール・セグメント(第4A図、
152)のハードウエア認識データ構造によつて
定義される。このセグメントの最初の8ダブルバ
イトは行列ステータス情報とコントロール情報を
含み、セグメントの残りは行列リンク・レコード
のための動的に割り当てられる領域を含む。 ポート・コントロール・セグメント152の最
初のダブルバイト160はポート・ステータス・
フイールドを含む。 下に示すようにこのフイールド内の情報は、両
方の種類の行列記述子の有無を指示する。
【表】
ポート・ロツクは、挿入または除去オペレーシ
ヨン中に1つのプロセツサまたは1つのプロセス
にポートへの独占的なアクセス権を与えるために
使用される。ポートがプロセツサによつてロツク
されると、第2のダブルバイトはロツクしている
プロセツサの識別値を含む。ポートがプロセスに
よつてロツクされると、第2のダブルバイト(ロ
ツカーID)は、ロツクしているプロセツサの識
別(ID)値を含む。サービス・モード標識の使
用法は下に説明する。 ポート・コントロール・セグメントの第3と第
4のダブルバイトは短序数を含み、これら短序数
の値は現在の行列のそれぞれ最初と最後の行列リ
ンク・レコードの最下位アドレス指定されたバイ
トへのバイト変位である。6番目のダブルバイト
は、両方の行列が一杯になつたとき行列要素の計
数値を含む。 ポートのマネージメントでソフトウエアを助け
るため、挿入オペレーシヨンの間にハードウエア
によつて2つの最大計数値151,153を維持
することができる。カウント・コントロール標識
は、行列の長さの監視を行なうべきかどうかを指
示する。1の値は行列の長さの監視を行なうべき
でないことを指示する。カウント・コントロール
標識は、行列の長さの監視が望ましくも必要でも
ないシステムで性能の向上を図るために使用する
ことができる。行列によつては、カウント・コン
トロール標識が設定されていないと、必要に応じ
て適当なカウント・フイールドがチエツクされ更
新される。 フリー行列リンク・レコードのリスト157は
行列がソフトウエアによつて初期設定されるとき
作られる。このリストの頭は、ポート・コントロ
ール・セグメントの5番目のダブルバイト内に見
出される短序数値である。これはフリー・リスト
内の最初の行列リンク・レコードの最下位アドレ
ス指定されたバイトへのバイト変位である。 アクセス記述子領域158の記述子の位置と、
対応する行列でのその到着順序は行列リンク・レ
コードによつて与えられる。そのようなレコード
154の構造は第4A図に示されている。 後任リンクと前任リンクは、それぞれ前後に行
列に並んだ記述子の行列リンク・レコードの最下
位アドレス・バイトへのバイト変位を含む短序数
である。ゼロ変位はどのレコードも関連づいてい
ないことを意味する。これは最初の行列リンク・
レコードの前任リンク155と行列の最後の行列
リンク・レコードの前任リンク156でのみ起こ
る。行列エントリ・フイールドは、アクセス記述
子領域内の関連のアクセス記述子のアクセス・リ
スト・エントリ数を指定する短序数である。行列
リンクの2番目のダブルバイトは、ポート・キユ
ーイング機構が将来使用するために留保されてい
る。 バツフア付きポートの行列要素の挿入と削除の
方法は先入れ先出しである。アクセス記述子がポ
ートから行列に挿入されるごとに、フリー・リス
ト157から新しい行列リンク・レコードが除去
される。アクセス記述子はヘツド行列リンク・レ
コード159によつて指定されたエントリで記憶
され、レコードは行列の最後尾で関連づけられ
る。行列から要素が1個除去されるごとに、ヘツ
ド行列リンク・レコードは関連のアクセス記述子
の位置を指定する。ヘツド行列リンクは次に行列
から除去されてフリー・リストに戻される。 バツフア付きポート・コントロール・セグメン
ト・アクセス記述子のベース・ライト・フイール
ドはベース種類データ・セグメントのセグメント
のすべてについてと同じように解読される。シス
テム・ライト・フイールドは解読されない。 4.7.2.2 サービス・ポート 待機中のプロセスが到着するメツセージと組合
わされると、そのプロセスのプロセス・アクセス
記述子はサーバ行列から除去され、そしてポー
ト・オブジエクト内の2番目のエントリ148に
よつて指定されるポートにメツセージとして送ら
れる。このポートは別のバツフア付きポートまた
はデイスパツチ・ポート146である。後者の場
合、そのプロセスはすぐに受け入れられて実行さ
れる。 プロセスがバツフア付きポートでメツセージを
受け取るために待機する必要がない(すなわち、
メツセージがすでにそこで待機していた)場合に
は、その現在のサービス・ポート・アクセス記述
子がそのポート内のサービス・ポート・アクセス
記述子と異ならなければ、プロセスは実行され続
ける。異なると、プロセスは中断されてそのプロ
セス・オブジエクト・アクセス記述子は前述のサ
ービス・ポートに送られる。 一部のバツフア付きポートの用途では、プロセ
スをポート指定サービス・ポートに送る代わり
に、そのプロセス・オブジエクト内で指定される
ように、その現在のサービス・ポートにプロセス
を送ることが望ましいことがしばしば生ずる。ポ
ート・ステータス・フイールド内のサービス・モ
ード標識160が1に設定されるとこのオペレー
シヨン・モードが得られる。 4.8 プロセツサ 本システムでは、性能を高めてプログラミング
の複雑さを減らすためにプロセツサは様々なシス
テム・オブジエクトを認識する。これらオブジエ
クトは一般的なプログラミングの状況においては
かなり役立ち有益であるが、主としてプロセツサ
自体のマネージメントと制御に役立つよう二、三
のものを定義した。これら特殊なオブジエクトが
提供する主要な機能はプロセツサ選択性の1つで
ある。それらの協働使用によつて、必要に応じて
狭い基準でまたは広い基準で、プロセツサを割り
当ててプロセスに役立てることができる。 4.8.1 プロセツサ・オブジエクト 次に第2aおよび2b図を参照する。プロセツ
サは通常の動作を開始する前に、幾つかの異なる
システム・オブジエクトへの物理的なアドレス指
定を可能としなければならない。これらのうちで
一番先はセグメント・テーブル・ダイレクトリ6
8であり、これによつてプロセツサは命令で通常
出会う論理アドレスを対応する物理アドレスに翻
訳することができる。セグメント・テーブル・ダ
イレクトリへの最初のアクセスは、物理アドレス
ゼロでプロセツサが一時セグメント・テーブル・
ダイレクトリ72が存在すると思い込むだけで実
現される。 一時セグメント・テーブル・ダイレクトリを介
して論理アドレス空間に設定されるプロセツサ
は、実行準備完了プロセスを位置決めする準備が
できる。しかしそのようなプロセスはデイスパツ
チ・ポートにあり、プロセツサは特定のものに割
り当てなければならない。別のデイフオルト機構
(すなわち、一時デイスパツチ・ポート)を使用
することができるが、このシステムは物理アドレ
スではなく論理アドレスを介して通常のデイスパ
ツチ・ポートをプロセスが位置決めする、各プロ
セツサ用のシステム・オブジエクトを利用する。
初期設定またはリセツト時に各プロセツサは、そ
れ自身の独特の物理的に相互接続されたプロセツ
サ・ユニツト数を内部レジスタにロードする。次
にその数は一時セグメント・テーブル・ダイレク
トリへのセグメント記述子索引71として使用さ
れる。選択されたセグメント記述子によつて指定
された物理アドレスで各プロセツサは、それ自身
のプロセツサ・オブジエクトを見つける。これ
は、通常のデイスパツチ・ポートと適切なオペレ
ーシヨンに必要な多数の他のシステム・オブジエ
クトへのプロセツサのアクセス可能性を確立する
ために使用されるシステム・オブジエクトであ
る。プロセツサの通常のデイスパツチ・ポートの
ポート記述子は第4B図に示されているように、
そのプロセツサ・オブジエクトの6番目のエント
リに発見される。 プロセツサ・オブジエクトによつて参照される
他のオブジエクトは、以下の幾つかの小項目で機
能的に説明する。オブジエクトがプロセツサ・オ
ブジエクトと一意的に関連している場合には、そ
の機能に加えてその形も説明する。 4.8.1.1 プロセツサ・セルフ・キユーイング プロセツサがデイスパツチ・ポートで実行準備
完了プロセスを発見することができないときは常
に、そのプロセツサ・オブジエクトのアクセス記
述子をそのポートのサーバ行列に格納することに
よつて事象が記録される。記述子の発生を簡単に
するため、各プロセツサ・オブジエクトの2番目
のエントリは、プロセツサ・オブジエクト自体の
アクセス記述子を含む。状況によつてプロセツサ
自体が行列に並んで遊ぶときは常に、プロセツサ
はこの記述子をポートでの適当な行列位置に複写
するだけである。 プロセツサ・オブジエクト・アクセス記述子の
ベース・ライト・フイールドは、ベース種類アク
セス・リストのオブジエクトのすべてについてと
同じように解読される。プロセツサ・オブジエク
ト・アクセス記述子のシステム・ライト・フイー
ルドは次のように解読される。 00−プロセツサ相互間メツセージはこのプロセ
ツサ・オブジエクトのグローバル通信セグ
メントを介して同報通信されるか、あるい
はこのプロセツサ・オブジエクトのプロセ
ツサ・コントロール・セグメントを介して
このプロセツサに送られる。 01−プロセツサ相互間メツセージはこのプロセ
ツサ・オブジエクトのグローバル通信セグ
メントを介して同報通信される。 10−プロセツサ相互間メツセージはこのプロセ
ツサ・オブジエクトのプロセツサ・コント
ロール・セグメントを介してこのプロセツ
サに送られる。 11−このプロセツサ・オブジエクトにはプロセ
ツサ相互間メツセージに送られない。 これら2種のプロセツサ相互間通信は以下の2
つの小項目で説明する。 4.8.1.2 プロセツサ・コントロール・セグメント プロセツサは、そのプロセツサ・コントロー
ル・セグメント内のローカル通信領域という領域
の内容を要求があつたとき検査することによつ
て、他のプロセツサからそれに向けられた情報を
受け取ることができる。各プロセツサにとつて独
特であるこのセグメントは、そのプロセツサ・オ
ブジエクト内の2番目のアクセス記述子を介して
アクセスされる。プロセツサ相互間通信に加え
て、そのセグメントはフオールトと診断走査情報
を記録するためにも使用される。プロセツサ・コ
ントロール・セグメント内の情報は第4B図に示
すように構成されている。 多重同時プロセツサ相互間メツセージの伝送を
インタロツクするために、各プロセツサ・コント
ロール・セグメントはその最初のダブルバイト内
に1組のロツク・ビツトを含む。このロツク・フ
イールドの書式は下に示す。
ヨン中に1つのプロセツサまたは1つのプロセス
にポートへの独占的なアクセス権を与えるために
使用される。ポートがプロセツサによつてロツク
されると、第2のダブルバイトはロツクしている
プロセツサの識別値を含む。ポートがプロセスに
よつてロツクされると、第2のダブルバイト(ロ
ツカーID)は、ロツクしているプロセツサの識
別(ID)値を含む。サービス・モード標識の使
用法は下に説明する。 ポート・コントロール・セグメントの第3と第
4のダブルバイトは短序数を含み、これら短序数
の値は現在の行列のそれぞれ最初と最後の行列リ
ンク・レコードの最下位アドレス指定されたバイ
トへのバイト変位である。6番目のダブルバイト
は、両方の行列が一杯になつたとき行列要素の計
数値を含む。 ポートのマネージメントでソフトウエアを助け
るため、挿入オペレーシヨンの間にハードウエア
によつて2つの最大計数値151,153を維持
することができる。カウント・コントロール標識
は、行列の長さの監視を行なうべきかどうかを指
示する。1の値は行列の長さの監視を行なうべき
でないことを指示する。カウント・コントロール
標識は、行列の長さの監視が望ましくも必要でも
ないシステムで性能の向上を図るために使用する
ことができる。行列によつては、カウント・コン
トロール標識が設定されていないと、必要に応じ
て適当なカウント・フイールドがチエツクされ更
新される。 フリー行列リンク・レコードのリスト157は
行列がソフトウエアによつて初期設定されるとき
作られる。このリストの頭は、ポート・コントロ
ール・セグメントの5番目のダブルバイト内に見
出される短序数値である。これはフリー・リスト
内の最初の行列リンク・レコードの最下位アドレ
ス指定されたバイトへのバイト変位である。 アクセス記述子領域158の記述子の位置と、
対応する行列でのその到着順序は行列リンク・レ
コードによつて与えられる。そのようなレコード
154の構造は第4A図に示されている。 後任リンクと前任リンクは、それぞれ前後に行
列に並んだ記述子の行列リンク・レコードの最下
位アドレス・バイトへのバイト変位を含む短序数
である。ゼロ変位はどのレコードも関連づいてい
ないことを意味する。これは最初の行列リンク・
レコードの前任リンク155と行列の最後の行列
リンク・レコードの前任リンク156でのみ起こ
る。行列エントリ・フイールドは、アクセス記述
子領域内の関連のアクセス記述子のアクセス・リ
スト・エントリ数を指定する短序数である。行列
リンクの2番目のダブルバイトは、ポート・キユ
ーイング機構が将来使用するために留保されてい
る。 バツフア付きポートの行列要素の挿入と削除の
方法は先入れ先出しである。アクセス記述子がポ
ートから行列に挿入されるごとに、フリー・リス
ト157から新しい行列リンク・レコードが除去
される。アクセス記述子はヘツド行列リンク・レ
コード159によつて指定されたエントリで記憶
され、レコードは行列の最後尾で関連づけられ
る。行列から要素が1個除去されるごとに、ヘツ
ド行列リンク・レコードは関連のアクセス記述子
の位置を指定する。ヘツド行列リンクは次に行列
から除去されてフリー・リストに戻される。 バツフア付きポート・コントロール・セグメン
ト・アクセス記述子のベース・ライト・フイール
ドはベース種類データ・セグメントのセグメント
のすべてについてと同じように解読される。シス
テム・ライト・フイールドは解読されない。 4.7.2.2 サービス・ポート 待機中のプロセスが到着するメツセージと組合
わされると、そのプロセスのプロセス・アクセス
記述子はサーバ行列から除去され、そしてポー
ト・オブジエクト内の2番目のエントリ148に
よつて指定されるポートにメツセージとして送ら
れる。このポートは別のバツフア付きポートまた
はデイスパツチ・ポート146である。後者の場
合、そのプロセスはすぐに受け入れられて実行さ
れる。 プロセスがバツフア付きポートでメツセージを
受け取るために待機する必要がない(すなわち、
メツセージがすでにそこで待機していた)場合に
は、その現在のサービス・ポート・アクセス記述
子がそのポート内のサービス・ポート・アクセス
記述子と異ならなければ、プロセスは実行され続
ける。異なると、プロセスは中断されてそのプロ
セス・オブジエクト・アクセス記述子は前述のサ
ービス・ポートに送られる。 一部のバツフア付きポートの用途では、プロセ
スをポート指定サービス・ポートに送る代わり
に、そのプロセス・オブジエクト内で指定される
ように、その現在のサービス・ポートにプロセス
を送ることが望ましいことがしばしば生ずる。ポ
ート・ステータス・フイールド内のサービス・モ
ード標識160が1に設定されるとこのオペレー
シヨン・モードが得られる。 4.8 プロセツサ 本システムでは、性能を高めてプログラミング
の複雑さを減らすためにプロセツサは様々なシス
テム・オブジエクトを認識する。これらオブジエ
クトは一般的なプログラミングの状況においては
かなり役立ち有益であるが、主としてプロセツサ
自体のマネージメントと制御に役立つよう二、三
のものを定義した。これら特殊なオブジエクトが
提供する主要な機能はプロセツサ選択性の1つで
ある。それらの協働使用によつて、必要に応じて
狭い基準でまたは広い基準で、プロセツサを割り
当ててプロセスに役立てることができる。 4.8.1 プロセツサ・オブジエクト 次に第2aおよび2b図を参照する。プロセツ
サは通常の動作を開始する前に、幾つかの異なる
システム・オブジエクトへの物理的なアドレス指
定を可能としなければならない。これらのうちで
一番先はセグメント・テーブル・ダイレクトリ6
8であり、これによつてプロセツサは命令で通常
出会う論理アドレスを対応する物理アドレスに翻
訳することができる。セグメント・テーブル・ダ
イレクトリへの最初のアクセスは、物理アドレス
ゼロでプロセツサが一時セグメント・テーブル・
ダイレクトリ72が存在すると思い込むだけで実
現される。 一時セグメント・テーブル・ダイレクトリを介
して論理アドレス空間に設定されるプロセツサ
は、実行準備完了プロセスを位置決めする準備が
できる。しかしそのようなプロセスはデイスパツ
チ・ポートにあり、プロセツサは特定のものに割
り当てなければならない。別のデイフオルト機構
(すなわち、一時デイスパツチ・ポート)を使用
することができるが、このシステムは物理アドレ
スではなく論理アドレスを介して通常のデイスパ
ツチ・ポートをプロセスが位置決めする、各プロ
セツサ用のシステム・オブジエクトを利用する。
初期設定またはリセツト時に各プロセツサは、そ
れ自身の独特の物理的に相互接続されたプロセツ
サ・ユニツト数を内部レジスタにロードする。次
にその数は一時セグメント・テーブル・ダイレク
トリへのセグメント記述子索引71として使用さ
れる。選択されたセグメント記述子によつて指定
された物理アドレスで各プロセツサは、それ自身
のプロセツサ・オブジエクトを見つける。これ
は、通常のデイスパツチ・ポートと適切なオペレ
ーシヨンに必要な多数の他のシステム・オブジエ
クトへのプロセツサのアクセス可能性を確立する
ために使用されるシステム・オブジエクトであ
る。プロセツサの通常のデイスパツチ・ポートの
ポート記述子は第4B図に示されているように、
そのプロセツサ・オブジエクトの6番目のエント
リに発見される。 プロセツサ・オブジエクトによつて参照される
他のオブジエクトは、以下の幾つかの小項目で機
能的に説明する。オブジエクトがプロセツサ・オ
ブジエクトと一意的に関連している場合には、そ
の機能に加えてその形も説明する。 4.8.1.1 プロセツサ・セルフ・キユーイング プロセツサがデイスパツチ・ポートで実行準備
完了プロセスを発見することができないときは常
に、そのプロセツサ・オブジエクトのアクセス記
述子をそのポートのサーバ行列に格納することに
よつて事象が記録される。記述子の発生を簡単に
するため、各プロセツサ・オブジエクトの2番目
のエントリは、プロセツサ・オブジエクト自体の
アクセス記述子を含む。状況によつてプロセツサ
自体が行列に並んで遊ぶときは常に、プロセツサ
はこの記述子をポートでの適当な行列位置に複写
するだけである。 プロセツサ・オブジエクト・アクセス記述子の
ベース・ライト・フイールドは、ベース種類アク
セス・リストのオブジエクトのすべてについてと
同じように解読される。プロセツサ・オブジエク
ト・アクセス記述子のシステム・ライト・フイー
ルドは次のように解読される。 00−プロセツサ相互間メツセージはこのプロセ
ツサ・オブジエクトのグローバル通信セグ
メントを介して同報通信されるか、あるい
はこのプロセツサ・オブジエクトのプロセ
ツサ・コントロール・セグメントを介して
このプロセツサに送られる。 01−プロセツサ相互間メツセージはこのプロセ
ツサ・オブジエクトのグローバル通信セグ
メントを介して同報通信される。 10−プロセツサ相互間メツセージはこのプロセ
ツサ・オブジエクトのプロセツサ・コント
ロール・セグメントを介してこのプロセツ
サに送られる。 11−このプロセツサ・オブジエクトにはプロセ
ツサ相互間メツセージに送られない。 これら2種のプロセツサ相互間通信は以下の2
つの小項目で説明する。 4.8.1.2 プロセツサ・コントロール・セグメント プロセツサは、そのプロセツサ・コントロー
ル・セグメント内のローカル通信領域という領域
の内容を要求があつたとき検査することによつ
て、他のプロセツサからそれに向けられた情報を
受け取ることができる。各プロセツサにとつて独
特であるこのセグメントは、そのプロセツサ・オ
ブジエクト内の2番目のアクセス記述子を介して
アクセスされる。プロセツサ相互間通信に加え
て、そのセグメントはフオールトと診断走査情報
を記録するためにも使用される。プロセツサ・コ
ントロール・セグメント内の情報は第4B図に示
すように構成されている。 多重同時プロセツサ相互間メツセージの伝送を
インタロツクするために、各プロセツサ・コント
ロール・セグメントはその最初のダブルバイト内
に1組のロツク・ビツトを含む。このロツク・フ
イールドの書式は下に示す。
【表】
リクエスト・ロツクとリスポンス・ロツクは伝
送の開始前にクリアしなければならない。通信の
初めに、リクエスト・ロツクとリスポンス・ロツ
クの一方が設定される。通信の後、リクエスト・
ロツクはクリアされ、リスポンス・ロツクはメツ
セージが要求する機能をプロセツサが実行するま
でセツト状態に置かれる。 ポートがプロセツサによつてロツクされると、
2番目のダブルバイトはロツクしているプロセツ
サの識別値を含む。ポートがプロセスによつてロ
ツクされると、2番目のダブルバイトはロツクし
ているプロセスの識別値を含む。 4.8.1.2.1 プロセツサ相互間メツセージ プロセツサ相互間メツセージは、1組のプロセ
ツサ・コントロール標識を含むダブルバイト・ビ
ツト・フイールドの形を取る。このメツセージは
送信側プロセツサによつてセグメントの3番目の
ダブルバイトに記憶される。その構成を下に示
す。
送の開始前にクリアしなければならない。通信の
初めに、リクエスト・ロツクとリスポンス・ロツ
クの一方が設定される。通信の後、リクエスト・
ロツクはクリアされ、リスポンス・ロツクはメツ
セージが要求する機能をプロセツサが実行するま
でセツト状態に置かれる。 ポートがプロセツサによつてロツクされると、
2番目のダブルバイトはロツクしているプロセツ
サの識別値を含む。ポートがプロセスによつてロ
ツクされると、2番目のダブルバイトはロツクし
ているプロセスの識別値を含む。 4.8.1.2.1 プロセツサ相互間メツセージ プロセツサ相互間メツセージは、1組のプロセ
ツサ・コントロール標識を含むダブルバイト・ビ
ツト・フイールドの形を取る。このメツセージは
送信側プロセツサによつてセグメントの3番目の
ダブルバイトに記憶される。その構成を下に示
す。
【表】
プロセツサ・カウント・フイールドとリスポン
ス・カウント・フイールドもメツセージ・インタ
ロツク機能に参加する。メツセージが送られると
き、送信プロセツサはリスポンス・カウントをプ
ロセツサのカウント値に初期設定する。プロセツ
サは要求のあつた機能が完了すると、リスポン
ス・カウントをデクリメントし、新しい値がゼロ
であるかどうかテストする。デクリメントされた
値がゼロであると、プロセツサはリスポンス・ロ
ツクをクリアする。通常、プロセツサ・コントロ
ール・セグメント内のプロセツサのカウント値は
1に初期設定される。 別のダブルバイト・ビツト・フイールドは各プ
ロセツサ・コントロール・セグメント内にある。
このフイールドは関連のプロセツサについてのス
テータス情報を含む。下に示すように、プロセツ
サ・ステータス・フイールド内に含まれているの
は、プロセツサ状態、デイスパツチ状態および種
類を記述するサブフイールドである。
ス・カウント・フイールドもメツセージ・インタ
ロツク機能に参加する。メツセージが送られると
き、送信プロセツサはリスポンス・カウントをプ
ロセツサのカウント値に初期設定する。プロセツ
サは要求のあつた機能が完了すると、リスポン
ス・カウントをデクリメントし、新しい値がゼロ
であるかどうかテストする。デクリメントされた
値がゼロであると、プロセツサはリスポンス・ロ
ツクをクリアする。通常、プロセツサ・コントロ
ール・セグメント内のプロセツサのカウント値は
1に初期設定される。 別のダブルバイト・ビツト・フイールドは各プ
ロセツサ・コントロール・セグメント内にある。
このフイールドは関連のプロセツサについてのス
テータス情報を含む。下に示すように、プロセツ
サ・ステータス・フイールド内に含まれているの
は、プロセツサ状態、デイスパツチ状態および種
類を記述するサブフイールドである。
【表】
プロセツサ・ユニツト番号は初期設定またはリ
セツト時にプロセツサに格納される値である。 実行中/停止ビツトは次のように解読される。 0−実行中 1−停止 キユー/デキユー・ビツトは次のように解読さ
れる。 0−デイスパツチ・ポートで待機してない 1−デイスパツチ・ポートで待機 割り当て/割り当て解除ビツトは次のように解
読される。 0−プロセスに割り当てられる 1−プロセスに割り当てられない デイスパツチ状態サブフイールドは次のように
解読される。 00−通常のデイスパツチ・ポートを使用 01−警報デイスパツチ・ポートを使用 10−診断デイスパツチ・ポートを使用 11−留保 これら状態の意味は後の項目で説明する。 同報通信許可モード・ビツトは次のように解読
される。 0−同報通信プロセツサ相互間メツセージが受
け入られて認められている。 2−同報通信プロセツサ相互間メツセージが受
け入れられるか、認められていない プロセツサ種類サブフイールドは次のように解
読される。 00−一般化されたデータ処理装置 01−入出力プロセツサ 10−留保 11−留保 プロセツサ・ステータス・フイールド内のサブ
フイールドのすべてはプロセツサ自体によつて初
期設定されて保持される。 4.8.1.2.2 プロセツサ・フオールト情報 プロセツサ・レベル・フオールトが起こると、
フオールト情報はプロセツサ・コントロール・セ
グメント内に記録される。プロセツサ・フオール
ト・コード・ワードはプロセツサ・レベル・フオ
ールトの原因を記録するために使用される。プロ
セス・フオールト・コード・ワード、セグメン
ト・テーブル・ダイレクトリ索引およびセグメン
ト・テーブル索引は、それが可能でないときプロ
セス・オブジエクト内に記録されたであろう同じ
情報を記録するために使用される。 診断走査領域は、プロセツサ相互間通信の診断
機能を介して要求のあつた情報を記録するために
使用される。 プロセツサ・コントロール・セグメント・アク
セス記述子のベース・ライト・フイールドは、ベ
ース種類データ・セグメントの全セグメントにつ
いてと同じように解読される。プロセツサ・コン
トロール・セグメント・アクセス記述子のシステ
ム・ライト・フイールドは解読されない。 4.8.1.3 グローバル通信セグメント 共通に興味があるメツセージを伝送しなければ
ならないとき、システム内でプロセツサのすべて
を個々のベースで交信させることが不都合である
ことは多い。この理由により、各プロセツサは、
そのプロセツサ・オブジエクト内の4番目のエン
トリを介してグローバル通信セグメントという共
通通信領域へのアクセス権が与えられる。このセ
グメントの構造はプロセツサ・コントロール・セ
グメントのローカル通信領域の構造と同一であ
る。ただし、1つの例外として、グローバル通信
セグメントはプロセツサ・ステータス・フオール
ト情報または診断走査フイールドを含まない。 短序数値であるプロセツサ・カウントは、セグ
メントに対してアクセス権を有するプロセツサの
総数に等しくなるようにシステム・ソフトウエア
により設定される。プロセツサ・コントロール・
セグメントの場合のように、リスポンス・ロツク
はリスポンス・カウントがゼロに到達するまでク
リアされない。これによつて、別のメツセージが
受け入れられる前に全プロセツサが応答すること
が保証される。リスポンス・カウントは、送信側
プロセツサによつてプロセツサ計数値に初期設定
される。 グローバル通信セグメント・アクセス記述子の
ベース・ライト・フイールドはベース種類デー
タ・セグメントの全セグメントについてと同じよ
うに解読される。システム・ライトは解読されな
い。 4.8.1.4 現在プロセス・オブジエクト プロセツサがプロセスを実行している間、その
プロセツサ・オブジエクトの3番目のエントリは
プロセス・オブジエクト・アクセス記述子を介し
てそのプロセスの身元を生ずる。この記述子があ
ることによつて幾つかのソフトウエアとハードウ
エア機能が簡単になる。例えばこの記述子によつ
てシステム・ソフトウエアは、プロセスがある場
合にどのプロセスを現在実行しているかを外乱な
しに確認することができる。ハードウエア側で
は、プロセスを実行している間にプロセツサが内
部で緩衝しているアドレス指定情報をプロセツサ
がいつか再修飾することを強いられる場合には、
この記述子は再修飾の後にプロセツサにとつてア
ドレス指定をもう1度可能にする便利な手段とな
る。 他のプロセツサが実行準備完了プロセスをその
前に遊んでいたプロセツサに割り当てることがで
きるようにするためにも現在プロセス・オブジエ
クト・エントリが使用される。いつたん別のプロ
セツサが所望のプロセス・オブジエクト・アクセ
ス記述子を現在プロセス・オブジエクト・エント
リに格納すると、遊んでいるプロセツサの目をさ
ましてこれにプロセスの実行を再開させることは
容易である。万一、プロセツサがプロセスを中断
することを強いられると、現在プロセス・オブジ
エクト・アクセス記述子は指定のポートで適当な
行列に容易に複写される。 4.8.1.5 現在セグメント・テーブル・ダイレクト
リ システムの初期設定中に、プロセツサが一時セ
グメント・テーブル・ダイレクトリのみを使用す
ることは非常に多い。初期設定の後、システム・
ソフトウエアはプロセツサに対して、初期設定中
に作られた新しくてもつと恒久的なダイレクトリ
に変わるように命令する。プロセツサ・オブジエ
クトの5番目のエントリは、この新しい現在セグ
メント・テーブル・ダイレクトリのセグメント・
テーブル・ダイレクトリ・アクセス記述子を含
む。 4.8.1.6 警報デイスパツチ・ポート 物理的に相互接続された警報信号を検出する
際、プロセツサは現在実行しているどのプロセス
をも中断して警報デイスパツチ状態にはいる。こ
の時点でプロセツサは、そのプロセツサ・オブジ
エクトの7番目のエントリ内のポート・アクセス
記述子によつて指定された警報デイスパツチ・ポ
ートで待機していると確認されるどのプロセスを
も実行し始める。このポートにあるプロセスは、
切迫した停電の場合に実行するかもしれないもの
のように、極めて大きな優先度を有すると意図さ
れる。 プロセツサ相互間メツセージは、警報デイスパ
ツチ状態にはいるか出ることをプロセツサに要求
するために使用することができる。 4.8.1.7 診断デイスパツチ・ポート プロセツサは内部の誤動作を疑うと、現在実行
しているどのプロセスも中断して診断デイスパツ
チ状態にはいる。その時点でプロセツサは、その
プロセツサ・オブジエクトの8番目のエントリに
よつて指定された診断デイスパツチ・ポートで待
機していることを確認したどのプロセスも実行し
始める。このポートにあるプロセスは、プロセツ
サの適切な動作を確認するか、それが停止するこ
とを要求する種類であることを意図される。 プロセツサ相互間メツセージは、診断デイスパ
ツチ状態にはいるか出ることをプロセツサに要求
するために使用することができる。 4.8.1.8 フオールト・アクセス記述子とフオール
ト・プロセス・オブジエクト フオールト・アクセス記述子は、フオールトし
たプロセスのプロセス・オブジエクト内の同一名
のエントリに通常に記録されるアクセス記述子を
記録することが不可能なとき、そのアクセス記述
子を記録するために使用される。フオールト・プ
ロセス・オブジエクトは、プロセツサ・レベルの
フオールトが生じたとき所定のプロセツサでプロ
セスが実行されていた場合、そのプロセスのアク
セス記述子を記録するために使用される。 4.8.2 デイスパツチ・ポート プロセツサは、バツフア付き通信ポートで送ら
れたメツセージを処理するプロセスとほぼ同じよ
うに、デイスパツチ・ポートでメツセージを受け
取ることによつて実行準備完了のプロセスを処理
する。しかしデイスパツチ・ポート機能の差は、
異なるハードウエア認識データ構造を必要とする
ほど重要である。 デイスパツチ・ポートの場合には両種類の記述
子を同時に行列に並べることが可能であるので、
デイスパツチ・ポートは物理的に2つの行列を含
む。ポートに見出されるステータス情報は、関連
するリクエスト行列とサーバ行列の各状態を指示
する。 デイスパツチ・ポートは構成が第4B図に示さ
れているアクセス・リストによつて表わされる。 アクセス記述子領域と呼称される、ポート・ア
クセス・リストの残りは、そのポートで待機した
アクセス記述子の一時的な貯蔵所つまりバツフア
として働く。 デイスパツチ・ポートはデイスパツチ・ポー
ト・アクセス記述子を介してアクセスされる。デ
イスパツチ・ポート・アクセス記述子のベース・
ライト・フイールドは、ベース種類アクセス・リ
ストの全オブジエクトについてと同じように解読
される。 デイスパツチ・ポート・アクセス記述子のシス
テム・ライト・フイールドは次のように解読され
る。 00−プロセス・オブジエクトがこのデイスパツ
チ・ポートとの間で送受される。 01−プロセス・オブジエクトがこのデイスパツ
チ・ポートに送られる。 10−プロセス・オブジエクトがこのデイスパツ
チ・ポートから受け取られる。 11−プロセス・オブジエクトがこのデイスパツ
チ・ポートに送られもしなければそれから
受け取られもしない。 以下の小項目でポート内の他の要素を詳細に説
明する。 4.8.2.1 デイスパツチ・ポート・コントロール・
セグメント デイスパツチ・ポートの2つの行列は、そのポ
ート・コントロール・セグメントのハードウエア
で認識されるデータ構造によつて定義される。こ
のセグメントの最初の11個のダブルバイトは行列
ステータスとコントロールの各情報を含み、セグ
メントの残りは行列リンク・レコードに関して動
的に割り当てられる領域を含む。このセグメント
の全体構造は第4B図に示されている。 ポート・コントロール・セグメントの最初のダ
ブルバイトはポート・ステータス・フイールドを
含む。 下に示すようなこのフイールド内の情報は、両
種類の行列に並んだ記述子の有無を指示する。
セツト時にプロセツサに格納される値である。 実行中/停止ビツトは次のように解読される。 0−実行中 1−停止 キユー/デキユー・ビツトは次のように解読さ
れる。 0−デイスパツチ・ポートで待機してない 1−デイスパツチ・ポートで待機 割り当て/割り当て解除ビツトは次のように解
読される。 0−プロセスに割り当てられる 1−プロセスに割り当てられない デイスパツチ状態サブフイールドは次のように
解読される。 00−通常のデイスパツチ・ポートを使用 01−警報デイスパツチ・ポートを使用 10−診断デイスパツチ・ポートを使用 11−留保 これら状態の意味は後の項目で説明する。 同報通信許可モード・ビツトは次のように解読
される。 0−同報通信プロセツサ相互間メツセージが受
け入られて認められている。 2−同報通信プロセツサ相互間メツセージが受
け入れられるか、認められていない プロセツサ種類サブフイールドは次のように解
読される。 00−一般化されたデータ処理装置 01−入出力プロセツサ 10−留保 11−留保 プロセツサ・ステータス・フイールド内のサブ
フイールドのすべてはプロセツサ自体によつて初
期設定されて保持される。 4.8.1.2.2 プロセツサ・フオールト情報 プロセツサ・レベル・フオールトが起こると、
フオールト情報はプロセツサ・コントロール・セ
グメント内に記録される。プロセツサ・フオール
ト・コード・ワードはプロセツサ・レベル・フオ
ールトの原因を記録するために使用される。プロ
セス・フオールト・コード・ワード、セグメン
ト・テーブル・ダイレクトリ索引およびセグメン
ト・テーブル索引は、それが可能でないときプロ
セス・オブジエクト内に記録されたであろう同じ
情報を記録するために使用される。 診断走査領域は、プロセツサ相互間通信の診断
機能を介して要求のあつた情報を記録するために
使用される。 プロセツサ・コントロール・セグメント・アク
セス記述子のベース・ライト・フイールドは、ベ
ース種類データ・セグメントの全セグメントにつ
いてと同じように解読される。プロセツサ・コン
トロール・セグメント・アクセス記述子のシステ
ム・ライト・フイールドは解読されない。 4.8.1.3 グローバル通信セグメント 共通に興味があるメツセージを伝送しなければ
ならないとき、システム内でプロセツサのすべて
を個々のベースで交信させることが不都合である
ことは多い。この理由により、各プロセツサは、
そのプロセツサ・オブジエクト内の4番目のエン
トリを介してグローバル通信セグメントという共
通通信領域へのアクセス権が与えられる。このセ
グメントの構造はプロセツサ・コントロール・セ
グメントのローカル通信領域の構造と同一であ
る。ただし、1つの例外として、グローバル通信
セグメントはプロセツサ・ステータス・フオール
ト情報または診断走査フイールドを含まない。 短序数値であるプロセツサ・カウントは、セグ
メントに対してアクセス権を有するプロセツサの
総数に等しくなるようにシステム・ソフトウエア
により設定される。プロセツサ・コントロール・
セグメントの場合のように、リスポンス・ロツク
はリスポンス・カウントがゼロに到達するまでク
リアされない。これによつて、別のメツセージが
受け入れられる前に全プロセツサが応答すること
が保証される。リスポンス・カウントは、送信側
プロセツサによつてプロセツサ計数値に初期設定
される。 グローバル通信セグメント・アクセス記述子の
ベース・ライト・フイールドはベース種類デー
タ・セグメントの全セグメントについてと同じよ
うに解読される。システム・ライトは解読されな
い。 4.8.1.4 現在プロセス・オブジエクト プロセツサがプロセスを実行している間、その
プロセツサ・オブジエクトの3番目のエントリは
プロセス・オブジエクト・アクセス記述子を介し
てそのプロセスの身元を生ずる。この記述子があ
ることによつて幾つかのソフトウエアとハードウ
エア機能が簡単になる。例えばこの記述子によつ
てシステム・ソフトウエアは、プロセスがある場
合にどのプロセスを現在実行しているかを外乱な
しに確認することができる。ハードウエア側で
は、プロセスを実行している間にプロセツサが内
部で緩衝しているアドレス指定情報をプロセツサ
がいつか再修飾することを強いられる場合には、
この記述子は再修飾の後にプロセツサにとつてア
ドレス指定をもう1度可能にする便利な手段とな
る。 他のプロセツサが実行準備完了プロセスをその
前に遊んでいたプロセツサに割り当てることがで
きるようにするためにも現在プロセス・オブジエ
クト・エントリが使用される。いつたん別のプロ
セツサが所望のプロセス・オブジエクト・アクセ
ス記述子を現在プロセス・オブジエクト・エント
リに格納すると、遊んでいるプロセツサの目をさ
ましてこれにプロセスの実行を再開させることは
容易である。万一、プロセツサがプロセスを中断
することを強いられると、現在プロセス・オブジ
エクト・アクセス記述子は指定のポートで適当な
行列に容易に複写される。 4.8.1.5 現在セグメント・テーブル・ダイレクト
リ システムの初期設定中に、プロセツサが一時セ
グメント・テーブル・ダイレクトリのみを使用す
ることは非常に多い。初期設定の後、システム・
ソフトウエアはプロセツサに対して、初期設定中
に作られた新しくてもつと恒久的なダイレクトリ
に変わるように命令する。プロセツサ・オブジエ
クトの5番目のエントリは、この新しい現在セグ
メント・テーブル・ダイレクトリのセグメント・
テーブル・ダイレクトリ・アクセス記述子を含
む。 4.8.1.6 警報デイスパツチ・ポート 物理的に相互接続された警報信号を検出する
際、プロセツサは現在実行しているどのプロセス
をも中断して警報デイスパツチ状態にはいる。こ
の時点でプロセツサは、そのプロセツサ・オブジ
エクトの7番目のエントリ内のポート・アクセス
記述子によつて指定された警報デイスパツチ・ポ
ートで待機していると確認されるどのプロセスを
も実行し始める。このポートにあるプロセスは、
切迫した停電の場合に実行するかもしれないもの
のように、極めて大きな優先度を有すると意図さ
れる。 プロセツサ相互間メツセージは、警報デイスパ
ツチ状態にはいるか出ることをプロセツサに要求
するために使用することができる。 4.8.1.7 診断デイスパツチ・ポート プロセツサは内部の誤動作を疑うと、現在実行
しているどのプロセスも中断して診断デイスパツ
チ状態にはいる。その時点でプロセツサは、その
プロセツサ・オブジエクトの8番目のエントリに
よつて指定された診断デイスパツチ・ポートで待
機していることを確認したどのプロセスも実行し
始める。このポートにあるプロセスは、プロセツ
サの適切な動作を確認するか、それが停止するこ
とを要求する種類であることを意図される。 プロセツサ相互間メツセージは、診断デイスパ
ツチ状態にはいるか出ることをプロセツサに要求
するために使用することができる。 4.8.1.8 フオールト・アクセス記述子とフオール
ト・プロセス・オブジエクト フオールト・アクセス記述子は、フオールトし
たプロセスのプロセス・オブジエクト内の同一名
のエントリに通常に記録されるアクセス記述子を
記録することが不可能なとき、そのアクセス記述
子を記録するために使用される。フオールト・プ
ロセス・オブジエクトは、プロセツサ・レベルの
フオールトが生じたとき所定のプロセツサでプロ
セスが実行されていた場合、そのプロセスのアク
セス記述子を記録するために使用される。 4.8.2 デイスパツチ・ポート プロセツサは、バツフア付き通信ポートで送ら
れたメツセージを処理するプロセスとほぼ同じよ
うに、デイスパツチ・ポートでメツセージを受け
取ることによつて実行準備完了のプロセスを処理
する。しかしデイスパツチ・ポート機能の差は、
異なるハードウエア認識データ構造を必要とする
ほど重要である。 デイスパツチ・ポートの場合には両種類の記述
子を同時に行列に並べることが可能であるので、
デイスパツチ・ポートは物理的に2つの行列を含
む。ポートに見出されるステータス情報は、関連
するリクエスト行列とサーバ行列の各状態を指示
する。 デイスパツチ・ポートは構成が第4B図に示さ
れているアクセス・リストによつて表わされる。 アクセス記述子領域と呼称される、ポート・ア
クセス・リストの残りは、そのポートで待機した
アクセス記述子の一時的な貯蔵所つまりバツフア
として働く。 デイスパツチ・ポートはデイスパツチ・ポー
ト・アクセス記述子を介してアクセスされる。デ
イスパツチ・ポート・アクセス記述子のベース・
ライト・フイールドは、ベース種類アクセス・リ
ストの全オブジエクトについてと同じように解読
される。 デイスパツチ・ポート・アクセス記述子のシス
テム・ライト・フイールドは次のように解読され
る。 00−プロセス・オブジエクトがこのデイスパツ
チ・ポートとの間で送受される。 01−プロセス・オブジエクトがこのデイスパツ
チ・ポートに送られる。 10−プロセス・オブジエクトがこのデイスパツ
チ・ポートから受け取られる。 11−プロセス・オブジエクトがこのデイスパツ
チ・ポートに送られもしなければそれから
受け取られもしない。 以下の小項目でポート内の他の要素を詳細に説
明する。 4.8.2.1 デイスパツチ・ポート・コントロール・
セグメント デイスパツチ・ポートの2つの行列は、そのポ
ート・コントロール・セグメントのハードウエア
で認識されるデータ構造によつて定義される。こ
のセグメントの最初の11個のダブルバイトは行列
ステータスとコントロールの各情報を含み、セグ
メントの残りは行列リンク・レコードに関して動
的に割り当てられる領域を含む。このセグメント
の全体構造は第4B図に示されている。 ポート・コントロール・セグメントの最初のダ
ブルバイトはポート・ステータス・フイールドを
含む。 下に示すようなこのフイールド内の情報は、両
種類の行列に並んだ記述子の有無を指示する。
【表】
ポート・ロツクは、挿入または除去動作の間に
ポートへの1つのプロセス独占アクセス権を与え
るために、プロセスまたはプロセツサによつて使
用される。 行列状態標識は、関連する行列がからであるか
一杯であるかを指示する。 処理速度標識は、ポートの状態をそのデツドラ
インに関して指示する。ゼロの値は、プロセツサ
が最後にプロセスを割り当てたとき、そのプロセ
スのデツドラインが経過していなかつたことを指
示する。1の値は、プロセツサが最後にプロセス
を割り当てたとき、そのプロセスのデツドライン
が経過していたことを指示する。ソフトウエア
は、このポートからプロセスを割り当てているプ
ロセツサがスケジユールより進んでいるか遅れて
いるかを判定するためにこの標識を調べることが
できる。 デイスパツチ・ポート・コントロール・セグメ
ント・アクセス記述子のベース・ライト・フイー
ルドは、ベース種類データ・セグメントの全セグ
メントについてと同じように解読される。デイス
パツチ・ポート・コントロール・セグメント・ア
クセス記述子のシステム・ライト・フイールドは
解読されない。 4.8.2.2 リクエストとサービス行列 ポート・コントロール・セグメントの2番目の
2つのダブルバイトは、リクエスト行列の頭と末
尾を位置決めするために使用される。ポート・コ
ントロール・セグメントの7番目と8番目のダブ
ルバイトは、サーバ行列の頭と末尾を位置決めす
るために使用される。ポート・コントロール・セ
グメントの6番目のダブルバイトは、リクエスト
行列内の行列要素の計数値を含む。ポート・コン
トロール・セグメントの9番目のダブルバイト
は、サーバ行列内の行列要素の計数値を含む。 ソフトウエアをポートのマネージメントにおい
て手助けするために、挿入動作中に2つの最大計
数値をハードウエアによつて維持することができ
る。カウント・コントロール標識は、行列の長さ
の監視を行なうべきかどうかを指示する。ゼロの
値は、行列の長さの監視を行なうべきであること
を指示する。1の値は、行列の長さの監視を行な
うべきではないことを指示する。カウント・コン
トロール標識は、行列の長さの監視が望ましくも
必要でもない場合に、システムの性能を向上させ
るのに使用することができる。行列によつては、
カウント・コントロール標識が設定されないと、
必要に応じて適当な最大カウント・フイールドが
チエツクされ、更新される。 行列がソフトウエアによつて初期設定される
と、フリー行列リンク・レコードのリストが作ら
れる。このリストの頭は、ポート・コントロー
ル・セグメントの7番目のダブル・バイトに見出
される短序数値である。これはフリー・リスト内
の最初の行列リンク・レコードの最下位アドレス
指定されたバイトへのバイト変位を含む。 アクセス記述子領域内の記述子の位置と、対応
する行列内のその到着順序は行列リンク・レコー
ドによつて与えられる。そのようなレコードの構
造は第4B図に示している。 後任リンクと前任リンクはそれぞれ、前後に行
列に並んだ記述子の行列リンク・レコードの最下
位アドレス指定されたバイトまでのバイト変位を
含む短序数である。ゼロ変位は関連しているレコ
ードがないことを意味する。これは、行列の最初
の行列リンク・レコードの前任リンクと、最後の
行列リンク・レコードの後任リンクでのみ起こ
る。行列エントリ・フイールドは、アクセス記述
子領域内の関連するアクセス記述子のアクセス・
リスト・エントリ数を指定する短序数である。 4.8.2.3 デツドライン 行列リンク・レコードの4番目のダブルバイト
は、デツドラインという短実数値を保持するため
にデイスパツチ・ポート内で使用される。デツド
ライン値を決定する方法は第5章で説明する。こ
の値は、デイスパツチ・ポートでリクエスト行列
のプロセスを挿入するのに使用する「最も近いデ
ツドラインが最初」のアルゴリズムの基礎であ
る。基本的には、デツドラインが最も近い(すな
わち、時間が最も近い)プロセスはリクエスト行
列の頭に格納される。リクエスト行列のプロセス
はこのように、デツドラインを増加することによ
つて順序づけられる。デイスパツチ・モールド・
ビツトは、待機したプロセスがそのデツドライン
が到着する前に割り当てられるか、あるいはその
後のみに割り当てることができるかを指示する。
ビツトがゼロであると、プロセスは先に割り当て
られる。そうでないときは、プロセスはそのデツ
ドラインが到着または通り過ぎてから割り当てら
れる。プロセツサはリクエスト行列の頭で開始す
ることによつてプロセスを選択するので、デツド
ラインが最も近いプロセスは通常最初に処理され
る。デイスパツチ・モード・ビツトが設定されて
デツドラインが到着していない行列リンク・レコ
ードに出会うとプロセツサは、そのレコードを無
視してその行列をさらに下つて割り当て可能なプ
ロセスを発見しようとする。プロセツサがデイス
パツチ・ポートで行列に並ぶと、デツドライン・
フイールドの値はゼロである。 アクセス記述子がポートで行列に挿入されるご
とに、新しい行列リンク・レコードがフリー・リ
ストから除去される。アクセス記述子は行列リン
ク・レコードによつて指定されたエントリで記憶
され、そしてレコードは増加するデツドライン順
序で行列に挿入される。行列から一要素が除去さ
れるごとに、ヘツド行列リンク・レコードは関連
のアクセス記述子の位置を指定する。次にヘツド
行列リンクが行列から除去されてフリー・リスト
に戻される。 4.8.2.4 プリエンプシヨン・ポート デイスパツチ・ポートの2番目のエントリ内の
ポート・アクセス記述子はプリエンプシヨンを参
照し、外部の理由(例えば、期間計数満了または
保守要求)によつて中断されていたプロセスは適
当なリスケジユーリングまたは破壊のためにプロ
セス・オブジエクト・アクセス記述子メツセージ
の形でそのプリエンプシヨン・ポートに送られ
る。サービス期間満了に関する通常のプリエンプ
シヨンの場合、先取りされたプロセスはその現在
のデイスパツチ・ポートのリクエスト行列に再び
はいるだけで、しばらくした後に実行が続行され
る。プリエンプシヨン・ポートは通常、他のすべ
てのメツセージのようにプロセスが処理されるバ
ツフア付きポートである。 4.9 ストレージ 前述の機能の多くはすべての種類のオブジエク
トの動的な創造、具体的には新しいコンテクスト
の動的な創造を促進する。そのような動的な状況
においてシステムの性能を保つために、本システ
ムはセグメント記述子とメモリスペースの迅速な
割り当てのハードウエア機構を提供する。 セグメントの創造を制御する種類のオブジエク
トはストレージ・リソースといい、これは1対の
関連するオブジエクトへのアクセス権を与える。
第1のオブジエクトはストレージ・リソース・コ
ントロール・セグメントといい、これはストレー
ジ・リソース・オブジエクトの特定例によつて割
り当てられるストレージの物理的ブロツクを定義
する。2番目のオブジエクトは、アドレス展開に
広く使用されるがストレージ・リソースに未割り
当てのセグメント記述子のリストを提供するセグ
メント・テーブルである。ストレージ・リソース
は第2B図に図示式に示す。 ストレージ・リソース用のアクセス記述子のベ
ース・ライトは、ベース種類アクセス・リストの
全セグメントについてと同じように解読される。 ストレージ・リソース・オブジエクト・アクセ
ス記述子用のシステム・ライト・フイールドの下
位ビツトは、以下のように解読される。 0−両種類のベース種類セグメントがこのスト
レージ・リソースから割り当てられる。 1−このストレージ・リソースからセグメント
が割り当てられない。 ストレージ・リソース・オブジエクトのシステ
ム・ライト・フイールドの高位ビツトは解読され
ない。 4.9.1 フリー・セグメント記述子リスト 各セグメント・テーブルにおいて、未割り当て
セグメント記述子のすべては関連づけられてフリ
ー・セグメント記述子のリストを形成する。この
リストの頭は、セグメント・テーブル内の2番目
のセグメント記述子エントリに位置した、特別な
書式のセグメント記述子である。フリー・セグメ
ント記述子リストの頭の構成を次に示す。
ポートへの1つのプロセス独占アクセス権を与え
るために、プロセスまたはプロセツサによつて使
用される。 行列状態標識は、関連する行列がからであるか
一杯であるかを指示する。 処理速度標識は、ポートの状態をそのデツドラ
インに関して指示する。ゼロの値は、プロセツサ
が最後にプロセスを割り当てたとき、そのプロセ
スのデツドラインが経過していなかつたことを指
示する。1の値は、プロセツサが最後にプロセス
を割り当てたとき、そのプロセスのデツドライン
が経過していたことを指示する。ソフトウエア
は、このポートからプロセスを割り当てているプ
ロセツサがスケジユールより進んでいるか遅れて
いるかを判定するためにこの標識を調べることが
できる。 デイスパツチ・ポート・コントロール・セグメ
ント・アクセス記述子のベース・ライト・フイー
ルドは、ベース種類データ・セグメントの全セグ
メントについてと同じように解読される。デイス
パツチ・ポート・コントロール・セグメント・ア
クセス記述子のシステム・ライト・フイールドは
解読されない。 4.8.2.2 リクエストとサービス行列 ポート・コントロール・セグメントの2番目の
2つのダブルバイトは、リクエスト行列の頭と末
尾を位置決めするために使用される。ポート・コ
ントロール・セグメントの7番目と8番目のダブ
ルバイトは、サーバ行列の頭と末尾を位置決めす
るために使用される。ポート・コントロール・セ
グメントの6番目のダブルバイトは、リクエスト
行列内の行列要素の計数値を含む。ポート・コン
トロール・セグメントの9番目のダブルバイト
は、サーバ行列内の行列要素の計数値を含む。 ソフトウエアをポートのマネージメントにおい
て手助けするために、挿入動作中に2つの最大計
数値をハードウエアによつて維持することができ
る。カウント・コントロール標識は、行列の長さ
の監視を行なうべきかどうかを指示する。ゼロの
値は、行列の長さの監視を行なうべきであること
を指示する。1の値は、行列の長さの監視を行な
うべきではないことを指示する。カウント・コン
トロール標識は、行列の長さの監視が望ましくも
必要でもない場合に、システムの性能を向上させ
るのに使用することができる。行列によつては、
カウント・コントロール標識が設定されないと、
必要に応じて適当な最大カウント・フイールドが
チエツクされ、更新される。 行列がソフトウエアによつて初期設定される
と、フリー行列リンク・レコードのリストが作ら
れる。このリストの頭は、ポート・コントロー
ル・セグメントの7番目のダブル・バイトに見出
される短序数値である。これはフリー・リスト内
の最初の行列リンク・レコードの最下位アドレス
指定されたバイトへのバイト変位を含む。 アクセス記述子領域内の記述子の位置と、対応
する行列内のその到着順序は行列リンク・レコー
ドによつて与えられる。そのようなレコードの構
造は第4B図に示している。 後任リンクと前任リンクはそれぞれ、前後に行
列に並んだ記述子の行列リンク・レコードの最下
位アドレス指定されたバイトまでのバイト変位を
含む短序数である。ゼロ変位は関連しているレコ
ードがないことを意味する。これは、行列の最初
の行列リンク・レコードの前任リンクと、最後の
行列リンク・レコードの後任リンクでのみ起こ
る。行列エントリ・フイールドは、アクセス記述
子領域内の関連するアクセス記述子のアクセス・
リスト・エントリ数を指定する短序数である。 4.8.2.3 デツドライン 行列リンク・レコードの4番目のダブルバイト
は、デツドラインという短実数値を保持するため
にデイスパツチ・ポート内で使用される。デツド
ライン値を決定する方法は第5章で説明する。こ
の値は、デイスパツチ・ポートでリクエスト行列
のプロセスを挿入するのに使用する「最も近いデ
ツドラインが最初」のアルゴリズムの基礎であ
る。基本的には、デツドラインが最も近い(すな
わち、時間が最も近い)プロセスはリクエスト行
列の頭に格納される。リクエスト行列のプロセス
はこのように、デツドラインを増加することによ
つて順序づけられる。デイスパツチ・モールド・
ビツトは、待機したプロセスがそのデツドライン
が到着する前に割り当てられるか、あるいはその
後のみに割り当てることができるかを指示する。
ビツトがゼロであると、プロセスは先に割り当て
られる。そうでないときは、プロセスはそのデツ
ドラインが到着または通り過ぎてから割り当てら
れる。プロセツサはリクエスト行列の頭で開始す
ることによつてプロセスを選択するので、デツド
ラインが最も近いプロセスは通常最初に処理され
る。デイスパツチ・モード・ビツトが設定されて
デツドラインが到着していない行列リンク・レコ
ードに出会うとプロセツサは、そのレコードを無
視してその行列をさらに下つて割り当て可能なプ
ロセスを発見しようとする。プロセツサがデイス
パツチ・ポートで行列に並ぶと、デツドライン・
フイールドの値はゼロである。 アクセス記述子がポートで行列に挿入されるご
とに、新しい行列リンク・レコードがフリー・リ
ストから除去される。アクセス記述子は行列リン
ク・レコードによつて指定されたエントリで記憶
され、そしてレコードは増加するデツドライン順
序で行列に挿入される。行列から一要素が除去さ
れるごとに、ヘツド行列リンク・レコードは関連
のアクセス記述子の位置を指定する。次にヘツド
行列リンクが行列から除去されてフリー・リスト
に戻される。 4.8.2.4 プリエンプシヨン・ポート デイスパツチ・ポートの2番目のエントリ内の
ポート・アクセス記述子はプリエンプシヨンを参
照し、外部の理由(例えば、期間計数満了または
保守要求)によつて中断されていたプロセスは適
当なリスケジユーリングまたは破壊のためにプロ
セス・オブジエクト・アクセス記述子メツセージ
の形でそのプリエンプシヨン・ポートに送られ
る。サービス期間満了に関する通常のプリエンプ
シヨンの場合、先取りされたプロセスはその現在
のデイスパツチ・ポートのリクエスト行列に再び
はいるだけで、しばらくした後に実行が続行され
る。プリエンプシヨン・ポートは通常、他のすべ
てのメツセージのようにプロセスが処理されるバ
ツフア付きポートである。 4.9 ストレージ 前述の機能の多くはすべての種類のオブジエク
トの動的な創造、具体的には新しいコンテクスト
の動的な創造を促進する。そのような動的な状況
においてシステムの性能を保つために、本システ
ムはセグメント記述子とメモリスペースの迅速な
割り当てのハードウエア機構を提供する。 セグメントの創造を制御する種類のオブジエク
トはストレージ・リソースといい、これは1対の
関連するオブジエクトへのアクセス権を与える。
第1のオブジエクトはストレージ・リソース・コ
ントロール・セグメントといい、これはストレー
ジ・リソース・オブジエクトの特定例によつて割
り当てられるストレージの物理的ブロツクを定義
する。2番目のオブジエクトは、アドレス展開に
広く使用されるがストレージ・リソースに未割り
当てのセグメント記述子のリストを提供するセグ
メント・テーブルである。ストレージ・リソース
は第2B図に図示式に示す。 ストレージ・リソース用のアクセス記述子のベ
ース・ライトは、ベース種類アクセス・リストの
全セグメントについてと同じように解読される。 ストレージ・リソース・オブジエクト・アクセ
ス記述子用のシステム・ライト・フイールドの下
位ビツトは、以下のように解読される。 0−両種類のベース種類セグメントがこのスト
レージ・リソースから割り当てられる。 1−このストレージ・リソースからセグメント
が割り当てられない。 ストレージ・リソース・オブジエクトのシステ
ム・ライト・フイールドの高位ビツトは解読され
ない。 4.9.1 フリー・セグメント記述子リスト 各セグメント・テーブルにおいて、未割り当て
セグメント記述子のすべては関連づけられてフリ
ー・セグメント記述子のリストを形成する。この
リストの頭は、セグメント・テーブル内の2番目
のセグメント記述子エントリに位置した、特別な
書式のセグメント記述子である。フリー・セグメ
ント記述子リストの頭の構成を次に示す。
【表】
記述子ロツクは、割り当てサイクル中にストレ
ージ・リソース・コントロール・セグメントへの
独占的なアクセス権を保証するために使用され
る。ロツクするもの(プロセツサまたはプロセ
ス)の身元はロツカーIDフイールドに格納され
る。 セグメント記述子索引は、フリー・リスト上の
最初のフリー・セグメント記述子の索引を含む。
ゼロであると、フリー・リストはからである。 リスト長フイールドは、フリー・リストに残つ
ているセグメント記述子の計数値を維持する。セ
グメント索引フイールドがゼロの値を有するとき
それはゼロの値であつた。 ストレージが割り当てられるごとに、フリー・
リストの頭によつて選択されるフリー・セグメン
ト記述子はフリー・リストから除去される。未割
り当てセグメント記述子の構成は次のページに示
す。
ージ・リソース・コントロール・セグメントへの
独占的なアクセス権を保証するために使用され
る。ロツクするもの(プロセツサまたはプロセ
ス)の身元はロツカーIDフイールドに格納され
る。 セグメント記述子索引は、フリー・リスト上の
最初のフリー・セグメント記述子の索引を含む。
ゼロであると、フリー・リストはからである。 リスト長フイールドは、フリー・リストに残つ
ているセグメント記述子の計数値を維持する。セ
グメント索引フイールドがゼロの値を有するとき
それはゼロの値であつた。 ストレージが割り当てられるごとに、フリー・
リストの頭によつて選択されるフリー・セグメン
ト記述子はフリー・リストから除去される。未割
り当てセグメント記述子の構成は次のページに示
す。
【表】
2つのフイールドだけがフリー・セグメント記
述子で定義される。記述子種類フイールドは記述
子が割り当てられていないことを指示し、セグメ
ント記述子索引はリスト上の次のフリー・セグメ
ント記述子を選択する。索引がゼロであると、記
述子はフリー・リスト上の最後のものである。フ
リー・セグメント記述子がフリー・リストの頭か
ら割り当てられる際、そのセグメント記述子索引
はフリー・セグメント記述子リスト・ヘツドのセ
グメント索引フイールド内の値を更新するために
使用される。このようにして、フリー・リスト・
ヘツドは常にセグメント記述子フリー・リスト上
の次のフリー記述子を選択する。 4.9.2 ストレージ・リソース・コントロール・
セグメント ストレージ・リソース・コントロール・セグメ
ントは、特定のストレージ・リソースからの割り
当てに利用できる物理メモリのブロツクを定義す
る。ストレージの多くのブロツクはストレージ・
リソースに関連づけることができ、各ブロツクは
ストレージ・リソース・コントロール・セグメン
トの内部で定義され、このセグメントの全体構造
は第3B図に示されている。 ストレージ・ブロツク索引は、このストレー
ジ・リソースからストレージを割り当てる試みを
行なうとき最初に使用すべきストレージ・ブロツ
ク記述子のワード索引である。 ハードウエア・ロツクとソフトウエア・ロツク
はオブジエクトへのオペレーシヨン中にこのオブ
ジエクトへの独占的なアクセス権を保証するため
に使用され、ロツカーIDはロツクするものの身
元を記録する。 物理メモリの各ブロツクはストレージ・ブロツ
ク記述子によつて以下の書式で定義される。
述子で定義される。記述子種類フイールドは記述
子が割り当てられていないことを指示し、セグメ
ント記述子索引はリスト上の次のフリー・セグメ
ント記述子を選択する。索引がゼロであると、記
述子はフリー・リスト上の最後のものである。フ
リー・セグメント記述子がフリー・リストの頭か
ら割り当てられる際、そのセグメント記述子索引
はフリー・セグメント記述子リスト・ヘツドのセ
グメント索引フイールド内の値を更新するために
使用される。このようにして、フリー・リスト・
ヘツドは常にセグメント記述子フリー・リスト上
の次のフリー記述子を選択する。 4.9.2 ストレージ・リソース・コントロール・
セグメント ストレージ・リソース・コントロール・セグメ
ントは、特定のストレージ・リソースからの割り
当てに利用できる物理メモリのブロツクを定義す
る。ストレージの多くのブロツクはストレージ・
リソースに関連づけることができ、各ブロツクは
ストレージ・リソース・コントロール・セグメン
トの内部で定義され、このセグメントの全体構造
は第3B図に示されている。 ストレージ・ブロツク索引は、このストレー
ジ・リソースからストレージを割り当てる試みを
行なうとき最初に使用すべきストレージ・ブロツ
ク記述子のワード索引である。 ハードウエア・ロツクとソフトウエア・ロツク
はオブジエクトへのオペレーシヨン中にこのオブ
ジエクトへの独占的なアクセス権を保証するため
に使用され、ロツカーIDはロツクするものの身
元を記録する。 物理メモリの各ブロツクはストレージ・ブロツ
ク記述子によつて以下の書式で定義される。
【表】
最終ブロツク標識は、これがこのリソースでの
最終ストレージ・ブロツクであるかどうかを指示
する。このブロツクに続く正当なストレージ・ブ
ロツク記述子があるとそれはゼロであり、これが
このリソース内の最終ストレージ・ブロツク記述
子であるとそれは1である。 物理ベース・アドレスは、割り当て元とするこ
とができる物理メモリのフリー・ブロツクのワー
ド整列ベースである。これは暗黙に指定されてい
る2つの下位のゼロ・ビツトを有する。 長さはストレージ・ブロツクのバイト長であ
り、暗黙指定された2つの下位ゼロビツトを有す
る。従つて、この長さは常に1ワードの倍数であ
る。 ストレージ割り当て方法は回転第1適合法とい
う。ストレージ・ブロツク索引の値によつて索引
付けられるストレージ・ブロツクに始まつて、要
求を満足するのに十分な第1のブロツクにスペー
スを割り当てる試みがなされる。現在索引の付い
ているブロツクが十分なスペースをもつていない
と、ストレージ・ブロツク索引は1つの記述子位
置だけ進められる。最後のブロツク標識が設定さ
れている記述子が要求を満足することができない
と、索引は最初のエントリに再設定される。単一
の割り当ての試みの間に索引がこのように進めら
れて試みの最初の値に再び等しくなると、ストレ
ージ割り当てフオールトが生ずる。十分に大きな
ストレージ・ブロツクが発見されると、セグメン
ト・ストレージはブロツクの末尾から割り当てら
れ、ブロツクの長さは割り当てのサイズだけ短縮
される。 ストレージ・リソース・オブジエクト・コント
ロール・セグメント・アクセス記述子のシステ
ム・ライト・フイールドの下位ビツトは以下のよ
うに解読される。 0−ストレージがこのストレージ・リソースか
ら割り当てられる。 1−ストレージがこのストレージ・リソースか
ら割り当てられない。 ストレージ・リソース・アクセス記述子のシス
テム・ライト・フイールドの高位ビツトは解読さ
れない。 4.10 トランス ソフトウエアがあるオブジエクトのセグメント
の種類を決めるか、、一定のアクセス記述子内の
オブジエクトに利用できるアクセス・ライトを修
正しなければならない状況は数多くある。これら
機能の両方ともトランス(トランスフオーマー)
という種類のオブジエクトによつてもたらされ
る。 新しく作られたセグメントをハードウエア認識
システム・オブジエクトを表わすために使用すべ
きときは、そのオブジエクトの種類をシステム種
類ラベリングに入力しなければならない。種類ラ
ベリングに使用するトランスフオーマーは、セグ
メント記述子に格納すべき種類コードを供給す
る。種類ラベリングに使用するトランスフオーマ
ーは保護されているので、適当なアクセス権で必
要なトランスフオーマーにアクセスするオペレー
シヨンのみがその種類のシステム・オブジエクト
を作ることができる。 一部の状況においては、所定のアクセス経路を
通じてあるオブジエクトに利用できるライト(権
利)を増加したり増幅したりすることがオペレー
シヨンにとつて必要になることがある。増幅すべ
きアクセス経路の種類をそのトランスフオーマー
への適当なライトに適合させる種類の値を含む。
保護されたトランスフオーマーへアクセスする
と、オペレーシヨンは現在のアクセス記述子を修
正したり、ライトが増加した新しいアクセス記述
子を作つたりすることができる。 ライトの増加は、トランスフオーマー内のライ
ト・フイールドとアクセス記述子のライト・フイ
ールド内にすでにあるライトの両方の関数であ
る。 現存の経路のために保持されているライトより
も小さいライトで新しいアクセス経路を作ること
が必要なときは常に、適切な書式で保護されてい
ないトランスフオーマーが使用される。アクセ
ス・ライト変更について説明したのと同じように
して、保護されたトランスフオーマーと保護され
ていないトランスフオーマーの両方が使用され、
現存のアクセス記述子の記述子コントロール・フ
イールドが変更されるか、あるいは、変更された
記述子コントロール・フイールドで新しいアクセ
ス記述子が作られる。 トランスフオーマーは以下の構成を有する。
最終ストレージ・ブロツクであるかどうかを指示
する。このブロツクに続く正当なストレージ・ブ
ロツク記述子があるとそれはゼロであり、これが
このリソース内の最終ストレージ・ブロツク記述
子であるとそれは1である。 物理ベース・アドレスは、割り当て元とするこ
とができる物理メモリのフリー・ブロツクのワー
ド整列ベースである。これは暗黙に指定されてい
る2つの下位のゼロ・ビツトを有する。 長さはストレージ・ブロツクのバイト長であ
り、暗黙指定された2つの下位ゼロビツトを有す
る。従つて、この長さは常に1ワードの倍数であ
る。 ストレージ割り当て方法は回転第1適合法とい
う。ストレージ・ブロツク索引の値によつて索引
付けられるストレージ・ブロツクに始まつて、要
求を満足するのに十分な第1のブロツクにスペー
スを割り当てる試みがなされる。現在索引の付い
ているブロツクが十分なスペースをもつていない
と、ストレージ・ブロツク索引は1つの記述子位
置だけ進められる。最後のブロツク標識が設定さ
れている記述子が要求を満足することができない
と、索引は最初のエントリに再設定される。単一
の割り当ての試みの間に索引がこのように進めら
れて試みの最初の値に再び等しくなると、ストレ
ージ割り当てフオールトが生ずる。十分に大きな
ストレージ・ブロツクが発見されると、セグメン
ト・ストレージはブロツクの末尾から割り当てら
れ、ブロツクの長さは割り当てのサイズだけ短縮
される。 ストレージ・リソース・オブジエクト・コント
ロール・セグメント・アクセス記述子のシステ
ム・ライト・フイールドの下位ビツトは以下のよ
うに解読される。 0−ストレージがこのストレージ・リソースか
ら割り当てられる。 1−ストレージがこのストレージ・リソースか
ら割り当てられない。 ストレージ・リソース・アクセス記述子のシス
テム・ライト・フイールドの高位ビツトは解読さ
れない。 4.10 トランス ソフトウエアがあるオブジエクトのセグメント
の種類を決めるか、、一定のアクセス記述子内の
オブジエクトに利用できるアクセス・ライトを修
正しなければならない状況は数多くある。これら
機能の両方ともトランス(トランスフオーマー)
という種類のオブジエクトによつてもたらされ
る。 新しく作られたセグメントをハードウエア認識
システム・オブジエクトを表わすために使用すべ
きときは、そのオブジエクトの種類をシステム種
類ラベリングに入力しなければならない。種類ラ
ベリングに使用するトランスフオーマーは、セグ
メント記述子に格納すべき種類コードを供給す
る。種類ラベリングに使用するトランスフオーマ
ーは保護されているので、適当なアクセス権で必
要なトランスフオーマーにアクセスするオペレー
シヨンのみがその種類のシステム・オブジエクト
を作ることができる。 一部の状況においては、所定のアクセス経路を
通じてあるオブジエクトに利用できるライト(権
利)を増加したり増幅したりすることがオペレー
シヨンにとつて必要になることがある。増幅すべ
きアクセス経路の種類をそのトランスフオーマー
への適当なライトに適合させる種類の値を含む。
保護されたトランスフオーマーへアクセスする
と、オペレーシヨンは現在のアクセス記述子を修
正したり、ライトが増加した新しいアクセス記述
子を作つたりすることができる。 ライトの増加は、トランスフオーマー内のライ
ト・フイールドとアクセス記述子のライト・フイ
ールド内にすでにあるライトの両方の関数であ
る。 現存の経路のために保持されているライトより
も小さいライトで新しいアクセス経路を作ること
が必要なときは常に、適切な書式で保護されてい
ないトランスフオーマーが使用される。アクセ
ス・ライト変更について説明したのと同じように
して、保護されたトランスフオーマーと保護され
ていないトランスフオーマーの両方が使用され、
現存のアクセス記述子の記述子コントロール・フ
イールドが変更されるか、あるいは、変更された
記述子コントロール・フイールドで新しいアクセ
ス記述子が作られる。 トランスフオーマーは以下の構成を有する。
【表】
ベース種類フイールドはトランスフオーマーを
必要とするオペレータによる目的のチエツクに使
用され、セグメント記述子内の対応するフイール
ドと同じように符号化される。 システム種類フイールドは種類ラベリングの場
合に挿入に使用されると共に、増幅オペレータと
制限オペレータによるチエツクのために使用され
る。これはセグメント記述子内の対応するフイー
ルドと同じように符号化される。 アクセス・ライト・フイールドは種類ラベリン
グと増幅の場合に挿入に使用されると共に、制限
の場合にターゲツト・アクセス記述子の対応する
フイールドと論理和を取られる。このフイールド
はアクセス記述子内の対応するフイールドと同じ
ように符号化される。 記述子コントロール・フイールドは種類ラベリ
ングと増幅の場合に挿入に使用されると共に、制
限の場合にターゲツト・アクセス記述子の対応す
るフイールドと論理和を取られる。このフイール
ドはアクセス記述子内の対応するフイールドと同
じように符号化される。 トランスフオーマーは保護されるオブジエクト
として符号化されると、トランスフオーマー・ア
クセス記述子を介してアクセスされる。トランス
フオーマー・アクセス記述子のベース・ライト・
フイールドは、ベース種類データ・セグメントの
全オブジエクトと同じように解読される。トラン
スフオーマー・アクセス記述子のシステム・ライ
ト・フイールドは次のように解読される。 00−ベース種類オブジエクトにラベルが付けら
れたり、アクセス記述子がそのライトをこ
のトランスフオーマーで増幅させたりす
る。 01−アクセス記述子がそのライトをこのトラン
スフオーマーで増幅させる。 10−ベース種類オブジエクトがこのトランスフ
オーマーでシステム種類のラベルを付けら
れる。 11−システム種類ラベリングもアクセス記述子
ライト増幅もこのトランスフオーマーで実
行されない。 保護されないトランスフオーマーは通常の序数
値としてアクセス可能であり、データ・セグメン
ト内のどの位置にも配置することができる。 4.11 ラベル プロセツサ認識種類のために行われるものを越
えてオブジエクトのソフトウエア定義分類を支援
するために、1組のラベル付け機能が利用され
る。ラベルは極めて大きな種類の数字スペースを
提供するために使用する。64ビツトのソフトウエ
アで符号化される値である。ラベルはソフトウエ
ア型オブジエクトとシステム型オブジエクトの両
方に適用される。ラベルをアクセス経路に導入す
ることによつて、分類とそれらが含むアクセス・
コントロール情報がそのアクセス経路のどの使用
にも適用されることが保証される。これを拡張型
ラベリングという。アクセス経路のベースで下に
あるオブジエクトにアクセスするためにオペレー
シヨンは、そのアクセス経路内の全ラベルを横切
ることによつて下にあるオブジエクトのアクセス
記述子を得なければならない。これを経路レベル
横断という。 4.11.1 経路レベル記述子 経路レベル記述子はアクセス経路内のラベルの
付いたレベルを表わすために使用される。1つの
経路レベル記述子は論理的に1対のアクセス記述
子を含む。これら論理的アクセス記述子の第1の
記述子は、ソフトウエア型ラベルでデータ・セグ
メントのセグメント記述子を選択する。これら論
理的アクセス記述子の第2の記述子は、別の経路
レベル記述子または下にあるオブジエクトのセグ
メント記述子を選択する。経路レベル記述子は、
ほぼセグメント・テーブルのように管理される経
路レベル・テーブル内に現われる。セグメント・
テーブルのセグメント記述子の場合と同じよう
に、経路レベル・テーブルのセグメント記述子は
セグメント・テーブル・ダイレクトリ内に現われ
る。このように、セグメント・テーブル・ダイレ
クトリはセグメント・テーブルと経路レベル・テ
ーブルの間で共用される。 経路レベル記述子は以下の構成を有する。
必要とするオペレータによる目的のチエツクに使
用され、セグメント記述子内の対応するフイール
ドと同じように符号化される。 システム種類フイールドは種類ラベリングの場
合に挿入に使用されると共に、増幅オペレータと
制限オペレータによるチエツクのために使用され
る。これはセグメント記述子内の対応するフイー
ルドと同じように符号化される。 アクセス・ライト・フイールドは種類ラベリン
グと増幅の場合に挿入に使用されると共に、制限
の場合にターゲツト・アクセス記述子の対応する
フイールドと論理和を取られる。このフイールド
はアクセス記述子内の対応するフイールドと同じ
ように符号化される。 記述子コントロール・フイールドは種類ラベリ
ングと増幅の場合に挿入に使用されると共に、制
限の場合にターゲツト・アクセス記述子の対応す
るフイールドと論理和を取られる。このフイール
ドはアクセス記述子内の対応するフイールドと同
じように符号化される。 トランスフオーマーは保護されるオブジエクト
として符号化されると、トランスフオーマー・ア
クセス記述子を介してアクセスされる。トランス
フオーマー・アクセス記述子のベース・ライト・
フイールドは、ベース種類データ・セグメントの
全オブジエクトと同じように解読される。トラン
スフオーマー・アクセス記述子のシステム・ライ
ト・フイールドは次のように解読される。 00−ベース種類オブジエクトにラベルが付けら
れたり、アクセス記述子がそのライトをこ
のトランスフオーマーで増幅させたりす
る。 01−アクセス記述子がそのライトをこのトラン
スフオーマーで増幅させる。 10−ベース種類オブジエクトがこのトランスフ
オーマーでシステム種類のラベルを付けら
れる。 11−システム種類ラベリングもアクセス記述子
ライト増幅もこのトランスフオーマーで実
行されない。 保護されないトランスフオーマーは通常の序数
値としてアクセス可能であり、データ・セグメン
ト内のどの位置にも配置することができる。 4.11 ラベル プロセツサ認識種類のために行われるものを越
えてオブジエクトのソフトウエア定義分類を支援
するために、1組のラベル付け機能が利用され
る。ラベルは極めて大きな種類の数字スペースを
提供するために使用する。64ビツトのソフトウエ
アで符号化される値である。ラベルはソフトウエ
ア型オブジエクトとシステム型オブジエクトの両
方に適用される。ラベルをアクセス経路に導入す
ることによつて、分類とそれらが含むアクセス・
コントロール情報がそのアクセス経路のどの使用
にも適用されることが保証される。これを拡張型
ラベリングという。アクセス経路のベースで下に
あるオブジエクトにアクセスするためにオペレー
シヨンは、そのアクセス経路内の全ラベルを横切
ることによつて下にあるオブジエクトのアクセス
記述子を得なければならない。これを経路レベル
横断という。 4.11.1 経路レベル記述子 経路レベル記述子はアクセス経路内のラベルの
付いたレベルを表わすために使用される。1つの
経路レベル記述子は論理的に1対のアクセス記述
子を含む。これら論理的アクセス記述子の第1の
記述子は、ソフトウエア型ラベルでデータ・セグ
メントのセグメント記述子を選択する。これら論
理的アクセス記述子の第2の記述子は、別の経路
レベル記述子または下にあるオブジエクトのセグ
メント記述子を選択する。経路レベル記述子は、
ほぼセグメント・テーブルのように管理される経
路レベル・テーブル内に現われる。セグメント・
テーブルのセグメント記述子の場合と同じよう
に、経路レベル・テーブルのセグメント記述子は
セグメント・テーブル・ダイレクトリ内に現われ
る。このように、セグメント・テーブル・ダイレ
クトリはセグメント・テーブルと経路レベル・テ
ーブルの間で共用される。 経路レベル記述子は以下の構成を有する。
【表】
ダイレクトリ索引フイールドは同じ目的を満足
させ、アクセス記述子内の対応するフイールドと
同じように処理される。ダイレクトリ索引(1)はア
クセス経路内で次に低いレベルを参照するのに使
用される。ダイレクトリ索引(2)は関連のラベルを
参照するのに使用される。セグメント索引フイー
ルドは同じ目的を満足させ、アクセス記述子内の
対応するフイールドと同じように処理される。セ
グメント索引(1)はアクセス経路内で次に低いレベ
ルを参照するのに使用される。セグメント索引(2)
は関連のラベルを参照するのに使用される。ラベ
ルに関連するフイールドは同じ目的を満足し、セ
グメント記述子内のストレージ関連フイールドと
同じように処理される。関係/無関係フイールド
は、横断が望ましいときこの経路レベル記述子が
ラベルのチエツクが実行されることを要求してい
るかどうかを指示する。他のフイールドは同じ目
的を満足し、セグメント記述子内の対応するフイ
ールドと同じように処理される。 4.11.2 ラベル・リンケージ ソフトウエアでラベルが付けられるアクセス経
路を作るために経路レベル記述子を使用したとき
に働くリンケージを下に示す。リンケージ内の−
0−は、セグメント・テーブル・ダイレクトリに
よつて行われるマツピングのレベルを示す。
させ、アクセス記述子内の対応するフイールドと
同じように処理される。ダイレクトリ索引(1)はア
クセス経路内で次に低いレベルを参照するのに使
用される。ダイレクトリ索引(2)は関連のラベルを
参照するのに使用される。セグメント索引フイー
ルドは同じ目的を満足させ、アクセス記述子内の
対応するフイールドと同じように処理される。セ
グメント索引(1)はアクセス経路内で次に低いレベ
ルを参照するのに使用される。セグメント索引(2)
は関連のラベルを参照するのに使用される。ラベ
ルに関連するフイールドは同じ目的を満足し、セ
グメント記述子内のストレージ関連フイールドと
同じように処理される。関係/無関係フイールド
は、横断が望ましいときこの経路レベル記述子が
ラベルのチエツクが実行されることを要求してい
るかどうかを指示する。他のフイールドは同じ目
的を満足し、セグメント記述子内の対応するフイ
ールドと同じように処理される。 4.11.2 ラベル・リンケージ ソフトウエアでラベルが付けられるアクセス経
路を作るために経路レベル記述子を使用したとき
に働くリンケージを下に示す。リンケージ内の−
0−は、セグメント・テーブル・ダイレクトリに
よつて行われるマツピングのレベルを示す。
【表】
↓ ↓
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1980/000205 WO1981002477A1 (en) | 1980-02-28 | 1980-02-28 | Data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS57500444A JPS57500444A (ja) | 1982-03-11 |
JPS6334490B2 true JPS6334490B2 (ja) | 1988-07-11 |
Family
ID=22154218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP55502045A Expired JPS6334490B2 (ja) | 1980-02-28 | 1980-02-28 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0047238B1 (ja) |
JP (1) | JPS6334490B2 (ja) |
AT (1) | ATE38442T1 (ja) |
DE (1) | DE3072127D1 (ja) |
WO (1) | WO1981002477A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR8807601A (pt) * | 1987-07-10 | 1990-04-10 | Formulab Int Ltd | Um sistema cognoscitivo |
DE3881521D1 (de) * | 1988-09-28 | 1993-07-08 | Siemens Nixdorf Inf Syst | Verfahren zur behandlung der von den einzelnen prozessen einer datenverarbeitungsanlage verursachten arbeitsaufrufe an einen der prozesse. |
DE3882139D1 (de) * | 1988-09-28 | 1993-08-05 | Siemens Nixdorf Inf Syst | Verfahren und anordnung zur behandlung von unterbrechungsanforderungen und prozessaufrufen in einem kombinierten unterbrechungs- und ablaufsteuersystem fuer wenigstens zum teil im echtzeitbetrieb arbeitende datenverarbeitungsanlagen. |
JPH07336371A (ja) * | 1994-06-03 | 1995-12-22 | Philips Electron Nv | 非同期転送モードで動作する局地ネットワーク |
DE10105284A1 (de) | 2001-02-06 | 2002-08-29 | Infineon Technologies Ag | Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten |
BR112017001981B1 (pt) * | 2014-07-30 | 2023-05-02 | Movidius Limited | Método para gerenciar buffer de instruções, sistema e memória legível por computador relacionados |
MA44821A (fr) | 2016-02-27 | 2019-01-02 | Kinzinger Automation Gmbh | Procédé d'allocation d'une pile de registres virtuels dans une machine à pile |
CN110378601B (zh) * | 2019-07-23 | 2023-04-18 | 山东爱新卓尔智慧医疗技术有限公司 | 一种基于双向队列的双批号药品自动分配方法与系统 |
CN115167933B (zh) * | 2022-09-08 | 2022-12-02 | 深圳市恒运昌真空技术有限公司 | 一种双处理器设备及其控制方法和处理器 |
CN115639788B (zh) * | 2022-09-09 | 2024-05-28 | 中国核动力研究设计院 | 基于数模混合技术的反应堆保护系统定期试验装置和方法 |
CN116680277B (zh) * | 2023-07-28 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 信息核验方法、装置、设备及存储介质 |
CN116723204B (zh) * | 2023-08-07 | 2024-02-09 | 南京国电南自轨道交通工程有限公司 | 一种分层系统之间大数据量实时数据的同步方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2126206A (en) * | 1937-02-15 | 1938-08-09 | Dresner & Son Inc S | Hand luggage |
US3530438A (en) * | 1965-12-13 | 1970-09-22 | Sperry Rand Corp | Task control |
US3551892A (en) * | 1969-01-15 | 1970-12-29 | Ibm | Interaction in a multi-processing system utilizing central timers |
US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
US4015242A (en) * | 1972-11-29 | 1977-03-29 | Institut Francais Du Petrole, Des Carburants Et Lubrifiants Et Entreprise De Recherches Et D'activities Petrolieres Elf | Device for coupling several data processing units to a single memory |
FR2253428A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2258113A5 (ja) * | 1973-11-30 | 1975-08-08 | Honeywell Bull Soc Ind | |
US4073005A (en) * | 1974-01-21 | 1978-02-07 | Control Data Corporation | Multi-processor computer system |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
JPS52120728A (en) * | 1976-04-05 | 1977-10-11 | Agency Of Ind Science & Technol | Sharing data control system of poly processor system |
JPS535941A (en) * | 1976-07-06 | 1978-01-19 | Toshiba Corp | Program execution system |
JPS6029139B2 (ja) * | 1977-06-17 | 1985-07-09 | 日本電信電話株式会社 | 処理装置間結合方式 |
JPS5412658A (en) * | 1977-06-30 | 1979-01-30 | Kawasaki Heavy Ind Ltd | Computer connecting system |
US4177513A (en) * | 1977-07-08 | 1979-12-04 | International Business Machines Corporation | Task handling apparatus for a computer system |
US4204251A (en) * | 1977-12-28 | 1980-05-20 | Finn Brudevold | Interconnection unit for multiple data processing systems |
GB2012084B (en) * | 1978-01-09 | 1982-03-17 | Honeywell Inf Systems | Data processing systems |
JPS54111733A (en) * | 1978-02-21 | 1979-09-01 | Nec Corp | Multiplex processor system |
JPS601657B2 (ja) * | 1978-06-12 | 1985-01-16 | 株式会社日立製作所 | アドレス変換方法 |
-
1980
- 1980-02-28 DE DE8080901676T patent/DE3072127D1/de not_active Expired
- 1980-02-28 WO PCT/US1980/000205 patent/WO1981002477A1/en active IP Right Grant
- 1980-02-28 EP EP80901676A patent/EP0047238B1/en not_active Expired
- 1980-02-28 AT AT80901676T patent/ATE38442T1/de not_active IP Right Cessation
- 1980-02-28 JP JP55502045A patent/JPS6334490B2/ja not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE3072127D1 (en) | 1988-12-08 |
ATE38442T1 (de) | 1988-11-15 |
EP0047238B1 (en) | 1988-11-02 |
JPS57500444A (ja) | 1982-03-11 |
EP0047238A4 (en) | 1986-08-21 |
EP0047238A1 (en) | 1982-03-17 |
WO1981002477A1 (en) | 1981-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4084224A (en) | System of controlling procedure execution using process control blocks | |
US4325120A (en) | Data processing system | |
US4369494A (en) | Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system | |
US4084228A (en) | Process management structures and hardware/firmware control | |
US4374409A (en) | Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system | |
US4395757A (en) | Process synchronization utilizing semaphores | |
US4077058A (en) | Method and apparatus for executing an extended decor instruction | |
US4394725A (en) | Apparatus and method for transferring information units between processes in a multiprocessing system | |
US4297743A (en) | Call and stack mechanism for procedures executing in different rings | |
US4316245A (en) | Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization | |
Lampson et al. | Experience with processes and monitors in Mesa | |
US4432051A (en) | Process execution time accounting system | |
EP0087978B1 (en) | Information processing unit | |
US4130867A (en) | Database instruction apparatus for determining a database record type | |
US4447874A (en) | Apparatus and method for communication of information between processes in an information system | |
US5197138A (en) | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching | |
US4318182A (en) | Deadlock detection and prevention mechanism for a computer system | |
US4044334A (en) | Database instruction unload | |
JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
US4025901A (en) | Database instruction find owner | |
JPH02188833A (ja) | アプリケーションとデータベース管理システム間の相互通信システム及び方法 | |
JPS6334490B2 (ja) | ||
US4351024A (en) | Switch system base mechanism | |
Jones et al. | Programming issues raised by a multiprocessor | |
Thompson | Using pSOS/sup+/for embedded real-time computing |