JP2010039923A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2010039923A JP2010039923A JP2008204389A JP2008204389A JP2010039923A JP 2010039923 A JP2010039923 A JP 2010039923A JP 2008204389 A JP2008204389 A JP 2008204389A JP 2008204389 A JP2008204389 A JP 2008204389A JP 2010039923 A JP2010039923 A JP 2010039923A
- Authority
- JP
- Japan
- Prior art keywords
- processor core
- function
- processor
- processor cores
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】複数のプロセッサコアを備える半導体装置において、抵抗と容量による電圧降下によって、すべてのプロセッサコアに同じ電源電圧を供給できなくなり、同じプロセッサコアであっても演算性能が均一ではなくなる。このため、効率の良い分散処理が実現できない。
【解決手段】複数のプロセッサコアの処理能力を記録するテーブルを有し、各プロセッサコアの処理動作特性を測定し、当該測定結果にてテーブルを更新し、当該テーブルを用いて処理のスケジューリングを行なうことで、効率的な並列処理を実現する。
【選択図】図1
【解決手段】複数のプロセッサコアの処理能力を記録するテーブルを有し、各プロセッサコアの処理動作特性を測定し、当該測定結果にてテーブルを更新し、当該テーブルを用いて処理のスケジューリングを行なうことで、効率的な並列処理を実現する。
【選択図】図1
Description
本発明は、情報処理装置に関し、より具体的には、半導体装置に搭載された複数のプロセッサコアにより並列演算を行う情報処理装置に関する。
民生機器や産業機器、社会基盤などに求められる演算性能は増加し続けている一方で、半導体プロセスの微細化による半導体装置の演算性能向上が難しくなってきている。そこで、各種半導体装置は微細化による性能向上だけではなく、半導体装置に搭載されるプロセッサの数を増やし、並列処理を行なうことにより演算性能を向上させる方向に進んでいる。実際、パーソナルコンピュータに使用される汎用CPU(Central Processing Unit)や、民生機器に使用される組込みSoC(System on Chip)においても、2〜4個のプロセッサコアを搭載した、いわゆるマルチコアプロセッサが主流となってきている。ここで、プロセッサコアとはプログラムカウンタを有し、入力された命令コードに応じた処理を行なう演算装置である。今後はさらに、1つのSoCに搭載されるプロセッサコア数が増加し、メニイコア(Many Core)SoCへと移行していくことが予想される。
このような流れの中、複数のプロセッサを用いたソフトウェアの実行方法も検討されており、例えば、特許文献1には、複数のプロセッサに対してプログラムを実行させ、その計算時間から負荷分散を行うという技術が開示されている。
我々の研究によれば、半導体装置に搭載されるプロセッサコアの数を増加させると、抵抗と容量による電圧降下により、すべてのプロセッサコアに同じ電源電圧を供給できなくなるという問題が生じることがわかった。すなわち、我々の研究によれば、あるプロセッサコアにおける電源電圧降下は、半導体装置において、ある時刻に活性化されている部分とそうでない部分、すなわち、ある時刻に電力を消費している部分とそうでない部分、またその消費量によって下降幅が異なる。更には、半導体装置を製造した際の製造ばらつきによっても電圧降下の下降幅が異なる。
前記特許文献1には、複数のプロセッサを用いて並列演算を行う情報処理装置において、このように各プロセッサコアの電圧降下の下降幅が異なるという課題についての開示はない。
電源電圧が低下したプロセッサコアは、電源電圧が降下しないプロセッサコアと比べて、動作可能周波数が低下する。これは、同じ演算プロセッサコアであっても、電源電圧によって演算性能が異なることを意味している。そのため、複数のプロセッサが同期して並列処理を実現する場合に、効率の良い負荷分散が実現できない。これは例えば、複数のプロセッサコアが同じ性能(又は、同じ仕様)を有することを前提として作成されたプログラムを実行するときに、実行時間が大きくなるだけでなく、電力効率も低下してしまう。
本発明の代表的なものの一例を示せば以下の通りである。即ち、本発明の情報処理装置は、情報処理装置を構成する複数のプロセッサコアの夫々に関して、その動作性能に影響を及ぼす特性を測定する特性測定ユニットと、前記各プロセッサコアにおける並列演算処理を管理するスケジューリング機能とを備え、前記測定された特性に基づいて、前記並列演算処理のスケジューリングを行なうことを特徴とする。
本発明によれば、効率的な並列処理を実現することができる。
以下、半導体装置に搭載された複数のプロセッサコアにより並列演算を行う情報処理装置において、効率の良い分散処理を実現し、処理時間の短縮、低消費電力化を実現することのできる本発明について最良の形態について実施例に基づいて説明する。
本発明の代表的な実施例によれば、情報処理装置は、プロセッサコアの処理能力を記録するテーブルを有し、各プロセッサコアの処理性能を測定し、当該測定結果にてテーブルを更新し、当該テーブルを用いて処理のスケジューリングを行なう。
以下、図面を参照しながら、本発明の実施形態を説明する。
以下、図面を参照しながら、本発明の実施形態を説明する。
まず、図1〜図16により、本発明による情報処理装置の第1の実施例として、負荷分散による並列処理を実現する例を説明する。
図1は、第1の実施例になる情報処理装置の全体構成を示す図である。並列演算管理装置100は、スケジュール装置(スケジューリング機能)110、半導体装置に搭載された各プロセッサコア(演算プロセッサ)120〜135の動作性能に影響を及ぼす特性(静的及び動的な特性)を測定する動作特性測定ユニット140〜155からなる。ここで、動作性能に影響を及ぼす特性として、代表的なものを上げると、動作周波数、動作電圧(供給される電圧)などが上げられる。並列演算管理装置100は、各種入出力装置160やデータ転送の制御を行なうDMAC(Direct Memory Access Controller)170などに接続される。また、スケジュール装置110ならびに動作特性測定ユニット140〜155はプロセッサコア120〜135に接続される。各プロセッサコアは、プログラムカウンタを有し、タスクすなわち入力された命令コードに応じた処理を行なう演算装置である。各プロセッサコアは、同じスペックであっても良い。
動作特性測定ユニット140〜155は、それぞれ接続されている各プロセッサコアの動作特性、換言すると、並列演算管理装置の稼動時における動的な特性を測定し、スケジュール装置110に測定結果を通知する。スケジュール装置110は、この測定結果及び並列演算管理装置の静的な特性の測定結果に応じて、プロセッサコアに割り当てる処理内容や仕事量を決定する。また、スケジュール装置110は、各プロセッサコアに対して処理内容の通知を行い、さらには、入出力装置160やDMAC170を用いた外部機器とのデータ転送などを行う。
図2は、動作特性測定ユニット140〜155の一実施例を示す構成図である。動作特性測定ユニット140は、リングオシレータ210、カウンタ220、リングオシレータ210とカウンタ220を制御する制御部230からなる。動作特性測定ユニット140は半導体実装上、測定対象であるプロセッサコア120の近傍に配置されており、プロセッサコア120と同じ電源電圧Vdd-1が供給される。このとき、電源電圧Vdd-1は周囲の動作状況に応じた電圧降下が発生している場合がある。動作特性測定ユニット140はリングオシレータ210を有しており、発振を行なう。発振速度は電源電圧Vdd-1によって変動するため、単位時間あたりの発振数をカウンタ220によりカウントすることでプロセッサコアの電源電圧、ひいてはその動的な特性を測定することになり、その結果をスケジュール装置110に通知する。このとき、制御部230はリングオシレータ210の発振やカウンタ220の動作について制御する。
同様に、動作特性測定ユニット141〜155も、それぞれのプロセッサコアの動作特性、すなわち電源電圧Vdd-nを測定し、その結果をスケジュール装置110に通知する。
ここで、動作特性測定ユニット140〜155により測定されるプロセッサコアの電源電圧Vdd-nについて、図3(図3A,図3B,図3C)で説明する。図3Aは、一つの半導体基板(チップ)に実装された複数のプロセッサコアを有する情報処理装置10の一例を示す平面図である。ここでは、わかりやすくするために25個のプロセッサコアが実装されている例を示しているが、その数は多くしてもよいし、少なくともよい。各プロセッサコアへの電力は、一般に、チップの外周の共通電源から配線などを介して供給される。すなわち、図3Aに示すように、チップの周囲に設けられ制御された共通の電圧(例えば1.0V)が印加される複数の電源供給端子(電圧Vdd−0)190から複数の配線180を介して、各プロセッサコアに給電される。なお、PC向けのチップなどでは、チップ上部に電源供給のビア等を形成し、プロセッサコアが形成される領域の上面から電源を供給する例もあるが、面積や製造コストのオーバーヘッドが大きいため、組込み向けのLSIではあまり用いられない。
図3Bは図3Aの等価回路図である。図3Cは、チップの中央に位置するプロセッサコア132への給電経路を拡大して示す等価回路図である。各プロセッサコアを抵抗と容量の簡略図で表すと、内部のプロセッサコア132等に供給される電圧は、周囲のプロセッサコアや配線の、抵抗や容量によって低くなる。すなわち、配線抵抗や配線容量、ゲート容量などにより、チップ中央のプロセッサコア132に供給される電圧は、チップ周辺のロセッサコアに供給される電圧よりも小さいものとなる。またこの電圧は、周囲のプロセッサコアの電源のON/OFF状況や動作状況によっても動的に変動する。そこで、本発明では、各プロセッサコアの電源電圧Vdd−10,Vdd−11,Vdd−12を、静的な状態及び動的な状態について、各々検知するものである。
なお、本発明の対象となる情報処理装置10は、1枚の半導体基板(チップ)に実装された複数のプロセッサコアで構成されるものでも良く、各々電源供給端子を有する複数枚の半導体基板(チップ)に分割して実装された複数のプロセッサコアで構成されるものでも良い。
本実施例では、各動作特性測定ユニットをプロセッサコア毎に接続しているが、1つの動作特性測定ユニットを複数のプロセッサコアに接続するようにしても良い。例えば、チップに実装されるプロセッサコアの数が多く、隣接するプロセッサコア間の電圧降下が小さい場合には、プロセッサコア毎ではなく、一つのチップに形成される複数のプロセッサコアに対して1つの動作特性測定ユニットを対応付けて実装しても良い。これは、特にプロセッサコアの実装密度が高い場合に有効である。このように、近接する複数のプロセッサコアに対する電源電圧の降下は同じであるとみなして処理することで、プロセッサコア毎に測定するものとほぼ同じ特性が得られる。
また、電圧と同様に、各コアの温度を測定して同じようにスケジューリングしても良い。あるいは、電圧、温度、その他プロセッサコアの動作特性に影響を及ぼす複数のパラメータについて、プロセッサコア毎に、もしくは複数のプロセッサコア毎にそれらの動作特性測定を行い、それらの結果に基づいて各プロセッサコア制御するように構成しても良い。
図4は、本実施例のスケジュール装置110の一実施例を示す構成図である。スケジュール装置110は、動的特性測定結果格納部300、静的特性測定結果格納部310、理論計算結果格納部320、ドメイン情報格納部330、動作情報格納部340、スケジューリング部(スケジューリングユニット)350、管理方法設定レジスタ360からなる。スケジューリング部350は、ベンチマークプログラム352及びプログラムで構成される動的適性配分ユニット354を備えている。ベンチマークプログラム352は、各プロセッサコアの静的特性を測定するために用いられる。なお、スケジュール装置110は、レジスタや記憶装置を有するいずれかのプロセッサコア(複数のプロセッサのいずれか)によって実装されても良い。
図4に示すように、ベンチマークプログラム352が、スケジュール装置110に実装されていても良く、また、図5に示すように、ベンチマークプログラムを外部メモリMEMに準備し、複数のプロセッサコアのうち一つ(ここでは、CPUコア120)が外部メモリMEMから読み出し、その読み出したベンチマークプログラムを例えばCore1に受け渡して、実行してもよい。例えば、CPUコア120から他のコアに対して、「電源ON」、「電源OFF」、「ベンチマークプログラムの実行」、及び、「ベンチマークプログラムの休止」、を指示し、さまざまな状態における各コアの電圧状態を計測する。具体的には、各CPUコアの内部メモリに、実行コードや処理データを転送し、またレジスタへ値を書き込むことで実行する。
また、ベンチマークプログラム352は、入出力装置160を経て外部からスケジューリング部350にロードするようにしても良い。
動的特性測定結果格納部300は、動作特性測定ユニット140〜155から通知される動的特性の測定結果を動的に格納する記憶装置と、書き込みと読み出しを制御する制御部を有する。
図6に、動的特性測定結果格納部300に格納される上記測定結果の例を示す。ここに示すように、各動作特性測定ユニット140〜155は、単位時間あたりのリングオシレータ210の発振数をカウントし、その結果を動的特性測定結果格納部300に格納する。カウント値(例えば100,110)が大きいほど、そのプロセッサコアの電源電圧が高く、従って演算性能が高いことを意味している。制御部(スケジューリング部350)によって通知を受け付けないよう制御されない限り、記憶装置300は、動作特性測定ユニット140〜155の測定結果を受け取り、随時更新する。
スケジューリング部350は、ベンチマークプログラム352などにより、半導体装置製造後に各プロセッサコアの状態を変更させたときの性能を静的特性として測定し、その測定結果を静的特性測定結果格納部310に格納する。具体的には、図7に示すようにBUSY状態、IDLE状態、SLEEP状態、電源オフ状態というように各プロセッサコアの状態を変化させ、さまざまな状態のときの電圧変動の結果を測定し、記録しておく。これは、動的に性能を測定することができない場合や、動的に性能を測定することによる電力や性能のオーバーヘッドがシステムに与える悪影響が大きくなる場合にも、効率の良いスケジューリングを行なうための情報となる。
また、スケジューリング部350は、半導体装置上のプロセッサコアや配線などの抵抗値や容量値をモデル化し、各プロセッサコアの状態を変更したときの動作特性測定結果を計算によって予測し、または入出力装置160から予測値を入力し、それらの値を理論計算結果格納部320に格納する。この結果を用いれば、動作特性の測定をおこなわなくても電圧降下を見積もることができる。理論計算結果格納部320も、静的特性測定結果格納部と同様に、図7に示すような、状態に応じた演算性能を複数保持する。
ここで、静的特性測定結果格納部310ならびに理論計算結果格納部320については、すべてのパターン結果を記憶装置に保持しておく必要はない。なお、動的特性に加えて静的特性を有することで、セキュリティの関係上、外部コアからアクセスできないCPUコア等についても、その時点での動作状態に応じてスケジューリングをすることが可能となる。
ドメイン情報格納部330には、プロセッサコアがどのオペレーティングシステムの管理下にあるか、もしくは管理されていないかという情報を格納する。
図8に示すように、すべてのプロセッサコアがオペレーティングシステムによって管理されていない場合は、すべてのプロセッサコアのドメインは0である。一方、図9に示すようにオペレーティングシステム700がプロセッサコア120〜121を管理し、オペレーティングシステム701がプロセッサコア122〜123を管理し、オペレーティングシステム702がプロセッサコア124〜131を管理し、オペレーティングシステム703がプロセッサコア132〜135を管理しているような場合は、図10に示すようにドメイン毎に異なる値が記録される。このドメイン情報を用いることにより、あるプロセッサコアからあるドメインに対して並列処理の実行を指示することができる。またこのドメインと共にプロセッサコアの情報を公開するレベルも記録することができ、自分の属するドメイン以外の動作情報や電圧測定結果を照会する際の許可判定にも用いることができる。これにより、システムのセキュリティ上アクセスが許されないドメインを設定することができる。
動作情報格納部340には、各プロセッサコアが現在どのような状態にあるかという情報を格納する。図11に、各プロセッサコアの動作状態を格納する動作情報格納部340における格納内容の一例を示す。動作情報格納部340には、各プロセッサコアに関して、先ほど述べたBUSY状態、IDLE状態、SLEEP状態、電源オフ状態などの情報が格納される。
スケジューリング部350は、動的特性測定結果格納部300から動的な動作特性測定結果を読み出し、その結果によって各プロセッサコアに割り振る負荷の大きさを変更する。スケジューリング部350はまた、動作情報格納部340から読み出すプロセッサ動作情報を元に、その状態における静的特性測定結果や理論計算結果を静的特性測定結果格納部310や理論計算結果格納部320から読み出し、各プロセッサコアの演算性能に応じてスケジューリングを行い、その結果に基づき各プロセッサコアに割り振る負荷の大きさを制御する。
管理方法設定レジスタ360は、あるプロセッサコアから並列処理を実行する際に、分散の仕方などを格納するレジスタである。具体的には、並列処理実行を指示するプロセッサコアのナンバー、実行を指示したいドメイン、並列処理を実行したいプロセッサコア数、実行する処理の優先度、機能分散か負荷分散か、処理実行に用いるデータが格納されているアドレスとサイズなどである。具体的な指定方法については後述する。
次に、本実施例の情報処理装置の動作について、図12乃至図14で説明する。図12は、スケジュール装置110が並列処理のスケジューリングを行なう一例を示す、フローチャートである。図13は、スケジュール装置110が各プロセッサコア(CPU)に仕事を割り振る際の動的特性測定結果と割り当てる仕事量の関係を示す図である。図14は、各プロセッサコアの動作状態を示すタイムチャートである。
以下ではまず、スケジュール装置110がすべてのプロセッサコア(CPU0〜CPU15)を管理し、スケジュールを行う場合の一例を示す。
スケジュール装置110は、一定時間経過、もしくは任意のコアからのスケジューリング要求があるかを判定する(S1202)。スケジューリングのタイミングは、任意のプロセッサコア、例えば、図14においてCPU3が新しくプログラムを実行するときである。YESの場合、自動的に、または任意のコアからの要求(ここではCPU3からの並列処理の要求)により、各CPUの電圧を測定し、その結果を動的特性測定結果格納部300に記録する(S1204)。次に、任意のコア(CPU3)が、スケジュール装置110に対して、仕事に関する実行コア数、実行コード、実行データ、またはそれらの存在アドレスを送信する(S1206)。
さらに、スケジュール装置110は、電圧測定結果、実行コア数、データ量を考慮して、仕事(並列処理)を割り振る対象となるコアを選定し、各コアに割り付ける仕事量を算出する。ここで示した例では、図13に示したように、各コアCPU10〜CPU13の電圧の比(カウント値)に応じて並列処理の仕事量を割り振る。すなわち、カウント値の逆数を仕事量としている(S1208)。スケジュール装置110は、次に、仕事が与えられる4つのコアCPU10〜CPU13に対して、夫々、実行コード、処理データ、またはそれらの存在するアドレスを送信する(S1210)。各コアは与えられた実行コードによって、データを処理する(S1212)。
スケジュール装置110の動的適性配分ユニット354は、上記S1208に示したように、実現したい並列処理内容と分割数、実現したい並列処理の重要度などの情報を管理方法設定レジスタから読出し、加えて動的特性結果格納部300から動的な動作特性測定結果を読出し、処理の割り振りを行う。このとき、図14に示したように、すでに幾つかのプロセッサコア(ここでは、CPU0〜CPU2)では違う並列処理が実行されているならば、動作していないプロセッサ(ここでは、CPU10〜CPU13の4つのコア)の中で負荷分散を行う。実行する並列処理が入力データをあまり必要としない場合、例えば、処理に必要な引数のみを指定すれば良いような場合は、該当するプロセッサコアの持つローカルメモリなどに対して命令コードや引数値を書き込み、通知する。また、実行する並列処理が大きな命令コードや入力データの転送を必要とする場合は、DMAC170を用いてプロセッサコア内のローカルメモリや複数のプロセッサコアで共有する共有メモリにデータ転送を行なう。
図15は、本発明により、各コアCPU10〜CPU13の電圧と、並列処理で割り振られる仕事量の関係を示している。このように、動的適性配分ユニット354は、電圧に応じた仕事量を各コアに割り振り、並列処理がほぼ同時に終了するように制御する。これにより、処理時間の短縮、または動作周波数を低減することなどによる処理実行の低消費電力化を実現することができる。
図16は、比較のために示した、従来方式、すなわち、各コアCPU10〜CPU13の電圧の如何に関係なく均一に仕事量を割り振る例を示している。例えば、CPU10は電圧が低いため同じ仕事量でも処理が遅い。従って、並列処理の処理時間が長くなる。あるいは、処理実行の消費電力の増大を招くことになる。
このように、本実施例によれば、半導体装置上の電圧変動によるプロセッサコアの演算性能の違いを把握する技術と、異なる演算性能に応じたスケジューリングを行なう技術により、効率的な並列処理を実現する。これにより、情報処理装置の処理時間の短縮、または処理実行の低消費電力化を実現することができる。
次に、図17により、本発明による情報処理装置の第2の実施例として、機能分散を行う場合の例を以下に説明する。なお、第1の実施例と同じ機能に関しては、説明を省略する。
図17において、スケジュール装置110は、一定時間経過、もしくは任意のコアからのスケジューリング要求があるかを判定する(S1702)。任意のコアからの要求(ここでは機能分散処理の要求)により、各CPUの電圧及び温度を測定し、それらの結果を動的特性測定結果格納部300に記録する(S1704)。次に、任意のコアが、スケジュール装置110に、仕事(機能分散)に関する機能毎の仕事量、実行コア数、実行コード、実行データ、またはそれらの存在アドレスを送信する(S1706)。次に、スケジュール装置110が、電圧、温度の測定結果、機能毎の仕事量、実行コア数、データ量を考慮して、仕事を割り振る対象となる各コアの仕事内容を決定する。このとき、電圧、温度に応じて仕事量を割り振る(S1708)。仕事が割り振られる各コアに対して、実行コード、処理データ、またはそれらの存在するアドレスを送信する(S1710)。各コアは与えられた実行コードによって、データを処理する(S1712)。
上記S1708において、スケジューリング部350は、動的特性測定結果を用いてプロセッサコア毎の演算性能を把握した後、仕事量が大きな機能を演算性能が高いプロセッサコアに割り当て、仕事量が小さな機能を演算性能が小さいプロセッサコアに割り当てる。ここで、複数の機能をあるプロセッサコアで実行した場合に、実行時間が短い機能ほど、仕事量が小さい機能とする。また、実行命令数やステップ数が小さいものを、仕事量が小さい機能としてもよい。機能分散を行う場合、それぞれのプロセッサコアに対して実行する命令コードを転送しても良いし、引数を渡すことによって実行するコードを切替える形としても良い。
本実施例によれば、半導体装置上の電圧、温度の変動によるプロセッサコアの演算性能の違いを把握する技術と、異なる演算性能に応じたスケジューリングを行なう技術により、効率的な機能分散処理を実現する。これにより、処理時間の短縮、または処理実行の低消費電力化を実現することができる。
本発明の他の実施例として、あるプロセッサコアから複数のプロセッサに対して並列処理の実行等を指示する例について説明する。なお、第1、第2の実施例と同じ機能に関しては、説明を省略する。
プロセッサコア120は、スケジュール装置110内の管理方法設定レジスタ360に対して、図18に示すような情報を送信する。具体的には、指示を出すプロセッサコア番号、複数のプロセッサコアを管理しているオペレーティングシステムに対して実行を指示する場合はそのドメイン番号、並列動作させるプロセッサコアの個数、並列処理の優先度、負荷分散か機能分散か、データ転送を必要とする場合のデータの開始アドレスとそのサイズである。これらのうち幾つかは必要でなければ入力を省略することができる。
例えば、図8に示すようにオペレーティングシステムが動作していない場合や、幾つかのオペレーティングシステムが動作していてもそれ以外のプロセッサコアで並列処理を実行したい場合は、ドメインの設定をする必要はない。また、並列動作させるプロセッサコア数に関して、特に設定しない場合はデフォルトで設定してある並列数で実行する。並列処理の指示が複数のプロセッサコアからスケジュール装置110に送信された場合、優先度に応じて処理を実行する。すなわち、並列処理の実行順序を入れ替えたり、性能が高いプロセッサを割り当てたりする。優先度を特に設定しない場合は、先にリクエストを出したものから実行する。また負荷分散が指示されれば処理するデータを分割し、機能分散を指示した場合は、仕事量が大きいものから性能の高いプロセッサコアに割り当てる。
次に、複数のプロセッサを管理しているオペレーティングシステムから並列処理実行を指示した場合について説明する。ここでは、図9に示すように、オペレーティングシステム700〜703がプロセッサコアを管理している場合について説明する。
オペレーティングシステム700がプロセッサコア120で動作しているとして、オペレーティングシステム700からスケジュール装置110に対して並列処理の実行を指示する。例えば、図18にSource Core No. 0 として示すように、オペレーティングシステム702に対して、プロセッサコア4つを用いた並列処理を指示する。プライオリティは特に指定しない。負荷分散の指示であり、実行する命令コードの先頭アドレスとサイズ、処理対象となるデータの先頭アドレスと、サイズを指示する。送信先がオペレーティングシステムの場合は、オペレーティングシステムに対して、測定された動作特性に応じた負荷分散結果を通知し、実際の負荷分散処理はオペレーティングシステムが管理・実行する。
また、図9に示すように、すべてのプロセッサコアがオペレーティングシステムによって管理されている場合、オペレーティングシステムは管理下のプロセッサがどのような状態であるかを把握している。そのため、すべてのオペレーティングシステムがあるタイミングで管理下のプロセッサコアの状態をスケジュール装置110の動作情報格納部340に通知することで、スケジュール装置110はすべてのプロセッサコアの状態を把握することができる。すなわち、この結果を用いることで、動的な動作特性の測定を行なわずに、静的な測定結果や理論計算結果を用いたスケジューリングを行なうことができる。
図19は、本発明の動作特性測定ユニット140〜155の他の実施例を示す構成図である。動作特性測定ユニット140は、増幅部1110、A/D変換部1120、増幅部1110とA/D変換部1120を制御する制御部1130からなる。動作特性測定ユニット140は、半導体実装上、測定対象であるプロセッサコア120の近傍に配置されており、プロセッサコア120と同じ電源電圧Vdd-1が供給される。このとき、図3(図3A,図3B,図3C)で説明したように、プロセッサコア120の電源電圧Vdd-1は周囲の動作状況に応じた電圧降下が発生している場合がある。動作特性測定ユニット140は増幅部1110によってプロセッサコア120に印加される電圧Vdd-1を増幅し、A/D変換部1120によってA/D変換をおこない、スケジュール装置110に通知する。このとき、増幅部1110とA/D変換部1120の制御を制御部1130が行なう。
また同様に、動作特性測定ユニット141〜155も、それぞれのプロセッサコアの動作特性、すなわち電源電圧Vdd-nを測定し、スケジュール装置110に通知する。
また、各プロセッサコアに供給される電源電圧Vdd-nを、1つないし複数の参照電圧と比較し、その比較結果をスケジュール装置110に通知する構成としても良い。例えば、第1の参照電圧を基準電圧とする第1の比較器の出力側に、第1の参照電圧より低い第2の参照電圧を基準電圧とする第2の比較器及び第1の参照電圧より高い第3の参照電圧を基準電圧とする第3の比較器を接続し、(以下、同様)、各比較器に電源電圧Vdd-nを入力し、複数の参照電圧と比較することで、あるプロセッサコアの電源電圧Vdd-nの値(もしくは範囲)を求めることができる。
なお、電源電圧Vdd-nの値は、近接した位置にある複数のプロセッサコア単位ごとに行っても良いことは言うまでもない。また、本実施例により求められる電源電圧の情報に加えて、温度などプロセッサコアの動作特性に影響を及ぼす他のパラメータの測定情報も同時に利用可能であることは、先に述べた実施例と同じである。
本実施例によれば、簡単な構成で半導体装置上の電圧変動による各プロセッサコアの演算性能の違いを把握し、その結果に基づき各プロセッサコアの演算性能に応じたスケジューリングを行なうことにより、メニイコア並列演算処理装置の処理時間の短縮、または処理実行の低消費電力化を実現することができる。
100・・・メニイコア並列演算管理装置
110・・・スケジュール装置
120〜135・・・プロセッサコア
140〜155・・・動作特性測定ユニット
160・・・入出力装置
170・・・Direct Memory Access Controller
200・・・電源電圧
210・・・リングオシレータ
220・・・カウンタ
230・・・制御部
300・・・動的特性測定結果格納部
310・・・静的特性測定結果格納部
320・・・理論計算結果格納部
330・・・ドメイン情報格納部
340・・・動作情報格納部
350・・・スケジューリング部
360・・・管理方法設定レジスタ
700・・・オペレーティングシステム管理範囲
701・・・オペレーティングシステム管理範囲
702・・・オペレーティングシステム管理範囲
703・・・オペレーティングシステム管理範囲
1110・・・増幅部1110
1120・・・A/D変換部1120
1130・・・制御部1130。
110・・・スケジュール装置
120〜135・・・プロセッサコア
140〜155・・・動作特性測定ユニット
160・・・入出力装置
170・・・Direct Memory Access Controller
200・・・電源電圧
210・・・リングオシレータ
220・・・カウンタ
230・・・制御部
300・・・動的特性測定結果格納部
310・・・静的特性測定結果格納部
320・・・理論計算結果格納部
330・・・ドメイン情報格納部
340・・・動作情報格納部
350・・・スケジューリング部
360・・・管理方法設定レジスタ
700・・・オペレーティングシステム管理範囲
701・・・オペレーティングシステム管理範囲
702・・・オペレーティングシステム管理範囲
703・・・オペレーティングシステム管理範囲
1110・・・増幅部1110
1120・・・A/D変換部1120
1130・・・制御部1130。
Claims (20)
- 並列演算装置を構成する複数のプロセッサコアの夫々に関して、その動作性能に影響を及ぼす特性を測定する特性測定ユニットと、
前記各プロセッサコアにおける並列演算処理を管理するスケジューリング機能とを備え、
前記測定された特性に基いて、前記並列演算処理のスケジューリングを行なうことを特徴とする情報処理装置。 - 請求項1において、
前記特性測定ユニットは、前記各プロセッサコアの動作性能に影響を及ぼす特性として、前記各プロセッサコアの動的な動作特性を測定する機能を有することを特徴とする情報処理装置。 - 請求項2において、
前記複数のプロセッサコアは半導体装置に搭載されており、
前記特性測定ユニットは、前記半導体装置に近接して実装された前記複数のプロセッサコア毎に動的な動作特性を測定する機能を有することを特徴とする情報処理装置。 - 請求項2において、
前記各特性測定ユニットは、リングオシレータとカウンタを有しており、かつ、測定対象である前記プロセッサコアと電源電圧を共有することを特徴とする情報処理装置。 - 請求項2において、
前記各特性測定ユニットは、アナログ−デジタル変換装置を有しており、かつ、測定対象である前記プロセッサコアと電源電圧を共有することを特徴とする情報処理装置。 - 請求項2において、
前記各特性測定ユニットは、複数の参照電圧と複数の比較器を有しており、かつ、測定対象である前記プロセッサコアと電源電圧を共有する
ことを特徴とする情報処理装置。 - 請求項2において、
前記特性測定ユニットは、前記各プロセッサコアの動的な動作特性として、前記各プロセッサコア毎の電源電圧及び各プロセッサコアの温度を測定する機能を有する
ことを特徴とする情報処理装置。 - 請求項1において、
前記測定された特性を格納する記憶装置を備え、
該記憶装置は、前記各プロセッサコアの動的な動作特性の測定結果を記憶する機能を有する
ことを特徴とする情報処理装置。 - 請求項1において、
前記測定された特性を格納する記憶装置を備え、
該記憶装置は、前記各プロセッサコアの静的な動作特性測定結果を複数記憶し、また、複数のプロセッサの動作状態を記憶する機能を有する
ことを特徴とする情報処理装置。 - 請求項1において、
前記各プロセッサコアの理論的な動作特性の計算結果を複数記憶し、かつ、前記各プロセッサコアの動作状態を記憶する機能を有する
ことを特徴とする情報処理装置。 - 複数のプロセッサコアによりタスクの並列演算処理を実行する機能を有する情報処理装置であって、
前記各プロセッサコアの動作性能に影響を及ぼす動的な特性を測定する特性測定機能と、
前記測定された特性を格納する記憶装置と、
前記各プロセッサコアにおける演算処理を管理するスケジューリング機能とを備え、
前記記憶装置に格納された前記特性に基いて、前記複数のプロセッサコアにおける前記並列演算処理のスケジューリングを行なう
ことを特徴とする情報処理装置。 - 請求項11において、
ベンチマークプログラムにより、前記各プロセッサコアの前記動的特性及び静的特性を自動的に測定する機能と、
前記測定された静的特性及び動的特性を前記記憶装置に格納する機能とを備えた、
ことを特徴とする情報処理装置。 - 請求項11において、
前記各プロセッサコアの処理能力を管理するテーブルを有し、
前記各プロセッサコアは、自身の処理性能を測定し、該測定結果に基いて前記テーブルを動的に更新する機能を有し、
前記複数のプロセッサコアの中で特定のプロセッサコアが、前記テーブルを用いて前記並列演算処理のスケジューリングを行なう
ことを特徴とする情報処理装置。 - 請求項11において、
前記記憶装置は、前記複数のプロセッサコアが属するドメイン情報を記憶する機能を有する
ことを特徴とする情報処理装置。 - 請求項14において、
前記スケジューリング機能により、前記プロセッサコアが属する前記ドメイン情報に基づいて、該プロセッサコアの性能ならびに動作情報の開示を制御する
ことを特徴とする情報処理装置。 - 請求項14において、
前記記憶装置は、前記いずれかのプロセッサコアからの並列処理動作の指示を記憶する機能を有する
ことを特徴とする情報処理装置。 - 請求項14において、
前記スケジューリング機能により、前記タスクを割り当てる際に必要となる命令コードを、割り当て対象であるプロセッサコアがアクセス可能な記憶装置に転送する
ことを特徴とする情報処理装置。 - 請求項14において、
前記スケジューリング機能により、前記タスクを割り当てる際に必要となる入力データを、割り当て対象であるプロセッサコアがアクセス可能な記憶装置に転送する
ことを特徴とする情報処理装置。 - 半導体装置に搭載され同じ仕様を有する複数のプロセッサコアと、
前記各プロセッサコアの動作性能に影響を及ぼす電源電圧を含む動的な動作特性を、前記半導体装置の前記プロセッサコアの近傍で測定する特性測定ユニットと、
前記測定された動作特性を格納する記憶装置と、
前記各プロセッサコアにおける並列演算処理を管理するスケジューリングユニットとを備え、
前記動作特性に基いて前記プロセッサコアにおける演算性能を求め、該演算性能に応じて前記並列演算処理のスケジューリングを行う
ことを特徴とする情報処理装置。 - 請求項19において、
前記スケジューリングユニットは、レジスタや記憶装置を有する前記いずれかのプロセッサコアによって実装されている
ことを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008204389A JP2010039923A (ja) | 2008-08-07 | 2008-08-07 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008204389A JP2010039923A (ja) | 2008-08-07 | 2008-08-07 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010039923A true JP2010039923A (ja) | 2010-02-18 |
Family
ID=42012370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008204389A Pending JP2010039923A (ja) | 2008-08-07 | 2008-08-07 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010039923A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012216058A (ja) * | 2011-03-31 | 2012-11-08 | Fujitsu Ltd | 割当方法、割当装置、および割当プログラム |
JP2013537346A (ja) * | 2010-09-25 | 2013-09-30 | インテル コーポレイション | 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング |
JP2017117450A (ja) * | 2015-12-22 | 2017-06-29 | インテル コーポレイション | 様々なケーパビリティを有するコアに関するスレッド及び/又は仮想マシンのスケジューリング |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US11397659B2 (en) | 2019-12-04 | 2022-07-26 | Fujitsu Limited | Information processing apparatus, information processing method, and storage medium |
-
2008
- 2008-08-07 JP JP2008204389A patent/JP2010039923A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013537346A (ja) * | 2010-09-25 | 2013-09-30 | インテル コーポレイション | 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング |
JP2012216058A (ja) * | 2011-03-31 | 2012-11-08 | Fujitsu Ltd | 割当方法、割当装置、および割当プログラム |
JP2017117450A (ja) * | 2015-12-22 | 2017-06-29 | インテル コーポレイション | 様々なケーパビリティを有するコアに関するスレッド及び/又は仮想マシンのスケジューリング |
US10372493B2 (en) | 2015-12-22 | 2019-08-06 | Intel Corporation | Thread and/or virtual machine scheduling for cores with diverse capabilities |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10922143B2 (en) | 2016-01-15 | 2021-02-16 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US11409577B2 (en) | 2016-01-15 | 2022-08-09 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US11853809B2 (en) | 2016-01-15 | 2023-12-26 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US11397659B2 (en) | 2019-12-04 | 2022-07-26 | Fujitsu Limited | Information processing apparatus, information processing method, and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101529419B1 (ko) | 휴대용 컴퓨팅 디바이스에서의 열 로드 관리 | |
KR101476568B1 (ko) | 코어 마다의 전압 및 주파수 제어 제공 | |
EP1733296B1 (en) | Methods and apparatus for achieving thermal management using processor manipulation | |
JP4764696B2 (ja) | 半導体集積回路装置 | |
US9183051B2 (en) | Methods and apparatus for achieving thermal management using processing task scheduling | |
JP5583837B2 (ja) | コンピュータ・システム内でタスクを開始するためのコンピュータ実装方法、システム及びコンピュータ・プログラム | |
US9201490B2 (en) | Power management for a computer system | |
Kandhalu et al. | Energy-aware partitioned fixed-priority scheduling for chip multi-processors | |
US10372495B2 (en) | Circuits and methods providing thread assignment for a multi-core processor | |
JP2006508468A (ja) | マルチスレッド・プロセッサ性能を制御する装置及び方法 | |
JP2014533859A (ja) | ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング | |
JP2014530414A (ja) | ヘテロジニアスマルチコアプロセッサにおける熱エネルギーの発生を管理するためのシステムおよび方法 | |
JP2013527948A (ja) | コンピュータ・システム内でタスクをディスパッチするための方法、システム及びコンピュータ・プログラム | |
JP2002099433A (ja) | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
JP2008152470A (ja) | データ処理システム及び半導体集積回路 | |
KR20110073631A (ko) | 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템 | |
JP2010039923A (ja) | 情報処理装置 | |
JP2013222321A (ja) | メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム | |
TW200809628A (en) | Power aware dynamic scheduling in multiprocessor system employing voltage islands | |
JP2010160565A (ja) | タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム | |
Srinivasan et al. | Energy-aware task and interrupt management in linux | |
JP6083278B2 (ja) | 計算システム及びその電力管理方法 | |
JP2018092551A (ja) | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
JP2010211331A (ja) | 業務管理システム、管理装置、業務管理方法、プログラム及び記録媒体 |