JP2011028736A - キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 - Google Patents

キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 Download PDF

Info

Publication number
JP2011028736A
JP2011028736A JP2010142780A JP2010142780A JP2011028736A JP 2011028736 A JP2011028736 A JP 2011028736A JP 2010142780 A JP2010142780 A JP 2010142780A JP 2010142780 A JP2010142780 A JP 2010142780A JP 2011028736 A JP2011028736 A JP 2011028736A
Authority
JP
Japan
Prior art keywords
data
memory unit
tag
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.)
Ceased
Application number
JP2010142780A
Other languages
English (en)
Inventor
Hiroaki Kimura
啓昭 木村
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
Priority to JP2010142780A priority Critical patent/JP2011028736A/ja
Priority to US12/826,967 priority patent/US8473685B2/en
Priority to EP10168161A priority patent/EP2275937A1/en
Publication of JP2011028736A publication Critical patent/JP2011028736A/ja
Ceased 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/0893Caches characterised by their organisation or structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】データキャッシュメモリへのクロック供給を止めて、消費電力の削減を図る。
【解決手段】データメモリ部と、データメモリ部のラインと対応付けられたライン毎に、タグアドレスと、タグアドレスに対応するデータメモリ部のデータの状態を示すステート情報とを保持するタグメモリ部と、タグメモリ部のラインを検索する検索部と、検索されたタグメモリ部のラインに保持されたタグアドレスと、メモリアクセス要求のタグアドレスとを比較してキャッシュミスを検出するとともに、検索ラインのステート情報を読み出す比較部と、キャッシュミスを検出した場合、メモリアクセス要求の対象となるデータを記憶装置へ要求するとともに、要求したデータを格納するラインがデータメモリ部に無い場合、比較部が読み出したラインのステート情報に基づいて、データメモリ部へのクロックの供給を止める制御部を備えるキャッシュメモリ装置が提供される。
【選択図】図1

Description

本発明は、キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法に関する。
演算処理装置としてのCentral Processing Unit(CPU)は、Random Access Memory(RAM)により実現されるキャッシュメモリを有する。キャッシュメモリは、異なるサイズ毎に、例えば、L1(Level 1:1次)キャッシュメモリ及びL2(Level 2:2次)キャッシュメモリのように階層化して使用される。そして、L2キャッシュメモリは、L1キャッシュメモリの内容を包含して保持する。
キャッシュメモリは、アクセスされるRAMにおけるメモリセルの数が少ないほど消費電力が少なくなるので、アクセス頻度の高いデータを、よりCPUコア等の演算部に近いキャッシュメモリに記憶することにより、キャッシュメモリ全体の消費電力を下げることが出来る。
データを記憶するデータアレイと、データに関するタグを記憶するタグアレイと、タグアレイから読み出された物理アドレスであるタグアドレスと、外部から読出要求された物理アドレスであるタグアドレスとを比較する比較器を有するキャッシュメモリが提案されている。タグアレイは、インデックスアドレスにより特定されるメモリセルからタグアドレスを読み出す。比較器は、タグアレイから読み出されたタグアドレスと、外部から読出要求されたタグアドレスとが一致した場合、データアレイにキャッシュヒット信号を出力する。データアレイは、キャッシュヒット信号を受け取った後で、インデックスアドレスで特定されるメモリセルからデータを読み出す。
このように、キャッシュメモリは、タグアレイでインデックスアドレスに対応するタグアドレスを検索し、メモリアクセス要求に含まれるタグアドレスとタグメモリから読み出されたタグアドレスとが一致するキャッシュヒットが生じたとき、検索されたデータアレイからデータを読み出す。よって、キャッシュミスが発生した場合は、データアレイからデータは読み出されないので、データアレイを動作させる電力消費を抑えられる。
また、書換えがあったメインメモリからの書換えデータのアドレスを記憶するモデファイアドレス記憶部と、キャッシュメモリに含まれる所定のアドレス範囲のキャッシュメモリブロックと、を有するキャッシュメモリが提案されている。処理装置からのデータアクセスにおいてキャッシュミスが生じると、キャッシュメモリは、予め定められたアルゴリズムに基づいてキャッシュメモリから追出又は消去対象のブロックを決定し、モデファイアドレス記憶部を参照して対象ブロック内で書換えデータを検索する。そして、キャッシュメモリは、書換えデータがあれば、書換えデータをメインメモリに書き込み、メインメモリから読み出した読出対象データをキャッシュメモリに書き込む。
このように書換えデータを選択的にメインメモリに書き戻すことで、キャッシュメモリは、キャッシュメモリで書換えられていないデータを、書き戻す必要がない場合に、メインメモリに書き込むという無駄な動作をなくすことができる。
特開2003−150446号広報 特開平4−273549号広報
しかしながら、キャッシュメモリは、キャッシュミスにより主記憶装置に対してデータを要求したとき、キャッシュメモリに空きが無い場合、追い出し対象のキャッシュラインのデータが主記憶装置にあるときでも、当該キャッシュラインのデータとステートを読み出し、読み出したステートに基づいて当該キャッシュラインのデータの処理を行っていた。その結果、追い出し対象のキャッシュラインに主記憶装置と同じデータがあり、当該キャッシュラインのデータを追い出す必要がない場合でも、当該キャッシュラインのステートを読み出すためにタグキャッシュメモリとデータキャッシュメモリへのクロック印加を行っており、当該キャッシュラインのステート読み出し後におけるデータキャッシュに対して無駄なクロック印加がされていた。
開示のキャッシュメモリは、データキャッシュメモリへの不必要なクロック印加を抑止して、消費電力を削減することを目的とする。
開示のキャッシュメモリ装置は、データを要求するメモリアクセス要求を出力する命令制御部と、データを記憶する記憶装置とに接続するキャッシュメモリ装置であって、キャッシュライン毎にデータを保持するデータメモリ部と、前記データメモリ部のキャッシュラインと対応付けられたキャッシュライン毎に、前記メモリアクセス要求の対象であるデータの前記記憶装置における記憶位置を特定するタグアドレスと、前記タグアドレスに対応するデータメモリ部のデータの状態を示すステート情報とを保持するタグメモリ部と、前記メモリアクセス要求に含まれるインデックスアドレスに対応する前記タグメモリ部のキャッシュラインを検索する検索部と、前記検索されたタグメモリ部のキャッシュラインに保持されたタグアドレスと、前記メモリアクセス要求に含まれるタグアドレスとを比較して両者が一致しない場合にキャッシュミスを検出するとともに、前記検索キャッシュラインのステート情報を読み出す比較部と、前記比較部がキャッシュミスを検出した場合、前記メモリアクセス要求の対象となるデータを前記記憶装置へ要求するとともに、前記記憶装置に対して要求したデータを格納するキャッシュラインが前記データメモリ部に無い場合、前記比較部が読み出したキャッシュラインのステート情報に基づいて、前記データメモリ部へのクロックの供給を止める制御部を備える。
開示のキャッシュメモリ装置は、データキャッシュメモリへの不必要なクロック印加を抑止して、消費電力を削減するという効果を奏する。
記憶装置の構成の一例を示すブロック図である。 タグRAMと比較回路の詳細例を示すブロック図である。 タグRAMに保持されるデータフォーマット、及びステート保持部に保持されるデータフォーマットの一例を示すフォーマットである。 データRAMのラインのステートを説明する状態遷移図である。 データRAMの詳細例を示すブロック図である。 命令制御部がタグRAM及びデータRAMにデータアクセスする一例を示すタイムチャートである。 タグRAM及びデータRAMに対するデータアクセスの一例を示すタイムチャートである。 タグRAM及びデータRAMに対するデータアクセスの一例を示すタイムチャートである。 タグRAM及びデータRAMに対するデータアクセスの一例を示すタイムチャートである。 タグRAM用クロック制御回路の詳細例を示すブロック図である。 データRAM用クロック制御回路の詳細例を示すブロック図である。 タグRAM用クロック制御回路の詳細例を示すブロック図である。 キャッシュミスのデータアクセスの一例を示すタイムチャートである。 キャッシュヒットのデータアクセスの一例を示すタイムチャートである。 タグRAM及びデータRAMへの登録処理の一例を示すタイムチャートである。 タグの追出処理の一例を示すタイムチャートである。 タグ及びデータの追出処理の一例を示すタイムチャートである。 タグの追出処理の一例を示すタイムチャートである。 タグの追出処理の一例を示すタイムチャートである。 タグの追出処理の一例を示すタイムチャートである。 記憶装置が行うデータ処理の一例を示すフローチャートである。 記憶装置が行うデータ処理の一例を示すフローチャートである。 記憶装置が行うデータ処理の一例を示すフローチャートである。 記憶装置が行うデータ処理の一例を示すフローチャートである。
以下、図面を参照して、記憶装置の実施形態を説明する。図1は、主記憶装置に接続された演算処理装置の構成の一例を示すブロック図である。演算処理装置1は、命令制御部5、1次キャッシュメモリ10及び2次キャッシュメモリ40を有し、主記憶装置60に接続される。図1に示す記憶装置(1次キャッシュメモリ)10は、アドレス変換回路(AD回路)11、タグRAM12、13、データRAM14、比較回路16、17、エラーチェック回路18、19、及びデータ制御回路30を有する。データ制御回路30は、追出ウェイ特定回路31、データ要求回路32、及びデータ追出回路33を有する。
1次キャッシュメモリ10は、命令制御部5、及び2次(L2)キャッシュメモリ40と結線により接続されている。2次キャッシュメモリ40は、主記憶装置60と結線により接続されている。1次キャッシュメモリ10は、2次キャッシュメモリ40に記憶されるデータの一部をキャッシュするように適用される。2次キャッシュメモリ40は、主記憶装置60に記憶されるデータの一部をキャッシュするように適用される。以下、2次キャッシュメモリ40、主記憶装置60は、「下位階層メモリ」と称される。
なお、命令制御部5及び1次キャッシュメモリ10、又は、命令制御部5、1次キャッシュメモリ10及び2次キャッシュメモリ40は、演算処理装置1に含まれる。図1は例示であるため、1次キャッシュメモリ10は、2次キャッシュメモリ40の代わりに、主記憶装置60と直接接続しても良い。また、図1に示すタグRAM12とデータRAM14は、互いに別個のRAMとして示されているが、タグ部とデータ部とを有する1つのキャッシュRAMとしても良い。その場合、以下の説明では、タグRAMに関する説明は、キャッシュRAMのタグ部の説明に対応し、データRAMに関する説明は、キャッシュRAMのデータ部の説明に対応する。図1に示す1次キャッシュメモリ10は、タグRAMを2つ有するが、1次キャッシュメモリ10は、タグRAMを1つだけ有しても良い。タグRAM12の説明は、タグRAM13にも適用され得る。
また、命令制御部5と1次キャッシュメモリ10は、プロセッサコア3に含まれる。図1には、2次キャッシュメモリ40には1つのプロセッサコア3が接続されるが、複数のプロセッサコアが、2次キャッシュメモリ40に接続されてもよい。
命令制御部5は、メモリアクセスアドレスを含むメモリアクセス要求を、アドレス変換回路11、タグRAM12、13、データRAM14に送信する。メモリアクセスアドレスはその下位部分に、アドレス変換回路11、タグRAM12、13、データRAM14それぞれのインデックスアドレスを含む。又、インデックスアドレスは、主記憶装置60をアクセスする物理アドレスの下位部分のアドレスとして使用される。メモリアクセスアドレスの上位部分はオフセットとして使用され、オフセットによって主記憶装置60の物理アドレスの複数の上位ビットが特定される。さらに、メモリアクセスアドレスは、上記のインデックスアドレスとオフセットの他に、メモリアクセス対象のデータを特定するタグを含む。
タグRAM12、13は、例えば、複数のエントリを有するSRAM(Static Random Access Memory)により実現される。タグRAM12、13は、上記のタグを記憶するRAMである。タグRAM12、13は、命令制御部5から出力されたメモリアクセス要求を、それぞれ信号線w12及びw13を介して受け取る。タグRAM12、13は、データ追出回路33から出力するクロック信号CLKを、それぞれ信号線w33a及びw33bを介して受け取る。また、タグRAM12、13は、データ要求回路32又はデータ追出回路33から出力されたアドレス、及びウェイ選択情報を受け取り、クロックに同期して、アドレス、及びウェイ選択情報で特定されたエントリをアクセスする。
タグRAM12、13は、タグ及び制御情報をそれぞれ記憶するRAMである。なお、以下、制御情報を「ステート」又は「キャッシュステート」と称する。ステートは、図4を用いて後述される。インデックスアドレスは、タグRAM12、13のラインを特定するアドレスとして使用される。データRAM14は、主記憶装置60の一部の物理アドレスのデータを記憶する。タグRAM12、13は、データRAM14に記憶されたデータが主記憶装置60のどの物理アドレスから取得したかを明確にするために、インデックスアドレスが特定するラインに、データRAM14に記憶されたデータを取得した主記憶装置60の物理アドレスを特定するタグを記憶する。また、タグRAM12、13のタグ及びステートと、データRAM14のデータは、同じインデックスアドレスにより対応付けられて、記憶されている。そのため、インデックスアドレスを特定することで、同じインデックスアドレスに対応付けられたデータRAMのデータ、及び、タグRAMに記憶されたタグにより特定される物理アドレスは特定される。なお、タグは、主記憶装置60におけるデータを特定する物理アドレスの一部に過ぎないため、タグのみでは、主記憶装置60におけるデータを一意に特定するものではない。そのため、タグRAM12、13の出力タグを、アドレス変換回路11の出力タグと比較することで、アクセス対象のデータについて、データRAM14に記憶されているか、又は、下位階層メモリから取得するべきかの判断がなされる。
また、命令制御部5からのメモリアクセスにより1次キャッシュメモリ10に記憶したデータが書き換えられたとき、1次キャッシュメモリ10は、書き換えられたデータを主記憶装置60に書き戻す処理を行う。さらに、命令制御部5からのメモリアクセスに対して、1次キャッシュメモリ10でキャッシュミスが生じ、且つデータRAM14のラインに空きが無い場合、1次キャッシュメモリ10は、1次キャッシュメモリ10に格納されているエントリに保持されたデータを追い出す処理を行う。そのため、タグRAM12、13は、データの状態を示すステートをタグと共に記憶する。タグRAM12、13の詳細例は、図2を用いて後述する。ステートの詳細例は、図4を用いて後述する。
データRAM14は、例えば、SRAMにより実現される。データRAM14は、タグRAM12、13のインデックスアドレス及びタグRAM12、13に記憶されたタグに対応するデータを記憶するRAMである。インデックスアドレスは、データRAM14のラインを特定するアドレスとして使用される。データRAM14は、命令制御部5から出力されたメモリアクセス要求を、信号線w14を介して受け取る。また、データRAM14は、比較回路16、17から出力されるキャッシュミス判定信号をそれぞれ信号線w20、w21を介して受け取る。キャッシュミス判定信号が、アドレス変換回路11が出力するタグと、タグRAM12が出力するタグとが一致したことを示す「キャッシュヒット」を示す場合、データRAM14は、タグRAMの出力タグに対応するデータを命令制御部5に供給する。
データRAM14は、データ追出回路33から供給されたクロック信号CLKを、信号線w33cを介して受け取る。また、データRAM14は、データ要求回路32又はデータ追出回路33から出力されたアドレス、及びウェイ選択情報を受け取り、データRAM14は、クロックに同期して、アドレス、及びウェイ選択情報で特定されたデータを出力する。データRAM14の詳細例は、図5を用いて後述する。
アドレス変換回路11は、例えば、TLB(Translation Lookaside Buffer)により実現される。アドレス変換回路11は、インデックスアドレスにより特定されるメモリアクセス要求の対象となる物理アドレスを出力する回路である。アドレス変換回路11は、主記憶装置60の物理アドレスを一意に特定するタグを出力する。アドレス変換回路11は、命令制御部5から出力されたメモリアクセス要求を、信号線w11を介して受け取る。メモリアクセス要求を受け取ったアドレス変換回路11は、メモリアクセス要求が特定するインデックスアドレスと対応付けられた物理アドレスを、比較回路16及び17にそれぞれ出力する。
比較回路16は、アドレス変換回路11から出力されたタグと、タグRAM12から出力されたタグとを比較して、2つのタグが一致するか否かを判定する回路である。比較回路16は、アドレス変換回路11から出力されたタグを、信号線w16を介して受け取り、タグRAM12から出力されたタグを、信号線w18を介して受け取って、受け取った2つのタグが一致するか否かを判定する。比較回路16は、アドレス変換回路11から出力されたタグと、タグRAM12から出力されたタグとが一致する場合、信号線w20を介してデータRAM14に2つのタグが一致したことを示すキャッシュヒット判定信号を出力する。比較回路17は、比較回路16と同様に動作する。つまり、比較回路17は、アドレス変換回路11から出力されたタグと、タグRAM13から出力されたタグとが一致する場合、キャッシュヒット判定信号を、信号線w21を介してデータRAM14に出力する。
比較回路16は、アドレス変換回路11から出力されたタグと、タグRAM12から出力されたタグとが一致しない場合、信号線w22を介してデータ要求回路32にタグの不一致を示すキャッシュミス判定信号を出力する。比較回路16は、キャッシュミス判定信号と共に、アドレス変換回路11からのタグと、タグRAM12からのタグ、及びステートをデータ要求回路32に出力する。
なお、図2を用いて後述するように、タグRAM12、13がnウェイセットアソシアティブ方式であっても良い。nウェイセットアソシアティブ方式とは、1つのインデックスアドレスに対して、複数ウェイそれぞれに保持されるタグが選択される方式を言う。nウェイセットアソシアティブ方式の場合、比較回路16、17は、アドレス変換回路11から出力されたタグと、同一ラインで特定される複数のウェイから出力したタグとを比較する。その場合、比較回路16、17は、ウェイ毎に用意された複数の比較回路を有し、各比較回路は、タグ、及びステートを、データ要求回路32に出力する。
比較回路16は、タグの比較を行った後、キャッシュミス判定信号、アドレス変換回路11から出力されたタグ、タグRAM12から出力されたタグ、及び制御信号を、信号線w22を介してデータ要求回路32に出力する。比較回路17は、タグの比較を行った後、キャッシュミス判定信号、アドレス変換回路11から出力されたタグ、タグRAM13から出力されたタグ、及び制御信号を、信号線w23を介してデータ要求回路32に出力する。また、比較回路16、17は、インデックスアドレスおよびキャッシュミス判定信号を、それぞれ信号線w40及びw41を介して追出ウェイ特定回路31に供給する。比較回路16、17の詳細例は、図2を用いて後述する。
エラーチェック回路18及び19は、タグRAM12及び13からそれぞれ出力したタグを受け取り、エラーチェックを行う回路である。エラーチェックとは、例えば、パリティエラーチェックやECC(Error Check Correction)等である。エラーが生じた場合、エラーチェック回路18及び19は、データ追出回路33にエラー信号を出力する。
追出ウェイ特定回路31は、インデックスアドレス、及びキャッシュミス判定信号を用いて、1次キャッシュメモリ10が有する複数のウェイのうち追い出し対象となる追出ウェイを特定する回路である。追出ウェイ特定回路31は、インデックスアドレス、キャッシュミス判定信号を受け取り、追出ウェイを特定する。例えば、図2で後述するように、タグRAMが2ウェイセットアソシアティブ型である場合、タグRAM12又は13は、1つのインデックスアドレスにより2つのウェイから2つのキャッシュミス判定信号を出力する。追出ウェイ特定回路31は、タグRAM12又は13から2つのキャッシュミス判定信号を受け取り、2つのウェイの何れかを追出ウェイとして特定する。複数のウェイから追出ウェイを特定する方法は、アクセス頻度が最も少ないウェイ、参照されていない時間が最も長いウェイ(LRU(Least Recently Used)方式)、後述するステートの種類などがある。追出ウェイ特定回路31は、追出ウェイを特定した信号を、信号線w24を介してデータ要求回路32に供給する。
このように、追出ウェイ特定回路31は、追出ウェイを、キャッシュミスが生じたタグRAMから受け取ったキャッシュミス判定信号を用いて選択する。そのため、1次キャッシュメモリ10は、タグRAM12、13の追出ウェイを特定するために、キャッシュミス後に、タグRAM12、13に再度アクセスすることは無い。このように、1次キャッシュメモリ10は、追出ウェイ特定のために再度タグRAMにアクセスする場合と比して、追出処理の処理工程が少ないため、キャッシュミスにおける読出し処理を高速化および省電力化することが出来る。
データ要求回路32は、ステート保持部34を有する。ステート保持部34は、キャッシュミス時に、比較回路16、17及び追出ウェイ特定回路31から受け取ったステート、タグ、ウェイを保持する。
また、データ要求回路32は、アドレス変換回路11の出力タグと、インデックスアドレスで特定される物理アドレスのデータを、下位階層メモリである2次キャッシュメモリ40又は2次キャッシュメモリ40を介して主記憶装置60から取得する。
データ要求回路32は、比較回路16から信号線w22を介して、キャッシュミス判定信号、アドレス変換回路11から出力したタグ、タグRAM12が出力したタグ、及び制御信号を受け取る。また、データ要求回路32は、比較回路17から信号線w23を介して、キャッシュミス判定信号、アドレス変換回路11から出力したタグ、タグRAM13が出力したタグ、及び制御信号を受け取る。
データ要求回路32は、キャッシュミス判定信号がキャッシュミスを示す場合、物理アドレスのデータを、信号線w35を介して下位階層メモリである2次キャッシュメモリ40に要求し、且つ信号線w36を介して物理アドレスのデータを取得する。データ要求回路32は、ステート保持部34に保持したステートを、信号線w25を介してデータ追出回路33に供給する。
また、データ要求回路32は、タグRAM12、13、及びデータRAM14にそれぞれクロックを印加して、2次キャッシュから取得した対象データを、タグRAM12、13、及びデータRAM14に登録する。
データ追出回路33は、データ要求回路32から受け取ったステートに応じてタグRAM12、13、又はデータRAM14に対する追出処理を行う。追出処理の実施例は、図6〜図21を用いて後述する。
なお、タグRAM及び/又はデータRAMのデータのサイズが大きい場合、追出処理が複数のフローに分かれる場合がある。データ追出回路33は、第1のフローにおいて、タグRAM12、13からステートを取得する。データ追出回路33は、1フローで、タグRAMから有効ビット及びステートビットを読み出し、データ追出回路33は、2フローで、タグRAMの有効ビットの無効化を、例えば、有効ビットを「1」から「0」に落とすことで行い、ステートビットを「I」に変更する。なお、タグRAMのタグを読み出すのは、追出対象となったタグを、下位階層メモリで記憶するために、1フローでタグを読み出す。
図2は、タグRAMと比較回路とを示す詳細例を示すブロック図である。例示されるタグRAM12aは、図1に示したタグRAM12又は13に相当する。例示される比較回路16a、16bのそれぞれは、タグRAM12の1つのウェイのために用意される。タグRAM12aは、セットアソシアティブ型のRAMである。そのため、タグRAM12aは、ウェイ101、ウェイ111を有する。図2には示さないが、タグRAM12aは、3つ以上のウェイを有しても良い。ウェイ101は、メモリセルアレイ102、センスアンプ103、ラッチ回路104、及びロウデコーダ105を有する。ウェイ111は、メモリセル112、センスアンプ113、ラッチ回路114、及びロウデコーダ115を有する。
命令制御部5から出力されたメモリアクセス要求に含まれるメモリアクセスアドレスは、仮想アドレス121として示される。仮想アドレス121の下位ビットは、ページ内オフセットを示す。仮想アドレス121のページ内オフセットの上位にインデックスアドレスを示す。インデックスアドレスは、メモリセルアレイ102及び112のラインを特定する。
メモリセルアレイ102、112のラインは、物理アドレスを特定するタグ及びステートをそれぞれ記憶する。タグ検索部としてのロウデコーダ105、115は、インデックスアドレスをデコードして、メモリセルアレイ102のキャッシュラインを選択するキャッシュライン選択信号を出力する。ロウデコーダ105又は115は、キャッシュライン選択信号により選択されたキャッシュラインを活性化する。活性化されたキャッシュラインに接続されたメモリセルは、図示しないカラム線の電位を変化させる。センスアンプ103、114は、カラム線の電位変化を増幅した信号を検出することで、ラッチ回路104、114にデータをそれぞれ記憶する。ラッチ回路104、114は、1サイクルだけデータを記憶した後に、比較回路16a、16bに記憶したデータをそれぞれ出力する。このようにして、タグRAM12aは、インデックスで特定されたタグ並びにステートを、比較回路16a、16bに出力する。
比較回路16a及び16bは、ラッチ回路104及び114からそれぞれ読み出したタグと、アドレス変換回路11から出力されたタグを比較する。比較回路16a、16bは、キャッシュヒット信号、アドレス変換回路11からの出力タグ、メモリセルアレイ102、112からの出力タグ及びステートを、それぞれデータ要求回路32に出力する。ステートは、ステート保持部34に保持される。
なお、アドレス変換回路11についての詳細例は示さないが、アドレス変換回路11も、図2に示されるようなセットアソシアティブ型のRAMであっても良い。ただし、タグRAM12、13は、データRAM14に記憶され且つ主記憶装置60の一部のデータの物理アドレスを特定するタグを記憶するのに対して、アドレス変換回路11は、主記憶装置60の全ての物理アドレスを特定するタグを記憶する点で異なる。
図3は、タグRAMに保持されるデータの構造、及びステート保持部に保持されるデータ構造の一例を示す図である。図3に示されるデータ構造1000は、タグRAM12、13に保持されるデータのデータ構造である。データ構造1000は、物理アドレス1030と、ステートを特定するステートビット1020とを含む。データ構造1100は、ステート保持部に保持されるデータのデータ構造である。データ構造1100は、物理アドレス1130と、追出対象のウェイを特定するウェイビット1120と、ステートを特定するステートビット1110とを含む。
図4は、データRAMのラインのステートの例を説明する状態遷移図である。ステートは、上記のように、タグRAM12、13にタグと共に記憶される。図2に示されるように、データRAM14のラインのステートは、MESIプロトコルに基づき、「M(Modified:変更)」、「E(Exclusive:排他)」、「S(Share:共有)」、「I(Invalidate無効)」の4つの状態のいずれかにある。図2に示す、「WT(WriTe)」は、書き込みを示し、「RD(ReaD)」は、読み出しを示す。なお、ステートの例は、MESIプロトコルに基づいて説明するが、本実施形態で使用可能なステートは、MESIプロトコルに限定されず、「O(Own:所有)」の状態を加えたMOSIプロトコル又はMOESIプロトコルであっても良い。
「M」は、データRAM14のラインだけにデータが存在し、データRAM14のデータは、主記憶装置60に記憶されるデータRAM14のラインと同じ物理アドレスのデータから変更されていることを示す。
「E」は、データRAM14のラインのデータと、主記憶装置60に記憶されるデータRAM14のラインと同じ物理アドレスのデータとが一致するが、プロセッサコア3と異なる他のプロセッサコアの1次キャッシュメモリとは一致するデータが無い状態を示す。「S」は、データRAM14のラインのデータと、主記憶装置60に記憶されるデータRAM14のラインと同じ物理アドレスのデータと、他のプロセッサコアの1次キャッシュメモリに記憶されるデータRAMのラインと同じ物理アドレスのデータと、が全て一致する状態を示す。「I」は、データRAM14のラインは、無効であることを示す。
図4において実線は、命令制御部5から出力されたメモリアクセス要求を示し、図2に示す破線は、他の命令制御部から出力されたメモリアクセス要求を示す。状態遷移a1は、他の命令制御部が、他のキャッシュメモリにおいてデータを書き換えようとしているため、書き換えようとしているデータと同じ物理アドレスのデータRAM14のデータのステートが「M」から「I」に遷移したことを示す。また、状態遷移a2は、他の命令制御部が、他のキャッシュメモリにおいてデータを書き換えようとしているため、書き換えようとしているデータと同じ物理アドレスのデータRAM14のデータのステートが「S」から「I」に遷移したことを示す。さらに、状態遷移a3は、他の命令制御部が、他のキャッシュメモリにおいてデータを書き換えようとしているため、書き換えようとしているデータと同じ物理アドレスのデータRAM14のデータのステートが「E」から「I」に遷移したことを示す。
状態遷移a4は、命令制御部5が、他のキャッシュメモリ上にあるデータをデータRAM14に登録したため、データのステートが「I」から「S」に遷移したことを示す。状態遷移a5は、他の命令制御部が、データRAM14のデータを要求したため、データのステートが「E」から「S」に遷移したことを示す。状態遷移a6は、他の命令制御部が、データRAM14のデータを要求したため、読み出されたデータのステートが「M」から「S」に遷移したことを示す。
ステートa7は、命令制御部5が、データRAM14のデータを書き換えたため、データRAM14の書き換えられたデータのステートが「E」から「M」に遷移したことを示す。ステートa8は、命令制御部5が、他の1次キャッシュメモリが保持していないデータをデータRAM14に登録したため、データのステートが「I」から「E」に遷移したことを示す。
図5は、データRAMの詳細例を示すブロック図である。例示されるデータRAM14aは、図1に示したデータRAM14に相当する。図5のデータRAM14aは、nウェイセットアソシアティブ方式のRAMである。そのため、タグRAM12aは、ウェイ141、ウェイ151を有する。図5には示さないが、データRAM14aは、例えば3つ以上のウェイを有しても良い。ウェイ141は、メモリセルアレイ142、センスアンプ143、ラッチ回路144、ロウデコーダ145、デマルチプレクサ146、及びAND回路147を有する。ウェイ151は、メモリセルアレイ152、センスアンプ153、ラッチ回路154、ロウデコーダ155、デマルチプレクサ156、及びAND回路157を有する。
データRAM14aのウェイは、タグRAM12、13のウェイに対応する。比較回路16、17は、キャッシュヒットしたタグを有するウェイを特定するウェイ選択信号を、データRAM14aにそれぞれ供給する。データRAM14aは、活性化したウェイ選択信号を受け取ることで、タグRAM12、13でキャッシュヒットしたアドレスを有するウェイに対応するデータRAM14aのウェイを特定することが出来る。
命令制御部5から出力されたメモリアクセス要求に含まれるメモリアクセスアドレスは、仮想アドレス131として示される。仮想アドレス121の下位ビットは、ページ内オフセットを示す。仮想アドレス131では、ページ内オフセットの上位にインデックスアドレスがある。インデックスアドレスは、メモリセルアレイ142及び152のラインを特定する。メモリセルアレイ142及び152のラインは、データを記憶する。AND回路147、157は、仮想アドレス131のインデックスアドレス、比較回路16、17から出力されたキャッシュヒット信号及びウェイ選択信号、をそれぞれ受け取る。
キャッシュヒットアドレスを有するウェイを特定するウェイ選択信号を、AND回路147及びAND回路157の何れかが受け取ることで、AND回路147及びAND回路157の何れかの論理が成立する。ロウデコーダ145又は155は、AND回路147又は157の出力が活性化したとき、インデックスアドレスをデコードして、キャッシュライン選択信号を出力する。ロウデコーダ145又は155は、キャッシュライン選択信号により特定されるメモリセルアレイ142及び152の何れかのラインを活性化する。このようにして、キャッシュヒットアドレスを有するタグRAMのウェイに対応するデータRAM14aのウェイは特定され、特定されたウェイのメモリセルアレイのラインが活性化する。
活性化したラインに接続されたメモリセルは、図示しないカラム線の電位を変化させる。センスアンプ143、154は、カラム線の電位変化を増幅した信号を生成することで、ラッチ回路144、154にデータを記憶する。ラッチ回路144及び154は、1サイクルだけデータを記憶した後に、デマルチプレクサ146及び156に記憶したデータをそれぞれ出力する。デマルチプレクサ146及び156は、ラッチ回路144から読み出したデータを命令制御部5に出力する。
図6は、命令制御部がタグRAM及びデータRAMにデータアクセスしたときのタイムチャートの一例を示す図である。図6に示すタイムチャートでは、命令制御部5から1次キャッシュメモリ10に対してデータ要求が発行され、1次キャッシュメモリ10に該当するデータが存在せず、キャッシュミスが生じる。そして、1次キャッシュメモリ10のラインに空きが無いため、1次キャッシュメモリ10は、下位階層メモリに対してデータ要求を発行し、1次キャッシュメモリ10に記憶されているエントリを追い出す。図6に示す例では、追出処理は2フローに分かれている。1フローにおいて、タグRAMの追出処理は、タグとして記憶された有効ビット及びステートビットの読み出しを行う。2フローでは、タグRAMの有効ビットの無効化を行う。
図6に示すタイムチャートでは、時間区間T1におけるキャッシュミスの後、リードデータのステートが「S」又は「E」であるため、1次キャッシュメモリ10は、データRAM14に記憶したデータを下位階層メモリに記憶しなくて良い。そのため、1次キャッシュメモリ10は、リードデータをデータRAM14から追い出さず、有効ビット及びステートビットをタグRAMから無効化して、下位階層メモリから読み出した読出対象データをタグRAM及びデータRAMに書き込む。
時間区間T0及びT1は、命令制御部5によるデータアクセスの動作を示す。時間区間T0では、タグRAM12及びデータRAM14は、命令制御部5からメモリアクセス要求を受け取り、T201及びT202に示すように、タグRAM12及びデータRAM14にクロックを印加する。
時間区間T1では、比較回路16は、T203に示すキャッシュミスにより、キャッシュミス判定信号をデータ要求回路32に出力する。追出ウェイ特定回路31は、比較回路16受け取ったタグのうち、少なくとも1つのウェイから出力されたタグにより示されるラインを、追出ラインとする。データ要求回路32が、ステート保持部34に保持する追出ラインのステートは、T204に示すように、「S」又は「E」を示す。
時間区間T2及びT3は、1次キャッシュメモリ10による追出処理の動作を示す。時間区間T2では、T205に示すように、データ要求回路32は、メモリアクセス要求の対象データを下位階層メモリへ要求する。
時間区間T2から1サイクル前の時間区間T1でステート保持部34から読み出された追出ラインのステートは、T204に示すように、「S」又は「E」である。ステート「S」又は「E」は、追出ラインのデータが修正されたデータではなく、主記憶装置に格納されているデータと一致することを示すので、データ追出回路33は、データRAM14から追出ラインのデータを追い出して、主記憶装置60に記憶する必要は無い。よって、データ追出回路は、区間T2データRAM14へのクロック供給を止めることにより、消費電力を削減することが可能となる。
時間区間T2では、T206に示すように、データ要求回路32は、追出ラインのアドレスを特定し、データ追出回路33は、タグRAM12にクロックを印加する。T206では、タグRAMの追出処理の第1フローとして、タグとして記憶された有効ビット及びステートビットの読み出しを行う。読み出したステートは、T207に示すように、「S」又は「E」を示す。
時間区間T3では、データ要求回路32は、T208に示すように、下位階層メモリからデータを取得する。時間区間T3から1サイクル前の時間区間T2でステート保持部34から読み出された追出ラインのステートは、T207に示すように、「S」又は「E」であるので、時間区間T3では、データ追出回路33は、データRAM14へクロックを供給しない。
T207に示す追出ラインのステートが「S」又は「E」であるため、T209に示すように、データ要求回路32は、追出ラインのアドレスを特定し、データ追出回路33は、タグRAM12にクロックを印加する。T209では、タグRAMの追出処理の第2フローとして、タグRAM12の有効ビットを、例えば、「1」から「0」に落とすことで、無効化を行う。
時間区間T4及びT5では、タグRAM12及びデータRAM14にデータが登録される。T210では、データ要求回路32は、データRAM14の追出ラインのウェイ、アドレス信号を活性化し、且つ、データRAM14にクロックを印加して、データRAM14へ、下位階層メモリ又は主記憶装置から取得したデータの登録処理を行う。また、時間区間T5では、T211では、タグRAM12にクロックを印加することで、データ要求回路32は、タグRAM12に下位階層メモリ又は主記憶装置から取得したデータのタグをタグRAM12に登録する。
時間区間T6及びT7は、命令制御部5によるデータアクセスの動作を示す。時間区間T6では、タグRAM12にクロックが印加される。データRAM14には下位階層メモリからデータアクセス対象のデータが記憶されているので、T213に示すように、キャッシュヒットが生じる。T214では、キャッシュヒット判定信号を受け取ったデータRAM14は、タグRAM12から出力した物理アドレスに対応するデータを、命令制御部5に出力する。時間区間T7では、T215に示すように、命令制御部5によるデータアクセスは完了する。
このように、キャッシュミスが起こった後に、キャッシュミスと判定されたタグから選択した追出ラインの追い出しを開始すると共に、追出ラインのステートが下位階層メモリにある場合、下位階層メモリに追出ラインのデータを書き戻さない。1次キャッシュメモリ10は、ステートを判断して、追い出しを迅速に開始することが出来るとともに、主記憶装置への書き戻しという不要な処理を開始しない。データRAM14へのクロックの供給を止めて、データRAM14から主記憶装置へのデータの書き戻しを止めるので、1次キャッシュメモリ10の消費電力を抑えることが出来る。
図7は、タグRAM及びデータRAMに対するデータアクセスの一例を示すタイムチャートである。図7は、キャッシュミス後、下位階層メモリからデータを取得した時、追出ラインのステートが「M」であるため、追出ラインのデータを追い出すと共に、追出ラインのデータを主記憶装置60へ書き込むケースを示す。なお、図7に示すT201〜T206、T208、及びT210〜T215は、図6に示すT201〜T206、T208、及びT210〜T215と同じであるので、説明を省略する。
時間区間T2から1サイクル前の時間区間T1でステート保持部34から読み出された追出ラインのステートは、T204に示すように、「S」又は「E」である。従って、時間区間T2では時間区間T1と同様、データ追出回路33は、データRAM14へクロックを供給しない。データ追出回路33は、T221に示すように、タグRAM12の追出ラインのステート「M」を取得する。T204及びT221に示すように、追出ラインのステートがタグRAM12からの追出処理の第1フロー中に「S/E」から「M」に変化する。
時間区間T3では、時間区間T3から1サイクル前の時間区間T2でデータ追出回路33が識別する追出ラインのステートは、T221に示すように、「M」である。従って、データ追出回路33は、T223に示すように時間区間T3でデータRAM14へのクロック供給を行なう。T222に示すように、データ追出回路33は、第1フローを再度行い、タグRAM12にクロックを供給して、タグRAM12からタグとして記憶された有効ビット及びステートビットの読み出しを行う。
T223及びT225では、データ追出回路33は、データRAM14の追出ラインのデータを、下位階層メモリである2次キャッシュメモリ40又は2次キャッシュメモリを介して主記憶装置60に書き戻すため、データRAM14にクロックを印加して、データを追い出す。T224では、タグRAMの追出処理の第2フローとして、データ追出回路33は、タグRAM12にクロックを供給して、タグRAMの有効ビットの無効化を行う。
キャッシュミスが生じた後に、キャッシュミスと判定されたタグから選択した追出ラインの追い出しを開始すると共に、追い出しの途中に監視した追出ラインのステートが「M」に変更した場合、タグRAM及びデータRAMのデータを下位階層メモリに書き戻す。そのため、1次キャッシュメモリ10は、ステートを判断して、追出処理を迅速に開始することが出来るとともに、途中でステートが「M」に変更した場合も、迅速な対応することが出来る。また、追い出しの途中まで、データRAM14へのクロックの供給を止めるので、1次キャッシュメモリ10の消費電力を抑えることが出来る。
図8は、タグRAM及びデータRAMに対するデータアクセスの一例を示すタイムチャートである。図8は、キャッシュミスが生じた後、下位階層メモリからデータ取得時、タグRAM12の追出ラインの読み出しでエラーが生じたため、タグRAM12及び13の何れかの追出ラインのデータを追い出すケースを示す。なお、図8に示すT201〜T206、T208、及びT210〜T215は、図6に示すT201〜T206、T208、及びT210〜T215と同じであるので、説明を省略する。
時間区間T2から1サイクル前の時間区間T1でステート保持部34から読み出した追出ラインのステートは、T231に示すように「M」である。従って、データ追出回路33は、T232に示すように時間区間T2でデータRAM14へのクロックの供給を行ない、下位階層メモリに書き戻しを行う。
T233では、追出ラインのステートがタグRAMからの追出処理の第1フロー中に、タグRAMの読み出しにおいてエラーが発生した場合を示す。追出ウェイ特定回路31は、エラーが発生した追出ラインに対して追い出しを継続しない。T234では、リトライ処理として、データ追出回路33は、第1フローを再度、タグRAM12及び13に対して行い、タグとして記憶された有効ビット及びステートビットの読み出しを行う。T235では、データ追出回路33は、タグRAM12及び13の追出ラインのタグに相当するデータRAM14のラインを追い出す。
T236では、データ追出回路33は、タグRAM12及び13の追出ラインのステートを取得する。1つのタグRAMのみエラーが生じている場合は、エラーしていないタグRAMの読み出し情報を使用し、両方のタグRAMにエラーが生じている場合は、ステートを「M」扱いにして追い出しを進める。
T237では、タグRAMの追出処理の第2フローとして、タグRAM12の有効ビットの無効化を行う。T238では、タグRAMの追出処理の第2フローとして、タグRAM13の有効ビットの無効化を行う。T239では、データ追出回路33は、タグRAM13の追出ラインのタグに相当するデータRAM14のラインを追い出す。
このように、1次キャッシュメモリ10は、キャッシュミスが生じたときの追出ラインのステートが「M」である場合、下位階層メモリからデータ取得後すぐに、データRAMからのデータを追い出し、又は消去を開始する。そのため、1次キャッシュメモリ10は、キャッシュミスによる下位階層からのデータ読出処理において、短時間で追出し処理を終了するという効果を奏する。また、タグRAMにエラーが生じた場合、データ追出回路は、他のタグRAMを使用して追出処理を実行するため、エラーによる追出処理の遅延を防ぐことが出来る。
図9は、タグRAM及びデータRAMに対するデータアクセスの一例を示すタイムチャートである。図9は、キャッシュミス後、下位階層メモリからデータを取得した時、追出ラインのステートが「M」であるため、追出ラインのデータの追い出しを開始する共に、ステートが「S/E」に変更した場合、追出処理を中止するケースを示す。なお、図9に示すT201〜T203、T205、T208、及びT210〜T215は、図6に示すT201〜T203、T205、T208、及びT210〜T215と同じであるので、説明を省略する。
T241では、キャッシュミスと判定されたタグから読み出された追出ラインのステートが「M」である。従って、データ追出回路33は、下位階層メモリに書き戻し処理を行うために、T242に示すように、データRAM14にクロックを印加する。T243では、追出ラインのステートがタグRAMからの追出処理の第1フロー中に「M」から「S/E」に変化したため、追出ウェイ特定回路31は、時間区間T3で、データRAM14へのクロック供給を中止する。
上記のように、1次キャッシュメモリ10は、キャッシュミスが生じたときの追出ラインのデータのステートが「M」である場合、下位階層メモリからデータ取得後すぐに、データRAMからのデータの追い出し又は消去を開始する。しかしながら、ステートが「S/E」に変更されると、下位階層メモリへの追出ラインのデータの書き戻しが不要となるため、データRAMの追出処理及びデータRAMへのクロックの供給を停止する。よって、1次キャッシュメモリ10は、ステートを判断して、主記憶装置への不要な書き戻し処理を実行せず、クロックのも供給しない。
データ追出回路33は、タグRAM用クロック制御回路200、400、データRAM用クロック制御回路300を有する。図10は、タグRAM用クロック制御回路の詳細例を示す図である。
図10に示すタグRAM用クロック制御回路200は、タグRAM12へ供給するクロックを制御する回路である。タグRAM用クロック制御回路200は、データ追出回路33が、タグRAM12に対して追出アクセスを開始したとき、タグRAM12にクロックを供給する。
タグRAM用クロック制御回路200は、OR回路201、ラッチ回路202、OR回路203、クロック出力回路204を有する。OR回路201は、データ追出回路33の制御部から、追出アクセスを受け取ると、OR回路203及びラッチ回路202に信号を出力する。ラッチ回路202は、OR回路201の出力を1サイクル分ラッチする。OR回路203は、P1時間にOR回路201からの信号を受け取り、又は、P2時間にラッチ回路202の信号を受け取るので、2クロックサイクルに亘って、クロック出力回路204にイネーブル信号を出力する。クロック出力回路204は、OR回路203からの信号をイネーブル信号として受け取り、クロックに同期することで、パイプラインのP2及びP3サイクルに亘って、タグRAM12にクロックを供給する。
図11は、データRAM用クロック制御回路の詳細例を示すタイムチャートである。図11に示すデータRAM用クロック制御回路300は、データRAM14へ供給するクロックを制御する回路である。データRAM用クロック制御回路300は、データ追出回路33の制御部から追出アクセスを受け取り且つ追出ラインのステートが「M」のとき、又は、登録アクセスを受け取ったときに、データRAM14にクロックを供給する。データRAM用クロック制御回路300は、OR回路301、303、305、AND回路302、ラッチ回路304、及びクロック出力回路306を有する。
OR回路301は、データ要求回路32から、追出ラインのステート「M」、又は、リトライステートを受け取ったとき、AND回路302に信号を出力する。OR回路301の信号が出力されない限り、データRAM用クロック制御回路300はクロックを出力しないので、追い出しラインのステートが「M」のときに限り、データRAM用クロック制御回路300はクロックを出力するように動作する。
AND回路302は、データ追出回路33の制御部から追出アクセスを受け取り、且つ、OR回路301からの信号を受け取ったとき、OR回路303に信号を出力する。OR回路303は、AND回路302からの信号を受け取るか、登録アクセスなどの追出アクセス以外のアクセスをデータ追出回路33の制御部から受け取ったとき、OR回路305及びラッチ回路304に信号を出力する。
ラッチ回路304は、OR回路303の出力を1サイクル分保持する。OR回路305は、P1時間にOR回路303からの信号を受け取り、又は、P2時間にラッチ回路304の信号を受け取るので、2クロックサイクルに亘って、クロック出力回路306に信号を出力する。クロック出力回路306は、OR回路303からの信号をイネーブル信号として受け取り、クロックに同期することで、パイプラインのP2及びP3サイクルに亘って、タグRAM12にクロックを供給する。
図12は、タグRAM用クロック制御回路の詳細例を示す図である。図12に示すタグRAM用クロック制御回路400は、タグRAM13にクロックを供給する回路である。上記したように、タグRAM13は、タグの読み出しエラーが発生し、追出ラインを設けるために、クロックが供給される。そのため、タグRAM用クロック制御回路400は、AND回路401に示すように、タグエラー信号を受け取ると、動作する。また、タグRAM用クロック制御回路400は、AND回路402に示すように追出処理において読み出したタグのステートが「M」のとき、動作する。
タグRAM用クロック制御回路400は、AND回路401、402、404、406、OR回路403、407、409、ラッチ回路408、及びクロック出力回路410を有する。タグRAM用クロック制御回路400は、追出ラインから読み出したステートが「M」ではなく、且つタグエラー信号が入力されるとともに、第1フローの追い出しアクセスの場合に、クロックをタグRAM13に供給する回路である。
AND回路401は、追い出しにおいてタグエラー信号によりタグエラーを検出したとき、信号を出力するように動作する。AND回路401は、データ追出回路33の制御部から追出処理アクセス、及び、タグエラー信号を受け取ると、信号をOR回路403に出力する。AND回路402は、追い出しにおいて追出ラインから読み出したステートが「M」であった場合に、信号を出力するように動作する。AND回路402は、データ追出回路33の制御部から追出処理アクセス、追出処理の第1フローでMステートを読み出し、且つ、データ要求回路で保持したステートがMではない場合、信号をOR回路403に出力する。OR回路403は、リトライステート、AND回路401からの信号、AND回路402からの信号を受け取ると、信号をAND回路404に出力する。
AND回路404は、追出アクセスの第2フローでは信号を出力しないように動作する。第2フローの追出アクセスの反転信号と、OR回路403の出力とを受け取るとき、ラッチ回路405に信号を出力する。ラッチ回路405は、AND回路404が追出アクセスの第2フローの信号を受け取るまで、リトライステートを保持する。AND回路406は、リトライステートと、第1フローの追出アクセスとを受け取るとき、信号を出力する回路である。OR回路407は、データ追出回路33の制御部から追出アクセス以外のアクセス、第2フローの追出アクセス、AND回路406からの信号のいずれかを受け取るとき、信号を出力する。
ラッチ回路408は、パイプラインのP2時間に加えて、パイプラインのP3時間にもクロックを供給するために、OR回路303の出力を1サイクル分保持する。OR回路409は、P1時間にOR回路407からの信号を受け取り、又は、P2時間にラッチ回路202からの信号を受け取るので、2クロックサイクルに亘って、クロック出力回路410に信号を出力する。クロック出力回路410は、OR回路409からの信号をイネーブル信号として受け取り、クロックに同期することで、パイプラインのP2及びP3サイクルに亘って、タグRAM13にクロックを供給する。
図13は、キャッシュミスのデータアクセスの一例を示すタイムチャートである。T301では、OR回路201は、追出アクセス及び追出アクセス以外のアクセスで動作するので、タグRAM用クロック制御回路200は、クロックをタグRAM12に供給する。T305では、ラッチ回路202に保持した信号により、タグRAM用クロック制御回路200は、クロックをタグRAM12に供給する。
T302では、OR回路407は、追出アクセス及び追出アクセス以外のアクセスで動作するので、タグRAM用クロック制御回路400は、クロックをタグRAM13に供給する。T306では、ラッチ回路408に保持した信号により、タグRAM用クロック制御回路400は、クロックをタグRAM13に供給する。T303では、OR回路303は、追出アクセス以外のアクセスにより動作することで、データRAM用クロック制御回路300は、クロックをデータRAM14に供給する。T307では、ラッチ回路304が信号を保持することにより、データRAM用クロック制御回路300は、クロックをデータRAM14に供給する。T308では、タグRAM12、13、及びデータRAM14へのクロック供給の結果、タグ又はデータが読み出される。T304では、タグ読み出しにより、キャッシュミスが生じる。T309では、キャッシュミスにより、データ要求回路32が下位階層メモリへデータを要求する。
図14は、キャッシュヒットのデータアクセスの一例を示すタイムチャートである。図14に示すT311〜T313及びT315〜T318は、図13に示すT301〜T313及びT315〜T308にそれぞれ相当するので、説明を省略する。T319では、キャッシュヒットにより、データRAM14に記憶したデータが、下位階層渇主への読み出しをせずに使用されるので、パイプラインP4で命令制御部5へデータが送出されて、T320でアクセスが完了する。
図15は、タグRAM及びデータRAMへの登録処理の一例を示すタイムチャートである。T331では、登録処理は、追出アクセス以外のアクセスであるため、OR回路303が追出アクセス以外のアクセスを受け取ることで、データRAM用クロック制御回路300はデータRAM14にクロックを供給する。T332では、OR回路201が追出アクセス以外のアクセスを受け取ることで、タグRAM用クロック制御回路200はタグRAM12にクロックを供給する。T333では、OR回路407が追出アクセス以外のアクセスを受け取ることで、タグRAM用クロック制御回路400はタグRAM13にクロックを供給する。T334では、OR回路303が追出アクセス以外のアクセスを受け取ることで、データRAM用クロック制御回路300はデータRAM14にクロックを供給する。
図16は、タグの追出処理の一例を示すタイムチャートである。図16のタイムチャートは、追出処理前のステートが「S」又は「E」であり、追出処理後のステートが変化しない場合の追出処理を示す。T341では、OR回路201は追出アクセスを受け取ることにより、タグRAM用クロック制御回路200は、クロックをタグRAM12に供給する。T342では、ラッチ回路304が信号を保持することにより、タグRAM用クロック制御回路200は、クロックをタグRAM13に供給する。T343では、OR回路201が追出アクセス以外のアクセスを受け取ることで、タグRAM用クロック制御回路200はタグRAM12にクロックを供給する。なお、図6及び図11を用いて説明したように、追出ラインのステートは、「M」ではないので、データRAM用クロック制御回路300は、クロックをデータRAM14に供給しない。
図17は、タグ及びデータの追出処理の一例を示すタイムチャートである。図17のタイムチャートは、追出処理前のステートが「M」であり、追出処理後のステートが変化しない場合の追出処理を示す。図17に示すT351、T353、及びT355は、図16に示すT341、T342、及びT343にそれぞれ相当するので、説明を省略する。T352では、AND回路302は、第1フローの追出アクセスと、データ要求回路の「M」ステートで動作することで、データRAM用クロック制御回路300は、データRAM14にクロックを供給する。T354では、ラッチ回路304がOR回路303からの信号を一定期間保持して、OR回路305に信号を出力することにより、データRAM用クロック制御回路300は、データRAM14にクロックを供給する。T356では、AND回路302は、第2フローの追出アクセスと、データ要求回路の「M」ステートで動作することで、データRAM用クロック制御回路300は、データRAM14にクロックを供給する。T357では、ラッチ回路304がOR回路303からの信号を一定期間保持して、OR回路305に信号を出力することにより、データRAM用クロック制御回路300は、データRAM14にクロックを供給する。
図18は、タグの追出処理の一例を示すタイムチャートである。図18のタイムチャートは、追出処理前のステートが「S」又は「E」であり、追出処理後のステートが「M」に変化する場合の追出処理を示す。T361及びT362では、図16に示したT341及びT342と同じ処理が行われる。7クロックサイクル以降は、第1フローでデータ追出回路33が読み出しデータのステートが「M」に変更されたため、図17と同じ処理が繰り返される。
図19は、タグの追出処理の一例を示すタイムチャートである。図19のタイムチャートは、追出処理前のステートが「M」であり、第1フローでエラーを検出し、第2フローのステートも変化しない場合の追出処理を示す。T371及びT373は、図17に示すT351及びT353に対応し、T372及びT374は、図17に示すT352及びT354に相当するため、説明を省略する。T375では、エラーが検出される。第2フローのタグRAM12へのクロックの供給T376及びT379、及び、第2フローのデータRAM14へのクロックの供給T378及びT381は、それぞれ図17に示すT351及びT353、及び、T352及びT354に相当するため、説明を省略する。
第1フローリトライのP2サイクルであるT377では、AND回路401は、T375で検出したタグエラーを受け取り、AND回路404は、第2フローの追出アクセスの反転信号を受け取る。さらに、AND回路406が第1フローの追出アクセスを受け取ることで、タグRAM用クロック制御回路400は、タグRAM13にクロックを供給する。第1フローのP3サイクルであるT380では、ラッチ回路408がOR回路407の出力をラッチすることで、タグRAM用クロック制御回路400は、タグRAM13にクロックを供給する。第2フローのP2サイクルであるT383では、OR回路407は、第2フローの追出アクセスを受け取って、動作することで、タグRAM用クロック制御回路400は、タグRAM13へクロックを供給する。
図20は、タグの追出処理の一例を示すタイムチャートである。図20のタイムチャートは、追出処理前のステートが「M」であり、第1フロー終了後、ステートが「S」又は「E」に変化する場合の追出処理を示す。図20の第1フローは、図17の第1フローと同じなので、説明を省略する。第2フローでは、ステートが「M」ではないので、図11に示すOR回路301が動作せず、データRAM用クロック制御回路300は、データRAM14へクロックを供給しない。一方、T396では、第2フローの追出アクセスで、OR回路201が動作して、タグRAM用クロック制御回路200は、タグRAM12へクロックを供給する。2フローでタグRAMの読み出しを行う場合において、1フロー後にステートが「M」から「S」又は「E」に変化すると、データ追出回路33は、データRAM14へクロックを供給しないので、1次キャッシュメモリ10の消費電力を抑えることが出来る。
図21A〜図21Dは、記憶装置が行うデータ処理の一例を示すフローチャートである。まず、1次キャッシュメモリ10が、命令制御部5から供給されたメモリアクセス要求を受け取る(S1001)。ロウデコーダが、メモリアクセス要求に含まれるインデックスアドレスに対応するタグRAMのキャッシュラインを検索する(S1002)。比較回路16又は17は、キャッシュミスが生じたか否かを判定する(S1003)。言い換えれば、比較回路16又は17は、タグRAM12又は13から検索したキャッシュラインのタグが、アクセス要求の対象データのタグと一致するか否かを比較し、一致しない場合、キャッシュミス信号を出力する。
キャッシュヒットの場合(S1003 No)、比較回路16、17は、キャッシュヒットしたタグ及びウェイを特定する信号を、データRAM14に供給する(S1101)。データRAM14は、受け取ったタグ及びウェイにより特定されるデータを、命令制御部5に供給し(S1102)、処理を終了する。
キャッシュミスが生じた場合(S1003 Yes)、データ制御回路30は、キャッシュミスが生じたデータを下位階層メモリに要求する(S1004)。データ制御回路30は、読み出したタグから追出ラインを決定する(S1005)。言い換えれば、タグRAMがnウェイセットアソシアティブ方式の場合、データ制御回路30は、タグを出力したウェイを選択して、選択されたウェイが出力したタグのラインを、追出ラインとする。データ制御回路30は、追出ラインのステートが、「M」か否かを判断する(S1006)。
そして、追出ラインのステートが「M」の場合(S1006 Yes)、図21Bに示すように、データ制御回路30は、第1フローの追出処理として、タグRAM12又は13、及びデータRAM14にクロックの供給を開始して、追出ラインを読み出す(S1007)。データ制御回路30は、読み出しエラーが発生したか否かを判断する(S1008)。読出しエラーが発生しない場合(S1008 エラー無し)、ステップS1009に進む。読出しエラーが発生した場合(S1008 エラー有り)、ステップS1301に進む。
図21Bに示すように、データ制御回路30は、読み出した追出ラインのステートがMか否か判断する(S1009)。追出ラインのステートがMの場合(S1009 Yes)、データ制御回路30は、第2フローの追出処理として、タグRAM12又は13にクロックを供給して、追出ラインを無効化するとともにデータRAM14の追出ラインを読み出す(S1010)。データ制御回路30は、読み出したタグ及びデータを下位階層メモリに書き込む(S1011)。データ制御回路30は、タグRAM及びデータRAMにクロックを供給して、下位階層メモリから取得したタグ及びデータをそれぞれ書き込む(S1012)。データRAM14は、受け取ったタグ及びウェイにより特定されるデータを、命令制御部5に供給し(S1013)、処理を終了する。
図21Aに示すステップS1006において、追出ラインのステートが「M」ではなく、追出ラインのステートが「S」又は「E」の場合(S1006 No)、データ制御回路30は、第1フローの追出処理として、タグRAM12にクロックの供給を開始して追出ラインのタグを読み出すとともに、データRAM14にはクロックを供給しない(S1201)。データ制御回路30は、読み出しエラーが発生したか否かを判断する(S1202)。読出しエラーが発生しない場合(S1202 エラー無し)、ステップS1203に進む。読出しエラーが発生した場合(S1202 エラー有り)、ステップS1301に進む。データ制御回路30は、読み出した追出ラインのステートが「S」又は「E」か判断する(S1203)。追出ラインのステートが「S」又は「E」の場合(S1203 Yes)、データ制御回路30は、第2フローの追出処理として、タグRAMにクロックを供給して、追出ラインを無効化するとともに、データRAM14にはクロックを供給しない(S1204)。データ制御回路30は、読み出したタグを下位階層メモリに書き込み(S1205)、ステップS1012に進む。追出ラインのステートが「M」の場合(S1203 No)、ステップS1007に進む。
図21Bに示すステップS1009において、追出ラインのステートが「M」ではなく、追出ラインのステートが「S」又は「E」の場合(S1009 No)、データ制御回路30は、第2フローの追出処理として、タグRAM12又は13にクロックを供給して、追出ラインを無効化し、データRAM14にクロックを供給しない(S1051)。データ制御回路30は、読み出したタグを下位階層メモリに書き込み(S1052)、ステップS1012に進む。
図21Dに示すように、データ制御回路30は、第1フローの追出処理として、複数のタグRAM、及びデータRAM14にクロックを、それぞれ供給する(S1301)。データ制御回路30は、読み出しエラーが発生したか否かを判断する(S1302)。読出しエラーが発生しない場合(S1302 エラー無し)、ステップS1303に進む。読出しエラーが発生した場合(S1302 エラー有り)、ステップS1305に進む。データ制御回路30は、追出ラインのステートが、「M」か否かを判断する(S1303)。追出ラインのステートが「M」の場合(S1303 Yes)、データ制御回路30は、第2フローの追出処理として、タグRAM12及びデータRAM14にクロックを供給して、追出ラインを無効化し(S1305)、ステップS1306に進む。追出ラインのステートが「S」又は「E」の場合(S1303 No)、データ制御回路30は、第2フローの追出処理として、タグRAM12及びデータRAM14にクロックを供給して、追出ラインを無効化し(S1304)、ステップS1306に進む。データ制御回路30は、読み出したタグ及びデータを下位階層メモリに書き込み(S1306)、処理を終了する。
1 演算処理装置
5 命令制御部
10 記憶装置
11 アドレス変換回路
12、13 タグRAM
14 データRAM
16、17 比較回路
18 エラーチェック回路
30 データ制御回路
31 追出ウェイ特定回路
32 データ要求回路
33 データ追出回路
34 ステート保持部
50 2次キャッシュメモリ
60 主記憶装置
200 タグRAM用クロック制御回路
300 データRAM用クロック制御回路
400 タグRAM用クロック制御回路

Claims (18)

  1. データを要求するメモリアクセス要求を出力する命令制御部と、データを記憶する記憶装置とに接続するキャッシュメモリ装置であって、
    キャッシュライン毎にデータを保持するデータメモリ部と、
    前記データメモリ部のキャッシュラインと対応付けられたキャッシュライン毎に、前記メモリアクセス要求の対象であるデータの前記記憶装置における記憶位置を特定するタグアドレスと、前記タグアドレスに対応するデータメモリ部のデータの状態を示すステート情報とを保持するタグメモリ部と、
    前記メモリアクセス要求に含まれるインデックスアドレスに対応する前記タグメモリ部のキャッシュラインを検索する検索部と、
    前記検索されたタグメモリ部のキャッシュラインに保持されたタグアドレスと、前記メモリアクセス要求に含まれるタグアドレスとを比較して両者が一致しない場合にキャッシュミスを検出するとともに、前記検索キャッシュラインのステート情報を読み出す比較部と、
    前記比較部がキャッシュミスを検出した場合、前記メモリアクセス要求の対象となるデータを前記記憶装置へ要求するとともに、前記記憶装置に対して要求したデータを格納するキャッシュラインが前記データメモリ部に無い場合、前記比較部が読み出したキャッシュラインのステート情報に基づいて、前記データメモリ部へのクロックの供給を止める制御部を備えることを特徴とするキャッシュメモリ装置。
  2. 前記キャッシュメモリ装置において、
    前記記憶装置はさらに、他のキャッシュメモリ装置に接続し、
    前記制御部は、前記比較部が読み出したステート情報が、前記検索されたキャッシュラインに対応する前記データメモリ部のデータが、前記第2のキャッシュメモリ装置のデータメモリ部のデータまたは前記記憶装置のデータの少なくとも一方と一致しない旨を示す場合、又は、前記検索されたキャッシュラインに対応する前記データメモリ部のデータと、前記記憶装置のデータと、前記第2のキャッシュメモリ装置のデータメモリ部のデータとが全て一致する旨を示す場合に、前記データメモリ部へのクロックの供給を止めることを特徴とする請求項1記載のキャッシュメモリ装置。
  3. 前記キャッシュメモリ装置において、
    前記制御部は、前記検索されたタグメモリ部のキャッシュラインを無効化する場合、前記データメモリ部へのクロックの供給を止めた状態で、前記タグメモリ部へクロックを供給することを特徴とする請求項1又は2に記載のキャッシュメモリ装置。
  4. 前記キャッシュメモリ装置において、
    前記制御部は、
    前記検索されたキャッシュラインのステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致しないことを示す場合、前記データメモリ部へのクロックの供給を開始して、前記データメモリ部からデータを読み出すとともに前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致することを示す場合、前記データメモリ部へのクロックの供給を停止することを特徴とする請求項1〜3の何れか1項に記載のキャッシュメモリ装置。
  5. 前記キャッシュメモリ装置はさらに、
    前記データメモリ部のキャッシュラインと対応付けられたキャッシュライン毎にタグアドレスとステート情報とを記憶する第2タグメモリ部を有し、
    前記制御部はさらに、
    前記タグメモリ部からの前記検索されたキャッシュラインの読み出し中にエラーを検出した場合、前記タグメモリ部及び前記第2タグメモリ部にクロックを供給して、前記タグメモリ部及び前記第2タグメモリ部の両方から前記検索されたキャッシュラインを読み出すことを特徴とする請求項1〜4の何れか1項に記載のキャッシュメモリ装置。
  6. 前記キャッシュメモリ装置において、
    前記制御部はさらに、
    前記検索されたキャッシュラインのステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致しないことを示す場合、前記データメモリ部へのクロックの供給を開始して、前記データメモリ部からデータを読み出すとともに前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致することを示す場合、前記データメモリ部へのクロックの供給を停止して、前記データメモリ部における前記検索されたキャッシュラインに保持されたデータを前記記憶装置に追い出す処理を中断するとともに、前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記検索されたデータメモリ部のキャッシュラインのデータが、前記記憶装置において対応するデータから変更されている旨を示す場合、前記データメモリ部へのクロックの供給を開始して、前記検索されたキャッシュラインに保持されたデータを前記記憶装置に追い出す処理を再開することを特徴とする請求項1〜5の何れか1項に記載のキャッシュメモリ装置。
  7. データを記憶する記憶装置に接続するとともに、前記記憶装置が記憶するデータの一部を保持するキャッシュメモリ装置と、前記キャッシュメモリにデータを要求するメモリアクセス要求を出力する命令制御部とを有する演算処理装置において、
    前記キャッシュメモリ装置は、
    キャッシュライン毎にデータを保持するデータメモリ部と、
    前記データメモリ部のキャッシュラインと対応付けられたキャッシュライン毎に、前記メモリアクセス要求の対象であるデータの前記記憶装置における記憶位置を特定するタグアドレスと、前記タグアドレスに対応するデータメモリ部のデータの状態を示すステート情報とを保持するタグメモリ部と、
    前記メモリアクセス要求に含まれるインデックスアドレスに対応する前記タグメモリ部のキャッシュラインを検索する検索部と、
    前記検索されたタグメモリ部のキャッシュラインに保持されたタグアドレスと、前記メモリアクセス要求に含まれるタグアドレスとを比較して両者が一致しない場合にキャッシュミスを検出するとともに、前記検索キャッシュラインのステート情報を読み出す比較部と、
    前記比較部がキャッシュミスを検出した場合、前記メモリアクセス要求の対象となるデータを前記記憶装置へ要求するとともに、前記記憶装置に対して要求したデータを格納するキャッシュラインが前記データメモリ部に無い場合、前記比較部が読み出したキャッシュラインのステート情報に基づいて、前記データメモリ部へのクロックの供給を止める制御部を備えることを特徴とする演算処理装置。
  8. 前記演算処理装置において、
    前記記憶装置はさらに、他のキャッシュメモリ装置に接続し、
    前記制御部は、前記比較部が読み出したステート情報が、前記検索されたキャッシュラインに対応する前記データメモリ部のデータが、前記第2のキャッシュメモリ装置のデータメモリ部のデータまたは前記記憶装置のデータの少なくとも一方と一致しない旨を示す場合、又は、前記検索されたキャッシュラインに対応する前記データメモリ部のデータと、前記記憶装置のデータと、前記第2のキャッシュメモリ装置のデータメモリ部のデータとが全て一致する旨を示す場合に、前記データメモリ部へのクロックの供給を止めることを特徴とする請求項7記載の演算処理装置。
  9. 前記演算処理装置において、
    前記制御部は、前記検索されたタグメモリ部のキャッシュラインを無効化する場合、前記データメモリ部へのクロックの供給を止めた状態で、前記タグメモリ部へクロックを供給することを特徴とする請求項7又は8記載の演算処理装置。
  10. 前記演算処理装置において、
    前記制御部は、
    前記検索されたキャッシュラインのステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致しないことを示す場合、前記データメモリ部へのクロックの供給を開始して、前記データメモリ部からデータを読み出すとともに前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致することを示す場合、前記データメモリ部へのクロックの供給を停止することを特徴とする請求項7〜9の何れか1項に記載の演算処理装置。
  11. 前記演算処理装置において、
    前記キャッシュメモリ装置はさらに、
    前記データメモリ部のキャッシュラインと対応付けられたキャッシュライン毎にタグアドレスとステート情報とを記憶する第2タグメモリ部を有し、
    前記制御部はさらに、
    前記タグメモリ部からの前記検索されたキャッシュラインの読み出し中にエラーを検出した場合、前記タグメモリ部及び前記第2タグメモリ部にクロックを供給して、前記タグメモリ部及び前記第2タグメモリ部の両方から前記検索されたキャッシュラインを読み出すことを特徴とする請求項7〜10の何れか1項に記載の演算処理装置。
  12. 前記演算処理装置において、
    前記制御部はさらに、
    前記検索されたキャッシュラインのステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致しないことを示す場合、前記データメモリ部へのクロックの供給を開始して、前記データメモリ部からデータを読み出すとともに前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致することを示す場合、前記データメモリ部へのクロックの供給を停止して、前記データメモリ部における前記検索されたキャッシュラインに保持されたデータを前記記憶装置に追い出す処理を中断するとともに、前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記検索されたデータメモリ部のキャッシュラインのデータが、前記記憶装置において対応するデータから変更されている旨を示す場合、前記データメモリ部へのクロックの供給を開始して、前記検索されたキャッシュラインに保持されたデータを前記記憶装置に追い出す処理を再開することを特徴とする請求項7〜11の何れか1項に記載の演算処理装置。
  13. データを要求するメモリアクセス要求を出力する命令制御部と、データを記憶する記憶装置とに接続するキャッシュメモリ装置の制御方法であって、
    前記キャッシュメモリ装置が有する検索部が、キャッシュライン毎にデータを保持するデータメモリ部のキャッシュラインと対応付けられたキャッシュライン毎に、前記メモリアクセス要求の対象であるデータの前記記憶装置における記憶位置を特定するタグアドレスと、前記タグアドレスに対応するデータメモリ部のデータの状態を示すステート情報とを保持するタグメモリ部から、前記メモリアクセス要求に含まれるインデックスアドレスに対応する前記タグメモリ部のキャッシュラインを検索するステップと、
    前記キャッシュメモリ装置が有する比較部が、前記検索されたタグメモリ部のキャッシュラインに保持されたタグアドレスと、前記メモリアクセス要求に含まれるタグアドレスとを比較して両者が一致しない場合にキャッシュミスを検出するとともに、前記検索キャッシュラインのステート情報を読み出すステップと、
    前記比較部がキャッシュミスを検出した場合、前記キャッシュメモリ装置が有する制御部が、前記メモリアクセス要求の対象となるデータを前記記憶装置へ要求するとともに、前記記憶装置に対して要求したデータを格納するキャッシュラインが前記データメモリ部に無い場合、前記比較部が読み出したキャッシュラインのステート情報に基づいて、前記データメモリ部へのクロックの供給を止めるステップを備えることを特徴とするキャッシュメモリ装置の制御方法。
  14. 前記キャッシュメモリ装置の制御方法において、
    前記記憶装置はさらに、他のキャッシュメモリ装置に接続し、
    前記制御部は、前記比較部が読み出したステート情報が、前記検索されたキャッシュラインに対応する前記データメモリ部のデータが、前記第2のキャッシュメモリ装置のデータメモリ部のデータまたは前記記憶装置のデータの少なくとも一方と一致しない旨を示す場合、又は、前記検索されたキャッシュラインに対応する前記データメモリ部のデータと、前記記憶装置のデータと、前記第2のキャッシュメモリ装置のデータメモリ部のデータとが全て一致する旨を示す場合に、前記データメモリ部へのクロックの供給を止めることを特徴とする請求項13記載のキャッシュメモリ装置の制御方法。
  15. 前記キャッシュメモリ装置の制御方法において、
    前記制御部は、前記検索されたタグメモリ部のキャッシュラインを無効化する場合、前記データメモリ部へのクロックの供給を止めた状態で、前記タグメモリ部へクロックを供給することを特徴とする請求項13又は14に記載のキャッシュメモリ装置の制御方法。
  16. 前記キャッシュメモリ装置の制御方法はさらに、
    前記検索されたキャッシュラインのステート情報が、前記データメモリ部へのクロックの供給を開始して、前記データメモリ部からデータを読み出すとともに前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致することを示す場合、前記データメモリ部へのクロックの供給を停止することを特徴とする請求項13〜15の何れか1項に記載のキャッシュメモリ装置の制御方法。
  17. 前記キャッシュメモリ装置の制御方法において、
    前記キャッシュメモリ装置はさらに、
    前記データメモリ部のキャッシュラインと対応付けられたキャッシュライン毎にタグアドレスとステート情報とを記憶する第2タグメモリ部を有し、
    前記制御部はさらに、
    前記タグメモリ部からの前記検索されたキャッシュラインの読み出し中にエラーを検出した場合、前記タグメモリ部及び前記第2タグメモリ部にクロックを供給して、前記タグメモリ部及び前記第2タグメモリ部の両方から前記検索されたキャッシュラインを読み出すことを特徴とする請求項13〜16の何れか1項に記載のキャッシュメモリ装置の制御方法。
  18. 前記キャッシュメモリ装置の制御方法において、
    前記制御部はさらに、
    前記検索されたキャッシュラインのステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致しないことを示す場合、前記データメモリ部へのクロックの供給を開始して、前記データメモリ部からデータを読み出すとともに前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記データメモリ部のデータと前記記憶装置のデータとが一致することを示す場合、前記データメモリ部へのクロックの供給を停止して、前記データメモリ部における前記検索されたキャッシュラインに保持されたデータを前記記憶装置に追い出す処理を中断するとともに、前記タグメモリ部から前記キャッシュラインのステート情報を読み出し、前記読み出されたステート情報が、前記検索されたデータメモリ部のキャッシュラインのデータが、前記記憶装置において対応するデータから変更されている旨を示す場合、前記データメモリ部へのクロックの供給を開始して、前記検索されたキャッシュラインに保持されたデータを前記記憶装置に追い出す処理を再開することを特徴とする請求項13〜17の何れか1項に記載のキャッシュメモリ装置の制御方法。
JP2010142780A 2009-07-02 2010-06-23 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 Ceased JP2011028736A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010142780A JP2011028736A (ja) 2009-07-02 2010-06-23 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
US12/826,967 US8473685B2 (en) 2009-07-02 2010-06-30 Cache memory device, processor, and control method for cache memory device to reduce power unnecessarily consumed by cache memory
EP10168161A EP2275937A1 (en) 2009-07-02 2010-07-01 Cache memory device, processor, and control method for cache memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009158146 2009-07-02
JP2010142780A JP2011028736A (ja) 2009-07-02 2010-06-23 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法

Publications (1)

Publication Number Publication Date
JP2011028736A true JP2011028736A (ja) 2011-02-10

Family

ID=42983788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010142780A Ceased JP2011028736A (ja) 2009-07-02 2010-06-23 キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法

Country Status (3)

Country Link
US (1) US8473685B2 (ja)
EP (1) EP2275937A1 (ja)
JP (1) JP2011028736A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014126555A1 (en) * 2013-02-13 2014-08-21 Violin Memory, Inc. Mapping engine for a storage device
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US10152421B2 (en) * 2015-11-23 2018-12-11 Intel Corporation Instruction and logic for cache control operations
KR102444208B1 (ko) * 2017-10-19 2022-09-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11467966B2 (en) * 2020-09-02 2022-10-11 Shenzhen GOODIX Technology Co., Ltd. Cache memory having a programmable number of ways

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154261A (ja) * 1987-12-11 1989-06-16 Toshiba Corp 情報処理装置
US5809532A (en) * 1993-12-06 1998-09-15 Motorola Inc. Data processor with cache and method of operation
JP2002007210A (ja) * 2000-06-05 2002-01-11 Samsung Electronics Co Ltd デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法
JP2003150446A (ja) * 2001-11-16 2003-05-23 Matsushita Electric Ind Co Ltd キャッシュメモリ
JP2008503821A (ja) * 2004-06-24 2008-02-07 株式会社ソニー・コンピュータエンタテインメント 小容量キャッシュシステムにおけるアトミック予約ライン上のライトバックを無効化する方法およびシステム
JP2009524137A (ja) * 2006-01-19 2009-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04273549A (ja) 1991-02-28 1992-09-29 Toshiba Corp キャッシュメモリのライトバック方式
US6202139B1 (en) * 1998-06-19 2001-03-13 Advanced Micro Devices, Inc. Pipelined data cache with multiple ports and processor with load/store unit selecting only load or store operations for concurrent processing
US6381678B2 (en) * 1998-10-30 2002-04-30 Intel Corporation Processing ordered data requests to a memory
US6427191B1 (en) * 1998-12-31 2002-07-30 Intel Corporation High performance fully dual-ported, pipelined cache design

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154261A (ja) * 1987-12-11 1989-06-16 Toshiba Corp 情報処理装置
US5809532A (en) * 1993-12-06 1998-09-15 Motorola Inc. Data processor with cache and method of operation
JP2002007210A (ja) * 2000-06-05 2002-01-11 Samsung Electronics Co Ltd デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法
JP2003150446A (ja) * 2001-11-16 2003-05-23 Matsushita Electric Ind Co Ltd キャッシュメモリ
JP2008503821A (ja) * 2004-06-24 2008-02-07 株式会社ソニー・コンピュータエンタテインメント 小容量キャッシュシステムにおけるアトミック予約ライン上のライトバックを無効化する方法およびシステム
JP2009524137A (ja) * 2006-01-19 2009-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ

Also Published As

Publication number Publication date
US8473685B2 (en) 2013-06-25
US20110004730A1 (en) 2011-01-06
EP2275937A1 (en) 2011-01-19

Similar Documents

Publication Publication Date Title
US9223710B2 (en) Read-write partitioning of cache memory
KR101379596B1 (ko) Tlb 프리페칭
US9274953B2 (en) Combined transparent/non-transparent cache
JP5528554B2 (ja) ブロックベースの非透過的キャッシュ
US8527727B2 (en) Semiconductor storage device, with organizing-state notify processing
JP5536658B2 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
JP2011198133A (ja) メモリシステムおよびコントローラ
US10120806B2 (en) Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US10013310B2 (en) Cache memory device and operating method thereof
JP2010198610A (ja) データ処理装置および方法
JP2006114206A (ja) Dramおよびフラッシュメモリを有するhdd
JP2011028736A (ja) キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
JP2009524137A5 (ja)
JP2005276199A (ja) Dmaコントローラにキャッシュ管理コマンドを提供する方法
US10185619B2 (en) Handling of error prone cache line slots of memory side cache of multi-level system memory
JP2013174975A (ja) メモリシステムとそのデータ書き込み方法
US20080263282A1 (en) System for Caching Data
JP2003067245A (ja) データ処理装置のメモリ・ユニットに対するアクセス
US20190317891A1 (en) Ordering updates for nonvolatile memory accesses
JP5129023B2 (ja) キャッシュメモリ装置
TW200304594A (en) System and method of data replacement in cache ways
JP2015527684A (ja) スティッキー抜去エンジンを伴うシステムキャッシュ
JP5025670B2 (ja) 情報処理装置およびデータ記憶装置
JP5348146B2 (ja) キャッシュメモリおよびその制御方法
KR102513913B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140312

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140924

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141002

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141118

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20150324