JPS5836372B2 - デ−タプロセスソウチ - Google Patents
デ−タプロセスソウチ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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking using recovery blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing 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)発明の分野
本発明は、データプロセス装置に関する。
データプロセス装置は、データに対しステップ・パイ・
ステップのオプレーション(作動)を遂行するように機
能する。
ステップのオプレーション(作動)を遂行するように機
能する。
オペレーションの各ステップは「プログラム」と呼ばれ
る。
る。
最も単純なプログラム以外の多くのプログラムは、複数
個のブロックに分割することができる。
個のブロックに分割することができる。
このようなブロックは、多くの場合それ自体が更に小さ
い複数個のブロックから成っており、そのため、完全な
プログラムはネストされた(組合わせて結合された)多
数個のブロックの組から成っている。
い複数個のブロックから成っており、そのため、完全な
プログラムはネストされた(組合わせて結合された)多
数個のブロックの組から成っている。
多数個のブロックから成るプログラムの各プログラム・
ブロックを実行するに当っては、エラー(誤り)が起生
ずる可能性がある。
ブロックを実行するに当っては、エラー(誤り)が起生
ずる可能性がある。
このようなエラーがプログラムの残りの部分に影響を及
ばす可能性を減少させるためには、1つのブロックが完
了された時にアクセプタンス・テスト(受容試験)を行
なうことができる。
ばす可能性を減少させるためには、1つのブロックが完
了された時にアクセプタンス・テスト(受容試験)を行
なうことができる。
若しアクセプタンス・テストが或功であれば、プログラ
ムは、丁度今成功的に完了されたブロックをエンクロー
ズ(取囲む)する外側のブロックであるかも知れない次
のブロックに進むだろう。
ムは、丁度今成功的に完了されたブロックをエンクロー
ズ(取囲む)する外側のブロックであるかも知れない次
のブロックに進むだろう。
しかし、若しアクセプタンス・テストが不或功であれば
、コンピュータのメモリ装置を、不成功ブロックに入る
直前に存在したステート(状態)にリストア−(復元)
させることが望ましいであろう。
、コンピュータのメモリ装置を、不成功ブロックに入る
直前に存在したステート(状態)にリストア−(復元)
させることが望ましいであろう。
なお、アクセプタンス・テストは、特定のプログラムブ
ロックが、そのプログラムにおいて実行可能であるか否
か、または特定のプログラムブロックに含まれた情報ア
イテムを表わす変数に割尚てられた数値や計数プログラ
ムの実行によって得られた回答数値が所定の数値範囲内
に存在しているか否か、などを決定するために行なわれ
るテストであって、データプロセシング技術においては
一般に周知されており、若しテストが成功すなわちテス
ト結果が満足すべき結果であれば゛パス(合格)”信号
が発生され、また若しテストが不威功すなわちテスト結
果が不満足なものであれば゛フエイル(失格)”信号が
発生される。
ロックが、そのプログラムにおいて実行可能であるか否
か、または特定のプログラムブロックに含まれた情報ア
イテムを表わす変数に割尚てられた数値や計数プログラ
ムの実行によって得られた回答数値が所定の数値範囲内
に存在しているか否か、などを決定するために行なわれ
るテストであって、データプロセシング技術においては
一般に周知されており、若しテストが成功すなわちテス
ト結果が満足すべき結果であれば゛パス(合格)”信号
が発生され、また若しテストが不威功すなわちテスト結
果が不満足なものであれば゛フエイル(失格)”信号が
発生される。
アクセプタンス・テストを命令するプログラム部分また
はプログラムブロックは、データプロセスのプログラム
に含まれてその一部分を成しており、テストされるべき
特定のプログラム部分またはプログラムブロックの後に
挿入される。
はプログラムブロックは、データプロセスのプログラム
に含まれてその一部分を成しており、テストされるべき
特定のプログラム部分またはプログラムブロックの後に
挿入される。
アクセプタンス・テスト自体の内容すなわちテストの作
動工程は、所定のプログラムの作成時にプログラム作成
者によって決定されるもので、その所定プログラムの内
容に応じて決定される任意の適当な形態をとることがで
きる。
動工程は、所定のプログラムの作成時にプログラム作成
者によって決定されるもので、その所定プログラムの内
容に応じて決定される任意の適当な形態をとることがで
きる。
簡単な一例としては、若しテストされるべき所定のプロ
グラムブロックが数値的回答を得るための計数処理を命
令するものである場合には、アクセプタンス・テストに
おいては回答の数値がその範囲内に存在しなければなら
ない上限数値と下限数値とを予め設定して置いて、命令
された計数処理によって得られる回答の数値がこれら2
つの限界数値によって定まる範囲内に存在するか否かを
テストし、若し回答の数値が上記所定範囲内に存在して
いればパス信号を発生させ、また若し回答の数値が上記
所定範囲から外れて存在していればフエイル信号を発生
させる。
グラムブロックが数値的回答を得るための計数処理を命
令するものである場合には、アクセプタンス・テストに
おいては回答の数値がその範囲内に存在しなければなら
ない上限数値と下限数値とを予め設定して置いて、命令
された計数処理によって得られる回答の数値がこれら2
つの限界数値によって定まる範囲内に存在するか否かを
テストし、若し回答の数値が上記所定範囲内に存在して
いればパス信号を発生させ、また若し回答の数値が上記
所定範囲から外れて存在していればフエイル信号を発生
させる。
上記の通りであるから、後に述べる本発明のデータプロ
セス装置によって行なわれるデータ・プロセスにおいて
使用される多数のプログラム・ブロックに付随せしめら
れるアクセプタンス・テストについては、従来のデータ
プロセス技術において周知された任意の形態を用いるこ
とができる。
セス装置によって行なわれるデータ・プロセスにおいて
使用される多数のプログラム・ブロックに付随せしめら
れるアクセプタンス・テストについては、従来のデータ
プロセス技術において周知された任意の形態を用いるこ
とができる。
(2)従来の技術およびその問題点
以前のステートをリストする1つの方法は、新しいプロ
グラム・ブロックに入る以前に第1のメモリ装置(すな
わち通常のメモリ装置)のステートを複写する第2のメ
モリ装置を設けることである。
グラム・ブロックに入る以前に第1のメモリ装置(すな
わち通常のメモリ装置)のステートを複写する第2のメ
モリ装置を設けることである。
然しなから、これは、第1メモリ装置におけるネストさ
れたプログラム・ブロックの組に対して、そのネストさ
れた連続した各プログラム・ブロックに入る以前にそれ
ぞれ複写を行なわなくてはならないので、第2メモリ装
置を第1メモリ装置よりも数倍大きくする必要があり、
記憶スペース(空間)の著しい浪費である。
れたプログラム・ブロックの組に対して、そのネストさ
れた連続した各プログラム・ブロックに入る以前にそれ
ぞれ複写を行なわなくてはならないので、第2メモリ装
置を第1メモリ装置よりも数倍大きくする必要があり、
記憶スペース(空間)の著しい浪費である。
(3)本発明の目的
本発明の目的は、過犬な記憶スペースを必要としないプ
ログラムのりストア用またはカバリー(回復)用設備を
提供することである。
ログラムのりストア用またはカバリー(回復)用設備を
提供することである。
(4)本発明の概要
本発明は、多くのプログラム・ブロックにおいては比較
的少数の情報アイテム(項目)だけが変化するという事
実を利用するものである。
的少数の情報アイテム(項目)だけが変化するという事
実を利用するものである。
本発明は、第1のメモリ装置に加えて第2のメモリ装置
を設け、この第2メモリ装置には、各プログラム・ブロ
ックの期間中に変化する情報アイテムの以前のステート
だけを、連続した各プログラム・ブロックを識別するイ
ンデケータ(標識)と共に記憶させる。
を設け、この第2メモリ装置には、各プログラム・ブロ
ックの期間中に変化する情報アイテムの以前のステート
だけを、連続した各プログラム・ブロックを識別するイ
ンデケータ(標識)と共に記憶させる。
各プログラム・ブロックからのエグジット(退出)時に
おけるアクセプタンス・テストの完了時に゜1パス(合
格y′信号または″フエイル(失格)”信号を発生する
ための装置を設ける。
おけるアクセプタンス・テストの完了時に゜1パス(合
格y′信号または″フエイル(失格)”信号を発生する
ための装置を設ける。
若し、゛フエイル”信号が発生されると、各メモリ装置
は、失格したプログラム・ブロックへのエントリー(進
入)の直前に保持していたメモリのステートをリストア
ーするようにオペレート(作動)せしめられる。
は、失格したプログラム・ブロックへのエントリー(進
入)の直前に保持していたメモリのステートをリストア
ーするようにオペレート(作動)せしめられる。
このメモリ装置のステートをリストアーさせるための装
置は、現行プログラム・ブロックの期間中に記憶された
各情報アイテムを第1メモリ装置からデイスカード(消
去)させる装置と、第1メモリ装置からは既にデイスカ
ードされて第2メモリ装置に記憶されている直前のプロ
グラム・ブロックの情報アイテムのステートを第2メモ
リ装置から第1メモリ装置にトランスファー(転送)す
る装置とを含んでいる。
置は、現行プログラム・ブロックの期間中に記憶された
各情報アイテムを第1メモリ装置からデイスカード(消
去)させる装置と、第1メモリ装置からは既にデイスカ
ードされて第2メモリ装置に記憶されている直前のプロ
グラム・ブロックの情報アイテムのステートを第2メモ
リ装置から第1メモリ装置にトランスファー(転送)す
る装置とを含んでいる。
若し、゛′パス”信号が発生されると、各メモリ装置は
、不必要な各情報アイテムをデスカードすることによっ
てメモリ装置のステートを前進させるようにオペレート
せしめられる。
、不必要な各情報アイテムをデスカードすることによっ
てメモリ装置のステートを前進させるようにオペレート
せしめられる。
このメモリ装置のステートを前進させるための装置は、
少くとも直前のプログラム・ブロックにローカル(特有
)な情報アイテムおよびその情報アイテムのエントリー
が直前のプログラム・ブロックにおいて既に存在してい
る情報アイテムを第2メモリ装置からディスカードする
装置を含んでいる。
少くとも直前のプログラム・ブロックにローカル(特有
)な情報アイテムおよびその情報アイテムのエントリー
が直前のプログラム・ブロックにおいて既に存在してい
る情報アイテムを第2メモリ装置からディスカードする
装置を含んでいる。
(5)実施例の概要
本発明を実施するに当っては、プライマリー・ブロック
(本来のブロック)がフエイルした場合のエグゼキュー
ション(実行)のために1つまたはそれ以上のオルタネ
イト・ブロック(交替用ブロック)を設けることが望ま
しい。
(本来のブロック)がフエイルした場合のエグゼキュー
ション(実行)のために1つまたはそれ以上のオルタネ
イト・ブロック(交替用ブロック)を設けることが望ま
しい。
こうすることによって、′゛フエイル”信号が発生され
た後には交替のプログラム・セクエンス(プログラムの
順序)が用意されていて、単に失格したプログラム・ブ
ロックを繰返えすことによって第2番目の゛フエイル”
信号が発生される可能性が減少する。
た後には交替のプログラム・セクエンス(プログラムの
順序)が用意されていて、単に失格したプログラム・ブ
ロックを繰返えすことによって第2番目の゛フエイル”
信号が発生される可能性が減少する。
威る可くは、現行プログラム・ブロックの期間中に各メ
モリ装置内における情報アイテムのステートが変化した
時にその情報アイテムの以前のステートを第1メモリ装
置から第2メモリ装置にトランスファーするトランスフ
ァー装置を設ける。
モリ装置内における情報アイテムのステートが変化した
時にその情報アイテムの以前のステートを第1メモリ装
置から第2メモリ装置にトランスファーするトランスフ
ァー装置を設ける。
このトランスファー装置は現行プログラム・ブロックの
期間中における情報アイテムの最初すなわち第1番目の
ステート変化に対してだけ作動することが好ましい。
期間中における情報アイテムの最初すなわち第1番目の
ステート変化に対してだけ作動することが好ましい。
この目的のために、現行プログラム・ブロックの期間に
既にその情報アイテムの以前のステートが第2メモリ装
置に記憶されているかを指示するため、第1メモリ装置
に記憶されてい.る各情報アイテムにそれぞれインデイ
ケータ整組合わせる装置を含ませることができる。
既にその情報アイテムの以前のステートが第2メモリ装
置に記憶されているかを指示するため、第1メモリ装置
に記憶されてい.る各情報アイテムにそれぞれインデイ
ケータ整組合わせる装置を含ませることができる。
このようなインデイケー夕の存在は、トランスファー装
置がオペレートすることを阻止する。
置がオペレートすることを阻止する。
更にまた、第1メモリ装置および第2メモリ装置の両方
共に、ネストされたプログラム・ブロックの組における
先行プログラム・ブロック内の情報アイテムをセパレー
ト(選別)するセパレータ装置(選別装置)を含ませる
ことが好ましい。
共に、ネストされたプログラム・ブロックの組における
先行プログラム・ブロック内の情報アイテムをセパレー
ト(選別)するセパレータ装置(選別装置)を含ませる
ことが好ましい。
ましい。
(6)実施例の詳細な説明
以下添付図面を参照して、本発明の実施例について詳細
に説明する。
に説明する。
エラーリカバリーを行う本発明に係るコンピュータプロ
グラムは、小さなプログラムに分れている多数の識別可
能なエラーリカバリー用オペレーションから成る。
グラムは、小さなプログラムに分れている多数の識別可
能なエラーリカバリー用オペレーションから成る。
エラーからのりカバリーを許すようグループ分けしたオ
ペレーションの組を以下「リカバリー・ブロック」と称
す。
ペレーションの組を以下「リカバリー・ブロック」と称
す。
このリカバリー・ブロックの各々は、プライマリーブロ
ックとアクセグタンス・テストを含んでいなくてはなら
ないが、その上に1つ以上のオルターネイトブロックを
含ませてもよい。
ックとアクセグタンス・テストを含んでいなくてはなら
ないが、その上に1つ以上のオルターネイトブロックを
含ませてもよい。
このようなプライマリー・ブロックまたはオルターネイ
トブロックは、少なくとも1つのプライマリー・フaツ
クおよびアクセプタンステストを含むリカバリー・ブロ
ックをそれ自体で構成するかまたは含むようにしてもよ
い。
トブロックは、少なくとも1つのプライマリー・フaツ
クおよびアクセプタンステストを含むリカバリー・ブロ
ックをそれ自体で構成するかまたは含むようにしてもよ
い。
第1図は、アクセプタンス・テストI±を有するリカバ
リー・ブロックIを示す。
リー・ブロックIを示す。
このリカバリー・ブロックは、プライマリー・ブロック
1aとオルターネイト・ブロックIbを含み、プライマ
リー・ブロックIaは、アクセプタンス・テスト川tと
、フ゛ライマリー・ブロ゛ンクIlaと2つのオノレタ
ーネイトフ゛ロ゛ンク川bおよび川Cとから成るリカバ
リー・フ゛ロ゛ンク川とを含む。
1aとオルターネイト・ブロックIbを含み、プライマ
リー・ブロックIaは、アクセプタンス・テスト川tと
、フ゛ライマリー・ブロ゛ンクIlaと2つのオノレタ
ーネイトフ゛ロ゛ンク川bおよび川Cとから成るリカバ
リー・フ゛ロ゛ンク川とを含む。
オノレターネイト・ブロックIbは、2つのりカバリー
・ブロックIおよび■を含み、リカバリー・ブロックl
は,アクセグタンステストI1と、プライマリー・ブロ
ックlaとオルターネイトブロックIbとから或り、リ
カバリー・ブロック■は、アクセプタンス・テストIV
tとプライマリー・ブロックNaとから成る。
・ブロックIおよび■を含み、リカバリー・ブロックl
は,アクセグタンステストI1と、プライマリー・ブロ
ックlaとオルターネイトブロックIbとから或り、リ
カバリー・ブロック■は、アクセプタンス・テストIV
tとプライマリー・ブロックNaとから成る。
図中では、説明の都合上、リカバリー・ブロックの範囲
を垂直2重線で示し、ブライマリー・ブロックとオルタ
ーネイト・ブロックの範囲を垂直単線で示してある。
を垂直2重線で示し、ブライマリー・ブロックとオルタ
ーネイト・ブロックの範囲を垂直単線で示してある。
各アクセプタンス・テストは、プライマリー・ブロック
またはオルターネイト・ブロックからのエギジットに呼
出されるプログラムの一部を成している。
またはオルターネイト・ブロックからのエギジットに呼
出されるプログラムの一部を成している。
このアクセプタンス・テストは、リカバリー・ブロック
に要求されるオペレーションがりカバリー・ブロックを
エンクローズするかまたはりカバリー・ブロックを呼出
すプログラムにアクセブトされて実行されるか否かの2
次的な決定を行なう。
に要求されるオペレーションがりカバリー・ブロックを
エンクローズするかまたはりカバリー・ブロックを呼出
すプログラムにアクセブトされて実行されるか否かの2
次的な決定を行なう。
各リカバリー・ブロックに対して、プライマリー・ブロ
ックからのエグジットにおいて呼出され、またオルター
ネイトが要求されたならば任意のオルターネイト・ブロ
ックのエグジットでも呼出される1つのアクセプタンス
・テストが存在する。
ックからのエグジットにおいて呼出され、またオルター
ネイトが要求されたならば任意のオルターネイト・ブロ
ックのエグジットでも呼出される1つのアクセプタンス
・テストが存在する。
若しリカバリー・ブロックのうちのプライマリー・ブロ
ックがりジエクト(拒否)されると、プログラムはオル
ターネイト・ブロックを実行する。
ックがりジエクト(拒否)されると、プログラムはオル
ターネイト・ブロックを実行する。
このオルターネイト・ブロックが終了すると、この結果
を同じアクセプタンス・テストに提示し、アクセプタン
ス・テストが満足させられると、オルターネイト・ブロ
ックによって発生された結果を用いてプログラムを前進
させる。
を同じアクセプタンス・テストに提示し、アクセプタン
ス・テストが満足させられると、オルターネイト・ブロ
ックによって発生された結果を用いてプログラムを前進
させる。
このオルターネイト・ブロックに対するアクセプタンス
・テストが再び満足させられないならば、更に他のオル
ターネイト・ブロックについてテストを行なう。
・テストが再び満足させられないならば、更に他のオル
ターネイト・ブロックについてテストを行なう。
こうして、全てのオルターネイト・ブロックについてテ
ストを行なって全てのブロックがアクセプタンス・テス
トを満足せしめないならば、全てのりカバリー・ブロッ
クがフエイルしているとみなさなくてはならない。
ストを行なって全てのブロックがアクセプタンス・テス
トを満足せしめないならば、全てのりカバリー・ブロッ
クがフエイルしているとみなさなくてはならない。
この場合、リカバリー・ブロックを呼出すエンクロージ
ンク・ブロックをリジエクトして、その代わりにエンク
ロージング・ブロックに対するオルターネイト・ブロッ
クを試みてみる必要がある。
ンク・ブロックをリジエクトして、その代わりにエンク
ロージング・ブロックに対するオルターネイト・ブロッ
クを試みてみる必要がある。
プログラム・ブロックを形或する各情報アイテムは変数
であってもよく、この場合に情報アイテムの種々のステ
ートは、それら変数に割当てられた数値によって定まる
。
であってもよく、この場合に情報アイテムの種々のステ
ートは、それら変数に割当てられた数値によって定まる
。
アクセプタンス・テストは、プライマリー・ブロック内
にないので、ブライマリー・ブロックまたはオルタネイ
ト・ブロックのローカル変数をアクセスできない。
にないので、ブライマリー・ブロックまたはオルタネイ
ト・ブロックのローカル変数をアクセスできない。
オルタネイトブロック内のローカル・ディクラレイショ
ンを対応するプライマリー・ブロック内のローカル・デ
イクラレイションと同一のものにする理由はない。
ンを対応するプライマリー・ブロック内のローカル・デ
イクラレイションと同一のものにする理由はない。
アクセプタンス・テストがパスまたはパスしない場合、
サクセスまたはフエイルしたブロック内で作成されたロ
ーカル・デイクラレイションをデイスカードし、システ
スをブロックを開始した時と同じコンディションにすれ
ば、オルタネイトブロックは、場合によってはプライマ
リー・フロックのアクセプトできない先の実行または実
行を行なわせるような変数値への変更によってオルタネ
イトブロックのデザインが影響を受けないよう従来のよ
うに書き込むことができる。
サクセスまたはフエイルしたブロック内で作成されたロ
ーカル・デイクラレイションをデイスカードし、システ
スをブロックを開始した時と同じコンディションにすれ
ば、オルタネイトブロックは、場合によってはプライマ
リー・フロックのアクセプトできない先の実行または実
行を行なわせるような変数値への変更によってオルタネ
イトブロックのデザインが影響を受けないよう従来のよ
うに書き込むことができる。
したがってオルタネイト・ブロックがエンタされる時、
エンタされていた対応するフライ−y IJ−・ブロッ
クと全く同一のエンバイロメントが呈示される。
エンタされていた対応するフライ−y IJ−・ブロッ
クと全く同一のエンバイロメントが呈示される。
ブライマリー・ブロックのオペレーションがすべて実行
されると、プライマリー・ブロックによって変更された
変数が先の値に再記憶される。
されると、プライマリー・ブロックによって変更された
変数が先の値に再記憶される。
このようなエラー・リカバリー・システムに必要な条件
については、ニューカッスル・アポン・タイン大学計算
研究所、技報57号、1974年1月発行のビイー・ラ
ンデル氏の論文「ニューカッスル・アポン・タイン大学
の計算システムの信頼性に関する研究」論文に完全に記
載されている。
については、ニューカッスル・アポン・タイン大学計算
研究所、技報57号、1974年1月発行のビイー・ラ
ンデル氏の論文「ニューカッスル・アポン・タイン大学
の計算システムの信頼性に関する研究」論文に完全に記
載されている。
以下実施例に基いて説明する本発明では、プライマリー
・ブロックまたはオルタネイト・ブロックで変更された
変数を妥当な効率で先の値に再記憶させるような手段が
設けてある。
・ブロックまたはオルタネイト・ブロックで変更された
変数を妥当な効率で先の値に再記憶させるような手段が
設けてある。
これは、以下キャッシュ・ストアと呼ぶ分離された記憶
手段に記録させることによって行なわれ、キャッシュ・
ストアの変数のアイデンティティは、最初のモデイフイ
ケイション前の変数値と結びついているプライマリブロ
ックまたはオルタネイト・ブロックによってモデイファ
イされる。
手段に記録させることによって行なわれ、キャッシュ・
ストアの変数のアイデンティティは、最初のモデイフイ
ケイション前の変数値と結びついているプライマリブロ
ックまたはオルタネイト・ブロックによってモデイファ
イされる。
これらのアイデンティティは、どの変数の記録値をこの
変数のアドレスまたはヴアーテユアルアドレスから構成
するかを決定するのに充分な情報を含んでいる。
変数のアドレスまたはヴアーテユアルアドレスから構成
するかを決定するのに充分な情報を含んでいる。
本発明に係る実施例では、メイン・ストアおよびキャッ
シュストアともスタックとして構或してある。
シュストアともスタックとして構或してある。
リカバリー・ブロックへのエントリー上の変数の値しか
プリザーブする必要がないので、リカバリー・ブロック
中で1回以上変更する変数の中間値をプリザーブする必
要がなく、インデイケイタすなわちプール・フラッグを
メインストア内の各ワードと関連させてキャッシュ・ス
トア内に正しい値がプリザーブされているかいないかを
表示する。
プリザーブする必要がないので、リカバリー・ブロック
中で1回以上変更する変数の中間値をプリザーブする必
要がなく、インデイケイタすなわちプール・フラッグを
メインストア内の各ワードと関連させてキャッシュ・ス
トア内に正しい値がプリザーブされているかいないかを
表示する。
第2図〜第9図は、第1図のオルタネイト、ブロックI
bのスタート時でプライマリ・ブロックIaのパーフォ
ーマンス中のメイン・ストアおよびキャッシュ・ストア
のステートを示す。
bのスタート時でプライマリ・ブロックIaのパーフォ
ーマンス中のメイン・ストアおよびキャッシュ・ストア
のステートを示す。
変数の特別なデイタレアされた値を例示してある。
第2図は、リカバリー・ブロック■のエントリ前のシチ
ュエーションを示す。
ュエーションを示す。
変数Nが、デイクレアされて、値1が割当てられる。
この変数Nをデイクレアする操作によってメインストア
10の庭にアドレスが割付けられる。
10の庭にアドレスが割付けられる。
この時に、キャッシュ・ストア12が空になる。
第3図は、プライマリー・ブロックIaを実行中のシチ
ュエーションを示す。
ュエーションを示す。
すべてのスタックマーク14および16のうちの最初の
ものがそれぞれマイン・ストア10およびキャッシュス
トア12に置かれる。
ものがそれぞれマイン・ストア10およびキャッシュス
トア12に置かれる。
これらのスタック・マークは、リカバリー・ブロックの
関始を表示する。
関始を表示する。
プライマリー・ブロックIaのプログラムをランさせて
いる時は、変誠Mをディクレアし、値2を指定すると仮
定する。
いる時は、変誠Mをディクレアし、値2を指定すると仮
定する。
この割当された値2は、スタックマーク14以上の変数
Mのアドレスのメインストアに入れられる。
Mのアドレスのメインストアに入れられる。
ブロックIaのプログラムをランしている間は、変数N
に新しい値3が割当てられる。
に新しい値3が割当てられる。
メインストア10内の変数Nのアドレスおよび元の値が
、スタックマーク16以上のキャッシュストア12内に
インサートされメインストア10内のNのアドレスにあ
るプール・フラッグがセット(星印で示す)される。
、スタックマーク16以上のキャッシュストア12内に
インサートされメインストア10内のNのアドレスにあ
るプール・フラッグがセット(星印で示す)される。
スタックマーク14および16は、リカバリーブロック
と関連するメインストアおよびキャツツユリージョンの
開始をそれぞれ示す。
と関連するメインストアおよびキャツツユリージョンの
開始をそれぞれ示す。
最上部のスタック・マークより上にあるメイン・ストア
10またはキャッシュ・ストア12のいずれかのエント
リーは、その時実施しているブロック中で作威されるは
ずである。
10またはキャッシュ・ストア12のいずれかのエント
リーは、その時実施しているブロック中で作威されるは
ずである。
プライマリ・フロックIa中のプログラム実施中のステ
ージでは、リカバリー・ブロック■がインタされる。
ージでは、リカバリー・ブロック■がインタされる。
第4図は、プライマリ・ブロックIla中のシチュエイ
ションを示す。
ションを示す。
リカバリー・ブロックHの開始時には、メインストア1
0およびキャッシュストア12にそれぞれスタック・マ
ーク18および20がセットされ、キャッシュ・ストア
12内に記憶されている変数Nは上部のスタックマーク
より上で値がなくなるので、メイン・ストア内の変数N
に対するプールフラッグがクリアされる。
0およびキャッシュストア12にそれぞれスタック・マ
ーク18および20がセットされ、キャッシュ・ストア
12内に記憶されている変数Nは上部のスタックマーク
より上で値がなくなるので、メイン・ストア内の変数N
に対するプールフラッグがクリアされる。
プライマリー・ブロックIlaでは、変数Jがデイクレ
アされ、値3が割当てられる。
アされ、値3が割当てられる。
この割当て値は、スタック・マーク18より上のメイン
・ストア10内に入れられる。
・ストア10内に入れられる。
次に第5図を説明すると、プライマリー・ブロックIl
a中には、変数Mに値4が害1当てられる。
a中には、変数Mに値4が害1当てられる。
実施中のブロックの開始前に変数Mがデイクレアされて
いるので、メインストア10内の変数の位置は、リカバ
リー・ブロック■の開始をマークするスタック・マーク
18より下になる。
いるので、メインストア10内の変数の位置は、リカバ
リー・ブロック■の開始をマークするスタック・マーク
18より下になる。
変数Mのアドレスおよび元の値の双方が、スタック・マ
ーク20より上方にあるキャッシュ・ストア12内に入
れられ、変数Mのローカル値4がメイン・ストア10に
入れられ、メイン・ストア10内のアドレスMのプール
・フラッグ(星印で示す)がセットされる。
ーク20より上方にあるキャッシュ・ストア12内に入
れられ、変数Mのローカル値4がメイン・ストア10に
入れられ、メイン・ストア10内のアドレスMのプール
・フラッグ(星印で示す)がセットされる。
第6図を説明する。
プライマリー・ブロック11aのプログラムを実施して
いる間、変数Nに値M+1が割当てられる。
いる間、変数Nに値M+1が割当てられる。
変数Nのアドレスおよび直後の値がキャッシュ・ストア
12の最上部へ入れられ、変数Nのローカル値がメイン
・ストア10に入れられ、これに対応するプール・フラ
ッグがセットされる。
12の最上部へ入れられ、変数Nのローカル値がメイン
・ストア10に入れられ、これに対応するプール・フラ
ッグがセットされる。
次に第7図を説明する。
プライマリ・ブロック11aのプログラムを実施中には
、変数Mに第2のローカル値6が割当てられる。
、変数Mに第2のローカル値6が割当てられる。
メイン・ストア10内の変数Mのアドレスに対応するプ
ール・フラッグが予め存在しているので、上記の操作が
このブロックで最初の割当てではないということが表示
される。
ール・フラッグが予め存在しているので、上記の操作が
このブロックで最初の割当てではないということが表示
される。
従って変数Mの新しい値が、メイン・ストア10に入れ
られるが、直前の値はキャッシュ・ストアには入れられ
ない。
られるが、直前の値はキャッシュ・ストアには入れられ
ない。
(もつと以前の値はすでに入れられている。
)このようなエントリーは、アドレス17にプール・フ
ラツクが存在していることによって禁止されるが、この
プール・フラツクは、当然セットきれたままである。
ラツクが存在していることによって禁止されるが、この
プール・フラツクは、当然セットきれたままである。
第8図は、リカバリー・ブロック■のアクセフタンス・
テストIItがブライマリー・ブロックlaの終わりに
行なわれて、テストが条件に合致していることを表示し
ている状態を示す。
テストIItがブライマリー・ブロックlaの終わりに
行なわれて、テストが条件に合致していることを表示し
ている状態を示す。
メイン・ストア10のスタックは、リカバリー・ブロッ
クHの開始をマークする最上部のスタックマーク18で
分割されているので、ローカル変数Jがデイスカードさ
れる。
クHの開始をマークする最上部のスタックマーク18で
分割されているので、ローカル変数Jがデイスカードさ
れる。
フラッグがすべてクリアされると、キャッシュ・ストア
12のスタック・マーク16と20との間でエントリー
を有する変数に対してフラッグがセットされる。
12のスタック・マーク16と20との間でエントリー
を有する変数に対してフラッグがセットされる。
これらのキャッシュストアのエントリーは、リカバリー
・ブロック■の開始前にリカバリー・ブロックlで作威
されている。
・ブロック■の開始前にリカバリー・ブロックlで作威
されている。
これによって現在実行中のりカバIJ一ブロック■が入
れられた時既にキャッシュされている変数のレコードが
再記憶される。
れられた時既にキャッシュされている変数のレコードが
再記憶される。
次にスタック・マーク16より上にあるキャッシュ・ス
トア12内のすべてのエントリーが処理される。
トア12内のすべてのエントリーが処理される。
エンクローズ・リカバリー・ブロックIの変数(例えば
エントリーM,2)の変数すなわちスタック・マーク1
4より上のアドレスに対してローカルであることを示す
アドレスは、デイスカードされる。
エントリーM,2)の変数すなわちスタック・マーク1
4より上のアドレスに対してローカルであることを示す
アドレスは、デイスカードされる。
キャッシュ・ストア12のトップ・バット・ワン領域に
既に存在しているエントリーの変数に対応するアドレス
は、その変数がエンクローズ・リカバリー・ブロックI
(例えばエントリーN,3)に既にキャツショされてい
るのでデイスカードされる。
既に存在しているエントリーの変数に対応するアドレス
は、その変数がエンクローズ・リカバリー・ブロックI
(例えばエントリーN,3)に既にキャツショされてい
るのでデイスカードされる。
更にスタック・マーク20より上にエントリーが存在し
ておれば、これらのエントリーは、キャッシュ・ストア
12のトップ・バット・ワン領域内へ下げられて、以前
スタック・マーク20が占めていた部分から始まる連続
的なワードとなるはずである。
ておれば、これらのエントリーは、キャッシュ・ストア
12のトップ・バット・ワン領域内へ下げられて、以前
スタック・マーク20が占めていた部分から始まる連続
的なワードとなるはずである。
ディーカードされないエントリー例えばエントリーN,
1に対しては、実際のアドレスによって指定される変数
に対応するプール・フラッグがセットされ、これらの変
数がエンクローズ・リカバリー・ブロックIにキャッシ
ュされたことが記録される。
1に対しては、実際のアドレスによって指定される変数
に対応するプール・フラッグがセットされ、これらの変
数がエンクローズ・リカバリー・ブロックIにキャッシ
ュされたことが記録される。
現在実行中のりカバリー・ブロ゛ンク川からエンクロー
ズ・リカバリー・ブロ゛ンクIまでのリターンがなされ
ると、キャッシュ・ストア12のトップ・バット・ワン
領域(スタック・マーク16より上)がトップ領域にな
る。
ズ・リカバリー・ブロ゛ンクIまでのリターンがなされ
ると、キャッシュ・ストア12のトップ・バット・ワン
領域(スタック・マーク16より上)がトップ領域にな
る。
アクセプタンス・テスト1tがパスすると、プライマリ
・ブロックIaからプログラムが出て、アクセプタンス
・テスitを行なうと、例えばこのテストが不満足でな
いとする。
・ブロックIaからプログラムが出て、アクセプタンス
・テスitを行なうと、例えばこのテストが不満足でな
いとする。
この機構は、ブロックIaが実行されていないにもかか
わらず、変数の値を再記憶しなければならない。
わらず、変数の値を再記憶しなければならない。
変数Mは、ブロックIaに対してローカルであるので、
デイスカードされる。
デイスカードされる。
変数NがブロックIs内で変更され、前の値がキャッシ
ュ・ストアに記録される。
ュ・ストアに記録される。
この前の値1が再記憶され、変数Nに対するフラッグが
グリアされる。
グリアされる。
スタック・マーク14および16は、メイン・ストア1
0およびキャッシュ・ストア12からそれぞれ除去され
、次に第9図に示したストア10および12のステート
は、ちょうど第2図に示したようにブロックIaが入れ
られないようになる。
0およびキャッシュ・ストア12からそれぞれ除去され
、次に第9図に示したストア10および12のステート
は、ちょうど第2図に示したようにブロックIaが入れ
られないようになる。
アクセプタンス・テストitがパスしないと、プログラ
ムは、オルタネイト・ブロックIbへ移る。
ムは、オルタネイト・ブロックIbへ移る。
このシチュエーションは、第10図に示してある。
スタック・マーク14および16は、メイン・ストア1
0およびキャッシュ・ストア12の双方へインサートさ
れる。
0およびキャッシュ・ストア12の双方へインサートさ
れる。
変数Lがデイクレアされ、値7が割当てられ、メイン・
ストア10にインサートされる。
ストア10にインサートされる。
次にプライマリ・ブロックIaで述べたような態様でオ
プレーションが続行される。
プレーションが続行される。
第11図は、上記システムを満足させるいわゆるキャッ
シュ機構を示す。
シュ機構を示す。
この機構は、中央プロセッサ30のような情報処理装置
と組合わせて使用するようになっており、1ワード輻の
メイン・ストア32と、1ビット幅でメイン・ストアの
ワード同じ数のビットを含むビット・ストアと、メイン
・ストアのアドレスおよび各キャッチ・ストアのワード
内のメイン・ストア・データ・ワードを十分収容できる
ぐらいの幅のキャッシュ・ストア36とを有している。
と組合わせて使用するようになっており、1ワード輻の
メイン・ストア32と、1ビット幅でメイン・ストアの
ワード同じ数のビットを含むビット・ストアと、メイン
・ストアのアドレスおよび各キャッチ・ストアのワード
内のメイン・ストア・データ・ワードを十分収容できる
ぐらいの幅のキャッシュ・ストア36とを有している。
キャッシュ・ストア36は、第2図から第10図のキャ
ッシュ・ストア12と対応しており、メイン・ストア3
2とビット・ストア84は、第2図から第10図のメイ
ン・ストア10に対応している。
ッシュ・ストア12と対応しており、メイン・ストア3
2とビット・ストア84は、第2図から第10図のメイ
ン・ストア10に対応している。
ストア32,34および36の各々は、3本の制御ライ
ン、すなわちREADオペレーションをイニシエイ卜す
るREADラインと,WRITEオペレーションをイニ
シエイ卜するWRITEラインと、前のREADオヘレ
ーションまたはWRITEオペレーションをストアが完
了させたことを表示するREADYラインとを有してい
る。
ン、すなわちREADオペレーションをイニシエイ卜す
るREADラインと,WRITEオペレーションをイニ
シエイ卜するWRITEラインと、前のREADオヘレ
ーションまたはWRITEオペレーションをストアが完
了させたことを表示するREADYラインとを有してい
る。
それぞれ1ワード輻のテータパスを計8本含むデータハ
イウエイ38によって中央プロセッサ80と各種のスト
ア32,34および36の間でデータが転送される。
イウエイ38によって中央プロセッサ80と各種のスト
ア32,34および36の間でデータが転送される。
各データパスニハ、個々ノ信号P,Q,E,S,F,U
,VおよびGがのっており、これらの信号は、6つのレ
ジスタR,E,A,H,CおよびDとレジスタ・ブロッ
クGで使用できるようになっている。
,VおよびGがのっており、これらの信号は、6つのレ
ジスタR,E,A,H,CおよびDとレジスタ・ブロッ
クGで使用できるようになっている。
第12図を説明すると、各々のレジスタR,E,A,H
,CおよびDは、1ワード輻のデュアル・ランク(dタ
イプ)のレジスタ40から成っている。
,CおよびDは、1ワード輻のデュアル・ランク(dタ
イプ)のレジスタ40から成っている。
このレジスタ40の入力端子は、8つの入力マルチプレ
クサ42の出力端子に接続してあり、1ワード幅の各入
力端子は、ハイワイ38(第11図)の各々のパスに接
続してある。
クサ42の出力端子に接続してあり、1ワード幅の各入
力端子は、ハイワイ38(第11図)の各々のパスに接
続してある。
マルチプレクサ42のオペレーションは、本装置中の制
御ロジックから送られるパス44上の信号で制御される
。
御ロジックから送られるパス44上の信号で制御される
。
このパス44は、ANDゲート46によってクロツク4
7から送られてくる信号と結合した制御波を発生させ;
レジスタ40に対してストローブ波を発生する。
7から送られてくる信号と結合した制御波を発生させ;
レジスタ40に対してストローブ波を発生する。
このストローブ波の前縁部によってレジスタ40がマル
チプレクサ42からの入力信号を読み取り、ストローブ
波の後緑部によってレジスタ40は、出力端子にこの新
しいステートを発生させる。
チプレクサ42からの入力信号を読み取り、ストローブ
波の後緑部によってレジスタ40は、出力端子にこの新
しいステートを発生させる。
再度第11図を説明すると、レジスタ・ブロックGは、
マルチプレクサ42と同じようなデータハイウエイ38
からのマルチプレクサ入力端子を有しており、これに加
えて5つの内部レミスタCM,CN,CO,CPおよび
CQからなり、信号SELECT CM, SELEC
T CN, SELECTCO,SELECT CPお
よびSELECT CQを印加するSELECT入力端
子を有している。
マルチプレクサ42と同じようなデータハイウエイ38
からのマルチプレクサ入力端子を有しており、これに加
えて5つの内部レミスタCM,CN,CO,CPおよび
CQからなり、信号SELECT CM, SELEC
T CN, SELECTCO,SELECT CPお
よびSELECT CQを印加するSELECT入力端
子を有している。
セレクトサレたレジスタは、レジスタ・ブロックG内に
データがリードされている時セットされ、データがリー
ドアウトされると、レジスタ・ブロックGの出力端子に
内容を表わす。
データがリードされている時セットされ、データがリー
ドアウトされると、レジスタ・ブロックGの出力端子に
内容を表わす。
レジスタCMは、キャッシュ・ストア36内の最高部の
スタック・マークのアドレスを記憶スるのに使用され、
このスタック・マークは、この下の次のスタック・マー
クのアドレスを含んでいる。
スタック・マークのアドレスを記憶スるのに使用され、
このスタック・マークは、この下の次のスタック・マー
クのアドレスを含んでいる。
最下部のスタック・マークは、アイデンテイファイされ
るようなアドレスを含んでいる。
るようなアドレスを含んでいる。
レジスタCPは、現在使用中の最上位のワードのすぐ上
にあるキャッシュ・レジスタ36内の空ワードのアドレ
スすなわちキャッシュ・ストア36内の次の使用可能な
アドレスを含んでいる。
にあるキャッシュ・レジスタ36内の空ワードのアドレ
スすなわちキャッシュ・ストア36内の次の使用可能な
アドレスを含んでいる。
レジスタCNは、レジスタCPに記憶されている先の値
のコピーすなわちキャッシュ・ストア36内で最後に使
用されたアドレスを含んでいるが、このレジスタは、次
のEXITオペレーションに使用される。
のコピーすなわちキャッシュ・ストア36内で最後に使
用されたアドレスを含んでいるが、このレジスタは、次
のEXITオペレーションに使用される。
レジスタCOは、キャッシュ36のトップ領域内のワー
ドのアドレスを含んでいるが、このレジスタは、キャッ
シュのトップ領域をスキャンする第3ステージのイグジ
ット・オペレーションに使用されるが、この操作につい
ては次に説明する。
ドのアドレスを含んでいるが、このレジスタは、キャッ
シュのトップ領域をスキャンする第3ステージのイグジ
ット・オペレーションに使用されるが、この操作につい
ては次に説明する。
レジスタCQは、使用可能なキャッシュ・レジスタの最
上位のワードのアドレスを含む。
上位のワードのアドレスを含む。
レジスタRは、中央プロセッサ30ヘリターンさせるデ
ータワードを保持しており、レジスタEは、メインスト
ア32内の最高部のスタック・マークのアドレスを保持
する。
ータワードを保持しており、レジスタEは、メインスト
ア32内の最高部のスタック・マークのアドレスを保持
する。
最高部のスタック・マークは、次のスタック・マーク等
のアドレスを保持し、最下部のスタック・マークは、ア
イデンテイファイされるアドレスを含む。
のアドレスを保持し、最下部のスタック・マークは、ア
イデンテイファイされるアドレスを含む。
Aレジスタは、現在のメイン・ストアのアドレスを保持
し、このレジスタは、メイン・ストアだけでなくビット
・ストアにアドレス指定し、その内容をキャッシュ・ス
トアの一方へ書き込む。
し、このレジスタは、メイン・ストアだけでなくビット
・ストアにアドレス指定し、その内容をキャッシュ・ス
トアの一方へ書き込む。
レジスタEおよびAの出力端子は、コンパレータ48に
接続してありこのコンパレータはレジスタAの出力がレ
ジスタEの出力よりも大きい時、出力信’QYを発生す
る。
接続してありこのコンパレータはレジスタAの出力がレ
ジスタEの出力よりも大きい時、出力信’QYを発生す
る。
従って信号Yは、レジスタAのアドレスが最高部のスタ
ック・マークよりも高く、従ってレジスタA内のアドレ
スによってアドレス指定された変数が現在実施中のりカ
バリー・ブロックにローカルであることを表示する。
ック・マークよりも高く、従ってレジスタA内のアドレ
スによってアドレス指定された変数が現在実施中のりカ
バリー・ブロックにローカルであることを表示する。
レジスタHは、メイン・ストア32内へ書き込むデータ
を保持している。
を保持している。
レジスタCは、キャッシュ・ストアに使用するアドレス
を保持する。
を保持する。
まれこのレジスタの出力端子は、制御インプットFUN
を有するインクリメント/デイクリメントユニット50
の入力端子に接続してあり、この制御インプットFUN
は、4つの制御信号のうちのひとつを受けて第1表に示
すような入力信号Cと関連する出力信号を発生させる。
を有するインクリメント/デイクリメントユニット50
の入力端子に接続してあり、この制御インプットFUN
は、4つの制御信号のうちのひとつを受けて第1表に示
すような入力信号Cと関連する出力信号を発生させる。
レジスタDは、キャッシュ・ストア36内に書き込むデ
ータの一部を保持し、このデータの残りのデータはレジ
スタAに入っている。
ータの一部を保持し、このデータの残りのデータはレジ
スタAに入っている。
レジスタCおよびDの出力端子は、この2つのレジスタ
内の値が等しい時に、出力信号Zを発生するクオリティ
ーユニット52に接続してある。
内の値が等しい時に、出力信号Zを発生するクオリティ
ーユニット52に接続してある。
レジスタRには、中央プロセッサ30とのインタフェー
スが設けてあるが、このインタフェースは、2つのデー
タパスPおよびQとから成る。
スが設けてあるが、このインタフェースは、2つのデー
タパスPおよびQとから成る。
Pデータ・パスは、中央プロセッサがアクセスさせたい
メイン・ストアのアドレスを載せ、Qデータパスは、中
央プロセッサ30が記憶させるか装置のレジスタ内に入
れるデータを載せる。
メイン・ストアのアドレスを載せ、Qデータパスは、中
央プロセッサ30が記憶させるか装置のレジスタ内に入
れるデータを載せる。
レジスタRの出力端子の構威するRデータ・パスは、中
央プロセッサ30へ送るデータを載せる。
央プロセッサ30へ送るデータを載せる。
本装置の制御ロジックについては、後で詳記する。
しかしながら装置の制御ロジックと中央プロセッサ30
との間をパスする制御信号については、ここで述べてお
く。
との間をパスする制御信号については、ここで述べてお
く。
この装置は、中央プロセッサ30へ送ることのできる2
つの制御信号を有する。
つの制御信号を有する。
信号READYは、プロセッサ30のリクエストしたオ
ペレーションをディバイスが完了させたことを表示し、
信号ERRORは、エラー状態を表示する。
ペレーションをディバイスが完了させたことを表示し、
信号ERRORは、エラー状態を表示する。
中央プロセッサ30は、従来の設計であって、インスト
ラクションを実行中に従来の記憶手段をREAD(読み
取り)およびWRITE(書き込み)操作させる制御信
号を発生させる。
ラクションを実行中に従来の記憶手段をREAD(読み
取り)およびWRITE(書き込み)操作させる制御信
号を発生させる。
またこのプロセッサは、第11図に示した装置にプログ
ラム中のりカバリー・ブロックおよびアクセプタンステ
ストの使用と関連する附加操作を行わせる制御信号を発
生させるような手段が設けてある。
ラム中のりカバリー・ブロックおよびアクセプタンステ
ストの使用と関連する附加操作を行わせる制御信号を発
生させるような手段が設けてある。
したがってこの装置は、中央プロセッサからの13の制
御信号のうちのひとつの信号を受信して、次のアクショ
ンを実行させる。
御信号のうちのひとつの信号を受信して、次のアクショ
ンを実行させる。
すなわちREAD(読取り)アクション「所定の正しい
アドレスによってメイン・ストアから読み取るワードの
値を引出すこと」; WRITE(書き込み)アクション「変数に新しい値を
記録すること」; リカバリー・ブロックに対するエントリ一時のENTR
Yアクション; アクセプタンス・テストがブロックをリジエクトされた
際に必要なREVERSE(反転)オペレーション; アクセプタンス・テストにパスして終了した時のEXI
T(イグジット)アクション; 中央プロセッサが新しいプログラムをランニングさせる
ステートに新プログラムをリセットさせるRESET(
リセット)アクションおよびマルチプログラミング用に
中央プロセッサ内のオペレート・システムを各種のレジ
スタE,CM,CPおよびCQにゲイン・アクセスさせ
る際実施させる7つのオペレーション 第11図に示すキャッシュ・メカニズムの制御ロジック
は、第■表に基づくステート・マシンの説明の際説明す
る。
アドレスによってメイン・ストアから読み取るワードの
値を引出すこと」; WRITE(書き込み)アクション「変数に新しい値を
記録すること」; リカバリー・ブロックに対するエントリ一時のENTR
Yアクション; アクセプタンス・テストがブロックをリジエクトされた
際に必要なREVERSE(反転)オペレーション; アクセプタンス・テストにパスして終了した時のEXI
T(イグジット)アクション; 中央プロセッサが新しいプログラムをランニングさせる
ステートに新プログラムをリセットさせるRESET(
リセット)アクションおよびマルチプログラミング用に
中央プロセッサ内のオペレート・システムを各種のレジ
スタE,CM,CPおよびCQにゲイン・アクセスさせ
る際実施させる7つのオペレーション 第11図に示すキャッシュ・メカニズムの制御ロジック
は、第■表に基づくステート・マシンの説明の際説明す
る。
このステート・マシンの表では、制御ロジックの進入で
きる各ステートが示してあり、これらのステートは、表
中の左コラムにナンバーがつけてある。
きる各ステートが示してあり、これらのステートは、表
中の左コラムにナンバーがつけてある。
表の中央コラム部には、制御ロジックが各ステートにあ
る時に発生する制御信号が示してある。
る時に発生する制御信号が示してある。
各レジスタへのゲート操作を制御する信号はP→Aのよ
うに示す。
うに示す。
このことは、レジスタAへのデータをデーテイングし、
かつ対応するマルチプレクサがP入力端子をセレクトす
るよう信号を発生させることを示している。
かつ対応するマルチプレクサがP入力端子をセレクトす
るよう信号を発生させることを示している。
制御ロジックを仮定する次のステートは、表出の右コラ
ムに示してある。
ムに示してある。
このコラムに1つの数字しか示してない場合は、この数
字は、すべての状態で仮定される次のステートを示す。
字は、すべての状態で仮定される次のステートを示す。
制御ロジックをセンス可能な信号が存在しているかいな
いかに応じてそれぞれのステート内へ進入させなければ
ならない場合、このことが次のような例で示すように表
示される。
いかに応じてそれぞれのステート内へ進入させなければ
ならない場合、このことが次のような例で示すように表
示される。
2→3、 2→2
これは、信号2がトウルーであれば、次のステートをス
テート3にし、信号Zがフォールスであれば、次のステ
ートをステート3にすることを表わす。
テート3にし、信号Zがフォールスであれば、次のステ
ートをステート3にすることを表わす。
制御ロジックは、クロツク47(第12図)の定めル定
インターバルで1つのステートから次のステートに移動
し、スイッチがオンになると、制御ロジックは、ステー
トlを表わすようになっている。
インターバルで1つのステートから次のステートに移動
し、スイッチがオンになると、制御ロジックは、ステー
トlを表わすようになっている。
ステート1は、中央プロセッサからの13種の制御信号
を検出して、所定のアクションをインシエイトする。
を検出して、所定のアクションをインシエイトする。
ステート2は、エラー・ステートであって中央プロセッ
サ30をリセットする。
サ30をリセットする。
ステート11およぴ12は、読取リアクションを実行す
る。
る。
中央プロセッサ30からのアドレスは、ステップ11中
にレジスタA内へゲートインされ、メインストア32が
読出されてその出力が、ステート12の間にレジスタR
ヘゲートインされる。
にレジスタA内へゲートインされ、メインストア32が
読出されてその出力が、ステート12の間にレジスタR
ヘゲートインされる。
メイン・ストア32に直ちにレスポンスしないと、制御
ロジックは、レスポンスが得られるまで、ステート12
に留まる。
ロジックは、レスポンスが得られるまで、ステート12
に留まる。
スアート3は、READYレスポンスヲ中央プロセッサ
30へ送ってステート1ヘリターンさせる多くのアクシ
ョンに使用される。
30へ送ってステート1ヘリターンさせる多くのアクシ
ョンに使用される。
ステート13〜20は、書込みアクションを実行する。
ステート13および14は、書込むワードのビット・フ
ラッグを読出し、このワードをキャッシュ・ストア36
に保持しなければならないような時その内容をレジスタ
bへ入れる。
ラッグを読出し、このワードをキャッシュ・ストア36
に保持しなければならないような時その内容をレジスタ
bへ入れる。
ステート15は、一アドレス指定されたワードがローカ
ル(次のステート16)であるのか、既にキャッシュ(
次のステート11)されているのが、このリカバリー・
ブロックで最初に割当て(次のステート18)られてい
るのかを判断する。
ル(次のステート16)であるのか、既にキャッシュ(
次のステート11)されているのが、このリカバリー・
ブロックで最初に割当て(次のステート18)られてい
るのかを判断する。
ステート18は、ウードの前の値と、キャッシュ・スト
ア36のアドレスを記録し、キャッシュ・ストア・ポイ
ンタの値をインクリメントし、この値をレジスタ・ブロ
ックG内の内部レジスタCPにリターンさせる。
ア36のアドレスを記録し、キャッシュ・ストア・ポイ
ンタの値をインクリメントし、この値をレジスタ・ブロ
ックG内の内部レジスタCPにリターンさせる。
ステート19および20は、キャッシュ・ストアの最後
のワードの使用をテストし、エラーが存在している場合
に、エラー条件を発生させることができる。
のワードの使用をテストし、エラーが存在している場合
に、エラー条件を発生させることができる。
ステート21〜24は、レジスタ・ブロックGの内部レ
ジスタ内に値を入れる。
ジスタ内に値を入れる。
ステップ31〜31は、中央プロセッサ30とのデータ
のやり取りに関係する。
のやり取りに関係する。
ステップ41は、リカバリー・ブロック・エントリ・オ
ペレーションを実行する。
ペレーションを実行する。
ステート41から42は、レジスタCおよびD内のキャ
ッシュのトップ領域の限界をセットする。
ッシュのトップ領域の限界をセットする。
ステート43から46は、レジスタC内でカウントアッ
プするループであって、キャッシュのトップ領域をスキ
ャンして、各キャッシュ・エントリーのアドレス部分を
読出し、各対応するメイン・ストア・ワードのビット・
フラッグをリセットする。
プするループであって、キャッシュのトップ領域をスキ
ャンして、各キャッシュ・エントリーのアドレス部分を
読出し、各対応するメイン・ストア・ワードのビット・
フラッグをリセットする。
キャッシュのトップ領域に一つビット・セットのエント
リーがあれば、ワードはピットセットを有すだけなので
、このことによってビット・ストア34内にすべてのビ
ット・フラッグがリセットされる。
リーがあれば、ワードはピットセットを有すだけなので
、このことによってビット・ストア34内にすべてのビ
ット・フラッグがリセットされる。
ステート41および49は、内部レジスタCMのその時
点の内容をキャッシュ・ストア36内に書込み、スタッ
ク・マークを形威しかつトップ・キャッシュ・マーク(
レジスタCM内に入れられている)とトップのスタック
(レジスタCP内に入れられている)のアドレスに対し
新しい値を発生する。
点の内容をキャッシュ・ストア36内に書込み、スタッ
ク・マークを形威しかつトップ・キャッシュ・マーク(
レジスタCM内に入れられている)とトップのスタック
(レジスタCP内に入れられている)のアドレスに対し
新しい値を発生する。
ステート51〜57は、リカバリー・ブロック・エント
リーにリバースオペレーションを行なわせ、アクセプタ
ンス・テストのフエイルアー後にリカバリー・ブロック
でモデイファイされている変数の値を再記憶するのに使
用される。
リーにリバースオペレーションを行なわせ、アクセプタ
ンス・テストのフエイルアー後にリカバリー・ブロック
でモデイファイされている変数の値を再記憶するのに使
用される。
これらのステートは、ほぼステート41〜46のループ
と同じループを形威しているが、キャッシュ・ストア3
6のトップ領域内に記録されたキャッシュ値が再びメイ
ン・ストア内に書込まれ、エラーを生じたブロックの効
果を消去することが異なっている。
と同じループを形威しているが、キャッシュ・ストア3
6のトップ領域内に記録されたキャッシュ値が再びメイ
ン・ストア内に書込まれ、エラーを生じたブロックの効
果を消去することが異なっている。
ステート57は、キャッシュ・スタック(レジスタCP
に記憶されている)のトップに対するポインタを調節す
る。
に記憶されている)のトップに対するポインタを調節す
る。
ステート61〜82は、アクセプタンス・テストがパス
して完了した後にイグジット・オペレーションを実行す
る。
して完了した後にイグジット・オペレーションを実行す
る。
ステート61〜64は、次の使用のためにレジスタCP
およびCM内のその時点でのエントリーのレジスタCM
およびCOのコピー内にプリザーブされる。
およびCM内のその時点でのエントリーのレジスタCM
およびCOのコピー内にプリザーブされる。
ステート61から64は、レジスタCP内にレジスタC
Mの内容をセットし、トップ領域が除去された時、何を
スタックのトップにするかを表示する。
Mの内容をセットし、トップ領域が除去された時、何を
スタックのトップにするかを表示する。
その他のステートは、3つのループから戒っている。
ステート65から68は、トップ・キツシュ領域をトッ
プから下方ヘスキャンし、キャッシュ・ストア36のト
ップ領域内にキャッシュされているすべてのワードのフ
ラッグ・ビットすなわちビット・ストア34内にセット
されているすべてのフラッグ・ビットをアンセットする
。
プから下方ヘスキャンし、キャッシュ・ストア36のト
ップ領域内にキャッシュされているすべてのワードのフ
ラッグ・ビットすなわちビット・ストア34内にセット
されているすべてのフラッグ・ビットをアンセットする
。
ステート69は、キャッシュ・ストア36の上位2つの
領域の間のキャッシュ・スタック・マークを読出し、こ
れをレジスタCMおよびレジスタD内に次のキャッシュ
・マーカとして記録し、キャッシュの第2領域の最下部
を表示する。
領域の間のキャッシュ・スタック・マークを読出し、こ
れをレジスタCMおよびレジスタD内に次のキャッシュ
・マーカとして記録し、キャッシュの第2領域の最下部
を表示する。
ステート70〜73は、キャッシュの第2領域を下方ヘ
スキャンし続け、ビット・ストア34内の第2領域にキ
ャッシュされているワードのフラッグ・ビット(すなわ
ち前のエントリー・オペレーションで除去されているフ
ラツク;ビット)をセットする。
スキャンし続け、ビット・ストア34内の第2領域にキ
ャッシュされているワードのフラッグ・ビット(すなわ
ち前のエントリー・オペレーションで除去されているフ
ラツク;ビット)をセットする。
ステート74〜79は、キャッシュのトップ領域を上方
ヘスキャンして戻り、このトップ領域に記憶されている
アイテムがローカル(信号Yによって示される)なのか
、既に第2領域に与えられているのか(信号Xによって
示される)、トップ・キャッシュ領域から第2キャッシ
ュ領域内ヘコビーしなければならないのかを判断する。
ヘスキャンして戻り、このトップ領域に記憶されている
アイテムがローカル(信号Yによって示される)なのか
、既に第2領域に与えられているのか(信号Xによって
示される)、トップ・キャッシュ領域から第2キャッシ
ュ領域内ヘコビーしなければならないのかを判断する。
レジスタCOは、トップ領域で検査すべき次のエントリ
ーのアドレスより1つ小さなポインタを保持し、レジス
タCNは、トップ領域内のトップ・エントリーのアドレ
スより1つ大きいポインタを保持する。
ーのアドレスより1つ小さなポインタを保持し、レジス
タCNは、トップ領域内のトップ・エントリーのアドレ
スより1つ大きいポインタを保持する。
ステップ79でのテストで、キャッシュ・エントリーが
ローカルでないか、または既にこのレベルにキャッシュ
されていない場合、ステップ80〜82で、次にインク
リメントされるキャッシュ・スタック・トップ(レジス
タCP)によって与えられるアドレスのキャッシュ・ス
トア36にキャッシュ・エントリーをリライトする。
ローカルでないか、または既にこのレベルにキャッシュ
されていない場合、ステップ80〜82で、次にインク
リメントされるキャッシュ・スタック・トップ(レジス
タCP)によって与えられるアドレスのキャッシュ・ス
トア36にキャッシュ・エントリーをリライトする。
キャッシュされたワードのフランク・ビットもセットさ
れる。
れる。
このステートマシンは,1962年マツクグローヒル社
発行のティー・シー・パーティ( T. C.Bart
ee)氏その他著「デイタルマシンの理論と設計( T
heary and Design of Digi
tal Machine)Jなる専問書に記載されてい
るような等価ロジックハードウエアにすることができる
。
発行のティー・シー・パーティ( T. C.Bart
ee)氏その他著「デイタルマシンの理論と設計( T
heary and Design of Digi
tal Machine)Jなる専問書に記載されてい
るような等価ロジックハードウエアにすることができる
。
これとは別にこのステート・マシン制御は、1970年
プレンテイス・ボール社発行のエス・エスハツソン(S
.S. Husson )氏著「マイクロプログラミン
グとその原理と応用( Microprogrammi
ngy Principlesand Practic
e)に記載されているようなマイクロプログラムにも変
換できる。
プレンテイス・ボール社発行のエス・エスハツソン(S
.S. Husson )氏著「マイクロプログラミン
グとその原理と応用( Microprogrammi
ngy Principlesand Practic
e)に記載されているようなマイクロプログラムにも変
換できる。
本発明に係る別の実施例では、その時点の「リカバリー
・レベル」すなわちリカバリー・プロツクのダイナミッ
ク・ネスト化の深さ、言い換えると、その時点で使用さ
れているキャシュ(スタック・マーカーによって分離さ
れている)領域の数を表示する数を記憶するような附加
レジスタが設けられる。
・レベル」すなわちリカバリー・プロツクのダイナミッ
ク・ネスト化の深さ、言い換えると、その時点で使用さ
れているキャシュ(スタック・マーカーによって分離さ
れている)領域の数を表示する数を記憶するような附加
レジスタが設けられる。
このレジスタは、リカバリー・ブロック・エントリおよ
びリカバリー・ブロック・イグジットによってそれぞれ
1だけインクリメントまたはデイクリメントする。
びリカバリー・ブロック・イグジットによってそれぞれ
1だけインクリメントまたはデイクリメントする。
第11図に示した本発明に係る実施例のビット・ストア
34は、メイン・ストア32に記憶された各値に対して
リカバリー・レベルを記憶するようなりカバリー・レベ
ル・ストアと置換えてある。
34は、メイン・ストア32に記憶された各値に対して
リカバリー・レベルを記憶するようなりカバリー・レベ
ル・ストアと置換えてある。
キャッシュ・ストア36に変数が入ると、リカバリー・
レベル・ストアの対応するワードに保持されたりカバリ
ー・レベルおよび値の双方は、先に変数がキャシュ内に
入れられた時のヒストリーまたは変数がローカルである
とデイクレアされた時のヒストリーが変数の各々のキャ
シュ化(すなわちキャッシュ・ストア36のその時点の
トップ領域内に変数およびそのアイデンティティを記憶
させること)によって記録されるように記録される。
レベル・ストアの対応するワードに保持されたりカバリ
ー・レベルおよび値の双方は、先に変数がキャシュ内に
入れられた時のヒストリーまたは変数がローカルである
とデイクレアされた時のヒストリーが変数の各々のキャ
シュ化(すなわちキャッシュ・ストア36のその時点の
トップ領域内に変数およびそのアイデンティティを記憶
させること)によって記録されるように記録される。
変数がメイン・ストア32のロケーションにデイクレア
および割付けられると、その時のりカバリー・レベルが
りカバリー・レベル・ストアの対応部分にインサートさ
れる。
および割付けられると、その時のりカバリー・レベルが
りカバリー・レベル・ストアの対応部分にインサートさ
れる。
リカバリー・ブロックへのエントリ一時には、リカバリ
ー・ブロックが1つだけインクリメントされ、新しいマ
ークがキャッシュ上に置かれる。
ー・ブロックが1つだけインクリメントされ、新しいマ
ークがキャッシュ上に置かれる。
この時メインストア内のデータ・スタックには、アクシ
ョンが行なわれない。
ョンが行なわれない。
変数に対して一つの新しい値が割当てられると、メイン
・ストア内の変数のりカバリー・レベルがその時のりカ
バリー・レベルに等しいかどうかインベステイゲイショ
ンが行なわれる。
・ストア内の変数のりカバリー・レベルがその時のりカ
バリー・レベルに等しいかどうかインベステイゲイショ
ンが行なわれる。
等しい場合、メイン・ストアに新しい値が入れられて、
キャッシュ化が行なわれなく、リカバリー・レベル・ス
トアは不変である。
キャッシュ化が行なわれなく、リカバリー・レベル・ス
トアは不変である。
変数のりカバリー・レベルがその時点のりカバリー・レ
ベルを表示しないし、キャッシュに新エントリーが置か
れる。
ベルを表示しないし、キャッシュに新エントリーが置か
れる。
このキャッシュ・エントリーは、リカバリー・レベル・
ストアに記憶された変数の先の値、先のりカバリー・レ
ベルおよびアイデンティティから成る。
ストアに記憶された変数の先の値、先のりカバリー・レ
ベルおよびアイデンティティから成る。
次にこのメイン・ストアに新しい値が入ると、リカバリ
ー・レベル・ストア内のりカバリー・レベルがその時の
リカバリー・レベルと等しくなる。
ー・レベル・ストア内のりカバリー・レベルがその時の
リカバリー・レベルと等しくなる。
キャッシュ内のトップ領域のエントリーは、アクセプタ
ンス・テストのりジエクション時に、1つずつ処理され
、それらの値およびリカバリー・レベル・フィールドは
、アイデンティティの指定するメイン・ストアの記憶ロ
ケーションおよびリカハリー・レベル・ストアにそれぞ
れコピーバックされる。
ンス・テストのりジエクション時に、1つずつ処理され
、それらの値およびリカバリー・レベル・フィールドは
、アイデンティティの指定するメイン・ストアの記憶ロ
ケーションおよびリカハリー・レベル・ストアにそれぞ
れコピーバックされる。
キャッシュは、再びリトラクトされるが、このリカバリ
ー・ブロック用のスタック・マークを含まなく、その時
点のりカバリー・レベルは変わらない。
ー・ブロック用のスタック・マークを含まなく、その時
点のりカバリー・レベルは変わらない。
その時点のりカバリー・レベル・レジスタは、アクセプ
タンス・テストによってアクセプトされた後、1つだけ
インクリメントされる。
タンス・テストによってアクセプトされた後、1つだけ
インクリメントされる。
キャッシュのトップ領域のエンl− IJ−は、1つず
つ処理される。
つ処理される。
キャッシュのトップ領域のエントリー内の真のアドレス
に対応するりカバリー・レベル・ストア・ワード内のり
カバリー・レベルは、その時点のりカバリー・レベルと
等しくなるようセットされる。
に対応するりカバリー・レベル・ストア・ワード内のり
カバリー・レベルは、その時点のりカバリー・レベルと
等しくなるようセットされる。
次にキャッシュ・エントリーのりカバリー・レベルがそ
の時のりカバリー・レベルと等しくなると、エントリー
がディスカードされる。
の時のりカバリー・レベルと等しくなると、エントリー
がディスカードされる。
等しくない場合は、エントリーが下方へ移動されて次の
キャッシュ領域へ入れられる。
キャッシュ領域へ入れられる。
第13図は、リカバリー・レベルを使用した上記の実施
例に係る装置のブロック・ダイヤグラム図であり、第1
1図のブロック・ダイヤグラム図と等価的である。
例に係る装置のブロック・ダイヤグラム図であり、第1
1図のブロック・ダイヤグラム図と等価的である。
第13図に示した装置は、中央グロセット10のような
情報処理装置と組合わせて使用する。
情報処理装置と組合わせて使用する。
この装置は、1ワード幅のメイン・メモリ12と、リカ
バリー・レベル数を保持するのに充分な幅でメイン・ス
トアと同じ数のワードを含むレベル・ストア14と、メ
イン・ストア・ワード、メイン・ストア・アドレスおよ
びレベル数を保持するのに充分広い幅のキャッシュ・ス
トア16とを有している。
バリー・レベル数を保持するのに充分な幅でメイン・ス
トアと同じ数のワードを含むレベル・ストア14と、メ
イン・ストア・ワード、メイン・ストア・アドレスおよ
びレベル数を保持するのに充分広い幅のキャッシュ・ス
トア16とを有している。
ストア72 ,74および16の各々は、3つの制御ラ
インすなわちREAD(読出し)オペレーションをイニ
シエイ卜するREADラインと、WRITE(書込み)
オペレーションをイニシエイ卜するWRITEラインと
、ストアが先のREADまたはWRITEオペレーショ
ンを完了していることを表示するREADYラインを有
している。
インすなわちREAD(読出し)オペレーションをイニ
シエイ卜するREADラインと、WRITE(書込み)
オペレーションをイニシエイ卜するWRITEラインと
、ストアが先のREADまたはWRITEオペレーショ
ンを完了していることを表示するREADYラインを有
している。
中央プロセット70と各ストア72.74および16の
間では、各1ワード幅のテータパスを計10本含むデー
タ・ハイウエイ18によってデータが転送される。
間では、各1ワード幅のテータパスを計10本含むデー
タ・ハイウエイ18によってデータが転送される。
各データパスは、・各々の信号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となっている点が異なってい
る。
,U,V,Wお・よびGを載せこれらの信号を7つのレ
ジスタR,A,H,E,K,C,Dおよびレジスタ・ブ
ロックGの入力端子へ送る レジスタR,A,H,E,K,CおよびDは、第12図
に示したようなタイプのものであるが、マルチプレクサ
の入力が8つでなくて10となっている点が異なってい
る。
キャッシュへニード、すなわち変数は、既に述べたよう
に、その時点で使用中のりカバリー・レベル数と、クエ
スチョン中の変数のりカバリー・レベル数との相対値づ
決定される。
に、その時点で使用中のりカバリー・レベル数と、クエ
スチョン中の変数のりカバリー・レベル数との相対値づ
決定される。
レジスタEは、その時のりカバリー・レベル数を含むの
に使用され、このレジヌタに含まれる値は、本装置がプ
ログラム部分の最初の部分でリセットされ、中央プロセ
ッサ70と無関係にリカバリー・ブロック・エントリー
またはイグジットで自動的に調節された時ゼロにリセッ
トされる。
に使用され、このレジヌタに含まれる値は、本装置がプ
ログラム部分の最初の部分でリセットされ、中央プロセ
ッサ70と無関係にリカバリー・ブロック・エントリー
またはイグジットで自動的に調節された時ゼロにリセッ
トされる。
レジスタKは、メインストア72またはキャッシュ・ス
トア76内の変数をキャッシュ化する決定またはキャッ
シュエントリーの保持がなされた時、この変数のりカバ
リー・レベル数を含むのに使用される。
トア76内の変数をキャッシュ化する決定またはキャッ
シュエントリーの保持がなされた時、この変数のりカバ
リー・レベル数を含むのに使用される。
レジスタEおよびKの出力端子は、第11図のユニット
52と同じイクオリテイー・ユニット80に接続してあ
り、このユニット80は、レジスタEおよびK内に記憶
された値が互に等しい時出力信号Yを発生する。
52と同じイクオリテイー・ユニット80に接続してあ
り、このユニット80は、レジスタEおよびK内に記憶
された値が互に等しい時出力信号Yを発生する。
第11図の装置と同様に、レジスタ・ブロックGは、5
つの内部レジスタCM,CN,CO ,CPおよびCO
を含んでいる。
つの内部レジスタCM,CN,CO ,CPおよびCO
を含んでいる。
これらのレジスタのファンクションは、第11図のレジ
スタ・ブロックのうちの対応するレジスタのファンクシ
ョンと同じであり、これらについては、次の詳細な説明
から明らかとなろう。
スタ・ブロックのうちの対応するレジスタのファンクシ
ョンと同じであり、これらについては、次の詳細な説明
から明らかとなろう。
しかしながらレジスタCOは、リバースオペレーション
中に補助的に使用され、その時点のりカバリー・レベル
数の値を保持するようになっている。
中に補助的に使用され、その時点のりカバリー・レベル
数の値を保持するようになっている。
レジスタR,A,H,CおよびDは、第11図の装置の
うちの対応するレジスタと同じファンクションを行う。
うちの対応するレジスタと同じファンクションを行う。
すなわちレジスタRは、中央プロセッサ10ヘリターン
させるデータ・ワードを作り、レジスタAは、メイン・
ストアのアドレスを保持し、レジスタHは、メイン・ス
トア12へ書き込むデータ・ワードを保持し、レジスタ
Cは、キャッシュ・ストア16に使用するアドレスを保
持し、レジスタDは、キャッシュ・ストア76に書き込
むデータを保持する。
させるデータ・ワードを作り、レジスタAは、メイン・
ストアのアドレスを保持し、レジスタHは、メイン・ス
トア12へ書き込むデータ・ワードを保持し、レジスタ
Cは、キャッシュ・ストア16に使用するアドレスを保
持し、レジスタDは、キャッシュ・ストア76に書き込
むデータを保持する。
レジスタCの出力端子は、第11図の装置のうちのユニ
ット50と同じインクリメント/デイクリメント・ユニ
ット82の入力端子に接続してある。
ット50と同じインクリメント/デイクリメント・ユニ
ット82の入力端子に接続してある。
このユニット82は、4つの制御信号のうちのひとつを
受信する制御人力FUNを有しており、このユニットは
信号を受けると表Iに示した入力信号Cと関連する出力
信号Fを発生する。
受信する制御人力FUNを有しており、このユニットは
信号を受けると表Iに示した入力信号Cと関連する出力
信号Fを発生する。
レジスタDは、キャッシュ・ストア36内の書込むデー
タを保持し、それ以外のデータはレジスタAおよびKに
入れられる。
タを保持し、それ以外のデータはレジスタAおよびKに
入れられる。
レジスタCおよびDの出力端子は、レジスタCとレジス
タDの値が等しくなった時、出力信号Zを発生するイク
オーリテイ・ユニット84に接続してある。
タDの値が等しくなった時、出力信号Zを発生するイク
オーリテイ・ユニット84に接続してある。
レジスタRと中央プロセッサ70との間にはインターフ
ェースが設けてあるがこれは2つのパスPおよびQとか
ら成っている。
ェースが設けてあるがこれは2つのパスPおよびQとか
ら成っている。
Pデータ・パスは、中央プロセッサがアクセスしたイメ
イン・ストア・アドレスを載せ、Qデータ・パスは、中
央プロセッサ10が記憶させたいデータか本装置のレジ
スタ内に入れるデータを載せる。
イン・ストア・アドレスを載せ、Qデータ・パスは、中
央プロセッサ10が記憶させたいデータか本装置のレジ
スタ内に入れるデータを載せる。
レジスタRの出力回路から形威されたRデータパスは、
中央プロセッサ70へ送っているデータを載せる。
中央プロセッサ70へ送っているデータを載せる。
添付図面に示したキャッシュ機構の制御ロジックを第I
表に示したステート・マシンに基づいて説明する。
表に示したステート・マシンに基づいて説明する。
このステート・マシンは、制御口ジツタの入ることので
きる各ステートを示したもので、これらのステートは、
表の左コラムをナンバーがふってある。
きる各ステートを示したもので、これらのステートは、
表の左コラムをナンバーがふってある。
表中の中央コラムには、制御コラムが各ステートにある
時、発生する制御信号が示してある。
時、発生する制御信号が示してある。
各レジスタへのゲートインを制御する信号は、P −A
のように表わされる。
のように表わされる。
これは、レジスタAヘデータをゲートインしかつ対応す
るマルチプレクサにP入力端子をセレクトさせるような
信号を発生させることを表わす。
るマルチプレクサにP入力端子をセレクトさせるような
信号を発生させることを表わす。
第■表の右コラムには、制御ロジックを仮定する次のス
テートが示してある。
テートが示してある。
この右コラムに1つの数字が示してあるが、この数字は
、すべての場合に仮定される次のステートの数字である
。
、すべての場合に仮定される次のステートの数字である
。
制御ロジックは、検出可能な信号のあるなしに応じて別
のステートヘ入れなければならない時は、次のように示
される。
のステートヘ入れなければならない時は、次のように示
される。
2→3 z→2
これは、信号2がトウルーであれば次のステートをステ
ート2にし、信号2がフォールスであれば、次のステー
トをステート3にすることを示す。
ート2にし、信号2がフォールスであれば、次のステー
トをステート3にすることを示す。
上許係属中の特許出願のクロツク41(第12図)と同
じで、レジスタR−Gと連動するクロツクの決める定イ
ンタバルで制御ロジックが1つのステートから次のステ
ートへ移動する。
じで、レジスタR−Gと連動するクロツクの決める定イ
ンタバルで制御ロジックが1つのステートから次のステ
ートへ移動する。
スイッチがオンになると、制御ロジックは、ステート1
になるようになっている。
になるようになっている。
ステート13〜19は書き込み(WRITE)作用を行
う。
う。
ステート14は、ワードが保持必要なものである場合に
、書込むべきワードの内容とその関連レベル数とをそれ
ぞれレジスタD,Kに読み込む。
、書込むべきワードの内容とその関連レベル数とをそれ
ぞれレジスタD,Kに読み込む。
ステート15は、ワードが保持すべきもの(次のステー
ト17)か否か(次のステート16)を決める。
ト17)か否か(次のステート16)を決める。
ステート18は、ワードの新しい値と実行中のりカバリ
ーレベル数とをそれぞれ、メインストア及びレベルスト
アに書き込み、先の値とそれに関連するメインストア・
アドレスとをキャッシュ・ストアに書込む。
ーレベル数とをそれぞれ、メインストア及びレベルスト
アに書き込み、先の値とそれに関連するメインストア・
アドレスとをキャッシュ・ストアに書込む。
キャッシュ・ストアのポインタは、徐々に漸増腰レジス
タ・ブロックG内のレジスタCPへ戻る。
タ・ブロックG内のレジスタCPへ戻る。
ステート18と19とは、キャッシュ・ストアの最後の
ワードについて用いるためのテストをし、もしエラーが
あれば、エラー状態を発生する。
ワードについて用いるためのテストをし、もしエラーが
あれば、エラー状態を発生する。
ステート21〜25は、レジスタブロックGの内部レジ
スタ内に入る値と実行中のリカバリ・レベルレジヌタE
の開始時とに関係するものである。
スタ内に入る値と実行中のリカバリ・レベルレジヌタE
の開始時とに関係するものである。
ステート31〜37は、中央プロセサへの出入りデータ
に関する。
に関する。
ステート41〜46は、リカバリ・ブロックエントリ動
作を実行する。
作を実行する。
ステート41と42とは実行中のリカバリ・レベル数を
漸増させて、レジスタE,K内にその新たな値をセット
する。
漸増させて、レジスタE,K内にその新たな値をセット
する。
ステート43〜46は、内部レジスタCMとレジスタK
との現存内容をキャッシュストアに書き込み、キャッシ
ュ・マークを形成し、トップキャッシュ・マーク(レジ
スタCMに入る)及びキャッシュのトップ(レジスタC
Pに入る)のアドレスに対する新しい値を発生する。
との現存内容をキャッシュストアに書き込み、キャッシ
ュ・マークを形成し、トップキャッシュ・マーク(レジ
スタCMに入る)及びキャッシュのトップ(レジスタC
Pに入る)のアドレスに対する新しい値を発生する。
ステート51〜59は、リバース動作を行い、アクセプ
タンス・テストの失敗後にリカバリ・ブロック内で改変
した変数の値を再記憶するのに使用される。
タンス・テストの失敗後にリカバリ・ブロック内で改変
した変数の値を再記憶するのに使用される。
ステート51は、実行中のリカバリ・レベルレジスタE
の値を内部レジスタCo内に保持する。
の値を内部レジスタCo内に保持する。
ステート54〜51は、キャッシュ・ストアのトップ領
域を走査するループを形成する。
域を走査するループを形成する。
このキャッシュ・ストアのトップ領域内の各ワードにつ
いて、ステ−1−56.57は、変数のメインストア・
アドレス、その前の値及びその前のリカバリ・レベルを
レジスタA,H及びE内に読み込み、その前の値及びリ
カバリ・レベルをそれぞれメインストア及びレベルスト
ア内に書き込む。
いて、ステ−1−56.57は、変数のメインストア・
アドレス、その前の値及びその前のリカバリ・レベルを
レジスタA,H及びE内に読み込み、その前の値及びリ
カバリ・レベルをそれぞれメインストア及びレベルスト
ア内に書き込む。
ステート58は、キャッシュ・スタックのトップ部分(
レジスタCPに配憶)にポインタを調節する。
レジスタCPに配憶)にポインタを調節する。
ステート59は、実行中のリカバリ・レベルの値をレジ
スタE内に再び記憶する。
スタE内に再び記憶する。
ステート61〜76は、アクセプタンス・テストの完了
後にエグジット動作を行う。
後にエグジット動作を行う。
ステート61,62は、実行中のリカバリ・レベルレジ
スタEを漸減させる。
スタEを漸減させる。
ステート63,64は、レジスタCP中に存在するエン
トリを次の動作のためにレジスタCN内に保持する。
トリを次の動作のためにレジスタCN内に保持する。
ステート65,66は、トップキャッシュ・マータから
バックポインタを読み、それをエグジット動作完了後に
トップキャッシュ・マークが有するアドレスとしてレジ
スタCM内に入れる。
バックポインタを読み、それをエグジット動作完了後に
トップキャッシュ・マークが有するアドレスとしてレジ
スタCM内に入れる。
ステート61は、トップ領域の取去り後にキャッシュ・
ストアのトップ部分が有するアドレスをレジスタCP内
に入れる。
ストアのトップ部分が有するアドレスをレジスタCP内
に入れる。
ステート68〜76は、トップキャッシュ領域を底部か
ら上方へと走査するループを形成する。
ら上方へと走査するループを形成する。
ステート69は、トップキャッシュ領域からワードを読
み、変数のメインストア・アドレス、その前の値及び前
のリカバリ・レベルをレジスタA,D,K内にセットす
る。
み、変数のメインストア・アドレス、その前の値及び前
のリカバリ・レベルをレジスタA,D,K内にセットす
る。
ステートγ0においては、レジスタK内の前のリカバリ
・レベルと、リカバリ・レベルのエグジット動作を行う
リカバリ・レベルとを比較し、もしレジスタK,E内の
りカバリ・レベル数が等しい場合(波形Yで示す)には
、検査中のキャツシュエントリをやめる(次のステート
16)。
・レベルと、リカバリ・レベルのエグジット動作を行う
リカバリ・レベルとを比較し、もしレジスタK,E内の
りカバリ・レベル数が等しい場合(波形Yで示す)には
、検査中のキャツシュエントリをやめる(次のステート
16)。
レベル数が等しくない場合には、キャッシュ・エントリ
をトップ領域から第2領域にうつさなければならない。
をトップ領域から第2領域にうつさなければならない。
レジスタCOは、ポインタを現に検査中のキャッシュ・
エントリに保持し、レジスタCN&t、ポインタをトッ
プ領域内のトップエントリのアドレスより1だけ大きい
所に保持する。
エントリに保持し、レジスタCN&t、ポインタをトッ
プ領域内のトップエントリのアドレスより1だけ大きい
所に保持する。
ステップ70におけるテストで、検査中のエントリのリ
カバリ・レベルが、エグジット動作を行うリカバリ・ブ
ロックのリカバリ・レベルと等しくない場合には、ステ
ート72〜74は、次に漸増するキャッシュ・スタック
トップ(レジスタCP)により与えられるアドレスの所
においてレジスタA,f),Kの内容(例えば、検査中
のキャッシュ・エントリのコピー)をキャッシュ・スト
ア内に書き込む。
カバリ・レベルが、エグジット動作を行うリカバリ・ブ
ロックのリカバリ・レベルと等しくない場合には、ステ
ート72〜74は、次に漸増するキャッシュ・スタック
トップ(レジスタCP)により与えられるアドレスの所
においてレジスタA,f),Kの内容(例えば、検査中
のキャッシュ・エントリのコピー)をキャッシュ・スト
ア内に書き込む。
ステート76においては、エグジット動作を行うリカバ
リ・ブロックのリカバリ・レベルを、キャツシュエント
リ処理動作中の変数と関連するレベルストア・ワード内
に書き込み、変数上に出されるリカバリ・ブロックの正
味効果が、その変数を含むリカバリ・ブロック内の割当
ての正味効果である事実を記録する。
リ・ブロックのリカバリ・レベルを、キャツシュエント
リ処理動作中の変数と関連するレベルストア・ワード内
に書き込み、変数上に出されるリカバリ・ブロックの正
味効果が、その変数を含むリカバリ・ブロック内の割当
ての正味効果である事実を記録する。
このステート動作機械は、文献tt Theory a
ndDesign of Digital Machi
nes /t (T. C− Bartee他著、19
62年マグロウビル社発行)に記載の等化論理ハードウ
エアを参照されたい。
ndDesign of Digital Machi
nes /t (T. C− Bartee他著、19
62年マグロウビル社発行)に記載の等化論理ハードウ
エアを参照されたい。
また、ステート動作機械の制御は、文献tt Mier
oprogamm−ing, Principle a
nd Practice //(S− S. Huss
on著、l970年プレインテイス・ホール社発行)の
マイクロプログラムに変えても良い。
oprogamm−ing, Principle a
nd Practice //(S− S. Huss
on著、l970年プレインテイス・ホール社発行)の
マイクロプログラムに変えても良い。
以上の実施例におけるように、リカバリ・レベルを用い
る場合には、一層大容量の記憶装置を使用する必要があ
るが、第11図に示すシステムにおけるよりも高速度の
動作を行うことが可能である。
る場合には、一層大容量の記憶装置を使用する必要があ
るが、第11図に示すシステムにおけるよりも高速度の
動作を行うことが可能である。
以上では本装置を、変数の値を記憶装置に割当てること
に関して説明した。
に関して説明した。
この場合に上記の値は、その割当てを逆にすることによ
って単純に回復した。
って単純に回復した。
多くのプログラム動作は、上記割当て以外の結果を生ず
る、即ち、プロセス動作を放棄し別の動作を意図する場
合でもある結果を保留する必要がある。
る、即ち、プロセス動作を放棄し別の動作を意図する場
合でもある結果を保留する必要がある。
その例の典型的なものは、ファイルアクセス、入出力イ
ンターフエイス、計Xルーチン、故障トレース、ユーザ
間のインターフエイスを含む動作である。
ンターフエイス、計Xルーチン、故障トレース、ユーザ
間のインターフエイスを含む動作である。
このようなプログラムの特性は、エラーリカバリが割当
ての自動反転より複雑であり、また適当な回復作動を特
定する機会をプログラム設計者に与えなければならない
。
ての自動反転より複雑であり、また適当な回復作動を特
定する機会をプログラム設計者に与えなければならない
。
この問題は、プロシージャ内に特定の回復作用を要する
動作を組み込む(以下これを回復可能式プロシージャと
呼ぶ)ことにより解決できる。
動作を組み込む(以下これを回復可能式プロシージャと
呼ぶ)ことにより解決できる。
この回復可能式プロシージャは、それ自身がアクセプタ
ンスと交代動作を有するリカバリ・ブロックではないが
、実質的には、1個以上のリカバリ・ブロックを含んで
いる。
ンスと交代動作を有するリカバリ・ブロックではないが
、実質的には、1個以上のリカバリ・ブロックを含んで
いる。
このようなプロシージャは、エラーの場合に本発明によ
る装置により値が自動的にリセットされないオウン・バ
リアブルを示しているが、回復可能グロシージャ内のプ
ログラムによって再び記憶することができる。
る装置により値が自動的にリセットされないオウン・バ
リアブルを示しているが、回復可能グロシージャ内のプ
ログラムによって再び記憶することができる。
複数の回復可能プロシージャを相互に組合せて1組のオ
ウン・バリアブルを截断することもできる。
ウン・バリアブルを截断することもできる。
回復可能グロシージャは、3個のエントリ点を有してい
る。
る。
まず最初に回復可能式プロシージャをリカバリ・ブロッ
ク内に呼び込み、本発明に係る装置で、プロシージャを
その〃セーブ(Save)〃エントリ点において入らせ
る。
ク内に呼び込み、本発明に係る装置で、プロシージャを
その〃セーブ(Save)〃エントリ点において入らせ
る。
上記〃セーブ〃エントリ点の目的は、コーリング・リカ
バリ・ブロック内にエラーを生じた場合に復旧すること
を要する情報をプロシージャに保持させることにある。
バリ・ブロック内にエラーを生じた場合に復旧すること
を要する情報をプロシージャに保持させることにある。
次いで、回復可能式プロシージャを、〃ノルマル〃エン
トリ点、即ち、そのコーリング状況によってグロシージ
ャに要求される機能を満足する目的をもつエントリ点へ
と進める。
トリ点、即ち、そのコーリング状況によってグロシージ
ャに要求される機能を満足する目的をもつエントリ点へ
と進める。
リカバリ・ブロック内の回復可能式グロシージャの次の
表示においては、この装置によりプロシージャをその“
ノルマル〃エントリ点に入れる。
表示においては、この装置によりプロシージャをその“
ノルマル〃エントリ点に入れる。
第3のエントリ点は、情報の復旧を可能とすることを目
的とした所謂〃リバース( reverse ) tt
エントリ点であり、本発明に係る装置が回復可能式グロ
シージャを抹消しなければならない時に、リカバリ・ブ
ロック内の第1インポケーションの間保持されている。
的とした所謂〃リバース( reverse ) tt
エントリ点であり、本発明に係る装置が回復可能式グロ
シージャを抹消しなければならない時に、リカバリ・ブ
ロック内の第1インポケーションの間保持されている。
以下では回復可能式プロシージャの1側を、第11図に
示す本発明の実施例について、ビットストアを用いる場
合に関し説明するが、勿論この回復可能式グロシージャ
は、上述の別の実施例に係る装置で動作する装置と組合
せて同じように使用することもできる。
示す本発明の実施例について、ビットストアを用いる場
合に関し説明するが、勿論この回復可能式グロシージャ
は、上述の別の実施例に係る装置で動作する装置と組合
せて同じように使用することもできる。
第14図は、リカバリ・ブロック■と回復可能プロシー
ジャ■とを含むリカバリ・ブロックVを示す。
ジャ■とを含むリカバリ・ブロックVを示す。
この場合の回復可能グロシージャは、オウンバリアブル
Wと別のリカバリ・ブロック■を有している。
Wと別のリカバリ・ブロック■を有している。
第15〜17図は、第2〜10図と同じであるが、メイ
ンストア10のステートとリカバリ・ブロックVの種々
の点のキャッシュストア12とを示している。
ンストア10のステートとリカバリ・ブロックVの種々
の点のキャッシュストア12とを示している。
第15図は、リカバリ・ブロックVの開始時の状態を示
す。
す。
スタック・マーク60 .62はそれぞれ、メインスト
アとキャッシュストアとに設けてある。
アとキャッシュストアとに設けてある。
第16図tこおいて、プログラムが回復可能式プロシー
ジャ■を示す範囲に入ると、プロシージャへのアクセス
を提供するデスクリプタが、プロシージャのオウンバリ
アブルWとしてメインスタック上に置かれる。
ジャ■を示す範囲に入ると、プロシージャへのアクセス
を提供するデスクリプタが、プロシージャのオウンバリ
アブルWとしてメインスタック上に置かれる。
勿論、回復可能式プロシージャには,1個以上のオウン
バリアブルを持たしても良いが、この場合には、このよ
うなオウンバリアブルの名前を全て、その時点でメイン
ストア10内に挿入する。
バリアブルを持たしても良いが、この場合には、このよ
うなオウンバリアブルの名前を全て、その時点でメイン
ストア10内に挿入する。
リカバリ・ブロック■内へのエントリにおいては、更に
メインストア10とキャッシュストア12とに対してそ
れぞれ、スタックマーク64,66を設ける。
メインストア10とキャッシュストア12とに対してそ
れぞれ、スタックマーク64,66を設ける。
第11図において、最初に回復可能グロシージャ■を(
リカバリ・ブロック■)内に呼び込むと、プロシージャ
のデスクリプタを含むメインストア10内のワードに対
応するフラッグをクリアすべきことが判明し、このプロ
シージャがこのリカバリ・ブロック内で使用されなかっ
たことが示される。
リカバリ・ブロック■)内に呼び込むと、プロシージャ
のデスクリプタを含むメインストア10内のワードに対
応するフラッグをクリアすべきことが判明し、このプロ
シージャがこのリカバリ・ブロック内で使用されなかっ
たことが示される。
そこで、キャッシュ機構が、デスクリプタ■に対応する
フラッグをメインストア10内にセットし、デスクリプ
タとその一致性をキャッシュストア10内に記録する。
フラッグをメインストア10内にセットし、デスクリプ
タとその一致性をキャッシュストア10内に記録する。
すると、回復可能式プロシージャは、キャッシュストア
12の更に別の“セイブ(Save)“領域を得て、こ
の領域内にそのリカバリ情報を記録する。
12の更に別の“セイブ(Save)“領域を得て、こ
の領域内にそのリカバリ情報を記録する。
回復可能式グロシージャ■は、その内部リカバリ・ブロ
ックに入り、この内部リカバリ・ブロックによってリカ
バリ情報の保留とプロシージャに必要とする機能を実行
する。
ックに入り、この内部リカバリ・ブロックによってリカ
バリ情報の保留とプロシージャに必要とする機能を実行
する。
リカバリ・ブロックV内の回復可能グロシージャ上に引
続きコールを行うことによって、既にセットしてあるデ
スクリプタ上にフラッグを見出す。
続きコールを行うことによって、既にセットしてあるデ
スクリプタ上にフラッグを見出す。
次いで回復可能グロシージャを、特別なアクションを行
うことなくノルマルエントリ点を通して入れる,しかし
、もしプログラムが、回復可能プロシージャ■上での再
コール前にリカバリ・ブロック■内の別のリカバリ・ブ
ロックに入っている場合には、そのデスクリプタ上のフ
ラッグをクリアし、更に別のリカバリ情報セットをキャ
ッシュストア12内に記録して、回復を必要とする新た
なリカバリ・ブロックに対応させる。
うことなくノルマルエントリ点を通して入れる,しかし
、もしプログラムが、回復可能プロシージャ■上での再
コール前にリカバリ・ブロック■内の別のリカバリ・ブ
ロックに入っている場合には、そのデスクリプタ上のフ
ラッグをクリアし、更に別のリカバリ情報セットをキャ
ッシュストア12内に記録して、回復を必要とする新た
なリカバリ・ブロックに対応させる。
リカバリ・ブロックからのエグジットが成功裏に行われ
た所で、デスクリプタとキャッシュストア内のその関連
セイブ領域とを、キャッシュストア内に記録されている
他の変数と同じようにキャッシュ機構により処理する。
た所で、デスクリプタとキャッシュストア内のその関連
セイブ領域とを、キャッシュストア内に記録されている
他の変数と同じようにキャッシュ機構により処理する。
それらは、1つのキャッシュ領域から次の領域に移送さ
れ、それらがローカル状態になるか又はデスクリブタが
そのキャッシュ領域内に存在するまでメインスタック・
テスクリプタフラッグをリセットする。
れ、それらがローカル状態になるか又はデスクリブタが
そのキャッシュ領域内に存在するまでメインスタック・
テスクリプタフラッグをリセットする。
回復可能プロシージャ内のりカバリ・ブロック中では、
そのグロシージャのオウンバリアブル及びキャッシュス
トア内のセイブ領域中の変数は、非ローカルであると考
えられ、エラ一時の他の変数と同じように再記憶される
。
そのグロシージャのオウンバリアブル及びキャッシュス
トア内のセイブ領域中の変数は、非ローカルであると考
えられ、エラ一時の他の変数と同じように再記憶される
。
しかし、リカバリ・ブロック■のアクセプタンス・テス
トが満足なものであれば、このリカバリ・ブロックから
のエグジット中、上記変数は、メインストア10内の位
置にかかわりなく、次のリカバリ・ブロック中でローカ
ルと考えられ従って、その記憶されている先の値は抹消
される。
トが満足なものであれば、このリカバリ・ブロックから
のエグジット中、上記変数は、メインストア10内の位
置にかかわりなく、次のリカバリ・ブロック中でローカ
ルと考えられ従って、その記憶されている先の値は抹消
される。
即ち、リカバリ・ブロック■からのエグジットは、オウ
ンバリアブルへの割当を有効に永久的となし、引続いて
の回復は、回復可能グロシージャ内に含まれているリカ
バリ・プログラムによってのみ可能である。
ンバリアブルへの割当を有効に永久的となし、引続いて
の回復は、回復可能グロシージャ内に含まれているリカ
バリ・プログラムによってのみ可能である。
しかし、グロシージャにより直接に又はなんらかのパラ
メータ機構を介して非ローカル変数に対し行われた割当
ては、通常に処理され、従って、キャッシュ機構によっ
ては行われない。
メータ機構を介して非ローカル変数に対し行われた割当
ては、通常に処理され、従って、キャッシュ機構によっ
ては行われない。
トップキャッシュ・スタック領域は、エラー後に通常の
方法で処理する。
方法で処理する。
そして、回復可能グロシージャのためのデスクリプタの
判明後に、キャッシュ機構が、プロシージャのリバース
エンドリ点を呼び込む。
判明後に、キャッシュ機構が、プロシージャのリバース
エンドリ点を呼び込む。
このリバースエントリ点は、リカバリ・ブロック、他の
グロシージャ・コール及びリカバリ・ブロック、並びに
オウンバリアブルを適値に再記憶するに必要なその他の
処理を呼び出す。
グロシージャ・コール及びリカバリ・ブロック、並びに
オウンバリアブルを適値に再記憶するに必要なその他の
処理を呼び出す。
以上の説明では、情報の種々のアイテムがメインストア
のワード長と同じ寸法であると仮定したが、勿論、情報
のアイテムがワードより短かい場合においても適用可能
である。
のワード長と同じ寸法であると仮定したが、勿論、情報
のアイテムがワードより短かい場合においても適用可能
である。
但しこの場合には、情報の均一な単一ユニットに対する
割当てによって全ワードを記憶しておく。
割当てによって全ワードを記憶しておく。
更に本発明は、情報のアイテムがワードより大きい場合
も適用可能であり、この場合には、情報アイテムの値を
保留するために1ワード以上のものを記憶しておく必要
がある。
も適用可能であり、この場合には、情報アイテムの値を
保留するために1ワード以上のものを記憶しておく必要
がある。
本発明は下記のような態様で実施することができる。
(1) 現行プログラム・ブロックの期間中に第1メ
モリ装置における情報アイテムのステートが変化せしめ
られた時に、前の情報アイテムのステートを第1メモリ
装置から第2メモリ装置に移すためのトランスファ装置
を含んでいる、特許請求の範囲記載のデータ・プロセス
装置。
モリ装置における情報アイテムのステートが変化せしめ
られた時に、前の情報アイテムのステートを第1メモリ
装置から第2メモリ装置に移すためのトランスファ装置
を含んでいる、特許請求の範囲記載のデータ・プロセス
装置。
(2)トランスファ装置は現行プログラム・ブロックの
期間中の最初の情報アイテムのヌテートの変化に対して
だけ作動する、前掲(1)項記載のデータ・プロセス装
置。
期間中の最初の情報アイテムのヌテートの変化に対して
だけ作動する、前掲(1)項記載のデータ・プロセス装
置。
(3)現行プログラム・ブロックの期間中に第1メモリ
装置に記憶されている情報アイテムの前のステートが既
に第2メモリ装置に記憶されているか否かを表示するた
めに、第1メモリ装置に記憶された各情報アイテムにそ
れぞれインデイケータを組合わせる装置を含んでいる、
前掲(1)項記載のデータ・プロセス装置。
装置に記憶されている情報アイテムの前のステートが既
に第2メモリ装置に記憶されているか否かを表示するた
めに、第1メモリ装置に記憶された各情報アイテムにそ
れぞれインデイケータを組合わせる装置を含んでいる、
前掲(1)項記載のデータ・プロセス装置。
(4)インデイケータの存在がトランスファ装置の作動
を抑止する、前掲(3)項記載のデータ・プロセス装置
。
を抑止する、前掲(3)項記載のデータ・プロセス装置
。
(5)第1メモリ装置および第2メモリ装置の各各に対
して、多数のプログラム・ブロックのネストされた1組
における前のプログラム・ブロックの情報アイテムと後
続のプログラム・ブロックにおける情報アイテムとを分
離するためのセパレータ装置がそれぞれ設けられており
、多数のプログラム・ブロックのネストされた1組を利
用するデータ・プロセス用として使用するに適した、前
掲(4)項記載のデータ・プロセス装置。
して、多数のプログラム・ブロックのネストされた1組
における前のプログラム・ブロックの情報アイテムと後
続のプログラム・ブロックにおける情報アイテムとを分
離するためのセパレータ装置がそれぞれ設けられており
、多数のプログラム・ブロックのネストされた1組を利
用するデータ・プロセス用として使用するに適した、前
掲(4)項記載のデータ・プロセス装置。
(6)インデイケータは、多数のプログラム・ブロック
のネストされた1組における現行プログラム・フロック
のネステイングの深さをも表示する、多数のプログラム
・ブロックのネストされた1組を利用するデータ・プロ
セス用として使用するに適した、前掲(3)項記載のデ
ータ・プロセス装置。
のネストされた1組における現行プログラム・フロック
のネステイングの深さをも表示する、多数のプログラム
・ブロックのネストされた1組を利用するデータ・プロ
セス用として使用するに適した、前掲(3)項記載のデ
ータ・プロセス装置。
(7)第1メモリ装置および第2メモリ装置が、それぞ
れスタック式記憶装置から或っている、特許請求の範囲
記載のデータ・プロセス装置。
れスタック式記憶装置から或っている、特許請求の範囲
記載のデータ・プロセス装置。
第1図は、本発明に係るプログラム構造の一部を示す概
略説明図、第2〜10図は、第1図に示すプログラム実
行中における種々のステージでのメモリ装置のステート
の説明ブロック・ダイヤグラム、第11図は、本発明の
一実施例のデータプロセシング装置のブロック・ダイヤ
グラム、第12図は、第11図に示す装置の詳細ブロッ
ク・ダイヤグラム、第13図は、別の実施例でのブロッ
ク・ダイヤグラム、第14図は、本発明に係るプログラ
ム構造の概略ダイヤグラム、第15〜17図は、第14
図に示すプログラムの種々のステージにおけるメモリ装
置のステートを示すブロック・ダイヤグラム、である。 R,E,A,H,C,D・・・・・・レジスタ、G・・
・・−・レジスタ・ブロック、30・・・・・・中央プ
ロセッサ、32・・・・・・メイン・ストア、34・・
・・・・ビット・ストア、36・・・・・・キャッシュ
・ストア。
略説明図、第2〜10図は、第1図に示すプログラム実
行中における種々のステージでのメモリ装置のステート
の説明ブロック・ダイヤグラム、第11図は、本発明の
一実施例のデータプロセシング装置のブロック・ダイヤ
グラム、第12図は、第11図に示す装置の詳細ブロッ
ク・ダイヤグラム、第13図は、別の実施例でのブロッ
ク・ダイヤグラム、第14図は、本発明に係るプログラ
ム構造の概略ダイヤグラム、第15〜17図は、第14
図に示すプログラムの種々のステージにおけるメモリ装
置のステートを示すブロック・ダイヤグラム、である。 R,E,A,H,C,D・・・・・・レジスタ、G・・
・・−・レジスタ・ブロック、30・・・・・・中央プ
ロセッサ、32・・・・・・メイン・ストア、34・・
・・・・ビット・ストア、36・・・・・・キャッシュ
・ストア。
Claims (1)
- 【特許請求の範囲】 1 各プログラム・フロックが後続するブロックへのエ
ントリーの前または外側のエンクロージンク・ブロック
に返戻される前にそれぞれアクセプタンス・テストを付
随せしめられるネストされた多数のプログラム・ブロッ
クの一組を利用するデータ・プロセスにおいて使用され
、各プログラム・ブロックの期間中にこのブロック内の
情報アイテムのステートが変化した場合に、必要に応じ
てこのブロックの開始時における優勢な情報アイテムの
ステートをリストアすることができるように、各プログ
ラム・ブロックの開始直前にそのブロックの複数の各情
報ブロックによってそれぞれ取り上げられていたステー
トを保存するよう作動せしめられるデータ・プロセス装
置であって、各プログラム・ブロックの各情報アイテム
の現在のステートを記憶するための第1メモリ装置と、
連続する各プログラム・ブロックを識別して各プログラ
ム・ブロックへのエントリーおよび各プログラム・ブロ
ックからのエグジットを表示するインデイケー夕を記憶
するための装置と、各プログラム・ブロックの各情報ア
イテムの以前のステートを記憶すると共にそのステート
が起生したプログラム・ブロックのインディケータを記
憶するための第2メモリ装置と、 各アクセプタンス・テストの完了時にそれぞれ収パス”
信号または゛フエイル”信号を発生するための装置と、 現行プログラム・ブロックの期間中に記憶された各情報
アイテムを第1メモリ装置からデイスカードするための
装置、および上記第1メモリ装置からその情報アイテム
がテイスカードされたプログラム・ブロックの直前のプ
ログラム・ブロックについて第2メモリ装置に記憶され
たステートを第1メモリ装置に転送するための装置を含
んでいて、若し″フエイル″信号が発生されたならば、
各メモリ装置のステートを現行プログラム・ブロツクへ
のエントリーの直前のステートにリストアーするための
装置と、 少くとも直前のプログラウ・ブロックに特有な情報アイ
テムおよび直前のプログラム・ブロックにおいて既にそ
れに対するエントリーが第2メモリ装置内に存在してい
る情報アイテムを第2メモリ装置からデイスカードする
ための装置を含んでいて、若し、゜゛パス″′信号が発
生されたならば各メモリ装置のステートを前進させるた
めの装置と、を具備することを特徴とするデータ・プロ
セス装置。
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 (ja) | 1975-11-20 |
| JPS5836372B2 true JPS5836372B2 (ja) | 1983-08-09 |
Family
ID=26252228
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP50046929A Expired JPS5836372B2 (ja) | 1974-04-17 | 1975-04-17 | デ−タプロセスソウチ |
Country Status (4)
| Country | Link |
|---|---|
| JP (1) | JPS5836372B2 (ja) |
| DE (1) | DE2516909C2 (ja) |
| FR (1) | FR2268306A1 (ja) |
| NL (1) | NL7504595A (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0163096B1 (de) * | 1984-04-26 | 1988-11-17 | BBC Brown Boveri AG | Einrichtung zur Rettung eines Rechnerzustandes |
| JPH0682336B2 (ja) * | 1986-04-28 | 1994-10-19 | 日本電気株式会社 | ブロック閉塞を用いたロールバックリカバリシステム |
Family Cites Families (1)
| 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 |
-
1975
- 1975-04-16 FR FR7511821A patent/FR2268306A1/fr active Granted
- 1975-04-17 JP JP50046929A patent/JPS5836372B2/ja not_active Expired
- 1975-04-17 DE DE2516909A patent/DE2516909C2/de not_active Expired
- 1975-04-17 NL NL7504595A patent/NL7504595A/xx not_active Application Discontinuation
Also Published As
| Publication number | Publication date |
|---|---|
| FR2268306B1 (ja) | 1980-07-04 |
| DE2516909C2 (de) | 1986-01-09 |
| DE2516909A1 (de) | 1975-10-30 |
| NL7504595A (nl) | 1975-10-21 |
| FR2268306A1 (en) | 1975-11-14 |
| JPS50144352A (ja) | 1975-11-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4164017A (en) | Computer systems | |
| US4961134A (en) | Method for minimizing locking and reading in a segmented storage space | |
| US3686641A (en) | Multiprogram digital processing system with interprogram communication | |
| US5274807A (en) | Method for reducing magnetic storage volume for computer disk image backup | |
| 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 | |
| JPS5821308B2 (ja) | ルツクアヘツド・コントロ−ル装置 | |
| US5410694A (en) | File access processing system of a computer enabling high-speed sequential access for a stream file | |
| EP0575066A2 (en) | Error handling in a state-free system | |
| JPS5836372B2 (ja) | デ−タプロセスソウチ | |
| US3984821A (en) | Associative memory using recirculatory shift register cells | |
| US4198681A (en) | Segmented storage logging and controlling for partial entity selection and condensing | |
| US3512134A (en) | Apparatus for performing file search in a digital computer | |
| CN120723524B (zh) | 数据处理方法、系统、电子设备、介质及产品 | |
| JP2586610B2 (ja) | ファイル作成方式 | |
| JP2962335B2 (ja) | 空き領域検索方式 | |
| JPS6326411B2 (ja) | ||
| JPH04112253A (ja) | 多層バッファを用いるデータアクセス方法 | |
| Shelman | The application of list processing techniques to picture processing | |
| JP2944121B2 (ja) | 障害処理方式 | |
| JP2590866B2 (ja) | データ検索装置 | |
| JPS6014324A (ja) | 連想記憶装置 | |
| JP2541006B2 (ja) | ソ―ト処理方式 | |
| JPH07200378A (ja) | ライブラリファイル管理装置 |