(57)【特許請求の範囲】
【請求項１】
複数のメモリ領域に分割可能なメモリと、前記メモリ領域毎に電力の供給を制御する電力制御手段とを備えたコンピュータにおいて、
前記電力制御手段が、前記コンピュータで実行されるプログラムに対してメモリブロックが割り当てられたときにそのメモリブロックが属する前記メモリ領域に対応して装備されたカウンタを予め定められたカウンタ増減量だけ増加させる機能と、前記メモリブロックが開放されたときにそのメモリブロックが属する前記メモリ領域に対応する前記カウンタを前記カウンタ増減量だけ減少させる機能と、前記カウンタを参照し前記カウンタの値が予め定められたカウンタ閾値に等しい場合に参照したカウンタに対応する前記メモリ領域に対する電力供給を停止する機能とを備え、
前記プログラムが使用する前記メモリ領域が前記プログラム毎に予め定められていることを特徴としたコンピュータ。
【請求項２】
前記メモリはＤＲＡＭであり、
前記電力制御手段は、前記カウンタの値が前記カウンタ閾値よりも大きい場合に作動し当該カウンタに対応する前記メモリ領域へのアクセス頻度を予測する機能と、この機能によりアクセス頻度が小さいと判定されたメモリ領域をセルフリフレッシュ動作するように制御する機能を備えたことを特徴とした請求項１に記載のコンピュータ。
【請求項３】
前記メモリはＤＲＡＭであり、
前記電力制御手段は、前記カウンタの値が前記カウンタ閾値よりも大きい場合に動作し当該カウンタに対応する前記メモリ領域に属するメモリブロックを割り当てられた前記プログラムの動作状態を検出する機能と、この機能により前記プログラムがアイドル状態にあると判定された場合に、前記カウンタに対応するメモリ領域をセルフリフレッシュ動作するように制御する機能を備えたことを特徴とした請求項１に記載のコンピュータ。
【請求項４】
前記請求項１に記載のコンピュータを備え、バッテリーにより駆動される携帯端末装置。
【請求項５】
コンピュータに搭載され複数のメモリ領域に分割されたメモリの電力制御方法において、
前記コンピュータで実行されるプログラムが使用するメモリ領域を前記プログラム毎に割り当てる工程と、
前記コンピュータで実行されるプログラムに対してメモリブロックが割り当てられたときに作動し、前記割り当てたメモリブロックが属するメモリ領域に対応して装備されたカウンタを予め定められたカウンタ増減量だけ増加させる工程と、
前記メモリブロックが開放されたときに作動し、前記メモリブロックが属する前記メモリ領域に対応する前記カウンタを前記カウンタ増減量だけ減少させる工程と、
前記カウンタの値が予め定められたカウンタ閾値に等しい場合に作動し、当該カウンタに対応する前記メモリ領域に対する電力供給を停止させる工程とを備えたことを特徴としたメモリの電力制御方法。
【請求項６】
コンピュータに搭載され複数のメモリ領域に分割されたメモリの電力制御用プログラムにおいて、
前記コンピュータに、
前記コンピュータで実行されるプログラムが使用するメモリ領域を前記プログラム毎に割り当てる機能と、
前記コンピュータで実行されるプログラムに対してメモリブロックが割り当てられたときに作動し、前記割り当てたメモリブロックが属するメモリ領域に対応して装備されたカウンタを予め定められたカウンタ増減量だけ増加させる機能と、
前記メモリブロックが開放されたときに作動し、前記メモリブロックが属する前記メモリ領域に対応する前記カウンタを前記カウンタ増減量だけ減少させる機能と、
前記カウンタの値が予め定められたカウンタ閾値に等しい場合に作動し、当該カウンタに対応する前記メモリ領域に対する電力供給を停止させる機能とを実行させることを特徴としたメモリの電力制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのメモリの電力制御技術に関し、特にメモリを複数の領域に分割し領域毎に電力制御をする技術に関する。
【背景技術】
【０００２】
コンピュータのメモリ（主記憶装置）の電力制御に関する技術は、種々提案されている。
例えば、特許文献１には、複数のバンクに分割されたメモリの電源管理技術が開示されている。この技術では、メモリの割り当ておよび開放が行われる際に、メモリ管理部が割当済みメモリ領域テーブルと未割り当てメモリ領域テーブルを参照し、割り当て済みのブロックを一つも含んでいないバンクの電源を遮断等する構成を採っている。
【０００３】
【特許文献１】特開平９−２１２４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来の技術では、メモリ領域テーブル全体を検索することにより電源供給を遮断するバンクを選択しているので、電源管理のための計算量が多くなるという問題があった。
そこで、本発明は、少ない計算量で電力制御の対象となるメモリ領域を選択し電力制御を行うことができるコンピュータ等を提供することをその目的とする。
【課題を解決するための手段】
【０００５】
本発明のコンピュータでは、電力制御手段が、プログラムにメモリブロックが割り当てられる際にそのメモリブロックが属するメモリ領域に対応するカウンタを所定のカウンタ増減量（例えば１）だけ増加させ、割り当てられたメモリブロックが開放される際には開放されるメモリブロックが属するメモリ領域に対応するカウンタをカウンタ増減量だけ減少させる。電力制御手段は、カウンタの値がカウンタ閾値（例えば０）に等しい場合に、そのカウンタに対応するメモリ領域への電力供給を停止させる（請求項１ないし請求項４）。
【０００６】
上記コンピュータによれば、電力制御手段は、カウンタの値とカウンタ閾値を比較するという単純な演算を行うだけで、カウンタに対応するメモリ領域に割当済みのメモリブロックがあるか否か判定することができる。そのため、少ない計算量で電力供給を停止すべきメモリ領域を選択し、メモリの電力制御をすることができる。
【０００７】
また、上記コンピュータにおいて、各プログラムが使用するメモリ領域をプログラム毎に予め定めておくようにする（請求項１）。
このようにすれば、複数のメモリ領域を計画的に使用することができ、電力供給を停止することができるメモリ領域をふやすことができる。
【０００８】
上記コンピュータにおいて、メモリをＤＲＡＭ(Dynamic Random Access Memory)とし、電力制御手段は、カウンタの値がカウンタ閾値よりも大きい場合に、当該カウンタに対応するメモリ領域へのアクセス頻度を予測し、アクセス頻度が小さいと判定されたメモリ領域をセルフリフレッシュ動作させるようにしてもよい（請求項２）。
このようにすれば、あるメモリ領域に割当済みのメモリブロックがある場合でも、そのメモリ領域へのアクセス頻度が小さいと予測される場合は、メモリ領域をセルフリフレッシュ動作させて消費電力を削減することができる。
【０００９】
上記コンピュータにおいて、メモリをＤＲＡＭとし、カウンタの値がカウンタ閾値よりも大きい場合は、そのカウンタに対応するメモリ領域に属するメモリブロックを割り当てられているプログラムがアイドル状態にあるか否かを判定し、アイドル状態にある場合にはメモリ領域をセルフリフレッシュ動作させるようにしてもよい（請求項３）。
このようにすれば、あるメモリ領域に属するメモリブロックを割り当てられているプログラムがある場合にも、そのプログラムがアイドル状態にある場合は、メモリ領域をリフレッシュ動作させて消費電力を削減することができる。
【００１０】
本発明の携帯端末装置は、バッテリーにより駆動されると共に請求項１に記載のコンピュータを備えている（請求項４）。
【００１１】
上記携帯端末装置によれば、少ない計算量で電力供給を停止すべきメモリ領域を選択し、メモリの電力制御をすることができる。そのため、メモリの消費電力を削減し、バッテリーが消耗するまでの駆動時間を伸ばすことができる。
【００１２】
本発明の電力制御方法は、コンピュータで実行されるプログラムが使用するメモリ領域を前記プログラム毎に割り当てる工程と、コンピュータで実行されるプログラムに対してメモリブロックが割り当てられたときに作動し、割り当てたメモリブロックが属するメモリ領域に対応するカウンタを予め定められたカウンタ増減量だけ増加させる工程と、メモリブロックが開放されたときに作動し、前記メモリブロックが属する前記メモリ領域に対応するカウンタをカウンタ増減量だけ減少させる工程と、カウンタの値が予め定められたカウンタ閾値に等しい場合に作動し、当該カウンタに対応するメモリ領域に対する電力供給を停止させる工程とを備えている（請求項５）。
【００１３】
上記電力制御方法によれば、カウンタの値とカウンタ閾値を比較するだけで、未使用のメモリ領域を判定することができる。そのため、少ない計算量で電力供給を停止すべきメモリ領域を選択し、メモリの電力制御をすることができる。
【００１４】
本発明の電力制御プログラムは、コンピュータに、前記コンピュータで実行されるプログラムが使用するメモリ領域を前記プログラム毎に割り当てる機能と、このコンピュータで実行されるプログラムに対してメモリブロックが割り当てられたときに作動し、割り当てたメモリブロックが属するメモリ領域に対応するカウンタを予め定められたカウンタ増減量だけ増加させる機能と、メモリブロックが開放されたときに作動し、メモリブロックが属するメモリ領域に対応するカウンタをカウンタ増減量だけ減少させる機能と、カウンタの値が予め定められたカウンタ閾値に等しい場合に作動し、当該カウンタに対応する前記メモリ領域に対する電力供給を停止させる機能とを実行させる（請求項６）。
【００１５】
上記電力制御プログラムをコンピュータに実行させれば、コンピュータは、カウンタの値とカウンタ閾値を比較するだけで、未使用のメモリ領域を判定することができる。そのため、少ない計算量で電力供給を停止すべきメモリ領域を選択し、メモリの電力制御をすることができる。
【発明の効果】
【００１６】
本発明によれば、電力制御手段は、カウンタの値とカウンタ閾値を比較するだけで、未使用のメモリ領域を判定することができる。そのため、少ない計算量で電力供給を停止すべきメモリ領域を選択し、メモリの電力制御をすることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図を参照しながら本発明の一実施形態である携帯端末装置１１の構成と動作について説明する。
（携帯端末装置１１のハードウェア構成）
図１は、携帯端末装置１１の構成を示す機能ブロック図である。
携帯端末１１は、たとえば携帯電話機、ＰＨＳ(Personal Handyphone
System)、ＰＤＡ(Personal Data AssistanceまたはPersonal Digital Assistants：個人向け携帯型情報通信機器)等のユーザが携行可能な端末装置であり、ＣＰＵ（Central Processing Unit：中央処理装置）１８とディスプレイ（出力装置）１９とメモリ（主記憶装置）２０とを備えている。すなわち、携帯端末装置１１は、コンピュータを備えている。
メモリ２０は、たとえばＤＲＡＭであり、メモリ領域２０ａとメモリ領域２０ｂに分割されており、メモリ領域毎に電源制御が可能である。メモリ領域の分割は、たとえば、バンクまたはモジュールを単位とすることができる。また、メモリ２０はセルフリフレッシュ動作をすることが可能である。
各ハードウェアは後述するオペレーティングシステム層にある各ドライバにより制御される。また、各ハードウェアには、図示しないバッテリーから電力が供給されている。
【００１８】
（携帯端末装置１１のソフトウェア構成）
次に、携帯端末１１のソフトウェア構成は、アプリケーション層２１とサービス層２２とオペレーティングシステム層２３にて構成される。これらの各層に配置されたプログラムは、メモリ２０にロードされ、ＣＰＵ１８がメモリ２０から読み出して実行する。
アプリケーション層２１には、ユーザが実装したプログラムが置かれる。ここではユーザが実装したアプリケーション１４があり、アプリケーション１４の動作には前述したメモリ領域２０ｂを使用する。
サービス（ミドル）層２２には、一般的なサービスである通信やマルチメディア等のサービスを提供するプログラムが置かれる。ここではサービス１５とサービス１６が置かれている。
オペレーティングシステム層２３は、オペレーティングシステムのコア機能を提供するカーネル２４とハードウェアの動作を制御するドライバ層２５にて構成される。ここでは、オペレーティングシステムとしてリナックス（Ｌｉｎｕｘ）を使用する。またドライバ層２５にはユーザが実装したドライバ２６があり、ドライバ２６の動作には前述したメモリ領域２０ｂを使用する。カーネル２４の動作にはメモリ領域２０ａを使用する。
本実施形態では、オペレーティングシステム以外のソフトウェアが使用するメモリ領域２０ｂが電力制御の対象となっている。
【００１９】
図２は、携帯端末装置１１におけるオペレーティングシステムのコア機能を提供するカーネル２４とアプリケーション１４とドライバ２６とについての詳細な関係を示す説明図である。
携帯端末装置１１では図２に示すように、オペレーティングシステムのコア機能を提供するカーネル２４に、分割する各々のメモリ領域に対し使用状態を管理する機能と、割り当て領域を制御する機能と、電力の供給を制御する機能とを備えたパーシャルパワーダウンモジュール（電力制御手段）３２が実装されている。
またカーネル２４には、ドライバ２６用のインターフェイスとして割り当て用内部関数３５と開放用の内部関数３６、アプリケーション用のインターフェイスとして割り当て用システムコール３５と開放用システムコール３６とが内装されている。オペレーティングシステムとしては、たとえばＬｉｎｕｘを用い、メモリブロックの割り当て・開放用のインターフェイスとしては、たとえば、割り当て用内部関数３５にはアイオーリマップ（ioremap）を、開放用内部関数３６にはアイオーアンマップ（iounmap）を、割り当て用システムコール３３にはメモリマップ（mmap）を、開放用システムコール３４にはメモリアンマップ（munmap）を使用することができる。
【００２０】
割り当て用内部関数３５は、ドライバ２６からのメモリ割り当て要求を受け付けてパーシャルパワーダウンモジュール３２に通知する。開放用内部関数３６は、ドライバ２６からのメモリ開放要求を受け付けてパーシャルパワーダウンモジュール３２に通知する。
割り当て用システムコール３３は、アプリケーション１４からのメモリ割り当て要求を受け付けてパーシャルパワーダウンモジュール３２に通知する。開放用システムコール３４は、アプリケーション１４からのメモリ開放要求を受け付けてパーシャルパワーダウンモジュール３２に通知する。
パーシャルパワーダウンモジュール３２は、カウンタ３７を備えていて、割り当て用システムコール３３または割り当て用内部関数３５を介して、アプリケーション１４またはドライバ２６からメモリブロックの割り当て要求を受け取ったときに、カウンタ３７をカウンタ増減量だけ増加させる。また、パーシャルパワーダウンモジュール３２は、開放用システムコール３４または開放用内部関数３６を介して、アプリケーション１４またはドライバ２６からメモリブロックの開放要求を受け取ったときに、カウンタ３７をカウンタ増減量だけ減少させる。
【００２１】
パーシャルパワーダウンモジュール３２は、カウンタ３７の値がカウンタ閾値に等しい場合、すなわちメモリ領域２０ｂに割当済みのメモリブロックが存在していない場合に、メモリ２０を制御し、メモリ領域２０ｂへの電源供給を停止する。
パーシャルパワーダウンモジュール３２は、カウンタ３７の値がカウンタ閾値より大きい場合、すなわちメモリ領域２０ｂに割当済みのメモリブロックが存在する場合には、割当済みのメモリブロックへのアクセス頻度を予測する。そして、アクセス頻度が低いと予想される場合、例えば、メモリブロックを割り当てられているプログラムがアイドル状態になっている場合には、メモリ２０を制御しメモリブロック２０ｂをセルフリフレッシュ動作させる。
【００２２】
（携帯端末装置１１の動作）
図３は、図２のパーシャルパワーダウンモジュール３２が図１のメモリ領域２０ｂに属するメモリブロックをプログラムに割り当てるときの動作を示すタイムチャートである。なお、カウンタ３７は、携帯端末装置１１の電源が投入されたときに０（カウンタ閾値）に初期化されているものとする。
アプリケーション１４より割り当て用システムコール３３が呼ばれるか、ドライバ２６より割り当て用内部関数３６が呼ばれた時（Ｓ１０１）、パーシャルパワーダウンモジュール３２は、適切なメモリの割り当て領域を選択する。本実施例ではメモリ領域２０ｂが選択される。
その後、パーシャルパワーダウンモジュール３２は、メモリ領域２０ｂの電源が入っているかを確認し（Ｓ１０２）、電源が落ちていれば電源を入れる（Ｓ１０３）。次にパーシャルパワーダウンモジュール３２は、選択したメモリの領域２０ｂに対しメモリの割り当てが可能であるかをチェックし（Ｓ１０４）、メモリの割り当てが可能であると判断するとカウンタ３７を１（カウンタ増減量）アップし（Ｓ１０５）、アプリケーション１４又はドライバ２６より指定されたメモリを確保する（Ｓ１０６）。その際、パーシャルパワーダウンモジュール３２が、割り当てたメモリブロックのアドレスとサイズ等の必要な情報を保持する。
また、選択したメモリ領域２０ｂに割り当て可能な領域がない場合（Ｓ１０４の判定がノーの場合）はエラー処理を行いメモリの割り当て動作を終了する（Ｓ１０７）。
【００２３】
図４は、図２のパーシャルパワーダウンモジュール３２が図１のメモリの領域２０ｂのメモリブロックを開放するときの動作を示すタイムチャートである。
アプリケーション１４より開放用システムコール３４が呼ばれるか、ドライバ２６より開放用内部関数３６が呼ばれた時（Ｓ１１１）、パーシャルパワーダウンモジュール３２は、該当するメモリ領域に、指定されたメモリブロックが確保されている場合は、カウンタを１（カウンタ増減量）ダウンし（Ｓ１１３）、割り当てられているメモリブロックを開放する（Ｓ１１４)。また、該当するメモリ領域に開放が要求された割当済みのメモリブロックがない場合はエラーを返して終了する（Ｓ１１５）。
【００２４】
図５は、図２のパーシャルパワーダウンモジュール３２が図１のメモリ領域２０ｂの電源制御を行うときの動作を示すタイムチャートである。
図４で示したメモリの開放処理の後又はアプリケーション１４及びドライバ２６のプロセスがアイドル状態に移行する場合は、パーシャルパワーダウンモジュール３２は、該当するメモリ領域２０ｂの電源が落ちているかを確認し（Ｓ１２１）、電源が落ちていた場合には何もしない。
電源が落ちていない場合は、パーシャルパワーダウンモジュール３２は、メモリ領域２０ｂが使用されているか否かの判定をカウンタ３７の値とカウンタ閾値を比較することにより行う（Ｓ１３１）。カウンタ３７の値が０（カウンタ閾値）である場合は、該当するメモリ領域２０ｂは未使用状態であると判断し、メモリの領域２０ｂの電源をおとす（Ｓ１３２）。
【００２５】
カウンタが０でない場合でかつメモリの領域２０ｂへのアクセスが長時間ないと予測される場合（Ｓ１３１とＳ１３３の判定が共にイエスの場合）は、たとえばメモリ領域２０ｂがセルフリフレッシュ動作をするように制御して消費電力をデータを保持できる電力に落とす（Ｓ１３４）。カウンタ３７の値が０でなくかつメモリの領域２０ｂへのアクセスが長時間ないとは予測されない場合（Ｓ１３３の判定がノーの場合）は、特に何も行わない。
なお、開放用システムコール３４又は開放用内部関数３６によりメモリ領域の開放を行い電源を落とした後のメモリ領域の内容については保障しない。
【００２６】
以上の説明では、メモリ２０は、メモリ領域２０ａとメモリ領域２０ｂの二つの領域に分割されているものとしたが、メモリの分割数は図６に示すように３以上とすることもできる。
メモリ２０は、メモリ領域２０ａ、２０ｂ、２０ｃ、２０ｄの４つのメモリ領域に分割されている。電源制御の対象となるメモリ領域２０ｂ、２０ｃ、２０ｄは、それぞれスイッチ４０ｂ、４０ｃ、４０ｄを介して電源線４１に接続されている。
パーシャルパワーダウンモジュール３２は、メモリ領域２０ｂ、２０ｃ、２０ｄにそれぞれ対応するカウンタ３７ｂ、３７ｃ、３７ｄを備えていて、上記に説明したカウンタ３７を用いる場合と同様にしてメモリ領域毎にメモリの使用状況を管理している。
【００２７】
また、オペレーティングシステムが使用するメモリ領域を予め定めておかないで、オペレーティングシステムも任意のメモリ領域を使用するようにすることもできる。この場合は、全てのメモリ領域についてカウンタを設け、上記と同様にして各メモリ領域の電力制御を行う。
【００２８】
本実施形態の携帯端末装置１１は、次のような優れた効果を奏する。
パーシャルパワーダウンモジュール３２は、メモリブロックの割り当てが行われるときにカウンタ３７をアップし、メモリブロックの開放がおこなわれるときにカウンタ３７をダウンする。そして、カウンタが０（カウンタ閾値）に等しいときに、メモリ領域２０ｂに対する電源の供給を停止する等の電力制御をする。
そのため、少ない計算量でメモリ領域２０ｂに割当済みのメモリブロックがあるか否かを判断し、メモリ２０の電力制御を行い、バッテリーにより駆動可能な時間を長くすることができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態である携帯端末装置の構成を示すブロック図である。
【図２】携帯端末装置のソフトウェア構成を示すブロック図である。
【図３】携帯端末装置のメモリ割り当て動作を示すタイムチャートである。
【図４】携帯端末装置のメモリ開放動作を示すタイムチャートである。
【図５】携帯端末装置の電力制御動作を示すタイムチャートである。
【図６】複数のカウンタを備えたパーシャルパワーダウンモジュールの構成を示す図である。
【符号の説明】
【００３０】
１１  携帯端末装置
１８  ＣＰＵ
１９  ディスプレイ
２０  メモリ
２０ａ、２０ｂ  メモリ領域
３２  パーシャルパワーダウンモジュール（電力制御手段）
３７  カウンタ
【図１】
0004839749.tif 000002
【図２】
0004839749.tif 000003
【図３】
0004839749.tif 000004
【図４】
0004839749.tif 000005
【図５】
0004839749.tif 000006
【図６】
0004839749.tif 000007