(57)【特許請求の範囲】
【請求項１】
不揮発性メモリと、
書込みパルスにより前記不揮発性メモリに対する書き込み処理を行うメモリ制御部と、
前記不揮発性メモリへの書込みを行う第１書込みモードと、前記第１書込みモードよりも消費電力が多く、かつ前記第１書込みモードよりも高速に前記不揮発性メモリへの書込みを行う第２書込みモードと、のいずれかを選択し、前記第１書込みモードが選択されると、前記不揮発性メモリへのアクセス制御に用いられるクロック信号の１周期より短くなるように前記書込みパルスのパルス幅を設定する書込みパルス制御部と、を備える半導体記憶装置。
【請求項２】
前記書込みパルスは、第１書込みパルスと、前記第１書込みパルスよりもパルス幅が長い第２書込みパルスとを含んでおり、
前記書込みパルス制御部は、前記第１書込みモードが選択されると、前記第２書込みパルスのパルス幅が前記クロック信号の１周期よりも短ければ、前記第２書込みパルスを前記書込みパルスとして選択し、前記第２書込みパルスのパルス幅が前記クロック信号の１周期よりも長ければ、前記第１書込みパルスを前記書込みパルスとして選択する請求項１に記載の半導体記憶装置。
【請求項３】
前記書込みパルス制御部は、前記第２書込みモードが選択されると、前記第１書込みパルスを前記書込みパルスとして選択する請求項２に記載の半導体記憶装置。
【請求項４】
前記書込みパルス制御部は、プロセッサの動作状態を示す状態信号に基づいて、前記第１書込みモードまたは前記第２書込みモードを選択する請求項１乃至３のいずれかに記載の半導体記憶装置。
【請求項５】
前記書込みパルス制御部は、
前記状態信号に基づいて、それぞれパルス幅が異なる複数のパルス信号の中から一つを選択するパルス選択器と、
前記状態信号に基づいて、それぞれ電圧レベルが異なる複数の電圧の中から一つを選択する電圧選択器と、を有し、
前記書込みパルス制御部は、前記パルス選択器で選択されたパルス信号と、前記電圧選択器で選択された電圧とに基づいて、前記書込みパルスを制御する請求項４に記載の半導体記憶装置。
【請求項６】
前記不揮発性メモリは、複数のメモリ素子を有し、
前記書込みパルス制御部は、前記複数のメモリ素子のそれぞれに対して直列接続され、前記パルス選択器で選択されたパルス信号に基づいてオンまたはオフするトランジスタを有し、
前記電圧選択器で選択された電圧は、前記トランジスタがオンの場合に、前記トランジスタに対応する前記メモリ素子に印加される請求項５に記載の半導体記憶装置。
【請求項７】
前記書込みパルス制御部は、
前記不揮発性メモリの動作状態を監視するメモリ動作モニタを有し、
前記パルス選択器は、前記メモリ動作モニタによる監視結果と前記状態信号とに基づいて、前記複数のパルス信号の中から一つを選択し、
前記電圧選択器は、前記メモリ動作モニタによる監視結果と前記状態信号とに基づいて前記複数の電圧の中から一つを選択する請求項５または６に記載の半導体記憶装置。
【請求項８】
前記メモリ動作モニタは、
過去ｎ回（ｎは１以上の整数）の前記不揮発性メモリに対するアクセス間隔および過去ｍ回（ｍは１以上の整数）のアクセス分布の少なくとも一方を記憶するアクセス履歴記憶部と、
前記ｎ回のアクセス間隔および前記ｍ回のアクセス分布の少なくとも一方を有する前記監視結果と前記状態信号とに基づいて、前記パルス選択器で選択すべきパルス信号を決定するパルス決定器と、を有する請求項７に記載の半導体記憶装置。
【請求項９】
ブロック単位でアクセス可能で、それぞれが前記不揮発性メモリを有する複数のメモリブロックを備え、
前記書込みパルス制御部は、前記複数のメモリブロックのそれぞれごとに、対応するメモリブロックの動作状態とプロセッサの動作状態とに基づいて、前記書込みパルスを制御する請求項１乃至８のいずれか１項に記載の半導体記憶装置。
【請求項１０】
キャッシュメモリを備え、
前記キャッシュメモリは、
キャッシュデータを記憶する前記不揮発性メモリを有するキャッシュデータ部と、
前記キャッシュデータのアドレス情報を記憶する前記不揮発性メモリを有するタグ部と、を有し、
前記書込みパルス制御部は、前記書込みパルスを用いて前記キャッシュデータ部および前記タグ部への書込みを行う請求項１乃至９のいずれかに記載の半導体記憶装置。
【請求項１１】
キャッシュメモリを備え、
前記キャッシュメモリは、
キャッシュデータを記憶する前記不揮発性メモリを有するキャッシュデータ部と、
前記キャッシュデータのアドレス情報を記憶する揮発性メモリを有するタグ部と、を有し、
前記書込みパルス制御部は、前記書込みパルスを用いて前記キャッシュデータ部への書込みを行う請求項１乃至９のいずれかに記載の半導体記憶装置。
【請求項１２】
前記キャッシュメモリに格納されるべきデータが事前に格納されるライトバッファを備え、
前記書込みパルス制御部は、前記ライトバッファの占有率とプロセッサの状態を示す状態信号とに基づいて、前記書込みパルスを制御する請求項１０または１１に記載の半導体記憶装置。
【請求項１３】
前記キャッシュメモリは、複数のメモリブロックを有し、
前記書込みパルス制御部は、前記複数のメモリブロックの動作状態と前記状態信号とに基づいて、前記複数のメモリブロックに対する前記書込みパルスを制御する請求項１２に記載の半導体記憶装置。
【請求項１４】
前記不揮発性メモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）である請求項１乃至１３のいずれかに記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
プロセッサの電力低減技術として、ＤＶＦＳ（dynamic voltage frequency scaling ）技術が知られている。ＤＶＦＳ技術は、プロセッサの負荷に応じて、動作電圧を上下させる技術である。プロセッサの負荷が重い時は、動作電圧を上昇させて、プロセッサのクロック周波数を上げることで高速処理する。一方、負荷が軽い時は、電圧を下げてクロック周波数を下げ、消費電力を低減させる。
【０００３】
ＤＶＦＳ技術をＤＲＡＭ（Dynamic Random Access Memory）やＭＲＡＭ（Magnetoresistive RAM）などのメモリ回路に適用する際、メモリ回路に供給する電圧をプロセッサに供給する電圧と連動させると、動作マージンの低下や動作不良を起こすおそれがあることが知られている。その問題を回避するために、プロセッサコアに供給される電圧はＤＶＦＳ技術を用いて負荷に応じた上げ下げを行う一方、メモリ回路に供給する電圧は負荷によらず一定とする手法もある。
【０００４】
ＭＲＡＭの書込み電圧は、書込み時間を短くすると、急激に上昇することが知られている。上述のように、演算コアの動作状態にかかわらず、ＭＲＡＭへの書込み電圧を常に一定にする場合、高負荷状態の演算コアに合わせて書込み電圧を常に高くすると、演算コアが軽負荷状態になっても、書込み電圧は高いままとなり、ＭＲＡＭでの消費電力が増大してしまう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２６６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、ＭＲＡＭのような書込みパルス幅が短いほど書込み電流が増大する不揮発性メモリを使用しても、アクセス性能を低下させずに消費電力を低減できる半導体記憶装置を提供することである。
【課題を解決するための手段】
【０００７】
本実施形態では、不揮発性メモリを備えた半導体記憶装置であって、書込みパルスのパルス幅の時間内に前記不揮発性メモリに対する書き込み処理を行うメモリ制御部と、低消費電力で前記不揮発性メモリへの書込みを行う第１書込みモードと、前記第１書込みモードよりも消費電力が多く、かつ前記第１書込みモードよりも高速に前記不揮発性メモリへの書込みを行う第２書込みモードと、のいずれかかを選択し、前記第１書込みモードが選択されると、前記不揮発性メモリへのアクセス制御に用いられるクロック信号の１周期より短くなるように前記書込みパルスのパルス幅を設定する書込みパルス制御部と、を備える半導体記憶装置が提供される。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態による半導体記憶装置１の概略構成を示すブロック図。
【図２】書込みパルスのパルス幅を説明する波形図。
【図３】グラフＧ１はＭＲＡＭの書込み時間と書込み電圧との対応関係を示し、グラフＧ２はＭＲＡＭの書込み時間と書込みエネルギとの対応関係を示す図。
【図４】不揮発性メモリ４内の一つのメモリ素子４ａ周辺のブロック図。
【図５】第２の実施形態による半導体記憶装置１の概略構成を示すブロック図。
【図６】メモリ動作モニタ３１の一具体例を示すブロック図。
【図７】第３の実施形態による半導体記憶装置１の概略構成を示すブロック図。
【図８】第３の実施形態によるメモリ動作モニタ３１の内部構成の第１例を示すブロック図。
【図９】第３の実施形態よるメモリ動作モニタ３１の内部構成の第２例を示すブロック図。
【図１０】プロセッサシステム４０の概略的なブロック図。
【図１１】図１０のキャッシュメモリ４２の内部構成の第１例を示すブロック図。
【図１２】図１０のキャッシュメモリ４２の内部構成の第２例を示すブロック図。
【図１３】図１１および図１２のキャッシュロジック部４６の内部構成の第１例を示すブロック図。
【図１４】キャッシュロジック部４６の内部構成の第２例を示すブロック図。
【図１５】キャッシュロジック部４６の内部構成の第３例を示すブロック図。
【図１６】図１０のキャッシュメモリ４２の内部構成の第３例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、半導体記憶装置内の特徴的な構成および動作を中心に説明するが、半導体記憶装置には以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
【００１０】
（第１の実施形態）
図１は第１の実施形態による半導体記憶装置１の概略構成を示すブロック図である。図１の半導体記憶装置１は、メモリ回路２と書込みパルス制御部３とを備えている。
【００１１】
メモリ回路２は、不揮発性メモリ４と、この不揮発性メモリ４に対する書込みおよび読出しを制御するメモリ制御部５とを有する。不揮発性メモリ４は、後述するように、書込みパルスが所定幅のときに書込みエネルギが最小になり、書込みパルスのパルス幅が所定幅より短いほど書込み電流が多くなる特性を持つものであり、代表的な一例はＭＲＡＭである。以下では、不揮発性メモリ４を、複数のＭＲＡＭセルからなるＭＲＡＭアレイで構成する例を説明する。
【００１２】
メモリ制御部５は、不揮発性メモリ４へのアクセス制御に用いられるクロック信号の１周期よりも短い書込みパルスのパルス幅の時間内に、不揮発性メモリ４に対する書込み処理を行う。
【００１３】
メモリ制御部５は、ワード線バッファ（ＷＬバッファ）６、ワード線デコーダ（ＷＬデコーダ）７、ワード線ドライバ（ＷＬドライバ）８、入力バッファ９、書込み回路１０、マルチプレクサ１１、ビット線ドライバ（ＢＬドライバ）１２、ビット線デコーダ（ＢＬデコーダ）１３、ビット線バッファ（ＢＬバッファ）１４、アンプ１５および出力バッファ１６を有する。
【００１４】
ＷＬバッファ６は、プロセッサからのロウアドレスをバッファリングする。ＷＬデコーダ７は、ＷＬバッファ６でバッファリングした後のロウアドレスをデコードする。ＷＬドライバ８は、アクセス対象のＭＲＡＭセルが接続されたワード線を駆動する。
【００１５】
入力バッファ９は、プロセッサから書込み要求のあったデータをバッファリングする。書込み回路１０は、書込み用の制御信号を生成する。マルチプレクサ１１は、プロセッサからの書込みデータと、ＭＲＡＭアレイから読み出したデータとの信号路を選択する。
【００１６】
ＢＬバッファ１４は、プロセッサからのカラムアドレスをバッファリングする。ＢＬデコーダ１３は、ＢＬバッファ１４でバッファリングした後のカラムアドレスをデコードする。ＢＬドライバ１２は、アクセス対象のＭＲＡＭセルが接続されたビット線を駆動する。
【００１７】
アンプ１５は、ＭＲＡＭアレイ４から読み出したデータをセンスする。出力バッファ１６は、アンプ１５でセンスしたデータをバッファリングして出力する。
【００１８】
図１の書込みパルス制御部３は、パルス供給部（パルス選択器）２１と電圧供給部（電圧選択器）２２とを有する。書込みパルス制御部３は、低消費電力で不揮発性メモリ４への書込みを行う第１書込みモードと、第１書込みモードよりも消費電力が多く、かつ第１書込みモードよりも高速で不揮発性メモリ４への書込みを行う第２書込みモードと、のいずれかを、プロセッサの動作状態により選択し、第１書込みモードが選択されると、不揮発性メモリ４へのアクセス制御に用いられるクロック信号の１周期より短くなるように書込みエネルギに基づいて書込みパルスのパルス幅を設定する。
【００１９】
より具体的には、書込みパルス制御部３は、低消費電力で不揮発性メモリ４への書込みを行う際（第１書込みモードの場合）には、書込みパルスのパルス幅をクロック信号の１周期を超えない範囲で可能な限り長くする。例えば、書込みパルスとして、第１書込みパルスと、第１書込みパルスよりもパルス幅が長い第２書込みパルスとが設けられていたとすると、書込みパルス制御部３は、低消費電力で不揮発性メモリ４への書込みを行う際には、クロック信号の１周期よりも第２書込みパルスのパルス幅が短ければ、第２書込みパルスを書込みパルスとして選択し、第２書込みパルスのパルス幅がクロック信号の１周期以上であれば、第１書込みパルスを書込みパルスとして選択する。
【００２０】
図２は書込みパルスのパルス幅を説明する波形図である。書込みパルス制御部３は、プロセッサの動作状態に応じて、書込みパルスのパルス幅を可変制御する。書込みパルスのパルス幅の期間内に不揮発性メモリ４への書込み処理が行われるため、高速書込を行う場合の書込みパルスｗ１のパルス幅は、低消費電力で書込みを行う場合の書込みパルスｗ２のパルス幅よりも短くする。
【００２１】
図２に示すように、不揮発性メモリ４へのアクセス制御に用いられるクロック信号の周波数は、プロセッサの動作状態に応じて変化する。図２には、３通りの周波数のクロック信号波形ｗ３、ｗ４、ｗ５が図示されている。クロック信号波形ｗ３、ｗ４、ｗ５の順に周波数が遅くなる。図２の破線は、書込みパルスｗ２のパルス幅を示している。
【００２２】
クロック信号の１周期内に不揮発性メモリ４への書込み処理が終わらないと、クロックの毎サイクルで書き込みができないため、書込みパルス制御部３は、書込みパルスのパルス幅をクロック信号の１周期よりも短くすることが望ましい。
【００２３】
不揮発性メモリ４として用いられるＭＲＡＭは、書込みパルスのパルス幅によって、書込み電圧と書込みエネルギが変化するという性質がある。図３のグラフＧ１はＭＲＡＭの書込み時間と書込み電圧との対応関係を示し、図３のグラフＧ２はＭＲＡＭの書込み時間と書込みエネルギとの対応関係を示している。
【００２４】
書込み時間は、書込みパルスのパルス幅と等価であり、パルス幅が短いほど、書込み時間も短くなる。また、図３のグラフＧ１の縦軸は書込み電圧であるが、縦軸を書込み電流としても、同様の特性となる。
【００２５】
図３のグラフＧ１に示すように、ＭＲＡＭでは、書込みパルスのパルス幅が狭くなるほど書込み電圧が増大する。また、図３のグラフＧ２に示すように、ＭＲＡＭでは、書込み時間によって書込みエネルギが変化し、書込みエネルギが最小となる所定の書込み時間から遠ざかるほど、書込みエネルギが増大する。特に、書込み時間が短いほど、すなわち書込みパルスのパルス幅が狭いほど、書込みエネルギの上昇度合が高くなる。
【００２６】
図３のグラフＧ１とグラフＧ２を考慮に入れると、ＭＲＡＭからなる不揮発性メモリ４への書き込み時の消費電力を削減するには、書込みパルスのパルス幅を短くするよりは、長めに設定した方が望ましいことがわかる。
【００２７】
図２のクロック信号ｗ３〜ｗ５に示すように、クロック信号の周波数は、プロセッサの動作状態に応じて変化するため、書込みパルスのパルス幅を書込みエネルギが最小となるように設定するのは容易ではない。そこで、書込みパルス制御部３は、低消費電力で不揮発性メモリ４への書込みを行う際（第１書込みモードの場合）には、書込みパルスの候補として予め用意した第１書込みパルスと第２書込みパルスのそれぞれのパルス幅をクロック信号の１周期と比較し、パルス幅が長い方の第２書込みパルスのパルス幅がクロック信号の１周期以内であれば、第２書込みパルスを書込みパルスとして選択する。また、第２書込みパルスのパルス幅よりもクロック信号の１周期の方が短ければ、第１書込みパルスを書込みパルスとして選択する。
【００２８】
例えば、図２のクロック信号ｗ３の場合、第２書込みパルスｗ２のパルス幅はクロック信号ｗ３の１周期よりも長いため、第１書込みパルスｗ１が書込みパルスとして選択される。クロック信号ｗ４の場合も同様である。一方、クロック信号ｗ５の場合は、第２書込みパルスｗ２のパルス幅よりもクロック信号ｗ５の１周期の方が長いため、第２書込みパルスｗ２が書込みパルスとして選択される。
【００２９】
次に、書込みパルス制御部３を構成する図１のパルス供給部２１と電圧供給部２２の内部構成を説明する。パルス供給部２１と電圧供給部２２には、プロセッサの動作状態を示す状態信号がプロセッサから供給される。パルス供給部２１と電圧供給部２２は、この状態信号を動作切替信号として用いて、動作状態を切り替える。
【００３０】
パルス供給部２１は、パルス幅の異なる複数のパルス信号を生成する複数のパルス生成器２３と、これら複数のパルス信号の中から一つを選択するパルス選択器２４とを有する。パルス選択器２４は、プロセッサからの状態信号に基づいて複数のパルス信号の中から一つを選択する。
【００３１】
電圧供給部２２は、外部から供給または内部で生成された複数の電圧の中から一つを選択する電圧選択器を有する。電圧選択器は、プロセッサからの状態信号に基づいて、複数の電圧の中から一つを選択する。
【００３２】
図４は不揮発性メモリ４内の一つのメモリ素子４ａ周辺のブロック図である。図４に示すように、メモリ素子４ａの一端には電圧供給部２２が接続され、メモリ素子４ａの他端にはトランジスタ４ｄのドレインが接続されている。トランジスタ４ｄのソースには電圧供給部２２が接続されている。また、トランジスタ４ｄのゲートにはＷＬドライバ８が接続されている。ＷＬドライバ８は、パルス供給部２１からパルスが供給されると、トランジスタ４ｄのゲートをハイレベルにして、トランジスタ４ｄをオンさせる。
【００３３】
図４のトランジスタ４ｄがオンすると、電圧供給部２２から供給された電圧がメモリ素子４ａの一端に印加される。これにより、メモリ素子４ａの両端に、トランジスタ４ｄがオンしている期間、書込みパルスが出現される。この書込みパルスにより、メモリ素子４ａへのデータの書き込みが行われる。
【００３４】
なお、図４では、１個のメモリ素子４ａと１個のトランジスタ４ｄで一つのメモリセル４ｂを構成する例を示したが、複数のメモリ素子４ａと複数のトランジスタ４ｄで一つのメモリセル４ｂを構成してもよい。
【００３５】
このように、第１の実施形態では、低消費電力で不揮発性メモリ４への書込みを行うと判断された場合（第１書込みモードの場合）には、クロック信号の１周期より短い範囲内で書込みエネルギに基づいて書込みパルスのパルス幅を設定するため、ＭＲＡＭのように、書込みパルス幅が短いほど書込み電圧が増大する不揮発性メモリ４を用いた場合でも、消費電力の低減が図れる。特に、プロセッサの動作状態に応じて、書込みパルスのパルス幅を選択するため、プロセッサの処理性能を低下させることなく、不揮発性メモリ４の消費電力を低減できる。
【００３６】
（第２の実施形態）
第２の実施形態は、プロセッサの動作状態だけでなく、不揮発性メモリ４の動作状態も考慮に入れて、書込みパルスのパルス幅を決定するものである。
【００３７】
図５は第２の実施形態による半導体記憶装置１の概略構成を示すブロック図である。図５の半導体記憶装置１は、図１と同様に、メモリ回路２と書込みパルス制御部３とを備えているが、書込みパルス制御部３の内部構成が図１とは異なっている。
【００３８】
図５の書込みパルス制御部３は、パルス供給部２１と電圧供給部２２の他に、切替制御部２６を有する。切替制御部２６は、プロセッサの動作状態を示す状態信号と、不揮発性メモリ４の動作状態とに基づいて、パルス供給部２１と電圧供給部２２の動作を切り替えるための動作切替信号を生成する。
【００３９】
より詳細には、図５の切替制御部２６は、メモリ動作モニタ３１と、状態信号生成器３２とを有する。メモリ動作モニタ３１は、不揮発性メモリ４のアクセス分布やアクセス頻度などの動作状態を監視し、監視結果を示す信号を生成する。状態信号生成器３２は、メモリ動作モニタ３１よる監視結果を示す信号とプロセッサの動作状態を示す状態信号とに基づいて、動作切替信号を生成する。生成された動作切替信号に応じて、パルス供給部２１はパルス信号の切替を行い、電圧供給部２２は電圧の切替を行う。
【００４０】
図６はメモリ動作モニタ３１の一具体例を示すブロック図である。図６のメモリ動作モニタ３１は、メモリアクセスの間隔を取得するメモリアクセスモニタ３４と、過去ｎ回（ｎは１以上の整数）のメモリアクセスの間隔を記憶するｎ個のアクセス間隔カウンタ（アクセス履歴記憶部）３５を有する。例えばｋ番目のアクセス間隔カウンタ３５は、ｋ回（ｋはｎ以下の自然数）前の不揮発性メモリ４へのアクセス間隔を記憶する。ｎ個のアクセス間隔カウンタ３５に記憶されているアクセス間隔が大きいほど、不揮発性メモリ４へのアクセス頻度がより少ないことを示している。よって、状態信号生成器３２は、アクセス頻度が少ないことを示す動作切替信号を生成する。これにより、パルス供給部２１と電圧供給部２２により生成される書込みパルスのパルス幅は広くなる。すなわち、第２書込みパルスが生成される。ｎ個すべてのアクセス間隔カウンタ３５への記憶が終わると、最も古い情報を記憶するアクセス間隔カウンタ３５から順に、記憶する情報を更新する。
【００４１】
状態信号生成器（パルス決定器）３２は、ｎ個のアクセス間隔カウンタ３５に記憶されているｎ個のアクセス間隔の平均値に基づいて動作切替信号を生成してもよいし、現時点に近いアクセス間隔カウンタ３５に記憶されているアクセス間隔をより優先させて、動作切替信号を生成してもよい。
【００４２】
このように、第２の実施形態では、プロセッサの動作状態だけでなく、不揮発性メモリ４の動作状態も考慮に入れて、書込みパルスのパルス幅を決定するため、例えば、プロセッサは高速動作をしているが、不揮発性メモリ４へのアクセス間隔は低いような場合に、不揮発性メモリ４への書込みパルスのパルス幅を広げることで、プロセッサの処理性能を落とさずに、メモリ回路２の消費電力を削減できる。
【００４３】
（第３の実施形態）
第３の実施形態は、不揮発性メモリ４が複数のメモリブロックを有する場合に、各メモリブロックの動作状態を監視して、書込みパルスのパルス幅を設定するものである。
【００４４】
図７は第３の実施形態による半導体記憶装置１の概略構成を示すブロック図である。図７の半導体記憶装置１は、複数のメモリブロック４ｃを備えており、各メモリブロック４ｃの内部に、メモリ回路２と、パルス供給部２１と、電圧供給部２２とが設けられている。
【００４５】
図７の書込み制御部３１は、図５の書込み制御部３１と同様に、メモリ動作モニタ３１と状態信号生成器３２とを有する。メモリ動作モニタ３１は、すべてのメモリブロック４ｃの動作状態を監視し、監視した結果を示す信号を生成する。状態信号生成器３２は、メモリ動作モニタ３１が監視した信号とプロセッサからの状態信号とに基づいて、動作切替信号を生成する。この動作切替信号は、各メモリブロック４ｃに送られ、各メモリブロック４ｃ内のパルス供給部３１と電圧供給部２２は、動作切替信号に応じて書込みパルスを生成する。
【００４６】
図８は第３の実施形態によるメモリ動作モニタ３１の内部構成の第１例を示すブロック図である。図８のメモリ動作モニタ３１は、過去ｎ回（ｎは１以上の整数）分のアクセスを行ったメモリブロック４ｃの情報を取得するメモリアクセスモニタ３４と、取得した情報を記憶するｎ個のアクセス分布モニタ３６とを有する。
【００４７】
ｎ個すべてのアクセス分布モニタ３６への記憶が終わると、最も古い情報を記憶するアクセス分布モニタ３６から順に、記憶する情報を更新する。
【００４８】
メモリ動作モニタ３１は、過去ｎ回分のアクセスを行ったメモリブロック４ｃの情報（アクセス分布情報）だけでなく、過去のメモリアクセスの間隔をモニタしてもよい。
【００４９】
図９は第３の実施形態よるメモリ動作モニタ３１の内部構成の第２例を示すブロック図である。図９のメモリ動作モニタ３１は、図８の構成に加えて、ｍ個のアクセス間隔カウンタ３５を有する。これらアクセス間隔カウンタ３５は、図６のアクセス間隔カウンタ３５と同様である。あるいは、メモリブロック４ｃの数分のアクセス間隔カウンタ３５を設けて、各アクセス間隔カウンタ３５は、対応するメモリブロック４ｃのアクセス間隔を計測してもよい。
【００５０】
このように、第３の実施形態では、複数のメモリブロック４ｃのうちどのメモリブロック４ｃにアクセスしたかを示すアクセス分布情報を記憶しておき、記憶されたアクセス分布情報に基づいてパルスを選択するため、不揮発性メモリ４が複数のメモリブロック４ｃに分かれていても、メモリ回路２の消費電力を削減できる。
【００５１】
また、アクセス分布情報だけでなく、アクセス間隔もモニタして書込みパルスのパルス幅を決定することにより、各メモリブロック４ｃへの書込み性能をきめ細やかに制御でき、プロセッサの処理性能を落とさずに、メモリ回路２の消費電力を削減できる。
【００５２】
（第４の実施形態）
第４の実施形態は、キャッシュメモリの書込みパルスを制御するものである。
【００５３】
図１０はプロセッサシステム４０の概略的なブロック図である。図１０のプロセッサシステム４０は、コア部４１と、キャッシュメモリ４２と、状態監視部４３とを備えている。コア部４１は、演算コアとＬ１キャッシュとを有する。コア部４１と状態監視部４３とでプロセッサが構成されている。
【００５４】
キャッシュメモリ４２は、例えばＬ２キャッシュであり、キャッシュデータ部４４と、タグ部４５と、キャッシュロジック部４６とを有する。キャッシュメモリ４２は、階層化された複数のキャッシュメモリ４２で構成される場合もあるが、図１０では簡略化のために１階層分のキャッシュメモリ４２を図示している。
【００５５】
状態監視部４３は、演算コアの処理負荷や外部からの入出力を監視し、プロセッサの電源電圧レベルの調整や演算コアの動作状態の遷移を制御する。
【００５６】
図１１は図１０のキャッシュメモリ４２の内部構成の第１例を示すブロック図である。図１１のキャッシュメモリ４２は、キャッシュデータ部４４、タグ部４５およびキャッシュロジック部４６の他に、第１〜第３の実施形態と同様の書込みパルス制御部３を有する。書込みパルス制御部３は、パルス供給部２１と電圧供給部２２を有する。パルス供給部２１が選択したパルス信号と電圧供給部２２が選択した電圧とは、キャッシュデータ部４４とタグ部４５の双方に供給される。
【００５７】
キャッシュメモリ４２には、プロセッサからの状態信号が入力されている。この状態信号に基づいて、書込みパルス制御部３内のパルス供給部２１と書込みパルス供給部２１は選択動作を行う。例えば、パルス供給部２１内の複数のパルス生成器２３は、キャッシュロジック部４６から出力されたライトトリガ信号に同期して、パルス信号を生成する。パルス選択器２４は、状態信号に基づいて、いずれか一つのパルス信号を選択する。
【００５８】
図１１の例では、キャッシュデータ部４４とタグ部４５の双方がＭＲＡＭで構成されている例を示している。この場合、キャッシュデータ部４４とタグ部４５は、共通のパルス幅を持つ書込みパルスにて書込み動作を行う。
【００５９】
なお、タグ部４５については、ＭＲＡＭよりも高速のＳＲＡＭで構成する場合もある。この場合、タグ部４５については、書込みパルス制御部３による書込みパルスの制御は行わないようにするのが望ましい。ＳＲＡＭは、上述した図３のグラフＧ１とグラフＧ２のような特性を持たないためである。
【００６０】
図１２は図１０のキャッシュメモリ４２の内部構成の第２例を示すブロック図である。図１２では、キャッシュデータ部４４はＭＲＡＭで構成され、タグ部４５はＳＲＡＭで構成されている。図１２のキャッシュメモリ４２は、タグ部４５用の書込みパルスを生成する書込みパルス生成器４７を有する。
【００６１】
キャッシュロジック部４６から出力されたライトトリガ信号は、パルス供給部２１と書込みパルス生成器４７に供給される。書込みパルス生成器４７は、タグ部４５用の書込みパルスを生成してタグ部４５に供給する。書込みパルス生成器４７は、上述したＤＶＦＳ技術を使用する場合には、電源電圧ＶＤＤＣの電圧レベルに応じて、書込みパルスのパルス幅を可変制御する。
【００６２】
このように、図１２のキャッシュメモリ４２では、ＭＲＡＭで構成されたキャッシュデータ部４４に対してのみ、書込みパルス制御部３により、書込みパルスのパルス幅を制御する。
【００６３】
図１３は図１１および図１２のキャッシュロジック部４６の内部構成の第１例を示すブロック図である。図１３のキャッシュロジック部４６は、ヒット／ミス判定部４８と、データ入出力部４９とを有する。ヒット／ミス判定部４８は、プロセッサからの制御信号に基づいて、アクセス要求のあったデータのアドレスがタグ部４５に格納されているアドレスと一致するか否かを判定する。データ入出力部４９は、プロセッサからの制御信号に基づいて、キャッシュデータ部４４に対して読み書きされるデータの入出力を制御する。
【００６４】
プロセッサが最速で動作していても、キャッシュメモリ４２へのアクセス頻度は低い場合があり、このような場合に、キャッシュメモリ４２に対して高速書込を行っても、プロセッサの処理性能にはほとんど影響せず、消費電力を無駄に消費する結果となる。そこで、プロセッサの状態とキャッシュメモリ４２の状態とを考慮に入れて、キャッシュメモリ４２への書込みパルスのパルス幅を制御してもよい。
【００６５】
図１４はキャッシュロジック部４６の内部構成の第２例を示すブロック図である。図１４のキャッシュロジック部４６は、図１３の構成に加えて、キャッシュ動作モニタ部５１と、状態信号生成器５２とを有する。
【００６６】
キャッシュ動作モニタ部５１は、キャッシュデータ部４４の動作状態をモニタし、キャッシュデータ部４４の動作状態を表す状態信号を生成する。キャッシュ動作モニタ部５１がモニタするキャッシュデータ部４４の動作状態とは、キャッシュデータ部４４のアクセス分布やアクセス間隔などである。必要に応じて、キャッシュデータ部４４のアクセス分布やアクセス間隔の履歴情報を記憶する記憶部を設けてもよい。
【００６７】
状態信号生成器５２には、プロセッサの状態信号と、キャッシュ動作モニタ部５１からのキャッシュメモリ４２の状態信号とに基づいて、キャッシュデータ部４４、またはキャッシュデータ部４４とタグ部４５の書込みパルスのパルス幅を制御するための状態信号を生成する。状態信号生成器５２が生成した状態信号が、図１２および図１３のパルス供給部２１と電圧供給部２２に供給される。
【００６８】
図１５はキャッシュロジック部４６の内部構成の第３例を示すブロック図である。図１５のキャッシュロジック部４６は、図１４の構成に加えて、ライトバッファ５３を有する。ライトバッファ５３は、キャッシュデータ部４４とタグ部４５に書き込むべきデータを事前に一時的に保持する。ライトバッファ５３は、書込み順に複数のエントリを設けて、各エントリごとに書込みデータを保持してもよい。
【００６９】
図１５のキャッシュ動作モニタ部５１は、キャッシュデータ部４４をモニタするのではなく、ライトバッファ５３が有する複数のエントリの占有状態をモニタする。ライトバッファ５３に空きエントリが多い場合は、キャッシュデータ部４４に高速書込を行う必要はないと考えられる。この場合、キャッシュ動作モニタ部５１は、状態信号生成器５２に対して、キャッシュデータ部４４に高速書込を行う必要がないことを表す状態信号を供給する。
【００７０】
このように、ライトバッファ５３に空きエントリが多い場合は、キャッシュデータ部４４に対する書込みパルスのパルス幅は広げられ、空きエントリが少ない場合には、書込みパルスのパルス幅は狭められる。
【００７１】
キャッシュメモリ４２は、複数のブロックに分割されていてもよい。例えば、図１６は図１０のキャッシュメモリ４２の内部構成の第３例を示すブロック図である。図１６のキャッシュメモリ４２内のキャッシュデータ部４４とタグ部４５はそれぞれ、複数のブロックに分割されている。
【００７２】
図１６のキャッシュロジック部４６は、図１４のキャッシュロジック部４６と同様の内部構成を有する。図１６のキャッシュロジック部４６内のキャッシュ動作モニタ部５１は、例えば、キャッシュデータ部４４内の各ブロックのアクセス分布やアクセス間隔をモニタし、キャッシュデータ部４４の状態を表す状態信号を生成する。なお、キャッシュロジック部４６の内部構成は、図１５と同様でもよい。
【００７３】
このように、第４の実施形態では、プロセッサの動作状態に応じて、キャッシュメモリ４２に対する書込みパルスのパルス幅を可変制御するため、例えばＭＲＡＭで構成されたキャッシュメモリ４２の書き込み時の消費電力を抑制できる。また、プロセッサの動作状態だけでなく、キャッシュメモリ４２の動作状態も加味してキャッシュメモリ４２に対する書込みパルスのパルス幅を可変制御することで、プロセッサの処理性能に影響を与えることなく、より効率よくキャッシュメモリ４２の消費電力を抑制できる。
【００７４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７５】
１  半導体記憶装置、２  メモリ回路、３  書込みパルス制御部、４  不揮発性メモリ、５  メモリ制御部、２１  パルス供給部、２２  電圧供給部、２３  パルス生成器、２４  パルス選択器、３１  メモリ動作モニタ、３２  状態信号生成器、３４  メモリアクセスモニタ、３５  アクセス間隔カウンタ、３６  アクセス分布モニタ、４０  プロセッサシステム、４１  コア部、４２  キャッシュメモリ、４３  状態監視部
【図１】
0006364365.tif 000002
【図２】
0006364365.tif 000003
【図３】
0006364365.tif 000004
【図４】
0006364365.tif 000005
【図５】
0006364365.tif 000006
【図６】
0006364365.tif 000007
【図７】
0006364365.tif 000008
【図８】
0006364365.tif 000009
【図９】
0006364365.tif 000010
【図１０】
0006364365.tif 000011
【図１１】
0006364365.tif 000012
【図１２】
0006364365.tif 000013
【図１３】
0006364365.tif 000014
【図１４】
0006364365.tif 000015
【図１５】
0006364365.tif 000016
【図１６】
0006364365.tif 000017