JPH0114611B2 - - Google Patents

Info

Publication number
JPH0114611B2
JPH0114611B2 JP55135733A JP13573380A JPH0114611B2 JP H0114611 B2 JPH0114611 B2 JP H0114611B2 JP 55135733 A JP55135733 A JP 55135733A JP 13573380 A JP13573380 A JP 13573380A JP H0114611 B2 JPH0114611 B2 JP H0114611B2
Authority
JP
Japan
Prior art keywords
local storage
register
capability
local
storage
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
JP55135733A
Other languages
Japanese (ja)
Other versions
JPS5657149A (en
Inventor
Jon Uitsutorii Nigeru
Fuiritsupu Andoriizu Marutein
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.)
Plessey Overseas Ltd
Original Assignee
Plessey Overseas Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Plessey Overseas Ltd filed Critical Plessey Overseas Ltd
Publication of JPS5657149A publication Critical patent/JPS5657149A/en
Publication of JPH0114611B2 publication Critical patent/JPH0114611B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Abstract

Each process in a multi-process computing system using so-called capabilities may have associated with it a process dumpstack protected by the capability mechanism. The functions of this dumpstack are (i) to provide the state of the process at the point at which it was suspended and (ii) to stack (or nest) information relating to the invoked procedures (i.e. sub-routines) of the process. Thus there is a fixed sized portion containing principally the machine registers, the indicators and the watchdog timer values and a variable sized portion containing information related to each nested procedure. Each stack link is of fixed size and contains three items:- relativised instruction address, the code block capability and process capability pointer list block capability. This arrangement is enhanced to allowtwo additional classes of information to be stored in each link namely (a) an indication of the data and capability registers preserved during the domain change procedure and (b) descriptors for local storage segments. The use of descriptors for local storage allows a pool of storage particular to the process to be allocated on a segmented basis with the security of the capability mechanism extended into that local storage area. The descriptors for local storage segments resemble closely SCT entries (i.e. they contain sumcheck, base and limit values) and they are relative to a new protected stack, the local store stack, which is referenced by a hidden capability register C(L). The processor module is provided with a new instruction "subset local store" for use in local store segment allocation and automatic de-allocation occurs when a return is made from the procedure in which the local segment was allocated. Such allocation and de-allocation mechanisms use the indications which takes the form of a primary descriptor held in the most significant eight bits of the IAR word. This descriptor is allocated as follows:- (i) zero, no stacked registers or local segments allocated, (ii) m.s.b. = 1, stacked registers to be passed and (iii) I.s.b. 1-7 = 1, indicates the number of local store segments allocated. Associated with the stacked register set is a one word descriptor which indicates the registers stacked.

Description

【発明の詳細な説明】 本発明はマルチプログラミングデータ処理シス
テム、特にプロセス中断(即ち一時停止)時にプ
ロセスの作業パラメータを記憶するために設けら
れた構成に関するものである。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to multiprogramming data processing systems, and more particularly to arrangements provided for storing operating parameters of a process during process interruptions (or pauses).

容易に開発、維持可能なシステムを得るため
に、プログラムの制御の組はシステムルーチンと
アプリケーシヨンプログラムに分割されている。
各アプリケーシヨンプログラムはシステムルーチ
ンの監視の元で限定セツトのタスクを処理する。
To obtain a system that is easy to develop and maintain, the program's control set is divided into system routines and application programs.
Each application program processes a limited set of tasks under the supervision of system routines.

高速応答時間を必要とするリアルタイム環境に
おいては、いかなるアプリケーシヨンプログラム
でも一時停止して別のプログラムにより緊急なタ
スクの処理を開始させることができる。各アプリ
ケーシヨンプログラムを数回起動させて一連の同
様なタスクを処理することができる。各起動即ち
いわゆるプロセスは共通プログラムからの命令を
実行するが別々の作業データベースを使用してい
る。その結果いかなる数のプロセスも存在でき、
一つは活動中で残りは一時停止しているマルチプ
ログラミングとなる。システムルーチンはプロセ
スと同様に実行することができるが、その中のい
くつかは一時停止もしくは再起動して呼出された
ルーチンとして作動することができる。
In real-time environments requiring fast response times, any application program can be paused and another program can begin processing urgent tasks. Each application program can be launched several times to handle a series of similar tasks. Each boot, or so-called process, executes instructions from a common program but uses a separate working database. As a result, any number of processes can exist,
One is active and the other is paused, resulting in multiprogramming. System routines can run like processes, but some of them can be suspended or restarted to operate as called routines.

高速応答を維持するには大概もしくは全てのシ
ステムルーチンおよびアプリケーシヨンプログラ
ムが高速アクセスメモリ内に永久常駐される。残
りの高速アクセスメモリはプログラムがそのタス
クおよび各プロセスに付随する作業域を実施する
のに必要な永久およびダイナミツクデータを保持
する。あまりひんぱんに使用されないプログラム
および大きくてもあまりアクセスされないフアイ
ルは補助記憶装置に保持して、所望により高速ア
クセスメモリに持ち出すことができる。各プロセ
スにはいわゆるプロセスダンプスタツクが設けら
れ、そこにはプロセスの一時停止時のプロセスの
作業パラメータが記憶される。
To maintain fast response, most or all system routines and application programs reside permanently in fast access memory. The remaining fast access memory holds permanent and dynamic data necessary for the program to perform its tasks and the work areas associated with each process. Infrequently used programs and large but infrequently accessed files can be kept in secondary storage and moved to fast access memory if desired. Each process is provided with a so-called process dump stack, in which the working parameters of the process at the time of suspension of the process are stored.

このようなシステムは1977年11月付システム技
術第27巻の26〜34頁に記載されたK.J.Hamer―
HodgesおよびG.B.K.Staggの文献“システム250
―制御アプリケーシヨン用故障許容誤差モジユラ
処理システム”に開示されている。このようなシ
ステムでは各プロセスはそれ自体の記憶装置もし
くは周辺領域へアクセスすることを制約されてお
り、そのためいかなる侵害によつても即座にその
プロセスが一時停止されメモリもしくは周辺装置
内での情報の劣化を防止する。活動プロセスが誤
つて他のプロセスのデータベースもしくはその親
命令を保持している記憶領域に書込みを行うと、
この一時停止プロセスの環境が劣化する。再起動
時には不正確なデータやコードに作用して順次他
のプロセスを劣化させることがある。こうして元
の誤りは検出されないとまん延して広範な損害を
生じる。前記文献に記載されたシステムはプロセ
スがそれ自体の命令を修正することをも防止し、
プログラム故障を意味する再入可能共用手順、定
数テーブルの変更、命令に従つたデータの実行お
よびデータに従つた命令の読取りを行う。
Such a system is described in KJ Hamer, Volume 27, System Technology, November 1977, pages 26-34.
References Hodges and GBKStagg “System 250
- Fault-Tolerant Modular Processing Systems for Control Applications. In such systems, each process is restricted from accessing its own storage or peripheral areas, so any breach immediately suspends the process to prevent information from deteriorating in memory or peripherals.If an active process accidentally writes to a storage area holding another process's database or its parent instructions,
The environment for this suspended process is degraded. When restarted, incorrect data and code may be affected and in turn degrade other processes. Thus, if the original error goes undetected, it will propagate and cause widespread damage. The system described in said document also prevents a process from modifying its own instructions;
Reentrant shared procedures implying program failure, changing constant tables, executing data following instructions, and reading instructions following data.

各プロセスに確実な環境を生成するために、記
憶保護構成が使用されておりいわゆる“ケーパビ
リテイ”を含んでいる。各プロセスにはその命令
とデータを保持したあるメモリブロツクが割当て
られている。各ブロツクは“ベース”および“リ
ミツト”アドレスと各ブロツクへのアクセスのタ
イプを制約する“アクセス”コードによりサイズ
と位置が定義される。一つのプロセスがこれらの
各記憶領域への許容アクセスを行うケーパビリテ
イを有している。現在使用中の値がハードウエア
ケーパビリテイレジスタ内に保持されており、各
記憶アクセスが侵害に対してチエツクされる。ケ
ーパビリテイハンドリング操作が英国特許第
1329721号および第1410631号に開示されている。
各プロセスにはそのプロセスに割当てられる記憶
ブロツクを定義するポインタテーブルが設けられ
ている。
To create a secure environment for each process, storage protection configurations are used and include so-called "capabilities." Each process is assigned a memory block that holds its instructions and data. Each block is defined in size and location by a "base" and "limit" address and an "access" code that constrains the type of access to each block. One process has the capability to have permissible access to each of these storage areas. The value currently in use is kept in a hardware capability register and each memory access is checked for violations. Capability handling operation received UK patent no.
No. 1329721 and No. 1410631.
Each process is provided with a pointer table that defines the storage blocks assigned to that process.

前記したようにシステム250内の各プロセス
にはケーパビリテイ機構により保護されたプロセ
スダンプスタツクが付随している。このダンプス
タツクの機能は(i)一時停止点におけるプロセス状
態に対する記憶装置を提供する。(ii)プロセスの呼
出し手順(即ちサブルーチン)に関する情報をス
タツク(即ちネスト)する。
As mentioned above, each process within system 250 has an associated process dump stack protected by a capability mechanism. The functions of the dump stack are (i) to provide storage for the process state at a suspension point; (ii) Stacking (or nesting) information regarding the calling sequence (or subroutine) of the process.

従つてプロセスダンプスタツクは基本的にマシ
ンレジスタと表示器を含む固定部分および各ネス
トされたルーチン(即ちプロセスもしくはサブル
ーチン)に対して一つのエントリ(即ちリンク)
を有する押下スタツクとして作動する可変記分か
らなつている。典型的に各ネストされたルーチン
のリンク内に記憶された情報は(a)ネストされたル
ーチンへの帰還点に対する相対化された命令アド
レスレジスタと、(b)ネストされたルーチンのコー
ドブロツクに対するケーパビリテイポインタと、
(c)ネストされたルーチンのポインタテーブルに対
するケーパビリテイポインタとを有している。
The process dump stack is therefore basically a fixed part containing machine registers and indicators, and one entry (i.e. link) for each nested routine (i.e. process or subroutine).
It consists of a variable register that operates as a press stack with a . The information typically stored within each nested routine link includes (a) a relativized instruction address register for the return point to the nested routine, and (b) a caper for the nested routine's code block. integrity pointer,
(c) It has a capability pointer to a nested routine pointer table.

プロセスダンプスタツクの提供する機能を特に
押下スタツク領域リンクに関して拡張することが
本発明の目的である。
It is an object of the present invention to extend the functionality provided by the process dump stack, particularly with respect to pressed stack area links.

本発明によりマルチプログラミングデータ処理
システムが提供され、各プロセスには、(a)プロセ
スの一時停止時にマシンレジスタと表示器の内容
を記憶する固定部分と、(b)プロセスの実施する各
ネストされたサブルーチンのリンクを記憶する可
変部分とを有するプロセスダンプスタツクが設け
られており、各リンクは(a)ネストされたルーチン
を戻す時にプロセスをそこへ戻す命令アドレス
と、(b)ネストされたルーチンのコードブロツク
と、(c)残りのリンクのサイズと内容を示すリンク
記述子とを含んでいる。
The present invention provides a multiprogramming data processing system in which each process has (a) a fixed portion that stores the contents of machine registers and indicators when the process is paused; A process dump stack is provided having a variable portion that stores links of subroutines, each link containing (a) an instruction address to which the process is returned when returning the nested routine, and (b) a variable portion that stores the links of the nested routine. (c) a link descriptor indicating the size and content of the remaining links.

リンク記述子を含んでいるため更に2クラスの
情報を各リンクに記憶することができ、それは即
ち(i)ドメーン変化手順中に保存されるデータおよ
びケーパビリテイレジスタと、(ii)局部記憶セグメ
ント用記述子である。局部記憶セグメント用記述
子は合計チエツク、ベースおよび限界情報を含ん
でいる。ここでベースおよび限界値は局部記憶ス
タツクのベースに関連しており、ダンプスタツク
と同様隠れたケーパビリテイレジスタC(L)に引用
される。リンク記述子はIAR語の最上位8ビツト
内に保持されている。これが0であればリンクは
(i)、IAR、(ii)、コードブロツクおよび(iii)、プロセ
スポインタブロツクの3項のみで構成される。主
記述子の最上位ビツトはスタツクされたレジスタ
の存在を示し、最下位7ビツトは生成された局部
記憶ケーパビリテイ番号を示す。
Two additional classes of information can be stored on each link due to the inclusion of link descriptors: (i) data and capability registers that are saved during domain change procedures; and (ii) local storage segments. This is a descriptor for use. Descriptors for local storage segments include total check, base and limit information. Here the base and limit values are related to the base of the local storage stack and are referenced to the hidden capability register C(L) as well as the dump stack. The link descriptor is held within the most significant eight bits of the IAR word. If this is 0, the link is
It consists of only three items: (i), IAR, (ii), code block, and (iii), process pointer block. The most significant bits of the main descriptor indicate the presence of a stacked register, and the seven least significant bits indicate the generated local storage capability number.

スタツクされたレジスタセツトにはサブルーチ
ンがネストされている時にスタツクされるレジス
タを示す1語記述子が付随されている。
A stacked register set is accompanied by a one-word descriptor indicating the registers that are stacked when the subroutine is nested.

局部記憶装置セグメントのケーパビリテイは(i)
要求局部記憶命令および(ii)、サブセツト局部記憶
命令であるハードウエア命令によつて行われる。
The capabilities of the local storage segment are (i)
This is done by a hardware instruction that is a request local store instruction and (ii) a subset local store instruction.

“要求局部記憶”命令により局部記憶セグメン
トが割当てられると、プロセスダンプスタツクに
3語エントリが行われる。このエントリは現在の
手順ネステイングレベルおよびある量のベーシツ
クアクセス情報を示すレベル番号を含んでいる。
ベースおよび限界値は局部記憶スタツクを基準と
しており、そのベースアドレスに関連している。
ケーパビリテイポインタのポインタフイールドは
ダンプスタツクのベースに関してオフセツトであ
る。同様の機構により局部記憶セグメントのサブ
セツトに対するケーパビリテイを構成することが
できる。これは“サブセツト局部記憶”命令によ
つて行われ、これは局部記憶セグメントの所与の
ケーパビリテイに対してそのセグメントのサブセ
ツトを生成し、それに対するケーパビリテイをレ
ジスタへ戻す。ダンプスタツクのエントリはサブ
セツトブロツクとしてマークされ、付随するレベ
ル番号は現在の手順ネステイングレベルに関連し
ている。
When a local storage segment is allocated by a "request local storage" instruction, a three word entry is made in the process dump stack. This entry contains a level number indicating the current procedure nesting level and some basic access information.
The base and limit values are relative to the local storage stack and are related to its base address.
The pointer field of the capability pointer is offset with respect to the base of the dump stack. Similar mechanisms can be used to configure capabilities for subsets of local storage segments. This is done by the "subset local store" instruction, which for a given capability of a local storage segment creates a subset of that segment and returns the capabilities for it to a register. Dump stack entries are marked as subset blocks, and the associated level number is related to the current procedure nesting level.

局部記憶は明確なハードウエア命令によつて割
当てられるが、エントリが行われたリンクの手順
から戻されると自動的に割当解除される。特定レ
ベルの全てのケーパビリテイはその手順レベルが
戻された時に休止し、これはレジスタのケーパビ
リテイを含む。
Local storage is allocated by explicit hardware instructions, but is automatically deallocated upon return from the link procedure in which the entry was made. All capabilities of a particular level are paused when that procedural level is returned, including the register capabilities.

各ケーパビリテイに付随するレベル番号の主機
能は非任意伝播制御機構を補強することである。
この制御は付随レベルの低いケーパビリテイ内に
ケーパビリテイが記憶されないことを保証する。
ケーパビリテイが情報の不在もしくは悪い取つて
替えられた(Superceded)情報を引用するのを
防止するのにこの安全機構は重要である。
The primary function of the level number associated with each capability is to enforce non-discretionary propagation control mechanisms.
This control ensures that no capabilities are stored within capabilities of lower attachment levels.
This safety mechanism is important to prevent capabilities from citing missing information or bad superceded information.

リンク記述子内の1個の“スタツクされたレジ
スタ”には1語レジスタ記述子が付随されてお
り、これはドメーンスイツチングが生じた時(即
ちルーチンがネストされる時)にスタツクされる
レジスタを示す。このレジスタ記述子は“保証さ
れた呼出し”命令によつて設定され、“リターン”
および“保護されたリターン”命令により使用さ
れてドメーンインターフエイスの自動選択定義を
可能とする。
A "stacked register" in a link descriptor has a one-word register descriptor attached to it, which is stacked when domain switching occurs (i.e., when routines are nested). Indicates a register. This register descriptor is set by a “guaranteed call” instruction and a “return”
and "protected return" commands to enable automatic selection definition of domain interfaces.

“保護された呼出し”命令においてデータレジ
スタ(DO)はレジスタ記述子として使用され
る。記述子の2つの機能はどのデータおよびケー
パビリテイレジスタが呼出し期間中に保存され、
どのデータおよびケーパビリテイレジスタがクリ
アされる即ち新しいドメーンに読取られることか
ら保護されるかを示すことである。保存されるレ
ジスタは次にダンプスタツクリンクへロードさ
れ、DOレジスタパターンがそのリンクのレジス
タ記述子へロードされる。
The data register (DO) is used as a register descriptor in the "protected call" instruction. Two features of the descriptor are: which data and capability registers are saved during the call;
It is to indicate which data and capability registers are cleared or protected from being read by a new domain. The registers to be saved are then loaded into the dump stack link and the DO register pattern is loaded into the register descriptor of that link.

“保護されたリターン”命令においてレジスタ
記述子は呼出しルーチンへ戻つた時にどのレジス
タがクリアされるかを決めるのに使用される。
In a "protected return" instruction, register descriptors are used to determine which registers are cleared upon return to the calling routine.

第1図においてモジユラーデータ処理システム
は(i)数個の処理装置CPU1およびCPU2と、(ii)
数個の記憶モジユラスSTA,STBおよびSTC
と、(iii)集約してPEに示す一群の周辺装置とを含
んでいる。各記憶モジユールおよび各周辺装置に
はアクセスユニツトSAUA,SAUB,SAUCお
よびPAUNが設けられている。
In FIG. 1, the modular data processing system includes (i) several processing units CPU1 and CPU2, and (ii)
Several memory moduli STA, STB and STC
and (iii) a group of peripheral devices collectively represented in the PE. Each storage module and each peripheral device is provided with access units SAUA, SAUB, SAUC and PAUN.

各処理装置には別々の通信経路即ちバスが設け
られている(処理装置CPU1およびCPU2に対
して夫々CB1およびCB2がインターフエイス
BIF1およびBIF2を介して設けられている。)
各バスは全てのアクセスユニツト(SAUA,
SAUB,SAUCおよびPAUN)の個々のポート
上で終止する。全てのアクセスユニツトには入力
ポート上で終止するバス上に加えられるコード化
されたアドレス情報を認識する機能が設けられて
いる。プロセスの処理に使用されるさまざまなセ
グメントは記憶モジユール全体に分布されてお
り、全てのアドレツシング操作はケーパビリテイ
レジスタ保護システムに基いている。
Each processing unit is provided with a separate communication path or bus (CB1 and CB2 are interfaces for processing units CPU1 and CPU2, respectively).
It is provided via BIF1 and BIF2. )
Each bus connects all access units (SAUA,
SAUB, SAUC and PAUN) terminate on individual ports. All access units are equipped to recognize coded address information applied on the bus terminating on the input port. The various segments used to handle the process are distributed throughout the storage module, and all addressing operations are based on a capability register protection system.

次に第2図において各処理装置CPUはAデー
タフアイルADFおよびBデータフアイルBDFを
含んでおり、各々がAおよびBケーパビリテイレ
ジスタフアイル(ACA/LおよびACB)および
BCF(BCA/LおよびBCB)と共に32位置を含
んでいる。ケーパビリテイレジスタは英国特許第
1329721号に開示されたタイプの情報保護構成を
提供するのに使用される。データフアイルADF
およびBDFは各々が8個の汎用レジスタを含む
重複レジスタ構成を提供する。
Next, in FIG. 2, each processing unit CPU includes an A data file ADF and a B data file BDF, each of which has A and B capability register files (ACA/L and ACB) and
Contains 32 positions along with BCF (BCA/L and BCB). The capability register is a British patent no.
No. 1,329,721. Data file ADF
and BDF provide overlapping register configurations, each containing eight general purpose registers.

レジスタの種類 4種類のレジスタがあり、データレジスタと、
ケーパビリテイポインタレジスタと、ケーパビリ
テイレジスタとインジケータレジスタである、初
めの3種類においていくつかは汎用であり全ての
プログラムに直接アクセスできる。残りは特定機
能に使用する特殊目的レジスタであり、適当なケ
ーパビリテイを処理するプログラムのみにアクセ
スできる。完全なレジスタ構造を第3図および第
4図に示す。
Types of registers There are four types of registers: data registers,
Some of the first three types, capability pointer registers, capability registers, and indicator registers, are general-purpose and can be directly accessed by all programs. The rest are special purpose registers used for specific functions and are accessible only to programs that handle the appropriate capabilities. The complete register structure is shown in FIGS. 3 and 4.

汎用データレジスタ(D(0)〜D(7) 各々が24ビツト長のD(0)〜D(7)までの8個
の汎用データレジスタがあり全てのデータ操作を
行う。記憶アドレス形成期間中にこれら7個のレ
ジスタD(1)〜D(7)をアドレス修飾子として使用す
ることができる。レジスタD(0)はマスクレジ
スタであり記憶装置に対して1語の一部を転送す
る時所要ビツトの指定に使用することができる。
レジスタD(0)は一つの命令から他の命令へパ
ラメータを通すためにも使用される。後者の用途
については後記する。
General-purpose data registers (D(0) to D(7)) There are eight general-purpose data registers, D(0) to D(7), each 24 bits long, and perform all data operations. During the storage address formation period. These seven registers D(1) to D(7) can be used as address qualifiers.Register D(0) is a mask register and is used when transferring part of one word to the storage device. It can be used to specify the required bits.
Register D(0) is also used to pass parameters from one instruction to another. The latter use will be described later.

汎用ケーパビリテイレジスタ(C(0)〜C(7)) ケーパビリテイレジスタ(C(0)〜C(7)をロ
ードする時、それはベースアドレスとリミツトア
ドレスと記憶ブロツクに対するアクセス権を含ん
でいる。
General Capability Registers (C(0) to C(7)) When loading a capability register (C(0) to C(7)), it contains the base address, limit address, and access rights to the memory block. I'm here.

処理装置はカレントプログラムブロツクに対し
てケーパビリテイを保持するためにケーパビリテ
イレジスタC(7)を使用し、C(7)へ新しいケーパビ
リテイをロードする命令により、ロードされたケ
ーパビリテイが定義するブロツクへ制御を転送す
る。プログラムブロツクから命令が読出されるた
びに処理装置はC(7)がその主アクセスフイールド
に設定されたEXECUTE DATAを有すること、
および命令のアドレスがケーパビリテイのベース
およびリミツトアドレス間にあることをチエツク
する。EXECUTE DATAを持たないC(7)へケー
パビリテイをロードすると、故障中断が発生して
次に使用される。命令アドレスがベースおよびリ
ミツトの範囲外にある場合にも故障中断が発生す
る。ケーパビリテイレジスタC(6)は一般的にドメ
ーンケーパビリテイポインタブロツクを引用する
のに使用されるが、その理由はそれがプロセスダ
ンプスタツク内の各リンクの一部を形成し、呼出
しおよびリターン命令が上書きされるためであ
る。
The processing unit uses a capability register C(7) to hold capabilities for the current program block, and an instruction to load a new capability into C(7) transfers control to the block defined by the loaded capability. Transfer. that each time an instruction is read from a program block, the processing unit has C(7) set in its main access field;
and the address of the instruction is between the base and limit addresses of the capability. If a capability is loaded into C(7) that does not have EXECUTE DATA, a failure interruption will occur and it will be used next. A fault abort also occurs if the instruction address is outside the base and limit ranges. Capability register C(6) is commonly used to refer to the domain capability pointer block because it forms part of each link in the process dump stack and This is because the return command is overwritten.

特殊目的データレジスタ 特殊目的データレジスタを下記に示す。special purpose data register The special purpose data registers are shown below.

(1) 命令アドレスレジスタ(IAR) 本レジスタは汎用ケーパビリテイレジスタC(7)
が指定するプログラムブロツク内にカレント命令
のアブソリユートアドレスを含んでいる。それは
呼出し、リターンおよびケーパビリテイC(7)ロー
ドの各命令により変えられプロセスを変更する命
令により変更される。
(1) Instruction address register (IAR) This register is general-purpose capability register C(7)
The program block specified by contains the absolute address of the current instruction. It is changed by call, return, and load capability C(7) instructions, and by instructions that modify the process.

2 ウオツチドツクタイマレジスタ(WTR) 本レジスタはプロセスを変更する命令により変
更され、古い値は一時停止したプロセスのプロセ
スダンプスタツク内にたくわえられ、新しい値は
活動プロセスのダンプスタツクからロードされ
る。それは100μsごとに減分される。0に達する
と故障中断が生じる。(第4節参照)従つてそれ
は各プロセスが活動する合計時間を測定する。
2 Watchdog Timer Register (WTR) This register is modified by instructions that modify the process; the old value is stored in the process dump stack of a suspended process, and the new value is loaded from the dump stack of an active process. It is decremented every 100μs. When 0 is reached, a fault interruption occurs. (See Section 4) It therefore measures the total time each process is active.

3 インタラプトアクセプトレジスタ(IR) 本レジスタは単一ビツト即ちビツト6を含み、
プログラムトラツプを受入れた時に設定される。
(第4節参照) 4 プロセスダンプスタツク押下レジスタ
(DSPPR) 本レジスタはプロセスダンプスタツクのカレン
トトツプを定義するアブソリユートアドレスポイ
ンタを含んでいる。(即ちダンピングに利用でき
る領域内の第1語を指摘する。)それはリターン
呼出し、要求局部記憶、およびサブセツト局部記
憶命令によつて変えられ、変更プロセス命令によ
つて変更される。
3 Interrupt Accept Register (IR) This register contains a single bit, bit 6,
Set when a program trap is accepted.
(See Section 4) 4 Process Dump Stack Press Register (DSPPR) This register contains an absolute address pointer that defines the current top of the process dump stack. (ie, points to the first word in the area available for dumping.) It is changed by return calls, request local store, and subset local store instructions, and it is changed by modify process instructions.

5 故障表示器ダンプレジスタ 最初の故障中断に続いて本レジスタは故障表示
器レジスタの状態を含んでいる。
5 Fault Indicator Dump Register Following the first fault abort, this register contains the state of the fault indicator register.

6 レベル番号(LNR)および局部記憶スタツ
クポインタレジスタ(LSPR) 本レジスタは2部分に分割されている。最上位
8ビツトはプロセスのカレントリンクレベル番号
を含んでいる。それは呼出しおよびリターン命令
により変えられ変更プロセス命令により変更され
る。レジスタの最下位16ビツトは局部記憶スタツ
クのカレントトツプを定義する相対アドレスポイ
ンタ(C(L)のベースに関する)を含んでいる。
(即ち割当てに利用できる領域内の第1語を指摘
する)それは要求局部記憶、サブセツト局部記憶
およびリターン命令により変えられ変更プロセス
命令により変更される。
6 Level Number (LNR) and Local Storage Stack Pointer Register (LSPR) This register is divided into two parts. The most significant eight bits contain the process' current link level number. It is changed by call and return instructions and modified by modify process instructions. The least significant 16 bits of the register contain a relative address pointer (relative to the base of C(L)) that defines the current top of the local storage stack.
(i.e. points to the first word in the area available for allocation) which is changed by the request local store, subset local store and return instructions and by the modify process command.

7 局部ケーパビリテイカウント(LCCR)およ
び局部記憶クリアカウントレジスタ(LSCCR) 本レジスタは2部分に分割されている。最上位
8ビツトはカレントリンクレベルで生成される局
部ケーパビリテイ番号のカウントを含んでいる。
それは要求局部記憶およびサブセツト局部記憶命
令により変えられ、呼出し、リターンおよび変更
プロセス命令により変更される。レジスタの最下
位16ビツトは局部記憶クリアカウントを含んでい
る。それは要求局部記憶により変えられ、変更プ
ロセス命令により変更される。
7 Local Capability Count (LCCR) and Local Storage Clear Count Register (LSCCR) This register is divided into two parts. The eight most significant bits contain a count of the local capability number generated at the current link level.
It is modified by request local store and subset local store instructions, and by call, return, and modify process instructions. The least significant 16 bits of the register contain the local memory clear count. It is changed by request local storage and changed by change process instructions.

8 データレジスタD(A)およびD(B) これらのレジスタはプロセツサのいずれの機能
によつても使用されないが、“内部モード”を使
用したデータ命令によりアクセスすることができ
る。インタラプトアクセプトレジスタを除き特殊
目的データレジスタは24ビツト長である。それら
は全て特長命令のみならず“内部モード”を使用
したデータ命令によりアクセスすることができ
る。
8 Data Registers D(A) and D(B) These registers are not used by any processor function, but can be accessed by data instructions using "internal mode." Special purpose data registers, except the interrupt accept register, are 24 bits long. All of them can be accessed by data commands using "internal modes" as well as feature commands.

特殊目的ケーパビリテイレジスタ 8個の特殊目的ケーパビリテイレジスタがあ
り、処理装置が制御情報へアクセスするのに使用
する。特殊ローデイング命令が供給されないため
それらは“内部モード”へアドレスする能力を持
つたプログラムにより読出し改変できる。
Special Purpose Capability Registers There are eight special purpose capability registers used by the processing unit to access control information. Since no special loading instructions are provided, they can be read and modified by programs with the ability to address "internal modes."

1 ケーパビリテイレジスタC(D) 本レジスタは活動プロセスの処理装置ダンプス
タツクに対するベース/リミツトアドレスおよび
アクセスコードを含んでいる。それは変更プロセ
ス命令により変えられ、呼出し、リターン、要求
局部記憶およびサブセツト局部記憶命令により操
作される。
1 Capability Register C(D) This register contains the base/limit address and access code for the active process's processor dump stack. It is changed by modify process instructions and manipulated by call, return, request local store, and subset local store instructions.

2 ケーパビリテイレジスタC(I) 本レジスタは第1語がインターバルタイマ値を
含む記憶ブロツクを定義する。それは経過した絶
対時間を測定し、処理装置により100μsごとに減
分される。0に達するとノーマルインタラプトが
発生する。
2 Capability Register C(I) This register defines a storage block whose first word contains the interval timer value. It measures the absolute time elapsed and is decremented by the processing unit every 100 μs. When it reaches 0, a normal interrupt occurs.

3 ケーパビリテイレジスタC(C1) 本レジスタはシステムケーパビリテイテーブル
の第1部分を含む記憶ブロツクを定義する。
3 Capability Register C (C1) This register defines the storage block containing the first part of the system capability table.

4 ケーパビリテイレジスタC(C2) 本レジスタはシステムケーパビリテイテーブル
の第2部分を含む記憶ブロツクを定義する。
4 Capability Register C (C2) This register defines the storage block containing the second part of the system capabilities table.

5 ケーパビリテイレジスタC(N) 本レジスタは第1語がノーマルインタラプトプ
ロセスへのエントリを行うケーパビリテイポイン
タを含む記憶ブロツクを定義する。
5 Capability Register C(N) This register defines a storage block whose first word contains a capability pointer that provides entry into the normal interrupt process.

6 ケーパビリテイレジスタC(S) 本レジスタは故障中断を処理する時に処理装置
が使用する4語記憶ブロツクを定義する。故障シ
ーケンス中にベース語の最上位12ビツトが増分さ
れ、レジスタの残りはパワーアツプに続いて処理
装置によりプリセツトされている。
6 Capability Register C(S) This register defines a 4-word storage block used by the processor when handling fault interruptions. The 12 most significant bits of the base word are incremented during the failure sequence and the rest of the registers are preset by the processor following power-up.

7 ケーパビリテイレジスタC(L) 本レジスタはカレントプロセスの局部記憶スタ
ツクに対する記憶ブロツクを定義する。それは変
更プロセス命令により変更される。
7 Capability Register C(L) This register defines the storage block for the current process's local storage stack. It is changed by a change process instruction.

8 ケーパビリテイレジスタC(P) 本レジスタは記憶装置にアクセスする時プログ
ラマインターフエイスにより使用される。
8 Capability Register C(P) This register is used by the programmer interface when accessing storage.

表示器レジスタ 主表示器(第2図および第4図のPIR)、故障
表示器FIR、試験TRおよびヒストリカルHRレ
ジスタの4個の表示器レジスタがある。これらは
処理装置内のさまざまな状態を表示する。これら
は内部モードでのみアクセス可能である。主表示
器レジスタの内容は変更プロセス命令により変更
され、古い値は一時停止プロセスのプロセスダン
プスタツク内に蓄えられ次に新しい値が活動プロ
セスのダンプスタツクからロードされる。
Indicator Registers There are four indicator registers: the main indicator (PIR in Figures 2 and 4), fault indicator FIR, test TR, and historical HR register. These indicate various conditions within the processing unit. These are only accessible in internal mode. The contents of the main indicator register are changed by a modify process instruction, the old value is stored in the process dump stack of the suspended process, and the new value is then loaded from the dump stack of the active process.

主表示器レジスタ(PIR) 主表示器レジスタは8ビツト長である。0〜2
ビツトは0に等しい。(0ビツト)、0より小さ
い、(1ビツト)、オーバフロー、(2ビツト)の
演算表示器である。これらは過半数の命令の結果
により設定もしくはクリアされる。
Main Indicator Register (PIR) The main indicator register is 8 bits long. 0-2
Bit equals 0. (0 bit), less than 0, (1 bit), overflow, (2 bits). These are set or cleared by the result of a majority command.

4,5ビツトは制御表示器である。 Bits 4 and 5 are control indicators.

1 特殊モード(4ビツト)は1命令に対しての
み設定されたままである。設定された場合それ
は対応する汎用ケーパビリテイレジスタの替り
にケーパビリテイのロード命令を特殊目的ケー
パビリテイレジスタへアクセスする。
1 Special mode (4 bits) remains set for only one instruction. If set, it causes load capability instructions to access special purpose capability registers instead of the corresponding general purpose capability registers.

2 インタフエイス故障抑止(5ビツト)は1命
令に対してのみ設定されたままである。設定さ
れるとそれは故障中断を抑止し、これは通常記
憶装置から取出されたオペランドが処理装置/
記憶装置インターフエイス故障を検出する時に
生じる。
2 Interface failure suppression (5 bits) remains set for only one instruction. When set, it suppresses failure aborts, which usually means that operands retrieved from storage are
Occurs when detecting a storage interface failure.

7ビツトは第1試行表示器である。それは故障
中断により設定され処理装置の後続する故障に対
する応答に影響をおよぼす。
The 7th bit is the first trial indicator. It is set by a fault interruption and affects the processing device's response to subsequent faults.

8ビツトは抑止割込表示器である。それは設定
された時タイマ割込が生じるのを抑止する。
8 bits are the inhibit interrupt indicator. It prevents timer interrupts from occurring when set.

故障表示器レジスタ(FIR) 故障表示器レジスタは24ビツト長である。どの
ビツトも内部モードアクセスで設定することがで
き、どのビツトもクリアすることができる。下記
事象により設定されると故障中断が生じるが、主
表示器レジスタにインターフエイス故障抑止が設
定されている場合は処理装置/記憶装置インター
フエイス故障が生じる。
Fault Indicator Register (FIR) The Fault Indicator Register is 24 bits long. Any bit can be set with internal mode access, and any bit can be cleared. A fault abort will occur if set by the following events, but a processor/storage interface fault will occur if interface fault inhibition is set in the main indicator register.

0,5,9―11,14ビツトは処理装置/記憶装
置故障を示す。
Bits 0, 5, 9-11, and 14 indicate a processing unit/storage unit failure.

記憶アクセス後400μs以内に並列バスからのい
ずれかの入力線が論理0に戻つていない場合バス
コラプト(0ビツト)が設定される。
Bus Corrupt (0 bit) is set if any input line from the parallel bus does not return to logic 0 within 400 μs after a memory access.

記憶アクセス中にモジユールがアドレスもしく
はデータを受入れできないことを記憶モジユール
が報告するとスレーブタイムアウト(5ビツト)
が設定される。
Slave timeout (5 bits) when a storage module reports that it cannot accept an address or data during a storage access.
is set.

記憶モジユールが50μs以内に応答しない場合記
憶インターフエイスタイムアウト(9ビツト)が
設定される。
A storage interface timeout (9 bits) is set if the storage module does not respond within 50 μs.

記憶モジユールが前進語(即ち“アドレス”も
しくは“アドレス/データ”)上に発生しCPUに
戻されるパリテイが処理装置の発生するものと等
しくない場合、パリテイ比較故障(10ビツト)が
設定される。
A parity comparison fault (10 bits) is set if the storage module generates a forward word (ie, ``address'' or ``address/data'') and the parity returned to the CPU is not equal to that generated by the processing unit.

記憶装置から読出される“データ/アドレス”
パリテイが記憶装置からのアドレスおよびデータ
上に処理装置が発生するものと等しくない場合読
出しデータパリテイ故障(11ビツト)が設定され
る。
“Data/address” read from storage device
A read data parity fault (11 bits) is set if the parity is not equal to what the processor generates on the address and data from the storage device.

CPU/記憶装置転送期間中に不当制御コード
を受信したことを記憶モジユールが報告すると不
当制御コード(14ビツト)が設定される。3ビツ
トと奇数パリテイコードが使用される。
The Illegal Control Code (14 bits) is set when the storage module reports that it has received an Illegal Control Code during a CPU/Storage transfer. 3 bits and an odd parity code are used.

2ビツトは割込時間限れ表示器である。それは
間隔タイマー語が0に減分されてから(抑止割込
が設定されていない場合)300mS間割込アクセプ
トレジスタがアクセスされていない場合、もしく
は故障中断300mS後にこの状態が生じていない場
合に設定される。
Two bits are the interrupt time limit indicator. It is set if the interrupt accept register is not accessed for 300mS after the interval timer word is decremented to 0 (if no inhibit interrupts are set), or if this condition does not occur after 300mS of failure interruption. be done.

6―8ビツトおよび18ビツトはケーパビリテイ
故障を示す。アクセス試行に使用したケーパビリ
テイレジスタ内の重複ベースアドレス、リミツト
アドレスもしくはアクセスコードが同一でないと
判つた場合にケーパビリテイ比較故障(6ビツ
ト)が設定される。左へ9ビツト循環した合計チ
エツク語がケーパビリテイレジスタがロードされ
ている場合のベースおよびリミツト値に一致しな
い場合ケーパビリテイ合計チエツク故障(7ビツ
ト)が設定される。
Bits 6-8 and 18 indicate a capability failure. A capability comparison fault (6 bits) is set when it is determined that the duplicate base address, limit address, or access code in the capability register used in the access attempt is not the same. A capability total check fault (7 bits) is set if the total check word rotated 9 bits to the left does not match the base and limit values when the capability register is loaded.

使用するケーパビリテイのベースおよびリミツ
トアドレスが指定する範囲外にアドレスがあるこ
とが判つた場合ケーパビリテイベース/リミツト
侵害(8ビツト)が設定される。
If it is found that there is an address outside the range specified by the base and limit address of the capability to be used, capability base/limit violation (8 bits) is set.

不正転送が試みられるとアクセスフイールド侵
害(8ビツト)が設定される。
The access field violation (8 bits) is set when an unauthorized transfer is attempted.

12ビツトは不当動作表示器である。それは不当
動作が試みられる場に設定される。
12 bits are an illegal operation indicator. It is set in place where an illegal action is attempted.

13ビツトは電源故障表示器である。それは給電
限界を越えた時に設定される。
The 13 bit is a power failure indicator. It is set when the power supply limit is exceeded.

15ビツトはトラツプ故障表示器である。それは
抑止割込が設定されている時にプログラムトラツ
プが生じると設定される。
The 15 bit is a trap fault indicator. It is set when a program trap occurs while inhibit interrupts are set.

16ビツトおよび19ビツトはハードウエア故障を
示す。ある内部ハードウエアが故障をチエツクす
ればハードウエア故障1およびハードウエア故障
2が設定される。
16 bits and 19 bits indicate a hardware failure. If a certain internal hardware is checked for failure, hardware failure 1 and hardware failure 2 are set.

17ビツトはウオツチドツクタイマゼロ表示器で
ある。それはウオツチドツクタイマレジスタが0
になると設定される。
The 17 bit is the watchdog timer zero indicator. It means that the watchdog timer register is 0.
It will be set when .

20〜23ビツトは故障もしくはトラツプが生じる
時に使用されるケーパビリテイレジスタの8進ア
ドレスへ設定される。
Bits 20-23 are set to the octal address of the capability register used when a fault or trap occurs.

3ビツトおよび4ビツトは“内部モード”を使
用したデータ命令によつてのみ設定/復帰でき
る。
Bits 3 and 4 can only be set/reset by data commands using "internal mode".

試験レジスタ(TR) 本レジスタは故障検出機構の試験施設を含んで
いる。
Test Register (TR) This register contains test facilities for fault detection mechanisms.

ヒストリカルレジスタ(HR) 16個の26ビツトレジスタ群の中の1個のレジス
タを4ビツトアドレスカウンタにより一時にアド
レスできる。これらは故障調査ルーチンに使用す
る第1イン/第1アウト円形待ち行列を構成す
る。
Historical register (HR) One register in a group of 16 26-bit registers can be addressed at a time by a 4-bit address counter. These constitute a first in/first out circular queue for use in fault investigation routines.

前記レジスタの使用方法を第2図に示すビツト
マルチプレクサBM、演算装置ALU、命令レジ
スタIREG、データインレジスタMDIN、メモリ
アドレスレジスタMAR、データアウトレジスタ
MDOR、A,Bケーパビリテイチエツク比較器
ACCおよびBCCと共に、プロセスダンプスタツ
ク内の情報を処理する命令実行時の処理装置の動
作に関して後記する。
Figure 2 shows how to use the registers: bit multiplexer BM, arithmetic unit ALU, instruction register IREG, data in register MDIN, memory address register MAR, data out register.
MDOR, A, B capability check comparator
In conjunction with ACC and BCC, the operation of the processing device when executing an instruction that processes information in the process dump stack will be described later.

プロセスダンプスタツク 各プロセスにはプロセスダンプスタツクが付随
しており、それはプロセス実行時に特殊目的ケー
パビリテイレジスタC(D)により定義される記憶ブ
ロツクである。プロセスダンプスタツクは3機能
を有する。
Process Dump Stack Associated with each process is a process dump stack, which is a storage block defined by special purpose capability registers C(D) when the process is running. The process dump stack has three functions.

1 一時停止中にプロセス環境を保存する。1. Save the process environment during suspension.

2 他のサブルーチンの呼出し中にサブルーチン
環境値をスタツクする。
2. Stack subroutine environment values during calls to other subroutines.

3 局部記憶スタツク上に割当てられた局部記憶
ブロツクに対する局部ケーパビリテイテーブル
として作用する。
3. Acts as a local capability table for local storage blocks allocated on the local storage stack.

プロセスダンプスタツクは呼出し、要求局部記
憶、サブセツト局部記憶命令および変更プロセス
により更新される。変更プロセス命令はこのよう
な2つのスタツクを含んでいる。典型的なカレン
トプロセスダンプスタツクの内容を第5図に示
す。
The process dump stack is updated by calls, request local storage, subset local storage instructions, and modification processes. The change process instruction includes two such stacks. The contents of a typical current process dump stack are shown in FIG.

プロセスダンプスタツクは固定サイズ領域およ
びスタツク領域を有している。固定領域は一時停
止中のプロセス環境をダンプするのに使用する。
変更プロセスマイクロシーケンス期間中にケーパ
ビリテイポインタレジスタP(0)〜P(5)からの
ケーパビリテイポインタは位置Pd(0)〜Pd(5)へ
ダンプされ、データレジスタD(0)〜D(7)の内
容は位置Dd(0)〜Dd(7)へダンプされる。更に
数個の特殊プロセス値が固定領域へダンプされ
る。これらは押下レジスタ、ウオツチドツクタイ
マ、主表示器レジスタ、レベル番号(LN)およ
び局部記憶スタツクポインタレジスタ(LSSP)
および局部記憶クリアカウントレジスタ
(LSCC)である。ケーパビリテイポインタレジ
スタP(6),P(7)からのケーパビリテイポインタは
カレント(関連)命令アドレスレジスタおよび局
部ケーパビリテイカウントレジスタと共にスタツ
クへダンプされる。
A process dump stack has a fixed size area and a stack area. The fixed area is used to dump the environment of a suspended process.
During the modification process microsequence, the capability pointers from capability pointer registers P(0)-P(5) are dumped to locations Pd(0)-Pd(5) and data registers D(0)-D The contents of (7) are dumped to locations Dd(0) to Dd(7). Additionally, some special process values are dumped into the fixed area. These are the press register, watchdog timer, main display register, level number (LN) and local storage stack pointer register (LSSP).
and the local storage clear count register (LSCC). The capability pointer from the capability pointer registers P(6), P(7) is dumped onto the stack along with the current (associated) instruction address register and local capability count register.

押下ポインタレジスタは変更プロセス中に押下
ポインタ位置へダンプされてダンプスタツクに最
後に書かれた語(即ち命令アドレス)を指示す
る。プロセスの実行中このレジスタはスタツクの
頂部(即ちスタツク上の次に利用可能な位置)を
指摘する。呼出し中にデータレジスタD(1)〜D(6)
およびケーパビリテイポインタレジスタP(0)
〜P(5)は命令の指定により保存することができ、
この場合記述子値はどのレジスタが次のようにス
タツクされたかを示す。
The press pointer register points to the last word (ie, instruction address) dumped to the press pointer location during the modification process and written to the dump stack. During execution of the process, this register points to the top of the stack (ie, the next available location on the stack). Data registers D(1) to D(6) during call
and capability pointer register P(0)
~P(5) can be saved by specifying the command,
In this case the descriptor value indicates which registers are stacked as follows.

18〜23ビツト P(0)〜P(5) 12〜17ビツト D(1)〜D(6) 特定ビツトを1へ設定することはレジスタをス
タツクすることを示す。ケーパビリテイポインタ
レジスタP(6),P(7)は呼出しにより、次の命令に
対する命令アドレスレジスタ(相対)と共に常に
保存される。IAR語内の最上位ビツトを1に設定
することはレジスタがスタツクされることを示
す。
18-23 bits P(0)-P(5) 12-17 bits D(1)-D(6) Setting a specific bit to 1 indicates that the registers are stacked. Capability pointer registers P(6), P(7) are always saved along with the instruction address register (relative) for the next instruction by a call. Setting the most significant bit in the IAR word to 1 indicates that the register is stacked.

要求局部記憶命令により局部記憶スタツク上に
局部記憶が割当てられるか、あるいはサブセツト
記憶命令によりサブブロツクが定義される時は常
にプロセスダンプスタツク上に3語エントリーが
行われる。3語エントリーは合計チエツク語、ベ
ース語およびリミツト語からなつている。ベース
語の最下位16ビツトは指定ブロツクの第1位置の
局部記憶スタツクケーパビリテイレジスタC(L)の
ベースに関してオフセツトを含んでいる。ベース
語の23ビツトはサブケーパビリテイビツトを含ん
でいる。リミツト語の最下位16ビツトは指定ブロ
ツクの最終位置の局部記憶スタツクケーパビリテ
イレジスタC(L)のベースに関してオフセツトを含
んでいる。リミツト語の最下位8ビツトは局部ケ
ーパビリテイテーブルエントリを生成したレベル
番号を含んでいる。合計チエツク語はベース語の
最下位16ビツトをリミツト語の最下位16ビツトに
加えて形成した24ビツトチエツク語を含んでい
る。局部ケーパビリテイテーブルエントリーのフ
オーマツトを第6図に示す。
A three-word entry is made on the process dump stack whenever local storage is allocated on the local storage stack by a request local storage instruction or a subblock is defined by a subset storage instruction. The three-word entry consists of a total check word, a base word, and a limit word. The least significant 16 bits of the base word contain the offset with respect to the base of the local storage stack capability register C(L) in the first location of the designated block. The 23 bits of the base word contain subcapability bits. The least significant 16 bits of the limit word contain the offset with respect to the base of the local storage stack capability register C(L) of the final location of the specified block. The least significant eight bits of the limit word contain the level number that generated the local capability table entry. The total check word includes a 24-bit check word formed by adding the least significant 16 bits of the base word to the least significant 16 bits of the limit word. The format of the local capability table entry is shown in FIG.

要求局部記憶命令はサブケーパビリテイビツト
リセツトを有する局部ケーパビリテイテーブルを
生成し、サビセツト局部記憶命令はサブケーパビ
リテイビツトセツトを有する局部ケーパビリテイ
テーブルエントリを生成する。
A request local store instruction generates a local capability table with a subcapability bit reset, and a subset local store instruction generates a local capability table entry with a subcapability bit set.

次に第2図の処理装置がプロセスダンプスタツ
ク内に保持された情報を処理するさまざまな命令
の実行パフオーマンスについて検討する。処理装
置が実行するさまざまな動作は図示しないマイク
ロプログラム制御装置によつて制御されるが、本
技術に習熟した人には第7図〜第10図のフロー
図により定義される所望動作を例えば各フロー図
ステツプに対して所望制御信号を発生するプログ
ラムROMを使用して説明できることが判るであ
ろう。以下の説明においてさまざまなレジスタか
らレジスタへの転送が生じるが、説明を簡単にす
るため:=の符号を含む速記法を使用する。この
符号は“となる”ことを定義するものとし、
ALU:=MDINのステートメントは演算装置
(ALU)がレジスタMDIN内に保持されたデータ
を受け取るものと解釈する。
Next, consider the execution performance of various instructions by which the processing device of FIG. 2 processes information held in the process dump stack. Although the various operations executed by the processing device are controlled by a microprogram control device (not shown), those skilled in the art will be able to understand the desired operations defined by the flowcharts of FIGS. 7 to 10, for example. It will be appreciated that the flowchart steps can be illustrated using a program ROM to generate the desired control signals. Although various register-to-register transfers occur in the following description, shorthand notation including the = sign is used to simplify the description. This symbol shall define “to be”,
The ALU:=MDIN statement is interpreted as an arithmetic unit (ALU) receiving data held in register MDIN.

考慮すべき第1命令は“要求局部記憶”であり
その命令に対するフロー図を第7図に示す。
The first instruction to be considered is "request local storage" and the flow diagram for that instruction is shown in FIG.

要求局部記憶命令 第7図の頂部に示す命令語IWはこの命令
(RLS)が記憶モード(S)で実行され、局部記
憶ブロツクにM、C(X)の定義する記憶位置内
に保持されたデータで示されるサイズと命令語の
Aフイールドを割当てることを要求し、その局部
記憶ブロツクに対するケーパビリテイ記述子がケ
ーパビリテイレジスタC(N)にロードされる。
Mフイールドはアドレス修飾子として使用するデ
ータレジスタの一つを定義し、C(X)フイール
ドは所望記憶位置が保持されているブロツクに対
する記述子を保持している汎用ケーパビリテイレ
ジスタを定義し、A値は所望位置に対するそのブ
ロツクのベースからのオフセツトを定義する。前
の命令サイクル中に命令語IWが記憶装置から第
2図の命令バツフアIBへ読み出され、機能コー
ドおよびレジスタ選定フイールドがマイクロプロ
グラム記憶装置(図示せず)に加えられてこの命
令動作を開始し、それはマイクロプログラム制御
の元で引き続くステツプシーケンスにより実行さ
れる。
Request local storage instruction The instruction word IW shown at the top of FIG. A request is made to allocate the A field of the size and instruction word indicated by the data, and the capability descriptor for that local storage block is loaded into the capability register C(N).
The M field defines one of the data registers used as an address qualifier, the C(X) field defines a general capability register holding a descriptor for the block in which the desired memory location is held, and The A value defines the offset from the base of the block for the desired location. During the previous instruction cycle, the instruction word IW is read from storage into the instruction buffer IB of FIG. 2, and the function code and register selection fields are added to the microprogram storage (not shown) to initiate this instruction operation. However, it is executed by a subsequent sequence of steps under microprogram control.

ステツプS1LSCC=0? 本ステツプにおいて局部記憶クリアカウントレ
ジスタLSCCRがAフアイル内のマイクロプログ
ラム装置により選定されて演算装置ALUへ供給
され、マイクロプログラム装置は演算装置制御信
号AUCSを0に対してテストすることができる。
それが0であれば局部記憶装置には利用できるス
ペースがない。
Step S1LSCC=0? In this step, the local storage clear count register LSCCR is selected by the microprogram unit in the A-file and provided to the arithmetic unit ALU so that the microprogram unit can test the arithmetic unit control signal AUCS for zero.
If it is 0, there is no space available in local storage.

ステツプS2―記憶アドレスを読出す 本ステツプにおいて命令語のA値が定義する記
憶アドレスは適切な記憶モジユールからデータ入
力レジスタへ読み出される。典型的に本ステツプ
で実行される動作シーケンスは次のとおりであ
る。
Step S2 - Read Storage Address In this step, the storage address defined by the A value of the instruction word is read from the appropriate storage module to the data input register. The sequence of operations typically performed in this step is as follows.

ALUd:=C(X)ベース ALUa:=IREG(A値) ALU Add MAR :=ALU 記憶読出し@MAR MDIN:=BIN アドレス修正は要求されない(即ちM=0)も
のと仮定する。上記動作は適切な記憶モジユール
からレジスタMDIN内のデータへ読み出される
局部記憶ブロツクサイズ値LSSBを抽出してい
る。
ALUd:=C(X) Base ALUa:=IREG(A value) ALU Add MAR:=ALU Memory Read @MAR MDIN:=BIN Assume that no address modification is required (ie, M=0). The above operation extracts the local storage block size value LSSB which is read from the appropriate storage module to the data in register MDIN.

ステツプS3―LSSB=0? 本ステツプにおいてステツプS2で読み出され
たデータはALUへ通され、マイクロプログラム
装置によりALUCS信号を使用して0テストされ
る。0であれば故障表示され0でなければステツ
プS4が実行される。
Step S3-LSSB=0? In this step, the data read in step S2 is passed to the ALU and zero-tested by the microprogram device using the ALUCS signal. If it is 0, a failure is displayed, and if it is not 0, step S4 is executed.

ステツプS4―LSPR+LSSB−1 本ステツプにおいて局部記憶スタツクポインタ
レジスタ(LSPR)が読み出されて局部記憶スタ
ツクのカレントトツプ(即ち割当てに利用できる
領域内の第1語)を定義し、ブロツク要求に対す
る最終(即ちリミツト)アドレスがステツプS2
で読み出されたLSSB値から1を減じたものをカ
レントLSPRアドレスに加えることにより算出さ
れる。典型的にシーケンスは次の動作を含んでい
る。
Step S4 - LSPR + LSSB - 1 In this step, the local storage stack pointer register (LSPR) is read to define the current top of the local storage stack (i.e., the first word in the area available for allocation) and to determine the final word for the block request. (i.e. limit) address is step S2
It is calculated by subtracting 1 from the LSSB value read in and adding it to the current LSPR address. Typically the sequence includes the following actions:

ALUa:=LSPR ALUb:=MDIN−1 SAVE ALU LSBリミツト内のステツプS5 本ステツプにおいてステツプS4動作の結果が
テストされて、要求ブロツクが局部記憶領域をオ
ーバランするかどうかが調べられる。これは局部
記憶ケーパビリテイレジスタC(L)のリミツト半分
を選択し、それをケーパビリテイ比較器ACCお
よびBCC内のALUからの結果と比較して達成さ
れる。テストが失敗すると故障が発生する。
ALUa:=LSPR ALUb:=MDIN-1 SAVE ALU Step S5 in LSB Limit In this step, the result of the step S4 operation is tested to see if the requested block overruns the local storage area. This is accomplished by selecting the limit half of the local storage capability register C(L) and comparing it with the results from the ALU in capability comparators ACC and BCC. A failure occurs when a test fails.

ステツプ6DSへLSBベースを書込む 本ステツプにおいて現在ダンプスタツクの頂部
を指示しているダンプスタツク押下ポインタレジ
スタDSPPRは、要求局部記憶ブロツクに対する
ベースアドレスが書き込まれるアドレスを定義す
るのに使用される。第5図の“スタツクされたレ
ジスタと生成された局部ケーパビリテイを有する
リンク”を示す領域LK(RS&LCC)は合計チエ
ツク、ベースおよびリミツトからなる局部記憶ケ
ーパビリテイエントリーを示す。
Step 6 Write LSB Base to DS In this step, the dump stack push pointer register DSPPR, which currently points to the top of the dump stack, is used to define the address where the base address for the requested local storage block is written. The region LK (RS&LCC) in FIG. 5, which indicates "links with stacked registers and generated local capabilities", indicates local storage capability entries consisting of sum check, base, and limit.

実行される動作は典型的に次のシーケンスを取
ることができる。
The operations performed can typically take the following sequence.

ALU :=DSPPR ALU+1 MAR :=ALU DSPPR:=ALU ALU :=LSPR MDOR :=ALU 記憶書込み@MAR ステツプS7〜DSへのLSBリミツトの書込み 本ステツプにおいて要求されている局部記憶ブ
ロツクに対する限界値は次の動作を実行して局部
記憶ケーパビリテイエントリーへ書き込まれる。
ALU:=DSPPR ALU+1 MAR:=ALU DSPPR:=ALU ALU:=LSPR MDOR:=ALU Memory write @MAR Step S7 ~ Writing LSB limit to DS The limit value for the local memory block required in this step is as follows. is written to the local storage capability entry.

ALU :=DSPPR ALU+1 MAR :=ALU DSPPR:=ALU ALU :=LSS−1+LSP MDOR :=ALU 記憶書込み@MAR ステツプ8―DSへLNRを書込む 本ステツプにおいてレベル番号レジスタLNR
の内容はステツプS7においてアドレスされたリ
ミツト語の最上位8ビツトへ次のように書き込ま
れる。
ALU:=DSPPR ALU+1 MAR:=ALU DSPPR:=ALU ALU:=LSS-1+LSP MDOR:=ALU Memory write @MAR Step 8 - Write LNR to DS In this step, level number register LNR
The content of is written to the most significant 8 bits of the limit word addressed in step S7 as follows.

ALU :=LNR MDOR:=ALY 記憶書込み@MAR ステツプS9―DSへ合計チエツクを書込む 本ステツプにおいて局部記憶ケーパビリテイエ
ントリーに対する合計チエツクが形成されて局部
記憶ケーパビリテイエントリの第1語へ書き込ま
れる。
ALU:=LNR MDOR:=ALY Memory write @MAR Step S9-Write summation check to DS In this step, summation check for the local storage capability entry is formed and written to the first word of the local storage capability entry. It will be done.

ALUa:=DSPPR ALUb:=LSS−1+LSP ALU加算 BM右循環 ALU :=BM MDOR:=ALU ALU :=DSPPR ALU−2 MAR :=ALU 記憶書込み@MAR ステツプS10―LCCRを増分する 本ステツプにおいて局部ケーパビリテイカウン
トレジスタLCCR内の値が1だけ増分される。典
型的にこれはLCCRレジスタの内容をALUに循
環させALUに+1動作をさせて達成される。
ALUa:=DSPPR ALUb:=LSS-1+LSP ALU addition BM right circulation ALU:=BM MDOR:=ALU ALU:=DSPPR ALU-2 MAR:=ALU Memory write @MAR Step S10 - Increment LCCR In this step, local capacitor The value in the integrity count register LCCR is incremented by one. Typically this is accomplished by circulating the contents of the LCCR register to the ALU, causing the ALU to perform a +1 operation.

ステツプS11―LSPRをLSSだけ増分する 本ステツプにおいてステツプS2で読み出され
た局部記憶ブロツクサイズ情報が局部記憶ポイン
タレジスタLSPRのカレント値に加算されて局部
記憶装置内の次のフリー領域へ新しいポインタを
形成する。
Step S11 - Increment LSPR by LSS In this step, the local storage block size information read in step S2 is added to the current value of the local storage pointer register LSPR to set a new pointer to the next free area in the local storage. Form.

ステツプS12―C(N)がロードする 本ステツプにおいて前記形成された局部ケーパ
ビリテイ記述子が命令語の“D”フイールドが定
義するケーパビリテイレジスタへロードされる。
典型的に実行される動作は正規ロードケーパビリ
テイレジスタ動作を含み、2個のCPU間の設計
の違いを考慮すれば英国特許第1329721号に記載
された動作と同様である。
Step S12--C(N) Loads In this step, the local capability descriptor formed above is loaded into the capability register defined by the "D" field of the instruction word.
The operations typically performed include regular load capability register operations and are similar to those described in GB 1329721 given the design differences between the two CPUs.

ステツプS13―LSCCRへLSSをロードする 本ステツプにおいてステツプS2で読み出され
た局部記憶サイズ値は局部記憶クリアカウトレジ
スタへ供給され、次にステツプS14,S15,S16が
繰返し実行されて要求された局部記憶ブロツク内
の位置をクリアする。これは局部記憶クリアカウ
ントレジスタを減分して(ステツプS15)C(N)
ベース値へ加え、そのように定義された記憶位置
へ0を書き込み(ステツプS16)、局部記憶クリ
アカウント値を0テストして達成される。(ステ
ツプS14) 全ての局部記憶ブロツク位置がクリアされてい
るとLSCCR値は0であり、ステツプS14におい
て命令が出される。
Step S13 - Load LSS to LSCCR In this step, the local memory size value read in step S2 is supplied to the local memory clear count register, and then steps S14, S15, and S16 are repeatedly executed to load the requested local memory size value. Clears a location in a memory block. This is done by decrementing the local memory clear count register (step S15).
This is achieved by adding 0 to the base value and writing 0 to the storage location so defined (step S16) and testing the local storage clear count value to 0. (Step S14) If all local storage block locations are cleared, the LSCCR value is 0, and a command is issued in step S14.

前記より第5図のダンプスタツクリンクLK
(RS&LCC)内の局部ケーパビリテイエントリー
の定義する局部記憶ブロツクをカレントルーチン
が使用でき、局部記憶ブロツクの生成が局部ケー
パビリテイカウントレジスタLCCR内に記憶され
ていることが判る。
Dump stack link LK in Figure 5 from above
It can be seen that the local storage block defined by the local capability entry in (RS&LCC) is available to the current routine and that the generation of the local storage block is stored in the local capability count register LCCR.

次に“サブセツト局部記憶”命令について検討
し、その命令に対するフロー図を第8図に示す。
Next, we will consider the "Store Subset Local" instruction, and the flow diagram for that instruction is shown in FIG.

サブセツト局部記憶命令 本命令において第8図の頂部に示す命令語はC
(X)、Aフイールドおよび局部記憶ケーパビリテ
イ記述子がロードされるケーパビリテイレジスタ
により局部記憶ケーパビリテイ記述子に対するケ
ーパビリテイポインタを定義する。命令にはその
最上位12ビツトにオフセツト、その最下位12ビツ
トにサブセツト語サイズ値を保持するデータレジ
スタD(0)も入力される。
Subset local storage instruction In this instruction, the command word shown at the top of Fig. 8 is C.
(X) defines the capability pointer for the local storage capability descriptor by the A field and the capability register into which the local storage capability descriptor is loaded. The instruction also receives a data register D(0) which holds the offset in its most significant 12 bits and the subset word size value in its least significant 12 bits.

ステツプSS1―C(N)をロードする 本ステツプにおいてDフイールド(C(N))の
指定するケーパビリテイレジスタに、M,C,A
フイールドの指定するポインターにより定義され
る局部記憶ケーパビリテイ記述子がロードされ
る。典型的に実行される動作は英国特許第
1329721号で実行される動作に関連しているが、
もちろんCPUの設計は本特許のものとは違つて
いる。
Step SS1-Load C(N) In this step, M, C, A
The local storage capability descriptor defined by the pointer specified by the field is loaded. The operations typically performed are described in British Patent No.
Although related to the actions performed in issue 1329721,
Of course, the design of the CPU is different from that of this patent.

ステツプSS2―LSBOおよびサイズを読取る 本ステツプにおいてオフセツト値およびサイズ
を使用して局部記憶装置内のサブセツトに必要な
領域を定義し、局部記憶ブロツク内のサブセツト
の限界を示すアドレスを定義する。これらの動作
は典型的に次のシーケンスにより達成される。
Step SS2 - Read LSBO and Size This step uses the offset value and size to define the space required for the subset in local storage and to define the address that indicates the limits of the subset in the local storage block. These operations are typically accomplished by the following sequence.

ALUa0〜11ビツト:=D(0)11〜24ビツト ALUb:=C(N)ベース ALU加算 MDOR:=ALU D(X) :=ALU ALUa:=D(X) ALUb:=D(0)0〜11ビツト ALU加算 ステツプSS3―リミツト内のS―SS 本ステツプにおいて最終ALU加算動作により
形成されたリミツトアドレスは、ケーパビリテイ
コード比較器ACCおよびBCCを使用して局部記
憶ケーパビリテイ記述子の限界をテストする。リ
ミツトアドレスが局部記憶ブロツクのサイズ外で
あれば故障が表示され、サイズ内であればステツ
プSS4が実行される。
ALUa0 to 11 bits:=D(0) 11 to 24 bits ALUb:=C(N) Base ALU addition MDOR:=ALU D(X) :=ALU ALUa:=D(X) ALUb:=D(0)0 ~11-bit ALU Addition Step SS3 - S-SS in Limits The limit address formed by the final ALU addition operation in this step is calculated using the capability code comparators ACC and BCC to determine the limit of the local storage capability descriptor. test. If the limit address is outside the size of the local storage block, a failure is displayed, and if it is within the size, step SS4 is executed.

ステツプSS4―DSへLS―Sベースを書込む 本ステツプにおいてオフセツトの追加およびス
テツプSS2中にデータアウトレジスタ内に現在記
憶されている命令Dフイールド(即ちC(N))に
より指定されるケーパビリテイレジスタからの相
対ベースの結果は、ダンプスタツクされてサブセ
ツト記述子であることを示すように設定された23
ビツトを有する局部ケーパビリテイエントリのベ
ース語を形成する。典型的にマイクロプログラム
装置により次のシーケンスが実行される。
Step SS4 - Write LS-S base to DS This step adds the offset and the capability specified by the instruction D field (i.e. C(N)) currently stored in the data out register during step SS2. The result on a relative basis from the register is dump stacked and set to indicate that it is a subset descriptor.
Forms the base word for local capability entries with bits. The following sequence is typically executed by a microprogram device.

ALUa:=DSPPR ALU+1 MAR :=DSPPR 記憶書込み@MAR ステツプSS5―DSへLS―Sリミツトを書込む 本ステツプにおいてサブセツトの局部ケーパビ
リテイ記述子の限界値は次の位置においてダンプ
スタツクへ書き込まれる。
ALUa:=DSPPR ALU+1 MAR:=DSPPR Memory write @MAR Step SS5 - Write LS-S limit to DS In this step, the limit value of the local capability descriptor of the subset is written to the dump stack at the next location.

ステツプSS6―DSへLNRを書込む 本ステツプにおいてレベル番号レジスタLNR
内の値はステツプSS5で書込まれたエントリの最
上位8ビツトへ書込まれる。
Step SS6 - Write LNR to DS In this step, level number register LNR
The value in is written to the most significant 8 bits of the entry written in step SS5.

ステツプSS7―DSへ合計チエツクを書込む 本ステツプにおいてサブセツトブロツクのベー
スアドレスはリミツトアドレスへ加えられその結
果は9ビツト回転され、次にこの語はダンプスタ
ツク押下ポインタレジスタDSPPRの指定するダ
ンプスタツクアドレスへ書込まれ、局部ケーパビ
リテイ記述子の合計エントリーを形成する。
Step SS7 - Write summation check to DS In this step, the base address of the subset block is added to the limit address, the result is rotated by 9 bits, and then this word is written to the dump stack specified by the dump stack press pointer register DSPPR. address and form the total entry of the local capability descriptor.

ステツプSS8―C(N)のLS―Sポインタを形成
する 本ステツプにおいてC(N)フイールドの指定
するケーパビリテイレジスタがアクセスされてリ
ミツト語の最上位9ビツトが抽出され、プロセス
ダンプスタツク押下ポインタレジスタの相対値の
最下位15ビツトを使用してC(N)のポインター
を形成する。
Step SS8 - Form the LS-S pointer of C(N) In this step, the capability register specified by the C(N) field is accessed, the most significant 9 bits of the limit word are extracted, and the process dump stack is pressed. The least significant 15 bits of the relative value of the pointer register are used to form a pointer for C(N).

ステツプSS9―DSPPRを増分する;LCCRを増
分する 本ステツプにおいてプロレスダンプスタツク押
下ポインタレジスタDSPPR内容が増分されて最
終形成されたケーパビリテイ記述子のリミツト語
“より下の”ダンプスタツク位置を指示する。最
後に局部ケーパビリテイカウントレジスタLCCR
カウントが1だけ増分されてプロセスの生成する
局部ケーパビリテイ記述子番号を示す。
Step SS9 - Increment DSPPR; Increment LCCR In this step, the content of the wrestling dump stack press pointer register DSPPR is incremented to point to the dump stack position "below" the limit word of the finally formed capability descriptor. Finally, the local capability count register LCCR
The count is incremented by one to indicate the local capability descriptor number generated by the process.

“要求局部記憶”および“サブセツト局部記
憶”命令の前記説明から、ダンプスタツクのネス
トされたエントリを使用して局部生成ケーパビリ
テイ記述子を保持し、局部ケーパビリテイカウン
トレジスタがルーチン実行中に生成される局部ケ
ーパビリテイ番号を示すことが判る。サブセツト
局部記憶命令の場合にはベースエントリーの23ビ
ツトが“1”としてマークされる。
From the above description of the "Request Local Store" and "Subset Local Store" instructions, it can be seen that nested entries in the dump stack are used to hold locally generated capability descriptors, and a local capability count register is generated during routine execution. It can be seen that it indicates the local capability number. For subset local store instructions, 23 bits of the base entry are marked as "1".

プロセスダンプスタツクのネストされた領域を
使用して局部ケーパビリテイ記述子テーブルを提
供する他にドメーンスイツチ(即ち他のサブルー
チンの呼出し)が生じる時に保存されるレジスタ
の記憶装置を提供する。含まれている命令は(a)
“保護された呼出し”命令と(b)“保護されたリタ
ーン”命令である。
Nested areas of the process dump stack are used to provide local capability descriptor tables as well as storage for registers that are saved when domain switches (ie, calls to other subroutines) occur. The instructions included are (a)
(b) a “protected call” instruction and (b) a “protected return” instruction.

保護された呼出し命令 本命令の実行により行われる動作のフロー図を
第9図に示す。この命令が入力されるとD(0)
はレジスタ記述子を桁上げし、それは(a)最上位12
ビツトにおいてダンプスタツク内に記憶されるレ
ジスタを定義し、(b)最下位12ビツトにおいて空白
とされるレジスタを定義する。典型的に12〜17ビ
ツトのいずれかの1個の1がデタレジスタD(1)〜
D(6)を定義し、18〜23ビツトが記憶されるケーパ
ビリテイレジスタC(0)〜C(S)のポインター
を定義する。同様に0〜5ビツトのいずれかの1
個の1が空白とされるデータレジスタD(1)〜D(6)
を定義し、6〜11ビツトが空白とされるケーパビ
リテイレジスタを定義する。
Protected Call Instruction FIG. 9 shows a flow diagram of the operations performed by executing this instruction. When this command is input, D(0)
carries the register descriptor, which is (a) the most significant 12
(b) Define registers to be stored in the dump stack in bits, and (b) define registers to be blanked in the least significant 12 bits. Typically, one 1 in any one of 12 to 17 bits is data register D(1)~
D(6) and pointers to capability registers C(0) to C(S) in which 18 to 23 bits are stored are defined. Similarly, any 1 from 0 to 5 bits
Data registers D(1) to D(6) where 1 is blank
Define a capability register in which bits 6 to 11 are blank.

ステツプSC1―D(0)を読出す 本ステツプにおいてレジスタD(0)の内容が
読み出され、演算装置状態信号ALUCSを使用し
てマイクロプログラムへ通される。
Step SC1--Read D(0) In this step, the contents of register D(0) are read and passed to the microprogram using the arithmetic unit status signal ALUCS.

ステツプSC2―記憶レジスタ;空白レジスタ 本ステツプにおいて保存されるレジスタは第5
図に示すようにALUを介してダンプスタツクの
リンク部内の連続位置における連続記憶書込み動
作上の記憶装置に通される。アドレツシングはレ
ジスタDSPPR内のダンプスタツク押下ポインタ
ーを使用して形成されたアドレスの制御下にあ
る。レジスタの保存が完了ると空白とされるレジ
スタがALU中を循環されALU出力を0とする。
Step SC2 - Memory register; Blank register The register saved in this step is the 5th register.
As shown, the memory is passed through the ALU to the storage device on successive storage write operations at successive locations within the link portion of the dump stack. Addressing is under the control of the address formed using the dump stack push pointer in register DSPPR. When the register storage is completed, the blank register is circulated through the ALU and the ALU output is set to 0.

ステツプCS3DSへD(0)を書込む ステツプCS3が完了するとダンプスタツク押下
ポインタがスタツクされた最終レジスタの下のエ
ントリを指示する。第5図にこの位置がレジスタ
記述子エントリーを保持するのに使用されること
を示す。DSPPRレジスタを使用してD(0)の内
容が書き込まれるダンプスタツクアドレスを定義
する。
Write D(0) to step CS3DS. When step CS3 is completed, the dump stack press pointer points to the lower entry of the last stacked register. FIG. 5 shows that this location is used to hold register descriptor entries. The DSPPR register is used to define the dump stack address where the contents of D(0) will be written.

ALU :=DSPPR MAR :=ALU ALU :=D(0) MDOR:=ALU 記憶書込み@MAR ALU :=DSPPR ALU+1 DSPPR:=ALU ステツプCS3において記憶書込み動作が実施さ
れるとダンプスタツク押下ポインタが1だけ増分
され、ステツプCS4,CS5においてC(6),C(7)の
ポインタを記憶する準備が完了し引き続き押下ポ
インタが増分される。
ALU:=DSPPR MAR:=ALU ALU:=D(0) MDOR:=ALU Memory write @MAR ALU:=DSPPR ALU+1 DSPPR:=ALU When the memory write operation is performed in step CS3, the dump stack press pointer is incremented by 1. At steps CS4 and CS5, the preparation for storing the pointers C(6) and C(7) is completed, and the pressed pointer is subsequently incremented.

ステツプCS6DSへIARを書込む 本ステツプにおいてネストされたルーチンの最
終エントリーが準備され、それは0〜15ビツトに
相対化されたIAR値を有し、16〜22ビツトに局部
ケーパビリテイカウントレジスタの値を有し、そ
れはステツプS10の“要求局部記憶”命令および
ステツプSS9の“サブセツト局部記憶”命令の実
施において増分されている。実施される動作は典
型的に次のものである。
Step Write IAR to CS6DS In this step, the final entry of the nested routine is prepared, which has the IAR value relativized from 0 to 15 bits and the value of the local capability count register from 16 to 22 bits. , which has been incremented in the implementation of the "request local store" instruction of step S10 and the "subset local store" instruction of step SS9. The operations performed are typically the following.

ALUa:=IAR ALUb:=C(7)ベース ALU±1 MDOR0〜15ビツト:=ALU0〜15ビツト ALU :=LCCR MDOR16〜22ビツト:=ALU16〜22ビツト ALUセツト23〜1ビツト MDOR25ビツト:=ALU23ビツト 記憶書込み@MAR ALU :=DSPPR ALU+1 DSPPR:=ALU ステツプCS7C(6)をロードする 本ステツプにおいて呼出されたプロセスのケー
パビリテイポインタテーブルに対するケーパビリ
テイ記述子がケーパビリテイレジスタC(6)へロー
ドされる。
ALUa:=IAR ALUb:=C(7)Base ALU±1 MDOR0~15 bits:=ALU0~15 bits ALU:=LCCR MDOR16~22 bits:=ALU16~22 bits ALU set 23~1 bits MDOR25 bits:=ALU23 Bit memory write @MAR ALU:=DSPPR ALU+1 DSPPR:=ALU Load step CS7C(6) Load the capability descriptor for the capability pointer table of the called process into the capability register C(6) in this step be done.

ステツプCS8C(6)アクセスOK? 本ステツプにおいてマイクロプログラム装置が
ステツプCS7でロードされたアクセスコードをチ
エツクする。
Step CS8C (6) Access OK? In this step, the microprogram device checks the access code loaded in step CS7.

ステツプCS9LCRを増分する;LCCRをリセツト
する 本ステツプにおいてレベル番号レジスタLNR
の値はALUに通すことにより1だけ増分され、
レジスタLCCR内の局部ケーパビリテイカウント
値が0へリセツトされる。
Increment step CS9LCR; reset LCCR In this step, level number register LNR
The value of is incremented by 1 by passing it through the ALU,
The local capability count value in register LCCR is reset to zero.

ステツプCS10C(7)をロードする 本ステツプにおいてレジスタC(6)の定義するプ
ロセスケーパビリテイテーブルを基準とするAお
よびMフイールドにより定義されるポインターを
使用して、プログラムブロツクケーパビリテイレ
ジスタC(7)がロードされる。
Load step CS10C(7) In this step, program block capability register C( 7) is loaded.

本動作は保護された呼出しに対する機能を完了
し、ネストされたリンクは局部ケーパビリテイ記
述子および保存されたレジスタに対する保存され
たレジスタおよび記述子と共にネストされたルー
チン中に生成された局部ケーパビリテイ記述子を
含んでいる。
This operation completes the function for the protected call and the nested link saves the local capability descriptor generated during the nested routine along with the saved registers and descriptors for the local capability descriptor and saved registers. Contains.

最後に呼出されたルーチンの終りに実施され前
にネストされたルーチンへ制御を戻す“保護され
たリターン”命令の実施について検討する。第1
0図に保護された命令に対して実施される動作を
示す。
Consider the implementation of a "protected return" instruction that is executed at the end of the last called routine and returns control to a previously nested routine. 1st
Figure 0 shows the operations performed on protected instructions.

保護されたリターン命令 第10図の頂部に示す命令語RLWはそれが直
接モードで動作することを示し、最下位12ビツト
に汎用データD(1)〜D(6)および空白とされるケー
パビリテイレジスタC(0)〜C(5)を示す1パタ
ーンの1を有するD(0)が入力される。
Protected Return Instruction The instruction word RLW shown at the top of FIG. D(0) having one pattern of 1 indicating the tie registers C(0) to C(5) is input.

ステツプRS1―レジスタを空白とする 本ステツプにおいてレジスタD(0)が読み出
されてALUCS信号の調整に使用され、マイクロ
プログラム制御はその内容をALUに循環させる
ことにより空白とされるレジスタを順次選定する
ことができる。
Step RS1 - Make a register blank In this step, register D (0) is read and used to adjust the ALUCS signal, and the microprogram control sequentially selects registers to be blanked by circulating its contents to the ALU. can do.

ステツプRS2―DSを読出す 本ステツプにおいてダンプスタツクは1だけ減
分されたダンプスタツク押下ポインターにおいて
アドレスされて記述子/IARリンクエントリをア
ドレスし、情報読出しが内部データレジスタの一
つ例えばD(1)へ供給されて、23ビツトをステツプ
RS5でテストしていずれかのレジスタをリンクか
らアンロードする必要があるかどうかを調べる。
Step RS2 - Read DS In this step the dump stack is addressed with the dump stack press pointer decremented by 1 to address the descriptor/IAR link entry and the information read goes to one of the internal data registers, e.g. D(1). Supplied, steps 23 bits
Test with RS5 to find out if any registers need to be unloaded from the link.

ALU :=DSPPR ALU−1 MAR :=ALU DSPPR:=ALU 記憶読出し@MAR MDIN :=BII ALU :=MDIN D(1) :=ALU ALU :=DSPPR ALU−1 MAR :=ALU DSPPR:=ALU ステツプRS3C(7)をロードする;DSPPRを減分
する 本ステツプにおいてC(7)のポインターがダンプ
スタツクから読出されてケーパビリテイレジスタ
C(7)がロードされ、ダンプスタツク押下ポインタ
ーが減分される。
ALU :=DSPPR ALU−1 MAR :=ALU DSPPR:=ALU Memory read @MAR MDIN :=BII ALU :=MDIN D(1) :=ALU ALU :=DSPPR ALU−1 MAR :=ALU DSPPR:=ALU Step Load RS3C(7); Decrement DSPPR In this step, the pointer of C(7) is read from the dump stack, the capability register C(7) is loaded, and the dump stack press pointer is decremented.

ステツプRS3C(6)をロードする 本ステツプにおいてC(6)のポインターがダンプ
スタツクから読出され、ケーパビリテイレジスタ
C(6)がロードされる。
Step Load RS3C(6) In this step, the pointer of C(6) is read from the dump stack and the capability register C(6) is loaded.

ステツプRS5レジスタ記述子23ビツトは1か? 本ステツプにおいて前記ステツプRS2でロード
されたレジスタD(1)の23ビツトがテストされる。
それが0ならば第5図にリンクLK(0)で示すダ
ンプスタツクリンクからアンロードされるレジス
タは無く、ステツプRS6,RS7,RS8は無視され
る。テストされたビツトが1であればこれらのス
テツプが実施されてスタツクされたレジスタをリ
ンクからアンロードする。
Is step RS5 register descriptor 23 bits 1? In this step, 23 bits of register D(1) loaded in step RS2 are tested.
If it is 0, there are no registers to be unloaded from the dump stack link shown as link LK(0) in FIG. 5, and steps RS6, RS7, and RS8 are ignored. If the bit tested is 1, these steps are performed to unload the stacked register from the link.

ステツプRS6DSPPRを減分する;REG記述子を
読出す 本ステツプにおいてリンク内の次のエントリが
読出されそれは第5図に示すようにレジスタ記述
子であり、この記述子はステツプRS7においてス
タツクされたデータとケーパビリテイレジスタの
アンローデイング制御に使用される。
Decrement step RS6DSPPR; read REG descriptor In this step, the next entry in the link is read, which is the register descriptor as shown in Figure 5, and this descriptor contains the data stacked in step RS7. and capability register unloading control.

ステツプRS7DSPPRを(LCC×3)だけ減分す
る 本ステツプはダンプスタツク押下ポインターを
調整して局部ケーパビリテイ記述子がある場合そ
のアンローデイング準備完了する。
Step RS7DSPPR is decremented by (LCC x 3). This step adjusts the dump stack press pointer and completes the preparation for unloading the local capability descriptor if it exists.

ステツプRS9LCC×3=0か それが0であれば第5図にLK(RS)で示すよ
うなリンク内に局部ケーパビリテイ記述子がな
い。テストされた値が0でなければステツプ
RS10等が実施されて“ネストされない”ルーチ
ンが生成するケーパビリテイ記述子の第1サブセ
ツトのベーースアドレスへ局部記憶ポインターを
設定する。
Step RS9LCC×3=0? If it is 0, there is no local capability descriptor in the link as shown by LK(RS) in FIG. Step if tested value is 0
RS10, etc. is executed to set a local storage pointer to the base address of the first subset of capability descriptors generated by the "non-nested" routine.

ステツプRS10―DSPPRを保存する;DSPPRを
増分する;LSCCRにLCC×3をロードする 本ステツプにおいてレジスタDSPPR内のダン
プスタツク押下ポインタは後の使用に保存され、
典型的にそれはステツプRS6,RS7,RS8中にロ
ードされないデータレジスタの1個に保持され
る。更に局部記憶ケーパビリテイカウントレジス
タLCCRにはこのプロセスで生成される局部ケー
パビリテイ番号を定義する局部ケーパビリテイカ
ウントがロードされる。
Step RS10 - Save DSPPR; Increment DSPPR; Load LCC x 3 to LSCCR In this step, the dump stack press pointer in register DSPPR is saved for later use.
Typically it is held in one of the data registers that is not loaded during steps RS6, RS7, RS8. In addition, the local storage capability count register LCCR is loaded with a local capability count that defines the local capability number generated in this process.

ステツプRS11―ISLSCCR=0? 本ステツプにおいて局部ケーパビリテイカウン
トをテストしてそれが0かどうかを調べる。明ら
かにこの時点において局部ケーパビリテイカウン
トは0ではない。
Step RS11-ISLSCCR=0? This step tests the local capability count to see if it is zero. Obviously, the local capability count is not zero at this point.

ステツプRS12ベースエントリーを読出す 本ステツプにおいてステツプRS10で定義され
る位置においてダンプスタツクリンクエントリが
読出され、この語の最上位ビツトをテストしてそ
れがサブセツト局部ケーパビリテイベースエント
リーかどうかを調べることができる。
Read step RS12 base entry This step reads the dump stack link entry at the location defined in step RS10 and tests the most significant bit of this word to see if it is a subset local capability base entry. be able to.

ステツプRS13―23ビツト=0か 本ステツプにおいて最終ステツプで読出したダ
ンプスタツクエントリーをテストし、それが23ビ
ツトが“1”であることにより示される局部ケー
パビリテイ記述子ベースエントリーであるかどう
かを調べる。23ビツトが“1”であればステツプ
RS14が実施される。
Step RS13 - Is the 23 bit = 0? In this step, test the dump stack entry read in the final step to see if it is the local capability descriptor base entry indicated by the 23 bit being "1". . If 23 bits are “1”, step
RS14 will be implemented.

ステツプRS14―LCCRを減分する;DSPPRを3
だけ増分する 本ステツプにおいてレジスタLCCR内の局部ケ
ーパビリテイカウントが1だけ減分され、ダンプ
スタツクポインターレジスタが3だけ調整されて
1がある場合次の局部サブセツトケーパビリテイ
ポインターのベースエントリーを指示する。次に
ステツプRS11,RS12,RS13が実施されてもう
一つの局部ケーパビリテイ記述子があるかどうか
(ステツプRS11)またそれが戻されたプロセスの
実行により生成されたものかどうかを調べる。
(ステツプRS12,RS11) 局部サブセツトケーパビリテイ記述子が全く生
成されない場合、ステツプRS16が実施されてダ
ンプスタツク押下ポインタ値をアンロードされて
いるダンプスタツクリンクの開始点に設定し、こ
の領域を次の“呼出し”命令で再使用することが
できる。ルーチンのパラメータに戻るアンスタツ
キング中に局部サブセツトケーパビリテイ記述子
が見つかつているとステツプRS15が実施されて、
ステツプRS16を実施する前に局部記憶ポインタ
―レジスタLSPRをそのエントリーのベース値に
設定する。
Step RS14 - Decrement LCCR; DSPPR by 3
In this step, the local capability count in register LCCR is decremented by 1, and the dump stack pointer register is adjusted by 3 and if it is 1, then the base entry for the next local subset capability pointer is incremented by 1. Instruct. Steps RS11, RS12, and RS13 are then executed to check whether there is another local capability descriptor (step RS11) and whether it was generated by the execution of the returned process.
(Steps RS12, RS11) If no local subset capability descriptor is generated, step RS16 is executed to set the dump stack press pointer value to the start point of the dump stack link being unloaded and to set this area to the starting point of the dump stack link being unloaded. It can be reused in the next "call" instruction. Return to routine parameters If a local subset capability descriptor is found during unstacking, step RS15 is executed;
Before executing step RS16, the local storage pointer register LSPR is set to the base value of the entry.

ステツプRS14―LNRを減分する;LCCRを0と
する 本ステツプにおいてリターン命令が制御を高レ
ベルサブルーチンへ戻し、ステツプRS11,
RS12,RS13,RS14を含むループ内で使用する
局部ケーパビリテイカウントレジスタLCCRが0
に回復するとレベル番号レジスタLNRが1だけ
減分される。
Step RS14 - Decrement LNR; Set LCCR to 0. In this step, the return instruction returns control to the high-level subroutine, and steps RS11,
The local capability count register LCCR used in the loop including RS12, RS13, and RS14 is 0.
When the level is restored, the level number register LNR is decremented by 1.

ステツプRS18―LDSをチエツクする 本ステツプにおいてケーパビリテイレジスタC
(0)〜C(5)の8個の汎用ケーパビリテイポイン
ターの局部記憶ケーパビリテイアクセスコードが
チエツクされる。相対プロセスダンプスタツク押
下ポインター値に等しいかあるいはそれより大き
いオフセツト値を有するものが見い出されると、
対応するケーパビリテイレジスタが空白とされ
る。
Step RS18 - Check LDS In this step, capability register C
The local storage capability access codes of eight general purpose capability pointers (0) to C(5) are checked. If a relative process dump stack with an offset value equal to or greater than the push pointer value is found,
The corresponding capability register is left blank.

ステツプRS19―IARをロードする 本ステツプにおいてステツプRS2に記憶された
相対化されたIAR値を使用して戻されたルーチン
の実IAR値を形成する。
Step RS19 - Load IAR This step uses the relativized IAR value stored in step RS2 to form the actual IAR value of the returned routine.

上記より保護されたリターン命令はダンプスタ
ツクリンクから低位サブルーチンへの呼出しがな
された場合を除き全てのスタツクされたレジスタ
を除去し、レベル番号レジスタLNRを次の高レ
ベルに設定してダンプスタツクおよび局部記憶ポ
インターレジスタを次の高位サブルーチンへ戻す
前に調整する。
The return instruction protected from above removes all stacked registers except when a call to a lower subroutine is made from the dump stack link, sets the level number register LNR to the next high level, and returns the dump stack and local Adjust the storage pointer register before returning to the next higher level subroutine.

結 論 前記説明からダンプスタツクを使用してサブル
ーチンをネストし、各リンクはケーパビリテイレ
ジスタC(6),C(7)のポインターを保持しており
(即ちプロセスケーパビリテイテーブルとプロセ
スプログラムコードブロツク)、ルーチン中に生
成された局部記憶ブロツクの局部記憶ケーパビリ
テイ記述子と共にネストされたルーチンからの相
対化されたアドレス値が汎用レジスタおよび汎用
ケーパビリテイレジスタのポインターの選定と共
にネストされていることが判る。各リンクに保持
された情報は生成された局部ケーパビリテイ記述
子番号およびスタツクされたレジスタを示す記述
子により修飾される。CPU内に組入れられて増
強されたダンプスタツク機構を取り扱う命令は
(i)、局部記憶ブロツクを区画してそれらにケーパ
ビリテイ記述子を割当て、局部記憶ブロツクを要
求するサブルーチンに関するダンプスタツクのリ
ンク領域内に記述子を記憶する要求局部記憶およ
びサブセツト局部記憶命令および(ii)、夫々サブル
ーチンにネストされたリンク内の選定レジスタ内
容のスタツキングおよびアンスタツキングをネス
トおよびアンネストする保護呼出しおよびリター
ン命令である。また局部記憶装置には明確な命令
が割当てられるが、局部記憶ケーパビリテイ記述
子エントリーが行われるリンクを有するサブルー
チンからリターンが行われるとそれは自動的に割
当解除される。こうして手順レベルが戻されると
特定レベルの全ケーパビリテイが休止し、これに
はレジスターのケーパビリテイも含まれる。各局
部記憶ケーパビリテイエントリーを付随するレベ
ル番号は非任意伝播制御機構を増強する。本機構
は低位サブルーチンでケーパビリテイ記述子を記
憶および使用できないことを保証する。この安全
機構はケーパビリテイ記述子の不在参照が行われ
ないことや高位サブルーチンへ戻つた後の劣化情
報を防止するのに重要である。
Conclusion From the above explanation, we can use the dump stack to nest subroutines, and each link holds a pointer to the capability registers C(6) and C(7) (i.e., the process capability table and the process program code block). ), the relativized address values from nested routines are nested with the local storage capability descriptors of local storage blocks generated during the routine, along with the selection of general purpose registers and general capability register pointers. I understand. The information held on each link is qualified by a generated local capability descriptor number and a descriptor indicating the stacked registers. The instructions that handle the enhanced dump stack mechanism built into the CPU are
(i) request local storage and subset local storage instructions that partition local storage blocks and assign capability descriptors to them and store the descriptors in the link area of the dump stack for the subroutine requesting the local storage blocks; and (ii) , protected call and return instructions that nest and unstack the stacking and unstacking of selected register contents in links nested in subroutines, respectively. Also, although local storage is assigned a definite instruction, it is automatically deallocated upon a return from the subroutine whose link the local storage capability descriptor entry is made. When a procedural level is returned in this way, all capabilities of the particular level are suspended, including the register capabilities. The level number that accompanies each local storage capability entry enhances the non-discretionary propagation control mechanism. This facility ensures that capability descriptors cannot be stored and used in low-level subroutines. This safety mechanism is important to prevent missing references to capability descriptors and to prevent degraded information after returning to a higher level subroutine.

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

第1図は本発明の一実施例に使用する典型的な
マルチプロセツサシステムのブロツク図、第2図
は本発明の実施例での使用に適した典型的なプロ
セツサユニツトのブロツク図、第3図はプロセツ
サユニツト内のレジスタフアイル内に保持された
汎用レジスタ、第4図はプロセツサユニツト内の
特殊目的レジスタおよび表示器レジスタ、第5図
は典型的なダンプスタツク、第6図は局部ケーパ
ビリテイフオーマツト、第7図は要求局部記憶命
令のフロー図、第8図はサブセツト局部記憶命令
のフロー図、第9図は保護された呼出命令のフロ
ー図、第10図は保護されたリターン命令のフロ
ー図である。 参照符号の説明、CPU1,CPU2…処理装置、
STA,STB,STC…記憶モジエラス、PE…周辺
装置、SAUA,SAUB,SAUC,PAUN…アク
セスユニツト、BIF1,BIF2…インターフエイ
ス、ADF,BDF…データフアイル、ACF,BCF
…ケーパビリテイレジスタフアイル。
FIG. 1 is a block diagram of a typical multiprocessor system for use in an embodiment of the invention; FIG. 2 is a block diagram of a typical processor unit suitable for use in an embodiment of the invention; Figure 3 shows the general purpose registers held in the register file within the processor unit, Figure 4 shows the special purpose registers and indicator registers within the processor unit, Figure 5 shows a typical dump stack, and Figure 6 shows the local caper. Figure 7 is a flow diagram of a request local storage instruction, Figure 8 is a flow diagram of a subset local storage instruction, Figure 9 is a flow diagram of a protected call instruction, and Figure 10 is a flow diagram of a protected return. FIG. 3 is a flow diagram of instructions. Explanation of reference symbols, CPU1, CPU2...processing units,
STA, STB, STC...Storage module, PE...Peripheral device, SAUA, SAUB, SAUC, PAUN...Access unit, BIF1, BIF2...Interface, ADF, BDF...Data file, ACF, BCF
...Capability register file.

Claims (1)

【特許請求の範囲】 1 マルチユーザデータ処理装置であつて、ネス
トされたサブルーチンを実行する複数のプロセス
を実行するプロセツサモジユールを備え、前記複
数のプロセスの各々にはプロセスが中止した場合
にマシンレジスタ及び表示器の内容の記憶のため
の固定領域の記憶素子およびプロセスにより実行
される各ネストされたサブルーチンのリンクを記
憶する可変領域の記憶素子を有する別々のプロセ
スダンプスタツクが設けられており、各リンクは
(i)ネストされたサブルーチンが再開されるときに
プロセスがそこに戻るべき命令アドレスと、(ii)ネ
ストされたサブルーチンのコードブロツクへのポ
インタであつて前記コードブロツクはネストされ
たサブルーチンの命令を定義する前記ポインタと
を含み、前記プロセスは局部記憶要求命令を発生
することができる前記マルチユーザデータ処理装
置において、プロセスダンプスタツクの前記可変
領域の記憶素子のリンクにおける前記局部記憶要
求命令を実行するために前記プロセツサモジユー
ルに装置が設けられ、リンク及び複数の局部記憶
セグメントに分割される局部記憶領域のブロツク
の残りのサイズ及び内容を定義する表示器が設け
られ、前記局部記憶セグメントは前記局部記憶要
求命令の実行の間に中止された場合に前記のネス
トされたサブルーチンに関係する情報の局部記憶
に用いられ、前記プロセツサモジユールは局部記
憶スタツクポインタレジスタ及び局部記憶クリア
カウントレジスタとを備え、前記局部記憶スタツ
クポインタレジスタは局部セグメント内の空き領
域の開始アドレスを含み、前記局部記憶クリアカ
ウントレジスタは記憶用に空いている局部記憶ブ
ロツクの領域の利用し得るサイズを含み、前記局
部記憶スタツクポインタレジスタの内容及び前記
局部記憶クリアカウントレジスタの内容は前記プ
ロセツサモジユールにより変えられ、前記局部記
憶スタツクポインタレジスタ及び前記局部記憶ク
リアカウントレジスタは前記局部記憶要求命令の
実行の間の前記局部記憶セグメントの割当てによ
り影響され、前記プロセツサモジユールは更に前
記局部記憶スタツクポインタレジスタと前記局部
記憶クリアカウントレジスタにアクセスする装置
を含みかつ前記局部記憶要求命令の実行の間にプ
ロセスダンプスタツクの可変部分への記憶のため
の局部ケーパビリテイ記述子情報を発生する装置
を含むことを特徴とするマルチユーザ処理装置。 2 特許請求の範囲第1項記載のマルチユーザ処
理装置において、局部記憶要求命令は、プロセツ
サモジユールにより行われているプロセスに割当
てられた局部記憶のブロツクにより占有されるデ
ータ処理装置の記憶の領域を示す情報を含むプロ
セツサモジユールの局部記憶ケーパビリテイレジ
スタを使用するマルチユーザ処理装置。 3 特許請求の範囲第2項記載のマルチユーザ処
理装置において、リンクの記述子はサブルーチン
の実行の間に生成された局部記憶セグメントの数
を示す情報を含むマルチユーザ処理装置。 4 特許請求の範囲第2項記載のマルチユーザ処
理装置において、リンクの記述子は、マークされ
た場合に、リンクがプロセツサモジユールの少な
くとも1つの汎用データおよびケーパビリテイレ
ジスタの内容を記憶する記憶位置を含むことを示
す標識を含むマルチユーザ処理装置。 5 特許請求の範囲第4項記載のマルチユーザ処
理装置において、リンクは汎用データとリンクに
記憶されたケーパビリテイレジスタの内容との一
致を示すレジスタスタツクされた記述子を含むマ
ルチユーザ処理装置。 6 特許請求の範囲第2項記載のマルチユーザ処
理装置において、プロセツサモジユールは局部記
憶セグメントをより小さなサブセツトに分離する
ことを制御するサブセツト局部記憶命令を含み、
該サブセツト局部記憶命令の動作は少なくとも1
つのフラグビツトでリンク内のエントリーの部分
をマークしてエントリーが局部記憶セグメントの
サブセツトに関連することを示す段階を有するマ
ルチユーザ処理装置。 7 特許請求の範囲第6項に記載のマルチユーザ
処理装置であつて、局部記憶要求命令またはサブ
セツト局部記憶命令により生成される各エントリ
ーは局部記憶セグメントまたはサブセツトが生成
されたときに行われているサブルーチンに割当て
られているレベル数を記憶する、マルチユーザデ
ータ処理装置。
[Scope of Claims] 1. A multi-user data processing device, comprising a processor module that executes a plurality of processes that execute nested subroutines, each of the plurality of processes having a A separate process dump stack is provided having a fixed area storage element for storing the contents of machine registers and indicators and a variable area storage element for storing the links of each nested subroutine executed by the process. and each link is
(i) the instruction address to which the process should return when the nested subroutine is resumed; and (ii) a pointer to the nested subroutine's code block, which code block carries the instructions of the nested subroutine. defining the pointer, the process executes the local storage request instruction in a link of a storage element of the variable area of a process dump stack in the multi-user data processing device capable of generating a local storage request instruction; Apparatus is provided in said processor module to define a link and an indicator for defining the remaining size and content of a block of local storage that is divided into a plurality of local storage segments, said local storage segment being The processor module is used for local storage of information related to the nested subroutine in the event of abort during execution of the local storage request instruction, and the processor module includes a local storage stack pointer register and a local storage clear count register. and wherein the local storage stack pointer register contains the starting address of free space within the local segment, and the local storage clear count register contains the available size of the free space of the local storage block for storage; The contents of the local storage stack pointer register and the local storage clear count register are changed by the processor module, and the local storage stack pointer register and the local storage clear count register are changed by the execution of the local storage request instruction. the processor module further includes means for accessing the local storage stack pointer register and the local storage clear count register and during execution of the local storage request instruction. 1. A multi-user processing device comprising: apparatus for generating local capability descriptor information for storage in a variable portion of a process dump stack. 2. In the multi-user processing device according to claim 1, the local storage request instruction is used to request storage of the data processing device that is occupied by a block of local storage allocated to the process being executed by the processor module. A multi-user processing device that uses a processor module's local storage capability registers that contain information indicative of regions. 3. A multi-user processing device according to claim 2, wherein the link descriptor includes information indicating the number of local storage segments generated during execution of the subroutine. 4. A multi-user processing device according to claim 2, in which the descriptor of the link, when marked, stores the contents of at least one general purpose data and capability register of the processor module. A multi-user processing device including an indicator indicating that it contains a storage location. 5. A multi-user processing device according to claim 4, wherein the link includes a register-stacked descriptor indicating a match between general purpose data and the contents of a capability register stored in the link. . 6. The multi-user processing device of claim 2, wherein the processor module includes subset local storage instructions for controlling separation of local storage segments into smaller subsets;
The operation of the subset local storage instruction is at least one
A multi-user processing device comprising: marking a portion of an entry within a link with a flag bit to indicate that the entry relates to a subset of a local storage segment. 7. A multi-user processing device according to claim 6, wherein each entry generated by a local storage request instruction or a subset local storage instruction is performed when the local storage segment or subset is generated. A multi-user data processing device that stores the number of levels assigned to subroutines.
JP13573380A 1979-09-29 1980-09-29 Multiprogram data processor Granted JPS5657149A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB7933856A GB2060225B (en) 1979-09-29 1979-09-29 Multi-programming data processing system process suspension

Publications (2)

Publication Number Publication Date
JPS5657149A JPS5657149A (en) 1981-05-19
JPH0114611B2 true JPH0114611B2 (en) 1989-03-13

Family

ID=10508176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13573380A Granted JPS5657149A (en) 1979-09-29 1980-09-29 Multiprogram data processor

Country Status (18)

Country Link
US (1) US4486831A (en)
EP (1) EP0026589B1 (en)
JP (1) JPS5657149A (en)
KR (1) KR860000837B1 (en)
AT (1) ATE32388T1 (en)
AU (1) AU542183B2 (en)
CA (1) CA1160350A (en)
DE (1) DE3072072D1 (en)
DK (1) DK408980A (en)
ES (1) ES495453A0 (en)
GB (1) GB2060225B (en)
HK (1) HK76984A (en)
IE (1) IE50246B1 (en)
NO (1) NO802759L (en)
NZ (1) NZ195062A (en)
PT (1) PT71824B (en)
SG (1) SG43484G (en)
ZA (1) ZA805536B (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649472A (en) * 1981-02-04 1987-03-10 Burroughs Corporation Multi-phase subroutine control circuitry
US4703449A (en) * 1983-02-28 1987-10-27 Data Translation Inc. Interrupt driven multi-buffer DMA circuit for enabling continuous sequential data transfers
US4599689A (en) * 1983-02-28 1986-07-08 Data Translations, Inc. Continuous data transfer system
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
JPS60195646A (en) * 1984-03-16 1985-10-04 Hitachi Ltd Data processor
JPS61210432A (en) * 1985-03-15 1986-09-18 Hitachi Ltd Calculation processing system
US5274797A (en) * 1986-05-30 1993-12-28 Bull Hn Information Systems Inc. Multiprocessor system with centralized initialization, testing and monitoring of the system and providing centralized timing
CA1312142C (en) * 1988-02-10 1992-12-29 Richard I. Baum Linkage mechanism for program isolation
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US4974159A (en) * 1988-09-13 1990-11-27 Microsoft Corporation Method of transferring control in a multitasking computer system
US5317733A (en) * 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
US5339422A (en) * 1991-03-07 1994-08-16 Digital Equipment Corporation System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
DE69216020T2 (en) * 1991-03-07 1997-07-10 Digital Equipment Corp IMPROVED TROUBLESHOOTING SYSTEM AND METHOD, PARTICULARLY FOR TROUBLESHOOTING IN A MULTI-ARCHITECTURE ENVIRONMENT
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5396616A (en) * 1993-06-15 1995-03-07 Xerox Corporation System for emulating multi-tasking pipelines in a single tasking environment
US5995996A (en) * 1993-06-15 1999-11-30 Xerox Corporation Pipelined image processing system for a single application environment
US5701479A (en) * 1993-06-15 1997-12-23 Xerox Corporation Pipelined image processing system for a single application environment
EP0667574A3 (en) * 1994-02-14 1997-02-12 Ibm Computer system.
US5937186A (en) * 1994-03-24 1999-08-10 International Business Machines Corporation Asynchronous interrupt safing of prologue portions of computer programs
US6601188B1 (en) 1999-10-28 2003-07-29 International Business Machines Corporation Method and apparatus for external crash analysis in a multitasking operating system
US7620852B2 (en) * 2005-03-02 2009-11-17 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race
US20070239854A1 (en) * 2006-04-11 2007-10-11 Gopalakrishnan Janakiraman Method of migrating process domain
US9063932B2 (en) 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US10120688B2 (en) * 2016-11-15 2018-11-06 Andes Technology Corporation Data processing system and method for executing block call and block return instructions
GB2586276B (en) 2019-08-16 2022-03-30 Advanced Risc Mach Ltd Capability write address tracking

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51149737A (en) * 1975-04-21 1976-12-22 Honeywell Inf Systems Switching system base mechanism

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51149737A (en) * 1975-04-21 1976-12-22 Honeywell Inf Systems Switching system base mechanism

Also Published As

Publication number Publication date
EP0026589A2 (en) 1981-04-08
DK408980A (en) 1981-03-30
IE50246B1 (en) 1986-03-05
EP0026589B1 (en) 1988-02-03
CA1160350A (en) 1984-01-10
IE802025L (en) 1981-03-29
HK76984A (en) 1984-10-19
GB2060225B (en) 1983-05-25
US4486831A (en) 1984-12-04
AU542183B2 (en) 1985-02-14
PT71824A (en) 1980-10-01
ZA805536B (en) 1981-09-30
PT71824B (en) 1981-06-30
NZ195062A (en) 1983-06-17
KR860000837B1 (en) 1986-07-02
ES8106060A1 (en) 1981-07-01
SG43484G (en) 1985-09-13
AU6215580A (en) 1981-04-02
GB2060225A (en) 1981-04-29
ATE32388T1 (en) 1988-02-15
ES495453A0 (en) 1981-07-01
EP0026589A3 (en) 1982-06-30
JPS5657149A (en) 1981-05-19
NO802759L (en) 1981-03-30
DE3072072D1 (en) 1988-03-10

Similar Documents

Publication Publication Date Title
JPH0114611B2 (en)
KR860000838B1 (en) Improved memory proterction system using capability registers
US5953530A (en) Method and apparatus for run-time memory access checking and memory leak detection of a multi-threaded program
EP0192232B1 (en) Data processing apparatus
US4041462A (en) Data processing system featuring subroutine linkage operations using hardware controlled stacks
EP0213843A2 (en) Digital processor control
US3803559A (en) Memory protection system
US4494189A (en) Method and means for switching system control of CPUs
US5454086A (en) Dynamic program analyzer facility
CA1273125A (en) Memory management system
US4866599A (en) Call instruction, return instruction and trap procedure for ring crossing architecture
JPS5911943B2 (en) Trap mechanism for data processing equipment
US5873124A (en) Virtual memory scratch pages
US20040019774A1 (en) Processor device and information processing device, compiling device, and compiling method using said processor device
US20050015672A1 (en) Identifying affected program threads and enabling error containment and recovery
EP0026587B1 (en) Data processing system including internal register addressing arrangements
US20050114578A1 (en) Secure software SMI dispatching using caller address
KR100495240B1 (en) Processor system
EP0098172B1 (en) Register control processing system
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
US6687845B2 (en) Fault vector pointer table
WO1990005951A1 (en) Method of handling unintended software interrupt exceptions
JPH04364545A (en) Memory dumping system
Buzzard et al. Object-based computer systems and the Ada programming language
JPH059814B2 (en)