(57)【要約】【課題】要求性能を満たしつつ可及的に割り当てコア数を低減する。【解決手段】マルチコアプロセッサ１と、マルチコアプロセッサ１が有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行する複数のソフトウェア手段２１、２２、２１１、２２１と、夫々のソフトウェア手段に対してマルチコアプロセッサ１が有するコアの割り当ておよびコア占有時間の調整を行って複数のソフトウェア手段を並列動作させるスケジューラ２３と、を備え、夫々のソフトウェア手段は、夫々所定の処理の実行結果データを出力バッファ２１３、２２３に夫々出力し、出力バッファに自身が出力した実行結果データの蓄積量に基づく通知をスケジューラに発行し、スケジューラ２３は、受信した通知に基づいて夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減する。【選択図】図５
2010218445.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサと、
前記マルチコアプロセッサが有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行する複数のソフトウェア手段と、
前記夫々のソフトウェア手段に対して前記マルチコアプロセッサが有するコアの割り当ておよびコア占有時間の調整を行って前記複数のソフトウェア手段を並列動作させるスケジューラと、
を備え、
前記夫々のソフトウェア手段は、夫々前記所定の処理の実行結果データを出力バッファに夫々出力し、前記出力バッファに自身が出力した実行結果データの蓄積量に基づく通知を前記スケジューラに発行し、前記スケジューラは、前記受信した通知に基づいて前記夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減する、
ことを特徴とするマルチコアプロセッサシステム。
【請求項２】
前記夫々のソフトウェア手段が発行する通知は、前記出力バッファに自身が出力したデータの蓄積量が第１しきい値を下回ったときに発行する第１通知と、前記出力バッファに自身が出力したデータの蓄積量が第２しきい値を上回ったときに発行する第２通知とを含み、
前記スケジューラは、前記第１通知を受信したとき、前記第１通知発行元に対する割り当てコア数またはコア占有時間のうちの少なくとも一つを増加させ、前記第２通知を受信したとき、前記第２通知発行元に対する割り当てコア数またはコア占有時間のうちの少なくとも一つを減少させる、
ことを特徴とする請求項１に記載のマルチコアプロセッサシステム。
【請求項３】
前記スケジューラは、前記第１通知発行元に対する割り当てコア数およびコア占有時間を増減するとき、前記割り当てコア数よりも前記コア占有時間を優先して増加させ、前記第２通知発行元に対する割り当てコア数およびコア占有時間を増減させるとき、前記コア占有時間よりも前記割り当てコア数を優先して減少させる、
ことを特徴とする請求項２に記載のマルチコアプロセッサシステム。
【請求項４】
マルチコアプロセッサが有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行し、夫々前記所定の処理の実行結果データを出力バッファに夫々出力する複数のソフトウェア手段に対して前記マルチコアプロセッサが有するコアの割り当ておよびコア占有時間の調整を行って前記複数のソフトウェア手段を並列動作させるスケジューリング方法において、
前記ソフトウェア手段が前記出力バッファに自身が出力した実行結果データの蓄積量に基づく通知を発行したとき、前記発行された通知に基づいて前記夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減するステップ、
を備えることを特徴とするスケジューリング方法。
【請求項５】
マルチコアプロセッサが有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行し、夫々前記所定の処理の実行結果データを出力バッファに夫々出力する複数のソフトウェア手段に対して前記マルチコアプロセッサが有するコアの割り当ておよびコア占有時間の調整を行って前記複数のソフトウェア手段を並列動作させるスケジューラプログラムにおいて、
前記ソフトウェア手段が前記出力バッファに自身が出力した実行結果データの蓄積量に基づく通知を発行したとき、前記発行された通知に基づいて前記夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減する工程、
を前記マルチコアプロセッサに実行させることを特徴とするスケジューラプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアプロセッサを有するマルチコアプロセッサシステム、スケジューリング方法およびスケジューラプログラムに関する。
【背景技術】
【０００２】
近年、オーディオヴィジュアル機器など、多様、多数かつ高度な機能を要求される機器には、その多数の機能を実現するために、マルチコアプロセッサを搭載した半導体集積回路装置（マルチコアプロセッサシステム）が搭載されるケースが多くなってきている。このような機器に搭載されるマルチコアプロセッサシステムにおいては、夫々個別の単位機能を実現するプログラムであるファームウェア（ＦＷ）を並列動作させる。要求性能が高いＦＷを動作させる場合、このＦＷには同時に複数のコア数を割り当てる必要がある。
【０００３】
昨今の半導体微細加工プロセスにおいては、リーク電流による電力消費量が顕著となってきており、マルチコアプロセッサにおいて前記リーク電流による電力消費量を削減するためには、不要なコアの電源を物理的にＯＦＦすることが効果的である。ところが、従来、マルチコアプロセッサシステムは、夫々のＦＷの要求性能を静的に見積もり、ＦＷ毎にワーストケースに合わせてコアリソースの配分をスケジューリングするのが一般的であった。この方式では、ほとんどの場合において各ＦＷに冗長なコアリソースを配分することとなり、コアリソースの総量、特に、割り当てられる空間的コアリソース、すなわち割り当てられるコア数が大きくなりがちである。つまり、電源をＯＦＦすることが可能な不要コア数が少なくなってしまうという問題があった。
【０００４】
マルチコアプロセッサにおけるコアリソース割り当て方法に関する公知技術としては、例えば特許文献１や特許文献２に開示されている技術があるが、何れもＦＷ一つあたり複数のコアを割り当てるケースを想定していないため、前述した問題を解決できるものではなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２４１８０号公報
【特許文献２】特表２００７−５３１１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、要求性能を満たしつつ可及的に割り当てコア数を低減するマルチコアプロセッサシステム、スケジューリング方法およびスケジューラプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願発明の一態様によれば、マルチコアプロセッサと、前記マルチコアプロセッサが有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行する複数のソフトウェア手段と、前記夫々のソフトウェア手段に対して前記マルチコアプロセッサが有するコアの割り当ておよびコア占有時間の調整を行って前記複数のソフトウェア手段を並列動作させるスケジューラと、を備え、前記夫々のソフトウェア手段は、夫々前記所定の処理の実行結果データを出力バッファに夫々出力し、前記出力バッファに自身が出力した実行結果データの蓄積量に基づく通知を前記スケジューラに発行し、前記スケジューラは、前記受信した通知に基づいて前記夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減する、ことを特徴とするマルチコアプロセッサシステムが提供される。
【０００８】
また、本願発明の一態様によれば、マルチコアプロセッサが有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行し、夫々前記所定の処理の実行結果データを出力バッファに夫々出力する複数のソフトウェア手段に対して前記マルチコアプロセッサが有するコアの割り当ておよびコア占有時間の調整を行って前記複数のソフトウェア手段を並列動作させるスケジューリング方法において、前記ソフトウェア手段が前記出力バッファに自身が出力した実行結果データの蓄積量に基づく通知を発行したとき、前記発行された通知に基づいて前記夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減するステップ、を備えることを特徴とするスケジューリング方法が提供される。
【０００９】
また、本願発明の一態様によれば、マルチコアプロセッサが有する複数のコアのうち夫々一つ以上のコアを使用して所定の処理を実行し、夫々前記所定の処理の実行結果データを出力バッファに夫々出力する複数のソフトウェア手段に対して前記マルチコアプロセッサが有するコアの割り当ておよびコア占有時間の調整を行って前記複数のソフトウェア手段を並列動作させるスケジューラプログラムにおいて、前記ソフトウェア手段が前記出力バッファに自身が出力した実行結果データの蓄積量に基づく通知を発行したとき、前記発行された通知に基づいて前記夫々のソフトウェア手段に対する割り当てコア数および／またはコア占有時間を増減する工程、を前記マルチコアプロセッサに実行させることを特徴とするスケジューラプログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、要求性能を満たしつつ可及的に割り当てコア数を低減するマルチコアプロセッサシステムを提供することができるという効果を奏する。
【００１１】
また、本発明によれば、要求性能を満たしつつ可及的に割り当てコア数を低減するスケジューリング方法を提供することができるという効果を奏する。
【００１２】
また、本発明によれば、要求性能を満たしつつ可及的に割り当てコア数を低減するスケジューラプログラムを提供することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態にかかるマルチコアプロセッサシステムの構成を示すブロック図である。
【図２】図２は、各プログラムとマルチコアプロセッサとの位置付けを概念的に説明する図である。
【図３】図３は、機能構成を説明する図である。
【図４】図４は、ＦＷの動作を説明するフローチャートである。
【図５】図５は、スケジューラの動作を説明するフローチャートである。
【図６】図６は、スケジューリングの具体例を説明する図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本発明の実施の形態にかかるマルチコアプロセッサシステム、スケジューリング方法およびスケジューラプログラムを詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【００１５】
（実施の形態）
図１は、本発明の実施の形態にかかるマルチコアプロセッサシステムの構成を示すブロック図である。なお、ここでは、本発明の実施の形態を音声データ、画像データなどのマルチメディア情報に対する各種処理を実行するマルチメディア処理用のマルチコアプロセッサシステムに適用する場合について説明するが、本発明の実施の形態の適用範囲はマルチメディア処理用のマルチコアプロセッサシステムだけに限定されない。
【００１６】
図１に示すように、マルチコアプロセッサシステム１０００は、複数（ここでは８つ）のコアを有するマルチコアプロセッサ１と、ＲＯＭ（Read  Only  Memory）２と、ＲＡＭ（Random  Access  Memory）３と、ネットワーク配信される映像や音声の入力を受け付けたり配信元に情報を送信するためのＩ／ＯであるネットワークＩ／Ｏ４と、音声データを出力するためのスピーカとのインターフェース（Ｉ／Ｆ）であるスピーカＩ／Ｆ５と、ディスプレイに映像データを出力するためのＩ／ＦであるディスプレイＩ／Ｆ６と、マイクからの音声データの入力を受け付けるマイクＩ／Ｆ７と、カメラからの映像データの入力を受け付けるカメラＩ／Ｆ８と、を備えている。
【００１７】
ＲＯＭ２は、マルチコアプロセッサシステム１０００の各部を制御してマルチコアプロセッサシステム１０００搭載機器に夫々個別の機能を実現させるためのプログラムである複数のファーウェア（ＦＷ）と、該複数のＦＷの夫々にマルチコアプロセッサ１が有する複数のコアのスケジューリング、すなわちコアリソースの割り当てを行うためのプログラムであるスケジューラプログラム２３とが格納されている。ここでは簡単のために、ＲＯＭ２に格納されているＦＷとして、ネットワークＩ／Ｏ４から入力されるＡＡＣ規格で圧縮された音声データ、ＭＰＥＧ４規格で圧縮された映像データを夫々復元化する、ＡＡＣデコーダプログラム２１およびＭＰＥＧ４デコーダプログラム２２が格納されているとする。ＲＯＭ２に格納されているスケジューラプログラム２３、ＡＡＣデコーダプログラム２１、ＭＰＥＧ４デコーダプログラム２２は、マルチコアプロセッサ１により読み出されてＲＡＭ３上に展開される。
【００１８】
図２は、ＲＡＭ３上に展開されたソフトウェア手段としてのＭＰＥＧ４デコーダプログラム２２およびＡＡＣデコーダプログラム２１と、スケジューラプログラム２３と、マルチコアプロセッサ１との位置付けを概念的に説明する図である。図示するように、ＭＰＥＧ４デコーダプログラム２２およびＡＡＣデコーダプログラム２１とマルチコアプロセッサ１との間に介在するようにスケジューラプログラム２３が存在している。より詳しく述べると、ＲＡＭ３上に展開されたＭＰＥＧ４デコーダプログラム２２およびＡＡＣデコーダプログラム２１は、ＲＡＭ３上に展開されたスケジューラプログラム２３とマルチコアプロセッサ１との協働により実現するスケジューリング制御により、プロセッサコア１が有する夫々時間的・空間的コアリソースが割り当てられ、夫々のデコーダプログラム２１、２２はスケジューラプログラム２３により割り当てられたコアリソースを利用してデータの復元化処理を実行する。時間的コアリソースが割り当てられるとは、コアの占有時間が割り当てられることをいい、空間的コアリソースが割り当てられるとは、７つのうちの１つ以上の使用コアが割り当てられることをいう。なお、ここでは、８つのコアのうち残る１つはスケジューラプログラム２３に割り当てられ、残りの７つのコアが夫々のデコーダプログラムに割り当てられるとしている。以降、ＲＡＭ３上に展開されたスケジューラプログラム２３とマルチコアプロセッサ１との協働により実現するスケジューリング制御機能要素を単にスケジューラ２３ということとする。
【００１９】
図３は、ＲＡＭ３上に展開された夫々のデコーダプログラムが夫々に割り当てられたマルチコアプロセッサ１のコアリソースを使用して実現する機能構成を説明する図である。図示するように、ＡＡＣデコーダプログラム２１は、オーディオ入力バッファ２１２、ＡＡＣデコーダ２１１およびオーディオ出力バッファ２１３を実現し、ＭＰＥＧ４デコーダプログラム２２は、ビデオ入力バッファ２２２、ＭＰＥＧ４デコーダ２２１およびビデオ出力バッファ２２３を実現する。オーディオ入力バッファ２１２、オーディオ出力バッファ２１３、ビデオ入力バッファ２２２およびビデオ出力バッファ２２３は、具体的にはＲＡＭ３上に確保される記憶領域である。オーディオ入力バッファ２１２は、ネットワークＩ／Ｏ４から入力されてくる圧縮音声データを一時記憶する。ＡＡＣデコーダ２１１は、オーディオ入力バッファ２１２に記憶されている圧縮音声データを逐次取り出し、取り出した圧縮音声データに対して逐次復元処理を実行し、実行結果をオーディオ出力バッファ２１３に出力する。オーディオ出力バッファ２１３に出力された復元済み音声データは、スピーカＩ／Ｆ５を介してスピーカに出力される。ビデオ入力バッファ２２２は、ネットワークＩ／Ｏ４から入力されてくる圧縮映像データを一時記憶する。ＭＰＥＧ４デコーダ２２１は、ビデオ入力バッファ２２２に記憶されている圧縮映像データを逐次取り出し、取り出した圧縮映像データに対して逐次復元処理を実行し、実行結果をビデオ出力バッファ２２３に出力する。ビデオ出力バッファ２２３に出力された復元済み映像データは、ディスプレイＩ／Ｆ６を介してディスプレイに出力される。なお、ＲＡＭ３上に展開されたＡＡＣデコーダプログラム２１、ＭＰＥＧ４デコーダプログラム２２を夫々ソフトウェア手段として捉えることも可能であり、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１を夫々ソフトウェア手段として捉えることも可能である。
【００２０】
ここで、各出力バッファ２１３、２２３はフレーム単位で復元済みデータを保持する。また、各出力バッファ２１３、２２３は、記憶容量に制限がある。ＡＡＣデコーダ２１１とＭＰＥＧ４デコーダ２２１は、それぞれの出力バッファ２１３、２２３に貯まっているフレームの枚数、すなわち自身が出力した処理結果データの蓄積量に応じて、自らが要求性能の範囲で動作しているか否かを判断し、判断結果をスケジューラ２３に通知する機能を有している。例えば、各出力バッファ２１３、２２３の上限が２０フレームであったとする。出力バッファ２１３、２２３に貯まっているフレームの枚数が１５以上であれば要求性能を充分に満たしている旨であるＯＫ通知を発行する。また、出力バッファ２１３、２２３に貯まっているフレームの枚数が５以下であれば要求性能を満たしていない旨であるＮＧ通知を発行する。なお、要求性能の範囲の上限を上限しきい値（第２しきい値）、下限を下限しきい値（第１しきい値）ということとする。
【００２１】
スケジューラ２３は、ＦＷ（ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１）から要求性能を満たしていない旨の通知を受信すると、該通知送信元のＦＷに割り当てる時間的コアリソースおよび／または空間的コアリソースを増加させる。また、スケジューラ２３は、ＦＷから性能要求を充分に満たしている旨の通知を受信すると、該通知送信元のＦＷに割り当てる時間的コアリソースおよび／または空間的コアリソースを減少させる。
【００２２】
次に、本発明の実施の形態のマルチコアプロセッサシステム１０００により実行されるスケジューリング方法を説明する。図４は、ＦＷ２１１、２２１の動作を説明するフローチャートである。ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１は同様の動作を実行するので、ここでは代表としてＡＡＣデコーダ２１１の動作についてのみ説明する。
【００２３】
図４に示すように、ＡＡＣデコーダ２１１は、オーディオ出力バッファ２１３に貯まっている復元済み音声データの量が予め定められた上限しきい値と下限しきい値との間に納まっているか否かを判定する（ステップＳ１）。復元済みデータの量がふたつのしきい値の範囲内に納まっている場合（ステップＳ１、Ｙｅｓ）、ＡＡＣデコーダ２１１は、スケジューラ２３から時間的・空間的コアリソースが割り当てられ、該割り当てられた時間的・空間的コアリソースを使用してオーディオ入力バッファ２１２に記憶されている圧縮されている音声データを取得して、取得した音声データに対して復元処理を実行する（ステップＳ２）。
【００２４】
一方、オーディオ出力バッファ２１３に貯まっている復元済み音声データの量が前記ふたつのしきい値の範囲内に納まっていない場合（ステップＳ１、Ｎｏ）、ＡＡＣデコーダ２１１は、スケジューラ２３に対して通知を発行する（ステップＳ３）。具体的には、ＡＡＣデコーダ２１１は、前記したように、オーディオ出力バッファ２１３の蓄積量が上限しきい値を超える場合、ＯＫ通知を発行し、オーディオ出力バッファ２１３の蓄積量が下限しきい値未満の場合、ＮＧ通知を発行する。そして、ステップＳ２に移行する。
【００２５】
図５は、スケジューラ２３がＦＷ２１１、２２１からの通知に基づいてコアリソースの割り当てを変更する動作を説明するフローチャートである。図５（ａ）に示すように、ＮＧ通知を受信したスケジューラ２３は、ＮＧ通知元のＦＷの実行時間を増やしてもすべてのＦＷ、すなわちＦＷ２１１、２２１に対して充分な時間的・空間的コアリソースを確保できるか否かを判定する（ステップＳ１１）。充分な時間的・空間的コアリソースを確保できる場合（ステップＳ１１、Ｙｅｓ）、スケジューラ２３は、ＦＷ２１１、２２１の時間的コアリソースを調整する（ステップＳ１２）。つまり、ここではＮＧ通知元のＦＷの実行時間を増やし、増やす実行時間分、他のＦＷの実行時間を減らす。ＮＧ通知元のＦＷの実行時間を増やすとＦＷ２１１、２２１の時間的・空間的コアリソースが確保できない場合（ステップＳ１１、Ｎｏ）、スケジューラ２３は、ＦＷ２１１、２２１の空間的コアリソースを調整する（ステップＳ１３）。すなわち、ＮＧ通知元のコア数の割り当てを増やし、該コア数の割り当ての増加に応じて他のＦＷのコア数の割り当てを調整する（ステップＳ１３）。そして、スケジューラ２３は、ＦＷ２１１、２２１の時間的コアリソースの調整を行う（ステップＳ１２）。ステップＳ１２の後、調整後の時間的・空間的コアリソースをＦＷ２１１、２２１に割り当てる（ステップＳ１４）。
【００２６】
図５（ｂ）に示すように、ＯＫ通知を受信したスケジューラ２３は、ＯＫ通知元のＦＷに割り当てるコア数を減らしてもＦＷ２１１、２２１に対して充分な時間的・空間的コアリソースを確保できるか否かを判定する（ステップＳ２１）。ＦＷ２１１、２２１に対して充分な時間的・空間的コアリソースを確保できない場合（ステップＳ２１、Ｎｏ）、スケジューラ２３は、ＦＷ２１１、２２１の時間的コアリソースを調整する（ステップＳ２２）。つまり、ＯＫ通知元のＦＷの実行時間を減らし、減らした分の実行時間を他のＦＷに割り当てる。ＯＫ通知元のＦＷのコア数を減らしてもＦＷ２１１、２２１に対して充分な時間的・空間的コアリソースを確保できる場合（ステップＳ２１、Ｙｅｓ）、スケジューラは、ＦＷ２１１、２２１の空間的コアリソースを調整する（ステップＳ２３）。すなわち、ＯＫ通知元のコア数の割り当てを減少させ、他のＦＷのコア数割り当てを調整する。そして、スケジューラは、ＦＷ２１１、２２１に割り当てる実行時間の調整を行う（ステップＳ２２）。ステップＳ２２の後、調整後の時間的・空間的コアリソースをＦＷ２１１、２２１に割り当てる（ステップＳ２４）。
【００２７】
このように、スケジューラ２３は、ＮＧ通知を受信したとき、割り当てコア数よりもコア占有時間を優先して増加させ、ＯＫ通知を受信したとき、コア占有時間よりも割り当てコア数を優先して減少させる。すなわち、スケジューラ２３は、トータルの割り当てコア数をできるだけ小さくするようにスケジューリングを行う。
【００２８】
以上に述べた動作によりＭＰＥＧ４デコーダ２２１およびＡＡＣデコーダ２１１に行われるスケジューリングの具体例を図６を参照して説明する。
【００２９】
図６は、横軸に７個あるプロセッサコアの割り当て状態、縦軸に紙面下方向に進行する時間軸を表現している。なお、デフォルト設定においては時間的コアリソースとして、単位時間のうちの３／８がＡＡＣデコーダ２１１に割り当てられ、残りの５／８の時間がＭＰＥＧ４デコーダ２２１に割り当てられるとしており、さらに空間的コアリソースとして夫々に５個のコアが割り当てられるとしている。時間的コアリソースと空間的コアリソースとを乗じた値を積分コアリソースといい、ステップＳ１１、ステップＳ２１においては積分コアリソースに基づいてすべてのＦＷ２１１、２２１に充分な時間的・空間的コアリソースが確保されているか否かを判定することとする。
【００３０】
図６において、上部３段のブロック、すなわち１回目のＡＡＣデコーダ２１１の実行処理、１回目のＭＰＥＧ４デコーダ２２１の実行処理、２回目のＡＡＣデコーダ２１１の実行処理では、夫々ステップＳ１での判定フローにおいてＹｅｓに移行しており、デフォルト設定の時間的・空間的コアリソースが割り当てられ、夫々処理が実行されている。
【００３１】
２回目のＭＰＥＧ４デコーダ２２１の実行処理においては、ビデオ出力バッファ２２３に貯まった映像データの蓄積量が下限しきい値を下回っており、ＭＰＥＧ４デコーダ２２１はＮＧ通知を発行する（図中（１））。すると、スケジューラ２３は、時間的コアリソースを調整して、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１に割り当てる実行時間を夫々単位時間の３／１１、８／１１に変更する。すなわち、ＡＡＣデコーダ２１１の積分コアリソースは、５×３／８＝１．９から５×３／１１＝１．４に変化し、ＭＰＥＧ４デコーダ２２１の積分コアリソースは、５×５／８＝３．１から５×８／１１＝３．６に変化する。
【００３２】
３回目のＡＡＣデコーダ２１１の実行処理においては、オーディオ出力バッファ２１３に貯まった音声データの蓄積量が下限しきい値を下回っており、ＡＡＣデコーダ２１１はＮＧ通知を発行する（図中（２））。すると、スケジューラ２３は、夫々の積分コアリソースを評価し、時間的コアリソースの調整、すなわちＡＡＣデコーダ２１１に割り当てる実行時間を増やし、ＭＰＥＦ４デコーダに割り当てる実行時間を減らすと、ＭＰＥＧ４デコーダ２２１の要求性能を満足させることができなくなることを認識する。したがって、空間的コアリソースおよび時間的コアリソースの調整を行う。ここでは、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１に割り当てられているコア数が夫々５で、実行時間が夫々単位時間の３／１１、８／１１が割り当てられていたのを、コア数を夫々６に増加させ、実行時間をデフォルト設定の３／８、５／８に戻す。すると、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１に割り当てられる積分コアリソースは、夫々１．９、３．６であったのが２．３、３．８に変化する。
【００３３】
５回目のＡＡＣデコーダ２１１の実行処理においては、オーディオ出力バッファ２１３に貯まった音声データの蓄積量が上限しきい値を上回っており、ＡＡＣデコーダ２１１はＯＫ通知を発行する（図中（３））。すると、スケジューラ２３は、夫々の積分コアリソースを評価し、空間的リソースを減らすとＭＰＥＧ４デコーダ２２１の要求性能を満足させることができないことを認識する。そのため、時間的コアリソースの調整のみを実行する。すなわち、スケジューラは、ＡＡＣデコーダ２１１に割り当てる実行時間を減らし、ＭＰＥＦ４デコーダに割り当てる実行時間を増やす。ここでは、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１に割り当てられている実行時間を夫々２／７、５／７にする。すると、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１に割り当てられる積分コアリソースは、夫々２．３、３．８であったのが１．７、４．３に変化する。
【００３４】
６回目のＭＰＥＧ４デコーダ２２１の実行処理においては、ビデオ出力バッファ２２３に貯まった映像データの蓄積量が上限しきい値を上回っており、ＭＰＥＧ４デコーダ２２１はＯＫ通知を発行する（図中（４））。すると、スケジューラは、夫々の積分コアリソースを評価し、空間的リソースを減らしても可能と判断し、空間的・時間的コアリソースの調整を実行する。すなわち、スケジューラは、コア数を６から５に減少させ、夫々の実行時間をデフォルト設定値に戻す。すると、ＡＡＣデコーダ２１１、ＭＰＥＧ４デコーダ２２１に割り当てられる積分コアリソースは、夫々１．７、４．３であったのが１．９、３．１に変化する。
【００３５】
このように、本発明の実施の形態によれば、夫々のＦＷ２１１、２２１は、復元済みデータを出力バッファ２１３、２２３に夫々出力し、出力バッファ２１３、２２３に自身が出力した復元済みデータの蓄積量に基づく通知をスケジューラ２３に発行し、スケジューラ２３は、前記通知を受信したとき、受信した通知に基づいて夫々のＦＷ２１１、２２１に対する割り当てコア数およびコア占有時間を増減するように構成したので、復元処理実行開始後において流動的に変化するＦＷ２１１、２２１への要求性能に応じて柔軟なスケジューリングを実行することができるので、要求性能を満たしつつ可及的に割り当てコア数を低減することが可能になる。割り当てコア数が低減されると、不要コアに供給する電源をＯＦＦすることができるようになるので、ベストエフォート型の低消費電力化が実現される。
【００３６】
なお、図６の説明においては、ＭＰＥＧ４デコーダ２２１およびＡＡＣデコーダ２１１は時分割並列動作するとして説明したが、二つのＦＷの動作は時分割並列動作ではなく空間分割並列動作する場合であっても同様の効果が得られる。また、時分割かつ空間分割並列動作する場合であっても同様である。
【００３７】
また、一つのコアがスケジューラプログラムに割り当てられ、残る７つのコアが夫々のデコーダプログラムに割り当てられるとして説明したが、８つのコア全てがスケジューラプログラムおよび二つのデコーダプログラムに割り当てられるようにしてもよい。すなわち、スケジューラプログラムは、二つのデコーダプログラムだけでなく自身に対するコアリソース割り当てを実行する。
【００３８】
また、以上の説明においては、スケジューラは、ＲＡＭ３上に展開されたスケジューラプログラム２３とマルチコアプロセッサ１との協働により実現するとして説明したが、マルチコアプロセッサシステム１０００にスケジューリング専用のハードウェアを具備させ、該ハードウェアが２つのデコーダプログラムに対するコアリソース割り当てを実行するようにしてもよい。
【００３９】
また、オーディオ入力バッファ２１２、オーディオ出力バッファ２１３、ビデオ入力バッファ２２２およびビデオ出力バッファ２２３は、具体的にはＲＡＭ３上に確保されるメモリ領域であるとして説明したが、夫々のバッファ２１２、２１３、２２２、２２３の場所はＲＡＭ３上でなくてもよい。
【符号の説明】
【００４０】
１  マルチコアプロセッサ、２  ＲＯＭ、３  ＲＡＭ、４  ネットワークＩ／Ｏ、５  スピーカＩ／Ｆ、６  ディスプレイＩ／Ｆ、７  マイクＩ／Ｆ、８  カメラＩ／Ｆ、２１  ＡＡＣデコーダプログラム、２２  ＭＰＥＧ４デコーダプログラム、２３  スケジューラプログラム、２１１  ＡＡＣデコーダ、２１２  オーディオ入力バッファ、２１３  オーディオ出力バッファ、２２１  ＭＰＥＧ４デコーダ、２２２  ビデオ入力バッファ、２２３  ビデオ出力バッファ、１０００  マルチコアプロセッサシステム。
【図１】
2010218445.tif 000003
【図２】
2010218445.tif 000004
【図３】
2010218445.tif 000005
【図４】
2010218445.tif 000006
【図５】
2010218445.tif 000007
【図６】
2010218445.tif 000008