(57)【要約】【課題】メインメモリへの給電電力を省電力化することができる電源制御装置を得ること。【解決手段】通常電力モードまたは省電力モードで動作するＣＰＵ１とメインメモリ２とを備える計算機システムにおいて、メインメモリ２の電源供給を制御する電源制御部３であって、ＣＰＵ１のモード信号に基づいて、ＣＰＵ１が省電力モードに移行したと判断した場合はメインメモリ２への電源供給の停止を指示し、ＣＰＵ１が通常電力モードに復帰したと判断した場合はメインメモリ２への電源供給の開始を指示するＣＰＵ監視部６、を備え、指示に基づいてメインメモリ２への電源供給を制御する。【選択図】        図１
2010044460.tif 000002
【特許請求の範囲】
【請求項１】
通常電力モードまたは省電力モードで動作するＣＰＵとメインメモリとを備える計算機システムにおいて、前記メインメモリの電源供給を制御する電源制御装置であって、
前記ＣＰＵのモードを示すモード信号を検出し、前記モード信号に基づいてＣＰＵが省電力モードに移行したと判断した場合は前記メインメモリへの電源供給の停止を指示し、前記モード信号に基づいてＣＰＵが通常電力モードに復帰したと判断した場合は前記メインメモリへの電源供給の開始を指示するＣＰＵ監視手段、
を備え、
前記指示に基づいて前記メインメモリへの電源供給を制御することを特徴とする電源制御装置。
【請求項２】
前記モード信号を、モードごとに設定される前記ＣＰＵのモード端子の電圧値とすることを特徴とする請求項１に記載の電源制御装置。
【請求項３】
前記ＣＰＵは省電力モードとして２種類以上のモードを有することとし、
さらに、
前記ＣＰＵのモードごとにメインメモリへの電源供給を停止するか否かの設定情報を格納するための設定格納手段、
を備え、
前記ＣＰＵ監視手段は、前記ＣＰＵが省電力モードに移行したと判断した場合、さらに前記設定情報に基づいてそのモードが電源供給を停止すると設定されているか否かを判断し、そのモードが電源供給を停止しないと設定されている場合は、電源供給の停止を指示しないことを特徴とする請求項２に記載の電源制御装置。
【請求項４】
前記ＣＰＵは、省電力モードでは動作クロックの供給を停止することとし、また、前記モード信号を、前記ＣＰＵに動作クロックを供給するクロック信号とし、
前記ＣＰＵ監視手段は、前記クロック信号の供給が停止した場合は省電力モードに移行したと判断し、前記クロック信号の供給が開始された場合は通常電力モードに復帰したと判断することを特徴とする請求項１に記載の電源制御装置。
【請求項５】
ＣＰＵとメインメモリとを備え、前記ＣＰＵがメモリバスを用いて前記メインメモリへアクセスする計算機システムにおいて、前記メインメモリの電源供給を制御する電源制御装置であって、
所定の初期値から一定時間ごとにカウント値を減じ、カウント値が０になった場合に、メインメモリへの電源供給を停止するよう指示するカウンタタイマ手段と、
前記ＣＰＵによる前記メインメモリへのアクセスを監視し、アクセスがあった場合には、前記カウンタタイマ手段のカウント値を初期値にリセットするメモリバス監視手段と、
を備えることを特徴とする電源制御装置。
【請求項６】
前記メインメモリは、個別に給電が可能な複数のメモリバンクで構成されることとし、
前記カウンタタイマ手段を、前記メモリバンクごとに備え、
前記メモリバス監視手段は、前記ＣＰＵによるアクセスを前記メモリバンクごとに監視し、アクセスがあったメモリバンクに対応するカウンタタイマ手段を初期値にリセットすることを特徴とする請求項５に記載の電源制御装置。
【請求項７】
前記ＣＰＵに送信される外部割込み信号の有無を監視し、前記外部割込み信号を検出したときに、前記メインメモリへの電源供給が停止している場合には、前記メインメモリへの電源供給の開始を指示する外部割込み監視手段、
をさらに備え、
さらに前記外部割込み監視手段の指示に基づいて前記メインメモリへの電源供給を制御することを特徴とする請求項１〜４のいずれか１つに記載の電源制御装置。
【請求項８】
前記ＣＰＵへの前記外部割込み信号の入力の可否を制御するゲート回路手段と、
起動されると所定の設定時間だけ待機し、待機が終了すると待機終了を通知する待機手段と、
をさらに備え、
前記外部割込み監視手段は、
前記ＣＰＵ監視手段が前記メインメモリへの電源供給を停止した場合には、前記ゲート回路手段を閉じることにより前記ＣＰＵへの前記外部割込み信号の入力を不可とし、
前記外部割込み信号を検出した場合には、さらに、前記待機手段を起動し、前記待機手段から待機終了通知を受信した時点で前記ゲート回路手段を開けることにより前記ＣＰＵへの前記外部割込み信号の入力を可とすることを特徴とする請求項７に記載の電源制御装置。
【請求項９】
ＣＰＵと個別に給電可能な複数のメモリバンクで構成されるメインメモリとを備える計算機システムであって、
請求項６に記載の電源制御装置と、
メモリバンクごとのページイン元として選択するための優先順位を示す優先度をページインバンク管理テーブルとして記憶するためのページインバンク管理テーブル記憶手段と、
ページイン要求が発生した場合に、前記ページインバンク管理テーブルを参照し、前記優先度の高いメモリバンクから順に空き領域を探索し、空き領域があると判断したメモリバンクをページイン先のメモリバンクとして決定して所定のページイン処理を行うページイン処理手段と、
を備えることを特徴とする計算機システム。
【請求項１０】
前記メモリバンクごとのページアウト対象として選択するための優先順位を示す優先度をページアウトバンク管理テーブルとして記憶するためのページアウトバンク管理テーブル記憶手段と、
ページアウト要求が発生した場合に、前記ページアウトバンク管理テーブルを参照し、前記優先度の高いメモリバンクから順にページアウト可能領域を探索し、ページアウト可能領域があると判断したメモリバンクをページアウト対象のメモリバンクとして決定して所定のページアウト処理を行うページアウト処理手段と、
をさらに備えることを特徴とする請求項９に記載の計算機システム。
【請求項１１】
ＣＰＵと個別に給電可能な複数のメモリバンクで構成されるメインメモリとを備える計算機システムであって、
請求項６に記載の電源制御装置と、
前記メモリバンクごとのページアウト対象として選択するための優先順位を示す優先度をページアウトバンク管理テーブルとして記憶するためのページアウトバンク管理テーブル記憶手段と、
ページアウト要求が発生した場合に、前記ページアウトバンク管理テーブルを参照し、前記優先度の高いメモリバンクから順にページアウト可能領域を探索し、ページアウト可能領域があると判断したメモリバンクをページアウト対象のメモリバンクとして決定して所定のページアウト処理を行うページアウト処理手段と、
を備えることを特徴とする計算機システム。
【請求項１２】
ＣＰＵと個別に給電可能な複数のメモリバンクで構成されるメインメモリとを備える計算機システムであって、
請求項６に記載の電源制御装置と、
実行する優先度とタスクの識別番号とを対応付けて記憶するためのＲｅａｄｙキューと、
タスクの識別番号と、その識別番号に対応するタスクが配置されるメインメモリバンクの識別子とを対応付けてタスク配置テーブルとして記憶するためのタスク配置テーブル記憶手段と、
現在実行中のタスクが配置されているメモリバンクの識別子を前記タスク配置テーブルから取得し、取得した識別番号を第１の番号とし、また、実行可能なタスクのうち前記Ｒｅａｄｙキューに記憶されている優先度が最も高いタスクの識別番号を読み出し、その識別番号に対応するメモリバンクの識別子を第２の番号として前記タスク配置テーブルから取得し、前記第１の番号と一致する前記第２の番号に対応するタスク番号がある場合には、そのタスク番号に対応するタスクを次に実行するタスクとして決定し、一方、前記第１の番号と一致する前記第２の番号に対応するタスク番号が無い場合は、前記Ｒｅａｄｙキューに記憶されているその優先度に対応するタスクの識別番号のうちの１つを次に実行するタスクとして決定するスケジューラと、
を備えることを特徴とする計算機システム。
【請求項１３】
実行する優先度とタスクの識別番号とを対応付けて記憶するためのＲｅａｄｙキューと、
タスクの識別番号と、その識別番号に対応するタスクが配置されるメインメモリバンクの識別子と対応付けてタスク配置テーブルとして記憶するためのタスク配置テーブル記憶手段と、
現在実行中のタスクが配置されているメモリバンクの識別子を前記タスク配置テーブルから取得し、取得した識別番号を第１の番号とし、また、実行可能なタスクのうち前記Ｒｅａｄｙキューに記憶されている優先度が最も高いタスクの識別番号を読み出し、その識別番号に対応するメモリバンクの識別子を第２の番号として前記タスク配置テーブルから取得し、前記第１の番号と一致する前記第２の番号に対応するタスク番号がある場合には、そのタスク番号に対応するタスクを次に実行するタスクとして決定し、一方、前記第１の番号と一致する前記第２の番号に対応するタスク番号が無い場合は、前記Ｒｅａｄｙキューに記憶されているその優先度に対応するタスクの識別番号のうちの１つを次に実行するタスクとして決定するスケジューラと、
をさらに備えることを特徴とする請求項９、１０または１１に記載の計算機システム。
【請求項１４】
通常電力モードまたは省電力モードで動作するＣＰＵとメインメモリとを備える計算機システムにおいて、前記メインメモリの電源供給を制御する電源制御方法であって、
前記ＣＰＵのモードを示すモード信号を検出し、前記モード信号に基づいてＣＰＵが省電力モードに移行したと判断した場合は、前記メインメモリへの電源供給の停止を指示し、前記モード信号に基づいてＣＰＵが通常電力モードに復帰したと判断した場合は、前記メインメモリへの電源供給の開始を指示するＣＰＵ監視ステップと、
前記指示に基づいて前記メインメモリの電源供給を制御する電源制御ステップと、
を含むことを特徴とする電源制御方法。
【請求項１５】
ＣＰＵとメインメモリとを備え、前記ＣＰＵがメモリバスを用いて前記メインメモリへアクセスする計算機システムにおいて、前記メインメモリの電源供給を制御する電源制御方法であって、
所定の初期値から一定時間ごとにカウンタのカウント値を減じ、カウント値が０となった場合に、メインメモリへの電源供給を停止するよう指示するカウンタタイマステップと、
前記ＣＰＵによる前記メインメモリへのアクセスを監視し、アクセスがあった場合には、前記カウンタのカウント値を初期値にリセットするメモリバス監視ステップと、
を含むことを特徴とする電源制御方法。
【請求項１６】
ＣＰＵと個別に給電可能な複数のメモリバンクで構成されるメインメモリとを備える計算機システムにおける電源制御方法であって、
前記メモリバンクごとのページイン元として選択するための優先順位を示す優先度をページインバンク管理テーブルとして記憶するためのページインバンク管理テーブル記憶ステップと、
ページイン要求が発生した場合に、前記ページインバンク管理テーブルを参照し、前記優先度の高いメモリバンクから順に空き領域を探索し、空き領域があると判断したメモリバンクをページイン先のメモリバンクとして決定して所定のページイン処理を行うページイン処理ステップと、
前記メモリバンクごとにカウンタのカウント値を所定の初期値に設定し、それぞれのカウント値を一定時間ごとに減じ、カウント値が０となった場合に、そのカウント値に対応するメモリバンクへの電源供給を停止するよう指示するカウンタタイマステップと、
前記ＣＰＵによる前記メインメモリへのアクセスをメモリバンクごとに監視し、アクセスがあった場合には、アクセスのあったメモリバンクに対応する前記カウンタのカウント値を初期値にリセットするメモリバス監視ステップと、
前記指示に基づいて前記メインメモリの電源供給を制御する電源制御ステップと、
を含むことを特徴とする電源制御方法。
【請求項１７】
ＣＰＵと個別に給電可能な複数のメモリバンクで構成されるメインメモリとを備える計算機システムにおける電源制御方法であって、
前記メモリバンクごとのページアウト対象として選択するための優先順位を示す優先度をページアウトバンク管理テーブルとして記憶するためのページアウトバンク管理テーブル記憶ステップと、
ページアウト要求が発生した場合に、前記ページアウトバンク管理テーブルを参照し、前記優先度の高いメモリバンクから順にページアウト可能領域を探索し、ページアウト可能領域があると判断したメモリバンクをページアウト対象のメモリバンクとして決定して所定のページアウト処理を行うページアウトステップと、
前記メモリバンクごとにカウンタのカウント値を所定の初期値に設定し、それぞれのカウント値を一定時間ごとに減じ、カウント値が０となった場合に、そのカウント値に対応するメモリバンクへの電源供給を停止するよう指示するカウンタタイマステップと、
前記ＣＰＵによる前記メインメモリへのアクセスをメモリバンクごとに監視し、アクセスがあった場合には、アクセスのあったメモリバンクに対応するカウンタのカウント値を初期値にリセットするメモリバス監視ステップと、
前記指示に基づいて前記メインメモリの電源供給を制御する電源制御ステップと、
を含むことを特徴とする電源制御方法。
【請求項１８】
ＣＰＵと個別に給電可能な複数のメモリバンクで構成されるメインメモリとを備える計算機システムにおける電源制御方法であって、
実行する優先度とタスクの識別番号とを対応付けてＲｅａｄｙキューに記憶するＲｅａｄｙキューステップと、
タスクの識別番号と、その識別番号に対応するタスクが配置されるメインメモリバンクの識別子と対応付けてタスク配置テーブルとして記憶するタスク配置テーブル記憶ステップと、
現在実行中のタスクが配置されているメモリバンクの識別子を前記タスク配置テーブルから取得し、取得した識別番号を第１の番号とし、また、実行可能なタスクのうち前記Ｒｅａｄｙキューに記憶されている優先度が最も高いタスクの識別番号を読み出し、その識別番号に対応するメモリバンクの識別子を第２の番号として前記タスク配置テーブルから取得し、前記第１の番号と一致する前記第２の番号に対応するタスク番号がある場合には、そのタスク番号に対応するタスクを次に実行するタスクとして決定し、一方、前記第１の番号と一致する前記第２の番号に対応するタスク番号が無い場合は、前記Ｒｅａｄｙキューに記憶されているその優先度に対応するタスクの識別番号のうちの１つを次に実行するタスクとして決定するスケジューリングステップと、
前記メモリバンクごとにカウンタのカウント値を所定の初期値に設定し、それぞれのカウント値を一定時間ごとに減じ、カウント値が０となった場合に、そのカウント値に対応するメモリバンクへの電源供給を停止するよう指示するカウンタタイマステップと、
前記ＣＰＵによる前記メインメモリへのアクセスをメモリバンクごとに監視し、アクセスがあった場合には、アクセスのあったメモリバンクに対応するカウント値を初期値にリセットするメモリバス監視ステップと、
前記指示に基づいて前記メインメモリの電源供給を制御する電源制御ステップと、
を含むことを特徴とする電源制御方法。
【請求項１９】
請求項１６、１７または１８の電源制御方法をコンピュータに実行させることを特徴とする電源制御プログラム。
【請求項２０】
請求項１９の電源制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムのメインメモリに対する電源制御装置、計算機システム、電源制御方法、電源制御プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
一般的な計算機システムは、単純化すると、プログラムを実行するＣＰＵ（Central  Processing  Unit）と、各種ＩＯ（Input／Output：入出力）デバイスとＣＰＵとを介在するＩＯ制御部と、プログラムやデータを格納するためのメインメモリと、各ハードウェア構成部へ電力を供給する電源制御部からなる。
【０００３】
従来、メインメモリにはＳＲＡＭ（Static  Random  Access  Memory)やＤＲＡＭ（Dynamic  Random  Access  Memory）のように、揮発性メモリと呼ばれるものが主に用いられる。揮発性メモリは、給電を停止するとその内容は消滅してしまう特性を有するため、これらをメインメモリとして用いるシステムでのメインメモリの省電力制御としては、動作クロックの停止に留まっていた。
【０００４】
一方、メインメモリとして、不揮発性メモリが用いられる計算機システムも登場している。たとえば、下記特許文献１では、不揮発性メモリとしてＭＲＡＭ（Magnetic  Random  Access  Memory）を用いたシステムが開示されている。
【０００５】
【特許文献１】特開２００３−１０４１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の不揮発性メモリを用いた計算機システムでは、ＭＲＡＭをＲＯＭ（Read  Only  Memory）の代わりとして、計算機システムの電源ＯＦＦ状態でもデータを保持する程度にしか利用していない。そのため、ＭＲＡＭの不揮発性という特徴を、計算機システムの省電力化に活かしていない、という問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、計算機システムの動作中に、不揮発性メモリをメインメモリとして用いる場合に、従来のシステムに比べメインメモリへの給電電力の省電力化を図ることができる電源制御装置、計算機システム、電源制御方法、電源制御プログラムおよび記録媒体を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、通常電力モードまたは省電力モードで動作するＣＰＵとメインメモリとを備える計算機システムにおいて、前記メインメモリの電源供給を制御する電源制御装置であって、前記ＣＰＵのモードを示すモード信号を検出し、前記モード信号に基づいてＣＰＵが省電力モードに移行したと判断した場合は前記メインメモリへの電源供給の停止を指示し、前記モード信号に基づいてＣＰＵが通常電力モードに復帰したと判断した場合は前記メインメモリへの電源供給の開始を指示するＣＰＵ監視手段、を備え、前記指示に基づいて前記メインメモリへの電源供給を制御することを特徴とする。
【発明の効果】
【０００９】
この発明によれば、ＣＰＵのＭＯＤＥ端子に接続するＣＰＵ監視部を備えることとし、ＣＰＵ監視部がＭＯＤＥ端子から出力される電圧に基づいて省電力モードに移行したと判断した場合にはメインメモリへの給電を停止するようにしたので、メインメモリへの給電電力の省電力化を図ることができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明にかかる電源制御装置および電源制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、本発明にかかる計算機システムの実施の形態１の構成例を示す図である。図１に示すように、本実施の形態の計算機システムは、プログラムを実行するＣＰＵ（Central  Processing  Unit）１と、プログラムやデータを格納するためのメインメモリ２と、各ハードウェア構成部へ電力を供給し、本発明にかかる電源制御装置としての機能を有する電源制御部３と、を備えている。また、ＣＰＵ１およびメインメモリ２は、メモリバス４に接続している。また、電源制御部３は、電源供給ライン５を介してメインメモリ２に電源を供給する。
【００１２】
本実施の形態の電源制御部３は、メインメモリ２への電源供給の有無を制御する。また、電源制御部３は、ＣＰＵ監視部６を備えており、ＣＰＵ監視部６は、ＣＰＵ１のＭＯＤＥ端子７と接続している。このＭＯＤＥ端子７（図示のＭＯＤＥに対応）は、省電力機能を有したＣＰＵが一般に備えている端子であり、通常動作モードでは電圧Highが、省電力モードでは電圧Lowが出力される。
【００１３】
ＣＰＵ監視部６は、ＭＯＤＥ端子７から出力される電圧がHighからLowになった場合、ＣＰＵ１が省電力モードへ移行したと判断し、メインメモリ２へのアクセスが不要となるため、メインメモリ２への給電を停止する。また、ＣＰＵ監視部６は、ＭＯＤＥ端子７から出力される電圧がLowからHighになった場合、ＣＰＵ１が通常動作モードへ移行したと判断し、プログラムの読み出しやデータへのアクセスを可能とするため、メインメモリ２への給電を再開する。
【００１４】
このように、本実施の形態では、電源制御部３にＣＰＵ１のＭＯＤＥ端子７に接続するＣＰＵ監視部６を備えることとし、ＣＰＵ監視部６がＭＯＤＥ端子７から出力される電圧に基づいて省電力モードに移行したと判断した場合には、メインメモリ２への給電を停止するようにした。このため、メインメモリ２への給電電力の省電力化を図ることができる。
【００１５】
実施の形態２．
図２は、本発明にかかる計算機システムの実施の形態２の構成例を示す図である。図２に示すように本実施の形態の計算機システムは、実施の形態１の計算機システムに、ゲート９とクロック発生装置１０を追加し、電源制御部３を電源制御部３ａに替える以外は、実施の形態１の計算機システムと同様である。実施の形態１と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【００１６】
本実施の形態の電源制御部３ａは、メインメモリ２の電源供給の有無を制御し、また、ＣＰＵ監視部６ａを備えている。ＣＰＵ監視部６ａ、ＣＰＵ１の動作クロックを供給するクロック信号線が接続されるＥＸＣＬＫ端子８（図示のＥＸＣＬＫに対応）に接続される。一般にＣＰＵは内部にレジスタやキャッシュメモリを搭載している。このため、ＣＰＵの省電力化は、クロックを停止することで実現されており、ＣＰＵへのクロック供給をＯＮ／ＯＦＦするために、クロック発生装置に対してＯＮ／ＯＦＦの信号を送っている。
【００１７】
本実施の形態のＣＰＵ１も、上記のような一般的な省電力化の機能を有していることとする。具体的には、ＣＰＵ１は、ＥＸＣＬＫ端子８とクロック発生装置１０との間にゲート９を設け、ＣＰＵ１が、ゲート９のＯＮとＯＦＦを制御する。そして、通常の動作時は、ＣＰＵ１はゲート９をＯＮとし、クロック発生装置１０からＣＰＵ１にクロックが供給される。また、省電力モード時は、ＣＰＵ１は、ゲート９をＯＦＦとし、クロック発生装置１０からクロックがＣＰＵ１に供給されない。
【００１８】
本実施の形態では、ＣＰＵ監視部６ａが、ＥＸＣＬＫ端子８から出力されるクロックを取得し、ＣＰＵ１へのクロック供給有無を監視する。そして、ＣＰＵ監視部６ａは、ＥＸＣＬＫ端子８から出力される信号に基づいてＣＰＵ１にクロック供給中であると判断した場合は、メインメモリ２への給電を行い、ＣＰＵ１にクロック供給中でないと判断した場合には、メインメモリ２への給電を停止する。
【００１９】
なお、ＣＰＵ監視部６ａにＣＰＵ１へ供給されるクロック信号と同じクロック信号を入力すると、ＣＰＵ１のＥＸＣＬＫ端子８へクロックが供給されているか否かを、ＣＰＵ１のクロック１周期以内に検出することができる。
【００２０】
なお、本実施の形態では、ＥＸＣＬＫ端子８へ入力される信号に基づいてＣＰＵ１が省電力モードであるか否かを判断するようにしたが、ＣＰＵ１が省電力モードであるか否かを判断できる他の信号がある場合には、ＣＰＵ監視部６ａは、他の信号に基づいてメインメモリ２への給電の有無を制御するようにしてもよい。
【００２１】
このように、本実施の形態では、ＣＰＵ監視部６ａが、ＣＰＵ１へのクロック供給の有無を監視し、クロックの供給の有無に基づいてメインメモリ２への給電を制御するようにした。このため、メインメモリ２への給電電力の省電力化を図ることができる。
【００２２】
実施の形態３．
図３は、本発明にかかる計算機システムの実施の形態３の構成例を示す図である。図３に示すように本実施の形態の計算機システムは、実施の形態１の計算機システムのＣＰＵ１，電源制御部３をそれぞれＣＰＵ１ａ，電源制御部３ｂに替える以外は実施の形態１の計算機システムと同様である。実施の形態１と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【００２３】
本実施の形態のＣＰＵ１ａは、２段の省電力モードＭＯＤＥ＃０，ＭＯＤＥ＃１を有し、第１のＭＯＤＥ端子１１（図示のＭＯＤＥ＃０に対応），第２のＭＯＤＥ端子１２（図示のＭＯＤＥ＃１に対応）により、モードを監視可能とする。ＣＰＵ１ａが通常動作モードの場合は、第１のＭＯＤＥ端子１１，第２のＭＯＤＥ端子１２から出力される電圧はいずれもHighとし、省電力モードＭＯＤＥ＃０では、第１のＭＯＤＥ端子１１から出力される電圧がLow，第２のＭＯＤＥ端子１２から出力される電圧はHighとする。また、省電力モードＭＯＤＥ＃１では、第１のＭＯＤＥ端子１１から出力される電圧がHigh，第２のＭＯＤＥ端子１２から出力される電圧はLowとする。
【００２４】
電源制御部３ｂは、メインメモリ２の電源供給の有無を制御する。また、電源制御部３ｂは、ＣＰＵ監視部６ｂと、ＡＮＤ回路１３と、ＯＲ回路１４，１５と、２ｂｉｔの設定レジスタである設定レジスタ１６と、を備え、図３に示すように、ＣＰＵ１ａの第１のＭＯＤＥ端子１１にＯＲ回路１４が、第２のＭＯＤＥ端子１２にＯＲ回路１５が、それぞれ接続している。また、ＯＲ回路１４およびＯＲ回路１５の出力はＡＮＤ回路１３に出力され、ＡＮＤ回路１３の出力はＣＰＵ監視部６ｂに入力される。さらに、設定レジスタ１６は、ＯＲ回路１４およびＯＲ回路１５に接続されている。
【００２５】
設定レジスタ１６は、上位ｂｉｔが省電力モードＭＯＤＥ＃１に対応し、下位ｂｉｔが省電力モードＭＯＤＥ＃０に対応することとする。そして、設定レジスタ１６は、値が”１”の場合は、対応する省電力モードにＣＰＵ１ａが移行してもメインメモリ２への給電を行い、値が”０”なら対応する省電力モードにＣＰＵ１ａが移行するとメインメモリ２への給電を停止する、という意味を有することとする。設定レジスタ１６の値は、ユーザの操作などにより設定可能とする。
【００２６】
そして、ＣＰＵ監視部６ｂは、第１のＭＯＤＥ端子１１、第２のＭＯＤＥ端子１２、設定レジスタ１６の値に基づいて、メインメモリ２への給電を制御する。具体的には、たとえば、設定レジスタが図３のように“０１”（上位ｂｉｔが“０”、下位ｂｉｔが“１”）の場合、第１のＭＯＤＥ端子１１の出力電圧Lowであっても、メインメモリ２への給電を停止せず、第２のＭＯＤＥ端子１２の出力電圧がLowであった場合にメインメモリ２への給電を停止する。
【００２７】
なお、本実施の形態では、２ｂｉｔの設定レジスタ１６とＡＮＤ回路１３とＯＲ回路１４，１５とを用いて、ＣＰＵ１ａの省電力モードごとのメインメモリ２への給電の有無を設定するようにしたが、これに限らず、省電力モードごとのメインメモリ２への給電の有無を設定できる方法であればどのような方法を用いてもよい。
【００２８】
また、ＣＰＵ１ａの省電力モードが３種類以上ある場合についても、それぞれのモードを示す信号を電源制御部３ｂが取得し、モードごとにメインメモリ２への給電を行うか否かを設定できるようにしておけば、上記と同様の電源制御を行うことができる。
【００２９】
このように、本実施の形態では、ＣＰＵ１ａの省電力モードが２種類以上ある場合に、モードごとにメインメモリ２への給電を停止するか否かを設定し、ＣＰＵ監視部６ｂが、ＣＰＵ１ａの省電力モードを示す信号を取得し、取得した信号が給電を停止すると設定されたモードであった場合に、給電を停止するようにした。このため、ＣＰＵ１ａの省電力モードが複数ある場合に、それぞれのモードに応じたメインメモリ２の省電力化を図ることができる。
【００３０】
実施の形態４．
図４は、本発明にかかる計算機システムの実施の形態４の構成例を示す図である。図４に示すように本実施の形態の計算機システムは、実施の形態１の計算機システムのＣＰＵ１，電源制御部３をそれぞれＣＰＵ１ｂ，電源制御部３ｃに替える以外は実施の形態１の計算機システムと同様である。実施の形態１と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【００３１】
本実施の形態の電源制御部３ｃは、メインメモリ２の電源供給の有無を制御する。また、電源制御部３ｃは、カウンタタイマ部１７とメモリバス監視部１８を備えている。メモリバス監視部１８は、ＣＰＵ１ｂからメインメモリ２へのアクセスを常時監視している。通常の計算機システムでは、メインメモリはＣＰＵの特定のアドレス範囲に対応付けられているため、メモリバス監視部１８は、ＣＰＵ１ｂから出力されるアドレス値が、メインメモリ２に対応するアドレス範囲内か否かを判断することにより、メインメモリ２へのアクセスか否かを判断できる。
【００３２】
また、メモリバス監視部１８は、ＣＰＵ１ｂからメインメモリ２へのアクセスを検出すると、カウンタタイマ部１７をリセットする。カウンタタイマ部１７は、起動時は所定の初期値に設定されており、一定の時間間隔毎にカウントダウンしていき、カウンタ値が０となるとタイムアウトを通知する。電源制御部３ｃは、タイムアウトを検出するとメインメモリ２への給電を停止する。
【００３３】
これにより、ＣＰＵ１ｂからメインメモリ２へのアクセスが一定時間（カウンタタイマ部１７の初期値に対応）以上なされなかった場合に、メインメモリ２の給電を停止し、省電力化を図ることができる。
【００３４】
なお、メインメモリ２への給電が停止されている状態で、ＣＰＵ１ｂからメインメモリ２へのアクセスがあると、メモリバス監視部１８がそれを検出し、カウンタタイマ部１７をリセットすることでカウンタ値が初期値に戻され、メインメモリ２への給電が再開される。
【００３５】
このように、本実施の形態では、カウンタタイマ部１７が所定の初期値からカウントダウンを行い、メモリバス監視部１８がメインメモリ２へのアクセスを検出すると、カウンタタイマ部１７を初期値にリセットするようにした。そして、カウンタタイマ部１７のカウント値が０になった場合に、メインメモリ２への給電を停止するようにした。このため、ＣＰＵ１ｂからメインメモリ２へのアクセスが一定時間（カウンタタイマ部１７の初期値に対応）以上なされなかった場合に、メインメモリ２の給電を停止し、省電力化を図ることができる。
【００３６】
実施の形態５．
図５は、本発明にかかる電源制御部３ｄの実施の形態５の構成例を示す図である。図５に示すように本実施の形態の電源制御部３ｄは、メモリバス監視部１８ａとカウンタタイマ部１７ａと、を備えている。また、電源制御部３ｄは、メインメモリ２への電源供給の有無を制御する。本実施の形態の計算機システムの構成は、電源制御部３ｃを電源制御部３ｄに替える以外は実施の形態４の計算機システムと同様である。実施の形態１と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【００３７】
本実施の形態のカウンタタイマ部１７ａは、カウンタタイマ１９−１〜１９−Ｎで構成される。通常の計算機システムでは、メインメモリは複数のメモリブロックやメモリチップで構成されていることが多く、それらを個々に給電制御できる場合も多い。また、一般的に、給電制御対象となる個々のメモリブロックまたはメモリチップは、それぞれ連続したアドレス範囲でＣＰＵからアクセスできるようになっている。そのため、個々のメモリブロックまたはメモリチップに、カウンタタイマ１９−１〜１９−Ｎをそれぞれ１対１で対応付ける。
【００３８】
また、メモリバス監視部１８ａは、ＣＰＵ１ｂからのメインメモリ２へのアクセスを検出した際に、そのアドレス値からどのメモリブロックまたはメモリチップへのアクセスかを算出する。そして、カウンタタイマ１９−１〜１９−Ｎのうち算出したメモリブロックまたはメモリチップに対応付けられたカウンタタイマをリセットする。各カウンタタイマは、実施の形態４のカウンタタイマ部１７と同様に機能し、起動値には所定の初期値が設定され、一定の時間ごとにカウントダウンを行い、カウント値が０の場合には対応するメモリブロックまたはメモリチップへの給電を停止する。
【００３９】
このように、本実施の形態では、カウンタタイマ部１７ａがメインメモリ２を構成する各メモリブロックまたは各メモリチップにそれぞれ対応するカウンタタイマ１９−１〜１９−Ｎを備え、カウンタタイマ１９−１〜１９−Ｎは起動されると初期値からカウントダウンを行い、カウント値が０になると対応するメモリブロックまたはメモリチップへの給電を停止する。また、メモリバス監視部１８ａは、メインメモリ２へのアクセスを検出すると、アドレス値に基づいてアクセスするメモリブロックまたはメモリチップを求め、対応するカウンタタイマ１９−１〜１９−Ｎをリセットする。このため、ＣＰＵ１ｂからメインメモリ２を構成するメモリブロックまたはメモリチップへのアクセスが一定時間以上なされなかった場合に、そのメモリブロックまたはメモリチップへの給電を停止し、省電力化を図ることができる。
【００４０】
実施の形態６．
図６は、本発明にかかる計算機システムの実施の形態６の構成例を示す図である。図６に示すように本実施の形態の計算機システムは、実施の形態１の計算機システムの電源制御部３をそれぞれＣＰＵ１に替え、ＩＯ制御部２０を追加する以外は実施の形態１の計算機システムと同様である。また、本実施の形態の電源制御部３ｅは、ＩＯ制御部２０からＣＰＵ１への割込み信号を監視する外部割込み受信部２１を備えている。また、電源制御部３ｅは、メインメモリ２への電源供給の有無を制御する。実施の形態１と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【００４１】
本実施の形態では、たとえば、実施の形態１の電源制御方法によって、ＣＰＵ１が省電力モードになった場合にメインメモリ２への給電を停止する制御を行っていることとする。なお、実施の形態２または４で説明した電源制御方法で、メインメモリ２への給電の停止制御を行っていることとしてもよい。
【００４２】
ＣＰＵ１が省電力モードから通常動作モードへ戻るためには、一般に外部からの割込みを必要とし、この割込みは、ＯＳ（Operating  System）タイマや各種入力装置によって発生され、ＩＯ制御部２０を介してＣＰＵ１に送信される。本実施の形態では、ＩＯ制御部２０からＣＰＵ１への割込み信号線を外部割込み受信部２１にも接続し、外部割込み受信部２１は、ＩＯ制御部２０からの割込み信号を監視する。そして、外部割込み受信部２１は、割込み信号に基づいてＩＯ制御部２０からＣＰＵ１への割込み発生を検出すると、メインメモリ２への給電を再開し、ＣＰＵ１の通常動作モード復帰によるメインメモリ２へのアクセスに備える。
【００４３】
通常のＣＰＵでは、割込み信号線から割込み信号を受信して、省電力モードから通常動作モードへ移行するまでに、数クロック分の時間を必要とする。上述のように、ＩＯ制御部２０からＣＰＵ１への割込み発生を検出するメインメモリ２への給電を再開するような電源制御を行うことにより、ＣＰＵ１が通常モードに復帰した後のメインメモリ２へのアクセスを安全に行うことができる。
【００４４】
このように、本実施の形態では、電源制御部３ｅの外部割込み受信部２１が、ＩＯ制御部２０からＣＰＵ１への割込み発生を検出し、電源制御部３ｅは、割込みを検出するとメインメモリ２への給電を再開するようにした。このため、実施の形態１の効果に加え、さらに、ＣＰＵ１が通常モードに復帰した後のメインメモリ２へのアクセスを安全に行うことができる。
【００４５】
実施の形態７．
図７は、本発明にかかる計算機システムの実施の形態７の構成例を示す図である。図７に示すように本実施の形態の計算機システムは、実施の形態６の計算機システムの電源制御部３ｅを電源制御部３ｆに替え、ゲート２２を追加する以外は実施の形態６の計算機システムと同様である。また、本実施の形態の電源制御部３ｆは、ＩＯ制御部２０からＣＰＵ１への割込み信号を監視する外部割込み受信部２１ａとＷａｉｔ回路２３を備えている。また、電源制御部３ｆは、メインメモリ２への電源供給の有無を制御する。実施の形態６と同様の機能を有する構成要素は同一の符号を付して説明を省略する。
【００４６】
本実施の形態では、実施の形態６と同様、たとえば、実施の形態１の電源制御方法によって、ＣＰＵ１が省電力モードになった場合にメインメモリ２への給電を停止する制御を行っていることとする。なお、実施の形態２または４で説明した電源制御方法で、メインメモリ２への給電の停止制御を行っていることとしてもよい。
【００４７】
本実施の形態では、実施の形態６と同様に、ＩＯ制御部２０からＣＰＵ１に送信される割込み信号を監視するが、本実施の形態では、ＩＯ制御部２０からＣＰＵ１への割込み信号線にゲート２２を設け、外部割込み受信部２１ａが、ゲート２２のＯＮ／ＯＦＦを制御する。
【００４８】
通常の電源制御では、給電を再開してから、デバイスが必要とする電圧が安定するまでに多少の時間を要するものが多い。本実施の形態の電源制御部３ｆは、ＣＰＵ１が省電力モードになるとメインメモリ２への給電をＯＦＦするが、その際、ゲート２２をＯＦＦとし、ＩＯ制御部２０からの割込み信号がＣＰＵ１へ送信されないようにする。そして、この状態で、外部割込み受信部２１ａがＩＯ制御部２０からＣＰＵ１への割込みを検出すると、電源制御部３ｆがメインメモリ２への給電を再開するとともに、外部割込み受信部２１ａはＷａｉｔ回路２３を起動する。
【００４９】
Ｗａｉｔ回路２３は、起動されるとメインメモリ２への給電電圧が安定化するまで待機する。Ｗａｉｔ回路２３は、たとえば、メインメモリ２への給電開始から給電電圧の安定化までの時間に基づいて所定の待機時間を設定して待機してもよいし、給電電圧をモニタし、所定の安定化の条件を満たすまで待機するようにしてもよい。Ｗａｉｔ回路２３が待機を終了すると、外部割込み受信部２１ａは、ゲート２２をＯＮにする。これにより、ＩＯ制御部２０からの割込みをＣＰＵ１へ送信されるようになる。
【００５０】
このように、本実施の形態では、ＩＯ制御部２０からＣＰＵ１への割込み信号線にゲート２２を設け、外部割込み受信部２１ａは、ＣＰＵ１が省電力モードになるとゲート２２をＯＦＦし、ＩＯ制御部２０からＣＰＵ１への割込みを検出した場合には、メインメモリ２への電源供給を開始し、供給電圧が安定した後にゲート２２をＯＮするようにした。このため、実施の形態１の効果に加え、メインメモリ２に給電を再開してからデバイスが必要とする電圧が安定するまでに時間を要する場合でも、省電力モードから復帰した後のメインメモリ２へのアクセスをより安全に行なえるようにすることができる。
【００５１】
実施の形態８．
図８は、本発明にかかる計算機システムの実施の形態８のOn  Demand  Paging機能に関連する機能構成例を示す図である。図８に示すように、本実施の形態のOn  Demand  Paging機能に関連する構成要素は、オペレーティングシステム３０，メインメモリ２，ＨＤＤ（Hard  disk  drive）３２である。
【００５２】
本実施の形態では、実施の形態５の計算機システムは、実施の形態５の構成を有することとし、実施の形態５で説明した電源制御方法により、メインメモリ２への給電をメモリブロックまたはメモリチップ（以下、メインメモリＢＡＮＫという）単位で制御していることとする。実施の形態５と同様の構成要素および動作については説明を省略する。
【００５３】
仮想記憶システムを実現しているオペレーティングシステムでは、On  Demand  Paging機能により、実際のメインメモリのサイズよりも大きなサイズのプログラム・データが仮想的なメインメモリへ配置されているように、アプリケーションソフトウェアへ見せている。On  Demand  Paging機能では、ＨＤＤ等の外部記憶装置上に、メインメモリ以上のサイズのSwap領域またはPageFileと呼ばれる領域を用意しておき、ページ単位（仮想記憶システムを実現する仮想アドレスと物理アドレス間の変換単位）でメインメモリとSwap領域またはPageFileとの間で、必要に応じてデータのコピーを行なっている。この外部記憶装置上のSwap領域またはPageFileからメインメモリへデータをコピーする処理をPage  In処理、メインメモリからSwap領域またはPageFileへデータをコピーする処理をPage  Out処理と呼ぶ。
【００５４】
Page  In処理は、ＣＰＵが、メインメモリ上になくSwap領域またはPageFile内にあるプログラムまたはデータを必要とする場合で起動される。Page  In処理では、メインメモリ内の空き領域を探索し、ＣＰＵが必要とするプログラムまたはデータをSwap領域またはPageFileからメインメモリへコピーし、仮想アドレス／物理アドレス変換の整合を取れるようにアドレス変換テーブルを更新する。
【００５５】
また、Page  Out処理は、ＣＰＵがメインメモリ上に新たなメモリを必要とするにもかかわらず空き領域が存在しない場合に起動される。Page  Out処理では、あらかじめ決められた法則でメインメモリから特定のページを抽出し、抽出したページをメインメモリからSwap領域またはPageFileへコピーした後、抽出したページを空きメモリとして再利用できるようにする。
【００５６】
本実施の形態でも、上述のようなPage  In処理およびPage  In処理を行っていることとする。図８に示すように、本実施の形態のメモリは複数のメインメモリＢＡＮＫで構成されることとし、それぞれを識別する番号であるＢＡＮＫ  Ｎｏが付与されていることとする。図８に示すように、本実施の形態のオペレーティングシステム３０は、On  Demand  Paging処理を実行するOn  Demand  Paging機能部３１とＢＡＮＫ管理テーブルを保持するＢＡＮＫ管理テーブル記憶部３４とを備え、On  Demand  Paging機能部３１は、さらにPage  In処理部３３を備えている。ＢＡＮＫ管理テーブルは、メインメモリ２の空き領域を検索する際の、検索順序を定義する管理テーブルであり、図８に示すように、優先度ごとにＢＡＮＫ  Ｎｏが格納されている。なお、ここでは、優先度の数値が小さいほど優先度が高いこととし、またＢＡＮＫ管理テーブルは優先度の高い順（優先度の数値の小さい順）にエントリが格納されていることとする。
【００５７】
つづいて、本実施の形態のPage  In処理の動作を説明する。図９は、本実施の形態のPage  In処理手順の一例を示すフローチャートである。まず、メインメモリ２上になくSwap領域またはPageFileに存在するプログラムまたはデータを、ＣＰＵ１が必要とした場合、本実施の形態のPage  In処理が起動される。たとえば、仮想アドレスと物理アドレスの変換ミスによるＣＰＵ例外が発生し、それをオペレーティングシステム３０が検出することにより、メインメモリ２上になくSwap領域またはPageFileに存在するプログラムまたはデータを、ＣＰＵ１が必要としたことを検知する。
【００５８】
Page  In処理が起動されると、まず、Page  In処理部３３は、変数ｉを０に初期化する（ステップＳ１１）。つぎに、Page  In処理部３３は、ＢＡＮＫ管理テーブルを検索して優先度がｉであるメインメモリＢＡＮＫのＢＡＮＫ  Ｎｏを得る（ステップＳ１２）。
【００５９】
つぎに、Page  In処理部３３は、ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫについて後述のステップＳ１４，Ｓ１５の処理が終了したか否かを判断する（ステップＳ１３）。ステップＳ１３の判断は、ＢＡＮＫ管理テーブルは優先度の数値の低い順に格納されているため、ステップＳ１２で優先度ｉのＢＡＮＫ  Ｎｏが見つからなかった場合には、全てのＢＡＮＫ  Ｎｏについて処理が終了したと判断できる。ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏについての処理が終了したと判断した場合（ステップＳ１３  Ｙｅｓ）には、処理を終了する。
【００６０】
また、ステップＳ１３で、ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏについての処理が終了していないと判断した場合（ステップＳ１３  Ｎｏ）には、Page  In処理部３３は、ステップＳ１２で得たＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫ内の空き領域を探索する（ステップＳ１４）。そして、Page  In処理部３３は、ステップＳ１４で探索した結果に基づいて、ステップＳ１２で得たＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫに空き領域が存在するか否かを判断する（ステップＳ１５）。ステップＳ１２で得たＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫに空き領域が存在しないと判断した場合（ステップＳ１５  Ｎｏ）には、ｉ＝ｉ＋１とし（ステップＳ１６）、ステップＳ１２に戻り、つぎの優先度についてステップＳ１６までの処理を繰り返す。
【００６１】
ステップＳ１５で、ステップＳ１２で得たＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫに空き領域が存在すると判断した場合（ステップＳ１５  Ｙｅｓ）には、Page  In処理部３３は、ＨＤＤ３２上のSwap領域またはPageFileから所望のプログラムまたはデータをステップＳ１４で探索したメインメモリＢＡＮＫの空き領域へコピーする（ステップＳ１７）。そして、Page  In処理部３３は、ステップＳ１４で探索したメインメモリＢＡＮＫの空き領域を、ＣＰＵ１が必要とする処理に用いることができるよう、アドレス変換テーブルを更新して（ステップＳ１８）、Page  In処理を終了する。
【００６２】
なお、ステップＳ１３で、ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏについての処理が終了したと判断した場合（ステップＳ１３  Ｙｅｓ）は、Page  In処理は異常終了となる。この場合、Page  In処理の呼出し元へメモリ不足としてエラーリターンするか、On  Demand  Paging機能部３１のもう１つの処理機能であるPage  Out処理を行い強制的に空きメモリを作成する。
【００６３】
以上のように、ＢＡＮＫ管理テーブルの優先度に基づいてPage  In処理を行うため、時系列的にみるとPage  Inされるメモリ領域が、特定のメインメモリＢＡＮＫに集中する結果が得られる。一方、プログラムにはアクセスの局所性と呼ばれる、統計的にみて近傍のプログラム，データへ連続してアクセスする特性が知られており、上記の特定のメインメモリＢＡＮＫへのPage  Inの集中により、その特定のメインメモリＢＡＮＫ以外のメインメモリＢＡＮＫへのアクセス頻度が減少する。したがって、実施の形態５で説明した電源制御部３ｄがメインメモリＢＡＮＫへの給電を停止する期間を長くすることができる。
【００６４】
このように、本実施の形態では、優先度に対応するＢＡＮＫ  ＮｏをＢＡＮＫ管理テーブルとして保持し、ＢＡＮＫ管理テーブルに基づいて、優先度順にPage  In処理で用いるメインメモリＢＡＮＫを選択するようにした。このため、特定のメインメモリＢＡＮＫ以外のメインメモリＢＡＮＫへのアクセス頻度が減少し、電源制御部３ｄがメインメモリＢＡＮＫへの給電を停止する期間を長くすることができ、実施の形態５よりさらに効率的にメインメモリ２の省電力化を図ることができる。
【００６５】
実施の形態９．
図１０は、本発明にかかる計算機システムの実施の形態９のOn  Demand  Paging機能のPage  Out処理に関連する機能構成例を示す図である。図１０に示すように、本実施の形態のOn  Demand  Paging機能のPage  Out処理に関連する構成要素は、オペレーティングシステム３０ａ，メインメモリ２，ＨＤＤ３２である。
【００６６】
本実施の形態では、実施の形態５の計算機システムは、実施の形態５の構成を有することとし、実施の形態５で説明した電源制御方法により、メインメモリ２への給電をインメモリＢＡＮＫ単位で制御していることとする。実施の形態５と同様の構成要素および動作については説明を省略する。
【００６７】
図１０に示すように、本実施の形態のオペレーティングシステム３０ａは、On  Demand  Paging処理を実行するOn  Demand  Paging機能部３１ａとＢＡＮＫ管理テーブルを保持するＢＡＮＫ管理テーブル記憶部３４とを備え、On  Demand  Paging機能部３１ａは、さらにPage  Out処理部３５を備えている。本実施の形態のＢＡＮＫ管理テーブル記憶部３４は、実施の形態８のＢＡＮＫ管理テーブル記憶部３４と同様であるが、Page  Out処理では、メインメモリ２から強制的に追い出すページが格納されているメインメモリＢＡＮＫを決めるために用いる。
【００６８】
つづいて、本実施の形態のPage  Out処理の動作を説明する。図１１は、本実施の形態のPage  Out処理手順の一例を示すフローチャートである。ＣＰＵ１が新たな空きメモリを必要とした場合に、メインメモリ２上に空きが無いと、本実施の形態のPage  Out処理が起動される。
【００６９】
Page  Out処理が起動されると、まず、Page  Out処理部３５は、変数ｉを０に初期化する（ステップＳ２１）。つぎに、Page  Out処理部３５は、ＢＡＮＫ管理テーブルを検索して優先度がｉであるメインメモリＢＡＮＫのＢＡＮＫ  Ｎｏを得る（ステップＳ２２）。
【００７０】
つぎに、Page  Out処理部３５は、ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫについて後述のステップＳ２４，Ｓ２５の処理が終了したか否かを判断する（ステップＳ２３）。ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏについての処理が終了したと判断した場合（ステップＳ２３  Ｙｅｓ）には、処理を終了する。
【００７１】
また、ステップＳ２３で、ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏについての処理が終了していないと判断した場合（ステップＳ２３  Ｎｏ）には、Page  Out処理部３５は、ステップＳ２２で得たＢＡＮＫ  Ｎｏに対応するメインメモリＢＡＮＫ内のPage  Out可能なページを探索する（ステップＳ２４）。通常のオペレーティングシステムでは、プログラムの実行性能を重視して、Page  Outを禁止するページを設定している機能を有している。本実施の形態でもその機能を有することとし、ステップＳ２４では、Page  Outを禁止しているか否かの情報を参照することとする。そして、ステップＳ２４の探索結果によりPage  Out可能な対象ページがあるか否かを判断する（ステップＳ２５）。Page  Out可能な対象ページが無いと判断した場合（ステップＳ２５  Ｎｏ）には、ｉ＝ｉ＋１とし（ステップＳ２６）、ステップＳ２２に戻り、つぎの優先度についてステップＳ２６までの処理を繰り返す。
【００７２】
ステップＳ２５で、Page  Out可能な対象ページがあると判断した場合（ステップＳ２５  Ｙｅｓ）には、ステップＳ２４で探索して得たPage  Out可能なページをＨＤＤ３２上のSwap領域またはPageFileへコピーする（ステップＳ２７）。そして、Page  Out処理部３５は、最後に、ステップＳ２４で探索して得たPage  Out可能なページを、ＣＰＵ１が利用できないように、アドレス変換テーブルを更新し（そのページへＣＰＵ１がアクセスした場合に、Page  In処理が動作できるようにするため、ＣＰＵ例外が発生するようアドレス変換テーブルを更新する。：ステップＳ２８）、Page  Out処理を終了する。
【００７３】
なお、ステップＳ２３で、ＢＡＮＫ管理テーブルに含まれる全てのＢＡＮＫ  Ｎｏについての処理が終了したと判断して（ステップＳ２３  Ｙｅｓ）、終了した場合には、Page  Out処理は異常終了となるため、呼出し元へエラーリターンする。
【００７４】
以上のように、ＢＡＮＫ管理テーブルの優先度に基づいてPage  In処理を行うため、時系列的にみるとPage  Outされるメモリ領域が、特定のメインメモリＢＡＮＫに集中する結果が得られる。一方、プログラムにはアクセスの局所性と呼ばれる、統計的にみて近傍のプログラム，データへ連続してアクセスする特性が知られており、上記の特定のメインメモリＢＡＮＫへのPage  Outの集中により、その特定のメインメモリＢＡＮＫ以外のメインメモリＢＡＮＫへのアクセス頻度が減少する。したがって、実施の形態５で説明した電源制御部３ｄがメインメモリＢＡＮＫへの給電を停止する期間を長くすることができる。
【００７５】
なお、本実施の形態では、実施の形態５の電源制御方法を行う計算機システムでのPage  Out処理について説明したが、実施の形態８と同様のPage  In処理を行う計算機システムで本実施の形態のPage  Out処理を行うようにしてもよい。この場合、Page  In処理で用いるＢＡＮＫ管理テーブルとPage  Out処理で用いるＢＡＮＫ管理テーブルとでは、メインメモリＢＡＮＫに対応づける優先度は同じでもよいし異なってもよい。
【００７６】
このように、本実施の形態では、優先度に対応するＢＡＮＫ  ＮｏをＢＡＮＫ管理テーブルとして保持し、ＢＡＮＫ管理テーブルに基づいて、優先度順にPage  Out処理で用いるメインメモリＢＡＮＫを選択するようにした。このため、特定のメインメモリＢＡＮＫ以外のメインメモリＢＡＮＫへのアクセス頻度が減少し、電源制御部３ｄがメインメモリＢＡＮＫへの給電を停止する期間を長くすることができ、実施の形態５よりさらに効率的にメインメモリ２の省電力化を図ることができる。
【００７７】
実施の形態１０．
図１２は、本発明にかかる計算機システムの実施の形態１０のスケジューラ機能に関連する機能構成例を示す図である。図１２に示すように、本実施の形態のスケジューラ機能に関連する構成要素は、オペレーティングシステム３０ｂ，メインメモリ２である。
【００７８】
本実施の形態では、実施の形態５の計算機システムは、実施の形態５の構成を有することとし、実施の形態５で説明した電源制御方法により、メインメモリ２への給電をメインメモリＢＡＮＫ単位で制御していることとする。実施の形態５と同様の構成要素および動作については説明を省略する。
【００７９】
図１２に示すように、本実施の形態のオペレーティングシステム３０ｂは、スケジューラ３６，タスク配置テーブル記憶部３７，Ｒｅａｄｙキュー３８を備えている。また、Run  Task３９は、実行中のタスクを示している。また、本実施の形態のメインメモリ２は、実施の形態８または９と同様にメインメモリＢＡＮＫごとにＢＡＮＫ  Ｎｏが付与されていることとする。
【００８０】
Ｒｅａｄｙキュー３８は、ＣＰＵ１で実行可能な状態のタスクが優先度順に並べられ、かつ同一の優先度のタスクはリスト構造でつながれている。各タスクは、識別するための番号が付与されていることとし、図１２では、識別番号に＃を付してしている。Ｒｅａｄｙキュー３８で、Ｔａｓｋが＃（−１）となっている箇所は、該当の優先度を有するＣＰＵ１で実行可能な状態のタスクが存在しないことを示している。
【００８１】
また、図１２の例では、メインメモリ２は、ＢＡＮＫ  ＮｏがＮｏ．１のメインメモリＢＡＮＫにタスク＃１とタスク＃２が配置されており、ＢＡＮＫ  ＮｏがＮｏ．２のメインメモリＢＡＮＫにタスク＃３とタスク＃４が配置されていることとする。さらに、Run  Task３９として、タスク番号＃１のタスクが実行されていることとする。タスク配置テーブル記憶部３７に格納されているタスク配置テーブルは、タスク番号とそのタスク番号のタスクが配置されているＢＡＮＫ  Ｎｏが格納されている。この例のように、一般には、１つのメインメモリＢＡＮＫに複数のタスク領域が配置されている。
【００８２】
つづいて、本実施の形態のスケジューラ３６の動作を説明する。図１３は、本実施の形態のスケジューラ３６の処理手順の一例を示すフローチャートである。たとえば、現在実行中のタスクであるRun  Task３９が終了したり、ＩＯ処理等の完了を待ち合わせた結果ＣＰＵの使用権を他のタスクへ受け渡す必要が生じたりした場合などに、オペレーティングシステム３０ｂのスケジューラ３６の処理が起動される。
【００８３】
処理が起動されると、まず、スケジューラ３６は、タスク配置テーブルを参照し、Run  Task３９が配置されているＢＡＮＫ  Ｎｏを取得し、変数ｉに取得したＢＡＮＫ  Ｎｏを代入する（ステップＳ３１）。つぎに、スケジューラ３６は、変数ｊをｊ＝０に初期化する（ステップＳ３２）。つぎに、スケジューラ３６は、Ｒｅａｄｙキュー３８を検索して優先度がｊであるタスクのタスク番号を得る（ステップＳ３３）。
【００８４】
そして、スケジューラ３６は、ステップＳ３３で得たタスク番号が（−１）に等しいか否かを判断する（ステップＳ３４）。ステップＳ３３で得たタスク番号が（−１）に等しいと判断した場合（ステップＳ３４  Ｙｅｓ）には、優先度ｊがＲｅａｄｙキュー３８に含まれる最後の優先度であるか否かを判断する（ステップＳ３５）。優先度ｊがＲｅａｄｙキュー３８に含まれる最後の優先度でないと判断した場合（ステップＳ３５  Ｎｏ）には、スケジューラ３６は、ｊ＝ｊ＋１とし（ステップＳ３６）、ステップＳ３３に戻りステップＳ３６までの処理を繰り返す。
【００８５】
ステップＳ３５で、優先度ｊがＲｅａｄｙキューに含まれる最後の優先度であると判断した場合（ステップＳ３５  Ｙｅｓ）には、Ｒｅａｄｙキュー３８に含まれる全エントリを探索した結果、次に実行するタスクが存在しないこととなるため、ＣＰＵ１をアイドル状態へ移行させて（ステップＳ３７）、スケジュール処理を終了する。
【００８６】
また、ステップＳ３４で、ステップＳ３３で得たタスク番号が（−１）でないと判断した場合（ステップＳ３４  Ｎｏ）には、スケジューラ３６は、そのタスク番号のタスクが配置されている  ＢＡＮＫ  Ｎｏをタスク配置テーブルから取得し、変数ｋに取得したＢＡＮＫ  Ｎｏを代入する(ステップＳ３８)。つぎに、スケジューラ３６は、ｋ＝ｉであるか否かを判断し（ステップＳ３９）、ｋ＝ｉでない場合には（ステップＳ３９  Ｎｏ）、優先度ｊに対応する他のタスクがＲｅａｄｙキュー３８にあるか否かを判断する（ステップＳ４０）。優先度ｊに対応する他のタスクがＲｅａｄｙキュー３８にあると判断した場合（ステップＳ４０  Ｙｅｓ）には、Ｒｅａｄｙキュー３８に格納されている優先度ｊのタスクで、ステップＳ３８の処理を行っていないタスクについてステップＳ３８からステップＳ４０の処理を繰り返す。
【００８７】
ステップＳ４０で優先度ｊに対応する他のタスクがＲｅａｄｙキュー３８にないと判断した場合（ステップＳ４０  Ｎｏ）には、Ｒｅａｄｙキュー３８には優先度ｊでかつｋ=ｉの条件を満たすタスクが存在しないため、Ｒｅａｄｙキュー３８に含まれる優先度ｊに対応する先頭タスクのタスク番号を求め、次のタスクとして決定する（ステップＳ４１）。そして、現在のRun  Task３９から決定したタスクへディスパッチを行う（ステップＳ４２）。そして、スケジューラ３６は、決定したタスクをＲｅａｄｙキュー３８から削除する（ステップＳ４３）。そして、現在実行中のRun  Task３９を決定したタスクに入替え（ステップＳ４４）、スケジュール処理を終了する。
【００８８】
ステップＳ３９で、ｋ＝ｉであると判断した場合（ステップＳ３９  Ｙｅｓ）には、ステップＳ３８で取得したｋに対応するタスクを次のタスクとして決定し、ステップＳ４２に進む。
【００８９】
図１２に示した状態では、ステップＳ３４では、ｊ＝２でタスク＃４を得て、ステップＳ３８に進む。そして、ここでは、Run  Task３９としてタスク＃１が実行中であるとしているため、ｉ＝１（ＢＡＮＫ  ＮｏがＮｏ．１）である。ステップＳ３８では、ＢＡＮＫ  Ｎｏとしてｋ＝Ｎｏ．２を得る。したがって、初回のステップＳ３９では、ｋはｉに等しくなく、ステップＳ４０に進み、優先度ｊ＝２のタスク番号＃２がＲｅａｄｙキュー３８に存在するため、タスク番号＃２についてステップＳ３８，Ｓ３９の処理を再度行う。そして、ステップＳ３９では、ｋ＝ｉとなるため、ステップＳ４２で、タスク＃１からタスク＃２へディスパッチを行うことになる。
【００９０】
以上のような処理を行うと、同じ優先度でｋ＝ｉのタスクがある場合には、ｋ＝ｉのタスクを次のタスクとして決定するようにしているので、同じＢＡＮＫ  ＮｏのメインメモリＢＡＮＫに配置されているタスクへディスパッチを行うようになる。このため、同一メインメモリＢＡＮＫ内の処理が続く確率があがり、それ以外のメインメモリＢＡＮＫへのアクセス頻度が減少する。
【００９１】
なお、本実施の形態では、Ｒｅａｄｙキュー３８とタスク配置テーブルを用いて上述のようなスケジューラ３６の処理を行うようにしたが、優先度とそれに対応するタスク番号が管理され、また、タスク番号に対応するタスクが配置されているＢＡＮＫ  Ｎｏが管理されていれば、これに限らずどのような構成としてもよい。図１４は、本実施の形態のＲｅａｄｙキュー３８とタスク配置テーブルを統合したＲｅａｄｙキュー３８ａを示す図である。たとえば、図１４に示すように、Ｒｅａｄｙキュー３８ａに、優先度ごとに、その優先度に対応するタスク番号を格納し、さらに、そのタスク番号が配置されているＢＡＮＫ  Ｎｏも合わせて格納しておき、Ｒｅａｄｙキュー３８とタスク配置テーブルのかわりにＲｅａｄｙキュー３８ａを参照するようにしてもよい。
【００９２】
なお、本実施の形態では、スケジューラ３６の処理について説明したが、Page  In処理を実施の形態８と同様のPage  In処理を行うようにしてもよい。また、Page  Out処理を実施の形態９と同様のPage  Out処理を行うようにしてもよい。また、Page  In処理を実施の形態８と同様のPage  In処理とし、かつ、Page  Out処理を実施の形態９と同様のPage  Out処理としてもよい。
【００９３】
このように、本実施の形態では、スケジューラ３６は、同一の優先度のタスクのなかに、Run  Task３９として実行中のタスクが配置されているメインメモリＢＡＮＫに配置されているタスクがある場合にそのタスクを次のタスクとして決定するようにした。このため、できるだけ同一のメインメモリＢＡＮＫに存在するタスクへディスパッチできるようになり、特定のメインメモリＢＡＮＫ上でプログラムが連続実行される確率があがる。その結果、その特定のメインメモリＢＡＮＫ以外のメインメモリＢＡＮＫへのアクセス頻度が減少するため、電源制御部３ｄが行う電源制御で、メインメモリＢＡＮＫの給電が停止する頻度を上げることができ、より効率的にメインメモリ２の省電力化を図ることができる。
【産業上の利用可能性】
【００９４】
以上のように、本発明にかかる電源制御装置、計算機システム、電源制御方法、電源制御プログラムおよび記録媒体は、計算機システムのメインメモリに対する電源を制御する計算機システムに有用であり、特に、メインメモリに不揮発性メモリを用いる計算機システムに適している。
【図面の簡単な説明】
【００９５】
【図１】本発明にかかる計算機システムの実施の形態１の構成例を示す図である。
【図２】本発明にかかる計算機システムの実施の形態２の構成例を示す図である。
【図３】本発明にかかる計算機システムの実施の形態３の構成例を示す図である。
【図４】本発明にかかる計算機システムの実施の形態４の構成例を示す図である。
【図５】本発明にかかる電源制御部の実施の形態５の構成例を示す図である。
【図６】本発明にかかる計算機システムの実施の形態６の構成例を示す図である。
【図７】本発明にかかる計算機システムの実施の形態７の構成例を示す図である。
【図８】本発明にかかる計算機システムの実施の形態８のOn  Demand  Paging機能に関連する機能構成例を示す図である。
【図９】実施の形態８のPage  In処理手順の一例を示すフローチャートである。
【図１０】本発明にかかる計算機システムの実施の形態９のOn  Demand  Paging機能のPage  Out処理に関連する機能構成例を示す図である。
【図１１】実施の形態９のPage  Out処理手順の一例を示すフローチャートである。
【図１２】本発明にかかる計算機システムの実施の形態１０のスケジューラ機能に関連する機能構成例を示す図である。
【図１３】実施の形態１０のスケジューラの処理手順の一例を示すフローチャートである。
【図１４】実施の形態１０のＲｅａｄｙキューとタスク配置テーブルを統合したＲｅａｄｙキューを示す図である。
【符号の説明】
【００９６】
１，１ａ，１ｂ  ＣＰＵ
２  メインメモリ
３，３ａ，３ｂ，３ｃ，３ｄ，３ｅ，３ｆ  電源制御部
４  メモリバス
５  電源供給ライン
６，６ａ，６ｂ  ＣＰＵ監視部
７  ＭＯＤＥ端子
８  ＥＸＣＬＫ端子
９  ゲート
１０  クロック発生装置
１１  第１のＭＯＤＥ端子
１２  第２のＭＯＤＥ端子
１３  ＡＮＤ回路
１４，１５  ＯＲ回路
１６  設定レジスタ
１７，１７ａ  カウンタタイマ部
１８，１８ａ  メモリバス監視部
１９−１〜１９−Ｎ  カウンタタイマ
２０  ＩＯ制御部
２１，２１ａ  外部割込み受信部
２２  ゲート
２３  Ｗａｉｔ回路
３０，３０ａ，３０ｂ  オペレーティングシステム
３１，３１ａ  On  Demand  Paging機能部
３２  ＨＤＤ
３３  Page  In処理部
３４  ＢＡＮＫ管理テーブル記憶部
３５  Page  Out処理部
３６  スケジューラ
３７  タスク配置テーブル記憶部
３８，３８ａ  Ｒｅａｄｙキュー
３９  Run  Task
【図１】
2010044460.tif 000003
【図２】
2010044460.tif 000004
【図３】
2010044460.tif 000005
【図４】
2010044460.tif 000006
【図５】
2010044460.tif 000007
【図６】
2010044460.tif 000008
【図７】
2010044460.tif 000009
【図８】
2010044460.tif 000010
【図９】
2010044460.tif 000011
【図１０】
2010044460.tif 000012
【図１１】
2010044460.tif 000013
【図１２】
2010044460.tif 000014
【図１３】
2010044460.tif 000015
【図１４】
2010044460.tif 000016