JP3804823B2 - 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 - Google Patents
障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 Download PDFInfo
- Publication number
- JP3804823B2 JP3804823B2 JP2001201663A JP2001201663A JP3804823B2 JP 3804823 B2 JP3804823 B2 JP 3804823B2 JP 2001201663 A JP2001201663 A JP 2001201663A JP 2001201663 A JP2001201663 A JP 2001201663A JP 3804823 B2 JP3804823 B2 JP 3804823B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- write
- address
- microcode
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 16
- 238000011084 recovery Methods 0.000 title description 2
- 230000015654 memory Effects 0.000 claims description 67
- 238000013500 data storage Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、障害回復機能を備えたキャッシュシステムに関し、特に、命令コードをマイクロコードに展開して実行するプロセッサにおいて、マイクロコード実行中に障害を検出した場合、命令リトライを可能とするキャッシュシステムに関する。
【0002】
【従来の技術】
従来、プロセッサの可用性を向上させるための手段の一つとして、プロセッサの動作中に障害を検出した場合に命令コードの実行を一旦中断し、障害を検出した命令コードを再実行することによって間欠障害によるシステムダウンを回避する手法が採用されてきた。
【0003】
一方で、昨今の高性能なCISC(Complex Instruction Set Computer)方式のマイクロプロセッサに見られるように、メモリまたはキャッシュからフェッチしてきた命令コードをプロセッサ内部で一つ以上の単純なマイクロコードに分解し、パイプラインを高速動作させることによって性能向上を図る方式が一般化している。
【0004】
このようなマイクロコード方式のプロセッサでは、一つの命令コードを展開してできたマイクロコードのシーケンスを実行中に障害を検出した場合、命令リトライのためにはマイクロコードのシーケンスを遡ってシーケンスの先頭から再実行する必要があるが、このためにはソフトウェアから認識できるレジスタやメモリの内容が、障害発生時点までのマイクロコードのシーケンスの実行によって更新されていない(破壊されていない)ことが必須条件となる。
【0005】
【発明が解決しようとする課題】
しかしながら、上述した従来のマイクロコード方式のプロセッサでは、通常よく利用される命令コードに関して、展開されたマイクロコードの実行中にメモリやレジスタの内容を更新しながら複雑な処理を実現するものがあるため、これらの命令の実行中に障害が検出された場合にリトライ成功率が低いという問題点があった。
【0006】
本発明の目的は、上記従来の課題を解決するため、命令コードをマイクロコードに展開して実行するプロセッサにおいて、マイクロコード実行中に障害を検出した場合、当該マイクロコードに先行するマイクロコードにより実行されたデータ内容をキャッシュメモリに書き戻す事により、命令リトライ成功率の向上を実現するキャッシュシステムとそのキャッシュ制御方法を提供することである。
【0007】
【課題を解決するための手段】
上記目的を達成するため本発明は、命令コードをマイクロコードに展開して実行する方式のプロセッサを備えた中央処理装置を、主記憶とシステムバスを介して接続したキャッシュシステムにおいて、キャッシュメモリ、前記プロセッサ及び主記憶のインターフェース機能をもち、前記キャッシュメモリへの書き込みと併せてキャッシュデータをキャッシュデータ待避部に待避させるキャッシュ制御回路をキャッシュメモリに備え、前記プロセッサでマイクロコードの実行中に障害を検出した場合、あらかじめ待避しておいた前記マイクロコードに先行するマイクロコードによって更新された、前記プロセッサからの書き込み要求により書き込む対象になったアドレスに対する前記書き込み要求による書き込み用データを、キャッシュメモリに書き戻すことにより、前記マイクロコードのシーケンスを実行し始める直前の状態に復旧する前記キャッシュデータ待避部を前記キャッシュメモリに対応させて前記中央処理装置内に備えたことを特徴とする。
【0008】
請求項2の本発明のキャッシュシステムは、前記キャッシュデータ待避部が、前記書き込み用データの待避動作および前記キャッシュメモリへの書き戻しを制御するキャッシュデータ待避制御回路と、前記書き込み用データを格納する待避データ格納手段を備えたことを特徴とする。
【0009】
請求項3の本発明のキャッシュシステムは、書き込みアドレスが前記キャッシュデータ待避部に格納されているかを判定し、結果を信号として前記キャッシュデータ待避制御回路に送信するアドレス比較器を備えたことを特徴とする。
【0010】
請求項4の本発明のキャッシュシステムは、書き込みアドレスが前記キャッシュデータ待避部に格納されているかを判定し、結果を信号として前記キャッシュデータ待避制御回路に送信するアドレス比較器と、前記書き込みアドレスを格納するアドレスレジスタと、前記アドレス比較器で前記書き込みアドレスが前記キャッシュデータ待避部に格納されていないと判定された場合に、前記書き込みアドレスを格納する書き込みアドレス格納手段を備えたことを特徴とする。
【0011】
請求項5の本発明のキャッシュシステムは、前記待避データ格納手段を待避データアレイで構成し、前記書き込みアドレス格納手段を書き込みアドレスアレイで構成したことを特徴とする。
【0012】
請求項6の本発明のキャッシュシステムは、前記待避データ格納手段および前記書き込みアドレス格納手段を、それぞれ単一のレジスタで構成したことを特徴とする。
【0013】
請求項7の本発明のキャッシュ制御方法は、命令コードをマイクロコードに展開して実行する方式のプロセッサを備えた中央処理装置を、主記憶とシステムバスを介して接続したキャッシュシステムのキャッシュ制御方法において、キャッシュメモリ、前記プロセッサ及び前記主記憶のインターフェース機能をもち、前記キャッシュメモリに備えられたキャッシュ制御回路が、キャッシュへの書き込みと併せてキャッシュデータをキャッシュデータ待避部に待避させ、前記プロセッサでマイクロコードの実行中に障害を検出した場合、あらかじめ待避しておいた前記マイクロコードに先行するマイクロコードによって更新された、前記プロセッサからの書き込み要求により書き込む対象になったアドレスに対する前記書き込み要求による書き込み用データを、キャッシュメモリに書き戻すことにより、前記マイクロコードのシーケンスを実行し始める直前の状態に復旧することを特徴とする。
【0014】
請求項8の本発明のキャッシュ制御方法は、キャッシュデータ待避制御回路により前記書き込み用データの待避動作および前記キャッシュメモリへの書き戻しを制御するステップと、待避データ格納手段に前記書き込み用データを格納するステップを備えたことを特徴とする。
【0015】
請求項9の本発明のキャッシュ制御方法は、アドレス比較器により書き込みアドレスが前記キャッシュデータ待避部に格納されているかを判定し、結果を信号として前記キャッシュデータ待避制御回路に送信するステップを備えたことを特徴とする。
【0016】
請求項10の本発明のキャッシュ制御方法は、アドレスレジスタに、書き込みアドレスを格納するステップと、前記アドレス比較器で前記書き込みアドレスが前記キャッシュデータ待避部に格納されていないと判定された場合に、前記書き込みアドレスを書き込みアドレス格納手段に格納するステップを備えたことを特徴とする。
【0017】
【発明の実施の形態】
以下、本発明の第1の実施の形態について、図面を参照して詳細に説明する。
【0018】
図1は本発明の第1の実施の形態によるキャッシュシステムの構成を示すブロック図である。
【0019】
本発明の第1の実施の形態によるキャッシュシステムは、中央処理装置10と主記憶20、およびそれらを接続するシステムバス30から構成される。図1では、システムバス30に中央処理装置10を4式接続しているが(10−1〜10−4)、システムバス30に接続される中央処理装置10の数は任意である(10−m:mは自然数)。同様に、図1ではシステムバス30に主記憶20を1式接続しているが(20−1)、システムバス30に接続される主記憶20の数は任意である(20−n:nは自然数)。
【0020】
中央処理装置10は、ストアイン方式のキャッシュメモリ11とキャッシュデータ待避部12、および命令コードをマイクロコードに展開して実行する方式のプロセッサ13から構成される。プロセッサ13とキャッシュデータ待避部12は共にキャッシュメモリ11に接続されており、キャッシュメモリ11はさらにシステムバス30に接続されている。
【0021】
図2は本発明の第1の実施の形態によるキャッシュメモリ11とキャッシュデータ待避部12の構成を示す図である。
【0022】
キャッシュメモリ11は、アドレスアレイ111とデータアレイ112、およびキャッシュ制御回路113から構成される。
【0023】
アドレスアレイ111は複数のエントリから構成されるメモリであり、各々のエントリにキャッシュ索引時に参照されるアドレスの一部(アドレスキー)と、該当エントリの補助情報としてデータが有効である事をしめすバリッドビット、およびストアインキャッシュのデータの状態を表す状態ビットが格納される。
【0024】
データアレイ112はアドレスアレイ111と同様に複数のエントリから構成されるメモリであり、各々のエントリにデータを格納する。
【0025】
キャッシュ制御回路113はキャッシュメモリ11の動作を制御する論理回路であり、アドレスアレイ111とデータアレイ112における索引およびデータ登録の制御機能のほか、システムバス30とプロセッサ13、およびキャッシュデータ待避部12とのインターフェース機能をもつ。
【0026】
キャッシュデータ待避部12は、アドレスレジスタ121、書き込みアドレスアレイ122、アドレス比較器123、キャッシュデータ待避制御回路124および待避データアレイ125から構成される。
【0027】
アドレスレジスタ121は、キャッシュへの書き込み動作時にキャッシュ制御回路113から送出される書き込みアドレスとキャッシュの状態ビットの情報を格納するレジスタである。アドレスレジスタ121に格納された書き込みアドレスと状態ビットは、書き込みアドレスアレイ122とアドレス比較器123へ出力される。
【0028】
書き込みアドレスアレイ122は、複数のエントリから構成されるメモリであって、キャッシュデータ待避制御回路124の制御によりアドレスレジスタ121から出力される書き込みアドレスと状態ビットの情報を格納する。
【0029】
アドレス比較器123は、アドレスレジスタ121に格納される書き込みアドレスと書き込みアドレスアレイ122の各エントリに格納されるアドレスを比較する比較回路である。それらを比較した結果は、一致・不一致を表す信号として、キャッシュデータ待避制御回路124へ通知される。
【0030】
キャッシュデータ待避制御回路124は、キャッシュデータ待避部12の動作を制御する制御回路である。特に図示したリトライ不可フラグ1241は、キャッシュデータ待避部12により待避されたキャッシュデータを元に、プロセッサ13の障害発生時に命令リトライを実行することが不可能であることを示すフラグである。
【0031】
待避データアレイ125は、書き込みアドレスアレイ122と同様に複数エントリから構成されるメモリであって、データアレイ112から取り出したデータを格納するとともに、取り出したデータをキャッシュ制御回路113へ送出する。
【0032】
次に、図2を参照しながら本発明の第1の実施の形態によるキャッシュシステムの動作について説明する。
【0033】
まず、プロセッサ13からチェックポイント信号200を受信した場合のキャッシュデータ待避制御回路124の動作について説明する。
【0034】
チェックポイント信号200は、プロセッサ13が一つの命令コードから展開したマイクロコードの最終命令の実行が完了した時に送出される信号である。プロセッサ13の中で一つの命令コードは1個以上のマイクロコードからなるシーケンスに展開され、実行される。図3はその一例としてプロセッサ13が取り込んだ命令コード(MOV)が10個のマイクロコードに展開されていることを説明する図である。
【0035】
ここで、命令コードMOVは、メモリ上のアドレスXから長さL1ワードの文字列をアドレスYから始まる領域にコピーする命令である。展開されたマイクロコードを参照すると、マイクロ命令lodはレジスタ間もしくはメモリとレジスタ間のロード命令、stoはレジスタからメモリへの書き込み命令、addはレジスタ間の加算命令、subはレジスタ間の除算命令、braは分岐命令、endfは一連のマイクロコードの終了を示し後続の命令コードのフェッチを指示する命令を表す。
【0036】
まずX、Y、L1がワークレジスタw0、w1、w2にそれぞれコピーされ(ステップ301、302、303)、続いてワークレジスタw4を介して1ワードコピーを行い(ステップ304、305)、ワークレジスタに格納されたアドレスとカウンタを更新して(ステップ306、307、308)、コピーが終了するまでループを実行する(ステップ309)事が分かる。最後に付与されたendf(ステップ310)は、実際のインプリメントでは高速化のためマイクロコードシーケンスの最終命令にビット情報として付与するなどして特に終わりを表す命令として定義しない場合もあるが、ここでは説明をしやすくするために特に設けたものである。
【0037】
図4は、本発明の第1の実施の形態において、プロセッサ13からチェックポイント信号200を受信した場合のキャッシュデータ待避制御回路124の動作について説明するフローチャートである。キャッシュデータ待避制御回路124はチェックポイント信号200を受信すると(ステップ401)、書き込みアドレスアレイ122に登録されている全てのエントリをリセットすると共に、リトライ不可フラグ1241をリセットする(ステップ402)。
【0038】
次に、プロセッサ13からのキャッシュ読み出しの動作について図5を参照して詳細に説明する。図5は、本発明の第1の実施の形態において、プロセッサ13からのキャッシュ読み出しの動作について説明するフローチャートである。
【0039】
プロセッサ13からキャッシュ読み出し要求が送出されると、その要求信号201は読み出しアドレスと共にキャッシュ制御回路113に入力される(ステップ501)。続いて、キャッシュ制御回路113からアドレスアレイ111およびデータアレイ112へ読み出しアドレスの一部分からなる索引アドレスを供給することにより、アドレスアレイ111からはアドレスキー、データアレイ112からはデータを取り出し、キャッシュヒットしているかを判定する(ステップ502)。
【0040】
ここでキャッシュヒットしていれば、データアレイ112から取り出したデータをプロセッサ13へ送出して(ステップ503)、読み出し動作は完了する。
【0041】
一方、キャッシュミスしていた場合、キャッシュ制御回路113はリプレースすべきエントリを決定し(ステップ504)、そのエントリの状態ビットの値を参照してダーティ状態であればメモリへ掃き出しを行う。その後、キャッシュ制御回路113はシステムバス30を経由して主記憶20から当該アドレスのデータの読み出しを行い(ステップ505)、アドレスアレイ111へアドレスキー、バリッドビット、状態ビットを、データアレイ112へデータを登録する(ステップ506)。この時状態ビットはクリーン状態で登録される。そして、プロセッサ13へデータを送出することで(ステップ503)、読み出し動作が完了する。
【0042】
読み出し動作の場合は、キャッシュデータ待避部12の動作は行われない。
【0043】
次に、プロセッサ13からのキャッシュ書き込みの動作について図6、図7を参照して詳細に説明する。図6は、本発明の第1の実施の形態において、プロセッサ13からのキャッシュ書き込みの動作時のキャッシュメモリ11の動作について説明するフローチャート、図7は、本発明の第1の実施の形態において、プロセッサ13からのキャッシュ書き込みの動作時のキャッシュデータ待避部12の動作について説明するフローチャートである。
【0044】
プロセッサ13からキャッシュ書き込み要求が送出されると、その要求信号202は書き込みアドレス、書き込みデータと共にキャッシュ制御回路113に入力される(ステップ601)。続いて、キャッシュ制御回路113はデータアレイ112からデータを取り出すとともに、アドレスアレイ111を索引し、当該アドレスのデータがキャッシュにヒットしたかどうかを判定する(ステップ602)。
【0045】
キャッシュヒットの場合、キャッシュ制御回路113は、上記索引時に取り出したデータに書き込みデータを上書きして、キャッシュへ登録することで書き込み動作が完了する(ステップ603)。また、書き込み前の読み出しで当該エントリの状態ビットがクリーン状態だった場合は、ダーティ状態に更新される。
【0046】
キャッシュミスの場合、キャッシュ制御回路113はリプレースすべきエントリを決定し(ステップ604)、そのエントリの状態ビットの値を参照してダーティ状態であればメモリへ掃き出しを行う。その後、システムバス30を経由して主記憶20から当該アドレスのデータの読み出しを行い(ステップ605)、読み出したデータにプロセッサ13からの書き込みデータを上書きしてキャッシュへ登録することで、書き込み動作が完了する(ステップ606)。この時、キャッシュの当該エントリの状態ビットはダーティ状態で登録される。
【0047】
また、プロセッサ13からの書き込み時、キャッシュデータ待避部12は以下の動作を行う。
【0048】
まず、アドレスアレイ111及びデータアレイ112に書き込みデータを上書きする際(図6のステップ603、606)に、書き込みアドレスと書き込み前の読み出しで取り出した状態ビットの値を、キャッシュ制御回路113からアドレスレジスタ121に格納するとともに、書き込み前の読み出しでキャッシュヒットした場合はデータアレイ112から取り出したデータを、キャッシュミスした場合はシステムバス30経由で主記憶20から取得したデータをキャッシュ制御回路113から取得し、待避データアレイ125へ格納する(ステップ701)。続いて、アドレス比較器123において、アドレスレジスタ121に格納された書き込みアドレスと同じエントリが書き込みアドレスアレイ122に登録されているかを判定する(ステップ702)。
【0049】
書き込みアドレスアレイ122に、アドレスレジスタ121に格納された書き込みアドレスと同じアドレスのエントリが登録されていた場合、キャッシュデータ待避部12の動作はここで終了する。
【0050】
書き込みアドレスアレイ122に、アドレスレジスタ121に格納された書き込みアドレスと同じアドレスのエントリが登録されていなかった場合、キャッシュデータ待避制御回路124の制御により、アドレスレジスタ121に格納された書き込みアドレスおよび状態ビットが書き込みアドレスアレイ122に格納される(ステップ703)。
【0051】
次に、システムバス30を経由して、他のキャッシュメモリからキャッシュ無効化要求を受信した場合のキャッシュシステムの動作について、図8を参照して詳細に説明する。図8は、本発明の第1の実施の形態において、システムバス30を経由して、他のキャッシュメモリからキャッシュ無効化要求を受信した場合のキャッシュシステムの動作について説明するフローチャートである。
【0052】
まず、キャッシュ制御回路113は、無効化を要求されたアドレスでアドレスアレイ111を索引し(ステップ801)、キャッシュにヒットしたかどうかを判定する。ヒットしていた場合、アドレスアレイ111の当該エントリのバリッドビットをリセットし、当該エントリのデータを無効化する(ステップ802)。
【0053】
また、キャッシュのヒットもしくはミスに関わらず、キャッシュ制御回路113からアドレスレジスタ121へ無効化を要求されたアドレスが送出されるとともに、待避データ無効化信号203がキャッシュデータ待避制御回路124へ送出される(ステップ803)。
【0054】
待避データ無効化信号203を受信したキャッシュデータ待避制御回路124は、アドレス比較器123の出力により無効化を要求されたアドレスのエントリが書き込みアドレスアレイ122へ登録されているかどうかを判定し(ステップ804)、当該アドレスのエントリが登録されていたならばリトライ不可フラグ1241をセットし(ステップ805)、プロセッサ13で現在実行中のマイクロコードシーケンスで障害を検出した場合に命令リトライの実行が不可能であることを表示する。
【0055】
次に、プロセッサ13でマイクロコード実行中に障害を検出した場合のキャッシュシステムの動作について図9を参照して詳細に説明する。
図9は、本発明の第1の実施の形態において、プロセッサ13でマイクロコード実行中に障害を検出した場合のキャッシュシステムの動作について説明するフローチャートである。
【0056】
プロセッサ13でマイクロコード実行中に障害を検出した場合、プロセッサ13は障害検出信号204で障害を検出したことをキャッシュ制御回路113およびキャッシュデータ待避制御回路124へ通知する(ステップ901)。
【0057】
キャッシュデータ待避制御回路124は、障害検出信号204を受け取ると、まず最初にリトライ不可フラグ1241を参照し、フラグがリセットされていることを確認する(ステップ902)。
【0058】
フラグがセットされていた場合、プロセッサ13で動作中のマイクロコードのシーケンスはリトライ不可能であるので、キャッシュデータ待避部12はその時点で動作を停止することにより、キャッシュメモリ11およびプロセッサ13の動作も停止する(ステップ906)。
【0059】
フラグがリセットされていた場合、キャッシュデータ待避制御回路124は書き込みアドレスアレイ122の各エントリを順に参照し、登録されたアドレス、状態ビットを取り出してキャッシュ制御回路113へ送出するとともに、待避データアレイ125から登録されたデータを取りだしてキャッシュ制御回路113へ送出する(ステップ903)。
【0060】
キャッシュ制御回路113では、送られてきたアドレスをもとにアドレスアレイ111およびデータアレイ112にアドレスキーと状態ビット、データを登録すべきエントリを決定し(ステップ904)、上書きすることによってプロセッサ13が障害を検出したマイクロコードのシーケンスを実行し始める直前の状態に復旧する(ステップ905)。
【0061】
次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。なお、キャッシュシステム全体の構成については、図1に示した第1の実施の形態と同様であるので説明を省略する。
【0062】
図10は、本発明の第2の実施の形態によるキャッシュメモリ11とキャッシュデータ待避部12の構成を示す図である。
【0063】
本発明の第2の実施の形態は、第1の実施の形態の書き込みアドレスアレイ122および待避データアレイ125を、それぞれ書き込みアドレスレジスタ126および待避データレジスタ127で置き換えて構成している。なお、キャッシュメモリ11およびキャッシュデータ待避部12全体の動作については、第1の実施の形態と同様であるので説明を省略する。
【0064】
図10に示すように、複数エントリから構成されるメモリである書き込みアドレスアレイ122および待避データアレイ125を、それぞれ単一のレジスタで置き換えたことにより、キャッシュデータ待避部12に追加するハードウェア量を極力少なくすることができるが、一つの命令コードを展開したマイクロコードのシーケンス中で二つ以上の書き込み動作が生じた場合、本実施の形態では命令リトライによる救済ができなくなるという問題もある。
【0065】
しかしながら、マイクロコードのシーケンス中で一つしか書き込み命令を使わない命令については、第1の実施の形態と同様に命令リトライによる救済が可能であり、障害検出時の救済率と投資するハードウェア量のトレードオフという観点から本実施の形態は十分に実用的であると言える。
【0066】
以上、好ましい実施の形態及び実施例を挙げて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0067】
【発明の効果】
以上説明したように、本発明のキャッシュシステムにより、命令コードをマイクロコードに展開して実行する形式のプロセッサにおいて、マイクロコード実行中に障害を検出した場合に命令コード単位でのリトライが可能になる。
【0068】
その理由は、マイクロコードのシーケンス中での書き込みによりキャッシュの状態が変化した後でも、待避データアレイに待避されたデータをキャッシュメモリに書き戻す事によってマイクロコードのシーケンス実行前の状態にキャッシュの状態を戻す事が可能だからである。
【0069】
また、書き込みアドレスアレイおよび待避データアレイを、それぞれ単一のレジスタである書き込みアドレスレジスタおよび待避データレジスタに置き換えることにより、キャッシュデータ待避部に追加するハードウェア量を最小限に抑えることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態によるキャッシュシステムの構成を示すブロック図である。
【図2】 本発明の第1の実施の形態によるキャッシュメモリとキャッシュデータ待避部の構成を示す図である。
【図3】 本発明の第1の実施の形態によるプロセッサが命令コードをマイクロコードに展開する一例を説明する図である。
【図4】 本発明の第1の実施の形態において、プロセッサからチェックポイント信号を受信した場合のキャッシュデータ待避制御回路の動作について説明するフローチャートである。
【図5】 本発明の第1の実施の形態において、プロセッサからのキャッシュ読み出しの動作時のキャッシュメモリの動作について説明するフローチャートである。
【図6】 本発明の第1の実施の形態において、プロセッサからのキャッシュ書き込みの動作時のキャッシュメモリの動作について説明するフローチャートである。
【図7】 本発明の第1の実施の形態において、プロセッサからのキャッシュ書き込みの動作時のキャッシュデータ待避部の動作について説明するフローチャートである。
【図8】 本発明の第1の実施の形態において、システムバスを経由して、他のキャッシュメモリからキャッシュ無効化要求を受信した場合のキャッシュシステムの動作について説明するフローチャートである。
【図9】 本発明の第1の実施の形態において、プロセッサでマイクロコード実行中に障害を検出した場合のキャッシュシステムの動作について説明するフローチャートである。
【図10】 本発明の第2の実施の形態によるキャッシュメモリとキャッシュデータ待避部の構成を示す図である。
【符号の説明】
10 中央処理装置
11 キャッシュメモリ
12 キャシュデータ待避部
13 プロセッサ
20 主記憶
30 システムバス
111 アドレスアレイ
112 データアレイ
113 キャッシュ制御回路
121 アドレスレジスタ
122 書き込みアドレスアレイ
123 アドレス比較器
124 キャッシュデータ待避制御回路
125 待避データアレイ
126 書き込みアドレスレジスタ
127 待避データレジスタ
200 チェックポイント信号
201 キャッシュ読み出し要求信号
202 キャッシュ書き込み要求信号
203 待避データ無効化信号
204 障害検出信号
1241 リトライ不可フラグ
Claims (10)
- 命令コードをマイクロコードに展開して実行する方式のプロセッサを備えた中央処理装置を、主記憶とシステムバスを介して接続したキャッシュシステムにおいて、
キャッシュメモリ、前記プロセッサ及び主記憶のインターフェース機能をもち、前記キャッシュメモリへの書き込みと併せてキャッシュデータをキャッシュデータ待避部に待避させるキャッシュ制御回路をキャッシュメモリに備え、
前記プロセッサでマイクロコードの実行中に障害を検出した場合、あらかじめ待避しておいた前記マイクロコードに先行するマイクロコードによって更新された、前記プロセッサからの書き込み要求により書き込む対象になったアドレスに対する前記書き込み要求による書き込み用データを、キャッシュメモリに書き戻すことにより、前記マイクロコードのシーケンスを実行し始める直前の状態に復旧する前記キャッシュデータ待避部を前記キャッシュメモリに対応させて前記中央処理装置内に備えたことを特徴とするキャッシュシステム。 - 前記キャッシュデータ待避部が、
前記書き込み用データの待避動作および前記キャッシュメモリへの書き戻しを制御するキャッシュデータ待避制御回路と、
前記書き込み用データを格納する待避データ格納手段を備えたことを特徴とする請求項1に記載のキャッシュシステム。 - 書き込みアドレスが前記キャッシュデータ待避部に格納されているかを判定し、結果を信号として前記キャッシュデータ待避制御回路に送信するアドレス比較器を備えたことを特徴とする請求項2に記載のキャッシュシステム。
- 書き込みアドレスが前記キャッシュデータ待避部に格納されているかを判定し、結果を信号として前記キャッシュデータ待避制御回路に送信するアドレス比較器と、
前記書き込みアドレスを格納するアドレスレジスタと、
前記アドレス比較器で前記書き込みアドレスが前記キャッシュデータ待避部に格納されていないと判定された場合に、前記書き込みアドレスを格納する書き込みアドレス格納手段を備えたことを特徴とする請求項2に記載のキャッシュシステム。 - 前記待避データ格納手段を待避データアレイで構成し、前記書き込みアドレス格納手段を書き込みアドレスアレイで構成したことを特徴とする請求項4に記載のキャッシュシステム。
- 前記待避データ格納手段および前記書き込みアドレス格納手段を、それぞれ単一のレジスタで構成したことを特徴とする請求項4に記載のキャッシュシステム。
- 命令コードをマイクロコードに展開して実行する方式のプロセッサを備えた中央処理装置を、主記憶とシステムバスを介して接続したキャッシュシステムのキャッシュ制御方法において、
キャッシュメモリ、前記プロセッサ及び前記主記憶のインターフェース機能をもち、前記キャッシュメモリに備えられたキャッシュ制御回路が、キャッシュへの書き込みと併せてキャッシュデータをキャッシュデータ待避部に待避させ、
前記プロセッサでマイクロコードの実行中に障害を検出した場合、あらかじめ待避しておいた前記マイクロコードに先行するマイクロコードによって更新された、前記プロセッサからの書き込み要求により書き込む対象になったアドレスに対する前記書き込み要求による書き込み用データを、キャッシュメモリに書き戻すことにより、前記マイクロコードのシーケンスを実行し始める直前の状態に復旧することを特徴とするキャッシュシステムのキャッシュ制御方法。 - キャッシュデータ待避制御回路により前記書き込み用データの待避動作および前記キャッシュメモリへの書き戻しを制御するステップと、
待避データ格納手段に前記書き込み用データを格納するステップを備えたことを特徴とする請求項7に記載のキャッシュシステムのキャッシュ制御方法。 - アドレス比較器により書き込みアドレスが前記キャッシュデータ待避部に格納されているかを判定し、結果を信号として前記キャッシュデータ待避制御回路に送信するステップを備えたことを特徴とする請求項8に記載のキャッシュシステムのキャッシュ制御方法。
- アドレスレジスタに、書き込みアドレスを格納するステップと、
前記アドレス比較器で前記書き込みアドレスが前記キャッシュデータ待避部に格納されていないと判定された場合に、前記書き込みアドレスを書き込みアドレス格納手段に格納するステップを備えたことを特徴とする請求項9に記載のキャッシュシステムのキャッシュ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001201663A JP3804823B2 (ja) | 2001-07-03 | 2001-07-03 | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001201663A JP3804823B2 (ja) | 2001-07-03 | 2001-07-03 | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003015956A JP2003015956A (ja) | 2003-01-17 |
JP3804823B2 true JP3804823B2 (ja) | 2006-08-02 |
Family
ID=19038583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001201663A Expired - Fee Related JP3804823B2 (ja) | 2001-07-03 | 2001-07-03 | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3804823B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6218652B2 (ja) * | 2014-03-12 | 2017-10-25 | 三菱電機株式会社 | 計算機、障害処理方法及びプログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS503553A (ja) * | 1973-05-14 | 1975-01-14 | ||
JPS58154043A (ja) * | 1982-03-10 | 1983-09-13 | Hitachi Ltd | 情報処理装置 |
JPS5968060A (ja) * | 1982-10-13 | 1984-04-17 | Hitachi Ltd | 制御メモリの再試行方式 |
US4740969A (en) * | 1986-06-27 | 1988-04-26 | Hewlett-Packard Company | Method and apparatus for recovering from hardware faults |
JPH0752399B2 (ja) * | 1988-06-30 | 1995-06-05 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 記憶システム |
JP2902976B2 (ja) * | 1995-06-19 | 1999-06-07 | 株式会社東芝 | キャッシュフラッシュ装置 |
JP2916420B2 (ja) * | 1996-09-04 | 1999-07-05 | 株式会社東芝 | チェックポイント処理加速装置およびデータ処理方法 |
JP2916421B2 (ja) * | 1996-09-09 | 1999-07-05 | 株式会社東芝 | キャッシュフラッシュ装置およびデータ処理方法 |
US5926832A (en) * | 1996-09-26 | 1999-07-20 | Transmeta Corporation | Method and apparatus for aliasing memory data in an advanced microprocessor |
JP2000010809A (ja) * | 1998-06-19 | 2000-01-14 | Toshiba Corp | データバックアップ制御装置、及びデータバックアップ制御方法 |
-
2001
- 2001-07-03 JP JP2001201663A patent/JP3804823B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003015956A (ja) | 2003-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2916420B2 (ja) | チェックポイント処理加速装置およびデータ処理方法 | |
US10261869B2 (en) | Transaction processing using torn write detection | |
US8327188B2 (en) | Hardware transactional memory acceleration through multiple failure recovery | |
EP0348652B1 (en) | Checkpoint retry system | |
US6708288B1 (en) | Compiler-based checkpointing for support of error recovery | |
US6968476B2 (en) | Checkpointing a superscalar, out-of-order processor for error recovery | |
EP0828217B1 (en) | Cache flush apparatus and computer system having the same | |
JPH0812619B2 (ja) | リカバリ制御システム及びエラー回復方法 | |
US6766428B2 (en) | Method and apparatus for storing prior versions of modified values to facilitate reliable execution | |
JP2003502754A (ja) | 先進のマイクロプロセッサにおけるスケジューリング強化方法および装置 | |
US5003458A (en) | Suspended instruction restart processing system based on a checkpoint microprogram address | |
JPH11316680A (ja) | デ―タ処理システムにおいてレジスタを保存し且つ回復するシステム及び方法 | |
WO2013101144A1 (en) | Overlapping atomic regions in a processor | |
CN112236750A (zh) | 处理支持事务存储器的设备中的独占式加载指令 | |
JP3804823B2 (ja) | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 | |
JPH08137751A (ja) | プロセッサ装置及びその制御方法 | |
JPH06149485A (ja) | データ完結性保証処理方法 | |
KR100365891B1 (ko) | 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법 | |
US7934067B2 (en) | Data update history storage apparatus and data update history storage method | |
WO2020082008A1 (en) | Using non-volatile memory to improve the availability of an in-memory database | |
JPH07295883A (ja) | 情報処理装置 | |
JPH0133856B2 (ja) | ||
JPH05165663A (ja) | データ処理装置 | |
JPS59172044A (ja) | 命令制御方式 | |
JPH05108388A (ja) | プロセス復旧方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050804 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060411 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060420 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060503 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110519 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110519 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120519 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120519 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130519 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |