(57)【要約】      （修正有）【課題】メモリの制御に関し、メモリの動作に係る電力消費を抑制する。【解決手段】情報処理装置は、セルフリフレッシュ機能を備える一又は複数のメモリと、一又は複数のメモリのセルフリフレッシュを開始させた場合に、一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止し、一又は複数のメモリのセルフリフレッシュを停止させた場合に、一又は複数のメモリに対するパトロールを再開するメモリ制御ユニットとを含む。メモリ制御ユニットは、メモリがセルフリフレッシュを実行し、待機している状態におけるパトロールを停止する。【選択図】図９
2014048881.tif 000002
【特許請求の範囲】
【請求項１】
セルフリフレッシュ機能を備える一又は複数のメモリと、
前記一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止し、前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開するメモリ制御ユニットと
を含む情報処理装置。
【請求項２】
前記一又は複数のメモリへのアクセス要求がある場合に、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを停止させ、前記一又は複数のメモリに対するパトロールを再開する
請求項１記載の情報処理装置。
【請求項３】
前記一又は複数のメモリが論理ドメインに割り当てられていない場合に、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを開始させ、
前記一又は複数のメモリが論理ドメインに割り当てられている場合に、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを停止させる
請求項１又は２記載の情報処理装置。
【請求項４】
前記一又は複数のメモリが論理ドメインに割り当てられている場合であっても、前記一又は複数のメモリへのアクセスの頻度が所定の閾値以下のときには、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを開始させる
請求項３記載の情報処理装置。
【請求項５】
前記一又は複数のメモリが論理ドメインに割り当てられている場合であっても、前記一又は複数のメモリへのアクセスの頻度が所定の閾値以下のときには、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを開始させ、前記一又は複数のメモリに対するパトロールを継続して動作させる
請求項３記載の情報処理装置。
【請求項６】
メモリ制御ユニットに接続されているセルフリフレッシュ機能を備える一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを行うパトロール部と、
メモリ制御ユニットに接続されている一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対するパトロールを停止し、前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する制御部と
を有するメモリ制御ユニット。
【請求項７】
前記制御部は、前記一又は複数のメモリへのアクセス要求がある場合に、前記一又は複数のメモリのセルフリフレッシュを停止させ、前記一又は複数のメモリに対するパトロールを再開する
請求項６記載のメモリ制御ユニット。
【請求項８】
セルフリフレッシュ機能を備える一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止する処理と
前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する処理と
を含む処理をメモリ制御ユニットの演算部により実行するメモリ制御方法。
【請求項９】
セルフリフレッシュ機能を備える一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止する処理と、
前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する処理と
をメモリ制御ユニットの演算部に実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの制御に関する。
【背景技術】
【０００２】
演算ユニットに接続されているメモリに記憶されるデータを保証するために、メモリに対するパトロール機能を備えた演算ユニットが知られている。パトロール機能は、メモリに格納されたデータを定期的に読み出し、エラーの検出とデータの訂正を行う。例えば、データに付加されたパリティビットの整合性を確認することによって、１ｂｉｔのエラーを検出する。更に、１ｂｉｔのエラーを検出した場合には、データを訂正し、メモリに対して再書き込みを行って間歇障害を排除する。
【０００３】
また、メモリの動作に伴う消費電力を低減させるために、パワーダウン機能を備えたメモリも知られている。パワーダウン機能では、メモリ内の一部の回路を停止させることにより、電力の消費を抑制する。
【０００４】
図１に、パワーダウン機能を実行させない通常電力状態における消費電力１０１と、パワーダウン機能を実行させるパワーダウン状態における消費電力１０３の様子を示す。通常電力状態においては、パトロール機能によるメモリアクセスの有無によって、消費電力は変動しない。
【０００５】
一方、パワーダウン状態においては、パトロール機能によるメモリアクセスが行われると、メモリからの読み出しの動作に伴い一時的に消費する電力は増加する。しかし、パトロール機能によるアクセスがない間は、電力の消費が抑えられるので、メモリのパワーダウン機能を用いることにより、全体として省電力化が図られている。
【０００６】
尚、通常電力状態とパワーダウン状態のいずれにおいても、演算ユニットが定期的にメモリをリフレッシュさせる動作を行っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０７−０５６８１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一側面では、本発明は、メモリの動作に係る電力消費を抑制することを目的とする。
【課題を解決するための手段】
【０００９】
一態様の情報処理装置は、セルフリフレッシュ機能を備える一又は複数のメモリと、一又は複数のメモリのセルフリフレッシュを開始させた場合に、一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止し、一又は複数のメモリのセルフリフレッシュを停止させた場合に、一又は複数のメモリに対するパトロールを再開するメモリ制御ユニットとを含む。
【発明の効果】
【００１０】
一態様によれば、メモリの動作に係る電力消費を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、通常電力状態とパワーダウン状態における消費電力を示す図である。
【図２】図２は、サーバ装置の構成例を示す図である。
【図３】図３は、システムボードの構成例を示す図である。
【図４】図４は、物理パーティションの構成例を示す図である。
【図５】図５は、ＣＰＵユニットとメモリの構成例を示す図である。
【図６】図６は、実施の形態１における電力モードの概要を示す図である。
【図７】図７は、実施の形態１における通常モードにおける状態遷移を示す図である。
【図８】図８は、実施の形態１における省電力モードにおける状態遷移を示す図である。
【図９】図９は、実施の形態１における省電力モードにおける消費電力を示す図である。
【図１０】図１０は、セルフリフレッシュ状態でパトロールを行う場合の消費電力を示す図である。
【図１１】図１１は、実施の形態１におけるメモリアクセス制御回路の構成例を示す図である。
【図１２】図１２は、パワーダウン制御ルーチンの処理フロー例を示す図である。
【図１３】図１３は、セルフリフレッシュ制御ルーチン（Ａ）の処理フロー例を示す図である。
【図１４】図１４は、ハイパーバイザーの構成例を示す図である。
【図１５】図１５は、実施の形態１におけるハイパーバイザーのメイン処理フロー例を示す図である。
【図１６】図１６は、通常モード初期化処理（Ａ）のフロー例を示す図である。
【図１７】図１７は、通常モード処理（Ａ１）のフロー例を示す図である。
【図１８】図１８は、省電力モード初期化処理（Ａ）のフロー例を示す図である。
【図１９】図１９は、省電力モード処理（Ａ）のフロー例を示す図である。
【図２０】図２０は、実施の形態２におけるメモリアクセス制御回路の構成例を示す図である。
【図２１】図２１は、セルフリフレッシュ制御ルーチン（Ｂ）の処理フロー例を示す図である。
【図２２】図２２は、パトロール制御ルーチンの処理フロー例を示す図である。
【図２３】図２３は、通常モード初期化処理（Ｂ）のフロー例を示す図である。
【図２４】図２４は、省電力モード初期化処理（Ｂ）のフロー例を示す図である。
【図２５Ａ】図２５Ａは、省電力モード処理（Ｂ１）のフロー例を示す図である。
【図２５Ｂ】図２５Ｂは、省電力モード処理（Ｂ１）のフロー例を示す図である。
【図２６】図２６は、実施の形態３における電力モードの概要を示す図である。
【図２７Ａ】図２７Ａは、省電力モード処理（Ｂ２）のフロー例を示す図である。
【図２７Ｂ】図２７Ｂは、省電力モード処理（Ｂ２）のフロー例を示す図である。
【図２８】図２８は、実施の形態４における電力モードの概要を示す図である。
【図２９】図２９は、実施の形態４における通常モードにおける状態遷移を示す図である。
【図３０】図３０は、実施の形態４における通常モードにおける消費電力を示す図である。
【図３１】図３１は、セルフリフレッシュ状態でパトロールを行う場合の消費電力を示す図である。
【図３２】図３２は、実施の形態４におけるハイパーバイザーのメイン処理フロー例を示す図である。
【図３３】図３３は、通常モード処理（Ａ２）のフロー例を示す図である。
【図３４】図３４は、通常モード処理（Ｂ）のフロー例を示す図である。
【図３５】図３５は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１２】
［実施の形態１］
本発明では、セルフリフレッシュ機能を備えたメモリを用いて電力の消費を抑制する。セルフリフレッシュ機能を備えたメモリを用いる情報処理装置の例として、サーバ装置について説明する。但し、他のコンピュータ装置でセルフリフレッシュ機能を備えたメモリを用いるようにしてもよい。セルフリフレッシュは、ダイナミックＲＡＭ（Random Access Memory）のリフレッシュ動作の一つであり、ＲＡＭ内部で自動的に実行されるリフレッシュ動作をいう。セルフリフレッシュ時は、ＲＡＭ内部で発生するクロック信号を用いてＲＡＭ内部のメモリセル群をリフレッシュすることにより、ＲＡＭの消費電力を削減することができる。
【００１３】
図２に、サーバ装置の構成例を示す。サーバ装置２０１は、複数のシステムボード２０３を有している。複数のシステムボード２０３は、スイッチ２０５を介して接続している。図２の例では、システムボード２０３ａ〜システムボード２０３ｇがスイッチ２０５を介して接続している。
【００１４】
システムボード２０３について説明する。図３に、システムボード２０３の構成例を示す。システムボード２０３は、複数のＣＰＵ（Central Processing Unit）ユニット３０１を有している。また、システムボード２０３は、複数のメモリ３０３を有している。更に、システムボード２０３は、データ入出力を行うためのＩＯポート３０５を有している。メモリ３０３は、ＣＰＵユニット３０１の主記憶装置として用いられる。システムボード２０３は、複数のメモリ３０３の他に、ファーム用メモリ３０７を有している。ファーム用メモリ３０７には、ファームウエアが格納されている。後述するハイパーバイザーも、ファーム用メモリ３０７に格納されている。ファーム用メモリ３０７には、例えば、フラッシュメモリあるいはＲＯＭ（Read Only Memory ）を用いる。尚、ＣＰＵユニット３０１は、メモリ３０３を制御するメモリ制御ユニットの例である。
【００１５】
図２の説明に戻って、サーバ装置２０１は、複数の物理パーティション２０７に分割されている。図２の例では、サーバ装置２０１は、物理パーティション２０７ａと物理パーティション２０７ｂを有している。物理パーティション２０７は、一又は複数のシステムボード２０３を含んでいる。図２の例では、物理パーティション２０７ａは、システムボード２０３ｂとシステムボード２０３ｃを含んでいる。物理パーティション２０７ｂは、システムボード２０３ｄ〜システムボード２０３ｆを含んでいる。システムボード２０３ａとシステムボード２０３ｇは、いずれの物理パーティション２０７にも含まれていない。
【００１６】
物理パーティション２０７内の構成について説明する。図４は、物理パーティション２０７の構成例を示す図である。物理パーティション２０７は、ファーム層４０１にハイパーバイザー４０３を有している。図４の例では、物理パーティション２０７ａは、ファーム層４０１ａにハイパーバイザー４０３ａを有し、物理パーティション２０７ｂは、ファーム層４０１ｂにハイパーバイザー４０３ｂを有している。ハイパーバイザー４０３は、仮想マシンを実現するための制御プログラムである。ハイパーバイザー４０３の上で、一又は複数のオペレーティングシステム４０７が動作する。
【００１７】
図４の例では、物理パーティション２０７ａでは、オペレーティングシステム４０７ａ〜オペレーティングシステム４０７ｃが動作し、物理パーティション２０７ｂでは、オペレーティングシステム４０７ｄ〜オペレーティングシステム４０７ｇが動作している。
【００１８】
オペレーティングシステム４０７が管理する範囲で、論理ドメイン４０５が構成される。論理ドメイン４０５内では、一又は複数のアプリケーション４０９が動作する。図４では、例えば、論理ドメイン４０５ａのオペレーティングシステム４０７ａ上で、アプリケーション４０９ａが動作する。論理ドメイン４０５ｂのオペレーティングシステム４０７ｂ上で、アプリケーション４０９ｂが動作する。論理ドメイン４０５ｃのオペレーティングシステム４０７ｃ上で、アプリケーション４０９ｃが動作する。また、論理ドメイン４０５ｄのオペレーティングシステム４０７ｄ上で、アプリケーション４０９ｄが動作する。論理ドメイン４０５ｅのオペレーティングシステム４０７ｅ上で、アプリケーション４０９ｅが動作する。論理ドメイン４０５ｆのオペレーティングシステム４０７ｆ上で、アプリケーション４０９ｆが動作する。論理ドメイン４０５ｇのオペレーティングシステム４０７ｇ上で、アプリケーション４０９ｇが動作する。
【００１９】
続いて、ＣＰＵユニット３０１とメモリ３０３の構成について説明する。図５に、ＣＰＵユニット３０１とメモリ３０３の構成例を示す。ＣＰＵユニット３０１は、複数のコア５０１を有している。コア５０１は、メモリ３０３に記憶されているプログラム又はデータを読み出して演算処理する演算部の例である。各コア５０１は、キャッシュユニット５０３を介して、複数のメモリアクセス制御回路５０５と接続している。キャッシュユニット５０３は、内部にキャッシュメモリを備えている。キャッシュユニット５０３は、コア５０１から要求されたデータをキャッシュメモリに保持している場合には、キャッシュメモリからデータを読み出してコア５０１に提供する。コア５０１から要求されたデータをキャッシュメモリに保持していない場合には、メモリアクセス制御回路５０５を介してメモリ３０３からデータを取得し、コア５０１に提供する。
【００２０】
メモリアクセス制御回路５０５は、制御対象のメモリ３０３と接続し、リクエストに応じて制御対象のメモリ３０３へのアクセスを行う。メモリアクセス制御回路５０５は、メモリ３０３へ対するメモリ状態変更の指示や、安定的にデータを保持させるための動作も行う。この例では、メモリアクセス制御回路５０５は、１つのメモリと接続しているが、複数のメモリと接続するようにしてもよい。
【００２１】
図５の例では、ＣＰＵユニット３０１は、コア５０１を複数有するが、演算部は１つであってもよい。また、図５の例では、ＣＰＵユニット３０１は、複数のメモリと接続しているが、１つのメモリと接続するようにしてもよい。
【００２２】
メモリ３０３は、揮発性のメモリである。メモリ３０３は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）である。メモリ３０３は、メモリ状態として、通常電力状態とパワーダウン状態とセルフリフレッシュ状態とを使い分けることができる。パワーダウン状態は、メモリの回路の一部を停止させた状態であるが、読み書きの動作を行うことができる。セルフリフレッシュ状態は、メモリに入力されるクロックを不活性化させ、自らリフレッシュを行う状態である。セルフリフレッシュ状態では、メモリの読み書きの動作は行われない。
【００２３】
図６は、実施の形態１における電力モードの概要を示す図である。この例では、物理パーティション２０７単位の電力モードとして、通常モード又は省電力モードが選択される。また、メモリ３０３が論理ドメインへアサインされているか否かで、メモリ３０３の状態を切り替える。メモリアクセス頻度によっても、メモリ３０３の状態を切り替える。メモリアクセス頻度が低いとは、メモリへのアクセス頻度が所定の閾値以下の状態、すなわち、例えば一定期間にメモリ３０３へアクセスがない状態を指す。同様に、メモリアクセス頻度が高いとは、メモリのアクセス頻度が所定の閾値よりも大きい状態、すなわち、例えば一定期間にメモリ３０３へアクセスがある状態を指す。また、各メモリ３０３の状態に対してパトロールの有無を設定している。
【００２４】
レコード６０１とレコード６０３は、通常モードにおける２つの状態を示している。レコード６０１に示すように、論理ドメインへのアサインが有る場合には、メモリ状態を通常電力状態（Ｎ）として、パトロールを行うように制御する。レコード６０３に示すように、論理ドメインへのアサインが無い場合には、メモリ状態をパワーダウン状態（Ｐ１）として、パトロールを行うように制御する。以降、各状態を区別して説明するために、（Ｐ１）等の符号を付ける。
【００２５】
レコード６０５とレコード６０７とレコード６０９は、省電力モードにおける３つの状態を示している。レコード６０５に示すように、論理ドメインへのアサインが有り、メモリアクセス頻度が高い場合には、メモリ状態をパワーダウン状態（Ｐ２）として、パトロールを行うように制御する。レコード６０７に示すように、論理ドメインへのアサインが有り、メモリアクセス頻度が低い場合には、メモリ状態をセルフリフレッシュ状態（Ｓ１）として、パトロールを行わないように制御する。レコード６０９に示すように、論理ドメインへのアサインが無い場合には、メモリ状態をセルフリフレッシュ状態（Ｓ２）として、パトロールを行わないように制御する。
【００２６】
図中、「（影響なし）」と記載している項目は、メモリ状態の特定に関与しないことを示している。
【００２７】
図７に、実施の形態１における通常モードにおける状態遷移を示す。メモリ状態が通常電力状態（Ｎ）７０１で、メモリ３０３へのアクセスがあっても状態は移らない。メモリ状態が通常電力状態（Ｎ）７０１で、メモリ３０３のパワーダウン機能を開始させると、メモリ状態がパワーダウン状態（Ｐ１）７０３に移る。メモリ状態がパワーダウン状態（Ｐ１）７０３で、メモリ３０３へのアクセスがあっても状態は移らない。メモリ状態がパワーダウン状態（Ｐ１）７０３で、メモリ３０３のパワーダウン機能を停止させると、メモリ状態が通常電力状態（Ｎ）７０１に移る。
【００２８】
通常モードにおける消費電力は、図１に示した通りである。
【００２９】
図８に、実施の形態１における省電力モードにおける状態遷移を示す。メモリ状態がパワーダウン状態（Ｐ２）８０１で、メモリ３０３へのアクセスがあっても状態は移らない。メモリ状態がパワーダウン状態（Ｐ２）８０１で、メモリ３０３のセルフリフレッシュ機能を開始させると、メモリ状態がセルフリフレッシュ状態（Ｓ１，Ｓ２）８０３に移る。メモリ状態がセルフリフレッシュ状態（Ｓ１，Ｓ２）８０３で、メモリ３０３のセルフリフレッシュ機能を停止させると、メモリ状態がパワーダウン状態（Ｐ２）８０１に移る。メモリ状態がセルフリフレッシュ状態（Ｓ１）８０３で、メモリ３０３へのアクセスがあった場合にも、メモリ状態がパワーダウン状態（Ｐ２）８０１に移る。
【００３０】
図９に、実施の形態１における省電力モードにおける消費電力を示す。メモリ状態がパワーダウン状態（Ｐ２）で、パトロール動作によるメモリ３０３へのアクセスがあると、一時的に消費電力９０１は高まるが、メモリ３０３へのアクセスの無い間は、消費電力９０１は比較的に低い。メモリ３０３のセルフリフレッシュ機能を開始させ、更にパトロール動作を停止すると、消費電力９０３は定常的に低く抑えられるようになる。再び、セルフリフレッシュ機能を停止させ、パトロール動作を開始すると、消費電力９０１の状態に戻る。
【００３１】
ここで、比較のためにパトロール動作を停止しない場合も説明する。図１０に、セルフリフレッシュ状態でパトロール動作を行う場合の消費電力を示す。セルフリフレッシュ機能を開始させても、パトロール動作を継続すると、パトロール動作によるメモリ３０３へのアクセスがある度に、消費電力１００３が高くなる。そのため、図９の場合に比べて全体をとしての省電力の効果は小さい。
【００３２】
ここで、メモリアクセス制御回路５０５の構成について説明する。図１１に、実施の形態１におけるメモリアクセス制御回路５０５の構成例を示す。メモリアクセス制御回路５０５は、コマンド制御部１１０１、ＩＯ部１１０７、データ制御部１１０９及びパトロールデータチェック部１１１５を有している。コマンド制御部１１０１は、キャッシュユニット５０３を介してコア５０１からコマンドを受け付け、コマンドを実行する。コマンドを受け付けるために、コマンド制御部１１０１は、制御レジスタ１１０３を備えている。この実施の形態では、制御レジスタ１１０３としてパワーマネジメントレジスタ１１０５を有している。
【００３３】
パワーマネジメントレジスタ１１０５は、コマンドとして、パワーダウン開始要求、パワーダウン停止要求、セルフリフレッシュ開始要求及びセルフリフレッシュ停止要求を受け付ける。コマンド制御部１１０１は、これらのコマンドを受け付けると、ＩＯ部１１０７を介してメモリ３０３に対してパワーダウン機能を開始させ、パワーダウン機能を停止させ、セルフリフレッシュを開始させ、セルフリフレッシュを停止させる。また、パワーマネジメントレジスタ１１０５は、パワーダウン動作状態とセルフリフレッシュ動作状態を提示することにも用いられる。
【００３４】
データ制御部１１０９は、キャッシュユニット５０３を介してコア５０１からデータ操作の要求（リクエストデータ）を受け付け、データ操作を行う。具体的には、データの読み書きを行う。データ操作の要求を受け付けるために、データ制御部１１０９は、リクエストキュー１１１１を備えている。
【００３５】
データ制御部１１０９は、リクエストキュー１１１１にリクエストデータが格納されると、リクエストデータの内容に応じて、ＩＯ部１１０７を介してメモリ３０３からデータを読み取り、あるいはデータを書き込む。
【００３６】
また、データ制御部１１０９は、パトロール動作を実行するパトロール部１１１３を有している。コマンド制御部１１０１からパトロール動作の開始を指示されると、パトロール部１１１３はメモリ３０３から順次データを読み込み、パトロールデータチェック部１１１５に読み出したデータを渡す。パトロールデータチェック部１１１５は、読み出したデータに対してパリティチェックを行う。パトロールデータチェック部１１１５は、チェック結果をパトロール部１１１３に返す。エラーを検出した場合には、パトロールデータチェック部１１１５は、更に訂正データをパトロール部１１１３に返す。パトロール部１１１３は、ＩＯ部１１０７を介して訂正データを元のアドレスに書き戻す。データ制御部１１０９は、コマンド制御部１１０１からパトロール動作の停止を指示されると、パリティチェックとデータ訂正の動作を終える。
【００３７】
続いて、コマンド制御部１１０１における動作について説明する。まず、パワーダウン制御について説明する。図１２に、パワーダウン制御ルーチンの処理フロー例を示す。コマンド制御部１１０１は、パワーマネジメントレジスタ１１０５にパワーダウン開始要求が設定されたか否かを判定する（Ｓ１２０１）。パワーマネジメントレジスタ１１０５にパワーダウン開始要求が設定されていないと判定した場合には、コマンド制御部１１０１は、１２５１のループ処理を繰り返す。つまり、１２５１のループ処理を繰り返している間は、パワーダウン機能が停止中である。
【００３８】
パワーマネジメントレジスタ１１０５にパワーダウン開始要求が設定されたと判定された場合には、コマンド制御部１１０１は、メモリ３０３のパワーダウン機能を起動させる（Ｓ１２０３）。そして、コマンド制御部１１０１は、パワーマネジメントレジスタ１１０５にパワーダウン停止要求が設定されたか否かを判定する（Ｓ１２０５）。パワーマネジメントレジスタ１１０５にパワーダウン停止要求が設定されていないと判定した場合には、コマンド制御部１１０１は、１２５３のループ処理を繰り返す。つまり、１２５３のループ処理を繰り返している間は、パワーダウン機能が実行中である。パワーマネジメントレジスタ１１０５にパワーダウン停止要求が設定されたと判定された場合には、コマンド制御部１１０１は、メモリ３０３のパワーダウン機能を解除させる（Ｓ１２０７）。機能を解除させることは、動作を停止させることである。そして、コマンド制御部１１０１は、１２５１のループ処理へ移行する。
【００３９】
次に、セルフリフレッシュ制御について説明する。図１３に、セルフリフレッシュ制御ルーチン（Ａ）の処理フロー例を示す。コマンド制御部１１０１は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定されたか否かを判定する（Ｓ１３０１）。パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定されていないと判定した場合には、コマンド制御部１１０１は、１３５１のループ処理を繰り返す。つまり、１３５１のループ処理を繰り返している間は、セルフリフレッシュ機能が停止中である。
【００４０】
パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定されたと判定した場合には、コマンド制御部１１０１は、リクエストキューにリクエストデータがあるか否かを判定する（Ｓ１３０３）。リクエストキューにリクエストデータがあると判定した場合には、データ操作が行われているので、リクエストキューにリクエストデータが無くなるまで待つ。リクエストキューにリクエストデータがないと判定した場合には、コマンド制御部１１０１は、メモリ３０３のセルフリフレッシュ機能を起動させる（Ｓ１３０５）。つまり、コマンド制御部１１０１は、メモリ３０３にセルフリフレッシュを開始させる。更に、コマンド制御部１１０１は、データ制御部１１０９によるパトロール動作を停止させる（Ｓ１３０７）。そして、コマンド制御部１１０１は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定されたか否かを判定する（Ｓ１３０９）。パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定されていないと判定した場合には、コマンド制御部１１０１は、更にリクエストキューにリクエストデータがあるか否かを判定する（Ｓ１３１１）。リクエストキューにリクエストデータがないと判定した場合には、コマンド制御部１１０１は１３５３のループ処理を繰り返す。つまり、１３５３のループ処理を繰り返している間は、セルフリフレッシュが実行中である。
【００４１】
１３５３のループ処理を繰り返す間に、Ｓ１３０９でパワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定されたと判定した場合、あるいはＳ１３１１でリクエストキューにリクエストデータがあると判定した場合には、コマンド制御部１１０１は、メモリ３０３のセルフリフレッシュ機能を解除させる（Ｓ１３１３）。つまり、コマンド制御部１１０１は、メモリ３０３にセルフリフレッシュを停止させる。更に、コマンド制御部１１０１は、データ制御部１１０９によるパトロール動作を開始させる（Ｓ１３１５）。つまり、コマンド制御部１１０１は、停止していたパトロール動作を再開させる。そして、コマンド制御部１１０１は、１３５１のループ処理へ移行する。
【００４２】
セルフリフレッシュ制御ルーチンでは、セルフリフレッシュに連動させて、パトロール動作を制御する。このようにすれば、メモリ３０３が待機状態から復帰する場合に、自動的にパトロール動作を再開させることができる。
【００４３】
次に、ハイパーバイザー４０３について説明する。図１４に、ハイパーバイザー４０３の構成例を示す。ハイパーバイザー４０３は、受付部１４０１、第１モード制御部１４０３及び第２モード制御部１４０５を有している。受付部１４０１は、電力モードの切り替えを受け付ける。第１モード制御部１４０３は、通常モードにおける制御処理を行う。第２モード制御部１４０５は、省電力モードにおける制御処理を行う。第１モード制御部１４０３は、第１初期化部１４３１、第１判定部１４３３及び第１要求部１４３５を有している。第１初期化部１４３１は、通常モードに移行するための初期化を行う。第１判定部１４３３は、通常モードにおける判定処理を行う。第１要求部１４３５は、通常モードにおける要求処理を行う。第２モード制御部１４０５は、第２初期化部１４５１、第２判定部１４５３及び第２要求部１４５５を有している。第２初期化部１４５１は、省電力モードに移行するための初期化を行う。第２判定部１４５３は、省電力モードにおける判定処理を行う。第２要求部１４５５は、省電力モードにおける要求処理を行う。
【００４４】
コア５０１は、例えばファーム用メモリ３０７からハイパーバイザー４０３をいずれかのメモリ３０３にロードする。あるいは、コア５０１は、ＣＰＵユニット３０１に接続しているファーム用メモリ３０７から直接ハイパーバイザー４０３を読み出すようにしてもよい。コア５０１は、ハイパーバイザー４０３の命令コードを順次読み出し、演算処理することによりハイパーバイザー４０３のプログラム処理を実行する。
【００４５】
次に、ハイパーバイザー４０３のメイン処理について説明する。図１５に、実施の形態１におけるハイパーバイザー４０３のメイン処理フロー例を示す。第１初期化部１４３１は、通常モード初期化処理を行う（Ｓ１５０１）。本実施の形態では、第１初期化部１４３１は、通常モード初期化処理（Ａ）を行う。この処理により、通常モードの初期状態に移行する。通常モード初期化処理（Ａ）については、図１６を用いて後述する。
【００４６】
続いて、第１初期化部１４３１は、通常モード処理を起動する（Ｓ１５０３）。通常モード処理では、通常モードにおける遷移処理を行う。本実施の形態では、第１初期化部１４３１は、通常モード処理（Ａ１）を起動する。通常モード処理（Ａ１）については、図１７を用いて後述する。尚、通常モード処理は、メイン処理とは別のプロセスとして、並列に動作する。通常モード処理を起動した後は、通常モード処理の終了を待たずに次の処理に移る。
【００４７】
受付部１４０１は、省電力モードへの切り替えがあったか否かを判定する（Ｓ１５０５）。省電力モードへの切り替えがないと判定した場合には、受付部１４０１は、１５５１のループ処理を繰り返す。つまり、１５５１のループ処理を繰り返している間は、通常モードである。
【００４８】
省電力モードへの切り替えがあったと判定した場合には、第２初期化部１４５１は、通常モード処理のプロセスを終了させる（Ｓ１５０７）。そして、第２初期化部１４５１は、省電力モード初期化処理を行う（Ｓ１５０９）。本実施の形態では、第２初期化部１４５１は、省電力モード初期化処理（Ａ）を行う。この処理により、省電力モードの初期状態に移行する。省電力モード初期化処理（Ａ）については、図１８を用いて後述する。
【００４９】
第２初期化部１４５１は、省電力モード処理を起動する（Ｓ１５１１）。省電力モード処理では、省電力モードにおける遷移処理を行う。本実施の形態では、第２初期化部１４５１は、省電力モード処理（Ａ）を起動する。省電力モード処理（Ａ）については、図１９を用いて後述する。尚、省電力モード処理は、メイン処理とは別のプロセスとして、並列に動作する。省電力モード処理を起動した後は、省電力モード処理の終了を待たずに次の処理に移る。
【００５０】
受付部１４０１は、通常モードへの切り替えがあったか否かを判定する（Ｓ１５１３）。通常モードへの切り替えがないと判定した場合には、受付部１４０１は、１５５３のループ処理を繰り返す。つまり、１５５３のループ処理を繰り返している間は、省電力モードである。
【００５１】
通常モードへの切り替えがあったと判定した場合には、第１初期化部１４３１は、省電力モード処理のプロセスを終了させる（Ｓ１５１５）。そして、Ｓ１５０１の通常モード初期化処理へ戻る。
【００５２】
ここで、Ｓ１５０１で行う通常モード初期化処理（Ａ）について説明する。図１６に、通常モード初期化処理（Ａ）のフロー例を示す。通常モード初期化処理（Ａ）において、第１初期化部１４３１は、通常モードの初期状態を設定する。具体的には、第１初期化部１４３１は、図６のレコード６０１に示した状態、つまりパトロールを実行している通常電力状態（Ｎ）に設定する。
【００５３】
第１初期化部１４３１は、パワーマネジメントレジスタ１１０５からパワーダウン動作状態を読み取り、パワーダウン動作状態が実行中であるかあるいは停止中であるかを判定する（Ｓ１６０１）。パワーダウン動作状態が実行中であると判定した場合には、第１初期化部１４３１は、パワーマネジメントレジスタ１１０５にパワーダウン停止要求を設定する（Ｓ１６０３）。これにより、パワーダウン機能は停止される。パワーダウン動作状態が停止中であると判定した場合には、パワーマネジメントレジスタ１１０５に対する操作は行なわず、Ｓ１６０５に移行する。
【００５４】
第１初期化部１４３１は、パワーマネジメントレジスタ１１０５からセルフリフレッシュ動作状態を読み取り、セルフリフレッシュ動作状態が実行中であるかあるいは停止中であるかを判定する（Ｓ１６０５）。セルフリフレッシュ動作状態が実行中であると判定した場合には、第１初期化部１４３１は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定する（Ｓ１６０７）。これにより、セルフリフレッシュ機能は停止される。セルフリフレッシュ動作状態が停止中であると判定した場合には、パワーマネジメントレジスタ１１０５に対する操作は行なわず、処理を終了する。処理を終了すると、図１５のＳ１５０３へ戻る。
【００５５】
次に、Ｓ１５０３で行う通常モード処理（Ａ１）について説明する。図１７に、通常モード処理（Ａ１）のフロー例を示す。通常モード処理（Ａ１）において、第１判定部１４３３と第１要求部１４３５は、図６のレコード６０１に示した通常電力状態（Ｎ）を初期状態として、通常電力状態（Ｎ）とレコード６０３に示したパワーダウン状態（Ｐ１）の間の遷移を制御する。
【００５６】
第１判定部１４３３は、メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ１７０１）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、第１判定部１４３３は、１７５１のループ処理を繰り返す。図６のレコード６０１に示した状態、つまり論理ドメインへのアサインが有る通常電力状態（Ｎ）が継続している間は、１７５１のループが繰り返される。
【００５７】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第１要求部１４３５は、パワーマネジメントレジスタ１１０５にパワーダウン開始要求を設定する（Ｓ１７０３）。これにより、パワーダウン機能が開始される。第１判定部１４３３は、制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ１７０５）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第１判定部１４３３は、１７５３のループ処理を繰り返す。図６のレコード６０３に示した状態、つまり論理ドメインへのアサインがないパワーダウン状態（Ｐ１）が継続している間は、１７５３のループ処理が繰り返される。
【００５８】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、第１要求部１４３５は、パワーマネジメントレジスタ１１０５にパワーダウン停止要求を設定する（Ｓ１７０７）。これにより、パワーダウン機能が停止される。そして、１７５１のループ処理へ戻る。図１５のＳ１５０７で終了するまで、これらの処理を繰り返す。
【００５９】
続いて、Ｓ１５０９で行う省電力モード初期化処理（Ａ）について説明する。図１８に、省電力モード初期化処理（Ａ）のフロー例を示す。省電力モード初期化処理（Ａ）においては、第２初期化部１４５１は、省電力モードの初期状態を設定する。具体的には、第２初期化部１４５１は、図６のレコード６０５に示した状態、つまりパトロールを実行しているパワーダウン状態（Ｐ２）に設定する。
【００６０】
第２初期化部１４５１は、パワーマネジメントレジスタ１１０５からパワーダウン動作状態を読み取り、パワーダウン動作状態が実行中であるかあるいは停止中であるかを判定する（Ｓ１８０１）。パワーダウン動作状態が停止中であると判定した場合には、第１初期化部１４３１は、パワーマネジメントレジスタ１１０５にパワーダウン開始要求を設定する（Ｓ１８０３）。これにより、パワーダウン機能は開始される。パワーダウン動作状態が実行中であると判定した場合には、パワーマネジメントレジスタ１１０５に対する操作は行わない。
【００６１】
第１初期化部１４３１は、パワーマネジメントレジスタ１１０５からセルフリフレッシュ動作状態を読み取り、セルフリフレッシュ動作状態が実行中であるかあるいは停止中であるかを判定する（Ｓ１８０５）セルフリフレッシュ動作状態が実行中であると判定した場合には、第１初期化部１４３１は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定する（Ｓ１８０７）。これにより、セルフリフレッシュ機能は停止される。セルフリフレッシュ動作状態が停止中であると判定した場合には、パワーマネジメントレジスタ１１０５に対する操作は行なわず、処理を終了する。処理を終了すると、図１５のＳ１５１１へ戻る。
【００６２】
次に、Ｓ１５１１で行う省電力モード処理（Ａ）について説明する。図１９に、省電力モード処理（Ａ）のフロー例を示す。省電力モード処理（Ａ）において、第２判定部１４５３と第２要求部１４５５は、図６のレコード６０５に示したパワーダウン状態（Ｐ２）を初期状態として、パワーダウン状態（Ｐ２）とレコード６０７に示したセルフリフレッシュ状態（Ｓ１）とレコード６０９に示したセルフリフレッシュ状態（Ｓ２）の間の遷移を制御する。
【００６３】
第２判定部１４５３は、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であるか否かを判定する（Ｓ１９０１）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３の一部又は全体が所定の期間において使用されているときは、メモリアクセス頻度が高い状態に相当する。一方、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であるときは、メモリアクセス頻度が低い状態に相当する。
【００６４】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３の一部又は全体が所定の期間において使用されていると判定した場合には、第２判定部１４５３は、制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ１９０３）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、Ｓ１９０１へ戻る。このようにして、図６のレコード６０５に示した状態、つまり論理ドメインへのアサインが有り、且つメモリアクセスの頻度が高いパワーダウン状態（Ｐ２）が継続している間は、１９５１のループが繰り返される。
【００６５】
次に、パワーダウン状態（Ｐ２）からセルフリフレッシュ状態（Ｓ１）への遷移について説明する。Ｓ１９０１で、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であると判定した場合には、第２要求部１４５５は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定する（Ｓ１９０５）。これにより、セルフリフレッシュ機能が開始される。第２判定部１４５３は、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であるか否かを判定する（Ｓ１９０７）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であると判定した場合には、第２判定部１４５３は、制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ１９０９）。制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、第２判定部１４５３は、１９５３のループ処理を繰り返す。このようにして、図６のレコード６０７に示した状態、つまり論理ドメインへのアサインが有り、且つメモリアクセス頻度が低いセルフリフレッシュ状態（Ｓ１）が継続している間は、１９５３のループ処理が繰り返される。
【００６６】
次に、セルフリフレッシュ状態（Ｓ１）からパワーダウン状態（Ｐ２）へ戻る遷移について説明する。Ｓ１９０７で、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の一部又は全体が所定の期間において使用されていると判定した場合には、Ｓ１９０１へ移行する。このとき、メモリアクセス制御回路５０５によってセルフリフレッシュは停止されるので、ハイパーバイザー４０３はセルフリフレッシュを停止するための処理を行わない。具体的には、図１３に示したセルフリフレッシュ制御ルーチンにおいて、セルフリフレッシュ機能を実行中におけるループ１３５３中のＳ１３１１でリクエストキューにリクエストデータがあると判定した場合に、メモリ３０３のセルフリフレッシュ機能を解除させ（Ｓ１３１３）、パトロール動作を開始する（Ｓ１３１５）。このようにして、パワーダウン状態（Ｐ２）におけるループ処理１９５１に戻る。
【００６７】
次に、パワーダウン状態（Ｐ２）からセルフリフレッシュ状態（Ｓ２）への遷移について説明する。パワーダウン状態（Ｐ２）におけるループ処理１９５１中のＳ１９０３で、メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第２要求部１４５５は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定する（Ｓ１９１１）。これにより、セルフリフレッシュ機能が開始される。第２判定部１４５３は、制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ１９１３）。制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、Ｓ１９１３の判定処理を繰り返す。このようにして、図６のレコード６０９に示した状態、つまり論理ドメインへのアサインが無いセルフリフレッシュ状態（Ｓ２）が継続している間は、１９５５のループ処理が繰り返される。
【００６８】
次に、セルフリフレッシュ状態（Ｓ１）からセルフリフレッシュ状態（Ｓ２）への遷移について説明する。セルフリフレッシュ状態（Ｓ１）におけるループ処理１９５３中のＳ１９０９で、制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第２判定部１４５３は、制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ１９１３）。制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、Ｓ１９１３の判定処理を繰り返す。前述と同様に、図６のレコード６０９に示した状態、つまり論理ドメインへのアサインが無いセルフリフレッシュ状態（Ｓ２）が継続している間は、１９５５のループ処理が繰り返される。
【００６９】
次に、セルフリフレッシュ状態（Ｓ２）からパワーダウン状態（Ｐ２）又はセルフリフレッシュ状態（Ｓ１）への遷移について説明する。セルフリフレッシュ状態（Ｓ２）におけるループ処理１９５５中のＳ１９１３で、制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、第２要求部１４５５は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定する（Ｓ１９１５）。これにより、セルフリフレッシュ機能は停止される。そして、Ｓ１９０１で、第２判定部１４５３は、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であるか否かを判定する。
【００７０】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３の一部又は全体が所定の期間において使用されていると判定した場合には、パワーダウン状態（Ｐ２）におけるループ処理１９５１に移行する。
【００７１】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３の全体が所定の期間において不使用であると判定した場合には、セルフリフレッシュ状態（Ｓ１）におけるループ処理１９５３に移行する。
【００７２】
本実施の形態によれば、メモリ３０３のセルフリフレッシュを開始させた場合にメモリ３０３へのパトロールを停止し、セルフリフレッシュを停止させた場合にパトロールを再開するので、メモリ３０３がセルフリフレッシュを実行し、待機している状態における消費電力を低減することができる。更に、サーバ装置のようなコンピュータ装置全体としての電力消費を抑制することができる。
【００７３】
また、メモリ３０３が論理ドメインにアサインされていないときに、メモリ３０３のセルフリフレッシュを開始させ、メモリ３０３が論理ドメインにアサインされているときに、メモリのセルフリフレッシュを停止させるので、メモリ３０３が使用されない状況における消費電力を抑制することができる。
【００７４】
更に、メモリ３０３が論理ドメインにアサインされていても、メモリ３０３へのアクセス頻度が低いときには、メモリ３０３のセルフリフレッシュを開始させるので、メモリ３０３が実際に使用されていない状況における消費電力を抑制することができる。
【００７５】
［実施の形態２］
実施の形態１では、図１３に示したように、メモリアクセス制御回路５０５のセルフリフレッシュ制御ルーチンにおいて、セルフリフレッシュ機能の起動とパトロール動作の停止を連動させ、セルフリフレッシュ機能の解除とパトロール動作の開始を連動させる例について説明した。実施の形態２では、ハイパーバイザー４０３において、セルフリフレッシュ機能の起動とパトロール動作の停止を連動させ、更にセルフリフレッシュ機能の解除とパトロール動作の開始を連動させる例について説明する。
【００７６】
実施の形態２でも、実施の形態１と同様に図６に示した状態遷移を実現する例について説明する。
【００７７】
図２０に、実施の形態２におけるメモリアクセス制御回路５０５の構成例を示す。実施の形態２では、制御レジスタ１１０３は、パトロールコントロールレジスタ２００１を有している。パトロールコントロールレジスタ２００１は、パトロールの制御のためのレジスタである。パトロールコントロールレジスタ２００１は、コマンドとして、パトロール開始要求とパトロール停止要求を受け付ける。コマンド制御部１１０１は、これらのコマンドを受け付けると、データ制御部１１０９によるパトロール動作を開始させ、あるいは停止させる。また、パトロールコントロールレジスタ２００１は、パトロール動作状態を提示することにも用いられる。
【００７８】
次に、メモリアクセス制御回路５０５の動作について説明する。パワーダウン制御ルーチン（図１２）については、実施の形態１と同様である。
【００７９】
実施の形態２では、図１３に示したセルフリフレッシュ制御ルーチン（Ａ）に代えて、セルフリフレッシュ制御ルーチン（Ｂ）の処理を行う。図２１に、セルフリフレッシュ制御ルーチン（Ｂ）の処理フロー例を示す。
【００８０】
Ｓ１３０１〜Ｓ１３０５については、図１３と同様である。また、セルフリフレッシュ機能の停止中は、図１３の１３５１のループ処理と同様に２１５１のループ処理を繰り返す。
【００８１】
Ｓ２１０１では、図１３のＳ１３０７の処理に代えて、コマンド制御部１１０１が、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態に実行中を設定する。
【００８２】
Ｓ１３０９〜Ｓ１３１３については、図１３と同様である。また、セルフリフレッシュ機能の実行中は、図１３の１３５３のループ処理と同様に２１５３のループ処理を繰り返す。
【００８３】
Ｓ２１０３では、図１３のＳ１３１５の処理に代えて、コマンド制御部１１０１が、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態に停止中を設定する（Ｓ２１０３）。
【００８４】
次に、実施の形態２で新たに設けるパトロール制御ルーチンについて説明する。図２２に、パトロール制御ルーチンの処理フロー例を示す。
【００８５】
コマンド制御部１１０１は、パトロールコントロールレジスタ２００１にパトロール停止要求が設定されたか否かを判定する（Ｓ２２０１）。パトロールコントロールレジスタ２００１にパトロール停止要求が設定されていないと判定した場合には、コマンド制御部１１０１は、２２５１のループ処理を繰り返す。つまり、２２５１のループ処理を繰り返している間は、パトロール動作が実行中である。
【００８６】
パトロールコントロールレジスタ２００１にパトロール停止要求が設定されたと判定した場合には、コマンド制御部１１０１は、パトロール部１１１３によるパトロール動作を停止する（Ｓ２２０３）。
【００８７】
そして、コマンド制御部１１０１は、パトロールコントロールレジスタ２００１にパトロール開始要求が設定されたか否かを判定する（Ｓ２２０５）。パトロールコントロールレジスタ２００１にパトロール開始要求が設定されていないと判定した場合には、コマンド制御部１１０１は、２２５３のループ処理を繰り返す。つまり、２２５３のループ処理を繰り返している間は、パトロール動作が停止中である。
【００８８】
パトロールコントロールレジスタ２００１にパトロール開始要求が設定されたと判定した場合には、コマンド制御部１１０１は、パトロール部１１１３によるパトロール動作を開始する（Ｓ２２０７）。そして、コマンド制御部１１０１は、２２５１のループ処理へ移行する。
【００８９】
以上で、実施の形態２におけるメモリアクセス制御回路５０５の説明を終える。続いて、実施の形態２におけるハイパーバイザー４０３の処理について説明する。実施の形態２におけるハイパーバイザー４０３のメイン処理フローは、図１５に示した通りである。
【００９０】
実施の形態２では、実施の形態１で示した図１６の通常モード初期化処理（Ａ）に代えて、通常モード初期化処理（Ｂ）を行う。図２３に、通常モード初期化処理（Ｂ）のフロー例を示す。
【００９１】
Ｓ１６０１〜Ｓ１６０７は、図１６に示した通常モード初期化処理（Ａ）の場合と同様である。通常モード初期化処理（Ｂ）では、更に、第１初期化部１４３１は、パトロールコントロールレジスタ２００１からパトロール動作状態を読み取り、パトロール動作状態が実行中であるかあるいは停止中であるかを判定する（Ｓ２３０１）。パトロール動作状態が停止中であると判定した場合には、第１初期化部１４３１は、パトロールコントロールレジスタ２００１にパトロール開始要求を設定する（Ｓ２３０３）。パトロール動作状態が実行中であると判定した場合には、パトロールコントロールレジスタ２００１に対する操作は行なわず、処理を終了する。終了すると、図１５のＳ１５０３へ戻る。
【００９２】
実施の形態２では、実施の形態１で示した図１８の省電力モード初期化処理（Ａ）に代えて、省電力モード初期化処理（Ｂ）を行う。図２４に、省電力モード初期化処理（Ｂ）のフロー例を示す。
【００９３】
Ｓ１８０１〜Ｓ１８０７は、図１８に示した省電力モード初期化処理（Ａ）の場合と同様である。省電力モード初期化処理（Ｂ）では、更に、第２初期化部１４５１は、パトロールコントロールレジスタ２００１からパトロール動作状態を読み取り、パトロール動作状態が実行中であるかあるいは停止中であるかを判定する（Ｓ２４０１）。パトロール動作状態が停止中であると判定した場合には、第２初期化部１４５１は、パトロールコントロールレジスタ２００１にパトロール開始要求を設定する（Ｓ２４０３）。パトロール動作状態が実行中であると判定した場合には、パトロールコントロールレジスタ２００１に対する操作は行なわず、処理を終了する。処理を終了すると、図１５のＳ１５１１へ戻る。
【００９４】
通常モード処理は、実施の形態１で示した図１７の処理と同様である。
【００９５】
実施の形態２では、実施の形態１で示した図１９の省電力モード処理（Ａ）に代えて、省電力モード処理（Ｂ１）を行う。図２５Ａと図２５Ｂに、省電力モード処理（Ｂ１）のフロー例を示す。Ｓ１９０１とＳ１９０３の判定による２５５１のループ処理は、図１９の１９５１のループ処理と同様に、パワーダウン状態（Ｐ２）に対応する。Ｓ１９０７とＳ１９０９の判定による２５５３のループ処理は、図１９の１９５３のループ処理と同様に、セルフリフレッシュ状態（Ｓ１）に対応する。Ｓ１９１３の判定による２５５５のループ処理は、図１９の１９５５のループ処理と同様に、セルフリフレッシュ状態（Ｓ２）に対応する。
【００９６】
また、パワーダウン状態（Ｐ２）からセルフリフレッシュ状態（Ｓ１）に移行する際に、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定するＳ１９０５の処理と、パワーダウン状態（Ｐ２）からセルフリフレッシュ状態（Ｓ２）に移行する際に、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定するＳ１９１１の処理と、セルフリフレッシュ状態（Ｓ２）からパワーダウン状態（Ｐ２）又はセルフリフレッシュ状態（Ｓ１）に移行する際に、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定するＳ１９１５の処理は、図１９に示した省電力モード処理（Ａ）の場合と同様である。
【００９７】
実施の形態２では、Ｓ１９０５で、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定した後に、第２判定部１４５３は、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中になったか否かを判定する（Ｓ２５０１）。パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中である場合には、Ｓ２５０１の処理を繰り返し、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中になった場合に、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール停止要求を設定する（Ｓ２５０３）。
【００９８】
同様に、Ｓ１９１１で、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定した後に、第２判定部１４５３は、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中になったか否かを判定する（Ｓ２５０７）。パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中である場合には、Ｓ２５０７の処理を繰り返し、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中になった場合に、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール停止要求を設定する（Ｓ２５０９）。
【００９９】
更に、Ｓ１９１５で、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定した後に、第２判定部１４５３は、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中になったか否かを判定し（Ｓ２５１１）、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中である場合には、Ｓ２５１１の処理を繰り返し、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中になった場合に、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール開始要求を設定する（Ｓ２５１３）。
【０１００】
また、Ｓ１９０７で、メモリアクセス制御回路５０５による制御対象であるメモリ３０３の一部又は全体が所定の期間において使用されていると判定した場合には、実施の形態１で説明した通り、メモリアクセス制御回路５０５によるセルフリフレッシュの停止が行われているので、それに対応して、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール開始要求を設定する（Ｓ２５０５）。
【０１０１】
尚、図２５Ａに示したＳ１９１３の処理の後は、端子Ａを介して図２５ＢのＳ１９１５へ移る。また、図２５Ｂに示したＳ２５１３の処理の後は、端子Ｂを介して図２５ＡのＳ１９０１へ移る。
【０１０２】
このように、実施の形態２におけるハイパーバイザー４０３は、セルフリフレッシュ機能に対する操作を行った場合に、セルフリフレッシュ動作状態の遷移を確認した上で、パトロール動作に対する制御も行う。従って、プログラムによりセルフリフレッシュに連動させて、パトロール動作を制御することができる。
【０１０３】
［実施の形態３］
実施の形態２におけるメモリアクセス制御回路５０５とハイパーバイザー４０３の役割を継承し、実施の形態１及び２と異なる状態遷移を実現する例について説明する。実施の形態２と相違する点のみを説明する。その他については、実施の形態２と同様である。
【０１０４】
図２６に、実施の形態３における電力モードの概要を示す。実施の形態１に示した図６の電力モードの概要と比較し、実施の形態３において実現する状態遷移について説明する。
【０１０５】
レコード２６０１に示す通常電力状態（Ｎ）、レコード２６０３に示すパワーダウン状態（Ｐ１）、レコード２６０５に示すパワーダウン状態（Ｐ２）及びレコード２６０９に示すセルフリフレッシュ状態（Ｓ２）については、図６に示したレコード６０１〜６０５及び６０９と同様である。レコード２６０７は、パトロールの有無の点に関して図６の６０７に示したセルフリフレッシュ状態（Ｓ１）と異なる。レコード２６０７では省電力モードにおいて、論理ドメインへのアサインあり且つメモリアクセス頻度が低い場合に、セルフリフレッシュ状態でパトロール動作を実行する。
【０１０６】
実施の形態３では、実施の形態２の図２５Ａと図２５Ｂに示した省電力モード処理（Ｂ１）に代えて、省電力モード処理（Ｂ２）を行う。
【０１０７】
図２７Ａと図２７Ｂに、省電力モード処理（Ｂ２）のフロー例を示す。実施の形態３におけるセルフリフレッシュ状態（Ｓ３）では、パトロール動作を停止しない。従って、Ｓ１９０５でセルフリフレッシュ機能を開始させた後で、図２５に示したセルフリフレッシュ動作状態の判定（Ｓ２５０１）とパトロール停止要求（Ｓ２５０３）の処理を行わない。また、パトロール開始要求（Ｓ２５０５）の処理も行わない。
【０１０８】
但し、セルフリフレッシュ状態（Ｓ３）からセルフリフレッシュ状態（Ｓ２）に移行する際には、パトロールを停止させる。そのため、Ｓ１９０９で制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール停止要求を設定する（Ｓ２７０１）。
【０１０９】
尚、図２７Ａに示したＳ１９１３の処理の後は、端子Ｃを介して図２７ＢのＳ１９１５へ移る。また、図２７Ｂに示したＳ２５１３の処理の後は、端子Ｄを介して図２７ＡのＳ１９０１へ移る。
【０１１０】
メモリ３０３が論理ドメインにアサインされているときに、メモリアクセス頻度が低いためにセルフリフレッシュによる待機中になったとしても、メモリ３０３で記憶しているデータを保証することができる。
【０１１１】
［実施の形態４］
実施の形態１乃至３では、パワーダウン状態を初期状態としてセルフリフレッシュ状態との間で遷移する例を主に説明したが、実施の形態４及び５では、通常電力状態を初期状態としてセルフリフレッシュ状態との間で遷移する例について説明する。
【０１１２】
また、実施の形態１乃至３では、通常モードと省電力モードの２つのモードに対応する例を示したが、電力モードは１つであってもよい。または、電力モードは３つ以上であってもよい。実施の形態４及び５では、電力モードを１つとする例について説明する。
【０１１３】
実施の形態１と同様に、メモリアクセス制御回路５０５によるセルフリフレッシュ制御ルーチンでセルフリフレッシュ機能の起動とパトロール動作の停止を連動させ、更にセルフリフレッシュ機能の解除とパトロール動作の開始を連動させる構成を前提として説明する。
【０１１４】
図２８は、実施の形態４における電力モードの概要を示す図である。この例では、電力モードは、通常モードのみである。レコード２８０１とレコード２８０３は、通常モードにおける２つの状態を示している。レコード２８０１に示すように、論理ドメインへのアサインが有る場合には、メモリ状態を通常電力状態（Ｎ）でパトロールを行うように制御する。レコード２８０３に示すように、論理ドメインへのアサインが無い場合には、メモリ状態をセルフリフレッシュ状態（Ｓ４）でパトロールを行わないように制御する。
【０１１５】
図２９に、実施の形態４における通常モードにおける状態遷移を示す。メモリ状態が通常電力状態（Ｎ）２９０１で、メモリ３０３へのアクセスがあっても状態は移らない。メモリ状態が通常電力状態（Ｎ）２９０１で、メモリ３０３のセルフリフレッシュ機能を開始させると、メモリ状態がセルフリフレッシュ状態（Ｓ４）２９０３に移る。メモリ状態がセルフリフレッシュ状態（Ｓ４）２９０３で、メモリ３０３のセルフリフレッシュ機能を停止させると、メモリ状態が通常電力状態（Ｎ）２９０１に移る。メモリ状態がセルフリフレッシュ状態（Ｓ４）２９０３で、メモリ３０３へのアクセスがあった場合にも、メモリ状態が通常電力状態（Ｎ）２９０１に移る。
【０１１６】
図３０は、実施の形態４における通常モードにおける消費電力を示す。メモリ状態が通常電力状態（Ｎ）で、パトロール動作によるメモリ３０３へのアクセスがあっても消費電力３００１は変化しない。メモリ３０３のセルフリフレッシュ機能を開始させ、パトロール動作を停止すると、消費電力３００３は定常的に低く抑えられるようになる。再び、セルフリフレッシュ機能を停止させ、パトロール動作を開始すると、消費電力３００１の状態に戻る。
【０１１７】
ここで、比較のためにパトロールを停止しない場合も説明する。図３１に、セルフリフレッシュ状態でパトロールを行う場合の消費電力を示す。セルフリフレッシュ機能を開始させても、パトロール動作を継続すると、パトロール動作によるメモリ３０３へのアクセスがある度に、消費電力３１０３が高くなる。そのため、図３０の場合に比べて全体をとしての省電力の効果は小さい。
【０１１８】
実施の形態４は、実施の形態１で示した図１１のメモリアクセス制御回路５０５の構成を用いる。また、実施の形態４は、実施の形態１で示した図１３のセルフリフレッシュ制御ルーチン（Ａ）の処理を用いる。図１４に示したハイパーバイザー４０３の構成のうち、第２モード制御部１４０５は省略してもよい。
【０１１９】
図３２に、実施の形態４におけるハイパーバイザー４０３のメイン処理フロー例を示す。第１初期化部１４３１は、通常モード初期化処理を行う（Ｓ３２０１）。具体的には、第１初期化部１４３１は、実施の形態１で示した図１６の通常モード初期化処理（Ａ）を行う。
【０１２０】
続いて、通常モード処理を起動する（Ｓ３２０３）。  具体的には、第１初期化部１４３１は、実施の形態１で示した図１７の通常モード処理（Ａ１）に代えて、通常モード処理（Ａ２）を行う。
【０１２１】
図３３に、通常モード処理（Ａ２）のフロー例を示す。通常モード処理において、第１判定部１４３３と第１要求部１４３５は、図２８のレコード２８０１に示した通常電力状態（Ｎ）を初期状態として、通常電力状態（Ｎ）とレコード２８０３に示したセルフリフレッシュ状態（Ｓ４）の間の遷移を制御する。
【０１２２】
第１判定部１４３３は、メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ３３０１）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、第１判定部１４３３は、３３５１のループ処理を繰り返す。このようにして、図２８のレコード２８０１に示した状態、つまり論理ドメインへのアサインが有る通常電力状態（Ｎ）が継続されている間は、３３５１のループが繰り返される。
【０１２３】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第１要求部１４３５は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定する（Ｓ３３０３）。これにより、セルフリフレッシュ機能が開始される。第１判定部１４３３は、制御対象であるメモリ３０３が論理ドメインへアサインされているか否かを判定する（Ｓ３３０５）。メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていないと判定した場合には、第１判定部１４３３は、３３５３のループ処理を繰り返す。このようにして、図２８のレコード２８０３に示した状態、つまり論理ドメインへのアサインがないセルフリフレッシュ状態（Ｓ４）が継続されている間は、３３５３のループ処理が繰り返される。
【０１２４】
メモリアクセス制御回路５０５による制御対象であるメモリ３０３が論理ドメインへアサインされていると判定した場合には、第１要求部１４３５は、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定する（Ｓ３３０７）これにより、セルフリフレッシュ機能が停止される。そして、３３５１のループ処理へ戻る。
【０１２５】
実施の形態４によれば、通常電力状態とセルフリフレッシュ状態との間で遷移する場合にも、メモリアクセス制御回路５０５によってセルフリフレッシュ状態におけるパトロール動作を省き、消費電力を削減することができる。
【０１２６】
［実施の形態５］
実施の形態２及び３と同様に、ハイパーバイザー４０３の処理で、セルフリフレッシュ機能の起動とパトロール動作の停止を連動させ、更にセルフリフレッシュ機能の解除とパトロール動作の開始を連動させることによって、実施の形態４で示した状態の遷移を実現する例について説明する。
【０１２７】
実施の形態５は、実施の形態２で示した図２０のメモリアクセス制御回路５０５の構成を用いる。また、実施の形態５は、実施の形態２で示した図２１のセルフリフレッシュ制御ルーチン（Ｂ）と図２２のパトロール制御ルーチンの処理を用いる。メイン処理は、実施の形態４で示した図３２の処理フローに従う。更に、実施の形態５は、実施の形態２で示した図２３の通常モード初期化処理（Ｂ）を用いる。
【０１２８】
実施の形態５では、実施の形態４で示した図３３の通常モード処理（Ａ２）に代えて、通常モード処理（Ｂ）を行う。
【０１２９】
図３４に、通常モード処理（Ｂ）のフロー例を示す。図３３の通常モード処理（Ａ１）と同様に、第１判定部１４３３と第１要求部１４３５は、図２８のレコード２８０１に示した通常電力状態（Ｎ）を初期状態として、通常電力状態（Ｎ）とレコード２８０３に示したセルフリフレッシュ状態（Ｓ４）の間の遷移を制御する。
【０１３０】
Ｓ３３０１とＳ３３０３は、図３３と同様である。また、通常電力状態（Ｎ）におけるループ処理３４５１も、図３３のループ処理３３５１と同様である。Ｓ３３０３でパワーマネジメントレジスタ１１０５にセルフリフレッシュ開始要求を設定すると、第１判定部１４３３は、セルフリフレッシュ動作状態が実行中になったか否かを判定する（Ｓ３４０１）。パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中になっていない場合には、Ｓ３４０１の処理を繰り返す。パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が実行中になった場合に、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール停止要求を設定する（Ｓ３４０３）。
【０１３１】
更に、Ｓ３３０７で、パワーマネジメントレジスタ１１０５にセルフリフレッシュ停止要求を設定した後に、第２判定部１４５３は、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中になったか否かを判定し（Ｓ３４０５）、パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中になっていない場合には、Ｓ３４０５の処理を繰り返す。パワーマネジメントレジスタ１１０５のセルフリフレッシュ動作状態が停止中になった場合に、第２要求部１４５５は、パトロールコントロールレジスタ２００１にパトロール開始要求を設定する（Ｓ３４０７）。
【０１３２】
このように、通常電力状態とセルフリフレッシュ状態との間で遷移する場合にも、コア５０１が実行するハイパーバイザー４０３の制御によってセルフリフレッシュ状態におけるパトロール動作を省き、消費電力を削減することができる。
【０１３３】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上述の機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
【０１３４】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１３５】
上述の実施の形態では、サーバ装置２０１を例として説明したが、パーソナルコンピュータ装置や携帯端末装置などのコンピュータ装置において実施することもできる。以下にコンピュータ装置の機能構成図を示す。図３５に示すように、メモリ３５０１とＣＰＵ（Central Processing Unit）３５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）３５０５と表示装置３５０９に接続される表示制御部３５０７とリムーバブル・ディスク３５１１用のドライブ装置３５１３と入力装置３５１５とネットワークに接続するための通信制御部３５１７とがバス３５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ３５０５に格納されており、ＣＰＵ３５０３により実行される際にはＨＤＤ３５０５からメモリ３５０１に読み出される。ＣＰＵ３５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部３５０７、通信制御部３５１７、ドライブ装置３５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ３５０１に格納されるが、ＨＤＤ３５０５に格納されるようにしてもよい。プログラムはコンピュータ読み取り可能なリムーバブル・ディスク３５１１に格納されて頒布され、ドライブ装置３５１３からＨＤＤ３５０５にインストールされるようにしてもよい。インターネットなどのネットワーク及び通信制御部３５１７を経由して、ＨＤＤ３５０５にインストールされるようにしてもよい。このようなコンピュータ装置は、上で述べたＣＰＵ３５０３、メモリ３５０１などのハードウエアとＯＳ、ファームウエア及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、各種機能を実現する。この例で、ＣＰＵ３５０３がメモリ制御ユニットに相当し、制御されるメインメモリはメモリ３５０１の一部に含まれる。また、ファームウエアを記憶するファーム用メモリもメモリ３５０１の一部に含まれる。
【０１３６】
以上述べた実施の形態をまとめると、以下のようになる。
【０１３７】
本実施の形態に係る情報処理装置は、セルフリフレッシュ機能を備える一又は複数のメモリと、一又は複数のメモリのセルフリフレッシュを開始させた場合に、一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止し、一又は複数のメモリのセルフリフレッシュを停止させた場合に、一又は複数のメモリに対するパトロールを再開するメモリ制御ユニットとを含む。
【０１３８】
このようにすれば、メモリがセルフリフレッシュを実行し、待機している状態における消費電力を削減し、情報処理装置全体としての電力消費を抑制することができる。
【０１３９】
また、一又は複数のメモリへのアクセス要求がある場合に、メモリ制御ユニットは、一又は複数のメモリのセルフリフレッシュを停止させ、一又は複数のメモリに対するパトロールを再開するようにしてもよい。
【０１４０】
このようにすれば、メモリが待機状態から復帰する場合に、自動的にパトロールを再開させることができる。
【０１４１】
また、一又は複数のメモリが論理ドメインに割り当てられていない場合に、メモリ制御ユニットは、一又は複数のメモリのセルフリフレッシュを開始させ、一又は複数のメモリが論理ドメインに割り当てられている場合に、メモリ制御ユニットは、一又は複数のメモリのセルフリフレッシュを停止させるようにしてもよい。
【０１４２】
このようにすれば、メモリが使用されない状況における消費電力を抑制することができる。
【０１４３】
一又は複数のメモリが論理ドメインに割り当てられている場合であっても、一又は複数のメモリへのアクセスの頻度が所定の閾値以下のときには、メモリ制御ユニットは、一又は複数のメモリのセルフリフレッシュを開始させるようにしてもよい。
【０１４４】
このようにすれば、メモリが実際に使用されていない状況における消費電力を抑制することができる。
【０１４５】
また、一又は複数のメモリが論理ドメインに割り当てられている場合であっても、一又は複数のメモリへのアクセスの頻度が所定の閾値以下のときには、メモリ制御ユニットは、一又は複数のメモリのセルフリフレッシュを開始させ、一又は複数のメモリに対するパトロールを継続して動作させるようにしてもよい。
【０１４６】
このようにすれば、メモリが実際に使用されていない状況における消費電力を抑制しつつ、待機状態から復帰したときにメモリに記憶されているデータを保証することができる。
【０１４７】
本実施の形態に係るメモリ制御ユニットは、メモリ制御ユニットに接続されているセルフリフレッシュ機能を備える一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを行うパトロール部と、メモリ制御ユニットに接続されている一又は複数のメモリのセルフリフレッシュを開始させた場合に、一又は複数のメモリに対するパトロールを停止し、一又は複数のメモリのセルフリフレッシュを停止させた場合に、一又は複数のメモリに対するパトロールを再開する制御部とを有する。
【０１４８】
このようにすれば、メモリがセルフリフレッシュを実行し、待機している状態におけるパトロールに伴う消費電力を削減することができる。
【０１４９】
また、上記制御部は、一又は複数のメモリへのアクセス要求がある場合に、一又は複数のメモリのセルフリフレッシュを停止させ、一又は複数のメモリに対するパトロールを再開するようにしてもよい。
【０１５０】
このようにすれば、メモリが待機状態から復帰する場合に、自動的にパトロールを再開させることができる。
【０１５１】
また、上記制御部は、一又は複数のメモリに接続されている一又は複数のメモリアクセス制御回路であってもよい。
【０１５２】
このようにすれば、回路によりセルフリフレッシュに連動させて、パトロールを制御することができる。
【０１５３】
また、上記制御部は、演算処理を行う演算部を有し、演算部は、一又は複数のメモリのセルフリフレッシュを開始させた場合に、一又は複数のメモリに対するパトロールを停止する処理と、一又は複数のメモリのセルフリフレッシュを停止させた場合に、一又は複数のメモリに対するパトロールを再開する処理とを実行させるための制御プログラムに従って処理を実行するようにしてもよい。
【０１５４】
このようにすれば、プログラムによりセルフリフレッシュに連動させて、パトロールを制御することができる。
【０１５５】
なお、上で述べたような処理をコンピュータ又はプロセッサに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばフラッシュメモリ、ＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１５６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５７】
（付記１）
セルフリフレッシュ機能を備える一又は複数のメモリと、
前記一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止し、前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開するメモリ制御ユニットと
を含む情報処理装置。
【０１５８】
（付記２）
前記一又は複数のメモリへのアクセス要求がある場合に、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを停止させ、前記一又は複数のメモリに対するパトロールを再開する
付記１記載の情報処理装置。
【０１５９】
（付記３）
前記一又は複数のメモリが論理ドメインに割り当てられていない場合に、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを開始させ、
前記一又は複数のメモリが論理ドメインに割り当てられている場合に、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを停止させる
付記１又は２記載の情報処理装置。
【０１６０】
（付記４）
前記一又は複数のメモリが論理ドメインに割り当てられている場合であっても、前記一又は複数のメモリへのアクセスの頻度が所定の閾値以下のときには、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを開始させる
付記３記載の情報処理装置。
【０１６１】
（付記５）
前記一又は複数のメモリが論理ドメインに割り当てられている場合であっても、前記一又は複数のメモリへのアクセスの頻度が所定の閾値以下のときには、前記メモリ制御ユニットは、前記一又は複数のメモリのセルフリフレッシュを開始させ、前記一又は複数のメモリに対するパトロールを継続して動作させる
付記３記載の情報処理装置。
【０１６２】
（付記６）
メモリ制御ユニットに接続されているセルフリフレッシュ機能を備える一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを行うパトロール部と、
メモリ制御ユニットに接続されている一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対するパトロールを停止し、前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する制御部と
を有するメモリ制御ユニット。
【０１６３】
（付記７）
前記制御部は、前記一又は複数のメモリへのアクセス要求がある場合に、前記一又は複数のメモリのセルフリフレッシュを停止させ、前記一又は複数のメモリに対するパトロールを再開する
付記６記載のメモリ制御ユニット。
【０１６４】
（付記８）
前記制御部は、前記一又は複数のメモリに接続されている一又は複数のメモリアクセス制御回路である
付記６記載のメモリ制御ユニット。
【０１６５】
（付記９）
前記制御部は、
演算処理を行う演算部を有し、
前記演算部は、前記一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対するパトロールを停止する処理と、前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する処理とを実行させるための制御プログラムに従って処理を実行する
付記６記載のメモリ制御ユニット。
【０１６６】
（付記１０）
セルフリフレッシュ機能を備える一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止する処理と
前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する処理と
を含む処理をメモリ制御ユニットの演算部により実行するメモリ制御方法。
【０１６７】
（付記１１）
セルフリフレッシュ機能を備える一又は複数のメモリのセルフリフレッシュを開始させた場合に、前記一又は複数のメモリに対する読み出しおよびエラー訂正を行うパトロールを停止する処理と、
前記一又は複数のメモリのセルフリフレッシュを停止させた場合に、前記一又は複数のメモリに対するパトロールを再開する処理と
をメモリ制御ユニットの演算部に実行させる制御プログラム。
【符号の説明】
【０１６８】
２０１  サーバ装置    ２０３  システムボード
２０５  スイッチ    ２０７  物理パーティション
３０１  ＣＰＵユニット    ３０３  メモリ
３０５  ＩＯポート    ３０７  ファーム用メモリ
４０１  ファーム層    ４０３  ハイパーバイザー
４０５  論理ドメイン    ４０７  オペレーティングシステム
４０９  アプリケーション    ５０１  コア
５０３  キャッシュユニット    ５０５  メモリアクセス制御回路
１１０１  コマンド制御部    １１０３  制御レジスタ
１１０５  パワーマネジメントレジスタ
１１０７  ＩＯ部    １１０９  データ制御部
１１１１  リクエストキュー    １１１３  パトロール部
１１１５  パトロールデータチェック部    １４０１  受付部
１４０３  第１モード制御部    １４０５  第２モード制御部
１４３１  第１初期化部    １４３３  第１判定部
１４３５  第１要求部    １４５１  第２初期化部
１４５３  第２判定部    １４５５  第２要求部
２００１  パトロールコントロールレジスタ
【図１】
2014048881.tif 000003
【図２】
2014048881.tif 000004
【図３】
2014048881.tif 000005
【図４】
2014048881.tif 000006
【図５】
2014048881.tif 000007
【図６】
2014048881.tif 000008
【図７】
2014048881.tif 000009
【図８】
2014048881.tif 000010
【図９】
2014048881.tif 000011
【図１０】
2014048881.tif 000012
【図１１】
2014048881.tif 000013
【図１２】
2014048881.tif 000014
【図１３】
2014048881.tif 000015
【図１４】
2014048881.tif 000016
【図１５】
2014048881.tif 000017
【図１６】
2014048881.tif 000018
【図１７】
2014048881.tif 000019
【図１８】
2014048881.tif 000020
【図１９】
2014048881.tif 000021
【図２０】
2014048881.tif 000022
【図２１】
2014048881.tif 000023
【図２２】
2014048881.tif 000024
【図２３】
2014048881.tif 000025
【図２４】
2014048881.tif 000026
【図２５Ａ】
2014048881.tif 000027
【図２５Ｂ】
2014048881.tif 000028
【図２６】
2014048881.tif 000029
【図２７Ａ】
2014048881.tif 000030
【図２７Ｂ】
2014048881.tif 000031
【図２８】
2014048881.tif 000032
【図２９】
2014048881.tif 000033
【図３０】
2014048881.tif 000034
【図３１】
2014048881.tif 000035
【図３２】
2014048881.tif 000036
【図３３】
2014048881.tif 000037
【図３４】
2014048881.tif 000038
【図３５】
2014048881.tif 000039