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
English (en)
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/ja
Publication of JPH0114611B2 publication Critical patent/JPH0114611B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

【発明の詳細な説明】 本発明はマルチプログラミングデータ処理シス
テム、特にプロセス中断(即ち一時停止)時にプ
ロセスの作業パラメータを記憶するために設けら
れた構成に関するものである。
容易に開発、維持可能なシステムを得るため
に、プログラムの制御の組はシステムルーチンと
アプリケーシヨンプログラムに分割されている。
各アプリケーシヨンプログラムはシステムルーチ
ンの監視の元で限定セツトのタスクを処理する。
高速応答時間を必要とするリアルタイム環境に
おいては、いかなるアプリケーシヨンプログラム
でも一時停止して別のプログラムにより緊急なタ
スクの処理を開始させることができる。各アプリ
ケーシヨンプログラムを数回起動させて一連の同
様なタスクを処理することができる。各起動即ち
いわゆるプロセスは共通プログラムからの命令を
実行するが別々の作業データベースを使用してい
る。その結果いかなる数のプロセスも存在でき、
一つは活動中で残りは一時停止しているマルチプ
ログラミングとなる。システムルーチンはプロセ
スと同様に実行することができるが、その中のい
くつかは一時停止もしくは再起動して呼出された
ルーチンとして作動することができる。
高速応答を維持するには大概もしくは全てのシ
ステムルーチンおよびアプリケーシヨンプログラ
ムが高速アクセスメモリ内に永久常駐される。残
りの高速アクセスメモリはプログラムがそのタス
クおよび各プロセスに付随する作業域を実施する
のに必要な永久およびダイナミツクデータを保持
する。あまりひんぱんに使用されないプログラム
および大きくてもあまりアクセスされないフアイ
ルは補助記憶装置に保持して、所望により高速ア
クセスメモリに持ち出すことができる。各プロセ
スにはいわゆるプロセスダンプスタツクが設けら
れ、そこにはプロセスの一時停止時のプロセスの
作業パラメータが記憶される。
このようなシステムは1977年11月付システム技
術第27巻の26〜34頁に記載されたK.J.Hamer―
HodgesおよびG.B.K.Staggの文献“システム250
―制御アプリケーシヨン用故障許容誤差モジユラ
処理システム”に開示されている。このようなシ
ステムでは各プロセスはそれ自体の記憶装置もし
くは周辺領域へアクセスすることを制約されてお
り、そのためいかなる侵害によつても即座にその
プロセスが一時停止されメモリもしくは周辺装置
内での情報の劣化を防止する。活動プロセスが誤
つて他のプロセスのデータベースもしくはその親
命令を保持している記憶領域に書込みを行うと、
この一時停止プロセスの環境が劣化する。再起動
時には不正確なデータやコードに作用して順次他
のプロセスを劣化させることがある。こうして元
の誤りは検出されないとまん延して広範な損害を
生じる。前記文献に記載されたシステムはプロセ
スがそれ自体の命令を修正することをも防止し、
プログラム故障を意味する再入可能共用手順、定
数テーブルの変更、命令に従つたデータの実行お
よびデータに従つた命令の読取りを行う。
各プロセスに確実な環境を生成するために、記
憶保護構成が使用されておりいわゆる“ケーパビ
リテイ”を含んでいる。各プロセスにはその命令
とデータを保持したあるメモリブロツクが割当て
られている。各ブロツクは“ベース”および“リ
ミツト”アドレスと各ブロツクへのアクセスのタ
イプを制約する“アクセス”コードによりサイズ
と位置が定義される。一つのプロセスがこれらの
各記憶領域への許容アクセスを行うケーパビリテ
イを有している。現在使用中の値がハードウエア
ケーパビリテイレジスタ内に保持されており、各
記憶アクセスが侵害に対してチエツクされる。ケ
ーパビリテイハンドリング操作が英国特許第
1329721号および第1410631号に開示されている。
各プロセスにはそのプロセスに割当てられる記憶
ブロツクを定義するポインタテーブルが設けられ
ている。
前記したようにシステム250内の各プロセス
にはケーパビリテイ機構により保護されたプロセ
スダンプスタツクが付随している。このダンプス
タツクの機能は(i)一時停止点におけるプロセス状
態に対する記憶装置を提供する。(ii)プロセスの呼
出し手順(即ちサブルーチン)に関する情報をス
タツク(即ちネスト)する。
従つてプロセスダンプスタツクは基本的にマシ
ンレジスタと表示器を含む固定部分および各ネス
トされたルーチン(即ちプロセスもしくはサブル
ーチン)に対して一つのエントリ(即ちリンク)
を有する押下スタツクとして作動する可変記分か
らなつている。典型的に各ネストされたルーチン
のリンク内に記憶された情報は(a)ネストされたル
ーチンへの帰還点に対する相対化された命令アド
レスレジスタと、(b)ネストされたルーチンのコー
ドブロツクに対するケーパビリテイポインタと、
(c)ネストされたルーチンのポインタテーブルに対
するケーパビリテイポインタとを有している。
プロセスダンプスタツクの提供する機能を特に
押下スタツク領域リンクに関して拡張することが
本発明の目的である。
本発明によりマルチプログラミングデータ処理
システムが提供され、各プロセスには、(a)プロセ
スの一時停止時にマシンレジスタと表示器の内容
を記憶する固定部分と、(b)プロセスの実施する各
ネストされたサブルーチンのリンクを記憶する可
変部分とを有するプロセスダンプスタツクが設け
られており、各リンクは(a)ネストされたルーチン
を戻す時にプロセスをそこへ戻す命令アドレス
と、(b)ネストされたルーチンのコードブロツク
と、(c)残りのリンクのサイズと内容を示すリンク
記述子とを含んでいる。
リンク記述子を含んでいるため更に2クラスの
情報を各リンクに記憶することができ、それは即
ち(i)ドメーン変化手順中に保存されるデータおよ
びケーパビリテイレジスタと、(ii)局部記憶セグメ
ント用記述子である。局部記憶セグメント用記述
子は合計チエツク、ベースおよび限界情報を含ん
でいる。ここでベースおよび限界値は局部記憶ス
タツクのベースに関連しており、ダンプスタツク
と同様隠れたケーパビリテイレジスタC(L)に引用
される。リンク記述子はIAR語の最上位8ビツト
内に保持されている。これが0であればリンクは
(i)、IAR、(ii)、コードブロツクおよび(iii)、プロセ
スポインタブロツクの3項のみで構成される。主
記述子の最上位ビツトはスタツクされたレジスタ
の存在を示し、最下位7ビツトは生成された局部
記憶ケーパビリテイ番号を示す。
スタツクされたレジスタセツトにはサブルーチ
ンがネストされている時にスタツクされるレジス
タを示す1語記述子が付随されている。
局部記憶装置セグメントのケーパビリテイは(i)
要求局部記憶命令および(ii)、サブセツト局部記憶
命令であるハードウエア命令によつて行われる。
“要求局部記憶”命令により局部記憶セグメン
トが割当てられると、プロセスダンプスタツクに
3語エントリが行われる。このエントリは現在の
手順ネステイングレベルおよびある量のベーシツ
クアクセス情報を示すレベル番号を含んでいる。
ベースおよび限界値は局部記憶スタツクを基準と
しており、そのベースアドレスに関連している。
ケーパビリテイポインタのポインタフイールドは
ダンプスタツクのベースに関してオフセツトであ
る。同様の機構により局部記憶セグメントのサブ
セツトに対するケーパビリテイを構成することが
できる。これは“サブセツト局部記憶”命令によ
つて行われ、これは局部記憶セグメントの所与の
ケーパビリテイに対してそのセグメントのサブセ
ツトを生成し、それに対するケーパビリテイをレ
ジスタへ戻す。ダンプスタツクのエントリはサブ
セツトブロツクとしてマークされ、付随するレベ
ル番号は現在の手順ネステイングレベルに関連し
ている。
局部記憶は明確なハードウエア命令によつて割
当てられるが、エントリが行われたリンクの手順
から戻されると自動的に割当解除される。特定レ
ベルの全てのケーパビリテイはその手順レベルが
戻された時に休止し、これはレジスタのケーパビ
リテイを含む。
各ケーパビリテイに付随するレベル番号の主機
能は非任意伝播制御機構を補強することである。
この制御は付随レベルの低いケーパビリテイ内に
ケーパビリテイが記憶されないことを保証する。
ケーパビリテイが情報の不在もしくは悪い取つて
替えられた(Superceded)情報を引用するのを
防止するのにこの安全機構は重要である。
リンク記述子内の1個の“スタツクされたレジ
スタ”には1語レジスタ記述子が付随されてお
り、これはドメーンスイツチングが生じた時(即
ちルーチンがネストされる時)にスタツクされる
レジスタを示す。このレジスタ記述子は“保証さ
れた呼出し”命令によつて設定され、“リターン”
および“保護されたリターン”命令により使用さ
れてドメーンインターフエイスの自動選択定義を
可能とする。
“保護された呼出し”命令においてデータレジ
スタ(DO)はレジスタ記述子として使用され
る。記述子の2つの機能はどのデータおよびケー
パビリテイレジスタが呼出し期間中に保存され、
どのデータおよびケーパビリテイレジスタがクリ
アされる即ち新しいドメーンに読取られることか
ら保護されるかを示すことである。保存されるレ
ジスタは次にダンプスタツクリンクへロードさ
れ、DOレジスタパターンがそのリンクのレジス
タ記述子へロードされる。
“保護されたリターン”命令においてレジスタ
記述子は呼出しルーチンへ戻つた時にどのレジス
タがクリアされるかを決めるのに使用される。
第1図においてモジユラーデータ処理システム
は(i)数個の処理装置CPU1およびCPU2と、(ii)
数個の記憶モジユラスSTA,STBおよびSTC
と、(iii)集約してPEに示す一群の周辺装置とを含
んでいる。各記憶モジユールおよび各周辺装置に
はアクセスユニツトSAUA,SAUB,SAUCお
よびPAUNが設けられている。
各処理装置には別々の通信経路即ちバスが設け
られている(処理装置CPU1およびCPU2に対
して夫々CB1およびCB2がインターフエイス
BIF1およびBIF2を介して設けられている。)
各バスは全てのアクセスユニツト(SAUA,
SAUB,SAUCおよびPAUN)の個々のポート
上で終止する。全てのアクセスユニツトには入力
ポート上で終止するバス上に加えられるコード化
されたアドレス情報を認識する機能が設けられて
いる。プロセスの処理に使用されるさまざまなセ
グメントは記憶モジユール全体に分布されてお
り、全てのアドレツシング操作はケーパビリテイ
レジスタ保護システムに基いている。
次に第2図において各処理装置CPUはAデー
タフアイルADFおよびBデータフアイルBDFを
含んでおり、各々がAおよびBケーパビリテイレ
ジスタフアイル(ACA/LおよびACB)および
BCF(BCA/LおよびBCB)と共に32位置を含
んでいる。ケーパビリテイレジスタは英国特許第
1329721号に開示されたタイプの情報保護構成を
提供するのに使用される。データフアイルADF
およびBDFは各々が8個の汎用レジスタを含む
重複レジスタ構成を提供する。
レジスタの種類 4種類のレジスタがあり、データレジスタと、
ケーパビリテイポインタレジスタと、ケーパビリ
テイレジスタとインジケータレジスタである、初
めの3種類においていくつかは汎用であり全ての
プログラムに直接アクセスできる。残りは特定機
能に使用する特殊目的レジスタであり、適当なケ
ーパビリテイを処理するプログラムのみにアクセ
スできる。完全なレジスタ構造を第3図および第
4図に示す。
汎用データレジスタ(D(0)〜D(7) 各々が24ビツト長のD(0)〜D(7)までの8個
の汎用データレジスタがあり全てのデータ操作を
行う。記憶アドレス形成期間中にこれら7個のレ
ジスタD(1)〜D(7)をアドレス修飾子として使用す
ることができる。レジスタD(0)はマスクレジ
スタであり記憶装置に対して1語の一部を転送す
る時所要ビツトの指定に使用することができる。
レジスタD(0)は一つの命令から他の命令へパ
ラメータを通すためにも使用される。後者の用途
については後記する。
汎用ケーパビリテイレジスタ(C(0)〜C(7)) ケーパビリテイレジスタ(C(0)〜C(7)をロ
ードする時、それはベースアドレスとリミツトア
ドレスと記憶ブロツクに対するアクセス権を含ん
でいる。
処理装置はカレントプログラムブロツクに対し
てケーパビリテイを保持するためにケーパビリテ
イレジスタC(7)を使用し、C(7)へ新しいケーパビ
リテイをロードする命令により、ロードされたケ
ーパビリテイが定義するブロツクへ制御を転送す
る。プログラムブロツクから命令が読出されるた
びに処理装置はC(7)がその主アクセスフイールド
に設定されたEXECUTE DATAを有すること、
および命令のアドレスがケーパビリテイのベース
およびリミツトアドレス間にあることをチエツク
する。EXECUTE DATAを持たないC(7)へケー
パビリテイをロードすると、故障中断が発生して
次に使用される。命令アドレスがベースおよびリ
ミツトの範囲外にある場合にも故障中断が発生す
る。ケーパビリテイレジスタC(6)は一般的にドメ
ーンケーパビリテイポインタブロツクを引用する
のに使用されるが、その理由はそれがプロセスダ
ンプスタツク内の各リンクの一部を形成し、呼出
しおよびリターン命令が上書きされるためであ
る。
特殊目的データレジスタ 特殊目的データレジスタを下記に示す。
(1) 命令アドレスレジスタ(IAR) 本レジスタは汎用ケーパビリテイレジスタC(7)
が指定するプログラムブロツク内にカレント命令
のアブソリユートアドレスを含んでいる。それは
呼出し、リターンおよびケーパビリテイC(7)ロー
ドの各命令により変えられプロセスを変更する命
令により変更される。
2 ウオツチドツクタイマレジスタ(WTR) 本レジスタはプロセスを変更する命令により変
更され、古い値は一時停止したプロセスのプロセ
スダンプスタツク内にたくわえられ、新しい値は
活動プロセスのダンプスタツクからロードされ
る。それは100μsごとに減分される。0に達する
と故障中断が生じる。(第4節参照)従つてそれ
は各プロセスが活動する合計時間を測定する。
3 インタラプトアクセプトレジスタ(IR) 本レジスタは単一ビツト即ちビツト6を含み、
プログラムトラツプを受入れた時に設定される。
(第4節参照) 4 プロセスダンプスタツク押下レジスタ
(DSPPR) 本レジスタはプロセスダンプスタツクのカレン
トトツプを定義するアブソリユートアドレスポイ
ンタを含んでいる。(即ちダンピングに利用でき
る領域内の第1語を指摘する。)それはリターン
呼出し、要求局部記憶、およびサブセツト局部記
憶命令によつて変えられ、変更プロセス命令によ
つて変更される。
5 故障表示器ダンプレジスタ 最初の故障中断に続いて本レジスタは故障表示
器レジスタの状態を含んでいる。
6 レベル番号(LNR)および局部記憶スタツ
クポインタレジスタ(LSPR) 本レジスタは2部分に分割されている。最上位
8ビツトはプロセスのカレントリンクレベル番号
を含んでいる。それは呼出しおよびリターン命令
により変えられ変更プロセス命令により変更され
る。レジスタの最下位16ビツトは局部記憶スタツ
クのカレントトツプを定義する相対アドレスポイ
ンタ(C(L)のベースに関する)を含んでいる。
(即ち割当てに利用できる領域内の第1語を指摘
する)それは要求局部記憶、サブセツト局部記憶
およびリターン命令により変えられ変更プロセス
命令により変更される。
7 局部ケーパビリテイカウント(LCCR)およ
び局部記憶クリアカウントレジスタ(LSCCR) 本レジスタは2部分に分割されている。最上位
8ビツトはカレントリンクレベルで生成される局
部ケーパビリテイ番号のカウントを含んでいる。
それは要求局部記憶およびサブセツト局部記憶命
令により変えられ、呼出し、リターンおよび変更
プロセス命令により変更される。レジスタの最下
位16ビツトは局部記憶クリアカウントを含んでい
る。それは要求局部記憶により変えられ、変更プ
ロセス命令により変更される。
8 データレジスタD(A)およびD(B) これらのレジスタはプロセツサのいずれの機能
によつても使用されないが、“内部モード”を使
用したデータ命令によりアクセスすることができ
る。インタラプトアクセプトレジスタを除き特殊
目的データレジスタは24ビツト長である。それら
は全て特長命令のみならず“内部モード”を使用
したデータ命令によりアクセスすることができ
る。
特殊目的ケーパビリテイレジスタ 8個の特殊目的ケーパビリテイレジスタがあ
り、処理装置が制御情報へアクセスするのに使用
する。特殊ローデイング命令が供給されないため
それらは“内部モード”へアドレスする能力を持
つたプログラムにより読出し改変できる。
1 ケーパビリテイレジスタC(D) 本レジスタは活動プロセスの処理装置ダンプス
タツクに対するベース/リミツトアドレスおよび
アクセスコードを含んでいる。それは変更プロセ
ス命令により変えられ、呼出し、リターン、要求
局部記憶およびサブセツト局部記憶命令により操
作される。
2 ケーパビリテイレジスタC(I) 本レジスタは第1語がインターバルタイマ値を
含む記憶ブロツクを定義する。それは経過した絶
対時間を測定し、処理装置により100μsごとに減
分される。0に達するとノーマルインタラプトが
発生する。
3 ケーパビリテイレジスタC(C1) 本レジスタはシステムケーパビリテイテーブル
の第1部分を含む記憶ブロツクを定義する。
4 ケーパビリテイレジスタC(C2) 本レジスタはシステムケーパビリテイテーブル
の第2部分を含む記憶ブロツクを定義する。
5 ケーパビリテイレジスタC(N) 本レジスタは第1語がノーマルインタラプトプ
ロセスへのエントリを行うケーパビリテイポイン
タを含む記憶ブロツクを定義する。
6 ケーパビリテイレジスタC(S) 本レジスタは故障中断を処理する時に処理装置
が使用する4語記憶ブロツクを定義する。故障シ
ーケンス中にベース語の最上位12ビツトが増分さ
れ、レジスタの残りはパワーアツプに続いて処理
装置によりプリセツトされている。
7 ケーパビリテイレジスタC(L) 本レジスタはカレントプロセスの局部記憶スタ
ツクに対する記憶ブロツクを定義する。それは変
更プロセス命令により変更される。
8 ケーパビリテイレジスタC(P) 本レジスタは記憶装置にアクセスする時プログ
ラマインターフエイスにより使用される。
表示器レジスタ 主表示器(第2図および第4図のPIR)、故障
表示器FIR、試験TRおよびヒストリカルHRレ
ジスタの4個の表示器レジスタがある。これらは
処理装置内のさまざまな状態を表示する。これら
は内部モードでのみアクセス可能である。主表示
器レジスタの内容は変更プロセス命令により変更
され、古い値は一時停止プロセスのプロセスダン
プスタツク内に蓄えられ次に新しい値が活動プロ
セスのダンプスタツクからロードされる。
主表示器レジスタ(PIR) 主表示器レジスタは8ビツト長である。0〜2
ビツトは0に等しい。(0ビツト)、0より小さ
い、(1ビツト)、オーバフロー、(2ビツト)の
演算表示器である。これらは過半数の命令の結果
により設定もしくはクリアされる。
4,5ビツトは制御表示器である。
1 特殊モード(4ビツト)は1命令に対しての
み設定されたままである。設定された場合それ
は対応する汎用ケーパビリテイレジスタの替り
にケーパビリテイのロード命令を特殊目的ケー
パビリテイレジスタへアクセスする。
2 インタフエイス故障抑止(5ビツト)は1命
令に対してのみ設定されたままである。設定さ
れるとそれは故障中断を抑止し、これは通常記
憶装置から取出されたオペランドが処理装置/
記憶装置インターフエイス故障を検出する時に
生じる。
7ビツトは第1試行表示器である。それは故障
中断により設定され処理装置の後続する故障に対
する応答に影響をおよぼす。
8ビツトは抑止割込表示器である。それは設定
された時タイマ割込が生じるのを抑止する。
故障表示器レジスタ(FIR) 故障表示器レジスタは24ビツト長である。どの
ビツトも内部モードアクセスで設定することがで
き、どのビツトもクリアすることができる。下記
事象により設定されると故障中断が生じるが、主
表示器レジスタにインターフエイス故障抑止が設
定されている場合は処理装置/記憶装置インター
フエイス故障が生じる。
0,5,9―11,14ビツトは処理装置/記憶装
置故障を示す。
記憶アクセス後400μs以内に並列バスからのい
ずれかの入力線が論理0に戻つていない場合バス
コラプト(0ビツト)が設定される。
記憶アクセス中にモジユールがアドレスもしく
はデータを受入れできないことを記憶モジユール
が報告するとスレーブタイムアウト(5ビツト)
が設定される。
記憶モジユールが50μs以内に応答しない場合記
憶インターフエイスタイムアウト(9ビツト)が
設定される。
記憶モジユールが前進語(即ち“アドレス”も
しくは“アドレス/データ”)上に発生しCPUに
戻されるパリテイが処理装置の発生するものと等
しくない場合、パリテイ比較故障(10ビツト)が
設定される。
記憶装置から読出される“データ/アドレス”
パリテイが記憶装置からのアドレスおよびデータ
上に処理装置が発生するものと等しくない場合読
出しデータパリテイ故障(11ビツト)が設定され
る。
CPU/記憶装置転送期間中に不当制御コード
を受信したことを記憶モジユールが報告すると不
当制御コード(14ビツト)が設定される。3ビツ
トと奇数パリテイコードが使用される。
2ビツトは割込時間限れ表示器である。それは
間隔タイマー語が0に減分されてから(抑止割込
が設定されていない場合)300mS間割込アクセプ
トレジスタがアクセスされていない場合、もしく
は故障中断300mS後にこの状態が生じていない場
合に設定される。
6―8ビツトおよび18ビツトはケーパビリテイ
故障を示す。アクセス試行に使用したケーパビリ
テイレジスタ内の重複ベースアドレス、リミツト
アドレスもしくはアクセスコードが同一でないと
判つた場合にケーパビリテイ比較故障(6ビツ
ト)が設定される。左へ9ビツト循環した合計チ
エツク語がケーパビリテイレジスタがロードされ
ている場合のベースおよびリミツト値に一致しな
い場合ケーパビリテイ合計チエツク故障(7ビツ
ト)が設定される。
使用するケーパビリテイのベースおよびリミツ
トアドレスが指定する範囲外にアドレスがあるこ
とが判つた場合ケーパビリテイベース/リミツト
侵害(8ビツト)が設定される。
不正転送が試みられるとアクセスフイールド侵
害(8ビツト)が設定される。
12ビツトは不当動作表示器である。それは不当
動作が試みられる場に設定される。
13ビツトは電源故障表示器である。それは給電
限界を越えた時に設定される。
15ビツトはトラツプ故障表示器である。それは
抑止割込が設定されている時にプログラムトラツ
プが生じると設定される。
16ビツトおよび19ビツトはハードウエア故障を
示す。ある内部ハードウエアが故障をチエツクす
ればハードウエア故障1およびハードウエア故障
2が設定される。
17ビツトはウオツチドツクタイマゼロ表示器で
ある。それはウオツチドツクタイマレジスタが0
になると設定される。
20〜23ビツトは故障もしくはトラツプが生じる
時に使用されるケーパビリテイレジスタの8進ア
ドレスへ設定される。
3ビツトおよび4ビツトは“内部モード”を使
用したデータ命令によつてのみ設定/復帰でき
る。
試験レジスタ(TR) 本レジスタは故障検出機構の試験施設を含んで
いる。
ヒストリカルレジスタ(HR) 16個の26ビツトレジスタ群の中の1個のレジス
タを4ビツトアドレスカウンタにより一時にアド
レスできる。これらは故障調査ルーチンに使用す
る第1イン/第1アウト円形待ち行列を構成す
る。
前記レジスタの使用方法を第2図に示すビツト
マルチプレクサBM、演算装置ALU、命令レジ
スタIREG、データインレジスタMDIN、メモリ
アドレスレジスタMAR、データアウトレジスタ
MDOR、A,Bケーパビリテイチエツク比較器
ACCおよびBCCと共に、プロセスダンプスタツ
ク内の情報を処理する命令実行時の処理装置の動
作に関して後記する。
プロセスダンプスタツク 各プロセスにはプロセスダンプスタツクが付随
しており、それはプロセス実行時に特殊目的ケー
パビリテイレジスタC(D)により定義される記憶ブ
ロツクである。プロセスダンプスタツクは3機能
を有する。
1 一時停止中にプロセス環境を保存する。
2 他のサブルーチンの呼出し中にサブルーチン
環境値をスタツクする。
3 局部記憶スタツク上に割当てられた局部記憶
ブロツクに対する局部ケーパビリテイテーブル
として作用する。
プロセスダンプスタツクは呼出し、要求局部記
憶、サブセツト局部記憶命令および変更プロセス
により更新される。変更プロセス命令はこのよう
な2つのスタツクを含んでいる。典型的なカレン
トプロセスダンプスタツクの内容を第5図に示
す。
プロセスダンプスタツクは固定サイズ領域およ
びスタツク領域を有している。固定領域は一時停
止中のプロセス環境をダンプするのに使用する。
変更プロセスマイクロシーケンス期間中にケーパ
ビリテイポインタレジスタP(0)〜P(5)からの
ケーパビリテイポインタは位置Pd(0)〜Pd(5)へ
ダンプされ、データレジスタD(0)〜D(7)の内
容は位置Dd(0)〜Dd(7)へダンプされる。更に
数個の特殊プロセス値が固定領域へダンプされ
る。これらは押下レジスタ、ウオツチドツクタイ
マ、主表示器レジスタ、レベル番号(LN)およ
び局部記憶スタツクポインタレジスタ(LSSP)
および局部記憶クリアカウントレジスタ
(LSCC)である。ケーパビリテイポインタレジ
スタP(6),P(7)からのケーパビリテイポインタは
カレント(関連)命令アドレスレジスタおよび局
部ケーパビリテイカウントレジスタと共にスタツ
クへダンプされる。
押下ポインタレジスタは変更プロセス中に押下
ポインタ位置へダンプされてダンプスタツクに最
後に書かれた語(即ち命令アドレス)を指示す
る。プロセスの実行中このレジスタはスタツクの
頂部(即ちスタツク上の次に利用可能な位置)を
指摘する。呼出し中にデータレジスタD(1)〜D(6)
およびケーパビリテイポインタレジスタP(0)
〜P(5)は命令の指定により保存することができ、
この場合記述子値はどのレジスタが次のようにス
タツクされたかを示す。
18〜23ビツト P(0)〜P(5) 12〜17ビツト D(1)〜D(6) 特定ビツトを1へ設定することはレジスタをス
タツクすることを示す。ケーパビリテイポインタ
レジスタP(6),P(7)は呼出しにより、次の命令に
対する命令アドレスレジスタ(相対)と共に常に
保存される。IAR語内の最上位ビツトを1に設定
することはレジスタがスタツクされることを示
す。
要求局部記憶命令により局部記憶スタツク上に
局部記憶が割当てられるか、あるいはサブセツト
記憶命令によりサブブロツクが定義される時は常
にプロセスダンプスタツク上に3語エントリーが
行われる。3語エントリーは合計チエツク語、ベ
ース語およびリミツト語からなつている。ベース
語の最下位16ビツトは指定ブロツクの第1位置の
局部記憶スタツクケーパビリテイレジスタC(L)の
ベースに関してオフセツトを含んでいる。ベース
語の23ビツトはサブケーパビリテイビツトを含ん
でいる。リミツト語の最下位16ビツトは指定ブロ
ツクの最終位置の局部記憶スタツクケーパビリテ
イレジスタC(L)のベースに関してオフセツトを含
んでいる。リミツト語の最下位8ビツトは局部ケ
ーパビリテイテーブルエントリを生成したレベル
番号を含んでいる。合計チエツク語はベース語の
最下位16ビツトをリミツト語の最下位16ビツトに
加えて形成した24ビツトチエツク語を含んでい
る。局部ケーパビリテイテーブルエントリーのフ
オーマツトを第6図に示す。
要求局部記憶命令はサブケーパビリテイビツト
リセツトを有する局部ケーパビリテイテーブルを
生成し、サビセツト局部記憶命令はサブケーパビ
リテイビツトセツトを有する局部ケーパビリテイ
テーブルエントリを生成する。
次に第2図の処理装置がプロセスダンプスタツ
ク内に保持された情報を処理するさまざまな命令
の実行パフオーマンスについて検討する。処理装
置が実行するさまざまな動作は図示しないマイク
ロプログラム制御装置によつて制御されるが、本
技術に習熟した人には第7図〜第10図のフロー
図により定義される所望動作を例えば各フロー図
ステツプに対して所望制御信号を発生するプログ
ラムROMを使用して説明できることが判るであ
ろう。以下の説明においてさまざまなレジスタか
らレジスタへの転送が生じるが、説明を簡単にす
るため:=の符号を含む速記法を使用する。この
符号は“となる”ことを定義するものとし、
ALU:=MDINのステートメントは演算装置
(ALU)がレジスタMDIN内に保持されたデータ
を受け取るものと解釈する。
考慮すべき第1命令は“要求局部記憶”であり
その命令に対するフロー図を第7図に示す。
要求局部記憶命令 第7図の頂部に示す命令語IWはこの命令
(RLS)が記憶モード(S)で実行され、局部記
憶ブロツクにM、C(X)の定義する記憶位置内
に保持されたデータで示されるサイズと命令語の
Aフイールドを割当てることを要求し、その局部
記憶ブロツクに対するケーパビリテイ記述子がケ
ーパビリテイレジスタC(N)にロードされる。
Mフイールドはアドレス修飾子として使用するデ
ータレジスタの一つを定義し、C(X)フイール
ドは所望記憶位置が保持されているブロツクに対
する記述子を保持している汎用ケーパビリテイレ
ジスタを定義し、A値は所望位置に対するそのブ
ロツクのベースからのオフセツトを定義する。前
の命令サイクル中に命令語IWが記憶装置から第
2図の命令バツフアIBへ読み出され、機能コー
ドおよびレジスタ選定フイールドがマイクロプロ
グラム記憶装置(図示せず)に加えられてこの命
令動作を開始し、それはマイクロプログラム制御
の元で引き続くステツプシーケンスにより実行さ
れる。
ステツプS1LSCC=0? 本ステツプにおいて局部記憶クリアカウントレ
ジスタLSCCRがAフアイル内のマイクロプログ
ラム装置により選定されて演算装置ALUへ供給
され、マイクロプログラム装置は演算装置制御信
号AUCSを0に対してテストすることができる。
それが0であれば局部記憶装置には利用できるス
ペースがない。
ステツプS2―記憶アドレスを読出す 本ステツプにおいて命令語のA値が定義する記
憶アドレスは適切な記憶モジユールからデータ入
力レジスタへ読み出される。典型的に本ステツプ
で実行される動作シーケンスは次のとおりであ
る。
ALUd:=C(X)ベース ALUa:=IREG(A値) ALU Add MAR :=ALU 記憶読出し@MAR MDIN:=BIN アドレス修正は要求されない(即ちM=0)も
のと仮定する。上記動作は適切な記憶モジユール
からレジスタMDIN内のデータへ読み出される
局部記憶ブロツクサイズ値LSSBを抽出してい
る。
ステツプS3―LSSB=0? 本ステツプにおいてステツプS2で読み出され
たデータはALUへ通され、マイクロプログラム
装置によりALUCS信号を使用して0テストされ
る。0であれば故障表示され0でなければステツ
プS4が実行される。
ステツプS4―LSPR+LSSB−1 本ステツプにおいて局部記憶スタツクポインタ
レジスタ(LSPR)が読み出されて局部記憶スタ
ツクのカレントトツプ(即ち割当てに利用できる
領域内の第1語)を定義し、ブロツク要求に対す
る最終(即ちリミツト)アドレスがステツプS2
で読み出されたLSSB値から1を減じたものをカ
レントLSPRアドレスに加えることにより算出さ
れる。典型的にシーケンスは次の動作を含んでい
る。
ALUa:=LSPR ALUb:=MDIN−1 SAVE ALU LSBリミツト内のステツプS5 本ステツプにおいてステツプS4動作の結果が
テストされて、要求ブロツクが局部記憶領域をオ
ーバランするかどうかが調べられる。これは局部
記憶ケーパビリテイレジスタC(L)のリミツト半分
を選択し、それをケーパビリテイ比較器ACCお
よびBCC内のALUからの結果と比較して達成さ
れる。テストが失敗すると故障が発生する。
ステツプ6DSへLSBベースを書込む 本ステツプにおいて現在ダンプスタツクの頂部
を指示しているダンプスタツク押下ポインタレジ
スタDSPPRは、要求局部記憶ブロツクに対する
ベースアドレスが書き込まれるアドレスを定義す
るのに使用される。第5図の“スタツクされたレ
ジスタと生成された局部ケーパビリテイを有する
リンク”を示す領域LK(RS&LCC)は合計チエ
ツク、ベースおよびリミツトからなる局部記憶ケ
ーパビリテイエントリーを示す。
実行される動作は典型的に次のシーケンスを取
ることができる。
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 :=LSS−1+LSP MDOR :=ALU 記憶書込み@MAR ステツプ8―DSへLNRを書込む 本ステツプにおいてレベル番号レジスタLNR
の内容はステツプS7においてアドレスされたリ
ミツト語の最上位8ビツトへ次のように書き込ま
れる。
ALU :=LNR MDOR:=ALY 記憶書込み@MAR ステツプS9―DSへ合計チエツクを書込む 本ステツプにおいて局部記憶ケーパビリテイエ
ントリーに対する合計チエツクが形成されて局部
記憶ケーパビリテイエントリの第1語へ書き込ま
れる。
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動作をさせて達成される。
ステツプS11―LSPRをLSSだけ増分する 本ステツプにおいてステツプS2で読み出され
た局部記憶ブロツクサイズ情報が局部記憶ポイン
タレジスタLSPRのカレント値に加算されて局部
記憶装置内の次のフリー領域へ新しいポインタを
形成する。
ステツプS12―C(N)がロードする 本ステツプにおいて前記形成された局部ケーパ
ビリテイ記述子が命令語の“D”フイールドが定
義するケーパビリテイレジスタへロードされる。
典型的に実行される動作は正規ロードケーパビリ
テイレジスタ動作を含み、2個のCPU間の設計
の違いを考慮すれば英国特許第1329721号に記載
された動作と同様である。
ステツプS13―LSCCRへLSSをロードする 本ステツプにおいてステツプS2で読み出され
た局部記憶サイズ値は局部記憶クリアカウトレジ
スタへ供給され、次にステツプS14,S15,S16が
繰返し実行されて要求された局部記憶ブロツク内
の位置をクリアする。これは局部記憶クリアカウ
ントレジスタを減分して(ステツプS15)C(N)
ベース値へ加え、そのように定義された記憶位置
へ0を書き込み(ステツプS16)、局部記憶クリ
アカウント値を0テストして達成される。(ステ
ツプS14) 全ての局部記憶ブロツク位置がクリアされてい
るとLSCCR値は0であり、ステツプS14におい
て命令が出される。
前記より第5図のダンプスタツクリンクLK
(RS&LCC)内の局部ケーパビリテイエントリー
の定義する局部記憶ブロツクをカレントルーチン
が使用でき、局部記憶ブロツクの生成が局部ケー
パビリテイカウントレジスタLCCR内に記憶され
ていることが判る。
次に“サブセツト局部記憶”命令について検討
し、その命令に対するフロー図を第8図に示す。
サブセツト局部記憶命令 本命令において第8図の頂部に示す命令語はC
(X)、Aフイールドおよび局部記憶ケーパビリテ
イ記述子がロードされるケーパビリテイレジスタ
により局部記憶ケーパビリテイ記述子に対するケ
ーパビリテイポインタを定義する。命令にはその
最上位12ビツトにオフセツト、その最下位12ビツ
トにサブセツト語サイズ値を保持するデータレジ
スタD(0)も入力される。
ステツプSS1―C(N)をロードする 本ステツプにおいてDフイールド(C(N))の
指定するケーパビリテイレジスタに、M,C,A
フイールドの指定するポインターにより定義され
る局部記憶ケーパビリテイ記述子がロードされ
る。典型的に実行される動作は英国特許第
1329721号で実行される動作に関連しているが、
もちろんCPUの設計は本特許のものとは違つて
いる。
ステツプSS2―LSBOおよびサイズを読取る 本ステツプにおいてオフセツト値およびサイズ
を使用して局部記憶装置内のサブセツトに必要な
領域を定義し、局部記憶ブロツク内のサブセツト
の限界を示すアドレスを定義する。これらの動作
は典型的に次のシーケンスにより達成される。
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が実行される。
ステツプSS4―DSへLS―Sベースを書込む 本ステツプにおいてオフセツトの追加およびス
テツプSS2中にデータアウトレジスタ内に現在記
憶されている命令Dフイールド(即ちC(N))に
より指定されるケーパビリテイレジスタからの相
対ベースの結果は、ダンプスタツクされてサブセ
ツト記述子であることを示すように設定された23
ビツトを有する局部ケーパビリテイエントリのベ
ース語を形成する。典型的にマイクロプログラム
装置により次のシーケンスが実行される。
ALUa:=DSPPR ALU+1 MAR :=DSPPR 記憶書込み@MAR ステツプSS5―DSへLS―Sリミツトを書込む 本ステツプにおいてサブセツトの局部ケーパビ
リテイ記述子の限界値は次の位置においてダンプ
スタツクへ書き込まれる。
ステツプSS6―DSへLNRを書込む 本ステツプにおいてレベル番号レジスタLNR
内の値はステツプSS5で書込まれたエントリの最
上位8ビツトへ書込まれる。
ステツプSS7―DSへ合計チエツクを書込む 本ステツプにおいてサブセツトブロツクのベー
スアドレスはリミツトアドレスへ加えられその結
果は9ビツト回転され、次にこの語はダンプスタ
ツク押下ポインタレジスタDSPPRの指定するダ
ンプスタツクアドレスへ書込まれ、局部ケーパビ
リテイ記述子の合計エントリーを形成する。
ステツプSS8―C(N)のLS―Sポインタを形成
する 本ステツプにおいてC(N)フイールドの指定
するケーパビリテイレジスタがアクセスされてリ
ミツト語の最上位9ビツトが抽出され、プロセス
ダンプスタツク押下ポインタレジスタの相対値の
最下位15ビツトを使用してC(N)のポインター
を形成する。
ステツプSS9―DSPPRを増分する;LCCRを増
分する 本ステツプにおいてプロレスダンプスタツク押
下ポインタレジスタDSPPR内容が増分されて最
終形成されたケーパビリテイ記述子のリミツト語
“より下の”ダンプスタツク位置を指示する。最
後に局部ケーパビリテイカウントレジスタLCCR
カウントが1だけ増分されてプロセスの生成する
局部ケーパビリテイ記述子番号を示す。
“要求局部記憶”および“サブセツト局部記
憶”命令の前記説明から、ダンプスタツクのネス
トされたエントリを使用して局部生成ケーパビリ
テイ記述子を保持し、局部ケーパビリテイカウン
トレジスタがルーチン実行中に生成される局部ケ
ーパビリテイ番号を示すことが判る。サブセツト
局部記憶命令の場合にはベースエントリーの23ビ
ツトが“1”としてマークされる。
プロセスダンプスタツクのネストされた領域を
使用して局部ケーパビリテイ記述子テーブルを提
供する他にドメーンスイツチ(即ち他のサブルー
チンの呼出し)が生じる時に保存されるレジスタ
の記憶装置を提供する。含まれている命令は(a)
“保護された呼出し”命令と(b)“保護されたリタ
ーン”命令である。
保護された呼出し命令 本命令の実行により行われる動作のフロー図を
第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ビツトが空白とされるケーパビ
リテイレジスタを定義する。
ステツプSC1―D(0)を読出す 本ステツプにおいてレジスタD(0)の内容が
読み出され、演算装置状態信号ALUCSを使用し
てマイクロプログラムへ通される。
ステツプSC2―記憶レジスタ;空白レジスタ 本ステツプにおいて保存されるレジスタは第5
図に示すようにALUを介してダンプスタツクの
リンク部内の連続位置における連続記憶書込み動
作上の記憶装置に通される。アドレツシングはレ
ジスタDSPPR内のダンプスタツク押下ポインタ
ーを使用して形成されたアドレスの制御下にあ
る。レジスタの保存が完了ると空白とされるレジ
スタがALU中を循環されALU出力を0とする。
ステツプCS3DSへD(0)を書込む ステツプCS3が完了するとダンプスタツク押下
ポインタがスタツクされた最終レジスタの下のエ
ントリを指示する。第5図にこの位置がレジスタ
記述子エントリーを保持するのに使用されること
を示す。DSPPRレジスタを使用してD(0)の内
容が書き込まれるダンプスタツクアドレスを定義
する。
ALU :=DSPPR MAR :=ALU ALU :=D(0) MDOR:=ALU 記憶書込み@MAR ALU :=DSPPR ALU+1 DSPPR:=ALU ステツプCS3において記憶書込み動作が実施さ
れるとダンプスタツク押下ポインタが1だけ増分
され、ステツプCS4,CS5においてC(6),C(7)の
ポインタを記憶する準備が完了し引き続き押下ポ
インタが増分される。
ステツプCS6DSへIARを書込む 本ステツプにおいてネストされたルーチンの最
終エントリーが準備され、それは0〜15ビツトに
相対化されたIAR値を有し、16〜22ビツトに局部
ケーパビリテイカウントレジスタの値を有し、そ
れはステツプS10の“要求局部記憶”命令および
ステツプSS9の“サブセツト局部記憶”命令の実
施において増分されている。実施される動作は典
型的に次のものである。
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)へロー
ドされる。
ステツプCS8C(6)アクセスOK? 本ステツプにおいてマイクロプログラム装置が
ステツプCS7でロードされたアクセスコードをチ
エツクする。
ステツプCS9LCRを増分する;LCCRをリセツト
する 本ステツプにおいてレベル番号レジスタLNR
の値はALUに通すことにより1だけ増分され、
レジスタLCCR内の局部ケーパビリテイカウント
値が0へリセツトされる。
ステツプCS10C(7)をロードする 本ステツプにおいてレジスタC(6)の定義するプ
ロセスケーパビリテイテーブルを基準とするAお
よびMフイールドにより定義されるポインターを
使用して、プログラムブロツクケーパビリテイレ
ジスタC(7)がロードされる。
本動作は保護された呼出しに対する機能を完了
し、ネストされたリンクは局部ケーパビリテイ記
述子および保存されたレジスタに対する保存され
たレジスタおよび記述子と共にネストされたルー
チン中に生成された局部ケーパビリテイ記述子を
含んでいる。
最後に呼出されたルーチンの終りに実施され前
にネストされたルーチンへ制御を戻す“保護され
たリターン”命令の実施について検討する。第1
0図に保護された命令に対して実施される動作を
示す。
保護されたリターン命令 第10図の頂部に示す命令語RLWはそれが直
接モードで動作することを示し、最下位12ビツト
に汎用データD(1)〜D(6)および空白とされるケー
パビリテイレジスタC(0)〜C(5)を示す1パタ
ーンの1を有するD(0)が入力される。
ステツプRS1―レジスタを空白とする 本ステツプにおいてレジスタD(0)が読み出
されてALUCS信号の調整に使用され、マイクロ
プログラム制御はその内容をALUに循環させる
ことにより空白とされるレジスタを順次選定する
ことができる。
ステツプRS2―DSを読出す 本ステツプにおいてダンプスタツクは1だけ減
分されたダンプスタツク押下ポインターにおいて
アドレスされて記述子/IARリンクエントリをア
ドレスし、情報読出しが内部データレジスタの一
つ例えばD(1)へ供給されて、23ビツトをステツプ
RS5でテストしていずれかのレジスタをリンクか
らアンロードする必要があるかどうかを調べる。
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)がロードされ、ダンプスタツク押下ポインタ
ーが減分される。
ステツプRS3C(6)をロードする 本ステツプにおいてC(6)のポインターがダンプ
スタツクから読出され、ケーパビリテイレジスタ
C(6)がロードされる。
ステツプRS5レジスタ記述子23ビツトは1か? 本ステツプにおいて前記ステツプRS2でロード
されたレジスタD(1)の23ビツトがテストされる。
それが0ならば第5図にリンクLK(0)で示すダ
ンプスタツクリンクからアンロードされるレジス
タは無く、ステツプRS6,RS7,RS8は無視され
る。テストされたビツトが1であればこれらのス
テツプが実施されてスタツクされたレジスタをリ
ンクからアンロードする。
ステツプRS6DSPPRを減分する;REG記述子を
読出す 本ステツプにおいてリンク内の次のエントリが
読出されそれは第5図に示すようにレジスタ記述
子であり、この記述子はステツプRS7においてス
タツクされたデータとケーパビリテイレジスタの
アンローデイング制御に使用される。
ステツプRS7DSPPRを(LCC×3)だけ減分す
る 本ステツプはダンプスタツク押下ポインターを
調整して局部ケーパビリテイ記述子がある場合そ
のアンローデイング準備完了する。
ステツプRS9LCC×3=0か それが0であれば第5図にLK(RS)で示すよ
うなリンク内に局部ケーパビリテイ記述子がな
い。テストされた値が0でなければステツプ
RS10等が実施されて“ネストされない”ルーチ
ンが生成するケーパビリテイ記述子の第1サブセ
ツトのベーースアドレスへ局部記憶ポインターを
設定する。
ステツプRS10―DSPPRを保存する;DSPPRを
増分する;LSCCRにLCC×3をロードする 本ステツプにおいてレジスタDSPPR内のダン
プスタツク押下ポインタは後の使用に保存され、
典型的にそれはステツプRS6,RS7,RS8中にロ
ードされないデータレジスタの1個に保持され
る。更に局部記憶ケーパビリテイカウントレジス
タLCCRにはこのプロセスで生成される局部ケー
パビリテイ番号を定義する局部ケーパビリテイカ
ウントがロードされる。
ステツプRS11―ISLSCCR=0? 本ステツプにおいて局部ケーパビリテイカウン
トをテストしてそれが0かどうかを調べる。明ら
かにこの時点において局部ケーパビリテイカウン
トは0ではない。
ステツプRS12ベースエントリーを読出す 本ステツプにおいてステツプRS10で定義され
る位置においてダンプスタツクリンクエントリが
読出され、この語の最上位ビツトをテストしてそ
れがサブセツト局部ケーパビリテイベースエント
リーかどうかを調べることができる。
ステツプRS13―23ビツト=0か 本ステツプにおいて最終ステツプで読出したダ
ンプスタツクエントリーをテストし、それが23ビ
ツトが“1”であることにより示される局部ケー
パビリテイ記述子ベースエントリーであるかどう
かを調べる。23ビツトが“1”であればステツプ
RS14が実施される。
ステツプRS14―LCCRを減分する;DSPPRを3
だけ増分する 本ステツプにおいてレジスタLCCR内の局部ケ
ーパビリテイカウントが1だけ減分され、ダンプ
スタツクポインターレジスタが3だけ調整されて
1がある場合次の局部サブセツトケーパビリテイ
ポインターのベースエントリーを指示する。次に
ステツプRS11,RS12,RS13が実施されてもう
一つの局部ケーパビリテイ記述子があるかどうか
(ステツプRS11)またそれが戻されたプロセスの
実行により生成されたものかどうかを調べる。
(ステツプRS12,RS11) 局部サブセツトケーパビリテイ記述子が全く生
成されない場合、ステツプRS16が実施されてダ
ンプスタツク押下ポインタ値をアンロードされて
いるダンプスタツクリンクの開始点に設定し、こ
の領域を次の“呼出し”命令で再使用することが
できる。ルーチンのパラメータに戻るアンスタツ
キング中に局部サブセツトケーパビリテイ記述子
が見つかつているとステツプRS15が実施されて、
ステツプRS16を実施する前に局部記憶ポインタ
―レジスタLSPRをそのエントリーのベース値に
設定する。
ステツプRS14―LNRを減分する;LCCRを0と
する 本ステツプにおいてリターン命令が制御を高レ
ベルサブルーチンへ戻し、ステツプRS11,
RS12,RS13,RS14を含むループ内で使用する
局部ケーパビリテイカウントレジスタLCCRが0
に回復するとレベル番号レジスタLNRが1だけ
減分される。
ステツプRS18―LDSをチエツクする 本ステツプにおいてケーパビリテイレジスタC
(0)〜C(5)の8個の汎用ケーパビリテイポイン
ターの局部記憶ケーパビリテイアクセスコードが
チエツクされる。相対プロセスダンプスタツク押
下ポインター値に等しいかあるいはそれより大き
いオフセツト値を有するものが見い出されると、
対応するケーパビリテイレジスタが空白とされ
る。
ステツプRS19―IARをロードする 本ステツプにおいてステツプRS2に記憶された
相対化されたIAR値を使用して戻されたルーチン
の実IAR値を形成する。
上記より保護されたリターン命令はダンプスタ
ツクリンクから低位サブルーチンへの呼出しがな
された場合を除き全てのスタツクされたレジスタ
を除去し、レベル番号レジスタLNRを次の高レ
ベルに設定してダンプスタツクおよび局部記憶ポ
インターレジスタを次の高位サブルーチンへ戻す
前に調整する。
結 論 前記説明からダンプスタツクを使用してサブル
ーチンをネストし、各リンクはケーパビリテイレ
ジスタC(6),C(7)のポインターを保持しており
(即ちプロセスケーパビリテイテーブルとプロセ
スプログラムコードブロツク)、ルーチン中に生
成された局部記憶ブロツクの局部記憶ケーパビリ
テイ記述子と共にネストされたルーチンからの相
対化されたアドレス値が汎用レジスタおよび汎用
ケーパビリテイレジスタのポインターの選定と共
にネストされていることが判る。各リンクに保持
された情報は生成された局部ケーパビリテイ記述
子番号およびスタツクされたレジスタを示す記述
子により修飾される。CPU内に組入れられて増
強されたダンプスタツク機構を取り扱う命令は
(i)、局部記憶ブロツクを区画してそれらにケーパ
ビリテイ記述子を割当て、局部記憶ブロツクを要
求するサブルーチンに関するダンプスタツクのリ
ンク領域内に記述子を記憶する要求局部記憶およ
びサブセツト局部記憶命令および(ii)、夫々サブル
ーチンにネストされたリンク内の選定レジスタ内
容のスタツキングおよびアンスタツキングをネス
トおよびアンネストする保護呼出しおよびリター
ン命令である。また局部記憶装置には明確な命令
が割当てられるが、局部記憶ケーパビリテイ記述
子エントリーが行われるリンクを有するサブルー
チンからリターンが行われるとそれは自動的に割
当解除される。こうして手順レベルが戻されると
特定レベルの全ケーパビリテイが休止し、これに
はレジスターのケーパビリテイも含まれる。各局
部記憶ケーパビリテイエントリーを付随するレベ
ル番号は非任意伝播制御機構を増強する。本機構
は低位サブルーチンでケーパビリテイ記述子を記
憶および使用できないことを保証する。この安全
機構はケーパビリテイ記述子の不在参照が行われ
ないことや高位サブルーチンへ戻つた後の劣化情
報を防止するのに重要である。
【図面の簡単な説明】
第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
…ケーパビリテイレジスタフアイル。

Claims (1)

  1. 【特許請求の範囲】 1 マルチユーザデータ処理装置であつて、ネス
    トされたサブルーチンを実行する複数のプロセス
    を実行するプロセツサモジユールを備え、前記複
    数のプロセスの各々にはプロセスが中止した場合
    にマシンレジスタ及び表示器の内容の記憶のため
    の固定領域の記憶素子およびプロセスにより実行
    される各ネストされたサブルーチンのリンクを記
    憶する可変領域の記憶素子を有する別々のプロセ
    スダンプスタツクが設けられており、各リンクは
    (i)ネストされたサブルーチンが再開されるときに
    プロセスがそこに戻るべき命令アドレスと、(ii)ネ
    ストされたサブルーチンのコードブロツクへのポ
    インタであつて前記コードブロツクはネストされ
    たサブルーチンの命令を定義する前記ポインタと
    を含み、前記プロセスは局部記憶要求命令を発生
    することができる前記マルチユーザデータ処理装
    置において、プロセスダンプスタツクの前記可変
    領域の記憶素子のリンクにおける前記局部記憶要
    求命令を実行するために前記プロセツサモジユー
    ルに装置が設けられ、リンク及び複数の局部記憶
    セグメントに分割される局部記憶領域のブロツク
    の残りのサイズ及び内容を定義する表示器が設け
    られ、前記局部記憶セグメントは前記局部記憶要
    求命令の実行の間に中止された場合に前記のネス
    トされたサブルーチンに関係する情報の局部記憶
    に用いられ、前記プロセツサモジユールは局部記
    憶スタツクポインタレジスタ及び局部記憶クリア
    カウントレジスタとを備え、前記局部記憶スタツ
    クポインタレジスタは局部セグメント内の空き領
    域の開始アドレスを含み、前記局部記憶クリアカ
    ウントレジスタは記憶用に空いている局部記憶ブ
    ロツクの領域の利用し得るサイズを含み、前記局
    部記憶スタツクポインタレジスタの内容及び前記
    局部記憶クリアカウントレジスタの内容は前記プ
    ロセツサモジユールにより変えられ、前記局部記
    憶スタツクポインタレジスタ及び前記局部記憶ク
    リアカウントレジスタは前記局部記憶要求命令の
    実行の間の前記局部記憶セグメントの割当てによ
    り影響され、前記プロセツサモジユールは更に前
    記局部記憶スタツクポインタレジスタと前記局部
    記憶クリアカウントレジスタにアクセスする装置
    を含みかつ前記局部記憶要求命令の実行の間にプ
    ロセスダンプスタツクの可変部分への記憶のため
    の局部ケーパビリテイ記述子情報を発生する装置
    を含むことを特徴とするマルチユーザ処理装置。 2 特許請求の範囲第1項記載のマルチユーザ処
    理装置において、局部記憶要求命令は、プロセツ
    サモジユールにより行われているプロセスに割当
    てられた局部記憶のブロツクにより占有されるデ
    ータ処理装置の記憶の領域を示す情報を含むプロ
    セツサモジユールの局部記憶ケーパビリテイレジ
    スタを使用するマルチユーザ処理装置。 3 特許請求の範囲第2項記載のマルチユーザ処
    理装置において、リンクの記述子はサブルーチン
    の実行の間に生成された局部記憶セグメントの数
    を示す情報を含むマルチユーザ処理装置。 4 特許請求の範囲第2項記載のマルチユーザ処
    理装置において、リンクの記述子は、マークされ
    た場合に、リンクがプロセツサモジユールの少な
    くとも1つの汎用データおよびケーパビリテイレ
    ジスタの内容を記憶する記憶位置を含むことを示
    す標識を含むマルチユーザ処理装置。 5 特許請求の範囲第4項記載のマルチユーザ処
    理装置において、リンクは汎用データとリンクに
    記憶されたケーパビリテイレジスタの内容との一
    致を示すレジスタスタツクされた記述子を含むマ
    ルチユーザ処理装置。 6 特許請求の範囲第2項記載のマルチユーザ処
    理装置において、プロセツサモジユールは局部記
    憶セグメントをより小さなサブセツトに分離する
    ことを制御するサブセツト局部記憶命令を含み、
    該サブセツト局部記憶命令の動作は少なくとも1
    つのフラグビツトでリンク内のエントリーの部分
    をマークしてエントリーが局部記憶セグメントの
    サブセツトに関連することを示す段階を有するマ
    ルチユーザ処理装置。 7 特許請求の範囲第6項に記載のマルチユーザ
    処理装置であつて、局部記憶要求命令またはサブ
    セツト局部記憶命令により生成される各エントリ
    ーは局部記憶セグメントまたはサブセツトが生成
    されたときに行われているサブルーチンに割当て
    られているレベル数を記憶する、マルチユーザデ
    ータ処理装置。
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 (ja) 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 (ja)
EP (1) EP0026589B1 (ja)
JP (1) JPS5657149A (ja)
KR (1) KR860000837B1 (ja)
AT (1) ATE32388T1 (ja)
AU (1) AU542183B2 (ja)
CA (1) CA1160350A (ja)
DE (1) DE3072072D1 (ja)
DK (1) DK408980A (ja)
ES (1) ES495453A0 (ja)
GB (1) GB2060225B (ja)
HK (1) HK76984A (ja)
IE (1) IE50246B1 (ja)
NO (1) NO802759L (ja)
NZ (1) NZ195062A (ja)
PT (1) PT71824B (ja)
SG (1) SG43484G (ja)
ZA (1) ZA805536B (ja)

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 (ja) * 1984-03-16 1985-10-04 Hitachi Ltd デ−タ処理装置
JPS61210432A (ja) * 1985-03-15 1986-09-18 Hitachi Ltd 計算処理方式
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
WO1992015947A1 (en) * 1991-03-07 1992-09-17 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
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
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
US5701479A (en) * 1993-06-15 1997-12-23 Xerox Corporation Pipelined image processing system for a single application environment
US5995996A (en) * 1993-06-15 1999-11-30 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

Family Cites Families (5)

* 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
US4351024A (en) * 1975-04-21 1982-09-21 Honeywell Information Systems Inc. Switch system base mechanism
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0114611B2 (ja)
KR860000838B1 (ko) 데이타 처리시스템
US4041462A (en) Data processing system featuring subroutine linkage operations using hardware controlled stacks
EP0213843B1 (en) Digital processor control
US3803559A (en) Memory protection system
US5305460A (en) Data processor
CA1273125A (en) Memory management system
US4020471A (en) Interrupt scan and processing system for a data processing system
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
US4866599A (en) Call instruction, return instruction and trap procedure for ring crossing architecture
JPS621036A (ja) マルチモ−ドマイクロプロセツサにおいてプログラムを実行する方法及びオペレ−テイングシステム
US5873124A (en) Virtual memory scratch pages
US20050015672A1 (en) Identifying affected program threads and enabling error containment and recovery
EP0026587B1 (en) Data processing system including internal register addressing arrangements
KR100495240B1 (ko) 프로세서 시스템
EP0098172B1 (en) Register control processing system
US4991083A (en) Method and system for extending address space for vector processing
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
US6687845B2 (en) Fault vector pointer table
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
WO1990005951A1 (en) Method of handling unintended software interrupt exceptions
JPH059815B2 (ja)
JPH04364545A (ja) メモリダンプ方法
JPH059814B2 (ja)
JPH0219495B2 (ja)