JP3931757B2 - 共有キャッシュメモリ障害処理方式 - Google Patents
共有キャッシュメモリ障害処理方式 Download PDFInfo
- Publication number
- JP3931757B2 JP3931757B2 JP2002217788A JP2002217788A JP3931757B2 JP 3931757 B2 JP3931757 B2 JP 3931757B2 JP 2002217788 A JP2002217788 A JP 2002217788A JP 2002217788 A JP2002217788 A JP 2002217788A JP 3931757 B2 JP3931757 B2 JP 3931757B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- failure
- compartment
- shared cache
- shared
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は共有キャッシュメモリ障害処理方式に関し、特に複数のプロセッサから共有されているキャッシュメモリに発生した障害が影響する範囲を限定しながらシステム運用を継続させる共有キャッシュメモリ障害処理方式に関する。
【0002】
【従来の技術】
図7は、共有キャッシュメモリを備えるコンピュータシステムの例を示す説明図である。同図において、共有キャッシュユニット21及び22は同等の構成からなる共有キャッシュであり、それぞれプロセッサ11,12及び13,14に共有されている。また他方で、共有キャッシュユニット21,22はシステムバス31を介して主記憶41に接続される。
【0003】
昨今、このようなシステムにおいて、プロセッサや主記憶などのリソースを複数の区画に論理的に分割し、それぞれを独立したシステムとして運用する事が可能である。この場合、各区画に属するプロセッサからのメモリアクセスはプロセッサから送出される時点で区画に割り当てられたメモリ領域の先頭アドレスをオフセット値として加算されることにより、ソフトウェアは他の区画の存在を意識することなく命令を実行することが出来るようになっている。
【0004】
しかしながら、各区画毎の信頼性を考えるとき、図を参照しても判るように複数の区画で共有されるユニット、例えば共有キャッシュユニット21は区画1と区画2の単一故障点(SPOF:Single Point Of Failure)であり、キャッシュメモリの故障によって2つの区画がシステムダウンに至るという問題がある。
【0005】
【発明が解決しようとする課題】
上記のように、従来の共有キャッシュメモリを備えたコンピュータシステムでは、複数の区画から共用されているキャッシュメモリに障害が発生した場合に、それが訂正不可能な障害であれば、それぞれの区画がシステムダウンすることになるという欠点がある。
【0006】
本発明の目的は、上記のような問題点を改善するために、キャッシュメモリに発生した障害位置を特定し、その障害が影響する区画を限定するようにし、その障害の波及範囲を極力狭くすることができる共有キャッシュメモリ障害処理方式を提供することにある。
【0007】
【課題を解決するための手段】
本発明の共有キャッシュメモリ障害処理方式は、複数のコンパートメントを有し複数のプロセッサに共有された共有キャッシュメモリにおいて、各プロセッサごとに利用可能なコンパートメントをあらかじめ割り当て、任意の複数の区画に分かれたプロセッサから前記共有キャッシュメモリを共有する場合、キャッシュ索引時に訂正不可能な障害を検出したとき、前記障害が影響する区画を特定し、その障害を処理する手段を具備することを特徴とする。
【0008】
また、本発明の共有キャッシュメモリ障害処理方式は、複数のコンパートメントを有し複数のプロセッサに共有された共有キャッシュメモリにおいて、それぞれのプロセッサにどのコンパートメントを割り当てるかを示す構成情報を保持するコンパートメント指示回路と、任意のプロセッサからの要求によりキャッシュを索引するとき要求元のプロセッサに割り当てられていないコンパートメントのヒット判定を抑止するアドレス比較回路と、キャッシュへデータを登録するとき前記コンパートメント指示回路が保持する構成情報に従って要求元のプロセッサに割り当てられたコンパートメントを選択するリプレースエントリ生成回路と、キャッシュ索引時に訂正不可能な障害を検出したときそのコンパートメント番号を通知する障害検出回路と、前記障害検出回路からの通知に基づいて前記障害が影響する区画を特定し前記構成情報を更新して前記コンパートメント指示回路へ通知し障害処理を行う共有キャッシュ制御部とを有することを特徴とする。
【0009】
さらに、上記の共有キャッシュメモリ障害処理方式において、前記コンパートメント指示回路は、キャッシュのコンパートメント数に等しいビット幅および前記キャッシュに接続されるプロセッサ数に等しいワード数を含むレジスタ群を備え、前記共有キャッシュ制御部から前記構成情報を得てそれを保持し、さらに前記共有キャッシュ制御部からプロセッサID信号を得てコンパートメント割当情報を生成し、それを前記アドレス比較回路および前記リプレースエントリ生成回路へ通知することを特徴とする。
【0010】
また、本発明の共有キャッシュメモリ障害処理方式は、複数のコンパートメントを有し複数のプロセッサに共有された共有キャッシュメモリにおいて、キャッシュに発生した障害の回数をコンパートメントごとに保持する障害履歴レジスタと、キャッシュへデータを登録するとき前記障害履歴レジスタの情報を参照してデータを登録するコンパートメントを決定しキャッシュに指示するリプレースエントリ生成回路と、キャッシュ索引時に訂正不可能な障害を検出したときそのコンパートメント番号を共有キャッシュ制御部に通知する障害検出回路と、任意のプロセッサからの要求によりキャッシュにアクセスした際にミスヒットによりデータを登録する場合には前記障害履歴レジスタの情報を参照し障害履歴を持たないコンパートメントを選択することを前記リプレースエントリ生成回路に指示する共有キャッシュ制御部とを有することを特徴とする。
【0011】
さらに、上記の共有キャッシュメモリ障害処理方式において、前記障害履歴レジスタは、キャッシュのコンパートメント数に等しいワード数および管理すべき障害回数を保持可能なビット幅を含むレジスタ群を備え、前記共有キャッシュ制御部が送出する障害情報を障害履歴情報としてコンパートメントごとに保持し、それを前記リプレースエントリ生成回路および前記共有キャッシュ制御部へ送出することを特徴とする。
【0012】
さらに、本発明の共有キャッシュメモリ障害処理方式において、前記共有キャッシュ制御部は、前記障害検出回路から受信した障害情報を診断プロセッサに通知し、前記診断プロセッサの診断結果に基づいてその障害の処理を実行することを特徴とする。
【0013】
すなわち、本発明によるキャッシュメモリは、複数のコンパートメントからなるセットアソシアティブ方式の共有キャッシュであって、キャッシュを共有するプロセッサ毎に利用可能なコンパートメントを予め割り当てることができる。これにより共有キャッシュを複数の区画に分かれたプロセッサから共有する場合、キャッシュで訂正不能な障害が発生した際のシステムダウンに至る区画を特定し、障害の波及範囲を限定することができる。
【0014】
また、本発明による共有キャッシュメモリは、コンパートメント毎に当該コンパートメントの障害履歴を保持する障害履歴レジスタを備えることにより、キャッシュコンパートメントの障害履歴を管理すると共に、キャッシュミスヒットに伴うリプレースエントリを決定する際に障害履歴をもつコンパートメントへの登録を抑止することができる。
【0015】
さらに、障害の履歴を管理することにより、キャッシュメモリで障害を検出した際に障害履歴レジスタを参照し、当該コンパートメントで繰り返し障害が発生していることが判明した場合は、キャッシュメモリの動作を停止し、システムダウンに移行することが可能である。
【0016】
本発明は、特にコンピュータシステムを複数の論理区画に分割して各々の区画で独立してオペレーティングシステムを稼動させうるシステムについて、複数の区画からキャッシュメモリを共有する場合において有効であり、キャッシュで訂正不能な障害が発生した区画を特定し、障害の波及範囲を限定すると共に、他の区画の動作には影響を与えず運用を継続することができる。
【0017】
【発明の実施の形態】
以下、本発明について図面を参照しながら説明する。
【0018】
図1は本発明の実施の第一の形態を示すブロック図である。同図において、本発明による共有キャッシュメモリ障害処理方式は、複数のコンパートメントを有し複数のプロセッサ11および12に共有された共有キャッシュユニット21において、それぞれのプロセッサにどのコンパートメントを割り当てるかを示す構成情報を保持するコンパートメント指示回路52と、任意のプロセッサからの要求によりキャッシュを索引するとき要求元のプロセッサに割り当てられていないコンパートメントのヒット判定を抑止するアドレス比較回路59と、キャッシュへデータを登録するとき前記コンパートメント指示回路が保持する構成情報に従って要求元のプロセッサに割り当てられたコンパートメントを選択するリプレースエントリ生成回路55と、キャッシュ索引時に訂正不可能な障害を検出したときそのコンパートメント番号を通知する障害検出回路58と、前記障害検出回路からの通知に基づいて前記障害が影響する区画を特定し前記構成情報を更新して前記コンパートメント指示回路へ通知し障害処理を行う共有キャッシュ制御部51とを有する。
【0019】
すなわち、プロセッサ11,12の各々にどのキャッシュコンパートメントを割り当てるかを示す構成情報がコンパートメント指示回路52に保持される。プロセッサ11ないし12からの要求によりキャッシュを索引する際に、アドレス比較回路59は要求元のプロセッサに割り当てられていないキャッシュコンパートメントのヒットを判定を抑止する。
【0020】
また、キャッシュへデータ登録する際には、リプレースエントリ生成回路55は要求元のプロセッサに割り当てられたキャッシュコンパートメントの中から登録すべきコンパートメントを選択する。これにより、コンパートメント指示回路52が保持する構成情報に従ってプロセッサ毎に利用可能なキャッシュコンパートメントを任意に割り当てることが可能となる。
【0021】
また、キャッシュ索引時に障害検出回路58により訂正不可能なエラーを検出すると、共有キャッシュ制御部51は診断プロセッサへエラー報告と共に要求元のプロセッサ番号を通知する。これにより診断プロセッサは障害の影響を受ける区画を特定し、当該区画をシステムダウンさせる。
【0022】
図1を参照すると、共有キャッシュ制御部51は、プロセッサ11,12及びシステムバス31に接続されるとともに、共有キャッシュユニット21内の制御機能を有する。
【0023】
コンパートメント指示回路52は、共有キャッシュ制御部51,リプレースエントリ生成回路55,アドレス比較回路59に接続され、キャッシュ索引の際に索引要求元に対してどのキャッシュコンパートメントが割り当てられており有効かを示す情報を出力する。
【0024】
LRUメモリ53は、キャッシュのLRU(Least Recently Used)制御に用いるメモリで、キャッシュのライン毎に1bitの情報を保持する。
【0025】
アドレス生成部54は、共有キャッシュ制御部51からキャッシュ索引アドレスを入力して保持し、そのアドレスの一部をキャッシュ索引アドレス及びキーとして出力する。
【0026】
リプレースエントリ生成回路55は、共有キャッシュ制御部51,コンパートメント指示回路52,LRUメモリ53に接続され、キャッシュへのデータ登録時に登録すべきキャッシュコンパートメントを決定し、キャッシュアドレスアレイ(AA)56及びキャッシュデータアレイ(DA)57に対して、決定したコンパートメントへの書き込み指示を出力する。
【0027】
上記の共有キャッシュは、2ウェイセットアソシアティブ方式のストアインキャッシュあって、キャッシュのキーアドレスを格納するキャッシュAA56及びデータブロックを格納するキャッシュDA57は、それぞれ2つのコンパートメントからなるメモリアレイを構成する。
【0028】
アドレス比較回路59はキャッシュAA56,コンパートメント指示回路52,アドレス生成部54から信号を入力し、キャッシュヒット判定を行い、判定結果を出力する。
【0029】
データセレクタ60は、アドレス比較回路59からの出力を受け取り、キャッシュDA57から読み出したデータのうちいずれかのコンパートメントからの出力を選択し、出力する。
【0030】
障害検出回路58は、キャッシュAA56及びキャッシュDA57から読み出した値のパリティチェックを行い、エラーを検出した場合にそのコンパートメントの番号を共有キャッシュ制御部51へ出力する。
【0031】
図2は、コンパートメント指示回路52及びリプレースエントリ生成回路55の例を示す構成図である。
【0032】
図2において、コンパートメント指示回路52は、2ビット幅のレジスタの2ワードからなるレジスタ群により構成される。ここでレジスタのビット幅はキャッシュのコンパートメント数に等しく、ワード数は共有キャッシュユニット21に直接接続されるプロセッサ数に等しい。これらのレジスタ群は、共有キャッシュ制御部51より入力されるキャッシュコンパートメント毎の割り当て構成情報を保持する。
【0033】
また、コンパートメント指示回路52は、共有キャッシュ制御部51からレジスタの各ワードに対応する2本の要求元ID信号が入力され、レジスタ群の各ビット単位に要求元ID信号が”1”のワードに格納される値の論理和が出力され、コンパートメントの割り当て情報としてリプレースエントリ生成回路55とアドレス比較回路59へ分配される。
【0034】
さらに、図2を参照すると、リプレースエントリ生成回路55は、単純な組み合わせ回路により実現される。図3に、この組み合わせ回路の真理値を示す。
【0035】
次に、上記の共有キャッシュメモリの動作について説明する。
【0036】
(1−1)共有キャッシュメモリの初期化
システムの立ち上げ時、共有キャッシュメモリの初期化動作を行う場合には、通常キャッシュメモリの初期化時に行われるようなキャッシュAA56及びキャッシュDA57,LRUメモリ53のクリア動作に加えて、コンパートメント指示回路52への初期設定が行われる。
【0037】
コンパートメント指示回路52は、図2に既述したように、共有キャッシュメモリに接続される各プロセッサと共有キャッシュメモリの各コンパートメントの対応付けの情報を格納するレジスタから構成されており、この設定情報は外部の診断プロセッサからの制御により設定される。
【0038】
図2では、設定の一例としてプロセッサ11に共有キャッシュメモリのコンパートメント0,プロセッサ12に共有キャッシュメモリのコンパートメント1が割り付けられている例を図示した。
【0039】
(1−2)キャッシュメモリからの読み出し
続いて、プロセッサ11及び12から共有キャッシュメモリを読み出す場合の動作を説明すると、まずプロセッサからの読み出し要求は共有キャッシュ制御部51へ送られ、共有キャッシュ制御部51が共有キャッシュメモリの読み出しを開始する。
【0040】
共有キャッシュ制御部51は読み出し要求元のプロセッサ番号に該当するID信号をコンパートメント指示回路52に送出し、当該プロセッサに割り当てられた共有キャッシュのコンパートメント割り当て情報を得る。
【0041】
一方で、共有キャッシュ制御部51から読み出しアドレスがアドレス生成部54へ送られ、キャッシュAA56及びキャッシュDA57の索引アドレスを得て各々のメモリアレイを索引するとともに、索引キーをアドレス比較回路59へ渡す。
【0042】
アドレス比較回路59では、キャッシュAA56とアドレス生成部54から得た索引キーを比較し、キャッシュメモリのヒット判定を行うが、この時コンパートメント指示回路52からのコンパートメント割り当て情報により、読み出し要求元のプロセッサに割り当てられていないコンパートメントのヒット判定をマスクする。データセレクタ60では、このヒット判定結果を得てキャッシュDA57出力のデータのうち何れかを選択して共有キャッシュ制御部51へ渡す。
【0043】
この時、キャッシュヒットした場合は、共有キャッシュ制御部は取り出したデータをプロセッサへ送出して一連の動作が完了するが、キャッシュミスした場合はさらに主記憶41からのデータの取り出しを伴う。
【0044】
まず、アドレス比較回路59からキャッシュミスヒットの通知を受け取った共有キャッシュ制御部は、システムバス31へ要求アドレスの読み出し要求を送出する。
【0045】
続いて、LRUメモリ53は所定の論理に従ってリプレースすべきキャッシュコンパートメントを決定するが、この情報はリプレースエントリ生成回路55においてコンパートメント指示回路52から得られるコンパートメント割り当て情報によってマスクされ、要求元のプロセッサに割り当てられたコンパートメントの中から一つのコンパートメントを得る。
【0046】
共有キャッシュ制御部は、キャッシュAA56及びキャッシュDA57から当該コンパートメントのデータを読み出し、当該データが更新されていれば(キャッシュ中に”ダーティ”ブロックとして登録されていれば)システムバス31を経由して当該データを主記憶へ書き戻すことでリプレース動作が完了する。
【0047】
続いてシステムバス31への読み出し要求に応じて主記憶41または他の共有キャッシュが応答を返してくるので、共有キャッシュ制御部51は当該要求アドレス及びデータをキャッシュAA56及びキャッシュDA57の予め決定されたコンパートメントへ書き込むと同時に要求元のプロセッサへ送出する。
【0048】
(1−3)キャッシュメモリへの書き込み
次に、プロセッサ11及び12から共有キャッシュメモリへの書き込み動作を説明すると、まずプロセッサからの書き込み要求では、読み出しの場合と同様に共有キャッシュメモリの索引が行われる。
【0049】
キャッシュヒットした場合は、共有キャッシュ制御部51からキャッシュAA56及びキャッシュDA57の当該エントリへ要求アドレスの書き込み、LRUメモリ53の更新が行われて書き込み動作が完了する。
【0050】
キャッシュミスした場合は、読み出し時のミスヒットと同様にまず主記憶ないし他の共有キャッシュメモリから当該共有キャッシュメモリへのデータの登録と、必要に応じてキャッシュのリプレース動作が行われた後、キャッシュヒットした場合と同様に共有キャッシュメモリへの書き込みが行われ、動作が完了する。
【0051】
(1−4)バススヌープ動作
上記に説明したキャッシュの読み出し・書き込み動作の他、上記の共有キャッシュメモリの構成ではバススヌープによるキャッシュの索引及びデータの掃き出し・更新動作が必要となる。個々の索引動作・掃き出し動作・更新動作については、これまでの説明にて記述した動作と同様であるので、ここでは繰り返して説明は行わない。
【0052】
(1−5)キャッシュ障害発生時の動作
プロセッサ11ないし12からの読み出し要求や、キャッシュミス時のリプレース動作に伴う読み出し動作において、障害検出回路58が障害を検出した場合、共有キャッシュ制御部51は共有キャッシュメモリの読み出し動作を中断して共有キャッシュユニット21の動作を一次保留(HOLD)し、障害が発生したことを外部の診断プロセッサへ通知して以後の障害処理を委ねる。
【0053】
診断プロセッサでは、キャッシュメモリの訂正不能障害の通知を受け取ると、共有キャッシュ制御部51を介して障害コンパートメントの番号とプロセッサとキャッシュコンパートメントの割り当て情報を取り出し、障害が波及する論理区画を特定した後、当該論理区画をシステムダウンさせる処理を開始する。
【0054】
一方で、当該の共有キャッシュメモリに障害が波及しない論理区画が含まれている場合は、コンパートメント指示回路52の設定情報を更新して障害が発生した論理区画からのアクセスを抑止した後、共有キャッシュユニットの保留(HOLD)を解除し、運用を再開する。
【0055】
図4は本発明の実施の第二の形態を示すブロック図である。同図において、本発明による共有キャッシュメモリ障害処理方式は、複数のコンパートメントを有し複数のプロセッサ11および12に共有された共有キャッシュユニット21aにおいて、キャッシュに発生した障害の回数をコンパートメントごとに保持する障害履歴レジスタ62と、キャッシュへデータを登録するとき前記障害履歴レジスタの情報を参照してデータを登録するコンパートメントを決定しキャッシュに指示するリプレースエントリ生成回路65と、キャッシュ索引時に訂正不可能な障害を検出したときそのコンパートメント番号を共有キャッシュ制御部に通知する障害検出回路68と、任意のプロセッサからの要求によりキャッシュにアクセスした際にミスヒットによりデータを登録する場合には前記障害履歴レジスタの情報を参照し障害履歴を持たないコンパートメントを選択することを前記リプレースエントリ生成回路65に指示する共有キャッシュ制御部61とを有する。
【0056】
すなわち、タグを格納するキャッシュアドレスアレイ(AA)66およびデータを格納するキャッシュデータアレイ(DA)67の障害が発生した回数を示す値をキャッシュコンパートメント毎に保持するレジスタが障害履歴レジスタ62である。障害履歴レジスタ62はキャッシュコンパートメント毎に複数ビットの情報を持ち、その各々をORした情報が障害履歴として出力される。
【0057】
プロセッサ11または12からの要求でキャッシュミスヒットによりキャッシュへデータ登録する際には、リプレースエントリ生成回路65が障害が発生した履歴を持たないキャッシュコンパートメントの中から登録すべきコンパートメントを選択する。これにより、障害履歴を持つコンパートメントへの新規の登録を抑止し、実際に障害が発生したキャッシュラインが上書きされて再利用されることがないようにできる。
【0058】
図4を参照すると、共有キャッシュ制御部61はプロセッサ11,12及びシステムバス31に接続されるとともに、共有キャッシュユニット21a内の制御機能を有する。
【0059】
障害履歴レジスタ62は、共有キャッシュ制御部61およびリプレースエントリ生成回路65に接続され、タグを格納するキャッシュアドレスアレイ(AA)66およびデータを格納するキャッシュデータアレイ(DA)67の障害が発生した回数を示す値をキャッシュコンパートメント毎に保持する。
【0060】
LRUメモリ63は、キャッシュのLRU(Least Recently Used)制御に用いるメモリで、キャッシュのライン毎に1bitの情報を保持する。
【0061】
アドレス生成部64は、共有キャッシュ制御部61からキャッシュ索引アドレスを入力して保持し、そのアドレスの一部をキャッシュ索引アドレス及びキーとして出力する。
【0062】
リプレースエントリ生成回路65は、共有キャッシュ制御部61,障害履歴レジスタ62,LRUメモリ63に接続され、キャッシュへのデータ登録時に登録すべきキャッシュコンパートメントを決定し、キャッシュアドレスアレイ(AA)66及びキャッシュデータアレイ(DA)67に対して、決定したコンパートメントへの書き込み指示を出力する。
【0063】
上記の共有キャッシュは、2ウェイセットアソシアティブ方式のストアインキャッシュであって、キャッシュAA66及びキャッシュDA67はそれぞれ2つのコンパートメントからなるメモリアレイを構成する。
【0064】
アドレス比較回路69は、キャッシュAA66及びアドレス生成部64から信号を入力し、キャッシュヒット判定を行い、判定結果を出力する。この時、ヒット判定結果は障害履歴レジスタ62が格納する障害履歴情報に影響されず、障害履歴が残っているコンパートメントであってもキーが一致した場合はキャッシュヒットとして判定結果を出力する。
【0065】
データセレクタ70は、アドレス比較回路69からの出力を受け取り、キャッシュDA67から読み出したデータのうちいずれかのコンパートメントからの出力を選択し出力する。
【0066】
障害検出回路68は、キャッシュAA66及びキャッシュDA67から読み出した値のパリティチェックを行い、エラーを検出した場合にそのコンパートメントの番号を共有キャッシュ制御部61へ出力する。
【0067】
図5は、障害履歴レジスタ62及びリプレースエントリ生成回路65の例を示す構成図である。
【0068】
同図において、障害履歴レジスタ62は、2ビット幅のレジスタの2ワードからなるレジスタ群により構成される。ここでレジスタのワード数はキャッシュのコンパートメント数に等しく、ビット幅は管理すべき障害履歴の回数表示が可能な幅が必要である。これらのレジスタ群は、共有キャッシュ制御部61よりセットされるキャッシュコンパートメント毎の障害履歴情報を保持する。保持される情報の全ては、共有キャッシュ制御部61及びリプレースエントリ生成回路65へ分配される。
【0069】
さらに、リプレースエントリ生成回路65は、同図に示すように単純な組み合わせ回路により実現される。図6に、この組み合わせ回路の真理値を示す。
【0070】
次に、上記の共有キャッシュメモリの動作について説明する。
【0071】
(2−1)共有キャッシュメモリの初期化
システムの立ち上げ時、共有キャッシュメモリの初期化動作を行う場合には、通常キャッシュメモリの初期化時に行われるようなキャッシュAA66及びキャッシュDA67,LRUメモリ63のクリア動作に加えて、障害履歴レジスタ62への初期設定が行われる。
【0072】
障害履歴レジスタ62は、図5に示したように、共有キャッシュメモリの各コンパートメント毎の障害履歴情報を格納するレジスタから構成されており、この履歴情報はシステム運用中に障害が発生した際に共有キャッシュ制御部61により書き換えられる。ここでは、システム動作中の一状態を示すため、適当な値を選んで図中に表示してある。
【0073】
(2−2)キャッシュメモリからの読み出し
続いて、プロセッサ11及び12から共有キャッシュメモリを読み出す場合の動作を説明すると、まずプロセッサからの読み出し要求は共有キャッシュ制御部61へ送られ、共有キャッシュ制御部61が共有キャッシュメモリの読み出しを開始する。
【0074】
すなわち、共有キャッシュ制御部61から読み出しアドレスがアドレス生成部64へ送られ、キャッシュAA66及びキャッシュDA67の索引アドレスを得て各々のメモリアレイを索引するとともに、索引キーをアドレス比較回路69へ渡す。
【0075】
アドレス比較回路69では、キャッシュAA66とアドレス生成部64から得た索引キーを比較し、キャッシュメモリのヒット判定を行う。データセレクタ70では、このヒット判定結果を得てキャッシュDA67出力のデータのうち何れかを選択して共有キャッシュ制御部61へ渡す。
【0076】
この時、キャッシュヒットした場合は、共有キャッシュ制御部は取り出したデータをプロセッサへ送出して一連の動作が完了するが、キャッシュミスした場合はさらに主記憶41からのデータの取り出しを伴う。
【0077】
まず、アドレス比較回路69からキャッシュミスヒットの通知を受け取った共有キャッシュ制御部61は、システムバス31へ要求アドレスの読み出し要求を送出する。
【0078】
続いて、LRUメモリ63に格納されるLRU情報により所定の論理に従ってリプレースすべきキャッシュコンパートメントを決定するが、この情報はリプレースエントリ生成回路65において障害履歴レジスタ62から得られる障害履歴情報によってマスクされ、障害履歴を持たないコンパートメントの中から新規の登録を行うべきコンパートメント番号を得る。
【0079】
共有キャッシュ制御部61は、キャッシュAA66及びキャッシュDA67から当該コンパートメントのデータを読み出し、当該データが更新されていれば(キャッシュ中に”ダーティ”ブロックとして登録されていれば)システムバス31を経由して当該データを主記憶41へ書き戻すことでリプレース動作が完了する。
【0080】
続いて、システムバス31への読み出し要求に応じて主記憶41または他の共有キャッシュメモリが応答を返してくるので、共有キャッシュ制御部61は当該要求アドレス及びデータをキャッシュAA66及びキャッシュDA67の予め決定されたコンパートメントへ書き込むと同時に要求元のプロセッサへ送出して一連の動作を完了する。
【0081】
(2−3)キャッシュメモリへの書き込み
次に、プロセッサ11及び12から共有キャッシュメモリへの書き込み動作を説明すると、まずプロセッサからの書き込み要求では、読み出しの場合と同様に共有キャッシュメモリの索引が行われる。
【0082】
キャッシュヒットした場合は、共有キャッシュ制御部61からキャッシュAA66及びキャッシュDA67の当該エントリへ要求アドレスの書き込み、LRUメモリ63の更新が行われて書き込み動作が完了する。
【0083】
キャッシュミスした場合は、読み出し時のミスヒットと同様に、まず主記憶41もしくは他の共有キャッシュメモリから当該共有キャッシュメモリへのデータの登録と、必要に応じてキャッシュのリプレース動作が行われた後、キャッシュヒットした場合と同様に共有キャッシュメモリへの書き込みが行われ、動作が完了する。
【0084】
(2−4)バススヌープ動作
上記に説明したキャッシュの読み出し・書き込み動作の他、上記の共有キャッシュメモリの構成ではバススヌープによるキャッシュの索引及びデータの掃き出し・更新動作が必要となる。個々の索引動作・掃き出し動作・更新動作については、これまでの説明にて記述した動作と同様であるので、ここでは繰り返して説明は行わない。
【0085】
(2−5)キャッシュ障害発生時の動作
プロセッサ11や12からの読み出し要求において、障害検出回路68が障害を検出した場合、共有キャッシュ制御部61は読み出したデータを破壊された(POISONED)データとして要求元のプロセッサへ送出する。破壊されたデータを受け取ったプロセッサは、処理の継続が不可能と判断して当該プロセッサを含む区画をシステムダウンさせるなどの処理を開始するが、このプロセスについては本発明の説明の範囲を超えるので詳しくは言及しない。
【0086】
続いて、共有キャッシュ制御部61は障害履歴レジスタ62の値を読み出し、障害が発生したコンパートメントに対応するワードの値を+1加算して再び障害履歴レジスタ62へ書き戻すことで、以後のキャッシュリプレース動作等で新規に当該コンパートメントにデータが登録されることがないようにする。
【0087】
この時、読み出した障害履歴情報の値が規定値(ここでは”11”とする)であった場合は、同一コンパートメントでの障害が規定回数以上繰り返されたと判断して、共有キャッシュユニット21の動作を保留(HOLD)し、繰り返し障害が発生したことを外部の診断プロセッサ(図示せず)へ通知して以後の障害処理を委ねる。
【0088】
診断プロセッサは通知を受け取ると、全ての区画を含むシステムをダウンさせるなどの障害処理を実行する。
【0089】
読み出した障害履歴情報の値が規定値を超えていなかった場合は、共有キャッシュ制御部61はさらにキャッシュAA66の障害が発生したラインをフラッシュし、破壊されたデータを破棄する。
【0090】
また、キャッシュミス時のリプレース動作や書き込みに伴う読み出し動作時に障害を検出した場合は、上記の読み出しの場合と同様の手段でプロセッサに障害を通知することが出来ないので、共有キャッシュ制御部61はキャッシュアクセスに使用されたアドレスから当該アドレスに対応する区画を特定しようと試みる。
【0091】
上記の共有キャッシュメモリのように、複数の区画を同時に稼働させる場合では、主記憶アドレスを各区画毎に割り当てた上でプロセッサからの主記憶アクセスは各区画毎のオフセット値を加算することで行われる。このオフセット値の加算はプロセッサ内部で行われることを想定しており、これにより各区画のソフトウェアは他の区画の存在を意識することなく実行することが可能となっている。従って障害を検出したときのアドレスが分かれば、対応する区画を特定することは可能である。
【0092】
区画の特定に成功した場合は、共有キャッシュ制御部は当該区画に属するプロセッサのいずれかへ割り込み等の手段を用いて障害を通知する。通知を受け取ったプロセッサは、処理の継続が不可能と判断して当該区画をシステムダウンさせるなどの処理を開始する。
【0093】
万一区画の特定が出来なかった場合、共有キャッシュ制御部61は全区画を含むシステム全体の運用継続が不可能と判断して共有キャッシュユニット21の動作を保留(HOLD)し、致命的な障害が発生したことを外部の診断プロセッサへ通知して以後の障害処理を委ねる。
【0094】
さらに区画の特定に成功した場合は、前述の読み出しの場合と同様、以後の障害履歴レジスタ62の更新およびキャッシュラインのフラッシュ動作が行われて一連の障害時の動作を完了する。
【0095】
上記のように、キャッシュメモリの障害が発生してプロセッサへの通知,障害履歴レジスタの更新,および当該キャッシュラインのフラッシュが完了した後は、共有キャッシュユニット21は直ちに運用を継続して後続のメモリアクセス要求やバススヌープ動作を実行することが可能となる。従って障害が波及しない区画では、障害の影響を受けることなく運用を継続することが可能である。
【0096】
また、障害履歴により障害が発生したコンパートメントへの登録が抑止された後も、当該コンパートメントの障害が発生したライン以外の既に登録済みのライン(健全なデータ)からの読み出し・書き込みを行うことは可能である。キャッシュの障害時に一般に行われているようなコンパートメント縮退方式に比べると、本発明では縮退操作に伴うキャッシュの掃き出し処理が不要であり、障害処理手順が簡略化されている。
【0097】
なお、上記の実施の形態では、共有キャッシュメモリの構成を2ウェイセットアソシアティブ方式としたが、これをさらに多くのコンパートメントから構成することもできる。例えば、4ウェイセットアソシアティブ構成にする場合、LRUメモリにキャッシュの各ライン毎6ビットの情報を付与する必要があり、リプレースエントリ生成回路もより複雑な構成となるが、上記と同様の動作にて実現可能である。
【0098】
さらに、上記においては、障害検出回路はパリティ検出回路であったが、今日ミッションクリティカル用途のコンピュータシステムで通常用いられているようにECC(エラー訂正コード)による障害検出・訂正を行う事も可能である。
【0099】
また、本発明は、共有キャッシュに接続されるプロセッサやバスの数に依存することなく実現可能である。
【0100】
【発明の効果】
以上、詳細に説明したように、本発明によれば、共有キャッシュメモリにおいて訂正不可能な障害を検出した場合に、その障害が発生したキャッシュラインを利用している論理区画を容易に特定することができるので、障害を他の論理区画の動作に波及させることなく当該の区画のみに閉じた障害処理、例えばシステムダウンを行わせることが可能となる。
【0101】
さらに、キャッシュメモリは障害が発生した後も運用を継続することが可能であり、障害が波及する区画を除く他の区画に対しては影響を与えることなくシステムの運用を継続することができる。
【図面の簡単な説明】
【図1】本発明の実施の第一の形態を示すブロック図。
【図2】図1の主要部を示す構成図。
【図3】リプレースエントリ生成回路55の真理値を示す説明図。
【図4】本発明の実施の第二の形態を示すブロック図。
【図5】図4の主要部を示す構成図。
【図6】リプレースエントリ生成回路65の真理値を示す説明図。
【図7】本発明の従来例を示す説明図。
【符号の説明】
11,12,13,14 プロセッサ
21,21a,22 共有キャッシュユニット
31 システムバス
41 主記憶
51,61 共有キャッシュ制御部
52 コンパートメント指示回路
53,63 LRUメモリ
54,64 アドレス生成部
55,65 リプレースエントリ生成回路
56,66 キャッシュAA
57,67 キャッシュDA
58,68 障害検出回路
59,69 アドレス比較回路
60,70 データセレクタ
62 障害履歴レジスタ
Claims (3)
- 複数のコンパートメントを有し、複数の区画にそれぞれ属する複数のプロセッサに共有された共有キャッシュメモリにおいて、それぞれのプロセッサにどのコンパートメントを割り当てるかを示す構成情報を保持するコンパートメント指示回路と、任意のプロセッサからの要求によりキャッシュを索引するとき要求元のプロセッサに割り当てられていないコンパートメントのヒット判定を抑止するアドレス比較回路と、キャッシュへデータを登録するとき前記コンパートメント指示回路が保持する構成情報に従って要求元のプロセッサに割り当てられたコンパートメントを選択するリプレースエントリ生成回路と、キャッシュ索引時に訂正不可能な障害を検出したときそのコンパートメント番号を共有キャッシュ制御部に通知する障害検出回路と、前記障害検出回路からの通知に基づいて前記障害が影響する区画を特定し前記構成情報を更新して前記コンパートメント指示回路へ通知し障害処理を行う共有キャッシュ制御部とを有することを特徴とする共有キャッシュメモリ障害処理方式。
- 請求項1記載の共有キャッシュメモリ障害処理方式において、前記コンパートメント指示回路は、キャッシュのコンパートメント数に等しいビット幅および前記キャッシュに接続されるプロセッサ数に等しいワード数を含むレジスタ群を備え、前記共有キャッシュ制御部から前記構成情報を得てそれを保持し、さらに前記共有キャッシュ制御部からプロセッサID信号を得てコンパートメント割当情報を生成し、それを前記アドレス比較回路および前記リプレースエントリ生成回路へ通知することを特徴とする共有キャッシュメモリ障害処理方式。
- 請求項1または2記載の共有キャッシュメモリ障害処理方式において、前記共有キャッシュ制御部は、前記障害検出回路から受信した障害情報を診断プロセッサに通知し、前記診断プロセッサの診断結果に基づいてその障害の処理を実行することを特徴とする共有キャッシュメモリ障害処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002217788A JP3931757B2 (ja) | 2002-07-26 | 2002-07-26 | 共有キャッシュメモリ障害処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002217788A JP3931757B2 (ja) | 2002-07-26 | 2002-07-26 | 共有キャッシュメモリ障害処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004062377A JP2004062377A (ja) | 2004-02-26 |
JP3931757B2 true JP3931757B2 (ja) | 2007-06-20 |
Family
ID=31939153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002217788A Expired - Fee Related JP3931757B2 (ja) | 2002-07-26 | 2002-07-26 | 共有キャッシュメモリ障害処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3931757B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042725B2 (en) | 2013-09-06 | 2018-08-07 | Kabushiki Kaisha Toshiba | Memory control circuit, cache memory and memory control method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4036206B2 (ja) | 2004-03-31 | 2008-01-23 | 日本電気株式会社 | セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法 |
US7529997B2 (en) * | 2005-03-14 | 2009-05-05 | International Business Machines Corporation | Method for self-correcting cache using line delete, data logging, and fuse repair correction |
JP4860403B2 (ja) * | 2006-08-25 | 2012-01-25 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びメモリコントロール/コヒーレンシ制御装置並びにコヒーレンシ保証方法 |
JP2012190330A (ja) * | 2011-03-11 | 2012-10-04 | Toshiba Corp | キャッシュコントローラ、キャッシュ制御方法及びデータ記憶装置 |
JP5545250B2 (ja) * | 2011-03-22 | 2014-07-09 | 株式会社デンソー | 制御装置 |
CN115421946A (zh) * | 2022-07-30 | 2022-12-02 | 超聚变数字技术有限公司 | 内存故障处理方法、装置和存储介质 |
-
2002
- 2002-07-26 JP JP2002217788A patent/JP3931757B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042725B2 (en) | 2013-09-06 | 2018-08-07 | Kabushiki Kaisha Toshiba | Memory control circuit, cache memory and memory control method |
Also Published As
Publication number | Publication date |
---|---|
JP2004062377A (ja) | 2004-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0300166B1 (en) | Cache memory having a resiliency in processing a variety of address faults | |
US7447845B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality | |
US8977820B2 (en) | Handling of hard errors in a cache of a data processing apparatus | |
JP2549237B2 (ja) | データ処理システム | |
US7343515B1 (en) | System and method for performing error recovery in a data processing system having multiple processing partitions | |
JP3620473B2 (ja) | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 | |
US5355471A (en) | Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort | |
US5875201A (en) | Second level cache having instruction cache parity error control | |
US7533321B2 (en) | Fault tolerant encoding of directory states for stuck bits | |
US20050132249A1 (en) | Apparatus method and system for fault tolerant virtual memory management | |
US20040215886A1 (en) | Data cache scrub mechanism for large L2/L3 data cache structures | |
EP0563626A2 (en) | Management of data objects used to maintain state information for shared data at a local complex | |
US5958068A (en) | Cache array defect functional bypassing using repair mask | |
JP3900025B2 (ja) | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 | |
TW201025019A (en) | Programmable error actions for a cache in a data processing system | |
JP2013196393A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2005302027A (ja) | 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム) | |
JPH10320280A (ja) | キャッシュに値を格納する方法及びコンピュータ・システム | |
JP3931757B2 (ja) | 共有キャッシュメモリ障害処理方式 | |
KR100297914B1 (ko) | 스누핑장치를위한다중캐쉬디렉토리 | |
JPH10320279A (ja) | 回復可能な高速ディレクトリ・アクセス方法 | |
US7689891B2 (en) | Method and system for handling stuck bits in cache directories | |
CN112181712B (zh) | 一种提高处理器核可靠性的方法及装置 | |
US11593236B2 (en) | Preserving data integrity during controller failures | |
JP2004038299A (ja) | キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040420 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061030 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061227 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070119 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070201 |
|
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: 20070220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070305 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |