JP2009252004A - キャッシュシステム - Google Patents
キャッシュシステム Download PDFInfo
- Publication number
- JP2009252004A JP2009252004A JP2008100160A JP2008100160A JP2009252004A JP 2009252004 A JP2009252004 A JP 2009252004A JP 2008100160 A JP2008100160 A JP 2008100160A JP 2008100160 A JP2008100160 A JP 2008100160A JP 2009252004 A JP2009252004 A JP 2009252004A
- Authority
- JP
- Japan
- Prior art keywords
- way
- cache
- cache data
- control unit
- index
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】効率的な処理を可能とし、かつ消費電力を低減可能なキャッシュシステムを提供すること。
【解決手段】インデックスごとの複数のウェイへキャッシュデータを格納可能に構成されたキャッシュデータ記憶部である命令キャッシュデータRAM10と、キャッシュデータ記憶部に格納される他のキャッシュデータに対してアドレスが不連続であるキャッシュデータを格納可能なウェイである有効ウェイ、及び他のキャッシュデータに対してアドレスが不連続であるキャッシュデータの格納が制限されるウェイである無効ウェイのいずれに該当するかを、インデックスごとの各ウェイについて表すウェイ情報を制御するウェイ情報制御部であるウェイバリッドビット制御部16と、を有し、キャッシュデータ記憶部は、無効ウェイを、無効ウェイと同一或いは異なるインデックスの有効ウェイに統合可能に構成される。
【選択図】 図1
【解決手段】インデックスごとの複数のウェイへキャッシュデータを格納可能に構成されたキャッシュデータ記憶部である命令キャッシュデータRAM10と、キャッシュデータ記憶部に格納される他のキャッシュデータに対してアドレスが不連続であるキャッシュデータを格納可能なウェイである有効ウェイ、及び他のキャッシュデータに対してアドレスが不連続であるキャッシュデータの格納が制限されるウェイである無効ウェイのいずれに該当するかを、インデックスごとの各ウェイについて表すウェイ情報を制御するウェイ情報制御部であるウェイバリッドビット制御部16と、を有し、キャッシュデータ記憶部は、無効ウェイを、無効ウェイと同一或いは異なるインデックスの有効ウェイに統合可能に構成される。
【選択図】 図1
Description
本発明は、キャッシュシステム、特に、プロセッサに搭載されるキャッシュシステムに関する。
従来、マイクロプロセッサは、メモリアクセスのボトルネックを解消するために、チップ上にキャッシュメモリを搭載するものが主流となっている。キャッシュメモリの構成としては、複数のウェイを用いるセットアソシアティブ(Set Associative)方式が多く採用されている。セットアソシアティブ方式のキャッシュシステムにおいてヒット率を向上させるための技術として、例えば、特許文献1には、ウェイの数を一時的に増加させる技術が提案されている。
従来、キャッシュメモリは、一旦実装されてからは固定されたラインサイズで使用される。キャッシュタグメモリからのタグ情報の読み出しは、プロセッサコアからのキャッシュアクセスの態様に関わらず、キャッシュラインごとに行われる。このため、連続するアドレスへのアクセスであっても、キャッシュラインの境界を越えるごとにキャッシュタグメモリへのアクセスが必要であることにより、無駄な電力消費が生じることとなる。また、連続するアドレスのデータに対してラインサイズが小さい場合、リフィルの際における主メモリとの間の転送回数を増大させることとなる。これに対して、一定のキャッシュ容量のキャッシュメモリにおいてラインサイズを大きくするに従い、ライン数が減少することとなる。ライン数が減少すると、不連続なアドレスへのアクセスの場合のキャッシュミスが増加することとなる。さらに、特許文献1の技術の場合、ウェイの数を一時的に増加させるための補助的なキャッシュを新たに実装する必要がある。このように、従来の技術によると、効率的な処理を可能とすること、及び消費電力を低減させることが困難であるという問題を生じる。
本発明は、上述の問題に鑑みてなされたものであり、効率的な処理を可能とし、かつ消費電力を低減可能なキャッシュシステムを提供することを目的とする。
本願発明の一態様によれば、インデックスごとの複数のウェイへキャッシュデータを格納可能に構成されたキャッシュデータ記憶部と、キャッシュデータ記憶部に格納される他のキャッシュデータに対してアドレスが不連続であるキャッシュデータを格納可能なウェイである有効ウェイ、及び他のキャッシュデータに対してアドレスが不連続であるキャッシュデータの格納が制限されるウェイである無効ウェイのいずれに該当するかを、インデックスごとの各ウェイについて表すウェイ情報を制御するウェイ情報制御部と、を有し、キャッシュデータ記憶部は、無効ウェイを、無効ウェイと同一或いは異なるインデックスの有効ウェイに統合可能に構成されることを特徴とするキャッシュシステムが提供される。
本発明によれば、効率的な処理を可能とし、かつ消費電力を低減できるという効果を奏する。
以下に添付図面を参照して、本発明に係るキャッシュシステムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るキャッシュシステムの構成を示すブロック図である。本実施の形態に係るキャッシュシステムは、命令キャッシュメモリを備える命令キャッシュシステムであって、本来的に、ウェイ0及びウェイ1からなる2ウェイセットアソシアティブ方式を採用する。命令キャッシュメモリは、プロセッサへの命令群であるプログラムを格納する。
図1は、本発明の第1の実施の形態に係るキャッシュシステムの構成を示すブロック図である。本実施の形態に係るキャッシュシステムは、命令キャッシュメモリを備える命令キャッシュシステムであって、本来的に、ウェイ0及びウェイ1からなる2ウェイセットアソシアティブ方式を採用する。命令キャッシュメモリは、プロセッサへの命令群であるプログラムを格納する。
本実施の形態に係るキャッシュシステムは、本発明が属する分野の技術者によって、以下の説明要綱に基づき、命令キャッシュメモリ以外のデータキャッシュメモリ等を備える多様なキャッシュシステム、及び2ウェイより高次なセットアソシアティブ方式のキャッシュシステムへ変形可能である。従って、以下の説明は、当該分野に対して開示される内容として広く理解されるべきであり、本発明を限定するものではない。
本実施の形態に係るキャッシュシステムは、命令キャッシュデータRAM(Random Access Memory)10、キャッシュタグRAM11、命令キャッシュ制御部12、タグ比較回路13、及び命令フェッチユニット15を有する。命令キャッシュデータRAM10は、キャッシュデータを格納するキャッシュデータ記憶部として機能する。キャッシュタグRAM11は、キャッシュタグ情報を格納するキャッシュタグ記憶部として機能する。命令キャッシュ制御部12は、キャッシュシステム全体を制御する。
タグ比較回路13は、プロセッサによりアクセスされたアドレスのタグ情報と、キャッシュタグRAM11から読み出されたタグ情報とを比較し、比較結果を命令キャッシュ制御部12へ出力する。命令フェッチユニット15は、命令コードをフェッチする。ウェイバリッド(Way Valid;WV)ビット制御部16は、命令キャッシュ制御部12に含まれる。ウェイバリッドビット制御部16は、ウェイバリッドビット制御線17を介してウェイバリッドビットを制御する。
図2は、命令キャッシュデータRAM10の構造を説明するものである。命令キャッシュデータRAM10は、複数のラインを並列させたアレイ構造をなす。各ラインは、何行目であるかを表すインデックス(Index 0〜Index x)が割り当てられている。各ラインには、ウェイの数に応じて最大2つのキャッシュデータが格納される。命令キャッシュデータRAM10は、インデックスごとのウェイ0及びウェイ1へキャッシュデータを格納可能に構成されている。
図3は、キャッシュタグRAM11の構造、及びウェイバリッドビットについて説明するものである。キャッシュタグRAM11は、命令キャッシュデータRAM10と同様に、アレイ構造をなす。キャッシュタグRAM11は、インデックスごとの2つのウェイにキャッシュタグ情報を格納可能に構成されている。
ウェイバリッドビットWVは、例えば、メモリ上のビットとしてキャッシュタグRAM11内に実装される。ウェイバリッドビットWVは、有効ウェイ及び無効ウェイのいずれに該当するかを、インデックスごとの各ウェイについて表すウェイ情報である。有効ウェイとは、命令キャッシュデータRAM10に格納される他のキャッシュデータに対してアドレスが不連続であるキャッシュデータを格納可能なウェイである。無効ウェイとは、命令キャッシュデータRAM10に格納される他のキャッシュデータに対してアドレスが不連続であるキャッシュデータの格納が制限されるウェイである。無効ウェイは、命令キャッシュデータRAM10に格納される他のキャッシュデータに対して連続するアドレスのキャッシュデータのみを格納する。
ウェイバリッドビットWVは、インデックスごとに設定され、本来のウェイの数に対応するビット幅を持つ。本実施の形態において、ウェイバリッドビットWVは、2ビット構成を採る。ウェイバリッドビットWVは、例えば、2ビットのうち上位1ビットをウェイ0、下位1ビットをウェイ1に割り当て、無効ウェイである場合を「0」、有効ウェイである場合を「1」と表すとする。ウェイバリッドビットWVは、キャッシュタグRAM11内に実装される場合に限られず、いずれの位置に実装することとしても良い。ウェイバリッドビットWVは、例えば、レジスタとして命令キャッシュ制御部12内に実装することとしても良い。
また、キャッシュタグRAM11は、次にリフィルするウェイを指示するリプレイス(Replace)ビットR、格納されたデータがタグ情報として有効であるか否かを示すバリッド(Valid)ビットVを格納する。リプレイスビットRは、インデックスごとに設定され、1ビット構成を採る。リプレイスビットRは、例えば、次にリフィルするのがウェイ0である場合を「0」、次にリフィルするのがウェイ1である場合を「1」と表すとする。リプレイスビットRの設定は、例えば、長い時間アクセスが無かったデータを優先してリフィルするLRU(Least Recently Used)方式に従う。バリッドビットVは、各インデックスのウェイごとに設定され、1ビット構成を採る。バリッドビットVは、例えば、格納されたデータがタグ情報として無効である場合を「0」、タグ情報として有効である場合を「1」と表すとする。
プロセッサから要求された命令のアドレスは、命令フェッチユニット15を経て命令キャッシュ制御部12へ供給される。プロセッサからの要求には、逐次要求と分岐要求とがある。逐次要求は、連続するアドレスへのアクセスである。分岐要求は、不連続であるアドレスへのアクセスである。命令キャッシュデータRAM10は、命令キャッシュ制御部12からのアドレスのインデックス部によって指定されたデータを読み出す。キャッシュタグRAM11は、命令キャッシュ制御部12からのアドレスのインデックス部によって指定されたタグ情報を読み出す。タグ比較回路13は、読み出されたタグ情報と、要求されたアドレスのタグ情報とを比較し、比較結果を命令キャッシュ制御部12へ出力する。
キャッシュタグRAM11から読み出されたいずれかのタグ情報と、要求されたアドレスのタグ情報とが一致(ヒット)した場合、命令キャッシュ制御部12は、ヒットしたキャッシュデータを選択する。命令キャッシュ制御部12により選択されたキャッシュデータは、命令フェッチユニット15へ出力される。キャッシュタグRAM11から読み出されたいずれのタグ情報も、要求されたアドレスのタグ情報と一致しない場合(キャッシュミス)、リプレイスビットRにより指示されたウェイについてリフィルを行う。このようにして、キャッシュシステムは、プロセッサから要求された命令コードを出力する。
図4及び図5は、本実施の形態に係るキャッシュシステムにおけるウェイの統合について説明するものである。例えば、図4の白抜き矢印より上に示すように、全てのインデックスについてウェイバリッドビットWVが「11」であるとする。ウェイバリッドビットWV「11」は、ウェイ0、ウェイ1ともに有効ウェイであることを表す。
ウェイバリッドビットWV「11」に対して、図5の白抜き矢印より上に示すように、例えば、命令キャッシュデータRAM10のインデックス0について、ウェイ0にラインA(Line A)のキャッシュデータ、ウェイ1にラインJ(Line J)のキャッシュデータが格納されるとする。ここで、ラインJは、ラインAに対してアドレスが不連続なデータであるとする。キャッシュタグRAM11のインデックス0には、ウェイ0にラインAのタグ情報、ウェイ1にラインJのタグ情報が格納される。インデックス0のバリッドビットVはウェイ0、ウェイ1ともに「1」であって、キャッシュタグRAM11に格納されたデータは、ウェイ0、ウェイ1ともに有効なタグ情報であることを表す。なお、インデックス0のリプレイスビットR「1」は、先にリフィルされるのがウェイ1に格納されたラインJであることを表している。
インデックス1、インデックスx−1、インデックスxのバリッドビットVは、ウェイ0、ウェイ1ともに「0」であって、キャッシュタグRAM11に格納されたデータは、ウェイ0、ウェイ1ともにタグ情報として無効であることを表す。キャッシュタグRAM11のインデックス1、インデックスx−1、インデックスxのタグ情報は、ウェイ0、ウェイ1ともに「don’t care」(図中「−」と表示)とされる。
タグ情報が無効であることから、インデックス1、インデックスx−1、インデックスxについて、リプレイスビットR、命令キャッシュデータRAM10のキャッシュデータも「don’t care」とされる。インデックス2は、ウェイバリッドビットWVが「11」であるため、ウェイ0、ウェイ1ともに有効である。ウェイ0にはラインT(Line T)、ウェイ1にはラインL(Line L)が格納される。ラインLは、ラインTに対してアドレスが不連続なデータであるとする。なお、インデックス2のリプレイスビットR「1」は、先にリフィルされるのがウェイ1に格納されたラインLであることを表している。
次に、図4の白抜き矢印より下に示すように、インデックス0についてのウェイバリッドビットWVが「10」であるとする。ウェイバリッドビットWV「10」は、ウェイ0が有効ウェイ、ウェイ1が無効ウェイであることを表す。ウェイバリッドビットWV「10」に対して、図5の白抜き矢印より下に示すように、命令キャッシュデータRAM10のインデックス0には、ウェイ0にラインAのキャッシュデータ、ウェイ1にラインB(Line B)のキャッシュデータが格納される。ラインBは、ラインAに対して連続するアドレスのデータであるとする。
無効ウェイとされたウェイ1は、直前のウェイ0に格納されるラインAに対してアドレスが不連続なキャッシュデータの格納が制限され、ラインAに対して連続するアドレスのラインBのキャッシュデータのみを格納する。無効ウェイとされたウェイ1は、同一のインデックス0の有効ウェイであるウェイ0に統合される。インデックス0のラインは、ウェイ0及びウェイ1の統合により、ダイレクトマップ方式のキャッシュラインと同様に扱われる。
キャッシュタグRAM11のインデックス0には、本来のウェイ0にラインAのタグ情報が格納される。本来のウェイ1へ格納されるキャッシュデータはラインAに対して連続するアドレスのラインBのキャッシュデータと一意的に決定される。このため、本来のウェイ1へのラインBのタグ情報の格納は不要であって、ウェイ1のタグ情報は「don’t care」(図中「−」と表示)とされる。ウェイ0のバリッドビットVは「1」であって、ウェイ0は有効なキャッシュデータが格納されていることを表す。ウェイ0が有効か否かを判定すればウェイ1が有効か否かの判定は不要であるため、ウェイ1のバリッドビットVは、「don’t care」とされる。また、インデックス0については一つのキャッシュラインとして扱われることから、リプレイスビットRも「don’t care」とされる。
インデックス0のラインは、ウェイ0及びウェイ1の統合により、本来のセットアソシアティブ方式の場合のラインサイズに比較して2倍のラインサイズのキャッシュラインとして利用される。逐次要求に対しては、ラインAのヒットにより、ラインBについてのタグ情報の読み出し及び比較、キャッシュデータの選択をするまでも無く、ラインA及びラインBのキャッシュデータを出力する。
さらに、統合されたウェイは、ウェイバリッドビットWVを「11」とすることにより本来のウェイ0及びウェイ1へ分割され、元のセットアソシアティブ方式のキャッシュラインに再構成される。命令キャッシュデータRAM10及びキャッシュタグRAM11は、ウェイバリッドビットWVに応じて、インデックスごとにウェイの数を1又は2と動的に変化させる。
本実施の形態に係るキャッシュシステムは、有効ウェイに無効ウェイを統合させることにより、格納可能なキャッシュラインのラインサイズを動的に拡張させる。ウェイの統合により適宜ラインサイズを拡張させることにより、連続するアドレスへアクセスする逐次要求に対して、キャッシュラインの境界を越えるごとに必要となるキャッシュタグRAM11へのアクセスが減少する。キャッシュタグRAM11へのアクセスを減少させることで、電力消費を低減させる。また、一度のバースト転送により多くのデータのリフィルを可能とし、リフィルの効率を向上させる。ウェイバリッドビットWVに応じてウェイの数を動的に変化させることで、キャッシュミスの抑制を可能とする。これにより、効率的な処理を可能とし、かつ消費電力を低減できるという効果を奏する。
2ウェイより高次なセットアソシアティブ方式の場合も、上記の説明と同様にして、ウェイを動的に統合する。本発明に係るキャッシュシステムは、mウェイ(mは、2以上の整数)のセットアソシアティブ方式について、mウェイからnウェイ(nは、m>nを満たす正の整数)への統合が可能である。
次に、ウェイバリッドビットWVを更新する方式について説明する。第1の方式では、逐次要求及び分岐要求の数に基づいてウェイバリッドビットWVを更新する。第2の方式では、アドレスデコーダによる定義に基づいてウェイバリッドビットWVを更新する。第3の方式では、ウェイ情報更新指示信号に応じてウェイバリッドビットWVを更新する。
図6は、第1の方式によりウェイバリッドビットWVを更新するための構成を説明するものである。命令キャッシュ制御部12に設けられたアクセスカウンタ21は、逐次要求の回数、及び分岐要求の回数をカウントする。カウント処理部22は、一定時間においてアクセスカウンタ21でカウントされた逐次要求及び分岐要求の合計回数のうち分岐要求の回数が占める割合を求める。命令キャッシュ制御部12は、かかる分岐要求の割合の閾値をレジスタ値として保持する。ウェイバリッドビット制御部16は、分岐要求の割合が閾値より小さい場合に、分岐要求が少ない命令コードパターンであると判断し、分岐要求の割合が閾値以上である場合に、分岐要求が多い命令コードパターンであると判断する。閾値は、例えばキャッシュメモリの本来のラインサイズ等に応じて任意に設定可能であって、例えばユーザにより設定される。
逐次要求は、連続するアドレスへのアクセスであるため、あるキャッシュラインの終端まで命令フェッチを行うと、次のキャッシュラインへのアクセスが発生する。一方、分岐要求は、アドレスが不連続なデータへのアクセスであるため、あるキャッシュラインの次にアクセスするキャッシュラインは確定されない。分岐要求が多いほどキャッシュミスの確率が増加するため、多くの分岐要求に対してはウェイの数を高次のままとすることが望ましい。これに対して、逐次要求が多いほどアクセスのパターンが確定的となるため、ウェイの数を減少させてラインサイズを拡張することが望ましい。
第1の方式では、カウント処理部22で求められた分岐要求の割合が閾値より小さい場合に、ウェイバリッドビット制御部16は、ウェイの数を低次とするウェイバリッドビットWVをセットする。これに対して、カウント処理部22で求められた分岐要求の割合が閾値以上である場合に、ウェイバリッドビット制御部16は、ウェイの数を高次とするウェイバリッドビットWVをセットする。ウェイバリッドビット制御部16は、アクセスカウンタ21によりカウントされた逐次要求の回数及び分岐要求の回数に基づいて、ウェイバリッドビットWVを更新する。キャッシュシステムは、ウェイバリッドビットWVの更新により、ウェイの数を動的に切り替える。これにより、多くの逐次要求に対してリフィル効率の向上、及び消費電力の低減を可能とし、多くの分岐要求に対してキャッシュミスを低減させ、効率的な処理を可能にできる。
なお、ウェイバリッドビット制御部16は、逐次要求の割合に基づいてウェイバリッドビットWVを更新することとしても良い。ウェイバリッドビット制御部16は、分岐要求及び逐次要求のうちいずれか一方の頻度のみによって命令コードパターンを判断することとしても良い。ウェイバリッドビット制御部16は、アクセスカウンタ21によりカウントされた逐次要求の回数及び分岐要求の回数の少なくとも一方に基づいて、ウェイバリッドビットWVを更新するものであれば良い。アクセスカウンタ21は、逐次要求及び分岐要求の少なくとも一方の回数をカウントするものであれば良い。
図7は、第2の方式によりウェイバリッドビットWVを更新するための構成を説明するものである。アドレスデコーダ23は、アクセスされたアドレスをデコードする。アドレスデコーダ23は、命令キャッシュ制御部12内に配備されている。アドレスデコーダ23は、命令キャッシュ制御部12以外に、例えば、命令フェッチユニット15に配備しても良い。アドレスデコーダ23は、動的にメモリ空間を定義可能であるとする。
図8は、アドレスデコーダ23により定義されたメモリマップの例を示す。ここでは、あるインデックスのラインについて本来の2ウェイセットアソシアティブ方式からウェイを統合することにより、ダイレクトマップ方式のキャッシュラインと同様に扱う場合を例として説明する。メモリアクセスするアドレス空間は、アドレス順に、非キャッシュ領域(Un Cache)、ローカルメモリ領域(Local Memory)、リザーブ(禁止)領域(Reserved)、2ウェイセットアソシアティブ用キャッシュ領域(Cache(2−way))、ダイレクトマップ用キャッシュ領域(Cache(Direct))の各メモリ空間が定義されている。各領域の種類及びサイズは、アドレスデコーダ23内の記憶論理(レジスタ又は小規模なメモリ)に記憶される。なお、非キャッシュ領域、ローカルメモリ領域、リザーブ領域については、第2の方式によるウェイバリッドビットWVの切り替えには関係しないことから、詳細な説明を省略する。
アドレスデコーダ23により定義されたダイレクトマップ用キャッシュ領域へのキャッシュアクセスに対して、ウェイバリッドビット制御部16は、ダイレクトマップのキャッシュラインとするウェイバリッドビットWVをセットする。また、アドレスデコーダ23により定義された2ウェイセットアソシアティブ用キャッシュ領域へのキャッシュアクセスに対して、ウェイバリッドビット制御部16は、2ウェイのキャッシュラインとするウェイバリッドビットWVをセットする。このように、ウェイバリッドビット制御部16は、アドレスデコーダ23による定義に基づいて、ウェイバリッドビットWVを更新する。
さらに、アドレスデコーダ23は、各領域のアドレス位置及び範囲を自由に変更させる。例えば、斜線両矢印を付して示すように、アドレスデコーダ23は、ダイレクトマップ用キャッシュ領域及び2ウェイセットアソシアティブ用キャッシュ領域の境界を移動させることが可能である。また、白抜き両矢印を付して示すように、アドレスデコーダ23は、ダイレクトマップ用キャッシュ領域と2ウェイセットアソシアティブ用キャッシュ領域とを置き換えることが可能である。このように、アドレスデコーダ23は、各領域を動的に定義可能である。
2ウェイセットアソシアティブ用キャッシュ領域は、例えば、多くの条件分岐を必要とするプログラムコードを配備したメモリ空間に適している。ダイレクトマップ用キャッシュ領域は、例えば、演算実行を繰り返すような逐次実行が予想されるプログラムコードを配備したメモリ空間に適している。第2の方式によると、ユーザによるキャッシュ領域の使い分けにより、プログラムコードに応じた効率的な処理を可能にできる。
図9は、第3の方式によりウェイバリッドビットWVを更新するための構成を説明するものである。本方式では、ウェイバリッドビットWVの更新を指示するウェイバリッドビット更新指示信号に基づいて、ウェイバリッドビットWVを更新する。ウェイバリッドビット更新指示信号は、ウェイ情報の更新を指示するウェイ情報更新指示信号である。ウェイバリッドビット更新指示信号は、命令フェッチユニット15及びウェイバリッドビット制御部16の間に設けられたウェイバリッドビット更新指示パス25を介して、命令フェッチユニット15からウェイバリッドビット制御部16へ入力される。ウェイバリッドビット更新指示パス25は、ウェイバリッドビット更新指示信号を伝送するウェイ情報更新指示パスとして機能する。
ウェイの数を切り替えるためのキャッシュ命令がプロセッサコアにおいて実行されると、命令フェッチユニット15は、ウェイバリッドビット更新指示信号を出力する。ウェイバリッドビット制御部16は、命令フェッチユニット15からのウェイバリッドビット更新指示信号に従って、ウェイバリッドビットWVを更新する。第3の方式によると、ユーザの自由な設定により効率的な処理を可能にできる。なお、ウェイバリッドビット更新指示パス25は、命令フェッチユニット15及びウェイバリッドビット制御部16の間に設けられる場合に限られず、ウェイバリッドビット制御部16へウェイバリッドビット更新指示信号を伝送可能であればいずれの位置に設けても良い。
次に、図10及び図11を用いて、本実施の形態の変形例に係るキャッシュシステムにおけるウェイの統合について説明する。本変形例に係るキャッシュシステムは、同一のインデックスのウェイのみならず異なるインデックスのウェイを統合可能であることを特徴とする。
例えば、図10の白抜き矢印より上に示すように、インデックス0についてのウェイバリッドビットWVが「10」であるとする。ウェイバリッドビットWV「10」に対して、図11の白抜き矢印より上に示すように、命令キャッシュデータRAM10のインデックス0には、アドレスが連続するラインAのキャッシュデータ、ラインBのキャッシュデータが格納される。
次に、図10の白抜き矢印より下に示すように、インデックス0についてのウェイバリッドビットWVが「10」、インデックス1についてのウェイバリッドビットWVが「00」であるとする。インデックス1のウェイバリッドビットWV「00」は、ウェイ0、ウェイ1がともに無効ウェイであることを表す。インデックス0についてのウェイバリッドビットWV「10」に対して、図11の白抜き矢印より下に示すように、命令キャッシュデータRAM10のインデックス0にはラインAのキャッシュデータ、及びラインBのキャッシュデータが格納される。インデックス1についてのウェイバリッドビットWV「00」に対して、命令キャッシュデータRAM10のインデックス1にはラインC(Line C)のキャッシュデータ、及びラインD(Line D)のキャッシュデータが格納される。
ラインCは、ラインBに対して連続するアドレスのデータであるとする。ラインDは、ラインCに対して連続するアドレスのデータであるとする。インデックス1のウェイ0及びウェイ1は、インデックスの境界を越えて、インデックス1とは異なるインデックス0のウェイ0及びウェイ1に統合される。
キャッシュタグRAM11のインデックス0には、本来のウェイ0にラインAのタグ情報が格納される。インデックス1へ格納されるキャッシュデータはインデックス0に格納されたラインA及びラインBに対して連続するアドレスのラインC及びラインDのキャッシュデータであることが一意的に決定される。このため、インデックス1へのラインCのタグ情報、ラインDのタグ情報の格納は不要となる。インデックス1のウェイ0、ウェイ1が有効か否かの判定は不要であるため、インデックス1のバリッドビットVはいずれも「don’t care」(図中「−」と表示)とされる。また、インデックス0及びインデックス1が一つのキャッシュラインとして扱われることから、インデックス1のリプレイスビットRも「don’t care」とされる。
インデックス0及びインデックス1のラインは、ウェイの統合により、本来の2ウェイセットアソシアティブ方式の場合に対して4倍のラインサイズのキャッシュラインとして利用される。逐次要求に対しては、ラインAのヒットにより、ラインB、ラインC、ラインDのタグ情報の読み出し及び比較、キャッシュデータの選択をするまでも無く、ラインA、ラインB、ラインC、ラインDのキャッシュデータを出力する。統合されたウェイは、インデックス0、インデックス1のウェイバリッドビットWVを「11」とすることにより本来のウェイへ分割され、元のセットアソシアティブ方式のキャッシュラインに再構成される。
ウェイは、2つのインデックスのみならず3つ以上のインデックスについて統合しても良く、最大で全てのインデックスについて統合可能である。本変形例によると、同一のインデックスのみならず異なるインデックスのウェイを統合することで、元来実装された命令キャッシュデータRAM10のラインサイズを超えるラインサイズのキャッシュラインを自由に設定することができる。異なるインデックスについてのウェイの統合により、プロセッサは、最終的に、ローカルメモリに準じるものとしてキャッシュメモリを利用することも可能となる。
(第2の実施の形態)
図12は、本発明の第2の実施の形態に係るキャッシュシステムの構成を示すブロック図である。本実施の形態に係るキャッシュシステムは、タグメモリアクセス制御部35を有することを特徴とする。上記第1の実施の形態と同一の部分には同一の符号を付し、重複する説明を省略する。本実施の形態に係るキャッシュシステムは、命令キャッシュデータRAM30、キャッシュタグRAM31、命令キャッシュ制御部32、タグ比較回路13、及び命令フェッチユニット15を有する。
図12は、本発明の第2の実施の形態に係るキャッシュシステムの構成を示すブロック図である。本実施の形態に係るキャッシュシステムは、タグメモリアクセス制御部35を有することを特徴とする。上記第1の実施の形態と同一の部分には同一の符号を付し、重複する説明を省略する。本実施の形態に係るキャッシュシステムは、命令キャッシュデータRAM30、キャッシュタグRAM31、命令キャッシュ制御部32、タグ比較回路13、及び命令フェッチユニット15を有する。
命令キャッシュデータRAM30及びキャッシュタグRAM31は、ウェイ0に対応するメモリバンクと、ウェイ1に対応するメモリバンクとに分割されている。各メモリバンクは、それぞれ一つのウェイに対応している。命令キャッシュ制御部32は、ウェイバリッドビット制御部33及びタグメモリアクセス制御部35を有する。ウェイバリッドビット記憶部34は、レジスタ又は小規模なメモリであって、ウェイバリッドビット制御部33内に設けられている。ウェイバリッドビット記憶部34は、ウェイバリッドビット制御部33により制御されたウェイバリッドビットWVを格納する。タグメモリアクセス制御部35は、ウェイバリッドビット記憶部34に記憶されたウェイバリッドビットWVに基づいて、キャッシュタグRAM31の各メモリバンクへのアクセスを制御する。なお、ウェイバリッドビットWV以外の情報であるタグ情報、バリッドビットV、リプレイスビットRは、上記第1の実施の形態と同様に、キャッシュタグRAM31に格納される。
例えば、あるインデックスについてウェイバリッドビット記憶部34に記憶されたウェイバリッドビットWVが「11」であるとする。ウェイバリッドビットWV「11」は、ウェイ0、ウェイ1ともに有効ウェイであることを表す。ウェイバリッドビットWV「11」に対して、タグメモリアクセス制御部35は、ウェイ0に対応するメモリバンク、ウェイ1に対応するメモリバンクの両方へのアクセスを許可する。命令キャッシュ制御部32からのアクセスに対して、キャッシュタグRAM31は、ウェイ0に対応するメモリバンク、ウェイ1に対応するメモリバンクの両方を活性化し、両方のメモリバンクからタグ情報を読み出す。
次に、あるインデックスについてウェイバリッドビット記憶部34に記憶されたウェイバリッドビットWVが「10」であるとする。ウェイバリッドビットWV「10」は、ウェイ0が有効ウェイ、ウェイ1が無効ウェイであることを表す。ウェイバリッドビットWV「10」に対して、タグメモリアクセス制御部35は、ウェイ0に対応するメモリバンクへのアクセスを許可し、ウェイ1に対応するメモリバンクへのアクセスを遮断する。このように、タグメモリアクセス制御部35は、無効ウェイに対応するメモリバンクへのアクセスを抑制する。命令キャッシュ制御部32からのアクセスに対して、キャッシュタグRAM31は、ウェイ0に対応するメモリバンクのみを活性化し、ウェイ0に対応するメモリバンクのみからタグ情報を読み出す。
本実施の形態では、ウェイバリッドビットWVに基づき、タグメモリアクセス制御部35によりキャッシュタグRAM31への不要なアクセスを遮断するために、ウェイバリッドビット制御部33内にウェイバリッドビット記憶部34を設けることが望ましい。本実施の形態に係るキャッシュシステムは、ウェイバリッドビットWVによって指定される有効ウェイが存在するメモリバンクのみを活性化させることで、キャッシュタグRAM31の全体を活性化させる場合に比較して、タグ情報を読み出す際の電力消費を低減させる。これにより、さらに消費電力を低減できるという効果を奏する。
各メモリバンクを一つのウェイに対応させる場合、mウェイに対して、命令キャッシュデータRAM30及びキャッシュタグRAM31をm個のメモリバンクに分割する。本実施の形態に係るキャッシュシステムは、本来のウェイの数とメモリバンクの数とを一致させる場合に限られない。各メモリバンクを複数のウェイに対応させることとし、ウェイの数よりメモリバンクの数を少なくしても良い。例えば、ウェイ0、ウェイ1、ウェイ2、ウェイ3からなる4ウェイセットアソシアティブ方式を採用する場合に、命令キャッシュデータRAM30及びキャッシュタグRAM31を2個のメモリバンクに分割することとしても良い。この場合、一方のメモリバンクは、ウェイ0及びウェイ1の二つのウェイに対応させ、他方のメモリバンクは、ウェイ2及びウェイ3の二つのウェイに対応させる。このように、各メモリバンクを複数のウェイに対応させる場合も、消費電力を低減させる効果を得ることができる。
10、30 命令キャッシュデータRAM、11、31 キャッシュタグRAM、16、33 ウェイバリッドビット制御部、21 アクセスカウンタ、23 アドレスデコーダ、25 ウェイバリッドビット更新指示パス、35 タグメモリアクセス制御部。
Claims (5)
- インデックスごとの複数のウェイへキャッシュデータを格納可能に構成されたキャッシュデータ記憶部と、
前記キャッシュデータ記憶部に格納される他のキャッシュデータに対してアドレスが不連続であるキャッシュデータを格納可能なウェイである有効ウェイ、及び前記他のキャッシュデータに対してアドレスが不連続であるキャッシュデータの格納が制限されるウェイである無効ウェイのいずれに該当するかを、前記インデックスごとの各ウェイについて表すウェイ情報を制御するウェイ情報制御部と、を有し、
前記キャッシュデータ記憶部は、前記無効ウェイを、前記無効ウェイと同一或いは異なるインデックスの前記有効ウェイに統合可能に構成されることを特徴とするキャッシュシステム。 - 連続するアドレスへのアクセスである逐次要求の回数、及び不連続であるアドレスへのアクセスである分岐要求の回数の少なくとも一方をカウントするアクセスカウンタを有し、
前記ウェイ情報制御部は、前記アクセスカウンタによりカウントされた前記逐次要求の回数及び前記分岐要求の回数の少なくとも一方に基づいて、前記ウェイ情報を更新することを特徴とする請求項1に記載のキャッシュシステム。 - アクセスされたアドレスをデコードするアドレスデコーダを有し、
前記ウェイ情報制御部は、前記アドレスデコーダによる定義に基づいて前記ウェイ情報を更新することを特徴とする請求項1に記載のキャッシュシステム。 - 前記ウェイ情報の更新を指示するウェイ情報更新指示信号を前記ウェイ情報制御部へ伝送するウェイ情報更新指示パスを有することを特徴とする請求項1に記載のキャッシュシステム。
- 一つ又は複数の前記ウェイに対応する複数のメモリバンクに分割され、キャッシュタグ情報を格納するキャッシュタグ記憶部と、
前記ウェイ情報制御部により制御された前記ウェイ情報に基づいて、前記メモリバンクへのアクセスを制御するタグメモリアクセス制御部と、を有し、
前記タグメモリアクセス制御部は、前記無効ウェイに対応する前記メモリバンクへのアクセスを抑制することを特徴とする請求項1〜4のいずれか一項に記載のキャッシュシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008100160A JP2009252004A (ja) | 2008-04-08 | 2008-04-08 | キャッシュシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008100160A JP2009252004A (ja) | 2008-04-08 | 2008-04-08 | キャッシュシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009252004A true JP2009252004A (ja) | 2009-10-29 |
Family
ID=41312642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008100160A Pending JP2009252004A (ja) | 2008-04-08 | 2008-04-08 | キャッシュシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009252004A (ja) |
-
2008
- 2008-04-08 JP JP2008100160A patent/JP2009252004A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575901B2 (en) | Programmable address-based write-through cache control | |
US7502887B2 (en) | N-way set associative cache memory and control method thereof | |
US7389402B2 (en) | Microprocessor including a configurable translation lookaside buffer | |
JP4920378B2 (ja) | 情報処理装置およびデータ検索方法 | |
US20110167224A1 (en) | Cache memory, memory system, data copying method, and data rewriting method | |
US20090259813A1 (en) | Multi-processor system and method of controlling the multi-processor system | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
US20180150399A1 (en) | Semiconductor device and method for prefetching to cache memory | |
JP2005293300A (ja) | セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法 | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
US6560676B1 (en) | Cache memory system having a replace way limitation circuit and a processor | |
JP4009306B2 (ja) | キャッシュメモリおよびその制御方法 | |
JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
US7219197B2 (en) | Cache memory, processor and cache control method | |
WO2011151944A1 (ja) | キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法 | |
JP2007272280A (ja) | データ処理装置 | |
US10013352B2 (en) | Partner-aware virtual microsectoring for sectored cache architectures | |
KR101099417B1 (ko) | 캐시 메모리 디바이스 | |
JP2009252004A (ja) | キャッシュシステム | |
JP5245349B2 (ja) | 登録先ウェイの固定方法、プロセッサ、及び情報処理装置 | |
CN114691541B (zh) | 一种基于动态访问的dram-nvm混合内存预测器 | |
JP5445701B1 (ja) | フラッシュ制御装置、フラッシュ制御方法、及び、キャッシュメモリ装置 | |
JP2010033317A (ja) | キャッシュシステム | |
JP2005149290A (ja) | 情報処理装置およびキャッシュメモリ制御方法 | |
JP2000293437A (ja) | キャッシュメモリ装置及びキャッシュメモリ制御方法 |