(57)【特許請求の範囲】
【請求項１】
主記憶装置と、プロセッサと、複数の２次キャッシュとを備えた２次キャッシュ診断機能を有する情報処理装置であって、
前記主記憶装置と前記プロセッサと前記複数の２次キャッシュはそれぞれバスで接続されており、
前記プロセッサは、２次キャッシュ診断モードを実行し、前記主記憶装置の任意のアドレスに予め格納された診断データを前記プロセッサ装置に読み出し、その後前記診断データに対する２度目の読み出しを行う診断プログラムを有し、
前記複数の２次キャッシュは、各々の２次キャッシュに応じた個別信号を外部から入力する診断回路と、該診断回路から出力される前記個別信号に対応して前記主記憶装置上の別々の領域に対するキャッシュ動作を行うバスデータ制御回路と、キャッシュしたデータを格納する記憶回路と、キャッシュヒット時に前記記憶回路に格納されたキャッシュデータを前記バスを介して前記プロセッサに出力する出力バッファとを有し、
２個目以降の２次キャッシュ内に設けられた前記診断回路は、２次キャッシュ診断モードが実行された際に、１個目の２次キャッシュの個別信号と同一の診断用信号を生成し、前記個別信号の代わりに前記診断用信号を前記バスデータ制御回路に出力すると共に前記出力バッファの動作を抑止制御し、その後前記記憶回路に格納されているデータと１個目の２次キャッシュ内に設けられた前記記憶回路に格納されているデータとの比較を行って比較結果を前記プロセッサに通知することを特徴とする２次キャッシュ診断機能を有する情報処理装置。
【請求項２】
前記個別信号は２次キャッシュＩＤ及び接続個数を表す信号であることを特徴とする請求項１記載の２次キャッシュ診断機能を有する情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は主記憶装置およびプロセッサとのバス上に接続される増減可能な複数の２次キャッシュを有する情報処理装置に関し、特に２次キャッシュ診断機能を有する情報処理装置に関する。
【０００２】
【従来の技術】
図４を用いて従来のこの種の２次キャッシュメモリ及び２次キャッシュメモリの診断動作について説明する。以下，２次キャッシュメモリを２次キャッシュという。
【０００３】
図４は，プロセッサバス（以下，バスと記す。）とプロセッサと記憶装置から構成される一般的な情報処理装置の構成例であり，バス１０１にプロセッサ１０と，主記憶装置３０と，２個の２次キャッシュ４０及び２次キャッシュ５０と，バス／メモリ制御回路６０とが接続されている例である。
【０００４】
プロセッサ１０は，汎用のマイクロプロセッサ等であり，バス１０１に接続される。バス１０１は，プロセッサ１０のアーキテクチャーに基づいたバスでアドレス信号データ信号及び制御信号等により成る。
【０００５】
２次キャッシュ４０及び２次キャッシュ５０は，バス１０１に接続されて，バス１０１上のアドレス／データを監視し，バス１０１上のデータのキャッシュ動作を行う。また，２次キャッシュ４０及び２次キャッシュ５０は同一のハードウェアにより構成されたもので，ボード上でのクランプ信号１０８及び１０９により２次キャッシュの接続個数及び２次キャッシュのＩＤ値を入力することで，主記憶上の別々の領域に対するキャッシュを行い接続個数によりキャッシュの容量が増加することになる。
【０００６】
バス／メモリ制御回路６０は，２次キャッシュ４０，５０を含むバス１０１の調停及び主記憶装置３０内のメモリ素子（ＤＲＡＭ）の制御を行う。主記憶装置３０は，バス／メモリ制御回路６０からの制御信号により制御されるメモリ素子により構成される。
【０００７】
次に，２次キャッシュ４０，５０の動作及び２次キャッシュ４０，５０の診断動作について説明する。
【０００８】
２次キャッシュはプロセッサに内蔵される１次キャッシュを補うものであって，１次キャッシュより大きな容量を持ち，特にバスに接続される構成の２次キャッシュではバスに接続する２次キャッシュ装置の個数により容量を増やせる構成のものが一般的である。
【０００９】
２次キャッシュ４０及び２次キャッシュ５０は，プロセッサ１０からの主記憶装置３０へのアクセスをバス１０１を監視することにより検出し，主記憶アクセスの対象データが２次キャッシュ４０，５０内に格納されていれば主記憶装置３０に代わりバス１０１へのデータ応答を行う。
【００１０】
次に、２次キャッシュ４０，５０の診断動作について説明する。
【００１１】
２次キャッシュの診断動作は装置の電源投入時やシステムからのハードウェア診断動作の指示などにより，診断用のプログラムをプロセッサ１０上で実行することにより実施される。２次キャッシュ４０，５０のハードウェア診断は，２次キャッシュ４０，５０内の全てのメモリ，すなわちデータメモリおよびＴＡＧメモリに対して実施する。
【００１２】
２次キャッシュ４０，５０内のメモリへのデータの書き込み及び読み出しは上述のようにバス１０１上のアクセスの監視により実行される。２次キャッシュ４０，５０へのデータの書き込み動作は，プロセッサ１０からの主記憶読み出しを行うことにより行われる。
【００１３】
２次キャッシュ４０，５０は，プロセッサ１０からの主記憶読み出し要求が２次キャッシュ４０，５０内に存在するデータの場合には主記憶装置３０の代わりに応答出力するが，存在しない場合には主記憶装置３０からのバス１０１上への読み出しデータを２次キャッシュ４０，５０内のメモリに取り込み，以降主記憶装置３０の代わりに応答出力を行う。
【００１４】
２次キャッシュ４０，５０からの読み出し動作は，プロセッサ１０から主記憶への読み出しデータが２次キャッシュ４０，５０内に存在した場合に主記憶に代わり応答出力することにより行われる，すなわち上述の書き込み時と同一の領域を主記憶装置３０から読み出すことにより行われる。
【００１５】
したがって、２次キャッシュ４０，５０の診断プログラムは，主記憶装置３０からの１回目の読み出しで２次キャッシュ４０，５０にデータを書き込み，同一アドレスデータの２回目の読み出しで２次キャッシュ４０，５０内のデータを読み出し，１回目の読み出しデータと比較することにより行う。
【００１６】
上記は１ブロックのデータに関する診断動作であるが，これを２次キャッシュ４０，５０内の全メモリ，全ブロックに対して実行することにより２次キャッシュ４０，５０の診断を行う。
【００１７】
診断のための主記憶アクセスは，２次キャッシュ４０，５０のマッピング及び２次キャッシュ接続個数を考慮した上で各２次キャッシュ４０，５０内の全メモリ，全ブロック対して実行されるような主記憶上の領域に対しての読み出し動作として行われる。
【００１８】
【発明が解決しようとする課題】
しかしながら，上述した２次キャッシュの診断方式では，主記憶装置からの１回目の読み出しで２次キャッシュにデータを書き込み，同一アドレスデータの２回目の読み出しで２次キャッシュ内のデータを読み出し，１回目の読み出しデータと比較するにより行うが，これを接続される各２次キャッシュ内の全メモリに対して実行することにより，２次キャッシュの診断を行う方式であるため，装置に接続する２次キャッシュの個数を増やすことによって，２次キャッシュの容量を増やすと，２次キャッシュの診断を実行するための時間も同様に増えるという問題点がある。
【００１９】
したがって，本発明の目的は，２次キャッシュの容量追加による２次キャッシュの診断にかかる時間を増加させることなく，同様の診断を全ての２次キャッシュに対して実行することができる２次キャッシュ診断機能を有する情報処理装置を提供することにある。
【００２０】
【課題を解決するための手段】
本発明の２次キャッシュ診断機能を有する情報処理装置は、主記憶装置と、プロセッサと、複数の２次キャッシュとを備えた２次キャッシュ診断機能を有する情報処理装置であって、前記主記憶装置と前記プロセッサと前記複数の２次キャッシュはそれぞれバスで接続されており、前記プロセッサは、２次キャッシュ診断モードを実行し、前記主記憶装置の任意のアドレスに予め格納された診断データを前記プロセッサ装置に読み出し、その後前記診断データに対する２度目の読み出しを行う診断プログラムを有し、前記複数の２次キャッシュは、各々の２次キャッシュに応じた個別信号を外部から入力する診断回路と、該診断回路から出力される前記個別信号に対応して前記主記憶装置上の別々の領域に対するキャッシュ動作を行うバスデータ制御回路と、キャッシュしたデータを格納する記憶回路と、キャッシュヒット時に前記記憶回路に格納されたキャッシュデータを前記バスを介して前記プロセッサに出力する出力バッファとを有し、２個目以降の２次キャッシュ内に設けられた前記診断回路は、２次キャッシュ診断モードが実行された際に、１個目の２次キャッシュの個別信号と同一の診断用信号を生成し、前記個別信号の代わりに前記診断用信号を前記バスデータ制御回路に出力すると共に前記出力バッファの動作を抑止制御し、その後前記記憶回路に格納されているデータと１個目の２次キャッシュ内に設けられた前記記憶回路に格納されているデータとの比較を行って比較結果を前記プロセッサに通知することを特徴とする。また、前記個別信号は２次キャッシュＩＤ及び接続個数を表す信号であることを特徴とする。
【００２４】
【発明の実施の形態】
次に，本発明の実施の形態について図面を参照して説明する。
【００２５】
図１は，本発明の一実施例を示す情報処理装置の構成図であり，２つの２次キャッシュ４，５装置がプロセッサ１，主記憶装置３およびバス／メモリ制御回路６とともにバス１０１に接続されている例である。
【００２６】
バス１０１には，アドレス情報及び転送データ情報が転送される，バス/メモリ制御回路６はバス１０１に接続されるとともに，主記憶装置３，２次キャッシュ４，２次キャッシュ５，プロセッサ１と，それぞれメモリ制御信号１０４，バス制御信号１０５，１０６，１０７で接続され，各装置間のバス使用要求の調停及び２次キャッシュ４及び２次キャッシュ５へのヒット時における主記憶装置３へのアクセスの抑止やミスヒット時の主記憶装置３への制御を行う。
【００２７】
主記憶装置３はＤＲＡＭ素子で構成され，バス／メモリ制御回路６からのメモリ制御信号１０４により制御される。２次キャッシュ４及び２次キャッシュ５は，ボード上でのクランプ信号１０８及び１０９により２次キャッシュの接続個数及び２次キャッシュのＩＤ値を設定することにより，主記憶上の別々の領域に対するキャッシュを行うよう指示される。
【００２８】
図１中の１０３は，２次キャッシュ診断モード信号であり，２個目以降の２次キャッシュへの診断モードの指示信号によりプロセッサ１で実行されるハードウェア診断プログラム中の２次キャッシュ診断時にセットされる信号である。なお，本実施例では、プロセッサ１から２次キャッシュ診断モード信号（以下，診断モード信号と記す。）１０３を出力しているが，汎用のマイクロプロセッサで構成する場合のように，２次キャッシュ診断モード信号１０３をプロセッサ１から出力できない場合には，プロセッサ１以外の装置から診断モード信号１０３を出力するように構成してもよい。
【００２９】
２次キャッシュの診断は，プロセッサ１上で実行される診断プログラム５１の実行により実施される。
【００３０】
図２は，図１中の２次キャッシュ４又は２次キャッシュ５の，詳細なブロック図である。以下，２個目の２次キャッシュ５について説明する。
【００３１】
図２において，キャッシュ用記憶回路１４は，２次キャッシュ５内に格納されるデータ及びＴＡＧ情報が格納されるメモリであり，キャッシュ用記憶回路出力信号１１６及びキャッシュ用記憶回路入力信号１１７でバスデータ制御回路１３に接続される。
【００３２】
バスデータ制御回路１３は，データ入力バッファ１２および２次キャッシュ入力データ線１１３と，２次キャッシュ出力データ線１１２およびデータ出力３ステートバッファ１１を通してバス１０１に接続される。そして，バス１０１上の主記憶アクセスのアドレス情報の監視を行い，またキャッシュ用記憶回路１４とバス１０１の間のデータのやりとりの制御を行う。
【００３３】
診断回路１５は，２次キャッシュの診断モード時の制御を行う回路であり，診断モード信号１０３により診断動作し２次キャッシュ５の内部に指示する。
【００３４】
図３は，図２中の診断回路１５の詳細なブロック図である。
【００３５】
図３において，バッファイネーブル生成回路２５は，２次キャッシュからバス１０１へデータを出力するデータ出力３ステートバッファ１１のイネーブルを制御する回路である。
【００３６】
データ不一致検出回路２３は，バス１０１上のデータと２次キャッシュが出力すべきデータとを比較する比較回路であり，比較の結果が不一致であれば不一致信号１１９を出力する。
【００３７】
アンド回路２９は，不一致信号１１９と格納レジスタ制御信号１１８を入力とし，データ不一致検出信号１２０を生成する。
【００３８】
データ不一致格納レジスタ２４は，データ不一致検出信号１２０によりセットされるレジスタである。
【００３９】
診断制御回路２６は，診断モード信号１０３によりバス制御用信号１１４を診断時のバス制御動作に使用する制御回路である。
【００４０】
１個目の２次キャッシュＩＤデータ生成回路２７及び２次キャッシュＩＤ及び個数情報選択回路２８は，診断モード信号１０３により，２次キャッシュのバスデータ制御回路１３への，２次キャッシュＩＤ及び個数情報を切り替える選択回路である。
【００４１】
次に，図１，図２及び図３を用いて２次キャッシュの診断動作について説明する。
【００４２】
初めに，２次キャッシュの診断動作の概要について図１を用いて説明する。
【００４３】
２次キャッシュの診断動作は，装置の電源投入時やシステムからのハードウェア診断動作の指示などにより実施されるものであり，診断プログラム５１のプロセッサ１上での実行により実施される。
【００４４】
ハードウェア診断プログラム中の２次キャッシュ診断用の診断プログラム５１は，最初に，２次キャッシュの診断モードのセットを行い，診断モード信号１０３をアクティブな状態とすることにより２次キャッシュ５を診断モードにする。
【００４５】
次に，診断プログラム５１は，２次キャッシュ４，５をライトスルー又はオフ状態にして主記憶装置３にデータの書き込みを行い，また２次キャッシュ４，５内へ診断用データを読み込ませるために，事前に２次キャッシュ４，５内のデータをクリアしておく。
【００４６】
そして，２次キャッシュ４に対する診断を実行するため，任意の診断データを主記憶装置３の必要領域に必要な容量分用意しておき，用意した診断データをプロセッサ１に読み出す。この結果，診断データはプロセッサ１にバス１０１を経由して読み出されるとともに２次キャッシュ４内のメモリにも書き込み登録される。
【００４７】
次に，診断プログラム５１は，主記憶装置３の上述と同一アドレスに対する読み出しを再度実行する。２度目の読み出しでは，２次キャッシュ４内に登録されたデータにヒットするため，実際の読み出しは，２次キャッシュ４内のデータに対して実行されることになる。
【００４８】
診断プログラム５１は，１回目の読み出しで得られたデータと２回目の同一アドレスからの読み出しデータを比較チェックすることにより，２次キャッシュ４への書き込み及び読み出しデータのチェックを実行する。
【００４９】
この時，診断モード状態にある２次キャッシュ５は，診断モードにより２次キャッシュ４と同一キャッシュＩＤ及びキャッシュ接続個数，つまりは，バス１０１に２次キャッシュが１個接続されているモードと見せることで２次キャッシュ４と同一の主記憶領域に対するキャッシュ動作を行う。
【００５０】
すなわち，２次キャッシュ５は，２次キャッシュ４と同様に，上述の１回目の主記憶の読み出し動作でバス１０１上のデータを内部のメモリに書き込み登録を行い，２回目の読み出しで２次キャッシュ５内に登録されたデータにヒットすることになる。ただし，後に詳述するように，２次キャッシュ５は，診断モード時には，このヒットしたデータをバス１０１へは出力せずに，２次キャッシュ４がバス１０１に出力したデータと比較することによりチェックを行い，不一致が検出されればその結果を保持しておく。
【００５１】
診断プログラム５１は，以降，２次キャッシュ４内の全メモリに対して同様なチェックを繰り返して２次キャッシュ４の診断を実行後，２次キャッシュ５内のチェック結果をプロセッサ１へ読み出す。そして，２次キャッシュ５に対する診断結果の判定を行うだけで２次キャッシュ５に対する診断を終了し，２次キャッシュ診断モードをリセットする。
【００５２】
以上説明したように，２次キャッシュ４に対する診断動作に加え，ただ一度の２次キャッシュ５内のチェック結果を読み出すだけで，２次キャッシュヒット時の動作を含むハードウェアの診断が実行可能となる。
【００５３】
次に，診断モード時の２次キャッシュ内の動作について図２及び図３を用いて詳細に説明する。
【００５４】
図２において，バスデータ制御回路１３はバス１０１上のアドレスを監視しており，このアドレスが自キャッシュへの対象領域に対するアクセスであればキャッシュ用記憶回路１４内に登録されたデータのアドレスと比較することによりヒット／ミスヒット判定を行い，ヒット時にはバス制御用信号１１４によりバス１０１へ主記憶装置３の代わりに応答を行う。
【００５５】
プロセッサ１の読み出し命令によるデータがヒットした場合には，キャッシュ用記憶回路１４内の該当データをデータ出力３ステートバッファ１１からバス１０１へ出力し，ミスヒット時にはバス１０１からデータ入力バッファ１２経由で取り込んだデータをキャッシュ用記憶回路１４に書き込み登録する。これは，非診断モード時の通常動作時の２次キャッシュの動作である。
【００５６】
診断モード時には，診断回路１５により，バスデータ制御回路１３に入力される２次キャッシュＩＤ及び個数を示す信号１２１は，バス１０１に２次キャッシュが１個接続の状態値に変更出力されるとともに，データ出力３ステートバッファ１１のイネーブル信号１１１は抑止される。このような記診断時の制御により，２次キャッシュ５は，２次キャッシュ４と同一の主記憶領域へのキャッシュ動作を行うとともに，ヒット時にバス１０１へのデータ出力を行わないことになる。
【００５７】
次に，図３により診断回路１５の動作について説明する。
【００５８】
図３において，１個目の２次キャッシュＩＤデータ生成回路２７はバス１０１に２次キャッシュが１個接続された場合のキャッシュＩＤ及び個数を示す信号を生成する回路であり，通常，キャッシュＩＤとして１つ目を示す”０”及び接続キャッシュ個数（＝最小構成容量）を示す”０”を生成する。
【００５９】
この生成された信号は，２次キャッシュＩＤ及び個数情報選択回路２８により，診断モード１０３の値に基づいて，クランプ信号１０９と二者択一で選択され，２次キャッシュＩＤ及び個数を示す信号１２１としてバスデータ制御回路１３へ出力される。そして，２次キャッシュＩＤ及び個数を示す信号１２１の値により，バスデータ制御回路１３は，自身を１つ目の２次キャッシュと認識し動作する。より具体的には，バス／メモリ制御回路１３は，２個目以降の２次キャッシュであっても，１個目の２次キャッシュと同一の上位アドレスビットをキャッシュ用記憶回路１４に出力する。
【００６０】
バッファイネーブル生成回路２５は，バスデータ制御回路１３からのバス制御用信号１１４中の出力バッファイネーブル信号を診断モード中抑止するとともに，
データ不一致格納レジスタ２４の読み出し時には出力するイネーブル信号１１１を生成することにより，バス１０１へのデータ出力を制御する。
【００６１】
診断制御回路２６は，診断モード時には，バスデータ制御回路１３からバス／メモリ制御回路６へのバス制御用信号１１４の出力信号を抑止制御し，制御信号１０６を出力する。すなわち，診断制御回路２６は，キャッシュヒット時であっても，バス１０１への出力要求を出さない様に抑止すると共に，バス／メモリ制御回路６の代わりに，バスデータ制御回路１３へのバス使用許可信号を出力して，キャッシュヒット時の動作をバスデータ制御回路１３に実行させる。
【００６２】
この結果，バスデータ制御回路１３は，キャッシュ用記憶回路１４からの該当データを２次キャッシュ出力データ信号１１２として出力する。診断回路１５のデータ不一致検出回路２３は，２次キャッシュ出力データ１１２と，バス１０１からの２次キャッシュ入力データ１１３とを比較する。アンド回路２９は，この比較結果による不一致信号１１９と格納レジスタ制御信号１１８とのアンド条件により，データ不一致格納レジスタ２４のセットを行う。
【００６３】
なお，データ不一致格納レジスタ２４の内容（不一致検出信号１１５）は，２次キャッシュ４の診断が終了した後に，バス／メモリ制御回路１３，データ出力３ステートバッフア１１およびバス１０１を経由してプロセッサ１へ通知される。
【００６４】
以上説明したように，診断モード中の２次キャッシュ５は，１つ目の２次キャッシュ４への診断の実行時にバス１０１にデータ出力することを除き，２次キャッシュ４と同様に動作して，同一のデータを２次キャッシュ内部のメモリに格納登録し，また，キャッシュヒット時にはバス１０１上のデータと２次キャッシュ５内のデータとの比較チェックを行う。これにより，２次キャッシュの出力バッファを除く部分のハードウェアの診断が２次キャッシュ４に対する診断時に行われることになる。
【００６５】
次に，本発明の他の実施の形態について説明する。この実施の形態は，２キャッシュへの診断モードの指示手段に特徴があり，他の構成及び動作については，上述の実施例と同じである。
【００６６】
上述の実施例では，２次キャッシュに診断モード用の専用の入力を持ち，診断モードの指示を実行しているが，診断モードの２次キャッシュへの指示形態としては，２次キャッシュ内部に診断モードを示すレジスタを設け，バスを経由するプロセッサからの指示で該診断モードレジスタのセットを行い，診断モードレジスタの出力を２次キャッシュ内部で診断モードとして使用するようにしてもよい。
【００６７】
また，２次キャッシュの診断モード時のデータ不一致検出結果を２次キャッシュの出力信号として装置の障害検出回路の入力とするとともに，通常動作時にも半分の２次キャッシュを診断モードとすることにより，２次キャッシュの容量は半分となるが，常に比較チェックを行うため，高信頼度の２次キャッシュとすることもできる。
【００６８】
以上のように本発明によれば，２個以上の２次キャッシュのハードウェア診断の実行にかかる時間を１個の２次キャッシュのハードウェア診断にかかる時間と同程度に短縮することができ，２次キャッシュの容量増加による装置の初期診断またはハードウェア診断の実行にかかる時間を短縮出来る効果がある。
【図面の簡単な説明】
【図１】本発明の情報処理装置の一実施例を示すブロック図
【図２】本発明の２次キャッシュの一実施例を示すブロック図
【図３】図２における診断回路１５の詳細ブロック図
【図４】従来の２次キャッシュを備えた情報処理装置の例を示すブロック図
【符号の説明】
１      プロセッサ
３      主記憶装置
４      ２次キャッシュ
５      ２次キャッシュ
６      バス／メモリ制御回路
１１    データ出力３ステートバッファ
１２    データ入力バッファ
１３    バスデータ制御回路
１４    キャッシュ用記憶回路
１５    診断回路
２３    データ不一致検出回路
２４    データ不一致格納レジスタ
２５    バス出力バッファイネーブル生成回路
２６    診断制御回路
２７    １個目の２次キャッシュＩＤデータ生成回路
２８    ２次キャッシュＩＤ及び個数情報選択回路
５１    診断プログラム
１０１  プロセッサバス
１０２  診断モード信号（０固定）
１０３  診断モード信号
１０４  メモリ制御信号
１０５  バス制御信号
１０６  バス制御信号
１０７  バス制御信号
１０８  クランプ信号
１０９  クランプ信号
１１１  イネーブル信号
１１２  ２次キャッシュ出力データ
１１３  ２次キャッシュ入力データ
１１４  バス制御用信号
１１６  キャッシュ用記憶回路出力信号
１１７  キャッシュ用記憶回路入力信号
１１８  格納レジスタ制御信号
１１９  不一致信号
１２０  不一致検出信号
１２１  ２次キャッシュＩＤ及び個数を示す信号
【図１】
0003655768.tif 000002
【図２】
0003655768.tif 000003
【図３】
0003655768.tif 000004
【図４】
0003655768.tif 000005