(57)【要約】 【課題】アクセス要求に対する応答を迅速に行う。【解決手段】メモリ制御回路は、キャッシュメモリ１の特定アドレスに対する読み出し要求があった場合に、特定アドレスとは異なるアドレスのデータをキャッシュメモリから読み出して格納するローカルバッファ５と、キャッシュメモリおよびローカルバッファに対するアクセスを制御する制御部と、を備える。ローカルバッファは、キャッシュメモリよりも記憶容量が小さくて高速アクセスが可能で、かつ、キャッシュメモリに記憶されているデータの一部を重複して記憶する。【選択図】図１
2015052940.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリの特定アドレスに対する読み出し要求があった場合に、前記特定アドレスとは異なるアドレスのデータを前記キャッシュメモリから読み出して格納するローカルバッファと、
前記キャッシュメモリおよび前記ローカルバッファに対するアクセスを制御する制御部と、を備え、
前記ローカルバッファは、前記キャッシュメモリよりも記憶容量が小さくて高速アクセスが可能で、かつ、前記キャッシュメモリに記憶されているデータの一部を重複して記憶するメモリ制御回路。
【請求項２】
前記キャッシュメモリは、磁気抵抗効果素子の抵抗変化をデータの記憶に利用する複数のＭＲＡＭセルを含んでおり、
前記磁気抵抗効果素子に直列接続されるキャパシタと、
前記磁気抵抗効果素子に流れる電流に応じて変化する前記キャパシタの両電極間の電圧により、前記データの論理を検出するセンスアンプと、を備える請求項１に記載のメモリ制御回路。
【請求項３】
前記制御部は、前記特定アドレスに対応するＭＲＡＭセル内の磁気抵抗効果素子と前記異なるアドレスに対応するＭＲＡＭセル内の磁気抵抗効果素子とに同時に電流を流して、それぞれ対応する前記キャパシタを充電又は放電する請求項２に記載のメモリ制御回路。
【請求項４】
前記制御部は、前記特定アドレスに対応する前記キャパシタの両電極間電圧を読み出すためのイネーブル信号と、前記異なるアドレスのそれぞれに対応する前記キャパシタの両電極間電圧を順に読み出すための１以上のイネーブル信号とを、順に前記センスアンプに送って、順にデータを読み出す請求項３に記載のメモリ制御回路。
【請求項５】
前記キャパシタは、
ビット線ごとに設けられる第１の容量と、
複数のビット線ごとに設けられ、前記複数のビット線の中から選択されたビット線に接続される第２の容量と、を有する請求項２乃至４のいずれかに記載のメモリ制御回路。
【請求項６】
第１方向に配列された複数のＭＲＡＭセルごとに設けられ、前記第１方向に交差する第２方向に配列される複数のビット線と、
前記第２方向に配列される複数のＭＲＡＭセルごとに設けられ、前記第１方向に配列される複数のワード線と、
前記複数のビット線の中から一つを選択するビット線選択回路と、を備え、
前記第２の容量は、前記ビット線選択回路で選択されたビット線に付加される請求項５に記載のメモリ制御回路。
【請求項７】
前記異なるアドレスは、前記特定アドレスに対応するワード線と同じワード線にて選択されるアドレスを含み、
前記ビット線選択回路は、
前記特定アドレスに対応するビット線を選択する第１ビット線選択部と、
前記異なるアドレスのそれぞれに対応するビット線を選択する１以上の第２ビット線選択部と、を有し、
前記第２の容量は、前記第１ビット線選択部と前記１以上の第２ビット線選択部とのそれぞれごとに設けられる請求項５または６に記載のメモリ制御回路。
【請求項８】
前記制御部は、前記特定のアドレス以外に、プロセッサから読み出し要求アドレスを受けている場合は、前記異なるアドレスのデータを前記キャッシュメモリから読み出して前記ローカルバッファに格納する処理を一時的に中止する請求項１乃至７のいずれかに記載のメモリ制御回路。
【請求項９】
前記制御部は、プロセッサにより読み出し要求されたアドレスの履歴情報に基づいて、前記異なるアドレスを決定する請求項１乃至８のいずれかに記載のメモリ制御回路。
【請求項１０】
前記制御部は、前記異なるアドレスに対応するデータを前記ローカルバッファに格納した後に、プロセッサが前記異なるアドレスに対する読み出し要求を行った確率が所定の閾値よりも低い場合には、前記異なるアドレスのデータを前記キャッシュメモリから読み出して前記ローカルバッファに格納する処理を一時的に中止する請求項１乃至９のいずれかに記載のメモリ制御回路。
【請求項１１】
前記制御部は、前記異なるアドレスを設定するアルゴリズムを事後的に変更可能なようにＦＰＧＡ（Field Programmable Gate Array）を備える請求項１乃至１０のいずれかに記載のメモリ制御回路。
【請求項１２】
前記ローカルバッファに格納されるデータに対応する前記異なるアドレスは、少なくとも前記特定アドレスの次のアドレスを含む請求項１乃至１１のいずれかに記載のメモリ制御回路。
【請求項１３】
前記ローカルバッファは、前記メモリセルアレイと同じセル構造である請求項１乃至１２のいずれかに記載のメモリ制御回路。
【請求項１４】
低次のメモリよりもアクセス速度が高速で、かつ前記低次のメモリに格納されるべきデータの少なくとも一部を格納するキャッシュアレイ部と、
前記キャッシュアレイ部の特定アドレスに対する読み出し要求があった場合に、前記特定アドレスとは異なるアドレスのデータを前記キャッシュアレイ部から読み出して格納するローカルバッファと、
前記キャッシュアレイ部および前記ローカルバッファに対するアクセスを制御する制御部と、を備え、
前記ローカルバッファは、前記キャッシュアレイ部よりも記憶容量が小さくて高速アクセスが可能で、かつ、前記キャッシュアレイ部に記憶されているデータの一部を重複して記憶するキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、キャッシュメモリを制御するメモリ制御回路と、メモリ制御回路を内蔵するキャッシュメモリとに関する。
【背景技術】
【０００２】
アクセス速度が遅い、すなわちレイテンシの大きいメモリ（例えば、メインメモリ）にプロセッサがデータをロードする際のレイテンシを隠蔽する技術として、プリフェッチとロウバッファ（Row Buffer）が知られている。
【０００３】
プリフェッチは、将来必要となるデータを予測して、あらかじめ異なる階層間でデータ転送しておくという手法である。プリフェッチによって将来必要となるデータの予測が一致すると、データ転送に必要な時間を短縮でき、プロセッサがデータを待つ時間を短縮できる。
【０００４】
ロウバッファは、History bufferとも呼ばれ、直近でアクセスしたデータをバッファに格納しておき、同じアドレスにアクセスがあった時に高速にデータアクセスを実現するという手法である。
【０００５】
プリフェッチでは、データ転送を先行して行うため、プリフェッチの予測が失敗した時のオーバーヘッドが大きい。また、プリフェッチは、上位階層にデータを移す事でレイテンシを隠ぺいする手法であり、同一階層内でのレイテンシの隠ぺい効果はない。ロウバッファは、過去にアクセスしたデータへのアクセスには効果があるが、新たなアドレスへのアクセスには効果がない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平11-259361号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、アクセス要求に対する応答を迅速に行うことが可能なメモリ制御回路およびキャッシュメモリを提供することにある。
【課題を解決するための手段】
【０００８】
本実施形態では、キャッシュメモリの特定アドレスに対する読み出し要求があった場合に、前記特定アドレスとは異なるアドレスのデータを前記キャッシュメモリから読み出して格納するローカルバッファと、
前記キャッシュメモリおよび前記ローカルバッファに対するアクセスを制御する制御部と、を備え、
前記ローカルバッファは、前記キャッシュメモリよりも記憶容量が小さくて高速アクセスが可能で、かつ、前記キャッシュメモリに記憶されているデータの一部を重複して記憶するメモリ制御回路が提供される。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係るキャッシュメモリ１の概略構成を示すブロック図。
【図２】ローカルバッファ５のエントリ数とアドレスのヒット率との関係を示すグラフ。
【図３】図１のキャッシュメモリ１内のメモリセルアレイ２とローカルバッファ５の内部構成の一例を示すブロック図。
【図４】キャッシュコントローラ６の処理動作の一例を示すフローチャート。
【図５】（ａ）は電流読み出し方式の概略を説明する図、（ｂ）は電流読み出し方式における磁気抵抗効果素子ＡＰ，Ｐに流れる電流波形を示す図、（ｃ）は電圧読み出し方式の概略を説明する図、（ｄ）は電圧読み出し方式における磁気抵抗効果素子ＡＰ，Ｐに流れる電流波形を示す図。
【図６】（ａ）は１Ｔ−１Ｒタイプの一例を示す回路図、（ｂ）は２Ｔ−２Ｒタイプの一例を示す回路図。
【図７】１Ｔ−１Ｒタイプにおけるビット線、カラム選択回路およびグローバル容量の周辺回路図。
【図８】図７の回路を用いてキャッシュメモリ１の読み出しとローカルバッファ５を用いた先読みを行う場合のタイミング図。
【図９】ワード線の一回のハイ動作でキャッシュメモリ１からのデータ読み出しと先読みとを行う場合のタイミング図。
【図１０】プロセッサによる読み出し要求の１回当たりの消費電力の内訳を示す図。
【図１１】３次元積層化の一例を示す概略的なレイアウト図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明の一実施形態について説明する。
【００１１】
図１は一実施形態に係るキャッシュメモリ１の概略構成を示すブロック図である。図１のキャッシュメモリ１は、メモリセルアレイ（キャッシュアレイ部）２と、ロウデコーダ３と、センスアンプ４と、ローカルバッファ５と、キャッシュコントローラ（制御部）６と、Ｉ／Ｏコントローラ７とを備えている。図１のキャッシュメモリ１のうち、少なくともローカルバッファ５とキャッシュコントローラ６がメモリ制御回路に該当する。
【００１２】
メモリセルアレイ２は、不図示のメインメモリよりもアクセス速度が高速なメモリセルを縦横に配置したものである。本実施形態は、メモリセルとして不揮発性メモリセルを用いている。ＳＲＡＭ（Static RAM）を用いないのは、ＳＲＡＭは待機電力が大きく、低消費電力が求められる携帯情報機器には向かないためである。また、ＳＲＡＭは、１ビット当たりの面積が大きく、メモリ容量を増やそうとすると、消費電力の増大と動作速度の低下を引き起こす。動作速度が低下するのは、メモリセルアレイ２の面積が大きくなると、配線が長くなって配線遅延が起き、またワード線の駆動にも時間がかかり、高速な読み出しが困難になるためである。また、配線容量の増大により、リーク電流が増えて、消費電力が増大してしまう。
【００１３】
本実施形態は、不揮発性メモリの中でも、とりわけＭＲＡＭ（Magnetoresistive RAM）を用いることを念頭に置いている。ＭＲＡＭは、ＮＡＮＤフラッシュメモリ等の他の不揮発性メモリと比べて、書換耐性に優れ、動作速度も速く、高集積化が可能という特徴を有する。
【００１４】
ＭＲＡＭは、１ビット当たりの面積が小さく、ＳＲＡＭセルに比べて、１０倍程度のメモリ容量を同じ回路面積で実装可能である。ところが、ＭＲＡＭは、微小な抵抗変化でデータを保持する仕組みを採用するため、ＳＲＡＭに比べると、読み出し時間が遅い。このため、プロセッサがアクセス要求をしてからデータを取得するまでの待機時間が長くなり、プロセッサのストールが発生してしまうおそれがある。
【００１５】
また、一般に、大容量化と高速性能を両立させることは困難であり、大容量化を優先させると動作速度が低下し、動作速度を向上させると大容量化が実現できなくなるというように、メモリ容量と動作速度はトレードオフの関係にある。そこで、本実施形態では、ローカルバッファ５を設けて、大容量化と高速性能との両立を図っている。
【００１６】
ローカルバッファ５は、ＭＲＡＭセルよりも高速なメモリセル（例えば、ＳＲＡＭ）を用いて構成されている。ローカルバッファ５のメモリ容量は、キャッシュメモリ１のメモリ容量よりも小さいことを想定している。
【００１７】
なお、ローカルバッファ５は、メモリセルアレイ２と同じセル構造で構成してもよい。同じセル構造であっても、ローカルバッファ５は、メモリセルアレイ２よりもはるかにメモリ容量が小さいため、配線遅延が少なくなる。また、一つのワード線に接続されるメモリセルの数も少ないため、ワード線の駆動能力を高めることができる。よって、例えば、ローカルバッファ５とメモリセルアレイ２を、同じセル構造のＭＲＡＭセル等で構成しても、ローカルバッファ５はメモリセルアレイ２よりも高速動作が可能である。
【００１８】
ローカルバッファ５は、キャッシュメモリ１と同じメモリ階層内に設けられている。したがって、プロセッサが、特定のアドレスを指定してキャッシュメモリ１に対してアクセス（読み出し）要求を行うと、そのアドレスとは異なるアドレスが新たに生成されて、キャッシュメモリ１からデータが読み出され、読み出されたデータはローカルバッファ５に格納される。異なるアドレスとは、例えば、プロセッサが読み出し要求を行ったアドレスの次のアドレスである。一つのアドレスで読み出されるデータの単位は特に限定されないが、例えばキャッシュラインと同じ単位である５１２ビットである。
【００１９】
ローカルバッファ５にアクセスするためのアドレスの発行は、キャッシュコントローラ６が行う。キャッシュコントローラ６は、プロセッサがアクセス要求をしたアドレスを、例えばインクリメントまたはディクリメントして新たなアドレスを生成する。
【００２０】
新たに生成されるアドレスは、プロセッサが今後アクセス要求をすると思われるアドレスであり、先読みするアドレスである。本発明者がStandard Performance Evaluation （SPEC）によるコンピュータ・ハードウェア向け性能評価ソフトウェア・スイートであるSPEC CPU2006にて見積もったところ、アドレスインクリメントで新たなアドレスを生成したところ、全アクセスのうち１０％〜３０％で、アクセスの高速化が図れた。
【００２１】
図２はローカルバッファ５のメモリ容量すなわちエントリ数とアドレスのヒット率との関係を示すグラフである。このグラフは、上述したSPEC CPU2006で見積もった結果である。図２に示すように、ローカルバッファ５のエントリ数が５の場合、約２０％の割合、すなわち５回に１回のアクセスで、高速化が図れることが確認できた。
【００２２】
ローカルバッファ５は、メモリ容量すなわちエントリ数が限られているため、すぐに満杯になってしまう。ローカルバッファ５が満杯になった場合は、古いデータから順に消去して、新しいデータと入れ替えるようにするのが望ましい。ローカルバッファ５に格納されているデータは、基本的には、キャッシュメモリ１にも格納されているため、ローカルバッファ５からデータを消去しても、動作上の不都合は起きない。また、ローカルバッファ５のエントリ数を増やすと、配線長が長くなり、またワード線等のドライブ能力も低下するため、アクセス速度が低下してしまう。よって、ローカルバッファ５のエントリ数をあまり増やすのは望ましくない。
【００２３】
例えば、ローカルバッファ５のエントリ数が５の例について説明する。この場合、過去５回分のアクセス時に先読みされた５つのデータがローカルバッファ５に格納されている。次に、プロセッサからのアクセス要求が来たとき、アクセス要求のあったアドレスがローカルバッファ５内の５つのデータに対応する５つのアドレスのいずれかと一致していれば、先読みは成功し、ローカルバッファ５からデータが高速に読み出される。
【００２４】
一方、アクセス要求のあったアドレスがローカルバッファ５内のデータに対応するいずれのアドレスとも一致しない場合は、先読みは失敗し、キャッシュメモリ１からデータが読み出される。この場合、アクセス要求のあったアドレスに基づいて、将来アクセスがあると思われるアドレスを予測してキャッシュメモリ１から対応するデータを先読みして、このデータをローカルバッファ５内の最も古いデータを消去した上で格納する。
【００２５】
なお、アクセス要求のあったアドレスから、将来アクセスがあると思われるアドレスを予測する手法は、上述したアドレスのインクリメントやディクリメントの他に、アクセス要求をした過去のアドレスの履歴情報に基づいてアドレスを予測する手法など、種々の手法が考えられる。例えば、キャッシュコントローラ６をＦＰＧＡ（Field Programmable Gate Array）で構成することで、先読みのアドレスを決定するアルゴリズムを事後的に任意に変更可能としてもよい。
【００２６】
また、先読みするアドレスは、１個でもよいし、複数個でもよい。図２のグラフは、インクリメントされたアドレスを一つずつ先読みしてローカルバッファ５に格納する例を示している。先読みが成功すると、キャッシュメモリ１のレイテンシを大幅に削減でき、プロセッサの命令実行効率を大きく改善できる。また、キャッシュメモリ１に不揮発性メモリを使用することで、そもそものヒット率が向上できる効果に加えて、ローカルバッファ５によるさらなるヒット率の向上が図れるため、従来のＳＲＡＭを用いたキャッシュメモリ１と比べて、メモリのアクセス速度を大幅に向上できる。
【００２７】
プロセッサから読み出し要求のあったアドレスに対応するデータがキャッシュメモリ１に格納されていない場合、すなわちキャッシュミスした場合は、先読みは行わずに、このキャッシュメモリ１よりも低次のキャッシュメモリまたはメインメモリ（以下、低次メモリ）に対してアクセス要求を出す。
【００２８】
また、プロセッサから読み出し要求のあったアドレスに対応するデータをキャッシュメモリ１から読み出すとともに、先読みアドレスを発行した場合に、この先読みアドレスに対応するデータがキャッシュメモリ１に格納されていないことも考えられる。この場合は、低次メモリへのアクセス要求は出さずに先読みを行わない。このようにする理由は、先読みのために低次メモリにアクセスすると、データを取得するのに時間がかかってしまい、プロセッサの処理遅延が生じてしまうおそれがあるためである。なお、低次メモリへのアクセスが高速に行える場合は、低次メモリにアクセス要求を出してもよい。
【００２９】
キャッシュコントローラ６は、ローカルバッファ５を用いたアドレスの先読み制御を常に行うとは限らない。例えば、キャッシュコントローラ６は、キャッシュメモリ１へのアクセスが集中している場合は、アドレスの先読みを実行せず、すなわちローカルバッファ５へのデータ追加を行わずに、アクセス要求のあったアドレスを優先して処理してもよい。
【００３０】
また、ローカルバッファ５内にヒット率を監視するカウンタを設けて、例えばキャッシュコントローラ６にて、キャッシュメモリ１へのアクセス回数と、先読みのヒット数との割合（ヒット率）を検出して、ヒット率が所定の閾値より下がった場合（例えば、１０回連続ミスなど）、アドレスの先読みを一時的に中止し、ローカルバッファ５へのデータ追加を行わないようにしてもよい。
【００３１】
これは、ＯＳ制御によるプログラムやプロセスの切替時にキャッシュメモリ１へのアクセスのパターンが不安定になるためであり、アクセスのパターンが不安定な時期は先読みを一時的に中断すれば、無駄な電力の消費を抑制することができる。
【００３２】
図３は図１のキャッシュメモリ１内のメモリセルアレイ２とローカルバッファ５の内部構成の一例を示すブロック図である。
【００３３】
図３に示すように、メモリセルアレイ２は、第１タグ部１１と、第１データ部１２とを有する。第１タグ部１１は、キャッシュメモリ１内のデータに対応するアドレスを格納する第１アドレス格納部１３と、アクセス要求のあったアドレスがキャッシュメモリ１内のデータのアドレスと一致するか否かを比較する第１タグ比較部１４とを有する。第１データ部１２は、例えば複数のウェイに分けてデータを格納する。第１データ部１２に格納されるデータは、このキャッシュメモリ１の低次メモリ（下位メモリ）に格納されているデータか、あるいは低次メモリに将来格納されるべきデータである。
【００３４】
ローカルバッファ５も同様に、第２タグ部１５と、第２データ部１６とを有する。第２タグ部１５は、ローカルバッファ５内のデータに対応するアドレスを格納する第２アドレス格納部１７と、アクセス要求のあったアドレスがローカルバッファ５内のデータのアドレスと一致するか否かを比較する第２タグ比較部１８とを有する。第２データ部１６に格納されるデータは、キャッシュメモリ１にも格納されているデータである。
【００３５】
図３において、プロセッサがあるアドレス［３９：０］を指定して読み出し要求を行うと、そのアドレスの上位側ビット［３９：１８］が第１タグ部１１内の第１タグ比較部１４に入力されて、第１タグ部１１内の第１アドレス格納部１３に格納されているアドレスと一致するか否かが比較される。図３の例では、第１データ部１２内には４つのウェイが設けられているため、第１タグ比較部１４は、これらウェイのそれぞれに格納されたデータのアドレスと比較する。アドレスが一致すると、一致したウェイのデータがメモリセルアレイ２から読み出されることになる。図３の例では、一つのウェイのデータビット数は５１２ビットであり、一つのアドレスで５１２ビットのデータが出力される。
【００３６】
また、アクセス要求のあったアドレスは、ローカルバッファ５内の第２タグ部１５にも入力されて、第２タグ比較部１８にて、ローカルバッファ５内のデータに対応するアドレスと比較される。そして、両アドレスが一致する場合は、ローカルバッファ５内の対応データが読み出される。
【００３７】
ローカルバッファ５は、キャッシュメモリ１内のメモリセルアレイ２よりも動作速度が速いため、ローカルバッファ５から読み出されたデータは、メモリセルアレイ２から読み出されたデータよりも優先して、プロセッサに伝送される。
【００３８】
一方、アクセス要求のあったアドレスがローカルバッファ５内のアドレスと一致しなかった場合、すなわちローカルバッファ５にヒットしなかった場合、アクセス要求のあったアドレスの例えば次のアドレスのデータがキャッシュメモリ１から読み出されて、ローカルバッファ５に格納される。
【００３９】
図４はキャッシュコントローラ６の処理動作の一例を示すフローチャートである。まず、プロセッサからのアクセス要求を受け取る（ステップＳ１）。この場合のアクセス要求は、あるアドレスに対する読み出し要求である。
【００４０】
次に、このアドレスのデータがローカルバッファ５に格納されているか否かを判定する（ステップＳ２）。もし、格納されていれば、ヒットしたと判断して、ローカルバッファ５から対応データを読み出して、プロセッサに伝送する（ステップＳ３）。この場合、キャッシュメモリ１から読み出すよりも、高速のデータ読み出しが実現される。
【００４１】
上述したステップＳ２で、ローカルバッファ５に格納されていないと判定されると、キャッシュメモリ１内のメモリセルアレイ２に対してアクセス要求を行う（ステップＳ４）。次に、アクセス要求のあったアドレスが第１タグ比較部１４で一致したか否かを判定し（ステップＳ５）、一致した場合は、メモリセルアレイ２にヒットしたと判断して、メモリセルアレイ２から対応データを読み出すとともに（ステップＳ６）、アクセス要求のあったアドレスの例えば次のアドレスのデータをメモリセルアレイ２から読み出して、ローカルバッファ５に格納する（ステップＳ７）。
【００４２】
一方、上述したステップＳ５で、一致しないと判定されると、低次メモリ（下位メモリ）に対してアクセス要求を行う（ステップＳ８）。
【００４３】
メモリセルアレイ２がＭＲＡＭセルで構成されている場合、ＭＲＡＭセル内の磁気抵抗効果素子は、記憶するデータが０か１かによって、磁気抵抗効果素子の抵抗値が変化する。磁気抵抗効果素子の抵抗値を検出する手法として、磁気抵抗効果素子に流れる電流を検出する電流読み出し方式と、磁気抵抗効果素子に直列接続されたキャパシタの一端側電圧を検出する電圧読み出し方式とがある。
【００４４】
図５（ａ）は電流読み出し方式の概略を説明する図、図５（ｂ）は電流読み出し方式における磁気抵抗効果素子ＡＰ，Ｐに流れる電流波形を示す図、図５（ｃ）は電圧読み出し方式の概略を説明する図、図５（ｄ）は電圧読み出し方式における磁気抵抗効果素子ＡＰ，Ｐに流れる電流波形を示す図である。これらの図において、磁気抵抗効果素子ＡＰと磁気抵抗効果素子Ｐの一方は高抵抗で、他方は低抵抗である。
【００４５】
図５（ｂ）と図５（ｄ）を比較すればわかるように、電圧読み出し方式では、磁気抵抗効果素子ＡＰ，Ｐに流れる電流に応じた電荷が、磁気抵抗効果素子ＡＰ，Ｐに直列接続されたキャパシタＣ１，Ｃ２に蓄積される。このため、磁気抵抗効果素子ＡＰ，Ｐの抵抗値によりキャパシタＣ１，Ｃ２に蓄積された電荷量が変化し、それに応じてキャパシタＣ１，Ｃ２の一端側の電圧が変化する。よって、キャパシタＣ１，Ｃ２の一端側の電圧を検出することで、磁気抵抗効果素子ＡＰ，Ｐの抵抗値を把握できる。センスアンプ４は、各ビット線に接続されたキャパシタＣ１，Ｃ２の一端側電圧を順に読み出すことで、各データビットの値を正しく検出できる。ここで、キャパシタＣ１，Ｃ２は、導電材料を用いて意図的に作製されたキャパシタと、寄生容量や配線容量等により間接的に形成されたキャパシタとの少なくとも一方を含んでいる。したがって、例えば、意図的に作製されたキャパシタを用いずに配線によるキャパシタンスを用いることも可能である。
【００４６】
電流読み出し方式の場合、磁気抵抗効果素子ＡＰ，Ｐを瞬間的に流れる電流を検出する必要があるため、図５（ｂ）に示すように、２つの磁気抵抗効果素子ＡＰ，Ｐ間を流れる電流差が小さく、読み出しマージンが狭いのに対し、電圧読み出し方式の場合、キャパシタＣ１，Ｃ２にて電流を積算した結果を電圧として読み出すため、図５（ｄ）に示すように読み出しマージンを拡大でき、より信頼性の高いデータ読み出しを実現できる。
【００４７】
ＭＲＡＭセルを含むメモリセルアレイ２の構成として、１Ｔ−１Ｒタイプと２Ｔ−２Ｒタイプがある。図６（ａ）は１Ｔ−１Ｒタイプの一例を示す回路図、図６（ｂ）は２Ｔ−２Ｒタイプの一例を示す回路図である。
【００４８】
図６（ａ）の回路は、磁気抵抗効果素子ＡＰを有するＭＲＡＭセル３１と、参照抵抗Ｒｅｆを有する参照セル３２と、ＭＲＡＭセル３１からの電流が流れるビット線上に設けられるトランスファゲート３３と、このトランスファゲート３３の一端側に接続されるローカル容量（第１の容量）ＣBLと、トランスファゲート３３の他端側に接続されるグローバル容量（第２の容量）ＣGLと、参照セル３２からの電流が流れる参照ビット線上に設けられるトランスファゲート３４と、このトランスファゲート３４の一端側に接続されるローカル容量ＣREFと、トランスファゲート３４の他端側に接続されるグローバル容量Ｃ/GLと、ビット線および参照ビット線に接続されるセンスアンプ４とを有する。
【００４９】
図６（ｂ）の回路は、互いに異なる抵抗値の磁気抵抗効果素子ＡＰ，Ｐを有する一対のＭＲＡＭセル３１，３５と、各ＭＲＡＭセル３１，３５からの電流が流れる一対のビット線上に設けられる一対のトランスファゲート３３，３４と、これら一対のトランスファゲート３３，３４の一端側に接続されるローカル容量ＣBL、Ｃ/BLと、これら一対のトランスファゲート３３，３４の他端側に接続されるグローバル容量ＣGL、Ｃ/GLと、一対のビット線に接続されるセンスアンプ４とを有する。
【００５０】
図６（ａ）の１Ｔ−１Ｒタイプでは、一つのＭＲＡＭセル３１内の磁気抵抗効果素子ＡＰを流れる電流に応じた電荷を蓄積するローカル容量ＣBLとグローバル容量ＣGLを合成したキャパシタの一端側電圧を、参照セル３２内の参照抵抗Ｒｅｆを流れる電流に応じた電荷を蓄積するローカル容量Ｃrefとグローバル容量Ｃ/GLを合成したキャパシタの一端側電圧と比較して、データ０と１を決定する。参照抵抗Ｒｅｆは、磁気抵抗効果素子ＡＰが取り得る高抵抗と低抵抗との中間の抵抗値を有するため、磁気抵抗効果素子ＡＰの抵抗値が参照抵抗の抵抗値より大きいか小さいかで、データ０または１が決まる。
【００５１】
図６（ｂ）の２Ｔ−２Ｒタイプでは、一対のビット線のそれぞれに接続されたＭＲＡＭセル３１，３５内の磁気抵抗効果素子ＡＰ，Ｐの抵抗値を互いに逆にしておき、それぞれの磁気抵抗効果素子ＡＰ，Ｐを流れる電流に応じた電荷を蓄積する各キャパシタの一端側電圧を互いに比較して、データ０と１を決定する。このように、２Ｔ−２Ｒタイプでは、一対のビット線を用いて差動でデータを読み出すため、１Ｔ−１Ｒタイプよりも高速にデータを読み出すことができる。
【００５２】
図５（ｂ）に示したキャパシタＣ１，Ｃ２は、図６（ａ）および図６（ｂ）のローカル容量ＣBL、Ｃ/BLとグローバル容量ＣGL、Ｃ/GLを合成した容量である。ローカル容量ＣBL、Ｃ/BLは、ビット線ごとに設けられる寄生容量や個別の容量を合算した容量である。これに対して、グローバル容量ＣGL、Ｃ/GLは、図６（ａ）および図６（ｂ）では、各ビット線ごとに設けられるように図示されているが、実際には、複数のビット線で共用される容量である。
【００５３】
図７は、１Ｔ−１Ｒタイプにおけるビット線、カラム選択回路およびグローバル容量の周辺回路図であり、１バイト分の回路構成を示している。図７の回路は、ソース線を選択するトランスファゲート群４１と、ビット線を選択するトランスファゲート群４２，４３とを有し、これらはカラム選択回路に相当する。ビット線を選択するトランスファゲート群４２，４３は、プロセッサから読み出し要求のあったアドレスに対応するビット線を選択するトランスファゲート群（第１ビット線選択部）４２と、先読みをするアドレスに対応するトランスファゲート群（第２ビット線選択部）４３とを含んでおり、トランスファゲート群４２，４３の他端側には、それぞれグローバル容量ＣGL1、ＣGL2が接続されている。グローバル容量ＣGL1、ＣGL2は、複数のビット線で共有されるものであり、選択されたビット線に付加される。ＭＲＡＭセル内の磁気抵抗効果素子を流れる電流による電荷が、各ソース線またはビット線ごとに設けられるローカル容量とグローバル容量を合算したキャパシタに蓄積（充電又は放電）される。
【００５４】
カラム選択信号ＣＳＬ１は、プロセッサから読み出し要求のあったアドレスに対応するビット線を選択するトランスファゲート群４２のうち一つを選択する。カラム選択信号ＣＳＬ２は、先読みをするアドレスに対応するビット線を選択するトランスファゲート群４３のうち一つを選択する。
【００５５】
カラム選択信号ＣＳＬ１で選択したビット線の電圧は、センスイネーブル信号ＳＥ１がハイのときにセンスアンプ４にてセンスされる。また、カラム選択信号ＣＳＬ２で選択したビット線の電圧は、センスイネーブル信号ＳＥ２がハイのときにセンスアンプ４にてセンスされる。
【００５６】
図８は図７の回路を用いてキャッシュメモリ１の読み出しとローカルバッファ５を用いた先読みを行う場合のタイミング図である。プロセッサがあるアドレスを指定して読み出し要求を行うと、まず、カラム選択信号ＣＳ１をハイにし（時刻ｔ１）、次に、指定されたアドレスに対応するワード線をハイにする（時刻ｔ２）。これにより、該当するアドレスに対応するＭＲＡＭセルの磁気抵抗効果素子に電流が流れ始める（時刻ｔ３）。
【００５７】
その後、センスイネーブル信号ＳＥ１をハイにすると、センスアンプ４からデータが出力される（時刻ｔ４〜ｔ５）。このデータは、プロセッサに転送される。
【００５８】
次に、キャッシュコントローラ６は、プロセッサが指定したアドレスの次のアドレスを先読みするために、カラム選択信号ＣＳＬ２をハイにし（時刻ｔ６）、次に、このアドレスに対応するワード線をハイにする（時刻ｔ７）。これにより、該当するアドレスに対応するＭＲＡＭセルの磁気抵抗効果素子に電流が流れ始める（時刻ｔ８）。
【００５９】
その後、センスイネーブル信号ＳＥ２をハイにすると、センスアンプ４からデータが出力される（時刻ｔ９〜ｔ１０）。このデータは、ローカルバッファ５に転送される。
【００６０】
図８のタイミング図では、キャッシュメモリ１からデータを読み出した後に、先読み用に再度キャッシュメモリ１からデータを読み出す場合、それぞれ別個にワード線をハイにしている。ワード線をロウからハイにするには、電力を消費することから、できれば一回のハイ動作で、先読みまで済ませるのが望ましい。そのためには、プロセッサからアクセス要求のあったアドレスと先読みをするアドレスとが同じワード線上にある必要がある。
【００６１】
キャッシュラインの単位が５１２ビットの場合、一つのワード線には、例えば５１２×４＝２０４８ビット分のメモリセルが接続されている。よって、５１２ビット単位でデータの読み出しをする場合は、同じワード線に接続された残り１〜３単位分のデータを先読みすることができる。
【００６２】
図９はワード線の一回のハイ動作でキャッシュメモリ１からのデータ読み出しと先読みとを行う場合のタイミング図である。図９では、プロセッサから読み出し要求のあったアドレスに対応するワード線と、先読みをするアドレスに対応するワード線とが同じ場合の例を示している。
【００６３】
図９の時刻ｔ１で、カラム選択信号ＣＳ１，ＣＳ２をともにハイにし、対応するビット線に対して予め読み出しのための放電を行っておく（リセット）。次に、時刻ｔ２で、対応するワード線をハイにする。これにより、プロセッサから読み出し要求のあったアドレスに対応する磁気抵抗効果素子と、先読みをするアドレスに対応する磁気抵抗効果素子とに、ともに電流が流れ始め、対応するビット線に対して充電が行われる（時刻ｔ３）。なお、対応するビット線に対して予め読み出しのための充電を行っておき、磁気抵抗効果素子に電流を流すことにより当該ビット線からの放電が行われるようにしても良い。
【００６４】
その後、時刻ｔ４で、センスイネーブル信号ＳＥ１をハイにして、プロセッサから読み出し要求のあったアドレスに対応するビット線の電圧をセンスアンプ４に取り込んで、データを出力する。このデータは、プロセッサに転送される。
【００６５】
引き続いて、時刻ｔ５で、センスイネーブル信号ＳＥ２をハイにして、先読みをするアドレスに対応するビット線の電圧をセンスアンプ４に取り込んで、データを出力する。このデータは、ローカルバッファ５に転送される。
【００６６】
このように、プロセッサから読み出し要求のあったアドレスと先読みをするアドレスとが同じワード線上にある場合は、ワード線を１回だけハイにすることで、これら２つのアドレスのデータを連続して読み出すことができ、ワード線を駆動する回数を減らせることから、消費電力の削減できるとともに、連続読み出しによるアクセスの高速化が図れる。また、ワード線が同じということは、アドレスをデコードしてワード線選択用の信号を生成するロウデコーダ３のデコード処理の回数も削減できることを意味し、ロウデコーダ３の消費電力も削減できる。
【００６７】
図１０はプロセッサによる読み出し要求の１回当たりの消費電力の内訳を示す図である。消費電力は、１）行選択回路すなわちロウデコーダ３の消費電力とワード線駆動のための消費電力、２）ビット線の駆動とセンスアンプ４の消費電力、３）入出力バッファの消費電力、４）サブアレイを駆動するための消費電力とを含んでいる。ここで、サブアレイとは、キャッシュメモリ１内の上述した１）〜３）の回路ブロック以外の回路ブロックを指す。
【００６８】
プロセッサから読み出し要求のあったアドレスと先読みするアドレスとを同一ワード線上に配置して、ワード線の駆動回数とロウデコーダ３のデコード回数を削減することで、図１０の１）の電力を削減でき、これにより、先読みに必要な電力の約３０％近くを削減できることになる。
【００６９】
上述した実施形態では、キャッシュメモリ１の内部構成を説明したが、キャッシュメモリ１を実装したチップとプロセッサを実装したチップとをＴＳＶ（Through Silicon Via）で接続して３次元積層化を行ってもよい。
【００７０】
図１１は３次元積層化の一例を示す概略的なレイアウト図である。図１１では、図１のキャッシュメモリ１内の各部が実装されたチップ５１と、プロセッサおよびその周辺回路が実装されたチップ５２とをＴＳＶ５３、５４で接続している。チップ５２には、マルチコア構成のプロセッサ５５と、命令キャッシュおよびデータキャッシュを有する１次キャッシュメモリ５６と、メモリコントローラ５７と、ストリーミングバッファ５８とが実装されている。ここで、ストリーミングバッファ５８は、プリフェッチしたデータを格納するバッファである。
【００７１】
これら２つのチップ５１，５２のどちらを上方に配置してもよい。また、各チップ内の一部の回路ブロックを、他のチップに実装しても構わない。
【００７２】
このように、本実施形態では、キャッシュメモリ１とは別個に、小容量で高速のローカルバッファ５を設けて、プロセッサからキャッシュメモリ１に対して読み出し要求を行うと、その読み出し要求をしたアドレスとは異なるアドレスのデータをキャッシュメモリ１から先読みして、ローカルバッファ５に格納するため、その後にプロセッサから読み出し要求があったときに、その読み出し要求があったアドレスがローカルバッファ５内に格納されていれば、キャッシュメモリ１よりも高速にデータの読み出しが可能となる。
【００７３】
また、プロセッサから読み出し要求のあったアドレスと、先読みするアドレスとが同じワード線上に位置するようにすることで、ワード線の駆動回数とロウデコーダ３のデコード回数とを増やさずに先読みを行うことができ、消費電力の削減を図れる。
【００７４】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００７５】
１  キャッシュメモリ、２  メモリセルアレイ、３  ロウデコーダ、４  センスアンプ、５  ローカルバッファ、６  キャッシュコントローラ、７  Ｉ／Ｏコントローラ、１１  第１タグ部、１２  第１データ部、１３  第１アドレス格納部、１４  第１タグ比較部、１５  第２タグ部、１６  第２データ部、１７  第２アドレス格納部、１８  第２タグ比較部、３１、３５  ＭＲＡＭセル、３２  参照セル、３３、３４  トランスファゲート
【図１】
2015052940.tif 000003
【図２】
2015052940.tif 000004
【図３】
2015052940.tif 000005
【図４】
2015052940.tif 000006
【図５】
2015052940.tif 000007
【図６】
2015052940.tif 000008
【図７】
2015052940.tif 000009
【図８】
2015052940.tif 000010
【図９】
2015052940.tif 000011
【図１０】
2015052940.tif 000012
【図１１】
2015052940.tif 000013