(57)【要約】      （修正有）【課題】ダイナミックＲＡＭの電力消費を減らすためのシステム及び方法を提供する。【解決手段】ＤＲＡＭまたはＳＤＲＡＭのコンポーネントは、行のような、ＤＲＡＭアレイの独立してリフレッシュ可能なメモリ単位４０８ａ，４０８ｂ，４０８ｃ，．．．４０８ｊが有効データを含むかどうか示すインジケータ４１０ａ，４１０ｂ，４１０ｃ，．．．４１０ｊを維持する。リフレッシュ動作が関連づけられたメモリに導かれるとき、メモリが有効データを含んでいない場合にリフレッシュ動作が抑制される。著しい省電力は無効データに向けられたリフレッシュ動作を抑制することにより実現されうる。【選択図】図４
2014197446.tif 000002
【特許請求の範囲】
【請求項１】
各独立してリフレッシュ可能なメモリ単位にインジケータを関連づけることと、
独立してリフレッシュ可能なメモリ単位にデータを書き込む際に、前記関連づけられたインジケータを有効データを反映するようにセットすることと、
その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることと
を具備するダイナミックメモリをリフレッシュする方法。
【請求項２】
前記独立してリフレッシュ可能なメモリ単位が行である請求項１の方法。
【請求項３】
前記独立してリフレッシュ可能なメモリ単位が２つ以上のメモリバンクにわたる行を具備する請求項１の方法。
【請求項４】
前記インジケータが有効ビットである請求項１の方法。
【請求項５】
前記有効ビットがＤＲＡＭアレイに記憶される請求項４の方法。
【請求項６】
前記有効ビットがスタティックメモリに記憶される請求項４の方法。
【請求項７】
前記有効ビットがレジスタに記憶される請求項４の方法。
【請求項８】
前記関連づけられたインジケータを有効データを反映するようにセットすることは、
前記関連する独立してリフレッシュ可能なメモリ単位にデータを書き込む際に、前記インジケータを自動的にセットすることを具備する請求項１の方法。
【請求項９】
前記関連づけられたインジケータを有効データを反映するようにセットすることは、
メモリコントローラからのコマンドで前記インジケータをセットすることを具備する請求項１の方法。
【請求項１０】
有効データを反映するようにセットしたインジケータはリセットでクリアされる請求項１の方法。
【請求項１１】
有効データを反映するようにセットしたインジケータは、メモリコントローラからのコマンドでクリアされる請求項１の方法。
【請求項１２】
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをセルフリフレッシュすることを具備する請求項１の方法。
【請求項１３】
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをオートリフレッシュすることを具備する請求項１の方法。
【請求項１４】
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
不連続の独立してリフレッシュ可能なメモリ単位を連続してリフレッシュすることを具備する請求項１の方法。
【請求項１５】
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
リフレッシュコマンドを受け取ることと、
現在のリフレッシュアドレスに関連づけられた前記インジケータを検査することと、
前記インジケータが有効データを反映する場合に、前記アドレス指定された、独立してリフレッシュ可能なメモリ単位をリフレッシュすることを具備する請求項１の方法。
【請求項１６】
前記インジケータが無効データを反映する場合に、リフレッシュサイクルを抑制することをさらに具備する請求項１４の方法。
【請求項１７】
前記インジケータが有効データを反映する場合に、前記リフレッシュアドレスを、有効データを反映するインジケータを有する次の独立してリフレッシュ可能なメモリ単位へインクリメントすることをさらに具備する請求項１４の方法。
【請求項１８】
スキップされたリフレッシュアドレスの数に比例してリフレッシュ周波数を減少させることをさらに具備する請求項１６の方法。
【請求項１９】
データを記憶するように作動し、複数の独立してリフレッシュ可能なメモリ単位として組織されたＤＲＡＭアレイと、
各々が、独立してリフレッシュ可能なメモリ単位に関連づけられて、有効データが前記独立してリフレッシュ可能なメモリ単位に記憶されているかどうかを示す複数のインジケータと、
制御信号を受け取り、かつ前記インジケータを検査して、有効データを記憶している前記独立してリフレッシュ可能なメモリ単位だけをリフレッシュするように作動するコントローラと
を具備するＤＲＡＭコンポーネント。
【請求項２０】
前記ＤＲＡＭアレイの中の前記独立してリフレッシュ可能なメモリ単位のアドレスを生成するように作動するリフレッシュカウンタをさらに具備する請求項１９のＤＲＡＭコンポーネント。
【請求項２１】
データが、関連する独立してリフレッシュ可能なメモリ単位に書き込まれている場合にインジケータをセットするように作動する回路をさらに具備する請求項１９のＤＲＡＭコンポーネント。
【請求項２２】
前記インジケータが初期設定中にクリアされる請求項１９のＤＲＡＭコンポーネント。
【請求項２３】
前記コントローラは、制御信号に応答して前記インジケータをセットまたはクリアするようにさらに作動する請求項１９のＤＲＡＭコンポーネント。
【請求項２４】
前記インジケータは、１つ以上の独立してリフレッシュ可能なメモリ単位に記憶される請求項１９のＤＲＡＭコンポーネント。
【請求項２５】
前記インジケータは、前記ＤＲＡＭアレイとは異なるメモリに記憶される請求項１９のＤＲＡＭコンポーネント。
【請求項２６】
ソフトウェアタスクから、前記タスクにメモリを割り当てるリクエストを受け取ることと、
メモリ装置中の１つ以上の独立してリフレッシュ可能なメモリ単位から、前記タスクにメモリを割り当てることと、
前記独立してリフレッシュ可能なメモリ単位に向けられたリフレッシュ動作を抑制しないように前記メモリ装置に指示するために、各独立してリフレッシュ可能なメモリ単位に関連づけられたインジケータをセットすることとのステップを行なうように作動する少なくともメモリマネージャコンピュータプログラムを含むコンピュータ読取可能媒体。
【請求項２７】
前記メモリマネージャコンピュータプログラムは、
前記ソフトウェアタスクから、以前に前記タスクに割り当てられたメモリを解放するリクエストを受け取ることと、
以前に前記タスクに割り当てられたメモリを解放することと、
前記独立してリフレッシュ可能なメモリ単位中のメモリがすべて解放されている場合、その独立してリフレッシュ可能なメモリ単位に向けられた、リフレッシュ動作を抑制するように前記メモリ装置に指示するために前記関連づけられたインジケータをクリアすることとのステップを行なうようにさらに作動する請求項２６のコンピュータ読取可能媒体。
【請求項２８】
前記メモリマネージャコンピュータプログラムが、シングルプロセッサ上で実行されている複数のソフトウェアタスクにメモリを割り当てる請求項２６のコンピュータ読取可能媒体。
【請求項２９】
前記メモリマネージャコンピュータプログラムが、異なるプロセッサ上で各々実行されている２つ以上のソフトウェアタスクにメモリを割り当てる請求項２６のコンピュータ読取可能媒体。
【請求項３０】
前記メモリマネージャコンピュータプログラムは、前記関連する独立してリフレッシュ可能なメモリ単位に最初にデータを書き込む際に、独立してリフレッシュ可能なメモリ単位インジケータをセットする請求項２６のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの分野に一般に関係があり、ダイナミックＲＡＭ電力消費を減らすためのシステム及び方法に特に関係がある。
【背景技術】
【０００２】
ソリッドステートダイナミックランダムアクセスメモリ（ＤＲＡＭ）は、携帯用電子機器を含む、多くの現代のコンピューティングシステムのためのコスト効率の良い大容量メモリ装置ソリューションである。シンクロナスＤＲＡＭ（ＳＤＲＡＭ）を含むＤＲＡＭは、レジスタ、スタティックＲＡＭ（ＳＲＡＭ）などのような、より速いオンチップメモリ構造と比較して、ビットあたりの比較的低いコストおよび高いビット密度と、ハードディスク、ＣＤ−ＲＯＭなどのような電気的、磁気的、または光学的−機械的な大容量ストレージより劇的に速いアクセス速度とを提供する。
【０００３】
図１は、代表的な５１２メガビットのＤＲＡＭアレイ１００の論理的な図を描く。アレイ１００は、別々にアドレス指定できる複数のバンク１０２，１０４，１０６，１０８として組織される。それぞれのバンクは、多数（例えば４０９６個）の行(row)１１０に分割される。それぞれの行１１０は、複数の列(column)（例えば５１２列）に分割され、また、それぞれの列はバイト群（例えば８バイト）として典型的に組織されて、多くのデータビットを含む。いくつかのデータアドレッシングスキームは当技術において知られている。例えば、バンク、行、列（ＢＲＣ）アドレッシングで、メモリアドレスは
【表１】
2014197446.tif 000003
【０００４】
として解釈されうる。行、バンク、列（ＲＢＣ）アドレッシングのような代替アドレッシングスキームでは、メモリアドレスは
【表２】
2014197446.tif 000004
【０００５】
として解釈されうる。
【０００６】
ＤＲＡＭメモリアレイは揮発性であり、その保全性を維持するためにＤＲＡＭアレイに記憶されたデータは周期的にリフレッシュされなければならない。ＤＲＡＭリフレッシュ動作中に、多くのデータ記憶位置は、アレイ１００から同時に読み出されて、再チャージされる。従来、ＤＲＡＭアレイは一行ずつリフレッシュされる。すなわち、行（あるいは、いくつかのインプリメンテーションでは、すべてのバンクの中で同時に同じ行）が選択され、また、行の内の全てのデータは単一の動作でリフレッシュされる。ここに使用されるように、用語“独立してリフレッシュ可能なメモリ単位”、すなわちＩＲＭＵは、単一のリフレッシュ動作でリフレッシュされるデータの量を指す。本発明は一行ずつのリフレッシュ動作に制限されていないが、ＤＲＡＭアレイのためのＩＲＭＵは典型的に行である。
【０００７】
ＩＲＭＵに向けられたリフレッシュ動作は、メモリアクセスで従来散りばめられ、また、電荷減衰(charge decay)により任意のデータが失われることに先立って全ＤＲＡＭアレイがリフレッシュされるようにタイミングをとられる。もともとは、リフレッシュアドレス、すなわち各独立してリフレッシュ可能なメモリ単位のアドレスは、プロセッサのようなメモリコントローラによって供給され、それは制御信号の固有のコンビネーションによってリフレッシュ動作を指定する。現代のＳＤＲＡＭコンポーネントは、２つの付加的なリフレッシュモードである、セルフリフレッシュおよびオートリフレッシュを含みうる。両方のモードにおいて、ＳＤＲＡＭコンポーネントは内部リフレッシュアドレスカウンタを含んでいる。セルフリフレッシュは、電力を保存するために“スリープ”モードを使用する、電池式の電子装置のような多くのシステムで利用される。セルフリフレッシュモードでは、ＳＤＲＡＭコンポーネントはデータを検索または記憶するためにアクセス可能ではなく、しかしながら、ＳＤＲＡＭは、記憶されたデータの保全性を保証するために内部でリフレッシュ動作を行なう。オートリフレッシュモードでは、メモリコントローラはリフレッシュ動作を指定するが、リフレッシュアドレスを提供しない。もっと正確に言えば、ＳＤＲＡＭコンポーネントは、内部リフレッシュアドレスカウンタをインクリメントし、それは連続的な独立してリフレッシュ可能なメモリ単位（例えば行）のアドレスを提供する。
【０００８】
データがＤＲＡＭアレイから読まれ再チャージされるとともに、各リフレッシュ動作は電力を消費する。しかしながら、特に電源オンあるいはシステムリセットの後では、ＤＲＡＭアレイの中のほとんどのメモリ記憶位置は有効データを含んでいない。
【発明の概要】
【０００９】
ここに開示されて請求される１つ以上の実施形態によれば、メモリのリフレッシュ可能なセグメントが有効データを含むかどうか示すインジケータが維持される。リフレッシュ動作が関連するメモリに向けられる際、メモリが有効データを含んでいない場合、リフレッシュ動作は抑制される。著しい省電力は無効データに向けられたリフレッシュ動作を抑制することにより実現されうる。
【００１０】
１つの実施形態はダイナミックメモリをリフレッシュする方法に関係がある。インジケータは各独立してリフレッシュ可能なメモリ単位に関連づけられる。独立してリフレッシュ可能なメモリ単位にデータを書き込む際、関連づけられたインジケータは、有効データを反映するようにセットされる。その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけがリフレッシュされる。
【００１１】
１つの実施形態はＤＲＡＭコンポーネントに関係がある。ＤＲＡＭコンポーネントは、データを記憶するように作動し、複数の独立してリフレッシュ可能なメモリ単位として組織されたＤＲＡＭアレイを含んでいる。ＤＲＡＭコンポーネントは、また、複数のインジケータを含み、その各々は、独立してリフレッシュ可能なメモリ単位に関連づけられて、独立してリフレッシュ可能なメモリ単位に有効データが記憶されているかどうかを示している。ＤＲＡＭコンポーネントは、制御信号を受け取り、かつインジケータを検査して、有効データを記憶している独立してリフレッシュ可能なメモリ単位のみをリフレッシュするように作動するコントローラをさらに含んでいる。
【図面の簡単な説明】
【００１２】
【図１】図１は、ＤＲＡＭアレイの中のデータ組織の機能ブロック図である。
【図２】図２は、各独立してリフレッシュ可能なメモリ単位に関連づけられた有効なインジケータあるいはビットを伴う、ＤＲＡＭアレイの中のデータ組織の機能ブロック図である。
【図３】図３はＳＤＲＡＭコンポーネントの機能ブロック図である。
【図４】図４はシングルプロセッサコンピューティングシステムの機能ブロック図である。
【図５】図５はマルチプロセッサコンピューティングシステムの機能ブロック図である。
【図６】図６はＤＲＡＭアレイをリフレッシュする方法のフローチャートである。
【発明を実施するための形態】
【００１３】
図２は、１つの実施形態によるＤＲＡＭアレイ２００組織の論理的な図を描く。アレイ２００は、４つのバンク２０２，２０４，２０６，２０８として論理上組織され、各バンクは４０９６行を含む。代表的な行は２１０として描かれる。この実施形態では、行２１０は最も小さな独立してリフレッシュ可能なメモリ単位である。アレイ２００中で行２１０に関連づけられるのは、行２１０が有効データを含んでいるかどうかを反映するインジケータ２１１である。描かれた実施形態では、それぞれのインジケータ２１１は、各行に関連づけられたシングルビット(ここで、また、有効ビットと称される)を具備する。図２は、インジケータビットのセット２１２，２１４，２１６，２１８を描き、各インジケータビットは、それぞれ、バンク２０２，２０４，２０６，２０８における行に関連づけられる。最も小さな独立してリフレッシュ可能なメモリ単位が４つのバンク２０２，２０４，２０６，２０８すべてにまたがる行を具備する実施形態では、１つのインジケータビットのセット２１２のみが必要だろう。
【００１４】
リフレッシュ動作中に、例えばＩＲＭＵ２１０といった、現在アドレス指定されている独立してリフレッシュ可能なメモリ単位に関連づけられた、例えばインジケータ２１１といった、インジケータあるいは有効ビットは検査される。インジケータビットがセットされて、関連するＩＲＭＵが有効データを含むことを示している場合には、リフレッシュ動作が、データを維持するためにＩＲＭＵに対して行なわれる。インジケータビットがセットされず、関連するＩＲＭＵが有効データを含まないことを示している場合には、１つの実施形態では、リフレッシュ動作は抑制され、ＩＲＭＵをリフレッシュする際にさもなければ消費されたであろう電力を保存する。したがって、有効データを含んでいるＩＲＭＵのみがリフレッシュされるだろう、そして初期設定されなかった、あるいは“ドントケア（don't care）”状態にあるアレイ中のＩＲＭＵはリフレッシュされない。リフレッシュアドレスはメモリコントローラによって供給されることができ、あるいは例えばオートリフレッシュ中あるいはセルフリフレッシュ中などに内部アドレスカウンタによって生成されることができる。
【００１５】
インジケータビットは様々な方法で維持されうる。１つの実施形態では、インジケータビットはメモリアレイ２００の固定のまたはプログラム可能な部分で記憶される。この場合、アレイ２００の使用可能なサイズは０．００３％減らされる。別の実施形態では、インジケータビットは、例えばスタティックＲＡＭストラクチャ中やレジスタ中などでのように、ＤＲＡＭアレイ２００以外のメモリ中のＤＲＡＭ／ＳＤＲＡＭコンポーネントで記憶される。１つの実施形態では、ＩＲＭＵ有効インジケータメモリは、ＳＤＲＡＭコンポーネントのモードレジスタおよび拡張モードレジスタのアクセスシーケンスと同様の２サイクルシーケンスによってアクセスされる。
【００１６】
図３は、１つの実施形態によるＳＤＲＡＭコンポーネント３００の機能ブロック図である。ＳＤＲＡＭ３００は、４つのバンク３０２，３０４，３０６，３０８として組織されるＤＲＡＭアレイ３０１を含んでいる。それぞれのバンクは行デコーダ３１２および列デコーダ３１０を含む。センスアンプ３１４は、ＤＲＡＭアレイ３０１からの読まれたデータをＩ／Ｏバッファ３１６に提供する。Ｉ／Ｏバッファ３１６からの書込みデータ（write data）は入力バッファ３１８を通り、ＤＲＡＭアレイ３０１に書き込む前に書込みデータレジスタ３２０に記憶される。
【００１７】
ＳＤＲＡＭコンポーネント３００の動作はステートマシン３２２によって制御される。バンクとメモリのアドレスはアドレスバッファ３２４へ入力されてアドレスレジスタ３２６に記憶され、そこで、それらは列プレデコーダ＆カウンタ回路（column pre-decoder and counter circuit）３２８を制御する。モードレジスタ３３０および拡張モードレジスタ３３２は、例えば列アドレス・ストローブ(CAS)遅れ、バースト長などのようなモード選択ビットを記憶し、これらはバーストカウンタ３３４およびデータ出力制御回路３３６の動作を制御する。
【００１８】
リフレッシュロジック＆タイマ回路（refresh logic and timer circuit）３３８は、内部カウンタ３４０からのＩＲＭＵアドレス、およびＩＲＭＵ有効メモリ３４２からのＩＲＭＵ有効ビットを受け取る。リフレッシュロジックは、行プレデコーダ（row pre-decoder）３４４にＩＲＭＵアドレスを出力する。ＩＲＭＵ有効メモリ３４２がＤＲＡＭアレイ３０１から分離して区別された機能ブロックとして図３に描かれている一方で、ＩＲＭＵ有効インジケータの記憶装置に物理的に専用のメモリは、ＤＲＡＭアレイ３０１の一部であることができ、あるいは個別のＤＲＡＭ、ＳＲＡＭ、レジスタ、あるいは他のメモリであることができることに留意されたい。
【００１９】
１つの実施形態では、ＳＤＲＡＭコンポーネント３００は、書込みアドレス(write addresses)を自動的に監視し、それぞれの書込み動作(write operation)が向けられるＩＲＭＵに対応するＩＲＭＵ有効インジケータをセットする。その後、リフレッシュロジック３３８は、各リフレッシュ動作の際にＩＲＭＵ有効メモリ３４２を検査し、有効データを含んでいないいずれのＩＲＭＵに向けられたリフレッシュサイクルを抑制する。これは、ＳＤＲＡＭコンポーネント３００の電力消費を最小化するが、メモリコントローラまたはプロセッサによるいずれのリフレッシ抑制知識あるいは関与を必要としない。主要な省電力化は、電源オンあるいはリセットに続いて、ＤＲＡＭアレイ３０１に有効データがほとんどないときに、おそらく生じる。ＤＲＡＭアレイ３０１の中のより多くのＩＲＭＵにメモリコントローラがデータを書込むにつれて、より多くのＩＲＭＵ有効ビットがセットされ、また、より少数のリフレッシュサイクルが抑制される。この実施形態では、ＩＲＭＵメモリ３４２は、電源投入またはリセットに続く、ＳＤＲＡＭコンポーネント３００初期設定の一部として自動的にクリアされる。この実施形態は、精巧なメモリ管理機能を含んでいない既存のメモリコントローラおよびソフトウェアを利用しながら、システム設計者がＳＤＲＡＭコンポーネント３００のより低い電力消費を利用することを可能にする。
【００２０】
１つの実施形態では、ＩＲＭＵメモリ３４２は、例えば予め定義されたモードレジスタ３３０あるいは拡張モードレジスタ３３２の書込み動作またはビットパターンのような、メモリコントローラからのコマンドによってクリアされうる。この実施形態は、ソフト（すなわちソフトウェア起動の)リセットに続く、減らされたＳＤＲＡＭコンポーネント３００電力消費を可能にするが、メモリコントローラがＩＲＭＵメモリ３４２をクリアするコマンドを出すことを必要とする。
【００２１】
図４は、ＤＲＡＭ電力消費を制御して減らすコンピューティングシステム４００を描く。システム４００は、プロセッサ４０２のようなメモリコントローラと、メモリコントローラハードウェア４０４（それはプロセッサ４０２に統合されうる)と、ＳＤＲＡＭコンポーネント４０６のようなメモリ装置とを含んでいる。ＳＤＲＡＭコンポーネント４０６内部のＤＲＡＭアレイは、独立してリフレッシュ可能なメモリ単位４０８ａ，４０８ｂ，４０８ｃ，．．．４０８ｊに論理的に分割される。例えばビット４１０ａ，４１０ｂ，４１０ｃ，．．．４１０ｊのようなＩＲＭＵ有効インジケータが各ＩＲＭＵに関連づけられ、それは関連するＩＲＭＵが有効データを含むかどうかを示す。
【００２２】
複数のソフトウェアタスク４１２，４１４はプロセッサ４０２で実行される。それぞれのソフトウェアタスクはデータ記憶のためにメモリを割り当てることができ、また、もはや必要とされないメモリを解放することができる。ソフトウェアメモリマネージャ４１６は、プロセッサ４０２のためにメモリを管理するソフトウェアモジュールである。ソフトウェアメモリマネージャ４１６はソフトウェアタスク４１２，４１４からのメモリの“割り当て（allocate）”および／または“解放（free）”のリクエストを受け取る。これに応答して、ソフトウェアメモリマネージャ４１６は、タスク４１２，４１４から、およびこれらに、メモリを割り当て、１以上の独立してリフレッシュ可能なメモリ単位４０８ａ，４０８ｂ，４０８ｃ，...４０８ｊ（例えば行）に、割り当てられたメモリをマップし、また、現在ＩＲＭＵ４０８ａ，４０８ｂ，４０８ｃ，...４０８ｊの中にあるデータのステータスを反映するために、対応するＩＲＭＵ有効インジケータ４１０ａ，４１０ｂ，４１０ｃ，...４１０ｊをセットおよびクリアする。１つの実施形態では、実際のメモリコントローラは独立したハードウェア要素４０４であり、別の実施形態では、メモリコントローラ機能はプロセッサ４０２へ統合される。ＳＤＲＡＭコンポーネント４０６は、無効データを含んでいるＩＲＭＵ４０８ａ，４０８ｂ，４０８ｃ，...４０８ｊに向けられたすべてのリフレッシュ動作を抑制する。
【００２３】
図５は、メモリ割当てを制御して、ＳＤＲＡＭ電力消費を最小化するマルチプロセッサシステム５００を描く。プロセッサ５０２，５０４はシステムバス５０６をわたって互いに、およびメモリコントローラハードウェア５０８と、通信する。当技術において既に知られているように、バス５０６は、また、スイッチング構造（fabric）、クロスバースイッチなどとして実装されうる。１つ以上のソフトウェアタスク５０３，５１６，５１８は、プロセッサ５０２，５０４上で実行される。システム全体のソフトウェアメモリマネージャ５２０は、１つのプロセッサ５０４上で実行され、システムで実行されているすべてのソフトウェアタスク５０３，５１６，５１８から、およびこれらに、メモリを割り当てている。プロセッサ５０２上で実行されている任意のソフトウェアタスク５０３は、バス５０６をわたってソフトウェアメモリマネージャ５２０へメモリの割り当ておよび解放のリクエストを送ることができる。上に述べられたように、ソフトウェアメモリマネージャ５２０は、タスク５０３，５１６，５１８から、およびこれらに、メモリを割り当て、１以上の独立してリフレッシュ可能なメモリ単位５１２ａ，５１２ｂ，５１２ｃ，...５１２ｊに、割り当てられたメモリをマップし、また、ＩＲＭＵ５１２ａ，５１２ｂ，５１２ｃ，...５１２ｊに現在記憶されているデータのステータスを反映するために、メモリコントローラハードウェア５０８によって、対応するＩＲＭＵ有効インジケータ５１４ａ，５１４ｂ，５１４ｃ，...５１４ｊをセットおよびクリアする。ＳＤＲＡＭコンポーネント５１０は、無効データを含んでいるＩＲＭＵ５１２ａ，５１２ｂ，５１２ｃ，...５１２ｊに向けられたリフレッシュ動作を抑制する。
【００２４】
従来のリフレッシュモード、オートリフレッシュモード、あるいはセルフリフレッシュモードでは、ＳＤＲＡＭコンポーネント３００，４０６，５１０は、（メモリコントローラまたは内部カウンタによって供給される)リフレッシュアドレスをＩＲＭＵ有効メモリ３４２，４１０，５１４と比較し、有効データを含んでいないＩＲＭＵ４０８，５１２に向けられたリフレッシュ動作を抑制する。ソフトウェアメモリマネージャ４１６，５２０がアクティブにメモリを管理し、ＩＲＭＵ有効ビット４１０，５１４をセット／クリアする１つの実施形態では、このシステムは、物理メモリがソフトウェアタスクに対する割り当てから解放されて“プール（pool）”に返されるとともに（この場合には、そのデータ内容は適切ではない）、ＩＲＭＵへのリフレッシュコマンドをダイナミックに抑制することにより、さらにメモリをリフレッシュすることを最適化して、電力消費を最小化することができる。
【００２５】
従来のリフレッシュモードでは、ソフトウェアメモリマネージャ４１６，５２０は、有効データを含んでいるＩＲＭＵ４０８，５１２にのみにリフレッシュアドレスを提供しうる。オートリフレッシュあるいはセルフリフレッシュモードでは、ＳＤＲＡＭコンポーネント３００，４０６，５１０は、各リフレッシュ動作に続いて、有効データを含んでいる次のＩＲＭＵ４０８，５１２へ、そのリフレッシュアドレスカウンタをインクリメントすることにより、無効のメモリを“スキップ”しうる。いずれの場合も、メモリコントローラ４０４，５０８は、有効データを含んでいるＩＲＭＵ４０８，５１２だけが最大のリフレッシュ期間ですべてリフレッシュされるように、リフレッシュ動作間の遅れを増加させうる。この実施形態では、リフレッシュコマンドはＳＤＲＡＭコンポーネント３００，４０６，５１０によって抑制されない。これは、不必要なメモリコマンドサイクルの回避により、電力消費をさらに最適化し（さらにバス輻輳を減らす)、また、リフレッシュコマンドが、進行中のメモリアクセスに課せられる遅れを減らす。
【００２６】
図６は、１つ以上の実施形態によるＤＲＡＭをリフレッシュする方法６００を描く。初期設定に際して、すべてのＩＲＭＵインジケータはクリアされる（ブロック６０２)。その後、この方法は、リフレッシュ動作が行なわれることになっているかどうかチェックする（ブロック６０４)。従来のリフレッシュモードでは、リフレッシュ動作は、メモリコントローラからＤＲＡＭコンポーネントへ送られる制御信号によって示され、また、リフレッシュされるＩＲＭＵはアドレスバス上で示される。オートリフレッシュモードでは、リフレッシュ動作はメモリコントローラによって命令され、また、内部カウンタはＩＲＭＵリフレッシュアドレスを提供する。セルフリフレッシュモードでは、リフレッシュタイマーの終了は、リフレッシュ動作が必要であることを示し、また、内部カウンタはＩＲＭＵアドレスを提供する。
【００２７】
リフレッシュ動作が示される場合（ブロック６０４）、現在のＩＲＭＵアドレス（例えば行アドレスなど)に関連づけられるＩＲＭＵインジケータは検査される（ブロック６０６)。ＩＲＭＵが有効データを含むことをＩＲＭＵインジケータが示す場合（ブロック６０８）、リフレッシュ動作はアドレス指定されたＩＲＭＵに対して行なわれる（ブロック６１０)。ＩＲＭＵが有効データを含まないことをＩＲＭＵインジケータが示す場合（ブロック６０８）、リフレッシュ動作は抑制されて、無効（あるいは、“ドントケア（don't care）”)データのリフレッシュにより、さもなければ消費されたであろう電力を節約する。
【００２８】
セルフリフレッシュモードでは、ＳＤＲＡＭコンポーネントはリフレッシュアドレスカウンタの次の終了に備えてブロック６０４で待機する。他のリフレッシュモードでは、リフレッシュ動作が命令されない場合（ブロック６０４）、ＤＲＡＭ（あるいはＳＤＲＡＭ）コンポーネントは、メモリコントローラによって命令されるような、読み取り、書き込み、および／又はレジスタアクセスの動作を実行する（ブロック６１２）。１つの実施形態中で、メモリ管理ソフトウェアモジュールがメモリブロックを割り当て、解放する場合には、メモリあるいはレジスタのアクセス動作が、（ＩＲＭＵインジケータを読み、セットし、クリアする、）ＩＲＭＵメモリに向けられた動作を含みうる。１つの実施形態では、ＩＲＭＵインジケータは、関連するＩＲＭＵに向けられた書込み動作で自動的にセットされる（ブロック６１４）。この実施形態では、ＩＲＭＵインジケータは初期設定の際にのみクリアされるが（ブロック６０２）、有効データが多くのＩＲＭＵに少なくとも一度書き込まれるまで著しい省電力を提供しうる。
【００２９】
ＤＲＡＭアレイの物理的なリフレッシュ動作に、メモリ管理のソフトウェアパラダイム（paradigm）（ここで、メモリは、タスクに割り当てられている場合にのみ該当し、割り当てより前又は解放された後には“ドントケア（don't care）”状態を仮定する)を適用することによって、著しい省電力は、有効データを保持しないメモリのセグメントに向けられた不必要なリフレッシュ動作を除くことにより実現されうる。１つの実施形態では、関連するＩＲＭＵビットのセットによる、有効データのトラッキングは、自動的である。この実施形態では、本発明の省電力の利点は、ソフトウェアメモリ管理または選択的にリフレッシュ動作を抑制する能力についての知識のないシステムにおいて有効である。他の実施形態では、ＩＲＭＵメモリの直接制御は、精巧なメモリ管理および最大省電力を可能にする。
【００３０】
ここに使用されるように、用語“独立してリフレッシュ可能なメモリ単位”、すなわちＩＲＭＵは、単一のリフレッシュ動作でリフレッシュされるデータの量を指す。本発明はそのように制限されていないが、ＤＲＡＭアレイのためのＩＲＭＵは典型的に行である。ここに使用されるように、用語“セットする”は、データの値（例えば０または１、あるいはマルチビットパターン）にかかわらず、有効データが関連するＩＲＭＵに記憶されていることを示すためにＩＲＭＵインジケータにデータを書き込むことを指す。“クリアする”は、データの値（例えば０または１、あるいはマルチビットパターン）にかかわらず、有効データが関連するＩＲＭＵに記憶されていないことを示すためにＩＲＭＵインジケータにデータを書き込むことを指す。ここに使用されるように、“ＤＲＡＭアレイ”はダイナミックランダムアクセスメモリアレイを指し、それはＤＲＡＭ集積回路コンポーネントおよびＳＤＲＡＭ集積回路コンポーネントの両方にデータを記憶する。ここに使用されるように、“ＤＲＡＭ”だけ、あるいは“ＤＲＡＭコンポーネント”という用語の範囲は、非シンクロナスＤＲＡＭメモリコンポーネントおよびＳＤＲＡＭコンポーネントの両方を含む。ここに使用されるように、用語“割り当てる（allocate）”はソフトウェアタスクに一連のメモリアドレスを割り当てることを指し、また、用語“解放する（free）”は未割り当てのメモリのプール（pool）に、前に割り当てられたメモリアドレスを返すことを指す。
【００３１】
本発明は、具体的特徴、局面およびその実施形態に関してここに記述されたが、多数の変形、改良および他の実施形態が本発明の広い範囲内で可能であることは明白になるであろう、また、従って、全ての変形、改良および実施形態は本発明の範囲内にみなされるべきである。したがって、この実施形態は、例示的であり、限定的でないものとして、すべての局面の中で解釈されるべきであり、また、添付された請求項の意味および同等の範囲内に入る全ての変更は、そこに包含されるように意図される。
【図１】
2014197446.tif 000005
【図２】
2014197446.tif 000006
【図３】
2014197446.tif 000007
【図４】
2014197446.tif 000008
【図５】
2014197446.tif 000009
【図６】
2014197446.tif 000010
【手続補正書】
【提出日】平成26年6月19日(2014.6.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各独立してリフレッシュ可能なメモリ単位にインジケータを関連づけることと、
独立してリフレッシュ可能なメモリ単位にデータを書き込む際に、前記関連づけられたインジケータを有効データを反映するようにセットすることと、
その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることと
を具備するダイナミックメモリをリフレッシュする方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
本発明は、具体的特徴、局面およびその実施形態に関してここに記述されたが、多数の変形、改良および他の実施形態が本発明の広い範囲内で可能であることは明白になるであろう、また、従って、全ての変形、改良および実施形態は本発明の範囲内にみなされるべきである。したがって、この実施形態は、例示的であり、限定的でないものとして、すべての局面の中で解釈されるべきであり、また、添付された請求項の意味および同等の範囲内に入る全ての変更は、そこに包含されるように意図される。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
各独立してリフレッシュ可能なメモリ単位にインジケータを関連づけることと、
独立してリフレッシュ可能なメモリ単位にデータを書き込む際に、前記関連づけられたインジケータを有効データを反映するようにセットすることと、
その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることと
を具備するダイナミックメモリをリフレッシュする方法。
［Ｃ２］
前記独立してリフレッシュ可能なメモリ単位が行であるＣ１の方法。
［Ｃ３］
前記独立してリフレッシュ可能なメモリ単位が２つ以上のメモリバンクにわたる行を具備するＣ１の方法。
［Ｃ４］
前記インジケータが有効ビットであるＣ１の方法。
［Ｃ５］
前記有効ビットがＤＲＡＭアレイに記憶されるＣ４の方法。
［Ｃ６］
前記有効ビットがスタティックメモリに記憶されるＣ４の方法。
［Ｃ７］
前記有効ビットがレジスタに記憶されるＣ４の方法。
［Ｃ８］
前記関連づけられたインジケータを有効データを反映するようにセットすることは、
前記関連する独立してリフレッシュ可能なメモリ単位にデータを書き込む際に、前記インジケータを自動的にセットすることを具備するＣ１の方法。
［Ｃ９］
前記関連づけられたインジケータを有効データを反映するようにセットすることは、
メモリコントローラからのコマンドで前記インジケータをセットすることを具備するＣ１の方法。
［Ｃ１０］
有効データを反映するようにセットしたインジケータはリセットでクリアされるＣ１の方法。
［Ｃ１１］
有効データを反映するようにセットしたインジケータは、メモリコントローラからのコマンドでクリアされるＣ１の方法。
［Ｃ１２］
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをセルフリフレッシュすることを具備するＣ１の方法。
［Ｃ１３］
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをオートリフレッシュすることを具備するＣ１の方法。
［Ｃ１４］
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
不連続の独立してリフレッシュ可能なメモリ単位を連続してリフレッシュすることを具備するＣ１の方法。
［Ｃ１５］
前記その関連づけられたインジケータがメモリ単位に記憶された有効データを反映する、独立してリフレッシュ可能なメモリ単位だけをリフレッシュすることは、
リフレッシュコマンドを受け取ることと、
現在のリフレッシュアドレスに関連づけられた前記インジケータを検査することと、
前記インジケータが有効データを反映する場合に、前記アドレス指定された、独立してリフレッシュ可能なメモリ単位をリフレッシュすることを具備するＣ１の方法。
［Ｃ１６］
前記インジケータが無効データを反映する場合に、リフレッシュサイクルを抑制することをさらに具備するＣ１４の方法。
［Ｃ１７］
前記インジケータが有効データを反映する場合に、前記リフレッシュアドレスを、有効データを反映するインジケータを有する次の独立してリフレッシュ可能なメモリ単位へインクリメントすることをさらに具備するＣ１４の方法。
［Ｃ１８］
スキップされたリフレッシュアドレスの数に比例してリフレッシュ周波数を減少させることをさらに具備するＣ１６の方法。
［Ｃ１９］
データを記憶するように作動し、複数の独立してリフレッシュ可能なメモリ単位として組織されたＤＲＡＭアレイと、
各々が、独立してリフレッシュ可能なメモリ単位に関連づけられて、有効データが前記独立してリフレッシュ可能なメモリ単位に記憶されているかどうかを示す複数のインジケータと、
制御信号を受け取り、かつ前記インジケータを検査して、有効データを記憶している前記独立してリフレッシュ可能なメモリ単位だけをリフレッシュするように作動するコントローラと
を具備するＤＲＡＭコンポーネント。
［Ｃ２０］
前記ＤＲＡＭアレイの中の前記独立してリフレッシュ可能なメモリ単位のアドレスを生成するように作動するリフレッシュカウンタをさらに具備するＣ１９のＤＲＡＭコンポーネント。
［Ｃ２１］
データが、関連する独立してリフレッシュ可能なメモリ単位に書き込まれている場合にインジケータをセットするように作動する回路をさらに具備するＣ１９のＤＲＡＭコンポーネント。
［Ｃ２２］
前記インジケータが初期設定中にクリアされるＣ１９のＤＲＡＭコンポーネント。
［Ｃ２３］
前記コントローラは、制御信号に応答して前記インジケータをセットまたはクリアするようにさらに作動するＣ１９のＤＲＡＭコンポーネント。
［Ｃ２４］
前記インジケータは、１つ以上の独立してリフレッシュ可能なメモリ単位に記憶されるＣ１９のＤＲＡＭコンポーネント。
［Ｃ２５］
前記インジケータは、前記ＤＲＡＭアレイとは異なるメモリに記憶されるＣ１９のＤＲＡＭコンポーネント。
［Ｃ２６］
ソフトウェアタスクから、前記タスクにメモリを割り当てるリクエストを受け取ることと、
メモリ装置中の１つ以上の独立してリフレッシュ可能なメモリ単位から、前記タスクにメモリを割り当てることと、
前記独立してリフレッシュ可能なメモリ単位に向けられたリフレッシュ動作を抑制しないように前記メモリ装置に指示するために、各独立してリフレッシュ可能なメモリ単位に関連づけられたインジケータをセットすることとのステップを行なうように作動する少なくともメモリマネージャコンピュータプログラムを含むコンピュータ読取可能媒体。
［Ｃ２７］
前記メモリマネージャコンピュータプログラムは、
前記ソフトウェアタスクから、以前に前記タスクに割り当てられたメモリを解放するリクエストを受け取ることと、
以前に前記タスクに割り当てられたメモリを解放することと、
前記独立してリフレッシュ可能なメモリ単位中のメモリがすべて解放されている場合、その独立してリフレッシュ可能なメモリ単位に向けられた、リフレッシュ動作を抑制するように前記メモリ装置に指示するために前記関連づけられたインジケータをクリアすることとのステップを行なうようにさらに作動するＣ２６のコンピュータ読取可能媒体。
［Ｃ２８］
前記メモリマネージャコンピュータプログラムが、シングルプロセッサ上で実行されている複数のソフトウェアタスクにメモリを割り当てるＣ２６のコンピュータ読取可能媒体。
［Ｃ２９］
前記メモリマネージャコンピュータプログラムが、異なるプロセッサ上で各々実行されている２つ以上のソフトウェアタスクにメモリを割り当てるＣ２６のコンピュータ読取可能媒体。
［Ｃ３０］
前記メモリマネージャコンピュータプログラムは、前記関連する独立してリフレッシュ可能なメモリ単位に最初にデータを書き込む際に、独立してリフレッシュ可能なメモリ単位インジケータをセットするＣ２６のコンピュータ読取可能媒体。
【外国語明細書】
2014197446000001.pdf