(57)【特許請求の範囲】
【請求項１】
複数のプロセッサがｎウェイセットアソシアティブ方式のキャッシュメモリを共有するマルチプロセッサシステムにおいて、
前記キャッシュメモリの複数のウェイを前記各プロセッサ毎のグループにグループ分けして管理すると共に、オフライン状態のプロセッサにグループ分けされているウェイを、オンライン状態のプロセッサにどのように分配するのかを示すオフライン時分配情報を管理し、
更に、前記各プロセッサがオンライン状態であるのかオフライン状態であるのかを示すオンオフ状態情報をレジスタに格納し、
ミスヒットが発生した時、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイの中から、置き換えの対象にするウェイを１つ選択し、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイと、前記オフライン時分配情報が前記ミスヒットの原因となったプロセッサに新たに分配することを示しているウェイの中から、置き換えの対象にするウェイを１つ選択することを特徴とする共有キャッシュメモリのリプレイスメント制御方法。
【請求項２】
請求項１記載の共有キャッシュメモリのリプレイスメント制御方法において、
選択対象のウェイの中から置き換えの対象にするウェイを１つ選択する際、前記選択対象のウェイの内の、最も遠い過去に参照されたウェイを選択することを特徴とする共有キャッシュメモリのリプレイスメント制御方法。
【請求項３】
複数のプロセッサがｎウェイセットアソシアティブ方式のキャッシュメモリを共有するマルチプロセッサシステムにおける共有キャッシュメモリのリプレイスメント制御装置であって、
前記各プロセッサがオンライン状態であるのか、オフライン状態であるのかを示すオンオフ状態情報が格納されたレジスタと、
前記キャッシュメモリの複数のウェイを前記各プロセッサ毎のグループにグループ分けして管理すると共に、オフライン状態のプロセッサにグループ分けされているウェイを、オンライン状態のプロセッサにどのように分配するのかを示すオフライン時分配情報を管理し、ミスヒットが発生した時、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイの中から、置き換えの対象にするウェイを１つ選択し、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイと、前記オフライン時分配情報が前記ミスヒットの原因となったプロセッサに新たに分配することを示しているウェイの中から、置き換えの対象にするウェイを１つ選択する置き換え対象選択回路を備えたことを特徴とする共有キャッシュメモリのリプレイスメント制御装置。
【請求項４】
請求項３記載の共有キャッシュメモリのリプレイスメント制御装置において、
前記置き換え対象選択回路が、
選択対象のウェイの中から置き換えの対象にするウェイを１つ選択する際、前記選択対象のウェイの内の、最も遠い過去に参照されたウェイを選択する構成を有することを特徴とする共有キャッシュメモリのリプレイスメント制御装置。
【請求項５】
請求項４記載の共有キャッシュメモリのリプレイスメント制御装置において、
前記キャッシュメモリ中の各セット毎に、そのセット中のウェイの参照順を示すＬＲＵビットが登録されたＬＲＵビット保持部を備え、且つ、
前記置き換え対象選択回路が、
前記選択対象のウェイの中から最も遠い過去の参照されたウェイを選択する際、前記ＬＲＵビット保持部の内容に基づいて選択する構成を有することを特徴とする共有キャッシュメモリのリプレイスメント制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサがｎウェイセットアソシアティブ方式（ｎは２以上）のキャッシュメモリを共有するマルチプロセッサシステムに関し、特に、ミスヒットが発生した際に行うリプレイスメントの制御技術に関する。
【０００２】
【従来の技術】
情報処理システムの処理性能を向上させるため、複数のプロセッサからなるマルチプロセッサシステムを使用するということは、従来から行われている。また、デバイス技術の進歩した現在では、１チップ上にマルチプロセッサシステムを構成したオンチップマルチプロセッサシステムも実現可能になっている。マルチプロセッサシステムやオンチップマルチプロセッサシステムでは、キャッシュメモリのヒット率を向上させたり、キャッシュメモリＴＯレジスタのデータ転送に要するサイクル数を短縮するために、キャッシュ構成の研究や発明が盛んになされている。
【０００３】
キャッシュ構成方式には、複数のプロセッサ毎に個別のキャッシュメモリを持たせるプライベートキャッシュ方式と、複数のプロセッサ間でキャッシュメモリを共有する共有キャッシュ方式とがある。共有キャッシュ方式は、プライベートキャッシュ方式に比較して、メモリ素子数を少なくすることができるので、チップ面積に制限のあるオンチップマルチプロセッサシステムや、小型化，低コスト化が重視される用途では有利である。
【０００４】
以下に、図６，図７を参照して共有キャッシュ方式を採用した従来の一般的なマルチプロセッサシステムの動作を説明する。
【０００５】
図６に示すように、共有キャッシュ方式を採用したマルチプロセッサシステムは、プロセッサＰ０，Ｐ１と、キャッシュコントローラＣＣと、キャッシュメモリＢＳと、メインメモリＭＳとから構成されている。尚、キャッシュメモリＢＳは、４ウェイセットアソシアティブ方式のものとする。また、ミスヒット時のブロックの置き換えは、ＬＲＵ法により行うとする。
【０００６】
今、例えば、プロセッサＰ０が、ブロックＡ，Ｂ内のアドレスを順次出力し、次いで、プロセッサＰ１がブロックＣ，Ｄ，Ｅ内のアドレスを順次出力し、その後、プロセッサＰ０が再びブロックＡ，Ｂ内のアドレスを順次出力したとする。尚、上記各ブロックＡ〜Ｅは、全て同一のセットｉ内のブロックであり、キャッシュメモリＢＳは、初期状態であるとする。
【０００７】
プロセッサＰ０がブロックＡ，Ｂ内のアドレスを出力し、その後、プロセッサＰ１がブロックＣ，Ｄ内のアドレスを出力すると、図７（１）に示すように、キャッシュメモリＢＳのセットｉのウェイ０，１，２，３にブロックＡ，Ｂ，Ｃ，Ｄの写しが格納される。
【０００８】
その後、プロセッサＰ１が、ブロックＥ内のアドレスを出力すると、図７（２）に示すように、ミスヒットが発生し、ウェイ０に格納されていたブロックＡの写しがブロックＥの写しに置き換えられる。更に、プロセッサＰ０が、ブロックＡ内のアドレスを出力すると、図７（３）に示すように、ミスヒットが発生し、ウェイ１に格納されていたブロックＢの写しがブロックＡの写しに置き換えられる。そして、最後にプロセッサＰ０がブロックＢ内のアドレスを出力すると、図７（４）に示すように、ミスヒットが発生し、ウェイ２に格納されていたブロックＣの写しがブロックＢの写しに置き換えられる。
【０００９】
【発明が解決しようとする課題】
上述したように、従来の技術では、複数のプロセッサＰ０，Ｐ１が同一のセットｉ内の多数のブロック（ウェイ数以上のブロック）をアクセスするような場合、或るプロセッサがアクセス対象にしているブロックの写しが、他のプロセッサがアクセス対象にしているブロックの写しに置き換えられることに起因するミスヒット（プロセッサ間の競合ミス）が発生してしまう。図７の例では、同図（２）において、ウェイ０に格納されていたブロックＡの写しがブロックＥの写しに置き換えられることに起因する、同図（３），（４）に示すミスヒットがこれに当たる。そして、プロセッサ間の競合ミスが発生した場合には、置き換えが行われるため、マルチプロセッサシステムの処理速度が低下してしまうという問題がある。
【００１０】
そこで、本発明の目的は、プロセッサ間の競合ミスの発生を防止することにある。
【００１１】
【課題を解決するための手段】
本発明は、上記目的を達成すると共に、障害等によりオフライン状態になったプロセッサが発生した場合においても、キャッシュメモリの利用効率が低下することを防止できるようにするため、
複数のプロセッサがｎウェイセットアソシアティブ方式のキャッシュメモリを共有するマルチプロセッサシステムにおいて、
前記キャッシュメモリの複数のウェイを前記各プロセッサ毎のグループにグループ分けして管理すると共に、オフライン状態のプロセッサにグループ分けされているウェイを、オンライン状態のプロセッサにどのように分配するのかを示すオフライン時分配情報を管理し、
更に、前記各プロセッサがオンライン状態であるのかオフライン状態であるのかを示すオンオフ状態情報をレジスタに格納し、
ミスヒットが発生した時、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイの中から、置き換えの対象にするウェイを１つ選択し、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイと、前記オフライン時分配情報が前記ミスヒットの原因となったプロセッサに新たに分配することを示しているウェイの中から、置き換えの対象にするウェイを１つ選択する。
【００１２】
この構成によれば、オフライン状態のプロセッサが存在しない状況で、或るプロセッサのメモリアクセスを原因とするミスヒットが発生した場合、置き換えの対象にするウェイが、各プロセッサ毎のウェイのグループの内の、上記或るプロセッサに対応するグループ内のウェイに制限されるので、プロセッサ間の競合ミスが発生することはない。また、オフライン状態のプロセッサが存在する状態でミスヒットが発生した場合は、オフライン状態のプロセッサにグループ分けされていたウェイを、オンライン状態のプロセッサに分配するようにしているので、オフライン状態のプロセッサが存在する状況でも、キャッシュメモリの全てのウェイが使用可能となり、キャッシュメモリの利用効率低下を防ぐことができる。
【００１５】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
図１は本発明を適用するシステムの構成例を示すブロック図であり、オンチップマルチプロセッサシステム１１０，１２０と、オフチップキャッシュメモリ１３０と、メインメモリ１４０と、メモリバス１５０，１６０とから構成されている。
【００１７】
オンチップマルチプロセッサシステム１１０は、プロセッサコア１１１，１１２と、キャッシュコントローラ１１３と、オンチップキャッシュメモリ１１４とを備えている。また、オンチップマルチプロセッサシステム１２０は、プロセッサコア１２１，１２２と、キャッシュコントローラ１２３と、オンチップキャッシュメモリ１２４とを備えている。尚、オンチップキャッシュメモリ１１３，１２３は、４ウェイセットアソシアティブ方式のものとする。
【００１８】
図２は、図１に示したキャッシュコントローラ１１３，オンチップキャッシュメモリ１１４の構成例を示したブロック図である。尚、キャッシュコントローラ１２３，オンチップキャッシュメモリ１２４も、同様の構成を有している。
【００１９】
アドレスレジスタ２０１は、プロセッサコア１１１，１１２がメインメモリ１４０をアクセスする際の物理アドレス（３２ビットとする）を保持するレジスタである。この物理アドレスは、ブロックアドレス２０２（１８ビットとする）と、セットアドレス２０３（８ビットとする）と、ブロック内バイトアドレス２０４（６ビットとする）とから構成されている。従って、ディレクトリ部２０７，データアレイ部２１４のセット数は２５６個となる。
【００２０】
データアレイ部２１４の各領域（４ウェイ×２５６セット）には、メインメモリ１４０の適当なブロックの写しが格納される。ディレクトリ部２０７の各領域（４ウェイ×２５６セット）には、データアレイ部２１４の対応する領域に写しが格納されているブロックのブロックアドレスと、その写しが有効であるか否かを示す有効ビットとからなるタグ情報が格納されている。
【００２１】
レジスタ２０９は、セットアドレス２０３を保持するレジスタである。デコーダ２１０は、レジスタ２０９に保持されているセットアドレスを解読し、ディレクトリ部２０７の第０セット〜第２５５セットの内の１つを選択する選択信号を出力する。
【００２２】
レジスタ２１５は、セットアドレス２０３を保持するレジスタである。デコーダ２１６は、レジスタ２１５に保持されているセットアドレスを解読し、データアレイ部２１４の第０セット〜第２５５セットの内の１つを選択する選択信号を出力する。
【００２３】
比較回路２０８には、ディレクトリ部２０７の２５６個のセットの内の、デコーダ２１０によって選択されたセット中の第０〜第３ウェイの内容（タグ情報）と、アドレスレジスタ２０１に保持されているブロックアドレス２０２とが入力される。そして、有効ビットが有効を示しているタグ情報中のブロックアドレスと、ブロックアドレス２０２とを比較し、一致するものがなければ、ミスヒット信号を出力し、一致するものがあれば、ヒット信号を出力する。尚、ヒット信号には、一致したブロックアドレスがどのウェイに格納されていたものなのかを示すセレクト情報が含まれる。
【００２４】
レジスタ２１１は、比較回路２０８から出力されるヒット信号，ミスヒット信号を保持するレジスタである。
【００２５】
選択回路２１７は、比較回路２０８からヒット信号が出力された場合、それに含まれているセレクト情報と、デコーダ２１６の出力とによって特定される、データアレイ部２１４の領域に格納されているデータを出力する。
【００２６】
キャッシュタグレジスタ２０５には、ミスヒットが発生したときに、ディレクトリ部２０７に書き込むタグ情報が保持される。一方、データレジスタ２１２には、ミスヒットが発生したときに、データアレイ部２１４に書き込むブロックの写しが保持される。
【００２７】
リプレイスメント制御回路２１８は、比較回路２０８からミスヒット信号が出力された場合、置き換えの対象にするウェイを示す置き換えウェイ信号を出力する。尚、リプレイスメント制御回路２１８の構成，動作については、後で詳細に説明する。
【００２８】
選択回路２０６は、リプレイスメント制御回路２１８からの置き換えウェイ信号に従って、キャッシュタグレジスタ２０５に保持されているタグ情報を、ディレクトリ部２０７の４個のウェイの内の、上記置き換えウェイ信号によって示されるウェイに出力する。ディレクトリ部２０７は、選択回路２０６から出力されたタグ情報を、その出力先のウェイと、デコーダ２１０によって選択されたセット（ミスヒットの発生したセット）とによって特定される領域に書き込む。
【００２９】
一方、選択回路２１３は、リプレイスメント制御回路２１８からの置き換えウェイ信号に従って、データレジスタ２１２に保持されているブロックの写しを、データアレイ部２１４の４個のウェイの内の、上記置き換えウェイ信号によって示されるウェイに出力する。データアレイ部２１４は、選択回路２１３から出力されたブロックの写しを、その出力先のウェイと、デコーダ２１６によって選択されたセット（ミスヒットの発生したセット）とによって特定される領域に書き込む。
【００３０】
図３は、図２に示したリプレイスメント制御回路２１８の構成例を示すブロック図であり、ＬＲＵビット更新回路３０１と、ＬＲＵビット保持部３０２と、置き換え対象選択回路３０３と、レジスタ３０４とを備えている。
【００３１】
ＬＲＵビット保持部３０２は、第０〜第２５５セットの２５６個のセットから構成され、各セットには、そのセット内の４個のウェイの参照順を示すＬＲＵビットが格納されている。尚、本実施例では、ＬＲＵビットを８ビット構成とし、先頭から２ビットずつをそれぞれ第０，第１，第２，第３ウェイに割り当てるものとする。そして、各ウェイに対応するビットには、参照順が古いものから順番に“００”“０１”“１０”“１１”を設定するものとする。
【００３２】
ＬＲＵビット更新回路３０１は、比較回路２０８からヒット信号が出力された場合、ＬＲＵビット保持部３０２に保持されているＬＲＵビットの内の、セットアドレス２０３によって特定されるセット中のＬＲＵビットを更新する。
【００３３】
レジスタ３０４には、プロセッサコア１１１，１１２がオンライン状態であるか、オフライン状態（故障もオフライン状態とする）であるかを示すオンオフ状態情報が格納されている。
【００３４】
置き換え対象選択回路３０３には、比較回路２０８からのミスヒット信号と、ＬＲＵビット保持部３０２の出力（セットアドレスによって選択されているセットの内容）と、レジスタ３０４からのオンオフ状態情報と、プロセッサコア１１１或いはプロセッサコア１１２からのアクティブ信号とが入力されている。アクティブ信号は、プロセッサコア１１１，１１２がメモリアクセスを行った時に、プロセッサコア１１１，１１２から出力されるものであり、自プロセッサコアを示す情報（例えば、プロセッサコア番号）を含んでいる。
【００３５】
置き換え対象選択回路３０３は、比較回路２０８からミスヒット信号が出力されると、図４のアルゴリズムに従った動作を行う。図４を参照して、置き換え対象選択回路３０３の動作を説明する。
【００３６】
置き換え対象選択回路３０３は、ディレクトリ部２０７，データアレイ部２１４の４個のウェイを、プロセッサコア１１１用のウェイ（ウェイ０，１とする）と、プロセッサコア１１２用のウェイ（ウェイ２，３とする）とにグループ分けして管理している。更に、置き換え対象選択回路３０３は、プロセッサコア１１１がオフライン状態の場合はプロセッサコア１１１用にグループ分けされているウェイ０，１をオンライン状態のプロセッサコア１１２に分配し、プロセッサコア１１２がオフライン状態の場合は、プロセッサコア１１２用にグループ分けされているウェイ２，３をオンライン状態のプロセッサコア１１１に分配することを示すオフライン時分配情報を管理している。
【００３７】
比較回路２０８からミスヒット信号が出力されたとき、置き換え対象選択回路３０３は、レジスタ３０４の内容及びアクティブ信号が示すプロセッサコア（ミスヒットの原因となるメモリアクセスを行ったプロセッサコア）に基づいて下記（Ａ）〜（Ｄ）の何れかの動作を行う。
【００３８】
（Ａ）レジスタ３０４に保持されているオンオフ状態情報が、プロセッサコア１１１，１１２が共にオンライン状態であることを示し、且つアクティブ信号がプロセッサコア１１１を示している場合の動作
・ＬＲＵビット保持部３０２から出力されている８ビット構成のＬＲＵビットの内の、プロセッサコア１１１用にグループ分けしてあるウェイ０，１に対応するビット同士を比較し（本実施例では、第０，第１ビットと、第２，第３ビットとを比較する）、どちらのウェイの方が参照順が古いかを調べる。その後、参照順が古い方のウェイを示す置き換えウェイ信号を生成し、出力する。例えば、ウェイ０，１に対応するビットがそれぞれ“００”“１０”であれば、ウェイ０を示す置き換えウェイ信号を出力する。この置き換えウェイ信号は、図２の選択回路２０６，２１３に供給される。
【００３９】
（Ｂ）レジスタ３０４に保持されているオンオフ状態情報が、プロセッサコア１１１，１１２が共にオンライン状態であることを示し、且つアクティブ信号がプロセッサコア１１２を示している場合の動作
・ＬＲＵビット保持部３０２から出力されている８ビット構成のＬＲＵビットの内の、プロセッサコア１１２用にグループ分けしてあるウェイ２，３に対応するビット同士を比較し（本実施例では、第４，第５ビットと第６，第７ビットとを比較する）、どちらのウェイの方が参照順が古いかを調べる。その後、参照順が古い方のウェイを示す置き換えウェイ信号を生成し、出力する。
【００４０】
（Ｃ）レジスタ３０４に保持されているオンオフ状態情報が、プロセッサコア１１１がオフライン状態で、プロセッサコア１１２がオンライン状態であることを示している場合の動作
・オフライン時分配情報に基づいて、オフライン状態のプロセッサコア１１１用にグループ分けされているウェイ０，１をオンライン状態のプロセッサコア１１２に分配する。その後、ＬＲＵビット保持部３０２から出力されている８ビット構成のＬＲＵビットに基づいて、プロセッサコア１１２用にグループ分けされているウェイ２，３と、新たにプロセッサコア１１２に分配されたウェイ０，１の中から参照順が最も古いウェイを選択する。その後、選択したウェイを示す置き換えウェイ信号を生成し、出力する。
【００４１】
（Ｄ）レジスタ３０４に保持されているオンオフ状態情報が、プロセッサコア１１２がオフライン状態で、プロセッサコア１１１がオンライン状態であることを示している場合の動作
・オフライン時分配情報に基づいて、オフライン状態のプロセッサコア１１２用にグループ分けされているウェイ２，３をオンライン状態のプロセッサコア１１１に分配する。その後、ＬＲＵビット保持部３０２から出力されている８ビット構成のＬＲＵビットに基づいて、プロセッサコア１１１用にグループ分けされているウェイ０，１と、新たにプロセッサコア１１１に分配されたウェイ２，３の中から参照順が最も古いウェイを選択する。その後、選択したウェイを示す置き換えウェイ信号を生成し、出力する。
【００４２】
次に、本実施例の動作を具体例を挙げて説明する。
【００４３】
今、例えば、プロセッサコア１１１が、ブロックＡ，Ｂ内のアドレスを順次出力し、次いで、プロセッサコア１１２がブロックＣ，Ｄ，Ｅ内のアドレスを順次出力し、その後、プロセッサコア１１１が再びブロックＡ，Ｂ内のアドレスを順次出力したとする。尚、上記各ブロックＡ〜Ｅは、全て同一のセットｉ内のブロックであり、キャッシュメモリＢＳは、初期状態であるとする。
【００４４】
プロセッサコア１１１がブロックＡ，Ｂ内のアドレスを出力し、その後、プロセッサコア１１２がブロックＣ，Ｄ内のアドレスを出力すると、図５（１）に示すように、データアレイ部２１４のセットｉのウェイ０，１，２，３にブロックＡ，Ｂ，Ｃ，Ｄの写しが格納される。
【００４５】
その後、プロセッサコア１１２が、ブロックＥ内のアドレスを出力すると、プロセッサコア１１２用のウェイは、ウェイ２，３に制限されているので、図５（２）に示すように、ミスヒットが発生し、ウェイ２に格納されていたブロックＣの写しがブロックＥの写しに置き換えられる。
【００４６】
その後、プロセッサコア１１１がブロックＡ，Ｂ内のアドレスを順次出力しても、図５（３），（４）に示すように、キャッシュヒットとなり、プロセッサ間の競合ミスは発生しない。
【００４７】
このように、本実施例によれば、プロセッサコア間の競合ミスを完全に防止できるので、従来の技術に比較して置き換えが行われる回数を減らし（図７参照）、マルチプロセッサシステムの処理速度を向上させることができる。また、故障等のオフライン状態のプロセッサコアが発生した場合、そのプロセッサコアにグループ分けされていたウェイを、オンライン状態のプロセッサコアに分配するようにしたので、オフライン状態のプロセッサコアが発生しても、キャッシュメモリの利用効率が低下することはない。
【００４８】
尚、上述した実施例においては、オンチップマルチプロセッサシステムの台数を２台としたが、３台以上であっても良い。また、オンチップマルチプロセッサシステム内のプロセッサコアの台数を２台としたが、３台以上であっても良い。更に、キャッシュメモリのウェイ数を４としたが、ウェイ数はオンチップ上のプロセッサコア数より多ければ良い。キャッシュメモリのリード／ライトポートは各１ポートで構成されているが、複数のポートで構成してもよい。また、オフチップマルチプロセッサの共有キャッシュとしても適用も可能である。実施例では、Ｌ１キャッシュだがＬ２キャッシュより下の階層のキャッシュにも適用可能である。
【００４９】
【発明の効果】
以上説明したように、本発明は、キャッシュメモリの複数のウェイを、マルチプロセッサシステムを構成する各プロセッサ毎のグループにグループ分けしておき、レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない状況で、ミスヒットが発生した時、ミスヒットの原因となるメモリアクセスを行ったプロセッサ用にグループ分けされているウェイの中から、置き換え対象にするウェイを１つ選択するようにしているので、プロセッサ間の競合ミス（或るプロセッサがアクセス対象にしているブロックの写しが、他のプロセッサがアクセス対象にしているブロックの写しで置き換えられることに起因して発生するミスヒット）を完全になくすことができる。その結果、プロセッサ間の競合ミスに起因する置き換えが発生しないので、マルチプロセッサシステムの処理速度を向上させることができる。
【００５０】
また、本発明は、レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、オフライン状態のプロセッサにグループ分けされていたウェイを、オンライン状態のプロセッサに分配するようにしているので、オフライン状態のプロセッサが発生した場合も、キャッシュメモリの全てのウェイが使用可能となり、キャッシュメモリの利用効率低下を防ぐことができる。
【図面の簡単な説明】
【図１】本発明を適用するシステムの構成例を示すブロック図である。
【図２】キャッシュコントローラ１１３，オンチップキャッシュメモリ１１４の構成例を示すブロック図である。
【図３】リプレイスメント制御回路２１８の構成例を示すブロック図である。
【図４】置き換え対象選択回路３０３の動作のアルゴリズムを示す図である。
【図５】実施例の動作を説明するための図である。
【図６】マルチプロセッサシステムの一般的な構成例を示す図である。
【図７】従来技術の問題点を説明するための図である。
【符号の説明】
１１０，１２０…オンチップマルチプロセッサシステム
１１１，１１２，１２１，１２２…プロセッサコア
１１３，１２３…キャッシュコントローラ
１１４，１２４…オンチップキャッシュメモリ
１３０…オフチップキャッシュメモリ
１４０…メインメモリ
１５０，１６０…メモリバス
２０１…アドレスレジスタ
２０２…ブロックアドレス
２０３…セットアドレス
２０４…ブロック内バイトアドレス
２０５…キャッシュタグレジスタ
２０６…選択回路
２０７…ディレクトリ部
２０８…比較回路
２０９…レジスタ
２１０…デコーダ
２１１…レジスタ
２１２…データレジスタ
２１３…選択回路
２１４…データアレイ部
２１５…レジスタ
２１６…デコーダ
２１７…選択回路
２１８…リプレイスメント制御回路
３０１…ＬＲＵビット更新回路
３０２…ＬＲＵビット保持部
３０３…置き換え対象選択回路
３０４…レジスタ
Ｐ０，Ｐ１…プロセッサ
ＣＣ…キャッシュコントローラ
ＢＳ…キャッシュメモリ
ＭＳ…メインメモリ
【図１】
0003620473.tif 000002
【図２】
0003620473.tif 000003
【図３】
0003620473.tif 000004
【図４】
0003620473.tif 000005
【図５】
0003620473.tif 000006
【図６】
0003620473.tif 000007
【図７】
0003620473.tif 000008