Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPS6112291B2 - - Google Patents
[go: Go Back, main page]

JPS6112291B2 - - Google Patents

Info

Publication number
JPS6112291B2
JPS6112291B2 JP49136671A JP13667174A JPS6112291B2 JP S6112291 B2 JPS6112291 B2 JP S6112291B2 JP 49136671 A JP49136671 A JP 49136671A JP 13667174 A JP13667174 A JP 13667174A JP S6112291 B2 JPS6112291 B2 JP S6112291B2
Authority
JP
Japan
Prior art keywords
semaphore
message
link
queue
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP49136671A
Other languages
Japanese (ja)
Other versions
JPS50117331A (en
Inventor
Jatsuku Mitsusheru Jan Bienbunyuu
Anri Rowa Berudeie
Toon Deyuku Ru
Kuroodo Furederitsuku Kaaru
Jon Yozefu Buradorei
Benjamin Samyueru Furankurin
Ribu Fuiritsupu Bubeeru Do
Patoritsuku Jan Bo Deyufuon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SEE II II HANIIUERU BURU
Original Assignee
SEE II II HANIIUERU BURU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR7342696A external-priority patent/FR2253423A5/fr
Priority claimed from FR7342697A external-priority patent/FR2253420A5/fr
Priority claimed from FR7342712A external-priority patent/FR2253414A5/en
Priority claimed from FR7342691A external-priority patent/FR2253418A5/fr
Application filed by SEE II II HANIIUERU BURU filed Critical SEE II II HANIIUERU BURU
Publication of JPS50117331A publication Critical patent/JPS50117331A/ja
Publication of JPS6112291B2 publication Critical patent/JPS6112291B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 記載内容の項目の一覧表 Γコンピユータ用セマホア装置 13頁 Γ実施例の説明 概要 27頁 プロセツササブシステム 27頁 A 中央処理装置 28頁 B 入出力制御装置 31頁 C 周辺サブシステム 31頁 基本的機械構造 33頁 A データフオーマツト 33頁 B バイト 34頁 C データ表示 34頁 D バイトアドレス 35頁 E ビジブルレジスタ 35頁 F はん用レジスタ 36頁 G ベースレジスタ 36頁 H 科学レジスタ 37頁 I 雑レジスタ 37頁 J インストラクシヨンフオーマツト 39頁 システムの機構 40頁 A ジヨブステツプおよびタスク 40頁 B プロセス 40頁 C プロセスコントロールブロツクおよびシス
テムベース 41頁 D メモリーセグメンテーシヨン 44頁 プロセスマネジメントおよび同期化 46頁 A プロセス状態 47頁 B プロセスデイスパツチング 50頁 C プロセス同期化 53頁 Γプロセスコントロールブロツクの構造 57頁 Γシステムベースの構造 70頁 Γシステムベースおよびプロセスコントロールブ
ロツクの使用例 82頁 Γコントロールユニツト 85頁 Γプロセス制御用デイスパツチヤフアームウエア
111頁 Γセマフオの本論 133頁 ΓPおよびV指令の一般的説明 195頁 ΓPおよびV指令双方のためのセマホアの進展
206頁 ΓP指令(命令もしくはインストラクシヨン)
223頁 A 非メツセージ・セマホア上のP指令 225頁 B メツセージを有するセマホア上のP指令
235頁 C 実行中のプロセスを待機状態に置くこと
238頁 D キユーを使用しないメツセージの転送
269頁 E SCTがゼロより大きい場合のメツセージ
付きセマホアのP命令 285頁 Γセマホア上のV命令 293頁 A 正のSCTフイールドを持つセマホアのV
命令 296頁 B 自由メツセージ・リンク利用不能の時のメ
ツセージ付きセマホア上のV命令 311頁 C 負のSCTフイールドを持つセマホア上の
V命令 314頁 Γセマホア初期設定命令 333頁 Γ中央処理装置を制御するプロセスへの外部事象
の一般的説明 349頁 Γシステム・イベント・ポーラ機構 355頁 ΓI/Oイベント・ハンドラ 360頁 Γ正のSCTフイールドを持つセマホア上のシミ
ユレートされたVオペレーシヨン 370頁 Γ自由メツセージ・リンク利用不能時のセマホア
上のシミユレートされたVオペレーシヨン
379頁 Γフリー・メツセージ・リンクが使用できる場
合、Q/LC/FLSのセマホアに対するメツセ
ージの除去 387頁 Γメツセージを必要とするプロセスに対するQ/
LC/FLS中のメツセージの除去 399頁 コンピユータ用セマホア装置(sema phores
device) 本発明は、一般にコンピユータシステムに関
し、特に多重プログラミング/多重処理状態にお
けるコンピユータプロセスをデータ処理装置に関
する。
[Detailed Description of the Invention] List of Items Γ Computer Semaphore Device Page 13 Γ Description of Embodiment Overview Page 27 Processor Subsystem Page 27 A Central Processing Unit Page 28 B Input/Output Control Unit Page 31 C Peripherals Subsystem page 31 Basic mechanical structure page 33 A Data format page 33 B Byte page 34 C Data display page 34 D Byte address page 35 E Visible register page 35 F General purpose register page 36 G Base register page 36 H Scientific register Page 37 I Miscellaneous Registers Page 37 J Instruction Format Page 39 System Mechanisms Page 40 A Job Steps and Tasks Page 40 B Processes Page 40 C Process Control Blocks and System Base Page 41 D Memory Segmentation Page 44 Process Management and Synchronization Synchronization page 46 A Process status page 47 B Process dispatching page 50 C Process synchronization Page 53 Structure of Γ process control block Page 57 Structure of Γ system base Page 70 Example of use of Γ system base and process control block Page 82 Γ control Unit 85 pages Γ Dispatch armwear for process control
Page 111 Main body of Γ semaphore Page 133 General explanation of ΓP and V directives Page 195 Evolution of semaphore for both ΓP and V directives
Page 206 ΓP command (command or instruction)
Page 223 A P command on a non-message semaphore Page 225 B P command on a semaphore with a message
Page 235 C Putting a running process into a standby state
Page 238 D Message forwarding without using queue
Page 269 E P instruction of semaphore with message when SCT is greater than zero Page 285 V instruction on Γ semaphore Page 293 A V of semaphore with positive SCT field
Instructions page 296 B V instruction on semaphore with message when free message link is unavailable page 311 C V instruction on semaphore with negative SCT field page 314 Γ semaphore initialization instruction page 333 Γ Control central processing unit General Description of Events External to Processes Page 349 Γ System Event Poller Mechanism Page 355 Γ I/O Event Handler Page 360 Simulated V Operations on Semaphore with Γ Positive SCT Field Page 370 Γ Free Messages Simulated V operation on semaphore when link is unavailable
Page 379 Removal of messages for Q/LC/FLS semaphores when Γ-free message links are available Page 387 Q/Removal of messages for processes that require Γ messages
Removal of messages in LC/FLS Page 399 Computer sema phores
TECHNICAL FIELD This invention relates generally to computer systems, and more particularly to data processing apparatus for computer processes in multiple programming/multiprocessing conditions.

この第4世代のシステムは、下記のような条件
を満たすことができると考えられる。
This fourth generation system is considered to be able to satisfy the following conditions.

1 「このシステムは通信・制御システムとして
分類され、広範多様なプロセツサの用途に応用
することができる」。
1 "This system is classified as a communication/control system and can be applied to a wide variety of processor applications."

2 「このシステムは主として、従来機種のよう
なプログラムによつてではなくデータによつて
制御される;すなわち、システムコントロール
機能は記憶インストラクシヨンによつてではな
く、主として入力によつて確保される」。
2 "This system is primarily controlled by data and not by programs as in previous models; that is, the system control functions are ensured primarily by input rather than by stored instructions." ”.

3 「ハードウエアは、通信および制御手順を支
配する;システムコントロールプログラムの使
用を大幅に少なくすることができる」。
3. "Hardware dominates communication and control procedures; use of system control programs can be significantly reduced."

4 「大半の処理はリアルタイム方式で実行され
る。演算は、所要応答時間内に出力を出すよう
な速度で入力に対して実行される」。
4. "Most processing is performed in real time. Operations are performed on inputs at a rate that produces an output within the required response time."

5 「システムは簡単に拡張することができる。
ハードウエアおよびソフトウエアは、機能的な
モジユール方式の設計になつている」。
5 “The system can be easily expanded.
The hardware and software are designed in a functional and modular manner.

第1世代のハードウエア−ソフトウエアコンピ
ユータシステムにおける情報処理は比較的直線的
に行なわれ、ジヨブまたはプログラムは基本的な
処理単位であると考えられていた。各ユーザーが
開始したジヨブまたはトランザクシヨン毎に、一
般に1つのプログラムが、そのジヨブまたはトラ
ンザクシヨンが完了するまでほとんどあるいは全
く中断されることなく実行された。FORTRAN
のような高度言語プログラムの編纂や実行のよう
な多くの直線的ジヨブは、単一プロセスとして実
行することができ、かつそのように実行された。
これより困難なジヨブは、マルチタスクオペレー
シヨンを必要とし、実行が進むに従つて他のプロ
セスが作り出された。(ここで、プロセスとは何
らかの作業を実行することを意味する概念であ
り、プロセツサにより命令の順序の指図通りの実
行と定義され、作業の説明であり1つまたはそれ
以上のプロセスによつて用いることができるプロ
グラムの概念と混同してはならない。我々は、プ
ロセスまたはプロセツサがプログラムを実行する
というような言い方をすることができる。用語の
解説の部分を参照のこと)。
Information processing in first generation hardware-software computer systems was relatively linear, and the job or program was considered to be the basic processing unit. For each job or transaction initiated by each user, typically one program ran with little or no interruption until the job or transaction was completed. FORTRAN
Many linear jobs, such as compiling and running high-level language programs, can and have been executed as a single process.
More difficult jobs required multitasking operations, and other processes were spawned as execution progressed. (Here, a process is a concept that means to perform some work; it is defined as the execution of a sequence of instructions as directed by a processor; it is a description of work, and is used by one or more processes. It should not be confused with the concept of a program that can execute a program (we can also speak of a process or processor executing a program (see the glossary section).

基本処理単位としてのプロセスの概念は、第3
世代のコンピユータの多重プログラミング/多重
処理環境の必要を満たすまでに発達した。多くの
ユーザーが同時にサービスを要求する上記のよう
な環境においては、当然コンピユータシステム内
部において多重のプロセスがリソースを求めて競
合することが想起される。各プロセスは、コンピ
ユータによつて実行され、データに対する処理を
行なつてユーザーのジヨブまたはそのジヨブの一
部の段階を実行するプログラム(すなわち、イン
ストラクシヨンおよびインストラクシヨンに付随
するその他のデータの一定の秩序を有する集合)
より構成されている。このような多くのプロセス
がシステムに対して同時にサービスを要求してい
るような場合を考えると、このようなプロセスと
の通信およびプロセス間の通信を行なうタスクお
よびこのようなプロセスを制御し、リソースを割
当てるタスクは、第4世代のシステムの条件を考
えるとき、極めて複雑なものとなる。
The concept of a process as a basic processing unit is
It has evolved to meet the needs of multi-programming/multi-processing environments of generations of computers. In an environment such as the one described above where many users request services at the same time, it is naturally recalled that multiple processes compete for resources within the computer system. Each process is a program executed by a computer that performs operations on data to perform a user's job or some stage of that job (i.e., a program that processes instructions and other data associated with the instructions). a set with a certain order)
It is composed of Given that many such processes may be requesting services from the system at the same time, the task of communicating with and between such processes, controlling such processes, and allocating resources. The task of allocating this becomes extremely complex when considering the requirements of fourth-generation systems.

オペレーテイングシステムに関する1969年第60
〜67頁のACM第2シンポジウムにおいてA.J.
Bernstein.G.D.DetlefsenおよびR.H.Kerrによつ
て発表された「プロセスコントロールと通信」と
いう題名の論文には、「はん用オペレーテイング
システムの中において実施されるプロセスの構造
およびプロセス間通信施設」について説明されて
いる。
No. 60 of 1969 on Operating Systems
AJ at the ACM 2nd Symposium on page 67
A paper titled "Process Control and Communication" published by Bernstein. There is.

このシステムによれば、1つのシステムを最大
4つの論理セグメントと呼ばれる部分で構成する
ことができる。これらのセグメントは、プロセス
が記憶されている時には、物理的に切離された位
置に置くことができる。これらのセグメントの再
配置(リロケーシヨン)および保護は4つのレジ
スタによつて行なわれる。
According to this system, one system can be configured with a maximum of four parts called logical segments. These segments can be located in physically separate locations when the process is stored. Relocation and protection of these segments is accomplished by four registers.

一般に、プロセスはプロセスによつて発せられ
るプリミテイブ(すなわち擬似命令)を実行する
オペレーテイングシステムによつて、それらのプ
ロセスが互いに通信し合う機構を利用して制御さ
れる。通信は、主としてそれぞれの時点での各オ
ープンフアイル毎にユニークなエントリーを含む
同じAIT(アリテイブアイテムテーブル)の事象
の分割(共用)よりなる。このような構造によつ
て、1つのプロセスは、その事象が生じた時に
(NOTIFYプリミテイブを発することによつて)
通和を要求することができる。その結果、オペレ
ーテイングシステムは、要求を出して通知を待つ
ているプロセスの異同を示す事象もしくはイベン
トに付随する事象キユーもしくはイベント・キユ
ーに対するエントリーを作出す。この時点におい
て、要求を発したプロセスは実行を続けることも
できるし、あるいはBLOCKプリミテイブを発し
て一時的に停止することもできる。この事象は、
その他の何らかのプロセスがCAUSEプリミテイ
ブを発する時に発生し、同じプリミテイブを使用
している方向構造でカタログされ、処理され得
る。次いで、情報は1つのプロセスから他のプロ
セスに転送されるか、またはいくつかのプロセス
が協力し合つて与えられたタスクを実行する。オ
ペレーテイングシステム中のその他のプリミテイ
ブはプリミテイブを作り出して与えるか、あるい
はこれらを破壊する。
Generally, processes are controlled by an operating system that executes primitives (i.e., pseudo-instructions) issued by the processes, using mechanisms by which the processes communicate with each other. Communication primarily consists of splitting (sharing) events in the same AIT (Arithmetic Item Table), which contains a unique entry for each open file at each point in time. With such a structure, a process can notify (by issuing a NOTIFY primitive) when its event occurs.
You can request reconciliation. As a result, the operating system creates an event queue or an entry for an event queue associated with the event or events indicating the different processes that have issued the request and are waiting for notification. At this point, the process that issued the request can continue running, or it can issue a BLOCK primitive to temporarily stop it. This event is
Occurs when some other process issues the CAUSE primitive, and can be cataloged and processed in the direction structure using the same primitive. Information is then transferred from one process to another, or several processes cooperate to perform a given task. Other primitives in the operating system create and provide primitives, or destroy them.

このようなプロセス通信およびコントロールの
技術は、実施中のプログラムの秩序立つた動的歴
史を与えるものではなく、プロセスのソフトウエ
アの多重化および事象マネジメントのある種の概
念を導入するものである。
Such process communication and control techniques do not provide an orderly dynamic history of the program being executed, but rather introduce certain concepts of process software multiplexing and event management.

多重プログラミング/多重処理環境にあつて
は、2つまたはそれ以上の逐次プロセス間の協力
が効率的かつ迅速に実現されることが不可欠であ
る。過去においてはこの問題に対して多くの解決
法が提案されているが、第4世代のコンピユータ
に必要なプロセス通信およびコントロールの技術
は今まで十分に実現されていない。しかしなが
ら、第4世代のコンピユータに必要な概念の萌芽
は、部分的にではあるが、1968年Academic
Pressが刊行した、パリのF.Genuys編のNATO
Advanced Study IntituteのE.W.Dijkstraの論文
「プログラミング言語からの協同的逐次プロセ
ス」に開示されている。この論文において
Dijkstraは、信号に対してオペレーシヨンを行な
うPおよびVインストラクシヨンおよびプロセス
同期化において使用するための信号の基本的概念
を仮定している。残念ながら、Dijkstraは、ソフ
トウエアの使用によつてのみプロセス通信および
プロセス同期化を得ているために、システムの稼
働時間が長くなるという結果を生じるのみなら
ず、効率およびこの種のシステムに必要な総合オ
ーバーヘツドをも低下させている。さらに重要な
ことには、Dijkstraは、単にプロセス同期化にお
ける基本前提のみを設定しているために、第4世
代のコンピユータの何らかの有意な形での活用の
ために必要な概念を与えているとは言えない。た
とえば、Dijkstraの論文においては1つのプロセ
スからもう1つのプロセスへのメツセージの伝送
については予備もされていないし、何の説明もな
い。第4世代のコンピユータに必要なのは、シス
テムのオペレーテイング効率を高めるのみなら
ず、1つのプロセスからもう1つのプロセスへの
情報の転送において生じる多くの情況をも処理す
るに足る十分な柔軟性を得ることができるよう
に、プロセス通信およびプロセスコントロールを
自動的に組入れるようなシステムである。
In a multi-programming/multi-processing environment, it is essential that cooperation between two or more sequential processes be achieved efficiently and quickly. Although many solutions to this problem have been proposed in the past, the process communication and control techniques required for fourth generation computers have not been fully implemented to date. However, the germination of the concepts needed for the fourth generation of computers, albeit partially, began in 1968 at the Academic
NATO, edited by F. Genuys, Paris, published by Press.
It is disclosed in EWDijkstra's paper "Cooperative Sequential Processes from Programming Languages" at the Advanced Study Intitute. In this paper
Dijkstra postulates the basic concept of signals for use in P and V instructions that operate on signals and in process synchronization. Unfortunately, Dijkstra only obtains process communication and process synchronization through the use of software, which not only results in longer system uptime, but also increases the efficiency and efficiency required for this type of system. This also reduces overall overhead. More importantly, by simply setting out the basic assumptions in process synchronization, Dijkstra does not provide the concepts needed to exploit fourth generation computers in any meaningful way. I can't say that. For example, in Dijkstra's paper there is no preparation or explanation of the transmission of messages from one process to another. Fourth generation computers need to not only increase the operating efficiency of the system, but also be flexible enough to handle the many situations that arise in transferring information from one process to another. A system that automatically incorporates process communication and control so that

PおよびVインストラクシヨンの概念は、既に
前述のEdsger W.Dijkstraの論文によつて説明さ
れている。しかしながら、これらの概念は一般的
な条件の下においてしか提示されておらず、第4
世代のコンピユータに必要なシステム構成を与え
てはいない。さらに、Dijkstraは単にPおよびV
インストラクシヨンを解釈し利用するためのソフ
トウエアの基礎を与えているに過ぎない。従つ
て、プロセスを迅速にアクセスし、データプロセ
ツサのシステム的再配置を行なうためには、記憶
装置機構が必要である。
The concept of P and V instructions has already been explained in the aforementioned article by Edsger W. Dijkstra. However, these concepts are presented only under general conditions, and the fourth
It does not provide the necessary system configuration for each generation of computers. Furthermore, Dijkstra simply P and V
It merely provides the basis for the software to interpret and use the instructions. Therefore, a storage facility is required for rapid process access and systematic relocation of data processors.

本発明の目的は、多重プログラミング/多重処
理環境におけるプロセス同期化のための新規なデ
ータ処理装置を提供することにある。
It is an object of the present invention to provide a new data processing apparatus for process synchronization in a multiprogramming/multiprocessing environment.

本発明のもう1つの目的は、オペレーテイング
オーバーヘツドを減少させるために案内されたイ
ンストラクシヨン群を介してプロセス同期化を行
なうためのデータ処理装置を提供することにあ
る。
Another object of the present invention is to provide a data processing apparatus for process synchronization through guided instructions to reduce operating overhead.

本発明のもう1つの目的は、従来技術の欠点を
克服するために、中央処理サブシステムの系外の
事象のプロセス同期化のためのデータ処理装置を
提供することにある。
Another object of the invention is to provide a data processing apparatus for process synchronization of events external to a central processing subsystem, in order to overcome the drawbacks of the prior art.

本発明のもう1つの目的は、中央プロセツササ
ブシステムのオペレーシヨンにI/O割込み(イ
ンテラプト)を組入れて、回路群および時間を節
約するためのデータ処理装置を提供することにあ
る。
Another object of the present invention is to provide a data processing apparatus for incorporating I/O interrupts into the operation of a central processor subsystem to save circuitry and time.

本発明のもう1つの目的は、実行時間および必
要メモリースペースの総量を減少するセマホアを
初期設定することにある。尚セマホアとはプロセ
ス間の同期と通信を制御するために用いられるデ
ータ構成と定義している。
Another object of the present invention is to initialize semaphores that reduce execution time and the amount of memory space required. A semaphore is defined as a data structure used to control synchronization and communication between processes.

本発明の一実施例および本発明の1つのオペレ
ーシヨンモードによれば、上記目的は、他のプロ
セスのためのデータを供給するインストラクシヨ
ン群をデータ処理システムに供給することによつ
て達成される。これらのインストラクシヨン群
は、実質上、情報(データ)を要求するPオペレ
ーシヨンおよび情報(データ)を送達するVオペ
レーシヨンの2つのオペレーシヨンによつて情報
を伝える。
According to one embodiment of the invention and one mode of operation of the invention, the above object is achieved by providing a data processing system with instructions that provide data for other processes. Ru. These instructions convey information by essentially two operations: a P operation that requests information (data), and a V operation that delivers information (data).

Pインストラクシヨンを実行するプロセスは、
オペレーシヨンを続行するためにデータを要求す
る。Pインストラクシヨンは、1つのセマホアデ
ータ構造をアドレスし、そのカウントフイールド
を数値1だけ減ずる。その結果生じるセマホアカ
ウントフイールドの数値が負でなければ、そのP
インストラクシヨンを実行しているプロセスは、
そのプロシージヤセグメントの中の次のインスト
ラクシヨンを実行し続ける。上記数値が負になる
と、Pインストラクシヨンを実行しているプロセ
スは停止され、Pインストラクシヨンによつてア
ドレスされたセマホア上で待機状態に置かれる。
次の通知が与えられるまで(すなわち、上記と同
じセマホア上のVオペレーシヨン)は、Pインス
トラクシヨンを実行するプロセスの動的進行は論
理的に許可されず、これに対してはプロセツサは
全く割当てられない。
The process that executes the P instruction is
Request data to continue the operation. The P instruction addresses one semaphore data structure and decrements its count field by the number one. If the resulting number in the semaphore account field is non-negative, then the P
The process executing the instructions is
Continue executing the next instruction in the procedure segment. When the above number becomes negative, the process executing the P instruction is stopped and placed in a waiting state on the semaphore addressed by the P instruction.
Until the next notification is given (i.e., the V operation on the same semaphore as above), dynamic progress of the process executing the P instruction is logically not allowed, for which the processor is not allowed to proceed at all. Not assigned.

Vインストラクシヨンを実行するプロセスはデ
ータを伝送する。このVインストラクシヨンは1
つのセマホアをアドレスして、セマホアカウント
フイールドの数値を1だけ増加させる。その結果
得られるセマホアカウントフイールドの数値が正
の場合には、Vインストラクシヨンはデータ転送
と同時に終了する。しかしながら、セマホアカウ
ントフイールドの上記数値が正でない場合には、
Vインストラクシヨンは、さらに待機状態にあり
かつ同じアクセスされたセマホアに結合されたプ
ロセスの1つを作動可能状態に移行させる。すな
わち、待機状態から切換わつたばかりのプロセス
の動的進行が論理的にしかも適切なタイミングで
再度許可される。すなわち、このプロセスに1つ
のプロセツサが割当てられ、ランもしくは走行状
態に入る。
A process executing a V instruction transmits data. This V instruction is 1
Addresses one semaphore and increases the number in the semaphore account field by one. If the resulting value in the semaphore count field is positive, the V instruction ends at the same time as the data transfer. However, if the above value of the semaphore account field is not positive,
The V instruction also causes one of the processes in the standby state and coupled to the same accessed semaphore to transition to the ready state. That is, the dynamic progress of a process that has just been switched out of a standby state is re-enabled logically and at the appropriate time. That is, one processor is assigned to this process and enters a run state.

PおよびVインストラクシヨンの変種として
は、メツセージを伴なうセマホア構造およびメツ
セージを伴なわないセマホア構造の双方について
の各個インストラクシヨンがあり、これらの各イ
ンストラクシヨンはさらにテストインストラクシ
ヨンを有する。テストインストラクシヨンは、P
またはVインストラクシヨンが実行不可能な場
合、プロセスがランもしくは走行状態でこれらの
インストラクシヨンの間においては、外部事象、
すなわち未処理のI/O割込みやある種の未処理
の除外状態が処理される。これは、通常各インス
トラクシヨンの終りに中央プロセツサによつてエ
ントリーされるシステム事象ポーラ(System
Event Poller)によつて達成される。中央プロセ
ツサがクリテイカル過渡モードにない場合には、
すべてのI/O割込みと一部の除外状態がポーリ
ング(polling)される。各外部事象に関して
は、I/Cサブシステムまたは中央除外機構
(Central Exception−Mechanism)に代わつ
て、System Event Pollerが、適切な情報の通信
のためのシミユレートされたVオペレーシヨンを
行なう。その後、ポーリングは、すべての外部事
象が処理されるまで続行される。すべてのI/O
割込みと除外状態が処理されると、中央プロセツ
サの制御を受ける次のプロセスを決定するために
デイスパツチヤ装置が入れられる。
Variants of the P and V instructions include individual instructions for both semaphore structures with messages and semaphore structures without messages, each of which also has test instructions. have The test instruction is P
or V instructions cannot be executed, external events,
That is, outstanding I/O interrupts and certain outstanding exclusion conditions are handled. This is a system event poller that is normally entered by the central processor at the end of each instruction.
Event Poller). If the central processor is not in critical transient mode,
All I/O interrupts and some exclusion status are polled. For each external event, the System Event Poller, on behalf of the I/C subsystem or Central Exception-Mechanism, performs a simulated V operation for communication of the appropriate information. Polling then continues until all external events have been processed. All I/O
Once interrupts and exclusion conditions have been processed, a dispatcher is entered to determine the next process to be controlled by the central processor.

セマホア初期設定インストラクシヨンは、その
アドレスシラブルのアドレス開発を通じて1つの
セマホアを探出す。そのセマホアが非メツセージ
セマホアであると、セマホアカウントフイールド
は、実行プロセスのはん用レジスタに記憶された
数Nを受信する。そのセマホアがメツセージセマ
ホアであると、セマホアカウントフイールドはゼ
ロ状態に復帰する。メツセージセマホアについて
は、その前のカウントフイールドが0より大きい
場合、Q/M/Sのすべてのメツセージリンクは
フリー(自由もしくは空き)メツセージセマホア
FLSに復帰させられ、Q/ML/FLS上にキユー
化される。セマホアのそれまでのカウントフイー
ルドがゼロであれば、メツセージリンクの移行は
不要であり、そのインストラクシヨンは終了す
る。セマホアのその前のカウントフイールドがゼ
ロより小さい場合には、そのインストラクシヨン
は実行されない。マルチプログラムでは非同期的
に操作或は発生する単一プロセツサ環境、プロセ
ス及び事象は相互に適当に協調することを可能な
らしめるように相互に同期化されねばならない。
プロセスはジヨブ或はユーザの定義せる語に付随
せるインストラクシヨンもしくは命令の指図通り
の実行と定義されるが事象はある他のプロセスに
影響を及ぼすプロセスにより観察されるある物と
して定義される。事象の例は同期化操作の完成、
メツセージの出現、リソースの有効利用、並びに
実行の特殊段階でのプロセスの出現である。本発
明はデータ処理マネージメントに向けられていて
時折メモリ内の事象の異る種類をキユーすると同
様事象の表示を監視し累算するために「ハウスキ
ーピング」と称される。又メモリ内でセマホアと
称されるデータエレメントは異る事象の種類の数
をかぞえメモリ内の種々のキユー内の事象の直接
記憶とそしてメモリの過度の読取りを阻止してい
る間キユー内の事象の表示の記憶位置を記録す
る。キユーは事象の表示を事象自体でなく扱われ
るデータの量を最小にするために記憶する。後述
する第16a図ではメツセージ無しの事象の発生
例えばプロセスにより要求される情報を含む外部
デイスクメモリの有効性を示すセマホアの構造を
示す。セマホアはエリア内に供給されうる事象の
最大数を示す第1のフイールド(SMC)、実際の
事象の数を示す第2のフイールド(SCT)とそ
して周辺装置のようにプロセスがリソースを待つ
ための待ち状態に維持される場合に環境により
FIFO(先入り先出)或はLIFO(後入り先出)
の方式で事象の優先性を示すための第3のフイー
ルド(STAG)を含んでいる。特殊なインストラ
クシヨンもしくは命令(P)及び(V)はセマホ
アの状態を決定する。応答される事象が新しいリ
ソースの利用力である場合にP命令がセマホアの
第2のフイールドに数を増分し、新しいプロセス
がリソースを要求している場合に第2のフイール
ドに数を減分する。周辺装置のように利用できな
いリソースをプロセスが要求するたびにプロセス
の表示は続いて読取られるために待ち状態で第3
のキユーに記憶される。プロセスにより要求され
るリソースがすべて利用できるならばプロセスの
表示は準備状態で第3のキユーに記憶される。そ
れにより同期化が引続き読出されるために待ち状
態で第3のキユーに読取られるプロセス間に提供
される。
The semaphore initialization instruction locates a semaphore through address development of its address syllable. If the semaphore is a non-messaging semaphore, the semaphore account field receives the number N stored in the executing process's general-purpose register. If the semaphore is a message semaphore, the semaphore account field returns to the zero state. For a message semaphore, if the previous count field is greater than 0, all message links in the Q/M/S are free (free or free) message semaphore.
Returned to FLS and queued on Q/ML/FLS. If the semaphore's previous count field is zero, there is no need to migrate the message link and the instruction ends. If the semaphore's previous count field is less than zero, the instruction is not executed. In multiprograms, single processor environments, processes, and events that operate or occur asynchronously must be synchronized with each other to enable them to properly cooperate with each other.
A process is defined as the directed execution of an instruction associated with a job or user-defined word, while an event is defined as something observed by a process that affects some other process. Examples of events are the completion of a synchronization operation,
The emergence of messages, the efficient use of resources, and the emergence of processes at special stages of execution. The present invention is directed to data processing management, sometimes referred to as "housekeeping", for queuing different types of events in memory, as well as monitoring and accumulating representations of events. Also in memory, data elements called semaphores count the number of different event types, provide direct storage of events in various queues in memory, and store events in queues while preventing excessive reads of memory. Record the memory location of the display. Queues store representations of events rather than the events themselves to minimize the amount of data handled. FIG. 16a, described below, shows the structure of a semaphore indicating the availability of external disk memory containing information required by a process, such as the occurrence of a no-message event. A semaphore has a first field (SMC) that indicates the maximum number of events that can be provided in the area, a second field (SCT) that indicates the actual number of events, and a semaphore that allows processes to wait for resources, such as peripherals. depending on the environment if it is kept in a waiting state.
FIFO (first in, first out) or LIFO (last in, first out)
It includes a third field (STAG) to indicate the priority of the event in the manner of: Special instructions (P) and (V) determine the state of the semaphore. The P instruction increments the number in the second field of the semaphore if the event being responded to is the availability of a new resource, and decrements the number in the second field if a new process is requesting the resource. . Whenever a process requests a resource that is not available, such as a peripheral device, the process's display is subsequently displayed in a third state waiting to be read.
Memorized by Kyuu. If all the resources required by the process are available, the process's representation is stored in the third queue in a ready state. Synchronization is thereby provided between processes reading into the third queue while waiting for subsequent reading.

もしプロセスにより要求されるリソースがすべ
て利用しうるならばプロセスの表示は準備状態で
第3のキユーに記憶される。それにより同期化が
各種のリソースの有効性をプロセス間に提供され
P及びV操作或はインストラクシヨンもしくは命
令により合図される所謂事象をへてすべて監視さ
れる。
If all the resources required by the process are available, the process's representation is stored in the third queue in a ready state. Thereby, synchronization is provided between processes to determine the availability of various resources, all monitored through so-called events signaled by P and V operations or instructions.

本発明の新規性は特に特許請求の範囲の部分に
記載してある。以下、図面を参照しつつ本発明の
構成および動作原理ならびにその他の目的および
特徴について詳細に説明する。
The novelty of the invention is particularly pointed out in the claims. DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the configuration and operating principles of the present invention, as well as other objects and features, will be explained in detail with reference to the drawings.

実施例の説明 概 要 本発明は、一般的にハードウエアシステム環境
において使用されるが、以下このシステムをハー
ドウエア/フアームウエア/ソフトウエアオペレ
ーテイングシステムと称する。
DESCRIPTION OF THE EMBODIMENTS Overview The present invention is generally employed in a hardware system environment, hereinafter referred to as a hardware/firmware/software operating system.

第1図を参照すると、プロセツササブシステム
101、記憶サブシステム102、および1つま
たはそれ以上(最大32個)の周辺サブシステム1
03が描かれている。プロセツササブシステム
は、中央処理装置(CPU)104および最大4
つの入出力制御装置(IOC)105を含む。各周
辺サブシステムは、周辺制御装置(PCU)10
6、多数の装置アダプタ(DA)107、および
最大256個の周辺I/O装置108より構成され
ている。記憶サブシステム102は、各々32〜
512キロバイトの1ないし4個の半導体メモリー
モジユールより構成されている。
Referring to FIG. 1, a processor subsystem 101, a storage subsystem 102, and one or more (up to 32) peripheral subsystems 1
03 is drawn. The processor subsystem includes a central processing unit (CPU) 104 and up to 4
includes one input/output controller (IOC) 105. Each peripheral subsystem consists of a peripheral control unit (PCU) 10
6, a large number of device adapters (DA) 107, and a maximum of 256 peripheral I/O devices 108. The storage subsystems 102 each include 32 to 32 storage subsystems 102.
It consists of one to four semiconductor memory modules of 512 kilobytes each.

プロセツササブシステム プロセツササブシステム101においては、
CPU104はシステムのための基本的処理オペ
レーシヨンを実行し、メモリー102とのインタ
ーフエイス機能を有する。IOC105は、記憶サ
ブシステム102と周辺装置106の間のすべて
の情報交換を制御する。
Processor subsystem In the processor subsystem 101,
CPU 104 performs basic processing operations for the system and has the ability to interface with memory 102. IOC 105 controls all information exchange between storage subsystem 102 and peripheral devices 106.

A 中央処理装置 CPUは、主メモリーシンクロナイザ109、
バツフア記憶装置110、計算装置111を含む
各種要素、およびその他のオプシヨンのエミユレ
ーシヨン設備112を含む。主メモリシンクロナ
イザ109は、計算装置111、バツフア記憶装
置110、およびIOC105の間における主メモ
リーの使用に関する競合を解決する。これらの競
合は優先順位方式によつて解決される。すなわ
ち、IOCが最高の優先順位を有し、その次が(計
算装置からの)メモリー書込み、次が(バツフア
記憶装置への)メモリー読取りとなつている。ま
た、主CPUは、主メモリーのアドレツシングを
制御するアドレス制御装置ACU131および主
メモリーの最も新しく使用されたアドレスを記憶
するために使用される連想記憶装置AS132を
含む。バツフア記憶装置110は、小型の高速バ
ツフアメモリーであつて、主メモリーの特定領域
を再生し、計算装置とのインターフエースを形成
して平均アクセスタイムを短縮する。各メモリー
読取り時においては、バツフア記憶装置および主
メモリーがいずれもアクセスされる。フエツチさ
るべき情報が既にバツフア記憶装置に入つている
場合には、主メモリーの読取りは終了し、バツフ
ア記憶装置から情報がフエツチされる。そうでな
い場合には、主メモリー102が読取られる。主
メモリーが読取られる度に、CPU104は所望
の情報を含む32バイトをフエツチする。この情報
は、その後のメモリーレフアレンスのためにバツ
フア記憶装置の中に保たれる。バツフア記憶装置
はソフトウエアに対しては透明(見えない)であ
るから、ある時点においてコンピユータを制御し
ているプログラムは、その時処理している情報が
バツフア記憶装置と主メモリーのいずれからフエ
ツチされたかを決定することはできない。
A central processing unit CPU is the main memory synchronizer 109,
It includes various elements including a buffer storage device 110, a computing device 111, and other optional emulation equipment 112. Main memory synchronizer 109 resolves conflicts for main memory usage between computing device 111 , buffer storage 110 , and IOC 105 . These conflicts are resolved by a priority scheme. That is, the IOC has the highest priority, followed by memory writes (from computing devices), and then memory reads (to buffer storage). The main CPU also includes an address control unit ACU 131 that controls addressing of the main memory and an associative memory AS 132 that is used to store the most recently used address of the main memory. Buffer storage 110 is a small, high-speed buffer memory that reclaims specific areas of main memory and interfaces with computing devices to reduce average access time. During each memory read, both buffer storage and main memory are accessed. If the information to be fetched is already in the buffer storage, the main memory read is completed and the information is fetched from the buffer storage. Otherwise, main memory 102 is read. Each time main memory is read, CPU 104 fetches 32 bytes containing the desired information. This information is maintained in buffer storage for subsequent memory reference. Because buffer storage is transparent to software, the program controlling the computer at any given time can tell whether the information it is processing was fetched from buffer storage or from main memory. cannot be determined.

計算装置111は、CPU内におけるすべての
データ処理およびアドレス発生を実行する。計算
装置の中の典型的制御記憶装置130(これにつ
いてはPrentice Hall、Ine.のSamir S.Hueson著
「マイクロプログラミング:その原理と実際」を
参照のこと)は、システムを初期設定し、CPU
104およびIOC105を制御しインストラクシ
ヨンセツト(図示されていない)をデコード(解
読)するフアームウエアを含む。オプシヨンとし
ては、制御記憶装置は科学的インストラクシヨ
ン、テストルーチン、エミユレーシヨンパツケー
ジ、またはこのプロセツササブシステムの能力を
増大させるような特別な目的を有する特性を与え
るようにしてもよい。
Computing device 111 performs all data processing and address generation within the CPU. A typical control memory 130 in a computing device (see "Microprogramming: Principles and Practice" by Samir S. Hueson, Prentice Hall, Ine.) initializes the system and
104 and IOC 105 and decodes an instruction set (not shown). Optionally, the control storage may provide scientific instructions, test routines, emulation packages, or special purpose features such as increasing the capabilities of the processor subsystem.

また、オプシヨンとして、CPUはインスタン
トシステム以外のシステムのエミユレーシヨンを
与える。エミユレータ112はフアームウエア、
ソフトウエア、さらには一部の例においてはハー
ドウエアのコンポーネントとなる。
Optionally, the CPU also provides emulation of systems other than instant systems. Emulator 112 is firmware,
It can be a software or even, in some instances, a hardware component.

B 入出力制御装置 プロセツササブシステムのIOC105の部分
は、いずれかの周辺サブシステム103と記憶サ
ブシステム102の間にデータバスを与える。こ
のデータバスは周辺コマンド(指令)の開始を可
能にし、その結果のデータ転送を制御する。1個
のIOCは一般に最大32のチヤンネル制御装置(図
示されていない)を処理する。
B. I/O Controller The IOC 105 portion of the processor subsystem provides a data bus between any peripheral subsystem 103 and the storage subsystem 102. This data bus allows the initiation of peripheral commands and controls the resulting data transfer. One IOC typically handles up to 32 channel controllers (not shown).

C 周辺サブシステム 第1図の周辺サブシステムにおいては、PCU
106は、I/Oオペレーシヨン時にI/O装置
108を制御することによつてCPU上の負荷を
解除するスタンドアローン式マイクロプログラミ
ングプロセツサである。PCUは、この動作をチ
ヤンネルプログラム中に含まれているインストラ
クシヨンを実行することによつて行なう。このプ
ログラムは、PCUの中において演算、論理、転
送、シフト、およびブランチオペレーシヨンを実
行させる。各々制御される装置の種類によつて
PCUにはいくつかの種類がある:すなわち、単
位レコード、大容量(デイスク)記憶装置、磁気
テープ、通信等である。
C Peripheral subsystem In the peripheral subsystem shown in Figure 1, PCU
106 is a stand-alone microprogramming processor that relieves the load on the CPU by controlling I/O device 108 during I/O operations. The PCU performs this operation by executing instructions contained in the channel program. This program causes arithmetic, logic, transfer, shift, and branch operations to be performed within the PCU. Depending on the type of device being controlled
There are several types of PCUs: unit record, mass (disk) storage, magnetic tape, communications, etc.

装置アダプタDA107は、各PCUおよびこれ
によつて制御される装置の間に介在する。各アダ
プタは、各特定の装置との通信を行なうために必
要な所与のフアームウエアおよびロジツクを含
む。各々の種類によつて、DA107は1つまた
は数個の装置を制御する。
A device adapter DA107 is interposed between each PCU and the device controlled thereby. Each adapter includes the given firmware and logic necessary to communicate with each particular device. Depending on each type, DA 107 controls one or several devices.

周辺サブシステム103によつて実行される主
要機能は下記のとおりである。
The main functions performed by peripheral subsystem 103 are as follows.

1 CPUインストラクシヨンの周辺装置で受容
される一連の指令への変換。
1 Translation of CPU instructions into a sequence of instructions accepted by peripheral devices.

2 CPUまたは適当な周辺装置によつて必要と
される形態でのデータのパツキングおよびアン
パツキング。
2. Packing and unpacking of data in the form required by the CPU or appropriate peripherals.

3 制御下にあるサブシステムおよび装置の状態
に関する情報のCPUへの連続的供給。
3 Continuous supply of information to the CPU about the status of subsystems and equipment under its control.

4 エラーおよびリカバリープロシージヤの独立
的開始および処理。
4. Independent initiation and processing of error and recovery procedures.

5 関連周辺プロセツサの装置共用能を撹括せず
に1つの装置のオンライン診断を可能にするこ
と。
5. To enable online diagnosis of one device without disrupting the device sharing capabilities of related peripheral processors.

PCUは、これに付属する装置間の主メモリー
に関する競合を解決する。但し、PCU間の競合
はIOCによつて解決される。
The PCU resolves conflicts for main memory between devices attached to it. However, conflicts between PCUs are resolved by the IOC.

基本的機械構造 このハードウエアで使用される基本データ構造
には一般に次の3種類がある:データフオーマツ
ト、ソフトウエアビジブルレジスタ、およびイン
ストラクシヨンフオーマツト。
Basic Mechanical Structures There are generally three types of basic data structures used in this hardware: data formats, software visible registers, and instruction formats.

A データフオーマツト メモリーとCPU間においては、情報は8つの
並列ビツトの倍数として転送される。各8ビツト
単位の情報はバイトと呼ばれる。パリテイーまた
はエラー修正データもこれらのデータとともに転
送されるが、ソフトウエアによつて影響を与える
ことはできない。従つて、本願明細書において
は、データという用語はこれに付随するバリテイ
またはエラー修正データを含まないものとする。
A. Data Format Information is transferred between memory and the CPU as multiples of eight parallel bits. Each 8-bit unit of information is called a byte. Parity or error correction data is also transferred with these data, but cannot be influenced by software. Accordingly, as used herein, the term data does not include any associated validity or error correction data.

B バイト 1つのバイトの中のビツトには、左から右に向
けて0〜7の番号が付される。バイトは各個に、
あるいはグループで処理される。2バイトが半語
を構成し、4バイトは1語を、8バイトは2語
を、16バイトは4語を各々構成する。以上は、イ
ンストラクシヨンを含めてすべてのデータに関す
る基本的フオーマツトである。
B Byte The bits in one byte are numbered from 0 to 7 from left to right. Each byte is
Or processed in groups. 2 bytes constitute a half word, 4 bytes constitute 1 word, 8 bytes constitute 2 words, and 16 bytes constitute 4 words. The above is the basic format for all data including instructions.

C データ表示 データはすべて2進形式になつているが、2
進、10進、またはアルフアニユーメリツク形式の
いずれかとして解釈することもできる。データビ
ツトは4つのグループをまとめて2進化10進デー
タとして解釈する。また、8個のグループをアル
フアニユーメリツク、あるいは16〜64個のグルー
プを2進数字として解釈する。これらの2進数字
は、2進記法における符号付き数、固定小数点、
または浮動小数点数であると解釈する。また、最
大2語までの何個かの連続ビツトをストリングと
して取扱うこともできる。アルフアニユーメリツ
クキヤラクタセツトはEBCDICで表わされる。代
替コードとしてASCIIコードを用いることもでき
る。
C Data display All data is in binary format, but
It can also be interpreted as either decimal, decimal, or alphanumeric format. DataBits interprets the four groups as binary coded decimal data. Also, groups of 8 are interpreted as alphanumeric characters, or groups of 16 to 64 are interpreted as binary digits. These binary digits are signed numbers in binary notation, fixed point numbers,
or interpreted as a floating point number. It is also possible to treat several consecutive bits of up to two words as a string. Alphanumeric character sets are represented in EBCDIC. ASCII code can also be used as an alternative code.

D バイトアドレス 主メモリーの中のバイト位置には、ゼロから始
まる連続番号が付され、これらの各番号がバイト
のアドレスとなる。一群の連続バイトは、左側バ
イトのアドレスが各々2、4、8または16の倍数
になつている場合には、半語、1語、2語、4語
整合になつていると言う。半語、1語、2語、ま
たは4語がこのように整合されている場合には、
その情報単位はそのアドレスからフエツチするこ
とができる。主メモリー中のデータの位置は、ア
ドレス開発時に間接的にアクセスされるデータ記
述子によつて指定される。
D Byte Address Byte locations in main memory are numbered consecutively starting from zero, and each number is the address of the byte. A group of consecutive bytes is said to be half-word, one-word, two-word, or four-word aligned if the addresses of the left-hand bytes are each a multiple of 2, 4, 8, or 16. When half words, one word, two words, or four words are aligned in this way,
The information unit can be fetched from that address. The location of data in main memory is specified by a data descriptor that is accessed indirectly during address development.

E ビジブルレジスタ 第1図のCPU104の中には33個のユーザー
ビジブルレジスタがあり、その記憶情報は集合的
にCPUの状態を設定する。これらのレジスタに
は4種類がある(第2図参照): 1 はん用レジスタ 2 ベースレジスタ 3 科学レジスタ(オプシヨン) 4 雑レジスタ F はん用レジスタ はん用レジスタ(GR)201は、固定小数点
数およびビツトストリングを取扱うために使用さ
れる。一般には、CPUの中には16個の32ビツト
はん用レジスタがある(GR0〜GR15)。はん
用レジスタGR8〜GR15は、インデツクスレジ
スタとして使用することもできる。本願において
は、インデツクスレジスタとして使用する場合に
はX0〜X7と表わす。インデキシングは、レジ
スタに含まれている32ビツトの2の補数の整数を
用いて実行される。
E. Visible Registers There are 33 user visible registers within the CPU 104 of FIG. 1 whose stored information collectively sets the state of the CPU. There are four types of these registers (see Figure 2): 1 General purpose register 2 Base register 3 Scientific register (optional) 4 Miscellaneous register F General purpose register General purpose register (GR) 201 is a fixed-point register. Used for handling numbers and bitstrings. Generally, there are 16 32-bit general-purpose registers in a CPU (GR0 to GR15). General-purpose registers GR8 to GR15 can also be used as index registers. In this application, when used as an index register, they are expressed as X0 to X7. Indexing is performed using 32-bit two's complement integers contained in registers.

G ベースレジスタ ベースレジスタ(BR)は、インストラクシヨ
ンカウンタICおよびスタツクレジスタ202〜
203と同じフオーマツトを有する。ベースレジ
スタは、アドレス計算においてメモリーの一部を
定めるために使用される。一般には、8個の32ビ
ツトレジスタ(BR0〜BR7)が使用される。
G Base Register The base register (BR) is the instruction counter IC and stack register 202~
It has the same format as 203. Base registers are used to define portions of memory in address calculations. Typically, eight 32-bit registers (BR0-BR7) are used.

H 科学レジスタ 科学レジスタ(SR)は、浮動小数点数につい
ての計算を行なうためのオプシヨン装置である。
一般には、4つの8バイト科学レジスタが使用さ
れる(SR0〜SR3)。科学レジスタは、第2図
のフオーマツト204〜205を有する。
H Scientific Register The Scientific Register (SR) is an optional device for performing calculations on floating point numbers.
Generally, four 8-byte scientific registers are used (SR0-SR3). The scientific register has the format 204-205 of FIG.

I 雑レジスタ その他のレジスタとしては下記の5種類があ
る: ●インストラクシヨンカウンタ(フオーマツト2
02〜203を有する); ●状態レジスタ(フオーマツト207を有す
る); ●スタツクレジスタ(Tレジスタと呼ばれる);
202〜203 ●境界アドレスレジスタ(フオーマツト206を
有する); ●ハードウエア制御マスクレジスタ(フオーマツ
ト208を有する)。
I Miscellaneous registers There are five types of other registers: ● Instruction counter (format 2)
02 to 203); ●Status register (having format 207); ●Stack register (called T register);
202-203 - Boundary address register (with format 206); - Hardware control mask register (with format 208).

インストラクシヨンカウンタ(IC)は、実行
されているインストラクシヨンのアドレスを含む
32ビツトレジスタである。状態レジスタ
(STR)207は、その時実行されているプロシ
ージヤについての情況、たとえば最新のオペレー
シヨンによつて下位桁あふれが生じたかどうかと
いうことを記録する8ビツトレジスタである。T
レジスタとしても知られているスタツクレジスタ
は、その時アクテイブ状態にあるプロシージヤに
付随するプツシユダウンスタツクの上部へのポイ
ンタを記憶する32ビツトレジスタである。以下に
説明するスタツクは、ワークスペース、ローカル
変数をセーブし、プロシージヤエントリーを保存
するための機構、およびリターン情報を与える。
境界アドレスレジスタ(BAR)206は、ソフ
トウエアによつてアクセス可能な最低の絶対主記
憶アドレスを指定する28ビツトレジスタである。
このレジスタには、システムの初期設定時にロー
デイングが行なわれ、ソフトウエアによつてのみ
読取ることができる。ハードウエア制御マスクレ
ジスタ208は、機械の状態情報を記録する8ビ
ツトレジスタである。
The instruction counter (IC) contains the address of the instruction being executed
It is a 32-bit register. Status register (STR) 207 is an 8-bit register that records the status of the procedure currently being executed, such as whether the most recent operation caused an overflow. T
A stack register, also known as a register, is a 32-bit register that stores a pointer to the top of the pushdown stack associated with the currently active procedure. The stack described below provides a workspace, a mechanism for saving local variables, saving procedure entries, and return information.
Boundary address register (BAR) 206 is a 28-bit register that specifies the lowest absolute main memory address accessible by software.
This register is loaded during system initialization and can only be read by software. Hardware control mask register 208 is an 8-bit register that records machine status information.

J インストラクシヨンフオーマツト 約200のインストラクシヨンがあり、各インス
トラクシヨンは4種類の長さの中の1つの長さを
有するか、いずれも偶数のバイト数の長さになつ
ている。これらのインストラクシヨンは、連続す
る記憶場所に記憶される。最も左のバイトのアド
レスは2の倍数で、これがそのインストラクシヨ
ンのアドレスとなる。
J Instruction Format There are approximately 200 instructions, each of which has one of four lengths, or all of which are an even number of bytes long. These instructions are stored in consecutive memory locations. The address of the leftmost byte is a multiple of 2, and is the address of the instruction.

1つのインストラクシヨンの8つの最高位ビツ
ト(場合によつてはビツト8〜11、または12
〜15)はオペレーシヨンコードを表わすが、残
りのビツトは1つまたはそれ以上の演算数を表わ
す。演算数は、レジスタ指標のこともあれば、移
動量指標である場合もあり、さらにはアドレスシ
ラブル(論理アドレス)、リテラル値、即時リテ
ラル値等のこともある。演算数の種類および数
は、インストラクシヨンフオーマツトによつて決
定される。
The eight most significant bits of an instruction (sometimes bits 8-11, or 12)
.about.15) represents an operation code, while the remaining bits represent one or more operational numbers. The operand may be a register index, a movement index, an address syllable (logical address), a literal value, an immediate literal value, etc. The type and number of operands are determined by the instruction format.

システムの機構 A ジヨブステツプおよびタスク コンピユータシステムによつて実行さるべきワ
ーク(仕事)は、ジヨブ制御言語を用いて外部か
ら一連のジヨブステツプにより制御される。
System Mechanisms A. Job Steps and Tasks The work to be performed by a computer system is controlled externally by a series of job steps using a job control language.

ジヨブステツプは、ハードウエアリソースが割
当てられるワークの単位である。一般に、ジヨブ
ステツプはいくつかのタスクから構成されてい
る。タクスは、ユーザーにより設定されるワーク
の最小単位で、並行性ないし実行されるインスト
ラクシヨンの流れから構成されている。
A job step is a unit of work to which hardware resources are allocated. Generally, a job step consists of several tasks. A task is the smallest unit of work set by the user, and consists of a flow of instructions to be executed in parallel.

B プロセス タスクおよびジヨブステツプのユーザービジブ
ルの概念は、ハードウエアにおいては各々プロセ
スおよびプロセスグループによつて表わされる。
プロセスは、CPUによつて非同期的に実行する
ことのできる秩序立つたシークエンスを有するイ
ンストラクシヨンであると定義される(すなわ
ち、いくつかのプロセスがアクテイブ状態にあつ
てリソースを共用することができるが、ある瞬間
においては、実際には、1つのプロセスのみがラ
ン状態にある)。プロセスグループとは、1つの
ジヨブステツプを実行するために必要なプロセス
の集合である。
B. Processes The user-visible concepts of tasks and job steps are represented in hardware by processes and process groups, respectively.
A process is defined as an ordered sequence of instructions that can be executed asynchronously by a CPU (i.e., several processes can be active and share resources). However, at any given moment, only one process is actually running). A process group is a collection of processes required to execute one job step.

C プロセスコントロールブロツクおよびシス
テムベース プロセスは、その実行時のあらゆる時点におい
てCPU制御を解消することができるので、1つ
のプロセスは主メモリーの中の記憶エリヤを利用
してCPUの状態をセープすることができる。こ
の状態情報は、プロセスが再びCPUの制御作用
を回復する前にCPUをあらかじめコンデイシヨ
ニングするために用いられる。
C. Process Control Blocks and System Bases Because a process can relinquish control of the CPU at any point during its execution, a process can utilize storage areas in main memory to save the state of the CPU. can. This state information is used to precondition the CPU before the process regains control of the CPU.

プロセスに割当てられる記録エリヤはプロセス
コントロールブロツク(PCB)400と呼ばれる
(第4図)。PCBに含まれるデータは、プロセスに
割当てられたメモリーエリヤ(アドレススペー
ス)のアドレスすべての関連レジスタの記憶情
報、およびプロセスの状態等を含む。従つて、
PCBは全く情報の損失を伴なわずに1つのプロセ
スをスタートまたはリスタートさせるのに必要な
情報の一時記憶エリヤとして使用される。各PCB
はハードウエア/フアームウエアに対してビジブ
ルで、システムの初期設定時に作られ、システム
オペレーシヨン時に変更された一組のハードウエ
ア/フアームウエアテーブルを介してオペレーテ
イングシステムによりアドレスすることができる
(第5図)。
The recording area assigned to a process is called a process control block (PCB) 400 (FIG. 4). The data contained in the PCB includes storage information of all related registers of addresses of memory areas (address spaces) allocated to the process, the state of the process, etc. Therefore,
The PCB is used as a temporary storage area for the information necessary to start or restart a process without any loss of information. Each PCB
is visible to the hardware/firmware and can be addressed by the operating system through a set of hardware/firmware tables created during system initialization and modified during system operation. Figure 5).

絶対主メモリーエリヤはシステムベースと呼ば
れる(第5図、第6図)。このエリヤはフアーム
ウエアによつて作られ、読取りは可能であるが書
込みは不可能なベースアドレスレジスタ
(BAR)501を介してアクセスすることができ
る。システムベース502は、その時ラン状態に
あるプロセスのプロセス名(J.P)を含むいくつ
かのシステムの属性を含んでいる。システムベー
スのもう1つの特性は、Jテーブル503として
知られているハードウエアで設定される構造に対
するポインタ505である。このテーブルはその
時システムの中にある各ジヨブステツプについて
のエントリーを含む。Jテーブル503中の各エ
ントリーは、ハードウエア設定データ構造でもあ
る付属Pテーブル504を指定する。このテーブ
ルは、1つのプロセスグループを定め、かつその
プロセスグループの各プロセスについてのエント
リーを含んでいる。各Pテーブルエントリー50
7はPCB400を指定する。
The absolute main memory area is called the system base (Figures 5 and 6). This area is created by the firmware and can be accessed through a base address register (BAR) 501 that is readable but not writable. System base 502 contains several system attributes, including the process name (JP) of the process that is currently running. Another system-based characteristic is a pointer 505 to a hardware-configured structure known as a J-table 503. This table contains an entry for each job step that is currently in the system. Each entry in J-table 503 specifies an attached P-table 504, which is also a hardware configuration data structure. This table defines a process group and contains an entry for each process in that process group. 50 each P table entry
7 specifies PCB400.

第5図を参照すると、計算装置111(第1
図)の演算部506を介してJナンバーによつて
インデツクスされるJテーブルポインタ505
は、Jテーブルエントリー503へのエントリー
を与える。このエントリーは、計算装置506を
介してPナンバーによりインデツクスされた時に
Pテーブルエントリー504へのアクセスを与え
るPテーブルポインタを含んでいる。Pテーブル
エントリーは、その時ラン状態にあるプロセスの
PCB400へのポインタ507を含む。従つて、
オペレーテイングシステムは、BAR501の記
憶情報を用いるアクテイブ状態のPCBをアクセス
することができ、その関連論理名(J.P)を与え
られた他のPCBをアクセスすることができる。
Referring to FIG. 5, computing device 111 (first
J table pointer 505 indexed by J number via calculation unit 506 in FIG.
gives an entry to J table entry 503. This entry includes a P table pointer that provides access to P table entry 504 when indexed by P number via computing device 506 . P table entries are for processes currently running.
Contains a pointer 507 to PCB 400. Therefore,
The operating system can access the active PCB using the information stored in BAR 501 and other PCBs given their associated logical names (JPs).

D メモリーセグメンテーシヨン 本願で説明するようなマルチプロセス環境にお
いては、ある時点においてメモリー中には多くの
プロセスが入つている。これらのプロセスは互い
に規模が異なり、メモリーを要求するので、メモ
リー割当ての問題を生じる。そのために、ハード
ウエアとともにオペレーテイングシステム(図示
されていない)を用いて、メモリースペースを動
的に割当てることによりこの問題を解決する。メ
モリー条件のランダム性のために、メモリーは可
変規模セグメントにおいて割当てが行なわれ、プ
ロセスのランタイム中にメモリー割当てを再構成
することができる。従つて、プロセスにはいくつ
かの非連続的なメモリーセグメントが割当てられ
る場合もある。このようなメモリー割当て方法を
セグメンテーシヨンと呼ぶ。
D. Memory Segmentation In a multi-process environment such as the one described in this application, there are many processes in memory at a given time. These processes have different sizes and memory requirements from each other, creating memory allocation problems. To this end, an operating system (not shown) is used in conjunction with hardware to dynamically allocate memory space to solve this problem. Due to the random nature of memory conditions, memory is allocated in variable-sized segments, allowing memory allocation to be reconfigured during process runtime. Therefore, a process may be assigned several non-contiguous memory segments. This kind of memory allocation method is called segmentation.

セグメンテーシヨンは、プロセスの一部または
全部を再配置する時にメモリーアドレスを変更し
なければならないという新たな問題を提起する。
この問題を解決するために、本願のシステムは、
プロセスによつて使用されるアドレスを絶対主メ
モリーアドレスではなく論理アドレスにするため
の技術を提供するものである。これらの論理アド
レスは絶対アドレスを作り出すために用いられ
る。
Segmentation poses a new problem in that memory addresses must be changed when relocating part or all of a process.
In order to solve this problem, the system of the present application:
It provides a technique for making the addresses used by processes logical addresses rather than absolute main memory addresses. These logical addresses are used to create absolute addresses.

また、セグメンテーシヨン法によれば、セグメ
ント記述子もしくはセグメント・デスクリプタの
システムを介して、各プロセスはそれ自体の、あ
るいは関連のあるメモリーのセグメントをアクセ
スすることができる。プロセスは、セグメント記
述子をアクセスすることによつてセグメントのア
ドレスを得ることができる。セグメント記述子は
主メモリーに含まれており、オペレーテイングシ
ステムによつて維持される。
Segmentation also allows each process to access its own or associated segments of memory through a system of segment descriptors. A process can obtain the address of a segment by accessing the segment descriptor. Segment descriptors are contained in main memory and maintained by the operating system.

セグメンテーシヨンは、2億バイト以上のアド
レスをプロセスが利用することのできる状態で画
定する。上記の数値は主メモリーの容量以上であ
り、そのために主メモリーとともに2次記憶装置
(磁気デイスクまたはドラム)が使用される。こ
のオペレーテイングシステムは、システムが実際
に利用することができるよりも数段大きな主メモ
リーを備えているような幻覚を生じさせる。この
概念は仮想メモリーと呼ばれる。
Segmentation defines over 200 million bytes of addresses available to processes. The above value is greater than the capacity of the main memory, and therefore a secondary storage device (magnetic disk or drum) is used together with the main memory. This operating system creates the illusion that the system has several orders of magnitude more main memory than is actually available. This concept is called virtual memory.

プロセスマネジメントおよび同期化 本発明のシステムは、ソフトウエア、ハードウ
エアおよびフアームウエアの組合わせを用いたオ
ペレーテイングシステムによつて制御される多重
処理オペレーシヨンを提供するものである。ソフ
トウエアは、システム内にプロセスを作り出しか
つこれを消去し、他方ハードウエアおよびフアー
ムウエアはCPU上においてこれらのプロセスを
多重化する。さらに、ソフトウエア、ハードウエ
アおよびフアームウエアの組合わせによつてプロ
セス間の同期化が可能となる。
Process Management and Synchronization The system of the present invention provides multi-processing operations controlled by an operating system using a combination of software, hardware and firmware. Software creates and destroys processes within the system, while hardware and firmware multiplex these processes on the CPU. Furthermore, the combination of software, hardware and firmware allows for synchronization between processes.

プロセスは常にではないが、通常は、関連ジヨ
ブ処理時、およびその他オペレーテイングシステ
ムによつて必要と見なされる目的のために費やさ
れる時間中において、I/Oオペレーシヨンの開
始および終了時に開始され停止される。そのため
に、関連プロセスを効率的にスタートさせ停止さ
せ、そしてプロセス間に情報を伝達するためには
通信システムが必要になる。本発明のハードウエ
アは、プロセス間に通信リンクを与えるためのセ
マホア(semaphore)と呼ばれる内部メツセージ
を提供する。
Processes are typically, but not always, started and stopped at the beginning and end of I/O operations, during associated job processing, and during time spent for other purposes deemed necessary by the operating system. be done. Therefore, a communication system is required to efficiently start and stop related processes and to communicate information between processes. The hardware of the present invention provides internal messages called semaphores to provide communication links between processes.

A プロセス状態 1つのプロセスは、いずれかの時点において下
記の中の1つの状態を取ることができる:ランニ
ング、レデイ、待期または保留。ハードウエア
は、これらの4つのプロセス状態を認識して、
種々のフアームウエアプロシージヤを実行し、プ
ロセスデイスパツチング、状態変化を行なわせ、
プロセスの状態にもとずいてデータ構造を維持す
る。PCBは、その関連プロセスのその時点におけ
る状態を設定する状態フイールドを有する。
A Process State A process can be in one of the following states at any time: Running, Ready, Waiting, or Pending. The hardware recognizes these four process states and
Execute various firmware procedures, perform process dispatching, state changes,
Maintain data structures based on process state. The PCB has a status field that sets the current state of its associated process.

プロセスは、CPUの制御下にある時にはラン
状態にある。この状態においては、CPUにアド
レススペース(セグメントテーブル)およびスタ
ーテイングアドレスが供給される。そして、
CPUはそのプロセスのプロシージヤセグメント
のインストラクシヨンを実行する。その時ラン状
態にあるプロセスについてのPCBのプロセス名J.
P(論理アドレス)は、システムベース内のラン
ニングプロセスワード(BAR+56)に保持され
る(第6図)。(注意:第5図のシステムベース
は、第6図のシステムベースと同じであるが、細
部は昇略してある)。
A process is in the run state when it is under the control of the CPU. In this state, the CPU is supplied with an address space (segment table) and a starting address. and,
The CPU executes instructions in the procedure segment of the process. PCB process name J for the process currently running.
P (logical address) is held in the running process word (BAR+56) in the system base (Figure 6). (Note: The system base in Figure 5 is the same as the system base in Figure 6, but the details have been omitted).

レデイ状態は、プロセスがCPUによつて認識
されていないので、CPUによる制御下にないと
いう点を除き、ランニング状態と同じである。プ
ロセスは、レデイ状態にあつてはその他のレデイ
プロセスおよびランニングプロセスとCPUに関
して競合状態になる。
The ready state is the same as the running state, except that the process is not known to the CPU and therefore is not under control by the CPU. When a process is in the ready state, it competes with other ready processes and running processes for CPU.

プロセスは、セマホア(semaphore)を介して
メツセージのような特定の事象が生じるまで持続
することができない時には待機状態になる。待機
プロセスはCPUを求めて競合することはない
が、必要事象に関しては他の待機プロセスと競合
する。
A process becomes idle when it cannot persist until a certain event occurs, such as a message via a semaphore. Waiting processes do not compete for CPU, but they do compete with other waiting processes for necessary events.

保留プロセスは、ソフトウエアによつてしばら
くの間停止され、後ほど再開することのできるプ
ロセスである。そのプロセスを停止させ再開させ
るための決定は、そのプロセスには含まれない。
従つて、保留プロセスはアクテイブではなく、そ
のために事象の発生の通知を受けることはでき
ず、またCPUを使用することはできない。
A suspended process is a process that is stopped by the software for a period of time and can be resumed at a later time. Decisions to stop and restart the process are not included in the process.
Therefore, the pending process is not active and therefore cannot be notified of the occurrence of events and cannot use the CPU.

プロセスは下記のような条件下において保留さ
れる: (1) ターミネート(Terminate)インストラクシ
ヨンの実行によつて(その機能をすべて果した
結果)。
A process is suspended under the following conditions: (1) by execution of a Terminate instruction (as a result of having completed all its functions);

(2) サスペンド(Suspend)インストラクシヨン
のオペレーテイングシステムの実行によつて。
(2) By the operating system's execution of a Suspend instruction.

(3) 制御がオペレーテイングシステムに移行され
るような除外状態の発生によつて。
(3) By the occurrence of an excluded condition such that control is transferred to the operating system.

B プロセスデイスパツチング プロセスは、ラン状態にある時プロセスの作用
によつて任意に、あるいは他のプロセスの作用に
よつて強制的に1つの状態からもう1つの状態に
移行し得る。デイスパツチヤと呼ばれるCPUフ
アームウエアは状態間のプロセスのトランザクシ
ヨンを制御する。デイスパツチヤは、一組の待ち
行列(これについては後述)を用いて、レデイま
たは待機状態にあるプロセスを扱かう。保留プロ
セスは、ソフトウエアによつて制御される。
B. Process Dispatching A process can transition from one state to another when in a run state, either arbitrarily by the action of the process or forced by the action of another process. CPU firmware, called a dispatcher, controls the process's transactions between states. The dispatcher uses a set of queues (described below) to handle processes that are ready or waiting. The suspension process is controlled by software.

第6,8および9図を参照すると、レデイまた
は待機プロセスはPCBおよびプロセスリンクと呼
ばれる特殊キユーエントリーによつて表わされて
いる。第9図は、G0セグメント802の内容の
分解図であり、アクテイブプロセスのプロセスリ
ンク803a〜803bおよび803c〜803
g、およびフリープロセスリンク805a〜80
5cを含んでいる。各プロセスリンクは、プロセ
ス名(J.P)、プロセスの優先順位およびそのキユ
ー(待ち行列)中の次のプロセスへのポインタを
指定する。キユーには、待機キユー803a,
b、待機キユーe〜G、レデイキユー803c〜
d等の各種がある。
Referring to Figures 6, 8 and 9, a ready or waiting process is represented by a special queue entry called a PCB and process link. FIG. 9 is an exploded view of the contents of G0 segment 802, showing process links 803a-803b and 803c-803 of active processes.
g, and free process links 805a to 80
Contains 5c. Each process link specifies the process name (JP), the process's priority, and a pointer to the next process in its queue. The queue includes a standby queue 803a,
b, standby queue e~G, ready queue 803c~
There are various types such as d.

Gテーブルとして知られるJテーブルに類似し
たハードウエア装置(第6図および第8図)はす
べてのはん用(システムワイド)セグメント80
2〜802nへのポインタを含んでいる。Gテー
ブル801の最初のエレメントG0は、デイスパ
ツチヤキユーを含むセグメント802を指定す
る。Gテーブル801へのGテーブルポインタ
は、第5図のシステムベースにある。第8図およ
び第9図を参照すると、G0セグメントのレデイ
キユー803c〜803sのヘツド803を識別
する内部プロセスキユーワード(IPQW)と呼ば
れるエントリーもシステムベースにある。
A hardware device similar to the J-table, known as the G-table (FIGS. 6 and 8), is used in all general-purpose (system-wide) segments 80.
2 to 802n. The first element G0 of G table 801 specifies the segment 802 that contains the dispatch queue. The G table pointer to G table 801 is located in the system base of FIG. Referring to FIGS. 8 and 9, there is also an entry in the system base called an internal process queue word (IPQW) that identifies the head 803 of the ready queues 803c-803s of the G0 segment.

従つて、デイスパツチヤは、レデイキユー80
3c〜803dを調べることによつてすべてのレ
デイプロセスを1つずつ吟味することができる。
その時ラン状態にあるプロセスが状態を考える
と、デイスパツチヤはレデイキユーのヘツドにお
いてプロセスリンクを除去し、J.P名を用いてそ
のPCBをアクセスする。
Therefore, the dispatcher is ready
All ready processes can be examined one by one by examining 3c to 803d.
Given the state of the currently running process, the dispatcher removes the process link at the head of the ready queue and accesses the PCB using the JP name.

1つ以上のプロセスが同じ事象を持つている場
合もあるから、各事象毎に待機プロセスのキユー
803a〜803bが存在する。待機プロセス
も、G0セグメントにあるプロセスリンク804
(第8図)を介してストリング状に存在する。待
機キユーのヘツドへのポインタは信号903中に
存在する(これについては後述する)。1つのプ
ロセスが待つ事象はいくつもある。そのために、
いくつかの待機キユーがあり、各々付随セマホア
(semaphore)903,904が存在する。
Since one or more processes may have the same event, there is a queue of waiting processes 803a-803b for each event. The standby process also has a process link 804 in the G0 segment.
(Fig. 8) exists in the form of a string. A pointer to the head of the waiting queue is present in signal 903 (described below). There are many events that one process waits for. for that,
There are several waiting queues, each with an associated semaphore 903,904.

レデイもまた待機プロセスの数は動的に変化す
る。従つて、レデイおよび待機キユーに必要なプ
ロセスリンクの数も変化する。この事実によつ
て、デイスパツチヤに関するメモリーマネジメン
トの問題が派生する。この問題は、フリープロセ
スリンクキユ805a〜cと呼ばれるもう1つの
キユーによつて解決される。
The number of ready processes also changes dynamically. Therefore, the number of process links required for ready and waiting queues also changes. This fact creates memory management problems for dispatchers. This problem is solved by another queue called free process link queues 805a-c.

C プロセス同期化 同じタスクに対してワーキング状態にある2つ
のプロセスのアクテイビテイを調整するためには
プロセス同期化が必要である。この同期化は、通
信プロセスのアドレススペースの中にあるデータ
構造より成るセマホア903〜904を用いて達
成される。セマホアは事象発生を信号化して送
り、メツセージのキユーを取扱うために使用され
る。ここで事象とは、他のプロセスに関係あるこ
とが考えられる、1つのプロセスによつて観察さ
れるところのものである。事象は非同期オペレー
シヨンの完了であることもあればリソースの利用
可能性の場合もある。
C. Process Synchronization Process synchronization is necessary to coordinate the activities of two processes working on the same task. This synchronization is accomplished using semaphores 903-904, which consist of data structures within the address space of the communication process. Semaphores are used to signal event occurrences and handle message queues. An event is something observed by one process that may be related to other processes. The event may be the completion of an asynchronous operation or the availability of a resource.

1つのプロセスは、1つの事象発生を伝達する
のにセマホアもしくはセマフオア(semaphore)
オペレーシヨンを使用する。1つのオペレーシヨ
ンはセマホアもしくはセマフオア(semaphore)
に信号を送り、もう1つはセマフオアから信号を
ピツクアツプする。(送信動作はVオペレーシヨ
ンと呼ばれることが多く、受信動作はPオペレー
シヨンと呼ばれる。)送信オペレーシヨンはおい
ては、プロセスはレデイ状態のデータまたは信号
を送ることができる。セマフオアは、もう1つの
プロセス信号をピツクアツプすることができる状
態になるまで、その信号を記憶しておく。このよ
うにして、送信プロセスは、データを送つている
ので自由に進行する。受信オペレーシヨンは所定
のセマフオアを調べて信号をピツクアツプする。
そして、信号が存在すると、受信プロセスは実行
を続行する。セマフオアに信号が存在しない場合
には、受信プロセスは待機状態に入る。すると、
セマフオアは待機キユーのヘツドへのポインタと
して作用する。
A process uses a semaphore to communicate the occurrence of an event.
Use operations. One operation is a semaphore or semaphore.
one picks up the signal from the semaphore. (Send operations are often referred to as V operations, and receive operations as P operations.) A send operation allows a process to send ready data or signals. The semaphore stores another process signal until it is ready to be picked up. In this way, the sending process is free to proceed as the data is being sent. The receive operation examines the predetermined semaphore and picks up the signal.
Then, if the signal is present, the receiving process continues execution. If there is no signal on the semaphore, the receiving process enters a waiting state. Then,
The semaphore acts as a pointer to the head of a waiting queue.

メツセージはプロセスからプロセスへも送られ
る。メツセージは信号プラス付加情報と同じ存在
または不在の特質を有する。情報の一部はハード
ウエアによつて供給され、他の一部はメツセージ
を送るプロセスのブロシージヤによつて供給され
る。メツセージは、送信プロセスのプロセス名を
帯びている。従つて、送信側の名前をスタンプさ
れた単一のセマフオアを通じて、多くのプロセス
が情報を送ることができる。
Messages are also sent from process to process. Messages have the same presence or absence characteristics as signals plus additional information. Some of the information is provided by the hardware, and some of the information is provided by the broker of the process sending the message. The message bears the process name of the sending process. Therefore, many processes can send information through a single semaphore stamped with the sender's name.

メツセージセマフオアは、プロセスによりピツ
クアツプされるために待機状態にあるメツセージ
のキユーを有する場合もある。信号セマフオアと
ともに、メモリースペース必要量も増減するの
で、ここにメモリーマネジメントの問題が生じ
る。この場合も、問題はフリーメツセージリンク
によつて解決される。これらのリンクは、メツセ
ージリンクを供給または吸収する必要がある時に
容易に探出することのできるセグメント中の既知
の場所に存在する。
A message semaphore may have a queue of messages waiting to be picked up by a process. Memory management issues arise here, since memory space requirements increase and decrease with signal semaphores. Again, the problem is solved by free message links. These links exist at known locations in the segment where they can be easily located when message links need to be fed or absorbed.

セマフオアおよびその上に作られたキユーは相
異なるプロセスによつて共用されるのでセマフオ
アの構造は全体的に保護されている。これは、セ
マフオアを含むセグメントへのアクセスを制限す
るハードウエアおよびソフトウエア上の約束事に
よつて達成される。従つて、セマフオアはセマフ
オア記述子の中になければならず、その一部はG
セグメントであつてもよい(システム通信が必要
な場合)。しかしながら、すべてのGセグメント
(G0を除く)はセマフオア記述子セグメントで
ある。
Since the semaphore and the queues created on it are shared by different processes, the structure of the semaphore is globally protected. This is accomplished through hardware and software conventions that restrict access to the segment containing the semaphore. Therefore, the semaphore must be inside the semaphore descriptor, part of which is G
May be a segment (if system communication is required). However, all G segments (except G0) are semaphore descriptor segments.

各セマフオア記述子は、セマフオアへのポイン
タを含む。セマフオアアドレスはセマフオア記述
子により作出されるので、セマフオアはこれによ
つても保護される。セマフオアは、セグメント番
号およびセグメント内の相対的位置を用いて、あ
るいはG、D番号を用いて直接論理的にアドレス
することができる。
Each semaphore descriptor contains a pointer to a semaphore. Since the semaphore address is created by the semaphore descriptor, the semaphore is also protected by this. Semaphores can be logically addressed using segment numbers and relative positions within the segment, or directly using G,D numbers.

プロセスコントロールブロツクの構造 第4図には、プロセスコントロールブロツク
(PCB)のフオーマツトが示されている。プロセ
スコントロールブロツク400はプロセスが
CPUの状態をセーブするために使用することの
できる主メモリーの中の記憶エリヤである。PCB
のアドレツシングは、第5図を参照して説明した
ようにして実行される。PCBポインタ507(第
5図)は、第4図のプロセスコントロールブロツ
クPCBのバイト0を指定する。ここで注意しなけ
ればならないのは、下降方向の進行においてはメ
モリー位置は4バイト増加するが、バイト位置0
からの上昇方向の進行においては8バイト増加す
るということである。バイト0から下降方向のメ
モリー位置は正と考えられ、バイトに0からの上
昇方向の位置は負方向であると見なされる。上側
の位置はオプシヨンであつて、プロセスコントロ
ールブロツクに含めても含めなくともよいが、ま
た位置148〜176もオプシヨンである。バイト0〜
16(但し16は含まず)でスタートして、4つのプ
ロセスメインワードPMW0〜PMW3が記憶され
ており、これらの各プロセスメインワードPMW
は4バイトの長さになつている。プロセスメイン
ワード0はバイト0〜3を占有し、次の4つの部
分より成つている:能力バイト、優先順位バイ
ト、状態バイトおよびデコール延長バイト
DEXT。図10a〜10dには、プロセスメイン
ワードPMW0が詳細に示されており、図10b
には能力バイト1001がさらに詳細に示されて
いる。図10bを参照すると、最初のビツト10
05は、そのプロセスについてタイムアカウンテ
イング機能が実行されているか否かを示すアカウ
ンテイングモードビツトである。アカウンテイン
グモードビツト1005が2進0にセツトされて
いる場合には、そのプロセスについてタイムアカ
ウンテイング機能を実行されておらず、アカウン
テイングモード1005が2進1にセツトされて
いる時には、タイムアカウンテイング機能が実行
されている。科学モードビツト1006は、ゼロ
にセツトされている時には、科学レジスタのセー
ビングが実行されておらず、第4図のバイト148
〜176にある科学レジスタセービングエリヤが、
プロセスコントロールブロツクPCBに存在しない
ということを示す。科学モードビツト1006
が、2進1にセツトされている時には、科学的オ
プシヨンの特長が存在し、プロセスにおいて使用
されており、必要に応じて科学レジスタのセービ
ングエリヤが科学レジスタの記憶情報をセーブす
るために使用されるということを示す。
Process Control Block Structure Figure 4 shows the format of the process control block (PCB). The process control block 400
A storage area in main memory that can be used to save the state of the CPU. PCB
Addressing is performed as described with reference to FIG. PCB pointer 507 (FIG. 5) specifies byte 0 of the process control block PCB of FIG. It should be noted here that in the downward progression the memory location increases by 4 bytes, but byte location 0
This means that in the upward direction from , there is an increase of 8 bytes. Memory locations downward from byte 0 are considered positive, and memory locations upward from byte 0 are considered negative. The upper positions are optional and may or may not be included in the process control block, and positions 148-176 are also optional. Part-time job 0~
16 (however, 16 is not included), four process main words PMW0 to PMW3 are stored, and each of these process main words PMW
is 4 bytes long. Process main word 0 occupies bytes 0-3 and consists of four parts: capability byte, priority byte, status byte and decall extension byte.
DEXT. In Figures 10a-10d, the process main word PMW0 is shown in detail, and in Figure 10b
shows the capability byte 1001 in more detail. Referring to Figure 10b, the first bit 10
05 is an accounting mode bit indicating whether a time accounting function is being executed for the process. If accounting mode bit 1005 is set to a binary 0, no time accounting functions are being performed for the process, and when accounting mode bit 1005 is set to a binary 1, time accounting is not performed. Function is running. When scientific mode bit 1006 is set to zero, no scientific register saving is being performed and byte 148 in FIG.
The science register saving area at ~176 is
Indicates that the process control block is not present on the PCB. science mode bit 1006
When is set to a binary 1, the scientific option feature is present and is being used in the process, and the scientific register saving area is used to save storage information in the scientific register as needed. It shows that

優先順位バイトの詳細は図10cに示されてい
る。図10cを参照すると、優先順位バイト1002
の最初の4ビツトは、所与のプロセスコントロー
ルブロツクPCBに付随する優先順位レベルをセツ
トするために用いられる。各プロセスには、競合
プロセスに順位を付すために用いられる16の優先
順位レベルの中の1つを割当てられる。優先順位
は0から15まで下がり、所与の優先順位レベルに
ついてはFIF0(先入れ先出し)のルールが適用
される。図10dには、状態バイト1003が詳細に
描かれている。状態バイトは、プロセスコントロ
ールブロツクPCBに付随するプロセスに関する情
報を得るために用いられる。プロセスが保留され
ている時には、保留フイールドS1011は2進
1にセツトされる。サブステートフイールドSS
1012は2ビツトフイールドであり、プロセス
の次のようなサブステートを設定する;(a)2進00
にセツトされている時には、そのプロセスはアク
テイブになつていない;(b)2進01にセツトされて
いる時には、プロセスはレデイープロセスのキユ
ーにおいて待機している(Q/PR/RDY);(c)
2進10にセツトされている時には、プロセスはセ
マフオア上において、セマフオアのキユーの中で
待機している(Q/PR/S);(d)2進11にセツ
トされている時には、プロセスはプロセツサによ
つて実行されている。ビツト1015および10
16は0にセツトされる。プロセスメインワード
PMW0の第4バイトはデコール延長番号を含
み、システムがエミユレーシヨンモードにある時
に使用される。
Details of the priority byte are shown in Figure 10c. Referring to Figure 10c, priority byte 1002
The first four bits of are used to set the priority level associated with a given process control block PCB. Each process is assigned one of 16 priority levels that are used to rank competing processes. The priorities go down from 0 to 15, and for a given priority level a FIF0 (first in, first out) rule is applied. In Figure 10d the status byte 1003 is depicted in detail. The status byte is used to obtain information about the process associated with the process control block PCB. When a process is suspended, the pending field S1011 is set to a binary one. Substate field SS
1012 is a 2-bit field that sets the substate of the process; (a) binary 00;
When set to , the process is not active; (b) When set to binary 01, the process is waiting in the queue of ready processes (Q/PR/RDY); (c )
When set to binary 10, the process is on the semaphore, waiting in the semaphore's queue (Q/PR/S); (d) When set to binary 11, the process is waiting on the semaphore in the semaphore queue (Q/PR/S); is being executed by. Bits 1015 and 10
16 is set to 0. process main word
The fourth byte of PMW0 contains the decall extension number and is used when the system is in emulation mode.

プロセスメインワードPMW1はプロセスコン
トロールブロツクPCBのバイト4〜7の中に記憶
されている。PMW1の詳細は図10eに示され
ている。ステータスバイト1016はPMW1の最初
のバイトであつて、ステータスレジスタの記憶情
報を記憶する。プロセスメインワード1の第2お
よび第4バイトは、正常動作を得るためにはゼロ
とならなければならないMBZフイールド101
7と1019である。
Process main word PMW1 is stored in bytes 4-7 of the process control block PCB. Details of PMW1 are shown in Figure 10e. Status byte 1016 is the first byte of PMW1 and stores information stored in the status register. The second and fourth bytes of process main word 1 are the MBZ field 101 which must be zero for normal operation.
7 and 1019.

プロセスメインワードPMW2は、プロセスコ
ントロールブロツクのバイト8〜11を占有する
が、これは図10fに詳細に示されている。図1
0fを参照すると、ビツト4〜ビツト31のフイ
ールドはセマフオアのローカル各SEG、SRA1
021を含み、このセマフオアにはプロセスが待
機状態にある時または保留状態にある時、PCBが
リンクされる。除外クラスおよびタイプフイール
ド1023は、プロセス除外を生じ、ビツト0〜
15のフイールドが(NFS)1022の場合に
クラスおよびタイプを記憶する。プロセスメイン
ワードPMW3は、PCB400の中のバイト12〜
15を占有し、デコール延長テーブルを指定する。
図10gを参照するとPMW3が詳細に描かれて
いるが、DETSZフイールド1024は、テーブ
ル中のエントリー数を設定し、このフイールドが
ゼロの場合には、そのプロセスにはデコール延長
が認められない。DETAフイールド1025は、
16バイト単位におけるデコール延長テーブルの絶
対アドレスであり、DETSZが0でない時にのみ
意味を持つ。デコール延長テーブルはDETSZエ
ントリーより構成されている。各エントリーは1
バイトの大きさになつている。テーブルのDEXT
番目のエントリーは、プロセスがデコール延長モ
ードDEXTにおいて動作する能力を設定する。0
および1以外のDEXTの値は不適当である。(図
10aのDEXT番号1004を参照のこと)。
Process main word PMW2 occupies bytes 8-11 of the process control block, which is shown in detail in Figure 10f. Figure 1
Referring to 0f, fields bits 4 to 31 are local to each SEG and SRA1 of the semaphore.
021, to which the PCB is linked when the process is in the standby or pending state. Exclusion class and type field 1023 results in process exclusion and contains bits 0 to 1023.
If field 15 is (NFS) 1022, store class and type. Process main word PMW3 is from byte 12 in PCB400.
Occupies 15 and specifies the Decor extension table.
Referring to FIG. 10g, which details PMW3, the DETSZ field 1024 sets the number of entries in the table; if this field is zero, no decall extensions are allowed for the process. DETA field 1025 is
This is the absolute address of the Decor extension table in 16-byte units, and has meaning only when DETSZ is not 0. The Decor extension table consists of DETSZ entries. Each entry is 1
It has become the size of a part-time job. DEXT of table
The second entry sets the ability of the process to operate in decall extension mode DEXT. 0
and DEXT values other than 1 are inappropriate. (See DEXT number 1004 in Figure 10a).

PCB400のバイト16〜23は、各々2つのアド
レススペースワードASW0およびASW1を含
み、各ASWはセグメントテーブルワードアレー
へのポインタを含む。ASW0およびASW1は、
各々図10hに示すのと同じフオーマツトを有す
る。セグメントテーブルワードのアレーの規模
は、1つのアレーの中のセグメントテーブル数に
よつて決まり、一般にはASW0は7つ、ASW1
は8つである。STWSZフイールド1026は、
セグメントテーブルワードのアレーの規模を示
す。セグメントテーブルワードアレーフイールド
STWA1027は、16バイト単位のアレーの絶
対アドレスSTWAを含む。すなわち、アレーの
絶対アドレスは、バイトにおいてはSTWAの16
倍である。
Bytes 16-23 of PCB 400 each contain two address space words ASW0 and ASW1, each ASW containing a pointer to a segment table word array. ASW0 and ASW1 are
Each has the same format as shown in Figure 10h. The size of the segment table word array is determined by the number of segment tables in one array, and generally ASW0 has 7 and ASW1 has 7.
There are 8. STWSZ field 1026 is
Indicates the size of the array of segment table words. Segment table word array field
STWA 1027 includes the absolute address STWA of the array in units of 16 bytes. That is, the absolute address of the array is STWA 16 in bytes.
It's double.

PCBのバイト24〜27には除外語EXWが含まれ
るが、これについては図10iに示す。除外語
は、プロセスメインワードPMW2に記憶された
クラスに従つてプロセス除外の後に取るべき措置
を決定する除外クラステーブルへのポインタ
(SEG、SRA)1029を含む。(図10f参
照)。除外語EXWのMBZフイールド1028は0
でなければならない。
Bytes 24-27 of the PCB contain the exclusion word EXW, which is shown in Figure 10i. The exclusion word contains a pointer (SEG, SRA) 1029 to an exclusion class table that determines the action to be taken after process exclusion according to the class stored in the process main word PMW2. (See Figure 10f). MBZ field 1028 of excluded word EXW is 0
Must.

PCBのバイト28〜31の中のスタツクワード
SKWは、プロセスがラン状態にない場合におけ
るプロセスのスタツクのTレジスタの上部の値を
記憶する。図10jを参照すると、ビツト0およ
び1はTAGフイールド1030を設定する。
TAGは、記述子のタイプをその記憶情報によつ
て示すが、これはSKWの場合はゼロでなければ
ならない。SKWワードのビツト2および3は、
保護のためにスタツクのセグメント化されたアド
レスに付随しているリング番号を含むRINGフイ
ールド1031を含むが、この場合にはこれはゼ
ロでなければならない。ビツト4〜31はセグメ
ント番号SEGを含み、セグメントの相対アドレ
スSRA1032を含むが、セグメントの中のセ
グメントテーブルおよびセグメント相対アドレス
の中に記述されているセグメントを指定するフイ
ールドである。スタツクワードSKWは、プロセ
スがラン状態を去る毎に更新される。これは、プ
ロセスがラン状態になる都度TOレジスタの記憶
情報を回復する。この最後の場合には、TAG1
030およびRING1031がゼロであるかどう
かテストされ、ゼロでない場合には不当なPCB除
外を生じる。
Stack word in bytes 28-31 of the PCB
SKW stores the value of the top of the T register of the process's stack when the process is not running. Referring to FIG. 10j, bits 0 and 1 set TAG field 1030.
TAG indicates the type of descriptor by its storage information, which must be zero for SKW. Bits 2 and 3 of the SKW word are
Includes a RING field 1031 containing the ring number associated with the stack's segmented address for protection, which must be zero in this case. Bits 4 to 31 include the segment number SEG and the segment relative address SRA1032, which is a field that specifies the segment described in the segment table and segment relative address within the segment. The stack word SKW is updated each time a process leaves the run state. This restores the stored information in the TO register each time the process goes into a run state. In this last case, TAG1
030 and RING 1031 are tested for zero, and if not zero will result in an illegal PCB exclusion.

PCB400のバイト32〜35はインストラクシヨ
ンカウンタコンテストワードICWを含むが、こ
れはICCと呼ばれることもある。図10Kを参照
すると、TAGフイールド1033が2進00を含
まなければならない(すなわち、ゼロ以外の値
は、インストラクシヨンカウンタにおいては不当
である)インストラクシヨンカウンタワード
ICWが詳細に示されている。ビツト2および3
を占有するRINGフイールド1034は、主記憶
装置へのアクセスライト(access right)におい
て使用するプロセスのその時のリング番号を設定
する。ビツト4〜31は、次に実行さるべきイン
ストラクシヨンのアドレスを定めるセグメント番
号およびセグメント相対アドレス(SEG、
RRA)1035を設定する。
Bytes 32-35 of PCB 400 contain the instruction counter contest word ICW, sometimes referred to as ICC. Referring to FIG. 10K, the TAG field 1033 must contain binary 00 (i.e., non-zero values are illegal in the instruction counter) in the instruction counter word.
ICW is shown in detail. bits 2 and 3
The RING field 1034, which occupies , sets the current ring number of the process to use in access right to main memory. Bits 4-31 are the segment number and segment relative address (SEG,
RRA) 1035.

バイト36〜39のMBZフイールドはゼロでなけ
ればならない。MBZワードは、PCBが名前J.Pか
らアクセスされる都度テストさせる。これがゼロ
でない場合には、不当なPCB除外を生じる。
The MBZ field in bytes 36-39 must be zero. The MBZ word allows the PCB to be tested every time it is accessed from the name JP. If this is not zero, it will result in an unwarranted PCB exclusion.

スタツクベースワードSBW0〜2は、プロセ
スコントロールブロツクのバイト40〜51を占有す
る。これらのワードは同じフオーマツトを有する
が、これは図10lに詳細に示されている。これ
らのワードはスタツクオペレーシヨンにおいて使
用されるが、これが使用される時には常にTAG
フイールド1036およびRINGフイールド10
37はゼロでなければならず、ゼロでないと不当
なPCB除外を生じる。ビツト4〜31は、リング
ゼロ、1および2についてスタツクセグメントの
第1バイトのセグメント化されたアドレス
(SEG、SRA)1038を含む。
Stack base words SBW0-2 occupy bytes 40-51 of the process control block. These words have the same format, which is shown in detail in Figure 10l. These words are used in stack operations, but whenever they are used, TAG
Field 1036 and RING field 10
37 must be zero, otherwise it will result in an unwarranted PCB exclusion. Bits 4-31 contain the segmented address (SEG, SRA) 1038 of the first byte of the stack segment for rings zero, one and two.

PCB400のバイト52〜83は、ベースレジスタ
セービングエリヤのために予約されたスペース
(8ワード)である。バイト84〜147は、すべての
はん用レジスタの数値をセーブするために用いら
れるセービングエリヤ(16ワード)である。バイ
ト148〜179は、科学レジスタをセーブするために
用いられるセービングエリヤ(8ワード)であ
る。
Bytes 52-83 of PCB 400 are space (8 words) reserved for the base register saving area. Bytes 84-147 are a saving area (16 words) used to save the values of all general purpose registers. Bytes 148-179 are a saving area (8 words) used to save scientific registers.

PCB400には、PCBゼロアドレスの上方に5つ
のダブルワードがタイムアカウンテイング用とし
て与えられている。これらのワードは(PCBアド
レス−8)〜(PCBアドレス−40)の間に置か
れている。これらの各ワードはその52ビツトの中
にマイクロセカンドで表わされたタイムまたはタ
イムインターバルを含み、ビツト52〜63には
ゼロが入れられている。残りのタイムアウトダブ
ルワード(PCBの0の上方の最初の8バイト)に
は、タイムアウト除外が生じる前に実際にプロセ
ツサが費やした時間分が記憶されている。この
RTOワードは、次のようにして更新される:ラ
ン状態のプロセスが存在する毎にRTOワードに
プロセスタイマー値が記憶される。また、プロセ
スがラン状態に入る毎に、プロセスタイマー値が
RTOから取出される。
PCB 400 is provided with five double words above the PCB zero address for time accounting. These words are located between (PCB address -8) and (PCB address -40). Each of these words contains within its 52 bits a time or time interval expressed in microseconds, with bits 52-63 filled with zeros. The remaining timeout double word (the first 8 bytes above the zero on the PCB) stores the amount of time actually spent by the processor before the timeout exclusion occurs. this
The RTO word is updated as follows: The process timer value is stored in the RTO word each time there is a running process. Also, each time a process enters a run state, the process timer value is
Removed from RTO.

PCBバイトアドレス14に置かれているランニ
ングタイムアカウンテイングRUAのダブルワー
ドは、プロセスがラン状態にあつたプロセツサタ
イムの総量を示すタイムカウンタである。この時
間は、実際にプロセツサがもつぱらそのプロセス
に対して費やした時間である。RUAワードは次
のようにして更新される:プロセスがラン状態に
ある毎に、プロセスタイマPTの値が読取られ
る。RTOとPTの記憶情報の差がRUAに加えられ
る。(その後、PT値はRTOに記憶される)。ここ
で注意しなければならないのは、プロセスが保留
になつている時間は計算されないということであ
る。RTOおよびRUAは、アカウンテイングモー
ドビツトが0にセツトされている場合にも更新さ
れる。しかしながら、CET、RTA、およびWTA
ワード(これについては後述する)は、プロセス
メインワードPMW0のアカウンテイングモード
ビツトが1にセツトされている場合にのみ、プロ
セスコントロールブロツクに与えられる。これら
のワードは、上記の場合にのみ更新される。
The running time accounting RUA double word located at PCB byte address 14 is a time counter that indicates the amount of processor time that the process has been in the running state. This time is actually the time spent by the processor exclusively on the process. The RUA word is updated as follows: Each time the process is in the run state, the value of process timer PT is read. The difference in memory information between RTO and PT is added to RUA. (The PT value is then stored in the RTO). Note that the time the process is on hold is not calculated. RTO and RUA are also updated if the accounting mode bit is set to zero. However, CET, RTA, and WTA
Words (described below) are provided to the process control block only if the accounting mode bit of process main word PMW0 is set to one. These words are updated only in the above cases.

PCBバイトアドレスにある待機時間アカウンテ
イングWTAワードは、プロセスが待機状態にあ
つたリアルタイムの総量を示すリアルタイムカウ
ンタである。このWTAワードは次のようにして
更新される:プロセスが待機状態にある毎に、デ
イクロツクの時間値TODが読取られ、(TODの値
−CETワードの値)がWTAワードに加えられ
る。
The wait time accounting WTA word at the PCB byte address is a real-time counter that indicates the amount of real-time the process has been waiting. This WTA word is updated as follows: each time the process is in a wait state, the time value TOD of the day clock is read and (value of TOD - value of CET word) is added to the WTA word.

PCBバイトアドレスにあるレデイタイムアカウ
ンテイングRTAワードは、プロセスがレデイ状
態にあつたリアルタイムの総量を示すリアルタイ
ムカウンタのダブルワードである。このRTAは
次のようにして更新される:プロセスがレデイ状
態にある度にデイクロツク値TODの時間が読取
られ、(TCDの記憶情報−CETの記憶情報)が
RTAに加えられる。
The ready-time accounting RTA word at the PCB byte address is a doubleword of a real-time counter that indicates the amount of real-time the process has been ready. This RTA is updated as follows: each time the process is in the ready state, the time in the day clock value TOD is read, and (memory information in TCD - information stored in CET) is
Added to RTA.

その時のエントリータイムCETのダブルワー
ドは、プロセスが次のいずれかの状態をエントリ
ーした時刻を含んでいる:レデイ、待機、ランニ
ング、および保留。
The current entry time CET double word contains the time the process entered one of the following states: ready, waiting, running, and pending.

システムベースの構造 第6図を参照すると、システムベース600の
フオーマツトが示されている。システムベースは
絶対主メモリーの中にあり、フアームウエアによ
つて作られ、読取り可能であるが書込み不可能な
境界アドレスレジスタ(BAR)を介してアクセ
スすることができる。このBARは、ハードウエ
アに予約された主メモリーの中のエリヤの下にあ
り、ハードウエアのために予約されたメモリー内
のエリヤとシステムベース600を分離する。第
6図を参照すると、システムベース600は、そ
の時のランニングプロセスのためのプロセス名
(J・P)を含むいくつかのシステムの数を含ん
でいる。プロセスの論理名J・Pから、対応プロ
セスコントロールブロツクPCBの絶対アドレスが
得られる。J表もしくはJテーブルの規模および
アドレスは、Jテーブルワード(J表ワードもし
くはJテーブル語JTW)の記憶情報によつて定
まる。このワードは、BARレジスタによつて定
まるアドレスに置かれている。JTWのフオーマ
ツトは図11aに示されている。第12図のJテ
ーブル1204の規模(JSTZ)1101は、最
大255エントリーであるJテーブル1204の中
のエントリー数を定める。JTSZ1101は、8
ビツトの正の整数で、JがJTSZ以上の場合に
は、Jテーブル除外のアウトを生じる。Jテーブ
ルに1204の絶対アドレスは、Jテーブルポイ
ンタ1102に16をかけることによつて得られ
る。Jテーブル1204はJテーブルエントリー
を含むが、そのフオーマツトは図11bに詳細に
示されている。各Jテーブルエントリーは、Pテ
ーブルポインタ1104に16をかけることによつ
て得られるP表もしくはPテーブル1205の絶
対アドレスを定める。Pテーブルの規模
(PTSZ)1103は、Pテーブルのエントリー
数を定める。PTSZは、8ビツトの正の整数であ
るが、これは通常0〜255の範囲で変化し、Pテ
ーブルのエントリー数を表示する。PがPTSZ以
上の場合には、Pテーブルの除外のアウトを生じ
る。Pテーブル1205の各エントリーは、PCB
ポインタ1107に16をかけることによつて、
PCB1206の絶対アドレスを定める。存在イン
デイケータP1105は、2進0にセツトされて
PCB1206の不在を、また2進1にセツトされ
てPCBの存在を表わす。(存在インデイケータP
1105が0であることが判明すると、空のPテ
ーブルエントリー除外を生じる)。Pテーブルイ
ンデイケータのビツト1〜7(図11c)は0
(MBZ)1160でなければならない。そうでな
いと、不当なPテーブルエントリー除外を生じ
る。
Structure of the System Base Referring to FIG. 6, the format of the system base 600 is shown. The system base resides in absolute main memory and is accessible through readable but non-writable boundary address registers (BARs) created by the firmware. This BAR is below the area in main memory reserved for hardware and separates the system base 600 from the area in memory reserved for hardware. Referring to FIG. 6, the system base 600 includes several system numbers including process names (J.P.) for the currently running processes. From the logical name J.P of the process, the absolute address of the corresponding process control block PCB can be obtained. The size and address of the J-table or J-table are determined by the stored information of the J-table word (J-table word or J-table word JTW). This word is located at the address determined by the BAR register. The format of JTW is shown in Figure 11a. The scale (JSTZ) 1101 of J table 1204 in FIG. 12 defines the number of entries in J table 1204, which is a maximum of 255 entries. JTSZ1101 is 8
A positive integer of bits, if J is greater than or equal to JTSZ, results in an out of J table exclusion. The absolute address of 1204 in the J table is obtained by multiplying the J table pointer 1102 by 16. J-table 1204 contains J-table entries, the format of which is shown in detail in Figure 11b. Each J-table entry defines the absolute address of the P-table or P-table 1205 obtained by multiplying the P-table pointer 1104 by 16. The P table size (PTSZ) 1103 determines the number of entries in the P table. PTSZ is an 8-bit positive integer that typically ranges from 0 to 255 and indicates the number of entries in the P table. If P is greater than or equal to PTSZ, an exclusion out of the P table occurs. Each entry in the P table 1205 is a PCB
By multiplying pointer 1107 by 16,
Determine the absolute address of PCB 1206. Presence indicator P1105 is set to binary 0.
It is also set to a binary 1 to indicate the absence of a PCB 1206 and the presence of a PCB. (Presence indicator P
1105 is found to be 0, resulting in an empty P table entry exclusion). Bits 1-7 of the P table indicator (Figure 11c) are 0.
(MBZ) Must be 1160. Otherwise, unwarranted P table entry exclusion will result.

システムベース600の(アドレスBAR+
4)においては、Gテーブルワード(GTW)の
フオーマツトタイプがあるが、これは図11dに
詳細に示されている。第12図のGセグメントテ
ーブル1212のサイズおよびアドレスは、Gテ
ーブルワード(GTW)の記憶情報によつて定ま
る。テーブル1212のサイズ(GTSZ)110
8は、通常最大255エントリーのGテーブルのエ
ントリー数を定める。GTSZは8ビツトの正の整
数で、Gの数がGTSZ以上の場合には、Gテーブ
ル除外のアウト数を生じる。Gテーブル1212
の絶対アドレスは、Gテーブルポインタ1109
に16をかけることによつて得られる。Gセグメン
トテーブルエントリーのフオーマツトは、ダブル
ワードのサイズ(8バイト)を有し、Gセグメン
ト記述子と呼ばれる。Gセグメント記述子のフオ
ーマツトは、図11eおよび11fに詳細に示さ
れている。Gセグメント記述子はすべて直結であ
り、そのために間接ビツトI、1111は0でな
ければならない。そうでない場合には不当なセグ
メント記述子除外を生じる。存在インデイケータ
P1110は1ビツトフイールドであり、2進1
にセツトされて、その記述子が対応するセグメン
ト番号について、主記憶装置の中にセグメントが
設定されているということを示す。これに対し
て、0にクリアされると、どのセグメントも定ま
らず、セグメント記述子への照会は、存在しない
セグメントの除外を生じる。アベイラブルビツト
A1112は1ビツトフイールドであつて、セグ
メントが利用可能かどうかを表わす。このビツト
は、そのセグメントが定まつている(すなわちP
=2進1)の場合にのみチエツクされ、その他の
場合には無視される。使用済みフラグフイールド
U1113は、そのセグメントがアクセスされて
いるかどうかを表示する。Uビツトが2進0にセ
ツトされている場合には、セグメントはアクセス
されておらず、Uフイールドが2進1にセツトさ
れている場合には、そのセグメントはアクセスさ
れている。書込まれたフラグフイールドW111
4は、そのセグメントにおいてデータが変更され
たか否かを表示する。Wが2進0にセツトされて
いれば、そのセグメントデータは変更されておら
ず、Wが2進1にセツトされていれば、そのセグ
メントは変更されている。Gセグメント記述子の
ゲーテイングインデイケータGS1115は2進
01にセツトされていなければならない。そうでな
いと不当なセグメント記述子除外を生じる。その
理由は、Gセグメントは、G0セグメントを除
き、常にセマフオアを含み(但し、逆は真なら
ず。すなわち、セマフオアがすべてGセグメント
にある必要はない)、セマフオアに対するインス
トラクツシヨンはGSコードが2進01であること
を要するからである。セグメント1214のベー
スの絶対アドレスは、24ビツトのベースフイール
ド1116によつて第11図のGセグメント記述
子中に定められる。このフイールドの記憶情報に
16をかけると絶対アドレスが得られる。図11f
のGセグメント記述子の2番目のワードは、Gテ
ーブルの中のビツト位置32〜63を占有する。
RSUフイールド1117のビツト32〜39
は、ソフトウエア用として反転されており、本発
明の場合のようにGセグメントを記述子として用
いる場合には一般に無視される。MBZフイール
ド1118は0でなければならない。そうでない
と、不当なセグメント除外を生じる。MBZフイ
ールド1118はビツト40〜51を占有してい
るので、小さなセグメントSIZE用のフイールド
であるSIZEフイールドをセツトさせる。従つ
て、Gセグメントは、すべて小さなセグメントタ
イプのものでなければならない。そのために、G
セグメント1214のためのセグメントサイズは
216バイト(スモールセグメント)以下でなけれ
ばならない。
System base 600 (address BAR+
In 4) there is a G table word (GTW) format type, which is shown in detail in Figure 11d. The size and address of G segment table 1212 in FIG. 12 are determined by the stored information in the G table word (GTW). Size of table 1212 (GTSZ) 110
8 defines the number of entries in the G table, which typically has a maximum of 255 entries. GTSZ is an 8-bit positive integer, and if the number of G is greater than or equal to GTSZ, it produces the number of outs excluded from the G table. G table 1212
The absolute address of G table pointer 1109
is obtained by multiplying by 16. The format of a G segment table entry has the size of a double word (8 bytes) and is called a G segment descriptor. The format of the G segment descriptor is shown in detail in Figures 11e and 11f. All G segment descriptors are directly connected, so the indirect bit I, 1111, must be zero. Otherwise, an illegal segment descriptor exclusion will result. Presence indicator P1110 is a 1-bit field and is a binary 1
is set to indicate that a segment has been established in main memory for the segment number to which the descriptor corresponds. On the other hand, if cleared to 0, no segments are defined and queries to the segment descriptor will result in the exclusion of non-existent segments. Available bit A 1112 is a 1-bit field that indicates whether the segment is available. This bit indicates that the segment is defined (i.e. P
= binary 1), otherwise it is ignored. Used flag field U1113 indicates whether the segment is being accessed. If the U bit is set to a binary 0, the segment is not being accessed; if the U field is set to a binary 1, the segment is being accessed. Written flag field W111
4 indicates whether data has changed in that segment. If W is set to a binary 0, the segment data has not changed; if W is set to a binary 1, the segment data has been changed. The gating indicator GS1115 of the G segment descriptor is binary.
Must be set to 01. Otherwise, unwarranted segment descriptor exclusion will result. The reason is that the G segment, except for the G0 segment, always contains a semaphore (however, the reverse is not true; semaphores do not all have to be in the G segment), and the instructions for the semaphore have a GS code of 2. This is because it needs to be decimal 01. The absolute address of the base of segment 1214 is defined in the G segment descriptor of FIG. 11 by the 24-bit base field 1116. This field's memory information
Multiply by 16 to get the absolute address. Figure 11f
The second word of the G segment descriptor occupies bit positions 32-63 in the G table.
Bits 32-39 of RSU field 1117
is inverted for software purposes and is generally ignored when using the G segment as a descriptor, as is the case with the present invention. MBZ field 1118 must be zero. Otherwise, it will result in unwarranted segment exclusion. Since the MBZ field 1118 occupies bits 40-51, the SIZE field, which is the field for the small segment SIZE, is set. Therefore, all G segments must be of small segment type. For that purpose, G
The segment size for segment 1214 is
2 Must be 16 bytes (small segment) or less.

第6図のシステムベース600を再度参照する
と、BARプラス8とBARプラス44の間に9つの
システム除外セルワードが置かれている。このシ
ステム除外セルワードEXCのフオーマツトは図
11gに示されている。所定プロセスにメツセー
ジを伝送するにはセマフオアが用いられるので、
システム除外を生じた時には、これらのセマフオ
アへのポインタはメモリーの9つの位置に現われ
るが、これらの場所はシステム除外セルと呼ばれ
ている(1クラスのシステム除外に付き1つ)。
MBZフイールド1120は2進0にセツトしな
ければならない。そうでないと、システムチエツ
クを生じる。各除外セル(EXC)は、各々シス
テム名G、D1121および1122を含む。
Referring again to system base 600 in FIG. 6, nine system exclusion cell words are placed between BAR plus 8 and BAR plus 44. The format of this system exclusion cell word EXC is shown in Figure 11g. A semaphore is used to transmit a message to a given process, so
When a system exclusion occurs, pointers to these semaphores appear in nine locations in memory, called system exclusion cells (one per class of system exclusion).
MBZ field 1120 must be set to binary 0. Otherwise, a system check will occur. Each excluded cell (EXC) includes system names G, D1121, and 1122, respectively.

システムベース600のBARプラス44にあ
るチヤンネル除外セルは前述したシステム除外セ
ルに類似したフオーマツトを有し、セマフオアの
システム名GDを含むが、これはチヤンネル除外
を生じた時、所期プロセスにメツセージを伝送す
るために使用される。
The Channel Exclude cell in BAR Plus 44 of the System Base 600 has a similar format to the System Exclude Cell described above and includes the semaphore's system name GD, which sends a message to the intended process when a channel exclude occurs. used for transmission.

内部プロセツサキユーワードIPQWは、BARプ
ラス48を始めの位置として置かれており、その
フオーマツトの詳細は図11hに示されている。
IPQWワードは、第9図に参照番号905および
803cによつて示されているレデイ状態のプロ
セスのキユー(Q/PR/RDY)のヘツドを指定
する。セグメントサイズ1119は12ビツトの正
の整数であり、セグメント中のバイト数は16×
(サイズ+1)に等しい。ビツトフイールドがゼ
ロであると、セグメントサイズは16となる。レデ
イプロセスのキユー(Q/PR/RDY)は、レデ
イ状態にあるすべてのプロセスをリンクする。
Q/PR/RDYフイールド1124のHEADは16
ビツトの正の整数を含み、これはG0セグメント
と呼ばれるGセグメント数0のベースから最初の
Q/PR/RDYのバイトまでの移動量を表わす。
このQ/PR/RDYビツトフイールドが0の場合
には、レデイキユーは空であると見なされる。
MBZフイールドは0でなければならない。そう
でないとシステムチエツクを生じる。
The internal processor keyword IPQW is located starting at BAR plus 48 and its format is detailed in Figure 11h.
The IPQW word specifies the head of the ready process queue (Q/PR/RDY), shown in FIG. 9 by reference numerals 905 and 803c. The segment size 1119 is a 12-bit positive integer, and the number of bytes in the segment is 16 x
Equal to (size + 1). If the bit field is zero, the segment size will be 16. The ready process queue (Q/PR/RDY) links all processes in the ready state.
HEAD of Q/PR/RDY field 1124 is 16
Contains a positive integer number of bits, which represents the amount of movement from the base of G segment number 0, called the G0 segment, to the first byte of Q/PR/RDY.
If the Q/PR/RDY bit field is 0, the ready queue is considered empty.
The MBZ field must be 0. Otherwise, a system check will occur.

システムベース600のBARプラス52に
は、最初およびその時のレトリー(retory)カウ
ントのための記憶装置が示されているが、そのフ
オーマツトは図11iに詳細に示されている。最
初のレトリーカウントフイールド1126および
カレントリーカウントフイールド1127は、マ
シンエラーがマシンフエイル除外状態を作り出す
前に自動インストラクシヨンレトリーが実行され
る回数を制御するために用いられる。
BAR Plus 52 of system base 600 shows storage for initial and current retory counts, the format of which is shown in detail in FIG. 11i. The first retrieval count field 1126 and the current retrieval count field 1127 are used to control the number of times automatic instruction retrieval is performed before a machine error creates a machine fail exclusion condition.

図11jに示されているランニングプロセスワ
ード(RPW)は、システムベース600のBAR
プラス56に記憶され、モノプロセツサ構成の場
合にその優先順位とともにランニングプロセスの
名前を記憶するために用いられる。ランニングプ
ロセスの優先順位レベルは、PRIフイールド11
29に記憶される。ABフイールド1130には
非同期トラツプビツトが記憶される。これに対し
て、非同期トラツプリングはARNフイールド1
132に記憶される。モノプロセツサ構成におけ
るランニングプロセスの論理名J.Pは、J.Pフイー
ルド1133に記憶される。
The Running Process Word (RPW) shown in FIG.
plus 56 and is used to store the name of the running process along with its priority in the case of a monoprocessor configuration. The priority level of the running process is PRI field 11.
29. AB field 1130 stores an asynchronous trap bit. In contrast, asynchronous trapping uses ARN field 1
132. The logical name JP of the running process in a monoprocessor configuration is stored in the JP field 1133.

図11kに示されている絶対化テーブルポイン
タは、システムベース600のBARプラス60
にあり、最初のシステムロードにおいて、BAR
の記憶情報をISLプログラムのすべての絶対アド
レスに加えることにより、初期システムロード
(ISL)で絶対アドレスを初期設定するために用
いられる。絶対化テーブルポインタ1135は、
絶対化テーブル(図示されていない)の位置を定
める。絶対化テーブルサイズはATSZフイールド
1134によつて示されている。
The absolutization table pointer shown in FIG.
and on the first system load, the BAR
is used to initialize absolute addresses at the initial system load (ISL) by adding the storage information of to all absolute addresses in the ISL program. The absolutization table pointer 1135 is
Locate the absolutization table (not shown). The absolutization table size is indicated by ATSZ field 1134.

図11lに示されているCPU一連番号ワード
はBARプラス64に置かれた4バイト語で、
CPU一連番号フイールド1136にCPUの一連
番号を記憶する。
The CPU sequence number word shown in Figure 11l is a 4-byte word located in BAR plus 64,
The CPU serial number is stored in the CPU serial number field 1136.

図11mに示されている主記憶装置上限ワード
は、BARプラス68の所にあり、最初の使用不
可能ワードの絶対アドレスを与えることにより主
記憶装置の上限1139を表わす。
The main memory upper limit word shown in FIG. 11m is located at BAR plus 68 and represents the main memory upper limit 1139 by giving the absolute address of the first unavailable word.

BARプラス72においては、初期システムロ
ードISL装置のチヤンネル番号(CN)1140
およびハードウエア装置チヤンネル番号(CN)
1141を得るための図11nに示すようなワー
ドが置かれている。
For BAR Plus 72, initial system load ISL device channel number (CN) 1140
and hardware device channel number (CN)
Words as shown in FIG. 11n to obtain 1141 are placed.

コンピユータシステムにおいて用いられる装置
のタイプおよびサブタイプは、各々フイールド1
143および1144のハードウエア装置のタイ
プワード(図11o)によつて示されている。ま
た、RSUフイールド1142は、ソフトウエア
用としてリザーブされている。このワードはシス
テムベースのBARプラス76にある。
The type and subtype of equipment used in the computer system are each field 1.
These are indicated by the hardware device type words 143 and 1144 (FIG. 11o). Further, the RSU field 1142 is reserved for software use. This word is located in System Base BAR Plus 76.

コンピユータのリスタートボタンを押すと、セ
マフオアに対し模擬Vオペレーシヨンが実行さ
れ、レデイ状態がエントリーされる。このセマフ
オアへのポインタは、システムベース600の
BARプラス84にあつて、リスタートセルワー
ドと呼ばれるが、これは図11gに示ようなフオ
ーマツトを有する。このフオーマツトは前述のシ
ステム除外セルに類似しており、各々Gフイール
ド1149およびDフイールド1150にセマフ
オアのシステム名G、Dを含んでいる。MBZフ
イールド1148は0でなければならない。
When the computer's restart button is pressed, a simulated V operation is performed on the semaphore and a ready state is entered. The pointer to this semaphore is
In the BAR Plus 84, it is called a restart cell word and has a format as shown in FIG. 11g. This format is similar to the system exclusion cell described above and includes the semaphore's system name G, D in G field 1149 and D field 1150, respectively. MBZ field 1148 must be zero.

1つのコンピユータシステムに対して1つ以上
のプロセツサがある場合には、マルチプロセス拡
大のために、システムベース600のBARプラ
ス88に1つのワードが与えられる。このワード
の詳細は図11rに示されている。
If there is more than one processor for a computer system, one word is provided in the BAR plus 88 of the system base 600 for multi-process expansion. Details of this word are shown in Figure 11r.

システムベースおよびプロセスコントロールブロ
ツクの使用例 第12図には、ユーザーセグメント、システム
セグメント、またはプロセスレジーのキユー
(Q/PR/RDY)セグメントをアドレスまたはア
クセスするためにシステムベースをプロセスコン
トロールブロツクとどのように組合わせて使用す
るかという1つの例が示されている。主メモリー
1200は、ハードウエアの使用のためにリザー
ブされた部分1203を有する。境界アドレスレ
ジスタBAR1202は、システムベース121
5をメモリー1203のハードウエアのためにリ
ザーブされた部分と分離する。BAR1202
は、BARの記憶情報をそのシステムベースで必
要なアイテムの4バイト単位での移動量に加える
ことによつて、システムベース1215の中のア
イテムをアドレスするために用いられる。このア
ドレスは、所望のシステムベースの中のアイテム
の最初のバイトを指定する。第12図において
は、BAR1202はJテーブルワード(JTW)
を指している。前述したように、このJテーブル
ワードは、Jテーブル1204を指定するポイン
タを有する。第5図に示されているJ番をインデ
ツクスすることによつて、1つのJテーブルエン
トリーが得られる。このJテーブルエントリーに
は、Pテーブル1205の絶対アドレスを指定す
るPテーブルポインタがある。また、Pテーブル
1205の中のP番をインデツクスすることによ
つて(第5図参照)、PCB1206の絶対アドレ
スを得ることができる。
Example of Using the System Base and Process Control Blocks Figure 12 shows how the system base can be used with process control blocks to address or access the user segment, the system segment, or the queue (Q/PR/RDY) segment of the process register. An example of how to use it in combination is shown below. Main memory 1200 has a portion 1203 reserved for hardware use. The boundary address register BAR1202 is the system base 121
5 from the portion of memory 1203 reserved for hardware. BAR1202
is used to address an item in the system base 1215 by adding the storage information of the BAR to the amount of movement of the item in 4-byte units required by that system base. This address specifies the first byte of the item in the desired system base. In Figure 12, BAR1202 is a J table word (JTW)
is pointing to. As previously discussed, this J-table word has a pointer that specifies J-table 1204. By indexing the J number shown in FIG. 5, one J table entry is obtained. This J-table entry has a P-table pointer that specifies the absolute address of P-table 1205. Furthermore, by indexing the P number in the P table 1205 (see FIG. 5), the absolute address of the PCB 1206 can be obtained.

PCB1206の所で既に説明したように、アド
レスペースワードにはASW0およびASW1があ
る。ベースレジスタ1201のセグメントテーブ
ル番号フイールドSTNの高次ビツトは、これら
の2つのアドレススペースワードの1つ、なわち
本実施例においてはセグメントテーブルワードア
レーSTWA1208を指定するセグメントテー
ブルワードアレーSTWAのポインタを有する
ASW1をアクセスするために使用される。ベー
スレジスタ1201のセグメントテーブル番号
STNとともに、STWA1208においては8つ
のセグメントテーブルワードの1つがアクセスさ
れ、このワードが8つのセグメントテーブル12
10の1つを指定する。次に、ベースレジスタ1
201からのセグメントテーブルエントリー
STEは、セグメント記述子があるセグメント1
210に256のエントリーの中の1つをエントリ
ーさせるために用いられる。セグメント記述子
は、ユーザーセグメント1211をアクセスする
ために用いられる。
As previously discussed with PCB 1206, the address space words include ASW0 and ASW1. The high order bit of the segment table number field STN of base register 1201 contains a pointer to segment table word array STWA that specifies one of these two address space words, in this example segment table word array STWA 1208.
Used to access ASW1. Segment table number of base register 1201
Along with the STN, one of the eight segment table words is accessed in STWA 1208, and this word is
Specify one of 10. Next, base register 1
Segment table entry from 201
STE is segment 1 with segment descriptor
210 is used to enter one of the 256 entries. Segment descriptors are used to access user segments 1211.

セマフオアを記憶するために用いられるシステ
ムセグメント1214をアクセスするためには、
システムベース1215においてGテーブルワー
ドGTWが使用される。Gテーブルワードのアド
レスはシステムベースの中のGテーブルワードの
移動量をBAR1202に加えることによつて得
られる。(第6図参照)。GテーブルワードGTW
はGテーブル1212を指定するGテーブルポイ
ンタを含む。システムが利用することのできるG
番を用いかつGテーブルにおいてインデキシング
を行なうことによつて、システムセグメント12
14をアドレスするために使用するGセグメント
記述子をアクセスすることができる。
To access the system segment 1214 used to store semaphores,
The G table word GTW is used in the system base 1215. The address of the G table word is obtained by adding the amount of movement of the G table word in the system base to BAR 1202. (See Figure 6). G table word GTW
contains a G table pointer that specifies G table 1212. G that can be used by the system
system segment 12 by using the number and indexing in the G table.
14 can be accessed.

同様にして、システムベース1215は、Q/
PR/RDYセグメント1213を指定する内部プ
ロセツサキユーワードIPQWを探すことによつて
プロセスレデイキユー(Q/PR/RDY)121
3をアクセスするために使用することができる。
Similarly, the system base 1215
Process Ready Queue (Q/PR/RDY) 121 by looking for the internal processor keyword IPQW that specifies the PR/RDY segment 1213.
3 can be used to access.

コントロールユニツト コントロールユニツトの詳細を第13aから第
13c図に示す。コントロールユニツトは、セン
トラルプロセシングユニツト(CPU)とは分離
して図示してあるが、実際にはCPUの部分を構
成し、コントロールストアユニツトCUS130
1、コントロールストアインターフエイスアダプ
タCIA1302および付属サブユニツト、コント
ロールストアローダCSL1303およびコントロ
ールおよびロードユニツトCLU1304で構成
される。
Control Unit Details of the control unit are shown in Figures 13a to 13c. Although the control unit is shown separately from the central processing unit (CPU), it actually constitutes a portion of the CPU and is connected to the control store unit CUS130.
1. Consists of a control store interface adapter CIA 1302 and attached subunits, a control store loader CSL 1303 and a control and load unit CLU 1304.

コントロールストアユニツトCSU1301
は、コントロールおよびロードユニツトCLU1
304およびコントロールストアインターフエイ
スアダプタCIA1302を経て、コントロールス
トアローダCSL1303からのマイクロインスト
ラクシヨンを受け取る。正規運転状況のもとで
は、マイクロプログラムは、システムイニシアリ
ゼーシヨン期間中は外部ソースから負荷され、マ
シンの恒久的なコントロールフアンクシヨンとあ
る。たゞし、コントロールストアユニツトCSU
1301は、多数のセントラルプロセシングユニ
ツトCPU1306運転モードに対して、再負荷
(リロード)およびイニシヤライズされる機能を
有する。CPUは、CSU1301の制御のもと
で、次に示すモードの運転が可能である、即ち、
(a)ネイチブモード;(b)エミユレーシヨンモード;
(c)ネイチブおよびエミユレーシヨン同時モード;
(d)ダイアグノスチツクモードである。この機能
は、CSU内に所在するマイクロ−インストラク
シヨンが、例えば、エミユレーシヨンユニツト1
316、アリスメチツクロジツクユニツトALU
1317、インストラクシヨンフエツチユニツト
IFU1318、アドレスコントロールユニツト
ACU1319およびデータマネージメントユニ
ツトDMU1321等のような全ての他のCPUフ
アンクシヨナルユニツトの動作を制御するために
使用されるマイクロ−オペレーシヨンのソースで
あるため、CPUに付与されるものである。セン
トラルプロセシングユニツトCPU1306に
は、既に述べたゼネラルレジスタ1307、ベー
スレジスタ1308、サイエンチフイツクレジス
タ1309、Tレジスタ1310、ステータスレ
ジスタ1311、インストラクシヨンカウンタ
IC1312およびハードウエアコントロールマ
スクレジスタ1313等も含まれる。
Control store unit CSU1301
is control and load unit CLU1
304 and the control store interface adapter CIA 1302, it receives microinstructions from the control store loader CSL 1303. Under normal operating conditions, the microprogram is loaded from an external source during system initialization and serves as the machine's permanent control function. However, the control store unit CSU
1301 has the ability to be reloaded and initialized for multiple central processing unit CPU 1306 operating modes. Under the control of the CSU 1301, the CPU can operate in the following modes:
(a) Native mode; (b) Emulation mode;
(c) simultaneous native and emulation modes;
(d) Diagnostic mode. This feature allows micro-instructions located within the CSU to, e.g.
316, Arithmetic logic unit ALU
1317, instruction fetish unit
IFU1318, address control unit
It is attached to the CPU because it is the source of micro-operations used to control the operation of the ACU 1319 and all other CPU functional units such as the data management unit DMU 1321. The central processing unit CPU 1306 includes the aforementioned general register 1307, base register 1308, scientific register 1309, T register 1310, status register 1311, and instruction counter.
Also included is an IC 1312, a hardware control mask register 1313, and the like.

一般に、コントロールストアユニツトCSU1
301は、リード/ライトランダムアクセススト
ア(RAM)と混合されたリードオンリーメモリ
(PROM)をプログラムすることのできる9Kバイ
ポラル集積回路である。このユニツトは、一般的
な150ナノセカンドリードサイクルおよび450ナノ
セカンドライトサイクルをもつ。
Generally, control store unit CSU1
301 is a 9K bipolar integrated circuit capable of programming read-only memory (PROM) mixed with read/write random access store (RAM). This unit has a typical 150 nanosecond read cycle and 450 nanosecond write cycle.

コントロールストアの各ロケーシヨンには、1
個の84−ビツトマイクロインストラクシヨンワー
ドが記憶され(後で詳細に説明する)、各マイク
ロ−インストラクシヨンワードは1個のCPUサ
イクルを制御する。コントロールストアユニツト
CSU1301のコントロールストアの各々のロ
ケーシヨンが読み取られると、その内容はマイク
ロ−オペレーシヨンデコーダによつてデコードさ
れ、マイクロオペレーシヨンコントロールシグナ
ルが提供され、各シグナルによつて、CPU内で
特定のオペレーシヨンが実施される(後で詳細に
説明される)。
Each control store location has one
84-bit micro-instruction words are stored (described in detail below), each micro-instruction word controlling one CPU cycle. control store unit
As each CSU 1301 control store location is read, its contents are decoded by a micro-operation decoder to provide micro-operation control signals, each signal instructing a particular operation within the CPU. implemented (described in detail later).

各マイクロ−インストラクシヨンワード内のロ
ケーシヨンをグルーピングすることにより(後で
詳細に説明される)、特定のCPUオペレーシヨン
またはインストラクシヨンを実施できるコントロ
ールストアシーケンスが得られる。CPUによつ
て各インストラクシヨンがイニシエートされる
と、オペコード内の或るビツトが、シーケンスを
開始するコントロールストアを決定するために使
用される。インストラクシヨンデコードフアンク
シヨンによつてセツトまたはリセツトされる或る
フロツプ(図示されず)のテストによつて、コン
トロールストアメモリを、必要に応じて、別の特
定シーケンスにブランチさせることができる。
Grouping locations within each micro-instruction word (described in more detail below) provides a control store sequence that can perform a particular CPU operation or instruction. When each instruction is initiated by the CPU, certain bits in the opcode are used to determine which control store starts the sequence. Testing of certain flops (not shown) that are set or reset by the instruction decode function allows the control store memory to be branched to another specific sequence as needed.

コントロールストアインターフエースアダプタ
CIA1302は、第13b図のコントロールスト
アメモリ1333のオペレーシヨンを指示するた
めに、コントロールストアユニツト1301、デ
ータマネージメントユニツトDMU1321、ア
ドレスコントロールユニツトACU1319およ
びアリスメチツクロジツクユニツトALU131
7へ情報を伝達する。CIA1302には、コント
ロールストアアドレスモデイフイケーシヨン、テ
スチング、エラーチエツキングおよびハードウエ
アアドレスゼネレーシヨン用のロジツクが含まれ
る。ハードウエアアドレスゼネレーシヨンは、一
般に、エラーシーケンスの開始アドレスのデイベ
ロツピングまたは、イニシアリゼーシヨンシーケ
ンス用に使用される。
control store interface adapter
The CIA 1302 instructs the operation of the control store memory 1333 in FIG.
Transmit information to 7. CIA 1302 includes logic for control store address modification, testing, error checking, and hardware address generation. Hardware address generation is generally used for developing the starting address of an error sequence or for the initialization sequence.

データマネージメントユニツトDMU1321
は、第1図に示されるCPU1306とメインメ
モリおよびバツフアストアメモリ、またはそのい
ずれかの間のインターフエースを構成する。他の
ユニツトが必要とする情報を含むユニツトを識別
し、その情報を適切な時点にCPUレジスタ内に
記憶させる機能はデータマネージメントユニツト
が担当する。データマネージメントユニツト
DMUは、パーシヤルライトオペレーシヨン期間
中、マスキング機能をも担当する。
Data management unit DMU1321
constitutes an interface between the CPU 1306 shown in FIG. 1 and main memory and/or buffer store memory. The data management unit is responsible for identifying units that contain information needed by other units and storing that information in CPU registers at the appropriate time. data management unit
The DMU is also responsible for the masking function during partial write operations.

インストラクシヨンフエツチユニツトIFU13
18は、DMU1321、ACU1319、ALU1
317およびCSU1301をインターフエース
し、CPUに供給されたインストラクシヨンを保
持する機能を分担する。インストラクシヨンフエ
ツチユニツトは、現在のインストラクシヨンを完
了する以前に、そのレジスタで利用できる次のイ
ンストラクシヨンを提供する。この機能の実施を
可能にするために、インストラクシヨンフエツチ
ユニツトIFU1318には、一般に1個以上のイ
ンストラクシヨンを含む12バイトインストラクシ
ヨンレジスタ(図示せず)を備える。更に、IFU
は、CSUの制御のもとにおいて、インストラク
シヨンが実際に必要とされる以前にメインメモリ
からの情報(インストラクシヨン)を必要とし、
これによつて、その12バイトインストラクシヨン
レジスタを常にアツプデートもしくは更新するこ
とが可能である。この様にして、インストラクシ
ヨンは、一般に使用されないメモリサイクルによ
つてプレフエツチされる。インストラクシヨンフ
エツチユニツトは、各々のインストラクシヨンを
デコードする機能をも有し、他のユニツトに、イ
ンストラクシヨンの長さおよびフオーマツトを通
知する。
Instruction fetish unit IFU13
18 is DMU1321, ACU1319, ALU1
317 and the CSU 1301, and shares the function of holding instructions supplied to the CPU. The instruction fetch unit provides the next instruction available in its register before completing the current instruction. To enable implementation of this function, instruction fetch unit IFU 1318 typically includes a 12-byte instruction register (not shown) containing one or more instructions. Furthermore, IFU
requires information (instructions) from main memory before the instructions are actually needed, under the control of the CSU;
This allows the 12-byte instruction register to be constantly updated. In this way, instructions are prefetched by memory cycles that are generally not used. The instruction fetch unit also has the function of decoding each instruction and notifying other units of the length and format of the instruction.

アドレスコントロールユニツトACU1319
は、IFU、ALU、DMUおよびCBUに、CIAを通
じて情報を伝達する。ACU1319は、CPUに
おける全てのアドレスデペロツプメントを担当す
る。ユニツト内、ユニツトから、またはユニツト
へ向つてのトランスフアもしくは転送を含めて、
ACUのすべてのオペレーシヨンは、ユニツトの
ロジツクおよびCSUマイクロ−オペレーシヨン
によつて指示される。ACUの正規サイクリング
は、インストラクシヨンのタイプよりもインスト
ラクシヨンのアドレスのタイプによつて決定され
る。アドレスタイプに応じて、ACUは、インス
トラクシヨンの各アドレスに対して異つたオペレ
ーシヨンを実施する。ACUは、セグメントナン
バーと共に、最も最近使用された8個のメモリセ
グメントのベースアドレスを記憶することを一般
目的とするアソシエーチブメモリ1319aをも
含む。メモリリクエスストもしくは要求が行われ
る度毎に、セグメントナンバはアソチエーチブも
しくは連想メモリの内容に対してチエツクされ、
当該セグメントのベースアドレスが既にデペロツ
プされ、記憶されているかどうかを決定する。ベ
ースアドレスがアソシエーチブメモリ1319a
に含まれている場合には、このアドレスが絶対ア
ドレスデペロツプメントに使用され、可成りの時
間が節約できる。ベースアドレスがアソシエーチ
ブメモリ1319aに含まれていない場合には、
メインメモリテーブルにアクセスすることによつ
て、アドレスがデペロツプされる。しかし、セグ
メントのベースアドレスがデペロツプされた後で
は、このベースアドレスは、セグメントナンバー
と共に、恒久レフアレンスとしてアソシエーチブ
メモリ内に記憶される。
Address control unit ACU1319
communicates information through the CIA to the IFU, ALU, DMU and CBU. ACU 1319 is responsible for all address development in the CPU. including transfers or transfers within, from or to the Unit;
All ACU operations are directed by unit logic and CSU micro-operations. Regular cycling of the ACU is determined by the type of instruction address rather than the type of instruction. Depending on the address type, the ACU performs different operations on each address of the instruction. The ACU also includes an associative memory 1319a whose general purpose is to store the base addresses of the eight most recently used memory segments along with segment numbers. Each time a memory request or demand is made, the segment number is checked against the contents of the associative or associative memory;
Determine whether the base address of the segment has already been developed and stored. Base address is associative memory 1319a
, this address is used for absolute address development, saving considerable time. If the base address is not included in the associative memory 1319a,
Addresses are developed by accessing the main memory table. However, after a segment's base address has been depropped, this base address is stored as a permanent reference in associative memory along with the segment number.

ACU、IFU、DMUおよびCSUとのインターフ
エースは、アリスメチツクおよびロジツクユニツ
トALU1317によつて構成される。このユニ
ツトの第1の機能は、CPUに要求される算数演
算および乗算を実施することにある。アリスメチ
ツクロジツクユニツトのオペレーシヨンは、コン
トロールストアユニツトCSU1301からのマ
イクロ−オペレーシヨンコントロールシグナルに
完全に依存する。
The interface with the ACU, IFU, DMU and CSU is configured by an arithmetic and logic unit ALU1317. The primary function of this unit is to perform the arithmetic operations and multiplications required of the CPU. The operation of the arithmetic logic unit is completely dependent on micro-operation control signals from the control store unit CSU1301.

スクラツチパドメモリユニツトLSU1315
(ローカルストアユニツトと称することもある)
はALU1317およびCSU1301と共に使用
される。LSU1315は、一般に、256ロケーシ
ヨン(ロケーシヨン当り32ビツト)ソリツドステ
ートメモリおよびこのメモリ用のセレクシヨンお
よびリード/ライトロジツクで構成される。スク
ラツチパドメモリ1315は、CPUコントロー
ルインフオメーシヨンおよび保持可能なインフオ
メーシヨンを記憶するために使用される。更に、
スクラツチパドメモリ1315は、データマニピ
ユレーシヨン期間中に部分的な結果およびオペラ
ンドの一時的な記憶を主要機能とするワーキング
ロケーシヨンを含む。また、ALU1317と共
に、コンピユータシステムの各種ステートを記憶
するための64フリツプ−フロツプで構成される補
助メモリ1317aも使用される。
Scratchpad memory unit LSU1315
(Sometimes called local store unit)
is used with ALU 1317 and CSU 1301. LSU 1315 generally consists of a 256 location (32 bits per location) solid state memory and selection and read/write logic for this memory. Scratchpad memory 1315 is used to store CPU control information and retainable information. Furthermore,
Scratchpad memory 1315 includes a working location whose primary function is temporary storage of partial results and operands during data manipulation. Also used in conjunction with the ALU 1317 is an auxiliary memory 1317a consisting of 64 flip-flops for storing various states of the computer system.

CPUは、クロツキングユニツト1320をも
備え、1において本質的に2クロツキングシステ
ムを有する、即ち、第1クロツキングシステムは
コントロールインターフエースアダプタCIA13
02に対するタイミングを発生し、第2クロツキ
ングシステムは、セントラルプロセシングユニツ
ト内におけるフアンクシヨナルユニツトのオペレ
ーシヨン用タイミングパルスを発生する。
The CPU also comprises a clocking unit 1320, having essentially two clocking systems in one, the first clocking system being connected to the control interface adapter CIA 13.
The second clocking system generates timing pulses for the operation of functional units within the central processing unit.

第14i図と関連して示される第13c図に、
コントロールストアワード1325のフオーマツ
トを示す。コントロールストアワードは、一般
に、広さが84ビツトであり、次に示す6個の主要
フイールドに分割される。
FIG. 13c shown in conjunction with FIG. 14i,
The format of the control store word 1325 is shown. Control store words are typically 84 bits wide and are divided into six major fields:

a シーケンスタイプフイールド1326(3ビ
ツト)。
a Sequence type field 1326 (3 bits).

b ブランチングおよび/またはマイクロ−オペ
レーシヨン1327(23ビツト)。
b Blanching and/or micro-operation 1327 (23 bits).

c コンスタントゼネレーシヨンおよびデジグネ
ーシヨン1328(14ビツト)。
c Constant generation and designation 1328 (14 bits).

d バスに対するデータ1329(8ビツト)。Data 1329 (8 bits) for the d bus.

e マイクロオペレーシヨン1330(32ビツ
ト)。
e Microoperation 1330 (32 bits).

f チエツキング1331(4ビツト)。f Checking 1331 (4 bits).

コントロールストアワード1325の3ビツト
Eフイールドは、シーケンスコントロールフイー
ルドとして使用される。一般に、7種類のシーケ
ンスタイプおよびインスタントコンピユータシス
テム用としてリザーブされたタイプ1種が使用さ
れる。第13b図のブロツク1335において、
Eフイールドがバイナリ0、1または2に等しい
場合には、マイクロオペレーシヨン1325のブ
ランチングフイールドA,B,C,DおよびL
は、次のアドレスを発生するために使用される。
KSレジスタ1337の最初の6ビツトは、次の
マイクロインストラクシヨンの次のアドレスを提
供するために、Bフイールド、Cテストリザル
ト、DテストリザルトおよびLフイールドと共に
使用され、この様にして提供された次のアドレス
は、アドレスレジスタKS1337にプレースさ
れる。Eフイールドがバイナリ4にセツトされる
と(ブロツク1335参照)、選出された次のア
ドレスが、インターラプトリターンレジスタKA
1339から取り出される。KAレジスタに記憶
されたアドレスは、ハードウエアインターラプト
が発生した場合に次のアドレスゼネレーシヨンロ
ジツクによつて発生されたアドレスである。Eフ
イールドがバイナリ5にセツトされると、マイク
ロプログラムサブルーチンからのサブリターンを
開始するためにブランチ1個が使用される。リタ
ーンレジスタKRの内容は、次のコントロールス
トアアドレスとして使用される。リターンレジス
タ1346は、インクレメンタ1378からKR
レジスタ1346に、KSレジスタ1337の現
在のコントロールストアアドレスに1を加えて負
荷するコントロールストアコマンドを発すること
により負荷される。ワンレペルネスチング機能
は、KTリターンブランチレジスタ1347を経
て提供される。KRレジスタ1346が負荷され
る度毎に、KRレジスタの旧い内容は、マイクロ
プログラムリターンがコールされる度にKTレジ
スタ1347にトランスフアされ、KTレジスタ
の内容はKRレジスタに移される。第3レベルネ
スチングサブルーチン機能はKUレジスタ134
0によつて提供され、第4レベルネスチングサブ
ルーチン機能はKVリターンブランチレジスタ1
349によつて提供される。コントロールストア
ワードのEフイールドがバイナリ6にセツトされ
ると、アドレスされた次のコントロールストアワ
ードは、インクリメンタ1338内において、
KSレジスタ1337の現在のアドレスに1を加
えたワードに等しい。Eフイールドがバイナリ7
にセツトされると、CSU1301は診断モード
となり、次のアドレスは現在のアドレスに1を加
えたアドレスとなる。
The 3-bit E field of control store word 1325 is used as a sequence control field. Generally, seven sequence types and one type reserved for instant computer systems are used. In block 1335 of FIG. 13b,
If E field is equal to binary 0, 1 or 2, branching fields A, B, C, D and L of micro-operation 1325
is used to generate the next address.
The first 6 bits of the KS register 1337 are used in conjunction with the B field, C test result, D test result and L field to provide the next address of the next microinstruction, thus provided. The next address is placed in address register KS1337. When the E field is set to binary 4 (see block 1335), the next address selected is placed in the interrupt return register KA.
Retrieved from 1339. The address stored in the KA register is the address generated by the next address generation logic in the event of a hardware interrupt. When the E field is set to binary 5, one branch is used to initiate a subreturn from the microprogram subroutine. The contents of return register KR are used as the next control store address. Return register 1346 receives KR from incrementer 1378.
Register 1346 is loaded by issuing a control store command that loads the current control store address in KS register 1337 plus one. One level nesting functionality is provided via KT return branch register 1347. Each time the KR register 1346 is loaded, the old contents of the KR register are transferred to the KT register 1347 and the contents of the KT register are moved to the KR register each time microprogram return is called. The third level nesting subroutine function is in the KU register 134.
The fourth level nesting subroutine functionality is provided by KV Return Branch Register 1
Provided by 349. When the E field of a control store word is set to binary 6, the next control store word addressed is:
Equals the current address of KS register 1337 plus one word. E field is binary 7
When set to , the CSU 1301 is in diagnostic mode and the next address is the current address plus one.

既に説明し、図に示した様に、次のコントロー
ルストアアドレスにブランチングするシーケシン
グコントロールにくわえて、第13b図のブロツ
ク1336に示すハードウエアによつて発生され
たシーケンスコントロールが存在する。(注記:
ブロツク1335および1336は、マイクロイ
ンストラクシヨンワードをとることのできる各種
のフオームを示すために実際のハードウエアレジ
スタとして図示される。)ハードウエアによつて
発生されたブランチはオーバーライデイングコン
デイシヨンであり(例えば、エラーイニシヤライ
ズコントロールストアスキヤン等々)、Eフイー
ルドを抑制し、固定されたアドレスをコントロー
ルストアアドレスレジスタKS1337内に強制
装入する。このブランチは、1クロツク期間に対
してインターラプトラインをハイ状態とし(図示
せず)、Eフイールドの制御のもとで発生された
アドレスをKAインターラプトリターンレジスタ
1339内に記憶することによつて構成される。
ハードウエアによつて発生されたアドレスは、コ
ントロールストアアドレスレジスタ内にプレース
される。或る種のハードウエア/フアームウエア
によつて発生されたインターラプトは、インター
ラプトブロツクフリツプ−フロツプ(図示され
ず)が、インターラプチング条件が満足されるま
で当該クラスにおいて更にインターラプトが生ず
ることを防止する場合に優先性を有する。フアー
ムウエアマイクロオペレーシヨンは、フアームウ
エアコントロールのもとにおけるシーケンスに対
するインターラプトブロツクフリツプフロツプの
リセツトを制御する機能を有する。ハードウエア
コントロールのもとでのこれ等のシーケンスは、
シーケンスの終端において、ブロツクフロツプの
リセツトを自動的に発生する。このカテゴリにお
いて存在する条件を優先順位に従つて次に示す;
(a)コントロールストアロード、(b)コントロールス
トアスキヤン、(c)ハードウエアエラー、(d)ソフト
ウエアエラー。残りのハードウエア条件は、イン
ターラプトブロツクフロツプはセツトしないが、
発生すると直ちに作動させる機能を有する。この
カテゴリに含まれる条件を、優先順位に従つて次
に示す: (a) イニシヤライズ (b) ソフトクリア (c) エンタメンテナンスパネル (d) エンタメンテナンスパネル (e) ハードウエアイグジツト イニシヤライズシグナルによつて、CSU13
01はアドレスバイナリ0にブランチし、ハード
ウエアリセツト可能エラーをクリアし、ハードウ
エアコントロールのもとでコントロールストアス
キヤンシーケンスによつて継続されるコントロー
ルストアロードオペレーシヨンを実施する。イニ
シヤライズシグナルは、システムイニシヤライズ
をも実施する。ソフトクリアシグナルは、CSU
1301をアドレスバイナリ0にブランチさせ、
ハードウエアリセツト可能エラーをクリアし、イ
ンターラプトブロツクフロツプをリセツトする。
エンタメンテナンスパネルシグナルは、CSU
を、メンテナンスパネル(図示せず)のCSUア
ドレススイツチのアドレスプリセツトにブランチ
させる。
As previously discussed and illustrated, in addition to the sequencing control that branches to the next control store address, there is a hardware generated sequencing control as shown in block 1336 of Figure 13b. (Note:
Blocks 1335 and 1336 are illustrated as actual hardware registers to illustrate the various forms that a microinstruction word can take. ) A branch generated by the hardware is an overriding condition (e.g. error initialize control store scan, etc.) that suppresses the E field and forces a fixed address into the control store address register KS1337. Enter. This branch is executed by forcing the interrupt line high for one clock period (not shown) and storing the address generated under control of the E field in the KA interrupt return register 1339. configured.
The hardware generated address is placed into the control store address register. Interrupts generated by certain hardware/firmware cause an interrupt block flip-flop (not shown) to generate further interrupts in that class until the interrupting condition is satisfied. Priority is given to cases where prevention is required. The firmware microoperation has the ability to control the reset of the interrupt block flip-flops for sequences under firmware control. These sequences under hardware control are
Automatically generates a block flop reset at the end of the sequence. The conditions that exist in this category are listed below in order of priority:
(a) Control store load, (b) Control store scan, (c) Hardware error, (d) Software error. The remaining hardware requirements are that the interrupt block flop is not set, but
It has a function that activates immediately when it occurs. The conditions included in this category, in order of priority, are as follows: (a) Initialize (b) Soft clear (c) Enter maintenance panel (d) Enter maintenance panel (e) Hardware exit Initialize signal So, CSU13
01 branches to address binary 0, clears the hardware resettable error, and performs a control store load operation followed by a control store scan sequence under hardware control. The initialization signal also performs system initialization. Soft clear signal is CSU
Branch 1301 to address binary 0,
Clears hardware resettable error and resets interrupt block flop.
Enter Maintenance Panel Signal CSU
branch to the address preset of the CSU address switch in the maintenance panel (not shown).

インタメンテナンスチヤンネルシグナルは、
CSUを、メンテナンスチヤンネル(図示せず)
を経て発生されたアドレスにブランチさせる。負
荷されたアドレスは、メンテナンスチヤンネルの
一部を構成するメンテナンスバスQMB1344
から供給され、ライトジスチフアイされる。ハー
ドウエアイグジツトシグナルは、CSUを、バイ
ナリアドレス2にブランチさせる。このシーケン
スは、メンテナンスフアシリテイとして使用され
る。このシーケンスの終端において、Eフイール
ドをバイナリ4にセツトし、Eフイールドブラン
チを発生することによつてリターンが開始され
る。
Intermaintenance channel signals are
CSU, maintenance channel (not shown)
Branch to the address generated via . The loaded address is transferred to the maintenance bus QMB1344, which forms part of the maintenance channel.
It is supplied from and light dystiffician. The hardware exit signal causes the CSU to branch to binary address 2. This sequence is used as a maintenance facility. At the end of this sequence, a return is initiated by setting the E field to binary 4 and generating the E field branch.

コントロールロードシグナルは、CSUを、ア
ドレスバイナリ0にブランチさせる。また、
CSUリードサイクルフロツプ(図示せず)およ
びシステムクロツク1320をターンオフし、
CSUをロードステートしておく。ロードステー
トにおいては、CSUは、コントロールストアロ
ーダCSL1303、IOC1305、メインメモリ
102、またはメンテナンスパネル1355から
負荷することができる。CSLから負荷する場合に
は、負荷の終端において、自動スキヤンが発生す
る。他のメデイアから負荷する場合には、スキヤ
ンは、マイクロオペレーシヨンシグナルを発生す
るか、または、メンテナンスパネルのスキヤンス
イツチをセツトすることによつて発せられる。コ
ントロールストアスキヤンシグナルは、CSU
を、アドレスバイナリ0にブランチさせる。コン
トロールストアスキヤンは、シーケンスの継続期
間中、ハードウエア制御のもとにおかれる。スキ
ヤン期間中、システムクロツク1320はオフ状
態となり、従つて、コマンドまたはテストは実施
されない。スキヤンシーケンスの終端において、
ハードウエアは、インターラプトリターンレジス
タKAの内容をアドレスレジスタKSにトランスフ
アし、システムクロツクはターンオンされ、コン
トロールはフアームウエアにリターンされる。
The control load signal causes the CSU to branch to address binary 0. Also,
turning off the CSU read cycle flop (not shown) and system clock 1320;
Keep CSU in load state. In the load state, the CSU can be loaded from control store loader CSL 1303, IOC 1305, main memory 102, or maintenance panel 1355. When loading from a CSL, an automatic scan occurs at the end of the load. When loading from other media, a scan is issued by generating a micro-operation signal or by setting a scan switch on a maintenance panel. Control store scan signal is CSU
Branch to address binary 0. The control store scan is under hardware control for the duration of the sequence. During the scan period, system clock 1320 is turned off and therefore no commands or tests are performed. At the end of the scan sequence,
The hardware transfers the contents of the interrupt return register KA to the address register KS, the system clock is turned on, and control is returned to the firmware.

ハードウエアエラーシグナルは、CSUをアド
レスバイナリ4にブランチさせる。正規のプロセ
シングモードにおいては、CPUフアンクシヨナ
ルユニツト内で検出されたハードウエアエラー
は、ハードウエアエラーライン(図示せず)を作
動させる。発生されたコントロールストアシーケ
ンスはシステム条件をテストし、実施すべき行動
を決定する。診断モードにおいては、ハードウエ
アが検出可能なエラー条件はマイクロダイアグノ
スチツクスに対して可視である。マイクロダイア
グノスチツクスは、実施すべき行動を制御する。
一方、ソフトウエアエラーシグナルは、コントロ
ールストアを、アドレスバイナリ1にブランチさ
せる。このアドレスは、マイクロプログラムコン
トロールのもとにおかれるソフトウエアエラーレ
ポーチングシーケンスの開始に相当する。
A hardware error signal causes the CSU to branch to address binary 4. In normal processing mode, a hardware error detected within the CPU functional unit activates a hardware error line (not shown). The generated control store sequence tests system conditions and determines the action to take. In diagnostic mode, hardware detectable error conditions are visible to microdiagnostics. Microdiagnostics controls the actions that should be taken.
On the other hand, a software error signal causes the control store to branch to address binary 1. This address corresponds to the start of a software error reporting sequence that is under microprogram control.

再び第13c図において、Eフイールド132
6は、既に述べた様に、ブランチコードに対して
るビツトフイールドである。ブランチングおよ
び/またはマイクロオペレーシヨンフイールド1
327はA、B、C、DおよびLフイールド(第
13b図のブロツク1335に示す)で構成さ
れ、このうち、Aフイールドは、次のアドレスの
上位6ビツトを、Bフイールドは64ウエイブラン
チのマスクフイールドの次のアドレスの中位4ビ
ツトを、Cフイールドは、64テストの1に対する
6ビツトテストフイールドを、Dフイールドは64
テストの1に対する他の6ビツトテストフイール
ドを、また、Lフイールドは、最下位ビツトを意
味する。Kフイールド1328は14ビツトフイー
ルドであり、このうち、6ビツトは定常フイール
ドであり、4ビツトは定常またはステアリングフ
イールドであり、4ビツトはコンスタント用ステ
アリングフイールドである。バスフイールド13
29に対するデータは、QMBバス1344のQA
オペレーシヨンに関する情報を制御する4ビツト
を備えたQAフイールドで構成され、QBフイール
ドは、QMBバス1344のQB部分に関する情報
を制御するための4ビツトを備える。Fフイール
ド1330は、マイクロオペレーシヨンサブコマ
ンドを発生するためにデコードされる32ビツトフ
イールドである。Pフイールド1331は、チエ
ツキング用として保有される4ビツトで構成され
る。
Again in FIG. 13c, E field 132
As already mentioned, 6 is a bit field for the branch code. Blanching and/or micro-operation field 1
327 consists of A, B, C, D, and L fields (shown in block 1335 in Figure 13b), of which the A field contains the upper six bits of the next address, and the B field contains the mask of the 64-way branch. The middle 4 bits of the next address of the field are stored in the C field, and the D field is the 64 bit test field for 1 of the 64 test.
Another 6-bit test field for test 1, and the L field means the least significant bit. The K field 1328 is a 14-bit field, of which 6 bits are constant fields, 4 bits are constant or steering fields, and 4 bits are constant steering fields. bus field 13
Data for 29 is sent to QA on QMB bus 1344.
The QB field consists of a QA field with 4 bits to control information regarding the operation, and a QB field with 4 bits to control information regarding the QB portion of the QMB bus 1344. F field 1330 is a 32 bit field that is decoded to generate microoperation subcommands. P field 1331 consists of 4 bits held for checking.

オペレーシヨンにおいて、マイクロインストラ
クシヨンワードは、コントロールストアアレイ1
333に記憶される。オペレーシヨンのサイクル
期間中、コントロールストアアレイは、KSアド
レスレジスタ1337の内容によつてアドレスさ
れる。これによつて、リードラツチ1357のグ
ループ内に読み込まれるアドレスによつて指示さ
れるロケーシヨンの内容が決定される。リードラ
ツチのワードコンテントの部分は、CPUのフア
ンクシヨナルユニツトの各々において、ストーレ
ツジレジスタに配分またはトランスフアされる。
各々のフアンクシヨナルユニツトは、システムク
ロツクソースの制御のもとにおいてコントロール
ストアワードによつて指示される要請サブコマン
ドを発生するためのデコーデイングロジツク回路
を含む。一般に、デコーデイングは、デコーデイ
ング時間を短縮し、デコーデイングが中央集中的
に実施された場合にコマンドシグナルを伝達する
ために必要とされるケーブル数量を少くする目的
を以て、中央集中的に実施されることなく、
CPUの各々のフアンクシヨナルユニツト内にお
いて実施される。更に、デコーデイングは、ケー
ブルにおける遅延が異ることに起因するタイミン
グの問題を回避するために、各々のユニツト内に
おいて実施される。更に、各ユニツト毎にサブコ
マンドでデコーデイングすることにより、フアン
クシヨナルユニツト内に所在する或る種の条件を
代表するシグナルは、CIAユニツト1302にリ
ターンされてはならない或る種のサブコマンドシ
グナルを発生するために必要とされる。マイクロ
インストラクシヨンワードからの各種フイールド
を受けとり、マイクロオペレーシヨンシグナル
a,b,c,d,………q,rを発生する一般的
なデコーダユニツト1359を第13b図に示
す。一般的なマイクロオペレーシヨンデコーダ1
359は、マイクロインストラクシヨンワードか
らのコマンドを受けとる。マイクロインストラク
シヨンワードからのフイールドは、デコードさ
れ、ラインs,t,u………y,zのうちの1本
をハイ状態にセツトする。点α,β,γ………
z,ωにおいてs−zラインに結合されるコント
ロールラインインピーダンスを前以つて決定する
ことによりマトリツクスが構成される。従つて、
一般に、マイクロインストラクシヨンからのフイ
ールドがデコードされた場合に、ラインs−zの
うちの1本がハイ状態となる。マトリツクスにお
いて、ギリシヤ文字αからωまでによつて示され
る黒点は、ラインの2つのセツトを結合するシン
ピーダンスを意味するものであり、従つて、任意
の水平ワイヤに沿つて伝達する電気信号は、イン
ピーダンス結合(黒点)が指示される点において
垂直ワイヤa−rに沿つて伝達されるように結合
される。各々の垂直ラインa−rは、ANDゲー
ト1360〜1365のうちの1つに1つの入力
が対応するように結合することができる。他の入
力信号も、セントラルタイミングユニツトからの
タイミング信号tsを含めてANDゲート1360
〜1365に結合することができる。従つて、各
タイミングシグナルtsがハイ状態になつた場合
に、他の全ての入力信号がハイ状態にあるゲート
は作動可能状態となり、マイクロインストラクシ
ヨン信号を、CPUの前以て決定されたフアンク
シヨナルユニツトに供給する。例えば、リードラ
ツチ1357からのコマンド1341がデコード
され、水平ラインがハイ状態になつている場合に
は、a,b,cおよびq垂直コントロールライン
はハイ状態となり、ANDゲート1360,13
61,1362および1364は作動可能状態と
なり、tsタイミングシグナルが順次に、これ等の
ゲートに印加される。ギリシヤ文字αからωまで
によつて示される各種の点において水平コントロ
ールラインに結合される垂直コントロールライン
で構成されるシステムは、コントロールストアア
レイ1333から供給されるマイクロインストラ
クシヨンによつて、セントラルプロセシングユニ
ツト内においてフアンクシヨナルユニツトを制御
するためにセントラルプロセシングユニツト
CPUに対してマイクロオペレーシヨンシグナル
を供給するための恒久的なスイツチングマトリツ
クスを意味する。従つて、変革可能性を有する恒
久的フアームウエアは、コンピユータシステムの
機能の1つとして要求されるマイクロオペレーシ
ヨンのシーケンスを指定するだけで、本発明に
かゝるマシンの中に組み入れることが可能であ
る。
In the operation, the microinstruction word is the control store array 1
333. During a cycle of operation, the control store array is addressed by the contents of KS address register 1337. This determines the contents of the location pointed to by the address read into the group of read latches 1357. A portion of the word content of the read latch is allocated or transferred to a storage register in each of the functional units of the CPU.
Each functional unit includes decoding logic circuitry for generating request subcommands directed by the control store word under control of the system clock source. Generally, decoding is performed in a non-centralized manner with the purpose of reducing decoding time and reducing the amount of cables required to convey command signals if decoding is performed centrally. ,
It is implemented within each functional unit of the CPU. Furthermore, decoding is performed within each unit to avoid timing problems due to different delays in the cables. Additionally, by decoding the subcommands on a per-unit basis, signals representative of certain conditions existing within the functional unit may cause certain subcommand signals to not be returned to the CIA unit 1302. required to occur. A typical decoder unit 1359 that receives various fields from a microinstruction word and generates microoperation signals a, b, c, d, . . . q, r is shown in FIG. 13b. General micro-operation decoder 1
359 receives commands from the microinstruction word. The field from the microinstruction word is decoded and sets one of the lines s, t, u...y, z to a high state. Points α, β, γ……
The matrix is constructed by predetermining the control line impedance coupled to the sz line at z, ω. Therefore,
Generally, one of the lines sz goes high when a field from a microinstruction is decoded. In the matrix, the black dots denoted by the Greek letters α through ω signify the sympedances connecting the two sets of lines, so that the electrical signal traveling along any horizontal wire is Impedance coupling (black dots) is coupled for transmission along the vertical wire a-r at the indicated points. Each vertical line a-r can be coupled such that one input corresponds to one of AND gates 1360-1365. Other input signals are also input to the AND gate 1360, including the timing signal ts from the central timing unit.
~1365. Therefore, when each timing signal ts goes high, a gate with all other input signals in a high state is enabled and directs the microinstruction signal to a predetermined fan of the CPU. supply to the functional unit. For example, if command 1341 from read latch 1357 is decoded and the horizontal line goes high, then the a, b, c, and q vertical control lines go high and AND gates 1360, 13
61, 1362 and 1364 are enabled and the ts timing signal is applied to these gates in sequence. The system, consisting of vertical control lines coupled to horizontal control lines at various points indicated by the Greek letters α through ω, is connected to the central processing A central processing unit is used to control the functional units within the unit.
A permanent switching matrix for supplying micro-operation signals to the CPU. Therefore, permanent firmware with transformative potential can be incorporated into a machine according to the invention by simply specifying the sequence of micro-operations required as one of the functions of the computer system. It is.

正規条件のもとにおいて、データは、ローカル
レジスタYO1343とも称せられるCPUライト
データレジスタを経て、コントロールストアアレ
イ1333に書き込まれる。コントロールフロツ
プ(図示せず)は、ストーレツジアレイの上半分
または下半分のいずれを書き込むかを決定する。
コントロールおよびロードユニツトCLU130
4からのデータはメンテナンスバスQMB134
4を経てCIA/CSUに到達し、コントロールスト
アアレイ1333に書き込まれる前に、ストーレ
ツジローカルレジスタYO1343によつてバツ
フアされる。ストーレツジローカルレジスタ13
43は、リードおよびライトローカルレジスタと
してタイムシエアされる。マルチプレクサKQM
1345は、メンテナンスパネル1355または
マイクロダイアグノスチツクスのいずれかによつ
て制御され、接続されたレジスタからのリードア
ウトパスを提供する。コンベアレジスタKP13
50は、ノンフアンクシヨナルは用途のために備
えられ、主として、保守を目的として使用され、
コンベアロジツク1352およびデコードロジツ
ク1351と共に使用される。
Under normal conditions, data is written to control store array 1333 via the CPU write data register, also referred to as local register YO 1343. A control flop (not shown) determines whether the top or bottom half of the storage array is written.
Control and load unit CLU130
Data from 4 is maintenance bus QMB134
4 to the CIA/CSU and is buffered by storage local register YO 1343 before being written to control store array 1333. Storage local register 13
43 is time-shared as a read and write local register. Multiplexer KQM
1345 is controlled by either a maintenance panel 1355 or microdiagnostics and provides a readout path from the connected resistor. Conveyor register KP13
50, the non-functional is provided for the purpose and is mainly used for the purpose of maintenance,
Used with conveyor logic 1352 and decode logic 1351.

プロセス制御用デイスパツチヤフアームウエア デイスパツチヤは、プロセスの各種キユーを管
理し、プロセス間のスイツチングを行なうことを
主目的とし、プロセス、プロセスコントロールブ
ロツクPCB、システムベースのランニングプロセ
スワードおよび新プロセスのレジスタのキユーを
更新することを目的とするフアームウエア/ハー
ドウエアユニツトである。デイスパツチヤは、セ
マフオもしくはヤマホアに従つて実際に待期中の
プロセスに対してメツセージを送る機能をも有す
る(Vオペレーシヨンの後における、IOC用また
は例外ハンドラ用シミユレートされたVオペレー
シヨン)。また、デイスパツチヤは、プロセスが
フリーリンクセマフオにおいてメツセージを待つ
ている場合に、メツセージリンクを解放するPオ
ペレーシヨンの後で、セマフオにメツセージを待
期させる機能をも有する。
Dispatcher armware for process control The main purpose of the dispatcher is to manage various process queues and perform switching between processes. A firmware/hardware unit whose purpose is to update queues. The dispatcher also has the ability to send messages to actually waiting processes according to a semaphore or a semaphore (simulated V operation for an IOC or for an exception handler after a V operation). The dispatcher also has the ability to make a semaphore wait for a message after a P operation that releases a message link if a process is waiting for a message on a free link semaphore.

デイスパツチヤユニツトは、更に、ネイチブモ
ードで作動中のプロセスの“ローリングイン”が
行われた後において、または、現在のプロセスが
作動を継続しており、ネイチブモードで作動して
いる場合には、“コンテスト”の後において、ネ
イチブモードインストラクシヨンフアームウエア
を要請する。また、次の場合に対して、デイコエ
キステンシヨンを要請する: (a) デイコエキステンシヨン作動中のプロセスの
ローリングアウト期間中の一時的コール。
The dispatcher unit may also be configured to: After the "contest", request native mode instructional software. In addition, request a daco extension for the following cases: (a) Temporary calls during the rolling out period of a process with a daco extension active.

(b) デコーエキステンシヨン作動中のプロセスの
ローリングイン期間中の一時的コール。
(b) Temporary calls during the rolling-in period of a process with decoder extensions active.

(c) デイコエキステンシヨン作動中のプロセスの
ローリングインの終端におけるデフイニチブコ
ール。
(c) Definitive call at the end of rolling-in of the process during deco extension operation.

(d) 現在のプロセスが作動中であり、デイコエキ
ステンシヨン作動中である場合には、コンテス
トの後のデフイニチブコール。
(d) Definitive call after a contest if the current process is active and a deco extension is active.

更に、デイスパツチヤは、作動中のプロセスが
無い場合には、システムをアイドルループとす
る。
Additionally, the dispatcher places the system in an idle loop when there are no processes running.

デイスパツチヤをエンタまたはリーブする方法
を次に示す。
The following describes how to enter or leave a dispatcher.

(1) イニシアリゼーシヨンプロセデユア(SIP)
が、最終ステツプとしてエントリを提供する。
(1) Initialization Procedure (SIP)
provides the entry as a final step.

(2) スタートおよびサスペンドインストラクシヨ
ンにより、デイスパツチヤへのエントリが提供
される。スタートインストラクシヨンによりプ
ロセスが開始され、サスペンドインストラクシ
ヨンによりプロセスが終了する。
(2) The start and suspend instructions provide entry to the dispatcher. A start instruction starts a process, and a suspend instruction ends a process.

(3) PおよびVオペレーシヨンにより、デイスパ
ツチヤへのエントリが提供される。Pオペレー
シヨンにより、セマフオからのシグナルがピツ
クアツプされ、メツセージが無ければ、プロセ
スは待期状態となる。
(3) P and V operations provide entry to the dispatcher. The P operation picks up the signal from the semaphore, and if there is no message, the process goes into a waiting state.

要約すれば、デイスパツチヤは、どのプロセス
を作動させるかを決定することによつてプロセス
ひいては、プロセスコントロールブロツクPCSを
マネージし、次に、適当な動作、例えば、現在作
動中のプロセスをローリングアウトし(即ち、ハ
ードウエアレジスタスクラツチパドメモリ等々に
含まれる現在進行中のプロセスに関する全ての情
報をPCBに書き込み)、新プロセスをローリング
インする(即ち、新プロセスを作動させるために
必要な全ての情報を、PCBから、各種のハードウ
エアレジスタ、スクラツチパドメモリ、等々に書
き出す)等の様な動作を実施するための主要機構
であるということができる。
In summary, the dispatcher manages processes and thus the process control block PCS by deciding which processes to run, and then takes appropriate actions, e.g., rolling out currently running processes. (i.e., write all information about the currently running process to the PCB, including hardware registers, scratchpad memory, etc.) and roll in the new process (i.e., write all information necessary to run the new process) It can be said that it is the main mechanism for performing operations such as writing (from the PCB to various hardware registers, scratchpad memory, etc.).

デイスパツチヤによつて実施される機能をフロ
ーチヤート第14a−14iに示す。例えば、第
14a図のブロツク1402は、コントロールス
トアユニツトによつてマイクロプログラムワード
が発せられた場合にデイスパツチヤによつて実施
される機能を示すものであり、デコーダ1359
によつてデコーデイングが実施されると、CPU
の当該部分は、マイクロオペレーシヨンシグナル
1360,1361等々の一連の信号を経て制御
され、ストーレツジサブシステム102におい
て、システムベースからIPQWをリトリーブし、
スクラツチパドメモリ1315にトランスフアす
る。同時に、デイスパツチヤは、システムベース
のGテーブルワードGTWによつて指示されるセ
グメントデイスクリブタのGテーブルからG0セ
グメントデイスクリブタ(第12図参照)をフエ
ツチする、1404。IPQWワードのビツト16
−31は、16ビツトの正の整数を含み、この整数
は、G0セグメントと称されるGセグメントナン
バー0のベースから、既に待期中のプロセスQ/
PR/RDYのヘツド(第1バイト)へ変移され
る。IPQWワードのビツト16−31が0である
場合には、1403レデイキユーは空位であるも
のとみなされる。レデイキユーが空位である場合
には、Q/PR/RDYにおいて現在待期中のプロ
セスが無く、レデイキユーは空であることを意味
する。デシジヨンブロツク1405において次に
決定さるべき問題は、ベイカントインデイケータ
がセツトされているか否かを決定することによつ
て、マシン内で現在進行中のプロセスが存在する
か否かを決定することである。ベイカントインデ
イケータがセツトされている場合には(即ち、現
在進行中のプロセスが無い場合)、プロセツサを
使用するために待期中のレデイキユーにプロセス
が所在しない事が前以て決定されているため、マ
シンはアイドルステート1406となる。しか
し、マシン内に現在進行中のプロセスが存在する
が、マシンを使用するために待期しているプロセ
スが存在しない場合には、現在のプロセスは、次
のインストラクシヨンにアクセスする、140
4。
The functions performed by the dispatcher are shown in flowchart Nos. 14a-14i. For example, block 1402 of FIG. 14a illustrates the function performed by the dispatcher when a microprogram word is issued by the control store unit, and decoder 1359.
When decoding is performed by
This part is controlled via a series of micro-operation signals 1360, 1361, etc. in the storage subsystem 102 to retrieve the IPQW from the system base,
Transfer to scratch pad memory 1315. At the same time, the dispatcher fetches 1404 the G0 segment descriptor (see FIG. 12) from the G table of segment descriptors pointed to by the system base G table word GTW. Bit 16 of the IPQW word
-31 contains a 16-bit positive integer, which is a 16-bit positive integer from the base of G segment number 0, referred to as G0 segment, to
Moved to the head (first byte) of PR/RDY. If bits 16-31 of the IPQW word are 0, then the 1403 ready queue is considered vacant. If the ready queue is empty, it means that there is no process currently waiting in Q/PR/RDY and the ready queue is empty. The next question to be determined in decision block 1405 is to determine whether there are any processes currently in progress within the machine by determining whether the vacant indicator is set. It is. If the vacant indicator is set (i.e., there are no processes currently in progress), it has been determined in advance that there are no processes in the ready queue waiting to use the processor. , the machine is in an idle state 1406. However, if there is a process currently underway in the machine but no process waiting to use the machine, the current process accesses the next instruction 140
4.

第14a図のフローチヤートのデシジヨンブロ
ツク1403を再度参照することゝし、IPQWの
ポインタエリア内に正の整数(即ち、ビツト16
−31)が所在する場合には、G0セグメント内
のIPQWワードによつて指示されたレデイキユー
のヘツドは、スクラツチパドメモリにフエツチさ
れる。(注記:繰返して説明することを避け、説
明を簡明にするために、コントロールユニツトお
よびCPUと関連したデイスパツチヤの中間的な
機能は省略するものとする。たゞし、既に例にあ
げて説明したように、この種の中間的機能は、極
く一般的に実施されるものであることを理解され
たい。)この時点までに、レデイキユーで待期中
のプロセスが存在することは既に決定されている
はずである。更に動作が実施される以前に、セン
トラルプロセツサで現在進行中のプロセスが在る
か否かを決定することが必要である。この決定
は、フローチヤートのデシジヨンブロツク141
0によつて実施され、セントラルプロセツサにお
いて現在進行中のプロセスが無い場合(即ち、
CJPなしの場合)には、レデイキユーの先頭が実
施される、1412。セントラルプロセツサで進
行中のプロセスが在る場合には、デイスパツチヤ
は、現在進行中のプロセスと、レデイキユーのヘ
ツドのいずれが優先性を有するかという事を決定
しなければならない。従つて、システムベース
PCB400の進行中プロセスワードに位置決めさ
れた進行中プロセスの優先バイトはフエツチされ
る、1413。次に、現在進行中のプロセスCJP
が、レデイキユーのヘツド(先頭)で待期中の新
プロセスNJPよりも低位の優先性を有するか否か
が、決定される、1414。(デシジヨンブロツ
ク1414参照。)CJPがNJPよりも低位の優先
性をもたない場合には、CJPはセントラルプロセ
ツサの制御のもとにとゞまり、コンテストインデ
イケータはリセツトされる、1415。(コンテ
ストインデイケータは、次の場合を除き、常に0
にセツトされる。即ち、1個またはそれ以上の新
プロセスがレデイキユーに位置している場合に
は、CJPの代りに最終インストラクシヨンが開始
され、コンフリクトの可能性を生じさせるため、
コンテストインデイケータはバイナリ1にセツト
される。)しかし、現在進行中のプロセスCJPの
継続が許され、それ以後のインストラクシヨンが
実施される以前に、CJPがデイコエキステンシヨ
ンモード、1415、で作動中であるか否かが決
定される。CJPがデイコエキステンシヨンモード
で作動中であれば、次のインストラクシヨンはエ
ミユレーシヨンモードで実施される(即ち、デイ
コエキステンシヨン)、また、デイコエキステン
シヨンモードで作動していない場合には、次のイ
ンストラクシヨンはネイチブモードで実施され
る。再度デシジヨンブロツク1414を参照する
ことゝし、レデイキユーの先頭にあるNJPの優先
性がCJPの優先性よりも高位にある場合には(即
ち、NJPの優先番号がCJPの優先番号よりも小さ
い場合には)、現在進行中のプロセスCJPはマシ
ンから“ロールアウト”され、新プロセスNJPが
マシンに“ロールイン”される。従つて、フアー
ムウエア優先サブルーチンPRIO1418は、フ
アームウエアサブルーチンRLLO1419の指示
に従い、先ずCJPを“ローリングアウト”するこ
とにより、LIFO優先性および優先番号に応じ
て、現在進行中のプロセスCJPをレデイキユー内
の待ち列の所定位置に設定される。RLLOサブル
ーチンは、ゼネラルレジスタ、ベースレジスタ、
サイエンチフイツクレジスタ、Tレジスタ、ステ
ータスレジスタおよびインストラクシヨンカウン
タに記憶されているCJPの情報を、メインメモリ
のプロセスコントロールブロツクPCBの該当する
ストーレツジエリアに書き戻すことを指示し、
RUAの更新を指示する。更に、PCB400のプ
ロセスメインワード0(PMW0)のDEXT番号
は1420に更新される。
Referring again to decision block 1403 of the flowchart of FIG. 14a, a positive integer (i.e., bit 16
-31), then the head of the ready queue pointed to by the IPQW word in the G0 segment is fetched into scratchpad memory. (Note: To avoid repetition and to simplify the explanation, the intermediate functions of the control unit and the dispatcher associated with the CPU will be omitted. (It should be understood that this type of intermediate function is quite commonly performed, as described above.) By this point, it has already been determined that there is a process waiting in the ready queue. There should be. Furthermore, before any operation is performed, it is necessary to determine whether there are any processes currently in progress at the central processor. This decision is made in decision block 141 of the flowchart.
0 and there is no process currently in progress in the central processor (i.e.
If there is no CJP), the beginning of the ready-queue is executed, 1412. If there is a process in progress on the central processor, the dispatcher must decide whether the process currently in progress or the head of the ready queue has priority. Therefore, system-based
The priority byte of the ongoing process located in the ongoing process word of PCB 400 is fetched, 1413. Next, the currently ongoing process CJP
It is determined whether NJP has a lower priority than the new process NJP waiting at the head of the ready queue (1414). (See decision block 1414.) If CJP does not have lower priority than NJP, CJP remains under control of the central processor and the contest indicator is reset, 1415. (The contest indicator is always 0 except in the following cases.
is set to That is, if one or more new processes are located in the ready queue, the final instruction will be started instead of CJP, creating the possibility of a conflict.
The contest indicator is set to binary 1. ) However, before the currently ongoing process CJP is allowed to continue and any further instructions are performed, it is determined whether the CJP is operating in deco extension mode, 1415. Ru. If the CJP is operating in deco extension mode, the next instruction will be performed in emulation mode (i.e. deco extension) and will operate in deco extension mode. If not, the next instruction is executed in native mode. Referring again to decision block 1414, if the priority of the NJP at the beginning of the ready queue is higher than the priority of the CJP (i.e., if the priority number of the NJP is lower than the priority number of the CJP) ), the currently running process CJP is “rolled out” of the machine and the new process NJP is “rolled in” to the machine. Therefore, the firmware priority subroutine PRIO 1418, in accordance with the instructions of the firmware subroutine RLLO 1419, first "rolls out" the CJP, thereby placing the currently ongoing process CJP in the ready queue according to its LIFO priority and priority number. set in a given position in the column. The RLLO subroutine stores the general register, base register,
Instructs to write back the CJP information stored in the science register, T register, status register, and instruction counter to the corresponding storage area of the process control block PCB in the main memory,
Instruct RUA update. Furthermore, the DEXT number of process main word 0 (PMW0) of PCB 400 is updated to 1420.

この時点において、新プロセスNJPの“ロール
イン”が可能である。バウンダリアドレスレジス
タBARはフエツチされ、1422、進行中のプ
ロセスワードRPWは、システムベースのアドレ
スBARプラス56からフエツチされる。ブロツ
ク1423参照。新プロセスNJPのネームは、次
に、進行中のプロセスワードRPWに書き込ま
れ、新プロセスNJPのネームはQ/PR/RDYの
プロセスリンクPLに書き込まれたのであるか
ら、プロセスリンクPLのネームは、ブロツク1
424のRPWにプレースされる。従つて、レデ
イキユーからのNJPは、この時点でCJPとなり、
セントラルプロセツサを制御することが可能とな
り、従つて、これ以上Q/PR/RDYで待期する
事は無く、ブロツク1425のQ/PR/RDYの
プロセスリンクPLからそのネームを取り去るこ
とによつて待期列から除外される。この動作が実
施されると、Q/PR/RDYは、フアームウエア
サブルーチンUQLK、1425a、によつて更新
される。従つて、マシンから取り去られたばかり
のプロセスのJPナンバーはQ/PR/RDYのプロ
セスリンク内に置かれる。理由は、このプロセス
は最早マシンの制御とは関係無く、待期状態にお
かれているためである、1426。この時点にお
いて、セントラルプロセツサの制御を新プロセス
に与え、旧プロセスをレデイキユーに位置させる
ための変換が実施され、セントラルプロセツサの
制御下にプロセス(新プロセス)がはいつている
ため、ベイカントインデイケータは0にセツトさ
れる、1427。一方、セントラルプロセツサの
制御下にCJPがはいつていない場合には、ベイカ
ントインデイケータは1にセツトされる。この時
点において、プロセツサのアサインメントが完了
し、旧プロセスはレデイキユーにプレースされて
いるため、セントラルプロセツサは新プロセスに
使用される。しかし、新プロセスは、例えばゼネ
ラルレジスタ1307、ベースレジスタ130
8、サイエンチフイツクレジスタ1309、Tレ
ジスタ1310、ステータスレジスタ1311お
よびインストラクシヨンカウンタ1312等の様
な、第13a図の1306で示されるセントラル
プロセシングユニツトのハードウエアに対しては
作動準備が完了しておらず、新プロセスのプロセ
スコントロールブロツクからの制御情報を供給す
ることが必要とされる。
At this point, it is possible to "roll in" the new process NJP. The boundary address register BAR is fetched 1422 and the process word in progress RPW is fetched from the system base address BAR plus 56. See block 1423. The name of the new process NJP was then written to the ongoing process word RPW, and since the name of the new process NJP was written to the process link PL of Q/PR/RDY, the name of the process link PL is Block 1
Placed at RPW of 424. Therefore, NJP from Lady Kyu becomes CJP at this point,
It is now possible to control the central processor and therefore no longer wait on Q/PR/RDY by removing its name from the process link PL of Q/PR/RDY in block 1425. removed from the waiting list. When this operation is performed, Q/PR/RDY is updated by firmware subroutine UQLK, 1425a. Therefore, the JP number of the process just removed from the machine is placed in the process link of Q/PR/RDY. The reason is that this process is no longer involved in controlling the machine and is in a waiting state 1426. At this point, the conversion to give control of the central processor to the new process and place the old process in the ready queue has been performed, and the process (new process) is now under the control of the central processor, so the vacancy The indicator is set to 0, 1427. On the other hand, if the CJP is not under the control of the central processor, the vacant indicator is set to 1. At this point, the processor assignment is complete and the old process has been placed in the ready queue, so the central processor is used for the new process. However, the new process, for example, general register 1307, base register 130
8. The central processing unit hardware shown at 1306 in Figure 13a, such as the science register 1309, the T register 1310, the status register 1311 and the instruction counter 1312, is ready for operation. It is necessary to supply control information from the process control block of the new process.

従つて、フアームウエアサブルーチン1430
はCPUを制御し、PCB(第4図)から、PMW3
を、スクラツチパドメモリ1315にフエツチ
し、次に、PMW0をフエツチする。PMW0の
MBZフイールドは1433に対してチエツクさ
れ、バイナリ0でない場合にはイリーガルPCBイ
グゼンプシヨンとなる。しかし、PMW0のMBZ
フイールドがゼロであれば、PMW1は1434
にフエツチされる。PMW1のMBZフイールド、
バイナリ0であるか否かを決定するために再度テ
ストされる。バイナリ0でない場合には、イリー
ガルPCBエグゼンプシヨンとなり、0であれば、
デイスパツチヤはCに進む。
Therefore, firmware subroutine 1430
controls the CPU, and from the PCB (Figure 4), PMW3
is fetched into the scratch pad memory 1315, and then PMW0 is fetched. PMW0
The MBZ field is checked for 1433 and if it is not a binary 0 it is an illegal PCB exception. However, MBZ of PMW0
If the field is zero, PMW1 is 1434
is fucked by. MBZ field of PMW1,
Tested again to determine if it is a binary zero. If it is not a binary 0, it is an illegal PCB exception; if it is 0,
The dispatcher proceeds to C.

従つて、アドレススペースワード0ASW0が
PCBの該当スペースからフエツチされ、セグメン
トテーブルワードサイズSTWSZはテストされ、
1437、その結果7以下であるか否かが決定さ
れる。7を超過すれば、イリーガルPCBとなり、
7未満または7に等しければ、ASW1は、ブロ
ツク1438、PCBからフエツチされ、その
STWSZフイールドは、8以下であるか否かを決
定するためにチエツクされる、1439。その結
果、フイールドが8を超過する場合にはイリーガ
ルPCBとなり、STWSZが8未満または8に等し
ければ、エグゼンプシヨンワードEXWがフエツ
チされ、1440、そのMBZフイールドは、0
に等しいか否かを決定するためにテストされる。
MBZフイールドが0に等しくない場合には、イ
リーガルPCBとなり、0に等しければ、スタツク
ワードSKWはフエツチされ、1442、その
MBZフイールドは、0に等しいか否かを決定す
るために、テストされる、1443。その結果
MBZフイールドが0に等しくない場合には、イ
リーガルPCBとなり、0に等しい場合には、イン
ストラクシヨンカウンタワードICWはPCBから
フエツチされ、インストラクシヨンカウンタIC
に置かれ、そのTAGフイールドは、0に等しい
か否かを決定するために、テストされる、144
5。その結果TAGフイールドが0に等しくない
場合には、イリーガルPCBとなる。TAGフイー
ルドが0に等しい場合には、MBZワードはフエ
ツチされ、1446、そのMBZフイールド(ビ
ツト0−31)は、ゼロに等しいか否かを決定す
るために、1447に対してテストされる。0に
等しくない場合には、イリーガルPCBとなり、0
に等しければ、スタツクベースワード0,1およ
び2BW0,1および2はフエツチされる、14
48。PCBのベースレジスタセービングエリアに
おける8ベースレジスタの内容はフエツチされ、
1449、マシンのベースレジスタ1304に記
憶される。PCBのゼネラルレジスタセービングエ
リアからの16ゼネラルレジスタの内容は、次に、
フエツチされ、1405、マシンのゼネラルレジ
スタ1307に記憶される。しかし、サイエンチ
フイツクレジスタの内容をフエツチする前に、サ
イエンチフイツクモードが1451で使用されて
いるか否かを決定するために、プロセスメインワ
ード0(PMW0)のケイパビリテイバイトのチ
エツクが行われる。サイエンチフイツクモードが
使用されている場合には、PCBのサイエンチフイ
ツクレジスタセービングエリアからのサイエンチ
フイツクレジスタの内容はフエツチされ1452
に記憶される。次に、フアームウエアは、アカウ
ンチングモードが1453で使用されているか否
かを決定するためにPMW0のケイパビリテイバ
イトのチエツクを進行させる。次に、フアームウ
エアは、DEXTナンバーが0にセツトされている
か否かを決定するための動作を進行させる、14
54。0にセツトされていない場合には、マシン
がエミユレーシヨンモードでありうる事を意味し
(即ち、デイコエキステンシヨン機能が使用され
ている)、従つて、PMW0のDEXTナンバーは、
プロセスメインワード3のDETSZフイールド以
上または未満であることを決定するためにチエツ
クされる、1455。DETSZフイールドを超過
した場合には、イリーガルPCBエグゼンプシヨン
1456となる。理由は、DEXTナンバーは
DETSZフイールド以下であるがゼロには等しく
ないために、マシンはリーガルエミユレーシヨン
モードで作動しており、Fに向つて進行している
からである。デシジヨンブロツク1454に関し
て再度考察してみると、DEXTフイールドがバイ
ナリ0であれば、ネイチブモードが実施されてお
り、マシンはSTWはフエツチする、1457。
PCBのレジデユアルタイムアウトワードRTOワ
ードがフエツチされ、1458、プロセスタイマ
は、CJPがランニングステートにある時間を限度
としてプロセスタイマが負荷される。
Therefore, address space word 0ASW0 is
Fetched from the appropriate space on the PCB, the segment table word size STWSZ is tested and
1437, and it is determined whether the result is 7 or less. If it exceeds 7, it becomes an illegal PCB.
If less than or equal to 7, ASW1 is fetched from block 1438, the PCB, and its
The STWSZ field is checked to determine if it is less than or equal to 8, 1439. The result is an illegal PCB if the field is greater than 8, and if STWSZ is less than or equal to 8, the exception word EXW is fetched, 1440, and its MBZ field is 0.
is tested to determine whether it is equal to or not.
If the MBZ field is not equal to 0 then it is an illegal PCB, if it is equal to 0 then the stack word SKW is fetched and 1442 its
The MBZ field is tested 1443 to determine whether it is equal to zero. the result
If the MBZ field is not equal to 0, it is an illegal PCB; if it is equal to 0, the instruction counter word ICW is fetched from the PCB and the instruction counter word ICW is fetched from the PCB.
and its TAG field is tested to determine whether it is equal to 0, 144
5. As a result, if the TAG field is not equal to 0, it is an illegal PCB. If the TAG field is equal to zero, the MBZ word is fetched 1446 and the MBZ field (bits 0-31) is tested against 1447 to determine if it is equal to zero. If it is not equal to 0, it is an illegal PCB and 0
, then stack basewords 0, 1 and 2BW 0, 1 and 2 are fetched, 14
48. The contents of the 8 base registers in the base register saving area of the PCB are fetched and
1449, stored in the machine's base register 1304. The contents of the 16 general registers from the PCB's general register saving area are:
Fetched and stored 1405 in the machine's general register 1307. However, before fetching the contents of the scientifc register, a check is made of the capability byte in process main word 0 (PMW0) to determine if scientifc mode is being used in the 1451. . If the scientific switch mode is used, the contents of the scientific register from the PCB's scientific register saving area are fetched 1452.
is memorized. The firmware then proceeds to check the capability byte of PMW0 to determine if accounting mode is being used at 1453. The firmware then proceeds with operations 14 to determine whether the DEXT number is set to zero.
54. If not set to 0, it means the machine can be in emulation mode (i.e. the deco extension feature is used) and therefore the DEXT number of PMW0 is ,
The DETSZ field of process main word 3 is checked to determine whether it is greater than or equal to, 1455. If the DETSZ field is exceeded, illegal PCB exception 1456 will occur. The reason is that the DEXT number is
Because the DETSZ field is less than but not equal to zero, the machine is operating in legal emulation mode and is progressing towards F. Considering again decision block 1454, if the DEXT field is a binary 0, then native mode is in effect and the machine fetches STW, 1457.
The PCB's resident timeout word RTO word is fetched 1458 and the process timer is loaded to the extent that the CJP is in the running state.

この時点までは、(a)旧CJPはマシン内に在り、
新プロセスNJPは旧プロセスCJPよりも高位の優
先性をもつた場合、CPUの制御を行うために新
NJPは“ロールイン”されている、か或は、(b)
CPUの制御下にあるCJPは存在せず、レデイキユ
ーの先頭が作動を終つたかのいずれかの場合に相
当する。要約すれば、条件(a)のもとにおいては、
CJPはRPWから取り出され、Q/PR/RDYのプ
ロセスリンクPLにプレースされ、Q/PR/RDY
のプロセスリンクPLはRPWにプレースされ、こ
の様にして、CJPとなつているNJPに制御を提供
し、旧CJPから制御を取り去ることよつて2つの
プロセスの位置を効果的に切り換える。次に、
NJPのPCBはアクセスされ、NJP(現時点では
CJP)を進行させるために必要な情報は、スクラ
ツチパドメモリまたはACUのレジスタのアレイ
にプレースされたことゝなる。
Up to this point, (a) the old CJP is in the machine;
If the new process NJP has a higher priority than the old process CJP, it will
NJP is “rolled in” or (b)
This corresponds to the case where there is no CJP under the control of the CPU and the head of the ready queue has finished operating. In summary, under condition (a):
CJP is taken from RPW and placed in the process link PL of Q/PR/RDY.
The process link PL of is placed in RPW, thus effectively switching the positions of the two processes by providing control to NJP, which is now CJP, and taking control away from the old CJP. next,
NJP's PCB is accessed and NJP (currently
The information needed to proceed (CJP) is placed into scratchpad memory or an array of registers in the ACU.

CPUの制御下にCJPが無い場合(条件b)に
は、レデイキユーの先頭に位置するプロセスは進
行し、即ち、デイスパツチヤはレデイキユーの先
頭のプロセスリンクPLからNJPを取り去り、
RPWワードにプレースするため、NJPはCJPとな
つたことを意味する。この様な操作を行なうこと
により、プロセスリンクPLは、Q/PR/RDYに
空位として残されたことゝなり、取り出すことが
必要となる。
If there is no CJP under the control of the CPU (condition b), the process located at the head of the ready queue proceeds, that is, the dispatcher removes the NJP from the process link PL at the head of the ready queue, and
This means that NJP has become CJP because it is placed in the RPW word. By performing such an operation, the process link PL is left as a vacant space in Q/PR/RDY, and it is necessary to take it out.

従つて、この時点においては、デシジヨンブロ
ツク1461から開始して、フアームウエアは、
CPUの制御下にCJPが存在したか否かを決定し、
フリープロセスリンク(FPLS)があれば、アク
セスし、キユー内に配置し、CJPが書き込まれる
ことゝなる。CPUの制御下にCJPが無かつた場合
には、NJPのPMW0のステートバイトは更新さ
れ、1460、再び、マシン1463にCJPが存
在するか否かの決定が行われる。プロセツサの制
御下にCJPが無かつた場合には、NJP(Q/
PR/RDYに在つたが、現時点ではマシンの制御
下にある)のプロセスリンクはQ/PR/RDY1
466から取り出され(即ち、Q/PR/RDYか
ら待期列外に取り出され)、フリープロセスリン
クとなり、プロセスリンクセマフオ(PLS)のフ
リープロセスリンクキユーの待期列に配置され
(第9図805)、フリープロセスリンクキユー1
466aの一部となる。バウンダリアドレスレジ
スタBARの内容はフエツチされ、1464、シ
ステムベースのBARプラス56にロケートされ
たNJP(現時点におけるCJP)の進行中プロセス
ワードRPWは、NJPアイデンチフイケーシヨン
をRPW、ブロツク1465内にプレースするこ
とによつて更新される。ベイカントインデイケー
タは、CJPが無い場合に、0にセツトされる。次
に、コンテストインデイケータは0にセツトさ
れ、1467、一般的な内容アドレス可能なメモ
リであるセグメントアソシエータ(第1図のAS
132)がクリアされ、1471、次にプロセス
モードがエンタされる、1470。(プロセスモ
ードは、エグゼンプシヨンは、作動中のシステム
ではなくて、プロセツサ内で進行中のプロセスに
よつて取り扱われることを示している。)次に、
フアームウエアはCABを継続し、1480、非
同期トラツプビツトABは、バイナリ1にセツト
されているか否かを決定するためにチエツクされ
る、1481。ABビツトがバイナリ1にセツト
されている場合には、プロセスリングナンバー
PRNが非同期トラツプビツトフイールドARN以
上かまたは等しいかを決定されるためにチエツク
が行われる、1482。(ABおよびARNは各プ
ロセスのPCBの優先バイト内に位置決めされ、プ
ロセスが進行状態にある場合には有意味となり、
ABおよびARUは、システムベースのBARプラス
56に位置決めされたRPWから求められる。)
RPWのBARプラス56におけるABおよびARU
はリセツトされる。理由は、次のステツプ148
4は、非同期トラツプビツトまたは最初の場所に
セツトさるべき非同期リングナンバーを生じさせ
る条件に関係する非同期トラツプルーチンに向つ
て進行するからである。リセツトされない場合に
は、フアームウエアにより、次のパスにおいて、
実際上何等の不都合が生じなかつた場所に何等か
の不都合が生じたことが指示され、従つて、常に
非同期トラツプルーチン1484に向つて進行
し、決してリセツトされる事が無いはずである。
デシジヨンブロツク1481および1482を再
度参照することゝし、ABビツトがセツトされな
いか、または、ABビツトがセツトされ、しかも
PRUがARUよりも小さい場合には、フアームウ
エアは、プロセツサがノーマルモードまたはエミ
ユレーシヨンモードのいずれのモードで作動して
いるかを決定するための動作を継続する。従つて
0にセツトされているか否かを決定するために
DEXTナンバーがチエツクされ、0にセツトされ
ている場合には、マシンはノーマルモードで作動
していることゝなる、1487。DEXTナンバー
が0にセツトされていない場合には、エミユレー
シヨンモードで作動していることゝなる、148
6。
Therefore, at this point, starting at decision block 1461, the firmware:
determine whether a CJP was under the control of the CPU;
If there is a free process link (FPLS), it will be accessed, placed in the queue, and the CJP will be written. If there is no CJP under the control of the CPU, the state byte of the NJP's PMW0 is updated, and a determination is made again 1460 as to whether there is a CJP in the machine 1463. If there is no CJP under the control of the processor, NJP (Q/
The process link for Q/PR/RDY (which was in PR/RDY but is currently under control of the machine) is Q/PR/RDY1.
466 (i.e., taken out of the queue from Q/PR/RDY), becomes a free process link, and is placed in the queue of the free process link queue of the process link semaphore (PLS) (9th Figure 805), free process link queue 1
466a. The contents of the boundary address register BAR are fetched 1464 and the NJP (currently CJP) ongoing process word RPW located in system base BAR plus 56 places the NJP identification in RPW, block 1465. Updated by The vacant indicator is set to 0 in the absence of CJP. Next, the contest indicator is set to 0 and the segment associator (AS of FIG.
132) is cleared, 1471, then process mode is entered, 1470. (Process mode indicates that the exception is handled by an ongoing process within the processor, rather than by the active system.) Next,
The firmware continues with CAB, 1480, and the asynchronous trap bit AB is checked to determine if it is set to a binary 1, 1481. If the AB bit is set to binary 1, the process ring number
A check is made to determine if PRN is greater than or equal to the asynchronous trap bit field ARN, 1482. (AB and ARN are located in the priority byte of each process's PCB and are meaningful when the process is in progress,
AB and ARU are determined from the RPW located at the system base BAR plus 56. )
AB and ARU in RPW BAR Plus 56
will be reset. The reason is the next step 148.
4 proceeds to the asynchronous trap routine which is concerned with the conditions that cause the asynchronous trap bit or the asynchronous ring number to be set in the first place. If not reset, the firmware will:
It indicates that something has happened where no real problem has occurred, so it should always proceed to the asynchronous trap routine 1484 and never be reset.
Referring again to decision blocks 1481 and 1482, either the AB bit is not set or the AB bit is set and
If the PRU is less than the ARU, the firmware continues to determine whether the processor is operating in normal mode or emulation mode. Therefore, to determine whether it is set to 0 or not,
If the DEXT number is checked and set to 0, the machine is operating in normal mode, 1487. If the DEXT number is not set to 0, you are operating in emulation mode, 148
6.

セマフオの本論 プロセスはプロセス・セグメントを共有するこ
とが可能であり、更に、データ・セグメントも共
有できることは既に述べたとおりである。この相
関性を有する機構のために、プロセスは互に協調
可能でなくてはならず、また、既に説明したシス
テムは1組のプロセス同期機能を有する。これ等
の機能を備えるために、セマフオと呼ばれるデー
タ構造が使用される。
Main Theory of Semaphoo As already mentioned, processes can share process segments and can also share data segments. Because of this correlation mechanism, processes must be able to cooperate with each other, and the systems described above have a set of process synchronization facilities. To provide these functions, a data structure called a semaphore is used.

セマフオは、すべての協調プロセスのアドレ
ス・ベースによつてレフアレンスされた、共有デ
ータ構造である。共有データ構造であるため、セ
マフオは、プロセスとエベント(イベント)また
は、同時に生じないリソースとを結合するために
使用される。既に説明したように、エベントと
は、他のプロセスにとつて関係のあるプロセスに
よつて観察される事象を意味する。エベントは、
非同期オペレーシヨンの完結またはリソースの利
用可能性を意味することもある。エベントは、実
施の或る段階に到達する他のプロセスまたは、メ
ツセージの到着のいずれかによつて発生可能であ
る。従つて、セマフオは、プロセスを待期してい
るエベントまたはリソースの存在を記憶すること
が可能でなくてはならない。一方、プロセスは、
エベントが発生する以前に、実施の或る段階に到
達することが可能である。この様な状態のもとに
おいて、セマフオは、エベントを待期しているプ
ロセスを記憶することが可能でなくてはならな
い。従つて、セマフオは、継続するためにエベン
トを待期しているプロセス、または、その代り
に、合同するためにプロセスを待期しているエベ
ントのいずれか早く発生した方を記憶する2重能
力を備えることが必要とされる。
A semaphore is a shared data structure referenced by the address base of all cooperating processes. As a shared data structure, semaphores are used to connect processes and events or resources that do not occur at the same time. As previously explained, an event refers to an event observed by a process that is related to another process. The event is
It can also refer to the completion of an asynchronous operation or the availability of resources. Events can occur either by other processes reaching a certain stage of implementation or by the arrival of a message. Therefore, a semaphore must be able to remember the existence of an event or resource that a process is waiting for. On the other hand, the process
It is possible to reach certain stages of implementation before the event occurs. Under such conditions, the semaphore must be able to remember which processes are waiting for the event. Thus, Semaphore has the dual ability to remember whichever event occurs first, a process that is waiting for an event to continue, or, alternatively, a process that is waiting for an event to join. That is required.

セマフオについて完全に説明するためには、先
ず、既に説明したシステムにおけるセマフオの関
係および所在について詳説することが必要であ
り、次に、各種データ・フオーマツトについて詳
しく説明し、最後に、システムにおけるその用途
とオペレーシヨンについて説明することが必要で
ある。
A complete discussion of semaphore requires first detailing its relationship and location in the system already described, then detailing the various data formats, and finally its use in the system. It is necessary to explain the operation.

第8図において、メイン・メモリの物理的構成
をセグメント・テーブルの論理的なグルーピング
として図示する。Gセグメントと称されるこれ等
のテーブルは、セマフオおよび関係情報を記憶す
るために使用される。更に詳細に説明すると、こ
れ等のGテーブルは2つの概念的に異るセグメン
トに分割され、その1つはGOセグメントであ
り、他の1つは多数のSDセグメントである。
In FIG. 8, the physical organization of main memory is illustrated as logical groupings of segment tables. These tables, called G segments, are used to store semaphore and relationship information. More specifically, these G-tables are divided into two conceptually distinct segments, one of which is the GO segment and the other one of which is a number of SD segments.

GOセグメントは、多数のプロセス・リンク
(PL)およびシステムのプロセス・リンク・セマ
フオ(PLS)を保持するために使用される。各々
のプロセス・リンクは4個のフイールドを含む。
即ち、1つはプロセスを代表するプロセスのネー
ムであり、第2のフイールドは、ABおよびARN
を含む当該プロセスの優先性を意味し、第3のフ
イールドは次のエントリへの接続リンクであり、
第4のフイールドはセグメントの相対アドレスを
含む。ネーム・フイールドは、プロセス・コント
ロール・ブロツク(PCB)JPネームに相当する
JPネームである。従つて、各プロセス・リンク
はその代表するPCBを指示するため、GOセグメ
ントの各プロセス・リンクは、PCBに対し1個の
2ワード・スタンド・インを提供する。優先性フ
イールドは、PCBのブライオリテイ・フイールド
を完全に真似たものである。リンク・フイールド
は、プロセス・リンクをキユーの中にオーダー
し、デイスパツチヤが順位に従つてプロセス・リ
ンクを見ることを可能にする機能をもつ。従つ
て、各プロセスは、プロセスをそのPCBにリンク
するための1個の2ワード・プロセス・リンクを
もつため、GOセグメントは、デイスパツチヤが
現在作動状態にある全てのプロセスを見ることを
可能にするための簡単な機構を備える。
The GO segment is used to hold a number of process links (PLs) and system process link semaphore (PLS). Each process link contains four fields.
That is, one field is the process name that represents the process, and the second field is AB and ARN.
, the third field is the connection link to the next entry,
The fourth field contains the relative address of the segment. The name field corresponds to the process control block (PCB) JP name.
It is a JP name. Therefore, each process link in the GO segment provides one two-word stand-in for the PCB, since each process link points to the PCB it represents. The priority field is a perfect imitation of the priority field in a PCB. The link field has the function of ordering process links into a queue and allowing dispatchers to view process links in order of rank. Therefore, the GO segment allows the dispatcher to see all processes that are currently active, since each process has one two-word process link that links the process to its PCB. Equipped with a simple mechanism to do so.

既に説明したように、プロセスは、4つの状
態、即ち、進行、準備、待期または保留(現時点
で作動状態に無い)状態のうちのいずれかにあ
る。現在作動中の進行状態にあるプロセス以外の
全てのプロセスは、プロセス・ネームおよび、プ
ロセス・ネームをもつプロセス・リンクが所在す
るキユーに従つて、GOセグメントに位置決めさ
れる。従つて、PCBによつて指示されるこれ等の
状態のみならず、GOセグメントのプロセス・リ
ンクは、デイスパツチヤを備えることにより、ア
クセスおよびオルタレーシヨンを容易にするよう
なキユー構成を可能にする。換言すれば、現在進
行中の各プロセスは、プロセス・リンク内にその
ネームを有し、各プロセス・リンクは、GOセグ
メントの多数のキユーのうちの1つの一部を構成
すると言うことができる。従つて、プロセス・ネ
ームはたゞ1個のプロセス・リンクにのみ現わ
れ、また、プロセス・リンクは、一時に、たゞ1
個のキユーにのみ付帯ることが可能である。プロ
セスの状態を変化させるデイスパツチヤに対して
要求される事は、プロセス・リンクをプロセスの
状態と関連した別のキユーに移転させる機能をも
つことである。従つて、GOセグメントにおける
プロセス・リンクの相互関係を変えることによ
り、容易に状態変換が達成される。
As previously discussed, a process can be in one of four states: progressing, preparing, waiting, or pending (not currently active). All processes other than those in the currently active progress state are positioned in the GO segment according to the process name and the queue in which the process link with the process name resides. Therefore, as well as these states dictated by the PCB, the process links of the GO segment can be configured with dispatchers to facilitate queue configuration for access and alteration. . In other words, each process currently in progress has its name in a process link, and each process link can be said to form part of one of a number of queues of GO segments. Therefore, a process name appears in only one process link, and a process link can only appear in one process link at a time.
It can only be attached to one queue. A requirement for a dispatcher that changes the state of a process is to have the ability to transfer a process link to another queue associated with the state of the process. Therefore, state transformation is easily achieved by changing the interrelationship of process links in the GO segment.

進行状態にあるプロセスはたゞ1つに限られる
ため、当該プロセス・リンクに対するキユー構成
は不必要である。たゞし、多数のプロセスが、準
備状態または待期状態にあることが可能である。
Since only one process is in progress, queue configuration for the process link is unnecessary. However, multiple processes may be in a ready or waiting state.

更に、1つのプロセスは、多数の種類のエベン
トのうちの任意の1つのエベントに対して待期状
態にあることが可能である。従つて、マシンのリ
ソースとなることのできるこれ等のプロセスに対
して1つのレデイ・キユー、即ち、Q/PR/
RDYが構成され、オペレーシヨンを継続するた
めにエベントまたはリソースを提供するために待
期状態にあるこれ等のプロセス対して多数の待期
キユー、即ちQ/PR/SまたはQ/PR/FLSが
存在する。既に説明したように、保留プロセスは
現在進行中のプロセスではないため、これ等の保
留プロセスに対してはキユーが構成されない。
Furthermore, a process can be in a state of anticipation for any one of a number of types of events. Therefore, one ready queue, i.e., Q/PR/
RDY is configured and there are a number of waiting queues, i.e. Q/PR/S or Q/PR/FLS, for these processes waiting to provide events or resources to continue operations. exist. As previously discussed, queues are not configured for pending processes because they are not currently in progress.

GOセグメントの展開図を第9図に示す。シス
テムにはたゞ1個のGOセグメントだけが存在す
る。GOセグメントは、全てのプロセス・リン
ク、即ち、システムによつてオペレーシヨン可能
な全てのプロセスに対する2ワード・スタンド・
インを提供する。
Figure 9 shows a developed view of the GO segment. There is only one GO segment in the system. The GO segment is a two-word stand-alone segment for all process links, that is, for all processes that can be operated on by the system.
Provide inn.

準備状態にある各プロセスは、そのリンク・フ
イールドによつて他のプロセスに結合され、レデ
イ・キユー、Q/PR/RDY、803cおよびd
と呼ばれるキユーに組み入れられる。レデイ・キ
ユーはヘツドとテイル、即ち、何等かの方法によ
つて限界を決定する最初および最後のプロセス・
リンクを備えなければならない。この限界決定
は、既に述べたように、プロセス・リンクの次の
フイールドによつて達成される。キユーのテイ
ル、即ち、803dは、次のリンク・フイールド
にゼロ・バリユーを付することによつて識別され
る。Q/PR/RDYのヘツドは、システム・ベー
ス・エリアにおけるフイールド、即ち、内部プロ
セス・キユー・ワード(IPOW)によつてコール
されるワードによつて指示される。このIPQW
は、レデイ・キユーのヘツドに所在するプロセ
ス・リンクに対するポインタを含む。従つて、デ
イスパツチヤは、IPQWによつてレデイ・キユー
のヘツドを位置決めし、次のリンク・フイールド
によつてQ/PR/RDYの全てのプロセス・リン
クのシーケシングを行なうことによつて全てのレ
デイ・プロセスを見ることができる。現在進行中
のプロセスが、例えば、待期状態のような他の状
態に移る場合には、デイスパツチヤは、Q/
PR/RDYのヘツドに位置するプロセス・リンク
を選出し、キユーから当該プロセス・リンクを除
外し、そのプロセス・コントロール・ブロツクを
見出すためにJPネームを使用する。これによつ
て、当該プロセスは新しく進行中のプロセスとな
り、デイスパツチヤの指示に従つて、準備状態か
ら進行状態に移行する。
Each process in the ready state is bound to other processes by its link field, ready queue, Q/PR/RDY, 803c and d.
It is incorporated into a group called Kyu. The ready key is the head and tail, i.e. the initial and final process of determining the limits by some method.
A link must be provided. This limit determination is achieved by the next field of the process link, as already mentioned. The tail of the queue, 803d, is identified by appending a zero value to the next link field. The head of Q/PR/RDY is pointed to by a field in the system base area, a word called the internal process queue word (IPOW). This IPQW
contains a pointer to the process link located at the head of the ready-queue. Therefore, the dispatcher can locate all ready queues by locating the head of the ready queue by IPQW and sequencing all process links of Q/PR/RDY by the next link field.・You can see the process. If a process currently in progress moves to another state, e.g. a waiting state, the dispatcher
Pick the process link located at the head of PR/RDY, remove it from the queue, and use the JP name to find its process control block. This causes the process to become a new, ongoing process and transition from the ready state to the progress state according to the dispatcher's instructions.

進行状態にあるプロセスはGOセグメントのプ
ロセス・リンクでは表示されない。その代りに、
システム・ベース・エリアに、ランニング・プロ
セス・ワードまたはRPWと呼ばれる2つのフイ
ールドを含むワードが所在する。上記の2つのフ
イールドのうち1つは、現在進行中のプロセスの
JPネームであり、他の1つは、PCBに保持され
るプライオリテイ・フイールドのコピイである。
デイスパツチヤが、レデイ・キユーのヘツドを現
在進行中のプロセスを比較して、セントラル・プ
ロセシング・ユニツトで制御されるプロセスを決
定する状態が生じた場合には、RPWとプロセ
ス・リンクを比較し、その後で所定の動作が実施
される。
Processes that are in progress are not displayed in the GO segment's process link. Instead,
In the system base area is a word containing two fields called the Running Process Word or RPW. One of the two fields above is for the process currently in progress.
JP name and the other is a copy of the priority field held on the PCB.
If a condition arises in which the dispatcher compares the ready-queue head with the currently underway process to determine which process is controlled by the central processing unit, it compares the RPW with the process link; After that, a predetermined operation is performed.

待期状態にあるプロセスは、特定のエベントが
生じたことを意味する信号またはメツセージを待
期している。同一信号またはメツセージに対し
て、1個以上のプロセスが待期している可能性も
あるので、この種の待期プロセスのキユーが必要
となることもありうる。従つて、待期状態にある
各プロセスも、2ワード・プロセス・リンクによ
つてGOセグメント内に表示され、これ等のプロ
セス・リンクは待期キユー内に配置される。1個
以上のセマフオが待期プロセスを有する可能性も
あるので、GOセグメント内のプロセス・リンク
のストリングによつて表示された多数のQ/
PR/Sが存在することもありうる。図によつて
説明するために、プロセスの待期キユー2つを8
03a−bおよび803e−gで示すことゝす
る。この種の各Q/PR/Sのヘツドは、次に説
明するように、自身のセマフオによつて指示され
るものとする。この称呼は、システム・ベースの
内部プロセツサ・キユー・ワードよつて指示され
るレデイ・キユーとは区別される。Q/PR/
RDYおよびQ/PR/Sは、両方とも、プロセス
が状態を変える場合のPおよびVインストラクシ
ヨンおよびデイスパツチヤ・ハードウエアによつ
て操作されるプロセス・リンクのキユーである。
デイスパツチヤまたはPまたはVインストラクシ
ヨンは、これ等のキユーのうちの1つから1つの
プロセスを取り除き、そのプロセスを他のキユー
にブレースすることが可能であり、また、デイス
パツチヤは、プロセスを進行状態とし、または、
進行状態から他の状態に変えることができる。
A process in the waiting state is waiting for a signal or message that means that a particular event has occurred. This type of queue of waiting processes may be necessary since more than one process may be waiting on the same signal or message. Therefore, each process in the waiting state is also represented in the GO segment by a two-word process link, and these process links are placed in the waiting queue. Since more than one semaphore may have waiting processes, the large number of Q/s indicated by the string of process links in the GO segment
PR/S may also exist. To illustrate with a diagram, the process's two waiting queues are
03a-b and 803e-g. Each such Q/PR/S head shall be pointed to by its own semaphore, as explained below. This designation is distinct from the ready queue, which is indicated by the system-based internal processor queue word. Q/PR/
RDY and Q/PR/S are both queues of process links operated by P and V instructions and dispatcher hardware when a process changes state.
A dispatcher or P or V instruction can remove a process from one of these queues and brace it to another queue, and the dispatcher can also in progress, or
You can change from one progress state to another.

待期プロセスQ/PR/S用プロセス・リンク
は、フオーマツトの点で、ゼロ・バリユウ・ネキ
スト・リンク・フイールドをもつプロセス・リン
クによつて指示されるキユーのテイルをもつた
Q/PR/RDYのプロセス・リンクと同じであ
る。待期プロセスのキユーのヘツドに対するポイ
ンタは、エベントを発信するために使用されるセ
マフオが必要とする特殊データ構造内に保持され
る。このセマフオは、後で詳しく説明するよう
に、セマフオで待期状態にあるプロセスのキユ
ー、即ち、Q/PR/Sのヘツド・プロセス・リ
ンクを指示するプロセス・キユー・ヘツド・ポイ
ンタ、PHQPを含む。
The process link for the waiting process Q/PR/S is, in terms of format, a Q/PR/RDY with the tail of the queue pointed to by the process link with a zero-value next link field. This is the same as process link. A pointer to the head of the waiting process's queue is maintained in a special data structure required by the semaphore used to dispatch the event. This semaphore contains a process queue head pointer, PHQP, which points to the head process link of the queue of the process waiting in the semaphore, that is, Q/PR/S, as will be explained in detail later. .

プロセスが、準備または待期状態から進行また
は保留状態に移る場合に、GOセグメント内のプ
ロセス・リンクを放棄する。従つて、この様にし
て放棄されたスペースは、他の用途に自由に使用
できる。一方、保留または進行状態にあるプロセ
スが準備または待期状態に移る場合には、GOセ
グメント内でプロセス・リンクを獲得しなければ
ならない。従つて、GOセグメントには記憶管理
の問題が含まれていることゝなる。デイスパツチ
ヤは、2ワード・プロセス・リンクを迅速に獲得
および解放する機能もたねばならない。この問題
を解決するために、GOセグメントには、ハード
ウエアによつて自動的に操作される別のキユーが
含まれる。このキユーは、新プロセスが導入され
る場合に使用することのできる全ての自由なリン
クを含む。プロセス・リンクの使用が解除される
場合、例えば、準備または待期プロセスが保留状
態に変わる場合には、自由なプロセス・リンクの
キユーに1個の自由なプロセス・リンクが追加さ
れる。準備または待期状態に移るプロセスを表示
するために新しいプロセス・リンクが必要とされ
る場合には、自由なプロセス・リンクのキユーか
ら1個のプロセス・リンクが取り出される。これ
らの動作は、主として、デイスパツチヤによつて
実施されるが、PおよびVインストラクシヨンま
たは開始および保留インストラクシヨンを使用す
ることもできる。現在作動状態にある全てのプロ
セスのネームを所定の時点において保持するに充
分なプロセス・リンクがGOセグメント内に含ま
れなければならない。
Abandon the process link in the GO segment when the process moves from the ready or waiting state to the proceeding or pending state. The space thus given up is therefore free for other uses. On the other hand, if a process that is in a pending or progress state is to move to a ready or waiting state, it must obtain a process link within the GO segment. Therefore, the GO segment involves memory management issues. The dispatcher must have the ability to quickly acquire and release two-word process links. To solve this problem, the GO segment includes another cue that is automatically operated by the hardware. This queue contains all free links that can be used when a new process is introduced. When a process link is decommissioned, for example when a ready or waiting process changes to a pending state, one free process link is added to the queue of free process links. When a new process link is needed to represent a process that is going into a ready or waiting state, one process link is taken from the queue of free process links. These operations are primarily performed by the dispatcher, but P and V instructions or start and hold instructions may also be used. Enough process links must be included in the GO segment to hold the names of all currently active processes at a given time.

自由なプロセス・リンクは、Q/PR/RDYお
よびQ/PR/Sの場合と同様の方法によつて一
列に配置され、キユー・テイルは、ゼロ・パリユ
ウ・ネキスト・リンク・フイールドをもつリンク
によつて指示される。自由なプロセス・リンク・
キユーのヘツドは、GOセグメントの前面に所在
するプロセス・リンク・セマフオ(PLS)901
と呼ばれる特殊データ構造内のフイールドによつ
て指示される。プロセス・リンク・セマフオは、
GOセグメント内の既知の場所に所在し、従つ
て、その位置決めを行うためのデイスパツチヤに
は何等問題は無い。従つて、GOセグメント内の
全てのプロセス・リンクは、何等かの方法によ
り、レデイ・キユー、多数の待期キユーのうちの
1つ、または、自由なプロセス・リンク・キユー
に結合される。
Free process links are aligned in a manner similar to that for Q/PR/RDY and Q/PR/S, and queue tails are placed on links with zero parity next link fields. You will be given instructions. Free process links
The head of the queue is Process Link Semaphore (PLS) 901 located at the front of the GO segment.
is indicated by a field in a special data structure called . The process link semaphore is
It is located at a known location within the GO segment, so there is no problem with the dispatcher for its positioning. Therefore, all process links within a GO segment are bound in some way to either a ready queue, one of a number of waiting queues, or a free process link queue.

たゞし、プロセス・リンク自身には、その所属
するキユーを識別する要素は何等含まれていない
事に注意されたい。GOセグメント内のプロセ
ス・リンクを見た場合、たゞ1個のプロセス・ネ
ーム、優先性およびネクスト・リンクに関するリ
ンク・フイールドだけが認められ、従つて、バツ
クワード・リンクまたは他の識別情報は存在しな
い。この様にして、プロセス・リンクを見ること
により、システムの現在の状況を決定することは
不可能である。
However, please note that the process link itself does not contain any element that identifies the queue to which it belongs. When looking at process links within a GO segment, only one process name, priority and next link link fields are allowed, so there are no backward links or other identifying information. . In this way, it is not possible to determine the current status of the system by looking at process links.

セマフオは、結合するためにプロセスを待期す
る状態にあるエベントを記憶する能力をも有する
事は既に説明した通りである。この機能を備える
ためには、残りの多数のGセグメントが使用され
る。残りのGセグメントは、セマフオ・デイスク
リプタ(SD)セグメントと呼ばれ、Gnセグメン
ト802nで構成される。SDセグメントは、セ
マフオ、セマフオによつて制御されるメツセー
ジ・リンクのキユーおよびセマフオ・デイスクリ
プタを含むセグメントである。プロセスJPのロ
ーカル・アドレス・ベース内のオーデイナリ・セ
グメントが、01に等しいGSビツトを含むセマフ
オ・デイスクリプタ・セグメントを有する場合に
は、セマフオ・デイスクリプタ・セグメントが参
照される。これ等のGSビツトは、セマフオ・デ
イスクリプタ・セグメントにアクセスする場合
に、継続して記述される。更に、同一の絶対アド
レスにおいて、2つのGセグメントがスタートす
ることは不可能である。従つて、GOセグメント
は、1つの絶対スターチング・アドレスをもつ最
初のセグメントであり、残りのSDセグメント、
即ち、G1からGnまでは、それぞれ自身の絶対
スターチング・アドレスを有する。
As already mentioned, semaphore also has the ability to store events that are waiting for a process to join. A number of remaining G segments are used to provide this functionality. The remaining G segments are called semaphore descriptor (SD) segments and are comprised of Gn segments 802n. The SD segment is a segment that includes a semaphore, a message link queue controlled by the semaphore, and a semaphore descriptor. A semaphore descriptor segment is referenced if an ordinary segment in the local address base of process JP has a semaphore descriptor segment containing the GS bit equal to 01. These GS bits are continuously written when accessing the semaphore descriptor segment. Furthermore, it is not possible for two G segments to start at the same absolute address. Therefore, the GO segment is the first segment with one absolute starting address, the remaining SD segments,
That is, G1 to Gn each have their own absolute starting address.

セマフオ・デイスクリプタ・セグメント
(SD)のレイアウトを第15図に示す。セマフ
オ・デイスクリプタ・セグメントの最初のワード
は、これに続く32ビツト・フオーマツトを備えて
いなければならない。最初の2つのビツトは、い
わゆるタグ・フオールトを指示する11ビツト・エ
ンコーデイングとしてのタグ・フイールドであ
る。このフイールド指示は、単に、SDセグメン
トのワードへのアクセスを制限するためのハード
ウエア機構である。次の2つのビツト、即ち、2
および3は、VRリング・ナンバーである。(リン
グ・ナンバーおよび関連構造は、特開昭50−
114934号公報の主題である)。リング・ナンバ
ー、VRは、セグメントのセマフオ・デイスクリ
プタを介してセマフオをVオペレーシヨン可能に
するための最大算定リングを規定する。次の2つ
のビツト、即ち、4および5は、セグメントのセ
マフオ・デイスクリプタを介してセマフオをPオ
ペレーシヨン可能にする最大算定リングを規定す
るPRリング・ナンバーである。ビツト6および
7は、セグメントのセマフオ・デイスクリプタを
介してセマフオをイニシヤライズされたセマフ
オ・カウント・オペレーシヨン可能にする最大算
定リングを規定するIRリング・ナンバーであ
る。セマフオ・デイスクリプタ・セグメントの
VR、PRおよびIRは、必ずしも、当該セグメント
内のセマフオに関係するとは限らず、当該セグメ
ント内に所在するセマフオ・デイスクリプタ15
02(後で詳述される)、即ち、これ等のデイス
クリプタを介してアクセスしたセマフオにのみ関
係するものである。従つて、セマフオは、当該セ
マフオ・デイスクリプタ・セグメントと異つたセ
グメント内に所在することもありうる。ビツト8
−15はゼロでなくてはならず、MBZとラベル
表示される。ビツト16−31は自由リンク・セ
マフオ・ポインタ、FLSPであり、セマフオ・デ
イスクリプタ・セグメントにおける相対的なアド
レス変移を意味する。自由リンク・セマフオ・ポ
インタは、システム内で2つの機能を提供する。
先ず、セマフオ・デイスクリプタ・セグメント内
のセマフオ・デイスクリプタのアドレスの上限と
して限定される。換言すれば、セグメントにおけ
る任意のセマフオ・デイスクリプタのセグメント
相対アドレスはFLSP未満でなくてはならない。
当該セグメント内の任意のセマフオ・デイスクリ
プタの相対アドレスがFLSP未満でない場合に
は、セマフオ・デイスクリプタは、当該セグメン
ト内のセマフオを指示していないことゝなる。第
2に、次に説明するフリー・リンク・セマフオ
(FLS)を指示する機能をもつ。第15図におい
て、番号1500は、セマフオ・デイスクリプ
タ・セグメントの最初のワードに関し、番号15
02は、多数のセマフオ・デイスクリプタのうち
の1つに関する。
The layout of the semaphore descriptor segment (SD) is shown in FIG. The first word of the semaphore descriptor segment must have the 32-bit format that follows. The first two bits are the tag field as an 11-bit encoding that indicates a so-called tag fault. This field indication is simply a hardware mechanism to restrict access to the words of the SD segment. The next two bits, i.e. 2
and 3 is the VR ring number. (The ring number and related structure are from Japanese Patent Application Laid-Open No.
114934). The ring number, VR, specifies the maximum ring count for allowing a semaphore to perform V operations via the segment's semaphore descriptor. The next two bits, 4 and 5, are the PR ring number that defines the maximum ring count that will allow the semaphore to perform P operations through the segment's semaphore descriptor. Bits 6 and 7 are the IR ring number that defines the maximum counting ring that allows a semaphore initialized semaphore count operation via the segment's semaphore descriptor. Semaphore descriptor segment
VR, PR, and IR do not necessarily relate to the semaphore within the segment, but rather the semaphore descriptor 15 located within the segment.
02 (described in more detail below), that is, they only concern semaphores accessed through these descriptors. Therefore, a semaphore may be located in a different segment than the semaphore descriptor segment. Bit 8
-15 must be zero and is labeled MBZ. Bits 16-31 are the free link semaphore pointer, FLSP, meaning relative address transitions in the semaphore descriptor segment. Free-linked semaphore pointers serve two functions within the system.
First, it is limited as the upper limit of the address of a semaphore descriptor within a semaphore descriptor segment. In other words, the segment-relative address of any semaphore descriptor in a segment must be less than FLSP.
If the relative address of any semaphore descriptor within the segment is not less than FLSP, then the semaphore descriptor does not point to a semaphore within the segment. Second, it has a function of instructing free link semaphore (FLS), which will be explained next. In FIG. 15, number 1500 refers to the first word of the semaphore descriptor segment;
02 relates to one of a number of semaphore descriptors.

セマフオ・デイスクリプタ・セグメントの最初
のワードのFLSPは、セマフオ・デイスクリプタ
1502に続くフリー・リンク・セマフオ150
4を指示する相対アドレスを提示する。フリー・
リンク・セマフオ、FLSは、FLSが所在する場合
には、当該セグメントにおけるフリー・メツセー
ジ・リンクのキユー、Q/ML/FLSを制御す
る。SDセグメントが、メツセージと共にセマフ
オを含む場合には、フリー・リンク・セマフオが
所在しなければならない。更に、全てのフリー・
メツセージ・リンクが現在使用されている場合に
は、プロセス、即ち、Q/PR/FLSを保持する
ためにFLSを使用しなければならない。
The FLSP of the first word of the semaphore descriptor segment is the free link semaphore 150 following the semaphore descriptor 1502.
Present a relative address pointing to 4. free·
The link semaphore, FLS, controls the free message link queue, Q/ML/FLS, in that segment, if the FLS is present. If the SD segment contains a semaphore along with a message, a free link semaphore must be present. In addition, all free
If message links are currently used, FLS must be used to hold the process, ie, Q/PR/FLS.

セマフオ・デイスクリプタが無い場合には、1
502は無効である。フリー・メツセージ・リン
クが無い場合には、1504によつて示されるセ
マフオFLSは不必要である。
If there is no semaphore descriptor, 1
502 is invalid. If there are no free message links, the semaphore FLS indicated by 1504 is unnecessary.

第15図において、1506は、セマフオの位
置を示す。メモリの部分を構成する可能性のある
セマフオを第16aおよび16b図に示す。ブロ
ツク1508は、メツセージ・リンクおよびフリ
ー・メツセージ・リンクを含む。これ等のリンク
の各々は、GOセグメント内のプロセス・リンク
と同じ方法でSDセグメント内に含まれる。この
メツセージ・エリアには、他のセグメントとして
他のデータが含まれることもあるが、一般に、セ
グメント内の各種セマフオと関連したメツセージ
が含まれる。
In FIG. 15, 1506 indicates the position of the semaphore. Semaphores that may form part of the memory are shown in Figures 16a and 16b. Block 1508 includes message links and free message links. Each of these links is included within the SD segment in the same way as process links within the GO segment. This message area generally includes messages associated with the various semaphore within the segment, although other data may be included in other segments.

各メツセージ・リンク1508は、1508a
に示すように、メツセージを構成する4個のワー
ドで構成される。最初の48ビツトはメツセージ・
ヘツダ・エリアを構成し、最後の84ビツトは、メ
ツセージ・ブロパ・エリアを構成する。メツセー
ジ・ヘツダは、1−1/2ワード、即ち、ビツト0
−47を含む。メツセージ自身は、リンクの残り
のスペース、即ち、2−1/2ワードまたはビツト
48−127を占める。
Each message link 1508 is 1508a
As shown in the figure, the message consists of four words. The first 48 bits are the message
The last 84 bits constitute the message blooper area. The message header is 1-1/2 words, or bit 0.
-47 included. The message itself occupies the remaining space in the link, 2-1/2 words or bits 48-127.

メツセージ・ヘツダ・フオーマツトは、ネキス
ト・リンク・フイールドとしてビツト0−15を
有する。従つて、このフオーマツトは、セマフ
オ・デイスクリプタ・セグメントにおけるキユー
のネキスト・メツセージ・リンクの相対アドレス
を含む。たゞし、リンクがキユーの最後に位置す
る場合には、ネキスト・リンク・フイールドはゼ
ロとなり、当該キユーが終端することを指示す
る。ビツト16−23は、メツセージに対するリ
ーズンを提供するリーズン・フイールドである。
リーズン・フイールドは、IOメツセージを有す
る状況においてのみ使用され、IOメツセージが
無い場合には無意味となる。ビツト24−27
は、メツセージ・プライオリテイ・レベル
(MPL)である。このフイールドは、メツセージ
と共にセマフオと関連して使用され、メツセー
ジ・プライオリテイ・レベルの最下値は最高優先
位に相当する。ビツト28−31はメツセージ・
タグである。このフイールドは、メツセージの性
質に関する基本情報を含む。メツセージ・タグ0
000は、メツセージが、PまたはVインストラ
クシヨンによつて発生されたものであることを示
す。メツセージ・タグ1000は、IOCがメツセ
ージを発生したことを意味する。ビツト32−4
8は、センダーのネームである。メツセージに応
じて、このフイールドには、メツセージを送つた
プロセスのネームJP、またはIOCメツセージ用チ
ヤンネル・ナンバーが含まれ、他の全ての場所に
はゼロとなる。
The message header format has bits 0-15 as the next link field. This format therefore contains the relative address of the queue's next message link in the semaphore descriptor segment. However, if the link is located at the end of the queue, the Next Link field will be zero, indicating the end of the queue. Bits 16-23 are the reason field that provides the reason for the message.
The reason field is only used in situations with an IO message and is meaningless in the absence of an IO message. Bits 24-27
is the message priority level (MPL). This field is used in conjunction with semaphore in conjunction with messages, with the lowest message priority level corresponding to the highest priority. Bits 28-31 are the message
It's a tag. This field contains basic information about the nature of the message. message tag 0
000 indicates that the message was generated by a P or V instruction. Message tag 1000 means that the IOC has generated a message. Bit 32-4
8 is the sender's name. Depending on the message, this field contains the name JP of the process that sent the message, or the channel number for the IOC message, and is zero everywhere else.

メツセージは、セマフオ・デイスクリプタ・セ
グメントに含まれ、GOセグメントには含まれな
い。セマフオおよびフリー・リンク・セマフオに
対するメツセージ・リンクの相互関係を第17図
に示す。メツセージは、PCBのゼネラル・レジス
タ0から3に供給される。従つて、Vオペレーシ
ヨンを実施しているプロセスは、メツセージをゼ
ネラル・レジスタ1から3までに記憶し、システ
ム・ハードウエアは、ゼネラル・レジスタ0から
1までにメツセージ・ヘツダを構成する。デー
タ・セグメントのスペースを使用せず、ゼネラ
ル・レジスタを使用することにより、ハードウエ
アが容易にメツセージを発することが可能とな
る。プロセスが待期状態にある場合には、そのレ
ジスタは、プロセス・コントロール・ブロツクに
おいて容易にアドレスされ、メツセージのフイー
ルドは、プロセスが進行状態に戻りさえすれば、
レジスタにおいて容易に試験することができる。
Messages are included in the semaphore descriptor segment and not in the GO segment. The interrelationship of message links to semaphore and free link semaphore is shown in FIG. Messages are provided to general registers 0-3 on the PCB. Thus, the process performing the V operation stores the message in general registers 1 through 3, and the system hardware configures the message header in general registers 0 through 1. By not using space in the data segment and using general registers, the hardware can easily issue messages. When a process is in the waiting state, its registers are easily addressed in the process control block, and the fields in the message are read once the process returns to the in-progress state.
Can be easily tested in a register.

メツセージ・リンクおよびフリー・メツセー
ジ・リンクもキユーを構成する。メツセージ・リ
ンクがセマフオに結合されると、セマフオのメツ
セージのキユー(Q/M/S)が構成される。メ
ツセージ・リンクが現在使用されていない場に
は、これ等のリンクはFLSセマフオ1504に結
合され、フリー・リンク・セマフオのメツセー
ジ・リンクのキユー、Q/ML/FLSが構成され
る。メツセージが提供されない場合におけるQ/
ML/FLSの構造はQ/PR/PLSに相似である
が、既に説明した多くの重要な点において異つて
いる。
Message links and free message links also constitute queues. When a message link is attached to a semaphore, the semaphore's message queue (Q/M/S) is constructed. Where message links are not currently in use, these links are coupled to FLS semaphore 1504 to form a queue of message links for free link semaphore, Q/ML/FLS. Q/When a message is not provided
Although the structure of ML/FLS is similar to Q/PR/PLS, it differs in many important respects as previously discussed.

上記の方法により、セマフオが所在する場所の
基本的なメモリ・アロケーシヨンが実施される。
第17および18図に示すように、第9および1
5図に示す構成のオペレーシヨンについて説明す
る前に、セマフオのデータ構成の各々について検
討することゝする。
The method described above performs basic memory allocation of where the semaphore resides.
9 and 1 as shown in Figures 17 and 18.
Before explaining the operation of the structure shown in FIG. 5, each of the data structures of the semaphore will be discussed.

第16図を参照しながら、プロセスとエベント
の結合を可能にするデータ・ストラクチヤについ
て説明する。第16図は、既に説明したシステム
において使用される5種類のセマフオを示す。こ
れ等のセマフオは、第16a図に示すメツセージ
無しのセマフオ1600、第16b図に示すメツ
セージを伴つたセマフオ1602であり、このセ
マフオは更に次の2種類、即ち、第16c図に示
されるGOセグメントに使用されるプロセス・リ
ンク・セマフオ901および第16d図に示され
るSDセグメント使用されるフリー・リンク・セ
マフオ1504である。
With reference to FIG. 16, a data structure that enables the coupling of processes and events will be described. FIG. 16 shows five types of semaphore used in the system described above. These semaphore are semaphore 1600 without message shown in FIG. 16a, semaphore 1602 with message shown in FIG. A process link semaphore 901 used for the process link semaphore 901 and a free link semaphore 1504 used for the SD segment shown in FIG. 16d.

既に述べたように、セマフオは、プロセスをエ
ベントまたはリソースに結合する。セマフオが、
エベントの発生に関する特定化された情報をトラ
ンスフアする目的をもたず、単に、エベントの発
生を指示する目的だけで用いられる場合には、第
16a図に示されるメツセージ・データ構造なし
のセマフオが用いられる。例えば、セマフオ16
00は、デイスク・ドライブ等のようなI/O装
置と組合わせることができるデイスク・ドライバ
の利用可能性に関する情報例えば、デイスクの要
請または、デイスクと共にプロセスが終了した事
の指示は、特定のセマフオ1600に対して発信
される。他のセマフオ1600は、他のI/O装
置または、他の量を指示するために使用できる。
これ等の例においては、各々の場合に、それぞれ
専用のセマフオ1600が使用される。セマフオ
1600は、ダブル・ワード、即ち、64ビツトで
構成される。そのフオーマツトを次に示す。最初
の4個のビツト、即ち、ビツト0から3まではセ
マフオ・タグ(STAG)フイールドであり、セマ
フオの特定の種類を指示するために、全てのセマ
フオに使用される。メツセージを判わないセマフ
オに対しては、STAGフイールドのエンコーデイ
ングは0000である。セマフオ1600のビツト4
−15は、セマフオ最高アカウント(SMC)を
指示するために使用される。SMCフイールド
は、セマフオを構成するか、または、セマフオに
結合されるリソースの最大数を指示する。ビツト
16−31は、セマフオを待期中のプロセスの実
際の数、またはセマフオを待期中のリソースの実
際の数を指示するために使用されるセマフオ・カ
ウント・フイールド(SCT)を含む。SMCと
SCTフイールドの間には、SCTフイールドの値
はSMCフイールドの値以上である事は絶対にあ
り得ないという関係が有り、その理由については
後で説明する。
As already mentioned, semaphore binds a process to an event or resource. Semapho is
If the semaphore without the message data structure shown in Figure 16a is used simply to indicate the occurrence of an event without the purpose of transferring specific information about the occurrence of the event, used. For example, Semapho 16
00 is information about the availability of a disk driver that can be combined with an I/O device such as a disk drive, etc. For example, a request for a disk or an indication that a process has terminated with a disk is 1600. Other semaphore 1600 can be used to indicate other I/O devices or other quantities.
In these examples, a dedicated semaphore 1600 is used in each case. Semaphore 1600 consists of a double word, or 64 bits. Its format is shown below. The first four bits, bits 0 through 3, are the semaphore tag (STAG) field, which is used for every semaphore to indicate the particular type of semaphore. For semaphore messages that do not understand the message, the encoding of the STAG field is 0000. Bit 4 of semaphore 1600
-15 is used to indicate the Semaphore Maximum Account (SMC). The SMC field indicates the maximum number of resources that constitute or are bound to the semaphore. Bits 16-31 contain the semaphore count field (SCT), which is used to indicate the actual number of processes waiting on a semaphore, or the actual number of resources waiting on a semaphore. SMC and
There is a relationship between the SCT fields that the value of the SCT field can never be greater than the value of the SMC field, and the reason for this will be explained later.

ビツト32−47は、プロセス・キユー・ヘツ
ド・ポインタ(PQHP)である。プロセス・キユ
ー・ヘツド・ポインタは、16ビツト相対変位を意
味し、セマフオと関連したGOセグメントにおけ
るプロセス・リンクのヘツドを指示する。プロセ
ス・キユー・ヘツド・ポインタは、SCTカウン
トがゼロであるか又は正である場合に、ゼロであ
る。理由は、セマフオを待期しているプロセスが
存在せず、従つて、指示すべきプロセス・リンク
が無いからである。SCTカウントが負であれ
ば、フイールドPQHPは、セマフオのキユーに配
置された最初のプロセスを指示する。ビツト48
−63はテナナント・プロセス・ネーム
(TEP)である。このフイールドは、セマフオに
満足なPオペレーシヨンを実施させた最後のプロ
セスのJPネーム含む。これにより、セマフオか
らリソースを護得する最後のプロセスのネーム
は、TEPフイールドによつて知る事が出来る。
エベント発生の指示、即ち、シグナルが与えられ
るに過ぎないため、TEPネームは、シグナルを
受信した最後のプロセスを指示する。
Bits 32-47 are the process queue head pointer (PQHP). The process queue head pointer is a 16-bit relative displacement that points to the head of the process link in the GO segment associated with the semaphore. The process queue head pointer is zero if the SCT count is zero or positive. The reason is that there is no process waiting for the semaphore, so there is no process link to point to. If the SCT count is negative, field PQHP points to the first process placed in the semaphore's queue. Bit 48
-63 is the tenant process name (TEP). This field contains the JP name of the last process that caused the semaphore to perform a satisfactory P operation. As a result, the name of the last process that acquires resources from Semaphore can be known from the TEP field.
Since only a signal is given, an indication that an event has occurred, the TEP name indicates the last process that received the signal.

セマホアが、イベントやリソースの存在あるい
はプロセスの存在を記憶しているかどうかを決め
るに当つてはセマホアのSCTフイールドのカウ
ントが決定要因となる。もし、SCTが正なら
ば、そのSCTの値はプロセスを待つているリソ
ースの数を示す。反対に、もしSCTが負なら
ば、そのSCTの絶対値はリソースを待つている
プロセスの数を示す。もしSCTフイールドがゼ
ロに等しければ、セマホアには待つているプロセ
スもリソースもないということになる。
The count in the semaphore's SCT field is the determining factor in determining whether the semaphore remembers the existence of an event, resource, or process. If SCT is positive, the value of SCT indicates the number of resources waiting for the process. Conversely, if SCT is negative, the absolute value of SCT indicates the number of processes waiting for the resource. If the SCT field is equal to zero, there are no processes or resources waiting on the semaphore.

SCTフイールドは、カウントを増加あるいは
減少させるため、セマホアのPおよびV操作とと
もに、用いられる。従つて、プロセスがあらかじ
め決められたセマホアからのリソースを要求する
P操作が実行された時、SCTフイールドは1減
少する。反対に、セマホアがリソースを利用でき
るかどうかを示すV操作では、そのセマホアの
SCTフイールドは1増加する。メツセージなし
には、いかなるメツセージもセマホアに接続され
ることはないが、このV操作およびP操作による
基本的な増加および減少は、メツセージのあるセ
マホアメツセージのないセマホアのいずれの
SCTフイールドにも適用される。
The SCT field is used in conjunction with the semaphore P and V operations to increment or decrement the count. Therefore, when a P operation is performed in which a process requests a resource from a predetermined semaphore, the SCT field is decremented by one. Conversely, a V operation that indicates whether a semaphore can use a resource
SCT field increases by 1. Although no message is connected to a semaphore without a message, the basic increases and decreases due to this V and P operation affect the connection between a semaphore with a message and a semaphore without a message.
Also applies to SCT fields.

イベントの発生に関する特定の情報の伝達が要
求された時には、メツセージ1602付きのセマ
ホアが用いられる。メツセージのないセマホアと
事情は同じで、メツセージのあるセマホアも、
各々の特定ので´き´事´、例えば給与額からの社会保
障費の控除あるいは連邦税といつた特定ので´き´事´
と関連している。従つて、セマホアは、各々あら
かじめ決められており、そのの操作システムは、
特定のイベントが発生した時に、特定のセマホア
を探し出すためのアドレスシラブルを構成してい
る。
A semaphore with message 1602 is used when transmission of specific information regarding the occurrence of an event is required. The situation is the same as for semahore without a message, and for semahore with a message,
Each specific event, such as the deduction of Social Security contributions from wages or federal taxes,
It is related to Therefore, each semaphore is predetermined, and its operating system is
It constitutes an address syllable for finding a specific semaphore when a specific event occurs.

メツセージセマホアタグフイールド(STAG)
は、ビツト0−3として示される。コード化に従
つて、STAGフイールドはセマホアが2つの型す
なわち、メツセージ・マネージメント・セマホア
かメツセージセマホアのいずれであるかを示す。
メツセージのあるセマホアの場合には、STAGフ
イールドはメツセージのキユー化の型を示す。
STAGフイールドが0001であれば、メツセージは
FIFO(フアースト・イン・フアースト・アウ
ト)方式によつてキユー化されることになる。も
し、STAGフイールドに0010のタグしかなけれ
ば、セマホアでは、LIFO(ラスト・イン・フア
ースト・アウト)メツセージのみがキユー化され
ることになる。もし、STAGフイールドが0011で
あれば、FIFOメツセージかLIFOメツセージの
いずれかのキユー化が認められることになる。
Message Semaphore Tag Field (STAG)
are shown as bits 0-3. According to the encoding, the STAG field indicates whether the semaphore is one of two types: a message management semaphore or a message semaphore.
In the case of a semaphore with a message, the STAG field indicates the type of queueing of the message.
If the STAG field is 0001, the message is
The data will be queued using the FIFO (first in first out) method. If the STAG field only has the 0010 tag, only LIFO (last in first out) messages will be queued in the semaphore. If the STAG field is 0011, queueing of either FIFO or LIFO messages is allowed.

メツセージ・マネージメントセマホアは、0101
のSTAGフイールドを有しており、これはメツセ
ージのキユー化がプロセスの優先順位に従つて行
なわれ、しかも優先順位の各レベルでFIFOの法
側が適用されることを示す。従つてメツセージ・
マネージメントセマホアは、優先順位レベルを用
いることによつてメツセージセマホアと区別さ
れ、主要なメツセージをより迅速に伝送すること
が可能になる。
Message management semaphore is 0101
STAG field, which indicates that messages are queued according to process priority, and that the FIFO law side is applied at each level of priority. Therefore, the message
Management semaphores are distinguished from message semaphores by the use of priority levels, allowing important messages to be transmitted more quickly.

ワード1602では、ビツト4−15がセマホ
アマキシム・カウントSMCを確認し、ビツト1
6−31がSCTカウントを確認する。これはワ
ード1600と同じである。従つて、メツセージ
は、信号と同じくデータの別の形であるが、非メ
ツセージセマホアに用いられる信号と同様な存在
するか存在しないかを示す性質を持つているとい
える。このためSCTフイールドはメツセージセ
マホアでは、非メツセージセマホアに於ける信号
と同じ様にメツセージによつて発生することにな
る。
In word 1602, bits 4-15 check the semaphore maximum count SMC and bit 1
6-31 confirms the SCT count. This is the same as word 1600. Therefore, a message is another form of data like a signal, but it can be said to have the same existence-or-absence property as the signal used in a non-message semaphore. Therefore, the SCT field is generated by a message in a message semaphore in the same way as a signal in a non-message semaphore.

ビツト32−47は、メツセージ・キユー・ヘ
ツド・ポインタ(MQHP)かプロセス・キユ
ー・ヘツド・ポインタ(PQHP)のいずれかを有
する。もしSCTのカウントが正ならば、セマホ
アで多くのメツセージがキユー化されていること
を示す。この場合、メツセージ・キユー・ヘツ
ド・ポインタは、メツセージ・キユーの最初のメ
ツセージを指すことになる。ビツト48−6は、
メツセージ・キユー・テール・ポインタを有して
おり、このポインタは、SCTのカウントが正の
時には、メツセージ・キユーの最後のメツセージ
を指す。もしSCTのカウントが負ならば、SCT
のカウントの絶対値は、そのセマホアでキユー化
されたプロセスの数を表わすことになる。この状
態では、PQHPは、プロセス・リンク・キユーの
ヘツドを指し、またメツセージ・キユー・テー
ル・ポインタはメツセージがないことが明らかで
あるから、当然ゼロを指すことになる。セマホア
のカウントがゼロに等しい状態では、いかなるメ
ツセージもまたプロセスも確認されていないか
ら、POHP、MOHPおよびMOTRはすべてゼロに
なる。
Bits 32-47 contain either a message queue head pointer (MQHP) or a process queue head pointer (PQHP). If the SCT count is positive, it indicates that many messages are queued on the semaphore. In this case, the message queue head pointer will point to the first message in the message queue. Bit 48-6 is
It has a message queue tail pointer, which points to the last message in the message queue when the SCT count is positive. If SCT count is negative, SCT
The absolute value of the count will represent the number of processes queued on that semaphore. In this state, PQHP points to the head of the process link queue, and the message queue tail pointer naturally points to zero since there is clearly no message. With the semaphore count equal to zero, POHP, MOHP, and MOTR are all zero because no messages or processes are acknowledged.

第16a図および16b図のセマホアは、プロ
セスの同期処理のための信号機構を示したもので
ある。これらはSDセグメントの1506に見出
される。しかし、この場合にはプロセスあるいは
メツセージのいずれかを記憶するためのメモリ・
スペースが必要になるという問題が生じる。この
メモリ・マネージメントの問題を軽減するために
第16d図に示されたフリー・リンク・セマホア
および第16c図に示されたプロセス・リンクセ
マホアが備えられている。これらのセマホアは、
各フリー・メツセージ・リンクおよびフリー・プ
ロセス・リンクの利用可能数を制御する。これに
ついて以下説明する。
The semaphore of Figures 16a and 16b illustrates a signaling mechanism for process synchronization. These are found at 1506 in the SD segment. However, in this case the memory for storing either the process or the message is
A problem arises in that space is required. To alleviate this memory management problem, a free link semaphore, shown in Figure 16d, and a process link semaphore, shown in Figure 16c, are provided. These semaphore are
Controls the number of each free message link and free process link available. This will be explained below.

第16c図は、プロセス・リンクセマホアPLS
901のデータ構造を示したものである。プロセ
ス・リンクセマホアは、用いられていないプロセ
ス・リンクすなわちプロセス名のないプロセス・
リンクをすべて結合する。プロセスの状態超が準
備OKの状態になつた時、最初の用いられていな
いリンクが、プロセス・リンクセマホアから取り
出される。このリンクには、他のフイールドに混
つて、新しく作動したプロセスの名前が与えられ
る。反対に、プロセスが中断したり完了したり、
あるいは再び作動状態に置かれた場合には、キユ
ー・リンクに入入つているプロセスの名前は除去
され、リンク・フイールドは、すべての使わわれ
ていないプロセス・リンクが保たれる様に変えら
れる。従つて、この機械では1つのリンクの次の
リンク・フイールドの内容を変えることが容易な
ので、GOセグメント中のリンクを物理的に再び
探知する必要なしにプロセス・リンク・キユーの
制御を行なうことができる。この結果、プロセ
ス・リンクはキユーからキユーへ伝送されること
になる。すべてのプロセスの名前は、GOセグメ
ントに記憶されるのであるから、プロセス・リン
クセマホアは、本質的に、システムの中に入つて
来る新しいプロセスが要求するプロセス・リンク
のための貯蔵所であるということができる。加え
て、プロセス・リンクセマホアにはビツト位置4
8−63のプロセス・リンク・キユー・ヘツド・
ポインタ(PLQP)があり、これがGOセグメン
ト・ベースに関するキユーの最初のプロセス・リ
ンクの相対アドレスを示す様になつている。各プ
ロセス・リンクには次のリンク・フイールドが含
まれており、これがプロセス・リンクセマホアに
結合されている次にプロセス・リンクを指し示
す。この様にして、プロセスが次々に導入され、
完了していくに従つて、GOセグメント内のプロ
セス・リンクは再配置されるが、最初のプロセ
ス・リンクさえ知つていれば、これによつて残り
のプロセス・リンクは、すべて探知できるので、
必要なのは最初のプロセス・リンクをあらかじめ
知つておくことだけということになる。
Figure 16c shows the process link semaphore PLS
901 shows the data structure of 901. A process link semaphore is an unused process link, i.e. a process with no process name.
Combine all links. When the process state becomes ready, the first unused link is removed from the process link semaphore. This link is given the name of the newly started process, among other fields. Conversely, when a process is interrupted or completed,
Alternatively, when it is reactivated, the name of the process entering the queue link is removed and the link field is changed so that all unused process links are preserved. Therefore, this machine allows for easy control of process link queues without the need to physically re-locate the links in the GO segment, since it is easy to change the content of the next link field for one link. can. This results in process links being transmitted from queue to queue. Since the names of all processes are stored in the GO segment, the process link semaphore is essentially a repository for process links required by new processes coming into the system. I can do it. In addition, the process links semaphore has bit position 4.
8-63 process link queue head
There is a pointer (PLQP) that points to the relative address of the queue's first process link with respect to the GO segment base. Each process link contains a next link field that points to the next process link that is bound to the process link semaphore. In this way, processes are introduced one after another,
As it completes, the process links in the GO segment are rearranged, but if you know the first process link, you can discover all the remaining process links.
All that is required is to know the first process link in advance.

第16d図に示すフリー・リンクセマホアは、
セグメントの末使用フリー・メツセージ・リンク
をすべて結合するという点でプロセス・リンクセ
マホアに類似している。但し、フリー・メツセー
ジ・リンクはGOセグメント中ではなく、前に述
べた様に、SDセグメント中に含まれている。
FLSは3ワードの長さのデータ構成を持つてお
り、以下の様なフオーマツトを有する。ビツト0
から3まではSTAGフイールドで、セマホアのタ
イプを示す。フリー・メツセージ・リンクセマホ
アの場合には、このSTAGフイールドは0000であ
る。ビツト4−15はMBZで示される様にゼロ
でなければならない。ビツト16−31は、フリ
ー・リンク・セマホアカウントで、このフイール
ドは、フリー・メツセージ・リンクを待つている
プロセスの数を示す。すなわちQ/PR/FLSで
ある。これは負の数で、プロセスがフリー・リン
ク・セマホアに結合されるに従つて減少すること
になる。FLSCT値がゼロの時には、フリー・メ
ツセージ・リンクを待つているプロセスがないこ
とになる。ビツト32−47は、プロセス・キユ
ー・ヘツド・ポインタPQHPであり、ピツト48
−63は、フリー・メツセージ・リンク・キユ
ー・ポインタFLQPである。プロセス・キユー・
ヘツド・ポインタは、メツセージ付きのセマホア
に関連してすべてに述べた。フリー・メツセー
ジ・リンク・キユー・ポインタは、フリー・リン
ク・セマホアに関連する最初のメツセージ・リン
クを示すポインタである。このフリー・メツセー
ジ・リンクは、次のリンク・フイールドを用い
て、LIFO順に継ぎわされる。ビツト64−71
はゼロでなければならない。また、ビツト72−
79は、フリー・リンクセマホアのクローバル・
ネーム(Gネーム)である。ビツト81−95は
論理チヤネル・カウント(CCT)で、フリー・
メツセージ・リンクを待つている論理チヤンネル
の数を示す。これはIO操作の時に発生するが、
ここでは、その論理チヤネルを経由するデパイス
がセマホアを経由するプロセスと通信するため、
フリー・メツセージ・リンクを待つており、従つ
て利用できるフリー・メツセージ・リンクはな
い。
The free links semaphore shown in Figure 16d is
It is similar to a process link semaphore in that it combines all free message links at the end of a segment. However, as mentioned above, the free message link is not included in the GO segment, but rather in the SD segment.
FLS has a data structure with a length of 3 words, and has the following format. Bit 0
The STAG field from 3 to 3 indicates the type of semaphore. For free message links semaphore, this STAG field is 0000. Bits 4-15 must be zero as indicated by MBZ. Bits 16-31 are the free link semaphore account, and this field indicates the number of processes waiting for a free message link. That is, Q/PR/FLS. This is a negative number and will decrease as processes are bound to free link semaphores. When the FLSCT value is zero, there are no processes waiting for a free message link. Bits 32-47 are the process queue head pointer PQHP;
-63 is the free message link queue pointer FLQP. process queue
Head pointer mentioned everything in relation to semaphore with message. The free message link queue pointer is a pointer to the first message link associated with the free link semaphore. This free message link is spliced in LIFO order using the next link field. Bit 64-71
must be zero. Also, bit 72-
79 is a free links semaphore cloval
Name (G name). Bits 81-95 are the logical channel count (CCT), which is the free
Indicates the number of logical channels waiting for message links. This occurs during IO operations, but
Here, the device via that logical channel communicates with the process via the semaphore, so
Waiting for a free message link, so there are no free message links available.

FLSのSDセグメントの中にメツセージを有す
るセマホアで、あるプロセスによりV操作が行な
われる時には、FLQPが指示する最初のメツセー
ジ・リンクは、メツセージの記憶のために使われ
る。次にFLQPは位置を変えて、利用できる次の
フリー・メツセージ・リンクを示す。反対に、
FLSのSDセグメントの中にメツセージを有する
セマホアで、P操作が行なわれる時には、前に情
報を持つてメツセージ・リンクは、フリーになつ
てFLSに結合しているキユーに返される。利用可
能なメツセージ・リンクがなく、しかメツセー
ジ・リンクへのリクエストが行なわれた時にの
み、FLS、PQHPが使われる。従つて、これは、
あるプロセスが、メツセージを伝え様としたがで
きなかつたことを示すことになる。この様に、
FLSはセグメント中の利用可能なフリー・メツセ
ージ・リンクをすべて追跡しているので、SDセ
グメントのメモリ・スペースが限られているとい
う問題に対して、メモリ・マネージメントの一つ
の解決を与えることになる訳である。
When a V operation is performed by a process on a semaphore that has a message in the SD segment of the FLS, the first message link pointed to by FLQP is used to store the message. FLQP then changes position to indicate the next free message link available. Conversely,
When a P operation is performed on a semaphore that has a message in the SD segment of the FLS, the message link with the previous information is freed and returned to the queue bound to the FLS. FLS, PQHP is used only when there are no message links available and only when a request for a message link is made. Therefore, this is
It indicates that a process tried to convey a message but was unable to do so. Like this,
Because FLS keeps track of all available free message links in a segment, it provides a memory management solution to the problem of limited memory space in SD segments. This is the translation.

セマホアがはたらくシステムの形やセマホア自
体について述べたので、次にセマホアの操作や機
能について述べることとする。第17図は、セマ
ホアのアドレスの方法を示したものである。ま
た、第17図と18図は、ともに各種のセマホア
およびそれに結合することのできるキユーを示し
たものである。第17図および18図をみれば、
全体のシステム・デザインに対するセマホアやキ
ユー構造の関係が明らかとなる。
Having described the form of the system in which the semaphore works and the semaphore itself, I will now discuss the operation and functions of the semaphore. FIG. 17 shows the semaphore addressing method. 17 and 18 both show various semaphores and queues that can be coupled to them. If you look at Figures 17 and 18,
The relationship of semaphore and queue structures to the overall system design becomes clear.

第17図では、第5図に関連して述べた様なセ
グメント化されたメカニズムの中を経由するセマ
ホアの位置の進み方が示してある。特にセマホア
はプロセスの同期化および多重化指令、すなわち
PあるいはV指令によつてアドレスされる。この
PあるいはV指令は20ビツトのアドレス・シラブ
ル(A.S)を有していり、これを解くためには、
アドレス・テーブル503,504の構造中を探
索しなければならない。なおアドレス・テール5
03,504には、プロセス・コントロール・ブ
ロツク400をセレクトするための作動中のプロ
セスのJP数が含まれている。次にSTN1700
およびSTE1702のの値を使つて、SDセグメ
ントを規定するセグメント・デスクリプタを探し
出す。この結果、セマホアデスクリプタの、メモ
リ内の位置を定める絶対アドレス計算が行なわれ
ることになる。セマホアデスクリプタ(第15図
1505a参照)には、PあるいはV指令がその
操作を実行するセマホアのセグメント化されたア
ドレス(即ちSTN、STEおよびSRA)が含まれ
ている。プロセスがセマホアアドレスを伝送し、
そのセマホアを経由してメツセージが返送される
ことを待つている(ICプロセス)システム内の
他のプロセスでは、GDアドレスがシステム上の
せまいJPプロセスのベースよりも広いベースに
適用されるので、セマホアのアドレスは、その
GDアドレス経由で与えられる。つまりセマホア
にアドレスを与える方法が2つ与えられている訳
である。このことは、セマホアおよびセマホアの
外部の構造が、異なるプロセスとアドレス・ベー
スを共有せざるを得ない様になつており従つて他
の方法でもアクセスできることから起る結果であ
る。
FIG. 17 shows the progression of semaphore positions through a segmented mechanism such as that described in connection with FIG. In particular, semaphores are addressed by process synchronization and multiplexing commands, ie P or V commands. This P or V command has a 20-bit address syllable (AS), and to solve it,
The structure of address tables 503, 504 must be searched. Furthermore, address tail 5
03,504 contains the JP number of the active process for selecting the process control block 400. Next is STN1700
Using the values of and STE1702, the segment descriptor that defines the SD segment is found. This results in an absolute address calculation that locates the semaphore descriptor in memory. The semaphore descriptor (see FIG. 15, 1505a) contains the segmented address (ie, STN, STE, and SRA) of the semaphore on which the P or V command performs its operation. A process transmits a semaphore address,
Other processes in the system that are waiting for messages to be sent back via that semaphore (IC processes) are unable to access the semaphore because the GD address applies to a wider base than the base of the narrow JP processes on the system. The address of
Given via GD address. In other words, there are two ways to give an address to a semaphore. This is a consequence of the fact that the semaphore and structures external to the semaphore are forced to share an address base with different processes and can therefore be accessed in other ways.

第16図に関連して述べた様に、P指令および
V指令によつてアドレスを受ける2つの基本的セ
マホアがある。即ち、メツセージ1600を有し
ないセマホアとメツセージ1602を有するセマ
ホアである。ここでは、まずメツセージを有しな
いセマホアについて検討し、次にメツセージを有
するセマホアを取り上げる。またここの記述は、
システムの開始からしばらく後のある時点に関す
るものである。この場合セマホアの構造は、第1
8図および17図に示されている様な、ある発展
段階にまで達していることになる。
As discussed in connection with FIG. 16, there are two basic semaphores that receive addresses by the P and V commands. That is, there are semaphores without message 1600 and semaphores with message 1602. Here, we will first consider semaphores without messages, and then consider semaphores with messages. Also, the description here is
It concerns a point in time some time after the start of the system. In this case, the structure of the semaphore is
It has reached a certain stage of development as shown in Figures 8 and 17.

システムによつて新しいプロセスが導入された
時、すなわちそのプロセスが停止の状態から準備
完了の状態に変つた時、プロセスの名前はGOセ
グメント802のプロセス・リンク805a−c
に書き込まれる(プロセスの初期設定を行なうメ
カニズムは、特開昭50−117324号公報の主題であ
る)。このプロセス・リンクはセマホアPLS90
1に結合したキユー、すなわちフリー・プロセ
ス・リンク・キユーから得られる。この結果、セ
マホアPLSレフアレンスが、新しいプロセスの名
前およびセマホアPLSのために用いられる最初の
リンクは、そのPLQPがキユーの中の次のフリ
ー・リンクを指す様に変えられることになろう。
例えば、第18図のPLQPの変位の場は805a
から805bを指す様に変えられるであろう。そ
して、プロセスがすでに開始され、機械のリソー
スを制御するための準備が完了したのであるか
ら、リンク805aは、準備完了した(レデイ)
キユーQ/PR/RDYの中に入れられる。しかし
ながら、プロセス・リンク805aがレデイ・キ
ユーの中に置かれる時には、デスパツチヤーによ
つて、それ自身の優先順位に基くLIFOの順序の
中に置かれることになる。すなわち、レデイ・キ
ユーの中の所与の形態のQ/PR/RDYの頭か、
あるいは、せいぜい6番目ということになる訳で
ある。
When a new process is introduced by the system, that is, when the process changes from a stopped state to a ready state, the name of the process is added to the process link 805a-c of the GO segment 802.
(The mechanism for initializing the process is the subject of Japanese Patent Application Laid-Open No. 117324/1983). This process link is Semaphore PLS90
1, ie, a free process link queue. As a result, the semaphore PLS reference will be changed to the name of the new process and the first link used for the semaphore PLS so that its PLQP points to the next free link in the queue.
For example, the displacement field of PLQP in Figure 18 is 805a
805b. Since the process has already been started and the preparations for controlling the machine's resources have been completed, the link 805a is ready.
Can be placed inside Kyu Q/PR/RDY. However, when process link 805a is placed in the ready queue, it will be placed in LIFO order based on its own priority by the dispatcher. i.e. the head of a given form of Q/PR/RDY in a ready-queue;
Or, at most, it would be number 6.

一度レデイ・キユーの中に入ると、プロセス
は、セントラル・プロセシング・サブシステムの
制御が行なえる様になるまで順番を待つことにな
る。この制御が行なえる様になつた後、プロセス
は、PあるいはV指令を経由するすべての通信信
号を含んだ手続きセグメントを、セントラル・プ
ロセシング・ユニツトに実行させることができる
様になる。P指令がメツセージを有しないセマホ
アで実行される時、すなわち、前に進む前に他の
プロセスからの信号を必要とするプロセスの場合
には、システム機構は、問いかけられているメツ
セージを有しない特定のセマホアを決定るために
アドレス・シラブルを利用することになろう。こ
のセマホアを探知した後、STAGフイールドは
0000であることをテストされ、STCフイールド
は、カウントがゼロより大きいか、ゼロより小さ
いか、あるいはゼロと等しいかを決めるためにテ
ストされることになる。もしSCTフイールドが
ゼロより大きい時は、メツセージを有しない特定
のセマホアは要求されているプロセスのために、
関連する特定のリソースが利用可能であることを
示している。この場合、プロセスは要求されてい
るリソースを取得し、それに続く操作が可能とな
る。まず、プロセスはSCTフイールドのカウン
トを1減らして、P指令を実行していることを示
す。次に、メツセージを有しないセマホアを占有
しているTEPフイールド中に、プロセスの名前
を記して、セマホアで指令通りの操作が行なわれ
ていることを示す。
Once in the ready queue, a process waits its turn until it can take control of the central processing subsystem. Once this control is in place, the process can cause the central processing unit to execute procedure segments that include all communication signals via P or V commands. When a P command is executed on a semaphore that does not have a message, i.e. for a process that requires a signal from another process before proceeding, the system mechanism The address syllable will be used to determine the semaphore. After detecting this semaphore, the STAG field is
0000 and the STC field will be tested to determine if the count is greater than, less than, or equal to zero. If the SCT field is greater than zero, a particular semaphore that does not have a message is
Indicates that a specific related resource is available. In this case, the process obtains the requested resource and can proceed with subsequent operations. First, the process decrements the count in the SCT field by 1 to indicate that it is executing the P command. Next, write the name of the process in the TEP field that occupies the semaphore that does not have a message, indicating that the semaphore is operating as instructed.

メツセージ1600を有しないセマホアの
SCTフイールドがゼロより小さいか、あるいは
ゼロに等しい時には、セマホアに関連したリソー
スが利用可能ではないことを示す。この結果、メ
ツセージを有しないセマホアでP指令を実行して
いるプロセスは、キユーQ/PR/S中に入つて
いくことになる。いいかえれば、リソースが利用
可能ではないのでプロセスがP指令を実行できな
いため、プロセスが自分自身を運行状態から取り
出してメツセージを有しないセマホアに結合させ
るということになる。このセマホアは、プロセス
が必要とするリソースが利用可能となつた時、プ
ロセスに信号を送る。従つて、プロセスはP指令
を実行するという自分自身の行為によつて、運行
状態から待機状態へ進む訳である。このことは第
17図の1600に示されている。図ではこの状
態が2度発生し、2つのプロセスがメツセージを
有しないセマホア上で待機していることになつて
いる。1602の数字を見ると、プロセス・キユ
ー・ヘツド・ポインタPQHPが、セマホア160
0から作られた最初のプロセス1720を指し、
それが今度はセマホアから作られた第2のプロセ
スを指す次のリンク・フイールドを保有している
ことが判る。この第2のプロセスは、値がゼロの
次のリンク・フイールドを有し、メツセージを有
しないセマホア上に作られたプロセスがもうない
ということを示している。プロセスが自分自身を
Q/PR/Sに伝送すると、SCTフイールドは減
少するが、セマホア1600上では有効な操作が
行なわれていないのであるから、プロセスの名前
はTEPフイールドには記されない。
Semaphore without message 1600
When the SCT field is less than or equal to zero, it indicates that the resource associated with the semaphore is not available. As a result, a process executing a P command on a semaphore that does not have a message enters the queue Q/PR/S. In other words, the process cannot execute the P command because the resource is not available, so the process takes itself out of service and binds to a semaphore that does not have a message. This semaphore signals the process when the resources it needs become available. Therefore, a process advances from the active state to the standby state by its own act of executing the P command. This is illustrated at 1600 in FIG. In the figure, this situation occurs twice, with two processes waiting on a semaphore with no messages. Looking at the number 1602, the process queue head pointer PQHP is semaphore 160.
Refers to the first process 1720 created from 0,
We see that it now has the next link field pointing to the second process created from the semaphore. This second process has a next link field with a value of zero, indicating that there are no more processes created on the semaphore that have no messages. When a process transmits itself to Q/PR/S, the SCT field is decremented, but since no valid operations are taking place on semaphore 1600, the process's name is not written in the TEP field.

プロセスがメツセージを有しない型のセマホア
1600上でV操作を完了した時、すなわちプロ
セスがリソースの使用を終了し、終了したことを
示す信号をセマホアに送る必要がある時には、
SCTフイールドはセマホアの状態を決めるため
に再びテストされる。
When a process completes a V operation on a type of semaphore 1600 that has no messages, that is, when the process is done using the resource and needs to signal the semaphore that it is finished,
The SCT field is tested again to determine the state of the semaphore.

セマホアがゼロより大きいSCTカウントを有
する時、すなわち利用可能なリソースがある時あ
るいはカウントがゼロと等しい時には、カウント
は1増加して、プロセスが使用したリソースが他
のプロセスによつても利用可能であることを示
す。この場合、V指令を実行しているプロセス
は、そのまゝ運行状態を続けることになる。
When a semaphore has an SCT count greater than zero, i.e. when there are resources available or when the count is equal to zero, the count is incremented by one and the resources used by the process are also available for use by other processes. Show that something is true. In this case, the process executing the V command will continue to run.

しかし、第17図に示した様にSCTカウント
がゼロより小さくて、Q/PR/Sの中で、リソ
ースを待つている他のプロセスがあることを示し
ている場合には、V指令によるリソースの放棄
は、セマホアと結合している最初のプロセス17
20を通り抜けて、キユーQ/PR/RDY中に入
る。そしてこれに加えて、SCTカウントは1だ
け増加する。デスパツチヤーはセマホアからの信
号を取り、セマホア上で待つているプロセス17
20のPCBをレデイの状態に置く。プロセスがレ
デイの状態になると、プロセスはキユーQ/
PR/RDY上に置かれる。このキユーは、レデイ
の状態にある、いいかえればCPUが利用可能に
なることを待つているすべてのプロセスを接続す
る。プロセスは優先順位に従つてQ/PR/RDY
中にキユー化される。各々の優先順位のレベルで
は、FIFOあるいはLIFO法則が適用される。こ
の中FIFO法則は、プロセスがキユー化の前に待
機状態にある時適用され、LIFO法則はプロセス
がキユー化の前に運行状態にある時適用される。
次に運行状態にある現在のプロセスが、レデイ・
キユーの先頭のプロセスとの優先順位をきめるた
めにテストされる。この場合注意しなければなら
ないのは、レデイ・キユーの先頭のプロセスは、
丁度レデイの状態に置かれたセマホア上で、前か
ら待機していたプロセスであることもあるしそう
でないプロセスであることもあるという点であ
る。さて、どちらのプロセスが、すなわち運行中
のプロセスとレデイ・キユーの先頭にあるプロセ
スのいずれが高い優先順位を持つているかのテス
トが行なわれると、優先順位の高いプロセスが運
行状態に入つてくる。従つて、第17図で、もし
V操作がセマホア1600上で遂行されれば、プ
ロセス・リンク1720を指しているヘツド・ポ
インタは、そのプロセスが信号を受けるプロセス
であることを示すことになろう。するとプロセ
ス・リンク1720はレデイ・キユー803中に
置かれ、セマホア1600のSCTカウントはマ
イナス1(−1)に増加することになる。更に、
セマホア1600のPQHPポインタは、プロセ
ス・リンク1722を指して、これがリソースが
利用可能になつた時信号を受ける次のプロセスで
あることを示す。
However, as shown in Figure 17, if the SCT count is less than zero, indicating that there is another process waiting for resources in Q/PR/S, then The abandonment of the first process 17 combined with the semaphore
Pass through 20 and enter Kyu Q/PR/RDY. And in addition to this, the SCT count increases by 1. The dispatcher takes the signal from the semaphore and the process 17 waiting on the semaphore
Place 20 PCBs in ready state. When a process becomes ready, it
Placed on PR/RDY. This queue connects all processes that are ready, or waiting for CPU to become available. Processes are Q/PR/RDY according to priority
It is queued inside. At each priority level, FIFO or LIFO rules apply. Among them, the FIFO law is applied when a process is in a waiting state before being queued, and the LIFO law is applied when a process is in a running state before being queued.
The current process in the running state is then ready.
Tested to prioritize processes at the head of the queue. In this case, you must be careful that the first process of Ready/Queue is
The process may or may not have been waiting on a semaphore that has just been placed in a ready state. Now, when a test is performed to determine which process has higher priority, the running process or the process at the head of the ready queue, the process with the higher priority will enter the running state. . Thus, in FIG. 17, if a V operation is performed on semaphore 1600, the head pointer pointing to process link 1720 will indicate that the process is the one receiving the signal. . Process link 1720 is then placed in ready queue 803, and the SCT count of semaphore 1600 increases to minus one (-1). Furthermore,
Semaphore 1600's PQHP pointer points to process link 1722, indicating that this is the next process to receive a signal when the resource becomes available.

メツセージ1602を有する型のセマホアは、
第17図1706および第18図1806に示し
てある。メツセージを有するセマホアでP指令が
実行されている時は、セマホア自身の状態を決定
するためにSCTフイールドが確認を受ける。カ
ウントがゼロより大きい時は、セマホアQ/M/
S上のメツセージのキユーを示している。これは
セマホア上で、それ以前にあるプロセスがV操作
を完了したことから起る結果で、このためあるメ
ツセージがセマホアに結合し、同時にカウントは
ゼロから正の数に増加することになる。セマホア
1706には、メツセージ1708と1710が
結合されているから、メツセージ1708は、P
操作を実行している現在のプロセスのゼネラル・
レジスター中に転写される。メツセージの内容を
伝送するのに加えて、メツセージ・リンク170
8中にあつた情報はフリーになつたのであるか
ら、メツセージ・リンク1708は、フリー・リ
ンクセマホアのメツセージ・キユーの中に入るこ
とになる。セマホア1706のカウントは、1減
つてプラス1(+1)となり、メツセージ・キユ
ー・ヘツド・ポインタは、メツセージ・リンク1
710がセマホア1706に結合される次のメツ
セージであることを示す様に変えられる。また、
1710はメツセージ・リンクの中の最後のメツ
セージであるから、メツセージ・キユー・テー
ル・ポインタは変わらない。しかし、メツセージ
が1706上でQ/M/Sに加えられた時は、
SCTフイールドは1増加し、メツセージ・キユ
ー・ヘツド・ポインタは変らず、メツセージ・キ
ユー・テール・ポインタは、FIFOキユー化を行
なうメツセージ・リンクによつて、加えられたメ
ツセージを指すことになる。LIFOあるいは優先
順位のキユー化が指示されている時は、結果とし
て起るキユーは、適当な序列を示すことになろ
う。
A semaphore of type with message 1602 is
This is shown in FIG. 17 1706 and FIG. 18 1806. When a P command is executed on a semaphore that has a message, the SCT field is checked to determine the state of the semaphore itself. When the count is greater than zero, semaphore Q/M/
It shows the message queue on S. This is the result of a process previously completing a V operation on the semaphore, causing a message to bind to the semaphore and at the same time the count increases from zero to a positive number. Since messages 1708 and 1710 are combined in semaphore 1706, message 1708 is
General command of the current process performing the operation
transferred into the register. In addition to transmitting the content of the message, the message link 170
Since the information in 8 is now free, message link 1708 will be included in the message queue of the free link semaphore. The count of semaphore 1706 decreases by 1 to plus one (+1), and the message queue head pointer changes to message link 1.
710 is changed to indicate that it is the next message to be bound to semaphore 1706. Also,
Since 1710 is the last message in the message link, the message queue tail pointer remains unchanged. However, when the message was added to Q/M/S on 1706,
The SCT field is incremented by one, the message queue head pointer remains unchanged, and the message queue tail pointer now points to the message added by the message link doing FIFO queueing. When LIFO or priority queuing is indicated, the resulting queue will exhibit the appropriate ordering.

メツセージ・リンクがキユーQ/ML/FLSに
加えられた時には、全体として802nで示され
るSDセグメントに対応するFLSセマホア上でテ
ストが行なわれる。これらのテストによつて、あ
るプロセスが、フリー・メツセージ・リンク上で
待機していたかどうかが決められる。現在運行中
のプロセスによつて、あるメツセージ・リンクが
フリーとなるのであるから、もし他のプロセスが
フリー・メツセージ・リンクを待つているのであ
れば、この別のプロセスが有しているメツセージ
は、フリーになつたメツセージ・リンク中に転写
されることになろう。しかし、この例では、フリ
ー・メツセージ・リンクが利用可能であつたこ
と、すなわち1712,1714および1716
がフリー・メツセージ・リンクであること、従つ
て、フリー・メツセージ・リンクを待つているプ
ロセスがないことを示している。従つてこのステ
ツプは実行されていないことになる。
When a message link is added to Q/ML/FLS, a test is performed on the FLS semaphore corresponding to the SD segment, generally designated 802n. These tests determine whether a process was waiting on a free message link. Since a message link is freed by the currently running process, if another process is waiting for a free message link, the message held by this other process will be , will be transcribed into the now free Message Link. However, in this example, free message links were available, i.e. 1712, 1714 and 1716.
indicates that is a free message link, and therefore there are no processes waiting for a free message link. Therefore, this step has not been executed.

P指令もしくはP命令、Pインストラクシヨン
が、あるメツセージによつて、セマホアで実行さ
れている時に、SCTカウントがゼロより小さけ
れば、これは、Q/PR/Sがすでに確立してい
ることを示している。この結果、P操作を実行し
ているプロセスは、セマホア上で待期しているプ
ロセスの1つとなり、従つて、自分自身をキユー
に結合させることになる。このため、この例で
は、第18図およびメツセージを有するセマホア
1800を見れば明らかな様に、プロセスはGO
セグメント802からフリー・プロセス・リンク
を獲得し、自分自身をセマホア1800に結合し
ているプロセス・リンク1802に結合させ、セ
マホア1800から作られているQ/PR/Sの
キユーの長さをのばすことになる。(SCTを−5
に減少させる)。
If the SCT count is less than zero when a P-command or P-command or P-instruction is executed in a semaphore by a message, this means that Q/PR/S has already been established. It shows. This results in the process performing the P operation becoming one of the processes waiting on the semaphore and thus binding itself to the queue. Therefore, in this example, the process is GO
Acquire a free process link from segment 802, attach itself to process link 1802 that is attached to semaphore 1800, and increase the length of the Q/PR/S queue created from semaphore 1800. become. (SCT -5
).

第17図のセマホア1704で示される様に、
SCTカウントがゼロの場合には、P操作がSCT
カウントをマイナス1(−1)に減少させ、セマ
ホア1704がそれを指す様にかえるのであるか
ら、セマホアからプロセスQ/PR/Sのキユー
が作られることになる。但し、ここで、注意すべ
きことは、この操作は、プロセス・リンクが利用
可能かどうかによつて変つてくるということであ
る。しかし、この発明の目的に関しては、それを
ここで述べる必要はないと思われる。
As shown by semaphore 1704 in FIG.
If SCT count is zero, P operation is SCT
Since the count is decreased to minus one (-1) and the semaphore 1704 is changed to point to it, a queue for process Q/PR/S is created from the semaphore. However, it should be noted that this operation depends on whether the process link is available. However, for the purpose of this invention, it is not deemed necessary to state it here.

プロセスがメツセージセマホア上でV操作を遂
行している状態では、プロセスは運行状態を続け
ることを当然期待している。但し、プロセスは、
その有するメツセージから除外されなければなら
ない。このメツセージには、他のフイールド中に
メツセージを送つたプロセスのプロセス名が含ま
れている。従つて、1つのセマホアを通つて、多
くのプロセスが情報を送ることができることにな
る。そしてこの情報が単なる信号ではなくメツセ
ージであれば、それには送り手の名前が付けられ
る。これらのメツセージは、従つて、他のメツセ
ージとは互いに明確に区別できる。そしてSDセ
グメントのメモリ・スペース1508をそれを記
憶するのに使うことができる。
When a process is performing a V operation on a message semaphore, the process naturally expects to remain operational. However, the process is
must be excluded from the message it contains. This message contains the process name of the process that sent the message in other fields. Therefore, many processes can send information through one semaphore. And if this information is a message rather than just a signal, it is labeled with the sender's name. These messages are therefore clearly distinguishable from each other. The SD segment's memory space 1508 can then be used to store it.

更に詳しく説明すると、V指令を実行するに当
つて、第18図のセマホア1800の状態の様に
SCTフイールドがゼロより小さければ、あるプ
ロセス1802bが、送られるべきメツセージを
待つていることになる。この結果、V指令もしく
はV命令、Vインストラクシヨンを実行している
プロセスのメツセージは、V指令が行なわれてい
るセマホア1800に結合されているプロセス・
リンク1802bが示しているPCB中に書き込ま
れることになろう。のメツセージを受けたプロセ
スは、次にレデイ・キユーQ/PR/RDY803
中に入り、V操作を実行した現在のプロセスは、
もしそれがレデイ・キユーの頭にあるプロセスよ
り高い優先順位をもつていれば、そのまゝ運行を
続けることになる。セマホア1800のカウント
は1増加してマイナス3(−3)となり、PQHP
は、プロセス・リンク1802aを指す様に変え
られる。
To explain in more detail, when executing the V command, the state of the semaphore 1800 in FIG.
If the SCT field is less than zero, a process 1802b is waiting for a message to be sent. As a result, the message of the process executing the V command, V command, or V instruction is transmitted to the message of the process connected to the semaphore 1800 in which the V command is executed.
It will be written into the PCB indicated by link 1802b. The process that receives the message then calls Lady Q/PR/RDY803.
The current process that went in and performed the V operation is
If it has a higher priority than the process in the ready queue's head, it will continue to run. The count of Semahore 1800 increases by 1 to minus 3 (-3), and PQHP
is changed to point to process link 1802a.

SCTカウントが、第17図のメツセージ17
04および1706を有するセマホアの状態の様
にゼロに等しいかゼロより大きければ、これはメ
ツセージに待期しているプロセスがないことを示
している。言い換えれば、結合するプロセスを待
つているメツセージがあるともいえるであろう。
従つて、現在運行中のプロセスによつて与えられ
たメツセージは、もしセマホア1704に送られ
ればQ/M/Sを形成し、もしセマホア1706
に送られれば、すべに形成されたQ/M/Sに加
わることになる。このいずれの場合にも、最初に
行なわれるテストは、Q/ML/FLSからフリ
ー・メツセージ・リンクが利用可能であるかどう
かに関することである。この例では、利用可能な
フリー・メツセージ・リンクが、1712,17
14,1716の3つあるから、プロセスは、そ
の操作を経由してメツセージを送ることができ
る。この結果、最初のフリー・メツセージ・リン
ク即ち1712が使用されて、メツセージがフリ
ー・メツセージ・リンクに送られる。このリンク
は、アドレスを受けたセマホアのキユーQ/M/
Sに結合され、V操作を実行し、メツセージを送
つているプロセスは、運行を続けることになる。
アドレスを受けたセマホアは、そこでそのSCT
フイールドのカウントが1増加する。
The SCT count is message 17 in Figure 17.
If equal to or greater than zero, such as the state of the semaphore with 04 and 1706, this indicates that no process is expecting the message. In other words, there are messages waiting for a process to combine them.
Therefore, a message given by a currently running process will form a Q/M/S if sent to semaphore 1704 and if sent to semaphore 1706.
If sent to , it will join the already formed Q/M/S. In either case, the first test performed is as to whether a free message link is available from the Q/ML/FLS. In this example, the available free message links are 1712,17
14,1716, a process can send messages via that operation. As a result, the first free message link, 1712, is used to route the message to the free message link. This link is for Semahore's Q/M/
Processes coupled to S, performing V operations, and sending messages will continue to run.
The semaphore that receives the address then uses its SCT
The field count increases by 1.

しかし、第18図で示されている様に、FLQP
=0,1504で、利用可能なフリー・メツセー
ジ・リンクがない場合には、V指令を実行してい
るプロセスは、メツセージを送ることができな
い。なお、フリー・メツセージ・リンクが、Q/
ML/FLS上でキユー化されていても、Q/PR/
FLS上にプロセスが待機していることはあり得
る。さてこの様な場合には、このプロセスは、フ
リー・メツセージ・リンクが利用可能な状態にな
るまで待機の状態にとどまらなければならない。
この状態では、プロセス・リンクはGOセグメン
ト802から得られ、Q/PR/FLS1804中
のフリー・リンクセマホア1504に結合され
る。FLSに結合されることによつて、プロセスが
そのメツセージを送ろうとした時には、利用可能
なフリー・メツセージ・リンクがないことが表示
される。その後フリー・メツセージ・リンクが利
用可能になつた時には、プロセスはそのメツセー
ジを送ることができ、FLSセマホアから除かれ
る。この様に、第17図と第18図は明瞭に対比
できる形になる。第18図では、利用可能なフリ
ー・メツセージ・リンクがないので、フリー・リ
ンクセマホアにはプロセスが結合されている。一
方第17図では、FLSセマホアに結合されてい
る。利用可能なフリー・メツセージ・リンクが存
在する。従つて、第17図では、FLQPフイール
ドは、利用可能な最初のフリー・メツセージ・リ
ンクを指しているのに対して、第18図は、利用
可能なフリー・リンクがなく、FLQPはゼロに等
しくなつている。また、PQHPフイールドは、
FLSセマホアに結合されている最初のプロセスを
指している。
However, as shown in Figure 18, FLQP
=0,1504 and there are no free message links available, then the process executing the V command cannot send a message. Please note that the free message link is Q/
Even if it is queued on ML/FLS, Q/PR/
It is possible that processes are waiting on the FLS. Now, in such a case, the process must remain in a waiting state until a free message link becomes available.
In this state, process links are obtained from GO segment 802 and coupled to free links semaphore 1504 in Q/PR/FLS 1804. By binding to FLS, when a process attempts to send its message, it will be shown that there are no free message links available. Later, when a free message link becomes available, the process can send its message and is removed from the FLS semaphore. In this way, FIGS. 17 and 18 can be clearly compared. In FIG. 18, the process is bound to the free link semaphore because there are no free message links available. On the other hand, in FIG. 17, it is connected to the FLS semaphore. There are free message links available. Therefore, in Figure 17, the FLQP field points to the first free message link available, whereas in Figure 18, there are no free links available and FLQP is equal to zero. It's summery. In addition, the PQHP field is
Points to the first process bound to the FLS semaphore.

第17図および18図には、このメツセージの
タイプのセマホアが、共に1つ以上示されてい
る。各セマホアには待機中のプロセスがあり得る
から、結果として多くのQ/PR/Sがあり得る
ことになる。これらの各々はGOセグメントにあ
るプロセス・リンクのキユーによつてあらわされ
ている。これをグラフで示したのが、第18図の
1802,1804,1808である。これらは
セマホアに結合されているGOセグメント中にプ
ロセス・リンクを有している。加えて、他のSD
セグメント(ここには示されていない)もセマホ
アをもつていて、GOセグメント中でプロセス・
リンクを結合させることができるということもあ
り得る。
17 and 18 both show one or more semaphores of this message type. Since each semaphore can have waiting processes, there can be many Q/PR/Ss as a result. Each of these is represented by a queue of process links in the GO segment. This is illustrated in graphs 1802, 1804, and 1808 in FIG. These have process links in GO segments that are connected to semaphores. In addition, other SD
The segment (not shown here) also has a semaphore, and processes and
It is also possible that links can be combined.

以前に述べた様に、セマホアは、継続するめに
イベントを待つているプロセスか、あるいはそれ
と結合するためにプロセスを待つているイベント
のいずれかが以前に発生したことを記憶しておく
という2重の能力を持つていなければならない。
これらの概念は、それぞれ、Q/PR/Sおよび
Q/M/Sで示される。これらのキユーのセマホ
アに対する関係を見ると、セマホア上のメツセー
ジのキユーと、セマホア上のプロセスのキユーと
は、完全に正反対の概念だということがわかる。
データ構造すなわちセマホアは、このいずれかを
保有していることになる。プロセスがP操作を実
行し終つて、しかもP操作で要求されたリクエス
トを完了するための利用可能なイベントもリソー
スも存在しない時には、セマホアは、セマホア
Q/PR/S上にプロセスのキユーを形成するこ
とになる。反対にイベントあるいはリソースが発
生して、しかもこのイベントかリソースを待つて
いるプロセスが存在しない時には、セマホアは、
セマホアQ/M/S上にメツセージのキユーを形
成することになる。これらは各々セマホアの
SCTフイールドによつて示される。従つて、も
しセマホアのSCTカウントが正ならば、それ
は、プロセスを待つているメツセージが存在する
こと、およびその結果、セマホア上にメツセージ
のキユーが形成されていることを示している。も
しセマホアのSCTカウントが負ならば、それ
は、メツセージあるいはイベントを待つているプ
ロセスが存在することおよび、セマホア上にプロ
セスのキユーが形成されたことを示している。も
しセマホアのカウントがゼロならば、それは待機
中のプロセスもメツセージも存在せず、またキユ
ーも存在しないことを示している。
As mentioned earlier, semaphores have the dual purpose of remembering that either a process waiting for an event in order to continue or an event waiting for a process to join with it has previously occurred. must have the ability to
These concepts are denoted Q/PR/S and Q/M/S, respectively. If we look at the relationship of these queues to semaphore, we can see that the queue of a message on a semaphore and the queue of a process on a semaphore are completely opposite concepts.
A data structure, ie, a semaphore, holds one of these. When a process has finished performing a P operation, and there are no events or resources available to complete the request requested by the P operation, the semaphore forms a queue for the process on the semaphore Q/PR/S. I will do it. Conversely, when an event or resource occurs and there are no processes waiting for this event or resource, a semaphore
A message queue will be formed on the semaphore Q/M/S. Each of these is a semaphore
Indicated by the SCT field. Therefore, if a semaphore's SCT count is positive, it indicates that there are messages waiting for the process and, as a result, a queue of messages has been formed on the semaphore. If a semaphore's SCT count is negative, it indicates that there is a process waiting for a message or event and that a queue of processes has been formed on the semaphore. If the semaphore count is zero, it indicates that there are no waiting processes, no messages, and no queues.

Q/ML/FLSおよびQ/PR/FLSは、通常、
FLSセマホア上に単独で見出される。SDセグメ
ント中にセマホアが用いるメツセージ・リンクが
ある時には、フリー・リンクセマホアは、フリ
ー・メツセージ・リンクのキユーを有しているこ
とになる。これはFLSセマホアの中の非ゼロ
FLQPによつて示される。もし、フリー・リン
ク・セマホアがゼロに等しいFLQPを有してい
て、利用可能なフリー・メツセージ・リンクがな
いことを示していれば、V操作によつてフリー・
メツセージ・リンクが要求されている限り、FLS
がプロセスQ/PR/FLSのキユーを形成するこ
とになる。
Q/ML/FLS and Q/PR/FLS are usually
Found alone on the FLS semaphore. A free link semaphore has a queue of free message links when there is a message link used by the semaphore in the SD segment. This is a non-zero inside the FLS semaphore
Denoted by FLQP. If a free link semaphore has FLQP equal to zero, indicating that there are no free message links available, then the V operation
FLS as long as message link is requested
will form the queue of process Q/PR/FLS.

セマホアデスクリプタ・セグメントのメツセー
ジ・リンクが限られていることを考慮すれば、1
つのメツセージセマホアがすべてのフリー・メツ
セージ・リンクを使い切つてしまうことを防ぐた
めの何らかの装置が必要なことがわかるであろ
う。このことは、第16b図に示した様に、マキ
シマム・カウント・フイールドを有する各々のメ
ツセージ・タイプのセマホアによつて達成され
る。このフイールドすなわちビツト4−15はメ
ツセージのキユーの長さを制限する働きを持つて
いる。非メツセージ型セマホア(第16図)で
は、この同じビツト4−15が、このセマホアを
使つて記憶されるイベント(V操作)の数を制限
している。この結果、SCTフイールドの値によ
つて、上に示したセマホアに結合されているメツ
セージがSMC値を超える場合には、例外的な条
件が発生することになる。この様な特徴は、メモ
リ・スペースのやりくりを助けるばかりでなく、
1つのセマホアがSDセグメント内で利用可能な
フリー・メツセージ・リンクの全部あるいは大多
数を使つてしまわないことを保障するために用意
されている訳である。
Considering the limited number of message links in the semaphore descriptor segment, 1
It will be seen that some device is needed to prevent one message semaphore from using up all free message links. This is accomplished by a semaphore for each message type having a maximum count field, as shown in Figure 16b. This field, bits 4-15, serves to limit the message queue length. In a non-message type semaphore (Figure 16), this same bit 4-15 limits the number of events (V operations) that can be stored using this semaphore. As a result, an exceptional condition will occur if the value of the SCT field causes the message bound to the semaphore shown above to exceed the SMC value. These features not only help manage memory space, but also
This is provided to ensure that a single semaphore does not use up all or most of the free message links available within an SD segment.

PおよびV指令の一般的説明 ハードウエア(PCB)中でプロセスがどの様に
あらわされるか、プロセスが入つている状態およ
びプロセスの状態や動きを制御するために用いら
れるデスパツチヤー・ユニツト等については前に
述べた。また更に、セマホアのデータ構造を含む
プロセス同期化機能についても示して説明を行な
つた。
General explanation of the P and V directives Previous information on how processes are represented in the hardware (PCB), the states in which the processes are contained, and the dispatcher units used to control the states and movements of the processes, etc. stated. Furthermore, process synchronization functions including semaphore data structures were also shown and described.

デスパツチヤー・ユニツトとセマホアを統合し
て、プロセスの同期化を制御するのはセマホア上
で行なわれる操作である。プロセスがセマホアを
信号用機構として用いる場合には、セマホア上で
2つの基本的な操作が必要となる。1つの操作、
V操作あるいはV指令は、信号をセマホアに送る
ものである。もう1つの操作、P操作あるいはP
指令は、セマホアから信号を取り上げるものであ
る。
It is the operations performed on the semaphore that integrate the dispatcher unit and the semaphore to control process synchronization. When a process uses a semaphore as a signaling mechanism, two basic operations are required on the semaphore. one operation,
The V operation or V command sends a signal to the semaphore. Another operation, P operation or P
The command takes the signal from the semaphore.

V指令は、データを保有して、それを他のプロ
セスあるいはプロセス群の中のいずれか1つに送
る必要のあるプロセスを実行しているプロセスが
用いる送出操作であると見ることもできるであろ
う。V指令はプロセスがデータ(すなわち信号あ
るいはメツセージ)を中間点であるセマホアに送
ることを認可する。セマホアは、そのデータを他
のプロセスが取り上げる準備が完了するまで記憶
しておく。その間、V操作を実行しているプロセ
スは、データがすでに送られたのであるから、自
由に進行することができる。
The V command can also be viewed as a send operation used by a process running a process that has data and needs to send it to another process or to one of a set of processes. Dew. The V command authorizes a process to send data (ie, a signal or message) to an intermediate point, a semaphore. A semaphore stores its data until it is ready to be picked up by another process. Meanwhile, the process performing the V operation is free to proceed since the data has already been sent.

P指令は、特定のプロセスあるいは多くのプロ
セスの中の1つからのデータを必要とするプロセ
スが用いる受容操作であると見ることもできるで
あろう。P指令はプロセスがデータ(すなわち信
号あるいはメツセージ)をセマホアから受け取る
ことを認可する。もしデータが存在すれば、P指
令を実行しているプロセスは続行される。しか
し、セマホアが記憶しているデータがなければ、
P指令を実行しているプロセスは、待機の状態に
なる。この場合、セマホアはデータの代りにプロ
セスを保有していることになる。プロセスは他の
プロセスが前記プロセスが待機状態に入る理由、
すなわち同一のセマホアを経由して、このプロセ
スのためにデータを送ることをなくするまで、セ
マホアによつて待機の状態に保たれる。この行為
はV指令によつて遂行される。
The P command could also be viewed as a receive operation used by a process that requires data from a particular process or one of many processes. The P command authorizes a process to receive data (ie, a signal or message) from a semaphore. If the data is present, the process executing the P command continues. However, if there is no data stored by Semaphore,
The process executing the P command enters a standby state. In this case, the semaphore holds processes instead of data. The process does not know the reason why the process enters the waiting state,
That is, it is kept in a standby state by the semaphore until it no longer sends data for this process via the same semaphore. This action is performed by the V command.

この様にして、進行するに当つて他のプロセス
からデータ(すなわち信号あるいはメツセージ)
を必要とするプロセスは、その前に認められたセ
マホア上でP指令を実行することによつて信号を
得ようとする。反対に、進行するに当つて、他の
プロセス(すなわち信号あるいはメツセージ)に
データを送る必要のあるプロセスは、セマホア上
でV指令を実行することによつてデータを送出し
ようとする。更に、もしデータを受けているプロ
セスが待機の状態にあるとすれば、それが待機の
状態にいる理由が、取り除かれる訳である。この
結果、V指令も、メツセージに準備完了の状態に
移ることを求めたプロセスを認めることになる。
この様にして、V指令によつて送られたデータ
は、データを要求しているプロセスのPCB中に記
憶されることになり、その後このデータは、デス
パツチヤー機構によつてプロセスが運行状態に移
つた時検討されることになる。
In this way, data (i.e. signals or messages) from other processes as they proceed
A process that requires a semaphore attempts to obtain the signal by executing a P command on a previously recognized semaphore. Conversely, a process that needs to send data to another process (i.e., a signal or message) as it progresses will attempt to send the data by executing a V command on the semaphore. Furthermore, if the process receiving the data is in a waiting state, the reason for it being in a waiting state is removed. As a result, the V command also acknowledges the process that asked the message to move to the ready state.
In this way, the data sent by the V command will be stored in the PCB of the process requesting the data, and this data will then be transferred by the dispatcher mechanism to bring the process into service. It will be considered when it becomes available.

セマホアには2つの異なるタイプのものがある
こと、すなわちメツセージを有するセマホアとメ
ツセージを有しないセマホアがあることから、当
然PおよびV指令にも2つのタイプが存在するこ
とになる。このPおよびV指令の各々のタイプの
ものは、同じ型のセマホア上でしか実行されな
い。従つて、各指令は、それぞれ正しいタグ・ビ
ツトをもつセマホアに向けられる必要がある。つ
まり、メツセージを有するPおよびV指令は、そ
れをメツセージセマホアとして類別するタグ・ビ
ツトをもつセマホアにのみ向けられなければなら
ないし、メツセージを有しないセマホアに向けら
れるPおよびV指令は、それら非メツセージセマ
ホアとして類別するタグ・ビツトをもつセマホア
にのみ向けられなければならない。これらのこと
に加えて、メツセージ型P指令も非メツセージ型
P指令もともに、Pテスト指令としても実行され
る。テスト指令は、運行中のプロセスが、指令の
意図した行為が行なわれなかつた場合でも継続す
ることを可能にするものである。従つてP指令に
は4つのものがあることになる。メツセージ付き
のV指令はLIFOあるいはFIFOがキユーを作る
ことを要求し、またVテスト指令によつても実行
される。この結果、メツセージ付きのV指令には
4つのものがあることになり、更にメツセージの
ないV指令があるから、V指令は全部で5つとな
る。
Since there are two different types of semaphores, semaphores with messages and semaphores without messages, it follows that there are also two types of P and V commands. Each type of P and V command can only be executed on the same type of semaphore. Therefore, each command must be directed to a semaphore with the correct tag bit. That is, P and V commands that have a message must be directed only to semaphores that have a tag bit that classifies them as message semaphores, and P and V commands that are directed to semaphores that do not have a message must be directed to those semaphores that do not have a message. Messages shall be directed only to semaphores with tag bits that classify them as semaphores. In addition to these, both message type P commands and non-message type P commands are also executed as P test commands. A test command allows a running process to continue even if the command's intended action does not take place. Therefore, there are four P commands. A V command with a message requests that LIFO or FIFO queue, and is also executed by a V test command. As a result, there are four V commands with messages, and there are also V commands without messages, so there are five V commands in total.

下記の記号は、フロー・ダイヤグラムに示さ
れ、上の各指令の説明に用いられるものである。
The symbols below are shown on the flow diagram and are used to explain each of the commands above.

SEP 非メツセージセマホア上のP指令。指令は
セマホアからの信号を取り上げるか、あるいは
実行中のプロセスを待機状態に置き、Q/
PR/S上にキユーを作る様にするかのいずれ
かである。
SEP P command on non-message semaphore. The directive picks up the signal from the semaphore or puts the running process in a waiting state and
Either create a queue on PR/S.

SEPM メツセージセマホア上のP指令。指令は
セマホアのQ/M/Sのヘツドからメツセージ
を取り上げるか、あるいは実行中のプロセスを
待機状態に置き、Q/PR/S上にキユーを作
る様にするかのいずれかである。メツセージが
Q/M/Sから取り返されるとメツセージ・リ
ンクはQ/ML/FLSに返却され、FLSセマホ
ア中のカウント・フイールドのチエツクが行な
われる。IOプロセス(論理チヤンネル)で待
機中のものがあることが判ると、システムが
AV−型の操作を行なうために、直ちにフリ
ー・リンクが利用可能の状態に置かれる。IO
プロセスがなければ、Q/PR/FLSに待機中
のプロセスのためのチエツクが行なわれる。ま
た、あるプロセスがQ/PR/FLSでフリー・
メツセージ・リンクを求めて待機中であること
がわかると、そのプロセスは準備完了の状態に
もどされ、FLSセマホア上でV指令を実行する
ことが許される。
SEPM P command on message semaphore. The command either picks up the message from the head of the semaphore's Q/M/S or causes the running process to wait and queue on the Q/PR/S. When the message is retrieved from the Q/M/S, the message link is returned to the Q/ML/FLS and the count field in the FLS semaphore is checked. When the system detects that there are waiting IO processes (logical channels),
A free link is immediately left available for performing AV-type operations. I.O.
If there are no processes, a check is made to Q/PR/FLS for waiting processes. Also, a certain process is free with Q/PR/FLS.
Once the process is found waiting for a message link, it is returned to the ready state and is allowed to execute V commands on the FLS semaphore.

SEPT 非メツセージセマホア上のPテスト。こ
れは、セマホアからの信号の取得が不成功だつ
た時、実行中のプロセスを待機状態にしないこ
とを除けばSEPと同じ指令である。
SEPT P test on non-message semaphore. This is the same directive as SEP, except that it does not put the running process into a waiting state when the signal from the semaphore is unsuccessful.

SEPTM メツセージセマホア上のテスト指令。
セマホアからの信号を取得が不成功だつた時、
実行中のプロセスを待機状態にしないことを除
けばSEPMと同じである。
SEPTM Test directive on message semaphore.
When the signal from the semaphore was unsuccessfully acquired,
It is the same as SEPM except that running processes are not placed in a waiting state.

SEV 非メツセージセマホア上のV指令。この
指令はセマホアに記載されている信号を伝え
る。セマホアが信号を待つているプロセスのキ
ユーQ/PR/Sを有する時は、キユーの中の
最初のプロセスが信号を受けて、待機状態から
準備完了の状態に移動する。
SEV V command on non-message semaphore. This command conveys the signals listed in the semaphore. When a semaphore has a queue of processes Q/PR/S waiting for a signal, the first process in the queue receives the signal and moves from the waiting state to the ready state.

SEVF メツセージセマホア SEVL 上のV指令。各指令はメツセージをセマ
ホアに送る。セマホアが待機中のプロセスのキ
ユー、Q/PR/Sを有する時は、キユーの中
の最初のプロセスは、メツセージを受けて、待
機状態から準備完了の状態へ移動する。もし、
Q/PR/Sがなければ、メツセージはQ/
M/S中に、FIFO(SEVP)あるいはLIFO
(SEVL)の序列に従つて入れられる。もし、
Q/PR/Sがなく、メツセージをキユーにす
るメツセージ・リンクを発見できない場合に
は、実行中のプロセスは待機状態に入り、Q/
PR/FLSのキユーに加えられる。V指令を実
行しているプロセスの指令カウンターは、現在
のカウントのまゝ残り、プロセスが再び運行状
態になつた時、またV指令が試みられる様にす
る。
V command on SEVF message semaphore SEVL. Each command sends a message to a semaphore. When a semaphore has a queue of waiting processes, Q/PR/S, the first process in the queue receives the message and moves from the waiting state to the ready state. if,
Without Q/PR/S, the message is Q/
FIFO (SEVP) or LIFO during M/S
(SEVL). if,
If there is no Q/PR/S and no message link can be found to queue the message, the running process enters a waiting state and the Q/PR/S
Added to PR/FLS queue. The command counter of the process executing the V command remains at its current count, allowing the V command to be attempted again when the process becomes operational again.

SEVTF メツセージセマホア SEVTL 上のVテスト指令。これらの指令は、
フリー・リンクセマホアキユー内にフリー・メ
ツセージ・リンクを見出すことができなかつた
時でも、V指令を実行しているプロセスを待機
状態にしないということを除けば、SEVFおよ
びSEVLと同じである。
V test command on SEVTF message semaphore SEVTL. These directives are
Same as SEVF and SEVL, except that the process executing the V command is not put into a waiting state even if no free message link is found in the free link semaphore queue. .

上述の実行に関する指令は、いずれもコントロ
ール・ストア・ユニツト130が、あらかじめき
められた一まとめの機能を実行することを可能と
する。第20図乃至26図のフロー・チヤートに
は、各種の機能が表示されている。これらの機能
の実行は、デスパツチヤー・ユニツト(第14
図)との関連で述べたものと同じで第13図に示
されているのと同じ操作コンポーネントを利用す
る。情報全体がどの様に伝送されるかを判り易く
するため、操作ユニツトの主要ブロツクのみが記
されている。また、くり返しを避けて判り易くす
るめ、PおよびV指令に関連したコントロール・
ストア・ユニツトおよびセントラル・プロセシン
グ・ユニツトの中間的な機能は省いてある。しか
し、第14図に関連して述べた様な中間的機能
は、はつきり存在することを理解する必要があ
る。
All of the execution instructions described above enable control store unit 130 to perform a predetermined set of functions. Various functions are displayed in the flow charts of FIGS. 20 to 26. The execution of these functions is carried out by the dispatcher unit (14th
The same operating components as described in connection with Figure 1) and shown in Figure 13 are utilized. In order to make it easier to understand how the entire information is transmitted, only the main blocks of the operating unit are shown. In addition, to avoid repetition and make it easier to understand, we have also included the controls related to the P and V commands.
The intermediate functions of the store unit and central processing unit have been omitted. However, it must be understood that intermediate functions such as those described in connection with FIG. 14 do exist.

さらに、第19図は、第13図のCPU104
に示したALUユニツト1315の部分をより詳
しくダイヤグラムにして示したものである。即ち
第19図a図は、LSU1315中に位置するス
クラツチ・パツド・メモリに記憶されている256
語を示しており、第19b図は、第19a図に示
した作業位置で、これから検討するPおよびV指
令の能に特にあてはまるものをいくつか示してい
る。これらの詳細図は、CPUシステム全体の機
能の中で、これらが果す役割を説明している第2
0図乃至26図との関連で見るとよく判るものと
思われる。
Furthermore, FIG. 19 shows the CPU 104 in FIG.
This is a more detailed diagram of the ALU unit 1315 shown in FIG. That is, FIG. 19a shows the 256
FIG. 19b shows some of the working positions shown in FIG. 19a that apply specifically to the functions of the P and V commands that will be considered. These detailed diagrams are part of the second section that explains the role they play in the overall functionality of the CPU system.
It seems to be easier to understand when viewed in relation to Figures 0 to 26.

PおよびV指令双方のためのセマホアの進展 図面に関して更に詳しく説明すると、第20図
は、PおよびV指令の各々によつて実行されるセ
マホアデスクリプタのフエツチ操作を示したもの
であり、第21図乃至26図は、各種のPおよび
V指令および、実行に当つてこれらが果す機能を
示したものである。
Evolution of Semaphore for Both P and V Directives In further detail with reference to the drawings, FIG. Figures 26-26 illustrate various P and V commands and the functions they perform in execution.

更に詳しくいえば、第20図、ブロツク200
0は、前に述べたPおよびV指令各々によつて可
能となつたセマホアデスクリプタのフエツチ・ル
ーチンの構造を示したものである。各指令には、
ビツト0乃至7の操作(op)コード、ビツト8
乃至11の補助コード、およびビツト12乃至3
1の20ビツト・アドレス・シラブルが含まれてい
る。OPコードは、システムに指令のタイプすな
わちPかVかあるいはその変型かを示す役割をも
つている。補助コードは、指令に関する細かい情
報を示す。例えばLIFOかあるいはFIFOのいず
れかのキユー化か、テスト指令か否かなどであ
る。アドレス・シラブルは、セマホアデスクリプ
タを確認する。アドレス・シラブルを解くために
は、PCBをセレクトするため、運行プロセスの
JP数を含むアドレス表の構造を全部調べなけれ
ばならない(第4図および17図参照)。次にセ
グメント表を見出すために、STN、STE値を調
べる必要がある。そして、セグメント内の最終セ
グメント・リラテイブ・アドレスを見出すため
に、恐らくは間接アドレスを調べ最後に必要なら
ば、インデクスをつける操作を行なわなければな
らない。この様にして、PあるいはV指令は、セ
マホアデスクリプタのアドレスの中に進展してい
くことになる。
More specifically, Fig. 20, block 200
0 illustrates the structure of the semaphore descriptor fetch routine made possible by each of the P and V commands described above. Each directive includes
Operation (op) code for bits 0-7, bit 8
Auxiliary codes from 11 to 11 and bits 12 to 3
1 20-bit address syllable. The OP code has the role of indicating to the system the type of command, ie, P, V, or a variant thereof. The auxiliary code indicates detailed information about the command. For example, whether it is queued for LIFO or FIFO, whether it is a test command, etc. Check the semaphore descriptor for the address syllable. In order to solve the address syllable, the operating process must be completed to select the PCB.
The entire structure of the address table, including the JP numbers, must be examined (see Figures 4 and 17). Next, we need to examine the STN and STE values to find the segment table. Then, to find the last segment relative address within the segment, one must perhaps examine indirect addresses and finally perform an indexing operation if necessary. In this way, the P or V command will progress into the address of the semaphore descriptor.

セマホアをフエツチしテストすることに加え
て、サブ・ルーチン2000は、アドレスされた
セマホアもフエツチしてセマホア上で実行される
べきPあるいはV指令への分岐を可能にする。こ
うして、SFサブ・ルーチン2000の実行に先
立つて、OPコードと補助コードは、セマホアデ
スクリプタがフエツチされるべきだということが
判る様に分析されることになる。ステツプ200
1では、ハードウエア・ゲートがロツクを外され
たかどうかがたずねられる。このハードウエア・
ゲートは、ハードウエア・コントロール・マータ
1313の一部で、ロツクされている時は、シス
テムがクリテカルな状態にあることを示す。プロ
セスやキユーのフアームウエア操作がおこつてい
る時には、中断がおきるとシステム内での回復不
能な情報aに人が発生する危険があるので、操作
システムはクリテカルな状態にあるということに
なる。従つて、ハードウエア・ゲートが、プロセ
スの動きを示す1の値をもち、キユーが前に進ん
でいる時には、PおよびV指令を含むいくつかの
指令は、これらの操作の実行を妨げる可能性があ
るので実行されないであろう。質問2001の答
えがイエスであれば、ハードウエア・ゲートはロ
ツクされ、ステツプ2002が実行される。この
結果、システム・チエツクが行なわれるが、これ
は本質的に他のクリテカルな操作例えば、通常現
在の操作が中断され、セントラル・エクセプシヨ
ン・メカニズムが導入される様な、すべての例外
的な状態を探知し、モデル・デペンデント・ダイ
アグノステツク・シーケンスを開始して、システ
ムが悪い状態で作動を続けることを防止する。更
に加えて、IFHG=1、すなわち同期化を遂行し
ようとするいかなる試みも、また現在行なわれて
いるブロセスを交換しようとするプロセス・コン
トロール指令も、ステツプ2002におけるシス
テム・チツクを開始させる様になつている。ステ
ツプ2001に於けるハードウエア・ゲートのチ
エツクも、ステツプ2002に於けるシステム・
チエツクも、共に指令フエツチ・ユニツト131
8内に置かれているハードウエアによつて行なわ
れる。
In addition to fetching and testing the semaphore, subroutine 2000 also fetches the addressed semaphore to allow branching to a P or V command to be executed on the semaphore. Thus, prior to execution of SF subroutine 2000, the OP code and auxiliary code will be analyzed to determine which semaphore descriptors should be fetched. step 200
1 asks if the hardware gate has been unlocked. This hardware
The gate is part of the hardware control data 1313, and when locked indicates that the system is in a critical state. When a firmware operation of a process or queue is occurring, the operating system is in a critical state because there is a risk that irrecoverable information a will be lost in the system if an interruption occurs. Therefore, when a hardware gate has a value of 1 indicating the process is moving, and the queue is moving forward, some commands, including P and V commands, may prevent the execution of these operations. It will not be executed because there is If the answer to question 2001 is yes, the hardware gate is locked and step 2002 is executed. This results in a system check, which essentially detects any exceptional conditions that would normally cause the current operation to be aborted and a central exception mechanism to be introduced. detect and initiate a model dependent diagnostic sequence to prevent the system from continuing to operate in a bad condition. Additionally, if IFHG = 1, any attempt to perform a synchronization, or any process control command that attempts to replace the currently running process, will cause a system check in step 2002 to be initiated. ing. The hardware gate check in step 2001 is also the system check in step 2002.
The check is also carried out by the command fetish unit 131.
This is done by hardware located within the 8.

ステツプ2003および2004は、やはり指
令フエツチ・ユニツト1318内で行なわれるハ
ードウエア・テストである。ステツプ2003で
は、以下で述べるSECIN指令が実行されている
かどうかが質問される。このSECIN指令は、実
行に当つて、ゼロに等しいプロセス・リング・ナ
ンバーを持つていなければならない。この結果、
もし答えがイエスであれば、ステツプ2004が
指令のプロセス・リング・ナンバーをテストする
ことになる。もしリング・ナンバーがゼロでなけ
れば、特権的指令除外2004aが発生する。し
かし、PおよびV指令に関しては、質問2003
に対する答えはノーであり、その結果、Pあるい
はV指令のアドレス・シラブルにインデクスを付
ける必要があるか否かを訊ねるステツプ2005
が実行されることになる。
Steps 2003 and 2004 are hardware tests also performed within command fetch unit 1318. In step 2003, a question is asked whether the SECIN command described below is being executed. This SECIN directive must have a process ring number equal to zero for execution. As a result,
If the answer is yes, step 2004 will test the process ring number of the command. If the ring number is not zero, privileged command exclusion 2004a occurs. However, regarding the P and V Directives, Question 2003
The answer is no, so step 2005 asks whether it is necessary to index the address syllable of the P or V command.
will be executed.

この点では、指令のアドレス・シラブルの正常
な進展がすべに起りつつある。従つて、セグメン
ト・リラチブ・アドレスSRAおよび上に述べた
セグメント・ナンバーSEGはすでに決定してい
ることになる。ステツプ2005で訊ねられる質
問は、アドレス・シラブル中の1ビツトがインデ
クス化を指しているかどうかである。答えがイエ
スの時は、ステツプ2006が、アドレス・シラ
ブルによつて示されているゼネラル・レジスタの
内容をSRAに加える。ステツプ2007では、
SDセグメント1500の最初のワードのメイ
ン・メモリから、第19b図のスクラツチ・パツ
ド・メモリ位置WC0への伝送が行なわれる。こ
の最初のワードは、PおよびV指令のためのタグ
およびリング・フイールドを含んでおり、れらが
実行されるか否かを決定する。ここで注意すべき
ことは、フエツチ操作がメイン・メモリ102か
らデータ・マネージメント・ユニツトDMU13
12を経て、アリスメチツクおよびロジツク・ユ
ニツト(ALU)1317に向うことであ。反対
に、メイン・メモリ・記入操作は、ALU131
7からDMU1321へ、更にメイン・メモリ1
02に向う。
At this point, the normal evolution of the address syllable of the command is all occurring. Therefore, the segment relative address SRA and the segment number SEG mentioned above have already been determined. The question asked in step 2005 is whether one bit in the address syllable points to indexing. If the answer is yes, step 2006 adds the contents of the general register indicated by the address syllable to the SRA. In step 2007,
The first word of SD segment 1500 is transferred from main memory to scratch pad memory location WC0 in FIG. 19b. This first word contains the tag and ring fields for the P and V commands and determines whether they are executed or not. It should be noted here that the fetch operation is performed from the main memory 102 to the data management unit DMU 13.
12, and proceed to Arithmetic and Logic Unit (ALU) 1317. On the other hand, the main memory/filling operation is performed by ALU131.
7 to DMU1321, then main memory 1
Head to 02.

ステツプ2008では、正しいセマホアセグメ
ントがアクセスしたことを確認するために、
ALU1317によつていくつかの予備チツクが
行なわれる。更に詳しく言えば、ステツプ200
8では、セグメント・デスクリプタ自身のGSビ
ツトは01に等しくなければならない。Gはゲー
ト・セグメントをあらわし、Sはセマホアセグメ
ントをあらわす。従つてセマホアセグメント・ビ
ツトは、セマホアセグメントにアクセスする様に
セツトされなければならない。また、STNが8
より大きいかあるいは等しいかを見るためのチツ
クも行なわれる。これは、セマホアセグメント
が、この制限をもつている小さなセグメントだか
らである。(この点については、先に記したセグ
メント・アドレスの進展に関る特開昭50−42752
号公報参照のこと)。ステツプ2008に於ける
第3のチエツクは、SRAが4の倍数であるかど
うかについてである。これはSRAが、4バイト
のワード整列式デスクリプタであることによるも
のである。GBビツトが01にセツトされ、STNが
8より大きいかあるいは等しい時は、ステツプ2
008bに示した様に、不法システム・オブジエ
クト・サブルーチンが可能になる。ステツプ20
01乃至2004で示された様に他に表示がなけ
れば、すべてのテストはALU1317で行なわ
れる。
In step 2008, to confirm that the correct semaphore segment was accessed,
Some preliminary checks are performed by ALU 1317. To be more specific, step 200
8, the segment descriptor's own GS bit must be equal to 01. G represents a gate segment, and S represents a semaphore segment. Therefore, the semaphore segment bit must be set to access the semaphore segment. Also, STN is 8
A check is also made for greater than or equal to. This is because semaphore segments are small segments that have this restriction. (Regarding this point, please refer to Japanese Patent Application Laid-Open No. 50-42752, which is related to the development of segment addresses mentioned earlier.
(See publication number). The third check in step 2008 is whether SRA is a multiple of four. This is because the SRA is a 4-byte word-aligned descriptor. If the GB bit is set to 01 and STN is greater than or equal to 8, step 2
As shown at 008b, illegal system object subroutines are enabled. Step 20
Unless otherwise indicated, all tests are performed on ALU 1317 as shown in 01-2004.

ステツプ2009では、セマホアセグメント
(SD)の最初のワード、すなわち第15図のワー
ド1500がテストされる。このワードは、テス
トされたばかりのセグメント・デスクリプタで確
認される。詳しくいえば、タグ・フイールドのビ
ツト0および1がテストされて11にコード化さ
れる。MBZフイールドのビツト8乃至15は、
すべてゼロであるかどうかテストされる。そし
て、FLSPフイールドのビツト16乃至30は、
8の倍数であるかどうかをテストされる(最後の
3つのビツトはゼロ)。このデータ構造の状態が
うまく合わない時は、ステツプ2009の不法
SDセグメントが指示される。それ以外の場合は
データ構造が正常ということであり、次のステツ
プ2010が実行される。
In step 2009, the first word of the semaphore segment (SD), word 1500 in FIG. 15, is tested. This word is verified in the segment descriptor that was just tested. Specifically, bits 0 and 1 of the tag field are tested and coded to 11. Bits 8 to 15 of the MBZ field are
Tested for all zeros. And bits 16 to 30 of the FLSP field are
Tested for multiple of 8 (last 3 bits are zero). If the state of this data structure does not match well, proceed to Step 2009.
SD segment is indicated. Otherwise, the data structure is normal, and the next step 2010 is executed.

SDセグメントの位置をきめ、最初のワードが
正しいかどうかを決めた後、メイン・メモリ内の
セマホアデスクリプタの位置および内容が検査さ
れる。すなわち、ステツプ2010では、ステツ
プ2006で進展したSRAがFLSPすなわちワー
ド1500のビツト16乃至31より小さいこと
を確かめられる。この条件は、第15図に示した
SDセグメントの構造から必要となる。その部分
で述べた様に、SRAの相対的なずれでアドレス
されたセマホアデスクリプタは、ブロク1502
内に作られている訳である。そしてFLSPは、メ
イン・メモリ内では、ブロツク1502のセマホ
アデスクリプタより順序的には高いアドレスにあ
るブロツク1504を示すことになる。この結
果、PあるいはV指令のアドレス・シラブルから
進展したSRAは、ブロツク1502のセマホア
デスクリプタの中の1つと照合しなければならな
い。これは、ブロツク1504と照合する相対ア
ドレスFLSPより小さくなる様にデザインされて
いる筈である。従つて、FLSPは2つの目的を持
つことになる。1つはフリー・リンクセマホアの
位置をきめることであり、もう1つはセマホアデ
スクリプタ1502の上限をきめることである。
これらの条件が満たされた時は、ステツプ201
0aが実行される。このステツプは、不法システ
ム・オブジエクト・アドレスが進展したことを示
す例外サブルーチンである。ステツプ2010
は、リング保護チエツクも行なうが、これは先に
も述べた様に特開昭50−114934号公報の主題であ
る。さて、この様にして、EARフイールドはXR
フイールドより小さいかあるいは等しいかについ
てチエツクを受ける。この際XRは、最初のワー
ド1500を確認し、V指令、P指令あるいは
SECIN指令のいずれが実行されているかによつ
て、VR,PRあるいはIRのいずれかとなる。セグ
メントのリングナンバーであるEARナンバー
が、個々のリング保護フイールドより大きい場合
には、ステツプ2010bの例外条件が実行され
る。
After locating the SD segment and determining whether the first word is correct, the location and contents of the semaphore descriptor in main memory are examined. That is, step 2010 verifies that the SRA developed in step 2006 is less than FLSP, bits 16-31 of word 1500. This condition is shown in Figure 15.
This is required due to the structure of the SD segment. As mentioned in that section, the semaphore descriptor addressed with the relative offset of the SRA is
It is created internally. FLSP will then point to block 1504 at a sequentially higher address in main memory than the semaphore descriptor of block 1502. As a result, the SRA developed from the address syllable of the P or V command must be checked against one of the semaphore descriptors in block 1502. This should be designed to be smaller than the relative address FLSP that matches block 1504. FLSP therefore has two purposes. One is to determine the position of the free link semaphore, and the other is to determine the upper limit of the semaphore descriptor 1502.
When these conditions are met, step 201
0a is executed. This step is an exception subroutine that indicates that an illegal system object address has evolved. step 2010
also performs a ring protection check, which, as mentioned earlier, is the subject of Japanese Patent Application Laid-open No. 114934/1983. Now, in this way, the EAR field is XR
Checked for less than or equal to field. At this time, XR confirms the first word 1500 and selects V command, P command or
Depending on which SECIN directive is being executed, it will be either VR, PR or IR. If the segment's ring number, the EAR number, is greater than the individual ring protection field, the exception condition of step 2010b is executed.

ステツプ2011では、セマホアデスクリプタ
1502が、メイン・メモリのSDセグメント8
02nからフエツチされ、スクラツチ・パツド・
メモリ1900の位置WC1に伝送される。ステ
ツプ2012では、セマホアデスクリプタ150
2用の一連のテストが行なわれる。これらのテス
トは、ステツプ2008でのセグメント・デスク
リプタに関するテストとほゞ同じものである。こ
れらのテストは、タグ・フイールドの01に等しく
なければならないビツト0,1。リング・フイー
ルドの00に等しくなければならないビツト2,
3。8より大きいか等しくなければならない
STNビツト4乃至7、および8の倍数でなけれ
ばならないSRAフイールドのビツト16乃至3
1について行なわれる。セマホアデスクリプタ1
502のSRAフイールドは、アドレスされてい
るセマホアを示す。セマホアは2倍ワード量であ
るから、2倍ワード境界上にある必要があり、ア
ドレスの目的では8の倍数でなければならないこ
とになる。もしこれらのテストのいずれかが不成
功であれば、例外サブルーチン2012aが実行
され、不法セグメント・デスクリプタのフオーマ
ツトが決定されたことを示す。例外サブルーチン
は、システムが訂正すべき不成功テストに関連し
ているので、これらの状態については、これ以上
述べないこととする。
In step 2011, semaphore descriptor 1502 is inserted into SD segment 8 of main memory.
Fetched from 02n, scratched and padded.
It is transmitted to memory 1900 at location WC1. In step 2012, the semaphore descriptor 150
A series of tests for 2. These tests are substantially the same as those for segment descriptors in step 2008. These tests bits 0,1 which must be equal to 01 in the tag field. Bit 2 must be equal to 00 in the ring field,
3. Must be greater than or equal to 8
STN bits 4-7 and SRA field bits 16-3 which must be a multiple of 8
1 is carried out. Semaphore descriptor 1
The SRA field at 502 indicates the semaphore being addressed. Since the semaphore is double word size, it must be on a double word boundary, which means it must be a multiple of eight for address purposes. If any of these tests are unsuccessful, exception subroutine 2012a is executed to indicate that the format of the illegal segment descriptor has been determined. Since the exception subroutines are associated with unsuccessful tests that the system must correct, these conditions will not be discussed further.

さて、正しいセグメント・デスクリプタを決定
すれば、次は実際のセマホア自身を獲得する行為
が必要になる。ステツプ2013では、セマホア
セグメント・ナンバーが、アドレス・コントロー
ル・ユニツト1319の関連メモリ1319a内
にあるかどうかが訊ねられる。この質問が行なわ
れる理由は、セマホアワードがメイン・メモリか
らフエツチされるからである。しかし、もしそれ
が関連メモリ1319a内になければ、メイン・
メモリはアクセスされる必要がない。従つて、も
し質間2013に対る答えがノーであれば、ステ
ツプ2014は、アソシエータの中にセグメン
ト・デスクリプタを入れるサブルーチンSDFを
可能にする。この伝送の実際の機構は、特開昭52
−85426号公報の主題である。
Now, once the correct segment descriptor has been determined, the next step is to acquire the actual semaphore itself. Step 2013 asks if the semaphore segment number is in associated memory 1319a of address control unit 1319. This question is asked because the semaphore word is fetched from main memory. However, if it is not in associated memory 1319a, then the main
Memory does not need to be accessed. Therefore, if the answer to question 2013 is no, step 2014 enables subroutine SDF to place the segment descriptor into the associator. The actual mechanism of this transmission was published in Japanese Unexamined Patent Publication No. 52
This is the subject of Publication No.-85426.

ステツプ2015では、新しいセグメントの
GSビツトが01に等しいかどうかのテストが再び
行なわれる。通常の状態では、セマホアデスクリ
プタは、それ自身のSDセグメント中のセマホア
に照合する。しかし、この条件が存在しないこと
もあり得るし、セマホアデスクリプタが新しい
SDセグメントにすべに照合していて、GSビツト
が01に等しいかどうかのテストがなされる場合も
あり得る。
In step 2015, the new segment
The test is again made to see if the GS bit is equal to 01. Under normal conditions, a semaphore descriptor matches a semaphore in its own SD segment. However, it is possible that this condition does not exist and the semaphore descriptor is
It is possible that the SD segment has been fully matched and a test is made to see if the GS bit is equal to 01.

ステツプ2016では、すでに述べた書き込許
可WPビツトが、メモリ中に書き込みを許可する
ことを示す1に等しいかどうかをきめるテストが
行なわれる。ステツプ2017では、セグメン
ト・デスクリプタ中の書き込みビツト(Wビツ
ト)が、1に等しいかどうかをテストされる。こ
の質問に対する答えがイエスならば、ステツプ2
020が実行される。答えがノーならば、Wビツ
トに書き込み更新するサブルーチンWUPを呼び
出すはたらきをもつステツプ2018が実行され
る。これはメモリ上で書き込み操作が行なわれる
ためになされることであり、従つて、それがもし
それまでになされていなければ、Wビツトは更新
されなければならない。これらの操作は、すべて
前に述べたセマホアデスクリプタ1502上で行
なわれる。
In step 2016, a test is performed to determine whether the write permission WP bit mentioned above is equal to 1, indicating that writing into memory is permitted. In step 2017, the write bit (W bit) in the segment descriptor is tested to see if it is equal to one. If the answer to this question is yes, then step 2.
020 is executed. If the answer is no, step 2018 is executed which serves to call the subroutine WUP which writes to and updates the W bit. This is done because a write operation is performed on memory, so the W bit must be updated if it has not been done previously. All these operations are performed on the semaphore descriptor 1502 mentioned earlier.

セマホアにアドレスを行なうことのできる方法
は2つあり、その1つは、PおよびV指令を経由
する方法であることはすでに述べた。セマホアに
アドレスするもう1つの方法はステツプ2019
に示されているが、もしこれが利用されれば、こ
の時点で進展プロセスすなわちフロー・チヤート
に入る。このもう1つの方法は、絶対GDアドレ
スを提供するセマホアにアドレスするICあるい
はシステムデバイスである。いずれの場合でも、
セマホアにアドレスするのにどちらの方法が用い
られ様とも、ステツプ2020は、セマホアの両
方のワードをフエツチする。これらのワードは、
アソシエータ1319aからフエツチされ、スク
ラツチ・バツド・メモリの位置WC4、WC5に伝
送される。これらの位置から、ALU1317に
よつて、セマホアにいろいろなテストが行なわれ
る。
It has already been mentioned that there are two ways in which a semaphore can be addressed, one of which is via the P and V commands. Another way to address a semaphore is step 2019
If this is used, an evolution process or flow chart is entered at this point. Another method of this is an IC or system device addressing a semaphore that provides an absolute GD address. In any case,
Whichever method is used to address the semaphore, step 2020 fetches both words of the semaphore. These words are
It is fetched from associator 1319a and transmitted to scratch pad memory locations WC4 and WC5. From these locations, ALU 1317 performs various tests on the semaphore.

しかしながら、これらのテストが行なわれる前
に、ステツプ2021が、指令の操作コードおよ
び補助コードをテストし、それれがSECIN(セ
マホアカウント開始)指令であるかどうかを決定
する。もし、それがそうであれば、SECIN指令
を可能にするサブルーチンへの分岐が実行される
が、これが別の特許申請の主題であることはすで
に述べた。もしそうでなければ、すなわちこれが
PあるいはV操作であれば、ステツプ2023が
セマホアのスタツグ・フイールドをテストする。
このスタツグ・フイールドは第16図に示されて
いるが、第16図は、PおよびV指令によつて操
作される各種のセマホアをあらわしたものであ
る。
However, before these tests are performed, step 2021 tests the operational code and auxiliary code of the command to determine if it is a SECIN (initiate semaphore account) command. If this is the case, a branch is executed to a subroutine that enables the SECIN directive, but we have already mentioned that this is the subject of a separate patent application. If not, ie, this is a P or V operation, step 2023 tests the semaphore's stag field.
This stag field is shown in FIG. 16, which represents the various semaphores operated by the P and V commands.

ステツプ2024では、セマホアのWC4の位
置のSCTフイールドは1増加してWC7の位置に
記憶される。これは、V操作の遂行がシステムの
操作にとつてよりクリテカルであるという事実か
ら生じてくる1つの見込みのステツプである。2
024における増加ステツプを遂行することで、
V操作のために関係してくるタイミングは助けを
受けることになる。もしこの見込みステツプが間
違つていれば、P操作を扱つているサブルーチン
がこの状態を訂正する。ステツプ2025では、
V操作が実行されるであろうこと、従つて、
SCTがSMCに対してチエツクされる必要がある
ことを見込んで、SMCフイールドはALU131
7内に置かれる。加えて、PMOと呼ばれる算術
および論理ユニツト1317a内のフロツプがセ
ツトされる。このフロツプは、P操作もSCTも
ゼロに等しくないことを示している。もしこの状
態が存在しなければ、これは後に変更される。
In step 2024, the SCT field at location WC4 of the semaphore is incremented by one and stored at location WC7. This is one promising step that arises from the fact that performing V operations is more critical to the operation of the system. 2
By performing the incremental step in 024,
The timing involved for V operation will receive help. If this prediction step is incorrect, the subroutine handling the P operation will correct this condition. In step 2025,
V operation will be performed, therefore,
Anticipating that the SCT needs to be checked against the SMC, the SMC field is set to ALU131.
Placed within 7. Additionally, a flop in the arithmetic and logic unit 1317a called PMO is set. This flop indicates that neither P-operation nor SCT is equal to zero. If this state does not exist, it will be changed later.

この時点で、PあるいはV指令をセツトアツプ
するはたらきは完了した訳である。ステツプ20
26では、IFUユニツト1318中の指令がテス
トされ、その操作コードおよび補助コードがV操
作を指示しているかどうかが決められる。これに
対する答えがイエスであれば、V指令シーケンス
2027への分岐が行なわれ、ノーであれば、P
指令シーケンス2028への分岐が行なわれる。
At this point, the task of setting up the P or V command is complete. Step 20
At 26, the commands in the IFU unit 1318 are tested to determine if the operating code and auxiliary code indicate a V operation. If the answer is yes, a branch is taken to V command sequence 2027; if no, P
A branch is taken to command sequence 2028.

この結果、第20図のサブルーチン2000
は、セグメント・デスクリプタ、セマホアデスク
リプタ・セグメント802nの最初のワード15
00、セマホアデスクリプタ1506およびVあ
るいはP操作が実行される実際のセマホア150
6をフエツチしチエツクしたことになる。従つ
て、これらの指令を正しく実行するための必要な
すべての予備的な作業は完了したことになり、フ
アームウエアは、指令が正しく実行されるであろ
うことを表示する。
As a result, the subroutine 2000 in FIG.
is the first word 15 of segment descriptor semaphore descriptor segment 802n
00, semaphore descriptor 1506 and the actual semaphore 150 on which the V or P operation is performed.
This means that 6 was fetched and checked. Therefore, all the necessary preliminary work to correctly execute these commands has been completed, and the firmware indicates that the commands will be executed correctly.

P指令 第20図のステツプ2028が実行されたとす
ると、次の機能のセツトは第21図に示されたも
のとなる。詳しくいえば、第21図はP指令に従
つて最初に実行される機能の全体と、メツセージ
を有しないセマホア上でP指令に従つて遂行され
る機能の両方を示したものである。
P Command If step 2028 of FIG. 20 were executed, the next set of functions would be as shown in FIG. Specifically, FIG. 21 shows both the overall function initially performed in accordance with the P command and the function performed in accordance with the P command on a semaphore that does not have a message.

ステツプ2026での質問に対する答えがノー
であつたから、ステツプ2101での新しいセマ
ホアカウント(NSCT)は、古いセマホアカウン
トから1を引いたものに等しい様にセツトされ
る。これは、P操作がデータをリクエストしてお
り、従つてセマホアカウントはセマホア上にある
より1少ないデータしかないことを示すべきこと
から起る結果である。従つて、WC7の位置でス
クラツチ・パツド・メモリ中に記憶されている増
加したSCTではなく、WC4の位置に記憶されて
いる古いSCTフイールドが回復されることにな
る。このSCTは次に減少して、WC7の位置のス
クラツチ・パツド・メモリに書き込まれる新しい
セマホアカウントNSCTを作り出す。
Since the answer to the question at step 2026 was no, the new semaphore account (NSCT) at step 2101 is set equal to the old semaphore account minus one. This is a result of the P operation requesting data and therefore the semaphore account should indicate that there is one less data than is on the semaphore. Therefore, the old SCT field stored at location WC4 will be restored rather than the increased SCT stored in scratch pad memory at location WC7. This SCT is then decremented to create a new semaphore account NSCT that is written to scratch pad memory at location WC7.

A 非メツセージセマホア上のP指令 ステツプ2102では、これが非メツセージセ
マホア上のP操作かどうかという質問が行なわれ
る。これは、すべてのP操作は、まずサブルーチ
ン2028によつて分析されることから生じる結
果である。ステツプ2012では、これらの指令
の各々の操作コードおよび補助コードは、再び
IFU1318でテストされ、第22図およびPM
サブルーチン2103への分岐が行なわれるべき
かどうかを決定する。この分岐は、これがメツセ
ージを有するセマホアに関する指令であれば行な
われる。テストの結果、非メツセージセマホアに
関する指令であることが示されれば、PNMサブ
ルーチンの残りの部分が遂行される。
A P Command on a Non-Message Semaphore At step 2102, a question is asked whether this is a P operation on a non-message semaphore. This is a result of all P operations being first analyzed by subroutine 2028. In step 2012, the operational and auxiliary codes for each of these commands are again
Tested with IFU1318, Figure 22 and PM
Determine whether a branch to subroutine 2103 should be made. This branch is taken if this is a command for a semaphore that has a message. If the test indicates that the command is for a non-message semaphore, the remainder of the PNM subroutine is performed.

2102での質問に対する答えがイエスである
と仮定すれば、このP指令によつてリクエストさ
れたデータは、例えばテープ装置あるいはマグネ
チツク・デイスクなどのリソースが利用可能であ
ることをあらわす様な信号である。ステツプ21
04はメツセージを有しないセマホアのSCTフ
イールドをチエツクし、SCTフイールドがゼロ
より少ないか等しい値をもつているか否かの質問
を行なう。若し答えがノーであつて、すなわちセ
マホアカウントがゼロより大きくて、P指令を実
行するプロセスのためのリソースが利用可能であ
ることを示していれば、ステツプ2105乃至2
114は、メツセージを有しないセマホア上で、
P指令の実行が有効に行なわれたことを示す。詳
しくいえば、ステツプ2105は、メツセージを
有しないセマホアのPQHPフイールド、すなわち
セマホア1600のビツト32乃至47をテスト
し、それがゼロに等しいことを決める。もしこの
状態が存在しなければ、結果として不法セマホア
例外2105a状態が発生し、制御記憶ユニツト
が、この例外状態を処理する。
Assuming the answer to the question at 2102 is yes, the data requested by this P command is a signal indicating the availability of a resource, such as a tape drive or magnetic disk. . Step 21
04 checks the SCT field of the semaphore that has no message and asks whether the SCT field has a value less than or equal to zero. If the answer is no, that is, the semaphore account is greater than zero, indicating that resources are available for the process executing the P command, then steps 2105-2
114 is on a semaphore that does not have a message,
Indicates that the P command was executed effectively. Specifically, step 2105 tests the PQHP field of the semaphore that does not have a message, ie, bits 32-47 of semaphore 1600, and determines that it is equal to zero. If this condition does not exist, an illegal semaphore exception 2105a condition results, and the control storage unit handles this exception condition.

ステツプ2106は、これがP指令かどうかの
質問を行なう。前に説明した様に、テスト指令
は、常に実行中のプロセスを運行状態にとどめて
おくことができる。現在の状態のもとでは、必要
なリソースがセマホアから利用可能であり、非テ
スト指令が有効に実行されるであろうから、テス
ト指令は条件コードをセツトし、次にリソースを
受けとるための非テスト指令として機能すること
になろう。これはステツプ2107で示されてい
るが、ここではSCTフイールドが値が1かどう
かをテストされる。もしこの状態が存在すれば、
その結果、ステツプ2108によつて、ゼロの条
件コードが状態レジスタ1311へ伝送されるこ
とが可能になる。もしSCTフイールドが1に等
しくなければ、このことは、ステツプ2104で
SCTフイールドがゼロより大きいことが決つた
のであるから、SCTフイールドは1より大きい
に違いないということを意味することになる。こ
の状態では、ステツプ2109が実行され、そこ
で状態レジスタ1311内で条件コードが2にセ
ツトされ、1以上の信号が利用可能なことを示
す。
Step 2106 asks if this is a P command. As previously explained, test directives can keep a running process running at all times. Under the current conditions, the test directive sets the condition code and then sets the non-test directive to receive the resource, since the necessary resources are available from the semaphore and the non-test directive will effectively execute. It will function as a test directive. This is illustrated in step 2107, where the SCT field is tested for a value of one. If this condition exists,
As a result, step 2108 allows a zero condition code to be transmitted to status register 1311. If the SCT field is not equal to 1, this is confirmed in step 2104.
Since we have determined that the SCT field is greater than zero, this means that the SCT field must be greater than one. In this state, step 2109 is executed where a condition code is set to 2 in status register 1311 to indicate that one or more signals are available.

以上いずれの場合でも、すなわちこれが非メツ
セージセマホア上のテストP指令であるか否か、
あるいはメツセージを有しないセマホア上での単
なるP指令であるかどうかに拘らず、ステツプ2
110は実行される。P指令のSCTカウントは
正であるから、それ以上のステツプの故に、P指
令はセマホア上で有効に実行されるであろうこと
がわかる。従つてこのステツプは、やがてメイ
ン・メモリ中に書き込まれるであろう情報をもつ
たスクラツチ・パツド・メモリWC4,WC5を
つくるものだともいえるであろう。このことは、
このセマホアと連するリソースに関して、リソー
スを現在使つているプロセスが、TEPフイール
ド中にJP名をもつプロセスであることを示して
いる。現在ステツプ2101中で進展している
NSCTフイールドは、WCの位置から、SCTとし
て、WC4の位置のスクラツチ・パツド・メモリ
中に書き込まれている。従つて、P操作が有効に
行なわれたことを示す2つのフイールドの更新は
完了した訳である。
In any of the above cases, whether this is a test P command on a non-message semaphore or not,
Or whether it is just a P command on a semaphore with no message, step 2
110 is executed. Since the SCT count of the P command is positive, it can be seen that the P command will be effectively executed on the semaphore because of the further steps. Therefore, this step can be said to create scratch pad memories WC4 and WC5 containing information that will eventually be written into main memory. This means that
This indicates that the process currently using the resource associated with this semaphore is the process with the JP name in the TEP field. Currently progressing in step 2101
The NSCT field has been written from the WC location as an SCT into the scratch pad memory at the WC4 location. Therefore, the updating of the two fields indicating that the P operation was successfully performed has been completed.

ステツプ2111では、ハードウエア・ゲート
がロツクされ、分割不可能な作動を含むシステム
のクリテカル操作が発生していることを示す。ス
テツプ2112では、有効なP指令を示し、WC
4,WC5の位置のスクラツチ・パツド・メモリ
に書き込まれたセマホアの更新されたフイールド
は、DMU1321を経由して、メイン・メモリ
102中のSDセグメントに伝送される。これら
のフイールドは、セマホアの以前のフイールドと
置き換わる。ステツプ2113では、ハードウエ
ア・ゲートはロツクが外され、クリテカルな状態
が終つて指令カウンタ1312が増加したことを
示す。こうして実行プロセス(CUP)の、次の
指令が実行される。
At step 2111, the hardware gate is locked, indicating that a critical operation of the system involving an indivisible operation has occurred. In step 2112, a valid P command is indicated and the WC
4. The updated field of the semaphore written to the scratch pad memory at location WC5 is transmitted to the SD segment in main memory 102 via DMU 1321. These fields replace the semaphore's previous fields. At step 2113, the hardware gate is unlocked, indicating that the critical condition has ended and command counter 1312 has been incremented. In this way, the next command of the execution process (CUP) is executed.

メツセージを有しないセマホアのSCTフイー
ルドが、ステツプ2104に対する答えとしてゼ
ロより小さいか等しいことを示した場合には、ス
テツプ2115への分岐が発生する。この状態で
は、実行中のプロセスのP指令によつて、アドレ
スされている。セマホアは、の保有しているリソ
ースを全く持つていない。この結果、リソースを
要求するP指令は有効に実行されない。P指令に
応じて、実行中のプロセスは、待機状態すなわち
セマホアがリソースを受けるまで待たなければな
らない状態に置かれるか、あるいはそれがテスト
P指令ならばこのまゝ継続できるかのいずれかと
なる。
If the SCT field of a semaphore with no message indicates less than or equal to zero as the answer to step 2104, a branch to step 2115 occurs. In this state, it is addressed by the P command of the process being executed. Semaphore has no resources at all. As a result, P commands requesting resources are not effectively executed. Depending on the P command, the running process is either placed in a waiting state, where it must wait until the semaphore receives the resource, or, if it is a test P command, it is allowed to continue.

ステツプ2115では、SCTフイールドがゼ
ロと等しいかどうかの質問が行なわれる。ゼロに
等しければ、これはメツセージを有するセマホア
に結合されているメツセージもプロセスもないこ
とを意味し、従つて、ステツプ2117が、プロ
セス・キユー・ヘツド・ポインタがゼロに等しい
ことを確めるテストを行なう。SCTカウントが
ゼロに等しくなければ、このことはそれがゼロよ
り小さいことを意味し、メツセージを有しないセ
マホアに結合されているプロセスが存在すること
を示している。この場合には、ステツプ2116
が実行され、PQHPがゼロに等しくなく。同時に
8の倍数であるかどうか調べられる。PQHPは、
それがこのセマホアに結合されている最初のプロ
セス・リンクを確認するのであるから、ゼロには
等しくない。プロセスに連結されているプロセ
ス・リンクは、大きさが8バイトであるから、
PQHPは、セマホア上で待機しているプロセスに
関する情報を保持しているプロセス・リンクの最
初のバイトを指す様に、8の倍数となる。
In step 2115, an inquiry is made as to whether the SCT field is equal to zero. If equal to zero, this means that there is no message or process bound to the semaphore that has the message, so step 2117 tests to ensure that the process queue head pointer is equal to zero. Do this. If the SCT count is not equal to zero, this means it is less than zero, indicating that there are processes bound to the semaphore that have no messages. In this case, step 2116
is executed and PQHP is not equal to zero. At the same time, you can check whether it is a multiple of 8. PQHP is
It is not equal to zero because it determines the first process link attached to this semaphore. Since the process link connected to a process is 8 bytes in size,
PQHP will be a multiple of 8 so that it points to the first byte of the process link that holds information about processes waiting on the semaphore.

これらのテストが有効に行なわれれば、このセ
マホアが適当なものであることが知られることに
なる。ステツプ2118は実行されているのがテ
ストP指令であるかどうかの質問を行なう。もし
そうならば、ステツプ2119で示された様に、
1の条件コードがセツトされる。この条件コード
は、P指令が実行されていれば、実行プロセスは
待機状態に入つてしまつていたでいろうことを示
している。加えて、最後のプロセスのJP名が、
メツセージを有しないあのセマホア上でP操作を
有効に行なつたかどうかを決定するために、ステ
ツプ2120が実行される。ここで注意すべきこ
とは、有効に行なわれたP操作がなかつたことか
ら、実行中のプロセスは、そのJP名を、セマホ
ア1600のTEPフイールド中に記さないこと
である。しかし、このセマホア上でP操作を実行
した、有効な最後の実行プロセスの名前は、この
プロセスが現在実行中のプロセスによつて、リク
エストされたリソースを保持しているのであるか
ら、記憶されていることになる。次にセマホアの
TEPフイールド内のJ、P名は、現在、実行中
のプロセスの総合レジスタO(GRO)中に書き
込まれる。これはステツプ2120に現在実行中
プロセスのGROの最後の16ビツトに書かれてい
るJP名で示されている。最初の16ビツト内に
は、入れられたすべてのゼロが入つている。Pテ
スト指令を実行中のプロセスが、TEPフイール
ド内にリソースおよびその名前を持つているプロ
セスよりも高い優先順位を持つているならば、現
在のプロセスは、リソースを用いているプロセス
を中止させる様に決定することになろう。いずれ
の場合にも、しかしながら、指令カウンタ131
2は増加し、ステツプ2114に示される様に、
Pテスト指令を遂行した遅行中のプロセスの次の
指令が実行される。
If these tests are successful, the semaphore is known to be suitable. Step 2118 asks if it is a test P command that is being executed. If so, as indicated in step 2119,
A condition code of 1 is set. This condition code indicates that if the P command had been executed, the executing process would have entered a waiting state. In addition, the JP name of the last process is
Step 2120 is executed to determine whether a P operation was validly performed on that semaphore that does not have a message. What should be noted here is that the executing process does not write its JP name in the TEP field of the semaphore 1600 because no P operation was validly performed. However, the name of the last valid running process that performed a P operation on this semaphore is not remembered since this process holds the requested resource by the currently running process. There will be. Next, Semahore's
The J and P names in the TEP field are written into the general register O (GRO) of the currently executing process. This is indicated in step 2120 by the JP name written in the last 16 bits of the GRO of the currently executing process. The first 16 bits contain all zeros inserted. If the process running the P test directive has a higher priority than the process that has the resource and its name in the TEP field, the current process will cause the process using the resource to abort. It will be decided to. In either case, however, the command counter 131
2 increases and as shown in step 2114,
The next command of the lagging process that completed the P test command is executed.

もし、これがテスト指令ではなく、OPコード
がステツプ2118中に、これが非メツセージセ
マホア上のP指令であつたことを示した場合に
は、現在実行中のプロセスを待機状態に入れる
VP2121のサブルーチンEが実行される。こ
の結果、現在実行中のプロセスは、もう運行中の
状態ではなくなり、そのJ、P名を有するプロセ
ス・リンクが、P指令によつてアドレスされるセ
マホアに結合される様になる。
If this is not a test command and the OP code indicates during step 2118 that this was a P command on a non-message semaphore, put the currently running process into a wait state.
Subroutine E of VP2121 is executed. As a result, the currently running process is no longer running and its process link with J,P name becomes attached to the semaphore addressed by the P command.

現在のプロセスを待機状態に置くステツプ21
21を考える前に、2102内の質問からの分岐
サブルーチンPM2103について考えることと
する。これは、このサブルーチンが、メツセージ
を有するセマホア上のP操作のためのサブルーチ
ンを呼び出すからである。のサブルーチンは、ま
た、メツセージセマホア上のP指令を実行するプ
ロセスが、待機状態に置かれた時、VP2121
のEに分岐する。では、ここで、VPサブルーチ
ン2121のEの説明を行なうこととする。
Step 21: Put the current process into standby state
Before considering 21, let us consider the branch subroutine PM 2103 from the question in 2102. This is because this subroutine calls the subroutine for the P operation on the semaphore with the message. The subroutine also executes VP2121 when the process that executes the P command on the message semaphore is placed in the standby state.
Branches to E. Now, E of the VP subroutine 2121 will be explained.

B メツセージを有するセマホア上のP指令。P command on semaphore with B message.

ステツプ2102に於て、操作コードが、P指
令は、メツセージを有するセマホア上にあること
を示した場合には、第22a図およびステツプ2
200への分岐が行なわれる。第20図で、セマ
ホアはすでにフエツチされ、マクラツチ・パツ
ド・メモリのWC4,WC5の位置にとどまつて
いる。ステツプ2200ではSCTフイールドす
なわちビツト16−31がゼロより小さいか、す
なわち第16図に1602で示されているメツセ
ージを有するセマホアに結合されているプロセス
であるかどうかの質問が行なわれる。もしSCT
フイールドが、算術および論理ユニツト1317
によつて、ゼロより小さいかどうかテストされれ
ば、ステツプ2201が、メツセージを有するセ
マホア内のPQHPおよびMQTPフイールドをテス
トしてそれが正しいことを決定する。詳しくいえ
ば、メツセージ・キユー・テール・ポインタ
MQTP、すなわちビツト48乃至63は、メツ
セージを有するこのセマホアに結合されているの
がプロセスではなくてメツセージであることか
ら、ゼロでなければならない。ビツト32−47
は、このセマホアに結合されている最初のプロセ
スを確認するプロセス・キユー・ヘツド・ポイン
タであり、これらの16ビツトは、ゼロに等しくな
いか、そして8の係数であるかの両方についてテ
ストされる。前のテストは、2ワードのプロセ
ス・リングがセマホアに結合されていることを確
めかるために行なわれ、後のテストは、プロセ
ス・リンクの2ワードの最初おバイトを示してい
ることを示すものであ。この様にして、2201
でのこれらのテストによつてセマホアQ/PR/
S上に待機しているプロセスのキユーが存在し
SCTフイールドがゼロより小さいという表示が
正しいことが確かめられる。
In step 2102, if the operation code indicates that the P command is on a semaphore with a message, then FIG. 22a and step 2
A branch to 200 is taken. In Figure 20, the semaphore has already been fetched and remains at positions WC4 and WC5 in the macrolatch pad memory. At step 2200, an inquiry is made whether the SCT field, bits 16-31, is less than zero, ie, whether the process is bound to the semaphore with the message shown at 1602 in FIG. If SCT
field is an arithmetic and logic unit 1317
, then step 2201 tests the PQHP and MQTP fields in the semaphore containing the message to determine that it is correct. More specifically, the message queue tail pointer
MQTP, bits 48-63, must be zero because it is a message, not a process, that is bound to this semaphore that has a message. Bits 32-47
is the process queue head pointer that identifies the first process bound to this semaphore, and these 16 bits are tested both for not equal to zero and for a factor of 8. . The previous test was done to ensure that the 2-word process ring was bound to the semaphore, and the latter test showed that the process link was showing the first byte of the 2-word process link. It's something. In this way, 2201
Through these tests, Semaphore Q/PR/
There is a queue of waiting processes on S.
The indication that the SCT field is less than zero is verified to be correct.

ステツプ2202では、これがメツセージを有
するセマホア上のテストP指令であるかどうかの
質問が行なわれる。テスト指令は、実行中のプロ
セスを待機状態に置くことができないので、結果
として、第21図ステツプ2118で発生したと
同じ状態が起る。この結果、状態レジスタ131
1は1の条件コードにセツトされ、メツセージを
有するセマホア上のP指令が実行されないこと、
実行中のプロセスの指令カウンタが1増やされて
(ステツプ2203)、現在のプロセスの次の指令
が実行され得ること(ステツプ2204)を示
す。
In step 2202, a question is asked whether this is a test P command on a semaphore with a message. Since the test command cannot place a running process into a waiting state, the same situation that occurred in step 2118 of FIG. 21 results. As a result, the status register 131
1 is set to a condition code of 1, and a P command on a semaphore with a message is not executed;
The command counter of the executing process is incremented by one (step 2203) to indicate that the next command of the current process may be executed (step 2204).

メツセージを有するセマホア上のP指令が、テ
スト指令でない場合には、P指令を開始した実行
中のプロセスがメツセージを要求することにな
る。しかし利用可能のメツセージがないので、現
在実行中のプロセスは、メツセージを待つている
様に要求され、従つて、VP2121のサブルー
チンEは、実行中のプロセスを待機状態に入れ
る。これは、第21図にも示されている。
If the P command on the semaphore that has the message is not a test command, then the running process that initiated the P command will request the message. However, since there are no messages available, the currently executing process is required to wait for a message, and therefore subroutine E of VP 2121 places the executing process into a waiting state. This is also shown in FIG.

C 実行中のプロセスを待機状態に置くこと VPサブルーチンのEは、現在のプロセスがそ
の実行を継続できず、待機状態に置かれなければ
ならない様な状況の時に呼び出される。従つて、
メツセージ1600を有しないセマホアおよびメ
ツセージ1602を有するセマホアを含む、先に
述べた2つの状況は、Q/PR/Sが形成される
ことから同一に扱われる。後にV指令について述
べる中で、VPサブルーチンのEも、フリー・メ
ツセージ・リンクが利用可能でない時には呼び出
されることを示す予定である。この状態では、プ
ロセスはメツセージを伝速することができず、従
つて、フリー・メツセージ・リンクQ/PR/
FLSを待つているFLSセマホア901内のキユー
上に置かれる。これらの状態はすべて、第23図
に示される様に、同じ機能を実行しているフアー
ムウエア内で起る。
C. Placing a running process in a waiting state VP subroutine E is called when the current process cannot continue its execution and must be placed in a waiting state. Therefore,
The two situations described above, including a semaphore without message 1600 and a semaphore with message 1602, are treated the same because Q/PR/S is formed. Later in the discussion of the V command, it will be shown that the VP subroutine E is also called when no free message link is available. In this state, the process cannot propagate messages and therefore has no free message link Q/PR/
It is placed on a queue in the FLS semaphore 901 waiting for FLS. All of these conditions occur within firmware performing the same function, as shown in FIG.

更に詳述すれば、待機状態に置かれようとして
いる実行中のプロセスは、現在運行状態にあるの
であるから、第16C図および18図に示されて
いる様に、プロセス・リンクがPLSセマホアから
獲得されなければならない。第18図では、G0
セグメント802内のPLSセマホア901は、プ
ロセス・リンク85aを指し、このプロセス・リ
ンクは、遂次残つているプロセス・リンクを示
し、結果として、すべてのプロセス・リンクがプ
ロセス・リンクセマホア用901に結合されてい
るキユーの中にあるか示されている。第23a図
のステツプ2301では、APLSサブルーチン
は、PLSセマホア901に結合されているプロセ
ス・リンク805aにアクセスしている。APLS
サブルーチンは、第23C図に示されている。
More specifically, since the running process that is about to be placed in the standby state is currently in the running state, the process link is removed from the PLS semaphore, as shown in Figures 16C and 18. must be acquired. In Figure 18, G0
PLS semaphore 901 in segment 802 points to process link 85a, which sequentially indicates the remaining process links, so that all process links are coupled to process link semaphore 901. It is shown what is in the queue. In step 2301 of FIG. 23a, the APLS subroutine is accessing process link 805a that is coupled to PLS semaphore 901. APLS
The subroutine is shown in Figure 23C.

第23C図に関連して、APLSサブルーチンの
最初のステツプは、PGOサブルーチン2321
にアクセスする。第23d図に示すG0サブルー
チンは、PLSセマホア901のアドレスを進展さ
せるが、これは、PLSセマホアが常にG0セグメ
ント中の最初のワードであることから一定であ
る。FGOサブルーチン2330の最初のステツ
プは、フアームウエアが、アドレスすなわちG0
セグメント・デスクリプタ内のPLSセマホアの位
置を決定するセグメント・ナンバーを作り出すと
いうことを示している。これは、WC9の位置の
スクラツチ・パツト・メモリ内でレジスタをセレ
クトし、次に述べる様な12ビツト数を作り出すこ
とによつて遂行される。最初の4つのビツトは、
Gナンバーであることを示す様に0111に等しくセ
ツトされ、最後の8ビツトは、Gナンバーのゼ
ロ、セグメントであることを示すようにゼロにセ
ツトされる。従つて、このセグメント・ナンバー
はG0セグメント内のPLSセグメントの位置を示
すものである。このセグメント・ナンバーは、次
にステツプ2331巾で、連合メモリ1319a
に伝送され、連合メモリがセグメント・ナンバー
のセグメント・デスクリプタおよび結果として、
モグメントのベース・アドレスを含んでいるかど
どうかを決定する。前に述べた様に、アソシエー
タは、フアスト・アクセス・メモリであつて、シ
ステムが情報をフエツチするため、メイン・メモ
リまで行かなければならない事態を回避させる役
割りをする。ステツプ2332では、ビツトが作
られたかすなわち連合メモリ1319aが、ステ
ツプ2330内に作られたセグメント・ナンバー
を含んでいるか否かの質問が行なわれる。もし連
合メモリが、このアドレスを有していなければス
テツプ2333が、セグメント・デスクリプタ内
に書き込まれているビツトがセツトされたかどう
か質問する。このテストは、現在の状態では、現
在のプロセスセマホア上でキユーになることにし
ており、従つて特定の情報例えば次のリンクのポ
イントなどの書き込みが必要であることから行な
われるものである。書き込まれたビツトについて
はすでに述べた。書き込まれたビツトがまだセツ
トされていない時は、SGWサブルーチンへの分
岐が実行され、それによつてWビツトが、連合メ
モリ1319aおよびメイン・メモリの両方に書
き込まれる。しかし書き込まれたビツトがセツト
されていれば、それを書き込む必要はなく、従つ
てステツプ2335が実行される。
With reference to FIG. 23C, the first step in the APLS subroutine is PGO subroutine 2321.
access. The G0 subroutine shown in Figure 23d advances the address of the PLS semaphore 901, which is constant since the PLS semaphore is always the first word in the G0 segment. The first step in the FGO subroutine 2330 is to send the firmware to address ie G0.
Indicates that a segment number will be created that determines the location of the PLS semaphore within the segment descriptor. This is accomplished by selecting a register in the scratch pad memory at location WC9 and creating a 12-bit number as described below. The first four bits are
It is set equal to 0111 to indicate a G number, and the last 8 bits are set to zero to indicate a G number, a segment. Therefore, this segment number indicates the position of the PLS segment within the G0 segment. This segment number is then stored in federated memory 1319a at step 2331.
and the federated memory stores the segment descriptor for the segment number and, as a result,
Determines whether it contains the mogment's base address. As previously mentioned, the Associator is a fast access memory that prevents the system from having to go to main memory to fetch information. In step 2332, an inquiry is made whether the bit was created, ie, whether the federated memory 1319a contains the segment number created in step 2330. If the federated memory does not have this address, step 2333 asks if the bit written in the segment descriptor has been set. This test is performed because, in the current state, the current process is queued on the semaphore, and therefore it is necessary to write specific information, such as the point of the next link. The written bits have already been mentioned. If the written bit is not yet set, a branch is taken to the SGW subroutine, which causes the W bit to be written to both federated memory 1319a and main memory. However, if the written bit is set, there is no need to write it and therefore step 2335 is executed.

アソシエータが、ステツプ2330で作られる
セグメント・ナンバーを含んでいなければ、すな
わちステツプ2332で分岐が行なわれなけれ
ば、サブルーチンFGSG2336が実行され、ア
ソシエータにはセグメントナンバーが置かれ、そ
の結果2330に作られたセグメント・ナンバー
がアソシエータ1319aに照合された次の時に
は、ヒツト状態が発生する。このサブルーチン
は、セグメント・ナンバーのUおよびWビツトを
アソシエータとメイン・メモリの両方にセツトす
る。
If the Associator does not contain the segment number created at step 2330, that is, no branch is taken at step 2332, then subroutine FGSG 2336 is executed and the Associator is placed with the segment number created at 2330. The next time the segment number entered is checked against the associator 1319a, a hit condition occurs. This subroutine sets the U and W bits of the segment number in both the Associator and main memory.

すべての場合、ステツプ2335は実行され、
セグメント・ベースとセグメント・リミツトを将
来のためにセツト・アツプしておく。このステツ
プは、現在アソシエータのメモリの中に位置して
いるセグメント・デスクリプタの、セグメントベ
ース・アドレスとセグメント・リミツトを、アド
レス・コントロール・ユニツト1319の作動中
のレジスタに伝送する。セグメント・リミツト
は、メモリ中のセグメントのエンド・アドレスを
確認する。引き出されるアドレスがリソース・リ
ミツトよりも大きい時には、セグメント例外ルー
チンの除外が行なわれる。
In all cases, step 2335 is executed;
Set up the segment base and segment limits for future use. This step transmits the segment base address and segment limit of the segment descriptor currently located in the Associator's memory to the active registers of address control unit 1319. Segment limits determine the end address of a segment in memory. Segment exception routine exclusion occurs when the address drawn is greater than the resource limit.

ステツプ2335が完了すると、第23C図の
APLSサブルーチンへの戻りが行なわれる。次に
ステツプ2323が実行される。しかし、ステツ
プ2322は、FGOサブルーチンの呼び出しを
必要としないAPLSサブルーチンの1つの変り型
であることを注意する必要がある。この状態が発
生するのは、PLSセマホアのアドレスが、その前
にすべにアクセスされているのでFGOサブルー
チンの利用の必要がない時である。APLSサブル
ーチンのいずれかを使つてステツプ2323は、
PLSセマホアを何らかのテストが行なわれている
算術論理ユニツト1317に伝送する。ステツプ
2324では第16C図に示したPLSセマホア9
01の2つのワードについてチエツクが行なわれ
る。従つて、STAGフイールドすなわちビツト0
乃至3がすべてゼロであるかと決めるためにチエ
ツクされ、SMCフイールドすなわちビツト4乃
至15が、すべてゼロであることを確認するため
にチエツクされ、MBZフイールドすなわちビツ
ト16乃至31がゼロであることをチエツクさ
れ、さらに、次のプロセス・リンクを指している
PLQPリンクが、すべてのプロセス・リンクは長
さが2ワードであることから、8の倍数であるこ
と、PLQPがプロセス・リンクの最初のバイトを
指していることから、ゼロでないこと、以上2つ
を決定するためにチエツクされる。
Upon completion of step 2335, the process shown in FIG. 23C is completed.
A return is made to the APLS subroutine. Next step 2323 is executed. However, it should be noted that step 2322 is a variation of the APLS subroutine that does not require a call to the FGO subroutine. This condition occurs when there is no need to use the FGO subroutine because the address of the PLS semaphore has been previously accessed. Using one of the APLS subroutines, step 2323
The PLS semaphore is transmitted to arithmetic logic unit 1317 where some testing is performed. In step 2324, the PLS semaphore 9 shown in FIG.
A check is made on the two words 01. Therefore, the STAG field or bit 0
The SMC field, or bits 4-15, is checked to determine that they are all zeros, and the MBZ field, or bits 16-31, is checked to determine that they are all zeros. and also points to the following process link:
The PLQP link must be a multiple of 8, since all process links are 2 words long, and it must be non-zero, since PLQP points to the first byte of the process link. is checked to determine.

これらのテストが有効に行なわれれば、ステツ
プ2325が、リンクの8バイトのメモリ・フエ
ツチを行なうことで、プロセス・リンクセマホア
上での最初のプロセス・リンタへのアクセスをテ
ストする。このリンクが正しいメモリの中にない
時は、このメモリ・フエツチの結果として、例外
が発生することになる。テストが有効に行なわれ
ればリンクの絶対アドレスは、W30の位置のス
クラツチ・バツド・メモリに記憶される。もし、
PLQPポインタがゼロであつた時は、現在いかな
るプロセス・リンクも利用可能ではないというこ
とが示される。言い換えれば、システム中にあた
えられているすべてのプロセス・リンクは、待機
か準備完了の状態にあり、入つて来る新しいプロ
セスに対して利用可能なプロセス・リンクはもう
ないということになる。この状態が発生すると、
ミシングプロセス・リンク・エクセプシヨン23
25aが実行される。もしこの非常に稀な事態が
起つた時には、現在あるいくつかのプロセスが中
断され、システムがそのプロセス・リンクを利用
できる様にする。しかし、これらのテストがすべ
て有効に行なわれれば、APLSサブルーチンは完
了し、第23a図およびステツプ2302に復帰
することができることになる。
If these tests are successful, step 2325 tests the access to the first process linter on the process link semaphore by performing an 8-byte memory fetch of the link. If this link is not in the correct memory, this memory fetch will result in an exception. If the test is successful, the absolute address of the link is stored in scratch pad memory at location W30. if,
When the PLQP pointer is zero, it indicates that no process link is currently available. In other words, all process links present in the system are in a waiting or ready state, and no more process links are available for new incoming processes. When this condition occurs,
Missing Process Link Exception 23
25a is executed. If this very rare event occurs, some existing processes will be suspended to allow the system to utilize the process link. However, if all of these tests are successful, the APLS subroutine is complete and it is possible to return to FIG. 23a and step 2302.

ステツプ2302では、これはP指令かととい
う質問が出される。答えがノーであれば、すなわ
ちそれがV指令であれば、第15図に示した様
に、メツセージ・ヘツダを書き込むサブルーチン
MTT2303が実行される。しかし現在の状態
では答えはイエスであるから、ステツプ2304
サブルーチンPRIQが実行される。
At step 2302, a question is asked as to whether this is a P command. If the answer is no, that is, if it is a V command, the subroutine writes the message header as shown in Figure 15.
MTT2303 is executed. However, in the current state, the answer is yes, so step 2304
Subroutine PRIQ is executed.

PRIQサブルーチンは、待機状態に置かれてい
る、現在実行中のプロセスと連合したプロセス・
リンクの配置を決定する。この配置は、優先順位
に基いて、セマホアのキユーに入る様に行なわれ
る。優先順位による配置は、キユー化されたすべ
てのプロセスに必要でまた、優先順位によるキユ
ー化を示すSTAGフイールドを持つているセアホ
ア上のメツセージにとつても必要である。PRIQ
サブルーチンは、セアホア上にキユー化している
リンクの優先順位に入れるべきプロセス・リン
ク・メツセージ・リンクの優先順位と比較する、
そして、優先順位のキユーの型に応じてすなわち
IIFOかLIFOかに応じて、その配置を確認する。
その後、UQLQサブルーチンは、PQIQレジスタ
が進展させた情報を利用して、新しいリンクをキ
ユーの中に書き込む、これに加えて、要求に従つ
て他のリンクの情報の変更も行なう。
The PRIQ subroutine handles processes associated with currently running processes that are placed in a wait state.
Decide on link placement. This placement is done to queue the semaphore based on priority. Priority placement is required for all queued processes, and also for messages on Seahore that have a STAG field indicating priority queueing. PRIQ
The subroutine compares the priority of the process link message link to be placed in the priority of the link queued on Serhoa,
And depending on the type of priority queue i.e.
Check its placement depending on IIFO or LIFO.
The UQLQ subroutine then utilizes the information developed by the PQIQ register to write new links into the queue, as well as modify information for other links as requested.

説明の便のため、セマホア上でP指令が不成巧
だつた時、すなわち第20図および21図の結果
の様な時の状態でのPRIQサブルーチンについて
述べる。更に、PRIQサブルーチン2304に
は、多くの変数が含まれているので、フロー・チ
ヤートに示された表記法の結果と合わない一般的
な記号についても述べる例えば第23e図および
23f図の記号PLはキユーになるリンクすなわ
ちプロセス・リンクかメツセージ・リンクのいず
れかであり得るリンクをあらわしている。記号
QHPは、キユー・ヘツドのとり替えであり、こ
れはセマホアにとつてはPQHPかMQHPである。
サブルーチン2304(I)の中の記号は、
FIFOが優先順位によつてキユーになるか、ある
いはLIFOが優先順位によつてキユーになるかの
いずれが用いられて、その結果、補助メモリ13
17aのフロツプがこの目的のためにセツトされ
ていることを示すために使われる。記号SNLは、
入れられるプロセス・リンクの次のリンク・フイ
ールドである。後に示す様に、獲得されたプロセ
ス・リンクあるいはメツセージ・リンクは、キユ
ーの中のどこかに挿入される。従つて、SNLは次
のプロセスかあるいはそれにすぐ続くメツセー
ジ・リンクを確認する。最初のリンク・インジケ
ータは、新しいリンクがキユーの頭に置かれるか
置かれないか、すなわち、サブルーチンが終了し
た時に最初のリンクインジケータがまだ1に等し
ければ、加えられたプロセスかあるいはメツセー
ジ・リンクのいずれかキユーの頭になるのかと確
認する。ULKは加えられる新しいリングのすぐ
前にあるプロセスあるいはメツセージ・リンクを
あらわす。従つて、その次のリンク・フイールド
は、加えられる新しいリンクの位置を確認するた
めに、更新する必要があることになる。ULXの
次のリンク・フイールドは、ULKで次のリン
ク・フイールドの値となるSRELによつて確認さ
れる。この結果、キユーの中間にあるプロセスあ
るいはメツセージ・リンクを挿入する必要がある
時は、新しく挿入されるリンクのすぐ前のリンク
は、変更されて、SRELの値を持つ様になる。加
えて、新しく挿入されたプロセスあるいはメツセ
ージリンクは、ULKによつて前に確認されてい
る次のリンクを指す様になる。
For convenience of explanation, the PRIQ subroutine will be described when the P command is unsuccessful on the semaphore, that is, when the results are as shown in FIGS. 20 and 21. Additionally, because the PRIQ subroutine 2304 includes many variables, we will also discuss common symbols that do not match the notation results shown in the flow chart, such as the symbol PL in Figures 23e and 23f. Represents a queued link, which can be either a process link or a message link. symbol
QHP replaces queue head, which for semaphore is PQHP or MQHP.
The symbols in subroutine 2304(I) are:
Either FIFO is queued by priority or LIFO is queued by priority so that the auxiliary memory 13
Used to indicate that flop 17a is set for this purpose. The symbol SNL is
This is the next link field for the process link to be entered. As shown below, the acquired process link or message link is inserted somewhere within the queue. Therefore, SNL verifies the next process or the message link that immediately follows. The first link indicator determines whether the new link is placed at the head of the queue or not, i.e. if the first link indicator is still equal to 1 when the subroutine exits, the added process or message link I'll see if one of them will become Kyu's head. ULK represents the process or message link immediately preceding the new ring being added. Therefore, the next link field will need to be updated to confirm the location of the new link being added. The next link field in ULX is verified by SREL, which is the value of the next link field in ULK. As a result, when it is necessary to insert a process or message link in the middle of a queue, the link immediately preceding the newly inserted link is changed to have the value of SREL. In addition, newly inserted process or message links now point to the next link previously seen by ULK.

PRIQ2304サブルーチンが可能にした実際
の変化を明瞭にするためには、これに結合されて
いる第18図、特に1808a,1808bおよ
び1808cのプロセス・リンクをもつQ/
PR/S5を参照する必要がある。このキユーに
は、優先順位によつて、PLSセマホアからのプロ
セス・リンク805aがつけ加えられる。説明の
便宜のためプロセス・リンク805aはzで示
し、その次のリンク・フイールドはSNLで示すこ
ととする。また、プロセス・リンク1808a,
1808bおよび1808cは、以後プロセス・
リンクA,BおよびCで示すこととする。従つ
て、プロセス・リンクAは、Bを指す次のリン
ク・フイールドをもち、プロセス・リンクBはC
を指す次のリンク・フイールドCをもち、Cの次
のリンク・フイールドはゼロということになる。
プロセス・リンク2の優先順位は待機状態に入れ
られる実行中のプロセスの優先順位であるから、
このキユーでのプロセス・リンクの位置および他
のプロセス・リンクA,B,CおよびセマホアS
5に加えられる変化は示すことができる。
To clarify the actual changes made possible by the PRIQ2304 subroutine, refer to FIG.
It is necessary to refer to PR/S5. Process links 805a from the PLS semaphore are added to this queue according to priority. For convenience of explanation, process link 805a will be designated by z, and the next link field will be designated by SNL. Also, process link 1808a,
1808b and 1808c are hereafter processed.
Let us refer to links A, B, and C. Therefore, process link A has the following link field pointing to B, and process link B has the following link field pointing to B:
, and the next link field after C will be zero.
Since the priority of process link 2 is the priority of the running process to be put into standby state,
The position of the process link in this queue and other process links A, B, C and semaphore S
The changes made to 5 can be shown.

更に詳しく言えば、まず第23C図のステツプ
2340は、SNLが、キユー・ヘツド・ポイン
タ、すなわち、キユーの中の最初のプロセスリン
クに等しくセツトされたことを示す。最初のリン
ク・インジケータは1にセツトされ、その後、変
更されようとしているのが、最初のリンクでない
と決められた場合には、最初のリンク・インジケ
ータはゼロに変えられる。この場合に検査を受け
る現在のリンクLKは、プロセス・リンクAの次
のリンク・フイールドになる。この結果、最初
LKは、プロセス・リンクAであり、適用される
リンクULKもまた、プロセス・リンクAとな
る。
More specifically, step 2340 of FIG. 23C first indicates that SNL has been set equal to the queue head pointer, ie, the first process link in the queue. The first link indicator is set to one, and then if it is determined that it is not the first link that is being modified, the first link indicator is changed to zero. The current link LK being examined in this case becomes the next link field of process link A. As a result, the first
LK is process link A, and the applied link ULK will also be process link A.

ステツプ2341で、次に行なわれる質問は、
キユー・ヘツド・ポインタがゼロに等しいか否か
である。答えがイエスならば、これは空いている
キユーがあり、ステツプ2342が実行されたこ
とを指す、zの次のリンク・フイールドすなわち
SNLはゼロにセツトされ、キユー上にはもうリン
クがなく、セマホアのプロセス・キユ・ヘツド・
ポインタは、キユーに加えられているプロセス・
リンクを指すように書き込まれることになる。リ
ンクがもしメツセージ・リンクであれば、メツセ
ージ・キユー・テール・ポインタもまた、キユー
の中の唯一のリンクであるメツセージ・リンクを
指すことになろう。そして、これがステツプ23
43で示されたPRIQサブルーチンの終りであ
る。従つて、この例では、リンクZ、すなわち8
05aはセマホア上のキユーの中で唯一のリンク
を形成することになる。
The next question asked in step 2341 is:
The queue head pointer is equal to zero. If the answer is yes, this indicates that there is a free queue and step 2342 has been executed, i.e.
SNL is set to zero, there are no more links on the queue, and the semaphore process queue head is
The pointer indicates the process being added to the queue.
It will be written to point to the link. If the link is a message link, the message queue tail pointer will also point to the message link, which is the only link in the queue. And this is step 23
This is the end of the PRIQ subroutine indicated by 43. Therefore, in this example, link Z, i.e. 8
05a will form the only link among the queues on the semaphore.

しかし、セマホアS5に関連して前に述べた特
定の状態では、このセマホアに結合されたプロセ
ス・リンクが3つあり、従つて2341での質問
に対する答えはノーとなる。その結果、プロセ
ス・リンクの最初のワードすなわちワード0はフ
エツチされる。ステツプ2345では、プロセ
ス・リンクZの優先順位がプロセス・リンクAの
優先順位より小さいかどうかの質問が行なわれ
る。この2345での質問に対する答がイエスで
あればすなわちプロセス・リンクZの優先順位
が、キユーの中で最も高ければ、これはプロセ
ス・リンクZがプロセス・リンクAの体に置かれ
ていることを示す。さて、プロセス・リンクのた
めの位置がこれで決められた訳である。その結
果、サブルーチンUQLKまは、WDB,WDC,
WDD,WDEの位置に、スクラツチ・ハツド・メ
モリ中に書き込まれた情報を取つて、セマホアを
更新することになる。
However, in the particular situation described above with respect to semaphore S5, there are three process links coupled to this semaphore, so the answer to the question at 2341 is no. As a result, the first word of the process link, word 0, is fetched. In step 2345, a question is asked whether process link Z's priority is less than process link A's priority. If the answer to this question at 2345 is yes, that is, if process link Z has the highest priority in the queue, this means that process link Z is placed in the body of process link A. show. Now, the location for the process link has been determined. As a result, subroutine UQLK or WDB, WDC,
The semaphore will be updated by fetching the information written in the scratch hard memory to the WDD and WDE locations.

しかし、もし、プロセス・リンクZの優先順位
が、プロセス・リンクAの優先順位より小さい場
合は、ステツプ2346が実行される。ステツプ
2346で行なわれる質問は、Zの優先順位が、
Aの優先順位に等しいかどうかである。この状態
がおこれば、ステツプ2347が、ステツプ23
04にセツトされているパラメータが1に等しい
かどうかを質問する。このIパラメータが1に等
しければ、これは、LIFOのキユー化を示すこと
になり、同一の優先順位のレベルはラスト・イ
ン・フアースト・アウトが起ることを意味する。
この結果、リンクZはキユーの頭に置かれ、ステ
ツプ2343が実行されてサブルーチンが終了す
る。しかし、もし、エパラメータが1に等しくな
くて、FIFOのキユー化すなわち、フアスト・イ
ン・フアースト・アウトが行なわれることを示せ
ば、その時はステツプ2348が実行されること
になる。注意すべきことは、プロセス・リンクZ
の優先順位がプロセス・リンクAの優先順位より
大きい時には、ステツプ2346から経路なしが
示されて、ステツプ2348が自動的に実行され
ることである。
However, if process link Z's priority is less than process link A's priority, step 2346 is executed. The question asked in step 2346 is that Z's priority is
The question is whether the priority is equal to A's priority. If this condition occurs, step 2347 is followed by step 23.
Query whether the parameter set to 04 is equal to 1. If this I parameter is equal to 1, this would indicate LIFO queuing, and the same priority level means that last in first out will occur.
As a result, link Z is placed at the head of the queue, step 2343 is executed, and the subroutine ends. However, if the parameter is not equal to 1, indicating that FIFO queuing or fast-in-first-out is to be performed, then step 2348 will be executed. What should be noted is that the process link Z
If the priority of process link A is greater than the priority of process link A, then no path is indicated from step 2346 and step 2348 is automatically executed.

この様にして、FIFOと、ステツプ2348を
キユー化する低い優先順位の両方のために、次の
リンクはゼロに等しいですかという質問が行なわ
れる。これはAの次のリンク・フイールドに関係
してくる。もし答がイエスならば、これはセマホ
アのキユーに結合されているプロセス・リンクは
それ以上ないこと、すなわち、セマホアに結合さ
れているのは、プロセス・リンクA1つしかない
ことを示すことになる。この結果、Zプロセス・
リンクがAプロセス・リンクに結合され、キユー
の新しいリンク・エンドになる。もしこの状態が
発生すれば、ステツプ2349は、スクラツチハ
ツド・メモリの中のUQLKサブルーチンが書き込
む位置WDB,WDCおよびWDDにある情報書き
込むことになる。このステツプ2349に記憶さ
れる情報は次の通りである。ZのSNLは、キユー
の上にそれ以上リンクがないのであるから、ゼロ
にセツトされるであろう。Aの次のリンク・フイ
ールドであるSRELはそれをプロセス・リンクZ
に指し示すある値を受けとる。この結果、SREL
はPLになる。加えて、最初のリンクはゼロに変
えられキユーの最初のリンクが変えられないこと
を示す。最初にセマホアのMQTPは、もしこれ
がメツセージ・リンクであれば、Zメツセージ・
リンクが最後のメツセージ・リンクであろうとい
うことを示す様に変えられる。しかし、検討され
ているこの特定の例では、Zはプロセス・リンク
でメツセージ・リンクではなく、従つてMQTP
はゼロのまゝで残ることになる。このことは、プ
ロセスが待機状態に置かれているかあるいは準備
完了状態に置かれているか、あるいはメツセージ
がキユーに加えられるか否かを示す連合メモリ1
317a内の他のブロツプによつて示されるであ
ろう。PRIQの終末は2343で示した様に示さ
れる。
Thus, for both the FIFO and the low priority queuing step 2348, the question is asked is the next link equal to zero? This concerns the next link field of A. If the answer is yes, this would indicate that there are no more process links attached to the semaphore's queue, i.e. there is only one process link A attached to the semaphore. . As a result, the Z process
The link is joined to the A process link and becomes the new link end of the queue. If this condition occurs, step 2349 will write the information in scratchhat memory to the locations WDB, WDC, and WDD written by the UQLK subroutine. The information stored in this step 2349 is as follows. Z's SNL will be set to zero since there are no more links on the queue. A's next link field, SREL, links it to process link Z
receives a value pointing to. As a result, SREL
becomes PL. Additionally, the first link is changed to zero to indicate that the first link of the queue cannot be changed. First, Semaphore's MQTP will create a Z message link if this is a message link.
The link is changed to indicate that it will be the last message link. However, in this particular example being considered, Z is a process link and not a message link, and therefore MQTP
will remain at zero. This means that the federated memory 1 indicates whether the process is placed in a waiting or ready state, or whether a message is to be added to the queue.
It will be indicated by another blob in 317a. The end of PRIQ is indicated as 2343.

しかし、次のリンク・フイールドがゼロに等し
くない場合、これは検査を受けるプロセス・リン
クBおよびCがあることから、現在の状態である
といえるが、この場合にはステツプ2350が実
行される。現在照応されている各種のリンクを追
跡し続けるため、LKであるリンクAは、現在
ULKに変えられており、次のリンクであるリン
クBは、現在LKに変えられて、プロセス・リン
クBが現在検査されているものであることを示
す。ステツプ2351では、プロセス・リンクB
の最初のワードはメイン・メモリからフエツチさ
れ、スクラツチ・バツド・メモリの位置W32に
伝送される。すると、プロセス・リンクBの次の
リンク・フイールドがチエツクされステツプ23
51aおよび2351bでそれぞれ示した様に、
それが8の倍数であるかどうかそれがG0セグメ
ント内にあるかどうかを定める。これらの条件が
満たされれば、ステツプ2353、第23f図が
実行される。このステツプでは、プロセス・リン
クZの優先順位がプロセス・リンクBの優先順位
と比較される。もしプロセス・リンクZの優先順
位がプロセス・リンクBの優先順位よりも小さけ
れば、ステツプ2353は、プロセス・リンクZ
がプロセス・リンクBの前、プロセス・リンクA
の後に置かれていることを示す。この結果、その
情報は、ステツプ2349のところで示した様
に、スクラツチ・パツド・メモリの位置WDB乃
至WDEに書き込まれ、サブルーチンPRIQが完了
してステツプ2343となる。従つて、Aネキス
ト・リンクポインタは、プロセス・リンクZを指
し、プロセス・リンクZのネキスト・リンク・ポ
インタは、プロセス・リンクBを示すことにな
る。このことは次の様に遂行される。SNLすなわ
ちZの次のリンク・フイールドが、VLKの値す
なわちプロセス・リンクBの位置を受けとる。従
つて、プロセス・リンクZは、今後はプロセス・
リンクBを指す様になる。SERLすなわちAのリ
ンク・フイールドは、RLの値すなわちプロセ
ス・リンクZの位置を受けとる。加えて、
PQHP、MQHPおよびMQTPは変更されないまゝ
で残る。
However, if the Next Link field is not equal to zero, which is the current state since there are process links B and C to be tested, then step 2350 is executed. To keep track of the various links currently being referenced, link A, which is LK, is currently
The next link, link B, has been changed to ULK and is now changed to LK to indicate that process link B is the one currently being examined. In step 2351, process link B
The first word of is fetched from main memory and transmitted to scratch pad memory location W32. Then, the next link field of process link B is checked and step 23
As shown in 51a and 2351b respectively,
Determine if it is a multiple of 8 or if it is within the G 0 segment. If these conditions are met, step 2353, Figure 23f, is executed. In this step, process link Z's priority is compared to process link B's priority. If the priority of process link Z is less than the priority of process link B, step 2353
is before process link B, before process link A
Indicates that it is placed after. As a result, the information is written to scratchpad memory locations WDB through WDE, as shown at step 2349, and subroutine PRIQ is completed at step 2343. Therefore, the A next link pointer will point to process link Z, and the next link pointer of process link Z will point to process link B. This is accomplished as follows. The next link field of SNL or Z receives the value of VLK or the location of process link B. Therefore, process link Z will now become process link Z.
It will now point to link B. The link field of SERL, A, receives the value of RL, the location of process link Z. In addition,
PQHP, MQHP and MQTP remain unchanged.

もし、プロセス・リンクZの優先順位が、プロ
セス・リンクBの優先順位より大きいかあるいは
等しいならば、ステツプ2354への分岐が実行
される。これは優先順位がステツプ2355と等
しいかどうかの質問がステツプ2347と同じで
ある様に、ステツプ2346と同じである。従つ
て、もしZの優先順位が質問2354に対する答
の中のBの優先順位に等しいならば、そして、も
しALU1317aのフロツプがLIFOのキユー化
が行われるべきことを示していれば、ステツプ2
353は実行され情報はスクラツチ・パツド・メ
モリの中に書き込まれる。しかし、もし、Iの値
がゼロにセツトされてFIFOのキユー化が示され
るか、もし、Zの優先順位より小さければステツ
プ2348が実行される。これは、プロセス・リ
ンクがキユーの最後のリンクであるかどうかを決
定するためのステツプ2348のリープへの復帰
である。しかし、これがそうでなければ、プロセ
ス・リンクCはステツプ2350にフエツチさ
れ、前に述べたようにフイールドの更新が再び発
生する。従つて、プロセス・リンクZの優先順位
が180a,180bおよび180cに示す様な
キユーの中の他のリンクとの関係が決められた時
には、テンポラリ・レジスタが、スクラツチ・パ
ツド・メモリの位置WDB乃至WDEに適切な情報
を受けとり、これはその後UQLKサブルーチンに
よつて、メイン・メモリ中に書き込まれる。
If the priority of process link Z is greater than or equal to the priority of process link B, a branch to step 2354 is taken. This is the same as step 2346, just as the question of whether priority is equal to step 2355 is the same as step 2347. Therefore, if the priority of Z is equal to the priority of B in the answer to question 2354, and if the flop of ALU 1317a indicates that LIFO queueing should occur, then step 2
353 is executed and the information is written into scratch pad memory. However, if the value of I is set to zero to indicate FIFO queuing, or is less than the priority of Z, step 2348 is executed. This is a return to step 2348 leap to determine if the process link is the last link in the queue. However, if this is not the case, process link C is fetched to step 2350 and field updating occurs again as previously described. Therefore, when the priority of process link Z is determined in relation to other links in the queue as shown at 180a, 180b and 180c, the temporary register is placed in the scratchpad memory location WDB. The WDE receives the appropriate information, which is then written into main memory by the UQLK subroutine.

こうして、PRIQサブルーチンは、プロセスリ
ンクにQ/PR/SがあるいはQ/PR/FLSのい
ずれかキユーの中に置かれるか、あるいは、メツ
セージ・リンクにQ/M/S、Q/ML/FLSが
キユー中に置かれるかを決定する。PRIQサブル
ーチンは、この情報をスクラツチ・パツド・メモ
リ中のテンポラリ・レジスタ内に記憶する。これ
らのテンポラリ・レジスタは、後にサブルーチン
UQLKで照応され、次に情報は、キユーの中のす
べてのリンクと一緒に縮合しているメイン・メモ
リ中に書き込まれ、その結果、論理遂次序列が確
定される。
Thus, the PRIQ subroutine determines whether a process link has Q/PR/S or Q/PR/FLS in the queue, or a message link has Q/M/S or Q/ML/FLS. Determines whether it is placed in the queue. The PRIQ subroutine stores this information in temporary registers in scratch pad memory. These temporary registers are later used by subroutines.
Collated in UQLK, the information is then written into main memory condensing with all links in the queue, thus establishing a logical sequential order.

PRIQサブルーチンの完了で、第23図VPサブ
ルーチン2121のEへの復帰が行なわれる。次
にステツプ2305が実行される。ステツプ23
05では、G0セグメントから前に獲得され、JP
名、優先順位、および現在運行中のプロセスの
SRA値をもつているプロセス・リンク805a
がメイン・メモリ中のプロセス・リンク805a
に書き込まれる。
Upon completion of the PRIQ subroutine, a return is made to E of the VP subroutine 2121 in FIG. 23. Next, step 2305 is executed. Step 23
In 05, acquired earlier from G0 segment, JP
name, priority, and currently running processes.
Process link 805a with SRA value
is the process link 805a in main memory.
will be written to.

プロセス・リンクを獲得した後、現在運行中の
プロセスが利用可能な情報は記憶されて運行中の
状態に再び入つた時に、連続性の損失が起きない
様にしなければならない。従つて、次に実行すべ
きステツプは、実行中のプロセスに利用可能な現
在の情報を実際に記憶するという作業になる。こ
れは第23g図でサブルーチンRILOを指してい
るステツプ2360中に示されている。
After acquiring a process link, the information available to the currently running process must be stored so that no loss of continuity occurs when the running state is re-entered. Therefore, the next step to take is to actually store the current information available to the running process. This is illustrated in Figure 23g in step 2360 pointing to subroutine RILO.

RILOサブルーチンは、現在の情報を、第4図
に示されたPCBに遂行する。これを遂行する中
で、サブルーチンURUAであるステツプ236
0が実行される。これは運行状態を離れようとし
ているプロセスの運行時間を更新する勘定サブル
ーチンである。URUAサブルーチンは使用され
たコンピユータ時間の量を示し、従つて顧容につ
けられるべき金額を示す。
The RILO subroutine carries current information to the PCB shown in FIG. In accomplishing this, step 236, which is subroutine URUA,
0 is executed. This is an accounting subroutine that updates the running time of a process that is about to leave running. The URUA subroutine indicates the amount of computer time used and therefore the amount to be credited to the customer.

ステツプ2361乃至2368は、セントラ
ル・プルセシング・ユニツト104中の総合レジ
スタの内容が先に述べられたPCBへ伝送されるこ
とを可能にする。すなわち、ステツプ2361
は、状態レジスタ1311の内容をプロセス・コ
ントロール・ブロツク・ワールド4へ伝送する。
ステツプ2362は、Tレジスタ1310の内容
をプロセス・コントロール・アドレス28内に記
憶する。ステツプ2363は次の指令のセグメン
ト化されたアドレスを計算して、レジスタ131
2中に含まれるような序列になる様にし、このセ
グメント化されたアドレスをステツプ2364で
示されたプロセス・コントロール・ブロツク・ア
ドレス32に伝送する。ステツプ2365では1
308で全体として示した基礎レジスタが、プロ
セス・コントロール・ブロツク・アドレス52お
よび80へ伝送される。ステツプ2366は、1
307に示された総合レジスタを、プロセス・コ
ントロール・ブロツク・アドレス84乃至144
へ伝送する。ステツプ2367ではPCBの可動バ
イトがアクセスされ、テストされて、科学的な可
動性が用いられたかどうか決められる。もしそう
なれば、科学的レジスタ1309は、プロセス・
コントロール・ブロツク・アドレス148乃至1
76に記憶されサブルーチンによる現在の情報の
記憶は終る。しかし、もし、科学的な可動性がな
ければ、それはPLLOサブルーチンがすでに完了
しているということである。従つて、実行中のプ
ロセスすなわちこれまで運行状態にあり、現在待
機状態に移されようとしているプロセスの現在の
状態は、プロセス・コントロール・ブロツクへ伝
送されることになる。プロセスによつて、P指令
を経由して要求された情報が利用可能になれば、
プロセスはその後再び運行状態に置かれ、連続性
の損失はなかつたことになる。
Steps 2361-2368 enable the contents of the general registers in central processing unit 104 to be transferred to the previously mentioned PCB. That is, step 2361
transmits the contents of status register 1311 to process control block world 4.
Step 2362 stores the contents of T register 1310 in process control address 28. Step 2363 calculates the segmented address of the next instruction and stores it in register 131.
2, and transmits this segmented address to the process control block address 32 shown in step 2364. 1 in step 2365
Base registers, shown generally at 308, are transferred to process control block addresses 52 and 80. Step 2366 is 1
The general register shown at 307 is stored at process control block addresses 84 to 144.
Transmit to. In step 2367, the PCB's movable byte is accessed and tested to determine if scientific movability was used. If so, scientific register 1309 indicates that the process
Control block address 148 to 1
76, the storage of the current information by the subroutine ends. However, if there is no scientific mobility, it means that the PLLO subroutine has already completed. Therefore, the current state of the running process, ie, the process that has been in the running state and is currently being moved to the standby state, will be transmitted to the process control block. Once the process makes available the information requested via the P directive,
The process is then placed back into service and there has been no loss of continuity.

情報のプロセス・コントロールブロツクへの伝
送が完了した後、第23a図のVP2121のサ
ブルーチンEが再び入れられる。次に実行される
ステツプ2307では、前に説明したハードウエ
ア・ゲートがロツクされ、システムのクリチカル
な状態が入れられていることを示す。この間、現
在のプロセスが待機状態に入ることに加えて、メ
イン・メモリ内の情報の更新が行なわれる。
After the transfer of information to the process control block is complete, subroutine E of VP 2121 of FIG. 23a is re-entered. The next step 2307 is to lock the previously described hardware gates to indicate that the critical state of the system has been entered. During this time, in addition to the current process entering a standby state, information in main memory is updated.

ステツプ2308では、G0セグメントPLSセ
マホアから得られたプロセス・リンク805aは
キーから外され、解放される。ステツプ2309
では、プロセス・コントロール・ユニツトの状態
バイトは変更されて、プロセスが現在遂行状態に
はなく、その代りに待機状態にあることを示す様
になる。これは、第4図でプロセス・コントロー
ル・ブロツク・アドレス0に対するバイト3とし
て示される様に、PMWナンバー0の中にある。
ステツプ2310では、プロセス・コントロー
ル・ブロツク・アドレスすなわちPMWナンバー
2ワードはセグメント相対アドレスおよびその中
に書き込まれてアドレスされたセマホアのセグメ
ント・ナンバーを有している。これはPCBに、プ
ロセスが待機しているセマホアの位置を見出すた
めに必要な情報を提供する。(この他に詳しい説
明は、スタートおよびサスペンド指令に関する特
許申請参照のこと) その後、UQLKサブルーチンであるステツプ2
311、第23h図が実行される。それ以前に、
PQIOサブルーチンは、プロセス・リンクが、セ
マホア上のキユーのどこに置かれるかを示してい
る。UQLKサブルーチンは、書き込み操作を行な
い、メイン・メモリがシステムの状態を反映する
様に更新する。
In step 2308, the process link 805a obtained from the G0 segment PLS semaphore is unkeyed and released. Step 2309
Now, the process control unit's status byte is changed to indicate that the process is not currently in the executing state, but is instead in the waiting state. This is in PMW number 0, shown as byte 3 for process control block address 0 in FIG.
In step 2310, the process control block address or PMW number 2 word contains the segment relative address and the segment number of the addressed semaphore written therein. This provides the PCB with the information it needs to find the location of the semaphore on which the process is waiting. (For other detailed explanations, please refer to the patent application regarding start and suspend commands.) After that, step 2, which is a UQLK subroutine,
311, Figure 23h is executed. Before that,
The PQIO subroutine indicates where the process link is placed in the queue on the semaphore. The UQLK subroutine performs write operations to update main memory to reflect the state of the system.

第23h図でサブルーチンUQLKの最初のステ
ツプとして示されたステツプ2370では、入れ
られるプロセス・リンク805aの次のリンク・
フイールドSNLが、スクラツチ・パツド・メモリ
の位置WDBから、メイン・メモリ内の次のリン
ク・フイールドへ伝送される。、ステツプ237
1では、最初のリンク・インジケータがチエツク
されて、それが1であるか、すなわち更新される
べきリンクがキユーの頭にあるかどうかが決めら
れる。この答えがイエスであれば、ステツプ23
72が実行されて、この頭のプロセス・リンクが
レデイ・キユーQ/PR/RDYの頭であるかとい
う質問が行なわれる。この質問はV指令がプロセ
スをQ/PR/RDY上に置くためにPRIQおよび
UQAKサブルーチンを使用することから行なわ
れるものである。答えがイエスであれば、上に述
べたIQWワードが変更されてステツプ2373
で導入されているプロセス・リンクの位置を示す
様になり、これでUQLKサブルーチンは終る。
Step 2370, shown in Figure 23h as the first step of subroutine UQLK, selects the next link of process link 805a to be entered.
Field SNL is transferred from scratch pad memory location WDB to the next link field in main memory. , step 237
1, the first link indicator is checked to determine if it is 1, ie, if the link to be updated is at the head of the queue. If the answer is yes, step 23
72 is executed to ask if this head process link is the head of ready queue Q/PR/RDY. This question is based on PRIQ and
This is done by using the UQAK subroutine. If the answer is yes, the IQW word mentioned above is changed and step 2373
The location of the process link introduced in is now indicated, and the UQLK subroutine ends.

しかし、現在考察している特定の状況では答え
はノーであり、ステツプ2375はこれはメツセ
ージ・リンクかという質問をたずねることにな
る。答えはイエスであれば、メツセージ・キユ・
ヘツド・ポインタはステツプ2376で更新さ
れ、同時にプロセス・リンクの位置が導入され
て、サブルーチンは完了する。ステツプ2375
での質問に対する答えがノーであれば、プロセ
ス・リンクは更新され、またステツプ2377
は、スクラツチ・パツドの位置W31から、プロ
セス・リンクの位置を有するセマホアのPQHPポ
インタを更新する。
However, in the particular situation currently being considered, the answer is no, and step 2375 will ask the question, is this a message link? If the answer is yes, then the message
The head pointer is updated at step 2376, and the location of the process link is introduced at the same time, completing the subroutine. Step 2375
If the answer to the question in step 2377 is no, the process link is updated and step 2377
updates the semaphore's PQHP pointer with the location of the process link from scratch pad location W31.

ステツプ2371の質問に対する答えがノーで
あれば、入れられるべきリンクがキユーの頭にな
いことを示し、ステツプ2378が次のリンク・
フイールドをメイン・メモリへ伝送する、この結
果、入れられるリンクを指しているリンクの次の
リンク・フイールドSRELに変更され、入れられ
るリンクの次のリンク・フイールドSNLがPLフ
イールドを受けることになる。言い換えれば、キ
ユーに加えられるプロセス・リンクZのリンク・
フイールドがSNLを受けとるということである。
プロセス・リンクZを確認するプロセス・リンク
はSERLを受けとる。この情報は、それぞれ、ス
クラツチ・パツド・メモリの位置WDCおよび
WDEから伝送される。もしこれがQ/M/Sで
あればMQTPもまた更新され、この結果、UQLK
サブルーチンは完了する。
If the answer to the question in step 2371 is no, indicating that the link to be inserted is not at the head of the queue, step 2378 returns the next link.
Transmit the field to main memory, so that the link field next to the link pointing to the entered link is changed to SREL, and the link field SNL next to the entered link receives the PL field. In other words, the process link Z's link added to the queue
Field will receive SNL.
The process link that confirms process link Z receives the SERL. This information includes scratch pad memory locations WDC and WDC, respectively.
Transmitted from WDE. If this is Q/M/S, MQTP will also be updated, resulting in UQLK
The subroutine is complete.

第23b図に戻つて、ステツプ2312では、
SCTフイールドはあるいは、もしそれがフリ
ー・リンク、セマホアであればFLSCが、スクラ
ツチ・パツドの位置WC4に書き込まれる。NSCT
カウントはすでに第21図のステツプ2101中
で決定され、スクラツチ・パツドの位置WC7に
記憶されている。ステツプ2313では、スクラ
ツチ・パツドの位置WC4,WC5に記憶されて
いる様にセマホアの内容全体がメイン・メモリに
伝送され、セマホアが更新される。この情報の変
更を完了した後、ステツプ2314のハード・ウ
エアゲートはロツクされて、クリテカルな状態が
も早終つたことを示し、またステツプ2315で
は、ALU1317aの空いたゲートが二進法
0NEにセツトされて、実行中のプロセスが、運行
状態から取り出されたことを示す。ステツプ23
16ではシステムの制御がデスパツチ・ユニツト
に移され、第14図で示した様に運行状態に入れ
る次のプロセスを決定する。
Returning to FIG. 23b, in step 2312,
The SCT field, or FLSC if it is a free link, semaphore, is written to scratch pad location WC4. NSCT
The count has already been determined in step 2101 of FIG. 21 and stored in scratch pad location WC7. In step 2313, the entire contents of the semaphore, as stored in scratch pad locations WC4 and WC5, are transferred to main memory and the semaphore is updated. After completing the modification of this information, the hardware gate in step 2314 is locked to indicate the premature end of the critical condition, and in step 2315 the free gate in ALU 1317a is locked to indicate the premature end of the critical condition.
Set to 0NE to indicate that a running process has been taken out of service. Step 23
At 16, control of the system is transferred to the dispatch unit, which determines the next process to enter service as shown in FIG.

これによつて、実行中のプロセスを待機状態に
変えるVP2121のサブルーチンEの操作は完
了する。第20図および21図で示された様な実
行中のプロセスはそれぞれ、非メツセージセマホ
アあるいはメツセージセマホア上でP指令を遂行
しようとしていたものである。それができなくな
つてプロセスは、それにデータが提供されるまで
その操作を続けることができなくなり、それ自身
の動作で待機状態に入る。
This completes the operation of subroutine E of the VP 2121 that changes the running process to a standby state. Executing processes such as those shown in FIGS. 20 and 21 were attempting to execute a P command on a non-message semaphore or a message semaphore, respectively. Once the process is unable to continue its operation until data is provided to it, it enters a waiting state on its own behalf.

第22a図およびブロツク2200にもどつ
て、ここではSCTカウントがゼロより小さいこ
とをテストされ、メツセージセマホア上のP指令
が実行中のプロセスに待機状態に変ることを要求
したことを示すが、もしこの質問に対する答えが
ノーであればステツプ2205への分岐が実行さ
れる。ステツプ2205では、SCTフイールド
がゼロに等しいかどうかが質問される。この質問
に対する答えがイエスであれば、第24a図に示
した2206サブルーチンPMZへの分岐が起
る。
Returning to Figure 22a and block 2200, here the SCT count is tested to be less than zero, indicating that the P command on the message semaphore requested the running process to change to the waiting state; If the answer to this question is no, a branch to step 2205 is executed. Step 2205 asks if the SCT field is equal to zero. If the answer to this question is yes, a branch to subroutine PMZ 2206 shown in Figure 24a occurs.

D キユー(待ち行列)を使用しないメツセージ
の転送 PMZサブルーチン2206は特別なサブルー
チンで、テスト、非テストを問わず、セマホア
SCTフイールドがゼロに等しい時のメツセージ
を持つセマホアのP命令に対して動作する。この
場合、サブルーチンは、セマホアにそのメツセー
ジを置く為に自由もしくは空きメツセージ・リン
クを現在前プロセスが待つているかいないか決定
する。この様な事が起こるのは、全自由メツセー
ジ・リンクが、前に使われており、メツセージを
渡そうとするプロセスを実行する為の自由メツセ
ージ・リンクがすでにないという場合である。こ
の様な状況では以下に述べる如く、メツセージを
渡そうとしている実行プロセスは、メツセージを
渡せない為、待ちの状態に置かれるであろう。メ
ツセージを要求するP命令実行カレントプロセス
は初めに、それ自体を待ち状態に置く前に上記の
状況が発生しているか決定しようとする。その状
況が発生していれば、メツセージを渡そうとした
プロセスはそのメツセージから解除され、それに
依つて実行障害を取り除き、P命令(P指令、も
しくはPインストラクシヨン)を実行するカレン
ト・プロセスはメツセージを受けて、実行状態で
継続されることが出来る。この様にして、この特
殊な状況のもとでは、前のV命令によるメツセー
ジのメツセージ・リンクへの引き渡しも、メツセ
ージのカレント実行プロセスによるセマホアから
の受け取りも起こらないが、結果としてハイブリ
ツド状況が発生してそこでは実行プロセスはPCB
を介して待ち状態のプロセスからメツセージを受
ける。更に詳しくは、図24aのステツプ(命
令)2400では、メツセージ・キユー・テイ
ル・ポインタMQTPと、メツセージ付きセマホ
アのメツセージ・キユ・ヘツド・ポインタ
MQHPはゼロかどうか決定する為にテストされ
る。セマホアのSCTフイールドはゼロ値を持つ
ているので、これら両状況が存在するはずであ
り、さもなければ不法もしくはイリーガル(違
法)信号2400A尽状況が存在する。これを決
定すると、ステツプ2401は自由リンクセマホ
アフエツチ(FLSC、図24bに示す)の為にサ
ブルーチンを実行する。このサブルーチンは自由
リンクセマホアを取り出し、一連のテストを行つ
てそのステータス(状態)を決定する。
D Transferring messages without using a queue The PMZ subroutine 2206 is a special subroutine that can be used to transfer messages without using a semaphore.
Operates on a semaphore P instruction with a message when the SCT field is equal to zero. In this case, the subroutine determines whether the previous process is currently waiting for a free or free message link to place its message on the semaphore. This can happen if all free message links have been previously used and there are no longer any free message links to run the process attempting to pass the message. In such a situation, as described below, the executing process attempting to pass the message will be placed in a waiting state because it cannot pass the message. A P-instruction executing current process requesting a message first attempts to determine whether the above situation occurs before placing itself in a wait state. If that situation had occurred, the process that attempted to pass the message would be released from the message, thereby removing the execution blockage, and the current process executing the P command (P command or P instruction) Upon receiving a message, it can continue in the running state. Thus, under this special situation, neither passing the message to the message link by the previous V instruction nor receiving the message from the semaphore by the current executing process occurs, but a hybrid situation results. and there the running process is PCB
Receive messages from waiting processes via . More specifically, in step 2400 of FIG. 24a, the message queue tail pointer MQTP and the message queue head pointer of the semaphore with
MQHP is tested to determine if it is zero. Since the SCT field of the semaphore has a zero value, both of these situations must exist, otherwise an illegal or illegal signal 2400A exhaustion situation exists. Once this is determined, step 2401 executes a subroutine for a free link semaphore fetch (FLSC, shown in Figure 24b). This subroutine takes a free link semaphore and performs a series of tests to determine its status.

更に詳しくは、図24bのステツプ2420
は、参照される自由リンクセマホアを持つ最初の
言葉、セマホアデスクリプタ・セグメントはメイ
ン・メモリから取り出され、スクラツチ・パツ
ド・メモリ場所WD2へ移転される。この更初の
言葉はナンバ1500として図15に示してあ
る。ステツプ2421では、ALU137によつ
て、この最初の言葉に次のテストが行われる。タ
グ・フイールド、つまり0から1ビツトが11値を
持つかテストされ、8から15ビツトのMBZフイ
ールドは全てゼロになるようテストされ、FLSP
つまり16から31ビツトは図15のSDセグメン
ト・レイアウトに示した自由リンクセマホア15
04の最初のバイトを指向しがちである為、8の
倍数かどうかテストされ決定される。ステツプ2
422では、FLSPによつて指向され、図16d
に1504として示した自由リンクセマホアが取
り出される。これら3つの言葉はついでスクラツ
チ・パツド・メセリ場所WCB,WCC,WCDに
各々ストアされ、演算及び論理装置1317で次
のテストが行われる。ステツプ2423では、
STAGフイールド、つまり0から3ビツトは全て
138がゼロかテストされる。ステツプ2424で
は、CCTフイールド、つまり80から95ビツト
と、FLSCTフイールド図16に示されたFLS1
504の16から31ビツトはゼロより大きいかどう
はテスト、決定される。FLSCTもCCTもゼロに
より大きくないかもしれない。これらフイールド
は通常、利用可能な自由メツセージ・リンクがな
い時、ゼロにセツトされ、利用出来る自由メツセ
ージ・リンクがない時はネガテイブになり得る。
これらフイールドの絶対値は自由メツセージ・リ
ンク、つまりQ/PR/FLSに連結されたプロセ
ス・ナンバを受け取る為待つているプロセス・ナ
ンバを表示する。従つて、ゼロより大のテストは
自由リンクセマホア用の適切な符号化が成された
かどうかを決定する為のものである。
More specifically, step 2420 of FIG. 24b
is the first word with a free link semaphore referenced, the semaphore descriptor segment is retrieved from main memory and moved to scratch pad memory location WD2. This first word is shown in FIG. 15 as number 1500. In step 2421, the ALU 137 performs the following tests on this first word. The tag field, bits 0 to 1, are tested to have 11 values, the MBZ field, 8 to 15 bits, is tested to be all zeros, and the FLSP
In other words, bits 16 to 31 are free link semaphore 15 shown in the SD segment layout in Figure 15.
Since it tends to point to the first byte of 04, it is tested and determined whether it is a multiple of 8. Step 2
422, directed by FLSP, FIG. 16d
The free link semaphore shown as 1504 is retrieved. These three words are then stored in scratch pad memory locations WCB, WCC, and WCD, respectively, and subjected to the next test in arithmetic and logic unit 1317. In step 2423,
STAG field, all 3 bits from 0
138 is tested for zero. In step 2424, the CCT field, bits 80 to 95, and the FLSCT field FLS1 shown in FIG.
Bits 16 through 31 of 504 are tested to determine if they are greater than zero. Neither FLSCT nor CCT may be greater than zero. These fields are typically set to zero when there are no free message links available, and can be negative when there are no free message links available.
The absolute values of these fields indicate the process number waiting to receive the process number connected to the free message link, ie, Q/PR/FLS. Therefore, the greater than zero test is to determine whether proper encoding has been achieved for the free link semaphore.

ステツプ2425では、FLSCTフイールド
は、それがもしゼロより小さいと自由リンクセマ
ホアに連結されたQ/PR/FLSがある為、ゼロ
より小さいかどうかテスト、決定される。その答
が肯定であれば、ステツプ2426はPQHPフイ
ールド、つまり32から47ビツトがゼロに同じか、
又8の倍数が決定するためテストする。FLSCT
がゼロに等しければ、これは他にあり得るただ1
つの事であるが、これが自由メツセージ・リンク
を利用出来る事を指す。その結果、自由リンクセ
マホアのPQHPポインタは、ステツプ2427で
行つたテストであるゼロに等しいはずである。こ
れらテストのどれもが成功しなければ、イリーガ
ルセマホア例外状況が発生する。
In step 2425, the FLSCT field is tested to determine if it is less than zero because if it is less than zero then there is a Q/PR/FLS connected to the free link semaphore. If the answer is yes, step 2426 checks whether the PQHP field, bits 32 through 47, are equal to zero.
Also, test to determine the multiple of 8. FLSCT
is equal to zero, then this is the only other possible
One thing is that this means that you can use free messages and links. As a result, the free link semaphore's PQHP pointer should be equal to zero, which is the test performed in step 2427. If none of these tests pass, an illegal semaphore exception situation occurs.

ステツプ2428では、SMCフイールド4
15ビツト(図16CでMBZフイールドとして呼
ばれる)はゼロかどうかテスト、決定される。自
由リンクセマホアではそれがメツセージ・リンク
をストア出来ない為、これが自ずから限度とな
る。自由メツセージ・リンクのみがFLSにキユー
される。その結果、SMCフイールドは、自由リ
ンクセマホアはポジテイブ値を待たないからゼロ
にセツトされる。
In step 2428, SMC field 4
The 15 bits (referred to as the MBZ field in Figure 16C) are tested to determine if they are zero. Free link semaphore cannot store message links, so this is a natural limitation. Only free message links are queued to FLS. As a result, the SMC field is set to zero since the free link semaphore does not wait for a positive value.

図24Cのステツプ2429では、最初の自由
メツセージ・リンクを指向する自由リンク・キ
ユ・ポインタ、つまり48から63ビツトは、FLQP
は長さ4語の最初の自由メツセージ・リンクを識
別するので、8の倍数である事を確認する為テス
ト確認される。ステツプ2430は、CCTフイ
ールド、つまり80から95ビツトは、ゼロより小さ
いかテスト・決定される。前に、ステツプ242
4では、これは0より大きいとしてテストされた
が、このテストは否定解答によつてこれがゼロに
等しい事を示し、これからFLSサブルーチン24
31終りという結果になる。2430の質問に肯
定解答が起これば、MMBZフイールド、つまり64
から71ビツトをテストするステツプ2432が次
いで実行されて、FLSCサブルーチンの終りとい
う事になる。つまり、FLSCサブルーチンは自由
リンクセマホアをチエツクして図16bの設計コ
ンストレイント(束縛力)内にそれがあることを
確認するのみならず、スクラツチ・パツド・メモ
リ場所WCB,WCC,WCDに自由リンクセマホ
アの3語を後で使う為にストアする。
In step 2429 of Figure 24C, the free link queue pointer pointing to the first free message link, bits 48 through 63,
identifies the first free message link of length 4 words, so it is tested to ensure it is a multiple of 8. Step 2430 tests to determine if the CCT field, bits 80 through 95, are less than zero. Before, step 242
4, this was tested as greater than 0, but this test indicated by a negative answer that it was equal to zero, and from now on the FLS subroutine 24
The result is the end of 31. If an affirmative answer occurs to question 2430, the MMBZ field, i.e. 64
Step 2432, which tests 71 bits from , is then executed, marking the end of the FLSC subroutine. That is, the FLSC subroutine not only checks the free-link semaphore to make sure it is within the design constraints of Figure 16b, but also checks the free-link semaphore in scratch-pad memory locations WCB, WCC, and WCD. Store the three words for later use.

2421のFLSCサブルーチンが終了すると、
図24aのステツプ2402が実行される。ステ
ツプ2402はCCTがゼロより小さいかという
質問を行う。その答が否定であれば、これは自由
メツセージ・リンクを待つているI/Oチヤンネ
ルがない事を示す。ステツプ2403では、
FLSCTがゼロに等しいかという質問が行われ
る。等しくなければそれはQ/PR/FLSプロセ
スが待つている事を示し、その結果、SPLQサブ
ルーチン2404が実行される。
When the FLSC subroutine of 2421 finishes,
Step 2402 of Figure 24a is executed. Step 2402 asks if CCT is less than zero. If the answer is negative, this indicates that there are no I/O channels waiting for a free message link. In step 2403,
The question is asked whether FLSCT is equal to zero. If not, it indicates that the Q/PR/FLS process is waiting, and as a result, the SPLQ subroutine 2404 is executed.

SPLQサブルーチンは自由プロセス・リンク・
キユーを捜し、カレント実行プロセスがP命令つ
まりメツセージを要求する命令を実行している同
じセマホアにVオペレーシヨン、つまりメツセー
ジを渡すオペレーシヨンを実行しようとしたQ/
PR/FLSに、プロセスがあるか決定する。換言
すると、P命令によつて要求されたメツセージが
前に渡される事をしようとしたが、自由メツセー
ジ・リンクが利用出来なかつた為に不成功であつ
たのかという事である。前の実行プロセスが、自
由リンクセマホアを持つSDセグメントへメツセ
ージを渡そうとした時はこの状況が結果として起
る。このプロセスは利用できる自由メツセージ・
リンクがなかつた為にそうする事が出来なかつ
た。その結果、このプロセスは待ち状態に置か
れ、VPサブルーチンのEによつてQ/PR/FLS
に連結され、その結果、幾らか後に適切なセマホ
アへメツセージを移転するようになる。しかし、
カレント実行プロセスが同じメツセージへ向け得
るP命令を実行している場合があるかもしれな
い。サブルーチンSPLQ2404はこの状態が結
果として起きたかを決定するであろう。
The SPLQ subroutine is a free process link.
Q/ The current executing process searches for a queue and attempts to execute a V operation, that is, an operation that passes a message to the same semaphore that is executing a P instruction, that is, an instruction that requests a message.
Determine whether PR/FLS has a process. In other words, the message requested by the P command was previously attempted to be passed, but was unsuccessful because the free message link was not available. This situation results when a previously executing process attempts to pass a message to an SD segment that has a free link semaphore. This process is available in free messages
I couldn't do that because there was no link. As a result, this process is placed in a wait state and Q/PR/FLS is
, so that the message is transferred to the appropriate semaphore at some later time. but,
There may be cases in which the current executing process is executing P instructions that may be directed to the same message. Subroutine SPLQ 2404 will determine if this condition resulted.

更に詳しくは、図24dでは、サブルーチン
SPLQがQ/PR/FLSに連結されたプロセス・リ
ンク各々を参照し、全プロセスリンク、つまり各
プロセス・リンク48から63ビツト・フイールドの
デイスプレースイント・フイールが、P命令を実
行しているカレント実行プロセスのデイスプレー
スメント・フイールドに等しいか決定する。同等
であると分れば、つまりデイスプレースメントが
等しければ、前の実行プロセスからのメツセージ
はこのカレント実行プロセスへ移転され、P命令
を実行しているカレント実行プロセスは実行状態
に留まる。しかし、デイスプレースメントが不等
と分ると、P命令を実行しているカレント実行プ
ロセスは待ち状態に置かれる。
More specifically, in FIG. 24d, the subroutine
SPLQ refers to each process link connected to Q/PR/FLS, and all process links, that is, each process link 48 to 63-bit field displacement field, is the current executing P instruction. Determines whether it is equal to the displacement field of the running process. If equality is found, that is, if the displacements are equal, the message from the previous executing process is transferred to this current executing process, and the current executing process executing the P instruction remains in the executing state. However, if the displacement is found to be unequal, the current executing process executing the P instruction is placed in a wait state.

図24dでは、ステツプ2440は、Q/
PR/FLSの最初のリンクが参照されている事を
意味する補助メモリ1317aのフロツプの初期
設定を行う。このフロツプは自由リンクセマホア
のPQHPフイールドが変更されるか否かを決定す
る。フロツプの状態が同じであれば、Q/PR/
FLBの初めのプロセス・リンクはP命令に等し
いデイスプレースメント・フイールドを持つてい
る事を示し、これからそのメツセージが取り出さ
れた事を示す。フロツプ状態が変えられると、自
由リンクセマホアのPHPはそのまま変更されな
い。また、ステツプ2440では、PLとUPL変
数は初期設定される。これら変数はスクラツチ・
パツド・メモリ場所W31とWE8に書き込ま
れ、プロセス・リンクと更新されたプロセス・リ
ンクを各々識別する。検査される初期プロセス・
リンクについては、PLとUPL両者がプロセス・
リンクの同じプロセス・キユー・ポインタを識別
する。
In FIG. 24d, step 2440 includes Q/
The flop of the auxiliary memory 1317a, which means that the first link of PR/FLS is referenced, is initialized. This flop determines whether the free link semaphore's PQHP field is changed. If the flop states are the same, Q/PR/
The first process link in the FLB indicates that it has a displacement field equal to the P instruction, indicating that the message was retrieved from it. When the flop state is changed, the PHP of the free link semaphore remains unchanged. Also, in step 2440, the PL and UPL variables are initialized. These variables can be scratch
Padded memory locations W31 and WE8 are written to identify the process link and updated process link, respectively. Initial process to be inspected
For links, both PL and UPL have process
Identify the same process queue pointer of the link.

ステツプ2441と2442に於いては、プロ
セス・リンクのQ/PR/FLSのヘツドプロセ
ス・リンクになる初めと2番目 語各々は、メイ
ン・メモリからALU1317へ持つてこられ
る。ステツプ2443では、次のリンク・フイー
ルド、つまりプロセス・リンクの0から15ビツト
はチエツクされ、それが存在するプロセス・リン
クは2語量である為に8の倍数かどうか決定され
る。ステツプ2444では、プロセス・リンク、
つまり48から63迄のビツトのDフイールドは、カ
レント実行プロセスのSRAと比較され、それら
が等しいか否か決定される。答えが否定であれ
ば、ステツプ2445はプロセス・リンクの次の
リンク・フイールドがゼロに等しいか、つまり自
由リンクセマホアに連結されたプロセス・リンク
を持つ追加プロセスがあるか質問を行う。答えが
否であれば、ステツプ2446が実行され、初め
のリンク・インジケータがゼロにセツトされ、こ
れによつて、ヘツド・プロセス・リンクは引き続
き同じであるから自由リンクセマホアは変える必
要がない事が示される。加えて、更新されたプロ
セス・リンクUPLは、スクラツチ・パツド場所
WE8の古いPL値へセツトされ、PL、つまりプ
ロセス・リンクはここで変えられて、Q/PR/
FLSに連結された第2プロセス・リンクになる次
のリンク・フイールドを識別する。その結果、ス
テツプ2441から2444迄はこの第2プロセ
ス・リンクで再び実行され、プロセスに含まれた
デイスプレースメント・フイールドが、P命令を
実行しているカレント実行プロセスのセグメント
相対アドレス(SRA)に等しいか否か決定す
る。
In steps 2441 and 2442, the first and second words of the Q/PR/FLS head process link, respectively, are brought from main memory to the ALU 1317. In step 2443, the next link field, bits 0 through 15 of the process link, is checked to determine if it is a multiple of 8 since the process link in which it exists is two words long. In step 2444, the process link,
That is, the D field of bits 48 through 63 is compared to the SRA of the current executing process to determine whether they are equal. If the answer is negative, step 2445 asks if the process link's next link field is equal to zero, that is, if there are additional processes with process links connected to the free link semaphore. If the answer is no, step 2446 is executed and the initial link indicator is set to zero, indicating that the free link semaphore does not need to be changed since the head process link remains the same. It can be done. In addition, the updated process links UPL, scratch pad location
WE8 is set to the old PL value and the PL, or process link, is changed here and the Q/PR/
Identify the next link field that will become the second process link connected to the FLS. As a result, steps 2441 to 2444 are executed again in this second process link, and the displacement field contained in the process is set to the segment relative address (SRA) of the current executing process that is executing the P instruction. Determine equality.

この状態が発見されると、つまりステツプ24
44の質問の答が肯定であると、ステツプ244
7が実行され、補助メモリ1317aのインジケ
ータをゼロにセツトし、同じデイスプレースメン
ト・フイールドを持つプロセス・リンクが検知さ
れて、更新された次のリンク、つまりUNLはキ
ユーの次のリンクに等しくなるようにセツトされ
る。スクラツチ・パツド場所WE9にストアされ
たUNLフイールドは取り除かれるものの直前の
プロセス・リンクの、次のリンク・フイールドが
同じデイスプレースメント・フイールドを持つプ
ロセス・リンクの値に合わせて変更出来るように
する。この様に、キユーは、自由リンクセマホア
に連結された全プロセスリンクに合う連結した一
連のポインタを持つている。これが終ると、
SPLQサブルーチンの終りであるステツプ244
8が実行される。注意すべき事は、ステツプ24
47は、Q/PR/FLSに新らしい情報を書き込
む為下に述べた様に、UPLQサブルーチンへ情報
を供給するという事である。
Once this condition is discovered, i.e. step 24
If the answer to question 44 is affirmative, step 244
7 is executed and sets the indicator in auxiliary memory 1317a to zero, a process link with the same displacement field is detected, and the updated next link, i.e. UNL, is equal to the next link in the queue. It is set as follows. The UNL field stored in scratch pad location WE9 is removed, but allows the next link field of the previous process link to be changed to match the value of the process link with the same displacement field. Thus, a queue has a series of linked pointers that match all process links connected to the free link semaphore. When this is finished,
Step 244, the end of the SPLQ subroutine
8 is executed. What you need to be careful about is step 24.
47 is to supply information to the UPLQ subroutine, as described below, in order to write new information to Q/PR/FLS.

Q/PR/FLSに連結されたプロセス・リンク
のDフイールドが仮にP命令を実行しているカレ
ント実行プロセスのSRAと等しくないと分れ
ば、ステツプ2449がステツプ2447に説明
されたフロツプを1に合わせてセツトし、Q/
PR/FLSの全プロセスリンクは検査されて、P
命令が要求したメツセージをそのどれもが持つて
いなかつた事を示す事になる。その結果、SPLQ
サブルーチン終りが実行され、UPLQサブルーチ
ンは変数UPLとPLをQ/PR/FLSキユーへ書き
込まない。
If the D field of the process link connected to Q/PR/FLS is found not to be equal to the SRA of the current executing process executing the P instruction, step 2449 sets the flop described in step 2447 to 1. Set them together and Q/
All process links of PR/FLS are inspected and P
This would indicate that none of them had the message the command required. As a result, SPLQ
The end of subroutine is executed and the UPLQ subroutine does not write variables UPL and PL to the Q/PR/FLS queue.

SPLQサブルーチン2404が終ると、ステツ
プ2405が実行され、プロセスが発見されたか
どうか質問する。この質問は必然的にP命令がメ
ツセージを要求したと同じセマホアでV命令を試
みたプロセスが見つかつたかを質問する。答えが
肯定であれば、つまりステツプ2447のフロツ
プがゼロなら、ステツプ2406が、これはテス
トP命令であつたか質問し、そうであれば240
7は状態レジスタ1311の条件コードをゼロに
合わせてセツトし、P命令が実行される事を示
す。ステツプ2406での質問に関係なく、ステ
ツプ2408は準備の出来ている新しいプロセス
であるサブルーチンRNPを作動させる。この様
にテストP命令又はP命令が実行されると、メツ
セージはP命令を実行しているカレント実行プロ
セスへ渡される。加えて、V命令を実行しようと
したプロセスは、サブルーチンRNP2408に
よつて準備完了状態にセツトされる。ステツプ2
409は図14に描いたデイパツチヤへの移転ス
テツプである。
Upon completion of the SPLQ subroutine 2404, step 2405 is executed to ask if the process was found. This question necessarily asks whether a process was found that attempted a V command on the same semaphore that the P command requested a message from. If the answer is yes, that is, the flop of step 2447 is zero, step 2406 asks if this was a test P instruction, and if so, returns 240
7 sets the condition code of the status register 1311 to zero, indicating that the P instruction is executed. Regardless of the question asked at step 2406, step 2408 activates the new process, subroutine RNP, which is ready. When a test P instruction or P instruction is executed in this manner, a message is passed to the current execution process that is executing the P instruction. In addition, the process attempting to execute the V instruction is set to a ready state by subroutine RNP2408. Step 2
409 is a transfer step to the dispatcher depicted in FIG.

もしステツプ2405の質問に対するプロセス
がなかつたなら、ステツプ2410がこれがテス
トP命令か質問を行う。この答えが肯定なら、ス
テツプ2411で条件コードが1に合わせて状態
レジスタ1311にセツトされ、命令が実行され
ない事を示し、ステツプ2412では、命令カウ
ンタ1312がインクレメント(増分)されてカ
ウント実行プロセスはその次の命令を実行する。
If there is no process for the question in step 2405, step 2410 asks if this is a test P command. If the answer is yes, a condition code is set to 1 in the status register 1311 in step 2411, indicating that the instruction will not be executed, and in step 2412, the instruction counter 1312 is incremented to stop the counting execution process. Executes the next instruction.

ステツプ2410に、メツセージ付きセマホア
のP命令がなく、カレント実行プロセスがメツセ
ージを受け取らなかつたなら、図23aのVPサ
ブルーチン2121のEへのブランチ(分岐)が
実行され、カレント実行プロセスは待ち状態に置
かれてデスパツチヤが実行状態へ置く新しいプロ
セスを選ぶ事が出来る。
If there is no message-attached semaphore P instruction in step 2410 and the current execution process does not receive a message, the branch to E of the VP subroutine 2121 in FIG. 23a is executed, and the current execution process is placed in a wait state. The dispatcher can then select a new process to put into running state.

ステツプ2403に於いて、自由リンクセマホ
アのFLSCTが等しいかどうかの質問の答えが肯
定であつて、それによつて自由リンクセマホアに
プロセス・リンクがない、つまりV命令を実行し
ようとしたプロセスが前になく、自由メツセー
ジ・リンクが利用出来なかつた時は、ステツプ2
413が実行されてこれがテスト命令か質問す
る。答えが肯定なら、条件コードは再びスアツプ
2414の1に合わせてセツトされる。加えて、
テストP命令を実行しているカレント実行プロセ
スの命令カウンタ1312は、ステツプ2415
で増分されて次の命令ステツプ2409が実行さ
れる。ステツプ2413、つまりメツセージセマ
ホアの非テストP命令の質問に対する答えが否定
であつたなら、カレント実行プロセスが、VPサ
ブルーチンのEによつて示される様な待ち状態に
置かれる。
In step 2403, if the answer to the question of whether the FLSCTs of the free-linked semaphores are equal is affirmative, then the free-linked semaphore has no process link, that is, no previous process attempted to execute the V instruction. If the free message link is not available, proceed to step 2.
413 is executed and asks if this is a test instruction. If the answer is yes, the condition code is again set to 1 on tap 2414. In addition,
The instruction counter 1312 of the current execution process that is executing the test P instruction is
and the next instruction step 2409 is executed. If the answer to the question of the non-test P command of the message semaphore is negative at step 2413, the current executing process is placed in a wait state as indicated by E in the VP subroutine.

図24aで、質問2402に対する応答の結果
は初め否定と仮定された。しかし、もしこの答え
が肯定であつて、それによつて入・出力装置から
メツセージを移転されたいプロセスがある事を示
した場合は、サブルーチン2416が実行される
であろう。これは必然的にメツセージがQ/
LC/FLSからでなくI/O装置から直接送られ
る場合を除いて、否定解答で説明された様なもの
と同じオペレーシヨンになるであろう。渡されよ
うとするメツセージがなかつたなら、カレント実
行プロセスは待ち状態となり、P命令の実行によ
つて要求されるメツセージを待つであろう。
In Figure 24a, the outcome of the response to question 2402 was initially assumed to be negative. However, if the answer is affirmative, thereby indicating that there is a process that wishes to have the message transferred from the I/O device, then subroutine 2416 will be executed. This necessarily means that the message is Q/
It would be the same operation as described in the negative answer, except that it would be sent directly from the I/O device rather than from the LC/FLS. If no message is to be passed, the current executing process will enter a wait state, waiting for the message requested by execution of the P instruction.

E SCTがゼロより大きい場合のメツセージ付
きセマホアのP命令 ステツプ2205の図22aで、メツセージセ
マホアのP命令のSCTフイールドがゼロに等し
くなかつたと、つまりSCTフイールドがゼロよ
り大きかつたと決定されたなら、実行プロセスに
よつて要求されるメツセージが利用されると分
る。その結果、P命令の要求は満たされ、実行プ
ロセスは実行を継続出来る。更に詳しくは、22
05の質問に対しては、ステツプ2207へのブ
ランチが行われる。ステツプ2207では、これ
がテスト命令かという質問が行われる。この時点
で、P命令は実行される事が出来るが、テスト命
令に付いては条件コードがセツトされねばならな
い。従つて答えが肯定なら、P命令が指向される
メツセージ付きセマホアのSCTフイールドが1
に等しいかに付いての別の質問がステツプ220
8で行われる。答えが肯定なら、ゼロの条件コー
ドでは状態レジスタ1311にセツトされる。答
えが否定なら、2の条件コードがステツプ220
9と2210に各々示される様に状態レジスタ1
311にセツトされる。これら条件コードはP命
令が向けられるQ/M/Sのメツセージ・ナンバ
を示す。
E Semaphore P instruction with message when SCT is greater than zero If it was determined in step 2205, FIG. , the message required by the executing process is found to be available. As a result, the request of the P instruction is satisfied and the execution process can continue execution. For more details, see 22
For question 05, a branch to step 2207 is made. At step 2207, a question is asked if this is a test instruction. At this point, the P instruction can be executed, but the condition code must be set for the test instruction. Therefore, if the answer is yes, the SCT field of the messaged semaphore to which the P command is directed is 1.
Another question is asked in step 220 as to whether
It will be held at 8. If the answer is yes, a condition code of zero is set in status register 1311. If the answer is negative, condition code 2 is used in step 220.
Status register 1 as shown at 9 and 2210 respectively.
It is set to 311. These condition codes indicate the message number of the Q/M/S to which the P command is directed.

ステツプ2207の質問の答えが否定なら、も
しくは代つて肯定で条件コードがセツトされてい
たなら、ステツプ2211が実行される。この時
点で、セマホア(Q/M/S)のメツセージ・キ
ユーがある事が分り、このセマホアに一定にテス
トが行われ、その合法性を決定する。従つて、ス
テツプ2211では、セマホアのメツセージ・キ
ユ・ヘツド・ポインタMQHPとメツセージ・キ
ユー・テイル・ポインタMQTPはゼロと不等
で、8の倍数でなければならない。ステツプ22
12では、Q/M/Sのヘツドにあるメツセー
ジ・リンクはキユーから読み出され、メツセージ
は中央処理装置104の汎用レジスタ1307へ
移転される。汎用レジスタの内容は図19aのス
クラツチ・パツド・メモリ場所00から03迄に移転
される。
If the answer to the question in step 2207 is negative, or if the condition code was otherwise set in the affirmative, step 2211 is executed. At this point, it is known that there is a semaphore (Q/M/S) message queue, and this semaphore is subjected to constant testing to determine its legitimacy. Therefore, in step 2211, the semaphore's message queue head pointer MQHP and message queue tail pointer MQTP must be unequal to zero and must be a multiple of eight. Step 22
At 12, the message link at the head of the Q/M/S is read from the queue and the message is transferred to general purpose register 1307 of central processing unit 104. The contents of the general purpose registers are transferred to scratch pad memory locations 00 through 03 in Figure 19a.

次に実行されるステツプは図22bのステツプ
2401で、これは図24b上に描いたFLSCサ
ブルーチンを呼び出す。このサブルーチンは自由
リンクセマホアを取り出し、その現在の状態を確
かめる。このサブルーチンは、メツセージ・リン
クがすでに自由にされ、FLSに依つて指向される
自由リンク・メツセージのキユー上に置かれる
為、実行されるQ/ML/FLS。ステツプ221
3では、ハードウエア・ゲートはロツク(閉塞)
され、システム内に危険状況が発生している事を
示す。危険状況のメモリ書き込みは図22eに示
された2214、サブルーチンRMLによつて実
行される。
The next step executed is step 2401 of Figure 22b, which calls the FLSC subroutine depicted on Figure 24b. This subroutine retrieves the free link semaphore and checks its current state. This subroutine is executed because the message link has already been freed and is placed on the queue of free link messages directed by the FLS. Step 221
In 3, the hardware gate is locked.
indicates that a dangerous situation has occurred within the system. Memory writing of the critical situation is performed by subroutine RML, 2214, shown in FIG. 22e.

サブルーチンRMLは、P命令を実行している
カレント実行プロセスに移転され加えて、前にメ
ツセージ・リンクを保持するQ/M/Sとセマホ
アを更新するメツセージを持つメツセージ・リン
クを解放する。これは図22eのステツプ223
0−2234に示される。更に詳しくは、ステツ
プ2230はQ/M/Sのメツセージ・リンクを
非キユーするのである。この非キユー・オペレー
シヨンはスクラツチ・パツド・メモリ場所WC5
のセマホアのメツセージ・キユー・ヘツド・ポイ
ンタをセマホア上の初めのメツセージ・リンクの
次リンク・フイールドへ変える。ステツプ223
1では、スクラツチ・パツド場所WC7の増分さ
れたセマホアカウントは、スクラツチ・パツド・
メモリ場所WC4へ移転され、1つ少いメツセー
ジ・リンクが今メツセージQ/M/Sを持つセマ
ホアに連結されている事を示す。ステツプ223
2では、スクラツチ・パツド・メモリ場所WC4
とWC5の内容は、メイン・メモリへ移転され、
メイン・メモリのセマホアが今そのカレント状態
を含むようになる。従つて、メイン・メモリ場所
はここで、初めのメツセージ・リンクを識別する
新しいメツセージ・キユー・ヘツド・ポインタを
持つセマホア上に1つ少いメツセージ・リンクが
ある事を示す。ステツプ2233では、自由メツ
セージ・リンクは今、LIF0方式でQ/ML/FLS
上にキユーされている。これは、自由リンクセマ
ホアのFLQPポインタがこのメツセージ・リンク
を指向するように変える事を必要とする。つま
り、FLSCサブルーチン2401からの情報が今
書き込まれる。加えて、自由リンク・キユーの初
めのリンクを示した、前のFLQP内容は次の、キ
ユーQ/ML/FLSに加えられようとしている自
由メツセージ・リンクのリンク・フイールドへ、
移転される。従つて自由メツセージ・リンクの論
理構造はそのままである。ステツプ2234で
は、ハードウエア・ゲートはロツク解放され、シ
ステムの危険状態が終つた事を示し、RMLサブ
ルーチンは完了する。
Subroutine RML is transferred to the current executing process executing the P instruction and also releases the message link with the Q/M/S previously holding the message link and the message updating the semaphore. This is step 223 in Figure 22e.
0-2234. More specifically, step 2230 dequeues the Q/M/S message link. This non-queue operation scratch pads memory location WC5.
Changes the semaphore's message queue head pointer to the next link field of the first message link on the semaphore. Step 223
1, the incremented semaphore account at scratch pad location WC7 is
It is moved to memory location WC4, indicating that one less message link is now connected to the semaphore with message Q/M/S. Step 223
2, scratch pad memory location WC4
and the contents of WC5 are transferred to main memory,
The main memory semaphore now contains the current state. Therefore, the main memory location now indicates that there is one less message link on the semaphore with a new message queue head pointer identifying the original message link. In step 2233, the free message link is now Q/ML/FLS in LIF0 manner.
It is queued above. This requires changing the free link semaphore's FLQP pointer to point to this message link. That is, the information from FLSC subroutine 2401 is now written. In addition, the previous FLQP content indicating the first link in the free link queue will be added to the link field of the next free message link to be added to the queue Q/ML/FLS.
will be relocated. Therefore, the logical structure of the free message link remains the same. At step 2234, the hardware gates are unlocked, indicating that the system is out of danger, and the RML subroutine is complete.

図22bとステツプ2215に戻つて、カレン
ト実行プロセスの命令カウンタは増分される。通
常は、これがP命令を終了させるが、自由メツセ
ージ・リンクがすでにQ/ML/FLSに利用さ
れ、この自由メツセージ・リンクがキユーの最初
の自由メツセージになりうる為、特別な状況が発
生する。前プロセスが、メツセージをFLSセマホ
アのSDセグメントへ渡す為にV命令を実行しよ
うとしたかもしれないが、そう出来なかつたので
この状況が結果として起こる。これから、メツセ
ージ移転が起こるようにする事が今望ましい。
Returning to Figure 22b and step 2215, the instruction counter for the current executing process is incremented. Normally this would terminate the P command, but a special situation arises because the free message link is already utilized by Q/ML/FLS and this free message link can be the first free message of the queue. This situation results because the previous process may have attempted to execute a V instruction to pass the message to the SD segment of the FLS semaphore, but was unable to do so. It is now desirable to allow message transfer to occur from now on.

従つてステツプ2216では、命令カウンタが
増分された後常に行われる質問、命令カウンタ1
312の新しい命令カウンタがあふれたかどうか
という質問が行われる。答が肯定なら、ステツプ
2217がセグメント相対アドレスのあふれを示
し、ゼロのダミー値に合わせて命令カウンタの
SRAをセツトし、加えてセグメント例外境界逸
脱を可能にする。これは命令カウンタの増分各々
に対しても起こる。つまりステツプ2203(図
22a)である。
Therefore, in step 2216, the interrogation that is always made after the instruction counter is incremented, the instruction counter 1
A question is asked whether the new instruction counter at 312 has been filled. If the answer is yes, step 2217 indicates a segment relative address overflow and sets the instruction counter to a dummy value of zero.
Set SRA and also enable segment exception bounds deviation. This also occurs for each increment of the instruction counter. That is, step 2203 (FIG. 22a).

2216の質問に対する答えが否定であつた
ら、ステツプ2218が、CCTはゼロより小さ
いかという質問をする。この場合、自由リンクセ
マホアを見て、I/O装置がQ/ML/FLSの自
由メツセージ・リンクを要求したが決定すること
が望ましい。答えが否定なら、つまりCCTカウ
ントがゼロに等しければ、図22Cとステツプ2
220が実行され、自由リンクセマホアの
FLSCTはゼロに等しいかと、質問する。等しけ
れば、これは自由リンク信号に今加えられた自由
メツセージ・リンクを持つプロセスはない事を示
す。その結果、カレント・プロセスの次命令22
21が実行される。ステツプ2220の答が否定
ならつまりメツセージを渡そうと待つているプロ
セスがあれば、システム・モードは2222にセ
ツトされる。システム・モードをセツトする事に
よつて、命令が終了した事が確認される。更に、
エラーが起こると、今実行された命令遂行が成巧
した事が分る。ステツプ2223では、図25b
下に示したサブルーチンFAR、取り出し、準備
アドレス、が実行される。これは、準備キユー
Q/PR/RDYにV命令を試た前のプロセスを置
き、その結果、ステツプ2224のデイスパツチ
ヤが通報される。しかし、ステツプ2218は
CCTがゼロより小さかつたら、つまりメツセー
ジを渡そうとしたIO装置があつて、自由メツセ
ージ・リンクが利用出来なかつたなら、ステツプ
2225が実行され、命令が見遂されたのでシス
テム・モードをセツトする。次いで図22dのス
テツプ2226がRLCMサブルーチンを作動し、
IO装置が今自由になつたメツセージ・リンクを
得られるようになつて、ステツプ2227はシス
テム・モードを再セツトして、2228の次命令
が実行出来るようになる。この様に、図22b−
22dによつて、P命令は要求されたメツセージ
を得る事に成巧したばかりでなく、渡されたメツ
セージを前にストアしていた自由メツセージ・リ
ンクは自由リンクセマホアもしくは、V命令の試
みが不成巧になつていたセマホアのどちらかへ移
転されている。
If the answer to question 2216 is negative, step 2218 asks if CCT is less than zero. In this case, it is desirable to look at the free link semaphore to determine if the I/O device has requested a free message link for the Q/ML/FLS. If the answer is negative, that is, if the CCT count is equal to zero, then Figure 22C and Step 2
220 is executed and the free link semaphore
I ask if FLSCT is equal to zero. If equal, this indicates that there is no process with the free message link just added to the free link signal. As a result, the next instruction 22 of the current process
21 is executed. If the answer to step 2220 is negative, that is, if there is a process waiting to pass the message, the system mode is set to 2222. Setting the system mode confirms that the instruction is complete. Furthermore,
When an error occurs, it is known that the execution of the command just executed was successful. In step 2223, FIG.
The subroutines FAR, Fetch, and Prepare Address shown below are executed. This places the previous process that attempted the V instruction on the prepare queue Q/PR/RDY, so that the dispatcher in step 2224 is notified. However, step 2218
If CCT is less than zero, that is, if there is an IO device attempting to pass the message and no free message link is available, step 2225 is executed and the instruction is fulfilled and the system mode is set. do. Step 2226 of FIG. 22d then activates the RLCM subroutine,
With the IO device now able to obtain the free message link, step 2227 resets the system mode so that the next instruction at 2228 can be executed. In this way, Figure 22b-
22d, not only does the P command succeed in obtaining the requested message, but the free message link that previously stored the passed message is either a free link semaphore or the V command's attempt is unsuccessful. It has been relocated to one of the former Semahoas.

これで、メツセージ付きセマホア上のP命令
と、セマホア状態と自由リンクセマホア状態によ
つて発生するかもしれない種々状況が終了する。
This ends the various situations that may arise due to the P command on the messaged semaphore and the semaphore state and free link semaphore state.

セマホア上のV命令 図20bで、ステツプ2026での質問に対す
る答が肯定だつたら、つまりVオペレーシヨンが
実行されたら、図25aに示したVNサブルーチ
ン2027へ移転が発生する。次は、カレント実
行プロセスによつて実行されるV命令用種々順列
の説明である。
V Instruction on Semaphore In FIG. 20b, if the answer to the question at step 2026 is affirmative, that is, if the V operation is executed, a transfer occurs to the VN subroutine 2027 shown in FIG. 25a. Following is a description of various permutations for V instructions executed by the current executing process.

図20でセマホアが持ち出された事、Vオペレ
ーシヨンが実行されるという予備決定が行われた
事、が思い出されるであろう。ステツプ2500
では、スクラツチ・パツド場所WC4にストアさ
れた古いSCTがゼロより小さいか、つまり持ち
出されたセマホアに連結されたプロセスがあるか
という質問が行われる。従つて、この質問は図2
0で期待され、スクラツチ・パツド場所WC7に
ストアされる新しいセマホアをを無視する。25
00での質問に対する答が否定なら、可能ならV
命令がセマホア上のキユーへ別のシグナル、又は
メツセージを追加する。
It will be recalled that in FIG. 20, the semaphore was brought out and a preliminary decision was made that the V operation would be performed. step 2500
The question then is whether the old SCT stored at scratch pad location WC4 is less than zero, that is, is there a process connected to the semaphore that was brought out? Therefore, this question is shown in Figure 2.
0 is expected and will ignore the new semaphore stored in scratch pad location WC7. 25
If the answer to the question in 00 is negative, then V if possible.
The command adds another signal, or message, to the queue on the semaphore.

更に詳しくは、ステツプ2501で、V命令の
OPコードと補コードがテストされ、テストV命
令が実行されるかを決定する。その答が非テスト
V命令を示せば、ステツプ2502は、セマホア
のセマホア最大カウント(SMC)が、ステツプ
2025でスクラツチ・パツド・メモリに整列さ
れた新らしいセマホアより大きいか同等というテ
ストを行う。セマホア最大カウントが新しいセマ
ホアカウントより小さければ、これは、システム
によつて期待されたよりも多くのデータがセマホ
ア上に置かれたことを示し、その結果、2502
aで例外状況がセツトされる。しかし、セマホア
が、更にデータをストア出来る事を示せば、ステ
ツプ2503への分岐、サブルーチンP、つまり
Vボンデイブが作られる。この分岐を述べる前
に、ステツプ2504から2507を述べる。
More specifically, in step 2501, the V instruction
The OP code and complementary code are tested to determine whether the Test V instruction is executed. If the answer indicates a non-test V instruction, step 2502 tests that the semaphore's semaphore maximum count (SMC) is greater than or equal to the new semaphore aligned to scratch pad memory in step 2025. If the semaphore maximum count is less than the new semaphore account, this indicates that more data has been placed on the semaphore than expected by the system, resulting in 2502
The exception status is set at a. However, if the semaphore indicates that more data can be stored, a branch to step 2503, subroutine P, or Vbondave, is made. Before describing this branch, steps 2504 to 2507 will be described.

ステツプ2504で、これはテスト命令である
と決定された。ここで、ステツプ2502の状況
でなされた様な、セマホアのセマホア最大カウン
トがステツプ2025で期待された新らしいセマ
ホアカウント・フイールドより大きいか同等かと
いう質問が行われる。答が否定、つまりSCTが
より大きければ、V命令は完了され得ない。その
結果、条件コード3がステツプ2505の状態レ
ジスタ1311にセツトされ、実行プロセスはそ
の命令カウンタを2506で増分されて次の命令
を実行する。セマホアは追加データをストア出来
る事を意味する2504での質問の答えが肯定な
ら、ステツプ2503でのVポジテイブへの分岐
が起こる。図26に示したVポジテイブ・サブル
ーチンは、追加メツセージ、又はシグナルがセマ
ホアへ追加される事が出来るようにする。
At step 2504, it is determined that this is a test instruction. A question is now asked, as was made in the situation of step 2502, whether the semaphore's semaphore maximum count is greater than or equal to the expected new semaphore count field in step 2025. If the answer is negative, that is, SCT is greater, the V instruction cannot be completed. As a result, condition code 3 is set in the status register 1311 of step 2505, and the executing process increments its instruction counter at 2506 to execute the next instruction. If the answer to the question at 2504 is affirmative, meaning that the semaphore can store additional data, a branch to V-positive occurs at step 2503. The VPositive subroutine shown in FIG. 26 allows additional messages or signals to be added to the semaphore.

A ポジテイブSCTフイールド持つセマホアの
V命令 ステツプ2600(図26)で、命令取り出し
ユニツト1318内のV命令のOPコードと補助
コードはテストされて、これが非メツセージセマ
ホアのVオペレーシヨンかどうか決定される。
A. Semaphore V Instruction with Positive SCT Field At step 2600 (FIG. 26), the OP code and ancillary code of the V instruction in instruction fetch unit 1318 are tested to determine if this is a non-message semaphore V operation. .

2600での質問の答が肯定なら、ステツプ2
600Aへの分岐が行なわれる。ステツプ260
0Aはゼロに等しい値か、PHQPをテストする。
答が否定なら、ステツプ2600bに違法セマホ
ア例外が起こる。ステツプ2600での質問の答
が肯定ならステツプ2601への分岐が行われ
る。ステツプ2601では、図20bのステツプ
2024で展開された増分済みのSCTカウント
は、スクラツチ・パツド・メモリ場所WC7から
検索されスクラツチ・パツド・メモリ場所WC4
へ伝送される。ステツプ2602では、ハードウ
エア・ゲートはロツクされ、ステツプ2603で
は、増分されたSCTカウントがメイン・メモリ
のセマホアに書き込まれ、こうしてメツセージな
しのセマホアから別のシグナルを利用出来る事を
示す。ステツプ2604では、ハードウエア・ゲ
ートはロツク解除され、システムの危険状態の終
りを示し、命令が完遂される。
If the answer to the question at 2600 is affirmative, step 2
A branch to 600A is taken. Step 260
0A tests PHQP for a value equal to zero.
If the answer is negative, an illegal semaphore exception occurs at step 2600b. If the answer to the question at step 2600 is affirmative, a branch is made to step 2601. In step 2601, the incremented SCT count expanded in step 2024 of Figure 20b is retrieved from scratch pad memory location WC7 and placed in scratch pad memory location WC4.
transmitted to. In step 2602, the hardware gate is locked, and in step 2603, an incremented SCT count is written to the semaphore in main memory, thus indicating that another signal is available from the messageless semaphore. At step 2604, the hardware gates are unlocked, indicating the end of the system's unsafe condition, and the command is completed.

しかし、ステツプ2600でV命令がメツセー
ジセマホアから、ステツプ2605が実行され
る。ステツプ2605は、SCTフイールドがゼ
ロより大きいか質問する。セマホアカウントはゼ
ロより小さくないという事がすでに決定されてい
るから、ゼロより大きくなければそれはゼロに等
しい。従つて答が否定なら、ステツプ2606で
は、V命令によつてアドレスされたメツセージセ
マホアのメツセージ・キユー・テイル・ポインタ
MQTPメツセージ・キユー・ヘツド・ポインタ
MQHPフイールドは、Q/M/Sはないはずだ
から、ゼロのテストを行われる。
However, in step 2600, the V instruction is sent from the message semaphore, and step 2605 is executed. Step 2605 asks if the SCT field is greater than zero. Since we have already determined that the semaphore account is not less than zero, it is equal to zero if it is not greater than zero. Therefore, if the answer is negative, step 2606 sets the message queue tail pointer of the message semaphore addressed by the V instruction.
MQTP message queue head pointer
The MQHP field is tested for zero since there should be no Q/M/S.

しかし、ステツプ2605への答が肯定なら、
つまりセマホアにメツセージがあれば、ステツプ
2607が実行され、MQTPとMQHPをテスト
して、前に述べた様に両者がゼロに等しく8の倍
数が決定される。この状態が存在すると、FLSC
サブルーチン・ステツプ2401が実行される。
このサブルーチンは、図24bにすでに説明した
様に、自由リンクセマホアをチエツクし、それを
スクラツチ・パツド・メモリ場所WCB,WCC,
WCDにストアする。
However, if the answer to step 2605 is affirmative, then
That is, if there is a message in the semaphore, step 2607 is executed and MQTP and MQHP are tested to determine that they are both equal to zero and are multiples of eight, as described above. When this condition exists, the FLSC
Subroutine step 2401 is executed.
This subroutine checks the free link semaphore and stores it in scratch pad memory locations WCB, WCC, and
Store to WCD.

ステツプ2608でサブルーチンから戻ると、
オペレーシヨン・タイプがテストされる。それが
メツセージ付きセマホアのV命令なら、
SEVFL、SEVTL、ステツプ2609が実行され
る。そうでなければ、つまりそれがIO命令、P
命令または例外ハンドラVオペレーシヨンなら、
ステツプ2608aとサブルーチンSVPが実行さ
れる。このサブルーチンはメツセージがセマホア
に渡される事を可能にする。
When returning from the subroutine in step 2608,
Operation type is tested. If it is a semaphore V command with a message,
SEVFL, SEVTL, steps 2609 are executed. Otherwise, that is, it is an IO instruction, P
For instructions or exception handler V operations,
Step 2608a and subroutine SVP are executed. This subroutine allows messages to be passed to the semaphore.

しかし、これが実行プロセスによるV命令な
ら、ステツプ2609で自由リンクセマホアの
FLQPフイールドがテストされ、ゼロに等しいか
決定される。注意すべきは、セマホアも自由リン
クセマホアも合法表示としてチエツクされている
という事である。FLQPポインタがゼロに不等な
ら、これはまた自由リンクが利用出来る事を示
す。従つて、ステツプ2610でこれはテストV
命令かという質問が行われる。答が肯定なら、条
件コードがステツプ2611で2セツトされ、ど
ちらの場合も、つまりそれがV命令であつてもな
くても、ステツプ2612、図26bが実行され
る。
However, if this is a V instruction by the executing process, in step 2609 the free link semaphore is
The FLQP field is tested to determine if it is equal to zero. It should be noted that both semaphore and free link semaphore are checked as legal indications. If the FLQP pointer is not equal to zero, this also indicates that free links are available. Therefore, in step 2610, this is the test V.
A question is asked as to whether this is an order. If the answer is yes, the condition code is set twice in step 2611, and in either case, whether it is a V instruction or not, step 2612, FIG. 26b, is executed.

ステツプ2612では、メツセージ・リンクが
SDセグメント内かどうか決定する為のテストが
行われる。この時点で、自由リンクセマホアは、
V命令を実行している実行プロセスのメツセージ
を書く為に自由メツセージ・リンクを解放しよう
としている。自由メツセージ・リンクがSDセグ
メントの物理的限界内にあるか決定するのが必要
である。又、メツセージ・リンクがセグメント内
にあれば、実行プロセスの優先性はビツト24か
ら27で自由メツセージ・リンクに移転される。
これが起きた後、ステツプ2613が、メツセー
ジ・リンクのアクセスをテストするサブルーチン
TAMLを実行し、好ましければ、セマホアQ/
M/Sのキユー内のメツセージをつきとめる。
In step 2612, the message link is
A test is performed to determine if it is within the SD segment. At this point, the free link semaphore is
Attempting to free a free message link to write a message for the executing process executing the V instruction. It is necessary to determine if the free message link is within the physical limits of the SD segment. Also, if the message link is within the segment, the priority of the executing process is transferred to the free message link in bits 24-27.
After this occurs, step 2613 calls a subroutine that tests message link access.
Run TAML and, if desired, semaphore Q/
Locate the message in the M/S queue.

TAMLサブルーチンは図26Cに示されてお
り、更に詳しくは、ステツプ2630で、これは
メツセージが優先的にキユーされる場合のメツセ
ージを持つセマホア上のV命令であるかという質
問も行う。従つてこの質問はスクラツチ・パツ
ド・メモリ場所WC4に求められたセマホアの
STAGフイールドをチエツクする。このテストが
優先セマホアを示せば、ステツプ2631で
SCTがゼロに等しいか否かという質問が行われ
る。セマホアのカウントがゼロに不等なら、これ
はセマホアキユー、Q/M/Sに連結されたメツ
セージ・リンクがある事を示し、図23eに示し
たサブルーチンPRIQ2304が実行される。サ
ブルーチンPRIQは、前に説明した様に、メツセ
ージ・リンク内にメツセージの場所を設定し、隣
接メツセージ・リンク妥当性検査を行う。この情
報はPRIQサブルーチンによつて、スクラツチ・
パツド・メモリ場所WDBからWDE迄にストアさ
れ、その結果、UQLKサブルーチンがその情法を
メイン・メモリに書く。
The TAML subroutine is shown in Figure 26C, and more specifically, at step 2630, it also asks if this is a V instruction on a semaphore with a message if the message is queued preferentially. Therefore, this question is based on the semaphore required for scratch padded memory location WC4.
Check STAG field. If this test indicates a preferred semaphore, step 2631
The question is asked whether SCT is equal to zero. If the semaphore count is not equal to zero, indicating that there is a message link connected to the semaphore queue, Q/M/S, subroutine PRIQ 2304, shown in Figure 23e, is executed. Subroutine PRIQ locates messages within message links and performs adjacent message link validation as previously described. This information is retrieved by the PRIQ subroutine from Scratch.
The stored information is stored in memory locations WDB to WDE, so that the UQLK subroutine writes the information to main memory.

2630の質問の答が否定なら、つまりこれ
が、優先的にキユーされるメツセージセマホアで
ないなら、もしくは2631の質問の答が肯定な
ら、SCTカウントはゼロで、セマホアにキユー
されたメツセージがない事を示し、メツセージ・
リンクの実位置は後で決定される。ステツプ26
32では、自由リンクセマホア、Q/ML/
FLS、の初めの自由メツセージ・リンクがメイ
ン・メモリからALU1317へ読み込まれる。
この自由メツセージ・リンクはFLSセマホアの
FLQPポインタによつて示されたものになるであ
ろう。ステツプ2633では、自由メツセージ・
リンクの次リンク・フイールドは、8の倍数であ
ることをテストされた後、スクラツチ・パツド・
メモリの場所W32に移転される。この次のリン
ク・フイールドは結果的に逆移転され、自由リン
クセマホアのFLQPポインタとして書かれる。そ
の結果、FLSセマホアは、最初の自由メツセー
ジ・リンクがV命令に使われるので、キユーのヘ
ツド自由メツセージ・リンクとして第2の自由メ
ツセージ・リンクを識別する。ステツプ2633
に続き、サブルーチンは終り、ステツプ2614
で図26bへのリターンが行われる。
If the answer to question 2630 is negative, that is, this is not a message semaphore that is queued preferentially, or if the answer to question 2631 is affirmative, the SCT count is zero, indicating that there are no messages queued to the semaphore. message
The actual location of the link will be determined later. Step 26
32, the free link semaphore, Q/ML/
The first free message link of FLS is read into ALU 1317 from main memory.
This free message link is from FLS Semaphore
It will be the one pointed to by the FLQP pointer. In step 2633, the free message
The link's next link field is tested to be a multiple of 8, then scratch padded.
It is moved to memory location W32. This next link field is then transferred back and written as the FLQP pointer of the free link semaphore. As a result, the FLS semaphore identifies the second free message link as the queue's head free message link since the first free message link is used for the V instruction. Step 2633
Following this, the subroutine ends at step 2614.
A return to FIG. 26b is then made.

ステツプ2614は図23aで2303と名付
けられたサブルーチンMTTを示す。MTTサブル
ーチンはムーブ(移動)機能の裏であり、メツセ
ージ内のフイールド幾つかを作業ストア領域の一
時的位取りへ移動するように働く。その理由は、
初めの1語半、つまり1508で図15に示され
たメツセージ・ヘツダが構築されねばならないか
らである。メツセージ・リンクの次の2語半であ
るメツセージ本体は実行プロセスによつて供給さ
れる。更に詳しくは、図26dで、ステツプ26
40、STAGフイールド、つまりメツセージ付き
セマホアの0から3ビツト迄がテストされる。
STAGゲートが、これは優先セマホアでないと示
せば、ステツプ2641が実行され、メツセー
ジ・ヘツダのMPLフイールド、つまり28から31
ビツト迄を1111に等しくなるようにセツトして、
これが優先メツセージでない事を示す。しかし、
STAGフイールドが優先メツセージを示せば、V
命令を実行しているプロセスの優先性を汎用レジ
スタ#0、1309から読み出す。この優先性は
次いで、メツセージ優先フイールド24から27ビ
ツトへ書き込まれる。同時に、メツセージ・リン
クの28から31ビツトにテストが行われ、ゼロ値が
これら4個のビツトに含まれているか決定する。
含まれていなければ、これはステツプ2642a
で、発生した例外条件によつて示される様に、違
法データである。
Step 2614 represents subroutine MTT, labeled 2303 in Figure 23a. The MTT subroutine is behind the move function and serves to move some of the fields in the message to a temporary scale in the working store area. The reason is,
This is because the first word and a half, 1508, must construct the message header shown in FIG. The message body, the next two and a half words after the message link, is provided by the executing process. More specifically, in FIG. 26d, step 26
40. STAG field, that is, bits 0 to 3 of the semaphore with message are tested.
If the STAG gate indicates that this is not a preferred semaphore, step 2641 is executed and the MPL field of the message header, 28 through 31
Set up to bits equal to 1111,
Indicates that this is not a priority message. but,
If the STAG field indicates a priority message, V
The priority of the process executing the instruction is read from general register #0, 1309. This priority is then written into the 27 bits from message priority field 24. At the same time, bits 28 through 31 of the message link are tested to determine if a zero value is contained in these four bits.
If not, this is step 2642a.
The data is illegal, as indicated by the exception condition that occurred.

どちらの場合も、ステツプ2643はメツセー
ジ・タグ、つまり20から23ビツト迄を構築する。
この特殊な例では、メツセージタグは、これが
IOオペレーシヨンでないので、全てゼロになる
であろう。又、ステツプ2643はカレント・プ
ロセス名を、32から47ビツト迄に置き、こうして
V命令を実行した実行プロセスを示す。ステツプ
2644では、V命令によつて渡されるメツセー
ジは、記憶位置WE4からWE7迄の一時記憶レ
ジスタに移転される。これはメツセージ・リン
ク、つまり48から127ビツト迄に満たされる次の
2語半になるだろう。ステツプ2645では、今
一時記憶レジスタにあるメツセージ・ヘツダは、
汎用レジスタ0と、実行プロセスの汎用レジスタ
の初めの16ビツトに移転さる。従つて、メツセー
ジ・リンクに渡される完全メツセージは、汎用レ
ジスタ1309の汎用レジスタ0から3迄に今あ
る。メツセージ・リンクを利用出来ないと分つて
いれば、カレント実行プロセスはそのPCBの汎用
レジスタ0から3迄にあるメツセージを持つ汎用
レジスタと共に、待ち状態へ置かれているだろ
う。従つて、サブルーチンMTTはメツセージを
構築するのみならず、後に使用する為にストアさ
れている事もも保証する。
In either case, step 2643 constructs the message tag, 20 to 23 bits.
In this particular case, the message tag is
Since it is not an IO operation, it will all be zero. Further, step 2643 sets the current process name in bits 32 to 47, thereby indicating the execution process that executed the V instruction. In step 2644, the message passed by the V instruction is transferred to temporary storage registers at storage locations WE4 through WE7. This will be the message link, the next two and a half words filled in from 48 to 127 bits. In step 2645, the message header currently in the temporary storage register is
Moved to general register 0 and the first 16 bits of the executing process's general register. Therefore, the complete message to be passed to the message link is now in general registers 0 through 3 of general register 1309. If the message link is known to be unavailable, the currently executing process will be placed in a wait state with the general registers containing the message in general registers 0 through 3 of the PCB. Therefore, subroutine MTT not only constructs the message, but also ensures that it is stored for later use.

MTTサブルーチンが終了すると、図26bの
ステツプ2616が実行される。このステツプは
メツセージ・リンクの絶対アドレスをストアする
相対アドレスは自由リンク・キユー・ポインタ・
ヘツド、FLQP、が与えられるので、絶対アドレ
スはこれから展開され、次いで、一時記憶レジス
タ場所W30にストアされる。ステツプ2617
は、サブルーチンTTMが実行される。このサブ
ルーチンは、一時記憶場所WE4からWE7迄に
整列、含まれる情報をメイン・メモリに移転す
る。従つて、TTMサブルーチンはメツセージ・
リンクをメイン・メモリの絶対アドレスに置く。
Upon completion of the MTT subroutine, step 2616 of Figure 26b is executed. This step stores the absolute address of the message link and the relative address of the free link queue pointer.
Given the head, FLQP, the absolute address is extracted from this and then stored in temporary storage register location W30. Step 2617
, subroutine TTM is executed. This subroutine arranges and transfers the information contained in temporary storage locations WE4 to WE7 to main memory. Therefore, the TTM subroutine handles the message
Place the link at an absolute address in main memory.

TTMサブルーチンは図26eに示され、特
に、これが含むものは、一時レジスタ記憶場所
WE4とWE5からメツセージ・リンクの初めの
2重語を読み出して、それをメインメモリに移転
するステツプ2648と、スクラツチ・パツド場
所WE6とWE7からメツセージリンクの第22重
語を読み出してメイン・メモリに書き込むステツ
プ2649である。
The TTM subroutine is shown in Figure 26e and, in particular, it includes temporary register storage locations.
Step 2648 of reading the first double word of the message link from WE4 and WE5 and moving it to main memory, and reading the 22nd double word of the message link from scratch pad locations WE6 and WE7 and moving it to main memory. This is a writing step 2649.

適切な情報をメツセージ・リンクに設定する
と、ステツプ2618はハードウエア・ゲートを
ロツクし、危険状態オペレーシヨンが実行される
事を示し、ステツプ2619は、TAMLサブル
ーチン2613で用意されるメツセージ・リンク
を移転するQMLサブルーチンを実行する。サブ
ルーチン2個が必要な理由は、メイン・メモリに
書き込む為には分割されていないオペレーシヨン
必要なので、その為にハードウエア・ゲートのロ
ツクが必要だからである。情報の準備は危険オペ
レーシヨンではないから、割り込みが出来る。こ
の様に、情報チエツクの分離サブルーチンはメイ
ン・メモリに情報を書く前に実行され、ハードウ
エア・ゲートがロツクされている時は、第2サブ
ルーチンが、図26fのQML2619に見られ
る様に、実際の書き込みを行う。
Once the appropriate information has been set in the message link, step 2618 locks the hardware gate to indicate that a critical condition operation is to be performed, and step 2619 transfers the message link provided in TAML subroutine 2613. Execute a QML subroutine to The reason why two subroutines are required is that writing to main memory requires an undivided operation, which requires a hardware gate lock. Preparing information is not a dangerous operation and can be interrupted. Thus, the information check separate subroutine is executed before writing the information to main memory, and when the hardware gate is locked, the second subroutine is actually executed as shown in QML2619 in Figure 26f. Write.

更に詳しくは、QMLサブルーチンはQ/ML/
FLSからの自由メツセージ・リンクを非キユー
し、メツセージ付きセマホアへ自由になつたメツ
セージ・リンクをキユーして、セマホアQ/M/
Sのメツセージ・キユーへ追加したり、セマホア
のキユーに初めのメツセージ・リンクを形成す
る。従つて、ステツプ2650では自由リンクセ
マホアの初めの自由リンクが非キユーされる。こ
れは、スクラツチ・パツド・パツド・メモリ場所
W32から今自由になつたメツセージ・リンク
を、スクラツチ・パツド場所WCCのFLSセマホ
アのFLQPポインタへ移転することによつて行わ
れる。ステツプ2651では、V命令が指向され
るセマホアについて、セマホアがあいているか、
つまりセマホア上にすでにメツセージ・リンクが
あるかという質問が行われる。答が肯定で、セマ
ホアはそのキユーに連結された追加メツセージ・
リンクを持つていなければ、ステツプ2652
は、セマホアのメツセージ・キユー・ヘツド・ポ
インタとメツセージ・キユー・テイル・ポインタ
を、ステツプ2650で取り上げられるメツセー
ジ・リンクの相対アドレスを示すように変えるべ
きであると表示する。加えて、このメツセージ・
リンクの次のリンク・フイールドは、それがQ/
M/Sのセマホアへ連結されたただ1つのメツセ
ージ・リンクなので、ゼロにセツトされる。その
結果、ステツプ2653では、セマホアの増分済
みSCTフイールドはスクラツチ・パツド・メモ
リ場所WC7から持ち出され、場所WC4へ移転
される。ステツプ2654では、スクラツチ・パ
ツド・メモリ内記憶場所WC4とWC5の全内容
は、メイン・メモリの自由になつたメツセージ・
リンク(ステツプ2650)へ移転される。この
様に、メツセージがメイン・メモリのメツセー
ジ・リンクへ書き込まれるだけでなく、メツセー
ジ・リンクを指向するセマホアもステツプ265
4を介して更新される。
More specifically, the QML subroutine is Q/ML/
Unqueue the free message link from the FLS, queue the now free message link to the semaphore with a message, and then
Add to S's message queue or form the first message link to Semaphore's queue. Therefore, in step 2650, the first free link in the free link semaphore is dequeued. This is done by moving the now free message link from scratch pad memory location W32 to the FLQP pointer of the FLS semaphore at scratch pad location WCC. In step 2651, it is determined whether the semaphore to which the V instruction is directed is open or not.
That is, a question is asked whether there is already a message link on the semaphore. If the answer is affirmative, the semaphore sends additional messages connected to the queue.
If you do not have a link, proceed to step 2652.
indicates that the semaphore's message queue head and message queue tail pointers should be changed to point to the relative address of the message link taken in step 2650. In addition, this message
The link field after the link is Q/
It is set to zero since it is the only message link connected to the M/S's semaphore. As a result, in step 2653, the semaphore's incremented SCT field is removed from scratch pad memory location WC7 and relocated to location WC4. In step 2654, the entire contents of scratch pad memory locations WC4 and WC5 are transferred to the free message memory in main memory.
Link (step 2650). In this way, not only is the message written to the message link in main memory, but the semaphore pointing to the message link is also written to the message link in step 265.
Updated via 4.

2651での質問の答が否定であつたら、つま
りこのセマホアに連結された追加メツセージ・リ
ンクがあつたら、ステツプ2655が、これが優
先セマホアで実行されている命令がどうか質問す
る。答が否定なら、ステツプ2656が、これは
FIFO V命令が質問する。これはオペレーシヨ
ンコードと補コード、つまり命令取り出しユニツ
ト1318のV命令の初めの12ビツトをチエツク
して決定される。答が肯定なら、つまりFIFOキ
ユーなら、メツセージ・リンクがキユーの最後の
ものになると示す。従つてステツプ2657はセ
マホアのメツセージ・キユー・テイル・ポインタ
を更新し、メツセージ・リンクの次リンク・フイ
ールドをセマホア上でゼロになるようにキユーす
る。それがキユーの最後のものであるからであ
る。次いでステツプ2653とステツプ2654
が実行され、セマホアとメツセージ・リンク両方
を更新する。
If the answer to the question at 2651 is negative, that is, there are additional message links connected to this semaphore, step 2655 asks if this is the instruction being executed in the preferred semaphore. If the answer is negative, step 2656
FIFO V instruction asks. This is determined by checking the operation code and complementary code, ie, the first 12 bits of the V instruction in instruction fetch unit 1318. If the answer is affirmative, ie, it is a FIFO queue, it indicates that the message link will be the last one in the queue. Therefore, step 2657 updates the semaphore's message queue tail pointer and queues the message link's next link field to zero on the semaphore. Because that's the last of Kyuu. Then step 2653 and step 2654
is executed, updating both the semaphore and the message link.

2656での質問の答が否定なら、LIFOキユ
ー化が示され、ステツプ2658がセマホアのメ
ツセージ・キユー・ヘツド・ポインタを更新し、
セマホアに含まれた古いメツセージ・キユー・ヘ
ツド・ポインタをセマホア上でキユー化されてい
るメツセージ・リンクの次のリンクフイールドに
移転する。これが起こるのは、カレント実行プロ
セスのV命令によつて渡されようとしているメツ
セージは、同じセマホアへアドレスされるP命令
へ渡される最初のものになるからである。その結
果、これはQ/M/Sのヘツドに置かれる。続い
て、ステツプ2653と2654が前に述べた様
に実行される。
If the answer to the question at 2656 is negative, LIFO queuing is indicated, and step 2658 updates the semaphore's message queue head pointer;
Moves the old message queue head pointer contained in the semaphore to the link field next to the message link queued on the semaphore. This occurs because the message being passed by the V instruction of the current executing process will be the first to be passed to a P instruction that is addressed to the same semaphore. As a result, it is placed at the head of the Q/M/S. Subsequently, steps 2653 and 2654 are performed as previously described.

ステツプ2655で、質問の答が肯定で、優先
キユー化が必要だつたら、キユー化に必要な情報
は、図26eのTAMLサブルーチン2613、
更に詳しくはTAMLサブルーチンによつて参照
されるPRIQサブルーチンによつて、すでに展開
されている。従つて、図23bに2311として
示されたUQLKサブルーチン実行され、この情報
をプロセス・リンク用のメイン・メモリ書き込
む。メツセージ・リンクを、セマホアへ連結され
たメツセージ・キユーの真中のどこかへ置く必要
があるかもしれない時にこの状況が起こる。
UQLKサブルーチン2311はメツセージ・キユ
ーを優先的に再整列させるので、次のリンク・フ
イールドの系列的順序づけが行われる。ステツプ
2653と2654はこの情報を、優先してキユ
ーされたメツセージ・リンクを持つセマホア用メ
イン・メモリ場所へ移転する。
If the question is answered in the affirmative at step 2655 and priority queuing is required, the information necessary for queuing is provided in the TAML subroutine 2613 of FIG. 26e.
More specifically, it has already been expanded by the PRIQ subroutine referenced by the TAML subroutine. Therefore, the UQLK subroutine shown as 2311 in Figure 23b is executed to write this information to main memory for the process link. This situation arises when a message link may need to be placed somewhere in the middle of a message queue connected to a semaphore.
UQLK subroutine 2311 preferentially reorders message queues so that sequential ordering of the next link field occurs. Steps 2653 and 2654 transfer this information to the main memory location for the semaphore that has the queued message link as a priority.

サブルーチンQMLが終了すると、図26bは
ステツプ2620が次に実行され、ハードウエ
ア・ゲートをロツク解放にしてシステム危険状況
が終つた事を示す。ステツプ2620の後、ステ
ツプ2621は実行プロセスの命令カウンタ13
12が増分される事を示し、2622によつて次
の命令が系列化される。
Upon completion of subroutine QML, FIG. 26b shows that step 2620 is executed next, releasing the lock on the hardware gate and ending the system critical condition. After step 2620, step 2621 registers the instruction counter 13 of the executing process.
12 indicates that it will be incremented, and 2622 will sequence the next instruction.

B 自由メツセージ・リンク利用不能の時のメツ
セージ付きセマホア上のV命令 図26aで、ステツプ2609の質問の答が肯
定であつたら、つまりFLSセマホアのFLQPポイ
ンタがゼロに等しく、利用出来る自由リンクがな
い事を示したら、ステツプ2623が、これがテ
スト命令かどうか質問する。それがテストV命令
なら、ステツプ2624は状態レジスタ1311
の条件コードが1にセツトされている事を示し、
命令カウンタ1312が増分されて次の命令がス
テツプ2622で実行される。ステツプ2623
で答が否定なら、V命令を実行しているプロセス
は、そのメツセージを渡す場所がない。これは図
15に示したSDセグメントの自由リンクセマホ
アから自由メツセージ・リンクを利用出来ないか
らである。その結果、ステツプ2625で、FLS
セマホアは変更されて、メツセージ付きでセマホ
アと同等となりプロセスを受ける事が出来るよう
になる。これはP命令が実行される負SCTフイ
ールドを持つセマホアに等しい。従つて、V命令
カレント実行プロセスによつて実行される事が出
来ず、その結果、自由リンクセマホアは待ち状態
へ移転されるカレント実行プロセスを保持する。
これは代表的Pオペレーシヨンなので、ステツプ
2625は自由リンクセマホアの情報が変換され
るのを可能にし、VPサブルーチンのEであるス
テツプ2121が、P命令を受けるメツセージと
同じ様にFLSセマホアを処理する。ステツプ26
25では、自由リンクセマホアポインタFLSPは
セマホア相対アドレス、つまりセマホアSRAに
なる。前には利用出来る自由メツセージ・リンク
がなかつたかもしれない為にゼロ、またはゼロよ
り小さかつたFLSCTカウントは今1つ減少分さ
れ(つまりマイナス1)、自由リンクセマホア
が、メツセージを渡せなかつたFLCTの絶対数を
持つているという事を示す。図にやはり示されて
いるのは、セマホアになりつつある自由リンクセ
マホアである。ステツプ2625の後、図23a
に関連して前に説明したVPサブルーチン212
1のEが実行され、プロセス・リンクを図17に
示したG0セグメントからの取り出しと、カレン
ト実行プロセスを待ち状態へ置く事によつて、自
由リンクセマホア、Q/PR/FLS、にプロセス
のキユーを必然的に形成する。これで、ゼロより
大きいSCTフイールドを持つセマホアのV命令
が終了する。
B. V command on semaphore with message when free message link is unavailable In Figure 26a, if the answer to the question in step 2609 is affirmative, that is, the FLQP pointer of the FLS semaphore is equal to zero and there is no free link available. If so, step 2623 asks if this is a test instruction. If it is a test V instruction, step 2624
indicates that the condition code is set to 1,
Instruction counter 1312 is incremented and the next instruction is executed at step 2622. Step 2623
If the answer is negative, the process executing the V instruction has nowhere to pass the message. This is because free message links cannot be used from the free link semaphore of the SD segment shown in FIG. As a result, in step 2625, FLS
The semaphore has been modified so that it is equivalent to a semaphore with a message and can undergo processes. This is equivalent to a semaphore with a negative SCT field where the P instruction is executed. Therefore, the V instruction cannot be executed by the current executing process, and as a result, the free link semaphore holds the current executing process transferred to the wait state.
Since this is a typical P operation, step 2625 allows the free link semaphore information to be converted, and step 2121, E of the VP subroutine, processes the FLS semaphore in the same way as a message receiving a P command. Step 26
In 25, the free link semaphore pointer FLSP becomes a semaphore relative address, ie, a semaphore SRA. The FLSCT count, which was previously zero or less than zero because there may not have been a free message link available, is now decremented by one (i.e., minus one), and the free link semaphore is the FLCT for which the message could not be passed. This shows that it has an absolute number of . Also shown in the diagram is a free link semaphore that is becoming a semaphore. After step 2625, FIG.
VP subroutine 212 previously described in connection with
E of 1 is executed and the process is queued to the free link semaphore, Q/PR/FLS, by taking the process link from the G0 segment shown in Figure 17 and placing the currently executing process in the waiting state. inevitably form. This completes the semaphore V instruction with an SCT field greater than zero.

C 負SCTフイールドを持つセマホア上のV命
令 図25aに戻り、ステツプ2500で、古い
SCTがゼロより大きいかという質問の答が肯定
であつたら、これはプロセスが前にセマホアから
データを要求した事を示す。セマホアがそのデー
タを持たなかつた為に、プロセスはデータを利用
出来る迄待ち状態へ置かれた。V命令がセマホア
上で実行される事になつたので、前のプロセスは
データを受けて待と状態から出るのみならず、カ
レント実行プロセスはそのメツセージを渡す事が
出来、実行状態を継続出来る。その結果、図25
の残りの分は、カレント実行プロセスと、データ
が利用出来なかつた為に待ち状態へ置かれていた
プロセス両者で実行される機能を描いている。
C V instruction on semaphore with negative SCT field Returning to Figure 25a, in step 2500, the old
If the answer to the question ``Is SCT greater than zero'' is positive, this indicates that the process previously requested data from the semaphore. Since the semaphore did not have the data, the process was put into a waiting state until the data was available. Since the V instruction is to be executed on the semaphore, the previous process not only receives the data and exits the waiting state, but also allows the current executing process to pass the message and continue the execution state. As a result, Figure 25
The remainder of the table depicts functions performed by both the currently executing process and processes that have been placed in a wait state because data was not available.

更に詳しくは、ステツプ2508から2512
迄はメツセージと非メツセージセマホア両者を設
定し、ステツプ2513は情報をV命令を実行し
ているカレント実行プロセスから、データを要求
したセマホアへ移転する。この様に、ステツプ2
508はこれがメツセージなしのセマホア上のV
オペレーシヨンは否かという質問を行う。答が肯
定でプロセスのキユーが非メツセージセマホア、
つまりQ/PR/S、にある事を示すなら、セマ
ホアのプロセス・キユー・ヘツド・ポインタはス
テツプ2509でテストされ、それが8の倍数で
ゼロと不等か否かを決定される。質問の答が否定
で、メツセージセマホア上のVオペレーシヨンで
あれば、ステツプ2510が、これはメツセージ
付きセマホアのテストV命令かという質問を行
う、テスト命令であれば、条件コードがステツプ
2511でゼロにセツトされ、SCTが負である
のみならず、V命令を実行するとプロセスは準備
状態に置かれる事を示す。どちらの場合も、つま
りテスト命令であつてもなくても、ステツプ25
12は実行され、メツセージ・キユー・テイル・
ポインタはこれがQ/PR/Sであるので、ゼロ
に等しいという事と、前に述べた理由で8の倍数
であるというテストを行う。
For more details, see steps 2508 to 2512.
Up to this point both message and non-message semaphores have been set, and step 2513 transfers information from the current executing process executing the V instruction to the semaphore that requested the data. In this way, step 2
508 is V on semaphore without message
A question is asked as to whether the operation is possible or not. If the answer is affirmative and the process queue is a non-message semaphore,
That is, Q/PR/S indicates that the semaphore's process queue head pointer is tested in step 2509 to determine whether it is a multiple of eight and not equal to zero. If the answer to the question is negative and it is a V operation on a message semaphore, step 2510 asks if this is a test V instruction on a semaphore with a message.If it is a test instruction, the condition code is returned in step 2511. Set to zero to indicate that not only is SCT negative, but executing the V instruction will place the process in a ready state. In either case, whether it is a test instruction or not, step 25
12 is executed and the message queue tale is executed.
The pointer tests to be equal to zero since this is Q/PR/S and to be a multiple of 8 for the reasons stated earlier.

セマホアが合法であれば、ステツプ2513
で、FARサブルーチン、つまり取り出し、準備
プロセスが実行される。このサブルーチンはメツ
セージをセマホアのヘツド・プロセスに渡し、メ
ツセージ付きセマホアのV命令を終了する。加え
て、このサブルーチンはメツセージを受けるプロ
セスのPCBを変えて、デスパツチヤがそのプロセ
スを準備キユーへ置く事が出来るようになる。
If the semaphore is legal, step 2513
, the FAR subroutine, the fetch and prepare process, is executed. This subroutine passes the message to the semaphore's head process and completes the semaphore's V instruction with the message. Additionally, this subroutine changes the PCB of the process receiving the message so that the dispatcher can place the process on the ready queue.

FARサブルーチン2513は図25bに示
す。更に詳しくは、FARサブルーチンの初めの
ステツプ(命令)は、図23dに関して前に述べ
たFGOサブルーチン2321をアクセス(呼び
出す)する事である。FG0サブルーチンはG0セ
グメントのヘツド・ポインタを展開する。ステツ
プ2520で、プロセスを保持するセマホアの初
めリンク、Q/PR/S、がアクセスされる。従
つて、セマホアのプロセス・キユー・ヘツド・ポ
インタは、FG0サブルーチンから展開されたアド
レスへ追加され、必要なプロセス・リンクを供給
する。注意すべきは、これが自由リンクセマホア
であつたら、プロセス・リンクは、ステツプ25
20でG0セグメントのアドレスに加えなれる
PQHPフイールドから展開されただろうという事
である。続いて、ステツプ2521でサブルーチ
ンRNPがアクセスされてFARサブルーチンは終
る。
FAR subroutine 2513 is shown in Figure 25b. More specifically, the first step (instruction) of the FAR subroutine is to access (call) the FGO subroutine 2321 described above with respect to FIG. 23d. The FG0 subroutine expands the head pointer of the G0 segment. At step 2520, the first link of the semaphore holding the process, Q/PR/S, is accessed. Therefore, the semaphore's process queue head pointer is added to the expanded address from the FG0 subroutine to provide the necessary process link. Note that if this were a free link semaphore, the process link would be
20 can be added to the G0 segment address
It would have been developed from the PQHP field. Subsequently, subroutine RNP is accessed in step 2521, and the FAR subroutine ends.

サブルーチンRNP2521は図25Cに示さ
れている。これは待ち状態にあるプロセスを準備
させる機能を果たす。このサブルーチンは図24
a、ステツプ2408でも、FLSセマホアに連結
されたプロセスがそのメツセージを渡した時、実
行された。メツセージを要求するP命令を実行す
るカウント実行プロセスがその状況に含まれた事
が思い出される。その時は利用出来る自由メツセ
ージ・リンクがなかつたので、メツセージは渡さ
れなかつた。その結果、メツセージは移動され、
メツセージを渡せなかつたプロセスは待ち状態か
ら取り出され、準備キユーに置かれた。その時は
サブルーチンRNPの説明が延期された。
Subroutine RNP2521 is shown in Figure 25C. This serves to prepare waiting processes. This subroutine is shown in Figure 24.
a. Step 2408 is also executed when the process attached to the FLS semaphore passes the message. It will be recalled that the situation included a count execution process executing a P instruction requesting a message. There were no free message links available at that time, so the message was not passed. As a result, the message is moved and
Processes that fail to deliver the message are taken out of the waiting state and placed in the ready queue. At that time, explanation of subroutine RNP was postponed.

上記に加え、デスパツチヤ機能の結果として、
もし備準キユーのヘツドにあるプロセスにより優
先性があるなら、RNPサブルーチンはカレント
実行プロセスをロール・アウト(放出)するかも
しれない。図14はこの事を詳しく説明してい
る。
In addition to the above, as a result of the despatcher function,
The RNP subroutine may roll out the currently running process if the process at the head of the ready queue has a higher priority. FIG. 14 explains this in detail.

RNPサブルーチンは、実行状態でカレント・
プロセス以外のプロセスで実行する為、先ずこの
別のプロセスを搜さねばならない。従つて、ステ
ツプ2522は図25hに示されたPCBAサブル
ーチンを呼び出す。このサブルーチンは、待ち状
態のプロセスを含むプロセス・コントロール・ブ
ロツクの絶対アドレスを取り出す。更に詳しく
は、ステツプ2560で、Pテーブル・ポインタ
がJナンバーを使つて持ち出される。図5と17
に関連して、これはJテーブルがシステム・ベー
スから得られる事を意味し、次いでJナンバを持
つテーブルがインデツクスされてPテーブルへの
ポインタを展開する。
The RNP subroutine is the current
Since it is executed in a process other than the process, this other process must be found first. Therefore, step 2522 calls the PCBA subroutine shown in Figure 25h. This subroutine retrieves the absolute address of the process control block containing the waiting process. More specifically, in step 2560, the P table pointer is retrieved using the J number. Figures 5 and 17
In relation to this, this means that the J table is obtained from the system base, and then the table with the J number is indexed to expand the pointer to the P table.

ステツプ2561では、Pテーブルのポインタ
が参照され、Pナンバーは次いでインデツクスさ
れてPテーブルかなプロセス・コントロールのア
ドレスを供給する為にポインタに加えられる。プ
ロセス・コントロール・ブロツクのアドレスは次
いで、メイン・メモリから演算・論理ユハツト1
317へ持ち出される。ステツプ2562では、
初めてのビツトがチエツクされ、プロセス・コン
トロール・ブロツクがメモリ内にある事、つまり
延期されたかもしれないプロセス・コントロー
ル・ブロツクで、あいていないという事を示す。
加えて1から7迄のビツトにテストが行われ、そ
れがゼロである事が決定される。第1語の残りの
分は、これら24ビツトがプロセス・コントロー
ル・ブロツク用絶対アドレスである為、図19a
のスクラツチ・パツド・メモリ内にステツプ25
63によつてストアされる。
In step 2561, the P table pointer is referenced and the P number is then indexed and added to the pointer to provide the address of the P table process control. The address of the process control block is then transferred from main memory to the arithmetic/logic block 1.
Taken to 317. In step 2562,
The first bit is checked, indicating that the process control block is in memory, which may have been postponed, but is not free.
In addition, bits 1 through 7 are tested and determined to be zero. As for the remaining part of the first word, these 24 bits are the absolute address for the process control block, so in Figure 19a
Step 25 in the scratch pad memory of
63.

サブルーチンPCBA2522が終了すると、図
25Cのステツプ2523が実行される。ステツ
プ2523では、命令のOPコードと補コードが
テストされる。これがIO命令なら、ステツプ2
524が実行され、メツセージであるデータを取
つて、PBCの汎用レジスタ0のアドレスである
PCBアドレスプラス84にストアする。それが命
令又はテストV命令なら、ステツプ2525は実
行プロセスの汎用レジスタGR0からGR3迄にス
トアされた情報を、図26aに2614として述
べたサブルーチンMTTを介して、一時記憶領域
へストアする。ステツプ2524は再びそのメツ
セージをPCBアドレス+84へ移転する。
When subroutine PCBA2522 ends, step 2523 in FIG. 25C is executed. In step 2523, the instruction's OP code and complementary code are tested. If this is an IO command, step 2
524 is executed and fetches the message data, which is the address of general register 0 of PBC.
Store at PCB address plus 84. If it is an instruction or a test V instruction, step 2525 stores the information stored in general purpose registers GR0 through GR3 of the executing process into temporary storage via subroutine MTT, shown as 2614 in FIG. 26a. Step 2524 again moves the message to PCB address +84.

どちらの場合も、サブルーチンTTM、ステツ
プ2617で実行されて、メイン・メモリにメツ
セージを書き込む。この移転は一時記憶場所
WE4からWE7迄からプロセス・コントロール・
ブロツクへのものである。
In either case, subroutine TTM, step 2617, is executed to write the message to main memory. This transfer is a temporary storage location.
Process control from WE4 to WE7
It is for the block.

ステツプ2523で、オペレーシヨン・コード
のテストがメツセージなしのセマホア上にV命令
があると示したなら、メツセージをプロセス・コ
ントロール・ブロツク場所+84へストアする必要
がなくなるであろう。
If, at step 2523, the operation code test indicates that there is a V instruction on a semaphore without a message, there will be no need to store the message to process control block location +84.

しかし、いずれにせよ、ステツプ2527は実
行され、準備キユーのヘツドを識別する内部キユ
ー語を持ち出す。この点で注意すべきは、252
8からの追加エントリ(項目)が見られ、このエ
ントリはスタート命令からの分岐を示す。この事
は本書参照事項に組み入れられたもう1つの特許
申込みの主題である。スタート命令はプロセスの
幾つかを準備キユーへ移転する事のみを必要とす
るので、IQW語の場所が必要である。
But in any event, step 2527 is executed and brings up an internal queue word that identifies the head of the preparation queue. What should be noted in this regard is 252
An additional entry from 8 is seen, which indicates a branch from the start instruction. This is the subject of another patent application incorporated herein by reference. The IQW word location is needed because the start command only requires transferring some of the processes to the prepare queue.

内部プロセス・キユー語の持ち出しに続いて、
図23eに述べたサブルーチンPRIQ2304が
実行される。このサブルーチンは、前にPオペレ
ーシヨンをセマホアに施こしたプロセスつまり今
待ち状態にあるプロセスを準備キユー、Q/
RP/RDY、に向かい合うどの場所に置くべきか
を決定する。PRIQサブルーチンは準備キユー内
のプロセスの優先性を、プロセス・リンク内の優
先フイールドを介してチエツクし、準備キユー内
のプロセス・リンクの桁位置(プレースメント)
を決定する。RPIQサブルーチンは実際のメモリ
書き込みは行なわない。
Following the internal process of bringing up the language,
Subroutine PRIQ2304, described in FIG. 23e, is executed. This subroutine prepares the process that previously performed the P operation on the semaphore, that is, the process that is currently in the waiting state.
Decide where to place it facing RP/RDY. The PRIQ subroutine checks the priority of the process in the prepare queue via the priority field in the process link and the process link's digit position (placement) in the prepare queue.
Determine. The RPIQ subroutine does not actually write to memory.

図25d、ステツプ2529では、UACWサ
ブルーチンが実行され、プロセス・コントロー
ル・ブロツク内の合計語(アカウテイング)を更
新する。このサブルーチンは待ち状態でプロセス
が費やした時間を合計する。ステツプ2530で
は、命令持ち出しユニツト1318内のV命令オ
ペレーシヨン・コードがテストされ、スタート命
令が実行されているかを決定する。これがスター
ト命令なら、 ステツプ2532では、PCBのプロセスの優先
性はプロセス・リンクへ移転される。このステツ
プに従つて、優先バイトの優先性変更が起きてい
る場合、スクラツチ・パツド・メモリから転移さ
れた優先バイトを更新する。
In Figure 25d, step 2529, the UACW subroutine is executed to update the accounting in the process control block. This subroutine totals the time the process spends in the wait state. At step 2530, the V instruction operation code in instruction fetch unit 1318 is tested to determine if the start instruction is being executed. If this is a start command, then in step 2532 the PCB's process priority is transferred to the process link. Following this step, if a priority byte change has occurred, the priority byte transferred from the scratch pad memory is updated.

しかし、これが非スタート命令なら、プロセス
は待ち状態から変えられている。つまりプロセ
ス・リンクがすでに存在している。従つてステツ
プ2533では、プロセス・リンクによつて示さ
れた様に待ち状態にあつたプロセスの優先性は、
スクラツチ・パツド・メモリ場所NJP、図19
a、へ移転される。プロセスのプロセス・リン
ク・フイールド内の優先性がカレント優先性の最
も新しい変型(バージヨン)である為にこの結果
になる。従つて、プロセスが待ち状態にあつた
間、優先性変更があれば、それはプロセス・リン
ク・フイールドに依つて示されないであろう。
However, if this is a non-start instruction, the process has been changed from the wait state. That is, the process link already exists. Therefore, in step 2533, the priority of the waiting process as indicated by the process link is
Scratch pad memory location NJP, Figure 19
It will be moved to a. This result occurs because the priority in the process link field of the process is the most recent version of the current priority. Therefore, if there was a priority change while the process was in a wait state, it would not be indicated by the process link field.

図25e、ステツプ2534では、オペレーシ
ヨン・コードが再びテストされ、テストであつて
もなくても、これがゼロに等しいSCTフイール
ドを持つメツセージのあるセマホアのP命令か、
を決定する。ステツプ2408でRNPサブルー
チンを呼び出した図24aのPNZサブルーチンよ
りの分岐からこれが起きる。この状態が存在する
と、ステツプ2535で、待ち状態にあつたプロ
セスのプロセス・コントロール・ブロツクの内
容、つまりアドレス+84内の値は、P命令を今実
行しているプロセスの汎用レジスタGR0からGR
3迄に移転される。待ち状態のプロセスのPCBに
は、自由メツセージ・リンクが利用出来なかつた
ので、メツセージが含まれている事が思い出され
る。その結果、プロセスはQ/PR/FLSに連結
された。今、P命令が実行され、PNZサブルーチ
ンは、デイスプレースメント・フイールドが等し
いという事を決定した。その結果、Q/PR/
FLS内のプロセスからのメツセージ移転が行われ
る。続いて、ステツプ2536で、ハード・ウエ
ア・ゲートがロツクされて危険状態が入りつつあ
る事を示し、ステツプ2537で、UPLQサブル
ーチンが実行される。このサブルーチンはプロセ
ス・リンクを取り除き、図25iに示す様にQ/
PR/FLSを更新する。
In Figure 25e, step 2534, the operation code is again tested to determine whether this is a semaphore P instruction with a message having an SCT field equal to zero, whether or not it is a test.
Determine. This occurs from the branch from the PNZ subroutine of FIG. 24a, which called the RNP subroutine at step 2408. If this condition exists, in step 2535, the contents of the process control block of the process in the wait state, that is, the value at address +84, are transferred from general register GR0 to GR of the process currently executing the P instruction.
It will be moved by 3. It will be recalled that the PCB of the waiting process contains a message since no free message link was available. As a result, the process was coupled to Q/PR/FLS. Now that the P instruction has been executed, the PNZ subroutine has determined that the displacement fields are equal. As a result, Q/PR/
Message transfer from processes within the FLS takes place. Next, in step 2536, the hardware gate is locked to indicate that a dangerous condition is entering, and in step 2537, the UPLQ subroutine is executed. This subroutine removes the process link and the Q/
Update PR/FLS.

従つて、ステツプ2580では、初めのリン
ク・インジケータがゼロに等しいか、つまりこれ
が取り除かれるキユーのヘツドにあるプロセス・
リンクかという事を決定する。もしそうなら、ス
テツプ2581は、プロセス・リンクがキユーの
ヘツドである事を示し、これから、スクラツチ・
パツド場所WE5のプロセス・キユー・ヘツド・
ポインタはスクラツチ・パツド場所WE9にスト
アされたUNLの内容と更新される。しかし、キ
ユーのヘツドでなければ、ステツプ2583で、
古いプロセス・キユー・ヘツド・ポインタは新し
いプロセス・ヘツド・キユー・ポインタに等し
く、、取り除かれるプロセスの次リンク・フイー
ルドはその直前のリンクに移転される。従つて、
直前のリンクは取り除かれたプロセス・リンクに
よつて前に識別されたプロセス・リンクを識別
し、Q/PR/FLS内の全プロセス・リンクの論
理結合を保証する。このリンク情報は、SPLQサ
ブルーチンによつてスクラツチ・パツド場所WE
8とWE9にストアされた情報である。
Therefore, step 2580 determines whether the first link indicator is equal to zero or the process at the head of the queue being removed.
Decide whether it is a link. If so, step 2581 indicates that the process link is the head of the queue, and from now on the scratch
Process Queue Head of Patched Location WE5
The pointer is updated with the contents of UNL stored in scratch pad location WE9. However, if it is not the head of the queue, in step 2583,
The old process queue head pointer is equal to the new process head queue pointer, and the next link field of the removed process is transferred to its previous link. Therefore,
The previous link identifies the process link previously identified by the removed process link, ensuring logical connectivity of all process links within the Q/PR/FLS. This link information is provided by the SPLQ subroutine to the scratch pad location WE.
This is information stored in WE8 and WE9.

2534での質問の答が否定で、特殊条件は存
在しない事を示せば、ステツプ2538への分岐
が実行される。否定の答になり得る命令の複雑性
であるので、ステツプ2538がこれはメツセー
ジセマホアのセシン・スタート又はPもしくはP
テスト命令が質問する。答が肯定なら、2539
への分岐が行われる。この分岐は、Q/PR/S
またはQ/PR/FLSからの非キユー化がステツ
プ2555迄延期される為に実行される。しか
し、V命令に起こる様に、質問2538への答が
否定なら、ステツプ2540がハードウエア・ゲ
ートをロツクし、ステツプ2541がセマホア
Q/PR/SまたはQ/PL/FLSから、プロセ
ス・リンクを非キユー化する。つまりプロセス・
リンクは今迄それが存在したキユーから取り出さ
れる。取り除かれたリンクはQ/PR/RDYへ加
えられる。ステツプ2542では、アドレスされ
たセマホアは新しいSCTフイールドと、スクラ
ツチ・パツド・メモリ及びメイン・メモリの両方
へ書き込まれる。これはセマホアの新しい状態を
示す。
If the answer to the question at 2534 is negative, indicating that no special condition exists, a branch to step 2538 is executed. Because of the complexity of the command that can result in a negative answer, step 2538 indicates that this is the message semaphore's session start or P or P.
Test instructions ask questions. If the answer is affirmative, 2539
A branch is made. This branch is Q/PR/S
Alternatively, dequeuing from Q/PR/FLS is deferred until step 2555. However, if the answer to question 2538 is negative, as occurs with the V instruction, step 2540 locks the hardware gate and step 2541 removes the process link from semaphore Q/PR/S or Q/PL/FLS. Unqueue. In other words, the process
The link is retrieved from the queue in which it previously existed. The removed link is added to Q/PR/RDY. In step 2542, the addressed semaphore is written to a new SCT field and to both scratch pad memory and main memory. This indicates the new state of the semaphore.

PMZサブルーチンが起用されていたなら、ス
テツプ2542も実行される。続いて、ステツプ
2543でハード・ウエア・ゲートがロツク確放
され、割り切れない(indivisibie)危険状態オペ
レーシヨンが終つた事を示す。
If the PMZ subroutine was used, step 2542 is also executed. Subsequently, in step 2543, the hardware gate is released to indicate the end of the indivisibie unsafe state operation.

この時点で、セマホアに保持されているプロセ
スは前に要求したデータを受けている。しかし、
P命令が実行され得ない時は、実行プロセスの命
令カウントは、プロセスが待ち状態にロール・ア
ウトされているので、そのまま同じである。従つ
て、プロセスが実行状態へ戻る時、命令カウンタ
はP命令が実行されるべきである事を示す。プロ
セスのP命令は今実行されたので、つまりそのメ
ツセージを受けたから、PCBにストアされた命令
カウンタ内容は4つ増分されるはずである。これ
を行う事によつて、プロセスはP命令に続く、次
の命令でスタートする。ステツプ2544から2
547迄は命令カウンタ内容の変更に備える。
At this point, the process held in the semaphore has received the data it previously requested. but,
When a P instruction cannot be executed, the instruction count of the executing process remains the same because the process has been rolled out to the wait state. Therefore, when the process returns to the execution state, the instruction counter indicates that the P instruction is to be executed. Since the process's P instruction has now been executed, that is, since its message has been received, the contents of the instruction counter stored in the PCB should be incremented by four. By doing this, the process starts with the next instruction following the P instruction. Steps 2544-2
Up to 547, preparations are made for changing the contents of the instruction counter.

ステツプ2544では、命令カウンタ語の
MBZフイールドはゼロであるかテストされる。
ステツプ2545では、命令カウンタにストアさ
れたセグメント相対アドレスへ4が加えられ、命
令カウンタは次の命令が実行されるべき事を示せ
るようになる。図25f、ステツプ2546で
は、命令カウンタ語用のこの新しいアドレスは、
P命令を実行したプロセスのプロセス・コントロ
ール・ブロツクに書き込まれ、ステツプ2547
でテストされて、増分されたアドレスがセグメン
トからあふれたかを決定する。命令カウンタが増
分される時にこの状況が発生し得る。従つて、待
ち状態から取り除かれるプロセスは、デスバツチ
ヤがこれを移転すれば、実行状態で機能する事が
出来る。
In step 2544, the instruction counter word
The MBZ field is tested for zero.
At step 2545, four is added to the segment relative address stored in the instruction counter, allowing the instruction counter to indicate that the next instruction is to be executed. In Figure 25f, step 2546, this new address for the instruction counter word is
Written to the process control block of the process that executed the P instruction, and executed in step 2547.
is tested to determine if the incremented address has spilled out of the segment. This situation can occur when the instruction counter is incremented. Therefore, a process that is removed from the waiting state can function in the running state if the desbatcher transfers it.

メツセージセマホアのセシン・スタートまたは
PもしくはテストP命令を示すステツプ2539
からの分岐が起これば、又は待ち状態にあつたプ
ロセスの命令カウンタの増分の続いて、ステツプ
2548が実行される。ステツプ2548では、
危険状況を示すハードウエア・ゲートが再びロツ
クされ、ステツプ2549で、更新されたばかり
のプロセスの状態バイトが準備状態へセツトさ
れ、デスパツチヤがそれを準備キユーに置く事が
出来るようになる。
Step 2539 indicating message semaphore session start or P or test P command
Step 2548 is executed if a branch from is taken, or following an increment of the instruction counter of the waiting process. In step 2548,
The hardware gate indicating the critical condition is locked again and the just updated process status byte is set to the ready state at step 2549, allowing the dispatcher to place it in the ready queue.

図25g、ステツプ2550では、これがスタ
ート命令かという質問が再び行われる。答が肯定
なら、ステツプ2551で、初期設定されようと
しているプロセスについての情報を含むプロセ
ス・リンクが、Q/PL/PLS、プロセス・リン
クセマホア上のプロセス・リンクのキユーから取
り出され、コンテスト・インジケータが1にセツ
トされる。最終命令の始めがカレント実行プロセ
スによつて実行された後、1ないしそれ以上の新
しいプロセスが準備キユーに置かれた時にこのコ
ンテスト・インジケータがセツトされる。コンテ
スト・インジケータは、実行状態用のカレント実
行プロセスを持つ準備キユーのヘツド・プロセス
によるコンフリクトの可能性を識別する。続いて
ステツプ2311で、図23hに関連して前に述
べたサブルーチンUQLKが実行され、PRIQサブ
ルーチンによつて決定されたプロセス・リンクを
更新する。ステツプ2553では、システム危険
状態が終つているので、ハードウエア・ゲートが
ロツク解放される。従つてこの分岐については、
RNPサブルーチンがV命令を実行しているカレ
ント実行プロセスと、カレント実行プロセスによ
つてスタートされたプロセスの両方を更新した事
が分る。
In Figure 25g, step 2550, the question is again asked if this is a start command. If the answer is yes, in step 2551, the process link containing information about the process being initialized is retrieved from the process link queue on the Q/PL/PLS, process link semaphore, and the contest indicator is set. Set to 1. This contest indicator is set when one or more new processes are placed in the prepare queue after the beginning of the last instruction has been executed by the current executing process. The contest indicator identifies a potential conflict with the head process of the prepare queue with the current executing process for the running state. Subsequently, in step 2311, subroutine UQLK, previously described in connection with FIG. 23h, is executed to update the process links determined by the PRIQ subroutine. In step 2553, the hardware gate is unlocked since the system danger condition has ended. Therefore, regarding this branch,
It can be seen that the RNP subroutine has updated both the current executing process executing the V instruction and the processes started by the current executing process.

しかし、2550の質問の答が否定であつたな
ら、ステツプ2534で行われたのと同じ質問が
ステツプ2554で行われる。つまりこれは、ゼ
ロに等しいSCTカウントを持つメツセージ上の
テストであつてもなくても、P命令もしくはセシ
ンかという質問を行う。P命令については、キユ
ー化はUPLQキブルーチンによつてすでに行われ
ている。その結果、プロセスは準備キユーに加え
られているので、ステツプ2552への分岐が実
行され、Q/PR/RDYのヘツドにあるプロセス
と、実行プロセスとの優先性比較が行われる。従
つて、この分岐については、メツセージ信号のP
命令を実行しているカレント実行プロセスと、自
由メツセージ・リンクを利用出来なかつた為に自
由リンクセマホアに連結され、待ち状態にあつた
プロセスの両方をRNPサブルーチンが更新した
事が分る。
However, if the answer to question 2550 is negative, then the same question asked in step 2534 is asked in step 2554. This means that whether or not a test is on a message with an SCT count equal to zero, it asks whether it is a P command or a secession. For P instructions, queueing is already done by the UPLQ Qib routine. As a result, since the process has been added to the ready queue, a branch is taken to step 2552, where a priority comparison is made between the process at the head of Q/PR/RDY and the executing process. Therefore, for this branch, P of the message signal
It can be seen that the RNP subroutine has updated both the current executing process that is executing the instruction and the process that was in a waiting state and was connected to the free link semaphore because the free message link was not available.

しかし、2554での質問の条件が満たされて
いなければ、つまりSCTカレントがゼロに不等
なら、もしくはそれが、上に挙げられた命令の1
つでなければ、ステツプ2555が実行され、待
つているキユーから新しいプロセス・リンクつま
りQ/PR/又はQ/PR/FLSのどちらかを取り
出し、ステツプ2556では、更新されたSCT
がスクラツチ・パツド・メモリ場所WC7が待ち
出され、プロセス・リンクへ入れられる。ステツ
プ2557では、これはメツセージなしのセマホ
アのV命令かという質問が行われる。そうであれ
ば、ステツプ2558が、プロセスリンクをQ/
PR/Sから取り除かれたばかりのプロセス・リ
ンクの名前を、セマホアのテナント・フイールド
へ書き込む、つまり図16に示す48から63ビツト
迄である。加えて、ステツプ2558は、スクラ
ツチ・パツド・メモリ場所WC4とWC5にスト
アされた全カレント情報を持つセマホアを更新す
る、つまり2556で形成された様な新らしい更
新されたSCTと、前に起きたかもしれない全て
の変更されたキユーポインタである。非メツセー
ジセマホアを完全に更新すると、ステツプ255
2のコンテスト・インジケータは1にセツトさ
れ、最終命令がカレント実行プロセスによつて実
行されたので準備キユーに新しいプロセスが入れ
られた事を示す。前に、つまりステツプ2311
と2553で述べたのと同じステツプが次に実行
され、RNPサブルーチン終りという結果にな
る。従つて、この分岐については、非メツセージ
セマホアのV命令を実行するカレント実行プロセ
スと、非メツセージセマホアに連結された、待ち
状態にあるプロセスの両方をRNPサブルーチン
が更新した事で分る。
However, if the condition of the question at 2554 is not met, that is, if the SCT current is not equal to zero, or if it is one of the instructions listed above.
If not, step 2555 is executed to retrieve the new process link, either Q/PR/ or Q/PR/FLS, from the waiting queue, and step 2556 is executed to retrieve the updated SCT link, either Q/PR/ or Q/PR/FLS.
The scratchpad memory location WC7 is queried and placed into the process link. At step 2557, a question is asked whether this is a semaphore V instruction without a message. If so, step 2558 connects the process link to the Q/
Write the name of the process link just removed from the PR/S into the tenant field of the semaphore, bits 48 through 63 as shown in FIG. In addition, step 2558 updates the semaphore with all current information stored in scratch pad memory locations WC4 and WC5, i.e., the new updated SCT as formed in 2556 and the previously occurred semaphore. All queue pointers may have changed. Once the non-message semaphore has been fully updated, step 255
The contest indicator at 2 is set to 1 to indicate that a new process has been placed in the prepare queue because the last instruction was executed by the current executing process. Before, that is, step 2311
The same steps described at 2553 are then executed, resulting in the end of the RNP subroutine. Therefore, this branch is known because the RNP subroutine has updated both the current execution process that executes the V instruction of the non-message semaphore and the waiting process connected to the non-message semaphore.

しかし、ステツプ2557の質問の答が否定
で、メツセージセマホアのV命令ではなかつたと
示せば、ステツプ2559がQ/PR/Sを変え
る新しいヘツド・ポインタと新しいカウント・フ
イールドをメイン・メモリのセマホアに書き込む
であろう。そして、前に述べたステツプ2552
が次に実行される。従つて、この分岐について
は、メツセージセマホアのV命令を実行するカレ
ント実行プロセスと、メツセージセマホアへ連結
された、待ち状態のプロセスの両方をRNPサブ
ルーチンが更新する事が分る。
However, if the answer to the question in step 2557 is negative, indicating that the message was not a V instruction in the semaphore, then step 2559 adds a new head pointer and a new count field to the semaphore in main memory to change the Q/PR/S. Will write. and step 2552 mentioned earlier.
is executed next. Therefore, for this branch, it can be seen that the RNP subroutine updates both the current executing process executing the message semaphore's V instruction and the waiting process connected to the message semaphore.

RNPサブルーチンが終ると、ステツプ251
4の図25aへの戻りが実行され、そこでカレン
ト実行プロセスの命令カウンタが増分される。ス
テツプ2515で、デスパツチヤが呼び出され、
前に更新されたプロセスが準備キユーに移転され
る事が出来、また、デスパツチヤがプロセスは実
行状態にある、つまり1にセツトされるコンテス
ト・イインジケータに応答すると決定出来る。
When the RNP subroutine is finished, step 251
A return to FIG. 25a at 4 is executed, where the instruction counter of the current executing process is incremented. At step 2515, the dispatcher is called,
A previously updated process can be moved to the ready queue, and the dispatcher can determine that the process is in the running state, ie, responsive to the contest indicator being set to one.

セマホア初期設定命令 前に、セマホアの構造と、プロセス同期を可能
にする為に使われるフイールド各々を説明した。
セマホアが、異常に多くの事象発生割合い保持、
例えばメツセージセマホア用メツセージと、非メ
ツセージセマホア用資源(リソース)、を示せ
ば、データ・プロセサ内に危険状況が発生するか
もしれない。例えば、メツセージセマホアについ
ては、これが大量のメツセージを受け、その為同
量のメツセージ・リンクを必要とするなら、図1
5,17,18に示されたSDセグメント内自由
メツセージ・リンクは、同SDセグメント内の他
のメツセージセマホアへ供給される事が出来な
い。この状況は、例えば、通信用構造物内の故障
を示しているかもしれない。セマホアが適切に機
能している事を保証する為に、又はこれに替つ
て、セマホアをその元の状態に戻す為には、セマ
ホア初期設定命令(SECIN)が使われる。この
命令はセマホアを、そのカウント・フイールド
SCTをゼロ又は非メツセージセマホアについて
は、初め意図されたリソースの数に応答出来る値
へセツトする事によつて、前に決定された状態へ
移転する。
Semaphore Initialization Instructions Previously, we explained the structure of a semaphore and each of the fields used to enable process synchronization.
Semaphore maintains an abnormally high event occurrence rate,
For example, presenting a message for a message semaphore and a resource for a non-message semaphore may create a dangerous situation within the data processor. For example, for a message semaphore, if it receives a large number of messages and therefore requires the same amount of message links, then Figure 1
The intra-SD segment free message links shown at 5, 17, and 18 cannot be fed to other message semaphores within the same SD segment. This situation may, for example, indicate a failure within the communications structure. To ensure that the semaphore is functioning properly, or alternatively to return the semaphore to its original state, the semaphore initialization instruction (SECIN) is used. This instruction sets the semaphore to its count field.
For non-message semaphores, setting the SCT to zero or to a value responsive to the originally intended number of resources transfers to the previously determined state.

セマホアの負SCTフイールドは、セマホアに
連結れたプロセスの数を示す事は前に示した。
It was previously shown that the negative SCT field of a semaphore indicates the number of processes connected to the semaphore.

SECIN命令は、それに連結されたプロセスを
持つセマホアは初期設定しない。このオペレーシ
ヨンがプロセス自体を破壊するからである。セマ
ホアへ連結されたプロセス各々が待ち状態にあ
り、事象発生を持つているので、この結果にな
る。SECIN命令はこの事象を供給しない為、プ
ロセスは従つて準備キユーに移転され得ない。従
つて、プロセスは誤定義状態になり、プロセサに
認められないであろう。この様に、プロセスが実
行するように意図されたジヨブ(仕事単位)は、
遂行されないだろうし、後のプロセスのオペレー
シヨンは禁止されるだろう。
The SECIN instruction does not initialize a semaphore that has processes attached to it. This is because this operation destroys the process itself. This result occurs because each process connected to the semaphore is in a wait state and has an event occurring. Since the SECIN instruction does not supply this event, the process cannot therefore be transferred to the prepare queue. Therefore, the process will be misdefined and will not be recognized by the processor. Thus, the job (unit of work) that a process is intended to perform is
It will not be performed and subsequent process operations will be prohibited.

更に詳しくは、メツセージセマホアについて
は、セマホアのSCTフイールドは除々にゼロへ
セツトされ、Q/M/Sを空きにし、それに連結
されたメツセージとメツセージ・リンク全てを解
放する。SCTフイールドはポジシヨン・ナンバ
に合わせて初期設定される事はないが、これは未
知のメツセージをキユーに追加する事が必要にな
るからである。しかし、この状況は、資源を認識
するかも知れない非メツセージセマホアには適用
されない。資源の決定済みナンバをプロセス用に
利用する事は可能である。その結果、利用出来る
資源のナンバを、初期設定で非メツセージセマホ
アのSCTフイールドに置く事は可能で、プロセ
スは必要なこれらの資源を使う事が出来る。
More specifically, for a message semaphore, the semaphore's SCT field is gradually set to zero, freeing the Q/M/S and releasing all messages and message links connected to it. The SCT field is not initialized to the position number because it would be necessary to add an unknown message to the queue. However, this situation does not apply to non-message semaphores that may recognize resources. It is possible to use determined numbers of resources for processes. As a result, it is possible to place the numbers of available resources in the SCT fields of non-message semaphores by default, and processes can use these resources as needed.

これらの特色は、SECIN命令を実行する際に
行われる機能を述べた図27aと27bを見れ
ば、更に良く理解されるだろう。
These features may be better understood by looking at Figures 27a and 27b, which describe the functions performed in executing the SECIN instruction.

図20には、セマホアデスクリプタ展開用の汎
用サブルーチンが示されている。このセマホアデ
スクリプタ持ち出しサブルーチン2000はオペ
レーシヨン・コード、補コード、及びSECIN命
令のアドレス・シラブルに応答する。SECIN命
令のオペレーシヨン・補コードに応答して、ステ
ツプ2022でSECINサブルーチンに分岐が行
われた。従つて、図27aのSECINサブルーチ
ンに入ると、セグメントデスクリブタ、セマホア
デスクリブタ、及びセマホアそのものがメイン・
メモリから持ち出され、あるかもしれないエラー
のチエツクをされる。SECINサブルーチンはセ
マホアそのもので機能する。
FIG. 20 shows a general-purpose subroutine for expanding semaphore descriptors. This semaphore descriptor fetch subroutine 2000 is responsive to the operation code, complement code, and address syllable of the SECIN instruction. In response to the operation complement code of the SECIN instruction, a branch is made to the SECIN subroutine at step 2022. Therefore, upon entering the SECIN subroutine of Figure 27a, the segment descriptor, semaphore descriptor, and semaphore itself are
It is brought out of memory and checked for possible errors. The SECIN subroutine works on the semaphore itself.

更に詳しくは、ステツプ2701でセマホアの
SCTフイールドがテストされ、それがゼロより
大きいか、等しいかを決定される。ゼロより小さ
ければ、これはセマホアに連結されたプロセスは
ない事を示す。SECIN命令はプロセスのキユー
を持つセマホアは変更しない。これが、これらの
プロセスの後オペレーシヨンを禁止するからであ
る。従つて、SCTがゼロより小さければ、違法
信号初期設定例外2702が起こる。しかし、
SCTフイールドがゼロより大、又はゼロに等し
かつたら、ステツプ2703が実行され、セマホ
アのSTAGフイールド妥当性をテストする。
STAGフイールド・コード化は前の図16に示さ
れている。ステツプ2704では、これは非メツ
セージセマホアかという質問が行われる。STAG
フイールドが、これは非メツセージセマホアであ
ると示せば、ステツプ2705への分岐が行われ
る。
For more details, in step 2701 the semaphore
The SCT field is tested to determine if it is greater than or equal to zero. If less than zero, this indicates that there are no processes attached to the semaphore. The SECIN instruction does not change the process's queued semaphore. This is because it prohibits operations after these processes. Therefore, if SCT is less than zero, an illegal signal initialization exception 2702 occurs. but,
If the SCT field is greater than or equal to zero, step 2703 is executed to test the validity of the semaphore's STAG field.
The STAG field encoding is shown above in FIG. At step 2704, a question is asked if this is a non-message semaphore. STAG
If the field indicates this is a non-message semaphore, a branch is taken to step 2705.

非メツセージセマホアのSECIN命令について
は、SECIN命令を実行しているプロセスの汎用
レジスタは、ナンバNをロードされた。非メツセ
ージセマホアは、幾つかの資源を識別し得るの
で、実行プロセスの汎用レジスタにロードされた
ナンバは、初めセマホアによつて表示されるよう
に意図された資源のナンバに等しいかもしれな
い。従つて、ステツプ2705では、前に設定さ
れた汎用レジスタの内容がテストされ、その値が
ゼロより小さいか決定される。答が肯定なら、負
カウントは不可能、つまり負資源のナンバ、を示
すから、不法セマホア初期設定例外2705aが
発生する。
For a non-message semaphore SECIN instruction, the general purpose register of the process executing the SECIN instruction was loaded with number N. Since a non-message semaphore may identify several resources, the number loaded into the executing process's general register may be equal to the number of the resource originally intended to be represented by the semaphore. Therefore, in step 2705, the contents of the previously set general purpose register are tested to determine if its value is less than zero. If the answer is affirmative, the illegal semaphore initialization exception 2705a occurs because negative counting is impossible, that is, it indicates a negative resource number.

しかし、ステツプ2705に対する答が否定な
ら、ステツプ2706で、汎用レジスタにストア
された値がテストされ、それがセマホアの最大カ
ウント・フイールドSMCより小さいか決定され
る。汎用レジスタのナンバは、SCTフイールド
のナンバになるはずなので、図16で表された要
件が起用される。SCTカウントは、メモリ空所
統御の助けとなる為には、SMCカウントに等し
いか、より小さい事が必要であつたという事が思
い出される。従つて、SCTカウントの方が高け
れば、保持する事を意図されたより多くの資源が
セマホアにあるであろうから、違法状況が信号に
存在する。この状況になつたなら、セマホアが使
われるたびに、例外条件が生成される。その結
果、汎用レジスタ内のナンバがSMCフイールド
より大きければ、違法セマホア初期設定例外27
05aが発生する。
However, if the answer to step 2705 is negative, then in step 2706 the value stored in the general purpose register is tested to determine if it is less than the semaphore's maximum count field SMC. Since the number of the general-purpose register should be the number of the SCT field, the requirements shown in FIG. 16 are used. It will be recalled that the SCT count needed to be less than or equal to the SMC count to aid in memory space control. Therefore, if the SCT count is higher, an illegal situation exists at the signal because there will be more resources in the semaphore than it was intended to hold. If this situation were to occur, an exception condition would be generated every time the semaphore was used. As a result, if the number in the general register is greater than the SMC field, then the illegal semaphore initialization exception 27
05a occurs.

しかし、汎用レジスタの値がセマホア最大カウ
ント・フイールドより小さいか、等しいと仮定す
ると、ステツプ2707で、セマホアの初期設定
された情報はそのメイン・メモリ場所へ書き込ま
れる。更に詳しくは、セマホアのSCTフイール
ドは汎用レジスタの内容を受け取り、ゼロまた
は、汎用レジスタが示す正ナンバのどちらかにセ
ツトされる。つまりプロセス・キユー・ヘツド・
ポインタ、32から47ビツト迄が、この非メツセー
ジセマホアに連結されたプロセスのキユーがない
為、ゼロに等化される。そして最後に、セマホア
のV命令を実行したプロセスがないので、TEP
フイールド、48から63ビツト迄、がゼロに等化さ
れる。セマホアが今、初期設定されたので後の結
果として起こり、その結果、前に成巧しセマホア
上V命令が無視される。従つて、非メツセージセ
マホアが初期設定され、今は、それに向けられる
P又はV命令のどちらかに必要な情報を含んでい
る。
However, assuming the value of the general purpose register is less than or equal to the semaphore maximum count field, in step 2707 the semaphore's initialized information is written to its main memory location. More specifically, the SCT field of the semaphore receives the contents of the general register and is set to either zero or the positive number indicated by the general register. In other words, the process queue head
The pointer, bits 32 through 47, are equalized to zero because there is no queue of processes connected to this non-message semaphore. And finally, since there is no process that executed the semaphore V instruction, TEP
The field, bits 48 through 63, are equalized to zero. A later result occurs because the semaphore has now been initialized, so that previously executed V commands on the semaphore are ignored. Therefore, a non-message semaphore has been initialized and now contains the information necessary for either a P or V instruction directed to it.

セマホアを初期設定すると、SECIN命令を実
行しているプロセス用の命令カウンタをステツプ
2708が増分し、ステツプ2709の次の命令
が実行される。
After initializing the semaphore, step 2708 increments the instruction counter for the process executing the SECIN instruction, and the next instruction in step 2709 is executed.

ステツプ2709の質問に対する答が否定であ
つたなら、つまりアドレスされたセマホアがメツ
セージセマホアだつたなら、セマホアにキユーさ
れている全メツセージ・リンクをSECIN命令が
取り除く。更に詳しくは、ステツプ2710は、
状態レジスタ1311内の条件コードを3の値へ
セツトする。セマホアカウンタが元々は0である
と分れば、この条件コード3は、命令の終りに残
る。次いで、2711がメツセージセマホアの
SCTフイールドをテストし、SCTフイールドが
ゼロに等しいか、つまりメツセージ・リンクがセ
マホアに連結されているかを決定する、何もなけ
れば、つまり答が肯定なら、メツセージセマホア
のメツセージ・キユー・テイル・ポインタ・フイ
ールドMQTPとメツセージ・キユー・ヘツド・
ポインタ・フイールドHQHPがテストされ、それ
らが何かのメツセージ・リンクを示しているか決
される。ステツプ2711が何もないと示したの
で、両フイールドともゼロを持つているはずであ
る。続いて、SECIN命令を実行しているプロセ
ス用の命令カウンタが、ステツプ2708を介し
て再び増分され、次の命令が実行される。従つ
て、SCTフイールドがすでにゼロなら、SECIN
命令によつて取り除かれるメツセージはなく、3
の条件コードがこの状況を示す。
If the answer to the question in step 2709 is negative, that is, the addressed semaphore is a message semaphore, then the SECIN instruction removes all message links queued to the semaphore. More specifically, step 2710 includes:
Set the condition code in status register 1311 to a value of 3. If the semaphore counter is found to be originally zero, this condition code of 3 remains at the end of the instruction. Next, 2711 is the message semaphore.
Test the SCT field and determine if the SCT field is equal to zero, that is, the message link is connected to the semaphore; if none, that is, the answer is positive, then the message queue tail of the message semaphore Pointer field MQTP and message queue head
Pointer fields HQHP are tested to determine if they point to any message links. Both fields should contain zero since step 2711 indicated there were none. The instruction counter for the process executing the SECIN instruction is then incremented again via step 2708 and the next instruction is executed. Therefore, if the SCT field is already zero, SECIN
No message is removed by command, 3
The condition code indicates this situation.

しかし、SCTカウントがゼロに等しければ、
つまり質問2711に対する答が否定なら、
SCTカウントはゼロより大きい事が分り、セマ
ホアに連結されたメツセージを持つメツセージ・
リンクはない。その結果、図27bステツプ27
13への分岐が行われる。ステツプ2714で
は、メツセージセマホアのMQHPとMQTPフイ
ールドがテストされる。セマホアへ連結されたメ
ツセージ・リンクがあるため、MQHPとMQTP
両方はゼロに等しく、8の倍数でなければならな
い。ステツプ2714でセマホアの合法性をテス
トした後、図24bに示されたサブルーチン
FLSC2401への分岐が行われる。このサブル
ーチンは自由リンクセマホアが図16Dの設計コ
ンストレイント(束縛力)内にある事を確認する
為にこれをチエツクするのみならず、スクラツ
チ・パツド、メモリ場所WDB,WDC,WDDへ
自由リンクセマホアの3語をストアする。この自
由リンクセマホアは解放するメツセージ・リンク
を受けるであろう。
But if the SCT count is equal to zero,
In other words, if the answer to question 2711 is negative,
The SCT count is found to be greater than zero, and the message
There are no links. As a result, FIG. 27b step 27
A branch to 13 is taken. At step 2714, the MQHP and MQTP fields of the message semaphore are tested. MQHP and MQTP because there is a message link connected to the semaphore
Both must be equal to zero and must be multiples of 8. After testing the legitimacy of the semaphore in step 2714, the subroutine shown in Figure 24b
A branch to FLSC2401 is made. This subroutine not only checks the free-link semaphore to ensure that it is within the design constraints of Figure 16D, but also scratch pads the three free-link semaphores to memory locations WDB, WDC, and WDD. Store words. This free link semaphore will receive the free message link.

ステツプ2715のサブルーチンFLSC240
1を呼び出した後、図20のスクラツチ・パツド
場所WC4にストアされたセマホアのカウント・
フイールドは、1つ減分され、スクラツチ・パツ
ド・メモリ場所WC7へ移転される。セマホアか
らのメツセージ・リンクが解放されるであろう事
が予想される為にこれが行なわれる。ステツプ2
716で、セマホアのMQHPフイールドによつ
て指向されたメツセージ・リンクは、見つけ出さ
れてスクラツチ・パツド場所W31へ移転され
る。このメツセージ・リンクは、セマホア、Q/
M/S、のメツセージのキユーから解放されるメ
ツセージ・リンク。
Subroutine FLSC240 of step 2715
1, the semaphore count stored in the scratch pad location WC4 in Figure 20 is
The field is decremented by one and moved to scratch pad memory location WC7. This is done because it is expected that the message link from the semaphore will be released. Step 2
At 716, the message link directed by the semaphore's MQHP field is located and relocated to scratch pad location W31. This message link is semaphore, Q/
Message link released from M/S's message queue.

解放されるはずのメツセージ・リンクと、自由
にされたメツセージ・リンクを受ける自由リンク
セマホア両者を取得すると、ステツプ2717で
ハードウエア・ゲートがロツクされ、システム危
険オペレーシヨンが実行されつつある事を示す。
このシステム危険オペレーシヨンは自由リンクセ
マホアとメツセージ・リンクを持つセマホア両者
のメイン・メモリ内再書き込みである。前に図2
2Eで示されたRMLサブルーチン・ステツプ2
214によつて、これが行われる。サブルーチン
RMLは、メツセージ・リンクの次リンク・フイ
ールドを変える事によつてQ/M/Sからのメツ
セージ・リンクを非キユー化し、その結果、それ
は自由リンクセマホアキユー、Q/ML/FLSへ
連結される。加えて、RMLはメツセージセマホ
アのフイールドを更新するので、解放されたメツ
セージ・リンクは最早Q/M/Sへ連結されてい
ない。これに含まれるのは、新らしいセマホアカ
ウント・ステツプ2715で展開されたNSCTを
スクラツチ・パツド場所WC4へ書き込む事と、
MQHPをQ/M/S上の次メツセージ・リンク
を示すように更新する事である。この時点では、
Q/M/S上の初めのメツセージ・リンクは解放
されている。
Once both the message link to be released and the free link semaphore to receive the freed message link are obtained, the hardware gate is locked at step 2717, indicating that a system risk operation is being performed.
This system-critical operation is a rewrite in main memory of both free-linked semaphores and semaphores with message links. Figure 2 before
RML subroutine step 2 shown in 2E
This is done by 214. subroutine
RML unqueues the message link from Q/M/S by changing the next link field of the message link, so that it is free link semaphore queued and concatenated to Q/ML/FLS. be done. Additionally, the RML updates the fields of the message semaphore so that the released message link is no longer connected to the Q/M/S. This includes writing the NSCT expanded in the new semaphore account step 2715 to the scratch pad location WC4;
The purpose is to update MQHP to indicate the next message link on Q/M/S. At this point,
The initial message link on the Q/M/S is free.

自由メツセージ・リンクは2718で自由リン
クセマホアへ供給されているので、自由リンクセ
マホアのチヤンネル・カウント、つまり80から95
ビツト迄がゼロより小さいかという質問が次に行
われる。ステツプ2718のこの質問は、取得さ
れたばかりの自由メツセージをI/Oプロセスが
待つているか決定する。CCTカウントがゼロよ
り小さければ、I/Oプロセスは自由メツセー
ジ・リンクを待つていたので、ステツプ2719
から2721迄が実行される。ステツプ2719
では、状態レジスタ1311内の条件コードが2
にセツトされ、IOオペレーシヨンは自由なメツ
セージ・リンクを受けた事を示す。ステツプ27
20では、RLCMサブルーチンが実行される。
RLCMサブルーチンはシユミレートされたV命令
を行う事によつて、IOプロセスにメツセージリ
ンクを移転する。
Since the free message link is fed to the free link semaphore at 2718, the channel count of the free link semaphore is 80 to 95.
A question is then asked whether up to bits is less than zero. This question in step 2718 determines whether the I/O process is waiting for the free message that was just retrieved. If the CCT count is less than zero, then step 2719 indicates that the I/O process was waiting for a free message link.
The steps from 2721 to 2721 are executed. Step 2719
Then, the condition code in the status register 1311 is 2.
is set to indicate that the IO operation has received a free message link. Step 27
At 20, the RLCM subroutine is executed.
The RLCM subroutine transfers the message link to the IO process by executing a simulated V command.

RLCMサブルーチンを終了すると、2721分
岐が実岐され、新らしい状態のセマホアを再検査
出来るようになる。従つて、ステツプ2722
で、セマホアのSCTカウントが今ゼロに等しい
かという質問が行われる。等しければ、つまりセ
マホアには追加メツセージ・リンクが連結されて
いなければ、ステツプ2712によつてセマホア
の合法性がテストされ、実行プロセス用の次の命
令が実行される。等しくなければ、セマホアから
の別のメツセージ・リンクは、ステツプ2713
での分岐によつて示された様に解放される。
Upon completion of the RLCM subroutine, branch 2721 is taken and the new state of the semaphore can be re-examined. Therefore, step 2722
The question is then asked whether the semaphore's SCT count is now equal to zero. If so, and the semaphore has no additional message links attached to it, step 2712 tests the legitimacy of the semaphore and executes the next instruction for the executing process. If not equal, another message link from the semaphore is returned in step 2713.
is released as indicated by the branch at .

しかし、ステツプ2713の質問への答が否定
であつたら、1つの条件コードがセツトされ、メ
ツセージ・リンクはQ/ML/FLSへ移転された
事を示す。次にステツプ2725で、自由リンク
セマホアカウント、FLSCTフイールド、がゼロ
より小さいかという質問が行われる。この質問は
自由リンクセマホア、Q/PR/FLS、にプロセ
スのキユーがあるか、つまりプロセスがV命令を
試みたが失敗し、Q/PR/FLSへ連結された待
ち状態へ置かれたかを決定する。この時点で、メ
ツセージ・リンクは解放されている事が分る。従
つて、V命令を実行しようとして失敗したプロセ
スは、自由メツセージ・リンクが自由リンクセマ
ホアへ追加された後、そうする事が出来るかもし
れない。従つて、ステツプ2727での質問に対
する答が肯定なら、サブルーチンFAR2513
が実行される。この持ち出し、準備サブルーチン
は前に図25bで述べられているが、本質的に待
ち状態を準備状態とQ/PR/RDYへ置き、その
結果、それがメツセージ付きセマホアそのV命令
を再び試る事が出来るようになる。従つて、
SECIN命令によつて解放されたばかりの自由メ
ツセージ・リンクは、前に試られたV命令を遂行
する為に今使われる事が出来る。
However, if the answer to the question in step 2713 is negative, a condition code is set indicating that the message link has been transferred to Q/ML/FLS. Next, in step 2725, a question is asked whether the free link semaphore account, FLSCT field, is less than zero. This question determines whether there is a process queue on the free link semaphore, Q/PR/FLS, that is, the process attempted a V instruction, failed, and was placed in a wait state connected to Q/PR/FLS. . At this point, you can see that the message link has been released. Therefore, a process that attempts to execute a V instruction and fails may be able to do so after a free message link is added to the free link semaphore. Therefore, if the answer to the question at step 2727 is affirmative, subroutine FAR2513
is executed. This fetch and prepare subroutine, previously described in Figure 25b, essentially puts the wait state into the prepare state and Q/PR/RDY so that it is a semaphore with a message that retries its V command. You will be able to do it. Therefore,
The free message link just released by the SECIN command can now be used to carry out the previously attempted V command.

しかし、ステツプ2725での質問に対る答が
否定であつて、自由メツセージ・リンクを待つて
いるプロセスがない事を示したなら、自由にされ
たメツセージ・リンクは自由メツセージ・リン
ク・キユーQ/ML/FLSへ加えられるであろ
う。次いで、ステツプ2726は、条件コードが
状態レジスタ内でゼロにセツトされる事を可能に
する。続いて、ステツプ2722は、何らかの追
加メツセージ・リンクがセマホアへ連結されてい
ないかという質問を行う。再び、答が肯定なら、
つまりセマホアへ連結されたメツセージ・リンク
はもうなければ、セマホアの合法性がテストさ
れ、図27aに示された様に次の命令が実行され
る。メツセージセマホアへ連結されたメツセージ
がもうなくなる迄、同じステツプ、つまりステツ
プ2714から2725迄が実行される。
However, if the answer to the question in step 2725 is negative, indicating that there are no processes waiting for the free message link, then the freed message link Will be added to ML/FLS. Step 2726 then allows the condition code to be set to zero in the status register. Next, step 2722 asks if any additional message links are connected to the semaphore. Again, if the answer is yes,
That is, if there are no more message links connected to the semaphore, the legitimacy of the semaphore is tested and the next instruction is executed as shown in Figure 27a. The same steps, steps 2714 through 2725, are executed until there are no more messages linked to the message semaphore.

従つて、メツセージセマホアに関しては、
SECIN命令は、セマホア、Q/M/S、に連結
されたメツセージ・リンクが自由メツセージ・リ
ンク・キユーQ/ML/FLSへ解放される事を可
能にする。加えて、解放された各メツセージ・リ
ンクは前に不成功であつたV命令の為のポテンシ
ヤル・リンクを表示するので、情報はQ/PR/
FLSに連結された同じ数のプロセスを準備キユー
Q/PR/RDY内へ置く。更に、SCT、MQHP、
MQTPフイールドは全てゼロにセツトされる。
非メツセージセマホアについては、SECIN命令
はSCTフイールドをゼロ、又は正値のどちら
か、TEPフイールドをゼロにセツトする 中央処理装置を制御するプロセスへの外部事象の
一般的説明 プロセスとは、システム資源が割り付けられる
レベルでの作業単位である、という事は前に示さ
れた。活動状況には多くのプロセスがある反面、
一定の時点で中央処理装置を制御するのはただ1
つのプロセスである。このプロセスが、その手順
処理を続ける為に追加資源を必要とする場合は、
資源に関連したセマホア上のP命令を使う事によ
つて、その資源の要求を行う。次いでそのセマホ
アが資源の利用可能性を表示する。加えて、資源
利用可能性は、対応するセマホア、プロセスが資
源を待つているかを示すセマホアV命令によつて
供給される。プロセス間の一定の、いわゆる内部
事象に関連する情報を移転するにはPとV命令も
使う事が出来る(内部事象とは、中央処理装置に
知られたプロセスによつて生成、受理され、プロ
セス・コントロール・ブロツクス(PCBs)によ
つて描かれる事象である)。
Therefore, regarding the message semaphore,
The SECIN command allows a message link connected to a semaphore, Q/M/S, to be released to a free message link queue Q/ML/FLS. In addition, each message link released displays a potential link for a previously unsuccessful V command, so the information is Q/PR/
Place the same number of processes connected to FLS into the preparation queue Q/PR/RDY. Furthermore, SCT, MQHP,
MQTP fields are all set to zero.
For non-message semaphores, the SECIN instruction sets the SCT field to either zero or a positive value and the TEP field to zero. A process is a general description of an event external to a process that controls the central processing unit. It was shown earlier that a task is a unit of work at the level to which it is assigned. While there are many processes involved in the activity status,
Only one controller controls the central processing unit at a given time
There are two processes. If this process requires additional resources to continue processing its steps,
A request for a resource is made by using a P command on the semaphore associated with the resource. The semaphore then displays resource availability. In addition, resource availability is provided by a corresponding semaphore, the semaphore V instruction, which indicates whether the process is waiting for the resource. P and V instructions can also be used to transfer information related to certain so-called internal events between processes.・This is an event depicted by control blocks (PCBs).

前に、内部事象は、V命令実行を介して中央処
理装置を制御するプロセスによつて通信されると
述べられた。しかし、別の方法もあり、この方法
では外部事象は中央処理装置サブシステムに通信
される。この通信が必要とされる時は、システ
ム・イベント・ポーラと呼ばれる機構を介して、
データ・プロセス・マシーンのハードウエア/フ
アームウエアによつて要求がなされる。この要求
は、中央処理装置を制御する活動プロセスの命令
の処理と、外部事象の情報を活動プロセスに通信
するシユミレートされたV命令の結果との間で考
慮される。
Previously, it was stated that internal events are communicated by processes controlling the central processing unit via V-instruction execution. However, there is another method in which external events are communicated to the central processing unit subsystem. When this communication is required, it is done through a mechanism called the system event poller.
The request is made by the data processing machine hardware/firmware. This requirement is considered between the processing of instructions of the active process that controls the central processing unit and the results of the simulated V instructions that communicate information of external events to the active process.

命令間で処理されるこれら外部事象は、中央処
理装置を制御する活動プロセスに直接関係する。
更に詳しくは、これら事象は通常、I/Oインタ
ーラプト(割り込み)又は一定の例外条件であ
る。中央例外機構はこの例外条件についての通信
を行う。インターラプトに似た例条件またはシス
テム例外条件が発生する時は、シミユレートされ
たVオペレーシヨンが供給され、通信を中央処理
装置の適切なプロセスに伝送する。この通信はこ
の適切なプロセスに、例外条件の性質と原因につ
いて報告し、データ処理システムがその動作を続
ける事が出来るようにし、また、例外条件の相対
的重要性と、中央処理装置サブシステムの状態両
方によつて決定される時間に例外に関する適当な
行動を取る。
These external events processed between instructions are directly related to the active processes controlling the central processing unit.
More specifically, these events are typically I/O interrupts or certain exceptional conditions. A central exception facility communicates about this exception condition. When an interrupt-like or system exception condition occurs, a simulated V operation is provided to route the communication to the appropriate process on the central processing unit. This communication reports to the appropriate process the nature and cause of the exceptional condition so that the data processing system can continue its operation, and also reports the relative importance of the exceptional condition and the central processing unit subsystem. Take appropriate action regarding the exception at a time determined by both states.

例外事象についての通信処理に加え、システ
ム・イベント・ポーラはI/Oインターラプトに
ついての通信も可能にする。I/Oインターラプ
トはI/Oサブシステムから起こる全ての通信を
意味する。これには入・出力コントローラ
(IOC)と全周辺装置からの通信が含まれる。
In addition to handling communication about exceptional events, the system event poller also allows communication about I/O interrupts. I/O interrupt refers to all communications that occur from the I/O subsystem. This includes communications from input/output controllers (IOCs) and all peripherals.

I/Oサブシステムは非同期I/Oオペレーシ
ヨンを支持し、高度のオーバラツプを中央処理装
置実行へ供給する。従つて、I/Oサブシステム
には、中央処理装置メイン・メモリと、周辺サブ
システムに備えられた周辺装置どれかとの間の情
報移転に必要な全設備のセツトが含まれる。I/
Oサブシステムを詳細に述べる事は、これに先立
つ技術に知られる種々の具体化を利用するかもし
れないので行わない。しかし、中央処理装置への
メツセージの通報を示すために、I/Oサブシス
テムのオペレーシヨンを簡単に紹介する。
The I/O subsystem supports asynchronous I/O operations and provides a high degree of overlap to central processing unit execution. Accordingly, the I/O subsystem includes the entire set of facilities necessary for transferring information between the central processing unit main memory and any of the peripheral devices included in the peripheral subsystem. I/
A detailed description of the O subsystem will not be given as it may utilize various implementations known in the prior art. However, the operation of the I/O subsystem will be briefly introduced to illustrate the reporting of messages to the central processing unit.

更に詳しくは、I/Oサブシステムは中央処理
装置とは非同期的に働く。その結果I/Oサブシ
ステムは、下にチヤンネル・プログラムと呼ばれ
るその自有のプログラムを持つており、これは望
みのI/Oオペレーシヨンを実行する為のコマン
ド(指令)とアドレス情報の完全なセツトからな
つている。チヤンネルプログラムはチヤンネル・
プログラム・ヘツダから成り、プログラムが指向
される論理チヤンネルのチヤンネル・ナンバと、
チヤンネル・プログラムの基本ビルデイング・ブ
ロツクであるチヤンネル・コマンド・エントリが
含まれる。IOCのI/O装置から中央処理装置と
通信する為には、論理チヤンネルが使われる。論
理チヤンネルは、メイン・メモリと、I/Oサブ
システムのシングル周辺装置との間の概念的通信
パスである。ここで使われている様に、論理チヤ
ンネルは周辺装置に関する1ないしそれ以上のオ
ペレーシヨンを実行する為に使われる。
More specifically, the I/O subsystem works asynchronously with the central processing unit. As a result, the I/O subsystem has its own underlying program called a channel program, which contains a complete set of commands and address information to perform the desired I/O operation. It consists of a set. The channel program is
the channel number of the logical channel consisting of the program header and to which the program is directed;
Contains channel command entries, which are the basic building blocks of channel programs. Logical channels are used to communicate from the IOC's I/O devices to the central processing unit. A logical channel is a conceptual communication path between main memory and a single peripheral of an I/O subsystem. As used herein, a logical channel is used to perform one or more operations on a peripheral device.

I/Oサブシステムと中央処理サブシステムは
独立して働くので、チヤンネルプログラム実行の
間は、中央処理装置へ通信される必要がある幾つ
かの事象が発生するかもしれない。これら事象
は、チヤンネル・プログラム実行終了の間又は終
了の時に発生するかもしれない為、チヤンネル・
プログラムは割り込まれ、I/Oサブシステムが
チヤンネル・プログラムに対応するLCナンバを
含む事象通報メツセージを供給する。
Because the I/O subsystem and central processing subsystem work independently, during channel program execution several events may occur that need to be communicated to the central processing unit. These events may occur during or at the end of channel program execution, so
The program is interrupted and the I/O subsystem provides an event notification message containing the LC number corresponding to the channel program.

これらI/O通報メツセージは下記の事象を認
識出来る:まず、以下で中間(intermediate)又
は終端(termination)事象と呼ばれるチヤンネ
ル・プログラム実行に関する事象;次に、特定の
周辺装置には関係するが、以下に注目
(attention)事象と呼ばれるチヤンネル・プログ
ラムに直接関係しない事象;第3に、以下で物理
的(physical)チヤンネル例外、又はI/O誤動
作例外と呼ばれる。I/Oハードウエアどれかの
オペレーシヨン状況内変更を暗示する事象。後の
例外状況は本申し込み範囲外である。
These I/O report messages can recognize the following events: first, events related to channel program execution, hereinafter referred to as intermediate or termination events; second, related to specific peripheral devices; Third, events not directly related to the channel program, hereinafter referred to as attention events; third, hereinafter referred to as physical channel exceptions, or I/O malfunction exceptions. An event that implies a change in the operational status of any I/O hardware. The latter exceptional circumstances are outside the scope of this application.

I/O事象のメツセージ通報は次の様に、中央
処理装置内のプロセスに供給される。I/Oメツ
セージが認められると、システム・イベント・ポ
ーラと呼ばれる機構が起用さえ、擬似
(pseudo)プロセスとして機能する。この機構は
次に、メツセージが中央処理装置内のプロセスに
通信される事を可能にするメツセージセマホアの
シミユレートされたVオペレーシヨンを準備す
る。従つて、I/O割り込みは中央処理装置内の
プロセと同じ意味のプロセスとして見なされるか
もしれない。つまりこれらはメツセージセマホア
とシミユレートされた同期化プリミテイブを通し
て、中央処理装置のプロセスと通信する。加え
て、シミユレートされたVオペレーシヨンはちよ
うどV命令が、中央処理装置を制御するプロセス
に代つてメツセージを移転する様に、論理チヤン
ネルに代つてメツセージを移転する。
Message notifications of I/O events are provided to processes within the central processing unit as follows. When an I/O message is acknowledged, a mechanism called a system event poller is employed to act as a pseudo process. This mechanism then prepares a simulated V operation of the message semaphore that allows the message to be communicated to a process within the central processing unit. Therefore, I/O interrupts may be viewed as a process equivalent to a process within a central processing unit. That is, they communicate with central processing unit processes through message semaphores and simulated synchronization primitives. In addition, the simulated V operations transfer messages on behalf of logical channels, just as V instructions transfer messages on behalf of processes controlling a central processing unit.

I/O割り込みについては、I/Oサブシステ
ムは、メツセージが何らかのI/O事象により生
成された事を示すフロツプをセツトするシグナル
を供給する。この特殊シグナルは、事象通報メツ
セージが信号へキユー化されるのを待つている事
を示すものとして中央処理装置に認められる。セ
ツトされ、I/Oサブシステムと中央処理装置と
の間の界面(interface)であるこのフロツプは
以下でインターフエース・フロツプと呼ばれる。
このインターフエース・フロツプがセツトされる
と、シミユレートされたVオペレーシヨンを実行
されつつある事を中央処理装置が認識する。カレ
ント命令の終りに、図27に示したシステム・イ
ベント・ポーラが中央処理装置によつて入れられ
る。
For I/O interrupts, the I/O subsystem provides a signal that sets a flop indicating that a message was generated by some I/O event. This special signal is recognized by the central processing unit as an indication that an event notification message is waiting to be queued to a signal. This flop, which is set up and is the interface between the I/O subsystem and the central processing unit, will be referred to below as the interface flop.
Once this interface flop is set, the central processing unit recognizes that a simulated V operation is being executed. At the end of the current instruction, the system event poller shown in FIG. 27 is entered by the central processing unit.

システム・イベント・ポーラ機構 システム・イベント・ポーラとはハードウエア
機構であり、図27に示された一組のオペレーシ
ヨンを準備する。システム・イベント・ポーラ
は、当該技術に熱達した人々に良く知られている
方法で履行されるハードウエアもしくはフアーム
ウエアのどちらでも良い。システム・イベント・
ポーラのオペレーシヨンの機能的説明は次の如く
である。
System Event Poller Mechanism The System Event Poller is a hardware mechanism that prepares the set of operations shown in FIG. The system event poller can be either hardware or firmware implemented in a manner well known to those skilled in the art. system event
A functional description of Polar's operation is as follows.

ステツプ2700で、活動(active)プロセス
によつて実行されているカレント命令の終りに、
システム・イベント・ポーラは中央処理装置によ
つて入れられる。システム・イベント・ポーラに
よつて最初に行われる質問は、最終命令の実行の
間に起きたかもしれない外部事象がポール
(poll)されるかどうかという事である。ハード
ウエア、ゲートがロツクされているかチエツクす
るステツプ2702がこれを行う。上に述べた様
に、ハードウエアがロツクされていると、それは
危険オペレーシヨンが行われている事を示す。ハ
ードウエア・ゲートをセツトする事によつて、1
つの分割不能動作が供給される。この分割不能動
作は、例えば、情報をメイン・メモリに、もしく
はメツセージをセマホアへ移転する。ハードウエ
ア・ゲートがロツクされていると、つまりそれが
2値の1にセツトされていると、ステツプ270
4への分岐が行われ、そこで今活動しているプロ
セスの次命令が実行される。従つて、ハードウエ
ア・ゲートがロツクされている時は、今実行され
ている処置はI/O事象の通信よりも重要である
という決定がデータ処理システムによつてなされ
る。
At step 2700, at the end of the current instruction being executed by the active process,
The system event poller is populated by the central processing unit. The first question asked by the system event poller is whether external events that may have occurred during the execution of the final instruction are polled. Step 2702, which checks if the hardware gate is locked, does this. As stated above, locked hardware indicates that an unsafe operation is occurring. By setting the hardware gate, 1
Two indivisible operations are provided. This indivisible operation may, for example, transfer information to main memory or a message to a semaphore. If the hardware gate is locked, that is, it is set to a binary 1, then step 270
A branch to 4 is taken, where the next instruction of the currently active process is executed. Therefore, when the hardware gate is locked, a determination is made by the data processing system that the action currently being performed is more important than the communication of I/O events.

しかし、ハードウエア・ゲートがロツクされて
いなければ、ステツプ2706へ分岐がなされ、
システム・モードが入れられる。このステツプ2
706は補助メモリ1317aのフロツプを初期
設定し、これがシステム・コントロール・オペレ
ーシヨンが行われる事を示す。システム・イベン
ト・ポーラはこのシステム・コントロール・オペ
レーシを行う機構である。更に詳しくは、システ
ム・イベント・ポーラは、全てのI/O割り込み
と例外条件をポールし、これら事象の処理を可能
にする。
However, if the hardware gate is not locked, a branch is made to step 2706;
System mode is entered. This step 2
706 initializes the flop of auxiliary memory 1317a, indicating that a system control operation is to be performed. The system event poller is the mechanism that performs this system control operation. More specifically, the system event poller polls all I/O interrupts and exception conditions and enables processing of these events.

システム2708では、システム・イベント・
ポーラは、I/Oサブシステムへのフロツプをそ
れがセツトされているか知る為にチエツクする、
セツトされていれば、I/O割り込みが未決で、
ステツプ2710への分岐が実行される。このス
テツプは、図28に示され述べられたI/Oイベ
ント・ハンドラ機構を働かせる。
In the system 2708, the system event
Paula checks the flop to the I/O subsystem to see if it is set.
If set, an I/O interrupt is pending and
A branch to step 2710 is taken. This step activates the I/O event handler mechanism shown and described in FIG.

しかし、インターフエース・フロツプがセツト
されていないと、ステツプ2712で、例外条件
が検出されたかを決定する為のテストが行われ
る。それが発生していれば、ステツプ2714の
中央側外機構への分岐が行われる。中央例外機構
は例外条件が処理される事を可能にし、例外ハン
ドラに報告を送る。
However, if the interface flop is not set, a test is performed at step 2712 to determine if an exceptional condition has been detected. If that has occurred, the branch to the center-lateral mechanism of step 2714 is taken. A central exception facility allows exceptional conditions to be handled and sends reports to exception handlers.

I/Oイベント・ハンドラと中央例外機構両方
については、ポールされた特定の事象をこれらが
完了すると、システム・イベント・ポーラ、更に
詳しくはステツプ2708への戻る分岐が行われ
る。この動作の為、全I/O割り込みと全例外条
件は、中央処理装置内の今活動しているプロセス
の次命令が実行される前に処理される。
For both the I/O event handler and the central exception facility, once they have completed the particular event that was polled, a branch is taken back to the system event poller and, more particularly, to step 2708. Because of this operation, all I/O interrupts and all exception conditions are handled before the next instruction of the currently active process within the central processing unit is executed.

I/Oイベント・ハンドラと中央例外機構はそ
の外部事象処理作業の一部としてのシミユレート
されたVオペレーシヨンの準備をするので、1つ
又はそれ以上のメツセージが中央処理装置内の適
切なプロセスに移転されているかもしれない。こ
のシミユレートされたVオペレーシヨンを介して
メツセージを受けたかもしれない各セマホアの構
成次第で、中央処理装置内の1つ又はそれ以上の
プロセスがセマホアメツセージ・キユー(Q/
M/S)から準備キユー(Q/PR/RDY)へ移
転されたかもしれない。その結果、ステツプ27
16でデスパツチヤが入れられる。図14に示さ
れたこのデスパツチヤはどちらのプロセスが中央
処理装置のコントロールを受けるべきか決定す
る。従つて、外部事象からのメツセージは中央処
理装置の内部メツセージ統合(integeate)され
る。準備キユー内プロセスの優先性次第で、より
重要な通信の方が最初に取り扱われる。明らか
に、全メツセージは条件付きで中央処理装置へ供
給される。次に、中央処理サブシステム内にその
時存在する在件により、より大きな重要性を持つ
メツセージが取り扱われる。
The I/O event handler and central exception facility prepare for simulated V operations as part of its external event handling tasks so that one or more messages are sent to the appropriate process within the central processing unit. It may have been moved. Depending on the configuration of each semaphore that may have received a message via this simulated V operation, one or more processes within the central processing unit may queue the semaphore message (Q/
M/S) may have been transferred to the preparation queue (Q/PR/RDY). As a result, step 27
At 16, Despatches are added. This dispatcher, shown in FIG. 14, determines which processes should be subject to central processing unit control. Therefore, messages from external events are integrated with the central processing unit's internal messages. Depending on the priority of the processes in the preparation queue, more important communications are handled first. Obviously, all messages are conditionally fed to the central processing unit. Messages of greater importance are then handled depending on what is present within the central processing subsystem at the time.

I/Oイベント(事象)ハンドラ ここで図28を参照すると、システム・イベン
ト・ポーラが未決のI/Oイベント・メツセージ
の存在を検出する時に、I/Oイベント・ハンド
ラ2710が入れられる。セツトされようとし、
事象用論理チヤンネルのキユー、つまり図29b
に示されたQ/LC/EVQにエントリが入れられ
る原因に交替でなる割り込みフロツプがこの事を
示すであろう。これらイベント・メツセージは中
央処理サブシステムのメイン・メモリにあるメツ
セージ信号上へキユーされる。I/Oイベント・
ハンドラ2710によつて行なわれる機能を論じ
る前に、シミユレートされたVオペレーシヨンに
関するI/Oサブシステムに使われる表を述べ
る。
I/O Event Handler Referring now to FIG. 28, an I/O event handler 2710 is entered when the system event poller detects the presence of a pending I/O event message. trying to be set,
The queue of logical channels for events, i.e., Figure 29b
This will be illustrated by the alternating interrupt flops that cause entries to be placed in the Q/LC/EVQ shown in FIG. These event messages are queued onto message signals located in the main memory of the central processing subsystem. I/O event・
Before discussing the functions performed by handler 2710, we will discuss the tables used by the I/O subsystem for simulated V operations.

I/Oサブシステムによつて事象通報メツセー
ジが生成された後、それらは論理チヤンネル表エ
ントリ(LCTE)の複数を持つ適切な論理チヤン
ネル表にストアされる。各LCTEはシミユレート
されたVオペレーシヨンによつて中央処理装置内
のプロセスに通信される事象通報メツセージを含
んでいる。各LCTEは事象通報キユーQ/LC/
EVQ内に2項目を持つ事が出来る。I/Oサブ
システムには全論理チヤンネル用に、一個のQ/
LC/EVQキユーがある。少くとも1個のメツセ
ージが示されると、キユーが形成され、I/O事
象発生を認識する割り込みフロツプをセツトする
1個が生成される。キユーが空なら、信号は示さ
れず、割り込みフロツプが論理ゼロにセツトされ
る。割り込みフロツプが論理1なら、システム・
イベント・ポーラは割り込みフロツプが論理0へ
セツトされるQ/LC/EVQを空にする為に必要
とするのと同様のシミユレートされたVオペレー
シヨンが行われる事を可能にする。
After event notification messages are generated by the I/O subsystem, they are stored in the appropriate logical channel table with a plurality of logical channel table entries (LCTEs). Each LCTE includes an event notification message that is communicated to a process within the central processing unit by a simulated V operation. Each LCTE has an event notification queue Q/LC/
You can have two items in EVQ. The I/O subsystem has one Q/O for all logical channels.
There is LC/EVQ queue. If at least one message is presented, a queue is formed and one is generated that sets an interrupt flop to recognize the occurrence of an I/O event. If the queue is empty, no signal is asserted and the interrupt flop is set to logic zero. If the interrupt flop is logic 1, the system
The event poller allows a simulated V operation similar to that required by the interrupt flop to empty Q/LC/EVQ to be set to logic zero.

I/OサブシステムによつてLCTEへ伝送され
るメツセージは到着順、つまり最初に入つたもの
が最初に出る(F1F0)ようにキユーQ/LC/
EVQに配置される。各々のシミユレートされた
Vオペレーシヨンはキユー化されたメツセージに
幾つかの機能を施こす。まず、初めの事象通報メ
ツセージをQ/LC/EVQから取り除く。2番目
に、シミユレートされたVオペレーシヨンが試る
事は、セマホアシステム名、つまり中間もしくは
終端メツセージ用のGi、Diと注目メツセージ用
のGa、Daによつて与えられる様な関連セマホア
へこのメツセージをキユー化する事、もしくはそ
のセマホアによつて指定される待機中のプロセス
にメツセージを送る事のどちらかである。3番目
にメツセージがセマホアへキユー化される事が出
来るか、又は待機中プロセスに送られる事が出来
ると、メツセージはQ/LC/EVQと対応する
LOTEの適切な記憶領域から撤去される。4番目
に、関連SDセグメント内の自由メツセージ・リ
ンク不足によつて、メツセージが適切なセマホア
へキユー化されるのが邪魔されると、メツセージ
はQ/LC/EVQから撤去され、元々メツセージ
と関連したセマホア(Gi、Di)又は(Ga、Da)
に対応するSDセグメントの自由メツセージ・リ
ンクセマホアへリンクされる。メツセージは
LCTEの記憶領域に残るが、メツセージ連結は変
更される、つまり自由リンクセマホアに関係する
LCTEは新らしいキユー、Q/LC/ELS、つま
り自由リンクセマホア上の論理チヤンネルのキユ
ーにキユー化される。これら両キユーQ/LC/
EVQとQ/LC/FLSはLCTEを示す図29aが
説明される時に、より容易に理解されるであろ
う。
Messages transmitted by the I/O subsystem to the LCTE are queued in the order of arrival, that is, first in, first out (F1F0).
Placed in EVQ. Each simulated V operation performs some function on the queued message. First, remove the first event notification message from Q/LC/EVQ. Second, the simulated V operation attempts to assign this to the associated semaphore as given by the semaphore system name, Gi, Di for intermediate or terminal messages, and Ga, Da for the attention message. Either queuing the message or sending the message to the waiting process specified by the semaphore. Third, if a message can be queued to a semaphore or sent to a waiting process, the message corresponds to Q/LC/EVQ.
Removed from LOTE's appropriate storage area. Fourth, if a lack of free message links in the associated SD segment prevents a message from being queued to the appropriate semaphore, the message is removed from the Q/LC/EVQ and the message was originally associated with the message. Semaphore (Gi, Di) or (Ga, Da)
is linked to the free message link semaphore of the corresponding SD segment. The message is
remain in the LCTE's storage, but the message concatenation is modified, i.e., it relates to a free link semaphore
LCTE is queued to a new queue, Q/LC/ELS, a logical channel queue on a free link semaphore. Both Q/LC/
EVQ and Q/LC/FLS will be more easily understood when Figure 29a showing LCTE is explained.

I/Oシステムは特別な表を使い、その1つは
メイン・メモリに通信パスを供給する種々論理チ
ヤンネルに対応する。I/O表は絶対アドレス0
の後に置かれるが、前に図12に示されたベー
ス・アドレス・レジスタ(BAR)の前である。
図29aに示されたとLCTEは図29bに見られ
る様に、論理チヤンネル表中の唯一のエントリで
ある。
The I/O system uses special tables, one of which corresponds to the various logical channels that provide communication paths to main memory. I/O table has absolute address 0
, but before the base address register (BAR) previously shown in FIG.
The LCTE shown in Figure 29a is the only entry in the logical channel table, as seen in Figure 29b.

各論理チヤンネル表エントリは16語からなり、
チヤンネル・プログラム、中間又は事象終端メツ
セージ、及び注目メツセージを識別する情報に加
え、論理チヤンネルに関する情報をストアする為
に使われる。
Each logical channel table entry consists of 16 words,
It is used to store information about logical channels, as well as information identifying channel programs, intermediate or end-of-event messages, and messages of interest.

本発明の範囲内LCTEのこれら分野のみが下に
論じられている。従つて、プログラムとは別の情
報が語1にストアされ、最初のバイトにLC状
態、語1のバイト1から3迄に注目セマホアを含
んでいる。
Only those areas of LCTE within the scope of the present invention are discussed below. Therefore, information other than the program is stored in word 1, the first byte contains the LC status, and bytes 1 to 3 of word 1 contain the semaphore of interest.

語8−11に、通信される中間又は事象終端メ
ツセージが示されている。更に詳しくは、語8の
最切の2バイトは、論理チヤンネル表エントリが
あるキユーを認識する次リンク(NL)ポインタ
である。前に述べた様にこれは、メツセージが初
めに表へ移転される時に発生する事象通報キユー
Q/LC/EVQ、又は適切なセマホアにメツセー
ジをストア出来ない結果であり自由リンクセマホ
アのどちらかであるかもしれない。語8のバイト
2は図16で論じたI/Oオペレーシヨン用リー
ズン(reascn)フイールドに対応する事象タイプ
を定義する。リーズン・フイールドはI/Oオペ
レーシヨンが終了される方式を認識し、正常終端
か異常終端用の情報を含んでいるかもしれない。
語8の第4バイトでは、このバイトの最初の半分
は、I/Oオペレーシヨンに述べられたチヤンネ
ル・プログラム優先性に対応するメツセージ優先
性である。優先的に決定されたキユーを持つメツ
セージセマホアへこのメツセージが渡されると、
フイールドがキユーQ/M/Sのメツセージ位置
を認識する。次の半バイトはこのメツセージは
I/Oオペレーシヨンの結果であるという事を認
識するセマホアタグである。LCTEの語9は論理
チヤンネル・ナンバ(LC)と、本発明の範囲外
の他情報を認識する特定の情報を含んでいる。語
10は中間又は終端事象通報メツセージを生成し
たチヤンネル・コマンド、エントリ・ポインタを
含んでいる。語11はI/O装置と、IOC両方の
状態を含むかもしれない。
Words 8-11 indicate intermediate or event termination messages that are communicated. More specifically, the last two bytes of word 8 are the next link (NL) pointer that identifies the queue on which the logical channel table entry resides. As mentioned earlier, this is either an event reporting queue Q/LC/EVQ that occurs when a message is first transferred to the table, or a free link semaphore, which is the result of not being able to store the message in the appropriate semaphore. Maybe. Byte 2 of word 8 defines the event type corresponding to the reason (reascn) field for I/O operations discussed in FIG. The reason field recognizes the manner in which the I/O operation is terminated and may contain information for normal or abnormal termination.
In the fourth byte of word 8, the first half of this byte is the message priority corresponding to the channel program priority stated in the I/O operation. When this message is passed to the message semaphore with the priority determined queue,
Field recognizes message position of Q/M/S. The next half byte is a semaphore tag that recognizes that this message is the result of an I/O operation. LCTE word 9 contains specific information that recognizes the logical channel number (LC) and other information outside the scope of the present invention. Word 10 contains the channel command, entry pointer that generated the intermediate or terminal event notification message. Word 11 may include the status of both the I/O device and the IOC.

語8−11は、システム・アドレスGi,Diを
持つセマホアにシミユレートされたVオペレーシ
ヨンを介して移転されるであろうメツセージから
成る。語12−15は、LCTE表の語1で認識さ
れたシステム・アドレスGi、Diを示すセマホア
へ渡される注目メツセージから成る。
Words 8-11 consist of messages that would be transferred via a simulated V operation to a semaphore with system addresses Gi, Di. Words 12-15 consist of the attention message passed to the semaphore indicating the system address Gi, Di recognized in word 1 of the LCTE table.

初めの半語の注目メツセージ内に、LCTE内の
その場所と、キユーQ/LC/EVQかQ/LC/
FSにあるかを認識する次リンク・フイールド、
リーズン・フイールドは、つまり語12の3によ
つて、符号化/000/101によつて示される決定済
み終端メツセージを持つている。このフイールド
はこのセマホアメツセージは注目タイプのメツセ
ージであると認識する。第4バイトの初めの4ビ
ツトである優先フイールドは、最優先を示す付号
化/111へセツトされる。メツセージ・タグは中
間又は終端メツセージと同じである。なぜならこ
れはI/Oメツセージを示すからである。語13
では、初めの2バイトは前に述べられたメツセー
ジと同じであるが、最後の2バイトは注目メツセ
ージを供給する装置名を認識する。注目メツセー
ジは、特定周辺装置に関連するチヤンネル・プロ
グラム実行へは帰されない事象を述べるので、中
間又は終端事象で供給された常駐カウントとカレ
ンLCTEアドレス・フイールドは必要ない。しか
し、装置名は必要で、語13が装置を認識する。
語15は上に述べた語11と同じである。注目メ
ツセージについては、必要な情報全ては3語のみ
(ここに示す語12,13,15)で供給され
る。その為、最後の3バイト中に見つけられる中
間又は終端事象に関連するセマホアをストアする
には語14が使われる。
In the first half-word attention message, its location in LCTE and Q/LC/EVQ or Q/LC/
Next link field, which recognizes what is in the FS
The reason field has a determined termination message, indicated by the encoding /000/101, ie by the word 12 of 3. This field recognizes that this semaphore message is an attention type message. The priority field, the first four bits of the fourth byte, is set to the coding /111, indicating highest priority. A message tag is the same as an intermediate or terminal message. This is because it indicates an I/O message. Word 13
Now, the first two bytes are the same as the message described previously, but the last two bytes recognize the name of the device supplying the message of interest. Since the attention message describes an event that is not attributable to channel program execution associated with a particular peripheral, the resident count and current LCTE address fields supplied with intermediate or terminal events are not required. However, a device name is required and word 13 recognizes the device.
Word 15 is the same as word 11 described above. For the message of interest, all the necessary information is provided in only three words (words 12, 13, and 15 shown here). Therefore, word 14 is used to store the semaphore associated with the intermediate or terminal event found in the last three bytes.

この様に示された各LCTEエントリは、事象通
報キユー内に1ないしそれ以上の項目
(items)、つまり注目又は中間終端タイプ、もし
くはこの両方を先ず形成する。各エントリは、中
央処理装置内の1プロセスへの通信を必要とする
I/O事象の発生を表す。この通信は通告される
事象のタイプによつて語8−11又は12−15
によつて供給されるかもしれない。中間又は終端
メツセージについては、シミユレートされたVオ
ペレーシヨンはセマホアGa,Da上で行なわれ
る。従つて、システム名Gi,Diはチヤンネル・
プログラムに関連する全メツセージが渡される場
所であるセマホアを認識する。システム名Ga、
Daは特定周辺装置に関連する全メツセージが渡
される場所であるセマホアを認識する。
Each LCTE entry thus indicated initially creates one or more items in the event notification queue, ie of interest and/or intermediate termination type. Each entry represents the occurrence of an I/O event requiring communication to one process within the central processing unit. This communication will be sent in words 8-11 or 12-15 depending on the type of event being notified.
May be supplied by. For intermediate or terminal messages, simulated V operations are performed on semaphore Ga, Da. Therefore, the system names Gi and Di are channel
Recognize the semaphore, where all messages related to the program are passed. System name Ga,
Da recognizes a semaphore, where all messages related to a particular peripheral are passed.

図29bに、論理チヤンネル表エントリの複数
が示されている。LCTは全LCTEを含む為、Q/
LC/EVQとQ/LC/FLSが表されている。キユ
ーQ/LC/EVQは前に説明されているが、事象
通報メツセージ・キユーのエントリを含み、Q/
LC/EVQが持ち出される。図19aに示された
様に、スクラツチ・パツド・メモリ場所2Fにエ
ントリがあり、Q/LC/EVQのヘツドを認識す
る。この様に、このエントリはキユー内の初めの
LCTEエントリへのポインタである。この絶対ア
ドレスは場所2Eから持ち出され、そのアドレス
は初めの論理チヤンネル表エントリを呼び出すの
に使われる。ポインタは非同期I/Oサブシステ
ムがメツセージをキユー内へ置いた時に、スクラ
ツチ・パツド・メモリに書かれた。
A plurality of logical channel table entries are shown in Figure 29b. Since LCT includes all LCTE, Q/
LC/EVQ and Q/LC/FLS are shown. Queue Q/LC/EVQ, as previously described, contains entries for event notification messages and Q/LC/EVQ.
LC/EVQ is brought up. As shown in Figure 19a, there is an entry in scratch pad memory location 2F that recognizes the head of Q/LC/EVQ. In this way, this entry is the first entry in the queue.
A pointer to an LCTE entry. This absolute address is retrieved from location 2E and that address is used to call the first logical channel table entry. The pointer was written to scratch pad memory when the asynchronous I/O subsystem placed the message in the queue.

図28、ステツプ2802で、これは注目事象
かという質問が行われる。それが注目事象なら、
ステツプ2804で、メツセージが指向されるセ
マホアのGa、DaアドレスがLCTEから持ち出さ
れる。注目メツセージでなければ、ステツプ28
06で、メツセージが指向されるセマホアの
Gi、Di名が、LCTEの語14から持ち出される。
In FIG. 28, step 2802, a question is asked whether this is an event of interest. If it is a noteworthy event,
At step 2804, the Ga, Da address of the semaphore to which the message is directed is retrieved from the LCTE. If it is not an attention message, proceed to step 28.
06, the semaphore to which the message is directed.
The names Gi and Di are brought up from word 14 of the LCTE.

ステツプ2808で、キユーQ/LC/EVQか
らの初めのLCTEは、LE内のスクラツチ・パツ
ド・メモリ場所と、 をLCTE表の新らしいヘ
ツドを示すように変更する事によつて非キユー化
され、LCTE内の次リンク・フイールドが持ち出
される。従つて、LCTEエントリは取り除かれ、
そのメツセージは、システムGD名によつて示さ
れたメツセージセマホア上へ置かれる。ステツプ
2810では、メツセージはスクラツチ・パツ
ド・メモリ場所WC4からWC7迄に置かれる。
それが中間メツセージなら、語8−11はこれら
の場所へ移転されるが、それが、注目メツセージ
なら、語12−15がそこへ置かれる。
In step 2808, the initial LCTE from the queue Q/LC/EVQ is dequeued by changing the scratch pad memory location in the LE and to point to the new head of the LCTE table; The next link field in the LCTE is brought out. Therefore, the LCTE entry is removed and
The message is placed on the message semaphore indicated by the system GD name. At step 2810, the message is placed in scratch pad memory locations WC4 through WC7.
If it is an intermediate message, words 8-11 are moved to these locations, but if it is a message of interest, words 12-15 are placed there.

ステツプ2812では、メツセージは次に、シ
ミユレートされたVオペレーシヨンを介してシス
テム名によつて示される適切なセマホアへ移転さ
れる。Vオペレーシヨンが終了すると、システ
ム・イベント・ポーラが再び入れられ、そこへ、
もしあれば、次のLCTEエントリが移転される。
In step 2812, the message is then transferred via a simulated V operation to the appropriate semaphore indicated by the system name. When the V operation finishes, the system event poller is re-entered and there
The next LCTE entry, if any, is transferred.

この様に、図28は、中央処理装置内プロセス
との通信が必要な時に、事象通報メツセージに施
されるステツプの一覧表となつている。図20か
ら26迄に関連させると、メツセージを適切なプ
ロセスに変換する為に必要なオペレーシヨンを確
認する図30から32迄で、より詳しく図28に
示されたステツプは説明されるであろう。
Thus, FIG. 28 is a list of steps that are performed on an event notification message when communication with a process within the central processing unit is required. The steps shown in FIG. 28 will be explained in more detail in FIGS. 30-32 in conjunction with FIGS. 20-26 to identify the operations necessary to convert the message into the appropriate process. .

正SCTフイールドを持つセマホア上のシミユレ
ートされたVオペレーシヨン Vオペレーシヨンとは、メツセージがセマホア
と呼ばれる仲介ポイントへ移転する事が出来るよ
うにする、送りオペレーシヨンであるという事が
思い出される。このセマホアは、他のプロセスが
取り上げる迄、データをストアする。前に中央処
理装置をコントロールしているプロセスによつて
V命令は遂行された。情報を中央処理装置内のも
う1つのプロセス、又はプロセスの集合のどれか
へ送るという点では、シミユレートされたV命令
は殆んど同じである。中央処理装置をコントロー
ルするプロセスが擬似プロセス、つまりV命令を
実行するシステム・イベント・ポーラ機構、又は
中央例外機構のどちらかであるという点では、V
命令と異なる。VオペレーシヨンとV命令間に唯
一つの目標命令がある一方、この機構がメツセー
ジを移転しようと試れば、簡単にする為それはV
命令と呼ばれる。
Simulated V-Operation on a Semaphore with a Positive SCT Field It will be recalled that a V-operation is a forwarding operation that allows a message to be transferred to an intermediary point called a semaphore. This semaphore stores data until picked up by another process. The V instruction was previously executed by the process controlling the central processing unit. The simulated V instructions are nearly identical in that they send information to either another process or set of processes within the central processing unit. The V
Different from the command. While there is only one target instruction between a V operation and a V instruction, if this mechanism attempts to transfer a message, for simplicity it is
called a command.

システム・イベント・ポーラ機構によつて与え
られる、シミユレートされたVオペレーシヨンの
大きな特色は次の如くである: (1)中央処理装置をコントロールするプロセスに
よつて行われたプロセスの状態の更新と対比的
な、メツセージのパス成功時の論理チヤンネル状
態の更新、(2)自由メツセージ・リンク利用不能発
見時のQ/PR/FLSへのプロセスキユー化と対
比的な、関連SDセグメント内自由リンクセマホ
ア(Q/FL/FLS)に連結された自由メツセー
ジ・リンク利用不能と適切なセマホア上に待つプ
ロセスなしを発見した時のQ/LC/FLSへの論
理チヤンネルキユー化、(3)論理チヤンネル、カウ
ント(CCT)フイールドがゼロより小さい時の
関連SDセグメント内自由リンクセマホアのGフ
イールドのテスト。前に、図20から26迄で、
フイールドはテストされたがオペレーシヨンの説
明は与えられなかつたという事を示した。
The major features of simulated V operations provided by the system event poller mechanism are: (1) Updates to process state performed by processes controlling the central processing unit; (2) free link semaphore in the associated SD segment, as opposed to updating the logical channel state when a message passes successfully, and (2) queuing the process to Q/PR/FLS when a free message link is found unavailable. (3) logical channel queueing to Q/LC/FLS when finding a free message link connected to (Q/FL/FLS) unavailable and no process waiting on the appropriate semaphore; Testing the G field of a free link semaphore within the associated SD segment when the count (CCT) field is less than zero. Previously, in Figures 20 to 26,
The field indicated that it had been tested but no explanation of the operation was given.

加えて、I/O事象と例外条件に関しては、2
つの追加的差異が与えられた。初めの差異はシミ
ユレートされたVオペレーシヨンによつて供給、
パスされるメツセージの内容である。I/O割り
込みの為のメツセージ内容は図29とLCTE表説
明に関連して述べられた。第2に、セマホアのア
ドレスかPとV命令について述べられたものと異
る。各セマホアは名前を2つ、つまりローカル
(局所)SEG、SRA名とシステムとしてG、0名
を持つ事が出来る。中央処理装置をコントロール
するプロセスについては、信号を認識する為にロ
ーカルSEG、SRA名が使われた事が思い出され
る。中間、終端、注目名メツセージについては、
システム名GDが与えられている。
In addition, regarding I/O events and exception conditions, 2.
Two additional differences were given. The first difference is supplied by a simulated V operation,
This is the content of the message being passed. The message content for I/O interrupts was described in conjunction with FIG. 29 and the LCTE table description. Second, the address of the semaphore is different from that described for the P and V instructions. Each semaphore can have two names: the local SEG, SRA name and the system G,0 name. For processes controlling central processing units, it is recalled that local SEG and SRA names were used to recognize signals. For intermediate, terminal, and attention name messages,
The system name GD is given.

セマホアのシステム名は対応するSDセグメン
ト内のセマホアのアドレスGDである。図4,1
1,17に示されたように、Gセグメント表(G
表)はGセグメント・デスクリブタを含む為、こ
の結果になる。Gセグメント・デスクリブタは汎
用システム・セグメントを描写する。データ処理
システム内には唯一のGセグメント表のみなの
で、Gセグメント表のサイズとアドレスはG表語
(GTW)の内容について定義される。この語はシ
ステム・ベースのアドレスBAR+4に位置され
ている。やはりシステム・ベースにあるG表ポイ
ンタはG表の絶対アドレスを与える。このGセグ
メントを呼び出す際、GナンバがGセグメント表
へデイスプレースメントを与え、メツセージが指
向される適切なセマホア選択を可能にする。
The system name of a semaphore is the address GD of the semahore in the corresponding SD segment. Figure 4, 1
1, 17, the G segment table (G
Table) contains a G segment descriptor, so this is the result. The G segment descriptor describes a general purpose system segment. Since there is only one G segment table in the data processing system, the size and address of the G segment table are defined in terms of the contents of the G word (GTW). This word is located at system base address BAR+4. The G table pointer, also at the system base, gives the absolute address of the G table. When calling this G segment, the G number provides a displacement into the G segment table, allowing selection of the appropriate semaphore to which the message is directed.

図17に示す様に、システムG、D名はローカ
ルEG、SRA名から異つて展開されるので、シミ
ユレートされたV命令の開始は、JP名からのセ
マホアドレス展開とは、図20の異るエントリ・
ポイントで行われる。
As shown in Figure 17, the system G and D names are expanded differently from the local EG and SRA names, so the start of the simulated V instruction is different from the semaphore address expansion from the JP name in the entry shown in Figure 20.・
It is done in points.

更に詳しくは、図20は、PとV命令各々によ
つて有効化されるセマホアデスクリプタ持ち出し
ルーチンを描写している。このサブルーチンが起
用される時にはオペレーシヨン・コードは、シユ
ミレートされたV命令を示す命令持ち出しユニツ
ト1318へ置かれている。I/O割り込み、又
は例外条件にはシステム名が与えられているの
で、セマホアデスクリプタのテストと持ち出しは
必要ない。その結果、セマホア持ち出しルーチン
は、メツセージが展開された後指向されるセマホ
アの絶対アドレスと、図20bのステツプ201
9で入れられる。この絶対アドレスはG、Dシス
テム名である。ステツプ2020で、図16bに
示された様なメツセージセマホアの両語は、メイ
ン・メモリから持ち出され、スクラツチ・パツ
ド・メモリ場所WC4とWC5へ移転される。V
命令に対するのと同じシステム2021から20
26迄が実施され、システム2026での質問に
対する答が肯定、従つて図25aのシステム25
00が実行される。
More specifically, FIG. 20 depicts the semaphore descriptor fetch routines enabled by each of the P and V instructions. When this subroutine is invoked, the operation code has been placed in the instruction fetch unit 1318 which represents the simulated V instruction. Since the I/O interrupt or exception condition is given a system name, there is no need to test and bring up the semaphore descriptor. As a result, the semaphore fetching routine determines the absolute address of the semaphore to which the message is expanded and step 201 of FIG. 20b.
Can be entered at 9. This absolute address is the G,D system name. At step 2020, both words of the message semaphore as shown in FIG. 16b are brought out of main memory and moved to scratch pad memory locations WC4 and WC5. V
Same system as for orders 2021-20
26 are carried out, and the answer to the question in system 2026 is affirmative, so system 25 in FIG.
00 is executed.

0より小さい、つまりデータを利用出来なかつ
た時にセマホアから前に要求されたプロセス、
SCTカウントをメツセージセマホアが持つてい
ると仮定すると、ステツプ2508への分岐が実
行される。シミユレートされたV命令はメツセー
ジセマホア指向されるので、システム2508へ
の答は否定になるであろう。その結果、ステツプ
2510が実行され、シミユレートされたV命令
はテスト命令ではないので、否定応答を受けるで
あろう。セマホアのSCTフイールドが正の時は
シミユレートされたV命令は否定されぬかもしれ
ないので、それはテスト命令にはなれないかもし
れない。
less than 0, i.e. the process previously requested by the semaphore when the data was not available;
Assuming the message semaphore has an SCT count, a branch to step 2508 is taken. Since the simulated V instruction is message semaphore directed, the answer to system 2508 will be negative. As a result, step 2510 will be executed and will receive a negative response since the simulated V instruction is not a test instruction. Since the simulated V instruction may not be rejected when the semaphore's SCT field is positive, it may not be a test instruction.

サブルーチンFAR、ステツプ2513で、ス
クラツチ・パツド・メモリ場所WE4からWE7
へすでに移転されているメツセージは、セマホア
(Q/PR/S)上で待つているプロセスのキユー
のヘツドで、プロセスの汎用レジスタGF0−GR
3へ渡される。加えて、サブルーチンFARはメ
ツセージを受けるプロセス・コントロール・ブロ
ツクを変え、その結果、ステツプ2515のデス
パツチヤはそのプロセスを準備キユーQ/PR/
RDYへ置く事が出来る。このプロセスの優先性
は、中央処理装置をコントロールするプロセスの
目的に対して決定力を持つようになるであろう。
Subroutine FAR, step 2513, scratch pads memory locations WE4 to WE7.
Messages that have already been transferred to the process's queue head waiting on the semaphore (Q/PR/S) are stored in the process' general registers GF0-GR.
Passed to 3. In addition, subroutine FAR changes the process control block that receives the message so that the dispatcher in step 2515 sends the process to the prepare queue Q/PR/
It can be placed in RDY. This process priority will become decisive for the purpose of the process controlling the central processing unit.

ステツプ2513でFARサブルーチンが終了
した後、ステツプ2514が実行される前にテス
トが行われるであろう。このステツプは補助メモ
リ1317内のフロツプをテストし、シミユレー
トされたV命令がI/O既シミユレートVオペレ
ーシヨンかを決定するであろう。フロツプがセツ
トされていれば、Q/LC/EVQへ戻る分岐がな
され、スクラツチ・パツド・メモリ場所LE内の
ヘツドポインタによつて指向された次論理チヤン
ネル表がそこへ持ち出される。
After the FAR subroutine completes in step 2513, a test will be performed before step 2514 is executed. This step will test the flop in auxiliary memory 1317 to determine if the simulated V instruction is an I/O simulated V operation. If the flop is set, a branch is taken back to Q/LC/EVQ and the next logical channel table pointed to by the head pointer in the scratch pad memory location LE is brought there.

非正SCTフイールドを持つセマホア上のシミ
ユレートされたVオペレーシヨン 図25aのステツプ2500で、答が否定で、
セマホアのSCTフイールドがゼロより大きいか
等しかつたなら図26aに示されたV正サブルー
チンへの分岐が実行される。この時点で、セマホ
アはメツセージ、つまりQ/PR/Sを待つプロ
セスのキユーを持つていず、そのSCTフイール
ド・カウントがゼロより大きければ、メツセジ
Q/M/Sのキユーを持つているかもしれない事
が分る。
Simulated V Operation on a Semaphore with a Non-Positive SCT Field In step 2500 of Figure 25a, if the answer is negative,
If the semaphore's SCT field is greater than or equal to zero, a branch to the V-positive subroutine shown in FIG. 26a is executed. At this point, the semaphore does not have a queue of processes waiting for messages, i.e., Q/PR/S, and may have a queue of messages, Q/M/S, if its SCT field count is greater than zero. I understand.

図26aで、ステツプ2600の初めの質問
は、これはメツセージセマホア上のV命令なの
で、否定応答を受けるであろう。その結果、ステ
ツプ2605と2608が実行される。ステツプ2608で、
補助メモリ1317内フロツプは、これがシミユ
レートされたV命令であるかを見分ける為にテス
トされる。もしそうであれば、ステツプ2608
aと、図30に示されたサブルーチンSVPへの分
岐が行われる。このサブルーチンはメツセージが
セマホアとキユーQ/M/S上へ渡される事を可
能にする。
In Figure 26a, the first question in step 2600 will receive a negative response since this is a V command on the message semaphore. As a result, steps 2605 and 2608 are executed. At step 2608,
The flop in auxiliary memory 1317 is tested to determine if this is a simulated V instruction. If so, step 2608
a, a branch to the subroutine SVP shown in FIG. 30 is made. This subroutine allows messages to be passed on semaphore and queue Q/M/S.

図30に示されたシミユレートされたV正サブ
ルーチンについては、何らかの自由メツセージ・
リンクを利用出来るか、つまり自由リンクセマホ
アのFLQPが0に等しいかという質問をステツプ
3000が行う。既に、SDセグメントの自由リンク
セマホアは図26aのステツプ2401で示され
たFLSCサブルーチンによつて持ち出されてい
る。FLQPフイールドはスクラツチ・パツド場所
WCCにストアされており、ステツプ3000に
よつて今テストされる。利用可能な自由メツセー
ジ・リンクがあれば、つまり答が否定なら、シユ
ミレートされたVオペレーシヨンはV命令とまつ
たく同じ様に遂行される、つまり図26bにステ
ツプ2612として示されたVPのBへの分岐が
行われる。この分岐によつて、LCTE又は中央例
外機構のどちらかで形成されたメツセージはスク
ラツチ・パツド場所WE4からWE7迄から、利用
可能な自由メツセージ・リンクへ移転される。続
いて、このメツセージ・リンクはセマホアキユー
Q/M/Sへ移転され、そこで情報を要求するプ
ロセスを待ちうける。従つて、この分岐によつ
て、シミユレートされたV正サブルーチンはメツ
セージをセマホアへ移転する。
For the simulated V-positive subroutine shown in FIG.
Stepping through the question of whether the link is available, i.e. whether the FLQP of a free link semaphore is equal to 0.
3000 do. Already, the SD segment's free link semaphore has been brought up by the FLSC subroutine shown in step 2401 of Figure 26a. FLQP field is a scratch pad location
It has been stored in WCC and will now be tested by step 3000. If there is a free message link available, that is, the answer is negative, then the simulated V operation is performed exactly like a V command, i.e., to B of VP, shown as step 2612 in Figure 26b. Branching is performed. This branch transfers messages created at either the LCTE or the central exception facility from scratch pad locations WE4 to WE7 to available free message links. This message link is then transferred to the semaphore Q/M/S where it awaits the process requesting the information. Therefore, this branch causes the simulated V-regular subroutine to transfer the message to the semaphore.

図26bに示されたステツプ2622で、次の
命令は、もしあれば次のシミユレートされたVオ
ペレーシヨンを実行するシステム・イベント・ポ
ーラへの戻り(areturn)になるであろう。シミ
ユレートされたV命令がそれ以上なければ、中央
処理装置をコントロールするプロセスの次命令の
実行が行われる。
At step 2622, shown in Figure 26b, the next instruction will be a return to the system event poller which will perform the next simulated V operation, if any. If there are no more simulated V instructions, execution of the next instruction of the process controlling the central processing unit takes place.

自由メツセージ・リンク利用不能時のセマホア上
のシミユレートされたVオペレーシヨン しかし、図30aでの質問に対する答が肯定
で、利用可能な自由メツセージ・リンクがない事
を示せば、ステツプ3004が次に実行される。
ステツプ3004は、これがI/Oオペレーシヨ
ンかどうかという質問を行う。もし否定なら、そ
れは中央例外機構のオペレーシヨンであるはずで
ある。中央例外機構によつて供給されるメツセー
ジをキユー化する自由メツセージ・リンクはない
ので、ステツプ3006内のミツシング
(missing)メツセージ・リンク例外が発生す
る。図27のステツプ2706で入られようとし
ているシステム・モードの結果としてのシステム
例外がこれである為、ステツプ3006は、モデ
ル従属診断法(model dependent cliagnostics)
を用意するシステム・チエツク状態になる。従つ
て、ステツプ3006は例外条件用のシミユレー
トされたV命令を終了させる。次に論ずる残りの
発表はI/O既シミユレートVオペレーシヨンの
みに向けられている。
Simulated V Operation on Semaphore When Free Message Link is Unavailable However, if the answer to the question in Figure 30a is affirmative, indicating that there is no free message link available, then step 3004 is executed next. be done.
Step 3004 asks if this is an I/O operation. If negative, it should be a central exception mechanism operation. Since there are no free message links to queue the messages provided by the central exception facility, a missing message link exception in step 3006 occurs. Since this is a system exception as a result of the system mode being entered in step 2706 of FIG. 27, step 3006 performs model dependent diagnostics.
The system enters a system check state to prepare the system. Therefore, step 3006 terminates the simulated V instruction for the exception condition. The remaining publications discussed below are directed only to I/O simulated V operations.

ステツプ3004への答が肯定なら、つまり補
助メモリ内フロツプがセツトされてI/Oオペレ
ーシヨンを示していれば、ステツプ3008でG
システム名がメイン・メモリから持ち出され、ス
クラツチ・パツド場所WC0へ移転される。FLS
セマホアは、図16bに示された様に、ビツト7
2から79迄にGフイールド・ビツト80から9
5迄にCCTフイールドを持つ語第2番(Word
No.2)を含んでいる事が思い出される。前に述
べられたPとV命令については、I/Oオペレー
シヨンが含まれず、その為に論理チヤンネルまた
はシステム名は初期設定されなかつたので、これ
らフイールドは使われなかつた。しかし、論理チ
ヤンネルを自由リンクセマホアへキユー化する今
は使われるであろう。その結果、このSD(又は
Gセグメント)用に自由リンクセマホアによつて
自由メツセージ・リンクが得られると、G名によ
つて示されるメツセージは自由リンクセマホアの
自由メツセージ・リンクに移転される。
If the answer to step 3004 is affirmative, that is, the flop in auxiliary memory is set to indicate an I/O operation, step 3008 returns
The system name is brought out of main memory and moved to the scratch pad location WC0. FLS
The semaphore is bit 7 as shown in Figure 16b.
G field bits 80 to 9 from 2 to 79
Word number 2 with CCT field up to 5 (Word
No. 2) is included. For the P and V instructions previously mentioned, these fields were not used because no I/O operations were involved and therefore no logical channel or system name was initialized. However, it will now be used to queue a logical channel into a free link semaphore. As a result, when a free message link is obtained by a free link semaphore for this SD (or G segment), the message indicated by the G name is transferred to the free message link of the free link semaphore.

ステツプ3010では、スクラツチ・パツド場
所WDOにストアされた自由リンクセマホアのチ
ヤンネル・カウント(CCT)がテストされる。
CCTフイールドが0に等しければ、つまり質問
に対する答が肯定なら、ステツプ3012で、ス
テツプ3008で持ち出されたGシステム名、つ
まり語2のビツト72から79迄が自由リンクセ
マホアのGフイールドへ書き込まれる。これは、
自由メツセージ・リンクを要求した論理チヤンネ
ルのGセグメント・ナンバを認識する。しかし、
CCTフイールドがゼロより小さく、既にI/O
既シミユレートVオペレーシヨンが同じSDセグ
メント上で行れた事を示し、その時には利用可能
な自由メツセージ・リンクがなかつたなら、ステ
ツプ3014で、ステツプ3008で持ち出され
たGシステム名は、自由リンクセマホア内Gシス
テム名と比較される。各SDセグメントはそれ自
身の独特G−アドレスを持つているので、300
8で持ち出されたGシステム名は、自由リンクセ
マホア内Gシステム名と同一でなければならな
い。セマホア上で行なわれるVオペレーシヨンを
シミユレートしたかもしれないSDセグメント内
のこのセマホアは異るかもしれない一方、これは
異るデイスプレースメント・フイールド、つまり
によつて示されるであろうが、同じGシステ
ム名が優るであろう。従つて、Gシステム名が自
由リンクセマホア内システム名に等しくなけれ
ば、ステツプ3014aの違法セマホア例外が発
生する。
In step 3010, the channel count (CCT) of the free link semaphore stored in the scratch pad location WDO is tested.
If the CCT field is equal to zero, that is, the question is answered in the affirmative, then in step 3012 the G system name retrieved in step 3008, bits 72 through 79 of word 2, is written to the G field of the free link semaphore. this is,
Recognize the G segment number of the logical channel that requested the free message link. but,
CCT field is less than zero and already I/O
If a previously simulated V operation indicates that it was performed on the same SD segment, and there were no free message links available at the time, then in step 3014 the G system name retrieved in step 3008 is stored in the free link semaphore. G system name. Since each SD segment has its own unique G-address, the 300
The G-system name brought out in step 8 must be the same as the G-system name in the free link semaphore. While this semaphore in the SD segment may simulate a V operation performed on a semaphore, this would be indicated by a different displacement field, i.e., but the same G system name would be superior. Therefore, if the G system name is not equal to the system name in the free link semaphore, an illegal semaphore exception occurs in step 3014a.

しかし、Gシステム名に何ら問題がないと仮定
すると、ステツプ3016でハードウエア・ゲー
トがロツクされ、危険システム・オペレーシヨン
が行われる事を示す。ステツプ3018で、スク
ラツチ・パツド・メモリ場所WCDにストアされ
た自由リンクセマホアのCCTフイールドは、1
つ減分される。CCTフイールドの絶対値は自由
メツセード・リンクを持つ論理チヤンネルのその
ナンバを示す。ステツプ3020で、スクラツ
チ・パツド・メモリ場所WCBからWCD迄の内容
は次いでメイン・メモリと、FLSCサブルーチン
を介して展開された自由リンクセマホアアドレス
へ移転され、その結果、自由リンクセマホアの現
在の状態が示されるようになる。ステツプ302
2ではサブルーチンEWLCが実行される。この
EWLCサブルーチンは、キユーQ/LC/FLSへ
の論理チヤンネルのメツセージをキユー化する
が、図30bに示されている。
However, assuming there is no problem with the G system name, the hardware gate is locked at step 3016, indicating that an unsafe system operation is to occur. In step 3018, the CCT field of the free link semaphore stored in the scratch pad memory location WCD is 1.
is decremented by one. The absolute value of the CCT field indicates that number of logical channels with free messaged links. In step 3020, the contents of scratch pad memory locations WCB to WCD are then transferred to main memory and the free-link semaphore address expanded via the FLSC subroutine, so that the current state of the free-link semaphore is will be shown. Step 302
In step 2, subroutine EWLC is executed. this
The EWLC subroutine, which queues messages on logical channels to queues Q/LC/FLS, is shown in Figure 30b.

この時に、キユーQ/LC/EVQから持ち出さ
れたメツセージは、SDセグメント内自由メツセ
ージ・リンク不足の為、関連セマホア、Gi、Di
又はGa、Daのどちらかへキユー化される事が出
来なかつた事が分る。加えて、このSDセグメン
トの自由リンクセマホアへのメツセージを一時的
に連想する為のステツプは、Gシステム名をFLS
セマホアへ供給する事と、ステツプ3010から
3020迄に示された様なCCTカウントを減分
する事によつて達成されている。ここで、P命令
がSDセグメント内メツセージ・リンク利用可能
にするようにメツセージはストアされねばなら
ず、ストアされたメツセージは新らしく利用可能
になつた自由メツセージ・リンクに移転される事
が出来る。
At this time, the message taken out from Q/LC/EVQ is not available in related semaphore, Gi, Di due to lack of free message link in SD segment.
Or, it can be seen that it could not be queued to either Ga or Da. In addition, the steps for temporarily associating a message to this SD segment's free link semaphore are to change the G system name to FLS
This is accomplished by feeding the semaphore and decrementing the CCT count as shown in steps 3010 through 3020. Here, the message must be stored so that the P command makes available the message link within the SD segment, and the stored message can be transferred to the newly available free message link.

この特色については、キユーQ/LC/FLSが
形成され、Gセグメント内自由メツセージ・リン
クが利用可能になる迄、メツセージを待ち状態に
ストアする。このキユーQ/LC/FLSはV命令
用のQ/PR/FLSと同じ機能を果たす。キユー
Q/LC/FLSは、SDセグメントいずれかの自由
メツセージ・リンクを待つ全ての論理チヤンネル
をリンクするから、メイン・メモリ内の全自由リ
ンクセマホア用には唯一つのQ/LC/FLSがあ
る。このQ/LC/FLSは、SDセグメント内の
種々自由リンクセマホアを認識する異るシステム
名の複数を持つている。
For this feature, a queue Q/LC/FLS is formed to store messages in a pending state until a free message link within the G segment becomes available. This queue Q/LC/FLS performs the same function as the Q/PR/FLS for V instructions. Since the queue Q/LC/FLS links all logical channels waiting for a free message link on any SD segment, there is only one Q/LC/FLS for all free link semaphores in main memory. This Q/LC/FLS has several different system names that recognize the various free link semaphores within the SD segment.

キユーQ/LC/FLSは、図19aに示された
様に場所2Fのスクラツチ・パツド・メモリで供
給されたポインタと絶対アドレスを持つている。
この語はキユーのヘツドとテイル両方を認識す
る。キユー内のどちらのリンクが自由リンクセマ
ホアと関連するか決定する時は、自由リンクセマ
ホア内にストアされたG名が、Q/LC/FLS内
のG名と比較される。リンクがQ/LC/FLSか
ら取り除かれる時は、前のLCTE内次リンク・フ
イールドが変更され、その結果、取り除かれたリ
ンクによつて指向されるリンクをそれが認識す
る。LCTEが偶然初めのリンクであれば、場所F
のヘツド・ポインタが変更される。
Queue Q/LC/FLS has a pointer and absolute address provided in the scratch pad memory at location 2F as shown in Figure 19a.
This word recognizes both the head and tail of Kyu. When determining which link in the queue is associated with a free link semaphore, the G name stored in the free link semaphore is compared to the G name in the Q/LC/FLS. When a link is removed from a Q/LC/FLS, the previous LCTE intra-next link field is modified so that it recognizes the link pointed to by the removed link. If LCTE happens to be the first link, location F
The head pointer of is changed.

図30b、ステツプ3030で、Q/LC/
EVQから持ち出された論理チヤンネル表エント
リはQ/LC/FLSにキユー化される。このキユ
ーにすでにエントリがあつたなら、このキユーは
FIFC方式(fashion)で前のLCTEエントリへ加
えられるであろう。前のLCTEエントリがなかつ
たなら、このキユーがスタートされるであろう。
従つて、ステツプ3030で、メイン・メモリ内
の絶対アドレスのテイル・ポインタは、Q/
LC/FLSでキユー化されたばかりの新らしい
LCTEが今キユーのテイルである事を示すように
変更されるであろう。
In FIG. 30b, step 3030, Q/LC/
Logical channel table entries retrieved from EVQ are queued to Q/LC/FLS. If this queue already has an entry, this queue is
It will be added to the previous LCTE entry in FIFC fashion. If there was no previous LCTE entry, this queue would be started.
Therefore, in step 3030, the tail pointer of the absolute address in main memory is set to Q/
It seems to be new and has just been made into a queue in LC/FLS.
The LCTE will now be changed to indicate that it is Kyuu's tail.

ステツプ3032では、論理チヤンネル状態バ
イトが更新される。メツセージがたとえ適切なプ
ロセスに渡されていなくても、この状態バイト
は、シユミレートされたV命令が実際に行われた
事を示すように変更される。メツセージがQ/
LC/FLSにキユー化されていない為、この様な
結果になる。しかし、メツセージは適切なプロセ
スに到達しなかつたのであるから、状態バイトは
シミユレートされたV命令遂行が不成功であつた
事を示すであろう。
At step 3032, the logical channel status byte is updated. Even though the message has not been passed to the appropriate process, this status byte is modified to indicate that the simulated V instruction was actually executed. The message is Q/
This is the result because it is not queued in LC/FLS. However, since the message did not reach the appropriate process, the status byte will indicate that the simulated V instruction execution was unsuccessful.

これはEWLCを終了させるから、ステツプ3
024へ戻る分岐が実行される。ステツプ302
4はハードウエア・ゲートをロツク解放にし、デ
ータの書き込みと移転の分割不能動作が行われた
事を示す。ステツプ3026では、もしあれば、
次のシミユレートされたVオペレーシヨンが行わ
れる。
This will terminate the EWLC, so step 3
A branch back to 024 is taken. Step 302
4 indicates that the hardware gate is unlocked and an indivisible operation of writing and transferring data has been performed. In step 3026, if any,
The next simulated V operation is performed.

フリー・メツセージ・リンクが使用できる場合、
Q/LC/FLSのセマフオアに対するメツセージ
の除去 Q/LC/FLSが与えられたり、生成されたと
ころで、キユーに結びついたメツセージをどのよ
うにして適当なセマフオアもしくはセマホアに移
すかを説明しなければならない。この状態が生ず
るためにはメツセージ・セマフオアにP命令を与
えて、メツセージ・リンクを切る必要がある。こ
のフリーになつたメツセージ・リンクは、SDセ
グメントのフリー・リンク・セマフオアにもどさ
れ、ここでQ/LC/FLSに含まれたメツセージ
をストアするのに使用される。これができるの
は、フリー・リンク・セマフオアに0以下の
OCTフイールドをもつ場合である。
If a free message link is available,
Removing Messages from a Q/LC/FLS Semaphore Once a Q/LC/FLS is given or created, it must be explained how to move the message associated with the queue to the appropriate semaphore or semaphore. . For this state to occur, it is necessary to give a P command to the message semaphore to break the message link. This now free message link is returned to the SD segment's free link semaphore where it is used to store the message contained in the Q/LC/FLS. This can be done if the free link semaphore has a value less than or equal to 0.
This is the case with an OCT field.

もつと具体的な例として、図22aを引用しな
がら、メツセージを伴なつたセマフオアに対する
P命令を説明しよう。メツセージ・リンクをフリ
ーにするような状況が望まれるので、メツセー
ジ・セマフオアのSCTカウントが1よりも大き
い、ステツプ2200からステツプ2205およ
びステツプ2207のブランチを考慮する。P命
令はこのセマフオアで実行され、セマフオアから
のメツセージを受けて、メツセージ・リンクをフ
リーにする。ステツプ2205において、もし
SCTフイールドのカウントが0に等しければ、
フリー・メツセージ・リンクを使用できないこと
に注意しなければならない。しかし、この状況は
後で考慮しよう。
As a more specific example, the P command for a semaphore accompanied by a message will be explained with reference to FIG. 22a. Since we want a situation where the message link is free, we consider branches from step 2200 to step 2205 and step 2207 where the SCT count of the message semaphore is greater than one. The P command is executed in this semaphore, receives a message from the semaphore, and frees the message link. In step 2205, if
If the SCT field count is equal to 0, then
It must be noted that free message links cannot be used. But let's consider this situation later.

簡単のために、図22bのステツプ2218に
達したと仮定しよう。これにより、ワードNo.2
の中のフリー・リンク・セマフオア・チヤンネ
ル、カウントをテストして、それが0以下である
か決定する状況が得られるからである。もしカウ
ントが0以下なら、このフリー・リンク・セマフ
オアに対して概念上のQ/LC/FLSがあること
を意味する。その結果、ステツプ2225におい
て、システム・モードが設定され、図22dおよ
びステツプ2226へのブランチが作られる。こ
れは図31aに示されるRLCMサブルーチンであ
る。RLCMサブルーチンは、ロジカル・チヤンネ
ルへのレリーズ・メツセージ・リンクを代表す
る。このサブルーチンはLCTEエントリ、メツセ
ージの宛先のセマフオアを指定し、メツセージを
そのセマフオアに移すものである。
For simplicity, let us assume that step 2218 of Figure 22b has been reached. This results in Word No.2
This is because we now have a situation where we test the free link semaphore channel, count, in to determine if it is less than or equal to zero. If the count is less than or equal to 0, it means that there is a conceptual Q/LC/FLS for this free link semaphore. As a result, in step 2225, the system mode is set and a branch is made to FIG. 22d and step 2226. This is the RLCM subroutine shown in Figure 31a. The RLCM subroutine represents a release message link to a logical channel. This subroutine specifies the LCTE entry, the message destination semaphore, and moves the message to that semaphore.

このようにして、ステツプ3100(図31
A)において、フエツチ・ロジカル・チヤンネル
であるサブルーチンFLCが、図31bに示すよ
うに実行される。ステツプ3120では、Q/
LO/FLSを探して、SDセグメントのフリー・リ
ンク・セマフオアによつて与えられるものと同じ
名前をもつたセマフオアを指定する。こうして、
Q/LC/FLSに対するヘツド・ポインタを利用
して、最初のLCTEエントリと適当なGネームと
をチエツクする。最初のLCTEエントリのGネー
ムが、SDセグメントのフリー・リンク・セマフ
オアのGネームと一致しない場合には、次の
LCTEエントリをとり出して、同じ比較を行な
う。Q/LC/FLSを全部テストしても、同じG
ネームが見つからない場合には、ステツプ312
0aの不当セマフオア除外が行なわれる。しか
し、最初のGネームが同定されれば、ステツプ3
122が実行される。
In this way, step 3100 (FIG. 31
In A), subroutine FLC, which is a fetch logical channel, is executed as shown in FIG. 31b. In step 3120, Q/
Looks for LO/FLS and specifies a semaphore with the same name as given by the SD segment's free link semaphore. thus,
Using the head pointer to Q/LC/FLS, check the first LCTE entry and appropriate G name. If the Gname of the first LCTE entry does not match the Gname of the SD segment's free link semaphore, then
Take the LCTE entry and do the same comparison. Even after testing all Q/LC/FLS, the same G
If the name is not found, step 312
Illegal semaphore exclusion of 0a is performed. However, once the first G name is identified, step 3
122 is executed.

ここで注意すべきことは、Q/LC/FLSが、
FLSセマフオアのチヤンネル・カウントの絶対値
に対応して、いくつかの同じGネームをもつ可能
性もあることである。たとえば、セマフオアのチ
ヤンネル・カウントが2であれば、SDセグメン
トのフリー・リンク・セマフオアに対する、フリ
ー・メツセージ・リンクにおかれるべきQ/
LC/FLSには、2つのLCTEエントリがあるは
ずである。しかし、この場合には、現在実行され
ているP命令により、ただ1つのフリー・メツセ
ージ・リンクが利用できるので、Gネームをもつ
た最初のものだけがキユーに加えられる。
What should be noted here is that Q/LC/FLS is
Depending on the absolute value of the FLS semaphore channel count, it is possible to have several identical G-names. For example, if the channel count of the semaphore is 2, the Q/Q to be placed in the free message link for the free link semaphore in the SD segment is
There should be two LCTE entries in the LC/FLS. However, in this case, only one free message link is available due to the currently executing P instruction, so only the first one with the G name is added to the queue.

ステツプ3122では、システム・ネームが
LCTEからとり出され、スクラツチ・パツド・メ
モリ・ロケーシヨンWD4に移される。ステツプ
3124により、ハードウエア・ゲートがロツク
され、1つの個別アクシヨンと関連した、システ
ム・クリテイカル・オペレーシヨンが実施される
ことを示す。ステツプ3126では、スクラツ
チ・パツド・ロケーシヨンWCDにおける、フリ
ー・リンク・セマフオアのチヤンネル・カウント
(CCT)が1つ増え、フリー・メツセージ・リン
クを待つロジカル・チヤンネルLCが1つ減つた
ことを示す。ステツプ3128では、Q/LC/
FLSからのロジカル・チヤンネル・テーブル・エ
ントリが除去される。このステツプには、前に述
べたように、Q/M/SまたはQ/PL/PLSか
ら、メツセージ・リンクまたはプロセス・リンク
を除去するのと同じ方法で、前のLCTEの次のリ
ンク・フイールドを変えて、逐次キユーを作るこ
とが含まれている。
In step 3122, the system name is
Removed from LCTE and moved to scratch pad memory location WD4. Step 3124 indicates that the hardware gates are locked and a system critical operation associated with one individual action is performed. In step 3126, the free link semaphore channel count (CCT) in the scratch pad location WCD is increased by one, indicating that the number of logical channels LC waiting for a free message link has been decreased by one. In step 3128, Q/LC/
Logical channel table entries from FLS are removed. This step involves adding the next link field of the previous LCTE in the same way as removing a message link or process link from the Q/M/S or Q/PL/PLS, as described previously. This includes creating queues sequentially by changing the .

キユーQ/LC/FLSに対してクリテイカル・
オペレーシヨンを実行すると、ステツプ3130
はハードウエア・ゲートのロツクを外す。ステツ
プ3132では、前に論じたセマフオアの絶対ア
ドレスが展開される。メツセージ・リンクをフリ
ーにしたP命令は、システム・ネームで同定され
るセマフオアとは違うセマフオアの上にあるかも
しれないので、ステツプ3132が必要となる。
Critical against Q/LC/FLS
After performing the operation, step 3130
unlocks the hardware gate. In step 3132, the absolute address of the semaphore discussed above is expanded. Step 3132 is necessary because the P instruction that freed the message link may be on a different semaphore than the one identified by the system name.

ステツプ3134では、キユーから外された
LCTEの中にあるメツセージが、スクラツチ・バ
ツド・メモリ・ロケーシヨンWE4〜WE7に移
され、サブルーチンFLCが完了する。
In step 3134, the removed from the queue
The message in LCTE is moved to scratch pad memory locations WE4-WE7, completing subroutine FLC.

FLCサブルーチンが終了すると、図31aに
もどり、PSEMサブルーチンを呼び出すステツプ
3102が実施される。このサブルーチンは、セ
マフオア・カウントが0より大きいので、セマフ
オアのチエツクを行なう。PSEMサブルーチンは
図31cにもつと詳しく示されている。
When the FLC subroutine ends, the process returns to FIG. 31a and executes step 3102 which calls the PSEM subroutine. This subroutine checks the semaphore since the semaphore count is greater than zero. The PSEM subroutine is also shown in more detail in Figure 31c.

もつと具体的にいえば、ステツプ3140で
は、GDシステム・ネームのDナンバーが8の倍
数かどうかチエツクする。Dナンバーというのは
SDセグメントの内部で適当なセマフオアの登録
番号で、定義により8の倍数でなければならな
い。ステツプ3142および3144では、セマ
フオアの2つのワードが、図31bのステツプ3
132で展開された絶対アドレスからとり出さ
れ、スクラツチ・パツド・メモリ・ロケーシヨン
WC4,WC5に移される。
More specifically, in step 3140, it is checked whether the D number of the GD system name is a multiple of eight. What is D number?
The registration number of the appropriate semaphore within the SD segment, which by definition must be a multiple of 8. In steps 3142 and 3144, the two words of the semaphore are
Scratch pad memory location
Moved to WC4 and WC5.

セマフオアが得られたら、セマフオア・フエツ
チ・ルーチンに対して同様なチエツクを行なう。
このステツプ3146では、セマフオアのスタ
グ・フイールドをチエツクして、当セマフオアが
メツセージ・セマフオアであることを決定する。
ステツプ3148では、セマフオアのSCTフイ
ールドがチエツクされて、それがSMCフイール
ドより小さいことが確認される。このようにし
て、ステツプ3146と3148では、とり出さ
れたセマフオアの妥当性が試験される。
Once the semaphore is obtained, a similar check is made for the semaphore fetch routine.
This step 3146 checks the semaphore's stag field to determine that the semaphore is a message semaphore.
In step 3148, the semaphore's SCT field is checked to ensure that it is less than the SMC field. Thus, steps 3146 and 3148 test the validity of the retrieved semaphore.

ステツプ3150では、SCTフイールドのテ
ストを行なう。SCTフイールドのカウントが0
以下なら、イレガル・セマフオア・エクセブシヨ
ンもしくは不法セマフオア例外3150aが生ず
る。もしSCTフイールドのカウントが0以下な
ら、プロセスがセマフオアについてキユーに入つ
ていたことを意味するから、このような結果とな
る。しかし、後で述べるように、プロセスがP命
令を実行しているセマフオアに対するQ/LC/
FLSにメツセージがある場合には、プロセスが待
ち状態に入ることはない。P命令の状況の下で
は、Q/LC/EVQが待ち行列もしくはキユーか
ら外された時に、メツセージがプロセスに移され
ているはずである。もしSCTフイールドのカウ
ントが0より大きいならば、ステツプ3152へ
のブランチが実行され、ここでセマフオアのポイ
ンタ・フイールドがテストされる。もつと詳しく
いうと、これらのフイールドは、メツセージ・キ
ユー・ヘツド・ポインタ(MQHP)およびメツ
セージ・キユー・テイル・ポインタ(MQTP)
であり、セマフオアがダブル・ワード(8バイ
ト)にアラインされねばならないから、0に等し
くはならず、かつ8の倍数でなければならない。
もしステツプ3150のSCTフイールドが0に
等しければ、ステツプ31−54が実行される。
SCTフイールドが0に等しいので、待ち行列も
しくはキユーはなく、従つてMQHPとMQPTフ
イールドも0でなければならない。もしこれらの
条件のどれかが満たされないなら、ステツプ31
50aのイレガル・セマフオア・エクセプシヨン
が行なわれる。これによりPSEMサブルーチンに
よつて与えられるチエツクが終了する。
In step 3150, the SCT field is tested. SCT field count is 0
If the following occurs, an illegal semaphore exception or illegal semaphore exception 3150a occurs. If the count in the SCT field is less than or equal to 0, it means that the process was queued for the semaphore, resulting in this result. However, as described later, the Q/LC/
If there is a message in the FLS, the process will not enter a wait state. Under the circumstances of the P command, the message would have been moved to the process when the Q/LC/EVQ was dequeued. If the SCT field count is greater than zero, a branch is taken to step 3152, where the semaphore pointer field is tested. More specifically, these fields are the Message Queue Head Pointer (MQHP) and the Message Queue Tail Pointer (MQTP).
and must not be equal to 0 and must be a multiple of 8, since the semaphore must be double word (8 bytes) aligned.
If the SCT field of step 3150 is equal to 0, steps 31-54 are executed.
Since the SCT field is equal to 0, there is no queue, so the MQHP and MQPT fields must also be 0. If any of these conditions are not met, step 31
50a illegal semaphore exception is performed. This ends the checks provided by the PSEM subroutine.

PSEMサブルーチンが終ると、図31aにもど
り、図26cに示したサブルーチンTAML26
13が実行される。フリー・メツセージ・リンク
が、フリー・リンク・セマフオアの待ち行列に加
えられたばかりである、すなわちQ/ML/FLS
が作られたが、または追加されたことが知られて
いるので、このサブルーチンは、メツセージ・リ
ンクへのアクセスをテストする。このメツセージ
の相対アドレスは、ステツプ3104により、ス
クラツチ・パツド・メモリ・ロケーシヨンW35
にストアされる。このアドレスは、フリー・メツ
セージ・リンクの位置を同定するフリー・リン
ク・セマフオアの、フリー・リンク・キユー・ポ
インタPLQPである。図26cで説明されたステ
ツプ2617において、セテツプ2134の結果
スクラツチ・パツド・ロケーシヨンWE4〜WE
7に入つたメツセージは、新しく展開された。フ
リーになつたメツセージ・リンクのメイン・メモ
リ・ロケーシヨンに書き込まれる。
When the PSEM subroutine ends, the process returns to FIG. 31a and the subroutine TAML26 shown in FIG. 26c
13 is executed. A free message link has just been added to the queue of free link semaphore, i.e. Q/ML/FLS
This subroutine tests access to a message link since it is known that it has been created or added. The relative address of this message is determined by step 3104 in the scratchpad memory location W35.
Stored in This address is the free link queue pointer PLQP of the free link semaphore that identifies the location of the free message link. In step 2617, illustrated in FIG. 26c, the result of step 2134 is the scratch pad location WE4-WE
The message entered in 7 has been newly developed. Written to the main memory location of the free message link.

ステツプ3106は、ハードウエア・ゲートを
ロツクする、ステツプ2619では、セマフオア
Q/M/Sに対するメツセージの待ち行列である
サブルーチンQMLが作られる。LCTEメツセー
ジをストアする、新しくフリーになつたメツセー
ジ・リンクは、今度はセマフオアに結びつけねば
ならない。図31に入つて、セマフオアのSCT
フイールドが0以上であることが、すでに保証さ
れているので、メツセージ・リンクをチエツクす
る必要はない。QMLサブルーチンは、メイン・
メモリに新しいセマフオアを書き込み、メツセー
ジ・セマフオアの中のポインタ・フイールド(必
要があれば)を書き直し、新しいメツセージがセ
マフオア・キユーQ/M/Sに追加されたことを
示す。
Step 3106 locks the hardware gate. Step 2619 creates a subroutine QML which is a queue of messages for the semaphore Q/M/S. The newly free message link that stores the LCTE message must now be attached to the semaphore. Entering Figure 31, SCT of semaphore
There is no need to check the message link since it is already guaranteed that the field is greater than or equal to zero. The QML subroutine is the main
Writes the new semaphore to memory and rewrites the pointer field (if necessary) in the message semaphore to indicate that the new message has been added to the semaphore queue Q/M/S.

ステツプ3108では、ロジカル・チヤンネ
ル・ステートが改訂されて、現在うまくシミユレ
ートされたV命令が実行されたことを指示し、ス
テツプ3110では、情報がメイン・メモリに移
されているので、ハードウエア・ゲートのロツク
が外される。
In step 3108, the logical channel state is revised to indicate that the now successfully simulated V instruction has been executed, and in step 3110, the hardware gate is updated as the information has been moved to main memory. is unlocked.

これにより、RLCMサブルーチンのステツプ3
112が終了し、図22dのステツプ2227に
もどることが可能になる。ここでシステム・モー
ドがリセツトされる。システム・コントロル・オ
ペレーシヨンによつて、シミユレートされたV命
令の実行をコントロルし、シミユレートV命令が
今終了したので、プロセス・モードをリエンタで
きる。図22dのステツプ2228では、Pオペ
レーシヨンが終了し、この時点でシステム・イベ
ント・ボラーがエントリされて、もう1つのロジ
カル・チヤンネルを使用しなければならないか否
かを決定する。
This allows step 3 of the RLCM subroutine to
112 is completed and it is possible to return to step 2227 of FIG. 22d. The system mode is now reset. The system control operation controls the execution of the simulated V instruction, and now that the simulated V instruction has finished, the process mode can be re-entered. In step 2228 of Figure 22d, the P operation ends and at this point a system event flag is entered to determine if another logical channel should be used.

このようにして、I/Oインタラプトによつて
供給されつゝあるメツセージが、適当なプロセス
に与えられるような、適当なセマフオアに対し
て、Q/LC/FLSからのロジカル・チヤンネ
ル・テーブル・エントリを、実際に待ち行列から
外すことを、図31は示している。これはLCTE
のワード8−11における、中間または終端メツ
セージ、あるいはLCTEのワード12−15のア
テンシヨン・メツセージに対する状況である。
In this way, a logical channel table entry from the Q/LC/FLS is sent to the appropriate semaphore such that a message being supplied by an I/O interrupt is given to the appropriate process. FIG. 31 shows the actual dequeuing of . This is LCTE
This is the situation for intermediate or terminal messages in words 8-11 of the LCTE, or attention messages in words 12-15 of the LCTE.

メツセージを必要とするプロセスに対するQ/
LC/FLS中のメツセージの除去 キユーQ/LC/FLSにアクセスする方法がも
う1つある。この状況は、セントラル・プロセツ
サにコントロルされるプロセスが、あるメツセー
ジ・セマフオアについてP命令を実行しており、
そのセマフオアのSCTフイールドが0に等しい
時に生ずる。この状況は図24aとサブルーチン
PMZ2206と関連して、前に説明されてい
る。この場合、メツセージはキユーQ/PR/
FLSの中の1つのプロセスから移され、そのメツ
セージがセマフオア・キユーQ/M/Sに結びつ
けられることは決してない。
Q/ for processes that require messages
Removing Messages in LC/FLS There is another way to access Q/LC/FLS. In this situation, a process controlled by a central processor is executing a P instruction for a certain message semaphore.
Occurs when the semaphore's SCT field is equal to 0. This situation is illustrated in Figure 24a and the subroutine
Previously described in connection with PMZ2206. In this case, the message is Q/PR/
Moved from one process in the FLS, the message is never bound to a semaphore queue Q/M/S.

もつと詳しくいうと、以下の説明において、V
命令、すなわち結果として得られたQ/PR/
FLSによつて、あるいはシミユレートされたV命
令、すなわち結果として得られたQ/LC/FLS
によつて供給され、状況を与える目的だけで説明
された実さいのP命令では供給されないように、
前もつて意図されたメツセージを得る概念に注意
を集中する。PMEサブルーチンは、前のプロセ
スが現在そのメツセージをメツセージ・セマフオ
アにおくために、フリー・メツセージ・リンクを
持つている、すなわち前のプロセスがそのメツセ
ージを引渡すことができず、従つてプロセスが未
だメツセージをもつているか否かを決定すること
を思い出そう。このようにして、SDセグメント
の中のすべてのフリー・メツセージ・リンクが使
用され、プロセスがVオペレーシヨンを実行しよ
うと企てて成功しなかつたという状況が生じたの
である。この状況のために、プロセスはキユー
Q/PR/FLSに入れられて、SDセグメントの中
のメツセージ・リンクがフリーになるのを待つ、
SDセグメント内のフリー・メツセージが使用で
きるようになつたら、プロセスをQ/PR/FLS
から外し、V命令を実行することができる。しか
し、この状況が生ずる前に、プロセスは同じSD
セグメントの上で、P命令を実行する。引渡すつ
もりでいながら、フリー・メツセージ・リンクが
ないので引渡すことのできなかつたメツセージ
が、セントラル・プロセツサがコントロルしてい
るプロセスが、そのP命令によつて現在要求して
いるメツセージなので、Q/PR/FLSを探索す
る。メツセージが同定されると、P命令を実行す
るプロセスが、Q/PR/FLSの中のプロセスか
ら、直接メツセージを入手し、このプロセスをフ
リー・リンク・セマフオア、すなわちQ/PR/
FLSの待ち行列からとり除く、これと同じ状況
が、シミユレートされたV命令からのメツセージ
に対しても生ずるので、キユーQ/LC/FLS
が、そのP命令を介してプロセスによつて要求さ
れているメツセージをもつているかもしれないの
で、このキユーも探すことになる。フリー・リン
ク・セマフオアが0より小さい。CCTフイール
ドをもつているなら、これが決定される。このよ
うな条件の下で、キユーQ/LC/FLSが存在
し、Q/LC/FLSが要求されたメツセージをス
トアする可能性をもつていることが知られてい
る。この可能性は、Q/LC/FLSの中のLCTE
エントリのGDナンバをSEGと比較して点検され
る。プロセスのSRAはP命令を実行する。
To be more specific, in the following explanation, V
instructions, i.e. the resulting Q/PR/
FLS or simulated V instructions, i.e. the resulting Q/LC/FLS
as provided by and not in the actual P command described solely for the purpose of giving context.
Focus your attention on the concept of getting the previously intended message. The PME subroutine indicates that the previous process currently has a free message link to put the message in the message semaphore, i.e. the previous process cannot deliver the message, and therefore the process still has the message semaphore. Recall that we need to determine whether or not we have . Thus, a situation has arisen in which all free message links in the SD segment have been used and a process has attempted to perform a V operation without success. Because of this situation, the process is put into queue Q/PR/FLS and waits for the message link in the SD segment to become free.
Once the free messages in the SD segment are available, the process can be Q/PR/FLS
It is possible to remove the command from the V command and execute the V command. However, before this situation occurs, the process is running on the same SD
Execute the P instruction on the segment. The message that was intended to be delivered but could not be delivered because there is no free message link is the message that the process controlled by the central processor is currently requesting by its P command, so Q/ Explore PR/FLS. Once the message is identified, the process executing the P instruction obtains the message directly from the process in Q/PR/FLS and links this process to the free link semaphore, i.e., Q/PR/FLS.
This same situation of dequeuing FLS occurs for messages from simulated V instructions, so queue Q/LC/FLS
This queue will also be searched since it may have a message requested by the process via its P command. Free link semaphore is less than 0. If it has a CCT field, this is determined. Under such conditions, it is known that a queue Q/LC/FLS exists and that the Q/LC/FLS has the possibility to store the requested message. This possibility is LCTE in Q/LC/FLS
The entry's GD number is checked by comparing it with the SEG. The SRA of the process executes the P instruction.

もつと詳しくいえば、図24aのステツプ24
01では、フリー・リンク・セマフオアがとり出
され、ステツプ2402では、フリー・リンク・
セマフオアのチヤンネル・カウント・フイールド
がテストされ、それが0以下かどうか調べる。も
しCCTフイールドが0以下なら、これはシミユ
レートされたV命令がそのメツセージを渡そうと
して成功しなかつた、従つて、フリー・リンク・
セマフオアQ/LC/FLSに対する、ロジカル・
チヤンネルの待ち行列にエントリが行なわれたこ
とを示している。こうして、ステツプ2402の
間に対する答がYESなら、図27aのステツプ
2416が実行され、この中でキユーQ/LC/
FLSを探して、P命令で要求されたメツセージが
存するか調べる。
More specifically, step 24 in FIG. 24a
In step 01, the free link semaphore is retrieved, and in step 2402, the free link semaphore is retrieved.
The channel count field of the semaphore is tested to see if it is less than or equal to zero. If the CCT field is less than or equal to 0, this means that the simulated V instruction attempted to pass the message and was not successful, so there is no free link.
Logical analysis for semaphore Q/LC/FLS
Indicates that an entry has been made in the channel's queue. Thus, if the answer during step 2402 is YES, step 2416 of FIG. 27a is executed in which the queue Q/LC/
Search the FLS to see if the message requested by the P command exists.

図32aの第1のステツプは、サブルーチン3
200を実行することである。SLCQサブルーチ
ンはロジカル・チヤンネル・キユーを探して、
LCナンバーメツセージとカウントをもどす。も
つと詳しくいうと、図32bに示すように、ステ
ツプ3230においてQ/LC/FLSを探して、
FLSワードNo.2のGナンバと同じGネームをも
つたセマフオア、およびD命令のセマフオア・ネ
ームのSRAと同じDををもつたセマフオアを求
める。これはクラツチ・パツド・ロケーシヨン2
Fの絶対アドレスをとり出し、システム・ネーム
をチエツクするキユー・リンケージにアクセスす
ることにより行なわれる。もしGネームが等しけ
れば、すなわちセマフオアがSDセグメントの中
にあれば、Dナンバが比較される。これが、Q/
LC/FLSのLCTEにストアされたシステム・ネ
ームのDナンバであり、P命令で与えられるセマ
フオアのSRAネームである。もしこれらが等し
ければ、P命令が実行されている適当なセマフオ
アに、メツセージを供給しようと試みたことを示
す。このような状況が生じた場合、P命令を実行
するプロセスがメツセージを受けとり、従つてそ
の重行を継続する。その上、キユーQ/LC/
FLSの中のLCTEエントリは、そのメツセージを
適当なプロセスに渡したのでとり除かれる。この
状況でセマフオア・ネームを合わせる行為は、待
ちプロセスおよび当セマフオアに対するフリー・
リンクを求めて待つQ/LC/FLSのメツセージ
がない理由を説明するものである。
The first step in FIG. 32a is subroutine 3.
200. The SLCQ subroutine searches for logical channel queues and
Returns LC number message and count. More specifically, as shown in FIG. 32b, in step 3230, search for Q/LC/FLS,
Find a semaphore with the same G name as the G number of FLS word No. 2, and a semaphore with the same D as SRA in the semaphore name of the D instruction. This is Clutch Pad Location 2
This is done by accessing the queue linkage which retrieves the absolute address of F and checks the system name. If the G names are equal, ie, the semaphore is in the SD segment, then the D numbers are compared. This is Q/
This is the D number of the system name stored in the LCTE of the LC/FLS, and is the SRA name of the semaphore given by the P command. If they are equal, it indicates that the P instruction attempted to supply the message to the appropriate semaphore being executed. When such a situation occurs, the process executing the P instruction receives the message and therefore continues its execution. Besides, Kyu Q/LC/
The LCTE entry in the FLS is removed as it has passed the message to the appropriate process. In this situation, matching the semaphore name will cause the waiting process and the free
This explains why there are no Q/LC/FLS messages waiting for a link.

こうして、ステツプ3232では、セマフオア
と同じシステム・ネームをもつたロジカル・チヤ
ンネルLCがみつかつたかどうかという問がたず
ねられる。これは図24dのSPLQサブルーチン
の場合と同じような探索の結果得られる。ここで
注目すべきことは、FLSセマフオアがCCTフイ
ールドによつて、シミユレートされたVオペレー
シヨンが試みられて成功しなかつたことを示すの
で、システム・ネームのGナンバを求めなければ
ならないことである。もしこのGナンバがみつか
らなければ、ステツプ3230aでイレガル・セ
マフオア・エクセブシヨンが実行される。
Thus, in step 3232, the question is asked whether a logical channel LC with the same system name as the semaphore was found. This results from a similar search as in the SPLQ subroutine of Figure 24d. Note that the FLS semaphore indicates by the CCT field that a simulated V operation was attempted and was not successful, so the G number of the system name must be determined. . If this G number is not found, an illegal semaphore exception is performed in step 3230a.

しかし、たとえGネームが等しくても、変位ナ
ンバがSRAと等しくなく、したがつてもしこの
条件が生ずれば、ステツプ3234が実行され
て、補助メモリ1317aのインジケータを0に
設定する。P命令が実行されつゝあるメツセー
ジ・セマフオアに、渡さるべきメツセージがない
ので、これでSLCQサブルーチンが終る。しか
し、もしシステム・ネームのGおよびDナンバ
が、セマフオアのSEGおよびSRAナンバと等し
ければ、ステツプ3232の問に対する答はyes
となり、ステツプ3238が実行される。これに
より補助メモリ1317aの中のフロツプである
インジケータが1に設定され、メツセージがみつ
けられ、P命令を実行するプロセスに移すことが
できることが示される。ステツプ3240では、
ロジカル・チヤンネル・テーブル・アドレスがス
クラツチ・パツド・ロケーシヨンWD4にストア
され、ステツプ3242では、メツセージがスク
ラツチ・パツド・ロケーシヨンWE4〜WE7に
移される。
However, even if the G names are equal, the displacement number is not equal to SRA, so if this condition occurs, step 3234 is executed to set the indicator in auxiliary memory 1317a to zero. This ends the SLCQ subroutine since there is no message to be passed to the message semaphore where the P instruction is being executed. However, if the system name's G and D numbers are equal to the semaphore's SEG and SRA numbers, then the answer to step 3232 is yes.
Then, step 3238 is executed. This sets the flop indicator in auxiliary memory 1317a to 1, indicating that the message has been found and can be moved to the process that executes the P instruction. In step 3240,
The logical channel table address is stored in scratch pad location WD4 and in step 3242 the message is moved to scratch pad locations WE4-WE7.

このアドレスをストアしたところで、図32a
へもどる。ふたたび、LCTEエントリがみつかつ
たかどうかたずねられる。答がNOであれば、図
24aにもどるブランチ、2403が行なわれ、
ここでキユーQ/PR/FLSが探される。答が
YESなら、メツセージが使用できることを示し
ているので、ステツプ3204が実行される。次
に、ステツプ3204で、実行中のP命令がテス
ト命令かどうかたずねられる。もしそうなら、ス
テツプ3206で、条件コードが0にセツトさ
れ、命令が完了されることを示し、ステツプ32
08が実行される。もし答がNOなら、これはP
命令が仮のものではないことを示し、したがつて
ステツプ3208が実行される。
Once this address has been stored, Figure 32a
Return to You will be asked again if the LCTE entry was found. If the answer is no, branch 2403 is taken which returns to Figure 24a;
Kyu Q/PR/FLS is searched here. The answer is
If YES, this indicates that the message can be used, so step 3204 is executed. Next, in step 3204, a question is asked whether the P instruction being executed is a test instruction. If so, the condition code is set to 0 in step 3206 to indicate that the instruction is completed, and the condition code is set to 0 in step 3206 to indicate that the instruction is completed.
08 is executed. If the answer is no, this is P
Indicates that the instruction is not tentative, so step 3208 is executed.

ステツプ3208はサブルーチンTMGRで、
メツセージをゼネラル・レジスタに移すものであ
る。このサブルーチンは図32cに示され、スク
ラツチ・パツド・ロケーシヨンWE4〜WE7に
ストアされたメツセージを読み、それらをステツ
プ3252でP命令を実行するプロセスのゼネラ
ル・レジスタGR0〜GR3に移すステツプ325
0を含んでいる。このようにして、メツセージが
Q/LC/FLSから、メツセージ・セマフオア
P/M/Sの待ち行列に入ることなく、P命令を
実行するプロセスのゼネラル・レジスタに移され
た。
Step 3208 is the subroutine TMGR,
It transfers messages to the general register. This subroutine is shown in FIG. 32c and includes a step 325 that reads messages stored in scratch pad locations WE4-WE7 and moves them to general registers GR0-GR3 of the process executing the P instruction in step 3252.
Contains 0. In this way, a message was moved from the Q/LC/FLS to the general register of the process executing the P instruction without queuing the message semaphore P/M/S.

サブルーチンTMGRを完了したところで、ハ
ードウエア・ゲートをロツクするステツプ321
0が実行される。ロジカル・チヤンネル・テーブ
ル・エントリの中のメツセージは適当なプロセス
に移されたので、シミユレートされたVオペレー
シヨンが不成功であつたという指示は否定され
る。いろいろな待ち行列の状態を改訂するこれら
の行為は実施しなければならない。ステツプ32
12では、SDセグメントのフリー・リンク・セ
マフオアのチヤンネル・カウント・フイールド
が、1だけ増やされる。これは未決定の不成功メ
ツセージ渡しの数が1つ減つたことを意味する。
改訂されたチヤンネル・カウントは、ステツプ3
214で、メイン・メモリのフリー・リンク・セ
マフオアに書き込まれる。ステツプ3216で
は、ロジカル・チヤンネル・テーブル・エントリ
が待ち行列Q/LC/FLSからとり除かれ、行列
の順序を変えて、このリンクが除かれるのを防
ぐ。このLCTEのアドレスは、サブルーチン
SLCQにより、スクラツチ・パツド・ロケーシヨ
ンWD4にストアされた。ステツプ3218で
は、ロジカル・チヤンネル・ステートが改訂され
て、メツセージが適当なプロセスに移されたの
で、サクセスフル・シミユレーテツドVオペレー
シヨンが実行されたことを示している。ステツプ
3220は、ハードウエア・ゲートのロツクを外
し、分割できないオペレーシヨンが実施されたこ
とを示す。ステツプ3222では、命令カウント
を増やし、次の命令がステツプ3224に示すよ
うに実行される。
Upon completion of subroutine TMGR, step 321 locks the hardware gate.
0 is executed. The indication that the simulated V operation was unsuccessful is negated because the message in the logical channel table entry has been passed to the appropriate process. These actions that revise the status of various queues must be performed. Step 32
At 12, the channel count field of the SD segment's free link semaphore is incremented by one. This means that the number of pending unsuccessful message passes is reduced by one.
The revised channel count is set in step 3.
At 214, the free link semaphore is written to main memory. In step 3216, the logical channel table entry is removed from queue Q/LC/FLS and the queue is reordered to prevent removal of this link. The address of this LCTE is the subroutine
Stored in scratch pad location WD4 by SLCQ. At step 3218, the logical channel state is revised to indicate that a successful simulated V operation has been executed because the message has been moved to the appropriate process. Step 3220 unlocks the hardware gate, indicating that an atomic operation has been performed. Step 3222 increments the instruction count and the next instruction is executed as shown in step 3224.

Q/LC/FLSを探して、システム・ネームの
デイスプレースメントDナンバに等しいセグメン
ト相対アドレスSRAをみつけることができなか
つた場合、P命令を実行するプロセスが、図24
に示すように、待ち状態におかれる。さらに、メ
ツセーージをストアするLCTEエントリがP命令
に与えられないので、Q/LC/FLSは変えられ
ない。
If the process searching Q/LC/FLS does not find a segment relative address SRA equal to the displacement D number of the system name, the process executing the P instruction
It is placed in a waiting state as shown in the figure below. Furthermore, Q/LC/FLS cannot be changed because no LCTE entry to store the message is provided to the P instruction.

こうして、セントラル・エクセプシヨン・メカ
ニズムもシステム・イベント・ポラーもシユード
プロセスであり、シミユレーテツドVオペレーシ
ヨンが、データをセントラル・プロセツサのプロ
セスに伝えることを可能にすることが示された。
セマフオアへのアクセスは、プロセシングによる
SEG、SRAネームに対して、シミユレーテツド
Vオペレーシヨンには、システム・ネームC,D
によつて得られるが、Vオペレーシヨンによるセ
マフオア・カウント・フイールドの基礎テスト
は、それぞれの状況で実施される。このテスト
は、そのメツセージの最終トランスフエラルをコ
ントロルする。こうして、もしSCTフイールド
が負なら、プロセスの待ち行列はセマフオアQ/
PR/Sに結びつけられるべきである。シミユレ
ーテツドVオペレーシヨンがセマフオアにメツセ
ージを与れる場合には、待ち行列の最初のプロセ
スがとり除かれ、レデイ・ステートQ/PR/
RDYにセツトされる。シミユレーテツドVオペ
レーシヨンによつて提供されるメツセージは、ス
クラツチ・パツド・ロケーシヨンWE4〜WE7
の内容を、セマフオアに結びつけられたプロセス
の、プロセス・コントロル・ブロツクのゼネラ
ル・レジスタGR0〜GR3にコピーすることによ
り移される。さらに、結びつけられたプロセスの
数が1つ減つたセマフオアは、そのSCTフイー
ルドを1だけ増やす。
Thus, it has been shown that both the central exception mechanism and the system event poller are simulated processes, allowing simulated V operations to communicate data to the central processor process.
Access to semaphore is by processing
For SEG, SRA names, simulated V operations have system names C, D.
However, a basic test of the semaphore count field with the V operation is performed in each situation. This test controls the final transference of the message. Thus, if the SCT field is negative, the process's queue is
Should be linked to PR/S. When a simulated V operation gives a message to a semaphore, the first process in the queue is removed and the ready state Q/PR/
Set to RDY. The messages provided by the simulated V operation are for scratch pad locations WE4 to WE7.
by copying the contents of the semaphore into general registers GR0-GR3 of the process control block of the process associated with the semaphore. Furthermore, a semaphore whose number of associated processes is reduced by one increases its SCT field by one.

SCTフイールドが正でなければ、このメツセ
ージが向けられたセマフオアで待つているプロセ
スはない。そこでメツセージは、セマフオアを含
むSDゼグメントにコピーされ、セマフオアQ/
M/Sに結びつけられる。もしメツセージをフリ
ー・メツセージ・リンクに移すことができなけれ
ば、I/Oインタラプト用のQ/LC/FLSが与
えられる。セントラル・エクセプシヨン・メカニ
ズムは、別のエクセプシヨン条件を与え、これに
よりシステム・チエツク状態を生ずるので、Q/
LC/FLSを呼び出さない。
If the SCT field is not positive, there are no processes waiting on the semaphore to which this message is directed. The message is then copied to the SD segment containing the semaphore, and the semaphore Q/
Connected to M/S. If the message cannot be moved to a free message link, a Q/LC/FLS is provided for I/O interrupts. The central exception mechanism provides another exception condition, which causes a system check condition, so the Q/
Do not call LC/FLS.

したがつて、I/Oインタラプトによつて条件
づきオペレーシヨンが得られるわけが示された。
第1の条件は、ハードウエア・ゲートがロツクさ
れていることである。この場合、当面のプロセジ
ユアの実行が、I/Oサブシステムからのメツセ
ージのトランスフアラルよりも重要であることが
決定される。第2の条件は、I/Oメツセージが
セントラル・プロセツサに移された後で生ずる。
メツセージは最初、その時のセントラル・プロセ
ツサの存在条件、すなわちプロセスがすでにメツ
セージを要求したか、あるいはメツセージを適当
なセマフオアに引渡すことができるかに依存す
る。しかし結局は、メツセージは適当なプロセス
に渡される。この引渡しはメツセージのプライオ
リテイによつて速められる。その場合でも、プロ
セスがセントラル・プロセツサのコントロルを受
けなければ、プロセスがプライオリテイによつて
Q/PR/RDYにおかれるので、プロセスのプラ
イオリテイが重要となる。したがつて、メツセー
ジは内部メツセージと一体となり、データ処理シ
ステム全体の状態に依存する。こうして、メツセ
ージの移送は、シミユレーテツドVオペレーシヨ
ンが生ずるセマフオアの条件、およびシステムの
状態、すなわち、ランニング・プロセスや待ち行
列Q/PR/RDYの中の他のプロセスのプライオ
リテイに依存する。
Therefore, it has been shown that conditional operations can be obtained by I/O interrupts.
The first condition is that the hardware gate is locked. In this case, it is determined that the execution of the procedure at hand is more important than the transfer of messages from the I/O subsystem. The second condition occurs after the I/O message is transferred to the central processor.
Messages initially depend on the existence of the central processor at the time, ie, whether a process has already requested the message or whether the message can be delivered to the appropriate semaphore. But eventually the message is passed to the appropriate process. This delivery is accelerated by the message's priority. Even in that case, the priority of the process is important because if the process is not under the control of the central processor, the process will be placed in Q/PR/RDY depending on its priority. Messages are therefore integrated with internal messages and are dependent on the state of the entire data processing system. Thus, message transport depends on the conditions of the semaphore on which the simulated V operation occurs, and on the state of the system, ie, the priorities of the running process and other processes in the queues Q/PR/RDY.

本発明は特定の実施態様に関して説明されてい
るが、専門知識のある人には、いろいろな変法が
可能なことは明らかであろう。したがつて、本発
明を添付した特許請求の精神と範囲との中に広く
カバーする所存である。
Although the invention has been described with respect to particular embodiments, many modifications will be apparent to those skilled in the art. It is therefore intended that the invention be broadly covered within the spirit and scope of the appended claims.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は、本発明を利用した多重プログラミン
グ・システムのブロツクダイヤグラムである。第
2図は、本発明において使用する各種ハードウエ
ア構造の概略図である。第3図は、第2図に示す
レジスタのソザーブド・エリヤに用いる用語・記
号の凡例である。第4図は、プロセス・コントロ
ールブロツクの概略図である。第5図は、プロセ
ス・コントロール・ブロツクをアドレスするため
のシステムの概略図である。第6図は、本発明の
システム・ベースのブロツクダイヤグラムであ
る。図7Aおよび7Bは各々スタツク・セグメン
トおよびスタツク・フレームの概略図である。第
8図は、G−セグメント、特にG0セグメントの
プロセスの待ち行列(queue)をアドレスするた
めのシステムのブロツクダイヤグラムである。第
9図は、G0セグメントの概略分解図で、プロセ
スの待ち行列およびプロセス・リンキングを示
す。図10a〜10lは、PCBの中の構造のブロ
ツクダイヤグラムである。図11a〜11rは、
システム・ベースの中の構造のブロツクダイヤグ
ラムである。第12図は、システム・ベースおよ
びPCB構造を用いたユーザーのアドレツシング表
およびシステム・セグメントの概略図である。図
13a,13bおよび13cは、制御装置の概略
図である。図14a〜14iは、フアームウエア
の中のデイスパツチヤ装置の流れ図である。第1
5図は、セマホア記述子(semaphore
descriptor)セグメントおよびその構成の分解図
である。図16a〜16dは、このシステムにお
いて使用されるセマホア構造のブロツクダイヤグ
ラムである。第17図は、セマホア用のアドレス
開発機構の概略図である。第18図は、セマホア
記述子セグメントとG0セグメントとの関係を示
す概略図である。図19aおよび19bは、第1
3図の論理記憶装置のスクラツチ・パツド・メモ
リの分解図であり、その語構造の総合的構成を示
す。図20aおよび20bは、すべてのPおよび
Vインストラクシヨンに用いられるセマホア記述
子フエツチ・サブルーチンの流れ図である。第2
1図は、メツセージを伴なわないセマホアに対す
るPインストラクシヨンの流れ図である。図22
a〜22eは、メツセージを伴なうセマホアに対
するPインストラクシヨンの流れ図である。図2
3a〜23hは、ラン状態のプロセスを待機状態
に移行するためにPおよびVインストラクシヨン
により呼出されるEVPサブルーチンの流れ図で
ある。図24a〜24dは、セマホア上に待ち行
列もしくはキユー(queue)を入れることなくメ
ツセージを転送するためのPMZサブルーチンの
流れ図である。図25a〜25iは、セマホアの
SCTフイールドが負の時のセマホアに対するV
インストラクシヨンの流れ図である。図26a〜
26bは、セマホアのSCTフイールドが正の時
のセマホアに対するVインストラクシヨンの流れ
図である。図27,27aは、最新のインストラ
クシヨンの終わりに呼出されるSystem Event
Poller(システム事象ポーラ)の流れ図である。
第28図は、Systen Event Pollerによつて入れ
られる。I/O Event Handler(事象処理器)
の流れ図である。図29a,29bは、論理チヤ
ンネル・テーブル・エントリーおよび論理チヤン
ネル・テーブル・エントリーを用いる待ち行列の
概略図である。図30a,30bは、メツセージ
セマホアのSCTフイールドが正で、フリー・メ
ツセージ・リンクが利用できない時のメツセージ
セマホアに対する模擬Vインストラクシヨンの流
れ図である。図31a,31b,31cは、フリ
ー・メツセージ・リンクを利用することができ、
かつフリー・リンクセマホア上の論理チヤンネル
の待ち行列(Q/LC/FLS)が与られている時
のメツセージセマホアに対する模擬Vインストラ
クシヨンの流れ図である。図32a,32bは、
メツセージセマホアのSCTフイールドがゼロ
で、Q/LC/FLSが存在する時のメツセージに
対する模擬インストラクシヨンの流れ図である。
図面中の重要な記号は次の通りである。 101……プロセツサ・サブシステム、102
……記憶サブシステム、103……周辺サブシス
テム、10……中央処理装置、105……出力制
御装置、106……周辺制御装置、107……ア
ダプタ、108……周辺I/O装置。
FIG. 1 is a block diagram of a multiple programming system utilizing the present invention. FIG. 2 is a schematic diagram of various hardware structures used in the present invention. FIG. 3 is a legend of terms and symbols used in the saved area of the register shown in FIG. FIG. 4 is a schematic diagram of the process control block. FIG. 5 is a schematic diagram of a system for addressing process control blocks. FIG. 6 is a system-based block diagram of the present invention. Figures 7A and 7B are schematic diagrams of a stack segment and stack frame, respectively. FIG. 8 is a block diagram of a system for addressing the queue of processes in the G-segment, specifically the G0 segment. FIG. 9 is a schematic exploded view of the G0 segment showing process queuing and process linking. Figures 10a-10l are block diagrams of structures within the PCB. Figures 11a-11r are
This is a block diagram of the structure within the system base. FIG. 12 is a schematic diagram of the user addressing table and system segments using the system base and PCB structure. Figures 13a, 13b and 13c are schematic diagrams of the control device. 14a-14i are flowcharts of the dispatcher device in firmware. 1st
Figure 5 shows the semaphore descriptor (semaphore
2 is an exploded view of the descriptor segment and its configuration; FIG. Figures 16a-16d are block diagrams of the semaphore structure used in this system. FIG. 17 is a schematic diagram of an address development mechanism for a semaphore. FIG. 18 is a schematic diagram showing the relationship between semaphore descriptor segments and G0 segments. 19a and 19b show the first
3 is an exploded view of the scratch pad memory of the logical storage device of FIG. 3, showing the overall word structure thereof; FIG. Figures 20a and 20b are flow diagrams of the semaphore descriptor fetch subroutine used for all P and V instructions. Second
FIG. 1 is a flowchart of the P instruction for a semaphore without a message. Figure 22
a-22e are flow diagrams of P instructions for semaphores with messages. Figure 2
3a-23h are a flowchart of the EVP subroutine called by the P and V instructions to transition a running process to a standby state. Figures 24a-24d are a flowchart of a PMZ subroutine for forwarding messages without queuing on a semaphore. Figures 25a-25i show the semaphore
V for semaphore when SCT field is negative
2 is a flowchart of instructions. Figure 26a~
26b is a flow diagram of a V instruction for a semaphore when the SCT field of the semaphore is positive. Figures 27 and 27a show the System Event called at the end of the latest instruction.
2 is a flowchart of Poller (system event poller).
Figure 28 is populated by the System Event Poller. I/O Event Handler
This is a flowchart. Figures 29a and 29b are schematic diagrams of logical channel table entries and queues using logical channel table entries. Figures 30a and 30b are flow diagrams of simulated V instructions for a message semaphore when the message semaphore's SCT field is positive and no free message links are available. 31a, 31b, 31c can utilize free message links,
and is a flowchart of a simulated V instruction for a message semaphore given a logical channel queue (Q/LC/FLS) on a free links semaphore. Figures 32a and 32b are
FIG. 3 is a flowchart of a simulated instruction for a message when the SCT field of the message semaphore is zero and Q/LC/FLS is present. FIG.
Important symbols in the drawings are as follows. 101...processor subsystem, 102
... Storage subsystem, 103 ... Peripheral subsystem, 10 ... Central processing unit, 105 ... Output control device, 106 ... Peripheral control device, 107 ... Adapter, 108 ... Peripheral I/O device.

Claims (1)

【特許請求の範囲】 1 各々が複数の命令から成る複数のプロセス中
の選択された1つのプロセスの制御のもとにデー
タを処理する中央処理装置(101、第1図)
と、プロセス間で情報(メツセージまたはイベン
ト)を交換するために使用されるセマフオア(第
15図、第16A図〜第16D図)と呼ばれる複
数のデータ構造とを備え、 各セマフオアは、未だ得られず他のプロセスに
よつて発生されるべき情報を待機しているプロセ
スの参照(J、P)を記憶するためのプロセス・
キユー(Q/PR/S;第9図、803a,80
3b,803c,803f,803g;第17
図、802;第18図、1802a〜1802
d,1804a,1084b,1808a,18
08b)と呼ばれるメモリ場所と関連しており、
さらに各セマフオアは、前記プロセス・キユー内
に待機しているプロセスが無い場合に、プロセス
によつて発生されるメツセージをキユー内に記憶
するためのメツセージ・キユー(Q/M/S;第
15図;第17図、1708,1710)と呼ば
れるメモリ場所が与えられており(1602、第
15図、第16B図)、 前記中央処理装置は、“走行プロセス”と呼ば
れる実行されているプロセスの対応のプログラム
命令(P命令:SEP、SEPM;V命令:SEV、
SEVF、SEVL)によつて開始されるプロセス同
期操作(PまたはV操作)を行い、この操作の第
1の型(V操作)は情報が前記走行プロセスから
セマフオアへ転送されるのを可能とし、前記操作
の第2の型(P操作)は、前記走行プロセスによ
つて要求された情報がアドレス指定されたセマフ
オア内に得られるならば該情報を直ちに前記走行
プロセスに転送し、該情報がアドレス指定された
セマフオア内に得られないならば前記走行プロセ
スを待機状態に置いてそのプロセスの参照をセマ
フオアのプロセス・キユー(Q/PR/S)に記
憶するのを可能とした。マルチプログラミング、
マルチプロセシングの環境で動作するデータ処理
装置において、 正か負かまたはゼロである計数を示す、各セマ
フオアに備えられた(第16a図、第16b図参
照)第1のフイールド(SCT)と、 前記セマフオアに関連したキユー(Q/PR/
SもしくはQ/M/S)の最初の場所(PQHPも
しくはMQHP)を示す、各セマフオアに備えら
れた(第16a図、第16b図参照)第2のフイ
ールド(PQHP、PQHP/MQHP)と、 前記PまたはV命令に応答して、前記Pまたは
V命令で識別された特定のセマフオアをアドレス
指定する手段(2020;第20a図、第20b
図)と、 命令の型(PまたはV)に応答して、前記計数
(SCT)の値を変更する手段であつて、V操作に
より発生されるこの変更はP操作により発生され
る変更の反対の値を有し、それにより前記計数は
最初はゼロであり、前記計数(SCT)の符号は
いずれの瞬間にも、前記セマフオアと関連した前
記キユー(Q/PR/SもしくはQ/M/S)が
プロセス(Q/PR/S)を含んでいるのかメツ
セージ(Q/M/S)を含んでいるのかを示し、
前記計数の絶対値が前記キユー内で待機している
プロセスもしくはメツセージの数を表わすように
したものと、 前記計数(SCT)の符号に応答すると共に命
令PまたはVの型に依存する手段であつて、 もしV命令であり、符号がプロセスのキユー
(Q/PR/S)であることを示すならば、情報は
該キユー(Q/PR/S)の最初の場所
(PQHP)にあるプロセスに転送され、もし計数
(SCT)が、メツセージのキユー(Q/M/S)
であることを示す反対符号を有するならば、前記
V命令と関連したメツセージは前記メツセージの
キユー(Q/M/S)に置かれ、 もしP命令であり、計数(SCT)の符号がプ
ロセスのキユー(Q/PR/S)であることを示
すならば、このP命令を行つた走行プロセスは待
機状態にされて前記プロセス・キユー(Q/
PR/S)に置かれ、もし計数(SCT)が、メツ
セージのキユー(Q/M/S)であることを示す
反対符号を有するならば、該メツセージ・キユー
(Q/M/S)の最初の場所にあるメツセージは
前記走行プロセスに転送される、ような方法で動
作するものと、 を備えたことを特徴とするデータ処理装置。 2 セマフオアの型(メツセージ付きまたはメツ
セージ無し)を示す、各セマフオアに備えられた
第3のフイールド(STAG)と、 前記計数(SCT)の最大値を示す、各セマフ
オアに備えられた第4のフイールド(SMC)
と、 同期操作(VまたはP)ごとの間中、前記計数
(SCT)を前記最大値(SMC)と比較する手段
と、 を備えた特許請求の範囲第1項記載のデータ処理
装置。 3 空きリンク・セマフオア(FLS、1504、
第15図、第16D図)と呼ばれるもう1つの種
類のセマフオアが各メツセージ付きセマフオア
(1602、第15図、第16B図)と関連さ
れ、 前記空きリンク・セマフオアは、 “空きリンク・セマフオアに関するプロセス・
キユー”(Q/PR/FLS)(第18図、1804
a,1804b)と呼ばれる関連のプロセス・キ
ユーの最初の場所を示す第5のフイールド
(PQHP)と、 “空きメツセージ・リンクのキユー”(Q/
ML/FLS)と呼ばれるもう1つのキユーを形成
する空きメツセージ場所の最初を示す第6のフイ
ールド(FLQP)と、 を備え、 メツセージ付きのV命令(SEVF、SEVL)の
実行の場合、計数(SCT)の符号がメツセージ
のキユー(Q/M/S)を示す際に前記第6のフ
イールド(FLQP)をチエツクして空きメツセー
ジ場所を決定するための手段と、この空きメツセ
ージ場所が得られない際に走行プロセスと待機状
態にして前記空きリンク・セマフオア(Q/
PR/FLS)に関するプロセス・キユーに置く手
段と、 メツセージ付きのP命令(SEPM)の実行の場
合、前記計数(SCT)の符号がプロセスのキユ
ー(Q/PR/S)を示す際に前記P命令によつ
て解放されているメツセージ場所を前記空きメツ
セージ・リンクのキユー(Q/ML/FLS)に組
込むための手段と、 を備えた特許請求の範囲第1項記載のデータ処理
装置。 4 空きリンク・セマフオア(FLS、1504、
第15図、第16D図)と呼ばれるもう1つの種
類のセマフオアが各メツセージ付きセマフオア
(1602、第15図、第16B図)と関連さ
れ、 前記空きリンク・セマフオアは、 “空きリンク・セマフオアに関するプロセス・
キユー”(Q/PR/FLS)(第18図、1804
a,1804b)と呼ばれる関連のプロセス・キ
ユーの最初の場所を示す第5のフイールド
(PQHP)と、 “空きメツセージ・リンクのキユー”(Q/
ML/FLS)と呼ばれるもう1つのキユーを形成
する空きメツセージ場所の最初を示す第6のフイ
ールド(FLQP)と、 を備え、 メツセージ付きのV命令(SEVF、SEVL)の
実行の場合、計数(SCT)の符号がメツセージ
のキユー(Q/M/S)を示す際に前記第6のフ
イールド(FLQP)をチエツクして空きメツセー
ジ場所を決定するための手段と、この空きメツセ
ージ場所が得られない際に走行プロセスを待機状
態にして前記空きリンク・セマフオア(Q/
PR/FLS)に関するプロセス・キユーに置く手
段と、 メツセージ付きのP命令(SEPM)の実行の場
合、前記計数(SCT)の符号がプロセスのキユ
ー(Q/PR/S)を示す際に前記P命令によつ
て解放されているメツセージ場所を前記空きメツ
セージ・リンクのキユー(Q/ML/FLS)に組
込むための手段と、 を備えた特許請求の範囲第2項記載のデータ処理
装置。
[Scope of Claims] 1. A central processing unit (101, FIG. 1) that processes data under the control of a selected one of a plurality of processes each consisting of a plurality of instructions.
and a plurality of data structures called semaphores (Figures 15, 16A-16D) used to exchange information (messages or events) between processes, each semaphore being A process for storing references (J, P) of processes waiting for information to be generated by other processes.
Kyu (Q/PR/S; Figure 9, 803a, 80
3b, 803c, 803f, 803g; 17th
Figure, 802; Figure 18, 1802a-1802
d, 1804a, 1084b, 1808a, 18
08b) and is associated with a memory location called
Furthermore, each semaphore has a message queue (Q/M/S; FIG. ; FIG. 17, 1708, 1710)) (1602, FIG. 15, FIG. 16B), said central processing unit stores a corresponding memory location of a running process, called a "running process". Program instructions (P instructions: SEP, SEPM; V instructions: SEV,
SEVF, SEVL) initiates a process synchronization operation (P or V operation), the first type of this operation (V operation) allows information to be transferred from the running process to the semaphore; The second type of operation (P operation) transfers the information requested by the running process to the running process immediately if it is available in the addressed semaphore; If not found in the specified semaphore, the running process was placed in a standby state, allowing a reference to that process to be stored in the semaphore's process queue (Q/PR/S). multiprogramming,
In a data processing device operating in a multiprocessing environment, a first field (SCT) provided in each semaphore (see FIGS. 16a and 16b) indicating a count that is positive, negative, or zero; Queu related to semaphore (Q/PR/
a second field (PQHP, PQHP/MQHP) provided in each semaphore (see Figures 16a and 16b) indicating the first location (PQHP or MQHP) of the S or Q/M/S); means for, in response to a P or V instruction, addressing a particular semaphore identified in said P or V instruction (2020; FIGS. 20a, 20b);
) and means for changing the value of said count (SCT) in response to the type of instruction (P or V), wherein this change caused by a V operation is the opposite of the change caused by a P operation. , such that the count is initially zero and the sign of the count (SCT) at any moment is the same as the queue (Q/PR/S or Q/M/S) associated with the semaphore. ) indicates whether it contains a process (Q/PR/S) or a message (Q/M/S),
means in which the absolute value of said count represents the number of processes or messages waiting in said queue; and means responsive to the sign of said count (SCT) and dependent on the type of instruction P or V. If it is a V instruction and the code indicates a process queue (Q/PR/S), then the information is sent to the process in the first location (PQHP) of the queue (Q/PR/S). Transferred, if counting (SCT), message queue (Q/M/S)
If it has an opposite sign indicating that it is a P instruction and the sign of the count (SCT) is If the process queue (Q/PR/S) is indicated, the running process that executed this P command is placed in a standby state and the process queue (Q/PR/S) is
PR/S) and if the count (SCT) has an opposite sign indicating that it is a message queue (Q/M/S), then the first of that message queue (Q/M/S). A data processing device operating in such a way that a message located at a location is forwarded to the running process. 2. A third field (STAG) provided in each semaphore that indicates the type of semaphore (with message or without message), and a fourth field provided in each semaphore that indicates the maximum value of the count (SCT). (SMC)
2. A data processing device according to claim 1, comprising: means for comparing the count (SCT) with the maximum value (SMC) during each synchronization operation (V or P). 3 Free link semaphore (FLS, 1504,
Another type of semaphore called a semaphore (Figs. 15, 16D) is associated with each messaged semaphore (1602, Figs. 15, 16B), and said free link semaphore is defined as a process related to a free link semaphore.・
Q/PR/FLS (Fig. 18, 1804
a, 1804b) and a fifth field (PQHP) indicating the initial location of the associated process queue called “Queue of Free Message Links” (Q/
a sixth field (FLQP) indicating the beginning of a free message location forming another queue called ML/FLS); ) for determining a free message location by checking the sixth field (FLQP) when the symbol indicates a message queue (Q/M/S), and when this free message location is not available; The running process and the idle link semaphore (Q/
In the case of execution of a P instruction with a message (SEPM), when the sign of the count (SCT) indicates a process queue (Q/PR/S), 2. A data processing device according to claim 1, further comprising means for incorporating message locations freed by an instruction into the queue of free message links (Q/ML/FLS). 4 Free link semaphore (FLS, 1504,
Another type of semaphore called a semaphore (Figs. 15, 16D) is associated with each messaged semaphore (1602, Figs. 15, 16B), and said free link semaphore is defined as a process related to a free link semaphore.・
Q/PR/FLS (Fig. 18, 1804
a, 1804b) and a fifth field (PQHP) indicating the initial location of the associated process queue called “Queue of Free Message Links” (Q/
a sixth field (FLQP) indicating the beginning of a free message location forming another queue called ML/FLS); ) for determining a free message location by checking the sixth field (FLQP) when the symbol indicates a message queue (Q/M/S), and when this free message location is not available; The running process is placed in a standby state and the free link semaphore (Q/
In the case of execution of a P instruction with a message (SEPM), when the sign of the count (SCT) indicates a process queue (Q/PR/S), 3. A data processing device according to claim 2, further comprising means for incorporating message locations freed by an instruction into the queue of free message links (Q/ML/FLS).
JP49136671A 1973-11-30 1974-11-30 Expired JPS6112291B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR7342696A FR2253423A5 (en) 1973-11-30 1973-11-30
FR7342697A FR2253420A5 (en) 1973-11-30 1973-11-30
FR7342712A FR2253414A5 (en) 1973-11-30 1973-11-30 Semaphore arrangement for multi-programme data-processing system - with exchange of data between processes
FR7342691A FR2253418A5 (en) 1973-11-30 1973-11-30

Publications (2)

Publication Number Publication Date
JPS50117331A JPS50117331A (en) 1975-09-13
JPS6112291B2 true JPS6112291B2 (en) 1986-04-07

Family

ID=27446249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP49136671A Expired JPS6112291B2 (en) 1973-11-30 1974-11-30

Country Status (3)

Country Link
JP (1) JPS6112291B2 (en)
DE (1) DE2456534A1 (en)
GB (1) GB1484459A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128794U (en) * 1987-02-14 1988-08-23

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2216306A (en) * 1988-02-29 1989-10-04 Ardent Computer Corp Load and synchronize computer architecture and process

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128794U (en) * 1987-02-14 1988-08-23

Also Published As

Publication number Publication date
JPS50117331A (en) 1975-09-13
DE2456534C2 (en) 1988-05-05
AU7588074A (en) 1976-06-03
GB1484459A (en) 1977-09-01
DE2456534A1 (en) 1975-08-21

Similar Documents

Publication Publication Date Title
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US4316245A (en) Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization
US4369494A (en) Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US4395757A (en) Process synchronization utilizing semaphores
US4320451A (en) Extended semaphore architecture
US4318182A (en) Deadlock detection and prevention mechanism for a computer system
US4084228A (en) Process management structures and hardware/firmware control
US4432051A (en) Process execution time accounting system
US4509116A (en) Special instruction processing unit for data processing system
US4077058A (en) Method and apparatus for executing an extended decor instruction
US4297743A (en) Call and stack mechanism for procedures executing in different rings
US4130867A (en) Database instruction apparatus for determining a database record type
EP0087978B1 (en) Information processing unit
JPS5939785B2 (en) data processing equipment
US4447874A (en) Apparatus and method for communication of information between processes in an information system
EP0405495B1 (en) Instruction unit logic management apparatus included in a pipelined processing unit and method therefor
US5218712A (en) Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
EP0274689B1 (en) System and method of providing synchronous message exchange in an asynchronous operating environment
US5073855A (en) Resource conflict detection method and apparatus included in a pipelined processing unit
US4025901A (en) Database instruction find owner
JPS5911943B2 (en) Trap mechanism for data processing equipment
US4024508A (en) Database instruction find serial
KR0128274B1 (en) Interface system and its operating method
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system