(57)【要約】【課題】複数のプロセッサコアを備える半導体装置において、抵抗と容量による電圧降下によって、すべてのプロセッサコアに同じ電源電圧を供給できなくなり、同じプロセッサコアであっても演算性能が均一ではなくなる。このため、効率の良い分散処理が実現できない。【解決手段】複数のプロセッサコアの処理能力を記録するテーブルを有し、各プロセッサコアの処理動作特性を測定し、当該測定結果にてテーブルを更新し、当該テーブルを用いて処理のスケジューリングを行なうことで、効率的な並列処理を実現する。【選択図】図１
2010039923.tif 000002
【特許請求の範囲】
【請求項１】
並列演算装置を構成する複数のプロセッサコアの夫々に関して、その動作性能に影響を及ぼす特性を測定する特性測定ユニットと、
前記各プロセッサコアにおける並列演算処理を管理するスケジューリング機能とを備え、
前記測定された特性に基いて、前記並列演算処理のスケジューリングを行なうことを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記特性測定ユニットは、前記各プロセッサコアの動作性能に影響を及ぼす特性として、前記各プロセッサコアの動的な動作特性を測定する機能を有することを特徴とする情報処理装置。
【請求項３】
請求項２において、
前記複数のプロセッサコアは半導体装置に搭載されており、
前記特性測定ユニットは、前記半導体装置に近接して実装された前記複数のプロセッサコア毎に動的な動作特性を測定する機能を有することを特徴とする情報処理装置。
【請求項４】
請求項２において、
前記各特性測定ユニットは、リングオシレータとカウンタを有しており、かつ、測定対象である前記プロセッサコアと電源電圧を共有することを特徴とする情報処理装置。
【請求項５】
請求項２において、
前記各特性測定ユニットは、アナログ−デジタル変換装置を有しており、かつ、測定対象である前記プロセッサコアと電源電圧を共有することを特徴とする情報処理装置。
【請求項６】
請求項２において、
前記各特性測定ユニットは、複数の参照電圧と複数の比較器を有しており、かつ、測定対象である前記プロセッサコアと電源電圧を共有する
ことを特徴とする情報処理装置。
【請求項７】
請求項２において、
前記特性測定ユニットは、前記各プロセッサコアの動的な動作特性として、前記各プロセッサコア毎の電源電圧及び各プロセッサコアの温度を測定する機能を有する
ことを特徴とする情報処理装置。
【請求項８】
請求項１において、
前記測定された特性を格納する記憶装置を備え、
該記憶装置は、前記各プロセッサコアの動的な動作特性の測定結果を記憶する機能を有する
ことを特徴とする情報処理装置。
【請求項９】
請求項１において、
前記測定された特性を格納する記憶装置を備え、
該記憶装置は、前記各プロセッサコアの静的な動作特性測定結果を複数記憶し、また、複数のプロセッサの動作状態を記憶する機能を有する
ことを特徴とする情報処理装置。
【請求項１０】
請求項１において、
前記各プロセッサコアの理論的な動作特性の計算結果を複数記憶し、かつ、前記各プロセッサコアの動作状態を記憶する機能を有する
ことを特徴とする情報処理装置。
【請求項１１】
複数のプロセッサコアによりタスクの並列演算処理を実行する機能を有する情報処理装置であって、
前記各プロセッサコアの動作性能に影響を及ぼす動的な特性を測定する特性測定機能と、
前記測定された特性を格納する記憶装置と、
前記各プロセッサコアにおける演算処理を管理するスケジューリング機能とを備え、
前記記憶装置に格納された前記特性に基いて、前記複数のプロセッサコアにおける前記並列演算処理のスケジューリングを行なう
ことを特徴とする情報処理装置。
【請求項１２】
請求項１１において、
ベンチマークプログラムにより、前記各プロセッサコアの前記動的特性及び静的特性を自動的に測定する機能と、
前記測定された静的特性及び動的特性を前記記憶装置に格納する機能とを備えた、
ことを特徴とする情報処理装置。
【請求項１３】
請求項１１において、
前記各プロセッサコアの処理能力を管理するテーブルを有し、
前記各プロセッサコアは、自身の処理性能を測定し、該測定結果に基いて前記テーブルを動的に更新する機能を有し、
前記複数のプロセッサコアの中で特定のプロセッサコアが、前記テーブルを用いて前記並列演算処理のスケジューリングを行なう
ことを特徴とする情報処理装置。
【請求項１４】
請求項１１において、
前記記憶装置は、前記複数のプロセッサコアが属するドメイン情報を記憶する機能を有する
ことを特徴とする情報処理装置。
【請求項１５】
請求項１４において、
前記スケジューリング機能により、前記プロセッサコアが属する前記ドメイン情報に基づいて、該プロセッサコアの性能ならびに動作情報の開示を制御する
ことを特徴とする情報処理装置。
【請求項１６】
請求項１４において、
前記記憶装置は、前記いずれかのプロセッサコアからの並列処理動作の指示を記憶する機能を有する
ことを特徴とする情報処理装置。
【請求項１７】
請求項１４において、
前記スケジューリング機能により、前記タスクを割り当てる際に必要となる命令コードを、割り当て対象であるプロセッサコアがアクセス可能な記憶装置に転送する
ことを特徴とする情報処理装置。
【請求項１８】
請求項１４において、
前記スケジューリング機能により、前記タスクを割り当てる際に必要となる入力データを、割り当て対象であるプロセッサコアがアクセス可能な記憶装置に転送する
ことを特徴とする情報処理装置。
【請求項１９】
半導体装置に搭載され同じ仕様を有する複数のプロセッサコアと、
前記各プロセッサコアの動作性能に影響を及ぼす電源電圧を含む動的な動作特性を、前記半導体装置の前記プロセッサコアの近傍で測定する特性測定ユニットと、
前記測定された動作特性を格納する記憶装置と、
前記各プロセッサコアにおける並列演算処理を管理するスケジューリングユニットとを備え、
前記動作特性に基いて前記プロセッサコアにおける演算性能を求め、該演算性能に応じて前記並列演算処理のスケジューリングを行う
ことを特徴とする情報処理装置。
【請求項２０】
請求項１９において、
前記スケジューリングユニットは、レジスタや記憶装置を有する前記いずれかのプロセッサコアによって実装されている
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、より具体的には、半導体装置に搭載された複数のプロセッサコアにより並列演算を行う情報処理装置に関する。
【背景技術】
【０００２】
民生機器や産業機器、社会基盤などに求められる演算性能は増加し続けている一方で、半導体プロセスの微細化による半導体装置の演算性能向上が難しくなってきている。そこで、各種半導体装置は微細化による性能向上だけではなく、半導体装置に搭載されるプロセッサの数を増やし、並列処理を行なうことにより演算性能を向上させる方向に進んでいる。実際、パーソナルコンピュータに使用される汎用ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、民生機器に使用される組込みＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）においても、２〜４個のプロセッサコアを搭載した、いわゆるマルチコアプロセッサが主流となってきている。ここで、プロセッサコアとはプログラムカウンタを有し、入力された命令コードに応じた処理を行なう演算装置である。今後はさらに、１つのＳｏＣに搭載されるプロセッサコア数が増加し、メニイコア（Ｍａｎｙ Ｃｏｒｅ）ＳｏＣへと移行していくことが予想される。
【０００３】
このような流れの中、複数のプロセッサを用いたソフトウェアの実行方法も検討されており、例えば、特許文献１には、複数のプロセッサに対してプログラムを実行させ、その計算時間から負荷分散を行うという技術が開示されている。
【０００４】
【特許文献１】特開２００２−３５８２９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
我々の研究によれば、半導体装置に搭載されるプロセッサコアの数を増加させると、抵抗と容量による電圧降下により、すべてのプロセッサコアに同じ電源電圧を供給できなくなるという問題が生じることがわかった。すなわち、我々の研究によれば、あるプロセッサコアにおける電源電圧降下は、半導体装置において、ある時刻に活性化されている部分とそうでない部分、すなわち、ある時刻に電力を消費している部分とそうでない部分、またその消費量によって下降幅が異なる。更には、半導体装置を製造した際の製造ばらつきによっても電圧降下の下降幅が異なる。
【０００６】
前記特許文献１には、複数のプロセッサを用いて並列演算を行う情報処理装置において、このように各プロセッサコアの電圧降下の下降幅が異なるという課題についての開示はない。
【０００７】
電源電圧が低下したプロセッサコアは、電源電圧が降下しないプロセッサコアと比べて、動作可能周波数が低下する。これは、同じ演算プロセッサコアであっても、電源電圧によって演算性能が異なることを意味している。そのため、複数のプロセッサが同期して並列処理を実現する場合に、効率の良い負荷分散が実現できない。これは例えば、複数のプロセッサコアが同じ性能（又は、同じ仕様）を有することを前提として作成されたプログラムを実行するときに、実行時間が大きくなるだけでなく、電力効率も低下してしまう。
【課題を解決するための手段】
【０００８】
本発明の代表的なものの一例を示せば以下の通りである。即ち、本発明の情報処理装置は、情報処理装置を構成する複数のプロセッサコアの夫々に関して、その動作性能に影響を及ぼす特性を測定する特性測定ユニットと、前記各プロセッサコアにおける並列演算処理を管理するスケジューリング機能とを備え、前記測定された特性に基づいて、前記並列演算処理のスケジューリングを行なうことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、効率的な並列処理を実現することができる。
【発明を実施するための最良の形態】
【００１０】
以下、半導体装置に搭載された複数のプロセッサコアにより並列演算を行う情報処理装置において、効率の良い分散処理を実現し、処理時間の短縮、低消費電力化を実現することのできる本発明について最良の形態について実施例に基づいて説明する。
【００１１】
本発明の代表的な実施例によれば、情報処理装置は、プロセッサコアの処理能力を記録するテーブルを有し、各プロセッサコアの処理性能を測定し、当該測定結果にてテーブルを更新し、当該テーブルを用いて処理のスケジューリングを行なう。  
以下、図面を参照しながら、本発明の実施形態を説明する。
【実施例１】
【００１２】
まず、図１〜図１６により、本発明による情報処理装置の第１の実施例として、負荷分散による並列処理を実現する例を説明する。
【００１３】
図１は、第１の実施例になる情報処理装置の全体構成を示す図である。並列演算管理装置１００は、スケジュール装置（スケジューリング機能）１１０、半導体装置に搭載された各プロセッサコア（演算プロセッサ）１２０〜１３５の動作性能に影響を及ぼす特性（静的及び動的な特性）を測定する動作特性測定ユニット１４０〜１５５からなる。ここで、動作性能に影響を及ぼす特性として、代表的なものを上げると、動作周波数、動作電圧(供給される電圧)などが上げられる。並列演算管理装置１００は、各種入出力装置１６０やデータ転送の制御を行なうＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１７０などに接続される。また、スケジュール装置１１０ならびに動作特性測定ユニット１４０〜１５５はプロセッサコア１２０〜１３５に接続される。各プロセッサコアは、プログラムカウンタを有し、タスクすなわち入力された命令コードに応じた処理を行なう演算装置である。各プロセッサコアは、同じスペックであっても良い。
【００１４】
動作特性測定ユニット１４０〜１５５は、それぞれ接続されている各プロセッサコアの動作特性、換言すると、並列演算管理装置の稼動時における動的な特性を測定し、スケジュール装置１１０に測定結果を通知する。スケジュール装置１１０は、この測定結果及び並列演算管理装置の静的な特性の測定結果に応じて、プロセッサコアに割り当てる処理内容や仕事量を決定する。また、スケジュール装置１１０は、各プロセッサコアに対して処理内容の通知を行い、さらには、入出力装置１６０やＤＭＡＣ１７０を用いた外部機器とのデータ転送などを行う。
【００１５】
図２は、動作特性測定ユニット１４０〜１５５の一実施例を示す構成図である。動作特性測定ユニット１４０は、リングオシレータ２１０、カウンタ２２０、リングオシレータ２１０とカウンタ２２０を制御する制御部２３０からなる。動作特性測定ユニット１４０は半導体実装上、測定対象であるプロセッサコア１２０の近傍に配置されており、プロセッサコア１２０と同じ電源電圧Ｖｄｄ-1が供給される。このとき、電源電圧Ｖｄｄ-1は周囲の動作状況に応じた電圧降下が発生している場合がある。動作特性測定ユニット１４０はリングオシレータ２１０を有しており、発振を行なう。発振速度は電源電圧Ｖｄｄ-1によって変動するため、単位時間あたりの発振数をカウンタ２２０によりカウントすることでプロセッサコアの電源電圧、ひいてはその動的な特性を測定することになり、その結果をスケジュール装置１１０に通知する。このとき、制御部２３０はリングオシレータ２１０の発振やカウンタ２２０の動作について制御する。
【００１６】
同様に、動作特性測定ユニット１４１〜１５５も、それぞれのプロセッサコアの動作特性、すなわち電源電圧Ｖｄｄ-nを測定し、その結果をスケジュール装置１１０に通知する。
【００１７】
ここで、動作特性測定ユニット１４０〜１５５により測定されるプロセッサコアの電源電圧Ｖｄｄ-nについて、図３（図３Ａ，図３Ｂ，図３Ｃ）で説明する。図３Ａは、一つの半導体基板（チップ）に実装された複数のプロセッサコアを有する情報処理装置１０の一例を示す平面図である。ここでは、わかりやすくするために２５個のプロセッサコアが実装されている例を示しているが、その数は多くしてもよいし、少なくともよい。各プロセッサコアへの電力は、一般に、チップの外周の共通電源から配線などを介して供給される。すなわち、図３Ａに示すように、チップの周囲に設けられ制御された共通の電圧（例えば１．０Ｖ）が印加される複数の電源供給端子（電圧Ｖｄｄ−０）１９０から複数の配線１８０を介して、各プロセッサコアに給電される。なお、ＰＣ向けのチップなどでは、チップ上部に電源供給のビア等を形成し、プロセッサコアが形成される領域の上面から電源を供給する例もあるが、面積や製造コストのオーバーヘッドが大きいため、組込み向けのＬＳＩではあまり用いられない。
【００１８】
図３Ｂは図３Ａの等価回路図である。図３Ｃは、チップの中央に位置するプロセッサコア１３２への給電経路を拡大して示す等価回路図である。各プロセッサコアを抵抗と容量の簡略図で表すと、内部のプロセッサコア１３２等に供給される電圧は、周囲のプロセッサコアや配線の、抵抗や容量によって低くなる。すなわち、配線抵抗や配線容量、ゲート容量などにより、チップ中央のプロセッサコア１３２に供給される電圧は、チップ周辺のロセッサコアに供給される電圧よりも小さいものとなる。またこの電圧は、周囲のプロセッサコアの電源のＯＮ／ＯＦＦ状況や動作状況によっても動的に変動する。そこで、本発明では、各プロセッサコアの電源電圧Ｖｄｄ−１０，Ｖｄｄ−１１，Ｖｄｄ−１２を、静的な状態及び動的な状態について、各々検知するものである。
【００１９】
なお、本発明の対象となる情報処理装置１０は、１枚の半導体基板（チップ）に実装された複数のプロセッサコアで構成されるものでも良く、各々電源供給端子を有する複数枚の半導体基板（チップ）に分割して実装された複数のプロセッサコアで構成されるものでも良い。
【００２０】
本実施例では、各動作特性測定ユニットをプロセッサコア毎に接続しているが、１つの動作特性測定ユニットを複数のプロセッサコアに接続するようにしても良い。例えば、チップに実装されるプロセッサコアの数が多く、隣接するプロセッサコア間の電圧降下が小さい場合には、プロセッサコア毎ではなく、一つのチップに形成される複数のプロセッサコアに対して１つの動作特性測定ユニットを対応付けて実装しても良い。これは、特にプロセッサコアの実装密度が高い場合に有効である。このように、近接する複数のプロセッサコアに対する電源電圧の降下は同じであるとみなして処理することで、プロセッサコア毎に測定するものとほぼ同じ特性が得られる。
【００２１】
また、電圧と同様に、各コアの温度を測定して同じようにスケジューリングしても良い。あるいは、電圧、温度、その他プロセッサコアの動作特性に影響を及ぼす複数のパラメータについて、プロセッサコア毎に、もしくは複数のプロセッサコア毎にそれらの動作特性測定を行い、それらの結果に基づいて各プロセッサコア制御するように構成しても良い。
【００２２】
図４は、本実施例のスケジュール装置１１０の一実施例を示す構成図である。スケジュール装置１１０は、動的特性測定結果格納部３００、静的特性測定結果格納部３１０、理論計算結果格納部３２０、ドメイン情報格納部３３０、動作情報格納部３４０、スケジューリング部（スケジューリングユニット）３５０、管理方法設定レジスタ３６０からなる。スケジューリング部３５０は、ベンチマークプログラム３５２及びプログラムで構成される動的適性配分ユニット３５４を備えている。ベンチマークプログラム３５２は、各プロセッサコアの静的特性を測定するために用いられる。なお、スケジュール装置１１０は、レジスタや記憶装置を有するいずれかのプロセッサコア(複数のプロセッサのいずれか）によって実装されても良い。
【００２３】
図４に示すように、ベンチマークプログラム３５２が、スケジュール装置１１０に実装されていても良く、また、図５に示すように、ベンチマークプログラムを外部メモリＭＥＭに準備し、複数のプロセッサコアのうち一つ（ここでは、ＣＰＵコア１２０)が外部メモリＭＥＭから読み出し、その読み出したベンチマークプログラムを例えばCore1に受け渡して、実行してもよい。例えば、ＣＰＵコア１２０から他のコアに対して、「電源ＯＮ」、「電源ＯＦＦ」、「ベンチマークプログラムの実行」、及び、「ベンチマークプログラムの休止」、を指示し、さまざまな状態における各コアの電圧状態を計測する。具体的には、各ＣＰＵコアの内部メモリに、実行コードや処理データを転送し、またレジスタへ値を書き込むことで実行する。
【００２４】
また、ベンチマークプログラム３５２は、入出力装置１６０を経て外部からスケジューリング部３５０にロードするようにしても良い。
【００２５】
動的特性測定結果格納部３００は、動作特性測定ユニット１４０〜１５５から通知される動的特性の測定結果を動的に格納する記憶装置と、書き込みと読み出しを制御する制御部を有する。
【００２６】
図６に、動的特性測定結果格納部３００に格納される上記測定結果の例を示す。ここに示すように、各動作特性測定ユニット１４０〜１５５は、単位時間あたりのリングオシレータ２１０の発振数をカウントし、その結果を動的特性測定結果格納部３００に格納する。カウント値（例えば１００，１１０）が大きいほど、そのプロセッサコアの電源電圧が高く、従って演算性能が高いことを意味している。制御部（スケジューリング部３５０）によって通知を受け付けないよう制御されない限り、記憶装置３００は、動作特性測定ユニット１４０〜１５５の測定結果を受け取り、随時更新する。
【００２７】
スケジューリング部３５０は、ベンチマークプログラム３５２などにより、半導体装置製造後に各プロセッサコアの状態を変更させたときの性能を静的特性として測定し、その測定結果を静的特性測定結果格納部３１０に格納する。具体的には、図７に示すようにＢＵＳＹ状態、ＩＤＬＥ状態、ＳＬＥＥＰ状態、電源オフ状態というように各プロセッサコアの状態を変化させ、さまざまな状態のときの電圧変動の結果を測定し、記録しておく。これは、動的に性能を測定することができない場合や、動的に性能を測定することによる電力や性能のオーバーヘッドがシステムに与える悪影響が大きくなる場合にも、効率の良いスケジューリングを行なうための情報となる。
【００２８】
また、スケジューリング部３５０は、半導体装置上のプロセッサコアや配線などの抵抗値や容量値をモデル化し、各プロセッサコアの状態を変更したときの動作特性測定結果を計算によって予測し、または入出力装置１６０から予測値を入力し、それらの値を理論計算結果格納部３２０に格納する。この結果を用いれば、動作特性の測定をおこなわなくても電圧降下を見積もることができる。理論計算結果格納部３２０も、静的特性測定結果格納部と同様に、図７に示すような、状態に応じた演算性能を複数保持する。
【００２９】
ここで、静的特性測定結果格納部３１０ならびに理論計算結果格納部３２０については、すべてのパターン結果を記憶装置に保持しておく必要はない。なお、動的特性に加えて静的特性を有することで、セキュリティの関係上、外部コアからアクセスできないＣＰＵコア等についても、その時点での動作状態に応じてスケジューリングをすることが可能となる。
【００３０】
ドメイン情報格納部３３０には、プロセッサコアがどのオペレーティングシステムの管理下にあるか、もしくは管理されていないかという情報を格納する。
【００３１】
図８に示すように、すべてのプロセッサコアがオペレーティングシステムによって管理されていない場合は、すべてのプロセッサコアのドメインは０である。一方、図９に示すようにオペレーティングシステム７００がプロセッサコア１２０〜１２１を管理し、オペレーティングシステム７０１がプロセッサコア１２２〜１２３を管理し、オペレーティングシステム７０２がプロセッサコア１２４〜１３１を管理し、オペレーティングシステム７０３がプロセッサコア１３２〜１３５を管理しているような場合は、図１０に示すようにドメイン毎に異なる値が記録される。このドメイン情報を用いることにより、あるプロセッサコアからあるドメインに対して並列処理の実行を指示することができる。またこのドメインと共にプロセッサコアの情報を公開するレベルも記録することができ、自分の属するドメイン以外の動作情報や電圧測定結果を照会する際の許可判定にも用いることができる。これにより、システムのセキュリティ上アクセスが許されないドメインを設定することができる。
【００３２】
動作情報格納部３４０には、各プロセッサコアが現在どのような状態にあるかという情報を格納する。図１１に、各プロセッサコアの動作状態を格納する動作情報格納部３４０における格納内容の一例を示す。動作情報格納部３４０には、各プロセッサコアに関して、先ほど述べたＢＵＳＹ状態、ＩＤＬＥ状態、ＳＬＥＥＰ状態、電源オフ状態などの情報が格納される。
【００３３】
スケジューリング部３５０は、動的特性測定結果格納部３００から動的な動作特性測定結果を読み出し、その結果によって各プロセッサコアに割り振る負荷の大きさを変更する。スケジューリング部３５０はまた、動作情報格納部３４０から読み出すプロセッサ動作情報を元に、その状態における静的特性測定結果や理論計算結果を静的特性測定結果格納部３１０や理論計算結果格納部３２０から読み出し、各プロセッサコアの演算性能に応じてスケジューリングを行い、その結果に基づき各プロセッサコアに割り振る負荷の大きさを制御する。
【００３４】
管理方法設定レジスタ３６０は、あるプロセッサコアから並列処理を実行する際に、分散の仕方などを格納するレジスタである。具体的には、並列処理実行を指示するプロセッサコアのナンバー、実行を指示したいドメイン、並列処理を実行したいプロセッサコア数、実行する処理の優先度、機能分散か負荷分散か、処理実行に用いるデータが格納されているアドレスとサイズなどである。具体的な指定方法については後述する。
【００３５】
次に、本実施例の情報処理装置の動作について、図１２乃至図１４で説明する。図１２は、スケジュール装置１１０が並列処理のスケジューリングを行なう一例を示す、フローチャートである。図１３は、スケジュール装置１１０が各プロセッサコア（ＣＰＵ）に仕事を割り振る際の動的特性測定結果と割り当てる仕事量の関係を示す図である。図１４は、各プロセッサコアの動作状態を示すタイムチャートである。
【００３６】
以下ではまず、スケジュール装置１１０がすべてのプロセッサコア（ＣＰＵ０〜ＣＰＵ１５）を管理し、スケジュールを行う場合の一例を示す。
【００３７】
スケジュール装置１１０は、一定時間経過、もしくは任意のコアからのスケジューリング要求があるかを判定する（Ｓ１２０２）。スケジューリングのタイミングは、任意のプロセッサコア、例えば、図１４においてＣＰＵ３が新しくプログラムを実行するときである。ＹＥＳの場合、自動的に、または任意のコアからの要求（ここではＣＰＵ３からの並列処理の要求）により、各ＣＰＵの電圧を測定し、その結果を動的特性測定結果格納部３００に記録する（Ｓ１２０４）。次に、任意のコア（ＣＰＵ３）が、スケジュール装置１１０に対して、仕事に関する実行コア数、実行コード、実行データ、またはそれらの存在アドレスを送信する（Ｓ１２０６）。
【００３８】
さらに、スケジュール装置１１０は、電圧測定結果、実行コア数、データ量を考慮して、仕事（並列処理）を割り振る対象となるコアを選定し、各コアに割り付ける仕事量を算出する。ここで示した例では、図１３に示したように、各コアＣＰＵ１０〜ＣＰＵ１３の電圧の比（カウント値）に応じて並列処理の仕事量を割り振る。すなわち、カウント値の逆数を仕事量としている（Ｓ１２０８）。スケジュール装置１１０は、次に、仕事が与えられる４つのコアＣＰＵ１０〜ＣＰＵ１３に対して、夫々、実行コード、処理データ、またはそれらの存在するアドレスを送信する（Ｓ１２１０）。各コアは与えられた実行コードによって、データを処理する（Ｓ１２１２）。
【００３９】
スケジュール装置１１０の動的適性配分ユニット３５４は、上記Ｓ１２０８に示したように、実現したい並列処理内容と分割数、実現したい並列処理の重要度などの情報を管理方法設定レジスタから読出し、加えて動的特性結果格納部３００から動的な動作特性測定結果を読出し、処理の割り振りを行う。このとき、図１４に示したように、すでに幾つかのプロセッサコア（ここでは、ＣＰＵ０〜ＣＰＵ２）では違う並列処理が実行されているならば、動作していないプロセッサ（ここでは、ＣＰＵ１０〜ＣＰＵ１３の４つのコア）の中で負荷分散を行う。実行する並列処理が入力データをあまり必要としない場合、例えば、処理に必要な引数のみを指定すれば良いような場合は、該当するプロセッサコアの持つローカルメモリなどに対して命令コードや引数値を書き込み、通知する。また、実行する並列処理が大きな命令コードや入力データの転送を必要とする場合は、ＤＭＡＣ１７０を用いてプロセッサコア内のローカルメモリや複数のプロセッサコアで共有する共有メモリにデータ転送を行なう。
【００４０】
図１５は、本発明により、各コアＣＰＵ１０〜ＣＰＵ１３の電圧と、並列処理で割り振られる仕事量の関係を示している。このように、動的適性配分ユニット３５４は、電圧に応じた仕事量を各コアに割り振り、並列処理がほぼ同時に終了するように制御する。これにより、処理時間の短縮、または動作周波数を低減することなどによる処理実行の低消費電力化を実現することができる。
【００４１】
図１６は、比較のために示した、従来方式、すなわち、各コアＣＰＵ１０〜ＣＰＵ１３の電圧の如何に関係なく均一に仕事量を割り振る例を示している。例えば、ＣＰＵ１０は電圧が低いため同じ仕事量でも処理が遅い。従って、並列処理の処理時間が長くなる。あるいは、処理実行の消費電力の増大を招くことになる。
【００４２】
このように、本実施例によれば、半導体装置上の電圧変動によるプロセッサコアの演算性能の違いを把握する技術と、異なる演算性能に応じたスケジューリングを行なう技術により、効率的な並列処理を実現する。これにより、情報処理装置の処理時間の短縮、または処理実行の低消費電力化を実現することができる。
【実施例２】
【００４３】
次に、図１７により、本発明による情報処理装置の第２の実施例として、機能分散を行う場合の例を以下に説明する。なお、第１の実施例と同じ機能に関しては、説明を省略する。
【００４４】
図１７において、スケジュール装置１１０は、一定時間経過、もしくは任意のコアからのスケジューリング要求があるかを判定する（Ｓ１７０２）。任意のコアからの要求（ここでは機能分散処理の要求）により、各ＣＰＵの電圧及び温度を測定し、それらの結果を動的特性測定結果格納部３００に記録する（Ｓ１７０４）。次に、任意のコアが、スケジュール装置１１０に、仕事（機能分散）に関する機能毎の仕事量、実行コア数、実行コード、実行データ、またはそれらの存在アドレスを送信する（Ｓ１７０６）。次に、スケジュール装置１１０が、電圧、温度の測定結果、機能毎の仕事量、実行コア数、データ量を考慮して、仕事を割り振る対象となる各コアの仕事内容を決定する。このとき、電圧、温度に応じて仕事量を割り振る（Ｓ１７０８）。仕事が割り振られる各コアに対して、実行コード、処理データ、またはそれらの存在するアドレスを送信する（Ｓ１７１０）。各コアは与えられた実行コードによって、データを処理する（Ｓ１７１２）。
【００４５】
上記Ｓ１７０８において、スケジューリング部３５０は、動的特性測定結果を用いてプロセッサコア毎の演算性能を把握した後、仕事量が大きな機能を演算性能が高いプロセッサコアに割り当て、仕事量が小さな機能を演算性能が小さいプロセッサコアに割り当てる。ここで、複数の機能をあるプロセッサコアで実行した場合に、実行時間が短い機能ほど、仕事量が小さい機能とする。また、実行命令数やステップ数が小さいものを、仕事量が小さい機能としてもよい。機能分散を行う場合、それぞれのプロセッサコアに対して実行する命令コードを転送しても良いし、引数を渡すことによって実行するコードを切替える形としても良い。
【００４６】
本実施例によれば、半導体装置上の電圧、温度の変動によるプロセッサコアの演算性能の違いを把握する技術と、異なる演算性能に応じたスケジューリングを行なう技術により、効率的な機能分散処理を実現する。これにより、処理時間の短縮、または処理実行の低消費電力化を実現することができる。
【実施例３】
【００４７】
本発明の他の実施例として、あるプロセッサコアから複数のプロセッサに対して並列処理の実行等を指示する例について説明する。なお、第１、第２の実施例と同じ機能に関しては、説明を省略する。
【００４８】
プロセッサコア１２０は、スケジュール装置１１０内の管理方法設定レジスタ３６０に対して、図１８に示すような情報を送信する。具体的には、指示を出すプロセッサコア番号、複数のプロセッサコアを管理しているオペレーティングシステムに対して実行を指示する場合はそのドメイン番号、並列動作させるプロセッサコアの個数、並列処理の優先度、負荷分散か機能分散か、データ転送を必要とする場合のデータの開始アドレスとそのサイズである。これらのうち幾つかは必要でなければ入力を省略することができる。
【００４９】
例えば、図８に示すようにオペレーティングシステムが動作していない場合や、幾つかのオペレーティングシステムが動作していてもそれ以外のプロセッサコアで並列処理を実行したい場合は、ドメインの設定をする必要はない。また、並列動作させるプロセッサコア数に関して、特に設定しない場合はデフォルトで設定してある並列数で実行する。並列処理の指示が複数のプロセッサコアからスケジュール装置１１０に送信された場合、優先度に応じて処理を実行する。すなわち、並列処理の実行順序を入れ替えたり、性能が高いプロセッサを割り当てたりする。優先度を特に設定しない場合は、先にリクエストを出したものから実行する。また負荷分散が指示されれば処理するデータを分割し、機能分散を指示した場合は、仕事量が大きいものから性能の高いプロセッサコアに割り当てる。
【００５０】
次に、複数のプロセッサを管理しているオペレーティングシステムから並列処理実行を指示した場合について説明する。ここでは、図９に示すように、オペレーティングシステム７００〜７０３がプロセッサコアを管理している場合について説明する。
【００５１】
オペレーティングシステム７００がプロセッサコア１２０で動作しているとして、オペレーティングシステム７００からスケジュール装置１１０に対して並列処理の実行を指示する。例えば、図１８にSource Core No. 0 として示すように、オペレーティングシステム７０２に対して、プロセッサコア４つを用いた並列処理を指示する。プライオリティは特に指定しない。負荷分散の指示であり、実行する命令コードの先頭アドレスとサイズ、処理対象となるデータの先頭アドレスと、サイズを指示する。送信先がオペレーティングシステムの場合は、オペレーティングシステムに対して、測定された動作特性に応じた負荷分散結果を通知し、実際の負荷分散処理はオペレーティングシステムが管理・実行する。
【００５２】
また、図９に示すように、すべてのプロセッサコアがオペレーティングシステムによって管理されている場合、オペレーティングシステムは管理下のプロセッサがどのような状態であるかを把握している。そのため、すべてのオペレーティングシステムがあるタイミングで管理下のプロセッサコアの状態をスケジュール装置１１０の動作情報格納部３４０に通知することで、スケジュール装置１１０はすべてのプロセッサコアの状態を把握することができる。すなわち、この結果を用いることで、動的な動作特性の測定を行なわずに、静的な測定結果や理論計算結果を用いたスケジューリングを行なうことができる。
【実施例４】
【００５３】
図１９は、本発明の動作特性測定ユニット１４０〜１５５の他の実施例を示す構成図である。動作特性測定ユニット１４０は、増幅部１１１０、Ａ／Ｄ変換部１１２０、増幅部１１１０とＡ／Ｄ変換部１１２０を制御する制御部１１３０からなる。動作特性測定ユニット１４０は、半導体実装上、測定対象であるプロセッサコア１２０の近傍に配置されており、プロセッサコア１２０と同じ電源電圧Ｖｄｄ-1が供給される。このとき、図３（図３Ａ，図３Ｂ，図３Ｃ）で説明したように、プロセッサコア１２０の電源電圧Ｖｄｄ-1は周囲の動作状況に応じた電圧降下が発生している場合がある。動作特性測定ユニット１４０は増幅部１１１０によってプロセッサコア１２０に印加される電圧Ｖｄｄ-1を増幅し、Ａ／Ｄ変換部１１２０によってＡ／Ｄ変換をおこない、スケジュール装置１１０に通知する。このとき、増幅部１１１０とＡ／Ｄ変換部１１２０の制御を制御部１１３０が行なう。
【００５４】
また同様に、動作特性測定ユニット１４１〜１５５も、それぞれのプロセッサコアの動作特性、すなわち電源電圧Ｖｄｄ-nを測定し、スケジュール装置１１０に通知する。
【００５５】
また、各プロセッサコアに供給される電源電圧Ｖｄｄ-nを、１つないし複数の参照電圧と比較し、その比較結果をスケジュール装置１１０に通知する構成としても良い。例えば、第１の参照電圧を基準電圧とする第１の比較器の出力側に、第１の参照電圧より低い第２の参照電圧を基準電圧とする第２の比較器及び第１の参照電圧より高い第３の参照電圧を基準電圧とする第３の比較器を接続し、（以下、同様）、各比較器に電源電圧Ｖｄｄ-nを入力し、複数の参照電圧と比較することで、あるプロセッサコアの電源電圧Ｖｄｄ-nの値（もしくは範囲）を求めることができる。
【００５６】
なお、電源電圧Ｖｄｄ-nの値は、近接した位置にある複数のプロセッサコア単位ごとに行っても良いことは言うまでもない。また、本実施例により求められる電源電圧の情報に加えて、温度などプロセッサコアの動作特性に影響を及ぼす他のパラメータの測定情報も同時に利用可能であることは、先に述べた実施例と同じである。
【００５７】
本実施例によれば、簡単な構成で半導体装置上の電圧変動による各プロセッサコアの演算性能の違いを把握し、その結果に基づき各プロセッサコアの演算性能に応じたスケジューリングを行なうことにより、メニイコア並列演算処理装置の処理時間の短縮、または処理実行の低消費電力化を実現することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施例になるメニイコア並列演算管理装置の全体構成を示す図である。
【図２】第１の実施例における動作特性測定ユニットの構成例を示す図である。
【図３Ａ】本発明の適用の対象となる、半導体基板（チップ）に実装されたメニイコア並列演算装置の一例を示す平面図である。
【図３Ｂ】図３Ａの等価回路図である。
【図３Ｃ】図３Ａにおけるチップの中央に位置するプロセッサコアへの、給電経路を拡大して示す等価回路図である。
【図４】図１のメニイコア並列演算管理装置におけるスケジュール装置の一例を示す図である。
【図５】第１の実施例における、ベンチマークプログラムの実装の状況を説明する図である。
【図６】第１の実施例における、動的な動作特性測定結果を格納する動的特性測定結果格納部における格納内容の一例を示す図である。
【図７】第１の実施例における、静的な動作特性測定結果を格納する静的特性測定結果格納部や、理論計算による計算結果を格納する理論計算結果格納部における格納内容の一例を示す図である。
【図８】メニイコア演算装置における動作状態の一例として、すべてのプロセッサコアがオペレーティングシステムによって管理されていない場合を示す図である。
【図９】メニイコア演算装置における動作状態の一例として、プロセッサコアがオペレーティングシステムによって管理されている場合を示す図である。
【図１０】ドメイン情報を格納するドメイン情報格納部における格納内容の一例を示す図である。
【図１１】各プロセッサコアの動作状態を格納する動作情報格納部における格納内容の一例を示す図である。
【図１２】第１の実施例において、スケジュール装置が並列処理のスケジューリングを行なう一例を示すフローチャートである。
【図１３】スケジュール装置が各プロセッサコア（ＣＰＵ）に仕事量を割り振る状態を示す図である。
【図１４】各プロセッサコアの動作状態を示すタイムチャートである。
【図１５】本発明により、各コアＣＰＵ１０〜ＣＰＵ１３の電圧と、並列処理で割り振られる仕事量の関係を示す図である。
【図１６】比較のために示した、従来方式により並列処理で割り振られる仕事量の関係を示す図である。
【図１７】第２の実施例において、スケジュール装置が機能分散処理のスケジューリングを行なう一例を示すフローチャートである。
【図１８】プロセッサコアからスケジュール装置に対して送信される並列演算指示内容の一例を示した図である。
【図１９】プロセッサコアの動作特性を測定する本発明の動作特性測定ユニットの他の実施例を示す構成図である。
【符号の説明】
【００５９】
１００・・・メニイコア並列演算管理装置
１１０・・・スケジュール装置
１２０〜１３５・・・プロセッサコア
１４０〜１５５・・・動作特性測定ユニット
１６０・・・入出力装置
１７０・・・Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ
２００・・・電源電圧
２１０・・・リングオシレータ
２２０・・・カウンタ
２３０・・・制御部
３００・・・動的特性測定結果格納部
３１０・・・静的特性測定結果格納部
３２０・・・理論計算結果格納部
３３０・・・ドメイン情報格納部
３４０・・・動作情報格納部
３５０・・・スケジューリング部
３６０・・・管理方法設定レジスタ
７００・・・オペレーティングシステム管理範囲
７０１・・・オペレーティングシステム管理範囲
７０２・・・オペレーティングシステム管理範囲
７０３・・・オペレーティングシステム管理範囲
１１１０・・・増幅部１１１０
１１２０・・・Ａ／Ｄ変換部１１２０
１１３０・・・制御部１１３０。
【図１】
2010039923.tif 000003
【図２】
2010039923.tif 000004
【図３Ａ】
2010039923.tif 000005
【図３Ｂ】
2010039923.tif 000006
【図３Ｃ】
2010039923.tif 000007
【図４】
2010039923.tif 000008
【図５】
2010039923.tif 000009
【図６】
2010039923.tif 000010
【図７】
2010039923.tif 000011
【図８】
2010039923.tif 000012
【図９】
2010039923.tif 000013
【図１０】
2010039923.tif 000014
【図１１】
2010039923.tif 000015
【図１２】
2010039923.tif 000016
【図１３】
2010039923.tif 000017
【図１４】
2010039923.tif 000018
【図１５】
2010039923.tif 000019
【図１６】
2010039923.tif 000020
【図１７】
2010039923.tif 000021
【図１８】
2010039923.tif 000022
【図１９】
2010039923.tif 000023