"CPUと、アクセラレータと、前記CPUが第1処理を完了するまでの第1処理時間と前記アクセラレータが前記第1処理を完了するまでの第2処理時間とに基づく第1値と、前記CPUおよび前記アクセラレータを駆動するバッテリの使用状態に基づく第2値とを比較する比較ユニットと、前記比較ユニットの比較結果に基づいて、前記CPUまたは前記アクセラレータのいずれかを選択する選択ユニットと、を含むことを特徴とするシステム。前記第1処理時間、前記第2処理時間、前記第1値、および前記第2値を算出する算出ユニットを含むことを特徴とする請求項1に記載のシステム。前記第1値は、前記第1処理時間と、前記CPUが前記第1処理を完了する第1終了時刻と、前記CPUが前記第1処理を実行するときの第1消費電力と、前記第2処理時間と、前記アクセラレータが前記第1処理を完了する第2終了時刻と、前記アクセラレータが前記第1処理を実行するときの第2消費電力とに基づいて、算出されることを特徴とする請求項1または2に記載のシステム。前記第1処理時間と前記第2処理時間とを記録するメモリを含むことを特徴とする請求項1~3のいずれか一つに記載のシステム。前記選択ユニットは、前記第1値が第2値よりも大きいときに前記CPUを選択し、前記第1値が前記第2値よりも小さいときに前記アクセラレータを選択することを特徴とする請求項1~4のいずれか一つに記載のシステム。前記CPUの負荷を監視する監視ユニットを含み、前記監視ユニットは、前記負荷に変動があるときは、前記選択ユニットに対し、前記CPUおよび前記アクセラレータの選択の見直しを指示することを特徴とする請求項1~5のいずれか一つに記載のシステム。前記監視ユニットが前記負荷の増加を検出したとき、前記選択ユニットは、前記第1値が前記第2値よりも小さければ前記CPUが実行する前記第1処理をキャンセルさせることを特徴とする請求項6に記載のシステム。前記バッテリの使用状態を取得する取得部を備え、当該取得部は、前記バッテリの残量、および当該バッテリ残量に関わる機器の使用状態を取得し、前記比較ユニットに前記第2値の算出用の情報として出力することを特徴とする請求項1~7のいずれか一つに記載のシステム。CPUとアクセラレータを備え、バッテリ駆動されるシステムにおけるスケジューリング方法であって、前記CPUが第1処理を完了するまでの第1処理時間と、前記アクセラレータが前記第1処理を完了するまでの第2処理時間とをメモリから読み出し、前記第1処理時間と前記第2処理時間とに基づいて第1値を計算し、前記バッテリ残量に基づいて第2値を計算し、前記第1値と前記第2値を比較し、比較結果に基づいて、前記CPUまたは前記アクセラレータのいずれかを選択し、選択された前記CPUまたは前記アクセラレータに前記第1処理を割り当てることを特徴とするスケジューリング方法。前記第1処理の処理要求に基づいて当該第1処理の開始時刻を取得し、前記第1処理の開始時刻に基づいて、前記CPUが前記第1処理を完了する第1終了時刻と前記アクセラレータが前記第1処理を完了する第2終了時刻と算出し、前記第1終了時刻と前記第2終了時刻とに基づいて前記第1値を計算することを特徴とする請求項9に記載のスケジューリング方法。前記CPUが前記第1処理を実行するときの第1消費電力と前記アクセラレータが前記第1処理を実行するときの第2消費電力とを前記メモリから読み出し、前記第1消費電力と前記第2消費電力とに基づいて前記第1値を算出することを特徴とする請求項9または10に記載のスケジューリング方法。前記第1値が第2値よりも大きいときに前記CPUを選択し、前記第1値が前記第2値よりも小さいときに前記アクセラレータを選択することを特徴とする請求項9~11のいずれか一つに記載のスケジューリング方法。前記CPUの負荷を監視し、前記負荷に変動があるときは、前記第1処理の開始時刻を取得して、前記CPUが第1処理を完了する新たな第1終了時刻と前記アクセラレータが前記第1処理を完了する新たな第2終了時刻と算出し、前記新たな第1終了時刻と前記新たな第2終了時刻に基づいて前記第1値を計算することを特徴とする請求項9~12のいずれか一つに記載のスケジューリング方法。処理時間の観点でみれば、アクセラレータが混んでいる場合に一部をプロセッサでおこなった方が効率が良いこともあるが、消費電力の観点でみれば、アクセラレータで実行可能な処理は全てアクセラレータでおこなった方が消費電力量は少なくなる。このため、必要な処理時間性能と、消費電力との兼ね合いトレードオフを考慮して最適な動作点を決定する必要があるが、従来はこれをおこなうことができなかった。たとえば、携帯電話端末のようなバッテリで動作する携帯端末の場合、この最適な動作点はバッテリの残量等の状況により常に変化する。携帯端末での使用を想定すると、バッテリ残量が豊富にある場合には、消費電力が増えたとしても性能を優先する処理で良い。しかし、バッテリ残量が少なくなってきた場合には、携帯端末のバッテリを充電するまでの間は、バッテリでの駆動が持続できるように消費電力は極力抑えたい状況となる。上記従来の特許文献1の技術では、性能しか指標として利用できず、また、特許文献2の技術では、固定の指標を前提としているため、携帯端末のようにバッテリ残量に応じて最適な動作点が動的に変化する機器には適用できない。開示のシステムおよびスケジューリング方法は、上述した問題点を解消するものであり、CPUとアクセラレータで処理した際の処理速度と消費電力を推定して実行先を決定し、処理効率と低消費電力化を両立することを目的とする。上述した課題を解決し、目的を達成するため、開示技術は、CPUと、アクセラレータとを備え、実行先決定部により処理第1処理をCPUあるいはアクセラレータのいずれでおこなうかを決定し実行させる。この実行先決定部は、CPUが第1処理を完了するまでの第1処理時間とアクセラレータが第1処理を完了するまでの第2処理時間とに基づく第1値と、バッテリ残量に基づく第2値とを比較する指標値比較部と、指標値比較部の比較結果に基づいて、CPUまたはアクセラレータのいずれかを選択する割り付け先決定部と、を含む。開示のシステムおよびスケジューリング方法によれば、CPUとアクセラレータで処理した際の処理速度と消費電力を推定して実行先を決定し、処理効率と低消費電力化を両立できるという効果を奏する。以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。実施の形態開示のシステムは、データ処理の汎用性が高く消費電力が大きいプロセッサCPUと、汎用性が低いがCPUよりも特定の処理の処理速度が早く、消費電力が小さいハードウェアアクセラレータとを備えたシステムである。そして、これらCPUとアクセラレータの処理性能に関する電力性能指標値第1値と、システムを駆動するバッテリの消費状態等に関する消費電力優先指標値第2値とをあらかじめ求めておくことにより、これからおこなおうとする処理をCPUあるいはアクセラレータのいずれの処理先で実行させるかを選択する。これにより、システムが搭載された機器がたとえばバッテリ駆動される場合において、バッテリ残量の変化に対応した処理先を適切に選択でき、処理効率と低消費電力化を両立させる。以下、システムが、バッテリで動作する携帯端末に搭載された例を用いて説明する。システムの構成例図1は、実施の形態にかかるシステムの構成例を示すブロック図である。開示のシステム100は、CPU101と、CPU101を介して利用可能なアクセラレータACC102と、メモリ103と、ROM104と、現在時刻を計時するタイマ105と、バッテリ管理部106と、これらCPU101~バッテリ管理部106を接続するバスBUS107とを含む。ROM104には、CPU101およびアクセラレータ102別の処理時間と消費電力の情報等が記録される。CPU101は、オペレーティングシステムOS110によりアプリケーションの処理の実行を制御する。アプリケーションの実行先は、OS110によりCPU101あるいはアクセラレータ102が指定される。CPU101が実行先として決定されたときには、図中Aの経路でCPU用実行コードがCPU101に出力される。アクセラレータ102が実行先として決定されたときには図中Bの経路でCPU101を経由し、アクセラレータ102にアクセラレータ用実行コードが出力される。図2は、オペレーティングシステムの内部構成例を示すブロック図である。OS110は、実行先決定部111と、プロセス管理部113と、を含む。実行先決定部111は、アプリケーションの処理の実行先をCPU101、あるいはアクセラレータ102のいずれかに決定する。プロセス管理部113は、アプリケーション実行時のプロセスおよびプロセスのスレッドを管理する。また、稼働スレッド数を実行先決定部111の稼働スレッド数取得部122に通知し、稼働スレッド数の増減毎に通知する。このプロセス管理部113は、CPU101の処理の負荷を監視する監視ユニットとして機能する。より詳細に説明すると、実行先決定部111は、処理要求受付部121と、稼働スレッド数取得部122と、キュー管理部123と、ROM情報取得部124と、処理スレッド管理部125と、指標値処理部126と、端末状態取得部127と、アクセラレータ管理部128と、割り付け先決定部選択ユニット129と、を含む。指標値処理部126は、電力性能指標値第1値と消費電力優先指標値第2値とを算出する指標値算出部算出ユニット126aと、電力性能指標値第1値と消費電力優先指標値第2値とを比較する指標値比較部比較ユニット126bとを含む。処理要求受付部121は、実行するアプリケーションのスレッドからの処理要求追加、もしくは負荷増減の通知を受け取って実行先決定部111による処理を開始させる。稼働スレッド数取得部122は、プロセス管理部113から現在稼働しているスレッド数を取得する。キュー管理部123は、アクセラレータ102の実行キューへの処理要求の追加削除、およびキューイングされている処理要求情報の取得をおこなう。ROM情報取得部124は、ROM104に記録された処理時間や消費電力の情報を取得する。処理スレッド管理部125は、処理要求をCPU101で実行する場合における処理スレッドの起動、処理割り当て、終了検出、キャンセル、残り処理時間の取得などをおこなう。指標値処理部126は、アプリケーションの実行先を決定するために必要な指標である電力性能指標値と消費電力優先指標値を算出する。端末状態取得部127は、バッテリ管理部106からバッテリ残量を取得する。そのほか、携帯端末の使用状態使用の有無に応じて開閉する蓋の開閉状態、電源への接続状態の有無などを携帯端末に設けられた検出部不図示から取得する。アクセラレータ管理部128は、キュー先頭の処理要求のアクセラレータへの割り当て、およびアクセラレータでの処理の終了検出などのアクセラレータでおこなう処理を管理する。割り付け先決定部129は、処理要求をCPU101で実行するかアクセラレータ102で実行するかを決定する。アプリケーションの実行先の決定の概要ここで、実行先決定部111によるアプリケーションの実行先をCPU101、あるいはアクセラレータ102のいずれに決定するかの概要について説明する。図3は、実行先別の終了時刻を説明するための図である。実行先決定部111は、アプリケーションの一つの処理第1処理をCPU101でおこなった場合の処理の終了時刻と、アクセラレータ102でおこなった場合の処理の終了時刻と、をそれぞれ推定する。そして、第1処理をCPU101でおこなった場合の処理時間第1処理時間と、第1処理をアクセラレータ102でおこなった場合の処理時間第2処理時間とをそれぞれ算出する。そして、これら第1処理時間と第2処理時間から、第1処理時間と第2処理時間それぞれの終了時刻の差を比較する。この際、第1処理時間によって必要なCPU101の処理にかかる消費電力第1消費電力と、第2処理時間によって必要なアクセラレータ102の処理にかかる消費電力第2消費電力の差を求め、この差により電力性能指標値を求める。実行先決定部111割り付け先決定部129は、この電力性能指標値と、端末状態取得部127により取得したバッテリ残量等の携帯端末の電力消費に関する消費電力優先指標値により、上記第1処理をCPU101、あるいはアクセラレータ102のいずれでおこなうかを選択し、処理の実行先を割り当てる。消費電力優先指標値は、実行先決定のために電力性能指標値と比較するための閾値として用いられる。図3にはCPU101とアクセラレータACC102でおこなった場合のスレッド単位の処理時間をケース別に図示してある。ケース1では、アクセラレータ102には4つのスレッド301があり、第4スレッドをCPU101で実行させようとした場合であるが、この第4スレッドをCPU101で実行すると、CPU101での終了時刻t1は、アクセラレータ102で実行した場合の終了時刻t2より遅くなる。この場合、電力性能指標値はマイナスとする。すなわち、全てのスレッドをアクセラレータ102で実行した方が早く処理が終わる。ケース2では、アクセラレータ102には9つのスレッド301があり、第9スレッドをCPU101で実行させようとした場合であるが、この第9スレッドをCPU101で実行したときのCPU101での終了時刻t1は、アクセラレータ102で実行した場合の終了時刻t2よりやや早い。この場合、電力性能指標値は小とする。すなわち、性能優先であれば、CPU101を実行先とするが、消費電力を考えるとアクセラレータ102で実行した方が良い。ケース3では、アクセラレータ102には多数nのスレッド301があり、第nスレッドをCPU101で実行させようとした場合であるが、この第nスレッドをCPU101で実行したときのCPU101での終了時刻t1は、アクセラレータ102で実行した場合の終了時刻t2より早くできる。この場合、電力性能指標値は大とする。そして、性能優先であるか消費電力を優先するかにより実行先を決定する。上記のケース1~3は、いずれも閾値後述する消費電力優先指標値を0としてプラスの値の大小、あるいは値がマイナスとなる場合を想定している。そして、この閾値を携帯端末の状態、たとえば、現在のバッテリ残量等により変更させる構成としても良い。この点は、後述する消費電力優先指標値において説明する。つぎに、上記の電力性能指標値について説明する。電力性能指標値は、指標値処理部126が下記演算により求める。電力性能指標値=アクセラレータでの終了時刻t2-CPUでの終了時刻t1/CPUでの消費電力量PH1-アクセラレータでの消費電力量PH2なお、CPU101での消費電力量PH1=CPUの消費電力P1×CPUでの処理にかかる処理時間T1であり、アクセラレータ102での消費電力量PH2=アクセラレータの消費電力P2×アクセラレータの処理にかかる処理時間T2である。P1,P2と、T1,T2、あるいはPH1とPH2は、予め後述する設計フェーズの際の測定により、ROM104に記録しておく固定値である。CPU101の終了時刻t1は、下記の1.2.いずれかにより推定する。1.CPU101の終了時刻t1=開始時刻t0割り当て処理の残り時間合計tm処理対象の処理時間T12.CPU101の終了時刻t1=開始時刻t0処理対象の処理時間T1/1-CPU101の稼働率1.2.のいずれを選択するかは、他の全処理の処理時間が判明しているか否かに基づき選択すればよい。図4は、負荷量に対する電力性能指標値の一例を示す図表である。図示の例では、アクセラレータ102の負荷量と電力性能指標値とが比例する例を図示した。アクセラレータ102の負荷量が増加するほど、電力性能指標値は高くなる。アクセラレータ102の終了時刻t2は、下記式により推定する。アクセラレータ102の終了時刻t2=開始時刻t0実行中処理の残り時間tn1、未実行処理の処理時間合計tn2対象処理の処理時間T2上記の消費電力優先指標値の決定について説明する。指標値処理部126は、下記1.~3.のいずれかにより消費電力優先指標値を算出する。バッテリ残量、電源接続状態、携帯端末の開閉状態等は、端末状態取得部127から取得する。1.バッテリ残量のみで消費電力優先指標値を算出。消費電力優先指標値a=α/バッテリ残量α:任意の係数この消費電力優先指標値は、携帯端末をバッテリで駆動する場合に用いる。2.電源接続の有無により算出。電源接続中は、消費電力優先指標値b=0性能最優先とするバッテリ動作中は、消費電力優先指標値a=α/バッテリ残量この場合、携帯端末が電源接続中であるか否かを端末状態取得部127により取得し、消費電力優先指標値a,bを選択する。たとえば、携帯端末を充電するクレードルに置いた電源接続中バッテリ充電中であれば、消費電力優先指標値bを選択する。携帯端末がクレードルから取り外されバッテリ駆動中であれば、消費電力優先指標値aを選択する。3.携帯端末の開閉状態操作状態により算出。折りたたみ式の携帯端末の蓋が開閉自在であり、開状態で操作使用するものである場合。携帯端末が開状態であれば、消費電力優先指標値a=α/バッテリ残量携帯端末が閉状態であれば、消費電力優先指標値b=β/バッテリ残量α,β:任意の係数、α<βとする。開状態で性能優先とする上記1.~3.のほかに固定値上述した値0などとしても良い。なお、固定値や係数の値は、後述する設計フェーズの際に携帯端末の要求稼働時間と要求性能等から決定しておき、電力性能指標値と、閾値である消費電力優先指標値とを比較できる値に整合させておく。このように、端末状態取得部127により、バッテリの残量、あるいはバッテリの残量に関わる携帯端末の使用状態を取得し、指標値処理部126により消費電力優先指標値を求める。図5は、バッテリ残量に対する消費電力優先指標値の一例を示す図表である。図示の例では、バッテリ残量が少ないほど消費電力優先指標値の変化の割合を高くしてある。設計フェーズと実行フェーズについてROM104には、携帯端末運用前の設計時設計フェーズにおいて必要な情報が記録される。設計フェーズでは、実行先決定部111は、アクセラレータ102で実行可能な処理をCPU101でおこなった場合と、アクセラレータ102でおこなった場合の処理時間と、消費電力を測定してROM104に記録しておく。また、携帯端末運用時の処理実行時実行フェーズには、実行先決定部111指標値処理部126は、ROM104に記録された情報に基づいて電力性能指標値を算出し、割り付け先決定部129は、この電力性能指標値と消費電力優先指標値に基づいて、CPU101、あるいはアクセラレータ102のいずれを実行先とするか決定する。実行先決定の処理概要図6は、携帯端末での実行先決定にかかる処理概要を示すフローチャートである。設計フェーズS600の段階では、CPU101とアクセラレータ102の消費電力を測定するステップS601。また、アクセラレータ102に実行させる処理を決定するステップS602。また、CPU101とアクセラレータ102での処理時間をそれぞれ測定するステップS603。また、CPU101用とアクセラレータ102用の実行オブジェクトを用意するステップS604。この設計フェーズS600における処理を具体的に説明すると、はじめに、携帯端末で動かすアプリケーションプログラムを開発して、アプリケーションでおこなう処理の中からアクセラレータ102でおこなう処理を決定する。アクセラレータ102でおこなう処理が決定したら、アプリケーションのプログラムからアクセラレータ102を利用した処理をおこなうプログラムコードと、アクセラレータ102での処理と同内容の処理をCPU101でおこなうプログラムコードを作成しておく。この後、実際にこれらのプログラムコードを実行してアクセラレータ102で処理した場合と、CPU101で処理した場合の処理時間を実測定する。同じアクセラレータ102に対して異なる使い方をする場合は、使い方毎に処理時間を測定する。また、この処理時間中におけるCPU101とアクセラレータ102のそれぞれの消費電力を電力測定器等を利用して測定する。測定した消費電力と、使い方毎の処理時間をROM104に記録する。また、作成したアプリケーションと、アクセラレータ102を利用して処理をおこなうプログラムコードと、アクセラレータ102と同じ処理をCPU101でおこなうプログラムコードについてもROM104に記録しておく。図7は、設計フェーズによりROMに記録される情報を示す図である。ROM104には、アプリケーションの処理毎の処理要求情報1~n701と、CPU消費電力721と、アクセラレータ消費電力722とが記録される。たとえば、アプリケーションの処理1の処理要求は、CPU処理時間711と、アクセラレータ処理時間712と、CPU用実行コード713と、アクセラレータ用実行コード714とを含む。図6に戻り説明すると、上記設計フェーズS600によりROM104に情報が記録された後、携帯端末を運用する実行フェーズS610となる。実行フェーズS610における処理は、はじめに、アプリケーションから処理の起動をOS110に要求するステップS611。これにより、OS110は、処理の実行先をCPU101あるいはアクセラレータ102に決定して割り付けステップS612、一連の処理を終了する。この実行フェーズS610では、アプリケーションプログラム中にアクセラレータ102で処理をおこなう場合は、OS110はアクセラレータ102へ処理を要求する。OS110ではアクセラレータ102が空いていれば、ROM104に記録されたアクセラレータを利用するプログラムコードを実行してアクセラレータ102での処理を開始する。このとき、起動する処理の種別と起動時刻をメモリ103に記録しておく。アクセラレータ102が利用中の場合は、OS110は、キュー状のデータ構造により、処理要求毎に記録しておく。アクセラレータ102での実行が完了すると、OS110は、キューの先頭の処理要求に基づいてアクセラレータ102を利用するプログラムコードを実行する。図8は、実行フェーズにおけるメモリに記録される情報を示す図である。メモリ103には、複数の処理要求がそれぞれ処理要求キュー801801a~801nに記録され、先頭の処理要求キュー801aから順番に処理される。また、CPU101に関するCPU実行中処理情報811と、アクセラレータ102に関するアクセラレータ実行中処理情報812と、がそれぞれ記録される。CPU実行中処理情報811としては、処理要求、開始時刻等がある。アクセラレータ実行中処理情報812としては、処理要求、開始時刻、終了時刻等がある。ここで、実際に処理要求を処理要求キュー801に追加するか否かはOS110内の実行先決定部111で決定する。実行先決定部111では、電力性能指標値と、消費電力優先指標値から要求された処理を処理要求キュー801に追加するかCPU101でおこなうかを決定する。CPUでの複数処理時の処理別の終了時刻について一つのCPU101で複数の処理スレッドが動作する場合、OS110の処理スレッド管理部125は、数ミリ秒単位で実行するスレッドを切り替えて、一つのCPU101であたかも複数のスレッドが同時に動作しているように見せている。単位時間あたりどのスレッドにどれだけの時間を割り振るかは、全て処理スレッド管理部125がそれぞれのスレッドに設定された優先度情報などに基づき決定している。優先度が同じであれば、全てのスレッドは均等に時間が割り振られる。図9は、CPUが複数の処理を実行する状態を示すタイムチャートである。図示の例のように、3つのスレッド1~3が同時に動いていれば、単位時間あたりそれぞれのスレッド1~3が3分の1ずつ実行時間を取得することになる。すなわち、CPUそれぞれのスレッド1~3を処理開始してから処理終了するまでの時間は3倍かかることになる。また、OS110の処理スレッド管理部125は、現在どれだけのスレッドが処理されているか、およびスレッドがこれまでにどれだけの時間実行処理したかについて全て管理している。したがって、図9に示すように、CPU101で複数の処理スレッドが動作している状況であっても、処理スレッド管理部125が管理するスレッド毎の実行時間と、稼働スレッド数取得部122が取得した稼働スレッド数から、指標値処理部126は、各スレッドの終了時刻t1を算出することができる。実行先決定の処理内容図10は、実行先決定部による実行先決定の処理内容を示すフローチャートである。図10を用いて、OS110の実行先決定部111による処理を説明する。実行先決定部111の処理要求受付部121は、アプリケーションからの処理要求を受け付ける毎にステップS1001、処理要求毎に処理の実行先を決定するために以下の処理をおこなう。はじめに、ROM情報取得部124により、ROM104から処理要求に対応する処理についてのCPU101とアクセラレータ102での処理時間T1,T2を取得するステップS1002。また、ROM情報取得部124により、ROM104からCPU101とアクセラレータ102の消費電力P1,P2を取得するステップS1003。また、実行先決定部111は、現在時刻を取得するステップS1004。つぎに、アクセラレータ管理部128により、アクセラレータ102でおこなっている処理の処理要求と開始時刻を取得するステップS1005。つぎに、稼働スレッド数取得部122から稼働しているスレッド数を取得するステップS1006。これにより、実行先決定部111の指標値処理部126は、処理スレッドについてのCPU101の終了時刻t1と、アクセラレータ102の終了時刻t2と、をそれぞれ算出し、また、電力性能指標値を算出するステップS1007。この電力性能指標値は、上述したように、要求された処理をCPU101でおこなった場合の終了時刻t1と、アクセラレータ102でおこなった場合の終了時刻t2と、これらCPU101およびアクセラレータ102のそれぞれでおこなった場合の推定消費電力量PH1,PH2に基づき算出する。この際、CPU101でおこなった場合の処理対象の処理時間T1は、設計フェーズS600で測定してROM104に記録してあるため、該当する処理に対応する処理時間をROM104から取得する。一方、アクセラレータ102でおこなった場合の終了時刻t2は、上述したように、アクセラレータ102で現在おこなっている実行中処理の残り時間tn1と、処理要求キュー801にたまっている未実行処理の処理時間合計tn2と、該当する処理をアクセラレータ102でおこなった場合の処理時間T2と開始時刻t0を加算したものとなる。このように、CPU101およびアクセラレータ102のそれぞれの処理の処理時間T1,T2は、設計フェーズで測定してROM104に記録されているため、それぞれの処理要求に対応する処理時間T1,T2をROM104から取得する。消費電力量PH1,PH2についても、ROM104から読み出して用いる。また、指標値処理部126は、携帯端末の状態から消費電力優先指標値を算出するステップS1008。消費電力優先指標値は、算出するに限らず、固定値たとえば0を用いることもできる。値が0であれば、電力性能指標値だけに基づき処理の実行先を決定することになる。この消費電力優先指標値は、電力性能指標値の値を判断するための閾値として用いるため、消費電力優先指標値と電力性能指標値を単純に比較するだけで処理の実行先を決定できる。つぎに、実行先決定部111の割り付け先決定部129は、電力性能指標値と消費電力優先指標値を比較するステップS1009。消費電力優先指標値に対し電力性能指標値が大きければステップS1009:Yes、アプリケーションからの処理要求をCPU101でおこなうことを決定する。また、消費電力優先指標値に対し電力性能指標値が小さければステップS1009:No、アプリケーションからの処理要求をアクセラレータ102で処理することを決定する。処理の実行をCPU101に決定した場合はステップS1009:Yes、OS110のプロセス管理部113は、ROM104に記録されている対象処理の処理要求に対応するCPU用実行コードプログラムコード713を取得しステップS1010、新規プロセスを生成して取得した実行コードをそのプロセスで実行させるステップS1011。そして、プロセス管理部113は、CPU101で実行した処理要求と、現在時刻と、算出した終了時刻をメモリ103のCPU実行中処理情報811に記録しステップS1012、一つの処理を終了する。一方、処理の実行をアクセラレータ102に決定した場合はステップS1009:No、プロセス管理部113は、アクセラレータ管理部128からアクセラレータ102の稼働状況を取得しステップS1013、アクセラレータ102が稼働中であるか否かを判断するステップS1014。アクセラレータ102が稼働中であればステップS1014:Yes、最後の処理要求キュー801nに処理要求を追加しステップS1015、アクセラレータ102での処理をおこなわせ、一つの処理を終了する。ステップS1014の判断にてアクセラレータ102が稼働中でなければステップS1014:No、プロセス管理部113は、ROM104から処理要求に対応するアクセラレータ用実行コード714を取得するステップS1016。つぎに、プロセス管理部113は、取得したアクセラレータ用実行コード714を実行してアクセラレータ102を起動させるステップS1017。そして、プロセス管理部113は、アクセラレータ102で実行した処理要求と、開始時刻をメモリ103のアクセラレータ実行中処理情報812に記録しステップS1018、一つの処理を終了する。図11は、実行先決定部によるアクセラレータでの処理終了後の処理を示すフローチャートである。実行先決定部111のアクセラレータ管理部128によりアクセラレータ102での処理終了を検出するとステップS1101、プロセス管理部113は、先頭の処理要求キュー801aから処理要求を取得しステップS1102、取得が成功したか確認するステップS1103。取得が成功すればステップS1103:Yes、処理を終了する。ステップS1103にて、先頭の処理要求キュー801aからの処理要求が取得できなかったときにはステップS1103:No、プロセス管理部113は、ROM104から処理要求に対応するアクセラレータ用実行コード714を取得するステップS1104。つぎに、プロセス管理部113は、取得したアクセラレータ用実行コード714を実行してアクセラレータ102を起動させるステップS1105。そして、プロセス管理部113は、アクセラレータ102で実行した処理要求と、開始時刻をメモリ103のアクセラレータ実行中処理情報812に記録しステップS1106、一つの処理を終了する。処理の負荷変動時の処理についてつぎに、処理の負荷変動時における処理の実行先の決定について説明する。負荷の増加は、たとえば、すでに起動しているアプリケーションとは別のアプリケーションの起動や、CPU101の負荷の監視時に設定以上のスレッド数負荷の増加となったときに負荷の増加であると判断する。一方、負荷の減少は、たとえば、すでに起動しているアプリケーションとは別のアプリケーションの終了や、CPU101の負荷の監視時に設定以上のスレッド数負荷の減少となったときに負荷の減少であると判断する。図12-1は、処理の負荷増加を検出する処理の流れを示すフローチャートである。処理の負荷増加時には、アプリケーションから新規スレッドの生成要求またはスレッド起動要求が出力されるステップS1201。これにより、プロセス管理部113は、スレッドを生成またはスレッドを起動させステップS1202、稼働スレッド数の増加を実行先決定部111に通知するステップS1203。実行先決定部111は、通知された稼働数スレッドの増加に基づき、負荷増加時における実行先決定の処理をおこなうステップS1204。図12-2は、処理の負荷減少を検出する処理の流れを示すフローチャートである。処理の負荷減少時には、アプリケーションからスレッド終了通知またはスレッド停止要求が出力されるステップS1211。これにより、プロセス管理部113は、スレッドを削除またはスレッドを停止させステップS1212、稼働スレッド数の減少を実行先決定部111に通知するステップS1213。実行先決定部111は、通知された稼働数スレッドの減少に基づき、負荷減少時における実行先決定の処理をおこなうステップS1214。上記のように、処理の負荷の増加および減少は、アプリケーションからスレッドの追加、終了、停止、起動等の要求によりプロセス管理部113で稼働するスレッド数を変更したことを検出する。そして、実行先決定部111は、新たな処理をCPU101で実行するのに比してアクセラレータ102で実行した方が良い場合には、CPU101での処理をキャンセルし、アクセラレータ102でこの処理を実行する。逆に、CPU101での処理に空きができ、アクセラレータ102よりもCPU101で実行した方が良い場合には、アクセラレータ102の処理をCPU101で実行する。具体的には、CPU101とアクセラレータ102のいずれで処理を実行した方が全体の処理の終了時刻を早めることができるか、により決定する。処理の負荷増加時の処理についてつぎに、処理の負荷増加時に、処理対象の割り当てが変化する状態を説明する。図13-1は、負荷が増加した場合の処理要求の流れを示す図、図13-2は、負荷が増加した場合の処理の終了時刻を説明する図である。時刻t1でスレッドが処理要求をおこなったとき、実行先決定部111では、要求された処理をCPU101で実行した場合と、アクセラレータ102で実行した場合の終了時刻をそれぞれ推定し算出する。CPU101で実行した場合には終了時刻t2であると算出されたとする。一方で、アクセラレータ102で実行した場合は、すでに多数の処理要求1301がキューイングされているため、処理を開始できるのは時刻t3となり、終了時刻t4となる。指標値処理部126は、これら終了時刻t2,t4を用いて電力性能指標値を算出する。そして、割り付け先決定部129は、CPU101で処理をした方が効率が良いと判断して、CPU101の処理要求に対しスレッドS1を起動して、CPU101で処理をおこなう。つぎに、上記処理後の時間経過による負荷の変動時について説明する。図14-1は、時間経過により負荷が増加した場合の処理要求の流れを示す図、図14-2は、時間経過により負荷が増加した場合の処理の終了時刻を説明する図である。図13-1、図13-2を用いて説明した処理時から、一定時間経過した図14-2の時刻t1’t1<t1’<t2で新しくスレッドS2が起動されたとする。これにより、CPU101の負荷が上がるため、実行先決定部111は、負荷増加の処理を実行する。この負荷増加の処理では、時刻t1’を基準として、処理をCPU101で実行した場合と、アクセラレータ102で実行した場合のそれぞれの終了時刻t2’,t4’を再計算する。アクセラレータ102側では、時刻t3からt3’の間でいくつかの処理要求1402が処理要求キュー801に追加されている。これにより、時刻t1’の時点からアクセラレータ102に処理を追加した場合は、再計算の結果、アクセラレータ102で処理が開始できるのが時刻t3’となり終了時刻は時刻t4’に変更になったとする。一方で、CPU101で実行した場合は、すでにt1からt1’の間で処理が進んでいるが、時刻t1’で新しくスレッドS21401が追加されたことにより、CPU101の負荷が上昇するため、時刻t1’の時点でまだ処理が済んでいない部分に対して、現在のCPU101の負荷から終了時刻を再計算の結果、終了時刻t2’に変更になったとする。これにより、割り付け先決定部129は、今からでもアクセラレータ102で処理をおこなった方が効率が良いと判断して、CPU101のスレッドS2の処理をキャンセルし、処理要求キュー801に処理要求S3を追加する。処理の負荷増加時の実行先決定処理について図15は、処理の負荷増加時における実行先決定の処理例を示すフローチャートである。実行先決定部111がおこなう処理を以下に説明する。プロセス管理部113が処理の負荷増加を検出するとステップS1501、実行先決定部111の処理要求受付部121は、ROM情報取得部124により、ROM104からCPU101で実行している処理要求を取得するステップS1502。そして、処理要求が取得できたか判断するステップS1503。処理要求が取得できなければステップS1503:No、処理を終了し、処理要求が取得できればステップS1503:Yes、つぎに、メモリ103からCPU101で実行している処理の開始時刻と、終了時刻を取得するステップS1504。また、ROM情報取得部124により、ROM104から、処理要求に対応する処理のCPU101と、アクセラレータ102での処理時間を取得するステップS1505。また、ROM104からCPU101と、アクセラレータ102の消費電力を取得するステップS1506。また、実行先決定部111は、現在時刻を取得するステップS1507。つぎに、アクセラレータ管理部128により、アクセラレータ102でおこなっている処理の処理要求と開始時刻を取得するステップS1508。つぎに、稼働スレッド数取得部122から稼働しているスレッド数を取得するステップS1509。これにより、実行先決定部111の指標値処理部126は、処理スレッドについてのCPU101の新たな終了時刻図14-2の例では終了時刻t2’と、アクセラレータ102の新たな終了時刻図14-2の例では、終了時刻t4’と、をそれぞれ算出し、また、電力性能指標値を算出するステップS1510。また、指標値処理部126は、携帯端末の状態から消費電力優先指標値を算出するステップS1511。つぎに、実行先決定部111の割り付け先決定部129は、電力性能指標値と消費電力優先指標値を比較するステップS1512。消費電力優先指標値に対し電力性能指標値が大きければステップS1512:Yes、アプリケーションからの処理要求をCPU101でおこなうことを決定する。そして、終了時刻を算出した新たな終了時刻に更新し、CPU実行中処理情報811を更新しステップS1513、処理を終了する。また、消費電力優先指標値に対し電力性能指標値が小さければステップS1512:No、アプリケーションからの処理要求をアクセラレータ102で処理することを決定する。そして、プロセス管理部113は、CPU101で処理をおこなっているプロセスの実行をキャンセルしステップS1514、アクセラレータ管理部128からアクセラレータ102の稼働状況を取得するステップS1515。この後、アクセラレータ102が稼働中であるか否かを判断するステップS1516。アクセラレータ102が稼働中であればステップS1516:Yes、最後の処理要求キュー801nに処理要求を追加しステップS1517、アクセラレータ102での処理をおこなわせ、一つの処理を終了する。一方、アクセラレータ102が稼働中でなければステップS1516:No、プロセス管理部113は、ROM104から処理要求に対応するアクセラレータ用実行コード714を取得するステップS1518。つぎに、プロセス管理部113は、取得したアクセラレータ用実行コード714を実行してアクセラレータ102を起動させるステップS1519。そして、プロセス管理部113は、アクセラレータ102で実行した処理要求と、開始時刻をメモリ103のアクセラレータ実行中処理情報812に記録しステップS1520、一つの処理を終了する。処理の負荷減少時の処理についてつぎに、処理の負荷減少時に、処理対象の割り当てが変化する状態を説明する。図16-1は、負荷が減少した場合の処理要求の流れを示す図、図16-2は、負荷が減少した場合の処理の終了時刻を説明する図である。時刻t1でスレッドが処理要求をおこなったとき、実行先決定部111では、要求された処理をCPU101で実行した場合と、アクセラレータ102で実行した場合の終了時刻をそれぞれ推定し算出する。CPU101で実行した場合には多くのスレッドの処理があるため、終了時刻t2になると算出されたとする。一方で、アクセラレータ102では、先にキューイングされている処理要求1601の数が少なく終了時刻t4になるとする。指標値処理部126は、これら終了時刻t2,t4を用いて電力性能指標値を算出する。そして、割り付け先決定部129は、アクセラレータ102で処理をした方が効率が良いと判断して、処理要求S11を処理要求キュー801に追加する。つぎに、上記処理後の時間経過による負荷の変動時について説明する。図17-1は、時間経過により負荷が減少した場合の処理要求の流れを示す図、図17-2は、時間経過により負荷が減少した場合の処理の終了時刻を説明する図である。図16-1、図16-2を用いて説明した処理時から、一定時間経過した図17-2の時刻t1’で今度はCPU101のスレッドの処理が終了したとすると、CPU101の負荷が減少するため、上述した負荷増加時と同じように、実行先決定部111は、終了時刻の再計算をおこなう。図16-1および図16-2の例では、時刻t1でアクセラレータ102で処理を実行することが決定され、処理要求がキューイングされているため、アクセラレータ102での開始時刻t3と終了時刻t4は変化しないままとなる。一方、CPU101で実行する場合は、CPU101での処理の負荷が減少しているため終了時刻はt2’に変更になる。ここで、指標値処理部126により電力優先指標値を再計算した結果、CPU101で処理を実行した方が効率が良いと判断した場合は、最後の処理要求キュー801nから処理要求S12を取り出し削除してスレッドで実行する。処理の負荷減少時の実行先決定処理について図18は、処理の負荷減少時における実行先決定の処理例を示すフローチャートである。実行先決定部111がおこなう処理を以下に説明する。プロセス管理部113が処理の負荷減少を検出するとステップS1801、実行先決定部111のキュー管理部123は、メモリ103の最後の処理要求キュー801nから処理要求を取得するステップS1802。そして、処理要求が取得できたか判断するステップS1803。処理要求が取得できなければステップS1803:No、処理を終了し、処理要求が取得できればステップS1803:Yes、つぎに、ROM104から処理要求に対応する処理のCPU101と、アクセラレータ102での処理時間を取得するステップS1804。また、ROM104からCPU101と、アクセラレータ102の消費電力を取得するステップS1805。また、実行先決定部111は、現在時刻を取得するステップS1806。つぎに、アクセラレータ管理部128により、アクセラレータ102でおこなっている処理の処理要求と開始時刻を取得するステップS1807。つぎに、稼働スレッド数取得部122から稼働しているスレッド数を取得するステップS1808。これにより、実行先決定部111の指標値処理部126は、処理スレッドについてのCPU101の新たな終了時刻図17-2の例では終了時刻t2’と、アクセラレータ102の新たな終了時刻図17-2の例では、終了時刻t4と、をそれぞれ算出し、また、電力性能指標値を算出するステップS1809。また、指標値処理部126は、携帯端末の状態から消費電力優先指標値を算出するステップS1810。つぎに、実行先決定部111の割り付け先決定部129は、電力性能指標値と消費電力優先指標値を比較するステップS1811。消費電力優先指標値に対し電力性能指標値が大きければステップS1811:Yes、アプリケーションからの処理要求をCPU101でおこなうことを決定する。そして、対象の処理を処理要求キュー801から削除しステップS1812、ROM104からCPU用実行コード713を取得するステップS1813。そして、プロセス管理部113は、処理に対応する新規プロセスを生成して取得したCPU用実行コード713を実行するよう設定するステップS1814。そして、CPU実行中処理情報811におけるCPU101で実行した処理要求と、開始時刻と、算出した終了時刻を記録しステップS1815、処理を終了する。また、消費電力優先指標値に対し電力性能指標値が小さければステップS1811:No、処理要求キュー801の一つ前の処理要求を取得しステップS1816、ステップS1803に戻り、この処理要求に対する上記処理を実行する。上述したように、処理の負荷変動により、CPU101で処理できる場合は、アクセラレータ102でおこなうために処理要求キュー801に積んでいた処理がCPU101でできないか再検討をおこなっている。この際、最後の処理要求キュー801nの処理から順番にCPU101で稼働しているスレッド数空き率を用いても良いに基づいて、新たに処理を要求したときと同様の処理で判断を繰り返す。そして、CPU101で処理することになった場合には、処理要求キュー801から取り出してCPU101で実行する。以上説明した開示技術では、処理をアクセラレータとプロセッサで実行した場合にいずれでおこなった方が早く処理が終了するか処理の実行先を決定しているので、複数の処理ごとの処理効率を向上させることができる。さらに、処理をアクセラレータとプロセッサで実行した場合のそれぞれの消費電力を求め、この消費電力を含め電力性能指標値として用い、処理の実行先を判断するため、処理効率だけではなく、消費電力を含めて効率的な実行先を決定できるようになる。さらに、携帯端末の現在の状態、たとえば、バッテリの残量等から決定される消費電力優先指標値を用い、上記の電力性能指標値とともに実行先を決定している。これにより、経時的に変化する携帯端末のバッテリ残量に対応し、現在のバッテリ残量に対応した処理の実行先を決定することができる。このため、処理効率だけではなく、処理実行にかかる消費電力とのバランスが取れた最適な実行先を処理ごとに決定でき、システム全体の処理効率と低消費電力化を両立できるようになる。"