JP2012022567A - キャッシュメモリ - Google Patents

キャッシュメモリ Download PDF

Info

Publication number
JP2012022567A
JP2012022567A JP2010160810A JP2010160810A JP2012022567A JP 2012022567 A JP2012022567 A JP 2012022567A JP 2010160810 A JP2010160810 A JP 2010160810A JP 2010160810 A JP2010160810 A JP 2010160810A JP 2012022567 A JP2012022567 A JP 2012022567A
Authority
JP
Japan
Prior art keywords
data
memory
tag
control unit
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010160810A
Other languages
English (en)
Inventor
Hiroaki Ishikawa
博章 石川
Yasuto Omiya
康人 近江谷
Yasuhiro Omori
康宏 大森
Shigeru Hashimoto
茂 橋本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010160810A priority Critical patent/JP2012022567A/ja
Publication of JP2012022567A publication Critical patent/JP2012022567A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】アクセス時間を短縮する効果を得つつ、消費電力を低減することを目的とする。
【解決手段】キャッシュメモリ1は、セット番号が複数のグループに分けられ、そのグループ毎にタグメモリブロックを有するとともに、各タグメモリブロック内にそのグループに属するセット番号毎に複数の領域からなるタグアレイを有するタグメモリ7と、前記グループ毎にデータメモリブロックを有するとともに、各データメモリブロック内にそのグループに属するセット番号毎に複数の領域からなるデータアレイを有するデータメモリ8とを備える。キャッシュメモリ1は、要求されたデータのセット番号が属するタグメモリブロックの各領域とデータメモリブロックの各領域とから並列してデータを読み出す。
【選択図】図6

Description

この発明は、プロセッサがメモリからデータを取得するアクセス時間を短縮するためのキャッシュメモリに関する。特に、この発明は、セットアソシアティブ方式で構成されたキャッシュメモリの構成および制御方式に関する。
特許文献1には、タグ情報とデータとを別個のメモリブロックとして構成したキャッシュメモリについての記載がある。このキャッシュメモリでは、プロセッサからの読出しに対し、キャッシュメモリのヒット/ミスヒットを判定する際にはデータメモリにはアクセスせず、タグメモリのみにアクセスすることで、消費電力を低減する効果を得ている。
特開2006−318080号公報
しかしながら、特許文献1に記載されたキャッシュメモリでは、タグメモリとデータメモリとを順に読出しする必要があり、キャッシュメモリ本来のアクセス時間短縮の効果が弱い。
なお、タグとデータとを同一のメモリブロックとして構成したキャッシュメモリでは、タグ情報とデータとを同時に読み出すことでアクセス時間を短縮することはできるが、データメモリにおける該当するセット番号の全領域(全way)へアクセスするため、特許文献1に記載されたキャッシュメモリに比べ消費電力が多くなる。
この発明は、アクセス時間を短縮する効果を得つつ、消費電力を低減することを目的とする。
この発明に係るキャッシュメモリは、
プロセッサから送信されるアドレスに対応するキャッシュデータを読み出して、読み出したキャッシュデータを前記プロセッサへ送信するキャッシュメモリであり、
1つのセット番号に複数のアドレスが割り当てられたセット番号が複数のグループに分けられ、そのグループ毎にタグメモリブロックを有するとともに、各タグメモリブロック内にそのグループに属するセット番号毎に複数の領域からなるタグアレイを有するタグメモリであって、各タグメモリブロックにおける各タグアレイの各領域に、そのタグアレイに対応するセット番号が割り当てられた複数のアドレスのうちいずれかのアドレスに対応するタグ情報を保持するタグメモリと、
前記グループ毎にデータメモリブロックを有するとともに、各データメモリブロック内にそのグループに属するセット番号毎に複数の領域からなるデータアレイを有するデータメモリであって、前記タグメモリが保持するタグ情報に対応するアドレスのデータをキャッシュデータとして、そのタグ情報が保持されるタグアレイの領域に対応するデータアレイの領域に保持するデータメモリと、
前記プロセッサから送信されるアドレスを受信するインターフェース部と、
前記インターフェース部が受信したアドレスからセット番号を計算するアクセス制御部と、
前記アクセス制御部が計算したセット番号が属するグループのタグメモリブロックにアクセスし、そのセット番号のタグアレイのいずれかの領域に前記インターフェース部が受信したアドレスに対応するタグ情報が保持されているか否かを判定するアドレスコントロール部と、
前記アクセス制御部が計算したセット番号が属するグループのデータメモリブロックにアクセスし、そのセット番号のデータアレイの各領域からキャッシュデータを読み出すデータコントロール部と
を備え、
前記インターフェース部は、前記アドレスに対応するタグ情報が保持されていると前記アドレスコントロール部が判定した場合、前記タグ情報が保持されているタグアレイの領域に対応するデータアレイの領域から、前記データコントロール部が読み出したキャッシュデータを前記プロセッサへ送信する
ことを特徴とする。
この発明に係るキャッシュメモリは、タグ情報とキャッシュデータとを同時に読み出すためアクセス時間を短縮することができる。また、このキャッシュメモリは、タグ情報が保持されるタグメモリと、キャッシュデータが保持されるデータメモリとが、グループ毎に複数のメモリブロックに分かれており、そのうちキャッシュデータが格納されている可能性のあるメモリブロックにのみアクセスする。そのため、駆動するメモリブロックを少なくでき、消費電力を低減することができる。さらに、駆動するメモリブロックをデータ内で複数に分割し、分割数に応じた周期で並列に読み出すことにより消費電力を低減することができる。
メインメモリからキャッシュメモリへのデータコピーの説明図。 フルアソシアティブ方式の説明図。 ダイレクトマップ方式の説明図。 セットアソシアティブ方式の説明図。 セットアソシアティブ方式におけるキャッシュメモリの構成図。 実施の形態1に係るキャッシュメモリ1の説明図。 タグメモリ7の構成図。 データメモリ8の構成図。 バーストアクセス制御部9の構成図。 キャッシュメモリ1の動作を示すタイミングチャート。 メモリブロックのアウトプットを抑止する回路構成の例を示す図。
実施の形態1.
まず、キャッシュメモリの基本的な事項について簡単に説明する。
キャッシュメモリは、プロセッサがメインメモリにアクセスするアクセス時間を短縮するために用いられる。キャッシュメモリは、メインメモリよりも容量が小さく高速なメモリであり、プロセッサに頻繁に利用される(可能性の高い)一部のデータを、メインメモリからコピーしておき、要求に応じてプロセッサにコピーしたデータを提供する。
図1は、メインメモリからキャッシュメモリへのデータコピーの説明図である。
キャッシュメモリは、所定の単位データのサイズ毎に、メインメモリのデータをコピーする。一般に、この単位データをキャッシュラインと呼び、そのサイズをラインサイズと呼ぶ。なお、ここでは、ラインサイズを128バイトとしている。キャッシュメモリにおいて、キャッシュラインを格納する各領域をラインと呼び、各ラインにはライン番号が付けられている。
通常、各キャッシュラインのメインメモリにおける開始アドレスは、ラインサイズの整数倍のアドレスに限定される。つまり、メインメモリのデータを、先頭からラインサイズ毎に分割してできるブロック毎に、メインメモリからキャッシュメモリへデータがコピーされる。
キャッシュメモリがコピーしたデータを保持する方式には、フルアソシアティブ方式、ダイレクトマップ方式、セットアソシアティブ方式等がある。
図2は、フルアソシアティブ方式の説明図である。
図2に示すように、フルアソシアティブ方式は、コピーしたデータをキャッシュメモリにおけるどこのラインにでも格納可能な方式である。
フルアソシアティブ方式では、各ラインにメインメモリのどのブロックでも保持できるため、キャッシュメモリの利用効率という観点では効率がよい。しかし、フルアソシアティブ方式では、要求されたデータがどのラインに保持されているかを判定するアドレス比較回路の規模が大きくなることから、回路規模や消費電力が増大してしまう。
図3は、ダイレクトマップ方式の説明図である。
図3に示すように、ダイレクトマップ方式は、メインメモリにおけるアドレスに応じて格納するラインを限定した方式である。例えば、メインメモリのアドレスの小さい順にブロックを並べ、各ブロックを順に各ライン番号に割り当てる。図3では、ブロック0,n,2n,・・・がライン番号0に割り当てられ、ブロック1,n+1,2n+1,・・・がライン番号1に割り当てられる。
ダイレクトマップ方式では、要求されたデータのアドレスから一意にライン番号を特定できるため、読出し時間が短い。しかし、ダイレクトマップ方式では、例えば、ちょうどライン数の整数倍離れたブロック(例えば、ブロック0とブロックn)のデータを交互に読み出すような場合、常にキャッシュメモリにデータがなく、メインメモリにアクセスしなければならなくなる。この現象は、スラッシングと呼ばれ、性能が著しく低下してしまう。
図4は、セットアソシアティブ方式の説明図である。なお、図4は、2wayセットアソシアティブ方式を例として示す。
図4に示すように、セットアソシアティブ方式は、ダイレクトマップ方式と同様に、メインメモリにおけるアドレスに応じて格納するラインを限定した方式である。しかし、セットアソシアティブ方式は、ダイレクトマップ方式とは異なり、キャッシュメモリの各ライン(セットアソシアティブ方式ではセットと呼ぶ)に複数の領域からなるアレイを有する。ここでは、2wayセットアソシアティブ方式であるため、各セットにway0とway1との2つの領域からなるアレイを有する。X個の領域からなるアレイを有する場合、Xwayセットアソシアティブ方式と呼ばれる。
Xwayセットアソシアティブ方式では、キャッシュメモリは、同じセット番号に割り当てられたブロックのデータを同時にX個保持することができる。したがって、アレイの領域数Xを増やすほど、ダイレクトマップ方式で説明したスラッシングが発生しづらい。
図5は、セットアソシアティブ方式におけるキャッシュメモリの構成図である。なお、図5は、2wayセットアソシアティブ方式を例として示す。
図5に示すように、セットアソシアティブ方式では、キャッシュメモリは、タグ情報を保持するタグメモリと、キャッシュデータを保持するデータメモリとを有する。そして、タグメモリとデータメモリとは、それぞれ同じ数のセットを有するとともに、同じ数の領域からなるアレイを有している。
プロセッサからキャッシュメモリに送信されるリード命令には、要求するデータのアドレスが含まれる。キャッシュメモリは、リード命令に含まれるアドレスからセット番号を計算して、タグメモリにおける計算したセット番号のアレイの各領域からタグ情報を取得する。取得したタグ情報と読み出し要求に含まれるアドレス情報とが一致していれば、要求したデータがキャッシュメモリに保持されていることがわかる。そして、一致したタグ情報から要求したデータが格納されている領域の識別情報(way番号)を特定し、計算したセット番号のデータアレイにおける、特定したway番号の領域から、データを取得する。例えば、一致したタグ情報が保持されていた領域の識別情報(way番号)、要求したデータが格納されている領域の識別情報(way番号)として特定する。一方、対応するタグ情報が保持されていなければ、要求されたデータがキャッシュメモリに保持されていないことがわかる。したがって、キャッシュメモリは、メインメモリから要求されたデータを取得する必要がある。
次に、実施の形態1に係るキャッシュメモリ1について説明する。
図6は、実施の形態1に係るキャッシュメモリ1の説明図である。
図6に示すように、キャッシュメモリ1は、プロセッサ2とメインメモリ3との間に接続される。キャッシュメモリ1は、通常のキャッシュメモリと同様に、プロセッサ2からリード命令を受信すると、キャッシュメモリ1内に要求されたデータが保持されている場合には、そのデータをプロセッサ2へ送信する。また、保持されていない場合にはメインメモリ3からそのデータを取得してプロセッサ2へ送信するとともに、そのデータをキャッシュメモリ1内に保持する。
図6に示すように、キャッシュメモリ1は、プロセッサI/F部4(インターフェース部)、アドレスコントロール部5、データコントロール部6、タグメモリ7、データメモリ8、バーストアクセス制御部9(アクセス制御部)を備える。
プロセッサI/F部4は、プロセッサ2と外部との接続プロトコルであるプロセッサバスを介して、プロセッサ2からのリード命令(読出し要求)/ライト命令(書込み要求)を受信する。プロセッサI/F部4は、受信した要求を解釈し、リード命令かライト命令かを判定して、判定結果に応じた制御信号をアドレスコントロール部5へ送信する。
なお、ここでは、リード命令を受信した場合について説明する。リード命令には、読み出すデータの開始アドレスと、データ長とが含まれる。
アドレスコントロール部5は、開始アドレスを含む制御信号をプロセッサI/F部4から受信する。また、アドレスコントロール部5は、後述するバーストアクセス制御部9から、開始アドレスに対して割り当てられたセット番号等を受信する。アドレスコントロール部5は、受信したセット番号等に基づきタグメモリ7からタグ情報を取得し、取得したタグ情報と受信したアドレス情報とから、要求されているデータがデータメモリ8に保持されているか否かを判定する。そして、アドレスコントロール部5は、判定結果をデータコントロール部6へ送信する。
データコントロール部6は、アドレスコントロール部5から送信された判定結果に従い、プロセッサI/F部4と、データメモリ8又はメインメモリ3との間のデータ送受信を制御する。
具体的には、要求されたデータがデータメモリ8に保持されていることを判定結果が示す場合には、データコントロール部6は、データメモリ8からデータを読み出してプロセッサI/F部4へ送信する。一方、要求されたデータがデータメモリ8に保持されていないことを判定結果が示す場合には、メインメモリ3からデータを取得して、データメモリ8に書込むとともに、プロセッサI/F部4へ送信する。
なお、データコントロール部6は、バーストアクセス制御部9からセット番号等を受信し、受信したセット番号等に基づきデータメモリ8等からデータを取得する。
タグメモリ7は、タグ情報を保持するメモリである。図7は、タグメモリ7の構成図である。
図7に示すように、タグメモリ7は、偶数セット用(偶数ライン用)の偶数セットブロック10(タグメモリブロック)と、奇数セット用(奇数ライン用)の奇数セットブロック11(タグメモリブロック)との2つのメモリブロックを有する。また、偶数セットブロックと奇数セットブロックとは、それぞれ、way0とway1との2つの領域からなるアレイ(タグアレイ)を有する。
データメモリ8は、キャッシュデータを保持するメモリである。図8は、データメモリ8の構成図である。
図8に示すように、データメモリ8は、偶数セット用(偶数ライン用)の偶数セットブロック20(データメモリブロック)と、奇数セット用(奇数ライン用)の奇数セットブロック21(データメモリブロック)との2つのメモリブロックを有する。また、偶数セットブロック20と奇数セットブロック21とは、それぞれ、キャッシュラインの上位半分のビットを保持する上位データメモリ22,24と、残り半分のビットを保持する下位データメモリ23,25とのメモリブロックを有する。さらに、上位データメモリ22,24と下位データメモリ23,25とは、それぞれ、way0とway1との2つの領域からなるアレイ(データアレイ)を有する。
また、各上位データメモリ22,24と各下位データメモリ23,25とは、各wayのデータから読み出したデータを切り替えるウェイセレクタ29,30,31,32を備える。
また、偶数セットブロック20は、ウェイセレクタ29,30が上位データメモリ22と下位データメモリ23とから読み出したデータをインターリーブ(交互配置)して、データセレクタ28へ送信するセレクタ26を備える。同様に、奇数セットブロック21は、ウェイセレクタ31,32上位データメモリ24と下位データメモリ25とから読み出したデータをインターリーブ(交互配置)して、データセレクタ28へ送信するセレクタ27を備える。
データセレクタ28は、セレクタ26又はセレクタ27から受信したデータをデータコントロール部6へ出力する。
バーストアクセス制御部9は、プロセッサI/F部4が受信したリード命令が、単一のキャッシュラインの内容が格納されたデータメモリのアドレスを順次加算などをしながら連続して読み出すバーストアクセスである場合に、処理を制御する。図9は、バーストアクセス制御部9の構成図である。
バーストアクセス制御部9は、データ長判定回路40、開始アドレス判定回路41、選択メモリ判定回路42、メモリ選択回路43を備える。なお、バーストアクセス制御部9は、プロセッサI/F部4から要求されたデータの開始アドレスとデータ長と受信する。
データ長判定回路40は、開始アドレスとデータ長とからバーストアクセスであるか否かを判定する。
開始アドレス判定回路41は、プロセッサ2から送信された開始アドレスが含まれるキャッシュラインのセット番号を特定する。
選択メモリ判定回路42は、要求されたデータがタグメモリ7とデータメモリ8とのどちらのセットブロックに保持されているかを判定する。ここでは、選択メモリ判定回路42は、開始アドレスの下位1ビットが0であれば偶数セットブロック、1であれば奇数セットブロックに要求されたデータが保持されていると判定する。
メモリ選択回路43は、開始アドレス判定回路41が特定したセット番号と、選択メモリ判定回路42が選択したセットブロックとを示すメモリ選択信号(メモリチップセレクト信号)をアドレスコントロール部5とデータコントロール部6とへ送信する。
なお、バーストアクセスは、一般に、キャッシュメモリ1が2次キャッシュや3次キャッシュとして用いられている場合や、プロセッサ2がストリーミングデータを扱う場合等に発生する。
次に、キャッシュメモリ1の動作について説明する。
なお、ここでは、プロセッサ2からバーストアクセスを指示するリード命令が送信され、要求されたデータがキャッシュメモリ1に保持されている場合について説明する。また、前提として、バーストアクセスされるデータは、同一のセットブロック(偶数セットブロック又は奇数セットブロック)に保持されているとする。
図10は、キャッシュメモリ1の動作を示すタイミングチャートである。
(T0前の処理)
まず、プロセッサI/F部4は、プロセッサ2から命令を受信する。プロセッサI/F部4は、受信した命令がリード命令であるか、ライト命令であるかを判定する。ここでは、リード命令と判定される。プロセッサI/F部4は、読出しの開始アドレスを、リード命令であることを示す制御信号とともに、アドレスコントロール部5へ送信する。また、プロセッサI/F部4は、開始アドレスと、データ長とをバーストアクセス制御部9へ送信する。
(T0での処理)
バーストアクセス制御部9のデータ長判定回路40は、プロセッサI/F部4から受信した開始アドレスと、データ長とから、リード命令がバーストアクセスであるか否かを判定する。ここでは、バーストアクセスであると判定されたとする。また、開始アドレス判定回路41は、プロセッサ2から送信された開始アドレスに対応するセット番号を特定する。さらに、選択メモリ判定回路42は、偶数セットブロックか、奇数セットブロックかを判定する。
そして、バーストアクセス制御部9のメモリ選択回路43は、特定されたセットブロック及びセット番号を示すメモリ選択信号をアドレスコントロール部5へ送信する。
(T1での処理)
アドレスコントロール部5は、バーストアクセス制御部9から受信したメモリ選択信号に従い、タグメモリ7からタグ情報を読み出す。なお、アドレスコントロール部5は、選択メモリ判定回路42から送信されたメモリ選択信号に従い、タグメモリ7の偶数セットブロック10又は奇数セットブロック11(ここでは、偶数セットブロック10)へアクセスする。そして、アドレスコントロール部5は、偶数セットブロック10におけるメモリ選択回路43から送信されたセット番号のアレイの各領域(way0,way1)からタグ情報を読み出す。
この際、アクセスしていないセットブロック(ここでは、奇数セットブロック11)のアウトプットは抑止される。つまり、奇数セットブロック11のメモリブロックは駆動しない。
また、メモリ選択回路43は、特定されたセットブロック及びセット番号を示すメモリ選択信号(Addr0)をデータコントロール部6へ送信する。
(T2での処理)
アドレスコントロール部5は、読み出したタグ情報と、プロセッサI/F部4から送信されたアドレス情報とを比較して、データメモリ8にそのアドレスのデータが保持されているか否かの判定であるHIT判定を実行する。これにより、アレイのどの領域に要求されたデータが保持されているかが特定される。ここでは、way1に要求されたデータが保持されているとする。アドレスコントロール部5は、特定された領域を示す信号をバーストアクセス制御部9へ送信するとともに、要求されたデータがデータメモリ8に保持されていることを示す信号をデータコントロール部6へ送信する。
また、データコントロール部6は、メモリ選択信号(Addr0)に従い、データメモリ8からキャッシュデータの下位ビット(RD#0)の読み出しを開始する。なお、データコントロール部6は、メモリ選択信号(Addr0)に従い、データメモリ8の偶数セットブロック20又は奇数セットブロック21(ここでは、偶数セットブロック20)へアクセスする。そして、データコントロール部6は、アクセスした偶数セットブロック20の下位データメモリ23における、メモリ選択信号(Addr0)が示すセット番号のアレイの各領域(way0,way1)からキャッシュデータを読み出す。
この際、アクセスしていないセットブロック(ここでは、奇数セットブロック21)のアウトプットは抑止される。つまり、奇数セットブロック21のメモリブロックは駆動しない。
また、メモリ選択回路43は、特定されたセットブロック及びセット番号を示すメモリ選択信号(Addr1)をデータコントロール部6へ送信する。
(T3での処理)
データコントロール部6は、メモリ選択信号(Addr1)に従い、データメモリ8からキャッシュデータの上位ビット(RD#1)の読み出しを開始する。なお、データコントロール部6は、メモリ選択信号(Addr1)に従い、データメモリ8の偶数セットブロック20へアクセスする。そして、データコントロール部6は、アクセスした偶数セットブロック20の上位データメモリ24における、メモリ選択信号(Addr1)が示すセット番号のアレイの各領域(way0,way1)からキャッシュデータを読み出す。
この際、バーストアクセス制御部9からタグメモリ7へメモリ選択信号が送信されており、これによりアクセスしていないセットブロック(ここでは、奇数セットブロック21)のアウトプットは抑止される。
また、メモリ選択回路43は、特定されたセットブロック及びセット番号と、アドレスコントロール部5が判定した領域(ここでは、way1)とを示すメモリ選択信号(Addr2)とをデータコントロール部6へ送信する。
(T4での処理)
データコントロール部6は、メモリ選択信号(Addr2)に従い、データメモリ8からキャッシュデータの下位ビット(RD#2)の読み出しを開始する。なお、データコントロール部6は、メモリ選択信号(Addr2)に従い、偶数セットブロック20の下位データメモリ23における、メモリ選択信号(Addr2)が示すセット番号のアレイの各領域(way1)からキャッシュデータを読み出す。
この際、バーストアクセス制御部9からタグメモリ7へメモリ選択信号が送信されており、これによりアクセスしていないセットブロック(ここでは、奇数セットブロック21)のアウトプットは抑止される。
また、メモリ選択回路43は、特定されたセットブロック及びセット番号と、アドレスコントロール部5が判定した領域(ここでは、way1)とを示すメモリ選択信号(Addr3)とをデータコントロール部6へ送信する。
(T5での処理)
データコントロール部6は、メモリ選択信号(Addr3)に従い、データメモリ8からキャッシュデータの上位ビット(RD#3)の読み出しを開始する。なお、データコントロール部6は、メモリ選択信号(Addr3)に従い、偶数セットブロック20の上位データメモリ22における、メモリ選択信号(Addr3)が示すセット番号のアレイの各領域(way1)からキャッシュデータを読み出す。
この際、バーストアクセス制御部9からタグメモリ7へメモリ選択信号が送信されており、これによりアクセスしていないセットブロック(ここでは、奇数セットブロック21)のアウトプットは抑止される。つまり、奇数セットブロック21のメモリブロックは駆動しない。
また、メモリ選択回路43は、特定されたセットブロック及びセット番号と、アドレスコントロール部5が判定した領域(ここでは、way1)とを示すメモリ選択信号(Addr4)とをデータコントロール部6へ送信する。
T6以降も同様に、要求されたデータを全て取得するまで処理を繰り返す。
そして、データコントロール部6は、読み出したキャッシュデータを順次所定のビット幅でプロセッサI/F部4へ送信し、送信されたデータは、プロセッサI/F部4からプロセッサ2へプロセッサバスを介して送信される。例えば、プロセッサにはT4で読み出されたD0、T5で読み出されたD1、T6で読み出されたD2が順次送信される。
なお、ここでは、要求されたデータがキャッシュメモリ1に保持されている場合について説明した。要求されたデータがキャッシュメモリ1に保持されていない場合、T2でアドレスコントロール部5により、要求されたデータがキャッシュメモリ1に保持されていないと判定される。そして、その判定結果がデータコントロール部6へ送信される。この場合、データコントロール部6は、T1,T2でデータメモリ8から読み出したデータを破棄して、メインメモリ3からデータを取得する。
以上のように、キャッシュメモリ1は、リード要求を受信すると、タグメモリ7からタグ情報を読み出し、要求されたデータがデータメモリ8に保持されているか否かを判定する処理と、データメモリ8からデータを読み出す処理とを並列に実行する。そのため、タグ情報を読み出し判定した後、データを読み出す方法に比べ、プロセッサ2へのデータ転送を開始するまでの時間を短縮することができる。
また、キャッシュメモリ1は、タグメモリ7やデータメモリ8からデータを読み出す前に、データがどのセットブロックに保持されているかを特定する。そして、特定したセットブロックのメモリブロックへのみアクセスする。したがって、消費電力を低減することができる。
また、キャッシュメモリ1は、各キャッシュラインの上位ビットと下位ビットとを別のメモリブロックに保持しておき、半分の周波数でデータを読み出すことができる。したがって、消費電力を低減することができる。
また、キャッシュメモリ1は、バーストアクセスの場合、データが格納された領域が特定されるまでは、各領域(way0,way1)からデータを読み出すが、特定された後は、特定された領域のみからデータを読み出す。また、データが格納された領域を特定する処理も、初めに1回実行するのみである。したがって、消費電力を低減することができる。
また、上記説明では、アドレスコントロール部5やデータコントロール部6がアクセスしていないセットブロックのアウトプットは抑止されると説明した。これは、例えば、バーストアクセス制御部9からタグメモリ7へメモリ選択信号が送信されており、これによりタグメモリ7やデータメモリ8のうち、選択されていないメモリブロックのアウトプットが抑止される。
また、図11に示すような回路構成として、メモリ選択信号により、特定のメモリブロック以外のメモリブロックへのクロック信号を遮断し、消費電力を低減してもよい。
以上の説明において、「〜部」として説明したものは、回路等で構成されている。
1 キャッシュメモリ、2 プロセッサ、3 メインメモリ、4 プロセッサI/F部、5 アドレスコントロール部、6 データコントロール部、7 タグメモリ、8 データメモリ、9 バーストアクセス制御部、10 偶数セットブロック、11 奇数セットブロック、20 偶数セットブロック、21 奇数セットブロック、22 上位データメモリ、23 下位データメモリ、24 上位データメモリ、25 下位データメモリ、26,27 セレクタ、28 データセレクタ、29,30,31,32 ウェイセレクタ、40 データ長判定回路、41 開始アドレス判定回路、42 選択メモリ判定回路、43 メモリ選択回路。

Claims (4)

  1. プロセッサから送信されるアドレスに対応するキャッシュデータを読み出して、読み出したキャッシュデータを前記プロセッサへ送信するキャッシュメモリであり、
    1つのセット番号に複数のアドレスが割り当てられたセット番号が複数のグループに分けられ、そのグループ毎にタグメモリブロックを有するとともに、各タグメモリブロック内にそのグループに属するセット番号毎に複数の領域からなるタグアレイを有するタグメモリであって、各タグメモリブロックにおける各タグアレイの各領域に、そのタグアレイに対応するセット番号が割り当てられた複数のアドレスのうちいずれかのアドレスに対応するタグ情報を保持するタグメモリと、
    前記グループ毎にデータメモリブロックを有するとともに、各データメモリブロック内にそのグループに属するセット番号毎に複数の領域からなるデータアレイを有するデータメモリであって、前記タグメモリが保持するタグ情報に対応するアドレスのデータをキャッシュデータとして、そのタグ情報が保持されるタグアレイの領域に対応するデータアレイの領域に保持するデータメモリと、
    前記プロセッサから送信されるアドレスを受信するインターフェース部と、
    前記インターフェース部が受信したアドレスからセット番号を計算するアクセス制御部と、
    前記アクセス制御部が計算したセット番号が属するグループのタグメモリブロックにアクセスし、そのセット番号のタグアレイのいずれかの領域に前記インターフェース部が受信したアドレスに対応するタグ情報が保持されているか否かを判定するアドレスコントロール部と、
    前記アクセス制御部が計算したセット番号が属するグループのデータメモリブロックにアクセスし、そのセット番号のデータアレイの各領域からキャッシュデータを読み出すデータコントロール部と
    を備え、
    前記インターフェース部は、前記アドレスに対応するタグ情報が保持されていると前記アドレスコントロール部が判定した場合、前記タグ情報が保持されているタグアレイの領域に対応するデータアレイの領域から、前記データコントロール部が読み出したキャッシュデータを前記プロセッサへ送信する
    ことを特徴とするキャッシュメモリ。
  2. 前記データコントロール部は、前記アドレスコントロール部がアドレスに対応するタグ情報が保持されているか否かを判定する処理と並列して、前記データメモリブロックにアクセスする
    ことを特徴とする請求項1に記載のキャッシュメモリ。
  3. 前記データメモリが有する各データアレイの各領域は、保持されるデータの上位所定のビット数のデータが保持される上位データメモリと、残りの下位のビットのデータが保持される下位データメモリとに分かれており、
    前記データコントロール部は、データアレイからキャッシュデータを読み出す場合、前記上位データメモリと前記下位データメモリとから並列してデータを読み出す
    ことを特徴とする請求項1又は2に記載のキャッシュメモリ。
  4. 前記データコントロール部は、前記アドレスコントロール部が前記タグ情報を検索している間は、前記上位データメモリと前記下位データメモリとのいずれかからのみデータを読み出す
    ことを特徴とする請求項3に記載のキャッシュメモリ。
JP2010160810A 2010-07-15 2010-07-15 キャッシュメモリ Pending JP2012022567A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010160810A JP2012022567A (ja) 2010-07-15 2010-07-15 キャッシュメモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010160810A JP2012022567A (ja) 2010-07-15 2010-07-15 キャッシュメモリ

Publications (1)

Publication Number Publication Date
JP2012022567A true JP2012022567A (ja) 2012-02-02

Family

ID=45776798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010160810A Pending JP2012022567A (ja) 2010-07-15 2010-07-15 キャッシュメモリ

Country Status (1)

Country Link
JP (1) JP2012022567A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122474A (ja) * 2016-04-05 2016-07-07 ルネサスエレクトロニクス株式会社 データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122474A (ja) * 2016-04-05 2016-07-07 ルネサスエレクトロニクス株式会社 データ処理装置

Similar Documents

Publication Publication Date Title
US7543114B2 (en) System and controller with reduced bus utilization time
JP5453546B2 (ja) 複数の仮想キューを含むアドレス変換ユニット
CN105183662B (zh) 一种无cache一致性协议的分布式共享片上存储架构
US7436728B2 (en) Fast random access DRAM management method including a method of comparing the address and suspending and storing requests
CN103077123A (zh) 一种数据写入和读取方法及装置
KR101445826B1 (ko) 다수의 메모리 영역들에 걸친 강하게 순서화된 디바이스 및 배타적인 트랜잭션들의 자동-순서화
US7899940B2 (en) Servicing commands
US8370540B2 (en) Data transfer control device and data transfer control method
CN106030549A (zh) 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和***
KR101785189B1 (ko) 데이터 기입 방법 및 메모리 시스템
US9697127B2 (en) Semiconductor device for controlling prefetch operation
US20140089587A1 (en) Processor, information processing apparatus and control method of processor
US9798492B2 (en) Semiconductor device including a plurality of function blocks
CN107783909B (zh) 一种内存地址总线扩展方法及装置
JPH06348593A (ja) データ転送制御装置
JP2012022567A (ja) キャッシュメモリ
US20100095071A1 (en) Cache control apparatus and cache control method
US20140173225A1 (en) Reducing memory access time in parallel processors
CN107807888B (zh) 一种用于soc架构的数据预取***及其方法
JP2006251916A (ja) Dma転送システム及びdma転送方法
JP2009217714A (ja) データ処理回路、キャッシュシステムおよびデータ転送装置
JP2006164070A5 (ja)
US10120819B2 (en) System and method for cache memory line fill using interrupt indication
KR101103818B1 (ko) 메모리 관리 유닛 제어 장치, 이를 포함하는 멀티 코어 프로세서, 컴퓨터 시스템 및 메모리 관리 유닛 제어 방법
CN101464838B (zh) 数据管理方法及固态存储***