(57)【特許請求の範囲】
【請求項１】
複数のウェイを有し、ラインごとにタグを格納するタグ記憶部と、
不揮発性メモリから構成され、複数のウェイを有し、ラインごとにデータを格納し、データを読み出すための複数のセンスアンプを含むデータ記憶部と、
ラインごとに、最後にそのラインがアクセスされてからの経過時間を示すカウント値を保持するカウンタと、
外部から送られるアドレスに含まれるタグと前記タグ記憶部から読み出されたタグとを比較する比較回路と、
前記アドレスにより指定されるラインのカウント値に基づいて、駆動するウェイ数を決定するコントローラと、
を具備することを特徴とするキャッシュシステム。
【請求項２】
ラインを単位として、一番最近アクセスされたウェイからの順番を示すＬＲＵ情報を格納するＬＲＵ記憶部をさらに具備し、
前記コントローラは、前記アドレスにより指定されるラインのＬＲＵ情報に基づいて、前記複数のウェイから前記ウェイ数分を選択することを特徴とする請求項１に記載のキャッシュシステム。
【請求項３】
前記コントローラは、前記選択されたウェイのセンスアンプを駆動することを特徴とする請求項２に記載のキャッシュシステム。
【請求項４】
前記データは、複数のワードから構成され、
前記コントローラは、前記選択されたウェイのセンスアンプのうち前記アドレスで指定されたワードに対応するセンスアンプを駆動することを特徴とする請求項２に記載のキャッシュシステム。
【請求項５】
前記コントローラは、前記比較回路の比較結果に基づいて、アクセスされないウェイのセンスアンプの電源をオフすることを特徴とする請求項１乃至４のいずれかに記載のキャッシュシステム。
【請求項６】
前記複数のセンスアンプの各々は、電源をオフするためのスイッチを含むことを特徴とする請求項１乃至５のいずれかに記載のキャッシュシステム。
【請求項７】
前記データ記憶部は、
複数のメモリセルを含むメモリセルアレイと、
前記メモリセルアレイの行を選択する複数のワード線と、
前記メモリセルアレイの列を選択する複数のビット線と、
を含み、
前記複数のセンスアンプは、前記複数のビット線に接続されることを特徴とする請求項１乃至６のいずれかに記載のキャッシュシステム。
【請求項８】
前記データ記憶部は、ＭＲＡＭから構成されることを特徴とする請求項１乃至７のいずれかに記載のキャッシュシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、キャッシュシステムに関する。
【背景技術】
【０００２】
プロセッサの動作周波数は、年々高くなる傾向にあるが、主記憶に用いられるシステムメモリはプロセッサほど高速化が進んでいないため、両者のギャップを埋めるために、キャッシュメモリを用いるのが一般的である。また、キャッシュメモリの階層化も行われている。
【０００３】
また、近年、システム全体の低消費電力化が求められている。これにより、システム内の演算装置部分もまた低消費電力化することが必要となってきている。その低消費電力化技術の１つとして、キャッシュメモリをＳＲＡＭ（Static Random Access Memory）などの揮発メモリからＭＲＡＭ（Magnetic Random Access Memory）などの不揮発性メモリへ置き換えることが考えられている。
【０００４】
不揮発性メモリはＳＲＡＭに比べて待機電力が低いため、全体の消費電力を抑えられる。反面、動作電力が大きくなる問題がある。つまり、ＳＲＡＭでは、読み出し要求があるとビット線の電圧を開放し、ワード線に電圧を印加することで、読み出し操作を行う。この場合、ワード線のチャージアップに時間がかかるため、その時間、開放したビット線の電圧の遷移によりかかる電力が、読み出し時の消費電力の殆どを占める。
【０００５】
一方、不揮発性メモリであるＭＲＡＭをキャッシュとして使用した場合、読み出し要求があると、センスアンプを駆動し、ＭＲＡＭの記憶素子に電流を流すことで、記憶素子のデータを読み出す。しかしながら、データの読み出しが完了するまでセンスアンプを駆動し続け、さらに読み出し電流が安定した段階でようやくデータの読み出しが可能となるため、その間電流を流し続ける必要がある。この安定化までの時間が非常に長い為、ＳＲＡＭと比較して消費電力が大きくなってしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−３２８６５６号公報
【特許文献２】特開２００２−６３０７３号公報
【特許文献３】特開２００４−２６５４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施形態は、不揮発性メモリを用いてデータを記憶できるとともに、消費電力を低減することが可能なキャッシュシステムを提供する。
【課題を解決するための手段】
【０００８】
実施形態に係るキャッシュシステムは、複数のウェイを有し、ラインごとにタグを格納するタグ記憶部と、不揮発性メモリから構成され、複数のウェイを有し、ラインごとにデータを格納し、データを読み出すための複数のセンスアンプを含むデータ記憶部と、ラインごとに、最後にそのラインがアクセスされてからの経過時間を示すカウント値を保持するカウンタと、外部から送られるアドレスに含まれるタグと前記タグ記憶部から読み出されたタグとを比較する比較回路と、前記アドレスにより指定されるラインのカウント値に基づいて、駆動するウェイ数を決定するコントローラとを具備する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る情報処理装置のブロック図。
【図２】図１に示したキャッシュシステムのブロック図。
【図３】図２に示したデータ記憶部のブロック図。
【図４】１個のセンスアンプを含む１カラムの構成例を示す回路。
【図５】メモリセルの回路図。
【図６】図５に示したＭＴＪ素子の断面図。
【図７】キャッシュシステムの動作を説明する図。
【図８】キャッシュコントローラ及び比較回路の動作を示すフローチャート。
【図９】センスアンプコントローラの動作を示すフローチャート。
【図１０】第２の実施形態に係るキャッシュシステムのブロック図。
【図１１】キャッシュシステムの動作を説明する図。
【図１２】キャッシュコントローラ及び比較回路の動作を示すフローチャート。
【図１３】センスアンプコントローラの動作を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らない。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１１】
［第１の実施形態］
［１］  情報処理装置の構成
図１は、第１の実施形態に係る情報処理装置１のブロック図である。情報処理装置１は、プロセッサ２、キャッシュシステム（２次キャッシュメモリ）４、及びメインメモリ（システムメモリ）５を備えている。
【００１２】
プロセッサ２は、情報処理装置１の動作を制御するためのＣＰＵ（Central Processing Unit）であり、メインメモリ５に格納されたプログラムを実行することにより、キャッシュシステム４やその他の回路（図示せず）の制御を行う。プロセッサ２は、１次キャッシュメモリ３を備えている。１次キャッシュメモリ３は、メインメモリ５に格納すべきデータを一時的に格納する。１次キャッシュメモリ３は、プロセッサ２内の演算部が最初にデータを読みに行く高速バッファメモリである。１次キャッシュメモリ３は、例えばＳＲＡＭから構成される。
【００１３】
キャッシュシステム４は、２次キャッシュメモリとしての機能を有し、プロセッサ２がメインメモリ５に格納すべきデータを一時的に格納する。プロセッサ２内の演算部は、最初に１次キャッシュメモリ３にデータを読みに行き、１次キャッシュメモリ３に目的のデータが無かった場合に、キャッシュシステム４にデータを読みに行く。さらに、キャッシュシステム４に目的のデータが無かった場合に、キャッシュシステム４はメインメモリ５にデータを読みに行く。
【００１４】
このように、１次キャッシュ及び２次キャッシュを備えた情報処理装置１は、高速なデータ読み出し処理を実現できる。なお、キャッシュの階層数については、任意に設定可能である。
【００１５】
［１−１］  キャッシュシステム４の構成
次に、キャッシュシステム４の構成について説明する。図２は、キャッシュシステム４のブロック図である。キャッシュシステム４は、例えば４ウェイからなるセットアソシアティブ方式のキャッシュシステムである。ウェイ数については任意に設定可能である。キャッシュシステム４は、タグ記憶部１０、データ記憶部１１、比較回路１２、センスアンプコントローラ１３、及びキャッシュコントローラ１４を備えている。
【００１６】
タグ記憶部１０は、揮発性メモリから構成され、例えばＳＲＡＭから構成される。タグ記憶部１０は、各ウェイに含まれるラインを単位としてタグを格納する。ラインは、プロセッサ２及びキャッシュシステム４間で取り交わす最小単位のデータを複数もしくは１つ格納している。タグ記憶部１０は、キャッシュコントローラ１４からラインアドレスを受け、このラインに対応する各ウェイのタグを読み出す。ラインアドレスは、４ウェイに共通のラインを指定するアドレスである。そして、タグ記憶部１０は、読み出した各ウェイのタグを比較回路１２に送る。
【００１７】
比較回路１２は、キャッシュコントローラ１４から送られるタグと、タグ記憶部１０から読み出された各ウェイのタグとを比較し、比較結果をセンスアンプコントローラ１３及びキャッシュコントローラ１４に送る。
【００１８】
データ記憶部１１は、不揮発性メモリとしてのＭＲＡＭから構成される。データ記憶部１１は、ラインに含まれるデータを格納する。すなわち、１つのラインは、タグ記憶部１０のタグと、データ記憶部１１のデータとからなり、タグは、これに対応するデータのアドレス情報である。また、１つのラインに含まれるデータは、複数のワードからなる。
【００１９】
センスアンプコントローラ１３は、どのウェイのラインがプロセッサ２から送られるタグと一致（ヒット）したかを示す情報を比較回路１２から受け、また、キャッシュコントローラ１４からワードアドレスを受ける。ワードアドレスは、１つのラインに含まれるデータのうち何番目のワードであるかを指定するアドレスである。センスアンプコントローラ１３は、これらの情報に基づいて、データ記憶部１１に含まれるセンスアンプの電源を制御する。
【００２０】
キャッシュコントローラ１４は、キャッシュシステム４内の動作を制御する。また、キャッシュコントローラ１４は、プロセッサ２から受けたアドレスのうち、タグを比較回路１２に送り、ラインアドレスをタグ記憶部１０に送り、ワードアドレスをセンスアンプコントローラ１３に送る。
【００２１】
［１−２］  データ記憶部１１の構成
次に、キャッシュシステム４に含まれるデータ記憶部１１の構成について説明する。図３は、データ記憶部１１のブロック図である。前述したように、データ記憶部１１は、ＭＲＡＭから構成される。データ記憶部１１は、メモリセルアレイ３０、参照セルアレイ３１、ロウデコーダ３２、カラム選択回路３３、カラムデコーダ３４、クランプ回路３５、センスアンプ回路３６、データラッチ回路３７、及び制御回路３８を備えている。
【００２２】
メモリセルアレイ３０は、マトリクス状に配置された複数のメモリセルＭＣを備えている。メモリセルアレイ３０には、ロウ方向に延在する複数のワード線ＷＬ、及びカラム方向に延在する複数のビット線ＢＬが配設されている。１個のメモリセルＭＣは、１本のワード線ＷＬ及び１本のビット線ＢＬに接続されている。
【００２３】
参照セルアレイ３１は、カラム方向に配置された複数の参照セルＲＣを備えている。参照セルアレイ３１には、カラム方向に延在する１本の参照ビット線ＲＢＬ、及びメモリセルアレイ３０に共通接続された複数のワード線ＷＬが配設されている。１個の参照セルＲＣは、１本のワード線ＷＬ及び参照ビット線ＲＢＬに接続されている。
【００２４】
ロウデコーダ３２は、複数のワード線ＷＬに接続されている。ロウデコーダ３２は、ロウアドレスに基づいて、複数のワード線ＷＬのいずれかを選択する。
【００２５】
複数のビット線ＢＬ及び参照ビット線ＲＢＬには、カラム選択回路３３、クランプ回路３５、及びセンスアンプ回路３６が接続されている。カラム選択回路３３は、カラム選択信号ＣＳＬに基づいて、複数のビット線ＢＬのいずれか、及び参照ビット線ＲＢＬを選択する。カラムデコーダ３４は、カラムアドレスに基づいて、カラム選択信号ＣＳＬを生成し、カラム選択信号ＣＳＬをカラム選択回路３３に送る。クランプ回路３５は、ビット線ＢＬ及び参照ビット線ＲＢＬを所定の電圧にクランプする。
【００２６】
センスアンプ回路３６は、複数のビット線ＢＬに対応する数の複数のセンスアンプＳＡを備えている。センスアンプ回路３６は、データの読み出し時に、カラム選択回路３３によって選択されたビット線ＢＬのセル電流と、参照ビット線ＲＢＬの参照電流とを用いて、選択されたメモリセルＭＣのデータを検知及び増幅する。
【００２７】
データラッチ回路３７は、センスアンプ回路３６によって読み出されたデータをラッチし、出力データＤＯとして外部（プロセッサ２）に出力する。制御回路３８は、クランプ回路３５、センスアンプ回路３６、及びデータラッチ回路３７に各種制御信号や電圧を供給することで、これらの回路の動作を制御する。
【００２８】
図４は、１個のセンスアンプＳＡを含む１カラムの構成例を示す回路である。センスアンプＳＡは、電流差動型センスアンプである。センスアンプＳＡの本体は、ＰチャネルＭＯＳＦＥＴ  Ｍ１，Ｍ２、及びＮチャネルＭＯＳＦＥＴ  Ｍ３，Ｍ４からなるフリップフロップ回路（ラッチ）から構成される。
【００２９】
ＰチャネルＭＯＳＦＥＴ  Ｍ１のドレインは、出力ノードＯ１に接続され、ゲートは、出力ノードＯ２に接続され、ソースは、電源端子Ｖｄｄに接続される。また、ＰチャネルＭＯＳＦＥＴ  Ｍ２のドレインは、出力ノードＯ２に接続され、ゲートは、出力ノードＯ１に接続され、ソースは、電源端子Ｖｄｄに接続される。
【００３０】
ＮチャネルＭＯＳＦＥＴ  Ｍ３のドレインは、出力ノードＯ１に接続され、ゲートは、出力ノードＯ２に接続され、ソースは、入力ノードＩ１に接続される。また、ＮチャネルＭＯＳＦＥＴ  Ｍ４のドレインは、出力ノードＯ２に接続され、ゲートは、出力ノードＯ１に接続され、ソースは、入力ノードＩ２に接続される。
【００３１】
本体の出力ノードＯ１，Ｏ２には、センス動作を開始する前に、出力ノードＯ１，Ｏ２を電源端子Ｖｄｄに短絡すると共に、出力ノードＯ１，Ｏ２の電圧をイコライズする回路が接続される。本例では、ＰチャネルＭＯＳＦＥＴ  Ｍ５，Ｍ６により、出力ノードＯ１，Ｏ２を電源端子Ｖｄｄに短絡し、ＰチャネルＭＯＳＦＥＴ  ＭＥＱにより、出力ノードＯ１，Ｏ２の電圧をイコライズする。
【００３２】
入力ノードＩ１，Ｉ２にそれぞれ接続されるＮチャネルＭＯＳＦＥＴ  Ｍ７，Ｍ８は、センス動作を開始した後にオン状態となり、センス動作を高速化する機能を有する。
【００３３】
センス動作は、ＳＥ１を“Ｌ”から“Ｈ”にし、Ｐ チャネルＭＯＳＦＥＴ  Ｍ５，Ｍ６，ＭＥＱをオフにすることで開始される。セル電流Ｉdataは、センスアンプＳＡの出力ノードＯ１を放電する。同様に、参照電流Ｉrefは、センスアンプＳＡの出力ノードＯ２を放電する。この後、ＳＥ２を“Ｌ”から“Ｈ”にし、ＮチャネルＭＯＳＦＥＴ  Ｍ７，Ｍ８をオンにする。センスアンプＳＡは、出力ノードＯ１からデータＯＵＴを出力し、出力ノードＯ２からデータＯＵＴの反転データｂＯＵＴを出力する。
【００３４】
ここで、センスアンプＳＡは、消費電流をオフにする、すなわち、センスアンプＳＡの電源をオフにする回路として、例えばＮチャネルＭＯＳＦＥＴ  Ｍ９，Ｍ１０を備えている。ＮチャネルＭＯＳＦＥＴ  Ｍ９のドレインは、入力ノードＩ１に接続され、ゲートには、電源カット信号ＰＣが入力され、ソースは、クランプ回路３５に接続される。ＮチャネルＭＯＳＦＥＴ  Ｍ１０のドレインは、入力ノードＩ２に接続され、ゲートには、電源カット信号ＰＣが入力され、ソースは、クランプ回路３５に接続される。電源カット信号ＰＣは、センスアンプコントローラ１３から供給される。
【００３５】
電源カット信号ＰＣが“Ｈ”の場合、ＮチャネルＭＯＳＦＥＴ  Ｍ９，Ｍ１０がオンし、センスアンプＳＡは、駆動可能となる。一方、電源カット信号ＰＣが“Ｌ”の場合、ＮチャネルＭＯＳＦＥＴ  Ｍ９，Ｍ１０がオフし、セル電流Ｉdata及び参照電流Ｉrefがカットされる。すなわち、センスアンプＳＡの電源がオフになる。
【００３６】
クランプ回路３５は、例えばＮチャネルＭＯＳＦＥＴ  ３５Ａ，３５Ｂを備えている。ＮチャネルＭＯＳＦＥＴ  ３５Ａのドレインは、センスアンプＳＡ（ＮチャネルＭＯＳＦＥＴ  Ｍ９のソース）に接続され、ゲートには、電圧発生回路（図示せず）からクランプ電圧ＶＣＬＭＰが印加され、ソースは、カラム選択回路３３に接続される。ＮチャネルＭＯＳＦＥＴ  ３５Ｂのドレインは、センスアンプＳＡ（ＮチャネルＭＯＳＦＥＴ  Ｍ１０のソース）に接続され、ゲートには、電圧発生回路（図示せず）からクランプ電圧ＶＲＥＦが印加され、ソースは、カラム選択回路３３に接続される。
【００３７】
カラム選択回路３３は、例えばＮチャネルＭＯＳＦＥＴ  ３３Ａ，３３Ｂを備えている。ＮチャネルＭＯＳＦＥＴ  ３３Ａのドレインは、クランプ回路３５（ＮチャネルＭＯＳＦＥＴ  ３５Ａのソース）に接続され、ゲートには、カラム選択信号ＣＳＬが供給され、ソースは、ビット線ＢＬを介してメモリセルＭＣに接続される。ＮチャネルＭＯＳＦＥＴ  ３３Ｂのドレインは、クランプ回路３５（ＮチャネルＭＯＳＦＥＴ  ３５Ｂのソース）に接続され、ゲートには、カラム選択信号ＣＳＬが供給され、ソースは、参照ビット線ＲＢＬを介して参照セルＲＣに接続される。
【００３８】
なお、図３のＭＲＡＭの構成例では、選択メモリセルのデータを読み出す場合、選択メモリセルに接続された選択ワード線に接続された参照セルが使用されるように構成されている。しかし、図３の構成に限らず、例えば１個のメモリセルと１個の参照セルをペアで配置し、このペアをセンスアンプに接続するように構成してもよいし、或いは、データ読み出し時に毎回同じ参照セルが選択されるように構成してもよい。
【００３９】
［１−３］  メモリセルＭＣ及び参照セルＲＣの構成
次に、メモリセルＭＣ及び参照セルＲＣの構成について説明する。図５は、メモリセルＭＣの回路図である。メモリセルＭＣは、磁気抵抗素子（ＭＴＪ（Magnetic Tunnel Junction）素子）４０、及び選択トランジスタ４１から構成される。選択トランジスタ４１は、例えばＮチャネルＭＯＳＦＥＴから構成される。
【００４０】
ＭＴＪ素子４０の一端は、ビット線ＢＬに接続され、他端は選択トランジスタ４１のドレインに接続される。選択トランジスタ４１のゲートは、ワード線ＷＬに接続され、ソースはソース線ＳＬに接続される。データ読み出し時、ソース線ＳＬには接地電圧Ｖｓｓが印加される。参照セルＲＣもメモリセルＭＣと同じ構成である。
【００４１】
図６は、ＭＴＪ素子４０の断面図である。ＭＴＪ素子４０は、下部電極４０Ａ、記憶層（自由層ともいう）４０Ｂ、非磁性層（トンネルバリア層）４０Ｃ、参照層（固定層ともいう）４０Ｄ、上部電極４０Ｅが順に積層されて構成されている。積層順序は逆転していても構わない。
【００４２】
記憶層４０Ｂ及び参照層４０Ｄはそれぞれ、強磁性材料からなる。トンネルバリア層４０Ｃとしては、例えばＭｇＯなどの絶縁層が用いられる。
【００４３】
記憶層４０Ｂ及び参照層４０Ｄはそれぞれ、面内方向の磁気異方性を有し、それらの容易磁化方向は面内方向である。なお、記憶層４０Ｂ及び参照層４０Ｄの磁化方向は、膜面に垂直な方向であってもよい。
【００４４】
記憶層４０Ｂは、磁化方向が可変である（反転する）。参照層４０Ｄは、磁化方向が不変である（固定されている）。参照層４０Ｄは、記憶層４０Ｂよりも十分大きな垂直磁気異方性エネルギーを持つように設定する。磁気異方性の設定は、材料構成や膜厚を調整することで可能である。このようにして、記憶層４０Ｂの磁化反転電流を小さくし、参照層４０Ｄの磁化反転電流を記憶層４０Ｂのそれよりも大きくする。これにより、所定の書き込み電流に対して、磁化方向が可変の記憶層４０Ｂと磁化方向が不変の参照層４０Ｄとを備えたＭＴＪ素子４０を実現できる。
【００４５】
本実施形態では、ＭＴＪ素子４０に直接に書き込み電流を流し、この書き込み電流によってＭＴＪ素子４０の磁化状態を制御するスピン注入書き込み方式が用いられる。ＭＴＪ素子４０は、記憶層４０Ｂと参照層４０Ｄとの磁化の相対関係が平行か反平行かによって、低抵抗状態と高抵抗状態とのいずれかをとることができる。
【００４６】
ＭＴＪ素子４０に対して、記憶層４０Ｂから参照層４０Ｄへ向かう書き込み電流を流すと、記憶層４０Ｂと参照層４０Ｄとの磁化の相対関係が平行になる。この平行状態の場合、ＭＴＪ素子４０の抵抗値は最も低くなり、ＭＴＪ素子４０は低抵抗状態に設定される。ＭＴＪ素子４０の低抵抗状態を、例えばデータ“０”と規定する。
【００４７】
一方、ＭＴＪ素子４０に対して、参照層４０Ｄから記憶層４０Ｂへ向かう書き込み電流を流すと、記憶層４０Ｂと参照層４０Ｄとの磁化の相対関係が反平行になる。この反平行状態の場合、ＭＴＪ素子４０の抵抗値は最も高くなり、ＭＴＪ素子４０は高抵抗状態に設定される。ＭＴＪ素子４０の高抵抗状態を、例えばデータ“１”と規定する。
【００４８】
これにより、ＭＴＪ素子４０を１ビットデータ（２値データ）を記憶可能な記憶素子として使用することができる。ＭＴＪ素子４０の抵抗状態とデータとの割り当ては任意に設定可能である。
【００４９】
なお、参照セルＲＣを流れる参照電流Ｉrefは、データ“０”を記憶したメモリセルＭＣのセル電流Ｉ０と、データ“１”を記憶したメモリセルＭＣのセル電流Ｉ１との中間電流に設定される。具体的には、（１）参照セルＲＣに例えばデータ“０”を書き込み、かつクランプ電圧ＶＲＥＦをクランプ電圧ＶＣＬＭＰと異なるように調整する、（２）参照セルＲＣの抵抗値を、データ“０”を記憶したメモリセルＭＣの抵抗値とデータ“１”を記憶したメモリセルＭＣの抵抗値との中間に設定し、かつクランプ電圧ＶＲＥＦをクランプ電圧ＶＣＬＭＰと同じにする、という２種類の手法で実現できる。
【００５０】
［２］  キャッシュシステム４の動作
上記のように構成されたキャッシュシステム４の動作について説明する。図７は、キャッシュシステム４の動作を説明する図である。図８は、キャッシュコントローラ１４及び比較回路１２の動作を示すフローチャートである。
【００５１】
まず、キャッシュコントローラ１４は、プロセッサ２から読み出し要求及びアドレスを受ける（ステップＳ１０）。図７に示すように、アドレスは、タグ、ラインアドレス、及びワードアドレスを含む。
【００５２】
続いて、キャッシュコントローラ１４は、読み出し要求及びラインアドレスをタグ記憶部１０及びデータ記憶部１１に送る（ステップＳ１１）。これにより、タグ記憶部１０は、４つのウェイＷ１〜Ｗ４のうちラインアドレスで指定された４つのラインに格納されたタグの読み出しを開始する。また、データ記憶部１１は、４つのウェイＷ１〜Ｗ４のうちラインアドレスで指定された４つのラインに格納されたデータの読み出しを開始する。
【００５３】
続いて、キャッシュコントローラ１４は、センスアンプコントローラ１３にワードアドレスを送る（ステップＳ１２）。
【００５４】
タグ記憶部１０のウェイＷ１〜Ｗ４からタグの読み出しが完了すると（ステップＳ１３）、比較回路１２は、ウェイＷ１〜Ｗ４の各々から読み出されたタグと、キャッシュコントローラ１４から送られるタグとを比較し、タグが一致しているか否かを判定する。そして、比較回路１２は、比較結果をセンスアンプコントローラ１３及びキャッシュコントローラ１４に送る（ステップＳ１４）。タグを格納するタグ記憶部１０は、高速読み出し動作が可能なようにＳＲＡＭで構成しているため、タグが一致しているか否かを示す信号を含む比較結果はより速く出力される。
【００５５】
なお、比較回路１２の比較結果により全てのタグが一致していない（キャッシュミス）と判定された場合、目的のデータがキャッシュシステム４に無いことを意味する。この場合、キャッシュコントローラ１４は、プロセッサ２にキャッシュミスであることを通知するとともに、キャッシュシステム４によるデータ読み出しを終了する。
【００５６】
図９は、センスアンプコントローラ１３の動作を示すフローチャートである。初期状態では、センスアンプコントローラ１３は、“Ｈ”の電源カット信号ＰＣをデータ記憶部１１の全てのセンスアンプＳＡに供給している。これにより、全てのセンスアンプＳＡが駆動可能であり、データ記憶部１１は、４つのウェイＷ１〜Ｗ４のうちラインアドレスで指定された４つのラインに格納されたデータの読み出しを継続している。
【００５７】
データ記憶部１１は、ＭＲＡＭで構成され、またラインに含まれるデータはタグに比べてデータサイズが大きい。このため、データ記憶部１１は、タグ記憶部１０に比べて、読み出し動作が遅く、また消費電力も大きい。よって、比較回路１２による比較結果が出力された時点で、データ記憶部１１の読み出し動作は完了していない。
【００５８】
まず、センスアンプコントローラ１３は、キャッシュコントローラ１４からワードアドレスを受ける（ステップＳ２０）。続いて、キャッシュコントローラ１４は、ラインに含まれるデータのうちワードアドレスで指定されたワードに対応するセンスアンプＳＡ以外のセンスアンプＳＡの電源をオフする（ステップＳ２１）。具体的には、キャッシュコントローラ１４は、電源をオフすべきセンスアンプＳＡに“Ｌ”の電源カット信号ＰＣを供給する。これにより、“Ｌ”の電源カット信号ＰＣを受けたセンスアンプＳＡは、セル電流Ｉdata及び参照電流Ｉrefがカットされるため、当該センスアンプＳＡの電源がオフされる。
【００５９】
続いて、比較回路１２から比較結果を受けると（ステップＳ２２）、センスアンプコントローラ１３は、タグが一致（ヒット）したラインを含まないウェイのセンスアンプＳＡの電源をオフする（ステップＳ２３）。この時点では、ヒットしたラインのうちワードアドレスで指定されたワードに対応するセンスアンプＳＡのみが駆動し、それ以外のセンスアンプＳＡの電源がオフされている。
【００６０】
その後、データ記憶部１１から目的のデータが読み出され、この読み出されたデータがプロセッサ２に送られる。この際、データラッチ回路３７は、ワードアドレスに対応するデータのみを出力する。
【００６１】
なお、本実施形態では、ワード単位でセンスアンプの電源をオン／オフすることができればよいので、各ワードに対応するセンスアンプ群には、センスアンプの電源をオン／オフするための共通の電源カット信号ＰＣが入力されるように構成する。これにより、信号線の数を減らすことができる。
【００６２】
［３］  効果
以上詳述したように第１の実施形態では、セットアソシアティブ方式を用いたキャッシュシステム４において、ラインごとにタグを格納するタグ記憶部１０を揮発性メモリ（ＳＲＡＭ）で構成し、ラインごとにデータを格納するデータ記憶部１１を不揮発性メモリ（ＭＲＡＭ）で構成する。そして、タグの比較結果に基づいて、アクセスされないウェイのセンスアンプＳＡの電源をオフするようにしている。
【００６３】
従って第１の実施形態によれば、プロセッサ２から読み出し要求後に、データ記憶部１１から目的のデータの読み出し動作に必要のないセンスアンプＳＡの電源をオフすることができる。これにより、余分な電力の消費を抑えることが可能となるため、キャッシュシステム４の消費電力を低減することができる。
【００６４】
また、データ記憶部１１の１ラインに含まれるデータが複数のワードで構成され、ワードアドレスで指定されたワードに対応するセンスアンプＳＡ以外のセンスアンプＳＡの電源をさらにオフするようにしている。これにより、キャッシュシステム４の消費電力をより低減することができる。
【００６５】
また、データ記憶部１１にＭＲＡＭを用いることができるため、待機電力を低減することができる。
【００６６】
なお、本実施形態では、タグ記憶部１０にＳＲＡＭを用いているが、タグ記憶部１０をデータ記憶部１１と同様にＭＲＡＭで構成してもよい。
【００６７】
［第２の実施形態］
［１］  キャッシュシステム４の構成
図１０は、第２の実施形態に係るキャッシュシステム４のブロック図である。キャッシュシステム４は、ＬＲＵ（Least Recently Used）記憶部１５、カウンタ１６、及びカウンタ更新回路１７をさらに備えている。その他の構成は、第１の実施形態と同じである。
【００６８】
ＬＲＵ記憶部１５は、ＬＲＵ情報を格納する。ＬＲＵ記憶部１５は、例えばレジスタから構成される。ＬＲＵ情報は、４つのウェイに共通のラインを単位として、一番最近アクセスされたウェイからの順番を示す情報である。ＬＲＵ情報は、キャッシュの容量が上限に達した場合に、アクセスされた時間が古いラインのデータを消去して空き容量を確保するために使用されるとともに、本実施形態では、センスアンプＳＡの電源を制御するためにも使用される。ＬＲＵ情報は、キャッシュシステム４がプロセッサ２から読み出し要求及び書き込み要求を受けるごとに、キャッシュコントローラ１４によって更新される。
【００６９】
カウンタ１６は、４つのウェイに共通のラインを単位として、最後にそのラインがアクセスされてからどの位時間が経過したかを示す情報を保持する。すなわち、カウンタ１６は、４つのウェイに共通のラインごとにカウント値を有する。カウンタ更新回路１７は、キャッシュシステム４がプロセッサ２からアクセスされる（読み出し要求及び書き込み要求を受ける）ごとに、カウンタ１６のカウント値を更新する。具体的には、カウンタ更新回路１７は、キャッシュシステム４がプロセッサ２からアクセスされるごとに、ヒットしたラインに対応するカウント値をリセットし、それ以外のラインに対応するカウント値を１だけカウントアップする。これにより、カウンタ１６のうち最後にアクセスされてから時間が経過しているラインのカウント値が大きくなる。ラインごとのカウント値を参照することで、ラインが最後にアクセスされてからの経過時間が判定できる。
【００７０】
［２］  キャッシュシステム４の動作
上記のように構成されたキャッシュシステム４の動作について説明する。図１１は、キャッシュシステム４の動作を説明する図である。図１２は、キャッシュコントローラ１４及び比較回路１２の動作を示すフローチャートである。ステップＳ１２において、キャッシュコントローラ１４は、センスアンプコントローラ１３にワードアドレス及びラインアドレスを送る。ステップＳ１２以外の動作は、第１の実施形態で説明した図８と同じである。
【００７１】
図１３は、センスアンプコントローラ１３の動作を示すフローチャートである。初期状態では、センスアンプコントローラ１３は、“Ｌ”の電源カット信号ＰＣをデータ記憶部１１の全てのセンスアンプＳＡに供給している。これにより、全てのセンスアンプＳＡの電源がオフされる。
【００７２】
まず、センスアンプコントローラ１３は、キャッシュコントローラ１４からワードアドレス及びラインアドレスを受ける（ステップＳ３０）。
【００７３】
続いて、センスアンプコントローラ１３は、ラインアドレスで指定されたラインのカウント値をカウンタ１６から読み出す（ステップＳ３１）。続いて、センスアンプコントローラ１３は、このカウント値に基づいて、４つのウェイＷ１〜Ｗ４のうち駆動するウェイ数（Ｎウェイ）を決定する（ステップＳ３２）。すなわち、カウンタ１６のカウント値は、前述したように、最後にラインがアクセスされてからどの位時間が経過しているかを示す情報であり、カウント値が小さいほど当該ラインがより最近アクセスされたことを意味している。例えば、ラインごとのカウント値の最大値が２０とした場合、０〜５の場合は、全てのウェイを駆動し、６〜１０の場合は、３つのウェイを駆動し、１１〜１５の場合は、２つのウェイを駆動し、１６以上の場合は、１つのウェイを駆動するものとする。
【００７４】
続いて、センスアンプコントローラ１３は、ラインアドレスで指定されたラインのＬＲＵ情報をＬＲＵ記憶部１５から読み出す（ステップＳ３３）。続いて、センスアンプコントローラ１３は、このＬＲＵ情報に基づいて、一番最近アクセスされウェイから順番に、Ｎウェイを選択する（ステップＳ３４）。
【００７５】
続いて、センスアンプコントローラ１３は、ステップＳ３４で選択したＮウェイのセンスアンプＳＡのうちワードアドレスで指定されたワードに対応するセンスアンプＳＡを駆動する（ステップＳ３５）。具体的には、キャッシュコントローラ１４は、駆動すべきセンスアンプＳＡに“Ｈ”の電源カット信号ＰＣを供給する。これにより、“Ｈ”の電源カット信号ＰＣを受けたセンスアンプＳＡには、セル電流Ｉdata及び参照電流Ｉrefが流れる。
【００７６】
続いて、比較回路１２から比較結果を受けると（ステップＳ３６）、センスアンプコントローラ１３は、ヒットしたラインを含まないウェイのセンスアンプＳＡの電源をオフする（ステップＳ３７）。この時点では、タグが一致したラインのうちワードアドレスで指定されたワードに対応するセンスアンプＳＡのみが駆動し、それ以外のセンスアンプＳＡの電源がオフされている。仮に、既に電源がオフされているラインがヒットした場合には、再度キャッシュコントローラ１４より駆動すべきセンスアンプＳＡに“Ｈ”の電源カット信号ＰＣを送り、読み出しを開始する。
【００７７】
その後、データ記憶部１１から目的のデータが読み出され、この読み出されたデータがプロセッサ２に送られる。この際、データラッチ回路３７は、ワードアドレスに対応するデータのみを出力する。
【００７８】
［３］  効果
以上詳述したように第２の実施形態では、ラインごとに、最後にそのラインがアクセスされてからの経過時間を示すカウント値を保持するカウンタ１６と、一番最近アクセスされたウェイからの順番を示すＬＲＵ情報を格納するＬＲＵ記憶部１５とを備えている。そして、アドレスにより指定されるラインのカウント値に基づいて、駆動するウェイ数（Ｎウェイ）を決定するとともに、当該ラインのＬＲＵ情報に基づいて、４ウェイからＮウェイ分を選択するようにしている。
【００７９】
従って第２の実施形態によれば、プロセッサ２から読み出し要求を受けてから、最初に駆動するセンスアンプＳＡの数を限定することができる。これにより、キャッシュシステム４の消費電力を低減することができる。
【００８０】
また、データ記憶部１１の１ラインに含まれるデータが複数のワードで構成され、アドレスで指定されたワードに対応するセンスアンプＳＡを駆動するようにしている。これにより、キャッシュシステム４の消費電力をより低減することができる。
【００８１】
なお、本実施形態では、タグ記憶部１０にＳＲＡＭを用いているが、タグ記憶部１０をデータ記憶部１１と同様にＭＲＡＭで構成してもよい。
【００８２】
上記第１及び第２の実施形態において、消費電力を低減する観点から、比較回路１２によるタグの比較結果をより速く出力することが望ましい。このため、タグ記憶部１０に連想メモリ（ＣＡＭ：Content addressable memory）を用いて、タグ記憶部１０の読み出し速度をより高速化してもよい。同様に、データ記憶部１１にＣＡＭを用いてもよい。
【００８３】
また、上記第１及び第２の実施形態では、不揮発性メモリとしてＭＲＡＭを用いているが、これに限定されず、他の種類の不揮発性メモリを用いることも可能である。
【００８４】
また、上記第１及び第２の実施形態では、キャッシュシステム４を２次キャッシュメモリとして使用しているが、その他の階層のキャッシュメモリに適用してもよい。
【００８５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８６】
１…情報処理装置、２…プロセッサ、３…１次キャッシュメモリ、４…キャッシュシステム（２次キャッシュメモリ）、５…メインメモリ、１０…タグ記憶部、１１…データ記憶部、１２…比較回路、１３…センスアンプコントローラ、１４…キャッシュコントローラ、１５…ＬＲＵ記憶部、１６…カウンタ、１７…カウンタ更新回路、３０…メモリセルアレイ、３１…参照セルアレイ、３２…ロウデコーダ、３３…カラム選択回路、３４…カラムデコーダ、３５…クランプ回路、３６…センスアンプ回路、３７…データラッチ回路、３８…制御回路、４０…ＭＴＪ素子、４１…選択トランジスタ。
【図１】
0005498526.tif 000002
【図２】
0005498526.tif 000003
【図３】
0005498526.tif 000004
【図４】
0005498526.tif 000005
【図５】
0005498526.tif 000006
【図６】
0005498526.tif 000007
【図７】
0005498526.tif 000008
【図８】
0005498526.tif 000009
【図９】
0005498526.tif 000010
【図１０】
0005498526.tif 000011
【図１１】
0005498526.tif 000012
【図１２】
0005498526.tif 000013
【図１３】
0005498526.tif 000014