(57)【要約】手短に言えば、本発明の一実施例によって、可搬型通信装置が処理装置及び監視装置を有する。監視装置はソフトウェア処理の性能を、該処理が実行中に、監視する。該処理が非効率的に実行している場合、処理装置は可搬型通信装置の電力消費を変更し得る。
2005527875.tif 000002
【特許請求の範囲】
【請求項１】
方法であって：
装置の電力消費を、実行中処理が所定性能レベル以下で動作している場合、変更する工程；
を有することを特徴とする方法。
【請求項２】
請求項１記載の方法であって、前記装置の前記電力消費を変更する前記工程が前記実行中処理を強制排除する工程を含むことを特徴とする方法。
【請求項３】
請求項１記載の方法であって、前記装置の前記電力消費を変更する前記工程が：
前記実行中処理の動作を一時停止する工程；及び
第２処理を実行する工程；
を含むことを特徴とする方法。
【請求項４】
請求項１記載の方法であって、前記装置の前記電力消費を変更する前記工程が前記装置の該電力消費を低減する工程を含むことを特徴とする方法。
【請求項５】
請求項１記載の方法であって、前記装置の前記電力消費を変更する前記工程が前記装置の該電力消費を増加する工程を含むことを特徴とする方法。
【請求項６】
請求項１記載の方法であって、前記電力消費を変更する前記工程が前記装置の動作電圧を低減する工程を含むことを特徴とする方法。
【請求項７】
請求項１記載の方法であって、前記電力消費を変更する前記工程が前記装置のクロック速度を低減する工程を含むことを特徴とする方法。
【請求項８】
請求項１記載の方法であって、更に：
前記実行中処理を、該実行中処理が前記所定性能レベル未満で動作しているかを判定するよう、監視する工程；
を含むことを特徴とする方法。
【請求項９】
請求項８記載の方法であって、前記実行中処理を監視する前記工程が所定の性能関連イベントの発生の数をカウントする工程を含むことを特徴とする方法。
【請求項１０】
請求項９記載の方法であって、前記所定の性能関連イベントの発生の前記数をカウントする前記工程は、入力／出力（Ｉ／Ｏ）装置が前記実行中処理によってアクセスされる回数をカウントする工程を含むことを特徴とする方法。
【請求項１１】
請求項９記載の方法であって、監視する前記工程が更に：
前記所定の性能関連イベントの発生の前記数が発生の所定数よりも大きいかを判定する工程を含むことを特徴とする方法。
【請求項１２】
方法であって：
処理を、所定イベントが発生したかを判定するよう、該処理が実行している間に、監視する、該所定イベントが該処理の効率を示す、工程；及び
電圧電位を、該所定イベントの発生後に、低減する工程；
を有することを特徴とする方法。
【請求項１３】
請求項１２記載の方法であって、監視する前記工程が性能関連イベントの発生の数をカウントする工程を含むことを特徴とする方法。
【請求項１４】
請求項１３記載の方法であって、前記所定イベントは、前記性能関連イベントの発生の前記数が発生の所定最大数よりも大きい場合に、発生することを特徴とする方法。
【請求項１５】
請求項１３記載の方法であって、前記性能関連イベントがメモリ・アクセスであることを特徴とする方法。
【請求項１６】
請求項１２記載の方法であって、更に：
割り込み信号を、前記所定イベントの前記発生によって、生成する工程；
を有し、前記電圧電位が前記割り込み信号を生成した後に低減されることを特徴とする方法。
【請求項１７】
物品であって、記憶媒体を有し、該記憶媒体上に命令が記憶され、該命令が計算機プラットフォームによって実行された場合、装置の消費電力を、実行中処理が性能の所定レベル未満で動作している場合に、変更する工程を結果としてもたらすことを特徴とする物品。
【請求項１８】
請求項１７記載の物品であって、前記消費電力を変更する前記工程が前記装置の動作電圧を低減する工程を含むことを特徴とする物品。
【請求項１９】
請求項１７記載の物品であって、前記消費電力を変更する前記工程が前記装置のクロック速度を低減する工程を含むことを特徴とする物品。
【請求項２０】
可搬型通信装置であって：
スタティック・ランダム・アクセス・メモリ；
該スタティック・ランダム・アクセス・メモリに結合されて処理を実行するよう形成された処理装置；及び
前記処理を、該処理が実行している間に、監視するよう形成されて、該処理装置に、前記処理の効率を示す所定のイベントの発生によって、通知するよう形成された、監視装置；
を有し、前記処理装置が前記可搬型通信装置の前記電力消費を前記監視装置の前記通知に応じて低減することを特徴とする可搬型通信装置。
【請求項２１】
請求項２０記載の可搬型通信装置であって、前記処理装置がプロセッサ・コアであることを特徴とする可搬型通信装置。
【請求項２２】
請求項２０記載の可搬型通信装置であって、前記監視装置が性能監視装置（ＰＭＵ）であることを特徴とする可搬型通信装置。
【請求項２３】
請求項２０記載の可搬型通信装置であって、前記スタティック・ランダム・アクセス・メモリが前記処理を記憶するよう形成されたことを特徴とする可搬型通信装置。
【請求項２４】
請求項２０記載の可搬型通信装置であって、更に：
前記処理装置に結合された入出力（Ｉ／Ｏ）装置；
を有することを特徴とする可搬型通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理の性能を監視する方法及び装置に関するものである。
【背景技術】
【０００２】
今日では、コンピュータ及び携帯電話のような多くの電子装置が、該装置の動作を制御する命令を含む、ソフトウェアを用いる。これらの命令は時には、ソフトウェア・プログラム若しくはソフトウェア処理、又は、単にプログラム若しくは処理と呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
計算機装置内部で動作する処理の一部は該計算機装置の性能に逆効果をもたらし得る。そのような非効率的な／非生産的な処理の例に入出力（Ｉ／Ｏ）装置に対して多くのアクセスを行う処理がある。該処理が、該Ｉ／Ｏ装置が応答するのを待っている間に、遊休時間を費やす場合、これは、該処理が該装置のハードウェア・リソースを効率的に使用していないということで、計算機装置の性能に逆効果をもたらし得る。
【課題を解決するための手段】
【０００４】
したがって、電子装置においてソフトウェアを実行する改良方法に対するニーズが引き続き、存在する。
【発明を実施するための最良の形態】
【０００５】
本発明に関係する技術内容は、本明細書の末尾部分において、特に指摘して明白に主張している。本発明は、しかしながら、動作の構成と方法との両方、更には、その目的、特徴、及び効果については、以下の詳細説明及び添付図面を参照することによって、最もよく理解し得る。
【０００６】
以下の詳細説明においては、多くの特定の詳細を、本発明の徹底的な理解を設けるよう、示している。しかしながら、本発明をこれらの特定の詳細なしで実施し得ることが当業者にはわかる。他の例では、周知の方法、手続、部品及び回路は、本発明をわかりにくくすることのないよう、詳細には説明しないものとする。
【０００７】
本発明の実施例は本明細書及び特許請求の範囲における動作を行う装置を含み得る。この装置は、特に、所望された目的のために構築されたものか、又は、該装置に記憶されたプログラムによって選択的に駆動されたか再構成された汎用計算機装置を含み得る。そのようなプログラムは、フロッピー（登録商標）・ディスク、光ディスク、ＣＤ（コンパクト・ディスク）−ＲＯＭ（読み取り専用メモリ）、光磁気ディスク、読み取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、電子的プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電子的消去及びプログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、磁気又は光カード、又は如何なる、電子命令を記憶するのに適していて、かつ、計算機装置用システム・バスに結合され得る、他の類の媒体をも含むディスクの類のようなものであるが、それらに限定されない、記憶媒体上に記憶し得る。
【０００８】
本明細書及び特許請求の範囲に示した方法は如何なる特定の計算機装置又は他の装置にも本来関係しているものでない。種々の汎用システムを、本明細書及び特許請求の範囲における教示によるプログラムとともに用い得、所望された方法を行う更に専用の装置を構築するのに好都合であることがわかり得る。これらの種々のシステムに関して所望される構造は以下の説明から明らかになるものである。更に、本発明の実施例は如何なる特定のプログラミング言語によっても説明しない。種々のプログラミング言語を、本明細書及び特許請求の範囲に記載した本発明の教示を実施するのに、用い得ることがわかる。
【０００９】
本明細書及び特許請求の範囲の原文においては「ｃｏｕｐｌｅｄ」及び「ｃｏｎｎｅｃｔｅｄ」の語、更にその派生語、を用いていることがある。これらの語はお互いが同義語であることを企図するものでない。むしろ、特定の実施例においては、「ｃｏｎｎｅｃｔｅｄ」は２つ以上の要素が直接、物理的又は電気的にお互いに接触していることを示すのに用いられていることがある。「ｃｏｕｐｌｅｄ」は２つ以上の要素が直接、物理的又は電気的に接触していることを意味することがある。しかしながら、「ｃｏｕｐｌｅｄ」は更に、２つ以上の要素がお互いに直接接触しているわけではないが、それでもなお協調、すなわちお互いに相互作用、することを意味することがある。
【実施例】
【００１０】
次に図１では、本発明による実施例１００を説明する。実施例１００は計算機装置５０を含み得る。計算機装置５０は、例えば、移動通信装置（例えば、携帯電話）、双方向無線通信システム、単方向ページャ、双方向ページャ、パーソナル通信システム（ＰＣＳ）、可搬型コンピュータ、携帯情報端末（ＰＤＡ）、などのような、種々の可搬型通信システムにおいて用い得る。けれども、本発明の範囲及び応用分野は決してこれらの例に限定すべきでないことを特筆する。例えば、本発明を用い得る他の応用分野には、セルラ基地局又は映像機器におけるような、非可搬型電子アプリケーションがある。
【００１１】
この例においては、計算機装置５０はソフトウェア・プログラムを実行する処理装置１０、該プログラムを記憶するメモリ２０、処理装置１０に接続された入出力（Ｉ／Ｏ）装置３０、及び処理装置１０に接続された監視装置４０を含む。更に、電源６０が処理装置１０に接続されて、動作電圧、すなわち、例えば、ＶＤＤと呼ぶ電圧、のような動作電圧の電源、を設け得る。クロック７０は処理装置１０に接続されてＣＬＫと呼ぶ、クロック信号を設け得る。メモリ２０、Ｉ／Ｏ装置３０、監視装置４０、電源６０、及びクロック７０は処理装置１０に接続されているように表されているが、本発明の範囲はこれに限定されないものである。例えば、メモリ２０は処理装置１０に（図なしの）メモリ・コントローラ経由で結合され得る。
【００１２】
処理装置１０の動作速度は信号ＣＬＫの周波数を変更することによって修正し得る。処理装置１０の電力消費は動作電圧ＶＤＤを変更するか、信号ＣＬＫの周波数を変更することによって変更し得る。例えば、処理装置１０の電力消費は電圧ＶＤＤを低減するか、信号ＣＬＫの周波数を低減することによって低減され得る。
【００１３】
処理装置１０は、例えば、マイクロプロセッサ、ディジタル信号処理器、マイクロコントローラ、などを含み得る。処理装置１０は計算機装置５０の動作を制御するソフトウェアを実行するのに用い得る。更に、処理装置１０はＩ／Ｏ装置３０から受信されたデータを処理するプログラムを実行するのに用い得るが、本発明の範囲はこれに限定されないものである。
【００１４】
処理装置１０によって実行される命令はメモリ２０に記憶され得るが、本発明の範囲はこれに限定されないものである。メモリ２０は揮発性又は非揮発性メモリであり得るが、本発明の範囲はこれに限定されないものである。メモリ２０は例えば、フロッピー（登録商標）・ディスクを含むディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、ＲＯＭ、ダイナミックＲＡＭ（ＤＲＡＭ）又はスタティックＲＡＭ（ＳＲＡＭ）のようなＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、又は如何なる、電子命令を記憶するのに適した、他の類の媒体をも含み得る。
【００１５】
Ｉ／Ｏ装置３０は利用者からのデータを受信する、又は、利用者にデータを送信する、のに用い得る。Ｉ／Ｏ装置３０は、例えば、キーボード、ディスプレイ、又はプリンタを含み得るが、本発明の範囲はこれに限定されないものである。
【００１６】
監視装置４０は処理装置１０において実行中のソフトウェア処理の性能を監視するのに用い得る。本実施例においては、監視装置４０は処理装置１０において動作しているソフトウェア処理を、該処理が実行している間に、監視するよう、形成し得る。特に、監視装置４０は、処理が所定の性能の閾値レベル以下にあるかを判定するよう形成し得る。
【００１７】
処理装置１０及び監視装置４０は、別個の装置としてではなく、マイクロプロセッサ内部で実施し得る。例えば、処理装置１０は、マイクロプロセッサ内部で、プロセッサ・コアであり得て、監視装置４０は、性能監視装置（ＰＭＵ）であり得る。その代わりに、監視装置４０の機能はハードウェアではなくソフトウェアを用いて実施し得る。
【００１８】
次に図２によって、本発明の実施例による方法を設ける。本実施例はソフトウェア処理を実行することから開始し得る（ブロック２００）。該方法は図１の計算機装置１を用いることによって実行し得る。ソフトウェア処理は、ソフトウェア処理の実行を制御するオペレーティング・システムを利用し得る、処理装置１０を用いて実行し得る。その代わりに、処理装置１０は、オペレーティング・システムを利用することなく、ソフトウェア処理を直接実行し得る。
【００１９】
当該処理は実行中に、該処理が効率的に動作しているかを判定するよう監視し得る（ブロック２１０）。例として、監視装置４０（図１）は処理装置１０内部で動作している処理を監視するのに用い得る。ソフトウェア処理の効率性、すなわち、性能、はいくつかの方法によって定義及び判定し得る。例えば、ソフトウェア処理は、該処理が企図若しくは所望された効果を生まない、又は、時間、エネルギなどのような要因の点で不経済である場合、非効率的なものとして定義し得る。例えば、ソフトウェア処理の性能は該処理の実行中に計算機装置によって消費された電力によって測定し得る。別の例においては、処理がＩ／Ｏ装置又はメモリが応答するのを待つのに過度な時間量を費やす場合、これは計算機装置のリソースの非効率的使用として定義し得るが、これはクロック・サイクルが、別の生産的な命令を実行するよりもむしろ、待つのに費やされるからである。
【００２０】
ソフトウェア処理の性能は性能関連イベントの発生数を監視することによって判定し得る。性能関連イベントの例はメモリ関連プロセッサ機能停止、キャッシュ・ミス（例えば、命令及び／またはデータ）、コプロセッサの大量使用からの機能停止（例えば、浮動小数点演算）、Ｉ／Ｏ装置又はメモリが応答するのを待っている間にプロセッサが遊休状態にある時間量、などを含む。この性能関連イベントの一覧は網羅的なものでなく、本発明は、例えば、時間又はエネルギ、のような要因に関する性能を示す如何なる、イベント又はイベントの組み合わせ、をも監視するよう形成し得ることを特筆する。
【００２１】
例として、処理装置１０は、所定の性能関連イベントを探して、次に該所定のイベントが発生するかを処理装置１０に通知するよう、監視装置４０をプログラム化し得る。監視装置４０はメモリ関連プロセッサ機能停止を監視するようプログラム化されたＰＭＵであり得る。ＰＭＵはメモリ関連プロセッサ機能停止の数をカウントするカウンタを含み得る。処理を実行する前に、処理装置１０は、１０，０００超のメモリ関連プロセッサ機能停止がカウントされた場合、割り込みを送信するよう、監視装置４０をプログラム化し得る。この例においては、所定の性能の閾値レベル、すなわち、所定のイベント、は１０，０００のメモリ関連のプロセッサの機能停止である。３０，０００超のクロック・サイクル及び１０，０００超のメモリ関連プロセッサの機能停止が発生した場合、この情報から、処理装置１０内部のオペレーティング・システムは、該処理が「メモリを食う（ｍｅｍｏｒｙ  ｂｏｕｎｄ）」ことを判定し得る。該判定に応じて、オペレーティング・システムは該処理を終了又は一時停止して、該計算機装置の電力消費を低減するよう、低電力動作モードに入ることで、計算機装置５０の性能を向上させる。代替的実施例においては、性能関連イベントすなわち閾値レベルは最大Ｉ／Ｏアクセス数として定義し得る。監視装置４０は、閾値レベルに達したかを、Ｉ／Ｏ装置３０が現時に実行しているソフトウェアによってアクセスされる回数を合計することによって、検出又は特定し得る。Ｉ／Ｏアクセス数が所定のＩ／Ｏアクセス数を超えている場合、監視装置４０は処理装置１０に、割り込みを処理装置１０に送信することによって、通知し得る。該割り込みは、所定のイベントが発生したことを処理装置１０に通知する警告の役目を担い得る。
【００２２】
監視装置４０は、ソフトウェア処理を非介入的に監視するよう実施し得る。言い換えれば、該処理の実行を一時停止するよりも、監視装置４０はソフトウェア処理を該処理が実行中に監視するよう形成し得る。これを実行中の処理の監視と呼ぶ。実行中の処理は現時にランしている、すなわち、実行中の、処理のことである。実行中の処理を監視することを実現する１つの方法は、処理を直接監視するよりもむしろ、ソフトウェア処理の実行の結果を監視することがある。例えば、Ｉ／Ｏ装置３０がソフトウェアによってアクセスされる回数は、ソフトウェア又は処理装置１０を直接監視することによるよりもむしろ、Ｉ／Ｏ装置３０から直接取得し得る。代替的実施例においては、この情報は、処理装置１０とＩ／Ｏ装置３０との間のデータ・バス上のデータを監視することによって取得しえるが、本発明の範囲はこれに限定されないものとする。
【００２３】
監視装置４０は処理装置１０内で実行中のソフトウェア処理を、該処理が効率的に動作しているかを判定するよう、監視し得る（ブロック２２０）。ソフトウェア処理が効率的に動作していない場合、処理装置１０の電力消費を変更し得る（ブロック２３０）。処理装置１０の電力消費を変更することによって、計算機装置５０の性能を向上し得る。処理装置１０は計算機装置５０の構成部分なので、処理装置１０の電力消費を変更することによって計算機装置５０の電力消費も変更し得るが、本発明の範囲はこれに限定されないものであることがわかる。
【００２４】
図１に表す例においては、監視装置４０は（「イベント」と呼ぶ）性能関連イベント情報を評価する。監視装置４０が、ソフトウェア処理が所定の性能閾値レベル未満で動作していると判定する場合、監視装置４０は、処理装置１０において現時に実行中のソフトウェア処理を、（「割り込み」と呼ぶ）割り込み信号を送信することによって、強制排除し得る。
【００２５】
処理装置１０がオペレーティング・システムを利用する場合、オペレーティング・システムは、割り込みに応じて当該処理を終了又は一時停止し得る。オペレーティング・システムは、計算機装置５０を更に効率的に利用させるよう、例えば、計算機装置５０の電力消費を、増加するか、低減するか、の何れかによって、異なる処理を実行し得る。代替的実施例においては、監視装置４０からの割り込みに応じて、信号ＣＬＫの周波数を、計算機装置５０の電力消費を低減するよう減少させ得る。更に別の実施例においては、処理装置１０の動作電圧（ＶＤＤ）を監視装置４０からの割り込みに応じて低減し得る。更に、電力消費を変更する上記の方法の如何なる組み合わせをも監視装置４０からの割り込みに応じて利用し得る。例えば、信号ＣＬＫの動作電圧（ＶＤＤ）及び周波数の両方を監視装置４０からの割り込みに応じて低減し得る。本発明の範囲は、計算機装置５０の電力消費を変更するこれらの方法に限定されないものであることがわかる。電力消費を変更する他の方法は非効率的ソフトウェア処理の特定に応じて利用し得る。
【００２６】
可搬型電子アプリケーションにおいては、電池寿命を増加させるよう、電力消費を低減することが望ましいことかもしれない。したがって、ソフトウェア処理が電力消費に逆効果をもたらす場合、ソフトウェア処理を、該可搬型通信装置が（例えば、壁のコンセントにつながれた）安定電源に接続されるまで、一時停止及び遅延させ得る。これは、該処理に関係する電力を節約するのに望ましいかもしれず、該節約しなければ電池を消耗させてしまう。他のアプリケーションにおいては、ソフトウェア処理が企図された結果を生んでいない場合、電力消費を増加させることが望ましいことがある。例えば、処理が不十分な性能を表している場合、計算機システムのクロック・レートは、比較的短い時間量において当該処理を完了するよう増加させ得る。クロック・レートを増加させることによって、計算機システムの電力消費を増加させ得る。非効率的な処理を実行した後、計算機システムは低電力動作モードに入り得る。
【００２７】
本明細書及び特許請求の範囲においては本発明の特定の特徴を示して説明したが、多くの修正、置換、変更、及び同等物が次に当業者によって着想されるものである。したがって、本特許請求の範囲は、本発明の正確な真意の範囲内におさまる、そのような全ての修正及び変更を網羅することを企図するものであることがわかる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施例による、計算機装置の構成図である。
【図２】本発明の実施例による、処理を監視する方法の流れ図である。
【図１】
2005527875.tif 000003
【図２】
2005527875.tif 000004
【国際調査報告】
2005527875.tif 000005
2005527875.tif 000006
2005527875.tif 000007