JPS5836372B2 - Data Process Souch - Google Patents

Data Process Souch

Info

Publication number
JPS5836372B2
JPS5836372B2 JP50046929A JP4692975A JPS5836372B2 JP S5836372 B2 JPS5836372 B2 JP S5836372B2 JP 50046929 A JP50046929 A JP 50046929A JP 4692975 A JP4692975 A JP 4692975A JP S5836372 B2 JPS5836372 B2 JP S5836372B2
Authority
JP
Japan
Prior art keywords
block
state
store
program
cache
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
JP50046929A
Other languages
Japanese (ja)
Other versions
JPS50144352A (en
Inventor
ジエイ ホーニング ジエームス
コンラツド ラウア ヒユー
マイケル メリア スミス ピーター
ランデル ブライアン
カー ロナルド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Research Development Corp UK
Original Assignee
National Research Development Corp UK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB16766/74A external-priority patent/GB1509193A/en
Application filed by National Research Development Corp UK filed Critical National Research Development Corp UK
Publication of JPS50144352A publication Critical patent/JPS50144352A/ja
Publication of JPS5836372B2 publication Critical patent/JPS5836372B2/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】 (1)発明の分野 本発明は、データプロセス装置に関する。[Detailed description of the invention] (1) Field of invention The present invention relates to a data processing device.

データプロセス装置は、データに対しステップ・パイ・
ステップのオプレーション(作動)を遂行するように機
能する。
The data processing device processes the data by
Functions to carry out the operation of a step.

オペレーションの各ステップは「プログラム」と呼ばれ
る。
Each step of an operation is called a "program."

最も単純なプログラム以外の多くのプログラムは、複数
個のブロックに分割することができる。
Many but the simplest programs can be divided into multiple blocks.

このようなブロックは、多くの場合それ自体が更に小さ
い複数個のブロックから成っており、そのため、完全な
プログラムはネストされた(組合わせて結合された)多
数個のブロックの組から成っている。
Such blocks often consist of smaller blocks that are themselves smaller, so a complete program consists of many nested (combined) sets of blocks. .

多数個のブロックから成るプログラムの各プログラム・
ブロックを実行するに当っては、エラー(誤り)が起生
ずる可能性がある。
Each program in a program consisting of many blocks.
When executing a block, errors may occur.

このようなエラーがプログラムの残りの部分に影響を及
ばす可能性を減少させるためには、1つのブロックが完
了された時にアクセプタンス・テスト(受容試験)を行
なうことができる。
To reduce the possibility that such errors will affect the rest of the program, an acceptance test can be performed when one block is completed.

若しアクセプタンス・テストが或功であれば、プログラ
ムは、丁度今成功的に完了されたブロックをエンクロー
ズ(取囲む)する外側のブロックであるかも知れない次
のブロックに進むだろう。
If the acceptance test is successful, the program will proceed to the next block, which may be an outer block that encloses the block that has just been successfully completed.

しかし、若しアクセプタンス・テストが不或功であれば
、コンピュータのメモリ装置を、不成功ブロックに入る
直前に存在したステート(状態)にリストア−(復元)
させることが望ましいであろう。
However, if the acceptance test is unsuccessful, the computer's memory device is restored to the state that existed immediately before entering the unsuccessful block.
It would be desirable to do so.

なお、アクセプタンス・テストは、特定のプログラムブ
ロックが、そのプログラムにおいて実行可能であるか否
か、または特定のプログラムブロックに含まれた情報ア
イテムを表わす変数に割尚てられた数値や計数プログラ
ムの実行によって得られた回答数値が所定の数値範囲内
に存在しているか否か、などを決定するために行なわれ
るテストであって、データプロセシング技術においては
一般に周知されており、若しテストが成功すなわちテス
ト結果が満足すべき結果であれば゛パス(合格)”信号
が発生され、また若しテストが不威功すなわちテスト結
果が不満足なものであれば゛フエイル(失格)”信号が
発生される。
The acceptance test is a test to determine whether or not a specific program block is executable in that program, or to determine whether a specific program block is executable in the program, or to determine whether a numerical value assigned to a variable representing an information item included in a specific program block or the execution of a counting program. This is a test that is performed to determine whether or not the answer value obtained by If the test result is satisfactory, a "pass" signal is generated; if the test is unsuccessful, that is, the test result is unsatisfactory, a "fail" signal is generated. .

アクセプタンス・テストを命令するプログラム部分また
はプログラムブロックは、データプロセスのプログラム
に含まれてその一部分を成しており、テストされるべき
特定のプログラム部分またはプログラムブロックの後に
挿入される。
The program portion or program block commanding the acceptance test is included in and forms part of the program of the data process and is inserted after the particular program portion or program block to be tested.

アクセプタンス・テスト自体の内容すなわちテストの作
動工程は、所定のプログラムの作成時にプログラム作成
者によって決定されるもので、その所定プログラムの内
容に応じて決定される任意の適当な形態をとることがで
きる。
The content of the acceptance test itself, that is, the test operating process, is determined by the program creator when creating a given program, and can take any appropriate form determined according to the content of the given program. .

簡単な一例としては、若しテストされるべき所定のプロ
グラムブロックが数値的回答を得るための計数処理を命
令するものである場合には、アクセプタンス・テストに
おいては回答の数値がその範囲内に存在しなければなら
ない上限数値と下限数値とを予め設定して置いて、命令
された計数処理によって得られる回答の数値がこれら2
つの限界数値によって定まる範囲内に存在するか否かを
テストし、若し回答の数値が上記所定範囲内に存在して
いればパス信号を発生させ、また若し回答の数値が上記
所定範囲から外れて存在していればフエイル信号を発生
させる。
As a simple example, if a given program block to be tested instructs a counting process to obtain a numerical answer, an acceptance test requires that the numerical value of the answer lies within that range. The upper and lower limit values that must be calculated are set in advance, and the answer value obtained by the commanded counting process is calculated based on these two values.
If the answer value is within the predetermined range, a pass signal is generated, and if the answer value is outside the predetermined range. If it exists out of alignment, a fail signal is generated.

上記の通りであるから、後に述べる本発明のデータプロ
セス装置によって行なわれるデータ・プロセスにおいて
使用される多数のプログラム・ブロックに付随せしめら
れるアクセプタンス・テストについては、従来のデータ
プロセス技術において周知された任意の形態を用いるこ
とができる。
As described above, the acceptance test attached to a large number of program blocks used in the data processing performed by the data processing device of the present invention, which will be described later, can be performed using any method known in the conventional data processing technology. can be used.

(2)従来の技術およびその問題点 以前のステートをリストする1つの方法は、新しいプロ
グラム・ブロックに入る以前に第1のメモリ装置(すな
わち通常のメモリ装置)のステートを複写する第2のメ
モリ装置を設けることである。
(2) Prior art and its problems One way to list the previous state is to copy the state of the first memory device (i.e. a regular memory device) before entering a new program block. equipment.

然しなから、これは、第1メモリ装置におけるネストさ
れたプログラム・ブロックの組に対して、そのネストさ
れた連続した各プログラム・ブロックに入る以前にそれ
ぞれ複写を行なわなくてはならないので、第2メモリ装
置を第1メモリ装置よりも数倍大きくする必要があり、
記憶スペース(空間)の著しい浪費である。
However, this requires that a copy be made to the set of nested program blocks in the first memory device before entering each successive nested program block; The memory device needs to be several times larger than the first memory device,
This is a significant waste of storage space.

(3)本発明の目的 本発明の目的は、過犬な記憶スペースを必要としないプ
ログラムのりストア用またはカバリー(回復)用設備を
提供することである。
(3) OBJECTS OF THE INVENTION An object of the present invention is to provide a program storage or recovery facility that does not require excessive storage space.

(4)本発明の概要 本発明は、多くのプログラム・ブロックにおいては比較
的少数の情報アイテム(項目)だけが変化するという事
実を利用するものである。
(4) Summary of the Invention The present invention takes advantage of the fact that in many program blocks only a relatively small number of information items change.

本発明は、第1のメモリ装置に加えて第2のメモリ装置
を設け、この第2メモリ装置には、各プログラム・ブロ
ックの期間中に変化する情報アイテムの以前のステート
だけを、連続した各プログラム・ブロックを識別するイ
ンデケータ(標識)と共に記憶させる。
The invention provides, in addition to the first memory device, a second memory device in which only the previous state of the information item that changes during each program block is stored for each successive program block. Store program blocks along with indicators that identify them.

各プログラム・ブロックからのエグジット(退出)時に
おけるアクセプタンス・テストの完了時に゜1パス(合
格y′信号または″フエイル(失格)”信号を発生する
ための装置を設ける。
Apparatus is provided for generating a pass y' or "fail" signal upon completion of the acceptance test upon exit from each program block.

若し、゛フエイル”信号が発生されると、各メモリ装置
は、失格したプログラム・ブロックへのエントリー(進
入)の直前に保持していたメモリのステートをリストア
ーするようにオペレート(作動)せしめられる。
If a ``fail'' signal is generated, each memory device is operated to restore the state of memory it held immediately prior to entry into the failed program block. It will be done.

このメモリ装置のステートをリストアーさせるための装
置は、現行プログラム・ブロックの期間中に記憶された
各情報アイテムを第1メモリ装置からデイスカード(消
去)させる装置と、第1メモリ装置からは既にデイスカ
ードされて第2メモリ装置に記憶されている直前のプロ
グラム・ブロックの情報アイテムのステートを第2メモ
リ装置から第1メモリ装置にトランスファー(転送)す
る装置とを含んでいる。
The device for restoring the state of the memory device includes a device for diskating each information item stored during the current program block from the first memory device; and an apparatus for transferring the state of an information item of a previous program block disked and stored in a second memory device from the second memory device to the first memory device.

若し、゛′パス”信号が発生されると、各メモリ装置は
、不必要な各情報アイテムをデスカードすることによっ
てメモリ装置のステートを前進させるようにオペレート
せしめられる。
If a ``pass'' signal is generated, each memory device is operated to advance the state of the memory device by descarding each unnecessary information item.

このメモリ装置のステートを前進させるための装置は、
少くとも直前のプログラム・ブロックにローカル(特有
)な情報アイテムおよびその情報アイテムのエントリー
が直前のプログラム・ブロックにおいて既に存在してい
る情報アイテムを第2メモリ装置からディスカードする
装置を含んでいる。
The device for advancing the state of this memory device is
The apparatus includes apparatus for discarding from the second memory device an information item local to at least the immediately preceding program block and an entry for that information item already existing in the immediately preceding program block.

(5)実施例の概要 本発明を実施するに当っては、プライマリー・ブロック
(本来のブロック)がフエイルした場合のエグゼキュー
ション(実行)のために1つまたはそれ以上のオルタネ
イト・ブロック(交替用ブロック)を設けることが望ま
しい。
(5) Overview of the Embodiment In practicing the present invention, one or more alternate blocks are used for execution in the event that the primary block fails. It is desirable to provide a block for

こうすることによって、′゛フエイル”信号が発生され
た後には交替のプログラム・セクエンス(プログラムの
順序)が用意されていて、単に失格したプログラム・ブ
ロックを繰返えすことによって第2番目の゛フエイル”
信号が発生される可能性が減少する。
By doing this, after the 'fail' signal is generated, an alternate program sequence is provided and a second 'fail' can be achieved by simply repeating the failed program block. ”
The probability that a signal will be generated is reduced.

威る可くは、現行プログラム・ブロックの期間中に各メ
モリ装置内における情報アイテムのステートが変化した
時にその情報アイテムの以前のステートを第1メモリ装
置から第2メモリ装置にトランスファーするトランスフ
ァー装置を設ける。
Preferably, a transfer device is provided for transferring a previous state of an information item from a first memory device to a second memory device when the state of the information item changes in each memory device during a current program block. establish.

このトランスファー装置は現行プログラム・ブロックの
期間中における情報アイテムの最初すなわち第1番目の
ステート変化に対してだけ作動することが好ましい。
Preferably, the transfer device is activated only for the first state change of the information item during the current program block.

この目的のために、現行プログラム・ブロックの期間に
既にその情報アイテムの以前のステートが第2メモリ装
置に記憶されているかを指示するため、第1メモリ装置
に記憶されてい.る各情報アイテムにそれぞれインデイ
ケータ整組合わせる装置を含ませることができる。
For this purpose, a previous state of the information item is stored in the first memory device in order to indicate whether, during the current program block, a previous state of the information item has already been stored in the second memory device. Each information item included in the information item may include an indicator matching device.

このようなインデイケー夕の存在は、トランスファー装
置がオペレートすることを阻止する。
The presence of such an indicator prevents the transfer device from operating.

更にまた、第1メモリ装置および第2メモリ装置の両方
共に、ネストされたプログラム・ブロックの組における
先行プログラム・ブロック内の情報アイテムをセパレー
ト(選別)するセパレータ装置(選別装置)を含ませる
ことが好ましい。
Furthermore, both the first memory device and the second memory device may include a separator device for separating information items in preceding program blocks in the set of nested program blocks. preferable.

ましい。Delicious.

(6)実施例の詳細な説明 以下添付図面を参照して、本発明の実施例について詳細
に説明する。
(6) Detailed Description of Embodiments Embodiments of the present invention will be described in detail below with reference to the accompanying drawings.

エラーリカバリーを行う本発明に係るコンピュータプロ
グラムは、小さなプログラムに分れている多数の識別可
能なエラーリカバリー用オペレーションから成る。
A computer program according to the invention for error recovery consists of a number of distinguishable error recovery operations that are divided into smaller programs.

エラーからのりカバリーを許すようグループ分けしたオ
ペレーションの組を以下「リカバリー・ブロック」と称
す。
A set of operations grouped to allow recovery from errors is hereinafter referred to as a "recovery block."

このリカバリー・ブロックの各々は、プライマリーブロ
ックとアクセグタンス・テストを含んでいなくてはなら
ないが、その上に1つ以上のオルターネイトブロックを
含ませてもよい。
Each recovery block must include a primary block and an acceptance test, but may also include one or more alternate blocks above it.

このようなプライマリー・ブロックまたはオルターネイ
トブロックは、少なくとも1つのプライマリー・フaツ
クおよびアクセプタンステストを含むリカバリー・ブロ
ックをそれ自体で構成するかまたは含むようにしてもよ
い。
Such a primary or alternate block may itself constitute or include a recovery block including at least one primary hook and an acceptance test.

第1図は、アクセプタンス・テストI±を有するリカバ
リー・ブロックIを示す。
FIG. 1 shows a recovery block I with an acceptance test I±.

このリカバリー・ブロックは、プライマリー・ブロック
1aとオルターネイト・ブロックIbを含み、プライマ
リー・ブロックIaは、アクセプタンス・テスト川tと
、フ゛ライマリー・ブロ゛ンクIlaと2つのオノレタ
ーネイトフ゛ロ゛ンク川bおよび川Cとから成るリカバ
リー・フ゛ロ゛ンク川とを含む。
This recovery block includes a primary block 1a and an alternate block Ib, where the primary block Ia has an acceptance test river t, a primary block Ila and two alternate blocks rivers b. and the Recovery Link River consisting of River C and River C.

オノレターネイト・ブロックIbは、2つのりカバリー
・ブロックIおよび■を含み、リカバリー・ブロックl
は,アクセグタンステストI1と、プライマリー・ブロ
ックlaとオルターネイトブロックIbとから或り、リ
カバリー・ブロック■は、アクセプタンス・テストIV
tとプライマリー・ブロックNaとから成る。
Honorate block Ib includes two glue recovery blocks I and ■, recovery block l
is from acceptance test I1, primary block la and alternate block Ib, and recovery block ■ is from acceptance test IV.
t and a primary block Na.

図中では、説明の都合上、リカバリー・ブロックの範囲
を垂直2重線で示し、ブライマリー・ブロックとオルタ
ーネイト・ブロックの範囲を垂直単線で示してある。
In the figure, for convenience of explanation, the range of the recovery block is shown by a vertical double line, and the range of the brimary block and alternate block is shown by a single vertical line.

各アクセプタンス・テストは、プライマリー・ブロック
またはオルターネイト・ブロックからのエギジットに呼
出されるプログラムの一部を成している。
Each acceptance test forms part of a program that is called upon exit from the primary or alternate block.

このアクセプタンス・テストは、リカバリー・ブロック
に要求されるオペレーションがりカバリー・ブロックを
エンクローズするかまたはりカバリー・ブロックを呼出
すプログラムにアクセブトされて実行されるか否かの2
次的な決定を行なう。
This acceptance test determines whether the operation required of the recovery block is executed by enclosing the recovery block or by being accessed by the program that calls the recovery block.
Make the next decision.

各リカバリー・ブロックに対して、プライマリー・ブロ
ックからのエグジットにおいて呼出され、またオルター
ネイトが要求されたならば任意のオルターネイト・ブロ
ックのエグジットでも呼出される1つのアクセプタンス
・テストが存在する。
There is one acceptance test for each recovery block that is called on exit from the primary block and also on exit of any alternate block if an alternate is requested.

若しリカバリー・ブロックのうちのプライマリー・ブロ
ックがりジエクト(拒否)されると、プログラムはオル
ターネイト・ブロックを実行する。
If the primary block among the recovery blocks is rejected, the program executes the alternate block.

このオルターネイト・ブロックが終了すると、この結果
を同じアクセプタンス・テストに提示し、アクセプタン
ス・テストが満足させられると、オルターネイト・ブロ
ックによって発生された結果を用いてプログラムを前進
させる。
When this alternate block finishes, it submits its results to the same acceptance test, and once the acceptance test is satisfied, the results generated by the alternate block are used to advance the program.

このオルターネイト・ブロックに対するアクセプタンス
・テストが再び満足させられないならば、更に他のオル
ターネイト・ブロックについてテストを行なう。
If the acceptance test for this alternate block is again not satisfied, further tests are performed for other alternate blocks.

こうして、全てのオルターネイト・ブロックについてテ
ストを行なって全てのブロックがアクセプタンス・テス
トを満足せしめないならば、全てのりカバリー・ブロッ
クがフエイルしているとみなさなくてはならない。
Thus, if all alternate blocks are tested and all blocks do not satisfy the acceptance test, all coverage blocks must be considered to have failed.

この場合、リカバリー・ブロックを呼出すエンクロージ
ンク・ブロックをリジエクトして、その代わりにエンク
ロージング・ブロックに対するオルターネイト・ブロッ
クを試みてみる必要がある。
In this case, you should reject the enclosing block that calls the recovery block and try an alternate block to the enclosing block instead.

プログラム・ブロックを形或する各情報アイテムは変数
であってもよく、この場合に情報アイテムの種々のステ
ートは、それら変数に割当てられた数値によって定まる
Each information item forming a program block may be a variable, in which case the various states of the information item are determined by the numerical values assigned to those variables.

アクセプタンス・テストは、プライマリー・ブロック内
にないので、ブライマリー・ブロックまたはオルタネイ
ト・ブロックのローカル変数をアクセスできない。
Since the acceptance test is not in the primary block, it cannot access local variables in the primary or alternate blocks.

オルタネイトブロック内のローカル・ディクラレイショ
ンを対応するプライマリー・ブロック内のローカル・デ
イクラレイションと同一のものにする理由はない。
There is no reason to make the local declarations in an alternate block the same as the local declarations in the corresponding primary block.

アクセプタンス・テストがパスまたはパスしない場合、
サクセスまたはフエイルしたブロック内で作成されたロ
ーカル・デイクラレイションをデイスカードし、システ
スをブロックを開始した時と同じコンディションにすれ
ば、オルタネイトブロックは、場合によってはプライマ
リー・フロックのアクセプトできない先の実行または実
行を行なわせるような変数値への変更によってオルタネ
イトブロックのデザインが影響を受けないよう従来のよ
うに書き込むことができる。
If the acceptance test passes or does not pass,
By discarding local declarations created within a successful or failed block and bringing the systems into the same condition as when the block started, the alternate block may be able to perform a previous execution that the primary block cannot accept. Alternatively, it is possible to write in the conventional manner so that the design of the alternate block is not affected by changes to variable values that cause execution.

したがってオルタネイト・ブロックがエンタされる時、
エンタされていた対応するフライ−y IJ−・ブロッ
クと全く同一のエンバイロメントが呈示される。
Therefore, when the alternate block is entered,
Exactly the same environment as the corresponding fly-y IJ-block that was entered is presented.

ブライマリー・ブロックのオペレーションがすべて実行
されると、プライマリー・ブロックによって変更された
変数が先の値に再記憶される。
Once all operations in the primary block have been performed, the variables modified by the primary block are restored to their previous values.

このようなエラー・リカバリー・システムに必要な条件
については、ニューカッスル・アポン・タイン大学計算
研究所、技報57号、1974年1月発行のビイー・ラ
ンデル氏の論文「ニューカッスル・アポン・タイン大学
の計算システムの信頼性に関する研究」論文に完全に記
載されている。
The conditions necessary for such an error recovery system are described in the paper by Biy Randell, published in January 1974, Newcastle upon Tyne Institute of Computing, Technical Report No. 57, January 1974. It is fully described in the paper ``Research on the Reliability of Computing Systems''.

以下実施例に基いて説明する本発明では、プライマリー
・ブロックまたはオルタネイト・ブロックで変更された
変数を妥当な効率で先の値に再記憶させるような手段が
設けてある。
In the invention, which will be described below with reference to embodiments, means are provided for restoring variables modified in a primary or alternate block to their previous values with reasonable efficiency.

これは、以下キャッシュ・ストアと呼ぶ分離された記憶
手段に記録させることによって行なわれ、キャッシュ・
ストアの変数のアイデンティティは、最初のモデイフイ
ケイション前の変数値と結びついているプライマリブロ
ックまたはオルタネイト・ブロックによってモデイファ
イされる。
This is done by recording it in a separate storage means, hereafter referred to as a cache store.
The identity of the variable in the store is modified by a primary or alternate block that is associated with the variable value before the first modification.

これらのアイデンティティは、どの変数の記録値をこの
変数のアドレスまたはヴアーテユアルアドレスから構成
するかを決定するのに充分な情報を含んでいる。
These identities contain sufficient information to determine which variable's recorded value consists of this variable's address or virtual address.

本発明に係る実施例では、メイン・ストアおよびキャッ
シュストアともスタックとして構或してある。
In embodiments of the present invention, both the main store and the cache store are configured as a stack.

リカバリー・ブロックへのエントリー上の変数の値しか
プリザーブする必要がないので、リカバリー・ブロック
中で1回以上変更する変数の中間値をプリザーブする必
要がなく、インデイケイタすなわちプール・フラッグを
メインストア内の各ワードと関連させてキャッシュ・ス
トア内に正しい値がプリザーブされているかいないかを
表示する。
Because we only need to preserve the values of variables on entry to the recovery block, we do not need to preserve intermediate values for variables that change more than once in the recovery block, and we can save the indicators, or pool flags, in the main store. Displays whether the correct value is reserved in the cache store for each word in the cache store.

第2図〜第9図は、第1図のオルタネイト、ブロックI
bのスタート時でプライマリ・ブロックIaのパーフォ
ーマンス中のメイン・ストアおよびキャッシュ・ストア
のステートを示す。
Figures 2 to 9 show the alternate block I of Figure 1.
3 shows the states of the main store and cache store during the performance of primary block Ia at the start of time b.

変数の特別なデイタレアされた値を例示してある。A special data rare value of a variable is illustrated.

第2図は、リカバリー・ブロック■のエントリ前のシチ
ュエーションを示す。
FIG. 2 shows the situation before the entry of the recovery block ■.

変数Nが、デイクレアされて、値1が割当てられる。Variable N is declaired and assigned the value 1.

この変数Nをデイクレアする操作によってメインストア
10の庭にアドレスが割付けられる。
By declairing this variable N, an address is assigned to the garden of the main store 10.

この時に、キャッシュ・ストア12が空になる。At this time, cache store 12 is emptied.

第3図は、プライマリー・ブロックIaを実行中のシチ
ュエーションを示す。
FIG. 3 shows a situation where primary block Ia is being executed.

すべてのスタックマーク14および16のうちの最初の
ものがそれぞれマイン・ストア10およびキャッシュス
トア12に置かれる。
The first of all stack marks 14 and 16 is placed in main store 10 and cache store 12, respectively.

これらのスタック・マークは、リカバリー・ブロックの
関始を表示する。
These stack marks indicate the beginning of recovery blocks.

プライマリー・ブロックIaのプログラムをランさせて
いる時は、変誠Mをディクレアし、値2を指定すると仮
定する。
Assume that when running the program in primary block Ia, you declare transformation M and specify a value of 2.

この割当された値2は、スタックマーク14以上の変数
Mのアドレスのメインストアに入れられる。
This assigned value 2 is placed in the main store at the address of variable M above stack mark 14.

ブロックIaのプログラムをランしている間は、変数N
に新しい値3が割当てられる。
While running the program in block Ia, the variable N
is assigned a new value of 3.

メインストア10内の変数Nのアドレスおよび元の値が
、スタックマーク16以上のキャッシュストア12内に
インサートされメインストア10内のNのアドレスにあ
るプール・フラッグがセット(星印で示す)される。
The address and original value of variable N in main store 10 is inserted into cache store 12 at stack mark 16 or higher and the pool flag at the address of N in main store 10 is set (indicated by a star). .

スタックマーク14および16は、リカバリーブロック
と関連するメインストアおよびキャツツユリージョンの
開始をそれぞれ示す。
Stack marks 14 and 16 indicate the start of the main store and catch region, respectively, associated with the recovery block.

最上部のスタック・マークより上にあるメイン・ストア
10またはキャッシュ・ストア12のいずれかのエント
リーは、その時実施しているブロック中で作威されるは
ずである。
Entries in either main store 10 or cache store 12 that are above the top stack mark should be activated in the currently executing block.

プライマリ・フロックIa中のプログラム実施中のステ
ージでは、リカバリー・ブロック■がインタされる。
At the stage during the program execution in the primary block Ia, the recovery block (2) is interpolated.

第4図は、プライマリ・ブロックIla中のシチュエイ
ションを示す。
FIG. 4 shows the situation in primary block Ila.

リカバリー・ブロックHの開始時には、メインストア1
0およびキャッシュストア12にそれぞれスタック・マ
ーク18および20がセットされ、キャッシュ・ストア
12内に記憶されている変数Nは上部のスタックマーク
より上で値がなくなるので、メイン・ストア内の変数N
に対するプールフラッグがクリアされる。
At the beginning of recovery block H, main store 1
0 and cache store 12 are set to stack marks 18 and 20, respectively, and the variable N stored in cache store 12 has no value above the top stack mark, so the variable N in the main store
The pool flag for is cleared.

プライマリー・ブロックIlaでは、変数Jがデイクレ
アされ、値3が割当てられる。
In the primary block Ila, the variable J is declared and assigned the value 3.

この割当て値は、スタック・マーク18より上のメイン
・ストア10内に入れられる。
This allocation value is placed in main store 10 above stack mark 18.

次に第5図を説明すると、プライマリー・ブロックIl
a中には、変数Mに値4が害1当てられる。
Next, referring to FIG. 5, primary block Il
In a, the value 4 is applied to the variable M.

実施中のブロックの開始前に変数Mがデイクレアされて
いるので、メインストア10内の変数の位置は、リカバ
リー・ブロック■の開始をマークするスタック・マーク
18より下になる。
Since the variable M was dayclaired before the start of the block being executed, the position of the variable in the main store 10 will be below the stack mark 18 that marks the start of the recovery block ■.

変数Mのアドレスおよび元の値の双方が、スタック・マ
ーク20より上方にあるキャッシュ・ストア12内に入
れられ、変数Mのローカル値4がメイン・ストア10に
入れられ、メイン・ストア10内のアドレスMのプール
・フラッグ(星印で示す)がセットされる。
Both the address and original value of variable M are placed in cache store 12 above stack mark 20, the local value 4 of variable M is placed in main store 10, and the local value 4 in main store 10 is placed in cache store 12 above stack mark 20. The pool flag (indicated by an asterisk) for address M is set.

第6図を説明する。FIG. 6 will be explained.

プライマリー・ブロック11aのプログラムを実施して
いる間、変数Nに値M+1が割当てられる。
During the execution of the program of primary block 11a, variable N is assigned the value M+1.

変数Nのアドレスおよび直後の値がキャッシュ・ストア
12の最上部へ入れられ、変数Nのローカル値がメイン
・ストア10に入れられ、これに対応するプール・フラ
ッグがセットされる。
The address and immediate value of variable N is placed at the top of cache store 12, the local value of variable N is placed into main store 10, and the corresponding pool flag is set.

次に第7図を説明する。Next, FIG. 7 will be explained.

プライマリ・ブロック11aのプログラムを実施中には
、変数Mに第2のローカル値6が割当てられる。
During execution of the program of primary block 11a, variable M is assigned a second local value of 6.

メイン・ストア10内の変数Mのアドレスに対応するプ
ール・フラッグが予め存在しているので、上記の操作が
このブロックで最初の割当てではないということが表示
される。
The pre-existence of a pool flag corresponding to the address of variable M in main store 10 indicates that the above operation is not the first allocation in this block.

従って変数Mの新しい値が、メイン・ストア10に入れ
られるが、直前の値はキャッシュ・ストアには入れられ
ない。
The new value of variable M is therefore placed in the main store 10, but the previous value is not placed in the cache store.

(もつと以前の値はすでに入れられている。(Otherwise, the previous value has already been entered.

)このようなエントリーは、アドレス17にプール・フ
ラツクが存在していることによって禁止されるが、この
プール・フラツクは、当然セットきれたままである。
) Such an entry would be prohibited by the presence of a pool flag at address 17, which of course remains fully set.

第8図は、リカバリー・ブロック■のアクセフタンス・
テストIItがブライマリー・ブロックlaの終わりに
行なわれて、テストが条件に合致していることを表示し
ている状態を示す。
Figure 8 shows the acceftance of the recovery block ■.
A condition is shown in which test IIt is performed at the end of the Brimary block la, indicating that the test meets the conditions.

メイン・ストア10のスタックは、リカバリー・ブロッ
クHの開始をマークする最上部のスタックマーク18で
分割されているので、ローカル変数Jがデイスカードさ
れる。
The stack of main store 10 is split at the top stack mark 18, which marks the start of recovery block H, so that local variable J is discarded.

フラッグがすべてクリアされると、キャッシュ・ストア
12のスタック・マーク16と20との間でエントリー
を有する変数に対してフラッグがセットされる。
When all flags are cleared, flags are set for variables that have entries between stack marks 16 and 20 of cache store 12.

これらのキャッシュストアのエントリーは、リカバリー
・ブロック■の開始前にリカバリー・ブロックlで作威
されている。
These cache store entries were created in recovery block I before the start of recovery block I.

これによって現在実行中のりカバIJ一ブロック■が入
れられた時既にキャッシュされている変数のレコードが
再記憶される。
As a result, records of variables that were already cached when the currently executed NoriKaba IJ block 1 was entered are re-stored.

次にスタック・マーク16より上にあるキャッシュ・ス
トア12内のすべてのエントリーが処理される。
All entries in cache store 12 above stack mark 16 are then processed.

エンクローズ・リカバリー・ブロックIの変数(例えば
エントリーM,2)の変数すなわちスタック・マーク1
4より上のアドレスに対してローカルであることを示す
アドレスは、デイスカードされる。
Enclose recovery block I variable (e.g. entry M, 2) variable i.e. stack mark 1
Addresses that indicate local to addresses above 4 are discarded.

キャッシュ・ストア12のトップ・バット・ワン領域に
既に存在しているエントリーの変数に対応するアドレス
は、その変数がエンクローズ・リカバリー・ブロックI
(例えばエントリーN,3)に既にキャツショされてい
るのでデイスカードされる。
An address corresponding to a variable of an entry that already exists in the top but one area of cache store 12 indicates that the variable is in the enclosed recovery block I.
(For example, entry N, 3) has already been marked, so it is discarded.

更にスタック・マーク20より上にエントリーが存在し
ておれば、これらのエントリーは、キャッシュ・ストア
12のトップ・バット・ワン領域内へ下げられて、以前
スタック・マーク20が占めていた部分から始まる連続
的なワードとなるはずである。
If further entries exist above stack mark 20, these entries are moved down into the top-but-one area of cache store 12, starting at the portion previously occupied by stack mark 20. It should be a continuous word.

ディーカードされないエントリー例えばエントリーN,
1に対しては、実際のアドレスによって指定される変数
に対応するプール・フラッグがセットされ、これらの変
数がエンクローズ・リカバリー・ブロックIにキャッシ
ュされたことが記録される。
Entries that are not de-carded, such as entry N,
For 1, the pool flags corresponding to the variables specified by the actual address are set to record that these variables are cached in enclosure recovery block I.

現在実行中のりカバリー・ブロ゛ンク川からエンクロー
ズ・リカバリー・ブロ゛ンクIまでのリターンがなされ
ると、キャッシュ・ストア12のトップ・バット・ワン
領域(スタック・マーク16より上)がトップ領域にな
る。
When a return is made from the currently executing recovery block to the enclosure recovery block I, the top but one area (above stack mark 16) of cache store 12 becomes the top area. become.

アクセプタンス・テスト1tがパスすると、プライマリ
・ブロックIaからプログラムが出て、アクセプタンス
・テスitを行なうと、例えばこのテストが不満足でな
いとする。
When the acceptance test it passes, the program exits from the primary block Ia and performs an acceptance test it. For example, suppose that this test is not unsatisfactory.

この機構は、ブロックIaが実行されていないにもかか
わらず、変数の値を再記憶しなければならない。
This mechanism must re-store the values of the variables even though block Ia has not been executed.

変数Mは、ブロックIaに対してローカルであるので、
デイスカードされる。
Since variable M is local to block Ia,
Discarded.

変数NがブロックIs内で変更され、前の値がキャッシ
ュ・ストアに記録される。
Variable N is modified in block Is and the previous value is recorded in the cache store.

この前の値1が再記憶され、変数Nに対するフラッグが
グリアされる。
This previous value of 1 is re-stored and the flag for variable N is cleared.

スタック・マーク14および16は、メイン・ストア1
0およびキャッシュ・ストア12からそれぞれ除去され
、次に第9図に示したストア10および12のステート
は、ちょうど第2図に示したようにブロックIaが入れ
られないようになる。
Stack marks 14 and 16 are main store 1
0 and cache store 12, respectively, and then the state of stores 10 and 12 shown in FIG. 9 is such that block Ia is not populated, just as shown in FIG.

アクセプタンス・テストitがパスしないと、プログラ
ムは、オルタネイト・ブロックIbへ移る。
If acceptance test it does not pass, the program moves to alternate block Ib.

このシチュエーションは、第10図に示してある。This situation is illustrated in FIG.

スタック・マーク14および16は、メイン・ストア1
0およびキャッシュ・ストア12の双方へインサートさ
れる。
Stack marks 14 and 16 are main store 1
0 and cache store 12.

変数Lがデイクレアされ、値7が割当てられ、メイン・
ストア10にインサートされる。
Variable L is dayclaired and assigned the value 7, and the main
It is inserted into the store 10.

次にプライマリ・ブロックIaで述べたような態様でオ
プレーションが続行される。
The operation then continues in the manner described for primary block Ia.

第11図は、上記システムを満足させるいわゆるキャッ
シュ機構を示す。
FIG. 11 shows a so-called cache mechanism that satisfies the above system.

この機構は、中央プロセッサ30のような情報処理装置
と組合わせて使用するようになっており、1ワード輻の
メイン・ストア32と、1ビット幅でメイン・ストアの
ワード同じ数のビットを含むビット・ストアと、メイン
・ストアのアドレスおよび各キャッチ・ストアのワード
内のメイン・ストア・データ・ワードを十分収容できる
ぐらいの幅のキャッシュ・ストア36とを有している。
The mechanism is adapted for use in conjunction with an information processing device, such as a central processor 30, and includes a main store 32 that is one word wide, and a main store word that is one bit wide and contains the same number of bits. It has a bit store and a cache store 36 wide enough to accommodate the main store address and main store data words in each catch store word.

キャッシュ・ストア36は、第2図から第10図のキャ
ッシュ・ストア12と対応しており、メイン・ストア3
2とビット・ストア84は、第2図から第10図のメイ
ン・ストア10に対応している。
Cache store 36 corresponds to cache store 12 of FIGS. 2-10, and main store 3
2 and bit store 84 correspond to main store 10 of FIGS. 2-10.

ストア32,34および36の各々は、3本の制御ライ
ン、すなわちREADオペレーションをイニシエイ卜す
るREADラインと,WRITEオペレーションをイニ
シエイ卜するWRITEラインと、前のREADオヘレ
ーションまたはWRITEオペレーションをストアが完
了させたことを表示するREADYラインとを有してい
る。
Each of stores 32, 34 and 36 has three control lines: a READ line that initiates a READ operation, a WRITE line that initiates a WRITE operation, and a line that allows the store to complete a previous READ or WRITE operation. It has a READY line to display what has been done.

それぞれ1ワード輻のテータパスを計8本含むデータハ
イウエイ38によって中央プロセッサ80と各種のスト
ア32,34および36の間でデータが転送される。
Data is transferred between the central processor 80 and the various stores 32, 34, and 36 by a data highway 38, which includes a total of eight data paths of one word each.

各データパスニハ、個々ノ信号P,Q,E,S,F,U
,VおよびGがのっており、これらの信号は、6つのレ
ジスタR,E,A,H,CおよびDとレジスタ・ブロッ
クGで使用できるようになっている。
Each data path, individual signals P, Q, E, S, F, U
, V and G, and these signals are made available to the six registers R, E, A, H, C and D and the register block G.

第12図を説明すると、各々のレジスタR,E,A,H
,CおよびDは、1ワード輻のデュアル・ランク(dタ
イプ)のレジスタ40から成っている。
To explain FIG. 12, each register R, E, A, H
, C and D consist of one-word, dual-rank (d-type) registers 40.

このレジスタ40の入力端子は、8つの入力マルチプレ
クサ42の出力端子に接続してあり、1ワード幅の各入
力端子は、ハイワイ38(第11図)の各々のパスに接
続してある。
The input terminals of this register 40 are connected to the output terminals of eight input multiplexers 42, each one word wide input terminal being connected to a respective path of the high-wire 38 (FIG. 11).

マルチプレクサ42のオペレーションは、本装置中の制
御ロジックから送られるパス44上の信号で制御される
The operation of multiplexer 42 is controlled by signals on path 44 from control logic within the device.

このパス44は、ANDゲート46によってクロツク4
7から送られてくる信号と結合した制御波を発生させ;
レジスタ40に対してストローブ波を発生する。
This path 44 is connected to clock 4 by AND gate 46.
Generate a control wave combined with the signal sent from 7;
A strobe wave is generated for the register 40.

このストローブ波の前縁部によってレジスタ40がマル
チプレクサ42からの入力信号を読み取り、ストローブ
波の後緑部によってレジスタ40は、出力端子にこの新
しいステートを発生させる。
The leading edge of this strobe wave causes register 40 to read the input signal from multiplexer 42, and the trailing green portion of the strobe wave causes register 40 to generate this new state at its output terminal.

再度第11図を説明すると、レジスタ・ブロックGは、
マルチプレクサ42と同じようなデータハイウエイ38
からのマルチプレクサ入力端子を有しており、これに加
えて5つの内部レミスタCM,CN,CO,CPおよび
CQからなり、信号SELECT CM, SELEC
T CN, SELECTCO,SELECT CPお
よびSELECT CQを印加するSELECT入力端
子を有している。
Explaining FIG. 11 again, the register block G is
Data highway 38 similar to multiplexer 42
In addition to this, it consists of five internal remistors CM, CN, CO, CP and CQ, and the signals SELECT CM, SELEC
It has a SELECT input terminal to which T CN, SELECTCO, SELECT CP and SELECT CQ are applied.

セレクトサレたレジスタは、レジスタ・ブロックG内に
データがリードされている時セットされ、データがリー
ドアウトされると、レジスタ・ブロックGの出力端子に
内容を表わす。
The selected register is set when data is being read into register block G, and displays its contents at the output terminal of register block G when data is read out.

レジスタCMは、キャッシュ・ストア36内の最高部の
スタック・マークのアドレスを記憶スるのに使用され、
このスタック・マークは、この下の次のスタック・マー
クのアドレスを含んでいる。
Register CM is used to store the address of the highest stack mark in cache store 36;
This stack mark contains the address of the next stack mark below it.

最下部のスタック・マークは、アイデンテイファイされ
るようなアドレスを含んでいる。
The bottom stack mark contains the address to be identified.

レジスタCPは、現在使用中の最上位のワードのすぐ上
にあるキャッシュ・レジスタ36内の空ワードのアドレ
スすなわちキャッシュ・ストア36内の次の使用可能な
アドレスを含んでいる。
Register CP contains the address of the empty word in cache register 36 immediately above the most significant word currently in use, ie, the next available address in cache store 36.

レジスタCNは、レジスタCPに記憶されている先の値
のコピーすなわちキャッシュ・ストア36内で最後に使
用されたアドレスを含んでいるが、このレジスタは、次
のEXITオペレーションに使用される。
Register CN, which contains a copy of the previous value stored in register CP, ie, the last used address in cache store 36, is used for the next EXIT operation.

レジスタCOは、キャッシュ36のトップ領域内のワー
ドのアドレスを含んでいるが、このレジスタは、キャッ
シュのトップ領域をスキャンする第3ステージのイグジ
ット・オペレーションに使用されるが、この操作につい
ては次に説明する。
Register CO, which contains the address of a word in the top area of cache 36, is used for a third stage exit operation that scans the top area of the cache, which will be discussed next. explain.

レジスタCQは、使用可能なキャッシュ・レジスタの最
上位のワードのアドレスを含む。
Register CQ contains the address of the most significant word of the available cache register.

レジスタRは、中央プロセッサ30ヘリターンさせるデ
ータワードを保持しており、レジスタEは、メインスト
ア32内の最高部のスタック・マークのアドレスを保持
する。
Register R holds the data word to be returned to central processor 30 and register E holds the address of the top stack mark in main store 32.

最高部のスタック・マークは、次のスタック・マーク等
のアドレスを保持し、最下部のスタック・マークは、ア
イデンテイファイされるアドレスを含む。
The top stack mark holds the address of the next stack mark, etc., and the bottom stack mark contains the address to be identified.

Aレジスタは、現在のメイン・ストアのアドレスを保持
し、このレジスタは、メイン・ストアだけでなくビット
・ストアにアドレス指定し、その内容をキャッシュ・ス
トアの一方へ書き込む。
The A register holds the address of the current main store, and this register addresses the bit store as well as the main store and writes its contents to one of the cache stores.

レジスタEおよびAの出力端子は、コンパレータ48に
接続してありこのコンパレータはレジスタAの出力がレ
ジスタEの出力よりも大きい時、出力信’QYを発生す
る。
The output terminals of registers E and A are connected to a comparator 48 which produces an output signal 'QY when the output of register A is greater than the output of register E.

従って信号Yは、レジスタAのアドレスが最高部のスタ
ック・マークよりも高く、従ってレジスタA内のアドレ
スによってアドレス指定された変数が現在実施中のりカ
バリー・ブロックにローカルであることを表示する。
Signal Y therefore indicates that the address of register A is higher than the top stack mark and therefore the variable addressed by the address in register A is local to the currently executing overcover block.

レジスタHは、メイン・ストア32内へ書き込むデータ
を保持している。
Register H holds data to be written into main store 32.

レジスタCは、キャッシュ・ストアに使用するアドレス
を保持する。
Register C holds the address used for cache stores.

まれこのレジスタの出力端子は、制御インプットFUN
を有するインクリメント/デイクリメントユニット50
の入力端子に接続してあり、この制御インプットFUN
は、4つの制御信号のうちのひとつを受けて第1表に示
すような入力信号Cと関連する出力信号を発生させる。
The output terminal of this register is the control input FUN.
an increment/decrement unit 50 having
This control input FUN is connected to the input terminal of FUN.
receives one of four control signals and generates an output signal associated with input signal C as shown in Table 1.

レジスタDは、キャッシュ・ストア36内に書き込むデ
ータの一部を保持し、このデータの残りのデータはレジ
スタAに入っている。
Register D holds a portion of the data to be written into cache store 36, the remainder of which is in register A.

レジスタCおよびDの出力端子は、この2つのレジスタ
内の値が等しい時に、出力信号Zを発生するクオリティ
ーユニット52に接続してある。
The output terminals of registers C and D are connected to a quality unit 52 which generates an output signal Z when the values in these two registers are equal.

レジスタRには、中央プロセッサ30とのインタフェー
スが設けてあるが、このインタフェースは、2つのデー
タパスPおよびQとから成る。
Register R is provided with an interface to central processor 30, which consists of two data paths P and Q.

Pデータ・パスは、中央プロセッサがアクセスさせたい
メイン・ストアのアドレスを載せ、Qデータパスは、中
央プロセッサ30が記憶させるか装置のレジスタ内に入
れるデータを載せる。
The P data path carries the address of the main store that the central processor wants to access, and the Q data path carries the data that the central processor 30 wants to store or put into the registers of the device.

レジスタRの出力端子の構威するRデータ・パスは、中
央プロセッサ30へ送るデータを載せる。
The R data path, consisting of the output terminal of register R, carries data to be sent to central processor 30.

本装置の制御ロジックについては、後で詳記する。The control logic of this device will be described in detail later.

しかしながら装置の制御ロジックと中央プロセッサ30
との間をパスする制御信号については、ここで述べてお
く。
However, the control logic of the device and the central processor 30
The control signals that pass between the two will be described here.

この装置は、中央プロセッサ30へ送ることのできる2
つの制御信号を有する。
This device has two
It has two control signals.

信号READYは、プロセッサ30のリクエストしたオ
ペレーションをディバイスが完了させたことを表示し、
信号ERRORは、エラー状態を表示する。
The signal READY indicates that the device has completed the operation requested by processor 30;
Signal ERROR indicates an error condition.

中央プロセッサ30は、従来の設計であって、インスト
ラクションを実行中に従来の記憶手段をREAD(読み
取り)およびWRITE(書き込み)操作させる制御信
号を発生させる。
Central processor 30 is of conventional design and generates control signals that cause conventional storage means to perform READ and WRITE operations during the execution of instructions.

またこのプロセッサは、第11図に示した装置にプログ
ラム中のりカバリー・ブロックおよびアクセプタンステ
ストの使用と関連する附加操作を行わせる制御信号を発
生させるような手段が設けてある。
The processor is also provided with means for generating control signals that cause the apparatus shown in FIG. 11 to perform additional operations associated with the use of the coverage block and acceptance test in the program.

したがってこの装置は、中央プロセッサからの13の制
御信号のうちのひとつの信号を受信して、次のアクショ
ンを実行させる。
The device therefore receives one of thirteen control signals from the central processor to cause it to perform the next action.

すなわちREAD(読取り)アクション「所定の正しい
アドレスによってメイン・ストアから読み取るワードの
値を引出すこと」; WRITE(書き込み)アクション「変数に新しい値を
記録すること」; リカバリー・ブロックに対するエントリ一時のENTR
Yアクション; アクセプタンス・テストがブロックをリジエクトされた
際に必要なREVERSE(反転)オペレーション; アクセプタンス・テストにパスして終了した時のEXI
T(イグジット)アクション; 中央プロセッサが新しいプログラムをランニングさせる
ステートに新プログラムをリセットさせるRESET(
リセット)アクションおよびマルチプログラミング用に
中央プロセッサ内のオペレート・システムを各種のレジ
スタE,CM,CPおよびCQにゲイン・アクセスさせ
る際実施させる7つのオペレーション 第11図に示すキャッシュ・メカニズムの制御ロジック
は、第■表に基づくステート・マシンの説明の際説明す
る。
i.e. READ action "to retrieve the value of a read word from the main store by a given correct address"; WRITE action "to record a new value in a variable"; entry temporary ENTR to the recovery block.
Y action; REVERSE operation required when the acceptance test rejects the block; EXI when the acceptance test passes and exits
T (exit) action; RESET (which causes the central processor to reset a new program to a state where it runs)
The control logic for the cache mechanism shown in FIG. 11 is as follows: This will be explained when explaining the state machine based on Table ■.

このステート・マシンの表では、制御ロジックの進入で
きる各ステートが示してあり、これらのステートは、表
中の左コラムにナンバーがつけてある。
The state machine table shows each state into which the control logic can enter, and these states are numbered in the left column of the table.

表の中央コラム部には、制御ロジックが各ステートにあ
る時に発生する制御信号が示してある。
The center column of the table shows the control signals that occur when the control logic is in each state.

各レジスタへのゲート操作を制御する信号はP→Aのよ
うに示す。
Signals that control gate operations to each register are shown as P→A.

このことは、レジスタAへのデータをデーテイングし、
かつ対応するマルチプレクサがP入力端子をセレクトす
るよう信号を発生させることを示している。
This means that data into register A is
and indicates that the corresponding multiplexer generates a signal to select the P input terminal.

制御ロジックを仮定する次のステートは、表出の右コラ
ムに示してある。
The next state assuming control logic is shown in the right column of the representation.

このコラムに1つの数字しか示してない場合は、この数
字は、すべての状態で仮定される次のステートを示す。
If there is only one number in this column, this number indicates the assumed next state for every state.

制御ロジックをセンス可能な信号が存在しているかいな
いかに応じてそれぞれのステート内へ進入させなければ
ならない場合、このことが次のような例で示すように表
示される。
If the control logic must enter each state depending on the presence or absence of a senseable signal, this is displayed as shown in the following example.

2→3、 2→2 これは、信号2がトウルーであれば、次のステートをス
テート3にし、信号Zがフォールスであれば、次のステ
ートをステート3にすることを表わす。
2→3, 2→2 This means that if signal 2 is true, the next state is state 3, and if signal Z is false, the next state is state 3.

制御ロジックは、クロツク47(第12図)の定めル定
インターバルで1つのステートから次のステートに移動
し、スイッチがオンになると、制御ロジックは、ステー
トlを表わすようになっている。
The control logic moves from one state to the next at defined intervals of clock 47 (FIG. 12) such that when the switch is turned on, the control logic represents state l.

ステート1は、中央プロセッサからの13種の制御信号
を検出して、所定のアクションをインシエイトする。
State 1 detects 13 control signals from the central processor and initiates predetermined actions.

ステート2は、エラー・ステートであって中央プロセッ
サ30をリセットする。
State 2 is an error state and resets central processor 30.

ステート11およぴ12は、読取リアクションを実行す
る。
States 11 and 12 perform read reactions.

中央プロセッサ30からのアドレスは、ステップ11中
にレジスタA内へゲートインされ、メインストア32が
読出されてその出力が、ステート12の間にレジスタR
ヘゲートインされる。
The address from central processor 30 is gated into register A during step 11, main store 32 is read and its output is gated into register R during state 12.
He is gated in.

メイン・ストア32に直ちにレスポンスしないと、制御
ロジックは、レスポンスが得られるまで、ステート12
に留まる。
If main store 32 does not respond immediately, control logic returns to state 12 until a response is received.
Stay in.

スアート3は、READYレスポンスヲ中央プロセッサ
30へ送ってステート1ヘリターンさせる多くのアクシ
ョンに使用される。
State 3 is used for many actions that send a READY response to central processor 30 and return to state 1.

ステート13〜20は、書込みアクションを実行する。States 13-20 perform write actions.

ステート13および14は、書込むワードのビット・フ
ラッグを読出し、このワードをキャッシュ・ストア36
に保持しなければならないような時その内容をレジスタ
bへ入れる。
States 13 and 14 read the bit flags of the word to be written and store this word in cache store 36.
When the contents must be held in register b, the contents are placed in register b.

ステート15は、一アドレス指定されたワードがローカ
ル(次のステート16)であるのか、既にキャッシュ(
次のステート11)されているのが、このリカバリー・
ブロックで最初に割当て(次のステート18)られてい
るのかを判断する。
State 15 determines whether the addressed word is local (next state 16) or already cached (
The next state 11) is this recovery
It is determined whether the block is allocated first (the next state 18).

ステート18は、ウードの前の値と、キャッシュ・スト
ア36のアドレスを記録し、キャッシュ・ストア・ポイ
ンタの値をインクリメントし、この値をレジスタ・ブロ
ックG内の内部レジスタCPにリターンさせる。
State 18 records the previous value of the oud and the address of cache store 36, increments the value of the cache store pointer, and returns this value to internal register CP in register block G.

ステート19および20は、キャッシュ・ストアの最後
のワードの使用をテストし、エラーが存在している場合
に、エラー条件を発生させることができる。
States 19 and 20 test the use of the last word of the cache store and can generate an error condition if an error exists.

ステート21〜24は、レジスタ・ブロックGの内部レ
ジスタ内に値を入れる。
States 21-24 place values into register block G's internal registers.

ステップ31〜31は、中央プロセッサ30とのデータ
のやり取りに関係する。
Steps 31-31 relate to data exchange with central processor 30.

ステップ41は、リカバリー・ブロック・エントリ・オ
ペレーションを実行する。
Step 41 performs a recovery block entry operation.

ステート41から42は、レジスタCおよびD内のキャ
ッシュのトップ領域の限界をセットする。
States 41-42 set the limits of the top area of the cache in registers C and D.

ステート43から46は、レジスタC内でカウントアッ
プするループであって、キャッシュのトップ領域をスキ
ャンして、各キャッシュ・エントリーのアドレス部分を
読出し、各対応するメイン・ストア・ワードのビット・
フラッグをリセットする。
States 43 through 46 are a loop counting up in register C, scanning the top area of the cache, reading the address portion of each cache entry, and reading the bits of each corresponding main store word.
Reset flag.

キャッシュのトップ領域に一つビット・セットのエント
リーがあれば、ワードはピットセットを有すだけなので
、このことによってビット・ストア34内にすべてのビ
ット・フラッグがリセットされる。
If there is one bit set entry in the top area of the cache, this resets all bit flags in the bit store 34, since the word only has a pit set.

ステート41および49は、内部レジスタCMのその時
点の内容をキャッシュ・ストア36内に書込み、スタッ
ク・マークを形威しかつトップ・キャッシュ・マーク(
レジスタCM内に入れられている)とトップのスタック
(レジスタCP内に入れられている)のアドレスに対し
新しい値を発生する。
States 41 and 49 write the current contents of internal register CM into cache store 36, forming the stack mark and leaving the top cache mark (
Generates new values for the addresses of the stack (contained in register CM) and the top of the stack (contained in register CP).

ステート51〜57は、リカバリー・ブロック・エント
リーにリバースオペレーションを行なわせ、アクセプタ
ンス・テストのフエイルアー後にリカバリー・ブロック
でモデイファイされている変数の値を再記憶するのに使
用される。
States 51-57 are used to cause the recovery block entry to perform a reverse operation and restore the value of the variable being modified in the recovery block after a failure of the acceptance test.

これらのステートは、ほぼステート41〜46のループ
と同じループを形威しているが、キャッシュ・ストア3
6のトップ領域内に記録されたキャッシュ値が再びメイ
ン・ストア内に書込まれ、エラーを生じたブロックの効
果を消去することが異なっている。
These states form almost the same loop as states 41-46, but cache store 3
The difference is that the cache values recorded in the top area of 6 are written back into the main store, erasing the effects of the erroneous block.

ステート57は、キャッシュ・スタック(レジスタCP
に記憶されている)のトップに対するポインタを調節す
る。
State 57 is the cache stack (register CP
(stored in ).

ステート61〜82は、アクセプタンス・テストがパス
して完了した後にイグジット・オペレーションを実行す
る。
States 61-82 perform the exit operation after the acceptance test has passed and completed.

ステート61〜64は、次の使用のためにレジスタCP
およびCM内のその時点でのエントリーのレジスタCM
およびCOのコピー内にプリザーブされる。
States 61-64 register CP for next use.
and register CM of the current entry in CM
and preserved in a copy of the CO.

ステート61から64は、レジスタCP内にレジスタC
Mの内容をセットし、トップ領域が除去された時、何を
スタックのトップにするかを表示する。
States 61 to 64 are stored in register C in register CP.
Set the contents of M to indicate what will be on top of the stack when the top region is removed.

その他のステートは、3つのループから戒っている。Other states are restricted from the three loops.

ステート65から68は、トップ・キツシュ領域をトッ
プから下方ヘスキャンし、キャッシュ・ストア36のト
ップ領域内にキャッシュされているすべてのワードのフ
ラッグ・ビットすなわちビット・ストア34内にセット
されているすべてのフラッグ・ビットをアンセットする
States 65 through 68 scan the top kitsch area from the top down and check all flag bits set in bit store 34 of all words cached in the top area of cache store 36. Unset the flag bit.

ステート69は、キャッシュ・ストア36の上位2つの
領域の間のキャッシュ・スタック・マークを読出し、こ
れをレジスタCMおよびレジスタD内に次のキャッシュ
・マーカとして記録し、キャッシュの第2領域の最下部
を表示する。
State 69 reads the cache stack mark between the top two areas of cache store 36, records it as the next cache marker in registers CM and D, and places it at the bottom of the second area of the cache. Display.

ステート70〜73は、キャッシュの第2領域を下方ヘ
スキャンし続け、ビット・ストア34内の第2領域にキ
ャッシュされているワードのフラッグ・ビット(すなわ
ち前のエントリー・オペレーションで除去されているフ
ラツク;ビット)をセットする。
States 70-73 continue to scan the second region of the cache downwardly, scanning the flag bits of the word cached in the second region in bit store 34 (i.e., the flags that were removed in the previous entry operation; bit).

ステート74〜79は、キャッシュのトップ領域を上方
ヘスキャンして戻り、このトップ領域に記憶されている
アイテムがローカル(信号Yによって示される)なのか
、既に第2領域に与えられているのか(信号Xによって
示される)、トップ・キャッシュ領域から第2キャッシ
ュ領域内ヘコビーしなければならないのかを判断する。
States 74-79 scan back up the top area of the cache to determine whether the item stored in this top area is local (indicated by signal Y) or has already been given to the second area (signal (indicated by an

レジスタCOは、トップ領域で検査すべき次のエントリ
ーのアドレスより1つ小さなポインタを保持し、レジス
タCNは、トップ領域内のトップ・エントリーのアドレ
スより1つ大きいポインタを保持する。
Register CO holds a pointer that is one less than the address of the next entry to be examined in the top area, and register CN holds a pointer that is one more than the address of the top entry in the top area.

ステップ79でのテストで、キャッシュ・エントリーが
ローカルでないか、または既にこのレベルにキャッシュ
されていない場合、ステップ80〜82で、次にインク
リメントされるキャッシュ・スタック・トップ(レジス
タCP)によって与えられるアドレスのキャッシュ・ス
トア36にキャッシュ・エントリーをリライトする。
If the test in step 79 indicates that the cache entry is not local or not already cached at this level, then in steps 80-82 the address given by the top of the cache stack (register CP) is incremented next. rewrites the cache entry in the cache store 36 of.

キャッシュされたワードのフランク・ビットもセットさ
れる。
The cached word's flank bit is also set.

このステートマシンは,1962年マツクグローヒル社
発行のティー・シー・パーティ( T. C.Bart
ee)氏その他著「デイタルマシンの理論と設計( T
heary and Design of Digi
tal Machine)Jなる専問書に記載されてい
るような等価ロジックハードウエアにすることができる
This state machine was developed by T.C.Party (T. C. Bart
ee) and others, “Theory and Design of Digital Machines (T
heary and Design of Digi
It can be made into equivalent logic hardware as described in the technical book TAL Machine) J.

これとは別にこのステート・マシン制御は、1970年
プレンテイス・ボール社発行のエス・エスハツソン(S
.S. Husson )氏著「マイクロプログラミン
グとその原理と応用( Microprogrammi
ngy Principlesand Practic
e)に記載されているようなマイクロプログラムにも変
換できる。
Apart from this, this state machine control is also controlled by S.
.. S. ``Microprogramming, its principles and applications'' by Mr. Husson)
ngy Principles and Practical
It can also be converted into a microprogram as described in e).

本発明に係る別の実施例では、その時点の「リカバリー
・レベル」すなわちリカバリー・プロツクのダイナミッ
ク・ネスト化の深さ、言い換えると、その時点で使用さ
れているキャシュ(スタック・マーカーによって分離さ
れている)領域の数を表示する数を記憶するような附加
レジスタが設けられる。
In another embodiment of the present invention, the current "recovery level" or depth of dynamic nesting of recovery programs, or in other words, the caches (separated by stack markers) currently in use. An additional register is provided to store a number indicating the number of regions (in which the area is located).

このレジスタは、リカバリー・ブロック・エントリおよ
びリカバリー・ブロック・イグジットによってそれぞれ
1だけインクリメントまたはデイクリメントする。
This register increments or decrements by 1 on each recovery block entry and recovery block exit.

第11図に示した本発明に係る実施例のビット・ストア
34は、メイン・ストア32に記憶された各値に対して
リカバリー・レベルを記憶するようなりカバリー・レベ
ル・ストアと置換えてある。
The bit store 34 of the embodiment of the present invention shown in FIG. 11 has been replaced with a cover level store to store a recovery level for each value stored in the main store 32.

キャッシュ・ストア36に変数が入ると、リカバリー・
レベル・ストアの対応するワードに保持されたりカバリ
ー・レベルおよび値の双方は、先に変数がキャシュ内に
入れられた時のヒストリーまたは変数がローカルである
とデイクレアされた時のヒストリーが変数の各々のキャ
シュ化(すなわちキャッシュ・ストア36のその時点の
トップ領域内に変数およびそのアイデンティティを記憶
させること)によって記録されるように記録される。
Once the variable is in the cache store 36, the recovery
Both the coverage level and the value held in the corresponding word of the level store are the history of the previous time the variable was put into the cache or the history of the time the variable was dayclaired as local. (i.e., storing the variable and its identity in the current top area of cache store 36).

変数がメイン・ストア32のロケーションにデイクレア
および割付けられると、その時のりカバリー・レベルが
りカバリー・レベル・ストアの対応部分にインサートさ
れる。
When a variable is declared and assigned to a location in main store 32, it is then inserted into the corresponding portion of the coverage level store.

リカバリー・ブロックへのエントリ一時には、リカバリ
ー・ブロックが1つだけインクリメントされ、新しいマ
ークがキャッシュ上に置かれる。
At any given time, the recovery block is incremented by one and a new mark is placed on the cache.

この時メインストア内のデータ・スタックには、アクシ
ョンが行なわれない。
No action is taken on the data stack in the main store at this time.

変数に対して一つの新しい値が割当てられると、メイン
・ストア内の変数のりカバリー・レベルがその時のりカ
バリー・レベルに等しいかどうかインベステイゲイショ
ンが行なわれる。
When a new value is assigned to a variable, an investigation is performed to see if the variable coverage level in the main store is equal to the current coverage level.

等しい場合、メイン・ストアに新しい値が入れられて、
キャッシュ化が行なわれなく、リカバリー・レベル・ス
トアは不変である。
If they are equal, the main store is populated with the new value and
No caching occurs and the recovery level store is immutable.

変数のりカバリー・レベルがその時点のりカバリー・レ
ベルを表示しないし、キャッシュに新エントリーが置か
れる。
The variable glue coverage level does not indicate the current glue coverage level and a new entry is placed in the cache.

このキャッシュ・エントリーは、リカバリー・レベル・
ストアに記憶された変数の先の値、先のりカバリー・レ
ベルおよびアイデンティティから成る。
This cache entry is based on the recovery level
Consists of the previous value of the variable stored in the store, the future coverage level, and the identity.

次にこのメイン・ストアに新しい値が入ると、リカバリ
ー・レベル・ストア内のりカバリー・レベルがその時の
リカバリー・レベルと等しくなる。
The next time this main store receives a new value, the recovery level in the recovery level store will be equal to the current recovery level.

キャッシュ内のトップ領域のエントリーは、アクセプタ
ンス・テストのりジエクション時に、1つずつ処理され
、それらの値およびリカバリー・レベル・フィールドは
、アイデンティティの指定するメイン・ストアの記憶ロ
ケーションおよびリカハリー・レベル・ストアにそれぞ
れコピーバックされる。
Entries in the top area in the cache are processed one by one during acceptance testing, and their values and recovery level fields are stored in the main store storage location and recovery level store specified by the identity. Each will be copied back.

キャッシュは、再びリトラクトされるが、このリカバリ
ー・ブロック用のスタック・マークを含まなく、その時
点のりカバリー・レベルは変わらない。
The cache is retracted again, but does not contain the stack mark for this recovery block, and the current coverage level remains unchanged.

その時点のりカバリー・レベル・レジスタは、アクセプ
タンス・テストによってアクセプトされた後、1つだけ
インクリメントされる。
The current coverage level register is incremented by one after being accepted by the acceptance test.

キャッシュのトップ領域のエンl− IJ−は、1つず
つ処理される。
Entries in the top area of the cache are processed one by one.

キャッシュのトップ領域のエントリー内の真のアドレス
に対応するりカバリー・レベル・ストア・ワード内のり
カバリー・レベルは、その時点のりカバリー・レベルと
等しくなるようセットされる。
The coverage level in the coverage level store word corresponding to the true address in the entry in the top area of the cache is set equal to the current coverage level.

次にキャッシュ・エントリーのりカバリー・レベルがそ
の時のりカバリー・レベルと等しくなると、エントリー
がディスカードされる。
The entry is then discarded when the cache entry coverage level equals the current coverage level.

等しくない場合は、エントリーが下方へ移動されて次の
キャッシュ領域へ入れられる。
If not, the entry is moved down into the next cache area.

第13図は、リカバリー・レベルを使用した上記の実施
例に係る装置のブロック・ダイヤグラム図であり、第1
1図のブロック・ダイヤグラム図と等価的である。
FIG. 13 is a block diagram of the apparatus according to the above embodiment using recovery levels;
This is equivalent to the block diagram shown in FIG.

第13図に示した装置は、中央グロセット10のような
情報処理装置と組合わせて使用する。
The device shown in FIG. 13 is used in combination with an information processing device such as a central glossette 10.

この装置は、1ワード幅のメイン・メモリ12と、リカ
バリー・レベル数を保持するのに充分な幅でメイン・ス
トアと同じ数のワードを含むレベル・ストア14と、メ
イン・ストア・ワード、メイン・ストア・アドレスおよ
びレベル数を保持するのに充分広い幅のキャッシュ・ス
トア16とを有している。
The device includes a main memory 12 that is one word wide, a level store 14 that is wide enough to hold the number of recovery levels and contains as many words as the main store; - has a cache store 16 wide enough to hold the store address and level number;

ストア72 ,74および16の各々は、3つの制御ラ
インすなわちREAD(読出し)オペレーションをイニ
シエイ卜するREADラインと、WRITE(書込み)
オペレーションをイニシエイ卜するWRITEラインと
、ストアが先のREADまたはWRITEオペレーショ
ンを完了していることを表示するREADYラインを有
している。
Each of stores 72, 74 and 16 has three control lines: a READ line for initiating a READ operation, and a WRITE line for initiating a READ operation.
It has a WRITE line to initiate an operation and a READY line to indicate that the store has completed a previous READ or WRITE operation.

中央プロセット70と各ストア72.74および16の
間では、各1ワード幅のテータパスを計10本含むデー
タ・ハイウエイ18によってデータが転送される。
Data is transferred between central processor 70 and each store 72, 74 and 16 by data highway 18, which includes a total of ten data paths, each one word wide.

各データパスは、・各々の信号P,Q,S,T,E,F
,U,V,Wお・よびGを載せこれらの信号を7つのレ
ジスタR,A,H,E,K,C,Dおよびレジスタ・ブ
ロックGの入力端子へ送る レジスタR,A,H,E,K,CおよびDは、第12図
に示したようなタイプのものであるが、マルチプレクサ
の入力が8つでなくて10となっている点が異なってい
る。
Each data path includes: - each signal P, Q, S, T, E, F
, U, V, W, and G and send these signals to seven registers R, A, H, E, K, C, D and the input terminals of register block G. , K, C and D are of the type shown in FIG. 12, except that the multiplexer has 10 inputs instead of 8.

キャッシュへニード、すなわち変数は、既に述べたよう
に、その時点で使用中のりカバリー・レベル数と、クエ
スチョン中の変数のりカバリー・レベル数との相対値づ
決定される。
The cache need, or variable, is determined by the relative value of the number of coverage levels currently in use and the number of coverage levels of the variable in the question, as described above.

レジスタEは、その時のりカバリー・レベル数を含むの
に使用され、このレジヌタに含まれる値は、本装置がプ
ログラム部分の最初の部分でリセットされ、中央プロセ
ッサ70と無関係にリカバリー・ブロック・エントリー
またはイグジットで自動的に調節された時ゼロにリセッ
トされる。
Register E is used to contain the current recovery level number, and the value contained in this register indicates that the device is reset at the beginning of the program portion and that the recovery block entry or Reset to zero when automatically adjusted on exit.

レジスタKは、メインストア72またはキャッシュ・ス
トア76内の変数をキャッシュ化する決定またはキャッ
シュエントリーの保持がなされた時、この変数のりカバ
リー・レベル数を含むのに使用される。
Register K is used to contain the number of coverage levels for a variable in main store 72 or cache store 76 when a decision is made to cache the variable or maintain a cache entry.

レジスタEおよびKの出力端子は、第11図のユニット
52と同じイクオリテイー・ユニット80に接続してあ
り、このユニット80は、レジスタEおよびK内に記憶
された値が互に等しい時出力信号Yを発生する。
The output terminals of registers E and K are connected to an equality unit 80, which is the same as unit 52 of FIG. 11, which outputs a signal when the values stored in registers E and K are equal to each other. Generate Y.

第11図の装置と同様に、レジスタ・ブロックGは、5
つの内部レジスタCM,CN,CO ,CPおよびCO
を含んでいる。
Similar to the device of FIG. 11, register block G has five
two internal registers CM, CN, CO, CP and CO
Contains.

これらのレジスタのファンクションは、第11図のレジ
スタ・ブロックのうちの対応するレジスタのファンクシ
ョンと同じであり、これらについては、次の詳細な説明
から明らかとなろう。
The functions of these registers are the same as those of the corresponding registers in the register block of FIG. 11, and will become apparent from the detailed description that follows.

しかしながらレジスタCOは、リバースオペレーション
中に補助的に使用され、その時点のりカバリー・レベル
数の値を保持するようになっている。
However, register CO is used auxiliary during reverse operations to hold the value of the current number of coverage levels.

レジスタR,A,H,CおよびDは、第11図の装置の
うちの対応するレジスタと同じファンクションを行う。
Registers R, A, H, C and D perform the same functions as the corresponding registers in the device of FIG.

すなわちレジスタRは、中央プロセッサ10ヘリターン
させるデータ・ワードを作り、レジスタAは、メイン・
ストアのアドレスを保持し、レジスタHは、メイン・ス
トア12へ書き込むデータ・ワードを保持し、レジスタ
Cは、キャッシュ・ストア16に使用するアドレスを保
持し、レジスタDは、キャッシュ・ストア76に書き込
むデータを保持する。
That is, register R produces the data word to be returned to the central processor 10, and register A is the main
Register H holds the address of the store, register H holds the data word to write to main store 12, register C holds the address to use for cache store 16, and register D holds the address to use for writing to cache store 76. Retain data.

レジスタCの出力端子は、第11図の装置のうちのユニ
ット50と同じインクリメント/デイクリメント・ユニ
ット82の入力端子に接続してある。
The output terminal of register C is connected to the input terminal of an increment/decrement unit 82, which is the same as unit 50 of the apparatus of FIG.

このユニット82は、4つの制御信号のうちのひとつを
受信する制御人力FUNを有しており、このユニットは
信号を受けると表Iに示した入力信号Cと関連する出力
信号Fを発生する。
This unit 82 has a human control FUN which receives one of four control signals and upon receiving the signal produces an output signal F associated with the input signal C shown in Table I.

レジスタDは、キャッシュ・ストア36内の書込むデー
タを保持し、それ以外のデータはレジスタAおよびKに
入れられる。
Register D holds the data to be written in cache store 36; other data is placed in registers A and K.

レジスタCおよびDの出力端子は、レジスタCとレジス
タDの値が等しくなった時、出力信号Zを発生するイク
オーリテイ・ユニット84に接続してある。
The output terminals of registers C and D are connected to an equality unit 84 which generates an output signal Z when the values of registers C and D are equal.

レジスタRと中央プロセッサ70との間にはインターフ
ェースが設けてあるがこれは2つのパスPおよびQとか
ら成っている。
An interface is provided between register R and central processor 70, which consists of two paths P and Q.

Pデータ・パスは、中央プロセッサがアクセスしたイメ
イン・ストア・アドレスを載せ、Qデータ・パスは、中
央プロセッサ10が記憶させたいデータか本装置のレジ
スタ内に入れるデータを載せる。
The P data path carries the image store addresses accessed by the central processor, and the Q data path carries data that the central processor 10 wants to store or put into the registers of the device.

レジスタRの出力回路から形威されたRデータパスは、
中央プロセッサ70へ送っているデータを載せる。
The R data path formed from the output circuit of register R is
Contains the data being sent to the central processor 70.

添付図面に示したキャッシュ機構の制御ロジックを第I
表に示したステート・マシンに基づいて説明する。
The control logic of the cache mechanism shown in the attached drawings is shown in Section I.
The explanation will be based on the state machine shown in the table.

このステート・マシンは、制御口ジツタの入ることので
きる各ステートを示したもので、これらのステートは、
表の左コラムをナンバーがふってある。
This state machine shows each state that the control port jitter can enter, and these states are:
The left column of the table is numbered.

表中の中央コラムには、制御コラムが各ステートにある
時、発生する制御信号が示してある。
The center column in the table shows the control signals generated when the control column is in each state.

各レジスタへのゲートインを制御する信号は、P −A
のように表わされる。
The signal that controls gate-in to each register is P-A
It is expressed as

これは、レジスタAヘデータをゲートインしかつ対応す
るマルチプレクサにP入力端子をセレクトさせるような
信号を発生させることを表わす。
This represents gating data into register A and generating a signal that causes the corresponding multiplexer to select the P input terminal.

第■表の右コラムには、制御ロジックを仮定する次のス
テートが示してある。
The right column of Table 1 shows the following states assuming control logic.

この右コラムに1つの数字が示してあるが、この数字は
、すべての場合に仮定される次のステートの数字である
A number is shown in this right column, which is the assumed next state number in all cases.

制御ロジックは、検出可能な信号のあるなしに応じて別
のステートヘ入れなければならない時は、次のように示
される。
When the control logic must enter different states depending on the presence or absence of a detectable signal, it is shown as follows.

2→3 z→2 これは、信号2がトウルーであれば次のステートをステ
ート2にし、信号2がフォールスであれば、次のステー
トをステート3にすることを示す。
2→3 z→2 This indicates that if signal 2 is true, the next state is state 2, and if signal 2 is false, the next state is state 3.

上許係属中の特許出願のクロツク41(第12図)と同
じで、レジスタR−Gと連動するクロツクの決める定イ
ンタバルで制御ロジックが1つのステートから次のステ
ートへ移動する。
Similar to clock 41 (FIG. 12) of the pending patent application, control logic moves from one state to the next at regular intervals determined by the clock in conjunction with registers RG.

スイッチがオンになると、制御ロジックは、ステート1
になるようになっている。
When the switch is turned on, the control logic is in state 1
It's supposed to be.

ステート13〜19は書き込み(WRITE)作用を行
う。
States 13 to 19 perform write operations.

ステート14は、ワードが保持必要なものである場合に
、書込むべきワードの内容とその関連レベル数とをそれ
ぞれレジスタD,Kに読み込む。
State 14 reads the contents of the word to be written and its associated level number into registers D and K, respectively, if the word needs to be retained.

ステート15は、ワードが保持すべきもの(次のステー
ト17)か否か(次のステート16)を決める。
State 15 determines whether the word is to be kept (next state 17) or not (next state 16).

ステート18は、ワードの新しい値と実行中のりカバリ
ーレベル数とをそれぞれ、メインストア及びレベルスト
アに書き込み、先の値とそれに関連するメインストア・
アドレスとをキャッシュ・ストアに書込む。
State 18 writes the new value of the word and the number of running levels to the main store and level store, respectively, and writes the previous value and its associated main store
Write the address to the cache store.

キャッシュ・ストアのポインタは、徐々に漸増腰レジス
タ・ブロックG内のレジスタCPへ戻る。
The cache store pointer gradually returns to register CP in incremental register block G.

ステート18と19とは、キャッシュ・ストアの最後の
ワードについて用いるためのテストをし、もしエラーが
あれば、エラー状態を発生する。
States 18 and 19 test for use on the last word of the cache store and generate an error condition if there is an error.

ステート21〜25は、レジスタブロックGの内部レジ
スタ内に入る値と実行中のリカバリ・レベルレジヌタE
の開始時とに関係するものである。
States 21 to 25 are the values stored in the internal registers of register block G and the recovery level register E during execution.
This is related to the start of the process.

ステート31〜37は、中央プロセサへの出入りデータ
に関する。
States 31-37 relate to data entering and leaving the central processor.

ステート41〜46は、リカバリ・ブロックエントリ動
作を実行する。
States 41-46 perform recovery block entry operations.

ステート41と42とは実行中のリカバリ・レベル数を
漸増させて、レジスタE,K内にその新たな値をセット
する。
States 41 and 42 increment the number of recovery levels in progress and set the new values in registers E,K.

ステート43〜46は、内部レジスタCMとレジスタK
との現存内容をキャッシュストアに書き込み、キャッシ
ュ・マークを形成し、トップキャッシュ・マーク(レジ
スタCMに入る)及びキャッシュのトップ(レジスタC
Pに入る)のアドレスに対する新しい値を発生する。
States 43 to 46 are internal register CM and register K.
writes the existing contents of the cache to the cache store, forming a cache mark and writing the top cache mark (which goes into register CM) and the top of the cache (which goes into register C
generates a new value for the address of P).

ステート51〜59は、リバース動作を行い、アクセプ
タンス・テストの失敗後にリカバリ・ブロック内で改変
した変数の値を再記憶するのに使用される。
States 51-59 are used to perform the reverse operation and re-store the values of the modified variables in the recovery block after a failure of the acceptance test.

ステート51は、実行中のリカバリ・レベルレジスタE
の値を内部レジスタCo内に保持する。
State 51 is the running recovery level register E.
The value of is held in internal register Co.

ステート54〜51は、キャッシュ・ストアのトップ領
域を走査するループを形成する。
States 54-51 form a loop that scans the top area of the cache store.

このキャッシュ・ストアのトップ領域内の各ワードにつ
いて、ステ−1−56.57は、変数のメインストア・
アドレス、その前の値及びその前のリカバリ・レベルを
レジスタA,H及びE内に読み込み、その前の値及びリ
カバリ・レベルをそれぞれメインストア及びレベルスト
ア内に書き込む。
For each word in the top area of this cache store, stage 1-56.
Read the address, its previous value and its previous recovery level into registers A, H and E, and write its previous value and recovery level into the main store and level store respectively.

ステート58は、キャッシュ・スタックのトップ部分(
レジスタCPに配憶)にポインタを調節する。
State 58 is located at the top of the cache stack (
(stored in register CP).

ステート59は、実行中のリカバリ・レベルの値をレジ
スタE内に再び記憶する。
State 59 stores again in register E the value of the recovery level in progress.

ステート61〜76は、アクセプタンス・テストの完了
後にエグジット動作を行う。
States 61-76 perform an exit operation after completion of the acceptance test.

ステート61,62は、実行中のリカバリ・レベルレジ
スタEを漸減させる。
States 61 and 62 gradually decrement the running recovery level register E.

ステート63,64は、レジスタCP中に存在するエン
トリを次の動作のためにレジスタCN内に保持する。
States 63, 64 retain the entries present in register CP in register CN for the next operation.

ステート65,66は、トップキャッシュ・マータから
バックポインタを読み、それをエグジット動作完了後に
トップキャッシュ・マークが有するアドレスとしてレジ
スタCM内に入れる。
States 65 and 66 read the back pointer from the top cache mark and place it in register CM as the address held by the top cache mark after the exit operation is completed.

ステート61は、トップ領域の取去り後にキャッシュ・
ストアのトップ部分が有するアドレスをレジスタCP内
に入れる。
State 61 is the cache after removing the top area.
Place the address that the top part of the store has in register CP.

ステート68〜76は、トップキャッシュ領域を底部か
ら上方へと走査するループを形成する。
States 68-76 form a loop that scans the top cache area from the bottom upward.

ステート69は、トップキャッシュ領域からワードを読
み、変数のメインストア・アドレス、その前の値及び前
のリカバリ・レベルをレジスタA,D,K内にセットす
る。
State 69 reads a word from the top cache area and sets the variable's main store address, its previous value, and previous recovery level in registers A, D, and K.

ステートγ0においては、レジスタK内の前のリカバリ
・レベルと、リカバリ・レベルのエグジット動作を行う
リカバリ・レベルとを比較し、もしレジスタK,E内の
りカバリ・レベル数が等しい場合(波形Yで示す)には
、検査中のキャツシュエントリをやめる(次のステート
16)。
In state γ0, the previous recovery level in register K is compared with the recovery level that performs the recovery level exit operation, and if the number of recovery levels in registers K and E is equal (as shown by waveform Y), ), the cash entry under inspection is stopped (the next state 16).

レベル数が等しくない場合には、キャッシュ・エントリ
をトップ領域から第2領域にうつさなければならない。
If the number of levels are not equal, the cache entry must be moved from the top area to the second area.

レジスタCOは、ポインタを現に検査中のキャッシュ・
エントリに保持し、レジスタCN&t、ポインタをトッ
プ領域内のトップエントリのアドレスより1だけ大きい
所に保持する。
Register CO stores the pointer in the cache currently being examined.
The address of the top entry is held in the register CN&t, and the pointer is held at a location in the top area that is one greater than the address of the top entry.

ステップ70におけるテストで、検査中のエントリのリ
カバリ・レベルが、エグジット動作を行うリカバリ・ブ
ロックのリカバリ・レベルと等しくない場合には、ステ
ート72〜74は、次に漸増するキャッシュ・スタック
トップ(レジスタCP)により与えられるアドレスの所
においてレジスタA,f),Kの内容(例えば、検査中
のキャッシュ・エントリのコピー)をキャッシュ・スト
ア内に書き込む。
If the test in step 70 indicates that the recovery level of the entry under examination is not equal to the recovery level of the recovery block performing the exit operation, then states 72-74 are executed at the next incremental cache stack top (register Write the contents of registers A, f), K (eg, a copy of the cache entry under examination) into the cache store at the address given by CP).

ステート76においては、エグジット動作を行うリカバ
リ・ブロックのリカバリ・レベルを、キャツシュエント
リ処理動作中の変数と関連するレベルストア・ワード内
に書き込み、変数上に出されるリカバリ・ブロックの正
味効果が、その変数を含むリカバリ・ブロック内の割当
ての正味効果である事実を記録する。
In state 76, the recovery level of the recovery block performing the exit operation is written into the level store word associated with the variable during the cash entry processing operation, so that the net effect of the recovery block issued on the variable is Records the fact that it is the net effect of the allocation in the recovery block that contains that variable.

このステート動作機械は、文献tt Theory a
ndDesign of Digital Machi
nes /t (T. C− Bartee他著、19
62年マグロウビル社発行)に記載の等化論理ハードウ
エアを参照されたい。
This state operating machine is described in the literature tt Theory a
ndDesign of Digital Machine
nes/t (T. C- Bartee et al., 19
See Equalization Logic Hardware, published by McGraw Bill, 1962.

また、ステート動作機械の制御は、文献tt Mier
oprogamm−ing, Principle a
nd Practice //(S− S. Huss
on著、l970年プレインテイス・ホール社発行)の
マイクロプログラムに変えても良い。
Control of state operating machines is also described in the literature tt Mier
oprogamm-ing, Principle a
nd Practice //(S- S. Huss
The program may be changed to the micro program written by John On, published by Plaintice Hall in 1970).

以上の実施例におけるように、リカバリ・レベルを用い
る場合には、一層大容量の記憶装置を使用する必要があ
るが、第11図に示すシステムにおけるよりも高速度の
動作を行うことが可能である。
When using the recovery level, as in the above embodiments, it is necessary to use a larger storage capacity, but it is possible to operate at a higher speed than in the system shown in Figure 11. be.

以上では本装置を、変数の値を記憶装置に割当てること
に関して説明した。
The apparatus has been described above in terms of assigning values of variables to storage devices.

この場合に上記の値は、その割当てを逆にすることによ
って単純に回復した。
In this case the above values were recovered simply by reversing the assignment.

多くのプログラム動作は、上記割当て以外の結果を生ず
る、即ち、プロセス動作を放棄し別の動作を意図する場
合でもある結果を保留する必要がある。
Many program operations produce results other than the above assignments, ie, it is necessary to withhold results that may abandon the process operation and be intended for another operation.

その例の典型的なものは、ファイルアクセス、入出力イ
ンターフエイス、計Xルーチン、故障トレース、ユーザ
間のインターフエイスを含む動作である。
Typical examples are operations involving file access, input/output interfaces, total X routines, fault tracing, and user-to-user interfaces.

このようなプログラムの特性は、エラーリカバリが割当
ての自動反転より複雑であり、また適当な回復作動を特
定する機会をプログラム設計者に与えなければならない
The nature of such programs is such that error recovery is more complex than automatic reversal of assignments and must provide the program designer with the opportunity to specify appropriate recovery actions.

この問題は、プロシージャ内に特定の回復作用を要する
動作を組み込む(以下これを回復可能式プロシージャと
呼ぶ)ことにより解決できる。
This problem can be solved by incorporating operations that require specific recovery into procedures (hereinafter referred to as recoverable procedures).

この回復可能式プロシージャは、それ自身がアクセプタ
ンスと交代動作を有するリカバリ・ブロックではないが
、実質的には、1個以上のリカバリ・ブロックを含んで
いる。
Although this recoverable procedure is not itself a recovery block with acceptance and alternation, it substantially includes one or more recovery blocks.

このようなプロシージャは、エラーの場合に本発明によ
る装置により値が自動的にリセットされないオウン・バ
リアブルを示しているが、回復可能グロシージャ内のプ
ログラムによって再び記憶することができる。
Such a procedure represents an own variable whose value is not automatically reset by the device according to the invention in case of an error, but can be stored again by a program in a recoverable glossary.

複数の回復可能プロシージャを相互に組合せて1組のオ
ウン・バリアブルを截断することもできる。
Multiple recoverable procedures can also be combined with each other to sever a set of own variables.

回復可能グロシージャは、3個のエントリ点を有してい
る。
A recoverable glossary has three entry points.

まず最初に回復可能式プロシージャをリカバリ・ブロッ
ク内に呼び込み、本発明に係る装置で、プロシージャを
その〃セーブ(Save)〃エントリ点において入らせ
る。
First, a recoverable procedure is called into a recovery block, and the apparatus according to the invention causes the procedure to be entered at its "Save" entry point.

上記〃セーブ〃エントリ点の目的は、コーリング・リカ
バリ・ブロック内にエラーを生じた場合に復旧すること
を要する情報をプロシージャに保持させることにある。
The purpose of the Save entry point is to allow the procedure to retain information that it needs to recover from in the event of an error in the calling recovery block.

次いで、回復可能式プロシージャを、〃ノルマル〃エン
トリ点、即ち、そのコーリング状況によってグロシージ
ャに要求される機能を満足する目的をもつエントリ点へ
と進める。
The recoverable procedure is then advanced to a "normal" entry point, that is, an entry point whose purpose is to satisfy the functionality required of the glossary by its calling situation.

リカバリ・ブロック内の回復可能式グロシージャの次の
表示においては、この装置によりプロシージャをその“
ノルマル〃エントリ点に入れる。
On the next display of a recoverable gross procedure in the recovery block, this device will cause the procedure to
Normal〃Enter at the entry point.

第3のエントリ点は、情報の復旧を可能とすることを目
的とした所謂〃リバース( reverse ) tt
エントリ点であり、本発明に係る装置が回復可能式グロ
シージャを抹消しなければならない時に、リカバリ・ブ
ロック内の第1インポケーションの間保持されている。
The third entry point is the so-called reverse, which is intended to enable information recovery.
It is the entry point and is held during the first imposition in the recovery block when the device according to the invention must destroy the recoverable glossary.

以下では回復可能式プロシージャの1側を、第11図に
示す本発明の実施例について、ビットストアを用いる場
合に関し説明するが、勿論この回復可能式グロシージャ
は、上述の別の実施例に係る装置で動作する装置と組合
せて同じように使用することもできる。
One side of the recoverable procedure will be described below with respect to the embodiment of the invention shown in FIG. It can also be used in the same way in combination with devices that operate on .

第14図は、リカバリ・ブロック■と回復可能プロシー
ジャ■とを含むリカバリ・ブロックVを示す。
FIG. 14 shows a recovery block V that includes a recovery block ■ and a recoverable procedure ■.

この場合の回復可能グロシージャは、オウンバリアブル
Wと別のリカバリ・ブロック■を有している。
The recoverable glossary in this case has an own variable W and another recovery block ■.

第15〜17図は、第2〜10図と同じであるが、メイ
ンストア10のステートとリカバリ・ブロックVの種々
の点のキャッシュストア12とを示している。
15-17 are the same as FIGS. 2-10, but show the state of main store 10 and cache store 12 at various points in recovery block V. FIG.

第15図は、リカバリ・ブロックVの開始時の状態を示
す。
FIG. 15 shows the state of recovery block V at the beginning.

スタック・マーク60 .62はそれぞれ、メインスト
アとキャッシュストアとに設けてある。
Stack mark 60. 62 are provided in the main store and the cache store, respectively.

第16図tこおいて、プログラムが回復可能式プロシー
ジャ■を示す範囲に入ると、プロシージャへのアクセス
を提供するデスクリプタが、プロシージャのオウンバリ
アブルWとしてメインスタック上に置かれる。
In FIG. 16t, when the program enters the range indicating a recoverable procedure (2), a descriptor providing access to the procedure is placed on the main stack as the procedure's own variable W.

勿論、回復可能式プロシージャには,1個以上のオウン
バリアブルを持たしても良いが、この場合には、このよ
うなオウンバリアブルの名前を全て、その時点でメイン
ストア10内に挿入する。
Of course, a recoverable procedure may have one or more own variables, in which case the names of all such own variables are inserted into the main store 10 at that point.

リカバリ・ブロック■内へのエントリにおいては、更に
メインストア10とキャッシュストア12とに対してそ
れぞれ、スタックマーク64,66を設ける。
In the entry into the recovery block (2), stack marks 64 and 66 are further provided for the main store 10 and cache store 12, respectively.

第11図において、最初に回復可能グロシージャ■を(
リカバリ・ブロック■)内に呼び込むと、プロシージャ
のデスクリプタを含むメインストア10内のワードに対
応するフラッグをクリアすべきことが判明し、このプロ
シージャがこのリカバリ・ブロック内で使用されなかっ
たことが示される。
In Figure 11, we first define the recoverable glossary ■ (
recovery block (■), it is found that the flag corresponding to the word in main store 10 containing the procedure's descriptor should be cleared, indicating that this procedure was not used within this recovery block. It will be done.

そこで、キャッシュ機構が、デスクリプタ■に対応する
フラッグをメインストア10内にセットし、デスクリプ
タとその一致性をキャッシュストア10内に記録する。
Therefore, the cache mechanism sets a flag corresponding to the descriptor (2) in the main store 10 and records the descriptor and its consistency in the cache store 10.

すると、回復可能式プロシージャは、キャッシュストア
12の更に別の“セイブ(Save)“領域を得て、こ
の領域内にそのリカバリ情報を記録する。
The recoverable procedure then obtains yet another "Save" area of cache store 12 and records its recovery information in this area.

回復可能式グロシージャ■は、その内部リカバリ・ブロ
ックに入り、この内部リカバリ・ブロックによってリカ
バリ情報の保留とプロシージャに必要とする機能を実行
する。
A recoverable gross procedure enters its internal recovery block, which holds recovery information and performs the functions required by the procedure.

リカバリ・ブロックV内の回復可能グロシージャ上に引
続きコールを行うことによって、既にセットしてあるデ
スクリプタ上にフラッグを見出す。
A subsequent call on the recoverable glossary in recovery block V finds the flag on the descriptor that has already been set.

次いで回復可能グロシージャを、特別なアクションを行
うことなくノルマルエントリ点を通して入れる,しかし
、もしプログラムが、回復可能プロシージャ■上での再
コール前にリカバリ・ブロック■内の別のリカバリ・ブ
ロックに入っている場合には、そのデスクリプタ上のフ
ラッグをクリアし、更に別のリカバリ情報セットをキャ
ッシュストア12内に記録して、回復を必要とする新た
なリカバリ・ブロックに対応させる。
The recoverable procedure is then entered through the normal entry point without any special action, but if the program enters another recovery block within the recovery block before recalling the recoverable procedure If so, the flag on that descriptor is cleared and yet another set of recovery information is recorded in cache store 12 to correspond to the new recovery block that requires recovery.

リカバリ・ブロックからのエグジットが成功裏に行われ
た所で、デスクリプタとキャッシュストア内のその関連
セイブ領域とを、キャッシュストア内に記録されている
他の変数と同じようにキャッシュ機構により処理する。
Upon successful exit from the recovery block, the descriptor and its associated save area in the cache store are treated by the cache mechanism like any other variable recorded in the cache store.

それらは、1つのキャッシュ領域から次の領域に移送さ
れ、それらがローカル状態になるか又はデスクリブタが
そのキャッシュ領域内に存在するまでメインスタック・
テスクリプタフラッグをリセットする。
They are transported from one cache area to the next and remain on the main stack until they become local or a descriptor is present in that cache area.
Reset the descriptor flag.

回復可能プロシージャ内のりカバリ・ブロック中では、
そのグロシージャのオウンバリアブル及びキャッシュス
トア内のセイブ領域中の変数は、非ローカルであると考
えられ、エラ一時の他の変数と同じように再記憶される
In a recovery block within a recoverable procedure,
The glossary's own variables and variables in the save area in the cache store are considered non-local and are re-stored like any other variable on error.

しかし、リカバリ・ブロック■のアクセプタンス・テス
トが満足なものであれば、このリカバリ・ブロックから
のエグジット中、上記変数は、メインストア10内の位
置にかかわりなく、次のリカバリ・ブロック中でローカ
ルと考えられ従って、その記憶されている先の値は抹消
される。
However, if the acceptance test of the recovery block is satisfactory, then during exit from this recovery block, the above variables will become local in the next recovery block, regardless of their position in the main store 10. Therefore, its stored previous value is erased.

即ち、リカバリ・ブロック■からのエグジットは、オウ
ンバリアブルへの割当を有効に永久的となし、引続いて
の回復は、回復可能グロシージャ内に含まれているリカ
バリ・プログラムによってのみ可能である。
That is, exiting from recovery block ■ effectively makes the assignment to the own variable permanent, and subsequent recovery is possible only by the recovery program contained within the recoverable glossary.

しかし、グロシージャにより直接に又はなんらかのパラ
メータ機構を介して非ローカル変数に対し行われた割当
ては、通常に処理され、従って、キャッシュ機構によっ
ては行われない。
However, assignments made to non-local variables by glossaries directly or through some parameter mechanism are processed normally and are therefore not made by the cache mechanism.

トップキャッシュ・スタック領域は、エラー後に通常の
方法で処理する。
The top cache stack area is processed in the normal manner after an error.

そして、回復可能グロシージャのためのデスクリプタの
判明後に、キャッシュ機構が、プロシージャのリバース
エンドリ点を呼び込む。
Then, after the descriptor for the recoverable glossary is known, the cache mechanism invokes the procedure's reverse end point.

このリバースエントリ点は、リカバリ・ブロック、他の
グロシージャ・コール及びリカバリ・ブロック、並びに
オウンバリアブルを適値に再記憶するに必要なその他の
処理を呼び出す。
This reverse entry point invokes the recovery block, other glossary calls and recovery blocks, and other processing necessary to restore the own variables to their proper values.

以上の説明では、情報の種々のアイテムがメインストア
のワード長と同じ寸法であると仮定したが、勿論、情報
のアイテムがワードより短かい場合においても適用可能
である。
The above description assumes that the various items of information are of the same size as the word length of the main store, but is of course also applicable where the items of information are shorter than a word.

但しこの場合には、情報の均一な単一ユニットに対する
割当てによって全ワードを記憶しておく。
However, in this case, all words are stored by uniform single unit assignment of information.

更に本発明は、情報のアイテムがワードより大きい場合
も適用可能であり、この場合には、情報アイテムの値を
保留するために1ワード以上のものを記憶しておく必要
がある。
Furthermore, the invention is also applicable when the item of information is larger than a word, in which case more than one word needs to be stored in order to preserve the value of the information item.

本発明は下記のような態様で実施することができる。The present invention can be implemented in the following manner.

(1) 現行プログラム・ブロックの期間中に第1メ
モリ装置における情報アイテムのステートが変化せしめ
られた時に、前の情報アイテムのステートを第1メモリ
装置から第2メモリ装置に移すためのトランスファ装置
を含んでいる、特許請求の範囲記載のデータ・プロセス
装置。
(1) a transfer device for transferring the state of a previous information item from a first memory device to a second memory device when the state of the information item in the first memory device is caused to change during a current program block; A data processing apparatus as claimed in the claims.

(2)トランスファ装置は現行プログラム・ブロックの
期間中の最初の情報アイテムのヌテートの変化に対して
だけ作動する、前掲(1)項記載のデータ・プロセス装
置。
(2) The data processing device according to paragraph (1) above, wherein the transfer device operates only for a change in the nutate of the first information item during the current program block.

(3)現行プログラム・ブロックの期間中に第1メモリ
装置に記憶されている情報アイテムの前のステートが既
に第2メモリ装置に記憶されているか否かを表示するた
めに、第1メモリ装置に記憶された各情報アイテムにそ
れぞれインデイケータを組合わせる装置を含んでいる、
前掲(1)項記載のデータ・プロセス装置。
(3) storing information in the first memory device to indicate whether a previous state of the information item stored in the first memory device during the current program block is already stored in the second memory device; comprising means for associating a respective indicator with each stored information item;
The data processing device described in item (1) above.

(4)インデイケータの存在がトランスファ装置の作動
を抑止する、前掲(3)項記載のデータ・プロセス装置
(4) The data processing device according to item (3) above, wherein the presence of the indicator inhibits the operation of the transfer device.

(5)第1メモリ装置および第2メモリ装置の各各に対
して、多数のプログラム・ブロックのネストされた1組
における前のプログラム・ブロックの情報アイテムと後
続のプログラム・ブロックにおける情報アイテムとを分
離するためのセパレータ装置がそれぞれ設けられており
、多数のプログラム・ブロックのネストされた1組を利
用するデータ・プロセス用として使用するに適した、前
掲(4)項記載のデータ・プロセス装置。
(5) for each of the first memory device and the second memory device, an information item in a previous program block and an information item in a subsequent program block in a nested set of multiple program blocks; The data processing device according to item (4) above, which is suitable for use in data processing that utilizes a nested set of a large number of program blocks, each of which is provided with a separator device for separation.

(6)インデイケータは、多数のプログラム・ブロック
のネストされた1組における現行プログラム・フロック
のネステイングの深さをも表示する、多数のプログラム
・ブロックのネストされた1組を利用するデータ・プロ
セス用として使用するに適した、前掲(3)項記載のデ
ータ・プロセス装置。
(6) The indicator also indicates the nesting depth of the current program block in the nested set of multiple program blocks, for data processes that utilize a nested set of multiple program blocks. The data processing device described in item (3) above, which is suitable for use as a data processing device.

(7)第1メモリ装置および第2メモリ装置が、それぞ
れスタック式記憶装置から或っている、特許請求の範囲
記載のデータ・プロセス装置。
7. A data processing device as claimed in claim 1, wherein the first memory device and the second memory device each comprise a stacked storage device.

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

第1図は、本発明に係るプログラム構造の一部を示す概
略説明図、第2〜10図は、第1図に示すプログラム実
行中における種々のステージでのメモリ装置のステート
の説明ブロック・ダイヤグラム、第11図は、本発明の
一実施例のデータプロセシング装置のブロック・ダイヤ
グラム、第12図は、第11図に示す装置の詳細ブロッ
ク・ダイヤグラム、第13図は、別の実施例でのブロッ
ク・ダイヤグラム、第14図は、本発明に係るプログラ
ム構造の概略ダイヤグラム、第15〜17図は、第14
図に示すプログラムの種々のステージにおけるメモリ装
置のステートを示すブロック・ダイヤグラム、である。 R,E,A,H,C,D・・・・・・レジスタ、G・・
・・−・レジスタ・ブロック、30・・・・・・中央プ
ロセッサ、32・・・・・・メイン・ストア、34・・
・・・・ビット・ストア、36・・・・・・キャッシュ
・ストア。
FIG. 1 is a schematic explanatory diagram showing a part of the program structure according to the present invention, and FIGS. 2 to 10 are block diagrams explaining the states of the memory device at various stages during the execution of the program shown in FIG. 1. , FIG. 11 is a block diagram of a data processing device according to one embodiment of the present invention, FIG. 12 is a detailed block diagram of the device shown in FIG. 11, and FIG. 13 is a block diagram of another embodiment of the invention.・Diagram: FIG. 14 is a schematic diagram of the program structure according to the present invention; FIGS.
2 is a block diagram illustrating the state of a memory device at various stages of the illustrated program; FIG. R, E, A, H, C, D...Register, G...
. . . Register block, 30 . . . Central processor, 32 . . . Main store, 34 .
...Bit store, 36...Cache store.

Claims (1)

【特許請求の範囲】 1 各プログラム・フロックが後続するブロックへのエ
ントリーの前または外側のエンクロージンク・ブロック
に返戻される前にそれぞれアクセプタンス・テストを付
随せしめられるネストされた多数のプログラム・ブロッ
クの一組を利用するデータ・プロセスにおいて使用され
、各プログラム・ブロックの期間中にこのブロック内の
情報アイテムのステートが変化した場合に、必要に応じ
てこのブロックの開始時における優勢な情報アイテムの
ステートをリストアすることができるように、各プログ
ラム・ブロックの開始直前にそのブロックの複数の各情
報ブロックによってそれぞれ取り上げられていたステー
トを保存するよう作動せしめられるデータ・プロセス装
置であって、各プログラム・ブロックの各情報アイテム
の現在のステートを記憶するための第1メモリ装置と、
連続する各プログラム・ブロックを識別して各プログラ
ム・ブロックへのエントリーおよび各プログラム・ブロ
ックからのエグジットを表示するインデイケー夕を記憶
するための装置と、各プログラム・ブロックの各情報ア
イテムの以前のステートを記憶すると共にそのステート
が起生したプログラム・ブロックのインディケータを記
憶するための第2メモリ装置と、 各アクセプタンス・テストの完了時にそれぞれ収パス”
信号または゛フエイル”信号を発生するための装置と、 現行プログラム・ブロックの期間中に記憶された各情報
アイテムを第1メモリ装置からデイスカードするための
装置、および上記第1メモリ装置からその情報アイテム
がテイスカードされたプログラム・ブロックの直前のプ
ログラム・ブロックについて第2メモリ装置に記憶され
たステートを第1メモリ装置に転送するための装置を含
んでいて、若し″フエイル″信号が発生されたならば、
各メモリ装置のステートを現行プログラム・ブロツクへ
のエントリーの直前のステートにリストアーするための
装置と、 少くとも直前のプログラウ・ブロックに特有な情報アイ
テムおよび直前のプログラム・ブロックにおいて既にそ
れに対するエントリーが第2メモリ装置内に存在してい
る情報アイテムを第2メモリ装置からデイスカードする
ための装置を含んでいて、若し、゜゛パス″′信号が発
生されたならば各メモリ装置のステートを前進させるた
めの装置と、を具備することを特徴とするデータ・プロ
セス装置。
Claims: 1. A number of nested program blocks in which each program block is accompanied by an acceptance test before entry into a subsequent block or before being returned to an outer enclosing block. used in a data process that utilizes a set of information items, if necessary, if the state of the information items in this block changes during the duration of each program block, the state of the dominant information item at the beginning of this block. a data processing device operable to save the state covered by each of a plurality of information blocks of each program block immediately before the start of the block so that each program block can be restored; a first memory device for storing the current state of each information item of the block;
a device for storing indicators identifying each successive program block and indicating entry into and exit from each program block, and the previous state of each information item in each program block; a second memory device for storing an indicator of the program block in which the state occurred and an indicator of the program block in which the state occurred;
apparatus for generating a signal or a "fail"signal; and apparatus for discarding from a first memory device each item of information stored during the current program block; If the item includes a device for transferring the state stored in the second memory device to the first memory device for a program block immediately preceding the tasted program block, and if a "fail" signal is generated; If so,
a device for restoring the state of each memory device to the state immediately preceding its entry into the current program block; and at least an information item specific to the immediately preceding program block and an entry for it already present in the immediately preceding program block. comprising means for discarding an information item residing in the second memory device from the second memory device; and advancing the state of each memory device if a ゜゛pass'' signal is generated. A data processing device comprising:
JP50046929A 1974-04-17 1975-04-17 Data Process Souch Expired JPS5836372B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB16766/74A GB1509193A (en) 1974-04-17 1974-04-17 Computer systems
GB2649774 1974-06-14

Publications (2)

Publication Number Publication Date
JPS50144352A JPS50144352A (en) 1975-11-20
JPS5836372B2 true JPS5836372B2 (en) 1983-08-09

Family

ID=26252228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50046929A Expired JPS5836372B2 (en) 1974-04-17 1975-04-17 Data Process Souch

Country Status (4)

Country Link
JP (1) JPS5836372B2 (en)
DE (1) DE2516909C2 (en)
FR (1) FR2268306A1 (en)
NL (1) NL7504595A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0254247A3 (en) * 1984-04-26 1988-08-10 BBC Brown Boveri AG Calculator status saving system
JPH0682336B2 (en) * 1986-04-28 1994-10-19 日本電気株式会社 Rollback recovery system using block closure

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities

Also Published As

Publication number Publication date
FR2268306A1 (en) 1975-11-14
DE2516909C2 (en) 1986-01-09
JPS50144352A (en) 1975-11-20
NL7504595A (en) 1975-10-21
FR2268306B1 (en) 1980-07-04
DE2516909A1 (en) 1975-10-30

Similar Documents

Publication Publication Date Title
US4164017A (en) Computer systems
US5274807A (en) Method for reducing magnetic storage volume for computer disk image backup
JP2702855B2 (en) Circuit and method for testing and controlling a RAM array
US3427443A (en) Instruction execution marker for testing computer programs
US5740445A (en) Information processing apparatus for generating directory information to manage a file using directories
US3725872A (en) Data processing system having status indicating and storage means
US4197588A (en) Segmented storage logging and controlling for random entity selection
US5410694A (en) File access processing system of a computer enabling high-speed sequential access for a stream file
JPS6044707B2 (en) Fault detection method for buffer memory control circuit
JPS5836372B2 (en) Data Process Souch
US4198681A (en) Segmented storage logging and controlling for partial entity selection and condensing
CN107422990B (en) Dynamic migration method and device
US3984821A (en) Associative memory using recirculatory shift register cells
JPS5987566A (en) Memory access detecting system
US3512134A (en) Apparatus for performing file search in a digital computer
JP2962335B2 (en) Free space search method
JP2586610B2 (en) File creation method
JPS62501526A (en) A system allocator for a reduced processor that evaluates programs stored as binary directed graphs using functional language code that does not contain variables.
JPS6326411B2 (en)
JPH04112253A (en) Data accessing method using multilayer buffer
Shelman The application of list processing techniques to picture processing
JP2944121B2 (en) Failure handling method
JPS6014324A (en) Associative storage device
JP2541006B2 (en) Sort processing method
JPS63291116A (en) File access system