(57)【要約】【課題】効果的に電力消費を低減することができるメモリ制御装置を提供する。【解決手段】本発明は、リフレッシュのための電力供給を単位領域毎に制御するメモリ制御装置である。判定部２２は、確保要求をアプリケーションから受け付け、当該確保要求に基づいて、データがリフレッシュの必要があるか否かを判定する。次に、メモリ割当部２３は、リフレッシュの必要があると判定されたデータに対しては第１のメモリバンク中のメモリ領域を割り当て、リフレッシュの必要がないと判定されたデータに対しては第２のメモリバンク中のメモリ領域を割り当てる。そして、メモリ制御部２５は、第１のメモリバンクをリフレッシュを行うリフレッシュ領域に設定するとともに、第２のメモリバンクをリフレッシュを停止する非リフレッシュ領域に設定する。【選択図】　　　　図２
2004047051.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御装置であって、
前記メモリにデータを記憶するメモリ領域を確保するための確保要求をアプリケーションから受け付け、当該確保要求に基づいて、当該データがリフレッシュの必要があるか否かを判定する判定部と、
リフレッシュの必要があると判定されたデータに対しては第１の単位領域中のメモリ領域を割り当て、リフレッシュの必要がないと判定されたデータに対しては第１の単位領域とは異なる第２の単位領域中のメモリ領域を割り当てるメモリ割当部と、
第１の単位領域をリフレッシュを行うリフレッシュ領域に設定するとともに、第２の単位領域をリフレッシュを停止する非リフレッシュ領域に設定するメモリ制御部とを備える、メモリ制御装置。
【請求項２】
前記メモリ割当部は、前回のリフレッシュの際にリフレッシュ領域であった単位領域を第１の単位領域とし、前回のリフレッシュにおいて非リフレッシュ領域であった単位領域を第２の単位領域とする、請求項１に記載のメモリ制御装置。
【請求項３】
前記メモリに記憶されているデータの記憶位置を移動させるデータ移動部をさらに備え、
前記メモリ割当部は、リフレッシュの必要がないと判定されたデータに対してメモリ領域を割り当てる際において、非リフレッシュ領域に空きがない場合、リフレッシュ領域に含まれる単位領域を第２の単位領域とし、
前記データ移動部は、リフレッシュの必要がないと判定されたデータに対してリフレッシュ領域に含まれる単位領域中のメモリ領域が割り当てられる場合、当該単位領域中にすでに記憶されているデータを、リフレッシュ領域における他の単位領域に移動させる、請求項２に記載のメモリ制御装置。
【請求項４】
前記メモリに記憶されている各データについて、前記アプリケーションに対して当該データの記憶位置を示すための論理アドレスと、当該データの前記メモリにおける実際の記憶位置を示す物理アドレスとを対応付けたメモリ情報を記憶するメモリ情報記憶部をさらに備え、
前記データ移動部は、データを移動させた場合、前記メモリ情報の内容について、当該データの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更する、請求項３に記載のメモリ制御装置。
【請求項５】
前記データ移動部は、ＣＰＵが所定のプログラム動作を実行することによって実現され、当該ＣＰＵの単位時間あたりの処理量が予め定められた所定量よりも小さい場合に、データの記憶位置の移動を行う、請求項３に記載のメモリ制御装置。
【請求項６】
確保要求を生成することが可能な複数のアプリケーションについて処理優先度が設定されており、
前記データ移動部は、確保要求を生成したアプリケーションの処理優先度が他のアプリケーションに比べて低い場合に、データの記憶位置の移動を行う、請求項３に記載のメモリ制御装置。
【請求項７】
前記判定部は、確保要求と、当該確保要求によって確保されるメモリ領域に記憶されるデータがリフレッシュの必要があるか否かを示す情報との対応を示す情報を記憶しておき、当該対応を示す情報を参照することによって、当該データがリフレッシュの必要があるか否かを判定する、請求項１に記載のメモリ制御装置。
【請求項８】
前記判定部は、データの必要保持期間が前記メモリのリフレッシュ周期よりも長いか短いかに応じて、当該データがリフレッシュの必要があるか否かを判定する、請求項１に記載のメモリ制御装置。
【請求項９】
記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御装置であって、
前記メモリに記憶されている各データについて、アプリケーションに対して当該データの記憶位置を示すための論理アドレスと、当該データの前記メモリにおける実際の記憶位置を示す物理アドレスとを対応付けたメモリ情報を記憶するメモリ情報記憶部と、
前記メモリの少なくとも１つの単位領域について、当該単位領域に記憶されている全てのデータの記憶位置を、データが記憶されている他の単位領域に移動させるとともに、前記メモリ情報の内容について、移動させたデータの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更するデータ移動部と、
前記メモリ情報に基づいて、データが記憶されている単位領域を、リフレッシュを行うリフレッシュ領域に設定するとともに、データが記憶されていない単位領域を、リフレッシュを停止する非リフレッシュ領域に設定するメモリ制御部とを備える、メモリ制御装置。
【請求項１０】
記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御方法であって、
前記メモリにデータを記憶するメモリ領域を確保するための確保要求をアプリケーションから受け付け、当該確保要求に基づいて、当該データがリフレッシュの必要があるか否かを判定する判定ステップと、
リフレッシュの必要があると判定されたデータに対しては第１の単位領域中のメモリ領域を割り当て、リフレッシュの必要がないと判定されたデータに対しては第１の単位領域とは異なる第２の単位領域中のメモリ領域を割り当てるメモリ割当ステップと、
第１の単位領域をリフレッシュを行うリフレッシュ領域に設定するとともに、第２の単位領域をリフレッシュを停止する非リフレッシュ領域に設定するメモリ制御ステップとを備える、メモリ制御方法。
【請求項１１】
記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御方法であって、
前記メモリに記憶されている各データについて、前記アプリケーションに対して当該データの記憶位置を示すための論理アドレスと、当該データの前記メモリにおける実際の記憶位置を示す物理アドレスとを対応付けたメモリ情報を記憶するメモリ情報を予め記憶しておき、
前記メモリの少なくとも１つの単位領域について、当該単位領域に記憶されている全てのデータの記憶位置を、データが記憶されている他の単位領域に移動させるとともに、前記メモリ情報の内容について、移動させたデータの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更するデータ移動ステップと、
前記メモリ情報に基づいて、データが記憶されていない単位領域を、リフレッシュを行うリフレッシュ領域に設定するとともに、データが記憶されていない単位領域を、リフレッシュを停止する非リフレッシュ領域に設定するメモリ制御ステップとを備える、メモリ制御方法。
【請求項１２】
前記メモリを有するコンピュータに請求項１０または１１に係るメモリ制御方法を実行させる、コンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ制御装置に関し、より特定的には、定期的な電力供給を必要とするメモリの消費電力を制御するメモリ制御装置に関する。
【０００２】
【従来の技術】
従来から、パソコンに代表されるデータ処理装置においては、ソフトウェアであるアプリケーションによって処理されるデータを記憶するために、ＤＲＡＭ（Ｄｙｎａｍｉｃ　ＲＡＭ）や、高速で動作するＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　ＤＲＡＭ）等のメモリが主に用いられる。これらのメモリは、データをコンデンサの電荷に変換し保持する構造であるので、データを保持するためにコンデンサの再充電処理、すなわち定期的な電力供給（リフレッシュ）が必須となる。そのため、これらのメモリの電力消費は、リフレッシュの必要がないＳＲＡＭ（Ｓｔａｔｉｃ　ＲＡＭ）に比べて高くなってしまう。
【０００３】
そこで、従来、ハードウェアの機構を通してメモリの消費電力を制御することが一般的に行われている。また、ソフトウェアによる制御によってメモリの消費電力を制御するメモリ制御装置が考えられている（例えば、特許文献１参照）。かかる装置は、メモリが持つ複数のメモリバンクのいくつかに対するリフレッシュを省略することによって、全てのメモリバンクをリフレッシュする場合に比べて電力消費を抑えるものである。より具体的には、メモリ制御装置は、プログラムに対するメモリ領域の割り当ておよび解放の状況を管理する。そして、未使用のメモリバンクについてはリフレッシュを省略することによって、消費電力が低減される。なお、上記のメモリ制御装置において、データを圧縮したり２次記憶に退避することによって、リフレッシュ不要な未使用のメモリバンクを作ることも考えられている。
【０００４】
一方、近年では、パソコン等に限らず情報家電端末においても、プログラム実行環境であるＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）が搭載されるようになっている。このような情報家電端末においては省電力対策が必須であり、上記のようなメモリの省電力化の要求が高い。
【０００５】
【特許文献１】
特開平９−２１２４１６号公報
【０００６】
【発明が解決しようとする課題】
上述したように、従来のメモリ制御装置は、メモリが使用されているか否かに応じてリフレッシュを行うか否かを制御するものである。つまり、メモリにおける使用領域の割合が高ければ、リフレッシュが省略される領域は少なくなる。そして、メモリのほとんどの領域が使用されている場合、リフレッシュが省略される領域はほとんどなくなってしまう。以上のように、従来のメモリ制御装置では、メモリが使用されている割合によっては、省電力の効果をほとんど得られない場合があった。そのため、従来のメモリ制御装置を用いたデータ処理装置においては、効果的に電力消費を低減することができない場合があった。
【０００７】
一方、従来のメモリ制御装置において、メモリに記憶されているデータの記憶位置を移動させることによって、電力消費をさらに低減することが考えられる。すなわち、あるメモリバンクに記憶されているデータを、他のメモリバンクの空いているメモリ領域に移動することによって、移動元のメモリバンクを未使用にする。これによって、移動元のメモリバンクはリフレッシュが不要になるので、電力消費をさらに低減することができると考えられる。しかし、データを移動させた場合、当該データを使用するアプリケーションに対してデータが移動したことを知らせる必要がある。つまり、電力消費をさらに低減させるためにデータを移動させようとする場合、データ移動の度にアプリケーションに対して通知を行わなければならない。さらに、アプリケーションは、メモリにおけるデータの記憶位置を変更する処理を行わなければならない。従って、データを移動させることによって多くの処理が必要となるという理由で、データの移動を行うことは困難であった。
【０００８】
それゆえ、本発明の目的は、効果的に電力消費を低減することができるメモリ制御装置を提供することである。
【０００９】
【課題を解決するための手段および発明の効果】
上記の目的を達成するため、本発明は以下の特徴を有する。すなわち、第１の発明は、記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御装置であって、
メモリにデータを記憶するメモリ領域を確保するための確保要求をアプリケーションから受け付け、当該確保要求に基づいて、当該データがリフレッシュの必要があるか否かを判定する判定部と、
リフレッシュの必要があると判定されたデータに対しては第１の単位領域中のメモリ領域を割り当て、リフレッシュの必要がないと判定されたデータに対しては第１の単位領域とは異なる第２の単位領域中のメモリ領域を割り当てるメモリ割当部と、
第１の単位領域をリフレッシュを行うリフレッシュ領域に設定するとともに、第２の単位領域をリフレッシュを停止する非リフレッシュ領域に設定するメモリ制御部とを備える。
【００１０】
上記発明によれば、メモリに記憶されるデータのうち、リフレッシュの必要があるデータのみがリフレッシュ領域に記憶される。そして、当該リフレッシュ領域についてリフレッシュのための電力が供給され、非リフレッシュ領域には当該電力が供給されない。このように、メモリに記憶されるべきデータは、データが記憶される用途に応じてリフレッシュ領域および非リフレッシュ領域のいずれかに割り振られる。従って、たとえメモリの全ての領域が使用されていたとしても、リフレッシュの必要がないデータが記憶されている領域については、リフレッシュのための電力を消費しなくてよい。すなわち、本発明によれば、メモリが使用されている割合によらず、効果的に電力消費を低減することができる。
【００１１】
第２の発明は、メモリ割当部は、前回のリフレッシュの際にリフレッシュ領域であった単位領域を第１の単位領域とし、前回のリフレッシュにおいて非リフレッシュ領域であった単位領域を第２の単位領域とする。
【００１２】
上記発明によれば、リフレッシュを行う度に、単位領域毎にリフレッシュ領域および非リフレッシュ領域のいずれかを設定し直す必要がない。
【００１３】
第３の発明は、メモリに記憶されているデータの記憶位置を移動させるデータ移動部をさらに備え、
メモリ割当部は、リフレッシュの必要がないと判定されたデータに対してメモリ領域を割り当てる際において、非リフレッシュ領域に空きがない場合、リフレッシュ領域に含まれる単位領域を第２の単位領域とし、
データ移動部は、リフレッシュの必要がないと判定されたデータに対してリフレッシュ領域に含まれる単位領域中のメモリ領域が割り当てられる場合、当該単位領域中にすでに記憶されているデータを、リフレッシュ領域における他の単位領域に移動させる。
【００１４】
上記発明によれば、非フレッシュ領域に空きがないことが原因で、リフレッシュの必要がないデータがリフレッシュ領域に記憶されている場合、当該データが記憶されている単位領域中の他のデータ（リフレッシュの必要があるデータ）は、他の単位領域に移動される。従って、当該単位領域には、リフレッシュの必要がないデータのみが記憶されることとなる。その結果、当該単位領域についてリフレッシュを行う必要がなくなる。以上より、本発明によれば、データの移動を行わない場合に比べて、リフレッシュによる電力消費をさらに低減することができる。
【００１５】
第４の発明は、メモリに記憶されている各データについて、アプリケーションに対して当該データの記憶位置を示すための論理アドレスと、当該データのメモリにおける実際の記憶位置を示す物理アドレスとを対応付けたメモリ情報を記憶するメモリ情報記憶部をさらに備え、
データ移動部は、データを移動させた場合、メモリ情報の内容について、当該データの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更する。
【００１６】
上記発明によれば、データの移動が行われても、当該データの論理アドレスは変更されない。従って、データの移動がアプリケーションに影響を与えないので、データの移動に伴ってアプリケーション側の設定を変更する必要がない。つまり、かかる変更を考慮したアプリケーションを用意する必要がないので、より多くのアプリケーションに対して適用できるメモリ制御装置を実現することができる。
【００１７】
第５の発明は、データ移動部は、ＣＰＵが所定のプログラム動作を実行することによって実現され、当該ＣＰＵの単位時間あたりの処理量が予め定められた所定量よりも小さい場合に、データの記憶位置の移動を行う。
【００１８】
上記発明によれば、メモリ制御装置の処理負荷を平均化することができるので、メモリ制御装置の消費電力を低減することができる。
【００１９】
第６の発明は、確保要求を生成することが可能な複数のアプリケーションについて処理優先度が設定されており、
データ移動部は、確保要求を生成したアプリケーションの処理優先度が他のアプリケーションに比べて低い場合に、データの記憶位置の移動を行う。
【００２０】
上記発明によれば、メモリ制御装置の処理負荷を平均化することができるので、メモリ制御装置の消費電力を低減することができる。
【００２１】
第７の発明は、判定部は、確保要求と、当該確保要求によって確保されるメモリ領域に記憶されるデータがリフレッシュの必要があるか否かを示す情報との対応を示す情報を記憶しておき、当該対応を示す情報を参照することによって、当該データがリフレッシュの必要があるか否かを判定する。
【００２２】
上記発明によれば、リフレッシュの必要があるデータか否かについての判定を容易に行うことができる。
【００２３】
第８の発明は、判定部は、データの必要保持期間がメモリのリフレッシュ周期よりも長いか短いかに応じて、当該データがリフレッシュの必要があるか否かを判定する。
【００２４】
上記発明によれば、リフレッシュの必要があるデータか否かについて正確に判定することができる。
【００２５】
第９の発明は、記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御装置であって、メモリに記憶されている各データについて、アプリケーションに対して当該データの記憶位置を示すための論理アドレスと、当該データのメモリにおける実際の記憶位置を示す物理アドレスとを対応付けたメモリ情報を記憶するメモリ情報記憶部と、
メモリの少なくとも１つの単位領域について、当該単位領域に記憶されている全てのデータの記憶位置を、データが記憶されている他の単位領域に移動させるとともに、メモリ情報の内容について、移動させたデータの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更するデータ移動部と、
メモリ情報に基づいて、データが記憶されている単位領域を、リフレッシュを行うリフレッシュ領域に設定するとともに、データが記憶されていない単位領域を、リフレッシュを停止する非リフレッシュ領域に設定するメモリ制御部とを備える。
【００２６】
上記発明によれば、ある単位領域に記憶されているデータを他の単位領域に移動させることによって、データの移動元の単位領域に対してリフレッシュのための給電を停止することができる。それゆえ、効果的に電力消費を低減することができる。さらに、上記発明によれば、データの移動が行われても、当該データの論理アドレスは変更されない。従って、データの移動がアプリケーションに影響を与えないので、データの移動に伴ってアプリケーション側の設定を変更する必要がない。従って、アプリケーション側の設定の変更等に関連する処理を行う必要がないので、データの移動処理を容易に行うことができる。また、かかる変更を考慮したアプリケーションを用意する必要がないので、より多くのアプリケーションに対して適用できるメモリ制御装置を実現することができる。
【００２７】
第１０の発明は、記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御方法であって、
メモリにデータを記憶するメモリ領域を確保するための確保要求をアプリケーションから受け付け、当該確保要求に基づいて、当該データがリフレッシュの必要があるか否かを判定する判定ステップと、
リフレッシュの必要があると判定されたデータに対しては第１の単位領域中のメモリ領域を割り当て、リフレッシュの必要がないと判定されたデータに対しては第１の単位領域とは異なる第２の単位領域中のメモリ領域を割り当てるメモリ割当ステップと、
第１の単位領域をリフレッシュを行うリフレッシュ領域に設定するとともに、第２の単位領域をリフレッシュを停止する非リフレッシュ領域に設定するメモリ制御ステップとを備える。
【００２８】
第１１の発明は、記憶領域が複数の単位領域に分割されたメモリに対するリフレッシュのための電力供給を当該単位領域毎に制御するメモリ制御方法であって、
メモリに記憶されている各データについて、アプリケーションに対して当該データの記憶位置を示すための論理アドレスと、当該データのメモリにおける実際の記憶位置を示す物理アドレスとを対応付けたメモリ情報を記憶するメモリ情報を予め記憶しておき、
メモリの少なくとも１つの単位領域について、当該単位領域に記憶されている全てのデータの記憶位置を、データが記憶されている他の単位領域に移動させるとともに、メモリ情報の内容について、移動させたデータの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更するデータ移動ステップと、
メモリ情報に基づいて、データが記憶されていない単位領域を、リフレッシュを行うリフレッシュ領域に設定するとともに、データが記憶されていない単位領域を、リフレッシュを停止する非リフレッシュ領域に設定するメモリ制御ステップとを備える。
【００２９】
第１２の発明は、メモリを有するコンピュータに、第１０または第１１の発明に係るメモリ制御方法を実行させる、コンピュータ読み取り可能なプログラムである。
【００３０】
【発明の実施の形態】
（実施の形態１）
まず、実施の形態１に係るメモリ制御装置について説明する。図１は、実施の形態１に係るメモリ制御装置のハードウェア構成の一例を示す図である。図１に示すメモリ制御装置１においては、データを記憶する主メモリ１１と、プログラムの実行処理を行うＣＰＵ１２と、画面やキー等の入出力装置１３とが、バスを介して接続されている。主メモリ１１は、例えばＳＤＲＡＭのような、所定の時間間隔でリフレッシュが必要なメモリであり、ＣＰＵ１２におけるプログラム（アプリケーション）の実行処理において扱われるデータを記憶するために用いられる。図１に示すように、主メモリ１１には、電源制御部１１１と、複数のメモリバンク（それぞれ、メモリバンクＢ１〜Ｂ４と呼ぶ。なお、「Ｂ１」〜「Ｂ４」は、後述するバンク番号を示す。）１１２〜１１５とが含まれる。なお、以下における実施形態の説明においては、説明の簡単のため、メモリバンクの数を４つとして説明を行う。
【００３１】
実施の形態１においては、主メモリ１１は、リフレッシュのための電力供給をメモリバンク１１２〜１１５毎に制御することが可能なメモリである。具体的には、ＣＰＵ１２は、各メモリバンク１１２〜１１５についてリフレッシュを行うか否かを主メモリ１１に指示する。電源制御部１１１は、ＣＰＵ１２からの指示に従って、各メモリバンク１１２〜１１５を単位としてリフレッシュを行う。なお、以下の説明においては、リフレッシュが行われる周期、すなわち、前回のリフレッシュが行われてから次のリフレッシュが行われるまでの時間をリフレッシュ周期と呼ぶ。また、主メモリ１１のメモリ領域（メモリバンク１１２〜１１５）のうち、リフレッシュが行われる（電源制御部１１１によって電力が供給される）領域をリフレッシュ領域と呼び、リフレッシュが行われない（電源制御部１１１によって電力が供給されない）領域を非リフレッシュ領域と呼ぶ。
【００３２】
なお、他の実施の形態においては、ＣＰＵ１２は、その内部に内部メモリ（例えばＳＲＡＭで構成される。）やキャッシュを搭載する構成であってもよい。このような構成である場合、ＣＰＵ１２で扱われるデータが記憶される記憶媒体は、高速に参照する度合いに応じて、キャッシュ、内部メモリ、主メモリ１１の順番で選択される。
【００３３】
図２は、実施の形態１に係るメモリ制御装置の機能的な構成を示すブロック図である。図２において、メモリ制御装置１は、図１に示す主メモリ１１を制御するための構成として、アプリケーション実行部２１と、判定部２２と、メモリ割当部２３と、メモリ情報記憶部２４と、メモリ制御部２５と、電力検知部２６とを備えている。これらの構成要素は、ＣＰＵ１２が所定のプログラム動作を行うことによって実現される。さらに、典型的には、判定部２２、メモリ割当部２３、メモリ情報記憶部２４およびメモリ制御部２５は、メモリ制御装置１に搭載されるＯＳの機能の一部として実現される。
【００３４】
アプリケーション実行部２１は、メモリ制御装置１に格納されている種々のアプリケーションを実行する。このアプリケーションの実行中にデータが主メモリ１１に書き込まれる。主メモリ１１にデータを書き込む際、アプリケーション実行部２１によって実行されるアプリケーションによって、データを主メモリ１１に記憶するための確保要求が生成される。確保要求とは、主メモリ１１上のメモリ領域を、データを記憶するために確保する要求である。なお、確保要求は、単にメモリ領域を確保することのみの要求に限らず、メモリ領域を確保することとともに、当該確保されたメモリ領域にデータを書き込むことを含む要求であってもよい。また、以下の説明では、確保要求によって確保される主メモリ１１上のメモリ領域に書き込まれるデータを、対象データと呼ぶ。
【００３５】
判定部２２は、上記確保要求をアプリケーションから受け付ける。そして、受け付けられた確保要求に係る対象データが、リフレッシュを行う必要があるか否か判定する。実施の形態１においては、「リフレッシュを行う必要があるか否か」とは、「データの主メモリ１１内での必要保持期間がリフレッシュ周期よりも長いか短いか」という意味である。ここで、必要保持期間とは、データの格納が終了した時点からデータの読み出しが終了する時点までの時間をいう。つまり、リフレッシュを行う必要のないデータとは、必要保持期間がリフレッシュ周期に比して短いデータである。このようなデータであれば、リフレッシュ周期を超えて保持する必要がないので、このようなデータのみを格納するメモリバンクは、リフレッシュを行う必要がない。実施の形態１に係るメモリ制御装置１は、リフレッシュが必要なデータと不要なデータとを判別し、それぞれ異なるメモリバンクに書き込む。そして、リフレッシュ不要なデータが書き込まれたメモリバンクについてはリフレッシュを行わないように制御することによって、リフレッシュによる電力消費を低減することを可能とするのである。
【００３６】
なお、本実施の形態においては、「リフレッシュを行う必要のないデータ」の条件を、「必要保持期間がリフレッシュ周期に比して短いこと」とした。ここで、他の実施の形態においては、「リフレッシュを行う必要のないデータ」の条件を、「必要保持期間がリフレッシュ周期に比して短いこと」に加え、「データの読み出しが終了した後にはアプリケーションから参照されないこと」としてもよい。
【００３７】
なお、判定部２２におけるリフレッシュが必要であるか否かの判定は、上記確保要求に基づいて行われる。具体的には、アプリケーションからの種々の確保要求のそれぞれに対して、リフレッシュが必要であるか不要であるかを予め決定しておく。典型的には、確保要求とリフレッシュが必要であるか否かを示す情報とを対応付けたテーブルを判定部２２において用意しておく。そして、判定部２２がアプリケーションによる確保要求を受け付けた際には、当該テーブルを参照することによってリフレッシュが必要であるか否かを判定する。なお、リフレッシュ周期は一般的に１０〜１００μｓｅｃのオーダーである。また、ＣＰＵ１２の動作速度が数十ＭＨｚであるとすると数百サイクルの限られた処理の間の時間となる。従って、この時間以内にデータの格納からデータの読み出しまでの処理が終了すると考えられる確保要求については、リフレッシュが不要であると決定しておけばよい。
【００３８】
例えば、アプリケーションからの確保要求の中に、対象データの出力先を示す情報が含まれている場合、当該情報によってリフレッシュが必要であるか否かを判定することができる。例えば、対象データをハードディスクに書き込むための確保要求である場合、ハードディスクへの書き込みには時間を要するので、主メモリ１１に対象データを格納しておく時間も比較的長くなる。従って、かかる確保要求はリフレッシュが必要であると判定される。一方、ＬＡＮ等の高速な通信回線に対象データを送出するための確保要求である場合、主メモリ１１に対象データを格納しておく時間は短くてよい。従って、かかる確保要求はリフレッシュが不要であると判定される。以上のように、確保要求に含まれる一部の情報を用いて、リフレッシュが必要であるか否かを判定してもよい。なお、対象データの出力先のように、メモリを使用する用途を示す情報を用途情報と呼ぶ。
【００３９】
なお、リフレッシュが不要な対象データの一例として、トランザクションの保証処理の際のデータがある。トランザクションの保証処理とは、装置の電力が急に切断された場合に、次に装置を起動した際におけるシステムの無矛盾性を保証するために、切断直前に行われていた処理のデータを例えば１０μｓｅｃ以内に緊急的に退避するというような処理である。また、リフレッシュが不要な対象データとしては、タイマ処理や割り込みハンドラといった、短時間で完了することが保証されている処理で用いられるデータも考えられる。
【００４０】
さらに、リフレッシュが不要な対象データの他の例としては、ＣＰＵ１２がキャッシュおよび内部メモリを有する場合、当該キャッシュまたは内部メモリにデータを格納する際に、主メモリ１１に一時的に退避されるデータもある。また、画像データを表示するために複数の部品データを全体の画像データに重ね合わせる処理を行う場合における各部品のデータも、リフレッシュが不要であるデータと考えられる。その他、動画像データの処理において、１つ前の画像に基づいて次の画像を生成する処理が行われる場合、当該１つ前の画像からの変更割合を示すデータも、リフレッシュが不要であるデータと考えられる。
【００４１】
図２において、メモリ割当部２３は、判定部２２によってリフレッシュの必要があると判定された対象データに対してはリフレッシュ領域のメモリバンク中のメモリ領域を割り当てる。一方、リフレッシュの必要がないと判定された対象データに対しては非リフレッシュ領域のメモリバンク中のメモリ領域を割り当てる。つまり、メモリ割当部２３は、判定部２２の判定結果に応じて、リフレッシュ領域および非リフレッシュ領域のいずれかに属するメモリバンク中のメモリ領域を対象データのために確保する。なお、主メモリ１１の各メモリバンク１１２〜１１５のうち、いずれの領域がリフレッシュ領域に設定され、いずれの領域が非リフレッシュ領域に設定されているのかについては、メモリ情報記憶部２４に記憶されているメモリ情報によって示される。
【００４２】
メモリ情報記憶部２４は、主メモリ１１の各メモリバンク１１２〜１１５について、リフレッシュ領域であるか、または非リフレッシュ領域であるか等を示すメモリ情報を記憶する。以下、メモリ情報の詳細を説明する。
【００４３】
図３は、実施の形態１に係るメモリ情報の例を示す図である。図３に示すように、メモリ情報には、アプリケーションＩＤ（図３では、「ＡｐＩＤ」と示す。）と、論理アドレスと、物理アドレスと、バンク番号と、リフレッシュ情報とが含まれる。アプリケーションＩＤは、アプリケーション実行部２１によって実行される種々のアプリケーションを識別するための情報である。バンク番号は、４つのメモリバンクを識別するための情報である。リフレッシュ情報は、メモリバンクをリフレッシュするか否かを示す情報である。図３では、リフレッシュ情報は、リフレッシュが行われることを示す「１」またはリフレッシュが行われないことを示す「０」のいずれかで表現される。
【００４４】
論理アドレスは、アプリケーションに対して主メモリ１１におけるデータの記憶位置を示すための情報である。つまり、アプリケーションは、論理アドレスによってデータの記憶位置を管理する。論理アドレスは、例えば「Ｐ１０」や「Ｐ１１」といったページ番号として表現される。物理アドレスは、主メモリ１１におけるデータの実際の記憶位置を示す情報である。実施の形態１では、メモリ情報には、論理アドレスは物理アドレスと対応付けられた構成で格納される。この構成によって、主メモリ１１においてデータの記憶位置が移動された場合、すなわち、当該データの物理アドレスが変更された場合であっても、論理アドレスを変換する必要がない。すなわち、あるデータの物理アドレスが変更された場合であっても、物理アドレスと論理アドレスとの対応を変更すれば、当該データの論理アドレスを変更する必要がない。アプリケーションは論理アドレスによってデータの記憶位置を管理するので、論理アドレスと物理アドレスとを対応付ける構成によって、アプリケーションは、主メモリ１１においてデータの記憶位置が変更されても当該変更の影響を受けない。
【００４５】
メモリ制御部２５は、リフレッシュを行うメモリバンクを電源制御部１１１に対して指示する。つまり、各メモリバンク１１２〜１１５に対してリフレッシュ領域および非リフレッシュ領域のいずれかを設定する。具体的には、リフレッシュの必要がある対象データに対して割り当てられたメモリ領域を含むメモリバンクをリフレッシュ領域に設定する。逆に、リフレッシュの必要がない対象データに対して割り当てられたメモリ領域を含むメモリバンクを非リフレッシュ領域に設定する。さらに、メモリ制御部２５は、リフレッシュ領域から非リフレッシュ領域への変更または非リフレッシュ領域からリフレッシュ領域への変更に関して、主メモリ１１をメモリバンク１１２〜１１５を単位として制御する。その他、メモリ制御部２５は、アプリケーションから渡されたデータを主メモリ１１に書き込む。
【００４６】
電力検知部２６は、メモリ制御装置１に供給される電力が、装置内部の電池によるものであるか、または、装置外部の電源によるもの（例えば、ＡＣアダプタを使用する場合）であるかを検知する。
【００４７】
次に、実施の形態１に係るメモリ制御装置１の動作を説明する。具体的には、主メモリ１１にデータを記憶するための上記確保要求がアプリケーションによって生成された場合に、当該確保要求に基づいて、当該データを記憶するためのメモリ領域を割り当てる際の動作を説明する。
【００４８】
図４は、実施の形態１に係るメモリ制御装置１の処理の流れを示すフローチャートである。まず、ステップＳ１において、判定部２２は、上記確保要求をアプリケーションから受け付ける。続くステップＳ２において、電力検知部２６は、メモリ制御装置１に現在供給されている電力が装置内部の電池によるものであるか、それとも、外部電源によるものであるかを判定する。ステップＳ２の判定の結果、メモリ制御装置１の電力が装置内部の電池によって供給されていると判定された場合、ステップＳ３の処理が行われる。具体的には、ステップＳ１の判定結果は電力検知部２６から判定部２２へ渡され、当該判定結果を受け取った判定部２２がステップＳ３の処理を行う。一方、ステップＳ２の判定の結果、メモリ制御装置１の電力が外部電源によって供給されていると判定された場合、ステップＳ４の処理が行われる。具体的には、ステップＳ１の判定結果は電力検知部２６からメモリ割当部２３へ渡され、当該判定結果を受け取ったメモリ割当部２３がステップＳ４の処理を行う。
【００４９】
以上のように、実施の形態１においては、装置内部の電池が電源である場合にのみ、電力消費を抑えるためにステップＳ３の判定を行っている。換言すれば、外部電源から電力が供給される場合には電力消費を低減する必要性が低いので、電力消費を抑えるための処理を行わない。このように、実施の形態１においては、真に必要な場合にのみ電力消費を抑えるための処理を行っている。なお、上記においては、外部電源から電力が供給される場合にステップＳ４以降の処理を行っているが、他の実施形態においては、外部電源から電力が供給される場合には、任意のメモリ領域を対象データに割り当て、全てのメモリバンク１１２〜１１５をリフレッシュ領域に設定するようにしてもよい。
【００５０】
ステップＳ３において、判定部２２は、ステップＳ１で受け付けた確保要求に基づいて、対象データはリフレッシュを行う必要があるか否かを判定する。この判定は、具体的には、上述したように、確保要求とリフレッシュが必要であるか否かを示す情報とを対応付けたテーブルを参照することによって行われる。判定部２２は、ステップＳ３の判定結果をメモリ割当部２３に渡す。メモリ割当部２３は、当該判定結果に応じてステップＳ４またはステップＳ６の処理を行う。すなわち、ステップＳ３において対象データはリフレッシュを行う必要があると判定された場合、ステップＳ４の処理が行われる。一方、ステップＳ３において対象データはリフレッシュを行う必要がないと判定された場合、ステップＳ６の処理が行われる。
【００５１】
ステップＳ４において、メモリ割当部２３は、リフレッシュ領域に空きがあるか否かを判定する。この判定の結果、リフレッシュ領域に空きがある場合、すなわち、リフレッシュ領域における空き領域が対象データを記憶するのに必要な領域よりも大きい場合、ステップＳ７の処理が行われる。一方、リフレッシュ領域に空きがない場合、すなわち、対象データを記憶するのに必要な領域がリフレッシュ領域において不足している場合、ステップＳ５の処理が行われる。なお、リフレッシュ領域に空きがあるか否かの判定は、メモリ情報記憶部２４に記憶されているメモリ情報を参照することによって行うことができる。
【００５２】
ステップＳ５において、メモリ割当部２３は、非リフレッシュ領域に空きがあるか否かを判定する。この判定は、リフレッシュ領域であるか非リフレッシュ領域であるかという点で異なる以外は、ステップＳ４の判定と同様である。この判定の結果、非リフレッシュ領域に空きがある場合、ステップＳ８の処理が行われる。一方、ステップＳ５において非リフレッシュ領域に空きがない場合とは、リフレッシュ領域にも非リフレッシュ領域にも対象データを記憶するだけの空き領域がない場合である。従って、この場合、メモリ割り当てが失敗したとして処理を終了する。
【００５３】
ステップＳ６において、メモリ割当部２３は、非リフレッシュ領域に空きがあるか否かを判定する。この判定は、ステップＳ５の判定と同様である。この判定の結果、非リフレッシュ領域に空きがある場合、ステップＳ８の処理が行われる。一方、非リフレッシュ領域に空きがない場合、ステップＳ４の処理が行われる。
【００５４】
ステップＳ７において、メモリ割当部２３は、対象データに対してリフレッシュ領域のメモリを割り当てる。つまり、対象データを記憶するためのメモリ領域をリフレッシュ領域の中で確保する。ここで、対象データにリフレッシュ領域のメモリが割り当てられるのは、次の２つの場合である。すなわち、（１）対象データがリフレッシュが必要なデータであり（ステップＳ３で肯定）、かつ、リフレッシュ領域に空きがある（ステップＳ４で肯定）場合、および、（２）対象データがリフレッシュが不要なデータであり（ステップＳ３で否定）、かつ、（非リフレッシュ領域に空きがなく（ステップＳ６で否定））リフレッシュ領域のみに空きがある（ステップＳ４で肯定）場合である。なお、ステップＳ７の処理の終了によって、図４に示す処理が終了する。
【００５５】
ステップＳ８において、メモリ割当部２３は、対象データに対して非リフレッシュ領域のメモリを割り当てる。つまり、対象データを記憶するためのメモリ領域を非リフレッシュ領域の中で確保する。ここで、対象データに非リフレッシュ領域のメモリが割り当てられるのは、次の２つの場合である。すなわち、（３）対象データがリフレッシュが不要なデータであり（ステップＳ３で否定）、かつ、非リフレッシュ領域に空きがある（ステップＳ６で肯定）場合、および、（４）対象データがリフレッシュが必要なデータであり（ステップＳ３で肯定）、かつ、（リフレッシュ領域に空きがなく（ステップＳ４で否定））非リフレッシュ領域のみに空きがある（ステップＳ５で肯定）場合である。
【００５６】
ステップＳ８の次に、ステップＳ９において、メモリ割当部２３は、対象データがリフレッシュが必要なデータであるか否かを判定する。上述したように、ステップＳ８の処理が行われる場合としては、上記（３）の場合および（４）の場合が考えられる。ステップＳ９の判定では、上記（３）の場合および（４）の場合のいずれであるかを判定する。具体的には、ステップＳ３の判定結果が肯定であった場合（上記（３）の場合）、対象データがリフレッシュが必要なデータであると判定され、ステップＳ１０の処理が行われる。逆に、ステップＳ３の判定結果が否定であった場合（上記（４）の場合）、対象データがリフレッシュが不要なデータであると判定される。これにより、図４に示す処理が終了する。
【００５７】
ステップＳ１０において、メモリ制御部２５は、ステップＳ８において割り当てられたメモリ領域を含むメモリバンクをリフレッシュ領域に変更する。上記ステップＳ９から明らかなように、ステップＳ１０の処理が行われる場合、対象データはリフレッシュが必要なデータである。従って、この場合、リフレッシュが必要なデータが非リフレッシュ領域に記憶されてしまう。そこで、ステップＳ１０において、リフレッシュが必要なデータが記憶される非リフレッシュ領域をリフレッシュ領域に変更するのである。これによって、リフレッシュが必要なデータを確実に保持することができる。なお、ステップＳ１０における非リフレッシュ領域からリフレッシュ領域の変更を反映させるように、メモリ制御部２５はメモリ情報記憶部２４に記憶されているメモリ情報を更新する。ステップＳ１０の処理の終了によって、図４に示す処理が終了する。
【００５８】
なお、上記ステップＳ９およびＳ１０の処理は、メモリ領域の割り当て（ステップＳ８）を実行した直後に行う必要はない。当該処理は、例えば、割り当てられたメモリ領域に対象データが実際に書き込まれる直前に行われてもよい。
【００５９】
以上のように、実施の形態１によれば、対象データは、リフレッシュが必要であるか否かに応じて、リフレッシュ領域に記憶される対象データと非リフレッシュ領域に記憶される対象データとに振り分けられる。従って、リフレッシュ領域として設定されているメモリバンクのみについてリフレッシュを行うことによって、必要なデータのみに対してリフレッシュを行うことができる。すなわち、リフレッシュに要する電力を効果的に低減することができる。
【００６０】
また、実施の形態１によれば、リフレッシュが必要であるか否かは、確保要求の内容に基づいて判定される。つまり、主メモリ１１へデータを書き込む用途に応じて、リフレッシュが必要であるか否かが判定されることとなる。従って、実施の形態１によれば、主メモリ１１へデータを書き込む用途に応じて、一時的にのみ記憶しておけばよいデータと永続的に保持しておくべきデータとを判別することができると言える。そして、リフレッシュの必要がある、永続的に保持しておくべきデータのみに対してリフレッシュを行うことによって、消費電力を低減することができる。
【００６１】
なお、実施の形態１において、判定部２２、メモリ割当部２３、メモリ情報記憶部２４およびメモリ制御部２５をＯＳの機能として実現することによって、アプリケーション自体について特別な設定を行わなくとも、本発明を適用することができる。つまり、アプリケーションの機能とは無関係に本発明を適用することができる。従って、消費電力の低減があまり重要とされない装置のアプリケーションを、消費電力の低減が必要とされる装置に移植して動作させる場合においても、本発明を容易に適用することができる。
【００６２】
なお、以上の説明においては、確保要求に含まれる用途情報の例として、対象データの出力先を示す情報を挙げたが、用途情報はこれに限定されない。例えば、データをリフレッシュ領域に書き込むか、それとも非リフレッシュ領域に書き込むかを示す情報を用途情報として確保要求に含ませてもよい。これによれば、データをリフレッシュ領域に書き込むか、それとも非リフレッシュ領域に書き込むかをアプリケーションが指定することができる。
【００６３】
また、判定部２２におけるリフレッシュが必要か否かの判定は、上記用途情報に基づいて行われる方法の他、少なくとも２つの異なるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ　Ｉｎｔｅｒｆａｃｅ）を用いる方法であってもよい。具体的には、判定部２２として、データをリフレッシュ領域に書き込むためのＡＰＩと、データを非リフレッシュ領域に書き込むためのＡＰＩとを用意する。そして、アプリケーションがいずれかのＡＰＩを選択することによって、リフレッシュが必要か否かの判定が行われることとなる。この方法によれば、データをリフレッシュ領域に書き込むか、それとも非リフレッシュ領域に書き込むかをアプリケーションが指定することができる。なお、上記のように判定部２２においてＡＰＩが用いられる場合、データを非リフレッシュ領域に書き込むためのＡＰＩとして、特殊メモリＡＰＩが考えられる。特殊メモリＡＰＩとは、例えば、アプリケーションにエラーなどの障害があった場合にのみデータ書込の処理を行うＡＰＩをいう。
【００６４】
なお、リフレッシュ領域または非リフレッシュ領域のいずれにデータを書き込むかについてアプリケーションが指定することが可能な場合において、さらに、アプリケーションが非リフレッシュ領域に記憶されたデータの欠損を検出することが可能であり、欠損があればそのデータを破棄して再構築することが可能である場合を考える。この場合には、アプリケーションは、より多くのデータを非リフレッシュ領域に書き込むように指定することが可能になる。これによって、電力消費をさらに低減させることができる。
【００６５】
また、実施の形態１においては、メモリ領域の割り当て処理を行うタイミングは限定されなかったが、他の実施の形態においては、例えば次に示すタイミングで行うようにしてもよい。例えば、ＣＰＵ１２の負荷が低い場合に、メモリ領域の割り当て処理を行うようにしてもよい。また、確保要求を生成したアプリケーションの処理優先度が他のアプリケーションに比べて低い場合に、メモリ領域の割り当て処理を行うようにしてもよい。これらのようにＣＰＵ１２の処理を分散することによって、メモリ制御装置１の処理負荷を平均化することができ、消費電力を低減することができる。
【００６６】
（実施の形態２）
次に、実施の形態２に係るメモリ制御装置について説明する。図５は、本発明の実施の形態２に係るメモリ制御装置の機能的な構成を示すブロック図である。なお、実施の形態２に係るメモリ制御装置は、データ移動部２７をさらに含む点以外は、実施の形態１に係るメモリ制御装置と同様である。
【００６７】
データ移動部２７は、メモリバンクに記憶されているデータを、他のメモリバンクに移動させる。特に、データ移動部２７は、リフレッシュ領域のメモリバンクにおいてリフレッシュの必要がないデータが記憶されている場合、当該メモリバンク中にすでに書き込まれている他のデータ（リフレッシュの必要があるデータ）を、リフレッシュ領域の他のメモリバンクに移動させる。
【００６８】
次に、実施の形態２に係るメモリ制御装置の動作を説明する。図６は、実施の形態２に係るメモリ制御装置の処理の流れを示すフローチャートである。ここで、図６において、図４と異なる点は、ステップＳ１１〜Ｓ１３の処理のみである。従って、以下ではステップＳ１１〜Ｓ１３の処理を主に説明する。
【００６９】
実施の形態２においては、ステップＳ７の次に、ステップＳ１１の処理が実行される。すなわち、ステップＳ１１において、メモリ割当部２３は、対象データがリフレッシュが必要なデータであるか否かを判定する。この判定は、ステップＳ３の判定結果に基づいて行われる。すなわち、ステップＳ３の判定結果が肯定であった場合、対象データがリフレッシュが必要なデータであると判定される。この場合、図６に示す処理が終了する。逆に、ステップＳ３の判定結果が否定であった場合、対象データがリフレッシュが不要なデータであると判定される。この場合、ステップＳ１２の処理が実行される。
【００７０】
ステップＳ１２において、データ移動部２７は、データの移動を行う。具体的には、ステップＳ７において割り当てられた領域を含むメモリバンク中にすでに書き込まれているデータを、リフレッシュ領域の他のメモリバンクに移動させる。これによって、ステップＳ７において割り当てられた領域を含むメモリバンクには、ステップＳ７において領域が割り当てられたデータ（リフレッシュが不要なデータ）のみが記憶されることとなる。
【００７１】
ステップＳ１２の次に、ステップＳ１３において、メモリ制御部２５は、ステップＳ７において割り当てられたメモリ領域を含むメモリバンクを非リフレッシュ領域に変更する。上述したように、ステップＳ１２の処理によって、当該メモリバンクにはリフレッシュが不要なデータのみが記憶され、その他のデータは移動されることとなる。従って、当該メモリバンクを非リフレッシュ領域に変更しても問題はない。これによって、リフレッシュによる電力消費が小さくなる。なお、ステップＳ１３におけるリフレッシュ領域から非リフレッシュ領域の変更およびデータの移動を反映させるように、メモリ制御部２５はメモリ情報記憶部２４に記憶されているメモリ情報を更新する。ステップＳ１３の処理の終了によって、図６に示す処理が終了する。
【００７２】
以上のように、実施の形態２によれば、リフレッシュの必要がないと判定されたデータに対して、リフレッシュ領域に含まれるメモリバンク中のメモリ領域が割り当てられる場合、当該メモリバンク中にすでに記憶されているデータは、リフレッシュ領域における他のメモリバンクに移動される。これによって、リフレッシュの必要がないと判定されたデータに割り当てられるメモリ領域を含むメモリバンクは、非リフレッシュ領域に変更することが可能となる。従って、非リフレッシュ領域となるメモリバンクを増加することができるので、リフレッシュによる電力消費をさらに低減することができる。
【００７３】
次に、非フレッシュ領域に空きがないためにデータを移動させる場合の具体例を示す。図７は、データを移動させる前のメモリ情報の内容を示す図である。なお、図７においては、図面を見やすくするため、“Ａｐ３”のアプリケーション以外のアプリケーションのデータについては、論理アドレスと物理アドレスとの対応を示す線を省略して記載している。また、図中の黒丸は、データが記憶されているメモリ領域を示し、白丸は、データが記憶されていないメモリ領域を示す。さらに、図７においては、非リフレッシュ領域である、バンク番号がＢ４であるメモリバンク１１５には空きがないものとする。以上のような状態において、Ａｐ３のアプリケーションによって、リフレッシュの必要がない新たなデータ（論理アドレスがＰ３４で示される。）が書き込まれる場合を説明する。
【００７４】
図８は、データを移動させた後のメモリ情報の内容を示す図である。まず、図７の状態では、非リフレッシュ領域に空きがないので、新たなデータに対して、リフレッシュ領域のメモリ領域が割り当てられる（ステップＳ７）。ここでは、新たなデータは、バンク番号がＢ３であるメモリバンク１１４に割り当てられるものとする。
【００７５】
新たなデータがバンク番号がＢ３であるメモリバンク１１４に割り当てられた結果、当該メモリバンク１１４には、リフレッシュの必要があるデータおよび必要がないデータの両方が記憶されることとなる（なお、実施の形態１では、この状態で保持される。）。実施の形態２では、ページ番号Ｐ３２およびＰ３３で示されるデータ（リフレッシュの必要があるデータ）は、リフレッシュ領域の他のメモリバンクに移動される（ステップＳ１２）。ここでは、ページ番号Ｐ３２で示されるデータは、バンク番号Ｂ１のメモリバンク１１２に移動され、ページ番号Ｐ３３で示されるデータは、バンク番号Ｂ２のメモリバンク１１３に移動される。これによって、メモリバンク１１４には、リフレッシュの必要がない、ページ番号Ｐ３４のデータのみが記憶されることとなる。そこで、メモリバンク１１４は、非リフレッシュ領域に設定される（ステップＳ１３）。
【００７６】
以上のように、上記実施の形態１および２によれば、主メモリ１１に記憶されるデータのうち、リフレッシュの必要があるデータのみがリフレッシュ領域に記憶される。そして、当該リフレッシュ領域についてリフレッシュのための電力が供給され、非リフレッシュ領域には当該電力が供給されない。従って、たとえ主メモリ１１の全ての領域が使用されていたとしても、リフレッシュの必要がないデータが記憶されている領域については、リフレッシュのための電力を消費しなくてよい。すなわち、主メモリ１１が使用されている割合によらず、効果的に電力消費を低減することができる。
【００７７】
（実施の形態３）
次に、実施の形態３に係るメモリ制御装置について説明する。実施の形態３においては、実施の形態１および２と異なり、主メモリ１１に記憶される全てのデータに対してリフレッシュを行う。つまり、対象データについて、リフレッシュの必要があるか否かを判定しない。実施の形態３に係るメモリ制御装置は、主メモリ１１に記憶されているデータを移動することによって、データを記憶しないメモリバンクを増やす処理を行う。この処理によって、メモリ制御装置は、リフレッシュを行うメモリバンクの数を減らし、リフレッシュによる電力消費を低減するのである。
【００７８】
図９は、本発明の実施の形態３に係るメモリ制御装置の機能的な構成を示すブロック図である。なお、実施の形態３に係るメモリ制御装置の機能的な構成は、判定部２２および電力検知部２６を含まない点以外は、実施の形態２に係るメモリ制御装置と同様である。なお、以下では、図９に示す各部について、実施の形態１および２との相違点を主に説明し、実施の形態１および２と同様の部分については説明を省略する。
【００７９】
実施の形態３においては、メモリ割当部２３は、対象データに対してどのようなメモリ領域を割り当ててもよい。すなわち、実施の形態３においては、対象データの用途とは無関係に、主メモリ１１中のいずれかのメモリ領域に対象データが書き込まれることとなる。なお、メモリ情報記憶部２４は、実施の形態１および２と同様である。
【００８０】
メモリ制御部２５は、実施の形態１および２と同様、リフレッシュを行うメモリバンクを電源制御部１１１に対して指示する。ここで、実施の形態３においては、メモリ制御部２５は、データが記憶されているメモリバンクをリフレッシュ領域に設定し、データが記憶されていないメモリバンクを非リフレッシュ領域に設定する。すなわち、実施の形態３においては、メモリバンクが記憶しているデータの用途に応じてリフレッシュのための電力を供給するか否かが決定されるのではなく、データを記憶している全てのメモリバンクに対して電力が供給される。なお、各メモリバンクにおけるデータの記憶状況は、メモリ情報記憶部２４に記憶されているメモリ情報を参照することによって知ることができる。
【００８１】
データ移動部２７は、所定のメモリバンク（後述する「移動元のメモリバンク）に記憶されている全てのデータの記憶位置を、データが記憶されている他のメモリバンク（後述する「移動先のメモリバンク」）に移動させる。さらに、データ移動部２７は、メモリ情報の内容について、移動させたデータの物理アドレス、および物理アドレスと論理アドレスとの対応関係を変更する。以下、実施の形態３におけるメモリ制御装置のデータ移動処理を説明する。
【００８２】
図１０は、実施の形態３におけるメモリ制御装置の処理の流れを示すフローチャートである。まず、ステップＳ２１において、データ移動部２７は、データの移動を行うか否かを判定する。つまり、データの移動を行うタイミングが来たか否かを判定する。具体的には、データ移動部２７は、一定時間間隔の度にデータの移動を行うと判定してもよいし、主メモリ１１に対してデータの書き込みまたは削除が行われた場合、データの移動を行うと判定してもよい。ステップＳ２１の判定の結果、データの移動を行うと判定された場合、ステップＳ２２の処理が行われる。一方、ステップＳ２１の判定の結果、データの移動を行わないと判定された場合、ステップＳ２１の処理が繰り返される。すなわち、データ移動部２７は、データの移動を行うタイミングが来るまで待機する。
【００８３】
ステップＳ２２において、データ移動部２７は、４つのメモリバンク１１２〜１１５の中から、移動元のメモリバンクを決定する。例えば、４つのメモリバンク１１２〜１１５のうち、記憶しているデータ量が最も少ない（データを記憶しているメモリ領域が最も小さい）メモリバンクが、移動元のメモリバンクに決定される。なお、複数のメモリバンクが、移動元のメモリバンクに決定されてもよい。
【００８４】
ステップＳ２２の次に、ステップＳ２３において、データ移動部２７は、移動先のメモリバンクを決定する。移動先のメモリバンクは、データを記憶しているメモリバンク（すなわち、リフレッシュ領域に含まれるメモリバンク）の中から選ばれる。例えば、上記移動元のメモリバンク以外のメモリバンクであって、記憶しているデータ量が最も少ないメモリバンクが、移動先のメモリバンクに決定される。なお、複数のメモリバンクが、移動先のメモリバンクに決定されてもよい。続くステップＳ２４において、データ移動部２７は、データの移動が可能であるか否かを判定する。具体的には、移動元のメモリバンクに記憶されているデータ量（移動元のメモリバンクが複数である場合は、各メモリバンクのデータの量の和）が、移動先のメモリバンクの空き容量（移動先のメモリバンクが複数である場合は、各メモリバンクの空き容量の和）よりも小さいか否かが判定される。ステップＳ２４の判定の結果、データの移動が可能であると判定された場合、ステップＳ２５の処理が行われる。一方、ステップＳ２４の判定の結果、データの移動が不可能であると判定された場合、ステップＳ２１の処理に戻る。
【００８５】
ステップＳ２５において、データ移動部２７は、移動元のメモリバンクに記憶されている全てのデータの記憶位置を、移動先のメモリバンクに移動させる。さらに、データ移動部２７は、ステップＳ２５におけるデータの移動を反映させるように、メモリ情報記憶部２４に記憶されているメモリ情報を更新する。続くステップＳ２６において、メモリ制御部２５は、移動元のメモリバンクを非リフレッシュ領域に変更する。ステップＳ２６によって、１回のデータ移動処理が終了し、処理はステップＳ２１に戻る。
【００８６】
次に、実施の形態３におけるデータ移動処理を行う場合の具体例を示す。図１１は、データを移動させる前のメモリ情報の内容を示す図である。なお、図１１においては、図面を見やすくするため、データ移動処理の対象となるデータ（論理アドレスが“Ｐ１５”であるデータ以外のデータについては、論理アドレスと物理アドレスとの対応を示す線を省略して記載している。また、バンク番号がＢ４であるメモリバンク１１５は非リフレッシュ領域に設定され、それ以外のメモリバンク１１２〜１１４はリフレッシュ領域に設定されている。以上のような状態において、データ移動処理を行う場合の具体例を説明する。
【００８７】
まず、図１１の状態において、データを移動させるタイミングがくると、データ移動部２７は、移動元のメモリバンクを決定する（ステップＳ２２）。ここでは、バンク番号がＢ３であるメモリバンク１１４が移動元のメモリバンクに決定されたものとする。さらに、データ移動部２７は、移動先のメモリバンクを決定する（ステップＳ２３）。ここでは、バンク番号がＢ１であるメモリバンク１１２が移動元のメモリバンクに決定されたものとする。その結果、論理アドレスが“Ｐ１５”であるデータは、バンクＢ１であるメモリバンク１１２へ移動される。
【００８８】
図１２は、データを移動させた後のメモリ情報の内容を示す図である。図１２に示すように、データが移動された結果、バンク番号がＢ３であるメモリバンク１１４にはデータが記憶されていないこととなる。従って、メモリ制御部２５は、当該メモリバンク１１４を非リフレッシュ領域に変更する（ステップＳ２６）。これによって、データの移動前後において、リフレッシュを行うメモリバンクが１つ減少するので、リフレッシュのための電力を低減することができる。
【００８９】
以上のように、実施の形態３によれば、データを移動させることによってリフレッシュの必要なメモリバンクの数を減らすことができる。それによって、リフレッシュのための電力を低減することができる。さらに、実施の形態３によれば、論理アドレスと物理アドレスとの対応を示すメモリ情報を用いることによって、アプリケーション側にデータの移動を通知する必要がない。従って、データの移動がアプリケーションに影響を与えないので、データの移動に伴ってアプリケーション側の設定を変更する必要がない。そのため、アプリケーション側の設定の変更等に関連する処理を行う必要がないので、データの移動処理を容易に行うことができる。また、かかる変更を考慮したアプリケーションを用意する必要がないので、より多くのアプリケーションに対して適用できるメモリ制御装置を実現することができる。
【図面の簡単な説明】
【図１】実施の形態１に係るメモリ制御装置のハードウェア構成の一例を示す図である。
【図２】実施の形態１に係るメモリ制御装置の機能的な構成を示すブロック図である。
【図３】実施の形態１に係るメモリ情報の例を示す図である。
【図４】実施の形態１に係るメモリ制御装置の処理の流れを示すフローチャートである。
【図５】実施の形態２に係るメモリ制御装置の機能的な構成を示すブロック図である。
【図６】実施の形態２に係るメモリ制御装置の処理の流れを示すフローチャートである。
【図７】データを移動させる前のメモリ情報の内容を示す図である。
【図８】データを移動させた後のメモリ情報の内容を示す図である。
【図９】実施の形態３に係るメモリ制御装置の機能的な構成を示すブロック図である。
【図１０】実施の形態３におけるメモリ制御装置の処理の流れを示すフローチャートである。
【図１１】データを移動させる前のメモリ情報の内容を示す図である。
【図１２】データを移動させた後のメモリ情報の内容を示す図である。
【符号の説明】
１１　主メモリ
１１１　電源制御部
１１２〜１１５　メモリバンク
１２　ＣＰＵ
２２　判定部
２３　メモリ割当部
２４　メモリ情報記憶部
２５　メモリ制御部
【図１】
2004047051.tif 000003
【図２】
2004047051.tif 000004
【図３】
2004047051.tif 000005
【図４】
2004047051.tif 000006
【図５】
2004047051.tif 000007
【図６】
2004047051.tif 000008
【図７】
2004047051.tif 000009
【図８】
2004047051.tif 000010
【図９】
2004047051.tif 000011
【図１０】
2004047051.tif 000012
【図１１】
2004047051.tif 000013
【図１２】
2004047051.tif 000014