JP2012203729A - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP2012203729A JP2012203729A JP2011068861A JP2011068861A JP2012203729A JP 2012203729 A JP2012203729 A JP 2012203729A JP 2011068861 A JP2011068861 A JP 2011068861A JP 2011068861 A JP2011068861 A JP 2011068861A JP 2012203729 A JP2012203729 A JP 2012203729A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- unit
- index
- process identifier
- way
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
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
【解決手段】各セット103のキャッシュブロック102毎に物理プロセスID(PPID)が記憶されるとともに、#1から#nの各インデックス値毎に、各PPID値に対するMAX WAY数105が記憶される。或るインデックス値における或るPPID値に対応するMAX WAY数105は、そのインデックス値において記憶可能なそのPPID値を有するキャッシュブロック102の最大数を示す。各インデックス値毎に、各PPID値のMAX WAY数105が守られるように、キャッシュミス時のウェイ数の制御が実施される。
【選択図】図1
Description
プロセッサが実行するオペレーティングシステム(Operating System;OS)によって共有キャッシュ領域を分割管理する手法として従来、Modified LRU Replacement方式と呼ばれる第1の従来技術が知られている。この第1の従来技術では、システム上で動作する全プロセスについて、プロセスが使用しているキャッシュブロック数がカウントされる。
このため、キャッシュメモリのより効率的な動作が望まれていた。
データがキャッシュメモリ内のいずれかのラインに存在しているか否かを高速検索するため、各キャッシュセット(以下、単にセットと略記)を構成するキャッシュブロックは、有効か否かを示す有効フラグ、タグ、及びデータから構成されている。キャッシュブロックのサイズは例えば、有効フラグが1ビット、タグが15ビット、データが128バイトである。ここで、キャッシュセットとは、分割されたキャッシュメモリの領域をいい、各キャッシュセットは複数のキャッシュブロックを含む。
セット・アソシアティブ方式のキャッシュメモリは以上のような構成を有す。
図1は、キャッシュメモリの実施形態のブロック図である。
本実施形態によるキャッシュメモリ101は、例えば4ウェイまたは8ウェイのセット・アソシアティブ方式のキャッシュメモリである。
キャッシュメモリ101は、データを#1から#nの複数行からなるセット103、および各セット103に属するキャッシュブロック102の単位で管理される。例えば、n=1024である。
(128バイト×1024インデックス×4ウェイ)÷1024=512キロバイトである。
まず、本実施形態では、各セット103のキャッシュブロック102毎にPPIDが記憶されるとともに、#1から#nのインデックス値毎に、各PPID値(例えば1〜4)に対するMAX WAY数(最大ウェイ数)105が記憶される。或るインデックス値における或るPPID値に対応するMAX WAY数105は、そのインデックス値において記憶可能なそのPPID値を有するキャッシュブロック102の最大数を示す。本実施形態では、各インデックス値毎に、各PPID値のMAX WAY数105が守られるように、追い出し制御が実施される。
キャッシュメモリ101における各PPIDに対するキャッシュサイズの割当てを変更する場合は、MAX WAY数105のマップを変更するだけでよい。MAX WAY数105の指示は、キャッシュアクセス命令に付随させて行うことができる。従来技術では、キャッシュメモリ101内の全キャッシュブロック102のプロセスIDを書き換えることが必要であった。これに対して、本実施形態では、キャッシュアクセス命令に付随して随時各PPIDに対するキャッシュサイズの割当を変化させることができる。なお、全てのインデックス値について、一括して書き換えてもよい。
P1: 64 × 1000 マイクロ秒 = 64,000 → 例 : 優先度を下げる
P2: 21 × 500 マイクロ秒 = 10,500
P4: 11 × 2000 マイクロ秒 = 22,000
例えば図2の最初のPPID値P1のキャッシュブロック数は64である。また、図3において、1ウェイあたりのインデックス方向のブロック数は16ブロックである。従って、C=64/16=4、その除算の余りは0であるからR=0となる。
次に、初期値0から始まって前回のRの値を順次累算することで、R個分のMAX WAY数の増加処理を行う開始位置(MAX WAY数増加開始位置)を更新する(ステップS904)。続いて、MAX WAY数増加開始位置からR個のインデックス分だけ、MAX WAY数105を1ずつ増加する(ステップS905)。上述のPPID値P1の例では、R=0であるため、ステップS905の増加処理は実行されず、また、MAX WAY数増加開始位置は、初期値0のままである。
C=0でなくステップS904の判定がNOならば、ステップS908に移行する。この結果、PPID値P1に関するMAX WAY数105は、図3に示されるように、すべてのインデックス値に対して4となる。
次のプロセスがありステップS908の判定がYESならば、ステップS901からの処理を繰り返す。
さらに、ステップS903が実行される。PPID値P2の例では、MAX WAY数105=1が設定される。
ここでは、PPID値P3について、図5のアドレスハッシュユニット501を動作させるためのハッシュ有効化レジスタ(後述する図13の1302のP3の行を参照)をセットする。
NP : Number of Processes プロセス数
NB : Number of Blocks per way 1ウェイあたりのブロック数
C[p] : プロセスpに割り当てるウェイ数
B[p] : プロセスpに割り当てるブロック数
R[p] : プロセスpにおいて1ウェイ分に満たないブロック数
O[p] : MAX WAY数増加開始位置
次に、プロセスpについて、C[p]=0であるならば(ステップS906)、set_reg_hashval(p)関数を呼び出し、図5のアドレスハッシュユニット501を動作させるためのハッシュ有効化レジスタ(後述する図13の1302を参照)をセットする(ステップS907)。
図11は、図8の#1〜#4のコンパレータ801が出力するビットマップに対して置換ブロックを決定するための置換ウェイ制御回路のハードウェア構成例を示す図である。置換ウェイ制御回路は、ビット数え上げ器1101と置換ウェイ候補決定回路1102と置換ウェイマスク生成回路1103とから構成される。
比較器1105は、ビット数え上げ器1101が出力する要求元PPIDに現在割り当てられているキャッシュウェイ数と、選択回路1104が出力する要求元PPIDに対応するMAX WAY数105とを比較する。
MAX WAY保持部1201には、プロセッサの命令制御部(例えば後述する図18の1806)からアドレスを指定してMAX WAY数105の更新値を書き込むことができる。
上記のSTORE命令が指定する物理アドレスは、MAX WAY数保持部1201内のアドレスマップユニット1202によって、キャッシュのインデックス数に等しいアドレス空間を有するRAM1203上の該当する記憶領域をアクセス可能なアドレスとして、例えば「0x00C」に変換される。すなわちアドレスマップユニット1202は例えば、指定されたアドレス「0x100000000000C」から上位のアドレス情報「0x1000000000」を削除して、アドレスを「0x00C」に変換する処理を実行する。そして、この変換されたアドレスによって指定されるRAM1203内の記憶領域、例えば「0x00C」に、STORE命令によって4バイトのデータ、例えば「0x04020101」が書き込まれる。そして例えば、この4バイトのデータのうち、最上位の1バイト「04」が、図2または図3に示されるPPID=P1に対応するMAX WAY数105=4を指定する。また、次の上位1バイト「02」が、同じくPPID=P2に対応するMAX WAY数105=2を指定する。同様に、次の上位1バイト「01」が、同じくPPID=P3に対応するMAX WAY数105=1を指定する。そして、最下位の1バイト「01」が、図2や図3では図示しないが、PPID=P4に対応するMAX WAY数105=1を指定する。この1つのSTORE命令によって書き込まれる4バイト1組のデータが、図7または図8に示される1つのインデックス値上のP1〜P4に対応する1組のMAX WAY数105となる。
ハッシュ有効化レジスタ1302は、PPID値毎に、有効ビット、インデックス数、およびオフセットインデックス数を記憶する。有効ビットとしては、例えば、ハッシュ処理を実行する場合に有効を示す値1を、実行しない場合に無効を示す値0がセットされる。インデックス数としては、1ウェイ分に満たない分のインデックス増加処理を行うブロック数R[p]がセットされる。オフセットインデックス数としては、上記増加処理の実行を開始するインデックス位置=MAX WAY数増加開始位置O[p]がセットされる。
ここで、図7および図8に示されるキャッシュタグ部701のハードウェア構成においては、キャッシュタグ部701の具体的なサイズは例えば次のようになる。すなわち、プログラムで指定される32ビットのアドレス107において、下位7ビットでキャッシュライン内オフセットが指定され、その上位10ビットでインデックス、さらにその上位15ビットでタグが指定される例が示されている。従って、この例の場合は、10ビットのインデックスによって指定されるセット103のライン数nは2の10乗=1024であるが、キャッシュタグ部701のサイズはこれに限定されるものではなく、システムごとに適切なその他のサイズ値を採用することができる。システムごとに適切なその他のサイズ値を採用する場合には、アドレス107も適切なビット幅を採用できる。
0xD152
0xD1D2
0xD252
0xD2D2
0xD352
0xD3D2
0xD452
0xD4D2
0xD552
0xD5D2
0xD652
0xD6D2
0xD752
これらの場合、上位9ビットのビット値および各々に対応する10進値は、それぞれ以下のようになる。
110100010=418
110100011=419
110100100=420
110100101=421
110100110=422
110100111=423
110101000=424
110101001=425
110101010=426
110101011=427
110101100=428
110101101=429
110101110=430
418÷11=38余り0、余り0+オフセットインデックス数5=5
419÷11=38余り1、余り1+オフセットインデックス数5=6
420÷11=38余り2、余り2+オフセットインデックス数5=7
421÷11=38余り3、余り3+オフセットインデックス数5=8
422÷11=38余り4、余り4+オフセットインデックス数5=9
423÷11=38余り5、余り5+オフセットインデックス数5=10
424÷11=38余り6、余り6+オフセットインデックス数5=11
425÷11=38余り7、余り7+オフセットインデックス数5=12
426÷11=38余り8、余り8+オフセットインデックス数5=13
427÷11=38余り9、余り9+オフセットインデックス数5=14
428÷11=38余り10、余り10+オフセットインデックス数5=15
429÷11=39余り0、余り0+オフセットインデックス数5=5
430÷11=39余り1、余り1+オフセットインデックス数5=6
図15では、アドレス107として「0xD552」が入力された場合が示されている。
0010=2
0011=3
0100=4
0101=5
0110=6
0111=7
1000=8
1001=9
1010=10
1011=11
1100=12
1101=13
1110=14
モジュロ演算器1301は、上記各4ビットのインデックスをそのまま、新たなインデックスとして出力する。
以上の具体例により、図3のPPID値=P1またはP2については、0〜15までの全インデックス範囲をインデックスとして指定できることがわかる。
プロセスIDマップユニット601は、OSが管理するPIDと、キャッシュメモリ101のハードウェアが取扱い可能な物理プロセスIDであるPPIDの変換を行う。
図16に示されるプロセスIDマップユニット601から出力される要求元PPIDの値で、キャッシュタグ部701(図7)内のキャッシュブロック102の更新が行われる。このときキャッシュブロック102をアクセスするインデックスは、図13に示されるアドレスハッシュユニット501から出力された値を用いる。
キャッシュシステム1801は、図7に示したキャッシュタグ部701(MAX WAY数保持部1201を含む)、図5および図13に示したアドレスハッシュユニット501、図6および図16に示したプロセスIDマップユニット601を備える。また、キャッシュシステム1801は、キャッシュデータを保持するキャッシュデータ部1804およびキャッシュタグ部701およびキャッシュデータ部1804へのキャッシュアクセスを制御するキャッシュメモリ制御部1805を備える。
キャッシュシステム1801においてキャッシュミスが発生した場合には、メインメモリ1803からデータが読み出されるとともに、キャッシュメモリ制御部1805内の図11のハードウェア構成によって生成される置換ウェイマスクに対応する置換ウェイのキャッシュブロック102に、そのデータが記憶される。これにより、次回アクセス時にキャッシュヒットとなり、高速なアクセスが実行される。
まず、PPID値P3のプロセスに含まれるLOAD命令実行によりキャッシュミスが発生する(ステップS1701)。P3のブロック数=1は、P3のMAX WAY数=3よりも小さいため、他のPPID値のウェイ、図19の例ではPPID値P2のウェイを置換する。
次に、PPID値P2のプロセスに含まれるLOAD命令実行によりキャッシュミスが発生したものとする(ステップS1704)。P2のブロック数=1は、P2のMAX WAY数=5よりも小さいため、PPID値P1のウェイを置換する。
このフローチャートの処理は、一定時間(例えば10マイクロ秒)毎に実行される。
次に、A>Tとなるプロセスが存在するか否かが判定される(ステップS2002)。ここで、Tは、システム依存の定数(しきい値)とする。
A>Tとなるプロセスが存在せずステップS2002の判定がNOならば、何もせずに今回の処理を終了する。
102 キャッシュブロック
103 キャッシュライン
104 キャッシュウェイ
105 MAX WAY数
106,801 コンパレータ
107 アドレス
501 アドレスハッシュユニット
601 プロセスIDマップユニット
701 キャッシュタグ部
702 タグ情報
1101 ビット数え上げ器
1102 置換ウェイ候補決定回路
1103 置換ウェイマスク生成回路
1104,1107,1303 選択回路
1105 比較器
1106 インバータ
1108 PPIDマッチしたビットマスク
1109 置換ウェイ候補を示すビットマスク
1201 MAX WAY数105保持部
1202 アドレスマップユニット
1203 RAM
1301 モジュロ演算器
1302 ハッシュ有効化レジスタ
1601 連想メモリ
1801 キャッシュシステム
1802 CPUコア
1803 メインメモリ
1804 キャッシュデータ部
1805 キャッシュメモリ制御部
1806 命令制御部
Claims (10)
- 複数の命令を含むプロセスを実行するとともに、インデックス情報とタグ情報を含むメモリアクセス要求を発行する命令制御部と、
タグと、前記メモリアクセス要求に対応するデータと、前記命令制御部が実行するプロセスを識別するプロセス識別子を保持するブロックを、複数のインデックス各々に対応して有するキャッシュウェイを複数備えたキャッシュメモリ部と、
受信したメモリアクセス要求に含まれるインデックス情報をデコードし、前記デコードしたインデックス情報に対応するブロックを選択するインデックスデコード部と、
受信したメモリアクセス要求に含まれるタグ情報と前記インデックスデコード部が選択したブロックに含まれるタグを比較し、前記タグ情報と前記タグが一致する場合には前記インデックスデコード部が選択したブロックに含まれるデータを出力する比較部と、
前記プロセス識別子毎に設定された最大キャッシュウェイ数情報に基づき、前記キャッシュメモリ部のインデックス毎に、前記プロセス識別子で識別されるプロセスが使用するキャッシュウェイ数を決定する制御部と、
を有することを特徴とする演算処理装置。 - 前記命令制御部は、制御プログラムを実行して、プロセス識別子毎に設定された最大キャッシュウェイ数情報に基づき、前記キャッシュメモリ部のインデックス毎に、前記プロセス識別子で識別されるプロセスが使用するキャッシュウェイ数を決定することを特徴とする請求項1記載の演算処理装置。
- 前記演算処理装置において、
前記比較部による比較の結果、前記タグ情報に一致するタグが選択したブロックに存在せずキャッシュミスが発生した場合、前記キャッシュメモリ部は、前記演算処理装置に接続されたメインメモリから読み出した前記メモリアクセス要求に対応するデータを、設定された最大キャッシュウェイ数情報を超えて使用しているプロセスが使用中のブロックのいずれかが保持するデータと置換することを特徴とする請求項1又は2記載の演算処理装置。 - 前記制御部は、
プロセス識別子毎に、各プロセス識別子に割り当てる最大ブロック数を、1つのキャッシュウェイあたりのブロック数で除算して、各プロセス識別子に割り当てるキャッシュウェイ数を算出し、
プロセス識別子毎に、各プロセス識別子に割り当てる最大ブロック数を、1つのキャッシュウェイあたりのブロック数で除算した剰余を算出して、各プロセス識別子における1キャッシュウェイ分に満たないキャッシュウェイ数を算出し、
プロセス識別子毎に、前記キャッシュメモリ部内のすべてのインデックスについて、前記各プロセス識別子に割り当てるキャッシュウェイ数を前記各プロセス識別子に対応する最大キャッシュウェイ数として設定し、
プロセス識別子毎に、前記算出した各プロセス識別子における1キャッシュウェイ分に満たないブロック数のインデックス分だけ、前記各プロセス識別子に対応する最大キャッシュウェイ数を加算し、
前記加算後の最大キャッシュウェイ数を、前記各プロセス識別子で識別されるプロセスが使用するキャッシュウェイ数として決定することを特徴とする請求項1記載の演算処理装置。 - 前記比較部による比較の結果、前記タグ情報に一致するタグが選択したブロックに存在せずキャッシュミスが発生した場合、前記メモリアクセス要求を発生させたプロセスを識別する要求元プロセス識別子と、前記メモリアクセス要求により特定されるインデックスの各キャッシュウェイに対応して前記キャッシュメモリ部に保持されているプロセス識別子と、前記メモリアクセス要求により特定されるインデックスに対応して決定される前記プロセス識別子毎の最大キャッシュウェイ数とに基づいて、前記メモリアクセス要求に対応するインデックスにおいて前記要求元プロセス識別子に対応するプロセスへの前記キャッシュメモリ部の領域の割当てを行なうキャッシュメモリ制御部を有することを特徴とする請求項4記載の演算処理装置。
- 前記キャッシュメモリ制御部は、
前記比較部による比較の結果、前記タグ情報に一致するタグが選択したブロックに存在せずキャッシュミスが発生した場合、前記メモリアクセス要求に含まれるインデックスの各キャッシュウェイに対応して前記キャッシュメモリ部に保持されている各プロセス識別子が前記要求元プロセス識別子と一致するか否かを値1または0で示すビットマスクを生成するマスク生成部と、
前記生成されたビットマスクの「1」または「0」の数を計数する計数部と、
前記計数部が計数した値の数が前記要求元プロセス識別子に対応する最大キャッシュウェイ数に満たない場合には、前記マスク生成部が出力するビットマスクの各ビットを反転たビットマスクを出力し、前記計数部が計数した所定値の数が前記要求元プロセス識別子に対応する最大キャッシュウェイ数に達している場合には、前記マスク生成部が出力したビットマスクを出力するビットマスク選択部と、
前記ビットマスク選択部が出力したビットマスクに基づき、前記複数のキャッシュウェイから置換するキャッシュウェイを決定する置換ウェイ決定部を備えることを特徴とする請求項5記載の演算処理装置。 - プロセス識別子に割り当てるキャッシュウェイ数が0である場合、前記メモリアクセス要求に含まれる要求アドレスに含まれる部分アドレス情報を、前記プロセス識別子における1キャッシュウェイ分に満たないブロック数で除算した剰余に前記所定のインデックス開始位置を加えた値を、前記インデックスデコード部の出力とし、プロセス識別子に割り当てるキャッシュウェイ数が0でない場合、前記要求アドレスに含まれるインデックス情報を前記インデックスデコード部の出力とするアドレスハッシュ生成部を備えることを特徴とする請求項4記載の演算処理装置。
- 前記キャッシュメモリ部は、前記最大キャッシュウェイ数を前記複数のインデックス毎および前記プロセス識別子毎に記憶するメモリを備え、
前記制御部は、前記メモリアクセス要求では使用されないアドレスを指定して、前記最大キャッシュウェイ数の更新を指示し、
前記キャッシュメモリ部は、前記制御部が指定する前記アドレスを前記メモリのアドレス空間のアドレスに変換して、前記プロセス識別子に対応する最大キャッシュウェイ数を更新することを特徴とする請求項4に記載の演算処理装置。 - 前記プロセス識別子は、前記命令制御部が実行するプロセスを複数の種類にグループ化したときの該各グループを識別し、 前記命令制御部が実行するプロセスの実プロセスIDと前記プロセス識別子との対応関係を保持する連想メモリを備え、
前記命令制御部が実行するプロセスの実プロセスIDをキーとして前記連想メモリ部を検索して、前記実プロセスIDに対応するプロセス識別子を取得して、前記キャッシュメモリ制御部に出力するプロセスIDマップ部を備えることを特徴とする請求項1記載の演算処理装置。 - タグと、データと、実行対象のプロセスに対応するプロセス識別子を保持するブロックとを複数のインデックスに対応して有するキャッシュウェイを複数備えたキャッシュメモリ部を有する演算処理装置の制御方法において、
前記演算処理装置が有する命令制御部が、複数の命令を含むプロセスを実行するとともに、インデックス情報とタグ情報を含む、前記データに対するメモリアクセス要求を発行し、
前記演算処理装置が有するインデックスデコード部が、受信したメモリアクセス要求に含まれるインデックス情報をデコードし、前記デコードしたインデックス情報に対応するブロックを選択し、
前記演算処理装置が有する比較部が、受信したメモリアクセス要求に含まれるタグ情報と前記インデックスデコード部が選択したブロックに含まれるタグを比較するとともに、前記タグ情報と前記タグが一致する場合には前記インデックスデコード部が選択したブロックに含まれるデータを出力し、
前記演算処理装置が有する制御部が、前記プロセス識別子毎に設定された最大キャッシュウェイ数情報に基づき、前記キャッシュメモリ部のインデックス毎に、前記プロセス識別子で識別されるプロセスが使用するキャッシュウェイ数を決定することを特徴とする演算処理装置の制御方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011068861A JP2012203729A (ja) | 2011-03-25 | 2011-03-25 | 演算処理装置および演算処理装置の制御方法 |
| US13/359,605 US20120246408A1 (en) | 2011-03-25 | 2012-01-27 | Arithmetic processing device and controlling method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011068861A JP2012203729A (ja) | 2011-03-25 | 2011-03-25 | 演算処理装置および演算処理装置の制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012203729A true JP2012203729A (ja) | 2012-10-22 |
Family
ID=46878307
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011068861A Ceased JP2012203729A (ja) | 2011-03-25 | 2011-03-25 | 演算処理装置および演算処理装置の制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20120246408A1 (ja) |
| JP (1) | JP2012203729A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017527883A (ja) * | 2014-07-17 | 2017-09-21 | クアルコム,インコーポレイテッド | 動的パーティショニングを用いる共有されるキャッシュのための方法および装置 |
| JP2018055568A (ja) * | 2016-09-30 | 2018-04-05 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
| US11474947B2 (en) | 2020-08-18 | 2022-10-18 | Fujitsu Limited | Information processing apparatus and non-transitory computer-readable storage medium storing cache control program |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8904100B2 (en) * | 2012-06-11 | 2014-12-02 | International Business Machines Corporation | Process identifier-based cache data transfer |
| US9513803B2 (en) | 2012-12-21 | 2016-12-06 | Intel Corporation | Tagging in a storage device |
| US9367456B1 (en) * | 2013-06-14 | 2016-06-14 | Marvell International Ltd. | Integrated circuit and method for accessing segments of a cache line in arrays of storage elements of a folded cache |
| CN105094953B (zh) * | 2014-05-09 | 2018-09-07 | 华为技术有限公司 | 数据访问方法及装置 |
| US9612970B2 (en) * | 2014-07-17 | 2017-04-04 | Qualcomm Incorporated | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
| EP3296880B1 (en) * | 2015-06-02 | 2022-09-21 | Huawei Technologies Co., Ltd. | Access system and method for data storage |
| US11636040B2 (en) * | 2019-05-24 | 2023-04-25 | Texas Instruments Incorporated | Methods and apparatus for inflight data forwarding and invalidation of pending writes in store queue |
| CN110765076B (zh) * | 2019-10-25 | 2023-04-21 | 北京奇艺世纪科技有限公司 | 数据存储方法、装置、电子设备及存储介质 |
| US11194730B2 (en) * | 2020-02-09 | 2021-12-07 | International Business Machines Corporation | Application interface to depopulate data from cache |
| CN118210741A (zh) * | 2020-04-30 | 2024-06-18 | 华为技术有限公司 | 一种页交换的方法、存储系统和电子设备 |
| CN116185886B (zh) * | 2022-12-13 | 2023-10-13 | 中国科学院声学研究所 | 一种匹配表系统 |
| US12517840B2 (en) * | 2023-07-26 | 2026-01-06 | Qualcomm Incorporated | Cache access rejection for unauthorized secure cache ID from known master |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10026A (en) * | 1853-09-20 | Improvement in turbines | ||
| JPH02126340A (ja) * | 1988-11-05 | 1990-05-15 | Fuji Xerox Co Ltd | データ処理システム |
| US5809522A (en) * | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
| JP2002342163A (ja) * | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
| JP2011018196A (ja) * | 2009-07-09 | 2011-01-27 | Fujitsu Ltd | キャッシュメモリ |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW451132B (en) * | 1998-12-15 | 2001-08-21 | Nippon Electric Co | System and method for cache processing |
| US6604174B1 (en) * | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
-
2011
- 2011-03-25 JP JP2011068861A patent/JP2012203729A/ja not_active Ceased
-
2012
- 2012-01-27 US US13/359,605 patent/US20120246408A1/en not_active Abandoned
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10026A (en) * | 1853-09-20 | Improvement in turbines | ||
| JPH02126340A (ja) * | 1988-11-05 | 1990-05-15 | Fuji Xerox Co Ltd | データ処理システム |
| US5809522A (en) * | 1995-12-18 | 1998-09-15 | Advanced Micro Devices, Inc. | Microprocessor system with process identification tag entries to reduce cache flushing after a context switch |
| JP2002342163A (ja) * | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
| JP2011018196A (ja) * | 2009-07-09 | 2011-01-27 | Fujitsu Ltd | キャッシュメモリ |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017527883A (ja) * | 2014-07-17 | 2017-09-21 | クアルコム,インコーポレイテッド | 動的パーティショニングを用いる共有されるキャッシュのための方法および装置 |
| US10089238B2 (en) | 2014-07-17 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for a shared cache with dynamic partitioning |
| JP2018055568A (ja) * | 2016-09-30 | 2018-04-05 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
| US11474947B2 (en) | 2020-08-18 | 2022-10-18 | Fujitsu Limited | Information processing apparatus and non-transitory computer-readable storage medium storing cache control program |
Also Published As
| Publication number | Publication date |
|---|---|
| US20120246408A1 (en) | 2012-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20120246408A1 (en) | Arithmetic processing device and controlling method thereof | |
| JP5413001B2 (ja) | キャッシュメモリ | |
| US10268588B2 (en) | Methods of cache preloading on a partition or a context switch | |
| TWI564719B (zh) | 具有多個資料預取器的處理器、所述處理器的操作方法及所述處理器操作的電腦程式產品 | |
| US20130097387A1 (en) | Memory-based apparatus and method | |
| KR101361945B1 (ko) | 컴퓨터 스레드들의 이종 리소스들로의 맵핑 | |
| KR102344008B1 (ko) | 데이터 스토어 및 데이터 스토어에 데이터를 할당하는 방법 | |
| US7111124B2 (en) | Set partitioning for cache memories | |
| US7584327B2 (en) | Method and system for proximity caching in a multiple-core system | |
| CN108459975B (zh) | 用于有效使用地址转换缓存的技术 | |
| US8583874B2 (en) | Method and apparatus for caching prefetched data | |
| US9298615B2 (en) | Methods and apparatus for soft-partitioning of a data cache for stack data | |
| US11442863B2 (en) | Data processing apparatus and method for generating prefetches | |
| US20130275649A1 (en) | Access Optimization Method for Main Memory Database Based on Page-Coloring | |
| CN109461113B (zh) | 一种面向数据结构的图形处理器数据预取方法及装置 | |
| US10628318B2 (en) | Cache sector usage prediction | |
| JPH09101916A (ja) | マルチプロセス処理装置 | |
| US20140195771A1 (en) | Anticipatorily loading a page of memory | |
| CN112965921A (zh) | 一种多任务gpu中tlb管理方法及系统 | |
| KR102749715B1 (ko) | 캐시 메모리 | |
| KR20220110226A (ko) | 고빈도 액세스 버킷 세트와 저빈도 액세스 버킷 세트를 갖는 해시 테이블을 사용하는 시스템 및 방법 | |
| US9384131B2 (en) | Systems and methods for accessing cache memory | |
| US8935508B1 (en) | Implementing pseudo content access memory | |
| EP3690660B1 (en) | Cache address mapping method and related device | |
| US8756362B1 (en) | Methods and systems for determining a cache address |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140108 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140725 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140729 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140929 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141021 |
|
| A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20150224 |