JP2009252165A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステム Download PDFInfo
- Publication number
- JP2009252165A JP2009252165A JP2008102697A JP2008102697A JP2009252165A JP 2009252165 A JP2009252165 A JP 2009252165A JP 2008102697 A JP2008102697 A JP 2008102697A JP 2008102697 A JP2008102697 A JP 2008102697A JP 2009252165 A JP2009252165 A JP 2009252165A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- primary
- secondary cache
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
【課題】異なるラインサイズの1次及び2次キャッシュを備えるマルチプロセッサシステムにおいて、ハードウェアコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減する。
【解決手段】2次キャッシュ103は、2次キャッシュメモリ103Aに記憶されたデータに含まれる命令コードが複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、データの有効性を示す有効ビット及び2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリ103Bと、2次キャッシュタグメモリ103Bに記憶されたラインビットを参照し、2次キャッシュメモリ103のラインのうち、1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラ103Cと、を有する。
【選択図】図1
【解決手段】2次キャッシュ103は、2次キャッシュメモリ103Aに記憶されたデータに含まれる命令コードが複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、データの有効性を示す有効ビット及び2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリ103Bと、2次キャッシュタグメモリ103Bに記憶されたラインビットを参照し、2次キャッシュメモリ103のラインのうち、1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラ103Cと、を有する。
【選択図】図1
Description
本発明は、マルチプロセッサシステムに関し、特に、命令キャッシュを備えるマルチプロセッサシステムに関する。
一般的なマルチプロセッサシステムは、複数のプロセッサコア毎に設けられた1次キャッシュと、プロセッサコアに共有される2次キャッシュと、を備えている。
また、1次及び2次キャッシュを持つ一部のプロセッサシステムにおいては、1次及び2次キャッシュの容量を有効に使用するために、1次キャッシュに存在しているデータと2次キャッシュに存在しているデータとを排他的に制御する機能(以下、「イクスクルーシブキャッシュ」という)が設けられている。イクスクルーシブキャッシュを採用している従来のプロセッサシステムは、制御性の観点から、ラインサイズが同一である1次キャッシュと2次キャッシュを備えている。従って、2次キャッシュのラインサイズが大きくなれば、1次キャッシュのラインサイズも大きくなり、2次キャッシュのラインサイズが小さくなれば、1次キャッシュのラインサイズも小さくなる。
一般的に、一度に多くのデータを転送する方がバスやオフチップのDRAMの利用効率が高くなるため、2次キャッシュのラインサイズは大きい方が好ましい。しかし、1次キャッシュのラインサイズが大きい場合には、1次キャッシュへデータが転送される場合に用いられるバッファのサイズも大きくなるので、ハードウェアの規模及びコストが増加する。特に、マルチプロセッサシステムの場合には、プロセッサの数と同一のバッファが必要であるので、バッファのサイズの増加がハードウェアの規模及びコストに与える影響は大きい。
すなわち、1次キャッシュのラインサイズが大きい場合にはハードウェアの規模及びコストが増加し、2次キャッシュのラインサイズが小さい場合には、バスとDRAMの利用効率が低下する。
特表2007−156821号公報
本発明の目的は、異なるラインサイズの1次及び2次キャッシュを備えるマルチプロセッサシステムのハードウェアの規模及びコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減することである。
本発明の第1態様によれば、メインメモリに接続されたマルチプロセッサシステムであって、
命令コード及び演算データを含むデータの要求及び処理を行う複数のプロセッサコアと、
前記複数のプロセッサコア毎に設けられ、命令コードを記憶する1次キャッシュメモリを有する複数の1次キャッシュと、
前記複数のプロセッサコアに共有され、前記1次キャッシュよりもラインサイズが大きい2次キャッシュと、を備え、
前記2次キャッシュは、
前記データを記憶する2次キャッシュメモリと、
前記2次キャッシュメモリに記憶されたデータに含まれる命令コードが前記複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、前記2次キャッシュメモリに記憶されたデータの有効性を示す有効ビット及び前記2次キャッシュメモリに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリと、
前記2次キャッシュタグメモリに記憶されたラインビットを参照し、前記2次キャッシュメモリのラインのうち、前記1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラと、を有することを特徴とするマルチプロセッサシステムが提供される。
命令コード及び演算データを含むデータの要求及び処理を行う複数のプロセッサコアと、
前記複数のプロセッサコア毎に設けられ、命令コードを記憶する1次キャッシュメモリを有する複数の1次キャッシュと、
前記複数のプロセッサコアに共有され、前記1次キャッシュよりもラインサイズが大きい2次キャッシュと、を備え、
前記2次キャッシュは、
前記データを記憶する2次キャッシュメモリと、
前記2次キャッシュメモリに記憶されたデータに含まれる命令コードが前記複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、前記2次キャッシュメモリに記憶されたデータの有効性を示す有効ビット及び前記2次キャッシュメモリに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリと、
前記2次キャッシュタグメモリに記憶されたラインビットを参照し、前記2次キャッシュメモリのラインのうち、前記1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラと、を有することを特徴とするマルチプロセッサシステムが提供される。
本発明によれば、異なるラインサイズの1次及び2次キャッシュを備えるマルチプロセッサシステムのハードウェアの規模及びコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減させることができる。
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
はじめに、本発明の実施例1について説明する。本発明の実施例1は、2次キャッシュコントローラがプロセッサコアに要求されたデータを2次キャッシュメモリから読み出して供給する例である。
図1は、本発明の実施例1に係るマルチプロセッサシステム100の構成を示すブロック図である。
マルチプロセッサシステム100は、複数のプロセッサコア101A〜101D、複数の1次キャッシュ102A〜102D及び2次キャッシュ103を備えている。
プロセッサコア101A〜101Dは、命令コード及び演算データを含むデータの要求及び処理を行う。プロセッサコア101A〜101Dは、1次キャッシュ102A〜102Dを介して2次キャッシュ103に記憶された命令コード及び演算データにアクセスする。
1次キャッシュ102A〜102Dは、プロセッサコア101A〜101D毎に設けられている。1次キャッシュ102Aは、命令コードを記憶する命令キャッシュ(1次命令キャッシュメモリ102A1及び1次命令キャッシュタグメモリ102A2)並びに演算データを記憶するデータキャッシュ(1次データキャッシュメモリ102A3及び1次データキャッシュタグメモリ102A4)を有する。また、1次キャッシュ102B〜102Dは、それぞれ1次キャッシュ102Aと同様に、命令キャッシュ(1次命令キャッシュメモリ102B1〜102D1(図示せず)及び1次命令キャッシュタグメモリ102B2〜102D2(図示せず))並びにデータキャッシュ(1次データキャッシュメモリ102B3〜102D3(図示せず)及び1次データキャッシュタグメモリ102B4〜102D4(図示せず))を有する。1次キャッシュ102A〜102Dの命令キャッシュ及びデータキャッシュは、共に64Bのラインサイズを有する。
2次キャッシュ103は、1次キャッシュ102A〜102Dを介してプロセッサコア101A〜101Dに共有されるように設けられ、図示されないメインメモリに接続されている。2次キャッシュ103は、LRU(Least Recently Used)ポリシーの2WAYセットアソシアティブ方式を採用し、1次キャッシュ102A〜102Dよりも大きな256Bのラインサイズを有する。2次キャッシュ103の容量は、256KBである。2次キャッシュ103は、2次キャッシュメモリ103A、2次キャッシュタグメモリ103B及び2次キャッシュコントローラ103Cを備えている。なお、2次キャッシュ103のラインサイズは、1次キャッシュ102A〜102Bのラインサイズのk(kは2以上の整数)倍である必要があり、本発明の実施例1ではk=4である。
2次キャッシュメモリ103Aは、命令コード及び演算データを含むデータを記憶する。
2次キャッシュタグメモリ103Bは、2次キャッシュメモリ103Aに記憶されたデータに含まれる命令コードが複数の1次命令キャッシュメモリ102A1〜102D1に記憶されているか否かを示すラインビット、2次キャッシュメモリ103Aに記憶されたデータの有効性を示す有効ビット、2次キャッシュメモリ103Aに記憶されたデータが変更されたか否かを示すダーティビットを各ウェイのライン毎に記憶し、2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットを各ウェイに共通のライン毎に記憶する。2次キャッシュ103がLRUポリシーの2WAYセットアソシアティブ方式を採用しているので、リプレイスビットは、そのエントリがアクセスされる度に値が反転する。
2次キャッシュコントローラ103Cは、プロセッサコア101A〜101Dによってデータの要求が行われた場合に、2次キャッシュタグメモリ103Bに記憶された有効ビット及びタグアドレスを参照し、1次命令キャッシュメモリ102A1〜102D1に記憶されたデータが記憶されたラインがない場合には、キャッシュミスと判断し、リフィル動作が行なわれる。リフィル動作では、メインメモリにアクセスし、メインメモリに記憶されたデータを2次キャッシュメモリ103Aに書き込み、当該データをプロセッサコア101A〜101Dに供給する。このときに、リフィル対象となるラインの有効ビットに1がセットされている状態(すなわち、既に有効なデータが存在している場合)では、リプレイスが発生し、上書きが行なわれる。また、リプレイスされるラインのダーティビットに1がセットされている状態(すなわち、データが変更されていた場合)では、上書きされるデータをメインメモリに書き戻される。2次キャッシュコントローラ103Cは、2次キャッシュ103のラインサイズである256B単位でメインメモリからデータを読み出し、1次キャッシュ102A〜102Dの命令キャッシュのラインサイズである64B単位でプロセッサコア101A〜101Dにデータを供給する。
2次キャッシュコントローラ103Cは、メインメモリからデータを読み出して2次キャッシュメモリ103Aに書き込むときに、2次キャッシュタグメモリ103Bの内容を更新し、有効ビットに1をセットし、ダーティビットに0をセットし、ラインビットに0をセットし、リプレイスビットの値を反転させ、タグアドレスにアドレスの一部を保存する。
2次キャッシュコントローラ103Cは、プロセッサコア101A〜101Dによって要求されたアドレスに応じて、2次キャッシュメモリ103Aに記憶されたデータを1次命令キャッシュメモリ102A1〜102D1に転送する。このときに、プロセッサコア101A〜101Dが命令コードを要求していた場合には、当該データが記憶されたラインに対応する1次命令キャッシュタグメモリ102A2〜102D2のラインビットに1をセットする。この処理は、1次キャッシュ102A〜102Dの何れにデータを転送したか否かに関わらず行われる。
2次キャッシュコントローラ103Cは、上記の動作を繰り返した後、キャッシュミスが発生し、あるラインのリプレイス対象となるウェイを選択する場合に、そのウェイのすべてのラインビットに1がセットされているウェイを優先して選択する。その結果、1次命令キャッシュメモリ102A1〜102D1に記憶された命令コードと同じ命令コードを含むデータに対応するラインが2次キャッシュメモリ103Aから解放されることになる。
なお、本発明の実施例1では、プロセッサコア101及び1次キャッシュ102の数は複数個であれば幾つでも良い。
図2は、本発明の実施例1に係る1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bの初期状態のデータ構造を示す概略図である。
1次命令キャッシュタグメモリ102A2,102B2は、1ラインのウェイ毎の1ラインのウェイ毎の有効ビット(Valid)及びタグアドレス(Tag Address)と、リプレイスビット(Replace)と、を含む。
2次キャッシュタグメモリ103Bは、1ラインのウェイ毎の有効ビット(Valid)、ダーティビット(Dirty)、複数のラインビット(Line 0〜3)及びタグアドレス(Tag Address)と、リプレイスビット(Replace)と、を含む。有効ビットは2次キャッシュメモリ103Aに記憶されたデータの有効性を示すビットであり、リプレイスビットは2次キャッシュメモリ103Aに記憶されたデータのリフィル対象となるウェイを示すビットである。ラインビットは、2次キャッシュ103のラインサイズ/1次キャッシュのラインサイズのビット数を有する。2次キャッシュ103のラインサイズが256B、1次キャッシュ102のラインサイズが64Bのときには、ラインビットは4bitを有する。
初期状態では、1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのビットには0が設定されている。
図3は、本発明の実施例1に係るマルチプロセッサの命令コードのフェッチ処理の処理手順を示すフローチャートである。
はじめに、1次キャッシュ102Aがアクセスされる(S301)。このとき、プロセッサコア101Aによって要求されたデータの命令コードが1次命令キャッシュメモリ102A1に存在するか否かについて、1次命令キャッシュタグメモリ102A2の内容に基づいて調べられる。
S301において、要求されたデータの命令コードが1次命令キャッシュメモリ102A1に存在しない場合には(S302−NO)、2次キャッシュ103がアクセスされる(S303)。このとき、プロセッサコア101Aによって要求されたデータが2次キャッシュメモリ103Aに存在するか否かについて、2次キャッシュタグメモリ103Bの内容に基づいて調べられる。
S303において、要求されたデータが2次キャッシュメモリ103Aに存在しない場合には(S304−NO)、ウェイのリフィルが行われる(S305)。このとき、図4に示されたように、ウェイ0及びウェイ1の有効ビットが0である場合にはリプレイスビットの値に対応するウェイがリフィルされ、ウェイ0の有効ビットのみが0である場合にはウェイ0がリフィルされ、ウェイ1の有効ビットのみが0である場合にはウェイ1がリフィルされ、ウェイ0及びウェイ1のラインビットが全て1である場合にはリプレイスビットの値に対応するウェイがリフィルされ、ウェイ0のラインビットのみが全て1である場合にはウェイ0がリフィルされ、ウェイ1のラインビットのみが全て1である場合にはウェイ1がリフィルされ、それ以外の場合にはリプレイスビットの値に対応するウェイがリフィルされる。
次に、S305においてリフィルされたウェイの全てのラインビットに0がセットされる(S306)。
次に、データが記憶されたラインに対応するラインビットに1がセットされる(S307)。
一方、S301において要求されたデータの命令コードが1次命令キャッシュメモリ102A1に存在する場合には(S302−YES)、S308へ進む。
他方、S303において要求されたデータの命令コードが2次キャッシュメモリ103Aに存在する場合には(S304−YES)、S307へ進む。
S301〜S307は、マルチプロセッサの処理が終了するまで繰り返される(S308−NO)。
次に、本発明の実施例1に係るマルチプロセッサシステム100の動作の具体例を説明する。
例えば、プロセッサコア101Aによってアドレス(0x00A0_0000)に存在する命令コードが要求されたときには、メインメモリから2次キャッシュメモリ103Aに、2次キャッシュメモリ103Aから1次命令キャッシュメモリ102A1に命令コードが転送され、図5に示されるように、1次命令キャッシュタグメモリ102A2のリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0にタグアドレス(0x00A0_0000)がセットされ、2次キャッシュタグメモリ103Bのリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0のラインビットに1がセットされ、ウェイ0にタグアドレス(0x00A0_00)がセットされる。
次に、プロセッサコア101Bの命令コード要求によってアドレス(0x00A0_004,0x00A0_008,0x00A0_00C)の3回の要求が行なわれると、2次キャッシュメモリ103Aから1次命令キャッシュメモリ102B1に命令コードが転送され、図6に示されるように、1次命令キャッシュタグメモリ102B2のリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0のタグアドレスに(0x00A0_004,0x00A0_008,0x00A0_00C)がセットされ、2次キャッシュタグメモリ103Bのリプレイスビットに1がセットされ、ウェイ0のラインビットに1がセットされる。
ウェイ0のラインビットがすべて1の状態で、このラインがリフィル対象となった場合には、リプレイスビットの値は1であるが、ウェイ0にリフィルが行なわれる。
なお、本発明の実施例1では、2次キャッシュコントローラ103Cは、リプレイス対象を選択するときに全てのラインビットに1がセットされているウェイを優先して選択したが、ラインビットがすべて1にセットされたときに当該ラインの有効ビットに0をセットしても良い。
本発明の実施例1によれば、1次命令キャッシュメモリ102A1〜102D1に記憶された命令コードと同じ命令コードを含むラインを2次キャッシュ103から解放するので、キャッシュサイズを有効利用することができ、ひいては、マルチプロセッサシステム100のハードウェアの規模及びコストを低減し、且つバスとメモリの利用効率を向上させ、消費電力を低減することができる。
次に、本発明の実施例2について説明する。本発明の実施例2は、2次キャッシュコントローラがプロセッサコアに要求された命令コードを対応しない1次キャッシュから対応する1次キャッシュに転送する例である。なお、本発明の実施例1と同様の内容についての説明は省略する。
以下、プロセッサコア101Aによって要求された命令コードが対応する1次命令キャッシュメモリ102A1及び2次キャッシュメモリ103Aに存在せず、対応しない1次命令キャッシュメモリ102A1に存在する場合の例について説明する。
本発明の実施例2に係る2次キャッシュコントローラ103Cは、プロセッサコア101Aによって命令コードの要求が行われた場合には、2次キャッシュメモリ103Aに要求されたデータが存在するか否かを調べる。
プロセッサコア101Aによって要求された命令コードが2次キャッシュメモリ103Aに存在する場合には、2次キャッシュコントローラ103Cは、2次キャッシュメモリ103Aに記憶されたデータを1次命令キャッシュメモリ102A1に転送する。
一方、プロセッサコア101Aによって要求されたデータが2次キャッシュメモリ103Aに存在しない場合には、2次キャッシュコントローラ103Cは、プロセッサコア101Aに対応しない1次命令キャッシュメモリ102B1〜102D1に要求されたデータの命令コードと同じ命令コードが存在するか否かを調べる。
2次キャッシュコントローラ103Cは、プロセッサコア101Aによって要求されたデータの命令コードと同じ命令コードが1次命令キャッシュメモリ102B1に存在する場合には、1次命令キャッシュメモリ102B1に記憶された命令コードを1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
一方、2次キャッシュコントローラ103Cは、プロセッサコア101Aによって要求されたデータの命令コードと同じ命令コードが1次命令キャッシュメモリ102B1に存在しない場合には、メインメモリから2次キャッシュ103のラインサイズ(256B)分のデータの命令コードを1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
2次キャッシュコントローラ103Cは、メインメモリから読み出されたデータのうち要求されたデータの命令コード以外の命令コードが1次命令キャッシュメモリ102A1〜102D1に存在するか否かを調べる。
2次キャッシュコントローラ103Cは、要求されたデータの命令コード以外の命令コードが1次命令キャッシュメモリ102A1〜102D1に存在する場合には、当該命令コードが存在する場所に対応するラインビットに1をセットする。リプレイス対象を選択するときには、実施例1と同様に、全てのラインビットに1がセットされた箇所をリプレイス対象として選択するので、1次命令キャッシュメモリ102A1〜102D1に記憶された命令コードと同じ命令コードを含むデータに対応するラインが2次キャッシュメモリ103Aから解放されることになる。
次に、本発明の実施例2に係るマルチプロセッサシステム100の動作の具体例を説明する。
図7は、本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後の状態の1次命令キャッシュタグメモリ102A2,102B2及び2次キャッシュタグメモリ103Bのデータ構造を示す概略図である。
本発明の実施例2に係るマルチプロセッサシステム100の動作が行われた後は、1次命令キャッシュタグメモリ102A2,102B2の一部にリプレイスビット、有効ビット及びタグアドレスがセットされ、2次キャッシュタグメモリ103Bの一部にリプレイスビット、有効ビット、ラインビット及びタグアドレスがセットされている。
プロセッサコア101Aによってアドレス(0x00A0_004)が要求され、当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102B1に存在するときには、1次命令キャッシュメモリ102B1から1次命令キャッシュメモリ102A1に命令コードが転送され、図8に示されるように、1次命令キャッシュタグメモリ102A2のリプレイスビットに1がセットされ、ウェイ0の有効ビットに1がセットされ、ウェイ0にタグアドレス(0x00A0_004)がセットされる。
プロセッサコア101Bによってアドレス(0x10A0_004)が要求され、当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102A1〜102D1に存在しない場合であって、メインメモリから当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102B1に転送され、第2キャッシュメモリ103Aのタグアドレス(0x10A0_000)とタグアドレス(0x10A00C)のデータの命令コードと同じ命令コードが1次命令キャッシュメモリ102A1に存在しているときには、図9に示されるように、1次命令キャッシュタグメモリ102B2のリプレイスビットに0がセットされ、ウェイ1の有効ビットに1がセットされ、ウェイ1にタグアドレス(0x10A0_004)がセットされ、2次キャッシュタグメモリ103Bのリプレイスビットに0がセットされ、ウェイ1のラインビット(Line 0,1,3)に1がセットされ、タグアドレス(0x10A0_00)がセットされる。
なお、本発明の実施例2では、1次命令キャッシュメモリ102A1〜102D1及び1次命令キャッシュタグメモリ102A2〜102D2に対するプロセッサコア101A〜101Dのアクセスと2次キャッシュコントローラ103Cのアクセスとが重複した場合には、プロセッサコア101A〜101Dのアクセスが優先される。
本発明の実施例2によれば、プロセッサコア101Aによって要求された命令コードが対応する1次命令キャッシュメモリ102A1及び2次キャッシュメモリ103Aに存在せず、対応しない1次命令キャッシュメモリ102B1〜102D1に存在する場合に、当該データを対応しない1次命令キャッシュメモリ102B1〜102D1から読み出して対応する1次命令キャッシュメモリ102A1に書き込むことによってプロセッサコア101Aに供給するので、メインメモリへのアクセス数を低減することができる。
また、本発明の実施例2によれば、1次命令キャッシュメモリ102A1〜102D1及び1次命令キャッシュタグメモリ102A2〜102D2に対するプロセッサコア101A〜101Dのアクセスと2次キャッシュコントローラ103Cのアクセスが重複した場合にプロセッサコア101A〜101Dのアクセスが優先されるので、プロセッサコア101A〜101Dの性能を低下させることなく上記効果を達成することができる。
次に、本発明の実施例3について説明する。本発明の実施例3は、2次キャッシュコントローラがプロセッサコアに要求されたデータの命令コードのみをメインメモリから対応する1次キャッシュに転送する例である。なお、本発明の実施例1,2と同様の内容についての説明は省略する。
以下、プロセッサコア101Aによって要求された命令コードが対応する1次命令キャッシュメモリ102A1及び2次キャッシュメモリ103Aに存在せず、対応しない1次命令キャッシュメモリ102B1に存在する場合の例について説明する。
本発明の実施例3に係る2次キャッシュコントローラ103Cは、プロセッサコア101Aによってデータの要求が行われた場合には、2次キャッシュメモリ103A、対応しない1次命令キャッシュメモリ102B1,102C1の順に要求されたデータが存在するか否かを調べる。
プロセッサコア101Aによって要求されたデータが何れかに存在する場合には、2次キャッシュコントローラ103Cは、要求されたデータと同じ2次キャッシュ103のライン上に配置されるデータが1次命令キャッシュメモリ102A1〜102D1に存在するか否かを調べる。
プロセッサコア101Aによって要求されたデータ及び当該データ以外のデータの両方が存在しない場合には、メインメモリから2次キャッシュ103のラインサイズ(256B)分のデータの命令コードを1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
一方、プロセッサコア101Aによって要求されたデータ以外のデータが存在する場合には、2次キャッシュコントローラ103Cは、要求されたデータのみをメインメモリから1次命令キャッシュメモリ102A1に転送することによってプロセッサコア101Aに供給する。
次に、本発明の実施例3に係るマルチプロセッサシステム100の動作の具体例を説明する。
プロセッサコア101Bによってタグアドレス(0x10A0_004)が要求され、図10に示されるように、当該タグアドレスに対応する命令コードが1次命令キャッシュメモリ102A1〜102D1に存在せず、要求されたデータと同じ2次キャッシュ103のライン上に配置されるデータが1次命令キャッシュメモリ102A1に存在するため、2次キャッシュコントローラ103Cは、要求されたデータのみをメインメモリから1次命令キャッシュメモリ102B1に転送し、1次命令キャッシュタグメモリ102B2のリプレイスビットに0がセットされ、ウェイ1の有効ビットに1がセットされ、ウェイ1にタグアドレス(0x10A0_004)がセットされる。
本発明の実施例3によれば、2次キャッシュメモリ103Aに存在するデータを上書きすることがないので、2次キャッシュ103のサイズを有効に利用することができる。
また、本発明の実施例3によれば、メインメモリから1次キャッシュ102A〜102Dへのデータの転送量が1次キャッシュ102A〜102Dのラインサイズ分だけで良くなるので、メインメモリのアクセスに発生する消費電力及びメインメモリのバンド幅の消費を低減することができる。
100 マルチプロセッサ
101A〜101D プロセッサコア
102A〜102D 1次キャッシュ
102A1〜102D1 1次命令キャッシュメモリ
102A2〜102D2 1次命令キャッシュタグメモリ
102A3〜102D3 1次データキャッシュメモリ
102A4〜102D4 1次データキャッシュタグメモリ
103 2次キャッシュ
103A 2次キャッシュメモリ
103B 2次キャッシュタグメモリ
103C 2次キャッシュコントローラ
101A〜101D プロセッサコア
102A〜102D 1次キャッシュ
102A1〜102D1 1次命令キャッシュメモリ
102A2〜102D2 1次命令キャッシュタグメモリ
102A3〜102D3 1次データキャッシュメモリ
102A4〜102D4 1次データキャッシュタグメモリ
103 2次キャッシュ
103A 2次キャッシュメモリ
103B 2次キャッシュタグメモリ
103C 2次キャッシュコントローラ
Claims (5)
- メインメモリに接続されたマルチプロセッサシステムであって、
命令コード及び演算データを含むデータの要求及び処理を行う複数のプロセッサコアと、
前記複数のプロセッサコア毎に設けられ、命令コードを記憶する1次キャッシュメモリを有する複数の1次キャッシュと、
前記複数のプロセッサコアに共有され、前記1次キャッシュよりもラインサイズが大きい2次キャッシュと、を備え、
前記2次キャッシュは、
前記データを記憶する2次キャッシュメモリと、
前記2次キャッシュメモリに記憶されたデータに含まれる命令コードが前記複数の1次キャッシュメモリに記憶されているか否かを示すラインビット、前記2次キャッシュメモリに記憶されたデータの有効性を示す有効ビット及び前記2次キャッシュメモリに記憶されたデータのリフィル対象となるウェイを示すリプレイスビットをライン毎に記憶する2次キャッシュタグメモリと、
前記2次キャッシュタグメモリに記憶されたラインビットを参照し、前記2次キャッシュメモリのラインのうち、前記1次キャッシュメモリに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインを解放する2次キャッシュコントローラと、を有することを特徴とするマルチプロセッサシステム。 - 前記2次キャッシュコントローラは、前記1次キャッシュに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインが属するウェイを示すリプレイスビットを設定する請求項1に記載のマルチプロセッサシステム。
- 前記2次キャッシュコントローラは、前記2次キャッシュメモリのラインのうち、前記1次キャッシュに記憶された命令コードと同じ命令コードを含むデータが記憶されたラインが無効になるように有効ビットを設定する請求項1に記載のマルチプロセッサシステム。
- 前記2次キャッシュは、前記1次キャッシュのk(kは2以上の整数)倍のラインサイズを有する請求項1乃至3の何れか1項に記載のマルチプロセッサシステム。
- 前記2次キャッシュコントローラは、前記プロセッサコアに要求されたデータが前記2次キャッシュメモリに記憶されていない場合に、当該プロセッサコアに対応しない複数の1次キャッシュに当該データに含まれる命令コードが記憶されているか否かを検索し、当該命令コードが記憶されている場合には当該命令コードを読み出し、読み出された命令コードを当該プロセッサコアに対応する1次キャッシュに転送する請求項1乃至4の何れか1項に記載のマルチプロセッサシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008102697A JP2009252165A (ja) | 2008-04-10 | 2008-04-10 | マルチプロセッサシステム |
US12/404,631 US20090259813A1 (en) | 2008-04-10 | 2009-03-16 | Multi-processor system and method of controlling the multi-processor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008102697A JP2009252165A (ja) | 2008-04-10 | 2008-04-10 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009252165A true JP2009252165A (ja) | 2009-10-29 |
Family
ID=41164933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008102697A Pending JP2009252165A (ja) | 2008-04-10 | 2008-04-10 | マルチプロセッサシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090259813A1 (ja) |
JP (1) | JP2009252165A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011141831A (ja) * | 2010-01-08 | 2011-07-21 | Toshiba Corp | マルチコアシステム |
JP2013037694A (ja) * | 2011-08-08 | 2013-02-21 | Arm Ltd | 共有キャッシュメモリ制御 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011095852A (ja) * | 2009-10-27 | 2011-05-12 | Toshiba Corp | キャッシュメモリ制御回路 |
US20110153953A1 (en) * | 2009-12-23 | 2011-06-23 | Prakash Khemani | Systems and methods for managing large cache services in a multi-core system |
JP2011198091A (ja) | 2010-03-19 | 2011-10-06 | Toshiba Corp | 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム |
US9110810B2 (en) * | 2011-12-06 | 2015-08-18 | Nvidia Corporation | Multi-level instruction cache prefetching |
WO2015152857A1 (en) | 2014-03-29 | 2015-10-08 | Empire Technology Development Llc | Energy-efficient dynamic dram cache sizing |
US9990293B2 (en) * | 2014-08-12 | 2018-06-05 | Empire Technology Development Llc | Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram |
US10282302B2 (en) * | 2016-06-30 | 2019-05-07 | Hewlett Packard Enterprise Development Lp | Programmable memory-side cache management for different applications |
CN109643280B (zh) * | 2016-09-01 | 2023-03-07 | Arm有限公司 | 高速缓存保留数据管理 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61166651A (ja) * | 1985-01-18 | 1986-07-28 | Fujitsu Ltd | バツフアメモリにおけるリプレイス方式 |
JPH06161888A (ja) * | 1992-11-24 | 1994-06-10 | Fujitsu Ltd | 情報処理装置のデータ転送制御方式 |
JPH06250926A (ja) * | 1993-02-25 | 1994-09-09 | Mitsubishi Electric Corp | 複数階層のキャッシュメモリを備えたデータ処理システム |
JPH07121442A (ja) * | 1993-10-14 | 1995-05-12 | Internatl Business Mach Corp <Ibm> | データ処理システム及び制御方法 |
JPH10207767A (ja) * | 1997-01-16 | 1998-08-07 | Toshiba Corp | ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ |
JP2000010860A (ja) * | 1998-06-16 | 2000-01-14 | Hitachi Ltd | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム |
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
JP2007156821A (ja) * | 2005-12-05 | 2007-06-21 | Fujitsu Ltd | キャッシュシステム及び共用2次キャッシュ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386547A (en) * | 1992-01-21 | 1995-01-31 | Digital Equipment Corporation | System and method for exclusive two-level caching |
US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
US6983388B2 (en) * | 2000-10-25 | 2006-01-03 | Agere Systems Inc. | Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines |
US20040103251A1 (en) * | 2002-11-26 | 2004-05-27 | Mitchell Alsup | Microprocessor including a first level cache and a second level cache having different cache line sizes |
US7133975B1 (en) * | 2003-01-21 | 2006-11-07 | Advanced Micro Devices, Inc. | Cache memory system including a cache memory employing a tag including associated touch bits |
JP4843717B2 (ja) * | 2008-02-18 | 2011-12-21 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
-
2008
- 2008-04-10 JP JP2008102697A patent/JP2009252165A/ja active Pending
-
2009
- 2009-03-16 US US12/404,631 patent/US20090259813A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61166651A (ja) * | 1985-01-18 | 1986-07-28 | Fujitsu Ltd | バツフアメモリにおけるリプレイス方式 |
JPH06161888A (ja) * | 1992-11-24 | 1994-06-10 | Fujitsu Ltd | 情報処理装置のデータ転送制御方式 |
JPH06250926A (ja) * | 1993-02-25 | 1994-09-09 | Mitsubishi Electric Corp | 複数階層のキャッシュメモリを備えたデータ処理システム |
JPH07121442A (ja) * | 1993-10-14 | 1995-05-12 | Internatl Business Mach Corp <Ibm> | データ処理システム及び制御方法 |
JPH10207767A (ja) * | 1997-01-16 | 1998-08-07 | Toshiba Corp | ロック機能付キャッシュメモリ及びこのキャッシュメモリを備えたマイクロプロセッサ |
JP2000010860A (ja) * | 1998-06-16 | 2000-01-14 | Hitachi Ltd | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム |
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
JP2007156821A (ja) * | 2005-12-05 | 2007-06-21 | Fujitsu Ltd | キャッシュシステム及び共用2次キャッシュ |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011141831A (ja) * | 2010-01-08 | 2011-07-21 | Toshiba Corp | マルチコアシステム |
JP2013037694A (ja) * | 2011-08-08 | 2013-02-21 | Arm Ltd | 共有キャッシュメモリ制御 |
Also Published As
Publication number | Publication date |
---|---|
US20090259813A1 (en) | 2009-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12001345B2 (en) | Victim cache that supports draining write-miss entries | |
JP2009252165A (ja) | マルチプロセッサシステム | |
TWI526829B (zh) | 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體 | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
US7539823B2 (en) | Multiprocessing apparatus having reduced cache miss occurrences | |
US9477600B2 (en) | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode | |
JP3620473B2 (ja) | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 | |
US9727475B2 (en) | Method and apparatus for distributed snoop filtering | |
JP2006517040A (ja) | キャッシュラインサイズが異なる第一レベルキャッシュと第二レベルキャッシュを備えたマイクロプロセッサ | |
WO2006132798A2 (en) | Microprocessor including a configurable translation lookaside buffer | |
JP2008108256A (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 | |
JP2009223759A (ja) | 情報処理装置,メモリ制御方法およびメモリ制御装置 | |
US7779205B2 (en) | Coherent caching of local memory data | |
JP2009157612A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
JP5293001B2 (ja) | キャッシュメモリ装置及びその制御方法 | |
JP2009223511A (ja) | キャッシュメモリシステム、データ処理装置および記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121005 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |