(57)【要約】 【課題】複数の電源電圧を使用する不揮発性メモリに対して効率的な電源管理を行う。【解決手段】メモリシステム１は、それぞれ異なる基準電圧を使用する複数の回路ブロックを含む不揮発性メモリと、不揮発性メモリ内の前記複数の回路ブロックのそれぞれに対して、対応する基準電圧の供給を遮断するか否かを切り替える電源遮断切替部と、複数の回路ブロックの動作頻度、複数の回路ブロックの回路規模、複数の回路ブロックの待機電力、および電源遮断切替部の回路規模の少なくとも一つに基づいて、電源遮断切替部の切替を制御する電源遮断制御部と、を備える。【選択図】図１
2016062503.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ異なる基準電圧を使用する複数の回路ブロックを含む不揮発性メモリと、
前記不揮発性メモリ内の前記複数の回路ブロックのそれぞれに対して、対応する基準電圧の供給を遮断するか否かを切り替える電源遮断切替部と、
前記複数の回路ブロックの動作頻度、前記複数の回路ブロックの回路規模、前記複数の回路ブロックの待機電力、および前記電源遮断切替部の回路規模の少なくとも一つに基づいて、前記電源遮断切替部の切替を制御する電源遮断制御部と、を備えるメモリシステム。
【請求項２】
前記不揮発性メモリは、それぞれが前記複数の回路ブロックを有する複数のメモリバンクを有し、
前記電源遮断切替部は、各メモリバンクごとに、対応するメモリバンクにおける前記複数の回路ブロックへの前記複数の基準電圧の供給を遮断するか否かを切り替える請求項１に記載のメモリシステム。
【請求項３】
前記電源遮断切替部は、各メモリバンクごとに、各回路ブロックの回路規模に応じたトランジスタサイズの複数の電源遮断スイッチを有する請求項２に記載のメモリシステム。
【請求項４】
前記複数の電源遮断スイッチの少なくとも一つは、基板電圧を所定の電圧に設定したＰＭＯＳトランジスタである請求項３に記載のメモリシステム。
【請求項５】
前記電源遮断制御部は、基準電圧の供給を遮断しているメモリバンクに対する遮断中のアクセス情報を保持するバッファをメモリバンクごとに有する請求項２乃至４のいずれかに記載のメモリシステム。
【請求項６】
前記電源遮断制御部は、
初期パラメータにより状態遷移が設定される所定のステートマシンを用いて、前記複数の基準電圧の遮断順序を制御する遮断順序制御部と、
前記初期パラメータを保存する初期パラメータ保存部と、
前記初期パラメータを前記遮断順序制御部に設定する初期パラメータ設定部と、を有する請求項１乃至５のいずれかに記載のメモリシステム。
【請求項７】
前記電源遮断制御部は、回路規模の小さい回路ブロックへの基準電圧の供給を優先して遮断する請求項１乃至６のいずれかに記載のメモリシステム。
【請求項８】
前記電源遮断制御部は、動作頻度が低い回路ブロックへの基準電圧の供給を優先して遮断する請求項１乃至６のいずれかに記載のメモリシステム。
【請求項９】
前記電源遮断制御部は、データ読み出し用のビット線電圧を生成する回路ブロック用の基準電圧と、データ書き込み用のビット線電圧を生成する回路ブロック用の基準電圧と、の供給を優先して遮断する請求項１乃至６のいずれかに記載のメモリシステム。
【請求項１０】
前記電源遮断制御部は、前記複数の基準電圧のうち、前記複数の回路ブロックに共通して供給される接地電圧の供給を、前記複数の基準電圧の中で最後に遮断する請求項１乃至６のいずれかに記載のメモリシステム。
【請求項１１】
データを格納し、それぞれ異なる基準電圧を使用する複数の回路ブロックを含む不揮発性メモリを備えたデータキャッシュ部と、
前記データキャッシュ部に格納されるデータのアドレス情報を格納するタグ部と、
前記不揮発性メモリ内の前記複数の回路ブロックのそれぞれに対して、対応する基準電圧の供給を遮断するか否かを切り替える電源遮断切替部と、
前記複数の回路ブロックの動作頻度、前記複数の回路ブロックの回路規模、前記複数の回路ブロックの待機電力、および前記電源遮断切替部の回路規模の少なくとも一つに基づいて、前記電源遮断切替部の切替を制御する電源遮断制御部と、を備えるキャッシュメモリ。
【請求項１２】
前記不揮発性メモリは、それぞれが前記複数の回路ブロックを有する複数のメモリバンクを有し、
前記電源遮断切替部は、前記複数のメモリバンクのそれぞれにおける前記複数の回路ブロックへの前記複数の基準電圧の供給を遮断するか否かを各メモリバンクごとに別個に切り替える請求項１１に記載のキャッシュメモリ。
【請求項１３】
同時にアクセスされる複数のウェイのデータを一つのメモリバンクに格納する請求項１２に記載のキャッシュメモリ。
【請求項１４】
前記不揮発性メモリは、ＭＲＡＭ（Magnetoresistive RAM）を含む請求項１１乃至１３のいずれかに記載のキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムおよびキャッシュメモリに関する。
【背景技術】
【０００２】
一部の回路ブロックの電源電圧を遮断して消費電力の低減を図る技術が提案されている。例えばこの技術を利用して、ＳＲＡＭ（Static RAM）内の電源を段階的に遮断しようとすると、ＳＲＡＭは電源を遮断すると、保持しているデータが消失してしまうため、事前にＳＲＡＭ内のデータを不揮発性メモリに待避させなければならず、電源遮断の制御が複雑になる。また、ＳＲＡＭの他に、電源遮断用に不揮発性メモリが必要となり、回路規模が増えてしまう。
【０００３】
ＳＲＡＭは、高速動作が可能であるが、単位セル当たりの面積が大きく、消費電力も大きい。しかも、ＳＲＡＭは揮発性メモリであるため、待機時にも電力を消費してしまう。
【０００４】
最近、高速の不揮発性メモリの開発が進められており、STT-MRAM（Spin Transfer Torque Magnetoresistive RAM）などが注目されている。STT-MRAMなどの一部の不揮発性メモリは、ＳＲＡＭよりも消費電力が少ないが、動作上複数の電源電圧を必要とする場合がある。これらの複数の電源電圧は、不揮発性メモリ内で常に使用されているわけではないため、何らかの消費電力の低減処理を図るのが望ましい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１９２２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、複数の電源電圧を使用する不揮発性メモリに対して効率的な電源管理を行うことができるメモリシステムおよびキャッシュメモリを提供するものである。
【課題を解決するための手段】
【０００７】
本実施形態によれば、それぞれ異なる基準電圧を使用する複数の回路ブロックを含む不揮発性メモリと、
前記不揮発性メモリ内の前記複数の回路ブロックのそれぞれに対して、対応する基準電圧の供給を遮断するか否かを切り替える電源遮断切替部と、
前記複数の回路ブロックの動作頻度、前記複数の回路ブロックの回路規模、前記複数の回路ブロックの待機電力、および前記電源遮断切替部の回路規模の少なくとも一つに基づいて、前記電源遮断切替部の切替を制御する電源遮断制御部と、を備えるメモリシステムが提供される。
【図面の簡単な説明】
【０００８】
【図１】一実施形態によるメモリシステムの概略構成を示すブロック図。
【図２】電源管理部における状態遷移図。
【図３】図１のキャッシュメモリ１内のデータキャッシュ部２の概略的なレイアウト図。
【図４】初期値レジスタ１０に記憶される初期パラメータの一例を示す図。
【図５】本実施形態によるキャッシュメモリ１の詳細なブロック図。
【図６】電源遮断切替部４の詳細な構成を示す回路図。
【図７】レベルシフタ４６の一例を示す回路図。
【図８】アドレスデコーダ３１の内部構成の一例を示す回路図。
【図９】図３の読出し用ビット線ドライバ３４と書込み用ビット線ドライバ３５からなるビット線電圧制御部９の回路図。
【図１０】センスアンプ３３周辺の回路図。
【図１１】（ａ）〜（ｄ）はメモリバンクとウェイの関係を示す図、
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、メモリシステムおよびキャッシュメモリ内の特徴的な構成および動作を中心に説明するが、メモリシステムおよびキャッシュメモリには以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
【００１０】
図１は一実施形態によるメモリシステムの概略構成を示すブロック図である。図１のメモリシステムは、より具体的にはキャッシュメモリの主要部の構成を示している。図１のキャッシュメモリ１は、データキャッシュ部２と、タグ部３と、電源遮断切替部４と、電源遮断切替情報保持部（ＰＭＲ：Power Management Register）５と、ＶＵＡＤ（Valid, Used, Allocate, Dirty）コントローラ６と、電源遮断制御部７とを備えている。
【００１１】
図１のキャッシュメモリ１は、例えば二次キャッシュ（Ｌ２キャッシュ）である。なお、図１のキャッシュメモリ１を、Ｌ２キャッシュ以外の高次のキャッシュメモリに適用してもよい。
【００１２】
データキャッシュ部２は、キャッシュライン単位でデータを格納する。データキャッシュ部２は、複数のメモリバンクに分かれており、各メモリバンクが複数の電源電圧を利用する。図１では、４つのメモリバンクに分かれている例を示しているが、メモリバンクの数には特に制限はない。後述するように、本実施形態では、各メモリバンクごとに独立して、各メモリバンク内で使用する複数の電源電圧の遮断制御を行う。
【００１３】
データキャッシュ部２は、不揮発性メモリで構成されている。本実施形態では、データキャッシュ部２をSTT-SRAMで構成する例を説明するが、STT-SRAM以外の種々の不揮発性メモリを用いてもよい。STT-MRAMは、電子のスピン（自転）による磁気モーメントを利用して磁化反転を起こすスピン注入メモリであり、書込み電力や書込み遅延がこれまで研究開発されてきた不揮発性メモリに対し極めて小さいことを特徴とする。STT-MRAMは、SRAMに匹敵する高速動作（アクセス速度が１０ns以下）と高い書き換え耐性（１０１５以上）を有し、低電力向けのCMOS ロジックプロセスとの高い親和性があり、キャッシュ用途に適している。
【００１４】
タグ部３は、データキャッシュ部２に格納されるデータのアドレス情報を格納する。タグ部３は、不揮発性メモリで構成してもよいし、ＳＲＡＭ等の揮発性メモリで構成してもよいが、高速のメモリで構成するのが望ましい。
【００１５】
電源遮断切替部４は、データキャッシュ部２の各メモリバンクごとに、各メモリバンクが使用する複数の電源電圧の遮断制御を行う。電源遮断切替部４は、後述するように、各メモリバンクごとに、複数の電源電圧のそれぞれの供給／遮断を切り替える複数の電源遮断スイッチを有する。これら電源遮断スイッチは、後述するように、対応するメモリバンクの動作状態に応じて、段階的にオン／オフされる。
【００１６】
電源遮断切替情報保持部５は、後述する電源遮断制御部７が設定した電源遮断切替部４の電源遮断切替情報を保持する。
【００１７】
ＶＵＡＤコントローラ６は、後述するように、タグコントローラの内部に設けられ、プロセッサコアからアクセス要求のあったアドレスがタグ部３に格納されているアドレスに一致するか否かのヒット／ミス判定と、タグ部３に格納するアドレスの書込み制御とを行う。
【００１８】
電源遮断制御部７は、電源管理部（ＰＭＵ：Power Management Unit）８と、制御部（Ｃｔｒｌ）９と、初期値レジスタ（Ｉｎｉｔ）１０とを有する。電源遮断制御部７は、後述するように、各メモリバンクごとに、対応するメモリバンク内の複数の回路ブロックの動作頻度、複数の回路ブロックの回路規模、複数の回路ブロックの待機電力、および電源遮断切替部４の回路規模の少なくとも一つに基づいて、電源遮断切替部４を切替制御する。より詳細には、電源遮断制御部７は、電源遮断切替部４の電源遮断切替情報を生成して、この情報を電源遮断切替情報保持部５に保持する。電源遮断切替部４は、この電源遮断切替情報に基づいて、対応するメモリバンクにおける複数の電源遮断スイッチのオン／オフを行う。
【００１９】
電源管理部８は、データキャッシュ部２を複数に分割したメモリバンクごとに電源の遮断制御を行う。電源管理部８の詳細な構成および動作は後述する。
【００２０】
初期値レジスタ１０は、電源管理部８が行う電源管理の初期パラメータを記憶する。制御部９は、初期値レジスタ１０に記憶されている初期パラメータを電源管理部８に設定する。初期パラメータを任意に変更することで、電源管理部８が行う電源管理は、任意に再構成可能となる。すなわち、電源管理部８は、初期パラメータに応じた電源管理を行う。
【００２１】
電源管理部８は、データキャッシュ部２が使用する複数の電源電圧のうち、例えば４つの電源電圧Ｖread、Ｖwrite、Ｖdda、Ｖddcと、接地電圧Ｖsscとの遮断制御を行う。なお、電源管理部８が遮断制御を行う電源電圧の種類は、これら４つの電源電圧に限定されない。本明細書では、電源遮断制御部７が供給／遮断する電源電圧と接地電圧を総称して基準電圧と呼ぶこともある。
【００２２】
電源電圧Ｖreadは、データキャッシュ部２からのデータ読み出し時のビット線電圧を生成するのに用いられる電源電圧である。電源電圧Ｖwriteは、データキャッシュ部２へのデータ書き込み時のビット線電圧を生成するのに用いられる電源電圧である。電源電圧Ｖddaは、アドレスデコーダが駆動するワード線の電位を設定するのに用いられる電源電圧である。電源電圧Ｖddcは、データキャッシュ部２のタイミング生成、アドレスデコード、ビット線選択などのデータキャッシュ部２の内部回路で使用する各種信号を生成するのに用いられる電源電圧である。
【００２３】
電源管理部８は、例えば図２に示す状態遷移図に従って、上述した４つの電源電圧Ｖread、Ｖwrite、Ｖdda、Ｖddcと接地電圧Ｖsscとの遮断制御を行うステートマシンを有する。
【００２４】
電源管理部８は、データキャッシュ部２が有する複数のメモリバンクのそれぞれごとに電源管理を行うため、図２の状態遷移図は、一つのメモリバンクに対応したものである。すなわち、電源管理部８は、各メモリバンクごとに、それぞれ別個の状態遷移図に基づいて電源管理を行う。本実施形態では、電源管理部８が、いずれのメモリバンクも、図２と同様の状態遷移図に基づいて電源管理を行う例を説明するが、各メモリバンクごとに異なる状態遷移図に基づいて電源管理を行ってもよい。
【００２５】
図２の状態遷移図は、リード状態（Ｒ１〜４）２１と、ライト状態（Ｗ１〜４）２２と、第１遮断状態２３と、第２遮断状態２４と、第３遮断状態２５と、初期状態２６とを有する。
【００２６】
リード状態２１とは、データキャッシュ部２内の一つのメモリバンクからデータを読み出す状態である。リード状態２１では、上述した４つの電源電圧のうち、Ｖwriteを除く３つの電源電圧Ｖread、Ｖdda、Ｖddcと接地電圧Ｖsscとが対応するメモリバンクに供給される。
【００２７】
ライト状態２２とは、データキャッシュ部２内の一つのメモリバンクにデータを書き込む状態である。ライト状態２２では、上述した４つの電源電圧のうち、Ｖreadを除く３つの電源電圧Ｖwrite、Ｖdda、Ｖddcと接地電圧Ｖsscとが対応するメモリバンクに供給される。
【００２８】
第１遮断状態２３とは、リード状態２１またはライト状態２２が終了した時点で遷移する状態であり、上述した４つの電源電圧のうちＶddcのみと接地電圧Ｖsscとが対応するメモリバンクに供給され、Ｖread、Ｖwrite、Ｖddaの供給は第１遮断状態２３に遷移した時点で遮断される。
【００２９】
第２遮断状態２４とは、第１遮断状態２３に遷移してから所定期間（例えば２０ｎｓ）が経過すると遷移する状態であり、上述した４つの電源電圧のすべての供給が遮断され、接地電圧Ｖsscのみが対応するメモリバンクに供給される状態である。
【００３０】
第３遮断状態２５とは、第２遮断状態２４に遷移してから所定期間（例えば１００ｎｓ）が経過すると遷移する状態であり、上述した４つの電源電圧と接地電圧Ｖsscのすべての供給が遮断される状態である。この第３遮断状態２５は通常状態であり、データキャッシュ部２へのアクセスを行っていない場合には第３遮断状態２５に留まることになる。データキャッシュ部２が不揮発性メモリで構成されている場合、何も電源電圧を供給しなくてもデータを保持できるため、本実施形態では、第３遮断状態２５を通常状態としている。
【００３１】
初期状態２６は、初期値レジスタ１０に記憶された初期パラメータを制御部９が電源管理部８に設定した直後の状態である。初期パラメータの設定が終わると、初期状態２６から第３遮断状態２５に遷移し、データキャッシュ部２に対する書込みや読出しを開始するまで第３遮断状態２５に留まる。データキャッシュ部２に対する読出しを行う場合は、第３遮断状態２５からリード状態２１に遷移し、読出しが終了すると、第１遮断状態２３から第２遮断状態２４を経由して第３遮断状態２５に復帰する。また、データキャッシュ部２に対する書込みを行う場合は、第３遮断状態２５からライト状態２２に遷移し、書込みが終了すると、同様に、第１遮断状態２３から第２遮断状態２４を経由して第３遮断状態２５に復帰する。
【００３２】
第１遮断状態２３または第２遮断状態２４にいる間に、新たな読出しや書込みを開始する際には、リード状態２１やライト状態２２に遷移することになる。
【００３３】
電源管理部８は、タイマを用いて、第１遮断状態２３に留まっている時間と第２遮断状態２４に留まっている時間とを計測する。タイマ計測を行う時間、すなわち各状態に遷移するのに要する時間は任意に設定変更できるようにしてもよい。また、メモリバンクごとにタイマ計測を行う時間を変えてもよい。
【００３４】
本実施形態では、電源電圧の供給を遮断するにあたって、オーバーヘッドの小さい電源電圧を優先して遮断するようにしている。ここで、オーバーヘッドの大小は、データキャッシュ部２内のそれぞれ異なる種類の電源電圧を使用する複数の回路ブロックの動作頻度、複数の回路ブロックの回路規模、複数の回路ブロックの待機電力、および後述する電源遮断スイッチの回路規模の少なくとも一つに基づいて判断される。すなわち、動作頻度が低い回路ブロックほど、オーバーヘッドが小さいと判断される。また、回路規模が小さい回路ブロックほど、オーバーヘッドが小さいと判断される。同様に、待機電力が大きい回路ブロックほど、オーバーヘッドが小さいと判断される。また、電源遮断スイッチの回路規模が小さいほど、オーバーヘッドが小さいと判断される。
【００３５】
電源電圧のオーバーヘッドが大きくなる要因としては、より具体的には、電源電圧が供給される回路ブロックの電源経路に寄生するキャパシタが大きい場合、電源電圧の供給／遮断を切り替える電源遮断スイッチのゲート容量が大きい場合、または電源電圧の供給をいったん遮断した後に、電源電圧の供給を再開しようとしたときに、電源電圧が所望の電圧になるまでの遅延時間が長い場合などが考えられる。
【００３６】
オーバーヘッドの大きい電源電圧を遮断すると、いったん遮断してから再び電源電圧を供給する際に、電源電圧が所望の電圧になるのに時間がかかってしまい、キャッシュメモリ１のアクセスが遅れてしまう。そこで、本実施形態では、オーバーヘッドの小さい電源電圧を優先して遮断するようにしている。
【００３７】
上述した４つの電源電圧Ｖread、Ｖwrite、Ｖdda、Ｖddcと接地電圧Ｖsscとの中では、ＶreadとＶwriteのオーバーヘッドが最も小さいため、本実施形態では、ＶreadとＶwriteの供給を最優先で遮断し、次にオーバーヘッドの小さいＶddcの供給を遮断し、次にオーバーヘッドの小さいＶddaの供給を遮断し、最後に最もオーバーヘッドの大きいＶsscを遮断する。
【００３８】
図２の状態遷移図における各状態で、４種類の電源電圧と接地電圧Ｖsscの供給／遮断をどのように切り替えるかは、初期値レジスタ１０に記憶されている初期パラメータで任意に変更することができる。よって、電源管理部８におけるデータキャッシュ部２の電源管理は、初期パラメータにより、各メモリバンクごとに再構成可能である。
【００３９】
図３は図１のキャッシュメモリ１内のデータキャッシュ部２の概略的なレイアウト図である。上述したように、データキャッシュ部２は複数のメモリバンクに分かれているが、図３はそのうちの一つのメモリバンクを示している。図３のメモリバンクは、ほぼ中央に配置されたアドレスデコーダ３１と、その両側に４個ずつ配置されたサブアレイ領域３２と、アドレスデコーダ３１の両側に配置されたセンスアンプ３３、読出し用ビット線ドライバ３４、および書込み用ビット線ドライバ３５を有する。また、メモリバンクの左右端には、電源遮断切替部４を構成する電源遮断スイッチＰＳ０〜ＰＳ７が配置されている。これらの各領域の配置は一例であり、任意に変更して構わない。また、サブアレイ領域３２の数も図３に示したものに限定されない。
【００４０】
アドレスデコーダ３１は、プロセッサからアクセス要求のあったアドレスをデコードして、特定のワード線を駆動する。ワード線は、アドレスデコーダ３１の左右に配置されたサブアレイ領域３２の左右端まで延びている。アドレスデコーダ３１を各メモリバンクの中央に配置することで、ワード線上の信号遅延を均一化させることができる。
【００４１】
本実施形態による電源遮断切替部４は、各メモリバンクごとに、各メモリバンクが使用する複数の電源電圧の遮断制御を行う。電源遮断切替部４内の複数の電源遮断スイッチＰＳ０〜ＰＳ７は、図３に示すように、２つに分けられて、メモリバンクの左右端に一つずつ配置されている。このように、一つのメモリバンクの両側に電源遮断スイッチＰＳ０〜ＰＳ７を配置することで、電源ラインの長さを短くでき、寄生キャパシタを削減できる。電源遮断スイッチＰＳ０〜ＰＳ７のそれぞれは、対応する各回路ブロックの回路規模に応じたトランジスタサイズを有する。より詳細には、回路規模の大きい回路ブロックに電源電圧を供給する電源遮断スイッチは、トランジスタサイズをより大きくしている。
【００４２】
図３の例では、メモリバンクの左右端にそれぞれ、８つの電源遮断スイッチＰＳ０〜ＰＳ７を配置している。電源遮断スイッチＰＳ０は、接地電圧ＶSSCCの供給／遮断を切り替えるスイッチである。電源遮断スイッチＰＳ１〜４はそれぞれ、サブアレイ１〜４の電源電圧Ｖddaの供給／遮断を切り替えるスイッチである。電源遮断スイッチＰＳ５は、センスアンプ３３等に供給される電源電圧Ｖddcの供給／遮断を切り替えるスイッチである。電源遮断スイッチＰＳ６は、読出し用のビット線ドライバの電源電圧Ｖreadの供給／遮断を切り替えるスイッチである。電源遮断スイッチＰＳ７は、書込み用のビット線ドライバの電源電圧Ｖwriteの供給／遮断を切り替えるスイッチである。上述したように、これら電源遮断スイッチＰＳ０〜ＰＳ７のそれぞれは、実際には対応する回路ブロックの回路規模に応じたトランジスタサイズを有する。
【００４３】
図４は初期値レジスタ１０に記憶される初期パラメータの一例を示す図である。図４には、状態stateと、供給される電源電圧の種類と、電源遮断スイッチＰＳ０〜７の状態との対応関係が示されている。１と記載された箇所は、対応する電源遮断スイッチをオンして電源電圧を供給することを示し、空欄は対応する電源遮断スイッチをオフして電源電圧を遮断することを示している。図４の一比較例は、電源遮断スイッチＰＳ０〜７をすべてオンして常時電源電圧を供給する例を示している。
【００４４】
電源管理部８は、図４に示す初期パラメータを任意に変更することで、各状態で供給または遮断される電源電圧の種類を任意に制御できる。
【００４５】
図５は本実施形態によるキャッシュメモリ１の詳細なブロック図である。図５のキャッシュメモリ１は、キャッシュメモリ１を制御するキャッシュロジック部３１の構成を詳細に示している。キャッシュロジック部３１は、タグコントローラ（ＴＣＴＲＬ）３２と、データキャッシュコントローラ（ＤＣＴＲＬ）３３と、ＣＰＵインタフェース部（ＣＩＦ）３４と、メモリインタフェース部（ＭＩＦ）３５とを有する。
【００４６】
タグコントローラ３２は、図１に示したＶＵＡＤコントローラ６と、２：１セレクタ３６とを有する。ＶＵＡＤコントローラ６は、ヒット／ミス判定を行うとともに、タグ部３へのタグデータの書き込み制御を行う。２：１セレクタ３６は、プロセッサからアクセス要求のあったタグデータと、キャッシュミス時にメインメモリから読み出したデータとのいずれかを選択する。２：１セレクタ３６は、キャッシュミス時にメインメモリから読み出したデータを、プロセッサからアクセス要求のあったタグデータよりも優先して選択する。
【００４７】
データキャッシュコントローラ３３は、図１に示した電源遮断制御部７の他に、１：２セレクタ３７を有する。
【００４８】
電源遮断制御部７内の電源管理部８は、複数の遮断順序制御部ＦＳＭ０〜ＦＳＭ３と、各遮断順序制御部に対応して設けられる複数のメモリキュー（バッファ）ＭＱ０〜ＭＱ３とを有する。
【００４９】
遮断順序制御部ＦＳＭ０〜ＦＳＭ３は、初期パラメータにより状態遷移が設定される所定のステートマシンを用いて、複数の電源電圧の遮断順序を制御する。遮断順序制御部ＦＳＭ０〜ＦＳＭ３のそれぞれとメモリキューＭＱ０〜ＭＱ３のそれぞれは、各メモリバンクごとに設けられている。複数の遮断順序制御部ＦＳＭ０〜ＦＳＭ３のそれぞれは、対応するメモリバンクの電源遮断制御を行う。複数のメモリキューＭＱ０〜ＭＱ３のそれぞれは、対応するメモリバンクが電源遮断をしている間のデータを順に保持する。メモリキューＭＱ０〜ＭＱ３のそれぞれは、所定数のエントリを有し、すべてのエントリにデータが入ると、ＶＵＡＤコントローラ６は、ＣＰＵインタフェース部３４に対して、データのロードを中断するよう指示する。
【００５０】
メモリバンクへの電源電圧の供給が開始されると、対応するメモリキューＭＱ０〜ＭＱ３が保持しているデータが順にメモリバンクに伝送され、メモリバンクが一時的に電源遮断しても、不具合なくメモリバンクへのアクセスを行うことができる。
【００５１】
データキャッシュコントローラ３３内の１：２セレクタ３７は、読み出し時には、データキャッシュ部２から読み出したデータとアドレスとをＣＰＵインタフェース部３４に伝送し、キャッシュデータを追い出す際に、そのデータがダーティであれば、データキャッシュ部２から読み出したデータをメインメモリに書き込むべく、メモリインタフェース部３５に伝送する。
【００５２】
ＣＰＵインタフェース部３４は、ＩＱバッファ４１とＯＱバッファ４２とを有する。ＩＱバッファ４１は、プロセッサからのリード／ライト要求と、ライト時のアドレスおよびデータとをバッファリングしてタグコントローラ３２に伝送する。ＯＱバッファ４２は、リード時にデータキャッシュ部２から読み出したデータとアドレスをバッファリングして出力する。
【００５３】
メモリインタフェース部３５は、ミスバッファ４３と、フィルバッファ４４と、Ｗｂバッファ４５とを有する。ミスバッファ４３は、キャッシュミスしたデータとアドレスをバッファリングして出力する。フィルバッファ４４は、キャッシュミス時にメインメモリから読み出したデータとアドレスをバッファリングしてタグコントローラ３２に伝送する。Ｗｂバッファ４５は、キャッシュデータの追い出し時に、ダーティであれば、追い出したデータとアドレスをバッファリングして出力する。
【００５４】
図６は電源遮断切替部４の詳細な構成を示す回路図である。電源電圧ＶＭ、ＶＷ、ＶＲ、ＶＡはそれぞれ、Ｖddc、Ｖwrite、Ｖread、Ｖddaを生成するための元電圧であり、例えば不図示の電源回路にて生成される。電源遮断切替部４内の８つの電源遮断スイッチＰＳ０〜ＰＳ７は、それぞれ制御信号ｐｓ０〜ｐｓ７で制御される。これら制御信号ｐｓ０〜ｐｓ７は、レベルシフタ４６で電圧レベルが変換された後に、対応する電源遮断スイッチＰＳ０〜ＰＳ７のゲートに入力される。
【００５５】
電源遮断スイッチＰＳ０〜ＰＳ７は、ゲート酸化膜を厚くしたＨＶトランジスタを用いるのが望ましい。ゲート酸化膜を厚くすることで、電源電圧遮断時のリーク電流を抑制できる。図６では、電源遮断スイッチＰＳ［１：４］のゲート幅（例えば１０００μｍ程度）を基準として、電源遮断スイッチＰＳ６のゲート幅を２倍程度、電源遮断スイッチＰＳ７のゲート幅を８倍程度、電源遮断スイッチＰＳ５のゲート幅を２４倍程度、電源遮断スイッチＰＳ０のゲート幅を２８倍程度にする例を示しているが、これは一例であり、これに限定されるものではない。
【００５６】
電源電圧Ｖddc、Ｖdda、Ｖwriteは例えば１．２Ｖであり、電源電圧Ｖreadは例えば０．４Ｖである。よって、電源電圧Ｖdda、Ｖddc、Ｖwriteの供給／遮断を切り替える電源遮断スイッチＰＳ１〜ＰＳ４、ＰＳ５、ＰＳ７はＰＭＯＳトランジスタで構成され、電源電圧Ｖreadの供給／遮断を切り替える電源遮断スイッチＰＳ６はＮＭＯＳトランジスタで構成される。
【００５７】
ＰＭＯＳトランジスタは、基板電位Ｖbを１．２Ｖに設定することで、逆バイアス効果により、リーク電流をより抑制することができる。
【００５８】
電源遮断スイッチＰＳ０〜ＰＳ７は、各メモリバンクに対して、それぞれ一つ設けられるとは限らない。電源電圧Ｖddc、Ｖdda、Ｖwriteが供給される回路ブロックの回路規模等によって、電源遮断スイッチＰＳ０〜ＰＳ７のトランジスタサイズは異なっている。例えば、電源電圧Ｖddcの供給を受ける回路ブロックは、アドレスデコーダ３１やセンスアンプ３３、タイミング生成回路、ビット線選択回路など多岐にわたっているため、電源電圧Ｖddcの供給／遮断を切り替える電源遮断スイッチＰＳ５は、他の電源遮断スイッチよりもトランジスタサイズを大きくしている。その一方で、読出し用のビット線ドライバと書込み用のビット線ドライバに使用される電源電圧Ｖread、Ｖwriteは、ビット線を駆動する目的のみに用いられるため、Ｖread、Ｖwriteの供給／遮断を切り替える電源遮断スイッチＰＳ６，ＰＳ７は、他の電源遮断スイッチよりも小さいトランジスタサイズでよい。
【００５９】
電源遮断スイッチＰＳ０〜ＰＳ７の電源遮断時のリーク電流を抑制するために、本実施形態では、各電源遮断スイッチＰＳ０〜ＰＳ７のゲートにレベルシフタ４６を接続している。これらのレベルシフタ４６には、例えば３．３Ｖの電源電圧Ｖ33が供給されており、特にＰＭＯＳトランジスタからなる電源遮断スイッチＰＳ１〜ＰＳ４、ＰＳ５、ＰＳ７のオフ時のリーク電流を抑制することができる。
【００６０】
図７はレベルシフタ４６の一例を示す回路図である。図７のレベルシフタ４６は、例えば３．３Ｖの電源電圧Ｖ33と接地電圧ＶSSCとの間に直列接続されたＰＭＯＳトランジスタＱ１、Ｑ２およびＮＭＯＳトランジスタＱ３と、電源電圧Ｖ33と接地電圧ＶSSCとの間に直列接続されたＰＭＯＳトランジスタＱ４，Ｑ５およびＮＭＯＳトランジスタＱ６と、インバータ５１とを有する。トランジスタＱ１のゲートはレベルシフタ４６の出力ノードＶoutに接続されている。トランジスタＱ２，Ｑ３のゲートはレベルシフタ４６の入力ノードＶinに接続されている。トランジスタＱ４のゲートはトランジスタＱ２とＱ３の接続ノードに接続されている。入力ノードＶinをインバータ５１で反転した信号がトランジスタＱ５とＱ６のゲートに入力される。
【００６１】
図７のレベルシフタ４６により、入力ノードＶinに入力された信号を、例えば３．３Ｖ振幅の信号に変換して出力することができる。なお、レベルシフタ４６の回路構成は、図７に示したものには限定されない。
【００６２】
図８は図３のデコーダ３１、より詳細にはアドレスデコーダ３１の内部構成の一例を示す回路図である。図８のデコーダ３１は、プリデコード信号を生成するプリデコーダ５２と、アドレスバッファ５３とを有する。プリデコーダ５２には、電源遮断スイッチＰＳ５からの電源電圧Ｖddcと、電源遮断スイッチＰＳ０からの接地電圧Ｖsscとが供給される。アドレスバッファ５３には、電源遮断スイッチＰＳ１〜ＰＳ４のいずれかからの電源電圧Ｖddaと、電源遮断スイッチＰＳ０からの接地電圧Ｖsscとが供給される。各アドレスバッファ５３からワード線が出力される。図８では、電源遮断スイッチＰＳ［１：４］のゲート幅（例えば１０００μｍ程度）を基準として、電源遮断スイッチＰＳ５のゲート幅を１０倍程度、電源遮断スイッチＰＳ０のゲート幅を３０倍程度にする例を示しているが、これは一例であり、これに限定されるものではない。
【００６３】
アドレスバッファ５３は、例えば１ｍｍ以上の長さを持つワード線を駆動する必要があることから、アドレスバッファ５３を構成するトランジスタサイズを大きくしなければならない。このため、寄生容量が大きくなり、アドレスバッファ５３の電源電圧Ｖddaの供給／遮断のオーバーヘッドが大きくなるおそれがある。そこで、例えば２５６本のワード線ごとに、電源電圧Ｖddaの供給／遮断を切り替える電源遮断スイッチＰＳ１〜ＰＳ４を設けるのが望ましい。
【００６４】
プリデコーダ５２内の信号経路の寄生キャパシタはそれほど大きくないため、プリデコーダ５２を構成する各トランジスタのサイズをできるだけ小さくして、リーク電流をより減らすのが望ましい。本実施形態では、プリデコーダ５２には、電源遮断スイッチＰＳ５を介して電源電圧Ｖddcを供給している。電源電圧Ｖddcが供給される回路ブロックの回路規模は、電源電圧Ｖddaが供給される回路ブロックの回路規模よりもはるかに大きいため、本実施形態では、ＶddaをＶddcよりも先に遮断している。
【００６５】
図９は図３の読出し用ビット線ドライバ３４と書込み用ビット線ドライバ３５からなるビット線電圧制御部９の回路図である。図３では、読出し用ビット線ドライバ３４と書込み用ビット線ドライバ３５がそれぞれ別個の領域に配置されているが、実際には、図９に示すように、各ビット線ごとに、読出し用ビット線ドライバ３４と書込み用ビット線ドライバ３５が隣接して配置されている。各ビット線は、ＢＬ［０］〜ＢＬ［２５５］とＳＬ［０］〜ＳＬ［２５５］が対になっている。一つのビット線は、図９に示すように、電源電圧Ｖwriteと接地電圧Ｖssccとの間に直列接続されるＰＭＯＳトランジスタＱ７およびＮＭＯＳトランジスタＱ８と、電源電圧Ｖreadと接地電圧Ｖssccとの間に直列接続されるＰＭＯＳトランジスタＱ９およびＮＭＯＳトランジスタＱ１０と、電源電圧ＶwriteとＮＭＯＳトランジスタＱ１０のドレインとの間に接続されるＰＭＯＳトランジスタＱ１１とを有する。トランジスタＱ７，Ｑ８の接続ノードに、ビット線ＢＬ［０］〜ＢＬ［２５５］がそれぞれ接続され、トランジスタＱ９〜Ｑ１１の接続ノードに、ビット線ＳＬ［０］〜ＳＬ［２５５］がそれぞれ接続されている。なお、図９では、電源遮断スイッチＰＳ６のゲート幅（例えば２０００μｍ程度）を基準として、電源遮断スイッチＰＳ７のゲート幅を２倍程度、電源遮断スイッチＰＳ０のゲート幅を１５倍程度にする例を示しているが、これは一例であり、これに限定されるものではない。
【００６６】
データキャッシュ部２に対する読出しや書込みを行う場合、１本のワード線の駆動に加えて、データビット数分のビット線対の駆動も行う必要がある。各ビット線対は、数１００μｍから数ｍｍの長さになり、ビット線対の数も多いため、これらを駆動するにはかなりの電力を消費する。
【００６７】
キャッシュメモリ１の場合、読出しと書込みの頻度に大きな差があり、また、読出しと書込みはそれぞれ、連続して行われる傾向があるため、読出し用の電源電圧と書込み用の電源電圧を分離することで、それぞれの動作に必要な電源電圧のみを供給することができる。また、STT-MRAMを始めとする不揮発性メモリでは、読出し電圧と書込み電圧を別個に制御することで、読出しディスターブを回避することができる。読出し用の電源電圧が書込み用の電源電圧より十分に小さい場合、読出し用の電源電圧の供給／遮断を切り替える電源遮断スイッチはＮＭＯＳで構成するのが望ましい。
【００６８】
図１０はセンスアンプ３３周辺の回路図である。センスアンプ３３には、複数のビット線対の中から一つを選択するカラムセレクタ５４が接続されている。センスアンプ３３は、センシング感度を確保するために、ビット線の読出し電圧よりも高い電圧（例えばＶddc）が印加される。センスアンプ３３の個数は、少なくともＩ／Ｏビット数分以上必要である。センスアンプ３３の数は、メモリセルの個数に比べて少なく、また、センシング動作をしていない間はセンスアンプ３３はダイナミックに電力を消費しないため、電源電圧Ｖddcに接続する。なお、図１０では、電源遮断スイッチＰＳ５のゲート幅（例えば１００００μｍ程度）を基準として、電源遮断スイッチＰＳ０７のゲート幅を３倍程度にする例を示しているが、これは一例であり、これに限定されるものではない。
【００６９】
図５に示したように、本実施形態では、電源管理部８内の各遮断順序制御部が一つのメモリバンクの電源を管理する。すなわち、各遮断順序制御部が一つのメモリバンクに対応づけられている。よって、本実施形態によれば、一つのメモリバンクに複数のウェイのデータを格納することで、そのメモリバンクの電源が遮断されている場合には、そのメモリバンクへのアクセス要求が発生したときに、そのアクセス要求についてのタグデータのヒット／ミス判定結果が得られる前に、そのメモリバンクへの電源供給を開始することができる。したがって、メモリバンクへの電源供給を停止していたことによるキャッシュアクセスの遅れが生じなくなる。
【００７０】
図１１（ａ）は従来のメモリバンクとウェイの関係を示す図である。図１１（ａ）の左側はタグ部３の構造を示し、図１１（ａ）の右側はデータキャッシュ部２の構造を示している。従来は図１１（ｃ）に示すようにアドレスの上位２ビットでウェイを選択し、その次の２ビットでメモリバンクを選択していた。このため、セットアソシエティブのキャッシュメモリ１の場合、複数のウェイのデータにアクセスするには、データキャッシュ部２内の複数の不揮発性メモリにアクセスする必要があった。
【００７１】
これに対して、図１１（ｂ）は本実施形態によるメモリバンクとウェイの関係を示す図である。図１１（ｂ）においても、左側はタグ部３の構造を示し、右側はデータキャッシュ部２の構造を示している。本実施形態では、図１１（ｄ）に示すようにアドレスの上位２ビットでメモリバンクを選択し、その次の２ビットでウェイを選択する。よって、セットアソシエティブのキャッシュメモリ１の場合、データキャッシュ部２内の一つの不揮発性メモリにアクセスすることで、複数のウェイにアクセス可能となる。
【００７２】
このため、本実施形態によれば、プロセッサからアクセス要求のあったアドレスを参照することで、タグアクセスによるヒット／ミス判定結果が得られる前に、アクセスすべきメモリバンクに対応する不揮発性メモリを特定でき、いち早く電源電圧の供給を開始することができる。
【００７３】
上述したように、本実施形態によれば、不揮発性メモリで構成されたデータキャッシュ部２が使用する複数の電源電圧を供給／遮断した際のオーバーヘッドを考慮に入れて、各電源電圧を段階的に遮断するため、キャッシュメモリ１のアクセス性能をそれほど低下させずに、消費電力を大幅に削減できる。より具体的には、オーバーヘッドが小さい電源電圧から優先的に遮断していくため、いったん遮断した電源電圧の供給を再開する際にも、それほど処理遅延を生じさせることなく、キャッシュメモリ１を利用できる。
【００７４】
また、電源電圧の供給／遮断の制御はステートマシンで行うため、ステートマシンに設定する初期パラメータを切り替えることで、電源電圧の供給／遮断の制御を任意に変更できる。
【００７５】
さらに、データキャッシュ部２の各メモリバンクごとに独立して電源電圧の供給／遮断の制御を行うことができる。よって、例えば、同時にアクセスされる複数のウェイのデータを一つのメモリバンクに格納しておけば、このメモリバンクへの電源電圧が遮断されていても、タグアクセスでのヒット／ミス判定結果が得られる前に、このメモリバンクへの電源電圧の供給を再開することで、キャッシュアクセスの速度低下を招くおそれがなくなる。
【００７６】
また、電源電圧の供給／遮断を行う複数の電源遮断スイッチのうち一部は、基板電圧を所定の電圧に設定したＰＭＯＳトランジスタで構成するため、逆バイアス効果により、オフ時のリーク電流を抑制できる。
【００７７】
上述した実施形態では、本実施形態をキャッシュメモリ１に適用した例を主に説明したが、本実施形態は、キャッシュメモリ１以外の用途にも適用可能である。例えば、不揮発性メモリを利用したメインメモリやワークメモリ等にも、本実施形態を適用可能である。不揮発性メモリの種類も、上述したSTT-MRAMに限定されるものではなく、種々の不揮発性メモリが適用可能である。
【００７８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７９】
１  キャッシュメモリ、２  データキャッシュ部、３  タグ部、４  電源遮断切替部、５  電源遮断切替情報保持部、６  ＶＵＡＤコントローラ、７  電源遮断制御部、８  電源管理部、９  制御部、１０  初期値レジスタ、３１  キャッシュロジック部、３２  タグコントローラ、３３  データキャッシュコントローラ、３４  ＣＰＵインタフェース部、３５  メモリインタフェース部、４１  ＩＱバッファ、４２  ＯＱバッファ
【図１】
2016062503.tif 000003
【図２】
2016062503.tif 000004
【図３】
2016062503.tif 000005
【図４】
2016062503.tif 000006
【図５】
2016062503.tif 000007
【図６】
2016062503.tif 000008
【図７】
2016062503.tif 000009
【図８】
2016062503.tif 000010
【図９】
2016062503.tif 000011
【図１０】
2016062503.tif 000012
【図１１】
2016062503.tif 000013