JP3940148B2 - メモリ制御装置およびキャッシュリプレース制御方法 - Google Patents

メモリ制御装置およびキャッシュリプレース制御方法 Download PDF

Info

Publication number
JP3940148B2
JP3940148B2 JP2004553121A JP2004553121A JP3940148B2 JP 3940148 B2 JP3940148 B2 JP 3940148B2 JP 2004553121 A JP2004553121 A JP 2004553121A JP 2004553121 A JP2004553121 A JP 2004553121A JP 3940148 B2 JP3940148 B2 JP 3940148B2
Authority
JP
Japan
Prior art keywords
cache
way
request
replacement
hit
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
JP2004553121A
Other languages
English (en)
Other versions
JPWO2004046933A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004046933A1 publication Critical patent/JPWO2004046933A1/ja
Application granted granted Critical
Publication of JP3940148B2 publication Critical patent/JP3940148B2/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

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

本発明は、メモリ制御装置およびキャッシュリプレース制御方法に関するものであり、特に、複数同時アクセスに対応でき、実装面積を削減しつつキャッシュ性能を向上させることができるメモリ制御装置およびキャッシュリプレース制御方法に関するものである。
第8図は、従来のキャッシュメモリ装置20の構成を示すブロック図である。この図に示したキャッシュメモリ装置20は、CPU(Central Processing Unit)10と主記憶装置30との間の速度差を埋めるために、キャッシュメモリを備えた装置である。このキャッシュメモリは、後述するキャッシュタグRAM(Random Access Memory)22およびキャッシュデータRAM23から構成されている。
CPU10は、キャッシュメモリ装置20に対して、データのリードまたはライトに関するリクエストを出し、キャッシュメモリまたは主記憶装置30からデータのリード/ライトを行う。
主記憶装置30は、大容量であってかつアクセス時間がキャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)に比して遅いという特性を備えている。この主記憶装置30には、CPU10で用いられるデータの全てが記憶されている。
キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)は、主記憶装置30に記憶されている全データのうち、一部(頻繁に使用されるデータ)を記憶している。キャッシュメモリは、例えば、SRAM(Static Random Access Memory)であり、アクセス時間が主記憶装置30に比して短いという特性を備えている。
さらに、記憶容量の面から見れば、主記憶装置30よりもキャッシュメモリの記憶容量が小さい。
ここで、キャッシュメモリ装置20においては、データ格納方式として、セットアソシアティブ方式が採用されている。このセットアソシアティブ方式は、第9図に示したようにキャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)を複数のウェイ(ウェイ0およびウェイ1)に分割しておき、各ウェイにおける決められたラインにデータが格納される方式である。
同図に示したキャッシュタグRAM22においては、例えば、ウェイ0のラインNにアドレスaが格納されており、ウェイ1のラインNにアドレスbが格納されている。
また、キャッシュデータRAM23においては、例えば、ウェイ0のラインNにデータAが格納されており、ウェイ1のラインNにデータBが格納されている。キャッシュタグRAM22およびキャッシュデータRAM23においては、アドレスaとデータAとが、アドレスbとデータBとがそれぞれ一対一で対応している。
第8図に戻り、キャッシュタグ部21は、CPU10からのリクエスト(アドレス)を受付け、キャッシュタグRAM22およびヒット判定部24から構成されている。キャッシュタグRAM22は、キャッシュデータRAM23(第9図参照)に格納されているデータに対応するアドレス(タグ)を格納している。
ヒット判定部24は、CPU10からのアドレスと、キャッシュタグRAM22のアドレスとを比較し、両者が一致した場合、ヒット判定結果を「キャッシュヒット」とする。「キャッシュヒット」の場合には、当該アドレスに対応するデータがキャッシュデータRAM23に存在することを意味している。
一方、CPU10からのアドレスと、キャッシュタグRAM22のアドレスとが不一致である場合、ヒット判定部24は、ヒット判定結果を「キャッシュミス」とする。「キャッシュミス」の場合には、当該アドレスに対応するデータがキャッシュデータRAM23に存在しないことを意味している。
「キャッシュミス」の場合には、主記憶装置30から当該アドレスに対応するデータが読み出され、キャッシュデータRAM23で当該データがリプレース(書き換え)された後、CPU10へ渡される。ここで、リプレースする場合には、キャッシュデータRAM23においてあるウェイのデータを追い出す必要がある。そして、上記ウェイに主記憶装置30からのデータが格納される。
ここで、従来のキャッシュメモリ装置20において、複数のウェイの中から、リプレース対象のウェイ(以下、リプレースウェイと称する)を選択するアルゴリズムとしては、最も使用されていなかったデータが格納されたウェイを選択するというLRU(Last Recently Used)方式が採用されている。
また、ヒット判定部24は、ヒット判定結果をシングルポートLRU・RAM26およびキャッシュデータRAM23へ通知する。
リプレース部25は、ヒット判定結果が「キャッシュミス」である場合に、キャッシュデータRAM23(第9図参照)でリプレースすべきウェイを選択する機能を備えており、シングルポートLRU・RAM26およびLRUリプレースウェイ選択部27から構成されている。
シングルポートLRU・RAM26は、一つの入力ポートを備えており、キャッシュデータRAM23でデータをリプレースする場合に、前述したLRU方式により選択されたリプレースウェイを表すリプレースウェイ情報を格納している。
具体的には、第9図に示したように、シングルポートLRU・RAM26には、ライン毎にリプレースウェイの番号(0)に対応するリプレースウェイ情報が格納されている。同図では、ラインNには、リプレースウェイとしてのウェイ0を表すリプレースウェイ情報が格納されている。
つまり、キャッシュデータRAM23においては、ウェイ0(ラインN)に格納されているデータAが、最も使用されていなかったデータである。
第8図に戻り、LRUリプレースウェイ選択部27は、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、シングルポートLRU・RAM26を参照して、LRU方式によりリプレースウェイを選択した後、LRUリプレース要求(アドレスを含む)を主記憶装置30へ出す。
主記憶装置30は、上記LRUリプレース要求に対応するアドレスからデータを読み出し、これをキャッシュデータRAM23のリプレースウェイ(ライン)に格納し、リプレース処理を実行する。
つぎに、従来のキャッシュメモリ装置20の動作について、第10図に示したフローチャートを参照しつつ説明する。ステップSA1では、ヒット判定部24は、CPU10よりリクエスト(従来では、データのリードの場合を例にとって説明)があるか否かを判断し、この場合、判断結果を「No」として、同判断を繰り返す。
そして、CPU10からリクエストがあると、ヒット判定部24は、ステップSA1の判断結果を「Yes」とする。ステップSA2では、ヒット判定部24は、キャッシュタグRAM22にアクセスし、CPU10からのアドレスと、キャッシュタグRAM22のアドレスとを比較し、ヒット判定を行う。
ステップSA3では、ヒット判定部24は、キャッシュヒットしたか否かを判断する。ステップSA3の判断結果が「Yes」である場合、すなわち、ヒット判定結果が「キャッシュヒット」である場合、ステップSA4では、キャッシュデータRAM23からCPU10へデータが転送される。
すなわち、ヒット判定部24からヒット判定結果(キャッシュヒット)がキャッシュデータRAM23へ通知されると、キャッシュデータRAM23の当該アドレスに格納されているデータがリードされ、このデータがCPU10へ転送される。
一方、ステップSA3の判断結果が「No」である場合、すなわち、ヒット判定結果が「キャッシュミス」である場合、ステップSA5では、ヒット判定部24は、リプレース部25(シングルポートLRU・RAM26)およびキャッシュデータRAM23へヒット判定結果(「キャッシュミス」)を通知する。
ステップSA6では、LRUリプレースウェイ選択部27は、ヒット判定結果(「キャッシュミス」)を受けて、シングルポートLRU・RAM26を参照し、前述したLRU方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSA7では、LRUリプレースウェイ選択部27は、主記憶装置30へ、ステップSA6で選択されたリプレースウェイに対応するLRUリプレース要求(アドレスを含む)を出す。
ステップSA8では、主記憶装置30は、LRUリプレース要求を受けて、当該アドレスからデータを読み出す。ステップSA9では、主記憶装置30は、読み出したデータをキャッシュデータRAM23へ転送する。
ステップSA10では、LRUリプレースウェイ選択部27で選択されたリプレースウェイ(ライン)にデータが格納(リプレース)されるというリプレース処理が実行される。ステップSA4では、キャッシュデータRAM23からCPU10へ当該データが転送される。
ここで、近年では、マイクロプロセッサで複数の処理を同時に実行するスーパスカラ方式が採用されているものが多く見受けられる。このスーパスカラ方式においては、複数の処理に応じて複数のリクエストを処理可能なキャッシュメモリ装置が必要とされる。
従来では、上記ニーズを受けて、例えば、第8図に示したシングルポートLRU・RAM26に代えて、複数の入力ポートを有するマルチポートLRU・RAMを設けて、同時に複数のリプレースを行えるように構成している。
第11図は、上記マルチポートLRU・RAMを備えた従来のキャッシュメモリ装置40の構成を示すブロック図である。この図において、第8図の各部に対応する部分には同一の符号を付ける。
第11図においては、第8図に示したキャッシュメモリ装置20に代えて、キャッシュメモリ装置40が設けられている。キャッシュメモリ装置40においては、第8図に示したキャッシュタグ部21およびリプレース部25に代えて、キャッシュタグ部41およびリプレース部43が設けられている。
キャッシュタグ部41は、CPU10からの複数のリクエスト(アドレス)、すなわち、第1のリクエスト(アドレス)および第2のリクエスト(アドレス)を受け付け可能とされており、キャッシュタグRAM22およびヒット判定部42から構成されている。
ヒット判定部42は、CPU10からの第1のリクエストに対応するアドレスと、キャッシュタグRAM22のアドレスとを比較してヒット判定を行い、第1のヒット判定結果を通知する。
また、ヒット判定部42は、CPU10からの第2のリクエストに対応するアドレスと、キャッシュタグRAM22のアドレスとを比較してヒット判定を行い、第2のヒット判定結果を通知する。
リプレース部43は、第1のヒット判定結果および第2のヒット判定結果が共に「キャッシュミス」である場合に、キャッシュデータRAM23(第9図参照)でリプレースすべきウェイを並列的に選択する機能を備えており、マルチポートLRU・RAM44、第1のLRUリプレースウェイ選択部45および第2のLRUリプレースウェイ選択部46から構成されている。
マルチポートLRU・RAM44は、第1のヒット判定結果(第1のリクエスト)および第2のヒット判定結果(第2のリクエスト)に対応する二つの入力ポートを備えており、キャッシュデータRAM23でデータをリプレースする場合に、前述したLRU方式により選択されたリプレースウェイを表すリプレースウェイ情報を格納している。
第1のLRUリプレースウェイ選択部45は、第1のヒット判定結果(キャッシュミス)に対応して設けられており、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、マルチポートLRU・RAM44を参照して、LRU方式により第1のリプレースウェイを選択した後、第1のLRUリプレース要求(アドレスを含む)を主記憶装置30へ出す。
第2のLRUリプレースウェイ選択部46は、第2のヒット判定結果(キャッシュミス)に対応して設けられており、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、マルチポートLRU・RAM44を参照して、LRU方式により第2のリプレースウェイを選択した後、第2のLRUリプレース要求(アドレスを含む)を主記憶装置30へ出す。
主記憶装置30は、上記第1のLRUリプレース要求および第2のLRUリプレース要求に対応する各アドレスから第1のデータおよび第2のデータを読み出し、これらをキャッシュデータRAM23の第1のリプレースウェイ(ライン)および第2のリプレースウェイ(ライン)にそれぞれ格納し、並列的にリプレース処理を実行する。
ところで、前述したように従来のキャッシュメモリ装置40(第11図参照)においては、二つの入力ポートを有するマルチポートLRU・RAM44を設けて、CPU10からの複数の同時リクエストに対応させている。
しかしながら、マルチポートLRU・RAM44を採用した場合には、シングルポートLRU・RAM26(第8図参照)に比べて、実装面積が増加し、小型化の要請に応えることができないという問題があった。
そこで、第8図に示したキャッシュメモリ装置20においては、CPU10より複数の同時リクエストがあった場合に、一方のリクエストを先に処理した後、他方のリクエストを処理し直すという順番待ちの構成を採ることが考えられる。かかる構成では、複数の同時リクエストに対応してLRUリプレースウェイが順番に選択されるため、キャッシュメモリのヒット率が低下しないという利点を備えている。
しかしながら、パイプライン処理を行う構成では、他方のリクエストを処理し直す場合に、パイプラインの最初のステージまで処理が戻ってしまうため、当該他方のリクエストが処理されるまでに相当の時間がかかるという欠点を備えている。
このような処理時間の遅れは、科学技術演算やトランザクション処理等のように大規模データを扱う場合にキャッシュ性能の低下をもたらすことになる。
また、大規模データを扱う場合には、キャッシュメモリにデータが格納されても利用されることなくすぐにリプレースされる場合が多く、キャッシュヒット率の向上よりも、むしろキャッシュミス時に主記憶装置からデータをできるだけ早く持ってくることが求められている。
本発明は、上記に鑑みてなされたもので、複数同時アクセスに対応でき、実装面積を削減しつつキャッシュ性能を向上させることができるメモリ制御装置およびキャッシュリプレース制御方法を提供することを目的としている。
上記目的を達成するために、本発明は、上位装置と主記憶装置との間に設けられ、複数ウェイ構成のキャッシュメモリに対する制御を行うメモリ制御装置において、前記キャッシュメモリのリプレースに関するリプレースウェイ情報を保持するリプレースウェイ情報保持手段と、前記リプレースウェイ情報保持手段の前記リプレースウェイ情報に基づいて、リプレース対象の第1のウェイを選択する第1のリプレースウェイ選択手段と、前記リプレースウェイ情報を使用せずにリプレース対象の第2のウェイを選択する第2のリプレースウェイ選択手段と、前記上位装置から同時に発行され前記キャッシュメモリへのアクセスにかかる第1のリクエストおよび第2のリクエストのそれぞれについてヒット判定を行うヒット判定手段と、前記第1のリクエストおよび前記第2のリクエストに対応する前記ヒット判定が共にキャッシュミスである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択手段に前記第1のウェイを選択させるとともに、前記第2のリクエストに対応させて前記第2のリプレースウェイ選択手段に前記第2のウェイを選択させる調停手段と、を備えたことを特徴とする。
また、本発明は、上位装置と主記憶装置との間に設けられ、複数ウェイ構成のキャッシュメモリを有するキャッシュメモリ装置に適用されるキャッシュリプレース制御方法において、リプレースウェイ情報保持手段に保持され前記キャッシュメモリのリプレースに関するリプレースウェイ情報に基づいて、リプレース対象の第1のウェイを選択する第1のリプレースウェイ選択工程と、前記リプレースウェイ情報を使用せずにリプレース対象の第2のウェイを選択する第2のリプレースウェイ選択工程と、前記上位装置から同時に発行され前記キャッシュメモリへのアクセスにかかる第1のリクエストおよび第2のリクエストのそれぞれについてヒット判定を行うヒット判定工程と、前記第1のリクエストおよび前記第2のリクエストに対応する前記ヒット判定が共にキャッシュミスである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択工程で前記第1のウェイを選択させるとともに、前記第2のリクエストに対応させて前記第2のリプレースウェイ選択工程で前記第2のウェイを選択させる調停工程と、を含むことを特徴とする。
かかる発明によれば、第1のリクエストおよび第2のリクエストに対応するヒット判定が共にキャッシュミスである場合、第1のリクエストに対応させて第1のウェイを選択させるとともに、第2のリクエストに対応させてリプレースウェイ情報を使用せずにリプレース対象の第2のウェイを選択させることとしたので、シングルポートのリプレースウェイ情報保持手段で、複数同時アクセスに対応でき、実装面積を削減しつつキャッシュ性能を向上させることができる。
第1図は、本発明にかかる実施の形態1の構成を示すブロック図であり、第2図は、第1図に示したリプレース部103の動作を説明する図であり、第3図は、同実施の形態1の動作を説明するフローチャートであり、第4図は、本発明にかかる実施の形態2の構成を示すブロック図であり、第5図は、第4図に示したリプレース部201の動作を説明する図であり、第6図は、第4図に示したヒット状態判定部202の動作を説明する図であり、第7図は、同実施の形態2の動作を説明するフローチャートであり、第8図は、従来のキャッシュメモリ装置20の構成を示すブロック図であり、第9図は、第8図に示したキャッシュタグRAM22、キャッシュデータRAM23およびシングルポートLRU・RAM26の構成を示す図であり、第10図は、第8図に示したキャッシュメモリ装置20の動作を説明するフローチャートであり、第11図は、従来のキャッシュメモリ装置40の構成を示すブロック図である。
以下、図面を参照して本発明にかかる実施の形態1および2について詳細に説明する。
(実施の形態1)
第1図は、本発明にかかる実施の形態1の構成を示すブロック図である。この図において、第8図の各部に対応する部分には同一の符号を付ける。第1図においては、第8図に示したキャッシュメモリ装置20に代えて、キャッシュメモリ装置100が設けられている。
また、キャッシュメモリ装置100においては、第8図に示したキャッシュタグ部21およびリプレース部25に代えて、キャッシュタグ部101およびリプレース部103が設けられている。
キャッシュタグ部101は、CPU10からの複数のリクエスト(アドレス)、すなわち、第1のリクエスト(アドレス)および第2のリクエスト(アドレス)を受け付け可能とされており、キャッシュタグRAM22およびヒット判定部102から構成されている。
また、CPU10からは、第1のリクエストおよび第2のリクエストが同時に出される場合と、第1のリクエスト(または第2のリクエスト)が単独で出される場合とがある。
ヒット判定部102は、CPU10からの第1のリクエストに対応するアドレスと、キャッシュタグRAM22のアドレスとを比較してヒット判定を行い、第1のヒット判定結果を通知する。
また、ヒット判定部102は、CPU10からの第2のリクエストに対応するアドレスと、キャッシュタグRAM22のアドレスとを比較してヒット判定を行い、第2のヒット判定結果を通知する。
リプレース部103は、第2図に示したように、CPU10からの第1のリクエスト、第2のリクエストの有無に応じて、キャッシュデータRAM23(第9図参照)でリプレースすべきウェイを所定の方式(LRU方式、ランダム方式)で選択する機能を備えている。
ここで、LRU方式は、前述したように、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、最も使用されていなかったデータが格納されたウェイを選択する方式である。
一方、ランダム方式は、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、ランダムにウェイを選択する方式である。
リプレース部103は、シングルポートLRU・RAM26(第9図参照)、調停部104、ランダムリプレースウェイ選択部105およびLRUリプレースウェイ選択部27から構成されている。
シングルポートLRU・RAM26(第9図参照)は、前述したように、一つの入力ポートを備えており、キャッシュデータRAM23でデータをリプレースする場合に、LRU方式により選択されたリプレースウェイを表すリプレースウェイ情報を格納している。
調停部104は、第2図に示したように、CPU10からの第1のリクエスト、第2のリクエストの有無に応じて、第1のリクエストの処理、第2のリクエスト処理の調停を図る。
すなわち、第2図に示したように、第1のリクエストおよび第2のリクエストが共に無い(=0)場合には、いずれの処理もさせない。第1のリクエストのみが有る場合(=1)、すなわち、第1のヒット判定結果のみがヒット判定部102より入力された場合、調停部104は、第1のリクエストをLRU方式で処理すべく、第1のヒット判定結果をシングルポートLRU・RAM26へ渡す。
また、第2のリクエストのみが有る場合(=1)、すなわち、第2のヒット判定結果のみがヒット判定部102より入力された場合、調停部104は、第2のリクエストをLRU方式で処理すべく、第2のヒット判定結果をシングルポートLRU・RAM26へ渡す。
また、第1のリクエストおよび第2のリクエストの双方が同時に有る場合(=1)、すなわち、第1のヒット判定結果および第2のヒット判定結果の双方が同時にヒット判定部102より入力された場合、調停部104は、第1のリクエストをLRU方式で処理すべく、第1のヒット判定結果をシングルポートLRU・RAM26へ渡すとともに、第2のリクエストをランダム方式で処理すべく、ランダムリプレースウェイ選択部105へ渡す。
LRUリプレースウェイ選択部27は、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、シングルポートLRU・RAM26を参照して、LRU方式によりリプレースウェイを選択した後、リプレース要求(アドレスを含む)を主記憶装置30へ出す。
ランダムリプレースウェイ選択部105は、キャッシュメモリ(キャッシュタグRAM22およびキャッシュデータRAM23)における複数のウェイの中から、ランダム方式によりリプレースウェイを選択した後、リプレース要求(アドレスを含む)を主記憶装置30へ出す。
主記憶装置30は、上記両リプレース要求に対応する各アドレスから第1のデータ、第2のデータを読み出し、これらをキャッシュデータRAM23の各リプレースウェイ(ライン)に格納し、リプレース処理を実行する。
つぎに、上述した実施の形態1の動作について、第3図に示したフローチャートを参照しつつ説明する。
ステップSB1では、ヒット判定部102は、CPU10よりリクエスト(実施の形態1では、データのリードの場合を例にとって説明)があるか否かを判断し、この場合、判断結果を「No」として、同判断を繰り返す。
そして、CPU10から第1のリクエストおよび第2のリクエストが同時にあると、ヒット判定部102は、ステップSB1の判断結果を「Yes」とする。ステップSB2では、ヒット判定部102は、キャッシュタグRAM22にアクセスし、CPU10からの各アドレスと、キャッシュタグRAM22のアドレスとを比較し、第1のリクエストおよび第2のリクエストのそれぞれについてヒット判定を行う。
ステップSB3では、ヒット判定部102は、キャッシュヒットしたか否かを判断する。ステップSB3の判断結果が「Yes」である場合、すなわち、ヒット判定結果がそれぞれ「キャッシュヒット」である場合、ステップSB4では、キャッシュデータRAM23からCPU10へ第1のデータおよび第2のデータが転送される。
すなわち、ヒット判定部102から第1のヒット判定結果(キャッシュヒット)および第2のヒット判定結果(キャッシュヒット)がキャッシュデータRAM23へ通知されると、キャッシュデータRAM23の当該アドレスに格納されている第1のデータおよび第2のデータがリードされ、これらの第1のデータおよび第2のデータがCPU10へ転送される。
一方、ステップSB3の判断結果が「No」である場合、すなわち、「キャッシュミス」の場合、ステップSB5では、ヒット判定部102は、リプレース部103の調停部104へ第1のヒット判定結果(「キャッシュミス」)および第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB6では、調停部104は、通知された第1のヒット判定結果および第2のヒット判定結果に基づいて、同時複数のキャッシュミスがあるか否かを判断し、この場合、判断結果を「Yes」とする。
以後、ステップSB7〜ステップSB12と、ステップSB13〜ステップSB18とが並列的に実行される。
すなわち、ステップSB7では、調停部104は、シングルポートLRU・RAM26へ第1のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB8では、LRUリプレースウェイ選択部27は、第1のヒット判定結果(「キャッシュミス」)を受けて、シングルポートLRU・RAM26を参照し、前述したLRU方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSB9では、LRUリプレースウェイ選択部27は、主記憶装置30へ、ステップSB8で選択されたリプレースウェイに対応するリプレース要求を出す。
ステップSB10では、主記憶装置30は、リプレース要求を受けて、当該アドレスから第1のデータを読み出す。ステップSB11では、主記憶装置30は、読み出した第1のデータをキャッシュデータRAM23へ転送する。
ステップSB12では、LRUリプレースウェイ選択部27で選択されたリプレースウェイ(ライン)に第1のデータが格納(リプレース)されるというリプレース処理が実行される。
一方、ステップSB13では、調停部104は、ランダムリプレースウェイ選択部105へ第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB14では、ランダムリプレースウェイ選択部105は、第2のヒット判定結果(「キャッシュミス」)を受けて、前述したランダム方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSB15では、ランダムリプレースウェイ選択部105は、主記憶装置30へ、ステップSB14で選択されたリプレースウェイに対応するリプレース要求を出す。
ステップSB16では、主記憶装置30は、リプレース要求を受けて、当該アドレスから第2のデータを読み出す。ステップSB17では、主記憶装置30は、読み出した第2のデータをキャッシュデータRAM23へ転送する。
ステップSB18では、ランダムリプレースウェイ選択部105で選択されたリプレースウェイ(ライン)にデータが格納(リプレース)されるというリプレース処理が実行される。
ステップSB4では、キャッシュデータRAM23からCPU10へ第1のデータおよび第2のデータが転送される。
また、CPU10より第1のリクエストのみがあると、ヒット判定部102は、ステップSB1の判断結果を「Yes」とする。ステップSB2では、ヒット判定部102は、キャッシュタグRAM22にアクセスし、CPU10からのアドレスと、キャッシュタグRAM22のアドレスとを比較し、第1のリクエストについてヒット判定を行う。
ステップSB3では、ヒット判定部102は、キャッシュヒットしたか否かを判断する。ステップSB3の判断結果が「Yes」である場合、すなわち、ヒット判定結果が「キャッシュヒット」である場合、ステップSB4では、キャッシュデータRAM23からCPU10へデータが転送される。
すなわち、ヒット判定部102から第1のヒット判定結果(キャッシュヒット)がキャッシュデータRAM23へ通知されると、キャッシュデータRAM23の当該アドレスに格納されている第1のデータがリードされ、第1のデータがCPU10へ転送される。
一方、ステップSB3の判断結果が「No」である場合、すなわち、「キャッシュミス」の場合、ステップSB5では、ヒット判定部102は、リプレース部103の調停部104へ第1のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB6では、調停部104は、通知された第1のヒット判定結果に基づいて、同時複数のキャッシュミスがあるか否かを判断し、この場合、判断結果を「No」とする。
すなわち、ステップSB7では、調停部104は、シングルポートLRU・RAM26へ第1のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB8では、LRUリプレースウェイ選択部27は、第1のヒット判定結果(「キャッシュミス」)を受けて、シングルポートLRU・RAM26を参照し、前述したLRU方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSB9では、LRUリプレースウェイ選択部27は、主記憶装置30へ、ステップSB8で選択されたリプレースウェイに対応するリプレース要求を出す。
ステップSB10では、主記憶装置30は、リプレース要求を受けて、当該アドレスから第1のデータを読み出す。ステップSB11では、主記憶装置30は、読み出した第1のデータをキャッシュデータRAM23へ転送する。
ステップSB12では、LRUリプレースウェイ選択部27で選択されたリプレースウェイ(ライン)に第1のデータが格納(リプレース)されるというリプレース処理が実行される。
ステップSB4では、キャッシュデータRAM23からCPU10へ第1のデータが転送される。
また、CPU10より第2のリクエストのみがあると、ヒット判定部102は、ステップSB1の判断結果を「Yes」とする。ステップSB2では、ヒット判定部102は、キャッシュタグRAM22にアクセスし、CPU10からのアドレスと、キャッシュタグRAM22のアドレスとを比較し、第2のリクエストについてヒット判定を行う。
ステップSB3では、ヒット判定部102は、キャッシュヒットしたか否かを判断する。ステップSB3の判断結果が「Yes」である場合、すなわち、ヒット判定結果が「キャッシュヒット」である場合、ステップSB4では、キャッシュデータRAM23からCPU10へデータが転送される。
すなわち、ヒット判定部102から第2のヒット判定結果(キャッシュヒット)がキャッシュデータRAM23へ通知されると、キャッシュデータRAM23の当該アドレスに格納されている第2のデータがリードされ、第2のデータがCPU10へ転送される。
一方、ステップSB3の判断結果が「No」である場合、すなわち、「キャッシュミス」の場合、ステップSB5では、ヒット判定部102は、リプレース部103の調停部104へ第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB6では、調停部104は、通知された第2のヒット判定結果に基づいて、同時複数のキャッシュミスがあるか否かを判断し、この場合、判断結果を「No」とする。
すなわち、ステップSB7では、調停部104は、シングルポートLRU・RAM26へ第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSB8では、LRUリプレースウェイ選択部27は、第2のヒット判定結果(「キャッシュミス」)を受けて、シングルポートLRU・RAM26を参照し、前述したLRU方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSB9では、LRUリプレースウェイ選択部27は、主記憶装置30へ、ステップSB8で選択されたリプレースウェイに対応するリプレース要求を出す。
ステップSB10では、主記憶装置30は、リプレース要求を受けて、当該アドレスから第2のデータを読み出す。ステップSB11では、主記憶装置30は、読み出した第2のデータをキャッシュデータRAM23へ転送する。
ステップSB12では、LRUリプレースウェイ選択部27で選択されたリプレースウェイ(ライン)に第2のデータが格納(リプレース)されるというリプレース処理が実行される。
ステップSB4では、キャッシュデータRAM23からCPU10へ第2のデータが転送される。
なお、実施の形態1においては、第1のリクエスト(または第2のリクエスト)が単独で発行された場合に、LRUリプレースウェイ選択部27でLRU方式でリプレースウェイを選択する構成について説明したが、これに代えて、ランダムリプレースウェイ選択部105でランダム方式でリプレースウェイを選択する構成としてもよい。
以上説明したように、実施の形態1によれば、ヒット判定部102で第1のリクエストおよび第2のリクエストに対応するヒット判定が共にキャッシュミスである場合、第1のリクエストに対応させてLRUリプレースウェイ選択部27でウェイを選択させるとともに、第2のリクエストに対応させてシングルポートLRU・RAM26のリプレースウェイ情報を使用せずにリプレース対象のウェイをランダムリプレースウェイ選択部105に選択させることとしたので、シングルポートのシングルポートLRU・RAM26で、複数同時アクセスに対応でき、実装面積を削減しつつキャッシュ性能を向上させることができる。
(実施の形態2)
さて、前述した実施の形態1では、CPU10により、第1のリクエストおよび第2のリクエストが同時に発行され、第1のヒット判定結果および第2のヒット判定結果が共にキャッシュミスである場合に、LRU方式およびランダム方式によりリプレース処理を実行する例について説明したが、ヒット状態(キャッシュヒット多発またはキャッシュミス多発)に基づいて、リプレース処理に変化をつけるように構成してもよい。以下では、この構成例を実施の形態2として説明する。
第4図は、本発明にかかる実施の形態2の構成を示すブロック図である。この図において、第1図の各部に対応する部分には同一の符号を付ける。第4図においては、第1図に示したキャッシュメモリ装置100に代えて、キャッシュメモリ装置200が設けられている。
また、キャッシュメモリ装置200においては、第1図に示したリプレース部103に代えて、リプレース部201が設けられている。
リプレース部201は、第5図に示したように、CPU10からの第1のリクエスト、第2のリクエストの有無、後述するヒット状態に応じて、キャッシュデータRAM23(第9図参照)でリプレースすべきウェイを所定の方式(LRU方式、ランダム方式)で選択する機能を備えている。
リプレース部201においては、第1図に示した調停部104に代えて、ヒット状態判定部202および調停部203が設けられている。
ヒット状態判定部202は、第6図に示した状態遷移により、ヒット判定部102におけるヒット判定結果(第1のヒット判定結果、第2のヒット判定結果)が、キャッシュミスの傾向にあるか、またはキャッシュヒットの傾向にあるかを判定する。
具体的には、ヒット状態判定部202において、ヒット判定部102のヒット判定結果(第1のヒット判定結果、第2のヒット判定結果)がキャッシュヒットである場合、ヒット状態が一つ右へ遷移される。
一方、ヒット判定部102のヒット判定結果(第1のヒット判定結果、第2のヒット判定結果)がキャッシュミスである場合、ヒット状態が一つ左へ遷移される。
例えば、ヒット状態が「01」である場合に、ヒット判定結果がキャッシュヒットである場合、ヒット状態判定部202は、ヒット状態を右へ遷移させ、「01」から「10」とする。続いて、ヒット判定結果がキャッシュヒットである場合、ヒット状態判定部202は、ヒット状態を右へ遷移させ、「10」から「11」とする。
そして、ヒット判定結果がキャッシュミスになる場合、ヒット状態判定部202は、ヒット状態を左へ遷移させ、「11」から「10」とする。続いて、ヒット判定結果がキャッシュミスである場合、ヒット状態判定部202は、ヒット状態を左へ遷移させ、「10」から「01」とする。
ヒット状態判定部202は、ヒット状態が「10」または「11」である場合、ヒット判定結果が、キャッシュヒットの傾向にあるとして、ヒット状態を「キャッシュヒット」として、調停部203へ通知する。
一方、ヒット状態が「00」または「01」である場合、ヒット判定結果が、キャッシュミスの傾向にあるとして、ヒット状態を「キャッシュミス」として、調停部203へ通知する。
調停部203は、第5図に示したように、CPU10からの第1のリクエスト、第2のリクエストの有無、ヒット状態判定部202で判定されたヒット状態に応じて、第1のリクエストの処理、第2のリクエストの処理の調停を図る。
すなわち、第5図に示したように、ヒット状態が「キャッシュミス」(または「キャッシュヒット」)において、第1のリクエストおよび第2のリクエストが共に無い(=0)場合には、いずれの処理もさせない。
また、ヒット状態が「キャッシュミス」(または「キャッシュヒット」)において、第1のリクエストのみが有る場合(=1)、すなわち、第1のヒット判定結果のみがヒット判定部102より入力された場合、調停部203は、第1のリクエストをLRU方式で処理すべく、第1のヒット判定結果をシングルポートLRU・RAM26へ渡す。
また、ヒット状態が「キャッシュミス」(または「キャッシュヒット)において、第2のリクエストのみが有る場合(=1)、すなわち、第2のヒット判定結果のみがヒット判定部102より入力された場合、調停部203は、第2のリクエストをLRU方式で処理すべく、第2のヒット判定結果をシングルポートLRU・RAM26へ渡す。
また、ヒット状態が「キャッシュミス」において、第1のリクエストおよび第2のリクエストの双方が同時に有る場合(=1)、すなわち、第1のヒット判定結果および第2のヒット判定結果の双方が同時にヒット判定部102より入力された場合、調停部203は、第1のリクエストをLRU方式で処理すべく、第1のヒット判定結果をシングルポートLRU・RAM26へ渡すとともに、第2のリクエストをランダム方式で処理すべく、ランダムリプレースウェイ選択部105へ渡す。
ここで、LRU方式によるリプレース処理は、最も使用されたかったウェイをリプレースウェイとして選択しているため、リプレースウェイがランダムに選択されるランダム方式よりもキャッシュヒット率が高くなる。
従って、ヒット状態がキャッシュミスの場合には、キャッシュヒット率の向上よりも、ランダム方式によりリプレース処理を高速に実行し、キャッシュミス時に主記憶装置30からデータをできるだけ早く持ってくることが優先される。
一方、ヒット状態が「キャッシュヒット」において、第1のリクエストおよび第2のリクエストの双方が同時に有る場合(=1)、すなわち、第1のヒット判定結果および第2のヒット判定結果の双方が同時にヒット判定部102より入力された場合、調停部203は、第1のリクエストをLRU方式で処理すべく、第1のヒット判定結果をシングルポートLRU・RAM26へ渡す。
これに並行して、ヒット状態判定部202は、第2のヒット判定結果に対応する第2のリクエストをキャッシュタグ部101に再投入する。なお、第2のリクエストは、ランダム方式で処理されない。
再投入された第2のリクエストについては、LRU方式によりリプレースウェイ処理が実行される。
このように、ヒット状態がキャッシュヒットの場合には、リプレース処理を高速に実行することよりも、LRU方式によりキャッシュヒット率を向上させることが優先される。
つぎに、上述した実施の形態2の動作について、第7図に示したフローチャートを参照しつつ説明する。
ステップSC1では、ヒット判定部102は、CPU10よりリクエスト(実施の形態2では、データのリードの場合を例にとって説明)があるか否かを判断し、この場合、判断結果を「No」として、同判断を繰り返す。
そして、CPU10より第1のリクエストのみがあると、ヒット判定部102は、ステップSC1の判断結果を「Yes」とする。ステップSC2では、ヒット判定部102は、キャッシュタグRAM22にアクセスし、CPU10からのアドレスと、キャッシュタグRAM22のアドレスとを比較し、第1のリクエストについてヒット判定を行う。
ステップSC3では、ヒット判定部102は、キャッシュヒットしたか否かを判断し、この場合、判断結果を「Yes」とする。ステップSC4では、キャッシュデータRAM23からCPU10へ第1のデータが転送される。
ステップSC5では、ヒット状態判定部202は、第1のリクエストに対応する第1のヒット判定結果(この場合、「キャッシュヒット」)に基づいて、ヒット状態を更新する。例えば、第6図に示したヒット状態が「01」である場合、ヒット状態判定部202は、上記キャッシュヒットを受けて、ヒット状態を「01」から「10」に遷移させる。これにより、ヒット状態は、「キャッシュヒット」とされる。
また、CPU10から第1のリクエストおよび第2のリクエストが同時にあると、ヒット判定部102は、ステップSC1の判断結果を「Yes」とする。 ステップSC2では、ヒット判定部102は、キャッシュタグRAM22にアクセスし、CPU10からの各アドレスと、キャッシュタグRAM22のアドレスとを比較し、第1のリクエストおよび第2のリクエストのそれぞれについてヒット判定を行う。
ステップSC3では、ヒット判定部102は、キャッシュヒットしたか否かを判断し、この場合、判断結果を「No」とする。ステップSC6では、ヒット判定部102は、リプレース部201の調停部203へ第1のヒット判定結果(「キャッシュミス」)および第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSC7では、調停部203は、通知された第1のヒット判定結果および第2のヒット判定結果に基づいて、同時複数のキャッシュミスがあるか否かを判断し、この場合、判断結果を「Yes」とする。
以後、ステップSC8〜ステップSC13と、ステップSC14〜ステップSC21とが並列的に実行される。
すなわち、ステップSC8では、調停部203は、シングルポートLRU・RAM26へ第1のヒット判定結果(「キャッシュミス」)を通知する。
ステップSC9では、LRUリプレースウェイ選択部27は、第1のヒット判定結果(「キャッシュミス」)を受けて、シングルポートLRU・RAM26を参照し、前述したLRU方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSC10では、LRUリプレースウェイ選択部27は、主記憶装置30へ、ステップSC9で選択されたリプレースウェイに対応するリプレース要求を出す。
ステップSC11では、主記憶装置30は、リプレース要求を受けて、当該アドレスから第1のデータを読み出す。ステップSC12では、主記憶装置30は、読み出した第1のデータをキャッシュデータRAM23へ転送する。
ステップSC13では、LRUリプレースウェイ選択部27で選択されたリプレースウェイ(ライン)に第1のデータが格納(リプレース)されるというリプレース処理が実行される。
ステップSC4では、キャッシュデータRAM23からCPU10へ第1のデータが転送される。
ステップSC5では、ヒット状態判定部202は、第1のリクエストおよび第2のリクエストに対応する第1のヒット判定結果および第2のヒット判定結果(例えば、共に「キャッシュミス」)に基づいて、ヒット状態を更新する。この場合、第6図に示したヒット状態が「10」であるため、ヒット状態判定部202は、上記二つのキャッシュミスを受けて、ヒット状態を「10」→「01」→「00」に遷移させる。これにより、ヒット状態は、「キャッシュミス」とされる。
一方、ステップSC14では、調停部203は、ヒット状態判定部202により判定されたヒット状態がキャッシュヒットであるか否かを判断し、この場合、ヒット状態がキャッシュヒット「10」であるため、判断結果を「Yes」とする。
ステップSC21では、調停部203は、第2のヒット判定結果に対応する第2のリクエストをキャッシュタグ部101に再投入する。
これにより、ヒット判定部102は、ステップSC1の判断結果を「Yes」とする。ステップSC2では、ヒット判定部102は、キャッシュタグRAM22にアクセスし、CPU10からのアドレス(この場合、再投入された第2のリクエスト)と、キャッシュタグRAM22のアドレスとを比較し、第2のリクエストについてヒット判定を行う。この場合、第2のリクエストに対応する第2のヒット判定結果は、キャッシュミスであるとする。
ステップSC3では、ヒット判定部102は、キャッシュヒットしたか否かを判断し、この場合、判断結果を「No」とする。ステップSC6では、ヒット判定部102は、リプレース部201の調停部203へ第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSC7では、調停部203は、通知された第2のヒット判定結果に基づいて、同時複数のキャッシュミスがあるか否かを判断し、この場合、判断結果を「No」とする。
ステップSC8では、調停部203は、シングルポートLRU・RAM26へ第2のヒット判定結果(「キャッシュミス」)を通知する。
ステップSC9では、LRUリプレースウェイ選択部27は、第2のヒット判定結果(「キャッシュミス」)を受けて、シングルポートLRU・RAM26を参照し、前述したLRU方式に基づいて、キャッシュデータRAM23におけるリプレースウェイを選択する。
ステップSC10では、LRUリプレースウェイ選択部27は、主記憶装置30へ、ステップSC9で選択されたリプレースウェイに対応するリプレース要求を出す。
ステップSC11では、主記憶装置30は、リプレース要求を受けて、当該アドレスから第2のデータを読み出す。ステップSC12では、主記憶装置30は、読み出した第2のデータをキャッシュデータRAM23へ転送する。
ステップSC13では、LRUリプレースウェイ選択部27で選択されたリプレースウェイ(ライン)に第2のデータが格納(リプレース)されるというリプレース処理が実行される。
ステップSC4では、キャッシュデータRAM23からCPU10へ第2のデータが転送される。ステップSC5では、ヒット状態判定部202は、前述と同様にして、第2のリクエストに対応する第2のヒット判定結果(「キャッシュミス」)に基づいて、ヒット状態を更新する。なお、ステップSC14の判断結果が「No」である場合には、前述したステップSB13〜ステップSB18(第3図参照)と同様にして、ステップSC15〜ステップSC20が実行される。
以上説明したように、実施の形態2によれば、ヒット判定部102のヒット判定が共にキャッシュミスでありかつヒット状態判定部202のヒット状態がキャッシュヒットである場合、第1のリクエストに対応させてLRUリプレースウェイ選択部27に第1のウェイを選択させるとともに、第2のリクエストをキャッシュタグ部101に再投入し、ヒット判定部102のヒット判定がキャッシュミスである場合、第2のリクエストに対応させてLRUリプレースウェイ選択部27にウェイを選択させることとしたので、リプレース処理を高速に実行することよりも、キャッシュヒット率を向上させることを優先させることができる。
以上本発明にかかる実施の形態1および2について図面を参照して詳述してきたが、具体的な構成例はこれらの実施の形態1および2に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
以上説明したように、本発明によれば、第1のリクエストおよび第2のリクエストに対応するヒット判定が共にキャッシュミスである場合、第1のリクエストに対応させて第1のウェイを選択させるとともに、第2のリクエストに対応させてリプレースウェイ情報を使用せずにリプレース対象の第2のウェイを選択させることとしたので、シングルポートのリプレースウェイ情報保持手段で、複数同時アクセスに対応でき、実装面積を削減しつつキャッシュ性能を向上させることができるという効果を奏する。
また、本発明によれば、ヒット判定が共にキャッシュミスでありかつヒット状態がキャッシュヒットである場合、第1のリクエストに対応させて第1のウェイを選択させるとともに、第2のリクエストを再投入し、ヒット判定がキャッシュミスである場合、第2のリクエストに対応させて第1のウェイを選択させることとしたので、リプレース処理を高速に実行することよりも、キャッシュヒット率を向上させることを優先させることができるという効果を奏する。
以上のように、本発明にかかるメモリ制御装置およびキャッシュリプレース制御方法は、キャッシュメモリのリプレースに対して有用である。
符号の説明
SB1: リクエストあり?
SB2: キャッシュタグRAMにアクセスし、ヒット判定
SB3: ヒットしたか?
SB4: キャッシュデータRAMからCPUへデータを転送
SB5: 調停部へヒット判定結果を通知
SB6: 同時複数のキャッシュミスあり?
SB7: シングルポートLRU・RAMへ第1(第2)のヒット判定結果を通知
SB8: LRUリプレースウェイ選択部でリプレースウェイを選択
SB9: LRUリプレースウェイ選択部から主記憶装置へリプレース要求を出す
SB10:主記憶装置から第1(第2)のデータを読み出す
SB11:主記憶装置からキャッシュデータRAMへ第1(第2)のデータを転送
SB12:リプレース処理
SB13:ランダムリプレースウェイ選択部へ第2のヒット判定結果を通知
SB14:ランダムリプレースウェイ選択部でリプレースウェイを選択
SB15:ランダムリプレースウェイ選択部から主記憶装置へリプレース要求を出す
SB16:主記憶装置から第2のデータを読み出す
SB17:主記憶装置からキャッシュデータRAMへ第2のデータを転送
SB18:リプレース処理
SC1: リクエストあり?
SC2: キャッシュタグRAMにアクセスし、ヒット判定
SC3: ヒットしたか?
SC4: キャッシュデータRAMからCPUへデータを転送
SC5: ヒット状態を更新
SC6: 調停部へヒット判定結果を通知
SC7: 同時複数のキャッシュミスあり?
SC8: シングルポートLRU・RAMへ第1(第2)のヒット判定結果を通知
SC9: LRUリプレースウェイ選択部でリプレースウェイを選択
SC10:LRUリプレースウェイ選択部から主記憶装置へリプレース要求を出す
SC11:主記憶装置から第1(第2)のデータを読み出す
SC12:主記憶装置からキャッシュデータRAMへ第1(第2)のデータを転送
SC13:リプレース処理
SC14:ヒット状態がキャッシュヒット?
SC15:ランダムリプレースウェイ選択部へ第2のヒット判定結果を通知
SC16:ランダムリプレースウェイ選択部でリプレースウェイを選択
SC17:ランダムリプレースウェイ選択部から主記憶装置へリプレース要求を出す
SC18:主記憶装置から第2のデータを読み出す
SC19:主記憶装置からキャッシュデータRAMへ第2のデータを転送
SC20:リプレース処理
SC21:第2のリクエストを再投入
SA1: リクエストあり?
SA2: キャッシュタグRAMにアクセスし、ヒット判定
SA3: ヒットしたか?
SA4: キャッシュデータRAMからCPUへデータを転送
SA5: ヒット判定結果(キャッシュミス)を通知
SA6: リプレースウェイを選択
SA7: 主記憶装置へLRUリプレース要求を出す
SA8: 主記憶装置からデータを読み出す
SA9: 主記憶装置からキャッシュデータRAMへデータを転送
SA10:リプレース処理

Claims (5)

  1. 上位装置と主記憶装置との間に設けられ、複数ウェイ構成のキャッシュメモリに対する制御を行うメモリ制御装置において、
    前記キャッシュメモリのリプレースに関するリプレースウェイ情報を保持するリプレースウェイ情報保持手段と、
    前記リプレースウェイ情報保持手段の前記リプレースウェイ情報に基づいて、リプレース対象の第1のウェイを選択する第1のリプレースウェイ選択手段と、
    前記リプレースウェイ情報を使用せずにリプレース対象の第2のウェイを選択する第2のリプレースウェイ選択手段と、
    前記上位装置から同時に発行され前記キャッシュメモリへのアクセスにかかる第1のリクエストおよび第2のリクエストのそれぞれについてヒット判定を行うヒット判定手段と、
    前記第1のリクエストおよび前記第2のリクエストに対応する前記ヒット判定が共にキャッシュミスである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択手段に前記第1のウェイを選択させるとともに、前記第2のリクエストに対応させて前記第2のリプレースウェイ選択手段に前記第2のウェイを選択させる調停手段と、
    を備えたことを特徴とするメモリ制御装置。
  2. 前記ヒット判定手段の前記ヒット判定に基づいて、ヒット状態がキャッシュヒットまたはキャッシュミスのうちいずれかの傾向にあるかを判定するヒット状態判定手段を備え、
    前記調停手段は、
    前記第1のリクエストおよび前記第2のリクエストに対応する前記ヒット判定が共にキャッシュミスでありかつ前記ヒット状態が前記キャッシュミスである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択手段に前記第1のウェイを選択させるとともに、前記第2のリクエストに対応させて前記第2のリプレースウェイ選択手段に前記第2のウェイを選択させる第1の調停手段と、
    前記ヒット判定が共にキャッシュミスでありかつ前記ヒット状態が前記キャッシュヒットである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択手段に前記第1のウェイを選択させるとともに、前記第2のリクエストを前記ヒット判定手段に再投入し、該ヒット判定手段のヒット判定がキャッシュミスである場合、前記第2のリクエストに対応させて前記第1のリプレースウェイ選択手段に前記第1のウェイを選択させる第2の調停手段と、
    を備えたことを特徴とする請求の範囲第1項に記載のメモリ制御装置。
  3. 前記第1のリプレースウェイ選択手段は、最も使われていないデータを追い出す方式に基づいて、前記第1のウェイを選択し、前記第2のリプレースウェイ選択手段は、ランダムに前記第2のウェイを選択することを特徴とする請求の範囲第1項または第2項に記載のメモリ制御装置。
  4. 上位装置と主記憶装置との間に設けられ、複数ウェイ構成のキャッシュメモリを有するキャッシュメモリ装置に適用されるキャッシュリプレース制御方法において、
    リプレースウェイ情報保持手段に保持され前記キャッシュメモリのリプレースに関するリプレースウェイ情報に基づいて、リプレース対象の第1のウェイを選択する第1のリプレースウェイ選択工程と、
    前記リプレースウェイ情報を使用せずにリプレース対象の第2のウェイを選択する第2のリプレースウェイ選択工程と、
    前記上位装置から同時に発行され前記キャッシュメモリへのアクセスにかかる第1のリクエストおよび第2のリクエストのそれぞれについてヒット判定を行うヒット判定工程と、
    前記第1のリクエストおよび前記第2のリクエストに対応する前記ヒット判定が共にキャッシュミスである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択工程で前記第1のウェイを選択させるとともに、前記第2のリクエストに対応させて前記第2のリプレースウェイ選択工程で前記第2のウェイを選択させる調停工程と、
    を含むことを特徴とするキャッシュリプレース制御方法。
  5. 前記ヒット判定工程の前記ヒット判定に基づいて、ヒット状態がキャッシュヒットまたはキャッシュミスのうちいずれかの傾向にあるかを判定するヒット状態判定工程を含み、
    前記調停工程は、
    前記第1のリクエストおよび前記第2のリクエストに対応する前記ヒット判定が共にキャッシュミスでありかつ前記ヒット状態が前記キャッシュミスである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択工程で前記第1のウェイを選択させるとともに、前記第2のリクエストに対応させて前記第2のリプレースウェイ選択工程で前記第2のウェイを選択させる第1の調停工程と、
    前記ヒット判定が共にキャッシュミスでありかつ前記ヒット状態が前記キャッシュヒットである場合、前記第1のリクエストに対応させて前記第1のリプレースウェイ選択工程で前記第1のウェイを選択させるとともに、前記第2のリクエストを前記ヒット判定工程で再投入し、該ヒット判定工程のヒット判定がキャッシュミスである場合、前記第2のリクエストに対応させて前記第1のリプレースウェイ選択工程で前記第1のウェイを選択させる第2の調停工程と、
    を含むことを特徴とする請求の範囲第4項に記載のキャッシュリプレース制御方法。
JP2004553121A 2002-11-20 2002-11-20 メモリ制御装置およびキャッシュリプレース制御方法 Expired - Fee Related JP3940148B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/012137 WO2004046933A1 (ja) 2002-11-20 2002-11-20 メモリ制御装置およびキャッシュリプレース制御方法

Publications (2)

Publication Number Publication Date
JPWO2004046933A1 JPWO2004046933A1 (ja) 2006-03-16
JP3940148B2 true JP3940148B2 (ja) 2007-07-04

Family

ID=32321514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004553121A Expired - Fee Related JP3940148B2 (ja) 2002-11-20 2002-11-20 メモリ制御装置およびキャッシュリプレース制御方法

Country Status (2)

Country Link
JP (1) JP3940148B2 (ja)
WO (1) WO2004046933A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016097813A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
US10983922B2 (en) * 2018-05-18 2021-04-20 International Business Machines Corporation Selecting one of multiple cache eviction algorithms to use to evict a track from the cache using a machine learning module

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU523670B2 (en) * 1977-12-08 1982-08-12 Honeywell Information Systems Incorp. Cache memory location selection mechanism
JPH02307140A (ja) * 1989-05-22 1990-12-20 Fujitsu Ltd バッファストレイジの置換制御方式
JP2822588B2 (ja) * 1990-04-30 1998-11-11 日本電気株式会社 キャッシュメモリ装置
JP3100807B2 (ja) * 1992-09-24 2000-10-23 松下電器産業株式会社 キャッシュメモリ装置
US6145057A (en) * 1997-04-14 2000-11-07 International Business Machines Corporation Precise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests
JP2000330869A (ja) * 1999-05-19 2000-11-30 Hitachi Ltd キャッシュメモリ装置

Also Published As

Publication number Publication date
JPWO2004046933A1 (ja) 2006-03-16
WO2004046933A1 (ja) 2004-06-03

Similar Documents

Publication Publication Date Title
JP3937365B2 (ja) データ処理システムにおけるメモリリクエスト再順序付け法
US6112265A (en) System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
JP3620473B2 (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
US8099567B2 (en) Reactive placement controller for interfacing with banked memory storage
US7284102B2 (en) System and method of re-ordering store operations within a processor
US6654860B1 (en) Method and apparatus for removing speculative memory accesses from a memory access queue for issuance to memory or discarding
JP2009518753A (ja) メモリアクセス要求のアービトレーション
KR20150076187A (ko) 메시지 시그널 인터럽트의 통신
JP2009528612A (ja) データ処理システム並びにデータ及び/又は命令のプリフェッチ方法
US7313670B2 (en) Data processing system and slave device
KR20090063401A (ko) 라이트 백 동작을 수행하는 캐시 메모리와 이를 포함하는시스템
US6078993A (en) Data supplying apparatus for independently performing hit determination and data access
JP3940148B2 (ja) メモリ制御装置およびキャッシュリプレース制御方法
JP5650441B2 (ja) 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム
US20070226382A1 (en) Method for improving direct memory access performance
JPH06202951A (ja) キャッシュ・メモリ・システム
JP2006099770A (ja) シングルポートメモリを使用した命令キャッシュ
JP4409620B2 (ja) 演算処理装置、キャッシュメモリ制御装置及び制御方法
WO2012172683A1 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
JPH07129464A (ja) 情報処理装置
JPWO2008155826A1 (ja) キャッシュ制御装置およびキャッシュ制御方法
JP2006072832A (ja) 画像処理システム
EP1596280A1 (en) Pseudo register file write ports
US8127082B2 (en) Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations

Legal Events

Date Code Title Description
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: 20070327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130406

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140406

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees