(57)【要約】【課題】ＲＯＭ上のプログラムをＲＡＭに複写して実行するコンピュータにおいて、より一層の省電力化を実現すること【解決手段】メモリ管理部２２は、ＲＡＭ上における物理メモリの確保とその解放およびＲＯＭからＲＡＭへのコピー処理を行う手段３１と、ページテーブル２５を更新する手段３２と、ＲＡＭを、使用中ＲＡＭと不使用ＲＡＭとに区分して管理するとともに、使用中ＲＡＭをさらに、書き込み可能データを記憶している破棄不可能ＲＡＭと、書き込み可能データを記憶していない破棄可能ＲＡＭとに区分して管理する手段３３とを備える。電源管理部２３は、省電力移行時に、仮想ページに割り当てられている破棄可能ＲＡＭ上のメモリ領域の解放をメモリ管理部２２に要求し、不使用ＲＡＭと破棄可能なＲＡＭへの電源供給の停止を電源装置へ指示する。【選択図】図２
2010286964.tif 000002
【特許請求の範囲】
【請求項１】
１以上のＲＯＭと、複数のＲＡＭと、ページテーブルを参照して仮想アドレス・物理アドレス変換を行うメモリ管理ユニットと、該メモリ管理ユニットを通じて前記ＲＯＭおよび前記ＲＡＭをアクセスするＣＰＵと、電源装置とを備え、前記ＲＯＭに記憶されたプログラムを前記ＲＡＭに複写し、該複写先のＲＡＭ領域の物理アドレスと前記プログラムの仮想アドレスとの対応関係を前記ページテーブルに設定することにより、前記プログラムを前記ＲＡＭ上で動かすコンピュータであって、
前記ＲＡＭ上における物理メモリの確保とその解放および前記ＲＯＭから前記ＲＡＭへのコピー処理を行う手段と、前記ページテーブルを更新する手段と、前記ＲＡＭを、使用中ＲＡＭと不使用ＲＡＭとに区分して管理するとともに、使用中ＲＡＭをさらに、書き込み可能データを記憶している破棄不可能ＲＡＭと、書き込み可能データを記憶していない破棄可能ＲＡＭとに区分して管理する手段とを備えたメモリ管理手段と、
省電力移行時に、仮想ページに割り当てられている破棄可能ＲＡＭ上のメモリ領域の解放を前記メモリ管理手段に要求し、不使用ＲＡＭと破棄可能なＲＡＭへの電源供給の停止を前記電源装置へ指示する電源管理手段とを備えることを特徴とするコンピュータ。
【請求項２】
前記電源管理手段は、省電力状態からの復帰時に前記破棄可能ＲＡＭの電源供給を再開し、前記メモリ管理手段は、省電力状態からの復帰時または前記破棄可能ＲＡＭへの最初のアクセス発生時に、前記ＲＯＭから前記破棄可能ＲＡＭに再度コピー処理を行って前記ページテーブルを更新することを特徴とする請求項１に記載のコンピュータ。
【請求項３】
前記ＲＯＭに記憶されたプログラムは、実行コード領域、更新可能なデータ領域、読み込み専用データ領域、これら各領域の読み書き属性を含むヘッダとで構成されていることを特徴とする請求項１または２に記載のコンピュータ。
【請求項４】
前記ＲＯＭに記憶されたプログラムの前記ＲＡＭへの複写は、当該プログラムの実行開始時点で行うことを特徴とする請求項１乃至３の何れか１項に記載のコンピュータ。
【請求項５】
前記ＲＯＭに記憶されたプログラムを前記ＲＡＭに複写する際に、複写元領域の読み書き属性と前記複数のＲＡＭそれぞれの状態とに基づいて、複写先となるＲＡＭを決定するメモリ確保先判定手段を備えることを特徴とする請求項１乃至４の何れか１項に記載のコンピュータ。
【請求項６】
前記メモリ確保先判定手段は、プログラムのコード、ＲＯデータ、ＲＷデータおよびスタックの複写先をそれだけの空き容量のある同じ破棄不可能ＲＡＭに決定することを特徴とする請求項５に記載のコンピュータ。
【請求項７】
前記メモリ確保先判定手段は、プログラムのコードとＲＯデータの複写先をそれだけの空き容量のある同じ破棄可能ＲＡＭに決定し、プログラムのＲＷデータとスタックの複写先をそれだけの空き容量のある同じ破棄不可能ＲＡＭに決定することを特徴とする請求項５に記載のコンピュータ。
【請求項８】
前記メモリ確保先判定手段は、必要な空き容量が使用中ＲＡＭに存在しない場合、不使用ＲＡＭを破棄不可能ＲＡＭに変更し、当該破棄不可能ＲＡＭをプログラムのコード、ＲＯデータ、ＲＷデータおよびスタックの複写先に決定することを特徴とする請求項５に記載のコンピュータ。
【請求項９】
前記メモリ確保先判定手段は、或る破棄不可能ＲＡＭに、プログラムのコード、ＲＯデータ、ＲＷデータおよびスタック分の空き容量が存在しても、当該破棄不可能ＲＡＭを当該プログラムのＲＷデータとスタックの複写先とし、当該プログラムのコードとＲＯデータの複写先は破棄可能ＲＡＭとすることを特徴とする請求項５に記載のコンピュータ。
【請求項１０】
前記メモリ確保先判定手段は、必要な空き容量が使用中ＲＡＭに存在しない場合、１つの不使用ＲＡＭを破棄可能ＲＡＭに変更し、当該破棄不可能ＲＡＭをプログラムのコードとＲＯデータの複写先に決定し、他の１つの不使用ＲＡＭを破棄不可能ＲＡＭに変更し、当該破棄不可能ＲＡＭをプログラムのＲＷデータとスタックの複写先に決定することを特徴とする請求項５に記載のコンピュータ。
【請求項１１】
メモリ割り当てポリシーを記憶する手段を備え、前記メモリ確保先判定手段は、前記メモリ割り当てポリシーに記述されたメモリ割り当て方針と複写元領域の読み書き属性と前記複数のＲＡＭそれぞれの状態とに基づいて、複写先となるＲＡＭを決定することを特徴とする請求項５乃至１０の何れか１項に記載のコンピュータ。
【請求項１２】
前記メモリ割り当てポリシーを変更するメモリ割り当てポリシー管理手段を備えることを特徴とする請求項１１に記載のコンピュータ。
【請求項１３】
１以上のＲＯＭと、複数のＲＡＭと、ページテーブルを参照して仮想アドレス・物理アドレス変換を行うメモリ管理ユニットと、該メモリ管理ユニットを通じて前記ＲＯＭおよび前記ＲＡＭをアクセスするＣＰＵと、電源装置と、前記ＲＡＭ上における物理メモリの確保とその解放および前記ＲＯＭから前記ＲＡＭへのコピー処理を行う手段と、前記ページテーブルを更新する手段と、前記ＲＡＭを、使用中ＲＡＭと不使用ＲＡＭとに区分して管理するとともに、使用中ＲＡＭをさらに、書き込み可能データを記憶している破棄不可能ＲＡＭと、書き込み可能データを記憶していない破棄可能ＲＡＭとに区分して管理する手段とを備えたメモリ管理手段とを備え、前記ＲＯＭに記憶されたプログラムを前記ＲＡＭに複写し、該複写先のＲＡＭ領域の物理アドレスと前記プログラムの仮想アドレスとの対応関係を前記ページテーブルに設定することにより、前記プログラムを前記ＲＡＭ上で動かすコンピュータにおける電源管理方法であって、
電源管理手段が、省電力移行時に、仮想ページに割り当てられている破棄可能ＲＡＭ上のメモリ領域の解放を前記メモリ管理手段に要求し、不使用ＲＡＭと破棄可能なＲＡＭへの電源供給の停止を前記電源装置へ指示することを特徴とする電源管理方法。
【請求項１４】
１以上のＲＯＭと、複数のＲＡＭと、ページテーブルを参照して仮想アドレス・物理アドレス変換を行うメモリ管理ユニットと、該メモリ管理ユニットを通じて前記ＲＯＭおよび前記ＲＡＭをアクセスするＣＰＵと、電源装置とを備え、前記ＲＯＭに記憶されたプログラムを前記ＲＡＭに複写し、該複写先のＲＡＭ領域の物理アドレスと前記プログラムの仮想アドレスとの対応関係を前記ページテーブルに設定することにより、前記プログラムを前記ＲＡＭ上で動かすコンピュータを、
前記ＲＡＭ上における物理メモリの確保とその解放および前記ＲＯＭから前記ＲＡＭへのコピー処理を行う手段と、前記ページテーブルを更新する手段と、前記ＲＡＭを、使用中ＲＡＭと不使用ＲＡＭとに区分して管理するとともに、使用中ＲＡＭをさらに、書き込み可能データを記憶している破棄不可能ＲＡＭと、書き込み可能データを記憶していない破棄可能ＲＡＭとに区分して管理する手段とを備えたメモリ管理手段と、
省電力移行時に、仮想ページに割り当てられている破棄可能ＲＡＭ上のメモリ領域の解放を前記メモリ管理手段に要求し、不使用ＲＡＭと破棄可能なＲＡＭへの電源供給の停止を前記電源装置へ指示する電源管理手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの消費電力を削減する技術に関し、特にコンピュータに備わるＲＡＭの消費電力を削減する技術に関する。
【背景技術】
【０００２】
コンピュータの消費電力を削減するために、コンピュータに備わるＲＡＭの消費電力を削減する技術が幾つか提案されている。
【０００３】
例えば特許文献１の第３の実施の形態では、必要に応じてＲＡＭ上のデータの再配置を行うことにより、アプリケーションプログラムで使用するデータをできるだけ少ない数のＲＡＭに格納し、残りの未使用なＲＡＭの電源供給を停止することで消費電力を削減している。類似するアイデアは特許文献２の第３の実施の形態にも記載されている。ただし、特許文献２では、ＤＲＡＭを使用し、未使用なＤＲＡＭの電源供給を停止するのではなく、リフレッシュ動作を停止するようにしている。
【０００４】
また特許文献２の第１の実施の形態では、コンピュータに備わる複数のＤＲＡＭを、必要な保持時間がリフレッシュ周期より長いデータを保持する第１のＤＲＡＭと、リフレッシュ周期より短いデータを保持する第２のＤＲＡＭとに区分し、アプリケーションプログラムが使用するデータの必要保持期間がリフレッシュ周期より短くて良いか否かを判定し、短くて良いデータは第２のＤＲＡＭに記憶し、それ以外のデータは第１のＤＲＡＭに記憶する。そして、第１のＤＲＡＭはリフレッシュ動作を行い、第２のＤＲＡＭはリフレッシュ動作を行わないようにすることで、消費電力を削減している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２５４５８７号公報
【特許文献２】特開２００４−４７０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１および特許文献２では、複数のＲＡＭを有するコンピュータにおいて、未使用ＲＡＭの数を増やすことにより、またリフレッシュ動作を行わないＲＡＭの数を増やすことにより、ＲＡＭ全体で消費する電力を削減している。
【０００７】
しかしながら、未使用ＲＡＭの数は、ＲＡＭ全体の使用量が増加すれば増加するほど少なくなる。また、リフレッシュ動作を行わないＲＡＭの数は、必要保持期間がリフレッシュ周期より長いデータが増加するほど少なくなる。このため、書き込み可能なデータだけでなく、アプリケーションプログラムのコードや読み込み専用データをＲＯＭからＲＡＭに複写して実行するコンピュータにあっては、ＲＡＭ全体の使用量が増加し、また必要保持期間がリフレッシュ周期より長いデータが増加するため、消費電力を十分に削減できないという課題がある。
【０００８】
本発明の目的は、ＲＯＭ上のプログラムをＲＡＭに複写して実行するコンピュータにおいて、より一層の省電力化を実現することにある。
【課題を解決するための手段】
【０００９】
本発明の第１のコンピュータは、１以上のＲＯＭと、複数のＲＡＭと、ページテーブルを参照して仮想アドレス・物理アドレス変換を行うメモリ管理ユニットと、該メモリ管理ユニットを通じて前記ＲＯＭおよび前記ＲＡＭをアクセスするＣＰＵと、電源装置とを備え、前記ＲＯＭに記憶されたプログラムを前記ＲＡＭに複写し、該複写先のＲＡＭ領域の物理アドレスと前記プログラムの仮想アドレスとの対応関係を前記ページテーブルに設定することにより、前記プログラムを前記ＲＡＭ上で動かすコンピュータであって、
前記ＲＡＭ上における物理メモリの確保とその解放および前記ＲＯＭから前記ＲＡＭへのコピー処理を行う手段と、前記ページテーブルを更新する手段と、前記ＲＡＭを、使用中ＲＡＭと不使用ＲＡＭとに区分して管理するとともに、使用中ＲＡＭをさらに、書き込み可能データを記憶している破棄不可能ＲＡＭと、書き込み可能データを記憶していない破棄可能ＲＡＭとに区分して管理する手段とを備えたメモリ管理手段と、
省電力移行時に、仮想ページに割り当てられている破棄可能ＲＡＭ上のメモリ領域の解放を前記メモリ管理手段に要求し、不使用ＲＡＭと破棄可能なＲＡＭへの電源供給の停止を前記電源装置へ指示する電源管理手段とを備える。
【発明の効果】
【００１０】
本発明によれば、ＲＯＭ上のプログラムをＲＡＭに複写して実行するコンピュータにおいて、より一層の省電力化が可能になる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態に係るコンピュータのハードウェア構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係るコンピュータのソフトウェア構成を示すブロック図である。
【図３】ＲＯＭに記憶されているプログラム内部セクションの例を示す図である。
【図４】ページテーブルの例を示す図である。
【図５】ＲＡＭテーブルの例を示す図である。
【図６】プログラムの実行前のＲＯＭとＲＡＭの状態を示す図である。
【図７】プログラムの読み込み開始時点のＲＯＭとＲＡＭの状態を示す図である。
【図８】プログラムの読み込み後のＲＯＭとＲＡＭの状態を示す図である。
【図９】プログラムの実行時のＲＯＭとＲＡＭの状態を示す図である。
【図１０】省電力状態のＲＯＭとＲＡＭの状態を示す図である。
【図１１】プログラムの読み込み後のＲＯＭとＲＡＭの他の状態を示す図である。
【図１２】プログラムの実行時のＲＯＭとＲＡＭの他の状態を示す図である。
【図１３】省電力状態のＲＯＭとＲＡＭの他の状態を示す図である。
【図１４】省電力状態からの復帰時のＲＯＭとＲＡＭの状態を示す図である。
【図１５】プログラムの読み込み後のＲＯＭとＲＡＭの別の状態を示す図である。
【図１６】プログラムの実行時のＲＯＭとＲＡＭの別の状態を示す図である。
【図１７】省電力状態のＲＯＭとＲＡＭの別の状態を示す図である。
【図１８】本発明の他の実施の形態に係るコンピュータのソフトウェア構成を示すブロック図である。
【図１９】本発明の他の実施の形態に係るコンピュータのソフトウェア構成を示すブロック図である。
【図２０】本発明の他の実施の形態に係るコンピュータのソフトウェア構成を示すブロック図である。
【図２１】本発明の他の実施の形態におけるプログラム読み込み後のＲＯＭとＲＡＭの状態を示す図である。
【図２２】本発明の他の実施の形態におけるプログラムの実行時のＲＯＭとＲＡＭの状態を示す図である。
【図２３】本発明の他の実施の形態におけるプログラムの実行時のＲＯＭとＲＡＭの状態を示す図である。
【図２４】本発明の他の実施の形態におけるプログラムの実行時のＲＯＭとＲＡＭの状態を示す図である。
【発明を実施するための形態】
【００１２】
[第１の実施の形態]
図１を参照すると、本発明の第１の実施の形態に係るコンピュータは、ハードウェア構成として、ＣＰＵ１１、ＭＭＵ１２、ＲＯＭ１３、ＲＡＭ１４−１〜１４−ｎ、電源装置１５を備えている。
【００１３】
また図２を参照すると、本発明の第１の実施の形態に係るコンピュータは、ソフトウェア構成として、ローダー部２１、メモリ管理部２２、電源管理部２３、ＲＡＭテーブル２４、ページテーブル２５、例外処理部２６を備えている。
【００１４】
ＲＯＭ１３は、１以上のソフトウェアプログラム（以下、単にプログラムと称す）を記憶する。プログラムは、実行コード領域（コード）、更新可能なデータ領域（ＲＷデータ）、読み込み専用データ領域（ＲＯデータ）の各内部セクションと、これら内部セクションの情報を含むヘッダーとから構成されている。ＲＯＭ１３に記憶されているプログラム内部セクションの例を図３に示す。図３に示すように、ヘッダーとコードとＲＯデータの動作時の属性は読み込み専用であり、ＲＷデータの動作時の属性は書き込み可能である。ヘッダーには、各内部セクション毎に、セクション名、プログラムファイル中のオフセットアドレス、読み込まれる時のプロセス空間内仮想アドレス、サイズ、前述した属性が記述されている。なお、図１の例ではＲＯＭ１３は１チップだけであるが、２チップ以上あっても良い。また、ＲＯＭ上のプログラムにはスタックは含まれていないが、ＲＷデータのＲＡＭへのコピー時にはスタックが自動的にそのＲＡＭ上にコピーされるようになっている。
【００１５】
ＲＡＭ１４−１〜１４−ｎは、セルフリフレッシュ機能を有するＤＲＡＭである。これらのＲＡＭ１４−１〜１４−ｎは、セルフリフレッシュ機能のオン、オフを個別に制御することができる。ＲＡＭのチップ数は２チップ以上であれば任意である。
【００１６】
電源装置１５と電源管理部２３は、ＲＯＭ１３、ＲＡＭ１４−１〜１４−ｎへ電力を供給する部分であり、ＲＯＭ１３、ＲＡＭ１４−１〜１４−ｎのそれぞれついて個別に電源供給の有無を制御できるようになっている。
【００１７】
ＭＭＵ１２は、仮想アドレス・物理アドレス変換を行う機能を有するメモリ管理ユニットである。またＭＭＵ１２は、仮想アドレスに対応する物理アドレスが無い領域へのアクセスの検知機能と、書き込み不可領域への書き込みアクセスの検知機能とを有する。
【００１８】
ＣＰＵ１１は、ＲＯＭ１３およびＲＡＭ１４−１〜１４−ｎにＭＭＵ１２を通じてアドレスにて直接アクセスすることで、プログラムの実行を行う。図２に示されるローダー部２１、メモリ管理部２２、電源管理部２３、例外処理部２６は、ＣＰＵ１１上で実行されるソフトウェアモジュールである。
【００１９】
ページテーブル２５は、物理アドレスと仮想アドレスとの対応、メモリページ毎の書き込み属性、および有効/無効の情報を記録する。このページテーブル２５は、メモリ管理部２２により更新され、ＣＰＵ１１およびＭＭＵ１２から参照される。ページテーブル２５の一例を図４に示す。
【００２０】
ＲＡＭテーブル２４は、複数のＲＡＭ１４−１〜１４−ｎのそれぞれについて、使用状態と諸元を記録する。ＲＡＭテーブル２４の一例を図５に示す。この例では、各ＲＡＭについて、使用状態フラグ、先頭物理アドレス、サイズ、電源状態が記録されている。使用状態フラグには、使用中、使用中だが内部情報破棄可能、未使用の３つの状態のうちの何れか１つの状態が記録される。電源状態には、オン、オフ、セルフリフレッシュの３つの状態のうちの何れか１つの状態が記録される。ＲＡＭテーブル２４は、電源管理部２３およびローダー部２１から参照される。
【００２１】
メモリ管理部２２は、ＲＡＭ１４−１〜１４−ｎ上における物理メモリの確保とその解放およびＲＯＭ１３からＲＡＭ１４−１〜１４−ｎへのコピー処理を行う手段３１と、ページテーブル２５を更新する手段３２と、ＲＡＭ１４−１〜１４−ｎの状態をＲＡＭテーブル２４にて管理する手段３３とを備えている。
【００２２】
ローダー部２１は、ＲＯＭ１３上のプログラムをＲＡＭ１４−１〜１４−ｎにロードする部分であり、メモリ確保先判定手段３４と、メモリ要求手段３５とを有する。メモリ確保先判定手段３４は、プログラムの内部セクションの属性とＲＡＭ１４−１〜１４−ｎの状態に応じて、プログラムのコード、ＲＯデータ、ＲＷデータ等を読み込む先のＲＡＭを決定する機能を有する。またメモリ要求手段３５は、メモリ確保先判定手段３４で決定された読み込み先を指定して、プログラムのコード、ＲＯデータ、ＲＷデータ等をＲＯＭ１３からＲＡＭ１４−１〜１４−ｎへロードするための複写処理をメモリ管理部２２へ要求する機能を有する。
【００２３】
例外処理部２６は、ＭＭＵ１２が書き込み不可領域への書き込みアクセスを検知した際に実行される書き込み例外処理や、仮想アドレスに対応する物理アドレスが無い領域へのアクセスを検知した際に実行されるページ例外処理を行う部分である。
【００２４】
次に本実施の形態の動作を説明する。
【００２５】
コンピュータの初期化段階においては、メモリ管理部２２、ローダー部２１、電源管理部２３などの管理プログラム自身が動作するのに必要な書き換え可能メモリ領域を１つのＲＡＭ上に配置する。管理プログラムは、このＲＡＭを電源ＯｆｆしないＲＡＭチップ、その他のＲＡＭを電源Ｏｆｆ可能なＲＡＭチップとして認識する。
【００２６】
コンピュータが動作するに従いメモリ使用状況が変化する。メモリ管理部２２は、メモリ消費状況に応じて、ページテーブル２５の更新とともにＲＡＭテーブル２４上の情報を更新する。またメモリ使用が発生した際、ローダー部２１は、要求されたメモリの読み書き属性に応じて、使用中、使用中だが破棄可能、未使用の何れのＲＡＭ上へメモリ領域を確保するかを判断し、その判断に従ってメモリ管理部２２はメモリ割り当てを行う。メモリ割り当てによりＲＡＭの状態がＲＡＭテーブル２４の記録と異なる場合は、メモリ管理部２２はＲＡＭテーブル２４の更新を行う。
【００２７】
メモリ管理部２２のメモリ割り当てにおいては、読み書き可能なメモリ領域を使用中ＲＡＭへ優先的に割り当て、読み込み専用メモリ領域を破棄可能ＲＡＭへ優先的に割り当て、ＲＡＭ上の空き領域が不足する場合、未使用のＲＡＭに割り当てることを基本とする。しかし、割り当て方針によりどの状態のＲＡＭに割り当てるかを変更しても良い。また、空きメモリ領域を増やすためにＲＡＭ間でのメモリ再配置や再配置に伴うＲＡＭ状態の変更、従来技術にあるガーベージコレクションなどとの組み合わせを行っても良い。また複数の割り当て方針に従った割り当て処理を施し、使用する割り当て処理を動的に切り替えてもよい。
【００２８】
当該コンピュータあるいは当該コンピュータを含む電子機器に対するユーザからの指示が所定期間以上無い、またはユーザから省エネモードへの変更が指示されたなど、所定の条件が成立すると、電源管理部２３は、当該コンピュータの電源状態を省エネモードに変更する必要が生じたと判断する。このとき電源管理部２３は、まず、ＲＡＭテーブル２４を参照し、使用中だが破棄可能なＲＡＭを選択し、この選択したＲＡＭ上に割り当てられたメモリ領域の開放をメモリ管理部２２へ要求する。
【００２９】
この要求を受けたメモリ管理部２２は、ページテーブル２５から当該ＲＡＭを指す物理アドレスを消去して領域の開放を行い、電源管理部２３へ開放完了を通知する。
【００３０】
電源管理部２３は、メモリ管理部２２による領域開放が完了すると、ＲＡＭテーブル２４上で使用中だが破棄可能と記録されているＲＡＭおよび未使用と記録されているＲＡＭの電源をＯｆｆにする。電源管理部２３は、ＲＡＭテーブル４上で使用中と記録されているＲＡＭに対しては、電源状態の変更を行わずＯｎのままとする。このとき、使用中のＲＡＭをセルフリフレッシュへ移行させるようにしても良い。
【００３１】
次に、プログラム実行時にＲＯＭからＲＡＭへプログラムを読み込み、ＲＡＭ上でプログラムを実行する詳細な動作を説明する。
【００３２】
プログラム実行を開始する時点で、ローダー部２１は対象プログラム内のセクション情報をプログラムのヘッダーより読み出し、各セクションの読み書き属性を確認する。各セクションの属性にあわせて、メモリ管理部２２へメモリ領域の要求を行う。
【００３３】
以下では、説明の便宜上、ＲＡＭは１４-１と１４-２の２つとし、ＲＡＭ１４-１をＲＡＭ１、ＲＡＭ１４−２をＲＡＭ２と記す。また、ＲＡＭ１は使用中であり電源Ｏｎ状態、ＲＡＭ２は未使用で電源Ｏｆｆ状態にあるものとする。またＲＡＭへ読み込んで実行するプログラムをプログラムＡと記す。
【００３４】
プログラムＡの実行前は、図６に示すように、ＲＡＭ１にはＲＡＭテーブル２４、ページテーブル２５等、管理プログラムに必要なデータは記憶されているが、プログラムＡはＲＡＭ上にはなく、ＲＯＭ上にのみ存在している。
【００３５】
プログラムＡの実行が要求されると、ローダー部２１のメモリ確保先判定手段３４は、ＲＯＭ上のプログラムＡのヘッダーを参照するとともに、メモリ管理部２２から空きメモリ状況を確認し、読み込み先を判定する。このとき、判定した読み込み先のＲＡＭの電源状態がＯｆｆの場合、ローダー部２１からメモリ管理部２２を通じて、コピー開始前に電源管理部２３により当該ＲＡＭの電源状態がＯｎに変更される。
【００３６】
メモリ確保先判定手段３４は、使用中のＲＡＭ１に十分な空き容量がある場合、プログラムＡのコード、ＲＯデータ、ＲＷデータおよびスタックの全ての読み込み先を使用中ＲＡＭ１に決定する。その理由は、ＲＡＭ２を未使用電源Ｏｆｆ状態に維持することができるためである。ローダー部２１のメモリ要求手段３５は、ＲＡＭ１をロード先に指定して、プログラムＡのコード、ＲＯデータ、ＲＷデータおよびスタックをＲＡＭ１にロードするためのメモリ領域の確保とコピー処理をメモリ管理部２２に要求する。メモリ管理部２２は、その要求に従って、ＲＯＭから該当部分を読み出し、ＲＡＭ１に書き込み、ページテーブル２５を更新する。これにより、図８に示すように、プログラムＡのコード、ＲＯデータ、ＲＷデータがＲＡＭ１に再配置される。
【００３７】
図８に示したようにプログラムＡがＲＡＭ１上に展開された後、プログラムＡの実行開始点のアドレスがアクセスされることで、プログラムＡの実行が開始される。プログラムＡの実行中は、図９に示すように、ＲＡＭ１上のプログラムＡのコード、ＲＯデータ、ＲＷデータがアクセスされる。
【００３８】
省エネモードへの変更時には、メモリ管理部２２にてＲＡＭテーブル２４を確認し、未使用あるいは情報を破棄可能と判断したＲＡＭについては、当該ＲＡＭ範囲の物理アドレスをページテーブル２５から消去し、電源管理部２３により当該ＲＡＭの電源をＯｆｆにする。また、使用中のＲＡＭについてはセルフリフレッシュに切り替える。図９の状態においては、ＲＡＭ１は使用中なので、セルフリフレッシュに切り替えられる。また、ＲＡＭ２は以前として電源Ｏｆｆの状態が維持される。図１０はこのような省エネモード時の状態を示している。
【００３９】
当該コンピュータあるいは当該コンピュータを含む電子機器に対するユーザからの指示があった場合、またはユーザから通常モード（非省エネモード）への変更が指示されるなど、所定の条件が成立すると、電源管理部２は、当該コンピュータの電源状態を通常モードに変更する必要が生じたと判断する。図１０に示すような省エネモード状態から通常モード（非省エネモード）への復帰時、あるいは、復帰後にプログラムＡのコード等に対するアクセスが初めて発生した時、電源管理部２３によりＲＡＭ２の電源がＯｎされる。また、ＲＡＭ１のセルフリフレッシュ機能はＯｆｆされる。これにより、図９の状態に復帰する。
【００４０】
他方、メモリ確保先判定手段３４は、使用中のＲＡＭ１に、プログラムＡのコード、ＲＯデータ、ＲＷデータおよびスタックの全てを記憶するだけの空き容量が無い場合、使用中ＲＡＭ１に、プログラムＡのＲＷデータとスタックを記憶するだけの空き容量が存在するかどうかを判定する。そして、そのような空き容量が存在すれば、メモリ確保先判定手段３４は、プログラムＡのＲＷデータとスタックの配置先を使用中ＲＡＭ１に決定し、プログラムＡのコードとＲＯデータの配置先は、ＲＡＭ２に決定する。ローダー部２１のメモリ要求手段３５は、ＲＡＭ１をロード先に指定して、プログラムＡのＲＷデータのメモリ領域の確保とコピー処理をメモリ管理部２２に要求する。さらにローダー部２１のメモリ要求手段３５は、ＲＡＭ２をロード先に指定して、プログラムＡのコード、ＲＯデータのメモリ領域の確保とコピー処理をメモリ管理部２２に要求する。メモリ管理部２２は、それらの要求に従って、ＲＯＭから該当部分を読み出し、ＲＡＭ１、ＲＡＭ２に書き込み、ページテーブル２５を更新する。これにより、図１１に示すように、プログラムＡのＲＷデータとスタックがＲＡＭ１に再配置され、プログラムＡのコードとＲＯデータがＲＡＭ２に再配置される。またＲＡＭ２はコピー処理に先立って電源Ｏｎされる。
【００４１】
図１１のような再配置が行われた後、プログラムＡの実行開始点のアドレスがアクセスされることで、プログラムＡの実行が開始される。プログラムＡの実行中は、図１２に示すように、ＲＡＭ１上のプログラムＡのＲＷデータと、ＲＡＭ２上のコードとＲＯデータとがアクセスされる。
【００４２】
また図１１のような再配置が行われた後の省エネモードへの変更時には、メモリ管理部２２にてＲＡＭテーブル２４を確認し、未使用あるいは情報を破棄可能と判断したＲＡＭ２について、当該ＲＡＭ範囲の物理アドレスをページテーブル２５から消去し、電源管理部２３により当該ＲＡＭ２の電源をＯｆｆにする。また、使用中のＲＡＭ１についてはセルフリフレッシュに切り替える。図１３はこのような省エネモード時の状態を示している。
【００４３】
図１３に示すような省エネモード状態から通常モード（非省エネモード）への復帰時、あるいは、復帰後にプログラムＡのコード等に対するアクセスが初めて発生した時、図１４に示すように、電源管理部２３によりＲＡＭ２の電源がＯｎされ、メモリ管理部２２によりプログラムＡのコードとＲＯデータがＲＯＭからＲＡＭ２の元の領域に再度読み込まれる。具体的には、ＣＰＵ１１がプログラムＡのコードをアクセスするためにその仮想アドレスをＭＭＵ１２に出力すると、ＭＭＵ１２はページテーブル２５を参照して物理アドレスへの変換を試みるが、仮想アドレスと物理アドレスとの対応関係が省エネモード以降時に無効にされているため、例外が発生し、例外処理部２６による例外処理が実行される。この例外処理により、電源管理部２３に対してＲＡＭ２の電源Ｏｎが要求され、またメモリ管理部２２に対してプログラムＡのコードとＲＯデータをＲＯＭからＲＡＭ２の元の領域に複写する処理が要求される。そして、例外発生時点に制御が戻され、ＣＰＵ１１がプログラムＡのコードをアクセスする段階から処理が再開される。
【００４４】
また、メモリ確保先判定手段３４は、使用中のＲＡＭ１に、プログラムＡのＲＷデータとスタックを記憶するだけの空き容量も存在しなければ、プログラムＡのコード、ＲＯデータ、ＲＷデータおよびスタックの配置先をＲＡＭ２に決定する。ローダー部２１のメモリ要求手段３５は、ＲＡＭ２をロード先に指定して、プログラムＡのコード、ＲＯデータ、ＲＷデータのメモリ領域の確保とコピー処理をメモリ管理部２２に要求する。メモリ管理部２２は、その要求に従って、ＲＯＭから該当部分を読み出し、ＲＡＭ２に書き込み、ページテーブル２５を更新する。これにより、図１５に示すように、プログラムＡのコード、ＲＯデータ、ＲＷデータおよびスタックがＲＡＭ２に再配置される。
【００４５】
図１５のような再配置が行われた後、プログラムＡの実行開始点のアドレスがアクセスされることで、プログラムＡの実行が開始される。プログラムＡの実行中は、図１６に示すように、ＲＡＭ２上のプログラムＡのコード、ＲＯデータ、ＲＷデータがアクセスされる。
【００４６】
また図１５のような再配置が行われた後の省エネモードへの変更時には、メモリ管理部２２にてＲＡＭテーブル２４を確認し、使用中と判断したＲＡＭ１、ＲＡＭ２についてセルフリフレッシュに切り替える。図１７はこのような省エネモード時の状態を示している。
【００４７】
図１７に示すような省エネモード状態から通常モード（非省エネモード）への復帰時、あるいは、復帰後にプログラムＡのコード等に対するアクセスが初めて発生した時、ＲＡＭ１、ＲＡＭ２のセルフリフレッシュ機能はＯｆｆされる。これにより、図１６の状態に復帰する。
【００４８】
以上説明したように本実施の形態によれば、ＲＯＭ上のプログラムをＲＡＭに複写して実行するコンピュータにおいて、より一層の省電力化が可能になる。その理由は、使用中ＲＡＭを、プログラムのＲＷデータやスタックを記憶している破棄不可能ＲＡＭと、コードやＲＯデータは記憶しているがＲＷデータやスタック等の書き込み可能データは記憶していない破棄可能ＲＡＭとに区分して管理し、省エネモード以降時、不使用ＲＡＭだけでなく、破棄可能ＲＡＭの電源供給を停止するためである。
【００４９】
[その他の実施の形態]
前述した実施の形態では、メモリ確保先判定手段３４をローダー部２１に備えるようにしたが、図１８に示すように、メモリ確保先判定手段３４をメモリ管理部２２に備えるようにしても良い。図１８に示す実施の形態では、ローダー部２１は、プログラム内セクションの読み書き属性に応じたメモリ領域の属性を指定してメモリ要求を行い、メモリ管理部２２のメモリ確保先判定手段３４において、ＲＡＭ状態と要求されたメモリ領域の属性に応じてメモリ確保先を判定する。
【００５０】
また、本発明の別の実施の形態として、図１９に示すように、メモリ割り当てポリシーを記憶する手段４１を備え、メモリ確保先判定手段３４が、この記憶されたメモリ割り当てポリシーを参照して、メモリ確保先を判定しても良い。
【００５１】
例えば、第１の実施の形態では、ＲＡＭ１に空き容量が十分にある場合、プログラムＡのコード、ＲＯデータ、ＲＷデータ、スタックをＲＡＭ１に割り当てるようにした（このメモリ割り当て方針を以下、方針ａと呼ぶ）。しかし、ＲＡＭ１に空き容量が十分あったとしても、ＲＡＭ１にはプログラムＡのＲＷデータとスタックを割り当て、読み込み専用セクション（コードとＲＯデータ）は、ＲＡＭ２に割り当てることも可能である（このメモリ割り当て方針を以下、方針ｂと呼ぶ）。方針ａによれば、ＲＡＭ２をＯｆｆに維持できるメリットがあった。他方、方針ｂによれば、読み書き可能なメモリ領域が必要だが使用中ＲＡＭ１内に空きメモリ領域が不足している場合に、使用中ＲＡＭ１内から破棄可能な情報（プログラム内の読み込み専用セクション）を破棄する動作が不要になるメリットがある。このような場合、メモリ割り当てポリシーに、使用中ＲＡＭ１に空き容量が十分にある場合に、方針ａ、方針ｂの何れを採用するかのポリシーを記載しておき、メモリ確保先判定手段３４がそのポリシーに従ってメモリ確保先を判定するようにすることができる。
【００５２】
また、第１の実施の形態では、ＲＡＭ１にプログラムＡのＲＷデータとスタック分の空き容量も存在しなかった場合、ＲＡＭ２にプログラムＡのコード、ＲＯデータ、ＲＷデータ、スタックを割り当てるようにした（このメモリ割り当て方針を以下、方針ｃと呼ぶ）。しかし、ＲＡＭ１、ＲＡＭ２に加えて、未使用で電源Ｏｆｆ状態のＲＡＭ３がある場合、プログラムＡのコードとＲＯデータをＲＡＭ２に割り当て、プログラムＡのＲＷデータとスタックをＲＡＭ３に割り当て、ＲＡＭ１とＲＡＭ３を使用中、ＲＡＭ２を使用中だが破棄可能とすることもできる（このメモリ割り当て方針を以下、方針ｄと呼ぶ）。このような場合、メモリ割り当てポリシーに、使用中ＲＡＭ１に空き容量が殆どない場合に、方針ｃ、方針ｄの何れを採用するかのポリシーを記載しておき、メモリ確保先判定手段３４がそのポリシーに従ってメモリ確保先を判定するようにすることができる。
【００５３】
さらに本発明の他の実施の形態として、図２０に示すように、ユーザ等から入力されるメモリ割り当てポリシー変更要求に応じて、手段４１に記憶されたメモリ割り当てポリシーを変更するメモリ割り当てポリシー管理部４２を設け、メモリ割り当てポリシーを動的に変更できるようにしても良い。
【００５４】
また、前述した実施の形態では、ＲＯＭからＲＡＭへのプログラムＡの複写をプログラムＡの実行開始時点に一括して実行したが、プログラムＡのコードやＲＯデータ、ＲＷデータがアクセスされたタイミングで、ページサイズなどの所定サイズ単位で、ＲＯＭからＲＡＭへの複写を行うようにしても良い。
【００５５】
また、前述した第１の実施の形態では、プログラムの全部をＲＯＭからＲＡＭに複写して実行する実行形態だけを実装した（この実行形態を以下、第１の実行形態と呼ぶ）。しかし、他の実行形態として、図２１に示すように、プログラムＡのうち書き換え可能なプログラム内セクションのみをＲＡＭへコピー実行する実行形態も考えられる（この実行形態を以下、第２の実行形態と呼ぶ）。第２の実行形態では、読み込み専用セクションは常にＲＯＭ上を参照するため、ＲＡＭ上へ配置する領域が削減でき、メモリコピー時間が短縮でき、また電源Ｏｆｆ可能なＲＡＭが第１の実施の形態に比べて作成し易くなる。ただし、プログラムの実行速度の面では劣る。
【００５６】
また別の実行形態として、図２２、図２３、図２４に示すように、プログラムＡのプログラム内セクションを当初全てＲＯＭ上で参照、実行し、書き換え発生時点でＲＡＭへコピーし更新する実行形態が考えられる（この実行形態を以下、第３の実行形態と呼ぶ）。第３の実行形態は、ＲＡＭ上へ配置する領域が最小となるため、電源Ｏｆｆ可能なＲＡＭが最も作成し易くなる。しかし、プログラムの実行速度の面では劣る。
【００５７】
そこで、第１乃至第３の実行形態の何れの実行形態を使用するかを前述したメモリ割り当てポリシーに記載しておき、プログラムＡの実行開始時点で選択可能とするようにしても良い。コンピュータが含まれる電子機器の負荷状況などに応じて動的に切り替えることも考えられる。例えば、プログラム全てをＲＡＭ上に配置する第１の実行形態に比べて、プログラムの多くをＲＯＭ上に配置する第３の実行形態はプログラム実行速度の面で劣る。そのため、高速な処理が要求されるときは第１の実行形態を用い、処理速度が低下しても問題ない場合は第３の実行形態を用いるようにすれば、消費電力削減のみでなく、処理速度においても最適化が可能になる。
【産業上の利用可能性】
【００５８】
一般家電、携帯情報端末、制御装置などコンピュータを含む電子機器の消費電力削減に利用できる。
【符号の説明】
【００５９】
１１    ＣＰＵ
１２    ＭＭＵ
１３    ＲＯＭ
１４    ＲＡＭ
１５    電源装置
２１    ローダー部
２２    メモリ管理部
２３    電源管理部
２４    ＲＡＭテーブル
２５    ページテーブル
２６    例外処理部
３４    メモリ確保先判定手段
３５    メモリ要求手段
４２    ポリシー管理部
【図１】
2010286964.tif 000003
【図２】
2010286964.tif 000004
【図３】
2010286964.tif 000005
【図４】
2010286964.tif 000006
【図５】
2010286964.tif 000007
【図６】
2010286964.tif 000008
【図７】
2010286964.tif 000009
【図８】
2010286964.tif 000010
【図９】
2010286964.tif 000011
【図１０】
2010286964.tif 000012
【図１１】
2010286964.tif 000013
【図１２】
2010286964.tif 000014
【図１３】
2010286964.tif 000015
【図１４】
2010286964.tif 000016
【図１５】
2010286964.tif 000017
【図１６】
2010286964.tif 000018
【図１７】
2010286964.tif 000019
【図１８】
2010286964.tif 000020
【図１９】
2010286964.tif 000021
【図２０】
2010286964.tif 000022
【図２１】
2010286964.tif 000023
【図２２】
2010286964.tif 000024
【図２３】
2010286964.tif 000025
【図２４】
2010286964.tif 000026