JP2010033480A - キャッシュメモリおよびキャッシュメモリ制御装置 - Google Patents

キャッシュメモリおよびキャッシュメモリ制御装置 Download PDF

Info

Publication number
JP2010033480A
JP2010033480A JP2008197243A JP2008197243A JP2010033480A JP 2010033480 A JP2010033480 A JP 2010033480A JP 2008197243 A JP2008197243 A JP 2008197243A JP 2008197243 A JP2008197243 A JP 2008197243A JP 2010033480 A JP2010033480 A JP 2010033480A
Authority
JP
Japan
Prior art keywords
cache
tag
access
address
entry
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
Application number
JP2008197243A
Other languages
English (en)
Inventor
Taichi Hirao
太一 平尾
Naotaka Osawa
尚学 大澤
Koichi Hasegawa
浩一 長谷川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008197243A priority Critical patent/JP2010033480A/ja
Priority to US12/458,053 priority patent/US20100030966A1/en
Priority to CN200910160973.0A priority patent/CN101639812B/zh
Publication of JP2010033480A publication Critical patent/JP2010033480A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

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

【課題】キャッシュメモリにおいて簡易な構造を用いて、先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行させる。
【解決手段】キャッシュメモリのタグ記憶部220の各エントリにおいて、タグアドレス221、バリッド222、ダーティ223に加えて、保留中224を記憶する。あるキャッシュラインにアクセスしようとする際に、保留中224が保留状態にある旨を示している場合には、そのアクセスは保留状態が解除されるまで待機される。これにより、異なるキャッシュラインであれば、先行アクセスのミス処理中に後続アクセスがヒットした場合(ヒット・アンダー・ミス)のみならず、先行アクセスのミス処理中にさらに後続アクセスのミス処理が生じた場合(ミス・アンダー・ミス)も処理を継続する。
【選択図】図5

Description

本発明は、キャッシュメモリに関し、特に先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行可能なキャッシュメモリ、および、その制御装置に関する。
これまで、プロセッサからメインメモリへのアクセス頻度をいかに減らすかという方策の一つとして、キャッシュメモリが用いられてきた。これは、プロセッサ処理速度の向上度合いに比べて、対メインメモリアクセス完了時間短縮化の向上度合いが小さいため、検討されてきたものである。メインメモリは、容量当たりのコストが比較的安価ではあるが、アクセス完了時間が比較的長い。これに対し、キャッシュメモリは、容量当たりのコストが比較的高価ではあるが、アクセス完了時間が比較的短い。プロセッサとメインメモリの間にキャッシュメモリを介する階層化された記憶機構を設けることにより、コストの低下とアクセス完了時間の短縮化を両立させている。
また、昨今のプロセッサを含むシステムにおいては、複数のプロセッサを備えたものが主流となりつつある。上述の記憶機構の階層化が進み、二次キャッシュや三次キャッシュが用いられ、さらにその二次あるいは三次キャッシュは、複数のプロセッサが共有する記憶装置となる場合がある。
プロセッサがキャッシュメモリへアクセスする際、所望のデータがキャッシュメモリ上にあることが望ましいが、実際にはキャッシュメモリ上に所望のデータが存在せずに、キャッシュミスとなることがある。その際、そのキャッシュメモリがメインメモリよりも一段のみプロセッサ寄りであった場合、キャッシュメモリからメインメモリへのアクセスが発生する。
このキャッシュメモリが複数のプロセッサにより共有されていた場合、メインメモリへのアクセス中に、その完了までいかにシステム全体として動作を中断させずに効率良く処理を実行できるかが問題となる。その対策として、以下のような手法が採られる可能性がある。
(1)そのキャッシュメモリへの後続アクセスがキャッシュヒットであった場合は処理を続行する(ヒット・アンダー・ミス)。
(2)上述の(1)に加えて、そのキャッシュメモリへの後続アクセスがキャッシュミスであった場合も処理を続行する(ミス・アンダー・ミス)。
その際、メインメモリへアクセスしているアドレスと、キャッシュメモリへの後続アクセスのアドレスとが同一であった場合に、無条件で後続アクセスの処理を続行するのではなく、データに矛盾が生じないよう考慮する必要がある。それを実現するためには、待ち行列を設けて記憶の一貫性(コヒーレンシー)を維持するよう制御することが考えられる。例えば、多重プロセッサ計算機システムにおいて、L1キャッシュ、L2キャッシュ、L3メモリという階層記憶を想定し、L1記憶待ち行列およびL2記憶待ち行列を設けて記憶の一貫性を維持するシステムが提案されている(例えば、特許文献1参照。)。
特開平01−246655号公報(第1図)
しかしながら、待ち行列を設けて記憶の一貫性を維持しようとすると、メインメモリへアクセスしているアドレスとの比較回路などが必要となり、回路規模が増加して制御が複雑になるという問題がある。また、上述のミス・アンダー・ミスを実現する際には、後続のキャッシュミスを同時に許容する数は、待ち行列の数に制限されてしまうという問題がある。
本発明はこのような状況に鑑みてなされたものであり、キャッシュメモリにおいて簡易な構造を用いて、先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行させることを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、アクセスアドレスの第1のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、上記複数のエントリに対応するデータを記憶するデータ記憶部と、上記第1のアドレス部分とは異なる上記アクセスアドレスの第2のアドレス部分と上記索引されたエントリに含まれる上記タグアドレスとを比較して一致したエントリを検出し、上記一致したエントリに含まれる上記保留中表示部が保留中である旨を表示している場合には上記アクセスアドレスに係るアクセスを待機させるタグ制御部と、上記一致したエントリに含まれる上記保留中表示部が保留中でない旨を表示している場合には上記一致したエントリに対応するデータを上記データ記憶部から選択するデータ制御部とを具備するキャッシュメモリである。これにより、アクセスしようとするエントリの保留中表示部が保留中でない旨を表示している場合にはそのアクセスを待機させ、それ以外であればアクセスを許容させるという作用をもたらす。
また、この第1の側面において、上記タグ制御部は、上記一致したエントリが検出されない場合には上記索引されたエントリの中でそのエントリに含まれる上記保留中表示部が保留中でない旨を表示しているエントリを優先してリプレースを行ってもよい。これにより、先行アクセスによるフィル処理の完了を待たないようにリプレース対象のエントリを選択させるという作用をもたらす。
また、この場合、上記タグ制御部は、リプレースの対象となったエントリに含まれる上記保留中表示部が保留中である旨を表示している場合には上記リプレースを待機させてもよい。すなわち、同一ラインの全てのエントリが保留中である場合には何れかのエントリを選択することになるが、その場合にはリプレースは待機されることになる。
また、本発明の第2の側面は、アクセスアドレスの第1のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、上記第1のアドレス部分とは異なる上記アクセスアドレスの第2のアドレス部分と上記索引されたエントリに含まれる上記タグアドレスとを比較して一致したエントリを検出し、上記一致したエントリに含まれる上記保留中表示部が保留中である旨を表示している場合には上記アクセスアドレスに係るアクセスを待機させるタグ制御部とを具備するキャッシュメモリ制御装置である。これにより、アクセスしようとするエントリの保留中表示部が保留中でない旨を表示している場合にはそのアクセスを待機させるという作用をもたらす。
本発明によれば、キャッシュメモリにおいて簡易な構造を用いて、先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行させることを可能にするという優れた効果を奏し得る。
次に本発明の実施の形態について図面を参照して詳細に説明する。
図1は、本発明の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、p個(pは1以上の整数)のプロセッサ100−1乃至100−p(以下、これらをまとめてプロセッサ100と呼称する場合がある。)と、二次キャッシュ200と、メインメモリ300とを備える。
プロセッサ100は、それぞれ内部に一次キャッシュ110−1乃至110−p(以下、これらをまとめて一次キャッシュ110と呼称する場合がある。)を備える。これにより、プロセッサ100は、一次キャッシュ110にヒットしている限りにおいては一次キャッシュ110を用いてデータアクセスを行うが、一次キャッシュ110においてミスヒットとなった場合には二次キャッシュ200にアクセスを行う。また、プロセッサ100は、一次キャッシュ110でミスヒットとなった際、二次キャッシュ200にヒットしている限りにおいては二次キャッシュ200を用いてデータアクセスを行う。一方、二次キャッシュ200においてミスヒットとなった場合にはメインメモリ300にアクセスを行う。
このように、本発明の実施の形態においては、プロセッサ100のそれぞれにおける一次キャッシュ110、共用の二次キャッシュ200、メインメモリ300という3階層の記憶構造となっている。
図2は、本発明の実施の形態における二次キャッシュ200の機能構成例を示す図である。この二次キャッシュ200は、調停部210と、タグ記憶部220と、タグ制御部230と、データ記憶部240と、データ制御部250と、応答部260とを備えている。
調停部210は、プロセッサ100−1乃至100−pおよびメインメモリ300からのアクセスを調停して、何れかにアクセス許可を付与するものである。この調停部210における調停としては、例えば、ラウンドロビン方式によりプロセッサ100−1乃至100−pおよびメインメモリ300に順次割り当てていくことが考えられる。許可されたアクセスは、タグ制御部230に供給される。
タグ記憶部220は、複数のエントリからなるメモリであり、各エントリにタグアドレス等を保持するものである。タグアドレスは、後述するように、アクセスされたアドレスの一部を示すものである。タグ記憶部220の各エントリは、アクセスされたアドレスの他の一部により索引される。なお、タグ記憶部220は、特許請求の範囲に記載のタグ記憶部の一例である。
タグ制御部230は、アクセスされたアドレスに基づいて、タグ記憶部220においてアクセスすべきエントリを選択して制御するものである。このタグ制御部230により選択されたエントリは、データ制御部250に通知される。
データ記憶部240は、タグ記憶部220の各エントリに対応するデータを記憶するものである。このデータ記憶部240に記憶されるデータはキャッシュライン毎に管理され、メインメモリ300やプロセッサ100との間の転送もキャッシュライン毎に行われる。なお、データ記憶部240は、特許請求の範囲に記載のデータ記憶部の一例である。
データ制御部250は、タグ制御部230において選択されたエントリに応じて、データ記憶部240に記憶されたデータ(キャッシュライン)にアクセスするものである。リードアクセスやライトバック動作の場合には、データ記憶部240から読み出されたデータは応答部260に供給される。ライトアクセスの場合には、データ記憶部240から読み出されたデータの中の対応する位置にライトデータが埋め込まれて、再びデータ記憶部240に記憶される。
応答部260は、データ制御部250から供給されたデータをプロセッサ100−1乃至100−pまたはメインメモリ300に出力するものである。プロセッサ100からのリードアクセスに対する応答であれば、データはアクセスしたプロセッサ100に出力される。メインメモリ300へのライトバック動作であれば、データはメインメモリ300に出力される。
図3は、本発明の実施の形態における二次キャッシュ200の回路構成例を示す図である。ここでは、二次キャッシュ200として、ライン数128、ラインサイズ64B(バイト)の2ウェイ・セット・アソシアティブ・キャッシュを想定する。すなわち、同一インデックスアドレスに対して最大2つのキャッシュラインを記憶可能であり、各キャッシュラインに対応するデータのサイズは64Bとなる。
メインメモリ300の領域を256MBとすると、必要なアドレスは28ビットとなる。ブロックサイズが64Bであるため、アクセスアドレスの第0乃至5ビットの計6ビットがライン内アドレスに割り当てられる。また、ライン数が128であることから、タグ記憶部220のエントリを索引するためのインデックスアドレスは、アクセスアドレスの第6乃至12ビットの計7ビットに割り当てられる。したがって、タグアドレスは、アクセスアドレスの第13乃至27ビットの計15ビットに割り当てられる。アクセスアドレスのうちタグアドレスは信号線201を介して、インデックスアドレスは信号線202を介して、ライン内アドレスは信号線203を介して、それぞれ二次キャッシュ200に供給される。
タグ記憶部220は、それぞれ128個のエントリから成る2つのウェイ(way)#0および#1を備える。タグ記憶部220の各ウェイは、信号線202を介して供給されるインデックスアドレスによって索引される。したがって、この例では、2つのエントリが索引されることになる。なお、タグ記憶部220は、特許請求の範囲に記載のタグ制御部の一例である。
タグ制御部230は、比較器231および232と、論理和演算器233とを備え、タグ記憶部220において索引されたエントリのうちタグアドレスが一致するものを検出する。比較器231は、タグ記憶部220のウェイ#0において索引されたエントリに含まれるタグアドレスと、信号線201を介して供給されたタグアドレスとを比較して一致を検出するものである。同様に、比較器232は、タグ記憶部220のウェイ#1において索引されたエントリに含まれるタグアドレスと、信号線201を介して供給されたタグアドレスとを比較して一致を検出するものである。これら比較器231および232における比較結果は、論理和演算器233およびデータ制御部250に供給される。論理和演算器233は、比較器231または232の何れかで一致が検出された場合に、ヒットした旨を、信号線298を介して出力するものである。ただし、後述するように、対応するエントリのバリッドビットが無効である旨を示している場合には、ミスヒットとして判定される。
データ記憶部240は、それぞれ128個のキャッシュラインから成る2つのウェイ#0および#1を備え、タグ記憶部220の各エントリに対応するデータを記憶する。このデータ記憶部240もタグ記憶部220と同様に信号線202を介して供給されるインデックスアドレスによって索引される。これにより、2つの64Bのラインデータがデータ制御部250に供給される。
データ制御部250は、選択器251および252を備える。選択器251は、データ記憶部240から供給された2つの64Bデータの何れか一方を選択するものである。すなわち、比較器231において一致が検出された場合にはデータ記憶部240のウェイ#0のラインデータが選択され、比較器232において一致が検出された場合にはデータ記憶部240のウェイ#1のラインデータが選択される。ただし、後述するように、一致が検出されたエントリのバリッドビットが無効である旨を示している場合にはそのキャッシュラインのデータは選択されない。比較器231および232の何れにおいても一致が検出されない場合には、何れのキャッシュラインのデータも選択されない。なお、データ制御部250は、特許請求の範囲に記載のデータ制御部の一例である。
選択器252は、選択されたラインデータのうちライン内アドレスとして指定された位置のデータを選択するものである。ライン内アドレスは、信号線203を介して供給される。ただし、この選択器252の機能はプロセッサ100側に備えるようにしてもよい。何れの場合も、ラインデータ全体またはその一部は信号線299を介して応答部260に出力される。
図4は、本発明の実施の形態におけるデータ記憶部240とメインメモリ300との対応関係の例を示す図である。ここでは、図3の例と同様に、二次キャッシュ200として、ライン数128、ブロックサイズ64Bの2ウェイ・セット・アソシアティブ・キャッシュを想定する。
データ記憶部240の各キャッシュラインは、上述のようにインデックスアドレスにより索引される。第0ラインのインデックスアドレスは「0」、第1ラインのインデックスアドレスは「1」であり、同様にして、第127ラインのインデックスアドレスは「127」である。
データ記憶部240の第0ラインには、アドレスの下位13ビットが「0b0000000000000」(「0b」は、続く数字が2進数であることを意味する。以下同様。)であるラインが記憶される。データ記憶部240の第1ラインには、アドレスの下位13ビットが「0b0000001000000」であるラインが記憶される。データ記憶部240の第2ラインには、アドレスの下位13ビットが「0b0000010000000」であるラインが記憶される。データ記憶部240の第3ラインには、アドレスの下位13ビットが「0b0000011000000」であるラインが記憶される。データ記憶部240の第4ラインには、アドレスの下位13ビットが「0b0000100000000」であるラインが記憶される。同様に、データ記憶部240の第127ラインには、アドレスの下位13ビットが「0b1111111000000」であるラインが記憶される。
すなわち、この例では、あるインデックスアドレスに対して二次キャッシュ200に記憶可能なキャッシュラインは2つに限定されている。したがって、既に2つのキャッシュラインが占有されているセットに新たなデータを記憶するためには、何れかのキャッシュラインを追い出してリプレースする必要がある。リプレースすべきキャッシュライン候補を選択する手法として、例えば、最も近い時期に使用されていないキャッシュラインを追い出す手法(LRU(Least Recently Used)法)が知られている。本発明の実施の形態においてもこのLRU法を基本とするが、後述するように詳細において変更を加えている。
図5は、本発明の実施の形態におけるタグ記憶部220の構成例を示す図である。タグ記憶部220の各エントリは、タグアドレス221、バリッド222、ダーティ223、および、保留中224の各フィールドを備える。
タグアドレス221は、そのエントリに対応するキャッシュラインのタグアドレス(アドレスの上位15ビット)を記憶するものである。図中では、このタグアドレス221を「TAG」と略している。
バリッド222は、そのエントリの有効性を示すバリッドビット(Valid)を記憶するものである。このバリッド222が「1」を示していればそのエントリに対応するキャッシュラインのデータは有効であり、「0」を示していれば比較器231または232において一致が検出されたとしてもヒットとは判定されない。図中では、このバリッド222を「V」と略している。
ダーティ223は、そのエントリに対応するキャッシュラインのデータとメインメモリ300のデータとが一致していないことを示すダーティービット(Dirty)を記憶するものである。このダーティ223が「1」を示している場合には、そのエントリに対応するキャッシュラインのデータとメインメモリ300のデータは一致しておらず、二次キャッシュ200のデータが最新のデータであることを意味する。一方、ダーティ223が「0」を示している場合には、そのエントリに対応するキャッシュラインのデータとメインメモリ300のデータは一致していることを意味する。図中では、このダーティ223を「D」と略している。
保留中224は、そのエントリに対応するキャッシュラインがメインメモリ300からのデータ待ちの状態にあることを示す保留中ビット(Pending)を記憶するものである。この保留中224が「1」を示している場合には、そのエントリに対応するキャッシュラインはメインメモリ300からのデータ待ちの状態にあることを意味する。一方、保留中224が「0」を示している場合には、そのエントリに対応するキャッシュラインに対してメインメモリ300からデータが転送される予定はないことを意味する。図中では、この保留中224を「P」と略している。
次に、本発明の実施の形態における動作について図面を参照して説明する。なお、本発明の実施の形態においては、V=0であって(D=0かつP=0)以外となる場合はないものと想定する。また、V=1であって(D=1かつP=1)となる場合はないものと想定する。これらは、以下の図において「(未使用)」と表記する。
図6は、本発明の実施の形態における二次キャッシュ200のリード命令に対する動作例を示す図である。このリード命令は、メインメモリ300からのデータの読出しを行うための命令である。ただし、二次キャッシュ200にヒットしている場合には、メインメモリ300にアクセスすることなく、二次キャッシュ200からデータの読出しを行うことができる。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、対応するキャッシュラインからリードが行われる。このとき、D=1であったとしてもメインメモリ300へのライトバックは行われない。また、V、D、Pの状態に変更はない。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはリードすることができない。そのため、P=0になるまでリードは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、LRU法などによりリプレースすべきウェイが決定され、メインメモリ300から該当するキャッシュラインのフィル動作が行われる。このとき、D=1であれば、リプレース前にメインメモリ300へのライトバックも行われる。なお、一致が検出されてもV=0の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ300からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ300に対してフィル動作が発行された際に、P=1に遷移する。したがって、これらの場合においては、直後の状態は、V=1、D=0、P=1となる。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、P=0になるまでリプレースは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
本発明の実施の形態においては、従前と同様にLRU法などによりリプレースすべきウェイが決定される。ただし、P=1となっているキャッシュラインを除外して、P=0となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてP=1となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、P=0になるまでリプレースは保留される。
図7は、本発明の実施の形態における二次キャッシュ200のライト命令に対する動作例を示す図である。このライト命令は、メインメモリ300に対してデータの書込みを行うための命令である。ただし、二次キャッシュ200にヒットしている場合には、メインメモリ300にアクセスすることなく、二次キャッシュ200に対してデータの書込みを行うことができる。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、対応するキャッシュラインにライトが行われる。このとき、D=1であったとしてもメインメモリ300へのライトバックは行われない。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはライトすることができない。そのため、P=0になるまでライトは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、LRU法などによりリプレースすべきウェイが決定され、メインメモリ300から該当するキャッシュラインのフィル動作が行われた後にライトが行われる。このとき、D=1であれば、リプレース前にメインメモリ300へのライトバックも行われる。なお、一致が検出されてもV=0の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ300からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ300に対してフィル動作が発行された際に、P=1に遷移する。したがって、これらの場合においては、直後の状態は、V=1、D=0、P=1となる。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、P=0になるまでリプレースは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
本発明の実施の形態においては、従前と同様にLRU法などによりリプレースすべきウェイが決定される。ただし、P=1となっているキャッシュラインを除外して、P=0となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてP=1となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、P=0になるまでリプレースは保留される。
図8は、本発明の実施の形態における二次キャッシュ200のフィル命令に対する動作例を示す図である。このフィル命令は、メインメモリ300から二次キャッシュ200にキャッシュラインをアロケートするための命令である。ただし、二次キャッシュ200にヒットしている場合には、そのキャッシュラインをそのまま使用すればよいため、何も動作を行わない。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、何も動作を行わない。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでフィル命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、LRU法などによりリプレースすべきウェイが決定され、メインメモリ300から該当するキャッシュラインのフィル動作が行われる。このとき、D=1であれば、リプレース前にメインメモリ300へのライトバックも行われる。なお、一致が検出されてもV=0の場合には、新たにウェイを決定する必要はなく、そのキャッシュラインにおいてメインメモリ300からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ300に対してフィル動作が発行された際に、P=1に遷移する。したがって、これらの場合においては、直後の状態は、V=1、D=0、P=1となる。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、P=0になるまでリプレースは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
本発明の実施の形態においては、従前と同様にLRU法などによりリプレースすべきウェイが決定される。ただし、その際、P=1となっているキャッシュラインを除外して、P=0となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてP=1となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、P=0になるまでリプレースは保留される。
図9は、本発明の実施の形態における二次キャッシュ200のリフィル命令に対する動作例を示す図である。このリフィル命令は、ヒットまたはミスヒットにかかわらず、メインメモリ300から二次キャッシュ200にキャッシュラインを新たにアロケートするための命令である。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、対応するキャッシュラインに新たにフィルが行われる。このとき、D=1であればメインメモリ300へのライトバックが行われる。したがって、これらの場合においては、直後の状態は、V=1、D=0、P=1となる。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでリフィル命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、LRU法などによりリプレースすべきウェイが決定され、メインメモリ300から該当するキャッシュラインのフィル動作が行われる。このとき、D=1であれば、リプレース前にメインメモリ300へのライトバックも行われる。なお、一致が検出されてもV=0の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ300からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ300に対してフィル動作が発行された際に、P=1に遷移する。したがって、これらの場合においては、直後の状態は、V=1、D=0、P=1となる。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、P=0になるまでリプレースは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
本発明の実施の形態においては、従前と同様にLRU法などによりリプレースすべきウェイが決定される。ただし、その際、P=1となっているキャッシュラインを除外して、P=0となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてP=1となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、P=0になるまでリプレースは保留される。
図10は、本発明の実施の形態における二次キャッシュ200のゼロアロケート命令に対する動作例を示す図である。このゼロアロケート命令は、二次キャッシュ200のキャッシュラインにゼロ値を書き込むための命令である。なお、この命令の実行直後には、V=1、D=1となる。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、対応するキャッシュラインにゼロ値が書き込まれる。このとき、D=1であったとしてもメインメモリ300へのライトバックは行われない。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはゼロ値を書き込むことができない。そのため、P=0になるまでゼロ値の書込みは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、LRU法などによりリプレースすべきウェイが決定され、メインメモリ300から該当するキャッシュラインのフィル動作が行われた後にライトが行われる。このとき、D=1であれば、リプレース前にメインメモリ300へのライトバックも行われる。なお、一致が検出されてもV=0の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ300からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ300に対してフィル動作が発行された際に、P=1に遷移する。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、P=0になるまでリプレースは保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
本発明の実施の形態においては、従前と同様にLRU法などによりリプレースすべきウェイが決定される。ただし、その際、P=1となっているキャッシュラインを除外して、P=0となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてP=1となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、P=0になるまでリプレースは保留される。
図11は、本発明の実施の形態における二次キャッシュ200のヒット・ライトバック・無効化命令に対する動作例を示す図である。このヒット・ライトバック・無効化命令は、二次キャッシュ200にヒットした場合にD=1であればライトバックし、該当ラインを無効化する命令である。ただし、二次キャッシュ200にミスヒットした場合には、何も動作を行わない。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、対応するキャッシュラインを無効化する。このとき、D=1であった場合には、無効化に先立ってメインメモリ300へのライトバックが行われる。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、P=0になるまで無効化は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となり、何も動作を行わない。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでヒット・ライトバック・無効化命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
図12は、本発明の実施の形態における二次キャッシュ200のヒット・ライトバック命令に対する動作例を示す図である。このヒット・ライトバック命令は、二次キャッシュ200にヒットした場合にD=1であればライトバックを行う命令である。ただし、二次キャッシュ200にミスヒットした場合には、何も動作を行わない。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となる。このとき、D=1であった場合には、メインメモリ300へのライトバックが行われる。D=0であった場合には、何も動作を行わない。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでヒット・ライトバック命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となり、何も動作を行わない。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでヒット・ライトバック命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
図13は、本発明の実施の形態における二次キャッシュ200のヒット・無効化命令に対する動作例を示す図である。このヒット・無効化命令は、二次キャッシュ200にヒットした場合に該当ラインを無効化する命令である。ただし、二次キャッシュ200にミスヒットした場合には、何も動作を行わない。
比較器231または232によって何れかのエントリにおいてタグアドレスの一致が検出された場合、V=1であれば基本的にはヒット判定となり、対応するキャッシュラインを無効化する。このとき、D=1であったとしてもメインメモリ300へのライトバックは行われない。
ただし、タグアドレスが一致してかつV=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、P=0になるまで無効化は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
比較器231および232の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもV=0の場合には、基本的にはミスヒット判定となり、何も動作を行わない。
ただし、タグアドレスの一致が検出されず、かつ、P=1の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでヒット・無効化命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
図14は、本発明の実施の形態における二次キャッシュ200のインデックス・ライトバック・無効化命令に対する動作例を示す図である。このインデックス・ライトバック・無効化命令は、指定されたキャッシュラインがD=1であればライトバックし、該当キャッシュラインを無効化する命令である。ただし、指定されたキャッシュラインがD=0であれば、無効化のみが行われる。したがって、このインデックス・ライトバック・無効化命令においては、タグの比較結果とは無関係に動作が行われる。
指定されたキャッシュラインにおいてV=1であれば、そのキャッシュラインを無効化する。このとき、D=1であった場合には、無効化に先立ってメインメモリ300へのライトバックが行われる。
ただし、V=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、P=0になるまで無効化は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
また、指定されたキャッシュラインにおいてV=0の場合には、そのキャッシュラインは無効化される。
図15は、本発明の実施の形態における二次キャッシュ200のインデックス・ライトバック命令に対する動作例を示す図である。このインデックス・ライトバック命令は、指定されたキャッシュラインがD=1であればライトバックする命令である。ただし、指定されたキャッシュラインがD=0であれば、何も動作を行わない。したがって、このインデックス・ライトバック命令においては、タグの比較結果とは無関係に動作が行われる。
指定されたキャッシュラインにおいてV=1、かつ、D=1であった場合には、メインメモリ300へのライトバックが行われる。一方、D=0であった場合には、何も動作を行わない。
ただし、V=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、P=0になるまでインデックス・ライトバック命令の完了は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
また、指定されたキャッシュラインにおいて、V=0の場合には、何も動作を行わない。
図16は、本発明の実施の形態における二次キャッシュ200のインデックス・無効化命令に対する動作例を示す図である。このインデックス・無効化命令は、指定されたキャッシュラインを無効化する命令である。したがって、このインデックス・無効化命令においては、タグの比較結果とは無関係に動作が行われる。
指定されたキャッシュラインにおいて、V=1であれば、そのキャッシュラインを無効化する。このとき、D=1であったとしてもメインメモリ300へのライトバックは行われない。
ただし、V=1であっても、P=1の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ300からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、P=0になるまで無効化は保留される。その間、他の命令による二次キャッシュ200へのアクセスは受け付けられる。
また、指定されたキャッシュラインにおいて、V=0の場合には、そのキャッシュラインは無効化される。
図17は、本発明の実施の形態におけるリード命令の動作の一例を示すタイミング図である。この例は、先行アクセスにより後続アクセスが保留状態となる場合を想定している。
プロセッサ#1(100−1)からリード命令が発行され、二次キャッシュ200のタグ制御部230においてミスヒットの判定がされると、二次キャッシュ200の応答部260からメインメモリ300に対してキャッシュラインのフィルの指示が発行される。
その後、プロセッサ#2(100−2)からリード命令が発行され、二次キャッシュ200のタグ制御部230において保留状態であることが検出されたものとする。すなわち、プロセッサ#1からのリード命令と同じキャッシュラインにリードアクセスしようとした場合を想定している。この場合、タグが一致し、V=1かつD=0であるが、P=1であるため、プロセッサ#2からのリード命令はすぐに実行することができず、待機することになる。
プロセッサ#1からのフィル指示に対して該当データが転送されると、調停部210において調停され、タグ記憶部220およびデータ記憶部240に反映される。そして、応答部260からプロセッサ#1に対してプロセッサ#1のリード命令に係るデータが転送される。これにより、該当するエントリにおいてP=0にクリアされる。
そして、P=0に遷移したことにより、プロセッサ#2に対しても、応答部260からプロセッサ#2のリード命令に係るデータが転送される。
この例では、プロセッサ#1からのリード命令と同じキャッシュラインに、プロセッサ#2からのリード命令がリードアクセスしようとした場合を想定したため、後者は待機されている。ただし、異なるキャッシュラインに対する他のアクセスは、記憶の一貫性が維持できる限りは、待機されることなく実行可能である。
図18は、本発明の実施の形態におけるリード命令の動作の他の一例を示すタイミング図である。この例は、先行アクセスの完了を待つことなく後続アクセスが実行される場合を想定している。
プロセッサ#1(100−1)からリード命令が発行され、二次キャッシュ200のタグ制御部230においてミスヒットの判定がされると、二次キャッシュ200の応答部260からメインメモリ300に対してキャッシュラインのフィルの指示が発行される。
その後、プロセッサ#2(100−2)からリード命令が発行され、二次キャッシュ200のタグ制御部230においてヒット判定がされたものとする。すなわち、プロセッサ#1からのリード命令と異なるキャッシュラインにリードアクセスしようとした場合を想定している。この場合、タグが一致し、V=1、D=0かつP=0であるため、プロセッサ#1からのリード命令の完了を待つことなく、プロセッサ#2からのリード命令を実行することができる。すなわち、応答部260からプロセッサ#2に対して、速やかにプロセッサ#2のリード命令に係るデータが転送される(ヒット・アンダー・ミス)。
その後、プロセッサ#1からのフィル指示に対して該当データが転送されると、調停部210において調停され、タグ記憶部220およびデータ記憶部240に反映される。そして、応答部260からプロセッサ#1に対してプロセッサ#1のリード命令に係るデータが転送される。これにより、該当するエントリにおいてP=0にクリアされる。
図19は、本発明の実施の形態におけるリード命令の動作のさらに他の一例を示すタイミング図である。この例は、先行アクセスのミス処理中に後続アクセスのミス処理が行われる場合を想定している。
プロセッサ#1(100−1)からリード命令が発行され、二次キャッシュ200のタグ制御部230においてミスヒットの判定がされると、二次キャッシュ200の応答部260からメインメモリ300に対してキャッシュラインのフィルの指示が発行される。
その後、プロセッサ#1からのリード命令と異なるキャッシュラインについてプロセッサ#2(100−2)からリード命令が発行され、二次キャッシュ200のタグ制御部230においてミスヒット判定がされたものとする。この場合、プロセッサ#1からのリード命令の完了を待つことなく、二次キャッシュ200の応答部260からメインメモリ300に対してキャッシュラインのフィルの指示が発行される(ミス・アンダー・ミス)。
その後、プロセッサ#1からのフィル指示に対して該当データが転送されると、調停部210において調停され、タグ記憶部220およびデータ記憶部240に反映される。そして、応答部260からプロセッサ#1に対してプロセッサ#1のリード命令に係るデータが転送される。これにより、プロセッサ#1からのリード命令に係るエントリにおいてP=0にクリアされる。
同様に、プロセッサ#2からのフィル指示に対して該当データが転送されると、調停部210において調停され、タグ記憶部220およびデータ記憶部240に反映される。そして、応答部260からプロセッサ#2に対してプロセッサ#1のリード命令に係るデータが転送される。これにより、プロセッサ#2からのリード命令に係るエントリにおいてP=0にクリアされる。
このように、本発明の実施の形態によれば、タグ記憶部220に保留中224のフィールドを設けたことにより、フィルによるデータ待ちとなっているキャッシュラインへのアクセスを保留し、それ以外のキャッシュラインへのアクセスを許容することができる。セット・アソシアティブ・キャッシュの場合、キャッシュラインの数はライン数×ウェイ数であり、図3の例では128×2=256となる。すなわち、この例では最大で256アクセスを保留することができる。これはキャッシュメモリのタグ比較機構を利用したものであり、アドレス比較回路をさらに追加することなく、簡易な構成によりアクセスの保留を実現するものである。これにより、異なるキャッシュラインであれば、先行アクセスのミス処理中に後続アクセスがヒットした場合(ヒット・アンダー・ミス)のみならず、先行アクセスのミス処理中にさらに後続アクセスのミス処理(ミス・アンダー・ミス)を行うことも可能である。
なお、本発明の実施の形態では、ライトバック方式の二次キャッシュを例に挙げて説明したが、本発明はこれに限定されるものではなく、例えばライトスルー方式にも適用可能である。
また、本発明の実施の形態では、二次キャッシュを例に挙げて説明したが、本発明はこれに限定されるものではなく、他の階層のキャッシュメモリ(例えば、一次キャッシュ)にも適用可能である。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
本発明の実施の形態における情報処理システムの一構成例を示す図である。 本発明の実施の形態における二次キャッシュ200の機能構成例を示す図である。 本発明の実施の形態における二次キャッシュ200の回路構成例を示す図である。 本発明の実施の形態におけるデータ記憶部240とメインメモリ300との対応関係の例を示す図である。 本発明の実施の形態におけるタグ記憶部220の構成例を示す図である。 本発明の実施の形態における二次キャッシュ200のリード命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のライト命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のフィル命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のリフィル命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のゼロアロケート命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のヒット・ライトバック・無効化命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のヒット・ライトバック命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のヒット・無効化命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のインデックス・ライトバック・無効化命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のインデックス・ライトバック命令に対する動作例を示す図である。 本発明の実施の形態における二次キャッシュ200のインデックス・無効化命令に対する動作例を示す図である。 本発明の実施の形態におけるリード命令の動作の一例を示すタイミング図である。 本発明の実施の形態におけるリード命令の動作の他の一例を示すタイミング図である。 本発明の実施の形態におけるリード命令の動作のさらに他の一例を示すタイミング図である。
符号の説明
100−1〜p プロセッサ
110−1〜p 一次キャッシュ
200 二次キャッシュ
210 調停部
220 タグ記憶部
221 タグアドレス(TAG)
222 バリッド(V)
223 ダーティ(D)
224 保留中(P)
230 タグ制御部
231、232 比較器
233 論理和演算器
240 データ記憶部
250 データ制御部
251、252 選択器
260 応答部
300 メインメモリ

Claims (4)

  1. アクセスアドレスの第1のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、
    前記複数のエントリに対応するデータを記憶するデータ記憶部と、
    前記第1のアドレス部分とは異なる前記アクセスアドレスの第2のアドレス部分と前記索引されたエントリに含まれる前記タグアドレスとを比較して一致したエントリを検出し、前記一致したエントリに含まれる前記保留中表示部が保留中である旨を表示している場合には前記アクセスアドレスに係るアクセスを待機させるタグ制御部と、
    前記一致したエントリに含まれる前記保留中表示部が保留中でない旨を表示している場合には前記一致したエントリに対応するデータを前記データ記憶部から選択するデータ制御部と
    を具備するキャッシュメモリ。
  2. 前記タグ制御部は、前記一致したエントリが検出されない場合には前記索引されたエントリの中でそのエントリに含まれる前記保留中表示部が保留中でない旨を表示しているエントリを優先してリプレースを行う
    請求項1記載のキャッシュメモリ。
  3. 前記タグ制御部は、リプレースの対象となったエントリに含まれる前記保留中表示部が保留中である旨を表示している場合には前記リプレースを待機させる
    請求項2記載のキャッシュメモリ。
  4. アクセスアドレスの第1のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、
    前記第1のアドレス部分とは異なる前記アクセスアドレスの第2のアドレス部分と前記索引されたエントリに含まれる前記タグアドレスとを比較して一致したエントリを検出し、前記一致したエントリに含まれる前記保留中表示部が保留中である旨を表示している場合には前記アクセスアドレスに係るアクセスを待機させるタグ制御部と
    を具備するキャッシュメモリ制御装置。
JP2008197243A 2008-07-31 2008-07-31 キャッシュメモリおよびキャッシュメモリ制御装置 Pending JP2010033480A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008197243A JP2010033480A (ja) 2008-07-31 2008-07-31 キャッシュメモリおよびキャッシュメモリ制御装置
US12/458,053 US20100030966A1 (en) 2008-07-31 2009-06-30 Cache memory and cache memory control apparatus
CN200910160973.0A CN101639812B (zh) 2008-07-31 2009-07-31 高速缓冲存储器及高速缓冲存储器控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008197243A JP2010033480A (ja) 2008-07-31 2008-07-31 キャッシュメモリおよびキャッシュメモリ制御装置

Publications (1)

Publication Number Publication Date
JP2010033480A true JP2010033480A (ja) 2010-02-12

Family

ID=41609487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008197243A Pending JP2010033480A (ja) 2008-07-31 2008-07-31 キャッシュメモリおよびキャッシュメモリ制御装置

Country Status (3)

Country Link
US (1) US20100030966A1 (ja)
JP (1) JP2010033480A (ja)
CN (1) CN101639812B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341355B2 (en) * 2010-05-25 2012-12-25 International Business Machines Corporation Reducing energy consumption of set associative caches by reducing checked ways of the set association
US8533396B2 (en) * 2010-11-19 2013-09-10 Advanced Micro Devices, Inc. Memory elements for performing an allocation operation and related methods
US9311251B2 (en) 2012-08-27 2016-04-12 Apple Inc. System cache with sticky allocation
US20140089600A1 (en) * 2012-09-27 2014-03-27 Apple Inc. System cache with data pending state
JP2014186579A (ja) * 2013-03-25 2014-10-02 Sony Corp キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法
CN105302745B (zh) * 2014-06-30 2019-07-19 深圳市中兴微电子技术有限公司 高速缓冲存储器及其应用方法
GB2547189A (en) * 2016-02-03 2017-08-16 Swarm64 As Cache and method
CN108052296B (zh) * 2017-12-30 2021-02-19 惠龙易通国际物流股份有限公司 一种数据读取方法、设备及计算机存储介质
US11042480B2 (en) * 2019-04-26 2021-06-22 Arm Limited System, method and apparatus for secure functions and cache line data
US10942856B2 (en) 2019-04-26 2021-03-09 Arm Limited System, method and apparatus for secure functions and cache line data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56117384A (en) * 1980-02-20 1981-09-14 Nec Corp Cash controller
JPS56159886A (en) * 1980-05-13 1981-12-09 Nec Corp Buffer memory device
JPH06149673A (ja) * 1992-11-12 1994-05-31 Kubota Corp キャッシュ制御方式
JPH09218823A (ja) * 1996-02-08 1997-08-19 Hitachi Ltd キャッシュメモリ制御装置
JP2007226641A (ja) * 2006-02-24 2007-09-06 Nec Corp 情報処理装置、キャッシュ制御方法及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
DE69323790T2 (de) * 1992-04-29 1999-10-07 Sun Microsystems, Inc. Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
US5555392A (en) * 1993-10-01 1996-09-10 Intel Corporation Method and apparatus for a line based non-blocking data cache
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
US6185658B1 (en) * 1997-12-17 2001-02-06 International Business Machines Corporation Cache with enhanced victim selection using the coherency states of cache lines
US6347360B1 (en) * 2000-02-25 2002-02-12 Sun Microsystems, Inc. Apparatus and method for preventing cache data eviction during an atomic operation
US6732236B2 (en) * 2000-12-18 2004-05-04 Redback Networks Inc. Cache retry request queue
JP4417715B2 (ja) * 2001-09-14 2010-02-17 サン・マイクロシステムズ・インコーポレーテッド キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置
WO2005066796A1 (ja) * 2003-12-22 2005-07-21 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56117384A (en) * 1980-02-20 1981-09-14 Nec Corp Cash controller
JPS56159886A (en) * 1980-05-13 1981-12-09 Nec Corp Buffer memory device
JPH06149673A (ja) * 1992-11-12 1994-05-31 Kubota Corp キャッシュ制御方式
JPH09218823A (ja) * 1996-02-08 1997-08-19 Hitachi Ltd キャッシュメモリ制御装置
JP2007226641A (ja) * 2006-02-24 2007-09-06 Nec Corp 情報処理装置、キャッシュ制御方法及びプログラム

Also Published As

Publication number Publication date
US20100030966A1 (en) 2010-02-04
CN101639812B (zh) 2012-02-08
CN101639812A (zh) 2010-02-03

Similar Documents

Publication Publication Date Title
JP2010033480A (ja) キャッシュメモリおよびキャッシュメモリ制御装置
US8745334B2 (en) Sectored cache replacement algorithm for reducing memory writebacks
US7698508B2 (en) System and method for reducing unnecessary cache operations
US7827354B2 (en) Victim cache using direct intervention
US6339813B1 (en) Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
TWI522802B (zh) 確保微處理器之快取記憶體層級之資料一致性的裝置與方法
US7305523B2 (en) Cache memory direct intervention
JP5328748B2 (ja) キャッシュメモリにおけるキャッシュラインの置き換え
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
US7321954B2 (en) Method for software controllable dynamically lockable cache line replacement system
US20070073974A1 (en) Eviction algorithm for inclusive lower level cache based upon state of higher level cache
US20080168236A1 (en) Performance of a cache by detecting cache lines that have been reused
TWI533201B (zh) 縮減交易回復的快取控制
KR20170098187A (ko) 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법
JP2012533124A (ja) ブロックベースの非透過的キャッシュ
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
JP2018005395A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US7380068B2 (en) System and method for contention-based cache performance optimization
JP2019096309A (ja) メンテナンス動作の実行
JP2008234074A (ja) キャッシュ装置
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US9336148B2 (en) Cache memory, cache memory control unit, and method of controlling the cache memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101019