JP4920378B2 - 情報処理装置およびデータ検索方法 - Google Patents

情報処理装置およびデータ検索方法 Download PDF

Info

Publication number
JP4920378B2
JP4920378B2 JP2006311842A JP2006311842A JP4920378B2 JP 4920378 B2 JP4920378 B2 JP 4920378B2 JP 2006311842 A JP2006311842 A JP 2006311842A JP 2006311842 A JP2006311842 A JP 2006311842A JP 4920378 B2 JP4920378 B2 JP 4920378B2
Authority
JP
Japan
Prior art keywords
cache
cache memory
memory
data
search
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
JP2006311842A
Other languages
English (en)
Other versions
JP2008129712A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006311842A priority Critical patent/JP4920378B2/ja
Priority to US11/878,019 priority patent/US7793047B2/en
Publication of JP2008129712A publication Critical patent/JP2008129712A/ja
Application granted granted Critical
Publication of JP4920378B2 publication Critical patent/JP4920378B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)

Description

本発明は、1次キャッシュメモリ装置を内蔵する複数のプロセッサと、主記憶装置と、その間に設けられる2次キャッシュメモリ装置とを有する情報処理装置およびデータ検索方法に関するものである。
それぞれに1次キャッシュメモリ装置を内蔵する複数のプロセッサと主記憶装置との間に2次キャッシュメモリ装置を設けた階層キャッシュメモリ構成の情報処理装置は、広く使用されている。このような情報処理装置は、キャッシュメモリ装置が階層的に複数存在することになるため、データの一貫性を確保することが必要不可欠である。
データの一貫性を確保するためには、マルチレベルインクルージョンを満足することが重要な要素である。マルチレベルインクルージョンとは、2次キャッシュメモリ装置が複数のプロセッサ内の1次キャッシュメモリ装置に記憶されるデータと同じデータを含む状態にすることである。
マルチレベルインクルージョンを満足するために、各1次キャッシュメモリ装置に記憶されるデータの記憶領域と2次キャッシュメモリ装置に記憶されるデータの記憶領域とを対応させる手法が報告されている(例えば、非特許文献1参照。)。
マルチレベルインクルージョンを満足させたシステムにおいては、2次キャッシュメモリ装置からデータを読み出す際に、読み出しアドレスに該当するデータが格納されているか否かを判断するため、2次キャッシュメモリ装置内の複数の領域を検索する必要がある。上記の非特許文献1には、検索するアルゴリズムとして、単純な順次検索、MRU(Most Recently Used)とPartial Compareに係る技術が記載されている。
R.Kessler,R.Jooss,A.Lebeck,M.Hill,"Inexpensive Implementation of Set−Associativity," 16th ISCA,May 1989,pp.131−139
1次キャッシュメモリ装置を内蔵する複数のプロセッサと2次キャッシュメモリ装置とを有する情報処理装置においては、処理速度の向上と回路の小規模化とを同時に満足することが好ましい。しかしながら、上記の非特許文献1で開示されている手法では、2次キャッシュメモリ装置内の記憶領域を、常に先頭領域から検索しているため、読み出そうとするデータが2次キャッシュメモリ装置に格納されているか否かの検索に多大な時間がかかるという問題があった。
また、2次キャッシュメモリ装置内の複数の記憶領域に対するデータ検索を高速化する、MRU、Partial Compareの手法ではハードウェア機構が複雑になるという問題があった。
本発明では、上記問題点を解決するためになされたものであって、マルチレベルインクルージョンを満足しつつ、小さい回路規模で、検索を高速に行える情報処理装置およびデータ検索方法を提供することを目的とする。
上記目的を達成するために、本発明の実施形態に係る情報処理装置は、それぞれに主メモリに格納されるデータの一部の写しを記憶することが可能な1次キャッシュメモリを内蔵する複数のプロセッサと、前記複数のプロセッサと前記主メモリとの間に設けられ、前記1次キャッシュより容量が大きく、少なくとも前記1次キャッシュメモリに格納されるデータと同じデータが記憶される2次キャッシュメモリと、前記1次キャッシュメモリのキャッシュ検索を行うメモリアドレスのインデックスを用いて前記2次キャッシュメモリのキャッシュ検索を行う際に、前記メモリアドレスの一部のビット列であるフラグとキャッシュミス判定時に更新される候補番号との演算により一意に決定される前記2次キャッシュメモリの領域からキャッシュ検索を開始する2次キャッシュ制御手段とを備えることを特徴とする。
本発明によれば、マルチレベルインクルージョンを満足しつつ、小さい回路規模で、検索を高速に行える情報処理装置およびデータ検索方法を提供することを目的とする。
以下、本発明における実施の形態について、図面に基づいて説明する。
図1は、本発明の実施形態に係る情報処理装置の全体構成を示す図である。
実施形態の情報処理装置は、例えば、8つのプロセッサ10A〜10Hと、プロセッサ10A〜10Hのそれぞれに固有に設けられている1次キャッシュメモリ装置11A〜11Hと、1次キャッシュメモリ装置11A〜11Hとバス14を介して接続された2次キャッシュメモリ装置20と、2次キャッシュメモリ装置20と接続されたメモリコントローラ30と、メモリコントローラ30により制御される主記憶装置40とを備えている。
ここで、1次キャッシュメモリ装置11A〜11Hは、記憶領域である1次キャッシュメモリ12A〜12Hと当該記憶領域に対する読み出し、書き込みを制御する1次キャッシュ制御手段13A〜13Hとから構成される。そして、1次キャッシュメモリ12A〜12Hには、それぞれの1次キャッシュ制御手段13A〜13Hの制御により主記憶装置40に記憶されるデータの一部の写しが記憶される。
2次キャッシュメモリ装置20は、記憶領域である2次キャッシュメモリ21と当該記憶領域に対する読み出し、書き込みを制御する2次キャッシュ制御手段22とから構成される。そして、2次キャッシュメモリ21には、2次キャッシュ制御手段22の制御により1次キャッシュメモリ装置12A〜12Hに記憶されたデータと同じデータが記憶される。各プロセッサ10A〜10Hによるメモリアクセス処理では、それぞれに対応する1次キャッシュメモリ12A〜12H、2次キャッシュメモリ21、主記憶装置40がアクセスされる。
各プロセッサ10A〜10Hは、主記憶装置40などに対してデータやプログラムを読み出しあるいはデータの書き込みを行うために、2次キャッシュメモリ装置20に対してコマンド情報を送信する。当該コマンド情報には、データのアドレス情報の他に、コマンド情報(ReadまたはWriteなど)、データ長を示す情報(キャッシュラインの大きさなど)などが含まれている。
また、プロセッサ10A〜10Hから送信されたコマンド情報は、主記憶装置40のみならず、対応する1次キャッシュメモリ装置11A〜11Hおよび2次キャッシュメモリ装置20にて受信される。
次に、プロセッサ10Aが1次キャッシュメモリ12A又は2次キャッシュメモリ21又は主記憶装置40をアクセスして、データを読み出す動作について説明する。なお、プロセッサ10A〜10Hが、それぞれに固有な1次キャッシュメモリ装置11A〜11Hをアクセスする仕組みは全て同じであり、ここではプロセッサ10Aによる動作を説明する。
1次キャッシュ制御手段13Aは、プロセッサ10Aから送信されたコマンド情報を受信する。当該コマンド情報に含まれるアドレスにより指定されるデータが1次キャッシュメモリ12Aに格納されている場合、1次キャッシュメモリ装置11Aはキャッシュヒットとなる。その場合、1次キャッシュ制御手段13Aは、1次キャッシュメモリ12Aから読み出した当該データをプロセッサ10Aへ送信する。
一方、前記アドレスにより指定されるデータが1次キャッシュメモリ12Aに格納されていない場合、1次キャッシュメモリ装置11Aはキャッシュミスとなり、動作を終了する。
2次キャッシュ制御手段22は、1次キャッシュメモリ装置11Aに送られるコマンド情報を同時に受信する。受信したコマンド情報に含まれるアドレスにより指定されるデータが2次キャッシュメモリ21に格納されている場合、2次キャッシュメモリ装置20はキャッシュヒットとなる。そして、2次キャッシュ制御手段22は、2次キャッシュメモリ21から読み出したデータをプロセッサ10Aおよび1次キャッシュメモリ装置11Aへ供給する。前記アドレスにより指定されるデータが2次キャッシュメモリ21に格納されていない場合、2次キャッシュメモリ装置20はキャッシュミスとなり、キャッシュミス時の動作が行われる。その場合、メモリコントローラ30を介して主記憶装置40から読み出されたデータをプロセッサ10A、1次キャッシュメモリ装置11A、および2次キャッシュメモリ装置20へ供給する。なお、1次キャッシュメモリ装置11A、あるいは2次キャッシュメモリ装置20からプロセッサ10Aにデータが供給されていた場合は、主記憶装置40が供給したデータは無効とされる。
ここで、1次キャッシュメモリ12A〜12Hと2次キャッシュメモリ21は、1つのインデックスで指定される記憶領域にn個のデータが格納されるnウェイのセットアソシアティブ方式のメモリで構成されている。nウェイのセットアソシアティブ方式のメモリでは、1回の検索でn個のラインデータが検索されることから、ウェイ数nを大きくすることにより、キャッシュメモリ装置におけるコンフリクトを防ぐ効果がある。ただし、ウェイ数nを一定以上大きくするのは実装上困難である。
次に、1次キャッシュメモリ装置11A〜11Hの領域と2次キャッシュメモリ装置20の対応関係について説明する。
ここでは、1次キャッシュメモリ装置11A〜11Hを、例えば、記憶容量を16kByte、2ウェイのセットアソシアティブ方式、キャッシュラインサイズを32Byteとし、256個の記憶領域を備えているものとした。
また、2次キャッシュメモリ装置20を、例えば、記憶容量を256kByte、4ウェイのセットアソシアティブ方式、キャッシュラインサイズを32Byte、2048個の記憶領域を備えているものとした。
そして、1次キャッシュ制御手段13Aは、プロセッサ10Aから送信された32bitのアドレスから19bitのL1用タグ、8bitのL1用インデックス、5bitのライン内オフセットを抽出する。L1用タグは、キャッシュラインに格納されたラインデータを識別するために用いられる。L1用インデックスは、ラインデータが格納される記憶領域を指定するために用いられる。ライン内オフセットは、ラインデータ内部の何番目のデータかを識別するために用いられる。
1次キャッシュ制御手段13Aは、L1用インデックスを用いて1次キャッシュメモリ12Aのアドレスを特定する。次に、特定したアドレスから読み出した複数のラインデータのタグとL1用タグとをそれぞれ比較する。その比較が一致すればキャッシュヒット、すべて不一致ならばキャッシュミスである。さらに、キャッシュヒットの際には、ライン内オフセットによりラインデータ内のデータを指定し、当該データをプロセッサ10Aに供給する。
一方、2次キャッシュ制御手段22は、プロセッサ10Aから送信された32bitのアドレスから、19bitのL2用タグ(L1用タグと同じ)、5bitのライン内オフセット(L1用のインデックスと同じ)、8bitのインデックス(L1用インデックスと同じ)を抽出する。さらに、8bitのインデックスの上位に、例えば、3bitの候補番号を結合して、11bitのL2用インデックスを作成する。これは、1つのL1用インデックスと8つのL2用インデックスとに対応関係が設定されることを意味する。
上記1次キャッシュメモリ装置11A〜11Hと2次キャッシュメモリ装置20の対応関係についての具体例を図2に示す。
1次キャッシュメモリ装置11Aの1次キャッシュ制御手段13Aは、プロセッサ10Aから送信されたアドレスから抽出した8bitのL1用インデックスが、例えば100番地であったとする。このとき、2次キャッシュメモリ装置20の2次キャッシュ制御手段22も、1次キャッシュ制御手段13Aと同様に、プロセッサ10Aから送信されたアドレスからL1用インデックスと同じ100番地のインデックスを抽出する。
これに対し、2次キャッシュメモリ21では、1次キャッシュメモリ12Aのインデックス容量(256)に比べ8倍のインデックス容量(2048)を有する。そのため、2次キャッシュ制御手段22は、抽出したL1用インデックスに3bitの候補番号を結合して8つのL2用インデックスを作成する。ここで、例えば、8bitのL1用インデックスのMSB(Most Significant Bit)側に3bitの候補番号を結合する場合、100番地のL1用インデックスから、100番地、356(100+256)番地、612(100+512)番地・・・1892(100+1792)番地の8つのL2用インデックスが作成される。つまり、L1用インデックスが100番地であるアドレスのデータは、100番地、356番地、612番地・・・1892番地の8つの候補の中のいずれかに格納される。各番地からは32byteのラインデータが読み出される。
即ち、マルチレベルインクルージョンを満足するためには、L1用インデックスで指定される各1次キャッシュメモリ12A〜12Hの記憶領域に格納された16個のラインデータを、8つのL2用インデックスで指定される2次キャッシュメモリ21の32個のキャッシュラインに格納することとすればよい。
次に、2次キャッシュ制御手段22において、L2用インデックスを作成するL2用インデックス算出部の構成を説明する。図3は、L2用インデックス算出部の内部構成を示すブロック図である。
L2用インデックス算出部100の入力は、8bitのL1用インデックスとL2用タグの一部のビット列であるフラグである。ここでは、例えば、フラグをL2用タグの下位3bitとした。L1用インデックスは、8つのL2用インデックスを算出するために用いられる。フラグは、L2用インデックス算出部100が8つのL2用インデックスに指定される領域を検索する順番を決定するために用いられる。
L2用インデックス算出部100は、候補番号を格納する候補番号格納部110と、候補番号を変化させる候補番号変化部120と、フラグと候補番号とを演算する演算部130と、L1用インデックスと演算部130の演算結果とを結合してL2用インデックスを作成する結合部140とを有している。
図4は、前記L2用インデックス算出部100の内部構成の具体例を示す。候補番号格納部110に対応する候補番号レジスタ111と、候補番号変化部120に対応するインクリメント演算器121と、演算部130に対応する排他的論理和演算器131と、結合部140に対応する結合器141とを有している。
図5は、L2用インデックス算出部100の動作を示すフローチャートである。例えば、プロセッサ10Aから送信されたコマンドを2次キャッシュ制御手段22が受信し、当該コマンドに含まれるアドレスのL1用インデックスとフラグとがL2用インデックス算出部100に入力されて、動作を開始する。ここでは、L1用インデックスが100(01100100)番地、フラグが0(000)であるとする。
候補番号レジスタ111は、ステップS101において初期化された候補番号を格納する。ここで、候補番号は3bitのビット列であり、0(000)に初期化される。ただし、L2用インデックス算出部100の動作において、候補番号は0〜
3までの値しかとらず、下位2bitのみが有効ビットとなる。候補番号のビット幅を3bitとしたのは、後に候補番号とフラグ(3bit)を排他的論理和演算するため、フラグとビット幅を同じにするためである。
候補番号が0(000)のときに作成される1番目のL2用インデックスを第1候補、次の候補番号1(001)のときに作成される2番目のL2用インデックスを第2候補、さらに次の候補番号2(010)のときに作成される3番目のL2用インデックスを第3候補、さらに次の候補番号3(011)のときに作成される4番目のL2用インデックスを第4候補と呼ぶ。
排他的論理和演算器131は、ステップS102において候補番号レジスタ111に格納された候補番号0(000)とフラグ0(000)を排他的論理和演算する。第1候補作成時の演算結果は0(000)である。以下、同様にステップS102の演算が行われたとすると、候補番号1(001)のときの演算結果は1(001)、候補番号2(010)のときの演算結果は2(010)、候補番号3(011)のときの演算結果は3(011)となる。
結合器141は、ステップS103において排他的論理和演算器131の3bit出力とメモリアドレスの8bitL1用インデックスとを結合する。候補番号が0(000)のとき、排他的論理和演算器131の出力0(000)とL1用インデックス100(01100100)とを結合し、第1候補として100番地(00001100100)を生成して2次キャッシュメモリ21に出力する。同様に、ステップS103の結合が行われたとすると、第2候補では356番地(00101100100)を生成して2次キャッシュメモリ21に出力する。また、第3候補では612番地(01001100100)を生成して2次キャッシュメモリ21に出力する。第4候補では868番地(01101100100)を生成して2次キャッシュメモリ21に出力する。
作成された11bitのL2用インデックスによって2次キャッシュメモリ21のアドレスが指定され、読み出しアクセスが行われる(S104)。即ち、L2用インデックスに指定される記憶領域から読み出したラインデータのタグとL2用タグとを比較して、読み出しアクセスの成否(キャッシュヒット判定/キャッシュミス判定)を判断する(ステップS105)。
キャッシュヒット判定であった場合は、L2用インデックス算出部100は動作を終了する。一方、キャッシュミス判定であった場合、インクリメント演算器121は、ステップS106において候補番号レジスタ111に格納されている候補番号の値に1を加える。候補番号を変化させる方式は、候補番号を一度初期化してから次に初期化するまでに、重複した値をとらないような任意の方法でよい。ここでは、候補番号を変化させる方式として、候補番号をインクリメントさせる方式を例としている。その後、上述したステップS101乃至S104の動作を実行して、次に作成されるL2用インデックスによる読み出しアクセスの成否を判断する。読み出しアクセスが失敗した場合には、ステップS106において候補番号を変化させて、ステップS101乃至S105を実行するという処理を繰り返す。
次に、2次キャッシュ制御手段22による書き込み時の空き検索の手法を、図6を参照して説明する。
例えば、2次キャッシュ用制御手段22はデータの書き込みに際し、図4で説明したアドレス生成の論理により1番目に作成したL2用インデックスを第1候補の書き込みアドレスとして2次キャッシュメモリ21に出力する。第1候補のL2用インデックスにより指定される2次キャッシュメモリ21の記憶領域には、4つのキャッシュラインが含まれており、2次キャッシュ制御手段22はその4つのキャッシュラインに対して空きがあるか否かを検索する。
まず、第1候補により指定される2次キャッシュメモリ21の4つのキャッシュライン中にInvalidのフラグが設定されているキャッシュラインが存在した場合、当該キャッシュラインを空きとする(ステップS201、S202、S203)。なお、Invalidなキャッシュラインが複数存在した場合には、所定のルールにより決定された1つのキャッシュラインをデータ書き込み領域として設定する。
一方、ステップS202でInvalidなキャッシュラインが存在しなかった場合、1次キャッシュメモリ12A〜12Hから削除されたデータでありながら、2次キャッシュメモリ21には格納されているラインデータを検索し、当該ラインデータが格納されているキャッシュラインをデータ書き込み領域として設定する(ステップS204、S205、S206)。上記条件に適合するキャッシュラインが複数存在した場合には、所定のルールにより決定された1つのキャッシュラインをデータ書き込み領域として設定する。
第1候補のL2用インデックスによりデータ書き込み領域が見つからなかった場合は、次の領域が検索されることになる。以後、図4で説明したアドレス生成の論理により作成した第2候補のL2用インデックスを用いてデータ書き込み領域を検索、それでもデータ書き込み領域が見つからなければ、第3候補、第4候補と順次検索を行う。
書き込み時の空き検索は第1候補から順番に行われるため、第1候補により指定される記憶領域に格納される確率は最大であり、第2候補により指定される領域に格納される確率は2番目に大きく、第3候補により指定される領域に格納される確率は3番目に大きい、第4候補により指定される領域に格納される確率は4番目に大きい。
ここで、1次キャッシュメモリ12A〜12Hおよび2次キャッシュメモリ21にデータが全く格納されていない状態から、プロセッサ10A〜10Hが、内蔵する1次キャッシュメモリ12A〜12Hおよび2次キャッシュメモリ21に対して、データA0,A1、B0,B1、〜H0,H1の書き込みを行った場合を考える。なお、データA0,A1、B0,B1、〜H0,H1のL1用インデックスは100であり、フラグは0(000)であったとする。このときの1次キャッシュメモリ12A〜12Hおよび2次キャッシュメモリ21を図7に示す。
上記の通り、L1用インデックス100、フラグ0(000)における第1候補は100番地、第2候補は356番地・・・第8候補は1892番地である。ここで、書き込みのための空き検索は、第1候補から順番に行われるため、データA0,A1、B0,B1、〜H0,H1は第1候補から第4候補に指定される記憶領域に格納される。
ここで、さらにプロセッサ10Aが、L1用インデックス100、フラグ0(000)のデータXXの書き込みコマンドを1次キャッシュメモリ装置10Aに送信し、1次キャッシュメモリ12AのデータA1が削除され、データXXが書き込まれたとする。
2次キャッシュメモリ21では、図6で説明した書き込み時の空き検索方法により、データ書き込み領域を決定する。2次キャッシュメモリ21に格納されているデータ
A0,A1、B0,B1、〜H0,H1において、invalidのフラグが設定されているものはない。しかし、データA1は既に削除されているため、図6のステップS204により、100番地のway1のキャッシュラインのデータA1がデータXXに書き変えられる。この後、さらに2次キャッシュメモリ21に対して、L1用インデックス100、フラグ0(000)のデータの書き込みが行われたとしても、同様にデータ書き込み領域を決定できる。
よって、本実施の形態では、1次キャッシュメモリ12A〜12Hから削除されたデータでありながら、2次キャッシュメモリ21に格納されているラインデータは、第1候補〜第4候補に指定される記憶領域に必ず存在することが保証される。そのため、第5候補以降にデータが書き込まれることはない。よって、2次キャッシュメモリ21からのデータ読み出し時の検索においても、第1候補〜第4候補までを検索すればよい
ここで、プロセッサの数P(Pは2以上の整数)、プロセッサに内蔵された1次キャッシュメモリをn(nは2以上の整数)ウェイのセットアソシアティブ方式、それぞれのプロセッサと接続された2次キャッシュメモリをm(m>n)ウェイのセットアソシアティブ方式とする。
ここで、P個の1次キャッシュメモリにおいて、特定のL1用インデックス(例えば、100番地)により指定される領域には、(n×P)個のデータが格納されている。上記のマルチレベルインクルージョンを満足するために、P個の1次キャッシュメモリに格納された(n×P)個のデータを、2次キャッシュメモリ21に格納する。(n×P)個のデータは、{(n×P)/m}個のL2用インデックスに指定される記憶領域に格納することができる。よって、図6で説明した書き込み時の空き検索方法と同様の手法を用いると、第1候補〜第{(n×P)/m}候補に指定されるいずれかの記憶領域に(n×P)個のデータは必ず書き込まれる。このとき、2次キャッシュメモリ21からのデータ読み出し時の検索では、第1候補〜第{(n×P)/m}候補までを検索すればよい。
次に、2次キャッシュ制御手段22による読み出し時のデータ検索方法について、図8を参照して説明する。
データ書き込み時の空き検索と同様に、2次キャッシュ制御手段22はデータの読み出しに際し、図4で説明したアドレス生成の論理によりまず、1番目のL2用インデックスを生成し、そのL2用インデックスを第1候補の読み出しアドレスとして用いて2次キャッシュメモリ21を検索する。2次キャッシュメモリ21の第1候補により指定される領域には、4つのキャッシュラインが存在する。
そこでまず、第1候補により指定される2次キャッシュメモリ21の4つのキャッシュラインに格納されたラインデータを同時に読み出し、それぞれのラインデータのタグとL2用タグとが一致するか否かを判定する(ステップS301、S302)。ラインデータのタグとL2用タグとが一致する組があればキャッシュヒット判定を行い、一致する組がなければキャッシュミス判定とする。
キャッシュヒット判定であった場合(ステップS303)、L2用タグに対応するラインデータを出力すると共に、ライン内オフセットを用いて要求されたデータを抽出する。抽出したデータをプロセッサ10Aに送信する。
一方、キャッシュミス判定であった場合(ステップS304)、図4で説明したアドレス生成の論理により作成した第2候補のL2用インデックスを用いて、ステップS301、S302を実行し、キャッシュヒット判定/キャッシュミス判定を行う。キャッシュミス判定であるならば、第3候補、第4候補と順次検索を行う。上記の通り、第5候補以降にデータが書き込まれることはないので、第4候補により指定される記憶領域を検索し、キャッシュミス判定となる場合には主記憶装置40からのデータ読み出しが必要となる。
本実施の形態では、4回のキャッシュミス判定を行った際は、主記憶装置40からのデータ読み出しが必要となる。主記憶装置40からのデータ読み出しが必要と判断するまでに要するキャッシュミス判定の回数は、上記の通り、情報処理装置の構成、即ち、プロセッサの数P、プロセッサに内蔵された1次キャッシュメモリのウェイ数n、それぞれのプロセッサと接続された2次キャッシュメモリのウェイ数mから{(n×P)/m}回と決定することができる。
以上のような構成をとることにより、マルチレベルインクルージョンを満足しつつ、アドレスになんらの情報を付加することなく、フラグとL1用インデックスとを利用し、データ格納領域が2次キャッシュメモリ21内の第1候補〜第4候補に特定できる。さらに、データの存在確率が大きい第1候補〜第4候補の順番で2次キャッシュメモリ21内の読み出しデータを検索するため、検索回数を低減でき、2次キャッシュメモリ装置20の動作の高速化と低消費電力化を実現できる。
また、アドレスの一部であるL1用インデックスとフラグとを有効に活用しており、小さい回路規模で上記効果を実現している。これは、L1用インデックスから複数のL2用インデックスを作成する上で主に追加された構成要件が、候補番号レジスタ111とインクリメント演算器121、排他的論理和演算器131、結合器141であることからも明らかである。
さらに、排他的論理和演算器131の代わりとして、フラグと候補番号とに1対1対応する出力結果を得られる任意の演算を選択可能であるが、その中でも排他的論理和演算は極めて簡単な回路構成で実現可能である。他にも、演算の種類としては桁あふれを無視した加算を行うことも可能である。
また、実施の形態で説明したのは図1に示す1次キャッシュメモリ装置および2次キャッシュメモリ装置が階層キャッシュメモリ装置を構成した場合であったが、図9に示すような階層キャッシュメモリ装置についても同様に適用でき、その応用範囲は広い。
さらに、本実施の形態に係る情報処理装置、データ検索方法は3次キャッシュメモリ装置、4次キャッシュメモリ装置、またはそれ以上の階層のキャッシュメモリ装置を構成要件とした場合においても、容易に拡張可能である。
すなわち、3次キャッシュメモリ装置は、当該3次キャッシュメモリ装置に接続される2次キャッシュメモリ装置の記憶容量の合計以上の記憶容量を有し、L2用インデックスから複数のL3用インデックスを作成する制御手段を有する。このとき、候補番号のビット数は、L3用インデックスのビット数とL2用インデックスのビット数の差分となる。候補番号と同じビット数だけ、L3用タグからビット列を抽出し、当該ビット列をフラグとして使用する。フラグとL2用インデックスとに一意に決定される順番で、L3用タグとL2用インデックスから複数作成されるL3用インデックスとを用いて、3次キャッシュメモリ装置へのアクセスを行う。4次キャッシュメモリ装置以降についても同様に実現可能である。
実施の形態にかかる複数プロセッサと階層キャッシュメモリ装置とからなる情報処理装置の全体構成を示す図である。 L1用インデックスと複数のL2用インデックスとの対応関係を示す図である。 L2用インデックス算出部100の構成を示したブロック図である。 L2用インデックス算出部100の構成の具体例を示した図である。 L2用インデックス算出部100の動作を示すフローチャートである。 2次キャッシュメモリ装置20に対するデータ書き込みのための空き検索の方法を示したフローチャートである。 1次キャッシュメモリ12A〜12Hと2次キャッシュメモリ21に格納されたデータを示す図である。 2次キャッシュメモリ装置20からのデータ読み出しのためのデータ検索の方法を示したフローチャートである。 複数プロセッサと階層キャッシュメモリ装置とからなる情報処理装置の全体構成の一例を示す図である。
符号の説明
10A〜10H プロセッサ
11A〜11H 1次キャッシュメモリ装置
12A〜12H 1次キャッシュメモリ
13A〜13H 1次キャッシュ制御手段
14 バス
20 2次キャッシュメモリ装置
21 2次キャッシュメモリ
22 2次キャッシュ制御手段
30 メモリコントローラ
40 主記憶装置
100 L2用インデックス算出部
110 候補番号格納部
101 候補番号レジスタ
120 候補番号変化部
121 インクリメント演算器
130 演算部
131 排他的論理和演算器
140 結合部
141 結合器

Claims (4)

  1. それぞれに主メモリに格納されるデータの一部の写しを記憶することが可能な1次キャッシュメモリを内蔵する複数のプロセッサと、
    前記複数のプロセッサと前記主メモリとの間に設けられ、前記1次キャッシュより容量が大きく、少なくとも前記1次キャッシュメモリに格納されるデータと同じデータが記憶される2次キャッシュメモリと、
    前記1次キャッシュメモリのキャッシュ検索を行うメモリアドレスのインデックスを用いて前記2次キャッシュメモリのキャッシュ検索を行う際に、前記メモリアドレスの一部のビット列であるフラグとキャッシュミス判定時に更新される候補番号との演算により一意に決定される前記2次キャッシュメモリの領域からキャッシュ検索を開始する2次キャッシュ制御手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記2次キャッシュ制御手段が、
    前記2次キャッシュメモリのキャッシュ検索を行う際に、前記メモリアドレスの一部のビット列であるフラグとキャッシュミス判定時に更新される候補番号との演算により一意に決定される順番で、前記インデックスと1対n(nは2以上の整数)の対応関係にある複数の前記2次キャッシュメモリの領域に対してキャッシュ検索を行うことを特徴とする請求項1記載の情報処理装置。
  3. 前記2次キャッシュ制御手段が、
    前記2次キャッシュメモリのキャッシュ検索を行う際に、前記メモリアドレスの一部のビット列であるフラグとキャッシュミス判定時に更新される候補番号との演算により一意に決定される順番で、前記インデックスと1対n(nは2以上の整数)の対応関係にある複数の前記2次キャッシュメモリの領域に対してキャッシュ検索を行い、前記キャッシュミスの判定が{(n×P)/m}回行われたとき前記2次キャッシュメモリのキャッシュ検索を終了することを特徴とする請求項1記載の情報処理装置。
    ただし、P(Pは2以上の整数)はプロセッサの数であり、1次キャッシュメモリがn(nは2以上の整数)ウェイのセットアソシアティブ方式、2次キャッシュメモリがm(m>n)ウェイのセットアソシアティブ方式であるとする。
  4. それぞれに主メモリに格納されるデータの一部の写しを記憶することが可能なn(nは2以上の整数)ウェイ/セットアソシアティブ方式の1次キャッシュメモリを内蔵するP(Pは2以上の整数)個のプロセッサと、
    前記P個のプロセッサと前記主メモリとの間に設けられ、前記1次キャッシュより容量が大きく、少なくとも前記1次キャッシュメモリに格納されるデータと同じデータが記憶されるm(m>n)ウェイ/セットアソシアティブ方式の2次キャッシュメモリとを有する階層キャッシュメモリ構造の情報処理装置のデータ検索方法であって、
    前記1次キャッシュメモリのキャッシュ検索を行うメモリアドレスのインデックスを用いて前記2次キャッシュメモリのキャッシュ検索を行う際に、前記メモリアドレスの一部のビット列であるフラグと、別個に設けられた候補番号との演算により一意に決定される前記2次キャッシュメモリの領域からキャッシュ検索を開始し、
    前記キャッシュミスと判定される度に前記候補番号を更新し、その更新された候補番号と前記フラグとの演算により一意に決定される前記2次キャッシュメモリの次の領域からキャッシュ検索を行い、
    前記キャッシュミスの判定が{(n×P)/m}回行われた時、前記2次キャッシュメモリのキャッシュ検索を終了する
    ことを特徴とするデータ検索方法。
JP2006311842A 2006-11-17 2006-11-17 情報処理装置およびデータ検索方法 Expired - Fee Related JP4920378B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006311842A JP4920378B2 (ja) 2006-11-17 2006-11-17 情報処理装置およびデータ検索方法
US11/878,019 US7793047B2 (en) 2006-11-17 2007-07-20 Apparatus and method for generating a secondary cache index

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006311842A JP4920378B2 (ja) 2006-11-17 2006-11-17 情報処理装置およびデータ検索方法

Publications (2)

Publication Number Publication Date
JP2008129712A JP2008129712A (ja) 2008-06-05
JP4920378B2 true JP4920378B2 (ja) 2012-04-18

Family

ID=39418249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006311842A Expired - Fee Related JP4920378B2 (ja) 2006-11-17 2006-11-17 情報処理装置およびデータ検索方法

Country Status (2)

Country Link
US (1) US7793047B2 (ja)
JP (1) JP4920378B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053820A (ja) * 2007-08-24 2009-03-12 Nec Electronics Corp 階層型キャッシュメモリシステム
US8280901B2 (en) 2008-01-03 2012-10-02 Masterfile Corporation Method and system for displaying search results
JP5609092B2 (ja) * 2009-12-09 2014-10-22 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8341353B2 (en) * 2010-01-14 2012-12-25 Qualcomm Incorporated System and method to access a portion of a level two memory and a level one memory
CN105814548B (zh) * 2014-07-14 2019-02-12 上海兆芯集成电路有限公司 具有使用不同编索引方案的主高速缓存器和溢出高速缓存器的高速缓存器系统
KR20160065773A (ko) * 2014-10-08 2016-06-09 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 1차 캐시와 오버플로 선입 선출 캐시를 구비하는 캐시 시스템
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10055351B1 (en) * 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684297B2 (en) * 2001-04-11 2004-01-27 Sun Microsystems, Inc. Reverse directory for facilitating accesses involving a lower-level cache
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US7290116B1 (en) * 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7669009B2 (en) * 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US7577793B2 (en) * 2006-01-19 2009-08-18 International Business Machines Corporation Patrol snooping for higher level cache eviction candidate identification

Also Published As

Publication number Publication date
JP2008129712A (ja) 2008-06-05
US7793047B2 (en) 2010-09-07
US20080120467A1 (en) 2008-05-22

Similar Documents

Publication Publication Date Title
JP4920378B2 (ja) 情報処理装置およびデータ検索方法
JP5622155B2 (ja) キャッシュメモリおよびその制御方法
US7089398B2 (en) Address translation using a page size tag
KR100339904B1 (ko) 캐시 프로세스용 시스템 및 방법
JPS61156346A (ja) 記憶階層の先取り装置
US20160019065A1 (en) Prefetching instructions in a data processing apparatus
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
US20100100684A1 (en) Set associative cache apparatus, set associative cache method and processor system
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
US7219197B2 (en) Cache memory, processor and cache control method
KR20240070630A (ko) 의사 lru 보충 에이지 정보로 재참조 간격 예측(rrip)
JPWO2005050454A1 (ja) キャッシュメモリおよびその制御方法
US6598124B1 (en) System and method for identifying streaming-data
US9348598B2 (en) Data processing apparatus and method for pre-decoding instructions to be executed by processing circuitry
JP2010102623A (ja) キャッシュメモリ及びその制御方法
US20140013054A1 (en) Storing data structures in cache
US7865666B2 (en) Cache memory systems and methods thereof
US9053030B2 (en) Cache memory and control method thereof with cache hit rate
WO2002027498A2 (en) System and method for identifying and managing streaming-data
JP3078303B2 (ja) キャッシュメモリ制御回路
KR100486240B1 (ko) 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
JP3469042B2 (ja) キャッシュメモリ
KR20040007343A (ko) 캐시 메모리 및 그 제어 방법
WO2010098152A1 (ja) キャッシュメモリシステムおよびキャッシュメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090831

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111125

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20111205

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120201

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

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees