(57)【特許請求の範囲】
【請求項１】
キャッシュ・メモリ・システムを備えるコンピュータ装置において、
第１の記憶場所を備え、アドレス情報を含むキャッシュ・タグが第１の記憶場所に記憶され、キャッシュ・タグに基づき第１のＥＣＣ生成器によって生成されるキャッシュ・エラー訂正コード（キャッシュＥＣＣ）も第１の記憶場所に記憶される、キャッシュ・メモリ装置と、アドレス情報を含むＣＰＵタグ用のＣＰＵ−ＥＣＣを導出するように動作し、同じタグ入力が与えられている場合、第１および第２のＥＣＣ生成器が同じＥＣＣを導出するように動作する、第２のＥＣＣ生成器と、第１の記憶場所に記憶されているキャッシュ・タグと、ＣＰＵによって生成されたＣＰＵタグを比較するように動作し、第１の記憶場所に記憶されているキャッシュＥＣＣと、ＣＰＵタグに応答して第２のＥＣＣ生成器によって生成されたＣＰＵ−ＥＣＣを比較するように動作する、高速ヒット比較器とを含み、高速ヒット比較器が、キャッシュ・タグとＣＰＵタグが一致すると共に、キャッシュＥＣＣとＣＰＵ−ＥＣＣが一致した場合にキャッシュ・メモリ・システムに通知するように構成された高速ヒットデータパス回路と、
キャッシュ・メモリ装置と、キャッシュ・メモリ装置からキャッシュ・タグ及びキャッシュＥＣＣを受け取り、キャッシュ・タグを検査し、キャッシュ・タグが破壊されている場合にキャッシュ・タグを訂正し、検査済みキャッシュ・タグを出力するキャッシュ・タグ訂正装置と、ＣＰＵによって生成された特定のＣＰＵタグ及び検査済みキャッシュ・タグを受け取り、検査済みキャッシュ・タグを特定のＣＰＵタグと比較し、検査済みキャッシュ・タグとＣＰＵタグが一致した場合にキャッシュ・メモリ・システムに通知する真ヒット比較器とを含む、真ヒットデータパス回路と
を含み、前記高速ヒットデータパス回路と前記真ヒットデータパス回路が並行して動作することを特徴とするコンピュータ装置。
【請求項２】
前記第１の記憶場所が、少なくとも４つのフィールドを有し、第１のフィールドがキャッシュ・タグを含み、第２のフィールドがキャッシュＥＣＣを含み、第３のフィールドが、キャッシュ・メモリ・システムを操作するためにコンピュータによって使用される情報を含み、第４のフィールドが、第３のフィールド中の情報に基づくエラー訂正情報を含むことを特徴とする請求項１に記載のコンピュータ装置。
【請求項３】
前記第２のＥＣＣ生成器が、キャッシュ・メモリ装置から情報を読み取るために必要な時間内でＣＰＵタグに応答してＥＣＣを生成することを特徴とする請求項１に記載のコンピュータ装置。
【請求項４】
前記キャッシュ・メモリ装置が、複数の記憶場所を有し、複数の記憶場所に複数のキャッシュ・タグおよびキャッシュＥＣＣが記憶され、ＣＰＵタグが、キャッシュ・メモリ装置に記憶されている特定のキャッシュ・タグおよびキャッシュＥＣＣを選択するインデックスを提供し、選択されたキャッシュ・タグおよびキャッシュＥＣＣが、高速ヒット比較器によってＣＰＵタグおよびＣＰＵ−ＥＣＣと比較され、高速ヒットが発生したかどうかが判定されることを特徴とする請求項１に記載のコンピュータ装置。
【請求項５】
キャッシュ・メモリ・システムを備えるコンピュータ装置において、
第１の記憶場所を有し、アドレス情報を含むキャッシュ・タグが第１の記憶場所に記憶され、キャッシュ・タグに基づき第１のＥＣＣ生成器によって生成されるキャッシュ・エラー訂正コード（キャッシュＥＣＣ）も第１の記憶場所に記憶される、キャッシュ・メモリ装置と、アドレス情報を含むＣＰＵタグ用のＣＰＵ−ＥＣＣを導出するように動作し、同じタグ入力が与えられている場合、第１および第２のＥＣＣ生成器が同じＥＣＣを導出するように動作し、キャッシュ・メモリ装置へのアクセスの実行中にＥＣＣを生成するように動作する、第２のＥＣＣ生成器と、第１の記憶場所に記憶されているキャッシュ・タグと、ＣＰＵによって生成されたＣＰＵタグを比較するように動作し、第１の記憶場所に記憶されているキャッシュＥＣＣと、ＣＰＵタグに応答して第２のＥＣＣ生成器によって生成されたＣＰＵ−ＥＣＣを比較するように動作し、キャッシュ・タグとＣＰＵタグが一致すると共に、キャッシュＥＣＣとＣＰＵ−ＥＣＣが一致した場合にキャッシュ・メモリ・システムに通知する高速ヒット比較器とを含む、高速ヒットデータパス回路と、
キャッシュ・メモリ装置と、キャッシュ・タグを受け取り、キャッシュ・タグが破壊されている場合にキャッシュ・タグを訂正し、真ヒット比較器に訂正済みキャッシュ・タグを出力する、キャッシュ・タグ訂正装置とを含み、真ヒット比較器が、訂正済みキャッシュ・タグをＣＰＵタグと比較して、キャッシュ・タグとＣＰＵタグが一致した場合にキャッシュ・ヒットが発生したことをキャッシュ・メモリ・システムに通知するように構成された真ヒットデータパス回路と
を含み、前記高速ヒットデータパス回路と前記真ヒットデータパス回路が並行して動作することを特徴とするコンピュータ装置。
【請求項６】
前記第１の記憶場所が、少なくとも４つのフィールドを含み、第１のフィールドがキャッシュ・タグを含み、第２のフィールドがキャッシュＥＣＣを含み、第３のフィールドが、キャッシュ・メモリ・システムを操作するためにコンピュータによって使用される情報を含み、第４のフィールドが、第３のフィールド中の情報に基づくエラー訂正情報を含むことを特徴とする請求項５に記載のコンピュータ装置。
【請求項７】
前記第２のＥＣＣ生成器が、キャッシュ・メモリ装置から情報を読み取るために必要な時間内でＣＰＵタグに応答してＥＣＣを生成することを特徴とする請求項５に記載のコンピュータ装置。
【請求項８】
前記キャッシュ・メモリ装置が、複数の記憶場所を含み、複数の記憶場所に複数のキャッシュ・タグおよびキャッシュＥＣＣが記憶され、
ＣＰＵタグが、キャッシュ・メモリ装置に記憶されている特定のキャッシュ・タグおよびキャッシュＥＣＣを選択するインデックスを提供し、
選択されたキャッシュ・タグおよびキャッシュＥＣＣが、高速ヒット比較器によってＣＰＵタグおよびＣＰＵ−ＥＣＣと比較され、高速ヒットが発生したかどうかが判定され、
必要に応じて、選択されたキャッシュ・タグがキャッシュ・タグ訂正装置によって訂正され、訂正済みキャッシュ・タグが、真ヒット比較器によってＣＰＵタグと比較され、キャッシュ・ヒットが発生したかどうかが判定されることを特徴とする請求項５に記載のコンピュータ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、キャッシュ・メモリ・システムを組み込んだコンピュータ・システムの設計に関し、詳細には、必要な情報がキャッシュ・メモリ中にあるかどうか、すなわちキャッシュ・ヒットを迅速に検出することに関する。
【０００２】
【従来の技術】
大部分の現代のコンピュータ・システムは、中央演算処理装置（ＣＰＵ）とメイン・メモリとを備える。ＣＰＵが命令およびオペランドを復号し実行する速度は、命令およびオペランドをメイン・メモリからＣＰＵへ転送する速度に依存する。ＣＰＵがメイン・メモリから命令およびオペランドを得るために必要な時間を短縮するために、多くのコンピュータ・システムは、ＣＰＵとメイン・メモリの間にキャッシュ・メモリを備える。
【０００３】
キャッシュ・メモリとは、小容量の高速バッファ・メモリであり、ＣＰＵが近い将来に使用すると考えられるメイン・メモリの内容の部分を一時的に保持するために使用される。キャッシュ・メモリの主要な目的は、データ取出しの場合でも、命令取出しの場合でも、メモリ・アクセスを実行するために必要な時間を短縮することである。キャッシュ・メモリに位置する情報は、メイン・メモリに位置する情報よりもずっと短い時間でアクセスすることができる。したがって、キャッシュ・メモリを有するＣＰＵでは、命令およびオペランドが取り出され、あるいは記憶されるのを待つ時間がはるかに短い。
【０００４】
キャッシュ・メモリは、１つまたは複数のデータ・ワードの多数のブロックで構成される。各ブロックには、そのブロックがメイン・メモリのどのブロックのコピーであるかを固有に識別するアドレス・タグおよびその他の情報が関連付けられる。プロセッサがメモリを参照するたびに、要求されたデータのコピーがキャッシュ・メモリに存在するかどうかを調べるためにアドレス・タグが比較される。所望のメモリ・ブロックがキャッシュ・メモリにない場合、そのブロックはメイン・メモリから検索され、キャッシュ・メモリに記憶され、プロセッサに供給される。アドレス・タグは、アドレス・ビットのサブセットであることが多い。たとえば、コンピュータが３２アドレス・ビットを使用する場合、タグは、簡単な実施態様では、上位１２ビットから成る。
【０００５】
ＣＰＵは、キャッシュ・メモリを使用してメイン・メモリからデータを検索するだけでなく、データをメイン・メモリに直接書き込む代わりにキャッシュ・メモリに書き込む。プロセッサがデータをメモリに書き込みたいとき、キャッシュメモリは、データを書き込むべきデータ・ブロックがキャッシュ・メモリに存在しているかどうかを調べるためにアドレス・タグを比較する。データ・ブロックがキャッシュ・メモリに存在する場合、データはキャッシュ・メモリのデータ・ブロックに書き込まれる。多数のシステムでは、次いで、そのデータ・ブロック用のデータ「ダーティ・ビット」がセットされる。ダーティ・ビットは、そのデータ・ブロック中のデータがダーティであり（すなわち、修正された）、したがって、そのデータ・ブロックをキャッシュ・メモリから削除する前に、修正済みデータをメイン・メモリに書き込んでおかなければならないことを示す。データを書き込むべきデータ・ブロックがキャッシュ・メモリに存在しない場合、そのデータ・ブロックをキャッシュ・メモリに取り込み、あるいはメイン・メモリに直接そのデータを書き込まなければならない。
【０００６】
通常の動作では、ある種のメモリ参照を行うのに必要ないくつかの異なる処置がある。メモリ参照とは一般に、ロード命令または記憶命令である。第１に、最も簡単で最も高速の参照は、キャッシュ中でヒットすることができる。ヒットとは、所望のメモリ・アドレスのデータが、検査中のキャッシュ（複数のキャッシュ・レベルがあってよい）に存在するときとして定義されている。ミスとは、所望のメモリ・アドレスのデータが、検査中のキャッシュに存在しないメモリ参照として定義されている。キャッシュでヒットがあったとき、関連するメモリ命令は、追加処理ペナルティなしで完了する。
【０００７】
最も低速の動作は、メモリ参照がキャッシュをミスしたときのものである。この例では、メイン・メモリから得た関連するラインをキャッシュに取り込む長い動作シーケンスが開始される。このデータがメモリから返され、キャッシュにコピーされると、キャッシュが再び参照され、今回はヒットとなり、続いて、要求されたデータがプロセッサに供給され、あるいは記憶動作が完了する。このことは、かなりの時間を必要とし、顕著な処理ペナルティを表す。
【０００８】
キャッシュ・メモリは直接マップされることが多い。すなわち、インデックスを使用して、キャッシュ中の複数の項目のうちの１つがアクセスされる。次いで、その項目用のタグがアドレスのタグ部と比較され、一致（ヒット）が発生したかどうかが判定される。
【０００９】
前記の議論は、本発明の分野の概要として提示したものである。キャッシュ・メモリ・システムは周知であり、キャッシュ・システムの一般的な議論については、たとえば、David A.Patterson、John L.Hennessy著「Computer Architecture A Quantitative Approach」（Morgan Kauffman PUblishers, Inc.、San Mateo、カリフォルニア、１９９０年、４０４〜４２３ページおよび４５４〜４６４ページ）を参照されたい。
【００１０】
キャッシュ・アドレス・タグがＲＡＭ装置に記憶されるため、メモリ装置の多数の障害モードのためにＲＡＭデータが破壊される可能性がある。そのようなメモリ障害による破滅的な結果を防止するために、ある種のコンピュータ・システムは、すべてのアドレス・タグにエラー訂正コード（ＥＣＣ）を関連付けるように設計されている。コンピュータは、アドレス・タグと、それに関連するＥＣＣをキャッシュ・メモリから読み取り、次いで、アドレス・タグを検査して（必要に応じて）訂正し、その後、タグが使用される。
【００１１】
ＣＰＵクロック速度は現在、１３０ＭＨｚ程度なので、キャッシュ・アドレス・タグを検査するのにかかる時間は、処理プロセスの顕著な時間遅延を引き起こす。また、キャッシュの設計が良好なものであれば、「ヒット」率が高くなり、エラーは滅多に発生しなくなるので、キャッシュ・アドレス・タグを訂正する必要は滅多にないにもかかわらず、訂正回路による時間遅延により、ほぼあらゆるメモリ・サイクルに不要なペナルティが課せられる。
【００１２】
【発明が解決しようとする課題】
ゆえに、キャッシュ・メモリ・システムの完全性を犠牲にせずに、キャッシュ・ヒットが発生したときにそれを迅速に判定するキャッシュ・ヒット検出方法および装置が必要とされている。
【００１３】
【課題を解決するための手段】
本発明は、キャッシュ・タグのエラーが訂正されるのを待たずに、破壊されていないキャッシュ・ヒットを検出する方法および装置を提供する。このように、キャッシュ・タグのエラーを検査して訂正するために必要な追加遅延は、あらゆるメモリ・サイクルにペナルティを課すわけではない。その代わり、ヒットせず、あるいはエラーを訂正する必要があるメモリ・サイクルだけが、タグ検査・訂正回路によって遅延させられる。
【００１４】
この新規の装置は、キャッシュ「ヒット」検出プロセスを高速ヒット検出経路と通常訂正済みヒット検出経路の２つの経路に分割する。高速ヒット経路は、ＣＰＵによってアサートされているアドレス・タグ（ＣＰＵタグ）用の妥当なＥＣＣ（ＣＰＵ−ＥＣＣ）を生成する。同時に、ＣＰＵタグに関連するキャッシュＲＡＭの内容（キャッシュ・タグ）が、それに関連するＥＣＣ（キャッシュＥＣＣ）と共にアクセスされる。キャッシュ・タグおよびキャッシュＥＣＣはそれぞれ、ＣＰＵタグおよびＣＰＵ−ＥＣＣと比較される。２つのタグが一致し、かつ２つのＥＣＣが一致した場合、高速ヒットがアサートされる。
【００１５】
ＣＰＵタグとキャッシュ・タグが一致せず、あるいはＣＰＵ−ＥＣＣとキャッシュＥＣＣが一致しない場合、高速ヒットはアサートされず、キャッシュ・メモリ・システムは、タグ検査・訂正回路によってキャッシュ・タグが検査され、必要に応じて訂正されるまで待つ。次いで、検査済み／訂正済みキャッシュ・タグがＣＰＵタグと比較され、キャッシュ・ヒットが検出される。
【００１６】
キャッシュ・タグにエラーがなく、必要な情報はキャッシュ・メモリ・システムにあることが多いので、この新規の方法および装置は、大部分のメモリ・サイクルに関する検査・訂正遅延を不要にする。
【００１７】
【実施例】
本発明の以下の説明では、特定の特徴または領域を指すために番号を使用する。３桁の番号の最初の数字は、その参照番号が最初に使用される図面を指す。
【００１８】
前述のように、キャッシュ・メモリとは、複数の記憶場所を有する小容量の高速ランダム・アクセス・メモリ（ＲＡＭ）である。キャッシュ・メモリのアクセス時間は通常、約９ナノ秒である。キャッシュ・メモリには、いくつかのタグＥＣＣ対が記憶され、各タグ項目には、本発明に関連しないデータ記憶場所が関連付けられる。
【００１９】
図１は、３つの主要なセグメント１０３、１０５、１０７を有する通常のキャッシュ・タグＥＣＣ項目１０１を示す。セグメント１０５は、キャッシュが「ダーティ」または「プライベート」であることを示すビットなど「ハウスキーピング」情報を含む。ＥＣＣフィールド１０７は、タグ・セグメント１０３とハウス・キーピング・セグメント１０５の両方に関するエラー訂正データを有する。
【００２０】
図２は、簡略化された従来技術のキャッシュ・ヒット装置を示す。ＣＰＵ（図示せず）は、キャッシュＲＡＭ２０５にインデックス入力２０３を与え、タグ比較器２０９にタグ入力２０７を与えるＣＰＵアドレス・タグ２０１をアサートする。キャッシュ・タグ・ＥＣＣ対２１１および２１３はそれぞれ、キャッシュＲＡＭ２０５に記憶される。タグ検査・訂正回路２１５は、キャッシュ・タグ入力２１７とキャッシュＥＣＣ入力２１９とを有する。タグ検査・訂正回路２１５は、タグ比較器２０９に訂正済みタグ入力２２３を提供する訂正済みタグ出力２２１も有する。タグ比較器２０９から真ヒット出力２２５が与えられる。
【００２１】
動作時には、ＣＰＵアドレス・タグ２０１はＣＰＵによってアサートされる。ＣＰＵタグは、比較器のタグ入力２０７に送られ、同時にキャッシュＲＡＭ２０５のインデックス入力２０３に送られる。インデックス入力とはキャッシュＲＡＭのアドレス入力である。キャッシュＲＡＭは次いで、インデックス入力によってアドレスされたキャッシュＲＡＭ中のメモリ位置に関連するキャッシュ・タグおよびＥＣＣ情報を出力する。この例では、キャッシュ・タグ２１１とそれに関連するＥＣＣ２１３は、キャッシュＲＡＭの出力上に与えられ、それぞれ、タグ検査・訂正回路２１５の入力２１７および２１９に送られる。
【００２２】
タグ検査・訂正回路２１５は、ＥＣＣ情報を使用して、キャッシュ・タグにエラーがないかどうかを検査し、エラーが見つかった場合はキャッシュ・タグを訂正する。検査され訂正されたこのタグは次いで、回路の出力２２１上に与えられ、タグ比較器２０９の訂正済みタグ入力２２３に送られる。タグ比較器２０９に訂正済みタグが与えられた後、比較器は、訂正済みタグをＣＰＵタグと比較し、２つのタグが一致する場合、出力線２２５上で真ヒット信号を出力する。この信号は、従来技術で知られている方法でキャッシュ・メモリ中のデータをＣＰＵに与えるためにキャッシュ・メモリ・システムによって使用される。２つのタグが一致しない場合、キャッシュ・ミスが発生しており、キャッシュは前述のように更新される。この例では、キャッシュ・メモリに１つのキャッシュ・タグしか記憶されていないように示されている。しかし、実際は、そのような多数のタグがキャッシュ・メモリに記憶され、インデックス入力によって、タグ検査・訂正回路にどのタグ・ＥＣＣ情報を提供するかが選択される。
【００２３】
ＣＰＵタグがアサートされてから真ヒット出力２２５が有効になるまでの経過時間は、キャッシュＲＡＭおよびタグ検査・訂正回路を製造するために使用された技法によって異なる。しかし、検査・訂正プロセスには通常、キャッシュＲＡＭのキャッシュ・タグにアクセスするのにかかる時間の約３分の１の時間がかかる。したがって、７ナノ秒キャッシュＲＡＭを仮定すると、タグ検査・訂正回路が、キャッシュＲＡＭから得たキャッシュ・タグを検査して訂正するのに約２ナノ秒かかる。したがって、ＣＰＵタグがアサートされてから真ヒット出力が有効になるまでに約９ナノ秒が経過する。ＣＰＵサイクルが約７ナノ秒〜８ナノ秒に過ぎないと考えると、キャッシュ・メモリ・システムによるこの遅延は、今日の高速ＣＰＵにとって問題である。
【００２４】
ＣＰＵによってアサートされたアドレス（ＣＰＵタグ）が与えられている場合、キャッシュ・ヒットを発生させるためにキャッシュ項目１０１中になければならない情報を予測することができる。すなわち、キャッシュ・タグはＣＰＵタグに一致しなければならない。しかし、ＥＣＣセグメント１０７は、保護するものがキャッシュ・タグだけではないので予測することができない。具体的には、ＥＣＣセグメントは、ＣＰＵアドレスに基づいて予測することが不可能なセグメント１０５も保護する。セグメント１０５中の情報は、キャッシュ・ヒットを判定するうえでは必要とされない。したがって、ＣＰＵタグに基づいてキャッシュ・タグを予測することはできるが（キャッシュ・ヒットが発生するかどうか）、ＥＣＣ回路２１５によってＥＣＣ情報が検査されるまで、キャッシュ・タグが有効であると保証することはできない。そのため、キャッシュ・メモリ・システムは、ＥＣＣ回路２１５による待ち時間を経験しない限り、キャッシュ・ヒットについて知ることはできない。
【００２５】
本発明は、一方がキャッシュ・タグ１０３を保護し、一方が、セグメント１０５中の予測不能な情報を保護する、２つのセグメントとしてＥＣＣセグメント１０７を分割する。
【００２６】
図３は、本発明によるキャッシュ項目３０１を示す。セグメント１０３および１０５は、前述のセグメント１０３および１０５と同じである。しかし、図１中のＥＣＣセグメント１０７は、２つのセグメント３０７および３０９として分割されている。ＥＣＣセグメント３０７は、キャッシュ・タグ１０３を保護し、ＥＣＣセグメント３０９は、セグメント１０５を保護する。
【００２７】
ＥＣＣが分割されているので、ＣＰＵタグが与えられている場合、（ヒットが発生するように）キャッシュ・タグ１０３に関連するＥＣＣセグメント３０７を予測することができる。これは、ＥＣＣを生成する方法が知られているので真であり、したがって、特定のタグが与えられている場合、関連するＥＣＣは容易に判定することができる。したがって、特定のＣＰＵタグが与えられている場合、この場合も、キャッシュ・ヒットが発生すると仮定して、キャッシュ・タグ１０３と関連するキャッシュＥＣＣ３０７を共に予測することができる。
【００２８】
図４は、本発明によるキャッシュ・ヒット検出装置を示す。キャッシュＲＡＭ２０５、タグ検査・訂正回路２１５、およびタグ比較器２２５は、図２に関して論じたように機能し、前述の真ヒット出力と同じ真ヒット出力２２５を与える。キャッシュＲＡＭ２０５からキャッシュ・タグ／キャッシュＥＣＣ対を受け取る第２の比較器４０１が提供されている。第２の比較器４０１の他の入力は、ＣＰＵアドレス・タグ４０３と、ＥＣＣ生成器４０５によって生成された導出済みＣＰＵタグＥＣＣを受け取る。
【００２９】
ＥＣＣ生成器４０５は、ＣＰＵタグを取り出して、キャッシュ・メモリに記憶されているキャッシュＥＣＣを導出するために使用されるのと同じ方法でそのタグ用の適当なＥＣＣを算出する。このＥＣＣ生成器は、キャッシュＲＡＭのキャッシュ・タグ／キャッシュＥＣＣ対にアクセスするのに必要な時間と同じ時間、またはそれよりも短い時間でＣＰＵタグＥＣＣを導出する。
【００３０】
第２の比較器４０１は、キャッシュ・タグをＣＰＵタグと比較し、導出されたＣＰＵタグＥＣＣをキャッシュＥＣＣと比較する。タグどうしとＥＣＣどうしが共に一致した場合、比較器４０１は高速ヒット信号４０７を出力する。ＥＣＣ生成器がキャッシュＲＡＭアクセスと並行してＣＰＵタグＥＣＣを導出するので、高速ヒット信号をアサートするのに必要な時間は、真ヒット信号をアサートするのに必要な時間よりも、タグ検査・訂正回路２１５による遅延時間だけ短い（約２ナノ秒）。
【００３１】
キャッシュ・タグを訂正する必要がなく、かつ一般にキャッシュ・ヒットが発生することが多いので、高速ヒット信号を使用することによって、キャッシュ・メモリ・システムは、従来技術の設計よりも短い時間でＣＰＵにデータを供給することができる。高速ヒットがアサートされない場合、キャッシュ・ミスがあり、あるいはキャッシュ・タグがエラーを有し、キャッシュ・メモリ・システムは前述のように真ヒット／ミス信号を待つ。
【００３２】
エラー訂正が高速ヒット検出と並行して行われるので、真ヒット／ミスが、本発明を用いない場合よりも遅く発生することはない。したがって、本発明は、キャッシュ・タグの訂正を必要とするメモリ・サイクルに対するペナルティなしで、大部分のメモリ動作に関して従来技術に勝る顕著な性能上の改良を与える。
【００３３】
本発明の他の実施例は、本明細書と、本明細書で開示した本発明の実施態様を検討することによって、当業者には明らかになろう。たとえば、キャッシュＲＡＭにアクセスするためにＣＰＵアドレス・タグを直接使用したが、ハッシュ関数またはその他の分散方法を使用して、キャッシュＲＡＭ項目をさらに一様に分散させることができる。また、単一のレベルのキャッシュ・メモリ・システムしか例示していないが、本発明は多重レベル・キャッシュ・メモリ・システムにも同様に適用することができる。そのため、仕様および例は例としてのみみなされるものであり、本発明の範囲および趣旨は、特許請求の範囲によって示される。
【００３４】
以上、本発明の実施例について詳述したが、以下、本発明を各実施態様毎に列挙する。
（１）．  キャッシュ・メモリ・システムを備えるコンピュータ装置において、
第１の記憶場所を備え、アドレス情報を含むキャッシュ・タグが第１の記憶場所に記憶され、キャッシュ・タグに基づき第１のＥＣＣ生成器によって生成されるキャッシュ・エラー訂正コード（キャッシュＥＣＣ）も第１の記憶場所に記憶される、キャッシュ・メモリ装置と、
アドレス情報を含むＣＰＵタグ用のＣＰＵ−ＥＣＣを導出するように動作し、同じタグ入力が与えられている場合、第１および第２のＥＣＣ生成器が同じＥＣＣを導出するように動作する、第２のＥＣＣ生成器と、
第１の記憶場所に記憶されているキャッシュ・タグと、ＣＰＵによって生成されたＣＰＵタグを比較するように動作し、第１の記憶場所に記憶されているキャッシュＥＣＣと、ＣＰＵタグに応答して第２のＥＣＣ生成器によって生成されたＣＰＵ−ＥＣＣを比較するように動作する、高速ヒット比較器とを有し、
高速ヒット比較器が、キャッシュ・タグとＣＰＵタグが一致すると共に、キャッシュＥＣＣとＣＰＵ−ＥＣＣが一致した場合にキャッシュ・メモリ・システムに通知することを特徴とするコンピュータ装置。
（２）．  前記第１の記憶場所が、少なくとも４つのフィールドを有し、第１のフィールドがキャッシュ・タグを含み、第２のフィールドがキャッシュＥＣＣを含み、第３のフィールドが、キャッシュ・メモリ・システムを操作するためにコンピュータによって使用される情報を含み、第４のフィールドが、第３のフィールド中の情報に基づくエラー訂正情報を含むことを特徴とする（１）に記載の装置。
（３）．  前記第２のＥＣＣ生成器が、キャッシュ・メモリ装置から情報を読み取るために必要な時間内でＣＰＵタグに応答してＥＣＣを生成することを特徴とする（１）に記載の装置。
（４）．  前記キャッシュ・メモリ装置が、複数の記憶場所を有し、複数の記憶場所に複数のキャッシュ・タグおよびキャッシュＥＣＣが記憶され、
ＣＰＵタグが、キャッシュ・メモリ装置に記憶されている特定のキャッシュ・タグおよびキャッシュＥＣＣを選択するインデックスを提供し、
選択されたキャッシュ・タグおよびキャッシュＥＣＣが、高速ヒット比較器によってＣＰＵタグおよびＣＰＵ−ＥＣＣと比較され、高速ヒットが発生したかどうかが判定されることを特徴とする（１）に記載の装置。
（５）．  キャッシュ・メモリ・システムを備えるコンピュータ装置において、
第１の記憶場所を有し、アドレス情報を含むキャッシュ・タグが第１の記憶場所に記憶され、キャッシュ・タグに基づき第１のＥＣＣ生成器によって生成されるキャッシュ・エラー訂正コード（キャッシュＥＣＣ）も第１の記憶場所に記憶される、キャッシュ・メモリ装置と、
アドレス情報を含むＣＰＵタグ用のＣＰＵ−ＥＣＣを導出するように動作し、同じタグ入力が与えられている場合、第１および第２のＥＣＣ生成器が同じＥＣＣを導出するように動作する、第２のＥＣＣ生成器と、
第１の記憶場所に記憶されているキャッシュ・タグと、ＣＰＵによって生成されたＣＰＵタグを比較するように動作し、第１の記憶場所に記憶されているキャッシュＥＣＣと、ＣＰＵタグに応答して第２のＥＣＣ生成器によって生成されたＣＰＵ−ＥＣＣを比較するように動作し、キャッシュ・タグとＣＰＵタグが一致すると共に、キャッシュＥＣＣとＣＰＵ−ＥＣＣが一致した場合にキャッシュ・メモリ・システムに通知する、高速ヒット比較器と、
キャッシュ・タグを受け取り、キャッシュ・タグが破壊されている場合にキャッシュ・タグを訂正し、真ヒット比較器に訂正済みキャッシュ・タグを出力する、キャッシュ・タグ訂正装置とを有し、
真ヒット比較器が、訂正済みキャッシュ・タグをＣＰＵタグと比較して、キャッシュ・タグとＣＰＵタグが一致した場合にキャッシュ・ヒットが発生したことをキャッシュ・メモリ・システムに通知することを特徴とするコンピュータ装置。
（６）．  前記第１の記憶場所が、少なくとも４つのフィールドを含み、第１のフィールドがキャッシュ・タグを含み、第２のフィールドがキャッシュＥＣＣを含み、第３のフィールドが、キャッシュ・メモリ・システムを操作するためにコンピュータによって使用される情報を含み、第４のフィールドが、第３のフィールド中の情報に基づくエラー訂正情報を含むことを特徴とする（５）に記載の装置。
（７）．  前記第２のＥＣＣ生成器が、キャッシュ・メモリ装置から情報を読み取るために必要な時間内でＣＰＵタグに応答してＥＣＣを生成することを特徴とする（５）に記載の装置。
（８）．  前記キャッシュ・メモリ装置が、複数の記憶場所を含み、複数の記憶場所に複数のキャッシュ・タグおよびキャッシュＥＣＣが記憶され、
ＣＰＵタグが、キャッシュ・メモリ装置に記憶されている特定のキャッシュ・タグおよびキャッシュＥＣＣを選択するインデックスを提供し、
選択されたキャッシュ・タグおよびキャッシュＥＣＣが、高速ヒット比較器によってＣＰＵタグおよびＣＰＵ−ＥＣＣと比較され、高速ヒットが発生したかどうかが判定され、
必要に応じて、選択されたキャッシュ・タグがキャッシュ・タグ訂正装置によって訂正され、訂正済みキャッシュ・タグが、真ヒット比較器によってＣＰＵタグと比較され、キャッシュ・ヒットが発生したかどうかが判定されることを特徴とする（５）に記載の装置。
（９）．  少なくとも、キャッシュ・メモリ中のアドレス・タグ（キャッシュ・タグ）と、前記キャッシュ・タグのエラー訂正コード（キャッシュＥＣＣ）とを記憶するキャッシュ・メモリと、
前記キャッシュＥＣＣを前記キャッシュ・タグから生成する第１のＥＣＣ生成器と、
ＣＰＵによってアサートされているアドレス・タグ（ＣＰＵタグ）に対応したエラー訂正コード（ＣＰＵ−ＥＣＣ）を生成する第２のＥＣＣ生成器と、
前記キャッシュ・タグと前記ＣＰＵタグを比較する第１の比較器と、
前記キャッシュＥＣＣと前記ＣＰＵ−ＥＣＣを比較する第２の比較器
を有し、前記２つの比較器で共に一致の信号が出た時に、高速ヒット信号をアサートすることを特徴とするキャッシュ・メモリ付きコンピュータ装置。
（請求項１０）．  前記キャッシュ・メモリに、さらに、キャッシュ・メモリ・システムを操作するためにコンピュータによって使用される情報と、前記情報のエラー訂正コードとを記憶する（９）に記載の装置。
【００３５】
【発明の効果】
以上のように、本発明を用いると、キャッシュ・タグのエラーが訂正されるのを待たずに、破壊されていないキャッシュ・ヒットを検出する方法および装置を提供することができる。本発明を用いると、キャッシュ・タグを訂正する必要がなく、かつ一般にキャッシュ・ヒットが発生することが多いので、高速ヒット信号を使用することによって、キャッシュ・メモリ・システムは、従来技術の設計よりも短い時間でＣＰＵにデータを供給することができる。また、エラー訂正が高速ヒット検出と並行して行われるので、真ヒット／ミスが、本発明を用いない場合よりも遅く発生することはない。したがって、本発明は、キャッシュ・タグの訂正を必要とするメモリ・サイクルに対するペナルティなしで、大部分のメモリ動作に関して従来技術に勝る顕著な性能上の改良を与えることができる。
【図面の簡単な説明】
【図１】通常のキャッシュＲＡＭ項目を示す図である。
【図２】簡略化された従来技術のキャッシュ・ヒット検出装置を示す図である。
【図３】本発明によるキャッシュ項目を示す図である。
【図４】本発明によるキャッシュ・ヒット検出装置を示す図である。
【符号の説明】
１０１：キャッシュ・タグＥＣＣ項目
１０３：タグ・セグメント
１０５：ハウス・キーピング・セグメント
１０７：ＥＣＣフィールド
２０１：ＣＰＵアドレス・タグ
２０３：インデックス入力
２０５：キャッシュＲＡＭ
２０７：タグ入力
２０９：タグ比較器
２１１、２１３：キャッシュ・タグ・ＥＣＣ対
２１５：タグ検査・訂正回路
２１７：キャッシュ・タグ入力
２２３：タグ入力
２２５：出力線
３０７：ＥＣＣセグメント
４０１：第２の比較器
４０３：ＣＰＵアドレス・タグ
４０５：ＥＣＣ生成器
４０７：高速ヒット信号
【図１】
0003761614.tif 000002
【図２】
0003761614.tif 000003
【図３】
0003761614.tif 000004
【図４】
0003761614.tif 000005