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

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

Info

Publication number
JP2002373115A
JP2002373115A JP2001179637A JP2001179637A JP2002373115A JP 2002373115 A JP2002373115 A JP 2002373115A JP 2001179637 A JP2001179637 A JP 2001179637A JP 2001179637 A JP2001179637 A JP 2001179637A JP 2002373115 A JP2002373115 A JP 2002373115A
Authority
JP
Japan
Prior art keywords
ways
cache memory
processor
way
replacement
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.)
Granted
Application number
JP2001179637A
Other languages
English (en)
Other versions
JP3620473B2 (ja
Inventor
Masaya Yamazaki
真矢 山▲崎▼
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

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 複数のプロセッサがキャッシュメモリを共有
するマルチプロセッサシステムにおいて、或るプロセッ
サがアクセス対象にしているブロックの写しが、他のプ
ロセッサがアクセス対象にしているブロックの写しで置
き換えられることに起因して発生するミスヒット(プロ
セッサ間の競合ミス)をなくすことにより、マルチプロ
セッサシステムの処理速度を向上させる。 【解決手段】 置き換え対象選択回路303 は、キャッシ
ュメモリの複数のウェイを、プロセッサ毎のグループに
グループ分けして管理している。ミスヒットが発生した
場合、上記ミスヒットの原因となるメモリアクセスを行
ったプロセッサ用にグループ分けしてあるウェイの中か
ら、置き換え対象にするウェイを1つ選択する。その
際、LRU ビット保持部302 が保持しているLRU ビットに
基づいて、上記グループ中のウェイの中から、参照順が
最も古いウェイを選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
がnウェイセットアソシアティブ方式(nは2以上)の
キャッシュメモリを共有するマルチプロセッサシステム
に関し、特に、ミスヒットが発生した際に行うリプレイ
スメントの制御技術に関する。
【0002】
【従来の技術】情報処理システムの処理性能を向上させ
るため、複数のプロセッサからなるマルチプロセッサシ
ステムを使用するということは、従来から行われてい
る。また、デバイス技術の進歩した現在では、1チップ
上にマルチプロセッサシステムを構成したオンチップマ
ルチプロセッサシステムも実現可能になっている。マル
チプロセッサシステムやオンチップマルチプロセッサシ
ステムでは、キャッシュメモリのヒット率を向上させた
り、キャッシュメモリTOレジスタのデータ転送に要す
るサイクル数を短縮するために、キャッシュ構成の研究
や発明が盛んになされている。
【0003】キャッシュ構成方式には、複数のプロセッ
サ毎に個別のキャッシュメモリを持たせるプライベート
キャッシュ方式と、複数のプロセッサ間でキャッシュメ
モリを共有する共有キャッシュ方式とがある。共有キャ
ッシュ方式は、プライベートキャッシュ方式に比較し
て、メモリ素子数を少なくすることができるので、チッ
プ面積に制限のあるオンチップマルチプロセッサシステ
ムや、小型化,低コスト化が重視される用途では有利で
ある。
【0004】以下に、図6,図7を参照して共有キャッ
シュ方式を採用した従来の一般的なマルチプロセッサシ
ステムの動作を説明する。
【0005】図6に示すように、共有キャッシュ方式を
採用したマルチプロセッサシステムは、プロセッサP
0,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
の写しに置き換えられる。そして、最後にプロセッサP
0がブロックB内のアドレスを出力すると、図7(4)
に示すように、ミスヒットが発生し、ウェイ2に格納さ
れていたブロックCの写しがブロックBの写しに置き換
えられる。
【0009】
【発明が解決しようとする課題】上述したように、従来
の技術では、複数のプロセッサP0,P1が同一のセッ
トi内の多数のブロック(ウェイ数以上のブロック)を
アクセスするような場合、或るプロセッサがアクセス対
象にしているブロックの写しが、他のプロセッサがアク
セス対象にしているブロックの写しに置き換えられるこ
とに起因するミスヒット(プロセッサ間の競合ミス)が
発生してしまう。図7の例では、同図(2)において、
ウェイ0に格納されていたブロックAの写しがブロック
Eの写しに置き換えられることに起因する、同図
(3),(4)に示すミスヒットがこれに当たる。そし
て、プロセッサ間の競合ミスが発生した場合には、置き
換えが行われるため、マルチプロセッサシステムの処理
速度が低下してしまうという問題がある。
【0010】そこで、本発明の目的は、プロセッサ間の
競合ミスの発生を防止することにある。
【0011】
【課題を解決するための手段】本発明は、上記目的を達
成するため、複数のプロセッサがnウェイセットアソシ
アティブ方式のキャッシュメモリを共有するマルチプロ
セッサシステムにおいて、前記キャッシュメモリの複数
のウェイを前記各プロセッサ毎のグループにグループ分
けし、ミスヒットが発生した時、前記ミスヒットの原因
となるメモリアクセスを行ったプロセッサにグループ分
けされているウェイの中から、置き換えの対象にするウ
ェイを1つ選択する。
【0012】この構成によれば、或るプロセッサのメモ
リアクセスを原因とするミスヒットが発生した場合、置
き換えの対象にするウェイが、各プロセッサ毎のウェイ
のグループの内の、上記或るプロセッサに対応するグル
ープ内のウェイに制限されるので、プロセッサ間の競合
ミスが発生することはない。
【0013】また、本発明は、上記目的を達成すると共
に、障害等によりオフライン状態になったプロセッサが
発生した場合においても、キャッシュメモリの利用効率
が低下することを防止できるようにするため、オフライ
ン状態のプロセッサが存在する状況において、オフライ
ン状態のプロセッサにグループ分けされているウェイ
を、オンライン状態のプロセッサにどのように分配する
のかを示すオフライン時分配情報を管理しておき、オフ
ライン状態のプロセッサが存在する状況においてミスヒ
ットが発生した場合、前記ミスヒットの原因となるメモ
リアクセスを行ったプロセッサにグループ分けされてい
るウェイと、前記オフライン時分配情報が前記ミスヒッ
トの原因となったプロセッサに新たに分配することを示
しているウェイの中から、置き換えの対象にするウェイ
を1つ選択する。
【0014】キャッシュメモリの複数のウェイを、マル
チプロセッサシステムを構成する各プロセッサ毎のグル
ープにグループ分けするだけでは、オフライン状態のプ
ロセッサが発生した場合、オフライン状態のプロセッサ
に割り当てられているグループ中のウェイは、全く使用
されなくなってしまい、キャッシュメモリの利用効率が
低下する。これに対して、上記した構成では、オフライ
ン状態のプロセッサが存在する場合、オフライン状態の
プロセッサにグループ分けされていたウェイを、オンラ
イン状態のプロセッサに分配するようにしているので、
オフライン状態のプロセッサが発生した場合も、キャッ
シュメモリの全てのウェイが使用可能となり、キャッシ
ュメモリの利用効率低下を防ぐことができる。
【0015】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0016】図1は本発明を適用するシステムの構成例
を示すブロック図であり、オンチップマルチプロセッサ
システム110,120と、オフチップキャッシュメモ
リ130と、メインメモリ140と、メモリバス15
0,160とから構成されている。
【0017】オンチップマルチプロセッサシステム11
0は、プロセッサコア111,112と、キャッシュコ
ントローラ113と、オンチップキャッシュメモリ11
4とを備えている。また、オンチップマルチプロセッサ
システム120は、プロセッサコア121,122と、
キャッシュコントローラ123と、オンチップキャッシ
ュメモリ124とを備えている。尚、オンチップキャッ
シュメモリ113,123は、4ウェイセットアソシア
ティブ方式のものとする。
【0018】図2は、図1に示したキャッシュコントロ
ーラ113,オンチップキャッシュメモリ114の構成
例を示したブロック図である。尚、キャッシュコントロ
ーラ123,オンチップキャッシュメモリ124も、同
様の構成を有している。
【0019】アドレスレジスタ201は、プロセッサコ
ア111,112がメインメモリ140をアクセスする
際の物理アドレス(32ビットとする)を保持するレジ
スタである。この物理アドレスは、ブロックアドレス2
02(18ビットとする)と、セットアドレス203
(8ビットとする)と、ブロック内バイトアドレス20
4(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には、ディレクトリ部20
7の256個のセットの内の、デコーダ210によって
選択されたセット中の第0〜第3ウェイの内容(タグ情
報)と、アドレスレジスタ201に保持されているブロ
ックアドレス202とが入力される。そして、有効ビッ
トが有効を示しているタグ情報中のブロックアドレス
と、ブロックアドレス202とを比較し、一致するもの
がなければ、ミスヒット信号を出力し、一致するものが
あれば、ヒット信号を出力する。尚、ヒット信号には、
一致したブロックアドレスがどのウェイに格納されてい
たものなのかを示すセレクト情報が含まれる。
【0024】レジスタ211は、比較回路208から出
力されるヒット信号,ミスヒット信号を保持するレジス
タである。
【0025】選択回路217は、比較回路208からヒ
ット信号が出力された場合、それに含まれているセレク
ト情報と、デコーダ216の出力とによって特定され
る、データアレイ部214の領域に格納されているデー
タを出力する。
【0026】キャッシュタグレジスタ205には、ミス
ヒットが発生したときに、ディレクトリ部207に書き
込むタグ情報が保持される。一方、データレジスタ21
2には、ミスヒットが発生したときに、データアレイ部
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〜第2
55セットの256個のセットから構成され、各セット
には、そのセット内の4個のウェイの参照順を示すLR
Uビットが格納されている。尚、本実施例では、LRU
ビットを8ビット構成とし、先頭から2ビットずつをそ
れぞれ第0,第1,第2,第3ウェイに割り当てるもの
とする。そして、各ウェイに対応するビットには、参照
順が古いものから順番に“00”“01”“10”“1
1”を設定するものとする。
【0032】LRUビット更新回路301は、比較回路
208からヒット信号が出力された場合、LRUビット
保持部302に保持されているLRUビットの内の、セ
ットアドレス203によって特定されるセット中のLR
Uビットを更新する。
【0033】レジスタ304には、プロセッサコア11
1,112がオンライン状態であるか、オフライン状態
(故障もオフライン状態とする)であるかを示すオンオ
フ状態情報が格納されている。
【0034】置き換え対象選択回路303には、比較回
路208からのミスヒット信号と、LRUビット保持部
302の出力(セットアドレスによって選択されている
セットの内容)と、レジスタ304からのオンオフ状態
情報と、プロセッサコア111或いはプロセッサコア1
12からのアクティブ信号とが入力されている。アクテ
ィブ信号は、プロセッサコア111,112がメモリア
クセスを行った時に、プロセッサコア111,112か
ら出力されるものであり、自プロセッサコアを示す情報
(例えば、プロセッサコア番号)を含んでいる。
【0035】置き換え対象選択回路303は、比較回路
208からミスヒット信号が出力されると、図4のアル
ゴリズムに従った動作を行う。図4を参照して、置き換
え対象選択回路303の動作を説明する。
【0036】置き換え対象選択回路303は、ディレク
トリ部207,データアレイ部214の4個のウェイ
を、プロセッサコア111用のウェイ(ウェイ0,1と
する)と、プロセッサコア112用のウェイ(ウェイ
2,3とする)とにグループ分けして管理している。更
に、置き換え対象選択回路303は、プロセッサコア1
11がオフライン状態の場合はプロセッサコア111用
にグループ分けされているウェイ0,1をオンライン状
態のプロセッサコア112に分配し、プロセッサコア1
12がオフライン状態の場合は、プロセッサコア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に対応するビットがそれぞれ“0
0”“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…メインメモリ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 523 G06F 12/08 523B

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサがnウェイセットアソ
    シアティブ方式のキャッシュメモリを共有するマルチプ
    ロセッサシステムにおいて、 前記キャッシュメモリの複数のウェイを前記各プロセッ
    サ毎のグループにグループ分けし、 ミスヒットが発生した時、前記ミスヒットの原因となる
    メモリアクセスを行ったプロセッサにグループ分けされ
    ているウェイの中から、置き換えの対象にするウェイを
    1つ選択することを特徴とする共有キャッシュメモリの
    リプレイスメント制御方法。
  2. 【請求項2】 請求項1記載の共有キャッシュメモリの
    リプレイスメント制御方法において、 オフライン状態のプロセッサが存在する状況において、
    オフライン状態のプロセッサにグループ分けされている
    ウェイを、オンライン状態のプロセッサにどのように分
    配するのかを示すオフライン時分配情報を管理してお
    き、 オフライン状態のプロセッサが存在する状況においてミ
    スヒットが発生した場合、前記ミスヒットの原因となる
    メモリアクセスを行ったプロセッサにグループ分けされ
    ているウェイと、前記オフライン時分配情報が前記ミス
    ヒットの原因となったプロセッサに新たに分配すること
    を示しているウェイの中から、置き換えの対象にするウ
    ェイを1つ選択することを特徴とする共有キャッシュメ
    モリのリプレイスメント制御方法。
  3. 【請求項3】 請求項1または2記載の共有キャッシュ
    メモリのリプレイスメント制御方法において、 選択対象のウェイの中から置き換えの対象にするウェイ
    を1つ選択する際、前記選択対象のウェイの内の、最も
    遠い過去に参照されたウェイを選択することを特徴とす
    る共有キャッシュメモリのリプレイスメント制御方法。
  4. 【請求項4】 複数のプロセッサがnウェイセットアソ
    シアティブ方式のキャッシュメモリを共有するマルチプ
    ロセッサシステムにおける共有キャッシュメモリのリプ
    レイスメント制御装置であって、 前記キャッシュメモリの複数のウェイを前記各プロセッ
    サ毎のグループにグループ分けし、ミスヒットが発生し
    た時、前記ミスヒットの原因となるメモリアクセスを行
    ったプロセッサにグループ分けされているウェイの中か
    ら、置き換えの対象にするウェイを1つ選択する置き換
    え対象選択回路を備えたことを特徴とする共有キャッシ
    ュメモリのリプレイスメント制御装置。
  5. 【請求項5】 請求項4記載の共有キャッシュメモリの
    リプレイスメント制御装置において、 前記置き換え対象選択回路が、 オフライン状態のプロセッサが存在する状況において、
    オフライン状態のプロセッサにグループ分けされている
    ウェイを、オンライン状態のプロセッサにどのように分
    配するのかを示すオフライン時分配情報を管理してお
    き、オフライン状態のプロセッサが存在する状況におい
    てミスヒットが発生した場合、前記ミスヒットの原因と
    なるメモリアクセスを行ったプロセッサにグループ分け
    されているウェイと、前記オフライン時分配情報が前記
    ミスヒットの原因となったプロセッサに新たに分配する
    ことを示しているウェイの中から、置き換えの対象にす
    るウェイを1つ選択する構成を有することを特徴とする
    共有キャッシュメモリのリプレイスメント制御装置。
  6. 【請求項6】 請求項4または5記載の共有キャッシュ
    メモリのリプレイスメント制御装置において、 前記置き換え対象選択回路が、 選択対象のウェイの中から置き換えの対象にするウェイ
    を1つ選択する際、前記選択対象のウェイの内の、最も
    遠い過去に参照されたウェイを選択する構成を有するこ
    とを特徴とする共有キャッシュメモリのリプレイスメン
    ト制御装置。
  7. 【請求項7】 請求項6記載の共有キャッシュメモリの
    リプレイスメント制御装置において、 前記キャッシュメモリ中の各セット毎に、そのセット中
    のウェイの参照順を示すLRUビットが登録されたLR
    Uビット保持部を備え、且つ、 前記置き換え対象選択回路が、 前記選択対象のウェイの中から最も遠い過去の参照され
    たウェイを選択する際、前記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 true JP2002373115A (ja) 2002-12-26
JP3620473B2 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 (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105256A1 (ja) 2006-02-24 2007-09-20 Fujitsu Limited マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
JP2008097572A (ja) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd 演算装置、コンピュータシステム、および携帯機器
JP2009015509A (ja) * 2007-07-03 2009-01-22 Renesas Technology Corp キャッシュメモリ装置
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
JP2009098933A (ja) * 2007-10-17 2009-05-07 Nec Corp 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
US7558920B2 (en) 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
WO2010116431A1 (ja) * 2009-04-08 2010-10-14 パナソニック株式会社 キャッシュ制御装置及びキャッシュ制御方法
JP2011523745A (ja) * 2008-05-30 2011-08-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体
JP2012522290A (ja) * 2009-03-27 2012-09-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュにおけるウエイ割り当て及びウエイロックのための方法
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
JP2017507443A (ja) * 2014-12-14 2017-03-16 ヴィア アライアンス セミコンダクター カンパニー リミテッド ヘテロジニアス置換ポリシーを用いるセット・アソシエイティブ・キャッシュ・メモリ
US9898411B2 (en) 2014-12-14 2018-02-20 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
US9910785B2 (en) 2014-12-14 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory budgeted by ways based on memory access type

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US20070094664A1 (en) * 2005-10-21 2007-04-26 Kimming So Programmable priority for concurrent multi-threaded processors
US20070275278A1 (en) * 2006-05-27 2007-11-29 Dr. Herng Shinn Hwang Integrated catalytic and turbine system and process for the generation of electricity
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism
US8392661B1 (en) * 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
JP5336423B2 (ja) 2010-05-14 2013-11-06 パナソニック株式会社 計算機システム
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 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
US9652398B2 (en) * 2014-12-14 2017-05-16 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 (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
US7558920B2 (en) 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
WO2007105256A1 (ja) 2006-02-24 2007-09-20 Fujitsu Limited マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
US7945754B2 (en) 2006-02-24 2011-05-17 Fujitsu Limited Multiprocessor system, processor, and cache control method
JP2008097572A (ja) * 2006-09-11 2008-04-24 Matsushita Electric Ind Co Ltd 演算装置、コンピュータシステム、および携帯機器
JP2009015509A (ja) * 2007-07-03 2009-01-22 Renesas Technology Corp キャッシュメモリ装置
JP2009098933A (ja) * 2007-10-17 2009-05-07 Nec Corp 登録先ウェイの固定方法、プロセッサ、及び情報処理装置
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
JP2011523745A (ja) * 2008-05-30 2011-08-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体
JP2012522290A (ja) * 2009-03-27 2012-09-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュにおけるウエイ割り当て及びウエイロックのための方法
WO2010116431A1 (ja) * 2009-04-08 2010-10-14 パナソニック株式会社 キャッシュ制御装置及びキャッシュ制御方法
US8868835B2 (en) 2009-04-08 2014-10-21 Panasonic Corporation Cache control apparatus, and cache control method
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2013516006A (ja) * 2009-12-29 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー エネルギー効率のよいマルチコアプロセッサのための共用メモリ
US9367462B2 (en) 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
JP2017507443A (ja) * 2014-12-14 2017-03-16 ヴィア アライアンス セミコンダクター カンパニー リミテッド ヘテロジニアス置換ポリシーを用いるセット・アソシエイティブ・キャッシュ・メモリ
US9811468B2 (en) 2014-12-14 2017-11-07 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
US9898411B2 (en) 2014-12-14 2018-02-20 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
US9910785B2 (en) 2014-12-14 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory budgeted by ways based on memory access type

Also Published As

Publication number Publication date
US6877067B2 (en) 2005-04-05
US20020194433A1 (en) 2002-12-19
JP3620473B2 (ja) 2005-02-16

Similar Documents

Publication Publication Date Title
JP2002373115A (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
JP4082612B2 (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
US6910108B2 (en) Hardware support for partitioning a multiprocessor system to allow distinct operating systems
JPS61103258A (ja) 多重プロセッサ・システム
JP5039913B2 (ja) ロッキング・キャッシュを用いる直接的保存
JPH11232173A (ja) ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム
US20040073742A1 (en) Method and system of managing virtualized physical memory in a data processing system
JP2002304328A (ja) マルチプロセッサシステム用コヒーレンスコントローラ、およびそのようなコントローラを内蔵するモジュールおよびマルチモジュールアーキテクチャマルチプロセッサシステム
JP3900025B2 (ja) 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
JP2010097557A (ja) セットアソシアティブ方式のキャッシュ装置及びキャッシュ方法
US20050270876A1 (en) Selectively changeable line width memory
US6785770B2 (en) Data processing apparatus with a cache memory and method of using such an apparatus
US6094710A (en) Method and system for increasing system memory bandwidth within a symmetric multiprocessor data-processing system
JP4712089B2 (ja) 情報処理装置、システム制御装置および情報処理装置の制御方法
JP2008512758A (ja) 仮想アドレス・キャッシュに格納されたデータを共用する仮想アドレス・キャッシュ及び方法
US7865691B2 (en) Virtual address cache and method for sharing data using a unique task identifier
US6996675B2 (en) Retrieval of all tag entries of cache locations for memory address and determining ECC based on same
US20060069873A1 (en) Instruction cache using single-ported memories
JPS5928287A (ja) キヤツシユバツフア制御装置
KR100841130B1 (ko) 상호접속 네트워크를 통한 효율적인 순서화 저장을 위한방법 및 장치
JP2008176731A (ja) マルチプロセッサシステム
JP2009151457A (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