JP3620473B2 - 共有キャッシュメモリのリプレイスメント制御方法及びその装置 - Google Patents

共有キャッシュメモリのリプレイスメント制御方法及びその装置 Download PDF

Info

Publication number
JP3620473B2
JP3620473B2 JP2001179637A JP2001179637A JP3620473B2 JP 3620473 B2 JP3620473 B2 JP 3620473B2 JP 2001179637 A JP2001179637 A JP 2001179637A JP 2001179637 A JP2001179637 A JP 2001179637A JP 3620473 B2 JP3620473 B2 JP 3620473B2
Authority
JP
Japan
Prior art keywords
ways
processor
cache memory
way
offline
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
Application number
JP2001179637A
Other languages
English (en)
Other versions
JP2002373115A (ja
Inventor
真矢 山▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001179637A priority Critical patent/JP3620473B2/ja
Priority to US10/166,625 priority patent/US6877067B2/en
Publication of JP2002373115A publication Critical patent/JP2002373115A/ja
Application granted granted Critical
Publication of JP3620473B2 publication Critical patent/JP3620473B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors

Description

【0001】
【発明の属する技術分野】
本発明は、複数のプロセッサがnウェイセットアソシアティブ方式(nは2以上)のキャッシュメモリを共有するマルチプロセッサシステムに関し、特に、ミスヒットが発生した際に行うリプレイスメントの制御技術に関する。
【0002】
【従来の技術】
情報処理システムの処理性能を向上させるため、複数のプロセッサからなるマルチプロセッサシステムを使用するということは、従来から行われている。また、デバイス技術の進歩した現在では、1チップ上にマルチプロセッサシステムを構成したオンチップマルチプロセッサシステムも実現可能になっている。マルチプロセッサシステムやオンチップマルチプロセッサシステムでは、キャッシュメモリのヒット率を向上させたり、キャッシュメモリTOレジスタのデータ転送に要するサイクル数を短縮するために、キャッシュ構成の研究や発明が盛んになされている。
【0003】
キャッシュ構成方式には、複数のプロセッサ毎に個別のキャッシュメモリを持たせるプライベートキャッシュ方式と、複数のプロセッサ間でキャッシュメモリを共有する共有キャッシュ方式とがある。共有キャッシュ方式は、プライベートキャッシュ方式に比較して、メモリ素子数を少なくすることができるので、チップ面積に制限のあるオンチップマルチプロセッサシステムや、小型化,低コスト化が重視される用途では有利である。
【0004】
以下に、図6,図7を参照して共有キャッシュ方式を採用した従来の一般的なマルチプロセッサシステムの動作を説明する。
【0005】
図6に示すように、共有キャッシュ方式を採用したマルチプロセッサシステムは、プロセッサP0,P1と、キャッシュコントローラCCと、キャッシュメモリBSと、メインメモリMSとから構成されている。尚、キャッシュメモリBSは、4ウェイセットアソシアティブ方式のものとする。また、ミスヒット時のブロックの置き換えは、LRU法により行うとする。
【0006】
今、例えば、プロセッサP0が、ブロックA,B内のアドレスを順次出力し、次いで、プロセッサP1がブロックC,D,E内のアドレスを順次出力し、その後、プロセッサP0が再びブロックA,B内のアドレスを順次出力したとする。尚、上記各ブロックA〜Eは、全て同一のセットi内のブロックであり、キャッシュメモリBSは、初期状態であるとする。
【0007】
プロセッサP0がブロックA,B内のアドレスを出力し、その後、プロセッサP1がブロックC,D内のアドレスを出力すると、図7(1)に示すように、キャッシュメモリBSのセットiのウェイ0,1,2,3にブロックA,B,C,Dの写しが格納される。
【0008】
その後、プロセッサP1が、ブロックE内のアドレスを出力すると、図7(2)に示すように、ミスヒットが発生し、ウェイ0に格納されていたブロックAの写しがブロックEの写しに置き換えられる。更に、プロセッサP0が、ブロックA内のアドレスを出力すると、図7(3)に示すように、ミスヒットが発生し、ウェイ1に格納されていたブロックBの写しがブロックAの写しに置き換えられる。そして、最後にプロセッサP0がブロックB内のアドレスを出力すると、図7(4)に示すように、ミスヒットが発生し、ウェイ2に格納されていたブロックCの写しがブロックBの写しに置き換えられる。
【0009】
【発明が解決しようとする課題】
上述したように、従来の技術では、複数のプロセッサP0,P1が同一のセットi内の多数のブロック(ウェイ数以上のブロック)をアクセスするような場合、或るプロセッサがアクセス対象にしているブロックの写しが、他のプロセッサがアクセス対象にしているブロックの写しに置き換えられることに起因するミスヒット(プロセッサ間の競合ミス)が発生してしまう。図7の例では、同図(2)において、ウェイ0に格納されていたブロックAの写しがブロックEの写しに置き換えられることに起因する、同図(3),(4)に示すミスヒットがこれに当たる。そして、プロセッサ間の競合ミスが発生した場合には、置き換えが行われるため、マルチプロセッサシステムの処理速度が低下してしまうという問題がある。
【0010】
そこで、本発明の目的は、プロセッサ間の競合ミスの発生を防止することにある。
【0011】
【課題を解決するための手段】
本発明は、上記目的を達成すると共に、障害等によりオフライン状態になったプロセッサが発生した場合においても、キャッシュメモリの利用効率が低下することを防止できるようにするため、
複数のプロセッサがnウェイセットアソシアティブ方式のキャッシュメモリを共有するマルチプロセッサシステムにおいて、
前記キャッシュメモリの複数のウェイを前記各プロセッサ毎のグループにグループ分けして管理すると共に、オフライン状態のプロセッサにグループ分けされているウェイを、オンライン状態のプロセッサにどのように分配するのかを示すオフライン時分配情報を管理し、
更に、前記各プロセッサがオンライン状態であるのかオフライン状態であるのかを示すオンオフ状態情報をレジスタに格納し、
ミスヒットが発生した時、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイの中から、置き換えの対象にするウェイを1つ選択し、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイと、前記オフライン時分配情報が前記ミスヒットの原因となったプロセッサに新たに分配することを示しているウェイの中から、置き換えの対象にするウェイを1つ選択する。
【0012】
この構成によれば、オフライン状態のプロセッサが存在しない状況で、或るプロセッサのメモリアクセスを原因とするミスヒットが発生した場合、置き換えの対象にするウェイが、各プロセッサ毎のウェイのグループの内の、上記或るプロセッサに対応するグループ内のウェイに制限されるので、プロセッサ間の競合ミスが発生することはない。また、オフライン状態のプロセッサが存在する状態でミスヒットが発生した場合は、オフライン状態のプロセッサにグループ分けされていたウェイを、オンライン状態のプロセッサに分配するようにしているので、オフライン状態のプロセッサが存在する状況でも、キャッシュメモリの全てのウェイが使用可能となり、キャッシュメモリの利用効率低下を防ぐことができる。
【0015】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0016】
図1は本発明を適用するシステムの構成例を示すブロック図であり、オンチップマルチプロセッサシステム110,120と、オフチップキャッシュメモリ130と、メインメモリ140と、メモリバス150,160とから構成されている。
【0017】
オンチップマルチプロセッサシステム110は、プロセッサコア111,112と、キャッシュコントローラ113と、オンチップキャッシュメモリ114とを備えている。また、オンチップマルチプロセッサシステム120は、プロセッサコア121,122と、キャッシュコントローラ123と、オンチップキャッシュメモリ124とを備えている。尚、オンチップキャッシュメモリ113,123は、4ウェイセットアソシアティブ方式のものとする。
【0018】
図2は、図1に示したキャッシュコントローラ113,オンチップキャッシュメモリ114の構成例を示したブロック図である。尚、キャッシュコントローラ123,オンチップキャッシュメモリ124も、同様の構成を有している。
【0019】
アドレスレジスタ201は、プロセッサコア111,112がメインメモリ140をアクセスする際の物理アドレス(32ビットとする)を保持するレジスタである。この物理アドレスは、ブロックアドレス202(18ビットとする)と、セットアドレス203(8ビットとする)と、ブロック内バイトアドレス204(6ビットとする)とから構成されている。従って、ディレクトリ部207,データアレイ部214のセット数は256個となる。
【0020】
データアレイ部214の各領域(4ウェイ×256セット)には、メインメモリ140の適当なブロックの写しが格納される。ディレクトリ部207の各領域(4ウェイ×256セット)には、データアレイ部214の対応する領域に写しが格納されているブロックのブロックアドレスと、その写しが有効であるか否かを示す有効ビットとからなるタグ情報が格納されている。
【0021】
レジスタ209は、セットアドレス203を保持するレジスタである。デコーダ210は、レジスタ209に保持されているセットアドレスを解読し、ディレクトリ部207の第0セット〜第255セットの内の1つを選択する選択信号を出力する。
【0022】
レジスタ215は、セットアドレス203を保持するレジスタである。デコーダ216は、レジスタ215に保持されているセットアドレスを解読し、データアレイ部214の第0セット〜第255セットの内の1つを選択する選択信号を出力する。
【0023】
比較回路208には、ディレクトリ部207の256個のセットの内の、デコーダ210によって選択されたセット中の第0〜第3ウェイの内容(タグ情報)と、アドレスレジスタ201に保持されているブロックアドレス202とが入力される。そして、有効ビットが有効を示しているタグ情報中のブロックアドレスと、ブロックアドレス202とを比較し、一致するものがなければ、ミスヒット信号を出力し、一致するものがあれば、ヒット信号を出力する。尚、ヒット信号には、一致したブロックアドレスがどのウェイに格納されていたものなのかを示すセレクト情報が含まれる。
【0024】
レジスタ211は、比較回路208から出力されるヒット信号,ミスヒット信号を保持するレジスタである。
【0025】
選択回路217は、比較回路208からヒット信号が出力された場合、それに含まれているセレクト情報と、デコーダ216の出力とによって特定される、データアレイ部214の領域に格納されているデータを出力する。
【0026】
キャッシュタグレジスタ205には、ミスヒットが発生したときに、ディレクトリ部207に書き込むタグ情報が保持される。一方、データレジスタ212には、ミスヒットが発生したときに、データアレイ部214に書き込むブロックの写しが保持される。
【0027】
リプレイスメント制御回路218は、比較回路208からミスヒット信号が出力された場合、置き換えの対象にするウェイを示す置き換えウェイ信号を出力する。尚、リプレイスメント制御回路218の構成,動作については、後で詳細に説明する。
【0028】
選択回路206は、リプレイスメント制御回路218からの置き換えウェイ信号に従って、キャッシュタグレジスタ205に保持されているタグ情報を、ディレクトリ部207の4個のウェイの内の、上記置き換えウェイ信号によって示されるウェイに出力する。ディレクトリ部207は、選択回路206から出力されたタグ情報を、その出力先のウェイと、デコーダ210によって選択されたセット(ミスヒットの発生したセット)とによって特定される領域に書き込む。
【0029】
一方、選択回路213は、リプレイスメント制御回路218からの置き換えウェイ信号に従って、データレジスタ212に保持されているブロックの写しを、データアレイ部214の4個のウェイの内の、上記置き換えウェイ信号によって示されるウェイに出力する。データアレイ部214は、選択回路213から出力されたブロックの写しを、その出力先のウェイと、デコーダ216によって選択されたセット(ミスヒットの発生したセット)とによって特定される領域に書き込む。
【0030】
図3は、図2に示したリプレイスメント制御回路218の構成例を示すブロック図であり、LRUビット更新回路301と、LRUビット保持部302と、置き換え対象選択回路303と、レジスタ304とを備えている。
【0031】
LRUビット保持部302は、第0〜第255セットの256個のセットから構成され、各セットには、そのセット内の4個のウェイの参照順を示すLRUビットが格納されている。尚、本実施例では、LRUビットを8ビット構成とし、先頭から2ビットずつをそれぞれ第0,第1,第2,第3ウェイに割り当てるものとする。そして、各ウェイに対応するビットには、参照順が古いものから順番に“00”“01”“10”“11”を設定するものとする。
【0032】
LRUビット更新回路301は、比較回路208からヒット信号が出力された場合、LRUビット保持部302に保持されているLRUビットの内の、セットアドレス203によって特定されるセット中のLRUビットを更新する。
【0033】
レジスタ304には、プロセッサコア111,112がオンライン状態であるか、オフライン状態(故障もオフライン状態とする)であるかを示すオンオフ状態情報が格納されている。
【0034】
置き換え対象選択回路303には、比較回路208からのミスヒット信号と、LRUビット保持部302の出力(セットアドレスによって選択されているセットの内容)と、レジスタ304からのオンオフ状態情報と、プロセッサコア111或いはプロセッサコア112からのアクティブ信号とが入力されている。アクティブ信号は、プロセッサコア111,112がメモリアクセスを行った時に、プロセッサコア111,112から出力されるものであり、自プロセッサコアを示す情報(例えば、プロセッサコア番号)を含んでいる。
【0035】
置き換え対象選択回路303は、比較回路208からミスヒット信号が出力されると、図4のアルゴリズムに従った動作を行う。図4を参照して、置き換え対象選択回路303の動作を説明する。
【0036】
置き換え対象選択回路303は、ディレクトリ部207,データアレイ部214の4個のウェイを、プロセッサコア111用のウェイ(ウェイ0,1とする)と、プロセッサコア112用のウェイ(ウェイ2,3とする)とにグループ分けして管理している。更に、置き換え対象選択回路303は、プロセッサコア111がオフライン状態の場合はプロセッサコア111用にグループ分けされているウェイ0,1をオンライン状態のプロセッサコア112に分配し、プロセッサコア112がオフライン状態の場合は、プロセッサコア112用にグループ分けされているウェイ2,3をオンライン状態のプロセッサコア111に分配することを示すオフライン時分配情報を管理している。
【0037】
比較回路208からミスヒット信号が出力されたとき、置き換え対象選択回路303は、レジスタ304の内容及びアクティブ信号が示すプロセッサコア(ミスヒットの原因となるメモリアクセスを行ったプロセッサコア)に基づいて下記(A)〜(D)の何れかの動作を行う。
【0038】
(A)レジスタ304に保持されているオンオフ状態情報が、プロセッサコア111,112が共にオンライン状態であることを示し、且つアクティブ信号がプロセッサコア111を示している場合の動作
・LRUビット保持部302から出力されている8ビット構成のLRUビットの内の、プロセッサコア111用にグループ分けしてあるウェイ0,1に対応するビット同士を比較し(本実施例では、第0,第1ビットと、第2,第3ビットとを比較する)、どちらのウェイの方が参照順が古いかを調べる。その後、参照順が古い方のウェイを示す置き換えウェイ信号を生成し、出力する。例えば、ウェイ0,1に対応するビットがそれぞれ“00”“10”であれば、ウェイ0を示す置き換えウェイ信号を出力する。この置き換えウェイ信号は、図2の選択回路206,213に供給される。
【0039】
(B)レジスタ304に保持されているオンオフ状態情報が、プロセッサコア111,112が共にオンライン状態であることを示し、且つアクティブ信号がプロセッサコア112を示している場合の動作
・LRUビット保持部302から出力されている8ビット構成のLRUビットの内の、プロセッサコア112用にグループ分けしてあるウェイ2,3に対応するビット同士を比較し(本実施例では、第4,第5ビットと第6,第7ビットとを比較する)、どちらのウェイの方が参照順が古いかを調べる。その後、参照順が古い方のウェイを示す置き換えウェイ信号を生成し、出力する。
【0040】
(C)レジスタ304に保持されているオンオフ状態情報が、プロセッサコア111がオフライン状態で、プロセッサコア112がオンライン状態であることを示している場合の動作
・オフライン時分配情報に基づいて、オフライン状態のプロセッサコア111用にグループ分けされているウェイ0,1をオンライン状態のプロセッサコア112に分配する。その後、LRUビット保持部302から出力されている8ビット構成のLRUビットに基づいて、プロセッサコア112用にグループ分けされているウェイ2,3と、新たにプロセッサコア112に分配されたウェイ0,1の中から参照順が最も古いウェイを選択する。その後、選択したウェイを示す置き換えウェイ信号を生成し、出力する。
【0041】
(D)レジスタ304に保持されているオンオフ状態情報が、プロセッサコア112がオフライン状態で、プロセッサコア111がオンライン状態であることを示している場合の動作
・オフライン時分配情報に基づいて、オフライン状態のプロセッサコア112用にグループ分けされているウェイ2,3をオンライン状態のプロセッサコア111に分配する。その後、LRUビット保持部302から出力されている8ビット構成のLRUビットに基づいて、プロセッサコア111用にグループ分けされているウェイ0,1と、新たにプロセッサコア111に分配されたウェイ2,3の中から参照順が最も古いウェイを選択する。その後、選択したウェイを示す置き換えウェイ信号を生成し、出力する。
【0042】
次に、本実施例の動作を具体例を挙げて説明する。
【0043】
今、例えば、プロセッサコア111が、ブロックA,B内のアドレスを順次出力し、次いで、プロセッサコア112がブロックC,D,E内のアドレスを順次出力し、その後、プロセッサコア111が再びブロックA,B内のアドレスを順次出力したとする。尚、上記各ブロックA〜Eは、全て同一のセットi内のブロックであり、キャッシュメモリBSは、初期状態であるとする。
【0044】
プロセッサコア111がブロックA,B内のアドレスを出力し、その後、プロセッサコア112がブロックC,D内のアドレスを出力すると、図5(1)に示すように、データアレイ部214のセットiのウェイ0,1,2,3にブロックA,B,C,Dの写しが格納される。
【0045】
その後、プロセッサコア112が、ブロックE内のアドレスを出力すると、プロセッサコア112用のウェイは、ウェイ2,3に制限されているので、図5(2)に示すように、ミスヒットが発生し、ウェイ2に格納されていたブロックCの写しがブロックEの写しに置き換えられる。
【0046】
その後、プロセッサコア111がブロックA,B内のアドレスを順次出力しても、図5(3),(4)に示すように、キャッシュヒットとなり、プロセッサ間の競合ミスは発生しない。
【0047】
このように、本実施例によれば、プロセッサコア間の競合ミスを完全に防止できるので、従来の技術に比較して置き換えが行われる回数を減らし(図7参照)、マルチプロセッサシステムの処理速度を向上させることができる。また、故障等のオフライン状態のプロセッサコアが発生した場合、そのプロセッサコアにグループ分けされていたウェイを、オンライン状態のプロセッサコアに分配するようにしたので、オフライン状態のプロセッサコアが発生しても、キャッシュメモリの利用効率が低下することはない。
【0048】
尚、上述した実施例においては、オンチップマルチプロセッサシステムの台数を2台としたが、3台以上であっても良い。また、オンチップマルチプロセッサシステム内のプロセッサコアの台数を2台としたが、3台以上であっても良い。更に、キャッシュメモリのウェイ数を4としたが、ウェイ数はオンチップ上のプロセッサコア数より多ければ良い。キャッシュメモリのリード/ライトポートは各1ポートで構成されているが、複数のポートで構成してもよい。また、オフチップマルチプロセッサの共有キャッシュとしても適用も可能である。実施例では、L1キャッシュだがL2キャッシュより下の階層のキャッシュにも適用可能である。
【0049】
【発明の効果】
以上説明したように、本発明は、キャッシュメモリの複数のウェイを、マルチプロセッサシステムを構成する各プロセッサ毎のグループにグループ分けしておき、レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない状況で、ミスヒットが発生した時、ミスヒットの原因となるメモリアクセスを行ったプロセッサ用にグループ分けされているウェイの中から、置き換え対象にするウェイを1つ選択するようにしているので、プロセッサ間の競合ミス(或るプロセッサがアクセス対象にしているブロックの写しが、他のプロセッサがアクセス対象にしているブロックの写しで置き換えられることに起因して発生するミスヒット)を完全になくすことができる。その結果、プロセッサ間の競合ミスに起因する置き換えが発生しないので、マルチプロセッサシステムの処理速度を向上させることができる。
【0050】
また、本発明は、レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、オフライン状態のプロセッサにグループ分けされていたウェイを、オンライン状態のプロセッサに分配するようにしているので、オフライン状態のプロセッサが発生した場合も、キャッシュメモリの全てのウェイが使用可能となり、キャッシュメモリの利用効率低下を防ぐことができる。
【図面の簡単な説明】
【図1】本発明を適用するシステムの構成例を示すブロック図である。
【図2】キャッシュコントローラ113,オンチップキャッシュメモリ114の構成例を示すブロック図である。
【図3】リプレイスメント制御回路218の構成例を示すブロック図である。
【図4】置き換え対象選択回路303の動作のアルゴリズムを示す図である。
【図5】実施例の動作を説明するための図である。
【図6】マルチプロセッサシステムの一般的な構成例を示す図である。
【図7】従来技術の問題点を説明するための図である。
【符号の説明】
110,120…オンチップマルチプロセッサシステム
111,112,121,122…プロセッサコア
113,123…キャッシュコントローラ
114,124…オンチップキャッシュメモリ
130…オフチップキャッシュメモリ
140…メインメモリ
150,160…メモリバス
201…アドレスレジスタ
202…ブロックアドレス
203…セットアドレス
204…ブロック内バイトアドレス
205…キャッシュタグレジスタ
206…選択回路
207…ディレクトリ部
208…比較回路
209…レジスタ
210…デコーダ
211…レジスタ
212…データレジスタ
213…選択回路
214…データアレイ部
215…レジスタ
216…デコーダ
217…選択回路
218…リプレイスメント制御回路
301…LRUビット更新回路
302…LRUビット保持部
303…置き換え対象選択回路
304…レジスタ
P0,P1…プロセッサ
CC…キャッシュコントローラ
BS…キャッシュメモリ
MS…メインメモリ

Claims (5)

  1. 複数のプロセッサがnウェイセットアソシアティブ方式のキャッシュメモリを共有するマルチプロセッサシステムにおいて、
    前記キャッシュメモリの複数のウェイを前記各プロセッサ毎のグループにグループ分けして管理すると共に、オフライン状態のプロセッサにグループ分けされているウェイを、オンライン状態のプロセッサにどのように分配するのかを示すオフライン時分配情報を管理し、
    更に、前記各プロセッサがオンライン状態であるのかオフライン状態であるのかを示すオンオフ状態情報をレジスタに格納し、
    ミスヒットが発生した時、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイの中から、置き換えの対象にするウェイを1つ選択し、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイと、前記オフライン時分配情報が前記ミスヒットの原因となったプロセッサに新たに分配することを示しているウェイの中から、置き換えの対象にするウェイを1つ選択することを特徴とする共有キャッシュメモリのリプレイスメント制御方法。
  2. 請求項1載の共有キャッシュメモリのリプレイスメント制御方法において、
    選択対象のウェイの中から置き換えの対象にするウェイを1つ選択する際、前記選択対象のウェイの内の、最も遠い過去に参照されたウェイを選択することを特徴とする共有キャッシュメモリのリプレイスメント制御方法。
  3. 複数のプロセッサがnウェイセットアソシアティブ方式のキャッシュメモリを共有するマルチプロセッサシステムにおける共有キャッシュメモリのリプレイスメント制御装置であって、
    前記各プロセッサがオンライン状態であるのか、オフライン状態であるのかを示すオンオフ状態情報が格納されたレジスタと、
    前記キャッシュメモリの複数のウェイを前記各プロセッサ毎のグループにグループ分けして管理すると共に、オフライン状態のプロセッサにグループ分けされているウェイを、オンライン状態のプロセッサにどのように分配するのかを示すオフライン時分配情報を管理し、ミスヒットが発生した時、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在しない場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイの中から、置き換えの対象にするウェイを1つ選択し、前記レジスタに格納されているオンオフ状態情報がオフライン状態であることを示しているプロセッサが存在する場合は、前記ミスヒットの原因となるメモリアクセスを行ったプロセッサにグループ分けされているウェイと、前記オフライン時分配情報が前記ミスヒットの原因となったプロセッサに新たに分配することを示しているウェイの中から、置き換えの対象にするウェイを1つ選択する置き換え対象選択回路を備えたことを特徴とする共有キャッシュメモリのリプレイスメント制御装置。
  4. 請求項記載の共有キャッシュメモリのリプレイスメント制御装置において、
    前記置き換え対象選択回路が、
    選択対象のウェイの中から置き換えの対象にするウェイを1つ選択する際、前記選択対象のウェイの内の、最も遠い過去に参照されたウェイを選択する構成を有することを特徴とする共有キャッシュメモリのリプレイスメント制御装置。
  5. 請求項記載の共有キャッシュメモリのリプレイスメント制御装置において、
    前記キャッシュメモリ中の各セット毎に、そのセット中のウェイの参照順を示すLRUビットが登録されたLRUビット保持部を備え、且つ、
    前記置き換え対象選択回路が、
    前記選択対象のウェイの中から最も遠い過去の参照されたウェイを選択する際、前記LRUビット保持部の内容に基づいて選択する構成を有することを特徴とする共有キャッシュメモリのリプレイスメント制御装置。
JP2001179637A 2001-06-14 2001-06-14 共有キャッシュメモリのリプレイスメント制御方法及びその装置 Expired - Fee Related JP3620473B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001179637A JP3620473B2 (ja) 2001-06-14 2001-06-14 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US10/166,625 US6877067B2 (en) 2001-06-14 2002-06-12 Shared cache memory replacement control method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001179637A JP3620473B2 (ja) 2001-06-14 2001-06-14 共有キャッシュメモリのリプレイスメント制御方法及びその装置

Publications (2)

Publication Number Publication Date
JP2002373115A JP2002373115A (ja) 2002-12-26
JP3620473B2 true JP3620473B2 (ja) 2005-02-16

Family

ID=19020178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001179637A Expired - Fee Related JP3620473B2 (ja) 2001-06-14 2001-06-14 共有キャッシュメモリのリプレイスメント制御方法及びその装置

Country Status (2)

Country Link
US (1) US6877067B2 (ja)
JP (1) JP3620473B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063794B2 (en) 2010-05-14 2015-06-23 Socionext Inc. Multi-threaded processor context switching with multi-level cache

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3900025B2 (ja) 2002-06-24 2007-04-04 日本電気株式会社 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7558920B2 (en) * 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
WO2007105256A1 (ja) 2006-02-24 2007-09-20 Fujitsu Limited マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
US20070275278A1 (en) * 2006-05-27 2007-11-29 Dr. Herng Shinn Hwang Integrated catalytic and turbine system and process for the generation of electricity
JP2008097572A (ja) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd 演算装置、コンピュータシステム、および携帯機器
JP2009015509A (ja) * 2007-07-03 2009-01-22 Renesas Technology Corp キャッシュメモリ装置
JP5245349B2 (ja) * 2007-10-17 2013-07-24 日本電気株式会社 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
KR101427409B1 (ko) * 2008-05-30 2014-08-07 어드밴스드 마이크로 디바이시즈, 인코포레이티드 분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
JP2010244435A (ja) * 2009-04-08 2010-10-28 Panasonic Corp キャッシュ制御装置及びキャッシュ制御方法
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
US8799624B1 (en) * 2009-09-21 2014-08-05 Tilera Corporation Configurable device interfaces
US9367462B2 (en) * 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
US20130097387A1 (en) * 2011-10-14 2013-04-18 The Board Of Trustees Of The Leland Stanford Junior University Memory-based apparatus and method
CN102521151A (zh) * 2011-11-28 2012-06-27 华为技术有限公司 数据缓存方法和装置
US9223709B1 (en) * 2012-03-06 2015-12-29 Marvell International Ltd. Thread-aware cache memory management
US9274963B2 (en) * 2012-07-20 2016-03-01 International Business Machines Corporation Cache replacement for shared memory caches
US9529719B2 (en) 2012-08-05 2016-12-27 Advanced Micro Devices, Inc. Dynamic multithreaded cache allocation
US9086987B2 (en) 2012-09-07 2015-07-21 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
US9086986B2 (en) 2012-09-07 2015-07-21 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
KR102354848B1 (ko) 2014-11-28 2022-01-21 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
WO2016097812A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
WO2016097813A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
KR101817847B1 (ko) 2014-12-14 2018-02-21 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 메모리 접근 타입에 기초한 통로에 의해 버짓화된 캐시 메모리
WO2016097807A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache replacement policy that considers memory access type
EP3230874B1 (en) * 2014-12-14 2021-04-28 VIA Alliance Semiconductor Co., Ltd. Fully associative cache memory budgeted by memory access type

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
JPS63254543A (ja) 1987-04-10 1988-10-21 Matsushita Electric Ind Co Ltd マルチプロセツサ装置
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
JP3348367B2 (ja) * 1995-12-06 2002-11-20 富士通株式会社 多重アクセス方法および多重アクセスキャッシュメモリ装置
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
US6434669B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
JP3812258B2 (ja) * 2000-01-13 2006-08-23 株式会社日立製作所 キャッシュ記憶装置
US6598123B1 (en) * 2000-06-28 2003-07-22 Intel Corporation Snoop filter line replacement for reduction of back invalidates in multi-node architectures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063794B2 (en) 2010-05-14 2015-06-23 Socionext Inc. Multi-threaded processor context switching with multi-level cache

Also Published As

Publication number Publication date
US20020194433A1 (en) 2002-12-19
JP2002373115A (ja) 2002-12-26
US6877067B2 (en) 2005-04-05

Similar Documents

Publication Publication Date Title
JP3620473B2 (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US11803486B2 (en) Write merging on stores with different privilege levels
TWI391821B (zh) 在互連結構上發佈請求而無參照基於標籤快取狀態的低階快取之處理單元及資料處理系統與方法
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
TWI522802B (zh) 確保微處理器之快取記憶體層級之資料一致性的裝置與方法
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
US20020124143A1 (en) System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
US20070073974A1 (en) Eviction algorithm for inclusive lower level cache based upon state of higher level cache
JP5039913B2 (ja) ロッキング・キャッシュを用いる直接的保存
US20110173393A1 (en) Cache memory, memory system, and control method therefor
JP2010191638A (ja) キャッシュ装置
JP3900025B2 (ja) 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
EP2926257B1 (en) Memory management using dynamically allocated dirty mask space
JP2008530657A (ja) キャッシュメモリを備えたシステムとアクセス方法
JP4434534B2 (ja) プロセッサ・システム
JPH04205041A (ja) マルチプロセッサシステム
US8250305B2 (en) Method, system and computer program product for data buffers partitioned from a cache array
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JP3786418B2 (ja) メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式
JPWO2006038258A1 (ja) データプロセッサ
US7181575B2 (en) Instruction cache using single-ported memories
US6996675B2 (en) Retrieval of all tag entries of cache locations for memory address and determining ECC based on same
JPH0210446A (ja) バッファ記憶装置
JP2008176731A (ja) マルチプロセッサシステム
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

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: 20041026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041108

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071126

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111126

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111126

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121126

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121126

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees