(57)【要約】【課題】  本発明は、アーキテクチャーの複雑化、製造コストの増加、動作速度の低下を伴わず階層化された記憶項目とキャッシュタグを格納するキャッシュメモリ装置の提供を目的とする。【解決手段】  キャッシュメモリ装置は、記憶項目を格納する記憶項目部と、キャッシュエントリーを識別するキャッシュタグを格納するキャッシュタグ部とからなるキャッシュエントリーよりなる単一キャッシュアレイ構造を有し、キャッシュエントリーの内容を読み出すためアドレス信号に応答するキャッシュアレイよりなる。上記装置は、メモリ要求に応答しアドレス信号を発生する論理回路と、所定の関係に関しキャッシュタグをメモリ要求と比較する回路と、アドレス信号をキャッシュアレイに伝達するアドレスバスと、キャッシュアレイと論理回路の間でキャッシュタグと記憶項目を伝達するデータバスとを更に有する。【選択図】  図１ 
2005202986.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリから論理ユニットまで階層化された記憶項目を提供するキャッシュメモリ装置であって：
記憶容量が固定である一次キャッシュと；
上記階層化された記憶項目を格納する記憶項目部と、一つのキャッシュエントリーを識別するキャッシュタグを格納するキャッシュタグ部とからなる複数のキャッシュエントリーを有する少なくとも一つの単一キャッシュアレイ構造により構成され、上記単一キャッシュアレイの数を決定することにより記憶容量を変えることが可能であり、第一、第二及び第三アドレス信号に応答し少なくとも一つの上記キャッシュエントリーの内容を読み出す二次キャッシュと；
上記キャッシュタグと比較するための第一アドレス信号と、上記複数のキャッシュエントリーから１つのキャッシュエントリーを選択するための第二アドレス信号と、上記１つのキャッシュエントリー内の一部を選択するための第三アドレス信号を発生し、上記キャッシュタグを上記第一アドレス信号と比較する手段を有する論理回路と；
上記キャッシュアレイと上記論理回路を相互接続し、上記第二アドレス信号を上記キャッシュアレイに伝達するアドレスバスと；
上記キャッシュアレイと上記論理回路を相互接続し、上記キャッシュアレイと上記論理回路の間で上記キャッシュタグと上記記憶項目とを伝達するデータバスとからなるキャッシュメモリ装置。
【請求項２】
上記各キャッシュエントリーは、少なくとも一つの上記キャッシュエントリーのパリティエラーを示すパリティ標識を格納するパリティ標識部を更に有し；上記データバスは、上記キャッシュアレイと上記論理回路の間で上記パリティ標識を伝達するパリティバスを更に有し；上記論理回路は、パリティエラーが発生したかどうかを判定するため上記パリティ標識を検査する手段と、上記パリティエラーに応じて上記記憶項目を取り消す手段とを更に有する請求項１記載のキャッシュメモリ装置。
【請求項３】
上記キャッシュアレイは連続的なキャッシュエントリーの系列の内容を送出し、上記論理回路は、キャッシュミスに応答し、キャッシュミスの検出後に受信済みのデータを取り消すことを特徴とする請求項１記載のキャッシュメモリ装置。
【請求項４】
上記論理回路は、上記キャッシュアレイが上記連続的なキャッシュエントリーの系列の内容を読み出すべきであることを示すため、進行信号を上記キャッシュアレイに供給し、上記キャッシュアレイは、上記進行信号の欠落に応答し、上記系列の内容の読み出しを終了させる手段を更に有する請求項１記載のキャッシュメモリ装置。
【請求項５】
上記論理回路は、上記第二アドレス信号が上記アドレスバス上でアサートされたこと、及び、上記キャッシュアレイは第１のキャッシュエントリーの内容を送出すべきであることを示すストローブ信号を発生する手段と、進行信号がアサートされている間に上記キャッシュアレイが上記連続的なキャッシュエントリーの内容を順次に送出すべきであることを示す進行信号を発生する手段とを更に有し；上記キャッシュアレイと上記論理回路を相互接続し、上記ストローブ信号と上記進行信号を上記キャッシュアレイに伝達する少なくとも一つの制御線を更に有する請求項１記載のキャッシュメモリ装置。
【請求項６】
上記キャッシュエントリーは、連続的なキャッシュエントリーの系列からなる複数のキャッシュラインに分類され、上記キャッシュアレイは上記キャッシュラインの内容を上記データバスを介して順次に送出させる手段を更に有する請求項１記載のキャッシュメモリ装置。
【請求項７】
上記各キャッシュラインが、複数の同一キャッシュタグによって識別され、上記同一キャッシュタグは、同一のキャッシュラインに含まれる複数のキャッシュエントリーに格納され、上記比較する手段は、キャッシュラインの上記同一キャッシュタグを利用して、第１の同一キャッシュタグと上記第一アドレス信号の不一致を検出し、上記第１の同一キャッシュタグと上記第一アドレス信号の一致を検出してキャッシュヒットを初期に検出し、キャッシュミスを初期に検出する手段を更に有する請求項６記載のキャッシュメモリ装置。
【請求項８】
上記各キャッシュタグは有効性標識を有し、上記論理回路は、上記有効性標識がクリアされているかどうかを判定するため上記キャッシュタグの有効性標識を検査し、これにより上記キャッシュラインは無効な記憶項目を含むことを示す手段と、クリアされた有効性標識に応じて上記キャッシュアレイと上記論理回路の間で伝達された記憶項目を取り消す手段とを更に有する請求項１記載のキャッシュメモリ装置。
【請求項９】
上記各キャッシュタグはパリティ標識を有し、上記論理回路は、パリティエラーが発生したかどうかを判定するため対応するキャッシュラインのキャッシュタグの上記パリティ標識を検査する手段と、上記対応するキャッシュラインを抹消する手段とを更に有する請求項１記載のキャッシュメモリ装置。
【請求項１０】
階層化された記憶項目を格納する部分と、上記階層化された記憶項目を識別するキャッシュタグを格納する部分とからなる単一キャッシュアレイ構造内に上記階層化された記憶項目と上記キャッシュタグとを格納するキャッシュメモリ装置を使用する方法であって：
実行ユニットからのメモリ要求に応じて論理回路を用いて、上記キャッシュタグと比較するための第一アドレス信号と、上記複数のキャッシュエントリーから１つのキャッシュエントリーを選択するための第二アドレス信号と、上記１つのキャッシュエントリー内の一部を選択するための第三アドレス信号を発生し、上記論理回路と上記キャッシュアレイ構造を相互接続するアドレスバス上で上記第一、第二及び第三アドレス信号をアサートする段階と；
上記単一キャッシュアレイ構造内にある複数の上記階層化された記憶項目とキャッシュラインに対応する一つのキャッシュタグとからなるキャッシュラインを、上記第二アドレス信号に応じて選択する段階と；
上記複数の階層化された記憶項目の各々と、上記対応するキャッシュタグを、上記論理回路と上記キャッシュアレイ構造を相互接続するデータバスに沿って上記論理回路に順次に送る段階と；
上記キャッシュタグと上記第一アドレス信号の一致を示す初期キャッシュヒット、又は、上記キャッシュタグと上記第一アドレス信号の不一致を示す初期キャッシュミスを検出する段階とからなる方法。
【請求項１１】
上記キャッシュタグは、有効性標識を有し、上記有効性標識がクリアされているかどうかを判定するため上記キャッシュタグの有効性標識を検査する段階を更に有する請求項１０記載の方法。
【請求項１２】
上記キャシュタグの有効性標識に応じて伝達された記憶項目を取り消す段階を有する請求項１１記載の方法。
【請求項１３】
階層化された記憶項目を格納する部分と、上記階層化された記憶項目を識別するキャッシュタグを格納する部分とからなる単一キャッシュアレイ構造内に上記階層化された記憶項目と上記キャッシュタグとを格納するキャッシュメモリ装置であって：
実行ユニットからのメモリ要求に応じて論理回路を用いて、上記キャッシュタグと比較するための第一アドレス信号と、上記複数のキャッシュエントリーから１つのキャッシュエントリーを選択するための第二アドレス信号と、上記１つのキャッシュエントリー内の一部を選択するための第三アドレス信号を発生する手段、及び、上記論理回路と上記キャッシュアレイ構造を相互接続するアドレスバスに沿って上記アドレス信号をアサートする手段と；
上記単一キャッシュアレイ構造内にある複数の上記階層化された記憶項目とキャッシュラインに対応する一つのキャッシュタグとからなるキャッシュラインを、上記第二アドレス信号に応じて選択する手段と；
上記複数の階層化された記憶項目の各々と、上記対応するキャッシュタグを、上記論理回路と上記キャッシュアレイ構造を相互接続するデータバスに沿って上記論理回路に順次に送る手段と；
上記キャッシュタグと上記第一アドレス信号の一致を示す初期キャッシュヒット、又は、上記キャッシュタグと上記第一アドレス信号の不一致を示す初期キャッシュミスを検出する手段とからなるキャッシュメモリ装置。
【請求項１４】
上記各キャッシュタグは有効性標識を有し、上記論理回路は、上記有効性標識がクリアされているかどうかを判定するため上記キャッシュタグの有効性標識を検査し、これにより上記キャッシュラインは無効な記憶項目を含むことを示す手段と、クリアされた有効性標識に応じて上記キャッシュアレイと上記論理回路の間で伝達された記憶項目を取り消す手段とを更に有する請求項１３記載のキャッシュメモリ装置。
【請求項１５】
固定記憶容量の一次キャッシュメモリと、単一メモリアレイの数を決定することにより記憶容量を変更可能な二次キャッシュメモリとを使用する方法であって、該単一メモリアレイは、外部メモリから該二次キャッシュメモリまで階層化された記憶項目を格納する部分と、該階層化された記憶項目を識別するキャッシュタグを格納する部分とを有し、当該方法は：
上記キャッシュタグと比較するための第一アドレス信号と、上記複数のキャッシュエントリーから１つのキャッシュエントリーを選択するための第二アドレス信号と、上記１つのキャッシュエントリー内の一部を選択するための第三アドレス信号を発生する段階と、
上記二次キャッシュメモリを相互接続するアドレスバスに沿って上記第一、第二、第三アドレス信号をアサートする段階と；
上記階層化された記憶項目と上記キャッシュタグとからなるキャッシュエントリーを、上記第二アドレス信号に応じて選択する段階と；
上記複数の階層化された記憶項目と、上記対応するキャッシュタグを、データバスに沿って順次送る段階と；
上記キャッシュタグと上記第一アドレス信号の一致を示す初期キャッシュヒット、又は、上記キャッシュタグと上記第一アドレス信号の不一致を示す初期キャッシュミスを検出する段階とからなる方法。
【請求項１６】
上記キャッシュタグは、有効性標識を有し、上記有効性標識がクリアされているかどうかを判定するため上記キャッシュタグの有効性標識を検査する段階を更に有する請求項１５記載の方法。
【請求項１７】
上記キャシュタグの有効性標識に応じて伝達された記憶項目を取り消す段階を有する請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にキャッシュメモリ装置と方法に係り、特に、階層化された記憶項目とキャッシュタグを単一キャッシュアレイ構造内に格納するキャッシュメモリ装置と方法に関する。
【背景技術】
【０００２】
現在のコンピュータシステムは、アクセス時間と記憶容量に関し記憶装置を順序付けする階層的なメモリ設計を採用している。非特許文献１に記載されているように、最高速のアクセス時間と、最小の記憶容量が得られるキャッシュメモリ装置は階層の最上位に置かれる。キャッシュメモリ装置は、コンピュータのプログラムとデータの中で最も頻繁に使用されるセグメントを格納するため使用される。キャッシュメモリよりも下位の階層には、アクセス時間が低下し、記憶容量が増加する順序で、主メモリと２次記憶装置が置かれている。メモリキャッシュは、主メモリから階層化された２種類の記憶項目：読み出し専用として扱われるプログラム命令と、データを格納するため使用される。
【０００３】
キャッシュメモリ装置は：中央処理装置（ＣＰＵ）の一体的な部分としてオンチップに設けられた１次又はレベル−１キャッシュと、ＣＰＵの外部にある２次又はレベル−２キャッシュの二つのタイプに分類される。１次キャッシュは、より高速のアクセス時間が得られるが、寸法、電力消費、及びＣＰＵに関連する他のエンジニアリング上の得失によって１次キャッシュの設計は制限され得るので、記憶容量は固定されている。
【０００４】
一方、２次キャッシュはＣＰＵから分離した物理的構成部品のため、上記得失による影響を受けないので、付加的なメモリチップを追加することにより容量を増加させることが可能である。典型的に、スタティックランダムアクセスメモリ（ＳＲＡＭ）チップは、通常のダイナミックランダムアクセスメモリ（ＤＲＡＭ）チップよりも高速のアクセス時間が得られるので使用される。
【０００５】
２次メモリキャッシュの容量は、一般的に主メモリの容量よりも著しく小さいので、各キャッシュエントリーが対応する主メモリの位置を識別するためにキャッシュタグを使用することが必要である。従って、二つの別個のメモリチップの実体が使用され、これにより、実体は少なくとも一つの離散的なメモリチップである可能性があり、一方の実体は階層化された記憶項目を格納し、もう一方の実体がキャッシュタグを格納する。階層化された記憶項目とキャッシュタグを格納するため別個のメモリチップの実体を利用する２次メモリキャッシュの例は、クロフォード（Ｃｒａｗｆｏｒｄ）他の米国特許第５，２１０，８４５  号明細書（特許文献１）と、リー（Ｌｅｅ）  他の米国特許第５，３３９，３９９  号明細書（特許文献２）と、マックウィリアムズ（ＭａｃＷｉｌｌｉａｍｓ）  他の米国特許第５，２３９，６０３  号（特許文献３）及び第５，２２８，１３４  号明細書（特許文献４）に記載されている。
【特許文献１】米国特許第５，２１０，８４５号明細書
【特許文献２】米国特許第５，３３９，３９９号明細書
【特許文献３】米国特許第５，２３９，６０３号明細書
【特許文献４】米国特許第５，２２８，１３４号明細書
【非特許文献１】ストーン（Ｈ．Ｓ．  Ｓｔｏｎｅ），“高性能コンピュータアーキテクチャー（Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）”、第２版（１９９０年）、アディソン−ウェスレイ（Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ）発行、２９−８７ページ
【発明の開示】
【発明が解決しようとする課題】
【０００６】
階層化された記憶項目とキャッシュタグを格納するための別個のメモリアレイ構造の使用によって生じる問題は、付加的な構成部品のためにアーキテクチャー上の複雑さが増大し、製造コストが増加し、動作速度が低下することである。
【０００７】
本発明は、上記従来技術の問題点を解決するため、階層化された記憶項目（プログラムの命令又はデータ）とキャッシュタグを格納する単一メモリアレイを使用するキャッシュメモリ装置及び方法の提供を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の階層化された記憶項目（プログラムの命令又はデータ）とキャッシュタグを格納する単一メモリアレイにおいて、キャッシュタグは複数のメモリチップ上に広がる連続的なキャッシュエントリーに亘って分散され、タグは２次メモリキャッシュアレイ構造への連続的な読みを行なうことにより再構築される。
【０００９】
本発明の一実施例は、外部メモリから論理ユニットまで階層化された記憶項目を提供するキャッシュメモリ装置である。上記装置は、複数のキャッシュエントリーよりなる少なくとも一つの単一キャッシュアレイ構造を有するキャッシュアレイによって構成される。各キャッシュエントリーは、記憶項目の少なくとも一部を記憶する記憶項目部と、キャッシュタグの少なくとも一部を記憶するキャッシュタグ部よりなる。各キャッシュタグはキャッシュエントリーの中の少なくとも一つを識別する。キャッシュアレイは、少なくとも一つのキャッシュエントリーの内容を読み出すためのアドレス信号に応答する。キャッシュメモリ装置は、メモリ要求に応答しアドレス信号を発生する論理回路と、所定の関係に関してキャッシュタグをメモリ要求と比較する回路を更に有する。上記キャッシュメモリ装置は、キャッシュアレイと論理回路を相互接続し、アドレス信号をキャッシュアレイに伝達するアドレスバスと、キャッシュアレイと論理回路を相互接続し、キャッシュアレイと論理回路の間でキャッシュタグと記憶項目を伝達するデータバスとを更に有する。
【００１０】
本発明の他の一実施例は、主メモリからキャッシュメモリまで階層化された記憶項目を、主メモリ、又は、もし存在するならばキャッシュメモリの何れかから選択的に提供するキャッシュメモリ装置である。上記キャッシュメモリ装置は、複数の記憶項目を格納し、２重キャッシュタグを各記憶項目に対応させるキャッシュメモリからなる。各記憶項目に対する２重キャッシュタグの複製の各々は対応する記憶項目を識別する。複数の記憶項目の各々は、複数の記憶項目部からなる。各記憶項目部は、記憶項目部と関連して２重キャッシュタグの複製の一方を格納する。キャッシュタグメモリは、記憶項目と、対応するキャッシュタグの中の一つの複製の一方を読み出すため受け取られたアドレスに応答する。上記キャッシュメモリ装置は、主メモリへのメモリアクセスの要求に応答し、アドレスを発生する論理回路を更に有する。論理回路は、所定の関係に関して一つのキャッシュタグの複製の一方の各々をもう一方の複製よりも前に比較する回路よりなる。キャッシュメモリ装置は、キャッシュメモリ構造と論理回路の間でアドレスと、記憶項目及び対応する一つのキャッシュタグの複製の一方とを伝達する少なくとも一つのバスを更に有する。
【００１１】
本発明を実施するため考え得るその例に限定されることのない最良の形態の例による本発明の実施例だけが以下の詳細な説明に示され説明されている。当業者は、かかる以下の詳細な説明に基づいて本発明の他の実施例を容易に知ることができる。本発明の精神と範囲から逸れることなく、本発明の他の種々の実施例を形成することが可能であり、かつ、本発明の幾つかの細部は、種々の明らかな点で変更し得ることが分かる。従って、添付図面及び以下の説明は本質的に例示であり、その例に限定されるものではないと見なす必要がある。
【発明の効果】
【００１２】
本発明の一態様によれば、少なくとも一つのデータキャッシュアレイ構造内の余分な場所はキャッシュタグを格納するため使用されるので、キャッシュタグを別の専用の構造に格納する必要は取り除かれる利点がある。
【００１３】
本発明の一態様によれば、２次キャッシュが用いられるので、使用するメモリチップの数で記憶容量を決めることができる利点が得られる。
【００１４】
本発明の一態様によれば、キャッシュタグを冗長的に格納することができるので、キャッシュヒット及びキャッシュミスの初期検出を行なうため使用できる利点がある。
【発明を実施するための最良の形態】
【００１５】
本発明は２個の別々のＳＲＡＭチップ上に分散した４個の３ビットセグメントを結合することによりキャッシュタグが形成される２次メモリキャッシュに関する。本発明の一実施例は、パイプライン化された実行ユニットと共に縮小命令セットコンピュータ（ＲＩＳＣ）設計を利用するＳＰＡＲＣ（登録商標）（スケーラブル  プロセッサ  アークテクチャー）マイクロプロセッサ上で実現されている。ＳＰＡＲＣは、カリフォルニア州、マウンテン  ビューのサンマイクロシステムズ社の登録商標である。
【００１６】
本発明は、更に、２重キャッシュタグが、多重の記憶場所への読出しに完全なキャッシュタグを得ることが必要とされる環境で２次キャッシュの多重の場所に格納された部分に分割され、これにより、冗長なキャッシュタグを利用してキャッシュラインの多重記憶場所の全部が読まれる前にキャッシュヒット又はキャッシュミスを検出することが可能になる２次メモリキャッシュに関する。
【００１７】
図１には本発明の一実施例のキャッシュメモリ装置の概略図が示されている。キャッシュメモリ装置１は、キャッシュアドレスバス４と、キャッシュ制御信号５の組を用いて共有されたキャッシュデータとキャッシュタグを含む２次キャッシュ３に接続されたマイクロプロセッサ２のような論理ユニットからなる。マイクロプロセッサ２は、主メモリアドレスバス８と、主メモリ制御信号９の組を用いて主メモリ７にも接続されている。２次キャッシュ３と主メモリ７は共に、共有データバス６を用いて、マイクロプロセッサとの間で記憶項目を転送する。４−段の先入れ先出し（ＦＩＦＯ）双方向記憶バッファ１０は、マイクロプロセッサから主メモリに書き込まれる記憶項目を緩衝するため使用される。
【００１８】
マイクロプロセッサ内の実行ユニット（図示しない）は、２８ビットの物理的主メモリアドレスからなる読出し要求を発生する。全部で３２バイトのキャッシュラインが要求される場合、２次キャッシュのルックアップ（検査）は主メモリのルックアップと並行して始められる。要求された記憶項目が２次キャッシュで検出された場合、主メモリへのルックアップは取り消される。要求された記憶項目が２次キャッシュで検出されなかった場合、要求された記憶項目は主メモリから取り出され、２次キャッシュ内の適当な場所は、取り出された主メモリの項目が利用可能になると同時に上記取り出された主メモリの項目で更新される。
【００１９】
実行ユニットは更にメモリ書込み要求を発生する。キャッシュメモリ装置は、ライトスルー  キャッシュ  コヒーレンシー  プロトコル（Ｗｒｉｔｅ−ｔｈｒｏｕｇｈ  ｃａｃｈｅ  ｃｏｈｅｒｅｎｃｙ  ｐｒｏｔｏｃｏｌ）  を使用する。全てのキャッシュラインが書き込まれたとき、新しいデータは２次メモリキャッシュと主メモリとに同時に書き込まれ、２次キャッシュタグは新しいタグの物理アドレスを使用して更新される。
【００２０】
２次キャッシュ３は直接アドレスマッピングを介してアクセスされる。直接アドレスマッピングとは、アドレスバス４を介して２次キャッシュ３に送られたアドレスがキャッシュ内の固有の場所を直接参照することを意味する。マイクロプロセッサ２は、主メモリ７内の場所の２８ビット物理アドレスの形でメモリアクセスの要求を形成する。
【００２１】
上記２８ビット物理アドレスは、三つの構成要素に分割される。最初の３ビットＡＤＤＲ〔２：０〕は、単一キャッシュエントリーに対応する６４ビットのダブルワード内の１バイトを選択するため実行ユニットによって内部的に使用される。次の１５ビットＡＤＤＲ〔１７：３〕は、キャッシュエントリーを選択するため、キャッシュアドレスバス４、即ち、図２のＡ〔１４：０〕を介して送られる。２次キャッシュ３は、キャッシュアドレスバス４上でアサートされた１５ビットアドレスに応答し、２次キャッシュ３はキャッシュエントリーを読出し始める。２次キャッシュへのルックアップは、４個の６４ビットのキャッシュエントリーからなる３２バイトのキャッシュラインを使用して行なわれる。残りの１０ビットＡＤＤＲ〔２７：１８〕は、上記１０ビットを２次キャッシュタグと比較することによりキャッシュヒット又はキャッシュミスを検出するためマイクロプロセッサによって内部的に使用される。キャッシュタグとビットＡＤＤＲ〔２７：１８〕の間の一致はキャッシュヒットであり、キャッシュタグとビットＡＤＤＲ〔２７：１８〕の間の不一致はキャッシュミスである。キャッシュヒットとキャッシュミスの両方は、実行ユニットへの信号によってマイクロプロセッサ内で示される。
【００２２】
図２には、マイクロプロセッサと２次キャッシュの間で接続されたアドレスバス及び制御信号と、キャッシュメモリ装置用のデータバスが示されている。キャッシュアドレスバス４は、アドレスデータＡ〔１４：０〕の１５ビットを伝達する一組のアドレス線によって構成される。上記１５ビットは物理アドレスＡＤＤＲ〔１７：３〕から得られる。このアドレスはキャッシュエントリーを識別するため２次キャッシュで絶対アドレスとして使用される。キャッシュ制御信号５は、アクセスするためのメモリチップを選択する３本のチップ選択信号ＣＳ〔０〕−〔３〕の一組と、ストローブ信号を伝送するための４本の１ビット信号線と、進行信号と、２次キャッシュへの書込みイネーブル信号とを含む４組の信号からなる。
【００２３】
データバス６は７２ビットのデータを伝達するデータ線の三つのグループからなる。第１のグループはキャッシュタグデータＴ〔５：０〕の６ビットを伝達する。第２のグループはパリティＰ〔１：０〕の２ビットを伝達する。第３のグループはキャッシュデータＤ〔６３：０〕の６４ビットを伝達する。キャッシュタグデータ線は、マイクロプロセッサ２と２次キャッシュ３とによって排他的に使用される。
【００２４】
図３乃至５には２次キャッシュ３の３通りの構成の概略図が示されている。２次キャッシュ３は、例えば、図３の２５６ＫＢ（キロバイト）キャッシュ、図４の５１２ＫＢキャッシュ、又は、図５の１ＭＢ（メガバイト）キャッシュを含むあらゆる数の記憶容量で構成することが可能であり、これにより、記憶容量は使用されるメモリチップの数で決まる。２５６ＫＢの構成は１対のメモリチップ（２０ａ及び２０ｂ）を使用する。５１２ＫＢの構成は２対のメモリチップ（２０ａ及び２０ｂと、２８ａ及び２８ｂ）を使用する。１ＭＢの構成は、４対のメモリチップ（２０ａ及び２０ｂと、２８ａ及び２８ｂと、２９ａ及び２９ｂと、３０ａ及び３０ｂ）を使用する。
【００２５】
図２に示されたチップ選択信号ＣＳ〔０〕−〔３〕は、所望のメモリチップの対を選択するため使用され、これにより、ＣＳ〔０〕にアサートされた信号はチップ対２０ａ及び２０ｂを選択し、ＣＳ〔１〕はチップ対２８ａ及び２８ｂを選択し、ＣＳ〔２〕はチップ対２９ａ及び２９ｂを選択し、ＣＳ〔３〕はチップ対３０ａ及び３０ｂを選択する。
【００２６】
本発明の一実施例によれば、各メモリチップは、３６ビットのデータの３２ＫＢのＳＲＡＭチップにより構成される。ＳＲＡＭチップの一例は、富士通製の３２Ｋ  ×  ３６  ＭＢ８２ＶＰ０３６形のＳＲＡＭメモリチップである。
【００２７】
以下の説明は２５６ＫＢの構成だけに基づいているが、５１２ＫＢ及び１ＭＢの構成にも同様に適用される。
【００２８】
図３には１対のメモリチップ２０ａ及び２０ｂからなる２５６ＫＢキャッシュとして構成された２次メモリが示されている。各メモリチップは、３２，７６８個の３６ビットの個別にアドレス指定可能なエントリーからなる単一キャッシュアレイ構造をなす。各３６ビットのエントリーは、３２ビット（又は４バイト）のデータと、１パリティビットと、３ビットのキャッシュタグデータを含む。キャッシュエントリーは、常に対の形で取り出されるので、７２ビットの各対がキャッシュエントリーとして参照される。キャッシュラインは、３２バイトのアドレス境界から始まる４個の連続的に格納されたキャッシュエントリーからなり、かつ、３２バイトのデータ（１キャッシュエントリー当たり８バイト  ×  １キャッシュライン当たり４エントリー）を含む。
【００２９】
従来技術の場合、典型的に、少なくとも一つのキャッシュアレイ構造は、階層化された記憶項目（データ）と、対応するパリティビットとを格納するため使用され、少なくとも一つのキャッシュアレイ構造がキャッシュタグを格納するため使用される。しかし、本発明によれば、少なくとも一つのデータキャッシュアレイ構造内の余分な場所はキャッシュタグを格納するため使用されるので、キャッシュタグを別の専用の構造に格納する必要は取り除かれる。
【００３０】
各単一キャッシュアレイ構造は、キャッシュデータと、パリティビットと、キャッシュタグを格納する３列に論理的に分割される。図３において、キャッシュタグは、メモリチップ２０ａ及び２０ｂの夫々の列２１ａ及び２１ｂに格納されている。同様に、パリティビットは列２２ａ及び２２ｂに格納され、キャッシュデータは列２３ａ及び２３ｂに格納される。
【００３１】
７２ビットのデータは、１回のアクセスにつき２次キャッシュメモリとマイクロプロセッサの間で伝送される。データバス６は２次キャッシュ３の内部データバス２４に接続する。内部データバスは、キャッシュタグセグメントバス２５ａ及び２５ｂと、パリティセグメントバス２６ａ及び２６ｂと、キャッシュデータセグメントバス２７ａ及び２７ｂを用いて３ビットのキャッシュデータと、１ビットのパリティと、３２ビットのキャッシュデータを得るため、各キャッシュアレイ構造で枝分かれする。
【００３２】
図６には２次キャッシュの２５６ＫＢ構成で使用される内部バスの配線図が示されている。同様の内部バスは２次キャッシュの５１２ＫＢ又は１ＭＢの構成で使用される。マイクロプロセッサと２次キャッシュの間でキャッシュタグデータを伝達する６本の線のグループは主メモリには延在しないにも係わらず、データバス６と内部データバス２４は同一データを伝達する。キャッシュタグセグメントバス２５ａ及び２５ｂは、キャッシュタグを二つの３ビットセグメントのＴ〔２：０〕とＴ〔５：３〕に分割する。パリティビットセグメントバス２６ａ及び２６ｂは、パリティビットを二つの１ビットセグメントのＰ〔０〕とＰ〔１〕に分割する。キャッシュデータセグメントバス２７ａ及び２７ｂは、キャッシュデータを二つの３２ビットセグメントのＤ〔３１：０〕とＤ〔６４：３２〕に分割する。
【００３３】
２次キャッシュ内の４個の連続的なキャッシュエントリーの４回の連続的な読出しには、一本のキャッシュラインを読むことが要求される。しかし、完全なキャッシュタグは、キャッシュラインを構成する４個のキャッシュエントリーの中の２個のキャッシュエントリーだけに格納することが可能である。図７にはキャッシュタグの構成図が示されている。キャッシュタグは、三つのフィールドを含む１２ビット長からなる。ビット０乃至９よりなる物理アドレスフィールドは、上記キャッシュラインに格納された階層化された記憶項目の物理アドレスの上位１０ビットを含む。ビット１０によって構成される有効ビットフィールドＶは、キャッシュラインに有効データが含まれているかどうかを示す。ビット１１からなるパリティビットフィールドＰは、２次キャッシュタグのパリティ検査のため使用される。動作中、キャッシュタグ有効ビットがクリアされている場合、キャッシュタグパリティビットは検査されない。更に、キャッシュタグのパリティエラーにより２次キャッシュのミスが発生し、キャッシュタグのパリティエラーはシステムソフトウェアでは分からない。
【００３４】
２次キャッシュタグは四つの３ビットセグメント内の二つの連続的なキャッシュエントリーに格納されている。図８にはキャッシュタグセグメントの記憶スキームの概略が示されている。キャッシュラインは４個のキャッシュエントリーからなり、４個のキャッシュエントリーの中の２個だけがキャッシュタグを格納するため必要とされるので、キャッシュタグを冗長的に格納し、キャッシュヒット又はキャッシュミスの初期検出を行なうため使用できる利点がある。
【００３５】
キャッシュタグを２回格納することにより、キャッシュラインを構成する４個のキャッシュエントリーの中の二つだけがマイクロプロセッサによって受け取られた後に、キャッシュヒット又はキャッシュミスを検出することが可能である。キャッシュヒットは初期に検出されるので、ラップアラウンドの特徴（以下に説明する）を使用して、２次キャッシュは、更なる遅延を受けることなく即座に利用可能になる連続的なキャッシュエントリーを送出し続ける。逆に、キャッシュミスは既に受信されたデータの取消を要求するだけである。
【００３６】
本発明の一実施例において、マイクロプロセッサは、多段の命令パイプライン（図示しない）と共に実行ユニット（図示しない）を有する。好ましくは、マイクロプロセッサは、データと共にロードされ、概念的なパイプで同時に実行されるプログラム命令の重複を使用する命令の同時又は並列処理を行なうパイプラインプロセッサである。キャッシュラインを構成する最初の二つのキャッシュエントリーは、キャッシュヒット又はキャッシュミスが発生したかどうかが分かる前に読まれる。それにも係わらず、上記エントリーの両方のデータは、受取と同時に即座に実行ユニットに進められ、命令パイプラインの中に置かれる。１クロックサイクル当たり一つのキャッシュエントリーが受けられる。同様に、パイプライン中の１段は、１クロックサイクルで実行される。かくして、最初の二つのエントリーからのデータは、キャッシュヒット又はキャッシュミスが検出されたとき、命令パイプラインの中を２段進められている。キャッシュミスが発生したとき、マイクロプロセッサはデータを取り消し、実行ユニットによって使用される前にパイプラインから実際に取り除く。キャッシュヒットが発生した場合、データはパイプライン中で２段の深さにあり、２クロックサイクルが節約される利点がある。
【００３７】
より一般的に言うと、パイプライン化された実行ユニットを有するマイクロプロセッサに適用可能なだけではなく、キャッシュタグの冗長な格納によって、マイクロプロセッサは、完全なキャッシュラインが受け取られたときキャッシュヒット又はキャッシュミスが発生したかどうかを判定することができる。
【００３８】
２次キャッシュメモリはラップアラウンドの特徴を利用し、これによって、一つのキャッシュエントリーは連続的な各クロックサイクルで出力される。もう一度図２を参照すると、ストローブ制御信号でローレベルをアサートすることにより、キャッシュエントリーアドレスがキャッシュアドレスバス４上でアサートされたことが示されている。応答として、２次キャッシュはアドレスバス４上でアサートされたアドレスに格納されたキャッシュエントリーを送出する。進行制御信号上で同様にローレベルがアサートされている場合、２次キャッシュは、１クロック当たり１エントリーで、２次キャッシュ内の連続的な記憶場所にあるキャッシュエントリーを送り続ける。２次キャッシュは、キャッシュラインを構成する４個のキャッシュエントリーが送られる前にキャッシュラインの最後に達したとき、キャッシュをキャッシュラインの先頭にラップアラウンドさせるモジュロー４のカウンタを使用する。ラップアラウンドの特徴を使用することにより、マイクロプロセッサは、完全な４−エントリーのキャッシュラインの３２バイト境界に対応する必要がない一つのキャッシュエントリーアドレスをアサートするだけでよい。
【００３９】
図９には、キャッシュヒット又はキャッシュミスの検出回路を表わす論理図が示されている。上記回路の目的は、連続的なクロックサイクルで受けられたキャッシュエントリーに関してキャッシュタグの上側と下側のセグメントを比較することによりキャッシュヒット又はキャッシュミスを検出することである。最初に、キャッシュタグの一方の半分が比較され、その結果が格納される。次のクロックサイクル中に、キャッシュタグのもう一方の半分が比較され、上側及び下側の両方のセグメントが一致する結果を有するかどうかを判定するため、その結果と前の比較の結果が併せて比較される。上側及び下側の両方のセグメントが一致する結果を有するならば、キャッシュヒットが発生している。上側及び下側の両方のセグメントが一致しない場合、キャッシュミスが発生している。
【００４０】
上記回路はマイクロプロセッサの内側にある。キャッシュタグの物理アドレスフィールドには、キャッシュラインに格納された階層化された記憶項目の物理アドレスの上位１０ビットが含まれている点に注意する必要がある。各キャッシュタグは、二つの連続的なキャッシュエントリーに格納されているので、２次キャッシュメモリからデータバスを介して二つの６ビットセグメントＴ〔５：０〕に受け取られる。２次キャッシュから受けられたような各セグメントは、内部キャッシュタグバス８０に沿って一時記憶装置用のレジスタ８１に進められる。要求された記憶項目の上位１０ビットＰＡ〔２７：１８〕は、内部物理アドレスバス８２上でアサートされ、内部バス８３及び８４で夫々アサートされた下位５ビットのＰＡ〔２２：１８〕及び上位５ビットのＰＡ〔２７：２３〕の二つの５ビットセグメントに分割される。
【００４１】
レジスタ８１に格納されたキャッシュタグセグメントは、排他的否定論理和（ＸＮＯＲ）論理ゲート８５及び８６を用いて両方の５ビット物理アドレスセグメントと比較される。ＸＮＯＲ演算から得られた結果は、上側又は下側の何れが比較されているかに基づいて適当な結果を選択するためマルチプレクサ８７を用いて選択される。ＳＥＬ＿ＬＯＷ＿ＴＡＧ信号は、上側又は下側のキャッシュタグセグメントの比較結果を選択するためマルチプレクサ８７への入力として制御信号８８でアサートされる。
【００４２】
マルチプレクサ８７からの結果は、共にレジスタ８９に格納され、ＡＮＤ論理ゲート９０に進められる。レジスタ８９は前のクロックサイクルで判定された比較演算の結果を含み、次の連続的なクロックサイクルがＩＯ＿ＣＬＫ信号９７上でアサートされたとき、ＡＮＤ論理ゲートに進められる。現在のタグセグメントのヒットは線９０に沿って示される。前のタグセグメントのヒットは線９１にそって示される。両方の線にアサートされた値は、線９３でキャッシュヒット又はキャッシュミスを示す信号をアサートするＡＮＤ論理ゲート９２によって比較される。キャッシュミスが発生し、取消イネーブル信号（ＥＮＢ＿ＣＡＮＣＥＬ）が線９４にアサートされた場合、ＡＮＤ論理ゲート９５は線９６上に取消信号をアサートし、これにより、前のクロックサイクル中に実行ユニットに既に送られたデータ準備完了（ＤＡＴＡ＿ＲＤＹ）信号を取り消す。上記取消によって、例えば、命令パイプライン中の記憶項目が取り消される。
【００４３】
図１０には、キャッシュエントリーパリティ検査回路を表わす論理図が示されている。この回路の目的は、キャッシュエントリーを構成する何れかの３６ビットセグメントに関しパリティエラーが発生したかどうかを判定することである。上記回路はマイクロプロセッサの内部にある。パリティエラーがない場合を想定すると、内部ＤＡＴＡ＿ＲＤＹ信号がアサートされ、これにより、２次キャッシュからの有効データの存在が示される。２次キャッシュからデータバス６を介して受けられた６４ビットのキャッシュデータ及び二つのパリティビットは、二つの３２ビットセグメントのＤ〔６３：３２〕及びＤ〔３１：０〕と、２個の別個のパリティビットＰ〔１〕及びＰ〔０〕とに分割される。キャッシュデータセグメントは、内部キャッシュデータバス１００及び１０１でアサートされ、パリティビットはバス１０２及び１０３に沿ってアサートされる。キャッシュデータは、キャッシュデータセグメントのパリティを定めるためＸＯＲ論理ゲート１０４及び１０５に入力される。次いで、その結果は、ＸＯＲ論理ゲート１０６及び１０７を用いて上記セグメントに関しパリティビットと比較される。その結果はＯＲ論理ゲート１０８によって比較され、レジスタ１０９に格納される。レジスタは、ＣＰＵ＿ＣＬＫ信号１１０上でアサートされるような次のクロックサイクルに上記結果を先に進める。準備完了信号イネーブル（ＥＮＢ＿ＲＥＡＤＹ）がアサートされ、ＡＮＤ論理ゲートによって定められたようなパリティエラーが存在しない場合、データ準備完了（ＤＡＴＡ＿ＲＤＹ）信号１１２がアサートされ、有効キャッシュエントリーがパリティエラー無しで受け取られたことを示す。
【００４４】
上記キャッシュメモリ装置は、ライトスルー  キャッシュ  コヒーレンシー  プロトコルを利用する。書込み動作の実行時に、新しいデータが２次キャッシュメモリと主メモリとに同時に書き込まれる。全てのメモリ書込みは上記キャッシュタグを更新する。非ブロック（キャッシュライン以外の）書込みはキャッシュタグエントリーを抹消し、一方、ブロック書込みはキャッシュタグエントリーを更新する。読出し動作の実行時に、非ブロック読出しは２次キャッシュメモリを回避し、一方、ブロック書込みにより２次キャッシュのルックアップが行なわれる。ルックアップの結果がキャッシュミスである場合、対応する主メモリのデータは、利用可能なときに２次キャッシュに書き込まれ、これに従ってキャッシュタグが更新される。
【００４５】
２次キャッシュの階層化された記憶項目は、マイクロプロセッサ２内の受取時にパリティエラーが検査される。パリティエラーが最初の二つのデータエントリーに生じた場合、パリティエラーはキャッシュミスと同様に処理され、既に読まれたデータは取り消され、キャッシュタグは更新される。パリティエラーが最後の二つのキャッシュデータエントリーに生じた場合、パリティエラーによってパリティエラーが通知される。外部主メモリのブロック読出しのパリティエラーは、２次キャッシュミスがあるならば、指定された２次キャッシュラインを抹消する。
【００４６】
図１１には、書込み動作用のキャッシュ  コヒーレンシー  プロトコルのフローチャートが示されている。書込みがブロック書込みを試みる場合（ステップ４０）、キャッシュは、キャッシュラインとそのタグを置き換えることにより更新される（ステップ４１）。ブロック書込み以外の場合、非ブロック書込みが行なわれるならば、キャッシュラインは、４回の連続的なキャッシュエントリーの書込みでキャッシュタグを無効化、又は、ヌル値に設定することにより抹消される。
【００４７】
図１２には、読出し動作用のキャッシュ  コヒーレンシー  プロトコルのフローチャートが示されている。非ブロック読出しが行なわれる場合（ステップ５０）、２次キャッシュメモリは回避され、データは主メモリから直接読まれる（ステップ５１）。非ブロック読出し以外の場合、２次キャッシュのルックアップが行なわれる。最初のキャッシュエントリーが読まれ（ステップ５２）、データパリティエラーが検出された場合（ステップ５３）、データは取り消され、キャッシュラインは、利用可能になったとき主メモリのデータで更新される（ステップ５４）。データパリティが検出されなかった場合、２次キャッシュメモリが読まれ（ステップ５５）、データパリティが検出された場合（ステップ５６）、データは取り消され、キャッシュラインは、利用可能になったとき主メモリのデータで更新される（ステップ５７）。
【００４８】
第１又は第２のキャッシュエントリーの何れにおいてもパリティエラーが発生していない場合を想定すると、完全なキャッシュタグが受け取られ、ステップ５８から始めるキャッシュヒット又はキャッシュミスの初期の検出が行なわれる。キャッシュタグの有効ビットが検査され、クリアされている場合（ステップ５８）、キャッシュラインは取り消される無効データを有し、キャッシュラインは、利用可能になったとき主メモリのデータで更新される（ステップ５９）。クリアされていない場合、キャッシュタグパリティビットが検査され、パリティエラーが検出された場合（ステップ６０）、パリティエラーが通知され、キャッシュラインは抹消される（ステップ６１）。パリティエラーは検出されなかった場合、キャッシュタグが検査され、キャッシュミスが検出された場合（ステップ６２）、データは取り消され、キャッシュラインは、利用可能になったとき主メモリのデータで更新される（ステップ６３）。キャッシュヒットが検出された場合を想定すると、第３及び第４のキャッシュエントリーが読まれる（ステップ６４及びステップ６７）。データパリティエラーが何れかのキャッシュエントリーに関し検出された場合（ステップ６５及び６８）、パリティエラーが通知され、キャッシュラインは抹消される（ステップ６６及び６９）。データパリティエラーが発生しなかった場合、２次キャッシュのルックアップは成功する。
【００４９】
図１３には、２次キャッシュのヒットを表わすタイミングチャートが示されている。読出し要求は時点Ｔ０  で行なわれる。２次キャッシュのストローブ制御信号と、キャッシュラインのアドレスは、時点Ｔ１  でアサートされる。時点Ｔ２  で２次キャッシュは読出し動作を開始し、マイクロプロセッサは順次のキャッシュエントリーのルックアップを示す進行制御信号をアサートする。２次キャッシュは、時点Ｔ３  で第１のキャッシュエントリーを送り始める。マイクロプロセッサは、第１のキャッシュエントリーを受け、内部的にその受取を示すハイレベルの推測的な読出し準備完了（ＳＣ  Ｒｅａｄ  Ｒｅａｄｙ）信号をアサートし、一方、２次キャッシュは、時点Ｔ４  で第２のキャッシュエントリーを送り始める。キャッシュタグのもう一方の半分を含む第２のキャッシュエントリーは、時点Ｔ５  で受けられ、キャッシュヒットの初期検出が時点Ｔ５  で行なわれる。キャッシュラインを構成する残りの二つのキャッシュエントリーは、時点Ｔ６  及びＴ７  で受けられる。
【００５０】
図１４には、２次キャッシュのミスを表わすタイミングチャートが示されている。読出し要求は時点Ｔ０  で行なわれる。２次キャッシュのストローブ制御信号と、キャッシュラインのアドレスは、時点Ｔ１  でアサートされる。時点Ｔ２  で２次キャッシュは読出し動作を開始し、マイクロプロセッサは順次のキャッシュエントリーのルックアップを示す進行制御信号をアサートする。２次キャッシュは、時点Ｔ３  で第１のキャッシュエントリーを送り始める。マイクロプロセッサは、第１のキャッシュエントリーを受け、内部的にその受取を示すハイレベルの推測的な読出し準備完了信号をアサートし、一方、２次キャッシュは、時点Ｔ４  で第２のキャッシュエントリーを送り始める。キャッシュタグのもう一方の半分を含む第２のキャッシュエントリーは、時点Ｔ５  で受けられ、キャッシュミスの初期検出が時点Ｔ５  で行なわれる。マイクロプロセッサは、キャッシュミスの検出時に、ローレベルの読出し準備完了信号をアサートし、ハイレベルの取消信号をアサートする。
【００５１】
図１５には、主メモリ読出しを伴う２次キャッシュミスを表わすタイミングチャートが示されている。読出し要求は時点Ｔ０  で行なわれる。キャッシュラインのアドレスは時点Ｔ１  でアサートされる。時点Ｔ２  で２次キャッシュは読出し動作を開始し、マイクロプロセッサは、順次のキャッシュエントリーのルックアップを示す進行制御信号をアサートする。２次キャッシュは、時点Ｔ３  で第１のキャッシュエントリーを送り始める。マイクロプロセッサは、第１のキャッシュエントリーを受け、内部的にその受取を示すハイレベルの推測的な読出し準備完了信号をアサートし、一方、２次キャッシュは、時点Ｔ４  で第２のキャッシュエントリーを送り始める。キャッシュタグのもう一方の半分を含む第２のキャッシュエントリーは、時点Ｔ５  で受けられ、キャッシュミスの初期検出が時点Ｔ５  で行なわれる。マイクロプロセッサは、キャッシュミスの検出時に、ローレベルの読出し準備完了信号をアサートし、ハイレベルの取消信号をアサートする。２次キャッシュラインの内容は、時点Ｔ２３から主メモリより受けられたデータを用いて更新され、新しいキャッシュエントリーは９クロック周期毎に受けられる。
【００５２】
上記本発明を、特に、その実施例を参照して示し、かつ、説明しているが、当業者は、本発明の精神と範囲から逸れるこなく、形態及び細部の点で上記実施例の上記及び他の変形をなし得ることが分かる。
【００５３】
以下、本発明により教示される手段を例示的に列挙する。
【００５４】
（付記１）
外部メモリから論理ユニットまで階層化された記憶項目を提供するキャッシュメモリ装置であって：
記憶項目の少なくとも一部を格納する記憶項目部と、少なくとも一つのキャッシュエントリーを識別するキャッシュタグの少なくとも一部を格納するキャッシュタグ部とからなる複数のキャッシュエントリーを有する少なくとも一つの単一キャッシュアレイ構造により構成され、アドレス信号に応答し少なくとも一つの上記キャッシュエントリーの内容を読み出すキャッシュアレイと；
メモリ要求に応答し、アドレス信号を発生し、所定の関係に関して上記キャッシュタグを上記メモリ要求と比較する手段を有する論理回路と；
上記キャッシュアレイと上記論理回路を相互接続し、上記アドレス信号を上記キャッシュアレイに伝達するアドレスバスと；
上記キャッシュアレイと上記論理回路を相互接続し、上記キャッシュアレイと上記論理回路の間で上記キャッシュタグと上記記憶項目とを伝達するデータバスとからなるキャッシュメモリ装置。
【００５５】
（付記２）
上記各キャッシュエントリーは、少なくとも一つの上記キャッシュエントリーのパリティエラーを示すパリティ標識を格納するパリティ標識部を更に有し；
上記データバスは、上記キャッシュアレイと上記論理回路の間で上記パリティ標識を伝達するパリティバスを更に有し；
上記論理回路は、パリティエラーが発生したかどうかを判定するため上記パリティ標識を検査する手段と、上記パリティエラーに応じて上記記憶項目を取り消す手段とを更に有する付記１記載のキャッシュメモリ装置。
【００５６】
（付記３）
上記キャッシュアレイは連続的なキャッシュエントリーの系列の内容を送出し、
上記論理回路は、キャッシュミスである上記所定の関係に応答し、上記キャッシュアレイは上記系列の内容の送出を中止すべきであることを示す手段を更に有する付記１記載のキャッシュメモリ装置。
【００５７】
（付記４）
上記論理回路は、上記キャッシュアレイが上記連続的なキャッシュエントリーの系列の内容を読み出すべきであることを示すため、進行信号を上記キャッシュアレイに供給し、
上記キャッシュアレイは、上記進行信号の欠落に応答し、上記系列の内容の読み出しを終了させる手段を更に有する付記１記載のキャッシュメモリ装置。
【００５８】
（付記５）
上記論理回路は、上記アドレス信号が上記アドレスバス上でアサートされたこと、及び、上記キャッシュアレイは第１のキャッシュエントリーの内容を送出すべきであることを示すストローブ信号を発生する手段と、進行信号がアサートされている間に上記キャッシュアレイが上記連続的なキャッシュエントリーの内容を順次に送出すべきであることを示す進行信号を発生する手段とを更に有し；
上記キャッシュアレイと上記論理回路を相互接続し、上記ストローブ信号と上記進行信号を上記キャッシュアレイに伝達する少なくとも一つの制御線を更に有する付記１記載のキャッシュメモリ装置。
【００５９】
（付記６）
上記キャッシュエントリーは、連続的なキャッシュエントリーの系列からなる複数のキャッシュラインに分類され、
上記キャッシュアレイは上記キャッシュラインの内容を上記データバスを介して順次に送出させる手段を更に有する付記１記載のキャッシュメモリ装置。
【００６０】
（付記７）
上記各キャッシュラインは、上記各キャッシュラインに対し少なくとも一つの同一キャッシュタグが対応するキャッシュラインのキャッシュエントリーの中の別のキャッシュエントリーに格納された複数の同一キャッシュタグによって識別され、
上記比較手段は、第１の同一キャッシュタグと上記メモリ要求の一つとの間の不一致と、初期に検出されたキャッシュヒットよりなる上記第１の同一キャッシュタグと上記メモリ要求の一つとの間の一致と、初期に検出されたキャッシュミスよりなる不一致とに関して、対応するキャッシュラインの上記同一キャッシュタグの系列内の上記第１の同一キャッシュタグを比較する手段を更に有する付記６記載のキャッシュメモリ装置。
【００６１】
（付記８）
上記各キャッシュラインは、上記キャッシュラインの上記複数のキャッシュタグ部の中の一つに格納された複数のセグメントに分割されたキャッシュタグによって識別され、
上記論理回路は、上記データバスを介して上記キャッシュアレイから順次に送出されたキャッシュラインの複数のキャッシュタグセグメントを受ける手段と、各キャッシュタグセグメントを上記メモリ要求と比較する手段と、上記キャッシュタグセグメントの一つと上記メモリ要求の間の不一致に応じて取消信号を発生する手段とを更に有する付記６記載のキャッシュメモリ装置。
【００６２】
（付記９）
上記各キャッシュタグは有効性標識を有し、
上記論理回路は、上記有効性標識がクリアされているかどうかを判定するため上記キャッシュタグの有効性標識を検査し、これにより上記キャッシュラインは無効な記憶項目を含むことを示す手段と、クリアされた有効性標識に応じて上記キャッシュアレイと上記論理回路の間で伝達された記憶項目を取り消す手段とを更に有する付記１記載のキャッシュメモリ装置。
【００６３】
（付記１０）
上記各キャッシュタグはパリティ標識を有し、
上記論理回路は、パリティエラーが発生したかどうかを判定するため対応するキャッシュラインのキャッシュタグの上記パリティ標識を検査する手段と、上記対応するキャッシュラインを抹消する手段とを更に有する付記１記載のキャッシュメモリ装置。
【００６４】
（付記１１）
階層化された記憶項目を格納する部分と、上記階層化された記憶項目を識別するキャッシュタグを格納する部分とからなる単一キャッシュアレイ構造内に上記階層化された記憶項目と上記キャッシュタグとを格納するキャッシュメモリ装置を使用する方法であって：
実行ユニットからのメモリ要求に応じて論理回路を用いてアドレス信号を発生し、上記論理回路と上記キャッシュアレイ構造を相互接続するアドレスバスに沿って上記アドレス信号をアサートする段階と；
上記構造の連続的な部分にあり、複数の上記階層化された記憶項目と上記キャッシュラインに対応する一つのキャッシュタグとからなる複数のキャッシュエントリーよりなるキャッシュラインを、上記アドレス信号に応じて選択する段階と；
上記複数の階層化された記憶項目の各々と、上記対応するキャッシュタグの少なくとも一部を、上記論理回路と上記キャッシュアレイ構造を相互接続するデータバスに沿って上記論理回路に順次に送る段階と；
上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取の際に、上記キャッシュタグと上記メモリ要求の間の一致よりなる初期キャッシュヒット、又は、上記キャッシュタグと上記メモリ要求の間の不一致よりなる初期キャッシュミスを検出する段階とからなる方法。
【００６５】
（付記１２）
上記検出段階でキャッシュミスが検出されたとき、上記複数のキャッシュエントリーの中の上記第１のキャッシュエントリーの受取の前に受けられた上記複数の階層化された記憶項目の中の記憶項目を取り消すため、上記実行ユニットへの取消信号をアサートする段階を更に有する付記１１記載の方法。
【００６６】
（付記１３）
最初に、上記アドレス信号が上記アドレスバス上でアサートされていることを示すストローブ信号を上記アドレス信号と共にアサートする段階と；
次に、上記進行信号がアサートされなくなり、全てのキャッシュラインが送出されるまで、上記構造は上記複数の連続的なキャッシュエントリーの各々を連続的に送出すべきであることを示す進行信号をアサートする段階とを更に有する付記１１記載の方法。
【００６７】
（付記１４）
上記構造は、データパリティ標識を格納する部分を更に有し、上記各キャッシュメモリは、上記キャッシュエントリー内の上記複数の階層化された記憶項目の中の一つに各々が対応する複数のデータパリティ標識を更に有し、
上記複数の階層化された記憶項目の各々の受取の際の上記データパリティ標識と、上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取中の対応するデータパリティ標識とを用いてデータパリティエラーが発生したかどうかを判定する段階と；
データパリティエラーを有する上記複数の階層化された記憶項目の中の一つの受取中に受けられたデータパリティエラーの検出の際に上記複数の階層化された記憶項目の中の記憶項目を取り消す段階とを更に有する付記１１記載の方法。
【００６８】
（付記１５）
上記各キャッシュタグはキャッシュタグパリティ標識を更に有し、
上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取の際に上記キャッシュタグパリティ標識を用いてキャッシュタグパリティエラーが発生したかどうかを判定する段階と；
上記複数の階層化された記憶項目の各々の受取の際の上記データパリティ標識と、上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取後の対応するデータパリティ標識とを用いてデータパリティエラーが発生したかどうかを判定する段階と；
キャッシュタグパリティエラー又はデータパリティエラーの検出の際に、パリティエラー信号を上記実行ユニットに出し、上記キャッシュラインを抹消する段階とを更に有する付記１４記載の方法。
【００６９】
（付記１６）
階層化された記憶項目を格納する部分と、上記階層化された記憶項目を識別するキャッシュタグを格納する部分とからなる単一キャッシュアレイ構造内に上記階層化された記憶項目と上記キャッシュタグとを格納するキャッシュメモリ装置であって：
実行ユニットからのメモリ要求に応じて論理回路を用いてアドレス信号を発生する手段、及び、上記論理回路と上記キャッシュアレイ構造を相互接続するアドレスバスに沿って上記アドレス信号をアサートする手段と；
上記構造の連続的な部分にあり、複数の上記階層化された記憶項目と上記キャッシュラインに対応する一つのキャッシュタグとからなる複数のキャッシュエントリーよりなるキャッシュラインを、上記アドレス信号に応じて選択する手段と；
上記複数の階層化された記憶項目の各々と、上記対応するキャッシュタグの少なくとも一部を、上記論理回路と上記キャッシュアレイ構造を相互接続するデータバスに沿って上記論理回路に順次に送る手段と；
上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取の際に、上記キャッシュタグと上記メモリ要求の間の一致よりなる初期キャッシュヒット、又は、上記キャッシュタグと上記メモリ要求の間の不一致よりなる初期キャッシュミスを検出する手段とからなるキャッシュメモリ装置。
【００７０】
（付記１７）
上記検出手段によってキャッシュミスが検出されたとき、上記複数のキャッシュエントリーの中の上記第１のキャッシュエントリーの受取の前に受けられた上記複数の階層化された記憶項目の中の記憶項目を取り消すため、上記実行ユニットへの取消信号をアサートする手段を更に有する付記１６記載のキャッシュメモリ装置。
【００７１】
（付記１８）
上記アドレス信号が上記アドレスバス上でアサートされていることを示すストローブ信号を上記アドレス信号と共にアサートする手段と；  上記進行信号がアサートされなくなり、全てのキャッシュラインが送出されるまで、上記構造は上記複数の連続的なキャッシュエントリーの各々を連続的に送出すべきであることを示す進行信号をアサートする手段とを更に有する付記１６記載のキャッシュメモリ装置。
【００７２】
（付記１９）
上記構造は、データパリティ標識を格納する部分を更に有し、上記各キャッシュメモリは、上記キャッシュエントリー内の上記複数の階層化された記憶項目の中の一つに各々が対応する複数のデータパリティ標識を更に有し：
上記複数の階層化された記憶項目の各々の受取の際の上記データパリティ標識と、上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取中の対応するデータパリティ標識とを用いてデータパリティエラーが発生したかどうかを判定する手段と；
データパリティエラーを有する上記複数の階層化された記憶項目の中の一つの受取中に受けられたデータパリティエラーの検出の際に上記複数の階層化された記憶項目の中の記憶項目を取り消す手段とを更に有する付記１６記載のキャッシュメモリ装置。
【００７３】
（付記２０）
上記各キャッシュタグはキャッシュタグパリティ標識を更に有し、
上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取の際に上記キャッシュタグパリティ標識を用いてキャッシュタグパリティエラーが発生したかどうかを判定する手段と；
上記複数の階層化された記憶項目の各々の受取の際の上記データパリティ標識と、上記複数のキャッシュエントリーの中の第１のキャッシュエントリーの受取後の対応するデータパリティ標識とを用いてデータパリティエラーが発生したかどうかを判定する手段と；
キャッシュタグパリティエラー又はデータパリティエラーの検出の際に、パリティエラー信号を上記実行ユニットに出し、上記キャッシュラインを抹消する手段とを更に有する付記１９記載のキャッシュメモリ装置。
【００７４】
（付記２１）
主メモリからキャッシュメモリまで階層化された記憶項目を、上記主メモリ、又は、もし存在するならば上記キャッシュメモリの何れかから選択的に提供するキャッシュメモリ装置であって：
受けられたアドレスに応答し、上記記憶項目と上記各記憶項目の識別用の対応するキャッシュタグとを読み出す上記キャッシュメモリ内で、上記階層化された各記憶項目の少なくとも一部（記憶項目）と、上記対応するキャッシュタグの少なくとも一部（キャッシュタグ）とを格納する少なくとも一つの単一キャッシュメモリアレイと；
所定の関係に関して上記受けられたキャッシュタグと上記メモリアクセスの要求を比較する手段を有し、上記主メモリへのメモリアクセスの要求に応答し、アドレスを発生する論理回路と；
上記少なくとも一つの単一メモリアレイと上記論理回路の間で、上記アドレスと、上記記憶項目と、上記キャッシュタグとを伝達する少なくとも一つのバスとからなるキャッシュメモリ装置。
【００７５】
（付記２２）
上記各記憶項目用の複数の階層化された記憶項目部分と、上記階層化され記憶項目部分の一つに対応する上記キャッシュタグ用の複数のキャッシュタグ部分とがあり、
上記階層化され記憶項目部分と、上記対応するキャッシュタグ部分は、互いに関連して上記単一キャッシュメモリアレイで格納、読み出しされる付記２１記載のキャッシュメモリ装置。
【００７６】
（付記２３）
各記憶項目の上記キャッシュタグは、同一記憶項目の上記記憶項目部分の中の別々の記憶項目部分に各々対応し複数の２重キャッシュタグ部分からなる２重キャッシュタグを有し、
比較手段は、系列内で上記各２重キャッシュタグ部分を比較し、上記メモリアクセスの要求と、上記一つの記憶項目の上記２重キャッシュタグ部分の系列の中の第１の２重キャッシュタグ部分の間の不一致を検出し、不一致の標識を形成するため適合されている付記２２記載のキャッシュメモリ装置。
【００７７】
（付記２４）
主メモリからキャッシュメモリまで階層化された記憶項目を、上記主メモリ、又は、もし存在するならば上記キャッシュメモリの何れかから選択的に提供するキャッシュメモリ装置であって：
上記キャッシュメモリにおいて、複数の記憶項目部分からなる複数の記憶項目と、各複製が対応する上記記憶項目を識別する２重のキャッシュタグは、上記各記憶項目部分が上記２重のキャッシュタグの上記複製の一方に関連して格納され、キャッシュタグメモリは、受けられたアドレスに応答し、上記記憶項目と、対応する上記キャッシュタグの一つの上記複製の一方を読み出し；
所定の関係に関して上記キャッシュタグの一つの上記複製の一方の各々をもう一方の複製の前に比較する手段を有し、上記主メモリへのメモリアクセスの要求に応答し、アドレスを発生する論理回路と；
上記キャッシュメモリ構造と上記論理回路の間で、上記アドレスと、上記記憶項目と、上記対応するキャッシュタグの一つの複製の一方とを伝達する少なくとも一つのバスとを有するキャッシュメモリ装置。
【００７８】
（付記２５）
主メモリからキャッシュメモリまで階層化された記憶項目を、上記主メモリ、又は、もし存在するならば上記キャッシュメモリの何れかから、論理回路に選択的に提供するキャッシュメモリ装置で使用するキャッシュメモリであって：
複数の記憶項目部分からなる複数の記憶項目と、各複製が対応する上記記憶項目を識別する２重のキャッシュタグを、上記各記憶項目部分が上記２重のキャッシュタグの上記複製の一方に関連するよう格納し、キャッシュタグメモリは、上記論理回路から受けたアドレスに応答し、系列内の上記記憶項目と、対応する上記キャッシュタグの一つの上記複製の一方を読み出す手段と；
上記キャッシュメモリ構造と上記論理回路の間で、上記アドレスと、上記記憶項目と、上記対応するキャッシュタグの一つの複製の一方とを伝達する少なくとも一つのバスとからなるキャッシュメモリ。
【００７９】
（付記２６）
外部メモリからメモリ要求に所定の関係があるキャッシュタグを有する記憶項目の要求からなるメモリ要求に応答してアドレス信号を発生する論理回路まで階層化された記憶項目を提供するキャッシュメモリであって：  記憶項目の少なくとも一部を格納する記憶項目部と、少なくとも一つのキャッシュエントリーを識別するキャッシュタグの少なくとも一部を格納するキャッシュタグ部とからなる複数のキャッシュエントリーを有する少なくとも一つの単一キャッシュアレイ構造により構成されるキャッシュアレイと；
上記キャッシュアレイと上記論理回路を相互接続するアドレスバスを介して上記論理回路から送られたアドレス信号に応答し、上記キャッシュアレイと上記論理回路を相互接続するデータバスを介して少なくとも一つの上記キャッシュエントリーの内容を読み出す手段とからなるキャッシュメモリ。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施例のキャッシュメモリ装置の概略図である。
【図２】マイクロプロセッサと２次キャッシュの間で接続されたアドレスバス及び制御信号と、キャッシュメモリ装置のデータバスの配線図である。
【図３】２次キャッシュの第１の構成の概略図である。
【図４】２次キャッシュの第２の構成の概略図である。
【図５】２次キャッシュの第３の構成の概略図である。
【図６】２次キャッシュで使用される内部バスの配線図である。
【図７】キャッシュタグの説明図である。
【図８】キャッシュタグセグメントの記憶スキームを示す図である。
【図９】キャッシュヒット又はミス検出回路を表わす論理図である。
【図１０】キャッシュエントリーのパリティー検査回路を表わす論理図である。
【図１１】書込み動作用のキャッシュコヒーレンシープロトコルを表わすフローチャートである。
【図１２】読出し動作用のキャッシュコヒーレンシープロトコルを表わすフローチャートである。
【図１３】２次キャッシュヒットを表わすタイミングチャートである。
【図１４】２次キャッシュミスを表わすタイミングチャートである。
【図１５】主メモリ読出しを伴う２次キャッシュミスを表わすタイミングチャートである。
【符号の説明】
【００８１】
１    キャッシュメモリ装置
２    マイクロプロセッサ
３    ２次キャッシュ
４    キャッシュアドレスバス
５    キャッシュ制御信号
６    キャッシュデータバス
７    主メモリ
８    主メモリアドレスバス
９    主メモリ制御信号
１０    ＦＩＦＯ記憶バッファ
【図１】
2005202986.tif 000003
【図２】
2005202986.tif 000004
【図３】
2005202986.tif 000005
【図４】
2005202986.tif 000006
【図５】
2005202986.tif 000007
【図６】
2005202986.tif 000008
【図７】
2005202986.tif 000009
【図８】
2005202986.tif 000010
【図９】
2005202986.tif 000011
【図１０】
2005202986.tif 000012
【図１１】
2005202986.tif 000013
【図１２】
2005202986.tif 000014
【図１３】
2005202986.tif 000015
【図１４】
2005202986.tif 000016
【図１５】
2005202986.tif 000017