JP3808837B2 - キャッシュメモリーシステム - Google Patents

キャッシュメモリーシステム Download PDF

Info

Publication number
JP3808837B2
JP3808837B2 JP2003065192A JP2003065192A JP3808837B2 JP 3808837 B2 JP3808837 B2 JP 3808837B2 JP 2003065192 A JP2003065192 A JP 2003065192A JP 2003065192 A JP2003065192 A JP 2003065192A JP 3808837 B2 JP3808837 B2 JP 3808837B2
Authority
JP
Japan
Prior art keywords
reference bit
entry
storage unit
segment
cache memory
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
JP2003065192A
Other languages
English (en)
Other versions
JP2004272772A (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 JP2003065192A priority Critical patent/JP3808837B2/ja
Priority to US10/449,108 priority patent/US7376797B2/en
Publication of JP2004272772A publication Critical patent/JP2004272772A/ja
Application granted granted Critical
Publication of JP3808837B2 publication Critical patent/JP3808837B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

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

【0001】
【発明の属する技術分野】
本発明はキャッシュメモリーシステムに関し、特にキャッシュメモリーシステムの更新方法及び更新プログラムに関する。
【0002】
【従来の技術】
現在マイクロプロセッサー等で使われているアドレス変換用情報やデータを格納したキャッシュメモリーは、主記憶装置(メインメモリー)に格納された情報の一部である複数の情報を格納するように構成されている。一般的にアドレス変換用情報はアドレスキャッシュやTLB[Translation Look-aside Buffer]と呼ばれる。データを格納したキャッシュメモリーはデータキャッシュと呼ばれる。ここで、1組の情報を格納するための記憶領域の単位を「エントリー」と呼ぶことにする。キャッシュメモリー自体に、コンピュータシステムを構成するCPUの処理において必要とされる全情報はすべて入りきらない。そこで、必ず主記憶装置から新たな情報を取り込んで更新する作業が必要となる。
【0003】
TLBやデータキャッシュ等のアドレス変換情報をキャッシュメモリー自体へ格納する方法、及びそれらを利用する方法は現在様々である。特に、フルアソシエイティブ(Fully Associative)という構成を有するキャッシュメモリーの場合、回路の設計が複雑になるのを防ぐため、エントリーをランダムに選択する手法を採用している。
【0004】
しかしながら、キャッシュメモリー中の各エントリー情報には、利用頻度から見て、その利用頻度が低いために更新されても良いと思われるエントリーもある。一方、利用頻度が高く更新対象としては不適当なエントリーもある。エントリーをランダムに選択する手法では、この利用頻度が高いエントリーも更新してしまう可能性がある。
【0005】
その結果、更新されてしまったエントリーの情報をまた登録しなおさなければならないことになり、エントリー情報の再登録という作業が加わる結果、時間効率が悪く、パフォーマンスの低下が発生する。
【0006】
【特許文献1】
特開平10−27133号公報
【0007】
【発明が解決しようとする課題】
フルアソシエイティブ形式のキャッシュメモリーの場合、その更新エントリーを選択する際には、回路設計の煩雑さを回避するために、ランダムにエントリーを選択する手法が用いられるため、使用頻度が高いエントリーが更新されてしまう可能性がある。
【0008】
本発明の目的は、未使用のエントリーから更新エントリーを自動的に選択することができ無駄が生じにくく時間効率のよい、またソフトウェア側がタイマーの周期の設定を頻繁にやり直す必要は無く、タイマーの周期設定を自動的に調節することもできるキャッシュメモリーシステムを提供することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するために、本発明の特徴は、(イ)主記憶装置に格納された情報の一部を取り込んで格納する情報格納部と、情報格納部に対応した参照ビットの一定期間の使用状況を格納する使用状況記憶部,使用状況記憶部内に格納された情報を受信する参照ビット判定回路,及び前記参照ビット判定回路において選択される選択参照ビットを格納する選択参照ビット格納部を備え,情報格納部に格納された情報の一定期間における使用状況を格納する参照ビット格納部とをそれぞれ備えるエントリーを複数有するキャッシュメモリーと、(ロ)参照ビット格納部に接続され,参照ビット判定回路に対して判定制御信号を送信する参照ビット判定制御レジスターと、(ハ)情報格納部に接続され、ヒット信号を参照ビット格納部に対して発生するヒット判定回路と、(ニ)参照ビット格納部に接続され、使用状況記憶部,及び参照ビット判定回路に対して世代交代信号を送信するインターバルタイマーとを備え、(ホ)使用状況記憶部は、第1の参照ビットを格納する第1の参照ビット格納部と第2の参照ビットを格納する第2の参照ビット格納部とを備え,それぞれ過去のヒット状況と現在のヒット状況を記憶するとともに、参照ビット判定回路は、参照ビット判定制御レジスターから判定制御信号を受信して、エントリー毎に過去と現在のヒット状況に基づいて最終的な選択参照ビットを生成するキャッシュメモリーシステムであることを要旨とする。
【0014】
【発明の実施の形態】
次に、図面を参照して、本発明の第1及び第2の実施の形態を説明する。以下の図面において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す第1及び第2の実施の形態は、この発明の技術思想を具体化するための装置や方法を例示するものであって、この発明の技術思想は、構成要素の構造、配置等を下記のものに特定するものではない。この発明の技術思想は、特許請求の範囲において、種々の変更を加えることができる。
【0015】
本発明の実施の形態において、「キャッシュメモリーシステム」50とは、図1に示すように、キャッシュメモリー8をその構成要素の一部に備えるシステムをいう。即ち、キャッシュメモリーシステム50は、例えば、キャッシュメモリー8とその周辺回路からなる半導体集積回路或いはプロセッサー30を構成要素として含み、或いはまた、ディジタルシグナルプロセッサー、カスタムLSI、タイマーLSI等がキャッシュメモリーシステム50に含まれる。キャッシュメモリー8に対しては、外部の主記憶装置であるメインメモリー60から、情報が供給される。
【0016】
本発明の実施の形態において、「キャッシュメモリーシステム」はフルアソシエイティブ方式若しくはそれに準ずる構成を有する、アドレスキャッシュ若しくはデータキャッシュによる、キャッシュメモリーを内蔵若しくは外付けしている。そして、このキャッシュメモリーシステムは、キャッシュメモリーの内容を新たな情報に更新する際に、タイマーを使用した世代管理によって、キャッシュメモリーを構成する各エントリーの使用履歴を把握して、未使用のエントリーを選択する機能を有する。
【0017】
或いはまた、上記機能を効率よく行うために、本発明の「キャッシュメモリーシステム」は、各エントリーの使用履歴を利用、判断してタイマーの周期を自動的に調節する機能を有する。
【0018】
(第1の実施の形態)
本発明の第1の実施の形態に係るキャッシュメモリーシステム50は、図2に示すように、キャッシュメモリー8とヒット判定回路5と制御レジスター4とインターバルタイマー3と参照ビットRを格納する参照ビット格納部31とプロセッサー30からなる。キャッシュメモリー8は、図2に示すように、エントリー0からエントリーn−1までのn個のエントリーにそれぞれ対応する情報格納部1とそれぞれの情報格納部1に付随したn個の参照ビットRを格納する参照ビット格納部31からなる。即ち、キャッシュメモリー8は後述する図9或いは図14に示すように、複数のセグメントから構成され、各セグメントは複数のエントリーから構成される。各エントリーには情報格納部1と参照ビット格納部31が含まれる。参照ビット格納部31は、使用状況記憶部2と、参照ビット判定回路6と、選択参照ビットRSを格納する選択参照ビット格納部32とから構成される。使用状況記憶部2には、第1の参照ビットRAを格納する第1の参照ビット格納部37及び第2の参照ビットRBを格納する第2の参照ビット格納部38が含まれている。ヒット判定回路5は、キャッシュメモリー8の各エントリー0,エントリー1,エントリー2,・・・,エントリーn−2,エントリーn−1の情報格納部1から発生するキャッシュアドレス情報CAとプロセッサー30から発生するプロセッサーキャッシュアクセスアドレス情報PAとを比較し、ヒット信号HTを参照ビット格納部31に対して発生する。制御レジスター4から発生された制御情報CIはインターバルタイマー3に入力される。インターバルタイマー3は使用状況記憶部2内の第1の参照ビット格納部37,第2の参照ビット格納部38及び参照ビット判定回路6に対して世代交代信号ISを供給する。尚、図2においては、図10乃至図17において後述するプライオリティエンコーダー10A,10B、処理回路12A,12B等の構成要素は記載を省略している。
【0019】
まずフルアソシエイティブ方式のn個のエントリー数を有するキャッシュメモリー8について説明する。「フルアソシエイティブ」とは、どのエントリーにも制限無く情報を書き込むことができる、或いは又、情報を格納することができるものである。即ち、アドレス情報に含まれる一部の情報を使用して、何らかの規則に従って更新するエントリーを選択してエントリーに情報を書き込むという手法は採用しないものである。一方、フルアソシエイティブ方式、非フルアソシエイティブ方式などの構成とは関係なく、一般的に、プロセッサーに内蔵されるキャッシュメモリーのメモリー容量は小さいため、格納したい、または格納しなければならない情報量に比べて、キャッシュメモリーのメモリー容量は少ない。近年プロセッサーの動作周波数が飛躍的に高速化したことによって、プロセッサーの外部に接続される大容量のメモリーとプロセッサー間のデータの送受にかかるタイミングロスが問題となっている。しかしながら、キャッシュメモリーは、その高速動作により、発生したタイミングロスを埋めるという重要な役割を果たしている。
【0020】
一方において、キャッシュメモリー自体は、メモリー容量に限界があり、格納したいだけの容量を持たないために、しばしばキャッシュメモリー自体の内容を更新しなければならない。内容を更新するために、キャッシュメモリーの構成によっては様々なアルゴリズム方式を用いて更新するエントリーを選択する。
【0021】
一般的に、非フルアソシエイティブ方式、例えば、Nウェイセットアソシエイティブのキャッシュメモリーでは、エントリーを多数持っていたとしても、更新しても良いかどうかを判断する場合にはエントリー数を絞って判断している。非フルアソシエイティブ方式に比べて、フルアソシエイティブ方式の場合には、全エントリー、もしくは多数のエントリーを対象に調べる必要がある。
【0022】
しかしながら、この場合に非フルアソシエイティブ方式で採用されているアルゴリズムを利用すると(例えばLRU: Least Recently Used等)回路自体が非常に複雑かつ膨大になり、その結果プロセッサーの動作速度向上に悪影響を与えることになる。そのため、フルアソシエイティブ方式のキャッシュメモリーでは、ランダムに更新するエントリーを選択するという手法がとられていた。
【0023】
しかしながら、このランダムに更新するエントリーを選択する方法では、使用頻度が高く、これからも利用する予定のエントリーも更新してしまう可能性がある。これからも利用する予定のエントリーも更新してしまうとパフォーマンスの低下を招く。
【0024】
参照ビット格納部31は、過去一定期間の使用状況、即ち、ヒット状況を格納するレジスターである。単純なものでは、2ビットで構成される現在・過去一定期間の使用状況{使用あり(ヒット)/なし(ミス)}を格納するレジスターである。現在・過去一定期間の変換実行回数を格納する使用状況記憶部2内のレジスターから参照ビット判定回路6を経て生成される情報である選択参照ビットRSは選択参照ビット格納部32に格納される。
【0025】
ここでは、一定期間の使用状況を調べるために、専用のタイマーを使用する。まず、タイマーを利用して一定期間内の各エントリーの使用履歴情報を格納した参照ビットRと呼ばれる情報を使用して、利用されていないエントリーの候補を絞り、更新可能なエントリーをランダムに選択する手法についてその実施例を説明する。
【0026】
参照ビット格納部31に格納される参照ビットRは、キャッシュメモリー8の各エントリー0,エントリー1,・・・,エントリーn−2,エントリーn−1に存在し、各エントリー0,エントリー1,・・・,エントリーn−2,エントリーn−1がある時間までに参照され、使用されたかどうかの状況を指し示す情報である。実際に、使用されたかどうかを決めるのは選択参照ビットRSを生成する参照ビット判定回路6である。
【0027】
各エントリーにおいて、本来格納すべき情報を格納する記憶領域(記憶素子)が情報格納部1である。アドレス変換に使われるTLBであれば、プロセッサー30(図2)から生成される仮想アドレスと比較されるべきアドレス情報と、アドレス情報の置換に使われる「置換用アドレス情報」が情報格納部1に格納される。データキャッシュであれば、プロセッサー30(図2)から、TLBを経て、生成される物理アドレスと比較されるべきアドレス情報と、キャッシュメモリー8内に一時的に保持されるデータ本体が情報格納部1に格納される。生成される物理アドレスと比較されるべきアドレス情報とは、そもそもメモリー上にデータが格納されていた時のメモリーのアドレス値に等しい。
【0028】
キャッシュメモリー8の各エントリー0,エントリー1,エントリー2,・・・,エントリーn−2,エントリーn−1に格納された情報が、実際に使用されたかどうかを記憶しておくレジスターが使用状況記憶部2であり、メモリーの一種である。
【0029】
選択参照ビット格納部32に格納される選択参照ビットRSは、実際にはキャッシュメモリー8の各エントリー0,エントリー1,エントリー2,・・・,エントリーn−2,エントリーn−1に、2ビット以上で構成される使用状況記憶部2の内部状態値の情報に基づいて、参照ビット判定回路6を経由して決定される値である。使用状況記憶部2に格納される内部状態値のアルゴリズムは、前述した通り、過去・現在一定期間のエントリーの使用状況{使用あり(ヒット)/なし(ミス)}を記憶する例や、一定期間の使用回数を値飽和型カウンターに記憶していくという例がある。ここでは過去・現在一定期間のエントリー使用のあるなしを記憶する例に基づいて、図3を参照して説明する。
【0030】
インターバルタイマー3は制御レジスター4の設定値に従って、任意の時間を計測し、世代交代信号ISを出力するカウンターを中心にした回路である。即ち、一定期間の間隔で使用状況を管理できるように、専用のタイマー(時間計測装置)を用いるが、この専用のタイマーを「インターバルタイマー3」と呼んでいる。このインターバルタイマー3は、設定値を記憶するメモリーの一種である専用の制御レジスター4の設定値によって、インターバルタイマー3の周期TIの設定等の動作内容が制御される。制御レジスター4は、インターバルタイマー3の周期等の動作をソフトウェア側から制御できるようにするレジスターであり、メモリーの一種である。ヒット判定回路5は、プロセッサー30からキャッシュメモリー8にアクセスする時に供給されるプロセッサーキャッシュアクセスアドレス情報PAと、キャッシュメモリー8中の各エントリーの情報格納部1に格納されているキャッシュアドレス情報CAを比較し、一致したエントリーがあるかどうかを判別する機能を持った回路である。一致したエントリーがあった場合には、そのエントリーの番号を元にヒット信号HTを生成して、該当するエントリーの使用状況記憶部2において、第1の参照ビット格納部37,第2の参照ビット格納部38にそれぞれ格納される第1の参照ビットRA,第2の参照ビットRBの内部状態を“1”にセットするようにする。過去・現在一定期間のエントリー使用の使用状況{使用あり(ヒット)/なし(ミス)}を記憶する例として、まず各エントリーに、参照ビット格納部31内に格納される参照ビットRの状態値を生成するための第1の参照ビット格納部37と第2の参照ビット格納部38を使用状況記憶部2内に持たせることとしている。
【0031】
第1の参照ビット格納部37,第2の参照ビット格納部38においてそれぞれ格納される第1の参照ビットRA、第2の参照ビットRBの内部状態値は、インターバルタイマー3から発生される世代交代信号ISによって世代管理が行なわれる。「世代管理」とは、第1の参照ビット格納部37,第2の参照ビット格納部38においてそれぞれ格納される第1の参照ビットRA,第2の参照ビットRBに対し、「過去の参照ビット」と「現在の参照ビット」という世代定義を行うものである。
【0032】
第1の参照ビット格納部37,第2の参照ビット格納部38においてそれぞれ格納される第1の参照ビットRA、第2の参照ビットRBはそれぞれある瞬間において、「過去」(一定期間)と「現在」といった名前付けが行われ、「過去」と定義されれば、“過去一定期間におけるキャッシュメモリーエントリーヒットの有無”、を記録保持し、「現在」と定義されれば、“定義されてから一定期間、キャッシュメモリーエントリーヒットの有無”、を記録する記憶素子(レジスター)として働く。
【0033】
第1の参照ビット格納部37,第2の参照ビット格納部38においてそれぞれ格納される第1の参照ビットRA、第2の参照ビットRBに対する「過去の参照ビットOLR」と「現在の参照ビットCRR」といった定義付けは、図2及び図2に示すように、インターバルタイマー3によって出力される世代交代信号ISを元に、一定期間で切り替わる。つまり、ある一定期間では第1の参照ビット格納部37に格納される第1の参照ビットRAの内部状態値が「過去の参照ビットOLR」として、第2の参照ビット格納部38に格納される第2の参照ビットRBの内部状態が「現在の参照ビットCRR」として定義されるとすれば、次の一定期間では第1の参照ビットRAの内部状態値は「現在の参照ビットCRR」として、第2の参照ビットRBの内部状態は「過去の参照ビットOLR」として定義し直される。実際は、このような作業を繰り返す。
【0034】
第1の参照ビットRA/第2の参照ビットRB制御アルゴリズム
第1の参照ビットRA/第2の参照ビットRBの制御アルゴリズムについて図2と図3を参照して説明する。図3はインターバルタイマー3から発生される世代交代信号ISによる第1の参照ビット格納部37に格納される第1の参照ビットRAの内部状態値と第2の参照ビット格納部38に格納される第2の参照ビットRBの内部状態値の移り変わりを模式的に示している。前提として初期状態では、第1の参照ビットRAが「現在の参照ビット」であることを意味するCRRとして表示され、第2の参照ビットRBは「過去の参照ビット」であることを意味するOLRと表示される。これらの呼び名は、図2の世代交代信号ISをトリガー信号として入れ替わる。つまり、世代交代信号ISが入力される毎に、第1の参照ビットRAの内部状態値が現在の参照ビットCRRから過去の参照ビットOLRへ、そして次に世代交代信号ISが来る時に、過去の参照ビットOLRから現在の参照ビットCRRへというようにステータスが変化すると考えればよい。
【0035】
これとは逆に、図3に示すように、第2の参照ビットRBの内部状態値は過去の参照ビットOLRから現在の参照ビットCRRへ、そして次に世代交代信号ISが来る時に、現在の参照ビットCRRから過去の参照ビットOLRへと変化する。図3において、世代交代信号ISはインターバルタイマー3の周期TIごとに発生する。参照ビット格納部31に格納される各参照ビットRは、キャッシュメモリー8の該当するエントリーがヒット(参照されキャッシュメモリー8の中身が使用される状態)したかどうかの情報を記録するフラグである。図2に示すように、キャッシュメモリー8へのアクセスがあり、ヒット判定回路5が、キャッシュメモリー8中の各エントリーの変換情報格納部(アドレス)1から提供されるキャッシュアドレス情報CAと、キャッシュアクセスの際にプロセッサー30から提供されるプロセッサーキャッシュアクセスアドレス情報(アドレス値)PAとの比較をして、キャッシュメモリー8の「とあるエントリー」にヒットしたと判定した場合には、ヒット判定回路5は、ヒット信号HTを出力し、ヒットしたエントリーの参照ビット格納部31に格納される参照ビットRには、“1”がセットされる。但し、その場合に“1”がセットされるのは必ず「現在の参照ビットCRR」と定義された側であることにする。この状態において「過去の参照ビットOLR」と定義された側は、一世代前の期間のヒット情報を保持している。過去の参照ビットOLRの状態になっている参照ビットRが、現在の参照ビットCRRの状態に変化するとそれと同時に、その内容をリセットし“0”にするものとする。現在の参照ビットCRRの状態であった参照ビットRが、過去の参照ビットOLRの状態に変化した時には何の変化もないが、記録されているヒット情報を保持し続ける。
【0036】
図4は、選択参照ビット格納部32に格納される選択参照ビットRSを生成する元になる第1の参照ビットRAと第2の参照ビットRBの状態の変化と、その内容の変化を時間軸に沿って示している。前述のように、第1の参照ビットRA及び第2の参照ビットRBはそれぞれ使用状況記憶部2内の第1の参照ビット格納部37及び第2の参照ビット格納部38に保持される情報である。図3ではリセットタイミングTRの直後から、2回エントリーにヒットした例を示している。即ち、図4中において、エントリーヒットHit1,Hit2によって示されるように、2回のヒット信号によって第1の参照ビットRA及び第2の参照ビットRBの内部状態がどのように変化するかを表している。リセットタイミングTRの直後では、第1の参照ビットRAの内部状態値が現在の参照ビットCRR、第2の参照ビットRBの内部状態が過去の参照ビットOLRとなり、各第1の参照ビットRAと第2の参照ビットRBの内部状態値は“0”に初期化される。その状態でまず一回目のエントリーヒットHit1を迎えると、図4中のAで示されるように、現在の参照ビットCRRである第1の参照ビットRAの内部状態値は“0”の状態から“1”の状態にセットされる。第2の参照ビットRBの内部状態は、そのままリセット時の状態値である“0”の状態を保持する。インターバルタイマー3の周期TIが終わり次の世代交代信号ISを受けると、第1の参照ビットRAの内部状態値は現在の参照ビットCRRの状態から過去の参照ビットOLRの状態に変化し、第2の参照ビットRBの内部状態値は過去の参照ビットOLRの状態から現在の参照ビットCRRの状態に変化する。第1の参照ビット格納部37内に格納される第1の参照ビットRAには“ヒットしたという情報”である、“1”の状態が記録されたまま、次に現在の参照ビットCRRになるまで状態を変えない。
【0037】
第2の参照ビット格納部38内に格納される第2の参照ビットRBの内部状態値は、過去の参照ビットOLRから現在の参照ビットCRRに状態が変化するので、この変化の瞬間に“0”の状態にリセットされる。しかしながら、図4中Bで示されるように、前世代の値も“0”の状態であるから次のヒット信号を受けるまで“0”の状態を変えることはない。
【0038】
エントリーヒットHit2を迎えると、今度は、第2の参照ビット格納部38内に格納される第2の参照ビットRBの内部状態は、現在の参照ビットCRRになっているので、図4のCで示されるように、第2の参照ビットRBの内部状態値は“0”から“1”にセットされる。
【0039】
この例では、仮に第1の参照ビット格納部37に格納される第1の参照ビットRAの内部状態値もしくは第2の参照ビット格納部38に格納される第2の参照ビットRBの内部状態値が、現在の参照ビットCRRの状態であり、複数回ヒットがあっても“1”の状態は“1”の状態のままを保持し続ける。ヒットした回数(頻度)の情報が必要であれば、過去・現在一定期間のエントリー使用の使用状況{使用あり(ヒット)/なし(ミス)}を記憶する第1の参照ビットRA/第2の参照ビットRBを用いる方式ではなくて、前述の値飽和型カウンターを採用することになる。
【0040】
次の世代交代信号ISを迎えると、図4中のDで示されるように、過去の参照ビットOLRであった第1の参照ビットRAの内部状態値が現在の参照ビットCRRへと変化するため、その変化の時点で第1の参照ビット格納部37に格納される第1の参照ビットRAの内部状態値が“1”から“0”にクリアされる。
【0041】
図5は本発明の第1の実施の形態に係るキャッシュメモリーシステム50を構成する参照ビット判定回路6,ヒット判定回路5,使用状況記憶部2,インターバルタイマー3,参照ビット判定制御レジスター7,選択参照ビットRSを格納する選択参照ビット格納部32のみを示す。点線で囲まれた部分が図2に示した参照ビット格納部31に対応している。
【0042】
選択参照ビット格納部32に格納される選択参照ビットRSを出力する使用状況記憶部2の構成は様々なものが考えられる。例えば、図5では、2ビット構成レジスター34、4ビット構成レジスター35及び2ビットカウンター9の構成が含まれる。2ビット構成レジスター34には第1の参照ビット格納部37及び第2の参照ビット格納部38が含まれており、4ビット構成レジスター35には第1の参照ビット格納部37、第2の参照ビット格納部38、第3の参照ビット格納部39及び第4の参照ビット格納部40が含まれている。また2ビットカウンター9には2ビット構成のカウンターが含まれる。参照ビット判定制御レジスター7は、その使用状況記憶部2の情報にフィルタリングをかけ、どういう条件のもとで選択参照ビット格納部32に格納される選択参照ビットRSの内部状態値が“1”になるか、または“0”になるかを決める判定アルゴリズムの選択や設定を、ソフトウェアによって行うためのレジスターである。使用状況記憶部2を2ビット構成レジスター34と4ビット構成レジスター35によって構成した実施例を図5に、また2ビット構成レジスター34と2ビットカウンター9によって構成した実施例を図6に、更に又、4ビット構成レジスター35と2ビットカウンター9によって構成した実施例を図7に示す。図6乃至図8において、他の部分の構成は図5と共通である。尚、上述の2ビット構成レジスター34もしくは2ビットカウンター9の代わりに、nを自然数として、nビット構成レジスターもしくはnビットカウンターを用いてもよいことはもちろんである。この場合、nビット構成レジスターにはn個の参照ビット格納部が含まれ、或いはまた、nビットカウンターにはnビット構成のカウンターが含まれることはもちろんである。過去の履歴を判断するためには少なくとも2ビット以上必要であるため、2ビット構成レジスター34について、図5には開示している。また、図6乃至図8においても、点線で囲まれた部分が図2に示した参照ビット格納部31に対応している。
【0043】
参照ビット判定機能とエントリーランダム指定機能
第1の参照ビット格納部37及び第2の参照ビット格納部38にそれぞれ格納される第1の参照ビットRA及び第2の参照ビットRBの情報を利用して、エントリーがある世代において参照されたかどうかを示す、選択参照ビットRSの生成方法・判定機能について説明する。更に、選択参照ビットRSの内部状態値をもとに、どのようにランダムに、更新しても良いエントリーを選択するかという方法について説明する。
【0044】
図2に示す通り、キャッシュメモリー8の各エントリー0,エントリー1,エントリー2,…,エントリーn−2,エントリーn−1の参照ビット格納部31において、使用状況記憶部2内の第1の参照ビット格納部37及び第2の参照ビット格納部38にそれぞれ存在する第1の参照ビットRA及び第2の参照ビットRBは、インターバルタイマー3から生成・出力される世代交代信号ISを受信して、その内部状態が制御されている。また参照ビット判定回路6に対してもインターバルタイマー3から世代交代信号ISが入力される。参照ビット判定回路6の中では正確に、第1の参照ビットRA及び第2の参照ビットRBの内部状態値を把握でき、どちらが現在の参照ビットCRRか、過去の参照ビットOLRかを認識できるようになっている。
【0045】
参照ビット判定回路6では、各エントリー0,エントリー1,エントリー2,…,エントリーn−2,エントリーn−1ごとに「過去の参照ビットOLR」と「現在の参照ビットCRR」におけるヒット状況を反映して、最終的な選択参照ビットRSの情報の値を生成するようになっている。より詳細には、図5乃至図8に示すように、参照ビット判定制御レジスター7から参照ビット判定回路6に送信される判定制御信号DCSによって参照ビット生成アルゴリズムを選択できるようになっている。
【0046】
例えば、過去の参照ビットOLRと現在の参照ビットCRRの内、現在の参照ビットCRR(現世代)に相当する情報のみで、選択参照ビットRSの内部状態値を決定する。或いはまた、過去の参照ビットOLR(前世代)と現在の参照ビットCRR(現世代)の値の論理和(OR)によって、二世代のエントリーヒットHit1,Hit2の情報を加味して選択参照ビットRSの内部状態値を決定する。もちろんこの参照ビット判定回路6に対しては、第1の参照ビット格納部37と第2の参照ビット格納部38からなる2ビット構成レジスター34からの信号を入力する場合のみならず、4ビット構成レジスター35からの信号を入力することもでき、更にnビットカウンターからの信号を入力してもよい。過去のヒット状況をより詳しく調べて選択参照ビットRSの情報の判定をすることもできる。また、前述した通り、値飽和型カウンターを用いて、エントリーがヒットした回数を記録し、その値の大小から選択参照ビットRSの状態の値を決定することもできる。どの方法を選ぶかは、回路の動作周波数が大きな要因になる。
【0047】
以上のようにして生成され、選択参照ビット格納部32に格納される選択参照ビットRSの内部状態値に基づいて、参照ビット格納部31に格納される参照ビットRの内部状態値が“0”であるエントリーを選択する。内部状態値が“0”であるエントリーの数が1個である可能性は低いため、複数個存在する参照ビットRの内、内部状態値が“0”の状態のエントリーから、ランダムにエントリーを選択する手法を示す。
【0048】
まず例としてキャッシュメモリー8のエントリー数を64エントリーとした場合で説明する。図9において、点線で囲まれた部分がキャッシュメモリー8に相当している。これらを例えば、図9に示すように、8分割する。即ち、セグメント0 はエントリー00, エントリー01, エントリー02, エントリー03, エントリー04, エントリー05, エントリー06, エントリー07を含む。セグメント1 はエントリー08, エントリー09, エントリー10, エントリー11, エントリー 12, エントリー13, エントリー14, エントリー15を含む。同様にして、セグメント6 はエントリー48, エントリー49, エントリー50, エントリー51, エントリー52, エントリー53, エントリー54, エントリー55を含む。セグメント7 はエントリー56, エントリー57, エントリー58, エントリー59, エントリー60, エントリー61, エントリー62, エントリー63を含む。分割したそれぞれを1セグメントとする。このように、1セグメントが8エントリー分を含むように分割した結果、各セグメントには8個の参照ビット格納部31が存在し、8個の参照ビット格納部31に対応して、8本の参照ビットRの内部状態値を表す信号が存在することになる。尚、図9においては、64エントリーの例を示したが、32,48,128,256等のエントリー数であってもよい。また、セグメントの分割方法も8エントリーに限らず他のエントリー数であってもよい。
【0049】
[エントリーシャッフル]
本発明の第1の実施の形態に係るキャッシュメモリーシステム50において、キャッシュメモリー8のエントリーシャッフルを実現するための構成は、図10に示すように、i個のエントリーと、i個のエントリーのそれぞれに付随するi個の参照ビットRをそれぞれ格納する参照ビット格納部31と、i個の参照ビット格納部31の出力信号を入力する8 to 8 セレクター13Aと、8 to 8 セレクター13Aからのi個の出力信号を入力し、選ばれたエントリーの位置番号EPNを出力するプライオリティエンコーダー10Aと、8 to 8 セレクター13Aからのi個の出力信号を分岐して入力し、未使用エントリー存在信号EXSを出力するNANDゲート15と、エントリーシャッフル信号ESHを受信して8 to 8 セレクター13Aに対してエントリーセレクター制御信号ESCを送信するエントリーシャッフルカウンター14とから構成されるセグメントを備える。図10において、8 to 8 セレクター13Aと、プライオリティエンコーダー10Aと、NANDゲート15とを含む点線で囲まれた部分が処理回路12Aに対応している。
【0050】
セグメント内のハードウェア構成は、図10に示すように、LSB側からMSB側までのエントリー位置番号EPに対応して配置されたエントリー0,エントリー1,エントリー2,エントリー3,エントリー4,エントリー5,エントリー6,エントリー7と、8個のエントリーにそれぞれ含まれる参照ビットRを格納する参照ビット格納部31と、8 to 8セレクター13Aと、エントリーシャッフルカウンター14と、プライオリティエンコーダー10Aと、NANDゲート15とから構成される。各セグメントには、図10に示すように、8個のエントリーが存在するものとして説明する。各エントリーの参照ビット格納部31に格納された参照ビットRの内部状態値は、8 to 8セレクター13Aに入力される。この8 to 8セレクター13Aは、セグメント内のエントリーシャッフル用として使用される。即ち、エントリーシャッフルは、セグメント内のエントリーが最終的に更新対象として選択され、該当するエントリーが更新された後に実行される。8 to 8セレクター13Aは入力が8本、出力が8本あり、入力と出力が一対一に対応するように接続したセレクターである。8 to 8セレクター13Aは、専用のエントリーシャッフルカウンター14から供給される、エントリーセレクター制御信号ESCによって制御される。エントリーシャッフルカウンター14は、機能的には減算カウンターであり、前述したエントリーシャッフルが実行される時に、エントリーシャッフル信号ESHを受けて出力状態値を変更する。
【0051】
具体例を挙げると、このエントリーシャッフルカウンター14の出力状態値は3ビットの信号で構成され、この3ビットの信号による8通りの組み合わせに従って、8 to 8セレクター13Aを切り替える。エントリーシャッフルカウンター14の出力状態値は、例えば、エントリー0が存在している位置と同じ値を示すものとする。つまりエントリー0がエントリー位置番号EP=0に存在する場合には、エントリーシャッフルカウンター14の出力状態値は0、エントリー0がエントリー位置番号EP=6にいる場合には、エントリーシャッフルカウンター14の出力状態値は6とする。そしてエントリーシャッフルカウンター14の状態値が決まれば、その他のエントリーの接続も決まるものとする。
【0052】
8 to 8セレクター13Aを通過した各エントリーの参照ビットRの内部状態値を表す信号は、分岐されて、図10に示すように、それぞれNANDゲート15と、プライオリティエンコーダー10Aに送られる。NANDゲート15は、セグメント内にヒットしていないエントリーがあったかどうかを示す、未使用エントリー存在信号EXSを生成するための回路である。参照ビット格納部31に格納される参照ビットRの内部状態値の内、少なくとも1個が“0”であった場合には、未使用エントリー存在信号EXSの情報は “1”になり、ヒットしていないエントリーがあったことを示す。プライオリティエンコーダー10Aは、8本ある参照ビットRの内部状態値の中で、参照ビットRの内部状態値が“0”になっているエントリーを選び、その中でMSB側に近い位置に存在する、選ばれたエントリーの位置番号EPNとして出力する回路である。選ばれたエントリーの位置番号EPNは、エントリーそのものの番号ではなく、エントリーが置かれている位置を示す。以上のような構成と仕組みを持つセグメントをまとめ、次はセグメント8個全体で説明をする。
【0053】
図10に示すように、各セグメントでは、各エントリーの参照ビット格納部31に格納される参照ビットRの内部状態値を反映しつつ、セグメント毎に常に置換対象となりうる未ヒットのエントリー位置を示す、選ばれたエントリーの位置番号EPNを出力し、かつセグメント中に未ヒットのエントリーがあるのかどうかを示す未使用エントリー存在信号EXSを出力する。
【0054】
セグメント0における処理の概要は以下の通りである。即ち、図11に示すように、エントリー0,エントリー1,エントリー2,エントリー3,エントリー4,エントリー5,エントリー6,エントリー7の各番号はエントリー番号ENを示し、LSB(Least Significant Bit)とMSB(Most Significant Bit)との間のエントリー位置番号EPに対応している。各エントリーには参照ビット格納部31に格納される参照ビットRが存在し、参照ビットRからの出力が処理回路12Aに入力される。処理回路12Aはプライオリティエンコーダー10AとEXS処理部11から構成される。プライオリティエンコーダー10Aの3ビット出力が選ばれたエントリーの位置番号EPNを示し、EXS処理部11の出力が未使用エントリー存在信号EXSを示す。
【0055】
図11に示すように、各エントリーの参照ビット格納部31に格納された8ビットからなる参照ビットRの内部状態値を表す信号を、プライオリティエンコーダー10Aを通し、参照ビットRの内部状態値が“0”になっていてかつ最も左端に近い(MSB側と呼ぶ。)選ばれたエントリーの位置番号EPNをエンコードする。この場合の選ばれたエントリーの位置番号EPNとは、エントリーがセグメント内に置かれている位置を示す情報(番号)のことでエントリー自体の番号ではない。
【0056】
また、セグメント0において、参照ビットRの内部状態値が“0”であったエントリーが存在することを示す信号も出力する。即ち、未使用エントリー存在信号EXSで表される信号である。未使用エントリー存在信号EXSは、参照ビット格納部31に格納された全ての参照ビットRの内部状態値の信号情報をNANDゲート15(図10)に入力した結果の出力である。
【0057】
例えば、図11のセグメント0の処理を示す概要図において、エントリー[7:0]の参照ビットRの内部状態値が、上位側から“11011011”b(バイナリー)であったとすると、左MSB側から見て「エントリー5」と「エントリー2」が“0”になっていることを示すので、この2つのエントリーがヒットしていないという理由から更新対象になる。以上から、プライオリティエンコーダー10Aの出力である選ばれたエントリーの位置番号EPNは“5”である“101”になる。エントリー5(ちょうど位置情報とエントリー自体の番号が同じになっている。)が更新対象候補として、セグメント0から提示されることになる。ここで、未使用エントリー存在信号EXSの信号情報は“1”になる。
【0058】
他のセグメントも考えなければならないが、ここではこのセグメント0に注目して説明を続ける。もしこのセグメント0に属しているエントリーが、最終的に更新用のエントリーとして選ばれた場合には、図12に示すように、エントリーの位置番号が一番小さいLSB側(エントリー位置番号EP=0)のエントリー(この例ではエントリー0)が、一番大きいMSB側(エントリー位置番号EP=7)のエントリー(この例ではエントリー7)にローテート(移動)される。その結果、図13に示すように、エントリー0がMSB側に移動し、順次エントリー7,エントリー6,エントリー5,エントリー4,エントリー3,エントリー2,エントリー1とシフトして、LSB側にエントリー1が配置される。このように、LSB側のエントリー0からMSB側のエントリー7へローテートする理由は、基本的にエントリーの選択にプライオリティエンコーダー10Aを使っているため、更新されるエントリーがエントリー位置番号EPの大きい方に偏ってしまうのを防ぐためである。このような理由から、LSB側をMSB側にローテートしているわけである。図12及び図13によって更新対象セグメント内エントリーシャッフルが実行される様子が説明された。尚、図11乃至図13の説明においては、MSB側に注目してLSB側からMSB側にローテートする例について開示されているが、反対にLSB側に注目してMSB側からLSB側にローテートしてもよいことはもちろんである。またEXS処理部11をMSB側ではなく、LSB側に設定し、LSB側において未使用エントリー存在信号EXSを発生してもよい。
【0059】
本発明のキャッシュメモリー8のエントリーシャッフルの特徴は、
(a)複数のエントリーを単位として1個のセグメントを構成し、該セグメントを複数個備えたキャッシュメモリーにおいて、(b)それぞれのエントリーに付随する参照ビットを参照ビット格納部から処理回路に入力して、選ばれたエントリーの位置番号及び未使用エントリー存在信号を出力する段階と、(c)複数のエントリーをローテートして、選ばれたエントリーの位置番号及び前記未使用エントリー存在信号を出力する段階を繰り返し、エントリーシャッフルする段階とを備える。
【0060】
[セグメントシャッフル]
本発明の第1の実施の形態に係るキャッシュメモリーシステム50において、キャッシュメモリー8のセグメントシャッフルを実現するための構成は、図14に示すように、j個のセグメントと、j個のセグメントのそれぞれに付随するj個の未使用エントリー存在信号EXSをそれぞれ格納する未使用エントリー存在信号(EXS)格納部33と、j個の未使用エントリー存在信号EXSを入力する8 to 8 セレクター13Bと、8 to 8セレクター13Bからのj個の出力信号を入力し、選ばれたセグメントの位置番号SPNを出力するプライオリティエンコーダー10Bと、j個の未使用エントリー存在信号EXSを分岐して入力し、未ヒットエントリー存在信号Vを出力するORゲート17と、セグメントシャッフル信号SSHを受信して8 to 8セレクター13Bに対してセグメントセレクター制御信号SSCを送信するセグメントシャッフルカウンター16とを備える。図14において、8 to 8 セレクター13Bと、プライオリティエンコーダー10Bと、ORゲート17とを含む点線で囲まれた部分が処理回路12Bに対応している。
【0061】
次に、図15乃至図17を用いて、セグメントシャッフルについて説明する。残りの7個のセグメントとのセグメントシャッフルにおける関係については、エントリーシャッフルの場合と同様に、これもまた処理回路12B及び処理回路12B内に含まれるプライオリティエンコーダー10Bとローテート機能を使って処理をする。
【0062】
エントリーシャッフルにおいてはそれぞれのエントリーに付随する参照ビットRを格納する参照ビット格納部31であったところが、セグメントシャッフルにおいては、各セグメントから出力される未使用エントリー存在信号EXSを格納する未使用エントリー存在信号(EXS)格納部33になる。つまり、今度は各セグメントの未使用エントリー存在信号EXSを処理回路12B内のプライオリティエンコーダー10Bに入力して、更新可能なエントリーを含んでいるセグメントを選択しようという試みである。ここで選択されたセグメントが置かれている、選ばれたセグメントの位置番号SPNの情報に基づいて、更新対象のエントリーを含むセグメントを選択して、最終的に更新しても良いエントリーを選択していくという手法を採用する。図15中の未ヒットエントリー存在信号Vは、すべてのエントリー中で少なくとも1個のエントリーは更新しても良いエントリーがあったということを示す信号である。ここで、未ヒットエントリー存在信号Vが有効な信号を示していなければ、ヒットしていない(未使用の)エントリーは存在していないことを示すので、本当にランダムに更新するエントリーを選択する。
【0063】
更新するエントリーを含むセグメントが選択されると、セグメント内エントリーシャッフルと同様に、今回はセグメント同士のローテート処理を行う。理由はセグメントにおける説明と同様である。即ち、図16に示すように、セグメント位置番号SPが、一番小さいLSB側(セグメント位置番号SP=0)のセグメント(この例ではセグメント0)が、一番大きいMSB側(セグメント位置番号SP=7)のセグメント(この例ではセグメント7)にローテート(移動)される。その結果、図17に示すように、セグメント0がMSB側に移動し、順次セグメント7, セグメント6, セグメント5, セグメント4, セグメント3, セグメント2, セグメント1とシフトして、LSB側にセグメント1が配置される。このように、LSB側セグメント0からMSB側のセグメント7へローテートする理由は、基本的にセグメントの選択に処理回路12B内のプライオリティエンコーダー10B(図14参照)を使っているため、更新されるセグメントがセグメント番号SNの大きい方に偏ってしまうのを防ぐためである。このような理由から、LSB側(位置番号が最も小さなセグメント)をMSB側(位置番号が最も大きなセグメント)にローテートしているわけである。図16及び図17によってセグメントシャッフルが実行される様子が説明された。このように、2段階にわけてシャッフルをし、次の更新作業に備える。尚、図15乃至図17の説明においては、MSB側に注目してLSB側からMSB側にローテートする例について開示されているが、反対にLSB側に注目してMSB側からLSB側にローテートしてもよいことはもちろんである。またその場合、LSB側おいて未ヒットエントリー存在信号Vを発生してもよい。
【0064】
本発明のキャッシュメモリー8のセグメントシャッフル方法は、(a)複数のエントリーを単位として1個のセグメントを構成し、セグメントを複数個備えたキャッシュメモリーにおいて、(b)それぞれのエントリーに付随する参照ビットを参照ビット格納部から処理回路に入力して、選ばれたエントリーの位置番号及び未使用エントリー存在信号を出力する段階と、(c)複数のエントリーをローテートして、選ばれたエントリーの位置番号及び未使用エントリー存在信号を出力する段階を繰り返し、エントリーシャッフルする段階と、
エントリーシャッフルする段階に加え、(d)それぞれのセグメントに付随する未使用エントリー存在信号を未使用エントリー存在信号格納部から処理回路に入力して、選ばれたセグメントの位置番号及び未ヒットエントリー存在信号を出力する段階と、(e)複数個のセグメントをローテートして、選ばれたセグメントの位置番号及び未ヒットエントリー存在信号を出力する段階を繰り返し、セグメントシャッフルする段階とを備える。
【0065】
図14はこれらセグメントをまとめた図になっている。即ち、本発明の第1の実施形態に係る、キャッシュメモリーシステムを構成する全体ハードウェアは、図14に示すように、全体としてみると、8個のセグメントと、8 to 8セレクター13Bと、プライオリティエンコーダー10Bと、ORゲート17とセグメントシャッフルカウンター16とから構成される。各セグメントには、未使用エントリー存在信号(EXS)格納部33及び選ばれたエントリーの位置番号(EPN)格納部41が存在する。各セグメントの未使用エントリー存在信号(EXS)格納部33に格納された未使用エントリー存在信号EXSは、8 to 8セレクター13Bに入力される。8 to 8セレクター13Bは、セグメント自体のシャッフル用として使用される。即ち、セグメントシャッフルは、セグメントに含まれているエントリーが最終的に更新対象として選択され、該当するエントリーが更新された後に実行される。8 to 8セレクター13Bは、図10中に示された8 to 8セレクター13Aと同様に入力が8本、出力が8本あり、入力と出力が一対一に対応するように接続したセレクターである。8 to 8セレクター13Bは、図14に示すように、専用のセグメントシャッフルカウンター16から供給される、セグメントセレクター制御信号SSCによって制御される。このセグメントシャッフルカウンター16は、図10のエントリーシャッフルカウンター14とは別のカウンターであるが、機能としては同様の減算カウンターである。前述したセグメントシャッフルが実行されるときに、セグメントシャッフル信号SSHを受けて出力状態値を変更する。
【0066】
具体例を挙げると、このセグメントシャッフルカウンター16の出力状態値は3ビットの信号で構成される。この3ビットの信号による8通りの組み合わせに従って、8 to 8セレクター13Bを切り替えることができる。この点は、図10におけるエントリーシャッフルカウンター14及び8 to 8セレクター13Aにおける説明と同様である。セグメントシャッフルカウンター16の出力状態値は、例えばセグメント0が存在している位置と同じ値を示すものとする。即ち、セグメント0が、セグメント位置番号SP=0にいる場合には、セグメントシャッフルカウンター16の出力状態値は0、そしてセグメント0が、セグメント位置番号SP=6の位置にいる場合には、セグメントシャッフルカウンター16の出力状態値は6とする。そしてセグメントシャッフルカウンター16の出力状態値が決まれば、その他のセグメントの接続も決まるものとする。未使用エントリー存在信号(EXS)格納部33に格納されたそれぞれの未使用エントリー存在信号EXSは、図14に示すように、分岐されて、一方はORゲート17に送られ、他方は8 to 8セレクター13Bに送られる。
【0067】
8 to 8セレクター13Bを通過した各セグメントの未使用エントリー存在信号EXSは、プライオリティエンコーダー10Bに送られる。未ヒットエントリー存在信号Vは、少なくとも1つのセグメント内にはヒットしていないエントリーがあったということを示す。ORゲート17は、未ヒットエントリー存在信号Vを生成するための回路であり、各セグメントの中の未使用エントリー存在信号(EXS)格納部33に格納された未使用エントリー存在信号EXSの内、少なくとも1つが“1”であった場合に、未ヒットエントリー存在信号Vの情報は“1”になり、ヒットしていないエントリーがあったことを示す。
【0068】
プライオリティエンコーダー10Bは、8個のセグメントの未使用エントリー存在信号格納部33に格納された各々の未使用エントリー存在信号EXSの内部状態値の中で、未使用エントリー存在信号(EXS)の信号状態値が“1”になっているセグメントを選び、その中で図15乃至17において説明したように、MSB側に近い位置に存在するセグメント位置番号SPを選ばれたセグメントの位置番号SPNとして出力する回路である。セグメント位置番号SPはセグメントそのものの番号ではなく、セグメントが置かれている位置の番号に相当する。
【0069】
以上の結果得られるのは、全エントリーの中で未ヒットのエントリーがあったかどうかという情報に相当する未ヒットエントリー存在信号Vに関する情報と、未ヒットのエントリーを含むセグメントの内の選ばれた1つのセグメント情報としての選ばれたセグメントの位置番号SPNの情報である。
【0070】
また、同時に各セグメントからは、図14に示すように、選ばれたエントリーの位置番号(EPN)格納部41において、未ヒットエントリーの内の選ばれた1つのエントリー情報として、選ばれたエントリーの位置番号EPNの情報が得られる。従って、エントリーの更新要求があった場合には、ただちに上記の情報に基づいて、未ヒットのエントリーを選び出すことができる。
【0071】
ただし、選ばれたセグメントの位置番号SPNと選ばれたエントリーの位置番号EPNはエントリーそのものの番号を示していないので、次に示す方法によって、エントリー番号ENを求めることができる。ここで、エントリー番号ENを導き出す構成は、一例として、図18に示すように、減算回路24,25を使用する。
【0072】
まず更新するエントリーを含むセグメントを導き出す方法は以下に示す通りである。即ち、図18を参照して、「セグメントシャッフルカウンター16の値」をSSCNT,「選ばれたセグメントの位置番号SPNの値」をSPNとして、減算回路24を動作させる。即ち、
Figure 0003808837
で表される。この結果は、本例では3ビットの値として生成される。仮に結果をUSELとする。
【0073】
次にセグメント内の更新対象エントリーの番号を導き出す方法は以下に示す通りである。即ち、図18を参照して、「エントリーシャッフルカウンター14の値」をESCNT,「選ばれたエントリーの位置番号EPNの値」をEPNとして、減算回路25を動作させる。
【0074】
Figure 0003808837
で表される。この結果も3ビットの値として生成される。仮に結果をLSELとする。
【0075】
以上によって、選ばれる更新対象エントリーの番号は、USELとLSELの計6ビットによって指定することができる。ここで、USELが上位側、LSELが下位側である。以上のようにして、エントリー番号ENを導き出すことができる。
【0076】
シャッフル信号の生成方法は以下の通りである。即ち、セグメントシャッフル信号SSHは、実際にあるエントリーの更新が行なわれた直後に生成される。エントリー更新とシャッフル実行の関係を時間軸で説明すると、図19に示すように、処理の流れIFの矢印に対して更新要求RD、更新再開RR、更新終了RE、シャッフル実行SHEの順番となる。
【0077】
セグメントシャッフル信号SSHの供給に関しては、セグメントシャッフルが実行されるたびに、セグメントシャッフルカウンター16に対して発行される。エントリーシャッフルカウンター14に対しては、更新対象となったエントリーを含むセグメントのエントリーシャッフルカウンター14に対して、発行される。この方法は、シャッフル信号SSHをUSELの値で選択されたセグメントに対してのみ供給するというものである。例えば、セグメントへのシャッフル信号供給は、図20に示すように、デマルチプレクサ18に対してセグメントシャッフル信号SSHとUSEL[2:0]を入力することによって行われる。即ち、デマルチプレクサ18に対してセグメントシャッフル信号SSHとUSEL[2:0]を入力すると、シャッフル信号(セグメント 0)SSH0,シャッフル信号(セグメント 1)SSH1,・・・,シャッフル信号(セグメント 7)SSH7を発生する。具体的には、USEL[2:0]=“0”の時、セグメントシャッフル信号SSHは、セグメント0にのみ供給され、USEL[2:0]=“1”の時には、セグメント1にのみ供給される。以下同様にして、USEL[2:0]=“7”の時には、セグメント7にのみ供給される。
【0078】
フルアソシエイティブ方式のキャッシュメモリーの場合、その更新エントリーを選択する際には、回路設計の煩雑さを回避するために、ランダムにエントリーを選択する手法が用いられるため、使用頻度が高いエントリーが更新されてしまう可能性があるのに対して、本発明のキャッシュメモリー及びキャッシュメモリー更新方法によれば、未使用のエントリーから、更新エントリーを自動的に選択することができるようになるので、無駄が生じにくく時間効率がよい。
【0079】
また本発明のキャッシュメモリーシステムによれば、キャッシュメモリーの更新において、ランダムにエントリーを選択する必要が無いため、使用頻度が高いエントリーを更新する可能性は低く、未使用のエントリーから更新エントリーを自動的に選択することができるようになるので、効率のよいキャッシュメモリーシステムを提供することができる。
【0080】
(第2の実施の形態)
本発明の第1の実施形態に係るキャッシュメモリーシステムにおいて説明した通り、更新用エントリー検索において、未ヒットエントリー存在信号Vが有効な信号を示していない場合、即ち、ヒットしていない(未使用)エントリーが存在しなかった場合には、本当にランダムに更新するエントリーを選択する。ソフトウェアの動作環境に対してハードウェアが提供するキャッシュメモリー8のエントリー数が物理的に少なすぎるという理由で、ヒットしていないエントリーが存在しなかったという場合には、ランダムに更新するエントリーを選択することになる。インターバルタイマー3の周期TIが長すぎるということが原因で、ヒットしていないエントリーが存在しなかったという場合には、インターバルタイマー3の周期TIを短く設定することで対策が可能である。しかしながら、以上の動作をソフトウェアですべて管理する場合には、取り扱うデータ量は膨大なものなる。
【0081】
本発明の第2の実施の形態に係るキャッシュメモリーシステム51は、更新用エントリー検索をハードウェアで自動的に行うものである。本発明の第2の実施の形態に係るキャッシュメモリーシステム51は、キャッシュメモリー8とインターバルタイマー3によるカウント制御機構を備える。全体構成は、図21に示すように、エントリー0,エントリー1,…,エントリーn−2,エントリーn−1からなる複数のエントリーと複数のエントリーのそれぞれに対応する複数の情報格納部1と複数の情報格納部1に付随する参照ビットRを格納する複数の参照ビット格納部31とからなるキャッシュメモリー8と、未使用エントリー判定部23と、カウントクロック生成部21と、状況レジスター22と、制御レジスター4と、インターバルタイマー3と、ヒット下限数レジスター19と、ヒット上限数レジスター20とから構成される。図21に示すように、ヒット上限数レジスター20の代わりに未ヒットエントリー存在信号(V)発生部36を使用することも可能である。
【0082】
図1及び図2に示した本発明の第1の実施の形態に係るキャッシュメモリーシステム50と同様に、インターバルタイマー3は、制御レジスター4で設定した制御情報CIに従って、インターバルタイマー3の周期TIで、世代交代信号ISを参照ビット格納部31に対して出力する。この世代交代信号ISは、図2に示した第1の実施の形態と同様に、参照ビット格納部31を構成するレジスター情報の世代管理を行うために使用される。インターバルタイマー3が動作するために必要なクロックCLKは、図21中のカウントクロック生成部21から供給される。カウントクロック生成部21は、基本的にプロセッサーに供給されるメインのクロックを任意に分周した周期で、インターバルタイマー3の動作用のクロックCLKを生成する。カウントクロック生成部21が出力するクロックCLKの周期は、実際には未使用エントリー判定部23が出力するカウントクロック制御信号CCCによって制御される。カウントクロック制御信号CCCによって、元々ハードウェアで定義されたインターバルタイマー3の動作用クロックCLKの周期を、長くしたり短くしたりと調整することができるようになっている。
【0083】
未使用エントリー判定部23は、図21に示すように、ヒット上限数レジスター20からのヒット上限数信号HUN若しくは未ヒットエントリー存在信号発生部36からの未ヒットエントリー存在信号Vを受信する。或いはまた、ヒット下限数レジスター19からのヒット下限数信号HLNも受信し、カウントクロック制御信号CCCをカウントクロック生成部21に対して送信する。また、状況レジスター22は、カウントクロック生成部21が出力しているクロックCLKのクロック周波数情報CFIを格納する記憶素子である。
【0084】
未使用エントリー判定部23から生成されるカウントクロック制御信号CCCの周波数若しくは周期は以下のようにして決定される。即ち、参照ビット格納部31に格納された参照ビットRの内部状態値が“1”になっているエントリー数の合計値から、ある一定の閾値を越えたか下回ったりしたかを判定して、ある閾値(上限ヒット数)を越えた場合にはカウントクロック制御信号CCCの周波数を上げ(周期を短くし)、ある閾値(ヒット下限数)を下回った場合にはカウントクロック制御信号CCCの周波数を下げる(周期を長くする)。
【0085】
具体例を示すのであれば、未ヒットエントリー存在信号発生部36からの未ヒットエントリー存在信号Vが“0”であった場合には未使用のエントリーが無かったということで、インターバルタイマー3の周期TIを短くする。即ち、カウントクロック生成部21によって生成されるクロックCLKの周期を短くする。また別の方法としては、参照ビット格納部31に格納された参照ビットRの内部状態値が“1”になっているヒットエントリー数が非常に多く、ある閾値(図13でいうヒット上限数レジスター20に設定された値としてのヒット上限数)を上回った時にも同様に、カウントクロック生成部21によって生成されるクロックCLKの周期を短くする。参照ビット格納部31に格納された参照ビットRの内部状態値が“1”になっているヒットエントリー数が、ヒット上限数レジスター20に設定された値としてのヒット上限数を上回った時には、図21に示すように、ヒット上限数レジスター20からヒット上限数信号HUNが未使用エントリー判定部23に対して送信される。
【0086】
逆に、参照ビット格納部31に格納された参照ビットRの内部状態値が“0”になっているミスヒットエントリー数が非常に多い場合、つまり参照ビットRの内部状態値が“1”になっているヒットエントリー数が非常に少なく、ある閾値(図21でいうヒット下限数レジスター19に設定された値としてのヒット下限数)を下回った時には、インターバルタイマー3の周期TIを長くして、長期間かけてエントリーの使用状況を監視するようにする。参照ビット格納部31に格納された参照ビットRの内部状態値が“1”になっているヒットエントリー数がヒット下限数レジスター19に設定された値としてのヒット下限数を下回った時には、図21に示すように、ヒット下限数レジスター19からヒット下限数信号HLNが未使用エントリー判定部23に対して送信される。
【0087】
本発明の第2の実施の形態に係るキャッシュメモリーにおいて、未使用エントリー判定部23の判定アルゴリズムに基づくフローチャートは、図22に示すように、ステップS1からステップS5により構成される。
【0088】
(a) ステップS1において、インターバルタイマー3から参照ビット格納部31に対して世代交代信号ISを入力する。
【0089】
(b) 次にステップS2に進み、ステップS2において、参照ビット格納部31に格納された参照ビットRの内部状態値が“1”になっているヒットエントリー数が、ヒット上限数レジスター20に設定された値としてのヒット上限数を超えるかどうかを判断する。
【0090】
(c) ステップS2の結果、YESであるならば、ステップS5において、カウントクロック制御信号CCCの周波数を上げ、インターバルタイマー3の周期TIを短くし、その後ステップS1に戻る。
【0091】
(d) ステップS2の結果、NOであるならば、ステップS3において、参照ビット格納部31に格納された参照ビットRの内部状態値が“1”になっているヒットエントリー数がヒット下限数レジスター19に設定された値としてのヒット下限数を下回るかどうかを判断する。
【0092】
(e) ステップS3の結果、YESであるならば、ステップS4に進み、カウントクロック制御信号CCCの周波数を下げ、インターバルタイマー3の周期TIを長くし、その後ステップS1に戻る。
【0093】
(f) ステップS3の結果、NOであるならば、ステップS1に戻る。
【0094】
このようにインターバルタイマー3の周期TIを、エントリーの使用数(ヒット数)に応じて自動的に制御することで、本発明の第2の実施の形態に係るキャッシュメモリーシステム51において、未使用エントリーのランダム選択機能が破綻しないように効率良く行うことができ、かつアプリケーションによるキャッシュの更新頻度が時間的に変動する場合でも柔軟にかつ自動的に対応することができる。
【0095】
また本発明のキャッシュメモリーシステム51によれば、ソフトウェア側がインターバルタイマー3の周期TIの設定を、頻繁にやり直す必要は無く、本アルゴリズム実現のために使用するインターバルタイマー3の周期TIの設定を、自動的に調節することができる。
【0096】
(その他の実施の形態)
上記のように、本発明は第1及び第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。したがって、本発明の技術範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【0097】
本発明の実施の形態にかかるキャッシュメモリーシステムは、一般のLSIや半導体集積回路に適用することができることはもちろんである。フルアソシエイティブ方式のキャッシュメモリーを使用するものであれば、画像・音声処理用ディジタルシグナルプロセッサー(DSP)或いはカスタムLSIに適用することもできる。したがって、フルアソシエイティブ方式のキャッシュメモリーを使用するものであれば、CPU、タイマーLSIのみならず、一般的な半導体集積回路等においても適用することができる。
【0098】
本発明の実施の形態において説明したフローチャートはプログラムの実行においてもそのまま適用できることはもちろんである。更にまた、このようなプログラムを記録した媒体として、例えば、ROM、CD−ROM、CD−R/W等によって、提供できることも明らかである。
【0099】
【発明の効果】
本発明のキャッシュメモリーシステムによれば、キャッシュメモリーの更新において、ランダムにエントリーを選択する必要が無いため、使用頻度が高いエントリーを更新する可能性は低く、未使用のエントリーから更新エントリーを自動的に選択することができる。
【0100】
また本発明のキャッシュメモリーシステムによれば、ソフトウェア側がタイマーの周期の設定を、自動的に調節することができ、時間効率がよい。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るキャッシュメモリーシステムの模式的ブロック構成図であって、キャッシュメモリーシステムとメインメモリーの接続関係を示す全体ブロック構成図。
【図2】本発明の第1の実施形態に係るキャッシュメモリーシステムの構成図であって、キャッシュメモリーとインターバルタイマーの接続関係を含む全体ブロック構成図。
【図3】インターバルタイマーからの世代交代信号IS及びインターバルタイマーの周期TIによる、第1の参照ビットRAと第2の参照ビットRBの内部状態値の移り変わりを示す模式図。
【図4】エントリーヒットHit1,Hit2によって、2回エントリーにヒットした例において、第1の参照ビットRAと第2の参照ビットRBの内部状態値の変化と動作を示す模式図。
【図5】本発明の第1の実施の形態に係るキャッシュメモリーシステムを構成する、参照ビット判定回路とその周辺回路のブロック構成図であって、使用状況記憶部に2ビット構成レジスター、4ビット構成レジスター及び2ビットカウンターを有する実施例。
【図6】使用状況記憶部に2ビット構成レジスターと4ビット構成レジスターを有する別の実施例。
【図7】使用状況記憶部に2ビット構成レジスターと2ビットカウンターを有する別の実施例。
【図8】使用状況記憶部に4ビット構成レジスターと2ビットカウンターを有する別の実施例。
【図9】キャッシュメモリーのエントリー数を64エントリーとした場合において、8分割して1セグメントを8エントリー分にて構成する分割方法の模式図。
【図10】本発明の第1の実施の形態に係るキャッシュメモリーシステムにおいて、キャッシュメモリーを構成するセグメント内のハードウェアの模式的構成図。
【図11】セグメント0における処理概要図であって、更新対象セグメント内エントリーシャッフルにおいて、ローテート前の状態を説明する模式図。
【図12】更新対象セグメント内エントリーシャッフルにおいて、ローテート状態を説明する模式図。
【図13】更新対象セグメント内エントリーシャッフルにおいて、ローテート後の状態を説明する模式図。
【図14】本発明の第1の実施の形態に係る、キャッシュメモリーを構成するセグメント8個分の全体ハードウェアの模式的構成図。
【図15】セグメント全体処理を説明する模式的構成図であって、ローテート前の状態を説明する模式図。
【図16】セグメント全体処理において、ローテート状態を説明する模式図。
【図17】セグメント全体処理において、ローテート後の状態を説明する模式図。
【図18】エントリー番号ENを求めるための構成を説明する模式図。
【図19】エントリー更新とシャッフル実行において、処理の流れを時間軸上で説明する模式図。
【図20】セグメントへのシャッフル信号供給を説明する模式的ブロック構成図。
【図21】本発明の第2の実施の形態に係るキャッシュメモリーシステムの模式的構成図であって、キャッシュメモリーとインターバルタイマーのカウント制御機構を備える全体ブロック構成図。
【図22】本発明の第2の実施の形態に係るキャッシュメモリーシステムを構成する、未使用エントリー判定部において、判定アルゴリズムに基づくフローチャート図。
【符号の説明】
1…情報格納部
2…使用状況記憶部
3…インターバルタイマー
4…制御レジスター
5…ヒット判定回路
6…参照ビット判定回路
7…参照ビット判定制御レジスター
8…キャッシュメモリー
9…2ビットカウンター
10A,10B…プライオリティエンコーダー
11…EXS処理部
12A,12B…処理回路
13A,13B…8 to 8 セレクター
14…エントリーシャッフルカウンター
15…NANDゲート
16…セグメントシャッフルカウンター
17…ORゲート
18…デマルチプレクサ
19…ヒット下限数レジスター
20…ヒット上限数レジスター
21…カウントクロック生成部
22…状況レジスター
23…未使用エントリー判定部
24,25…減算回路
30…プロセッサー
31…参照ビット格納部
32…選択参照ビット格納部
33…未使用エントリー存在信号(EXS)格納部
34…2ビット構成レジスター
35…4ビット構成レジスター
36…未ヒットエントリー存在信号発生部
37…第1の参照ビット格納部
38…第2の参照ビット格納部
39…第3の参照ビット格納部
40…第4の参照ビット格納部
41…選ばれたエントリーの位置番号(EPN)格納部
50,51…キャッシュメモリーシステム
60…メインメモリー(主記憶装置)
R,RA,RB,RC,RD…参照ビット
RS…選択参照ビット
PA…プロセッサーキャッシュアクセスアドレス情報
CA…キャッシュアドレス情報
CI…制御情報
HT…ヒット信号
Hit1,Hit2…エントリーヒット
IS…世代交代信号(トリガ信号)
CRR…現在の参照ビット
OLR…過去の参照ビット
DCS…判定制御信号
TI…インターバルタイマー3の周期
EN…エントリー番号
EP…エントリー位置番号
EXS…未使用エントリー存在信号
EPN…選ばれたエントリーの位置番号
SP…セグメント位置番号
SN…セグメント番号
SPN…選ばれたセグメントの位置番号
V…未ヒットエントリー存在信号
ESC…エントリーセレクター制御信号
ESH…エントリーシャッフル信号
SSC…セグメントセレクター制御信号
SSH…セグメントシャッフル信号
IF…処理の流れ
RD…更新要求
RR…更新再開
RE…更新終了
SHE…シャッフル実行
SSH0,SSH1,SSH2,SSH3,・・・,SSH7…シャッフル信号
CCC…カウントクロック制御信号
CLK…クロック
CFI…クロック周波数情報
S1,S2,S3,S4,S5,S6…ステップ
SSCNT…セグメントシャッフルカウンターの値
ESCNT…エントリーシャッフルカウンターの値
HUN…ヒット上限数信号
HLN…ヒット下限数信号

Claims (4)

  1. 主記憶装置に格納された情報の一部を取り込んで格納する情報格納部と、前記情報格納部に対応した参照ビットの一定期間の使用状況を格納する使用状況記憶部,前記使用状況記憶部内に格納された情報を受信する参照ビット判定回路,及び前記参照ビット判定回路において選択される選択参照ビットを格納する選択参照ビット格納部を備え,前記情報格納部に格納された情報の一定期間における使用状況を格納する参照ビット格納部とをそれぞれ備えるエントリーを複数有するキャッシュメモリーと、
    前記参照ビット格納部に接続され,前記参照ビット判定回路に対して判定制御信号を送信する参照ビット判定制御レジスターと、
    前記情報格納部に接続され、ヒット信号を前記参照ビット格納部に対して発生するヒット判定回路と、
    前記参照ビット格納部に接続され、前記使用状況記憶部,及び前記参照ビット判定回路に対して世代交代信号を送信するインターバルタイマー
    とを備え、
    前記使用状況記憶部は、第1の参照ビットを格納する第1の参照ビット格納部と第2の参照ビットを格納する第2の参照ビット格納部とを備え,それぞれ過去のヒット状況と現在のヒット状況を記憶するとともに、前記参照ビット判定回路は、前記参照ビット判定制御レジスターから前記判定制御信号を受信して、前記エントリー毎に過去と現在のヒット状況に基づいて最終的な選択参照ビットを生成することを特徴とするキャッシュメモリーシステム。
  2. 前記インターバルタイマーに接続された制御レジスターを更に備えることを特徴とする請求項1に記載のキャッシュメモリーシステム。
  3. 前記ヒット判定回路は、前記情報格納部からのキャッシュアドレス情報とプロセッサーからのプロセッサーキャッシュアクセスアドレス情報とを比較して前記ヒット信号を前記参照ビット格納部に対して発生することを特徴とする請求項1に記載のキャッシュメモリーシステム。
  4. 前記インターバルタイマーは、前記制御レジスターから制御信号を受信して、前記使用状況記憶部と前記参照ビット判定回路に対して、前記世代交代信号を発生することを特徴とする請求項2に記載のキャッシュメモリーシステム。
JP2003065192A 2003-03-11 2003-03-11 キャッシュメモリーシステム Expired - Fee Related JP3808837B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003065192A JP3808837B2 (ja) 2003-03-11 2003-03-11 キャッシュメモリーシステム
US10/449,108 US7376797B2 (en) 2003-03-11 2003-06-02 Cache memory system and method using reference bits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003065192A JP3808837B2 (ja) 2003-03-11 2003-03-11 キャッシュメモリーシステム

Publications (2)

Publication Number Publication Date
JP2004272772A JP2004272772A (ja) 2004-09-30
JP3808837B2 true JP3808837B2 (ja) 2006-08-16

Family

ID=32959178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003065192A Expired - Fee Related JP3808837B2 (ja) 2003-03-11 2003-03-11 キャッシュメモリーシステム

Country Status (2)

Country Link
US (1) US7376797B2 (ja)
JP (1) JP3808837B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080220B2 (en) * 2003-07-03 2006-07-18 International Business Machines Corporation Page replacement with a re-reference indicator
US7685368B1 (en) * 2006-06-28 2010-03-23 Emc Corporation Methods and apparatus for removing data from a cache
US8949535B1 (en) * 2013-02-04 2015-02-03 Amazon Technologies, Inc. Cache updating
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63129441A (ja) 1986-11-19 1988-06-01 Nec Corp 仮想記憶管理装置
JPS6442749U (ja) 1987-09-10 1989-03-14
JPH03235148A (ja) 1990-02-13 1991-10-21 Hitachi Ltd 計算機システム
JPH04124749A (ja) 1990-09-14 1992-04-24 Nec Corp ページアウト対象ページ選択方式
JP3119919B2 (ja) 1991-12-11 2000-12-25 富士通株式会社 計算機システム
TW212840B (en) 1992-04-22 1993-09-11 Ibm Multi-bit vector for page aging
US5432917A (en) 1992-04-22 1995-07-11 International Business Machines Corporation Tabulation of multi-bit vector history
US5493663A (en) 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
JPH05303528A (ja) 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
JPH07152652A (ja) 1993-11-29 1995-06-16 Canon Inc 仮想記憶制御方法及び情報処理装置
US6000017A (en) * 1995-01-20 1999-12-07 Intel Corporation Hybrid tag architecture for a cache memory
JP3370227B2 (ja) 1996-03-04 2003-01-27 川崎マイクロエレクトロニクス株式会社 連想メモリ
JPH1021733A (ja) 1996-07-08 1998-01-23 Tamron Co Ltd 透過部材照明装置
JP3043732B1 (ja) 1998-12-18 2000-05-22 甲府日本電気株式会社 データ置換システム
US7120836B1 (en) * 2000-11-07 2006-10-10 Unisys Corporation System and method for increasing cache hit detection performance
JP3702950B2 (ja) 2001-09-18 2005-10-05 日本電気株式会社 連想記憶メモリ装置

Also Published As

Publication number Publication date
JP2004272772A (ja) 2004-09-30
US7376797B2 (en) 2008-05-20
US20040181633A1 (en) 2004-09-16

Similar Documents

Publication Publication Date Title
US7502887B2 (en) N-way set associative cache memory and control method thereof
US7958311B2 (en) Cache line replacement techniques allowing choice of LFU or MFU cache line replacement
JP5217432B2 (ja) セクタ機能付きキャッシュメモリ
US6990557B2 (en) Method and apparatus for multithreaded cache with cache eviction based on thread identifier
US7099999B2 (en) Apparatus and method for pre-fetching data to cached memory using persistent historical page table data
US7805574B2 (en) Method and cache system with soft I-MRU member protection scheme during make MRU allocation
US7321954B2 (en) Method for software controllable dynamically lockable cache line replacement system
JP2005528695A (ja) キャッシュ置換ポリシーの簡略化した実施態様を用いたマルチスレッド化キャッシュのための方法および装置
CN102110058A (zh) 一种低缺失率、低缺失惩罚的缓存方法和装置
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
US20050188158A1 (en) Cache memory with improved replacement policy
US12066935B2 (en) Cache line compression prediction and adaptive compression
US7555610B2 (en) Cache memory and control method thereof
JP4009304B2 (ja) キャッシュメモリおよびキャッシュメモリ制御方法
JP2001195304A (ja) キャッシュ記憶装置
JP3808837B2 (ja) キャッシュメモリーシステム
JP2010102623A (ja) キャッシュメモリ及びその制御方法
WO2023173995A1 (en) Cache line compression prediction and adaptive compression
US20110179227A1 (en) Cache memory and method for cache entry replacement based on modified access order
US7428632B2 (en) Branch prediction mechanism using a branch cache memory and an extended pattern cache
JP5453500B2 (ja) ストア制御装置、情報処理装置、および、ストア制御方法
JP3593123B2 (ja) セットアソシアティブ方式のメモリ装置
EP0752659A1 (en) Apparatus and method for accessing a cache memory having partial tags
JP2010191754A (ja) キャッシュ記憶装置
JP2003177965A (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060518

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

Free format text: PAYMENT UNTIL: 20090526

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100526

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110526

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees