JP4945410B2 - 情報処理装置及び情報処理方法 - Google Patents

情報処理装置及び情報処理方法 Download PDF

Info

Publication number
JP4945410B2
JP4945410B2 JP2007304273A JP2007304273A JP4945410B2 JP 4945410 B2 JP4945410 B2 JP 4945410B2 JP 2007304273 A JP2007304273 A JP 2007304273A JP 2007304273 A JP2007304273 A JP 2007304273A JP 4945410 B2 JP4945410 B2 JP 4945410B2
Authority
JP
Japan
Prior art keywords
program
processing
information
control unit
accelerator
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.)
Expired - Fee Related
Application number
JP2007304273A
Other languages
English (en)
Other versions
JP2008165746A (ja
Inventor
英樹 安川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007304273A priority Critical patent/JP4945410B2/ja
Priority to US11/950,901 priority patent/US8046565B2/en
Publication of JP2008165746A publication Critical patent/JP2008165746A/ja
Application granted granted Critical
Publication of JP4945410B2 publication Critical patent/JP4945410B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アクセラレータ、情報処理装置及び情報処理方法に関し、特に、情報処理装置に接続可能でプログラムを並列処理により実行可能な複数の演算部を有するアクセラレータ、そのアクセラレータに接続された情報処理装置及び情報処理方法に関する。
従来より、演算機能を有する装置を情報処理装置に付加して、実行される処理の一部を、その付加した装置に分担させる技術が知られている。例えば、情報処理装置としてのパーソナルコンピュータ(以下、PCという)に、アクセラレータと呼ばれる演算機能を有する装置を装着して、PC本体の中央処理装置(以下、CPUという)が、アクセラレータにプログラムの処理を分担させ、処理速度の向上を図る技術がある。
最近では、処理分担あるいは処理速度向上を単に図るだけでなく、消費電力を考慮した、本体部にアクセラレータを付加した情報処理装置も、例えば、特開2003−15785号公報に、提案されている。
その提案に係る技術によれば、本体部側のCPUが、付加されたアクセラレータの性能情報を読み込み、その性能情報に基づいてアクセラレータの駆動電圧あるいは駆動周波数を決定して設定するようにすることによって、低消費電力モード等に対応したアクセラレータの駆動が可能となる。
しかし、上記の提案に係る情報処理装置の場合、アクセラレータの駆動電圧等を決定するのは本体部側のCPUであり、そのために、そのCPUがその決定処理を実行しなければならず、CPUにオーバーヘッドが発生する。
また、アクセラレータ内部に複数の演算部があるような場合について、上記の提案に係る情報処理装置は、何ら考慮されていない。
特開2003−15785号公報
本発明は、以上の問題に鑑みてなされたものであり、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能な情報処理装置及び情報処理方法を提供することを目的とする。
本発明の一態様によれば、アクセラレータと、前記アクセラレータと接続されプロセッサとを有する情報処理装置であって、前記アクセラレータは、プログラムを実行可能なアクセラレータであって、前記プログラムを並列処理により実行可能な複数の演算部と、前記複数の演算部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、実行する前記プログラムについての負荷情報と並列度情報に基づいて、前記プログラムの実行のための、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、を有し、前記アクセラレータは、前記プロセッサから、前記プログラムの実行前に、前記プログラムと前記プログラムについての前記負荷情報及び前記並列度情報とを受信する情報処理装置を提供することができる。
本発明によれば、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能な情報処理装置及び情報処理方法を実現することができる。
以下、図面を参照して本発明の実施の形態を説明する。
(第1の実施の形態)
まず図1に基づき、本発明の第1の実施の形態に係わる情報処理装置の構成を説明する。図1は、本実施の形態に係わる情報処理装置の構成を示す構成図である。
情報処理装置1は、PCアーキテクチャを有するコンピュータであるPC2を含んで構成されている。PC2には、アクセラレータ3が付加可能に、すなわち接続可能になっている。PC2は、CPU(Central Processing Unit)11と、MCH(Memory Controller Hub)12と、ICH(I/O Controller Hub)13と、GPU(Graphics Processing Unit)14と、主メモリ15と、画像メモリとしてのVRAM(Video RAM)16とを含んで構成される情報処理装置である。よって、このようなPCアーキテクチャを有するPC2にアクセラレータ3が接続されて情報処理装置1が構成されている。なお、本実施の形態では、PCアーキテクチャとして、CPU11と、MCH12と、ICH13と、GPU14からなるPCアーキテクチャの例を示すが、PCアーキテクチャは、このような構成に限られるものではない。
特に、MCH12は、CPU11と主メモリ15との接続等の機能を担う、いわゆるノースブリッジの機能を有する半導体装置のチップである。ICH13は、PCIバス、USB等を介して、ハードディスク装置(以下、HDDという)17等の、他の構成要素と結び付ける等、いわゆるサウスブリッジの機能を有する半導体装置のチップであり、ここでは、ICH13は、USB2、SATA(Serial ATA)、Audio、PCI Express等の規格に応じた各信号の入出力を制御する。また、グラフィック用処理装置であるGPU14は、いわゆるグラフィックエンジンであり、3次元グラフィックスの表示に必要な計算処理を行う半導体装置のチップである。
演算機能を有する付加装置としてのアクセラレータ(以下、ACと略す)3は、ICH13に接続されており、さらに、自己のワーキングメモリとしてのRAM(フラッシュメモリ等でもよい)4にも接続されているチップである。周辺デバイスとしてのAC3の構成については後述する。なお、RAM4は、AC3の内部に設けてもよい。
CPU11は、各種のアプリケーションプログラムを実行可能であり、各種アプリケーションプログラムの中には、負荷量の高いプログラムもあれば、負荷量の低いプログラムもある。従って、CPU11は、負荷量の高いアプリケーションプログラム、例えば、画像認識のアプリケーションプログラム、動画の再生等のアプリケーションプログラムの実行を、AC3に依頼して、行わせることができる。具体的には、情報処理装置1において、あるアプリケーションプログラムをAC3を用いて実行する場合には、CPU11がAC3に対して所定のコマンドを出力し、AC3は、そのコマンドを受信してCPU11により指定されたプログラムの処理を行う。その場合、例えば、AC3は、指定された処理、例えば画像の認識処理、を行う場合、SATA等からのストリーム信号をDMAにより読み込んで、その認識処理を行い、その認識処理した結果データを、DMAにより、GPU14等に転送して出力する。
PCI Expressは、1以上のレーン数を有する。ICH13とAC3とは、所定のレーン数、例えば、1、2、4、8等のレーン数のPCI Expressにより接続される。レーン数は、BIOS等により設定される。例えば、ICH13とAC3とは、4レーンのPCI Expressにより接続される。
なお、図1において点線で示すように、複数のAC3のそれぞれを、PCI Expressの各レーンに接続するようにして、複数のAC3をICH13に接続するようにしてもよい。その結果、演算処理負荷の高いアプリケーションプログラムに対して、後述するプロセッシングユニットの数を増やして対応することができる。
さらになお、複数のAC3をICH13に接続するときに、各AC3とICH13とは、複数のレーンにより接続するようにしてもよい。
AC3は、並列処理可能なマルチコア・マルチプロセッサ・アーキテクチャを有する半導体装置のプロセッサであり、各演算部の動作及び処理能力が制御される。
本実施の形態では、AC3は、プログラムを並列処理可能な複数の演算部を含み、AC3は、その指定された処理を実行するときに、自らが複数の演算部間での分担を決定して、各演算部に処理を実行させる。分担の決定では、AC3は、自ら、複数の演算部のどの演算部にその処理を実行させるかを決定し、その処理を実行する演算部に対しては、電力を供給し、かつその実行に際しての動作周波数を決定して設定する。
次に、AC3の構成を説明する。図2は、AC3の構成を説明するためのブロック図である。AC3は、制御用プロセッシングユニット(以下、CPEと略す)21と、複数の、ここでは4つの、プロセッシングユニット(以下、PEと略す)と、インターフェース部(以下、I/F部と略す)23とを含む。4つのPEは、それぞれをPE22A,PE22B,PE22C,PE22Dとする。以下、纏めてあるいは1つのPEを指すときはPE22という。さらに、AC3は、I/F部24を含み、AC3に接続されたRAM4内のプログラム及びデータを読み出すことができる。CPE21と各PE22とI/F部23とI/F部24は、互いに内部バス25を介して接続されている。I/F部23は、内部バス25と、PCアーキテクチャのバスとのインターフェースのための回路である。CPE21は、電源が投入されると、CPU11から、プログラム及びデータがロードされてRAM4にストアされる。なお、そのプログラム及びデータは、AC3内にROMを設けて、そのROMに記憶しておき、CPE21は、そのROMから読み出すようにしてもよい。さらに、その他の入出力端子26、PLL回路27、およびデジタル温度センサ(以下、DTSと略す)28も、AC3のチップ内に設けられている。
CPE21は、内部に、制御部である演算部21aと、キャッシュメモリ21bを含む。各PEは、演算部とローカルメモリとを含む。また、各PEには、周波数/電圧制御(以下、F/V制御と略す)部が設けられている。具体的には、PE22A,22B,22C,22D(以下、纏めてあるいは1つのPEを指すときはPE22という)は、それぞれ、演算部22Aa,22Ba,22Ca,22Da(以下、纏めてあるいは1つの演算部を指すときは演算部22aという)と、ローカルメモリ22Ab,22Bb,22Cb,22Db(以下、纏めてあるいは1つのローカルメモリを指すときはローカルメモリ22bという)とを有する。そして、各PE22には、F/V制御部22Ac,22Bc,22Cc,22Dc(以下、纏めてあるいは1つのF/V制御部を指すときはF/V制御部22cという)が設けられている。
演算部22aは、CPE21からの依頼に基づいて、処理プログラムを並列処理する回路である。演算部22aは、特定用途向けのハードウエアエンジンでもよいが、本実施の形態では、プログラム可能な汎用な処理部である。各演算部22aは、AC3における内部演算のためのリソースである。後述するように、演算部22aは、1以上の演算部を用いて処理プログラムを並列処理する。
演算部22aは、ここでは、データ幅が128ビットのデータに対してSIMD演算が可能な演算部である。さらに、演算部22aは、32ビットの単精度及び64ビットの倍精度のフローティング演算が可能である。
各ローカルメモリ22bは、処理プログラム及び処理対象のデータである対象データをストアする記憶部である。
例えば、各PE22では、画像データに対する画像認識処理、あるいは画像データのエンコード及びデコード処理等のコーデック処理を行う場合、HDD17あるいは図示しないカメラから読み出された処理対象のデータが、各ローカルメモリ22bの容量に合わせて分割された状態で各ローカルメモリ22bに記憶される。そして、各演算部22aは、SIMD演算により、その記憶されたデータに対して所定の処理を実行し、実行結果を各ローカルメモリ22bに記憶する。各PE22では、所定の処理が終了すると、ローカルメモリ22bから処理されたデータは、HDD17に転送され、次に処理すべきデータがHDD17から各ローカルメモリ22bに転送され、上述したように所定の処理が行われる。以上の処理を繰り返すことによって、情報処理装置1では、AC3を利用して、画像認識処理等がスムーズに行われる。
各F/V制御部22cは、対応する演算部22aの動作及び処理能力の両方を制御する動作制御部であり、具体的には、対応する演算部22aへ供給するクロック信号の周波数の変更の機能、演算部22a内の各回路へ供給されるクロック信号の供給と停止の機能、及び演算部22a内の各回路へ供給される電力の供給と停止の機能を有する回路である。なお、各回路へ供給されるクロックCLKは、PLL回路27から供給される。
なお、ここでは、各PE22にF/V制御部22cが設けられているが、4つのPE22の全体に対して一つのF/V制御部22cを設けて、4つのPE22の全体に対してクロック信号の周波数の変更、クロック信号の供給と停止、及び電力の供給と停止を行うようにしてもよい。その場合、PLL回路27の出力は、図2において点線で示すスイッチ回路29を介して出力するようにし、そのスイッチ回路29に対してクロックの供給を停止するための制御信号が、CPE21から供給される。
動作周波数の変更の機能は、後述するように、処理プログラムの負荷に比べて、各PE22内の各演算部22aが提供できる演算性能が高い場合に、各PE22内の各演算部22a等の動作周波数を低減して、クロック信号による消費電力を最適にするための機能である。
クロック信号の供給と停止の機能、すなわち、クロックゲーティング機能は、各PE22内の各演算部22a等に対するクロック信号の供給と停止を行うための機能である。クロック信号の供給が停止されると、クロック信号による消費電力を0(ゼロ)に抑えることができる。
電力の供給と停止の機能は、各PE22内の各演算部22a等に対する電力の供給と停止を行う機能である。電力の供給が停止されると、内部回路のリーク電流による消費電力を0(ゼロ)に抑えることができる。
各演算部22aへ供給されるクロック周波数は、各演算部22aの処理能力を示す。各演算部22aについて予め決められた最大動作周波数のとき、その演算部22aの処理能力は最大となり、各F/V制御部22cは、その最大動作周波数以下に変更することによって、演算部22aの処理能力を、最大処理能力以下に、制御することができる。
また、各演算部22aへ供給されるべきクロック信号の供給を停止することによって、各F/V制御部22cは、各演算部22aの動作を停止させることができる。同様に、各演算部22aへ供給されるべき電力、例えば供給電圧、の供給を停止することによって、各F/V制御部22cは、演算部22aの動作を停止させることができる。従って、各F/V制御部22cは、演算部22aへのクロック信号の周波数の変更をしたり、クロック信号の供給を制御、すなわちクロックゲーティングを行ったり、各演算部22aへの電力の供給を制御することによって、各演算部22aの動作を制御することができる。
なお、本実施の形態では、各F/V制御部22cは、対応する演算部22aの動作及び処理能力の両方を制御するが、動作及び処理能力の少なくとも一方でもよい。
そして、CPE21の演算部21aが、後述するように、各PE22と各F/V制御部22cを制御する。よって、各F/V制御部22cによる演算部22aの動作及び処理能力の制御は、CPE21の演算部21aの指示に応じて行われる。
上述したように、制御部である演算部21aは、CPU11から所定の処理を実行する旨のコマンドを受信すると、4つのPE22に対して所定の指示を出力する。その所定の指示には、どのPE22がその処理を実行するのかの指示、そのときの動作周波数をどのくらいにするのかの指示、等を含む。
また、AC3のCPE21は、可変の電源である、外部の電源回路モジュールであるVRM(Voltage Regulator Module)30に対して、所定のコード信号VID、例えば6ビット信号、を出力し、VRM30は、その所定のコード信号VIDに応じた電源電圧VをAC3に供給する。
さらにまた、AC3上の各回路は、複数の、ここでは13個の、ブロックに分けられ、その分けられたブロック毎に別々に電源が供給されるように、AC3は構成されている。すなわち、各電源に対して、その電源を供給する回路部分のブロックが予め決められており、各電源は、その予め決められたその対応するブロックのみに電源を供給する。具体的には、CPE21を含むブロックB1には、内部ロジック用電源PS1から電源が供給される。PLL回路27を含むブロックB2には、PLL部用アナログ電源PS2からの電源が供給される。DTS28を含むブロックB3には、デジタル温度センサ部用アナログ電源PS3からの電源が供給される。PCI Express用のI/F23の一部を含むブロックB4には、第1のPCI Expressロジック用電源PS4からの電源が供給される。PCI Express用のI/F23の他の一部を含むブロックB5には、第2のPCI Expressロジック用電源PS5からの電源と、PCI Express用アナログ電源PS6からの電源が供給される。I/F24の一部を含むブロックB7には、I/F24用アナログ電源PS7からの電源が供給される。I/F24の他の一部を含むブロックB8には、I/F24ロジック用電源PS8からの電源が供給される。その他の入出力端子26を含むブロックB9には、その他の入出力端子26用電源PS9からの電源が供給される。4つの各PE22には、それぞれ、PE用電源PS10,PS11,PS12,PS13からの電源が供給される。
例えばアプリケーションプログラムが実行されていてAC3を使用する状態では、電源PS1からPS13のすべてから各回路部に電源が供給されるように、CPU11は、各電源からの電源供給を制御する。また、例えばAC3を使用しない状態では、不要な電源の供給がされないように、CPU11は、電源供給を制御する。より具体的には、CPU11が、AC3に対してデバイスステートを指示すると、CPE21は、そのデバイスステートの情報を受信し、その情報に応じて、外部の電源コントローラ31に対して、各電源PS1からPS13の電源供給状態を指示する。外部電源コントローラ31は、その電源供給状態の指示に従って、各電源PS1からPS13の電源供給状態を変更する。デバイスステートには、上述したようなすべての電源PS1からPS13からの電源を供給するフル状態D0、電源PS1からPS13中の一部の電源からのみ電源供給を行う状態D1、及び、いわゆるスリープ状態D2のような状態がある。
以上のように、CPU11により、情報処理装置1の状態に応じて、ここでは、AC3の使用状態に応じて、AC3内の各ブロックに対する電源供給の制御が行われる。
図3は、CPU11の処理の流れの例を示すフローチャートである。CPU11における処理プログラムは、主メモリ15内にストアされて、CPU11によって実行される。
CPU11が各種処理を実行している途中で、ある処理、ここでは画像の認識処理、をAC3に分担させる場合の例で説明する。CPU11は、AC3との間で、その処理を依頼する前に、所定の前処理を実行した後に、CPU11は、その画像認識プログラムをAC3に送信する(ステップS1)。CPE21の演算部21aは、CPU11からの画像認識プログラムをRAM4にストアする。
次に、CPU11は、画像認識処理の対象である対象データのアドレスと、認識処理の結果データのアドレスと、画像認識プログラムの負荷情報と、画像認識プログラムの並列度情報とを、AC3へ送信する(ステップS2)。AC3は、受信した負荷情報と並列度情報をRAM4に蓄積する。
負荷情報は、処理の重さを示す情報であり、並列度情報は、その処理プログラムを並列処理できる度合いを示す情報である。本実施の形態では、負荷情報と並列度情報は、0(ゼロ)を含む整数0,1,2,・・で示す例で説明する。負荷情報は、その数が大きい程、その処理の負荷が大きいことを示す。並列度情報は、その数に応じたPEの数で実行可能な処理であることを示す。
負荷情報と並列度情報は、処理プログラム毎に、予め決められて、主メモリ15にストアされている。図4は、その負荷情報と並列度情報を示すテーブルデータの例を示す図である。
図4に示すように、処理プログラム毎に、負荷情報と、並列度情報とが予め設定されている。処理プログラムAは、負荷が2であり、並列度が4であることが示されている。処理プログラムBは、負荷が1であり、並列度が1であることが示されている。処理プログラムCは、負荷が1であり、並列度が4であることが示されている。
図4の表データは、主メモリ15に予め記憶されているので、CPU11は、AC3に依頼する処理プログラムの負荷情報と並列度情報を、主メモリ15から読み出して取得してAC3に送信することができる。
次に、AC3におけるCPE21の演算部21aの処理について説明する。図5は、CPE21の処理の例を示すフローチャートである。
CPE21は、CPU11から上述した処理を依頼されると、受信した負荷情報と並列度情報を参照し、その負荷情報と並列度情報をRAM4にストアする(ステップS11)。
CPE21は、その負荷情報と並列度情報とに基づいて、動作すべきPEを決定する(ステップS12)。すなわち、CPE21は、負荷情報に、並列度情報を加味して、動作すべき1以上のPE22を決定し、動作するPE22の数が決定される。本実施の形態では、並列度は、並列処理可能な演算部の最大数を示し、負荷は、1つのPE22で実行できる処理量を1として、その処理量に対する比率を示している。よって、CPE21は、受信した負荷情報と並列度情報に基づいて、処理プログラムを、いくつのPE22で、かつどれくらいの動作周波数で実行できるかを決定することができる。
その決定方法においては、AC3の消費電力が最小になるようにするという基準に従って、最適な、動作すべきPE22と動作周波数が決定される。また、処理に使用されないPE22は、消費電力が最小になるように、例えば、電力の供給を停止するように制御される。
CPE21は、決定した1以上の動作すべきPE22のそれぞれの動作周波数と供給電圧を決定する(ステップS13)。すなわち、CPE21は、動作する各PE22の動作周波数と供給電圧を決定し、動作する各PE22にその決定した動作周波数に対応するクロック信号と決定した電圧の電力を供給するように、F/V制御部22cを制御する。なお、動作しないPEに対しては、クロック信号は、供給されず、かつ演算処理に必要な電力も供給されない。
ステップS13における動作周波数の決定は、例えば次のように行われる。図6は、動作周波数の決定処理の流れの例を示すフローチャートである。
まず、CPE21は、現在の使用可能なPE22を判定する(ステップS21)。すなわち、その処理の指示を受けたときに、既にAC3のPE22の中には、既に別の処理を実行しているPE22がある場合がある。CPE21は、各PE22の動作を監視しており、各PE22が何の処理を実行しているかを把握することができる。よって、まず、CPE21は、処理を依頼する前に、実行可能なPE22がどれかを判定して、使用可能な、すなわち実行可能なPE22を決定する(ステップS21)。
次に、CPE21は、負荷に応じた動作周波数と供給電圧を決定し、各PE22の各F/V制御部22cへ通知する(ステップS22)。例えば、図4の表にあるプログラムAのように、負荷が2で並列度が4の処理プログラムの場合であって、ステップS21のときに実行可能なPEが3つあった場合、各演算部22aの動作可能な最大周波数fとすると、CPE21は、プログラムの負荷を示す2を、実行可能なPE22の数を示す3で除算する処理を行う。すると、除算した結果の値(2/3)が得られる。その結果、PE22の演算部22aの動作周波数は、(2/3)fとなる。
なお、PE22の動作周波数が、除算した結果の値を取ることができない場合がある。例えば、PE22の動作周波数として、f,(1/2)f,(1/3)f,(1/4)f,(1/8)f等、予め固定した値の周波数のみで、動作可能な場合である。このような場合には、CPE21は、(2/3)fに近く、かつ(2/3)fよりも大きい値を、動作周波数として選択して決定する。
このようにして、CPE21は、動作すべきPE22の動作周波数を決定し、さらに、動作するPE22の供給電圧も決定する。供給電圧は、動作すべきPE22に対しては動作に必要な電圧である。動作しないPE22に対しては、動作に必要な電圧は供給されず、供給電圧は、0、あるいはスタンバイ状態のような最小消費電力に対応する電圧となる。
図5に戻り、CPE21は、動作するPE22に対して、処理プログラム(上述した例であれば画像認識プログラム)をロードするように指示する(ステップS14)。具体的には、CPE21は、PE22に処理プログラムのアドレスを通知して、PE22にその処理プログラムをロードするように指示する、すなわち処理プログラムのロード命令を出力する。その結果、動作するPE22は、処理プログラムをロードして、ローカルメモリ22bにストアする。
そして、CPE21は、動作するPE22に対して、起動命令を出力する(ステップS15)。起動命令を受信したPE22は、ローカルメモリ22bに蓄積された処理プログラムを実行する。このとき、F/V制御部22cに通知されて設定された動作周波数と電圧によって、各PE22の演算部22aは動作している。
PE22は、処理した結果データを、ステップS2で指示されたアドレスに出力する。
CPE21は、各PEの動作を監視し、全ての処理が終了すると所定の処理を実行する。
図7は、CPE21の演算部21aにおける、処理プログラムの終了時の処理の流れの例を示すフローチャートである。
CPE21は、各PE22における処理プログラムの実行状態を監視し、まず、その処理プログラムを実行する旨の動作指示を出した全てのPE22がその処理を終了したか否かを判断する(ステップS31)。
全てのPE22の処理が終了すると、CPE21は、依頼された処理プログラムの実行が終了した旨を示す終了通知を、CPU11へ出力する(ステップS32)。
そして、CPE21は、処理の終了したPE22への、ステップS13において決定した動作周波数のクロック信号と電圧の供給を停止する(ステップS33)。この停止は、いわゆるスタンバイ状態における動作周波数のクロック信号と電圧の供給状態にすることを意味する。
以上のようにして、処理プログラムがCPU11からAC3へ依頼され、AC3において実行される。
次に、以上の処理の流れについて、具体的な例を用いて説明する。図8は、CPE21における処理を説明するための図である。図8は、AC3の状態の変化の例を示し、4つのPE22を含むように示している。なお、図8において、ノードStartは、CPE21が動作する前の状態を示し、ノードEndは、CPE21が動作を終了した状態を示す。CPE21が動作を開始すると、スタンバイ状態101の状態になる。
図8において、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1でかつ並列度が1の処理Wを、CPU11から依頼されたときは、状態102になる。
スタンバイ状態101では、AC3内部ではゲーティング可能な回路部分に対してはクロックゲーティングを行いクロック信号の供給が停止され、クロック信号の周波数を下げられる回路部分に対しては下げられるレベルまで下げた周波数のクロック信号が供給される。よって、スタンバイ状態101は、AC3の消費電力が最低の状態である。
そのスタンバイ状態101において、上述したような処理Wを依頼されると、CPE21は、その処理Wが1つのPE22で処理できる負荷1であり、並列度が1である処理であることが判明するので、その場合は、1つのPE22Aを動作すべきPEとし、かつそのPE22Aの動作周波数を最大動作周波数fに設定し、他のPE22B,22C,22Dに対しては、クロックゲーティングを行い、かつ電力の供給を停止する。なお、図8において、4つのPE22中、斜線を付したPE22Aが動作するPEである。
その処理Wが終了すると、状態102からスタンバイ状態101へ戻る。さらに、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1でかつ並列度が4の処理Xを、CPU11から依頼されたときは、状態103になる。
具体的には、上述したような処理Xを依頼されると、CPE21は、その処理Xが1つのPE22で処理できる負荷1であり、並列度が4である処理であることが判明する。そして、もっとも消費電力が少ない動作方法が、動作可能な複数のPE22に均等に負荷を分担させる方法であるときは、4つのPE22全てを動作すべきPEとし、かつ各PE22の動作周波数を(1/4)f(fは最大動作周波数)に設定して動作させる。
なお、負荷が1でかつ並列度が4の処理Xの場合、選択肢としては、他にも、(1/1)fの動作周波数で1つのPEで実行する方法と、(1/2)fの動作周波数で2つのPEで実行する方法とあるが、AC3における各回路の実装方法、運用方法等によって、決定される最適なすなわち低消費電力になる方法は、異なる。
その処理Xが終了すると、状態103からスタンバイ状態101へ戻る。さらに、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1/4でかつ並列度が2の処理Yと、負荷が2でかつ並列度が2の処理Zの2つの処理を、CPU11から依頼されたときは、状態104になる。
具体的には、上述したような処理YとZを依頼されると、CPE21は、処理Yについては、1つのPE22で処理できる負荷の(1/4)であり、並列度が2であることが判明する。そして、CPE21は、処理Zについては、2つのPE22で処理できる負荷2であり、並列度が2であることが判明する。従って、もっとも消費電力が少ない動作方法が、動作可能な複数のPE22に均等に負荷を分担させる方法であるときは、処理Yについては、2つのPE22A, PE22Bを動作すべきPEとし、かつ動作周波数(1/8)fに設定して処理Yを行うように動作させ、処理Zについては、2つのPE22C,22Dを動作すべきPEとし、かつ動作周波数を(1/1)fに設定して処理Zを行うように動作させる。この場合、処理Yのプログラムは、PE22A, PE22Bにロードされ、処理Zのプログラムは、PE22C,22Dにロードされる。
その処理Y,Zが終了すると、状態104からスタンバイ状態101へ戻る。
以上のように、AC3においては、処理プログラムに応じて、最適な消費電力となるように、ここでは低消費電力となるように、各PE22の動作は制御され、その結果、AC3における消費電力は動的に変化するように制御される。すなわち、AC3内では、処理プログラムの負荷に応じて、内部の演算リソースである演算部22aの提供及びその動作状態が動的に変更される。そのとき、AC3において最適な消費電力になるように、動作する各PE22の演算部22aに対しては動作周波数と供給電圧を決定され、動作しない各PE22に対しては、クロックゲーティング、電圧供給の停止等が行われる。その結果、使用しないPE22においては、クロック信号による電力の消費や、内部のリーク電流の発生を低く抑え、無駄な電力消費を抑えることができる。
よって、本実施の形態によれば、AC3は、自律的に、内部の複数のPE22における処理分担を決定し、かつ消費電力を考慮して動作及び処理能力を決定して、CPU11から依頼された処理を実行するようにしたので、AC3は、最適な消費電力で依頼された処理を行うことができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態を説明する。第2の実施の形態に係る情報処理装置用のACは、複数の汎用の処理部(PE)を有するだけでなく、さらに、複数のハード・マクロを有し、その複数のハード・マクロの動作についても、処理分担を決定して、かつ最適な消費電力で処理を実行するように制御する。
図9は、第2の実施の形態に係わるAC3Aの構成を示すブロック図である。第1の実施の形態のAC3と同じ構成要素については、同じ符号を付して説明は省略する。
図9に示すように、AC3Aは、ハード・マクロとして、複数(ここでは2つ)のエンコーダ26A、26Bと、複数(ここでは2つ)のデコーダ26C、26Dとを有し、それぞれが、内部バス25を介して、CPE21と接続されている。以下、エンコーダ26A、26Bと、デコーダ26C、26Dとを、纏めて指すときは、あるいはその中の1つを指すときは、ハード・マクロ26という。
ハード・マクロ26は、ハードウエアエンジン部であり、PE22のような受信したプログラムを実行可能な汎用な処理部ではない。PE22は、プログラムに応じた処理を実行可能な汎用な処理部であるが、ハード・マクロ26の処理内容は、ASIC等のハードウエアにより実現されており、動作用の制御データと対象データが与えられるとその処理が実行されるものである。
本実施の形態では、AC3Aは、ハード・マクロ26によって、MPEG4、H264、VC1等の画像処理における、画像データのエンコード処理とデコード処理の2つの処理が実行できるように構成されているものとする。2つのエンコーダ26A、26Bは、CPE21からの依頼に基づいて、エンコード処理を並列処理可能なハードウエア回路である。2つのデコーダ26C、26Dも、CPE21からの依頼に基づいて、デコード処理を並列処理可能なハードウエア回路である。
従って、AC3Aは、それぞれが並列処理可能なハード・マクロ26を用いて、エンコード又はデコードの処理を、あるいはエンコードとデコードの両処理を、PE22の処理とは別に実行可能となっている。
また、エンコーダ26A、26Bとデコーダ26C、26Dには、それぞれ、F/V制御部26Ac、26Bc、26Cc、26Dc(以下、纏めてあるいは1つのF/V制御部を指すときはF/V制御部26cという)が設けられている。各F/V制御部26cは、対応するハード・マクロ26の動作及び処理能力の両方を制御する動作制御部であり、具体的には、対応するハード・マクロ26へ供給するクロック信号の周波数の変更の機能、ハード・マクロ26内の各回路へ供給されるクロック信号の供給と停止の機能、ハード・マクロ26内の各回路へ供給される電力の供給と停止の機能を有する回路である。
よって、情報処理装置1においてアプリケーションプログラムが実行されるときに、エンコーダ26A、26Bとデコーダ26C,26Dの使用状態に応じて、あるいは、使用/不使用に応じて、クロック信号の周波数の変更、クロック信号の供給と停止、および電力の供給と停止が、CPE21の制御の下で行われる。
なお、本実施の形態においても、エンコーダ26A、26Bとデコーダ26C、26DのそれぞれにF/V制御部26cが設けられているが、エンコーダ26A、26Bとデコーダ26C、26Dの全体に対して一つのF/V制御部26cを設けて、その全体に対してクロック信号の周波数の変更、クロック信号の供給と停止、電力の供給と停止を行うようにしてもよい。その場合も、第1の実施の形態と同様に、PLL回路27の出力は、スイッチ回路29を介して出力するようにし、そのスイッチ回路26に対してクロックの供給を停止するための制御信号が、CPE21から供給される。
各機能は、第1の実施の形態で説明したPE22に対する機能と同等である。
なお、本実施の形態においても、各F/V制御部26cは、対応するハード・マクロ26の動作及び処理能力の両方を制御するが、動作及び処理能力の少なくとも一方でもよい。
そして、CPE21の演算部21aが、後述するように、各PE22と、各ハード・マクロ26と、各F/V制御部22c、26cを制御する。よって、各F/V制御部22cによる演算部22aの動作及び処理能力の制御、及び各F/V制御部26cによるハード・マクロ26の動作及び処理能力の制御は、CPE21の演算部21aの指示に応じて行われる。
制御部である演算部21aは、CPU11から所定の処理を実行する旨のコマンドを受信すると、そのコマンドに応じて、4つのPE22及び4つのハード・マクロ26に対して所定の指示を出力する。その所定の指示には、どのPE22、あるいはどのハード・マクロ26がその処理を実行するのかの指示、そのときの動作周波数をどのくらいにするのかの指示、等が含まれる。
以下、AC3Aの動作を、例えば、カメラ等によって撮像されて得られた画像データについて、画像データのデコードの処理と画像認識の処理を、AC3Aが行う場合で説明する。なお、画像認識の処理とデコードの処理は、同時に行われても、同時に行われなくても良いし、さらに、互いに同期して行われても良いし、非同期で行われても良い。
CPU11が、第1の実施の形態と同様に、画像認識のアプリケーションプログラムを、AC3Aに依頼して行わせる場合、CPU11がAC3Aに対して所定のコマンドを出力する。AC3Aは、そのコマンドを受信してCPU11により指定されたそのアプリケーションプログラムの処理を行う。この場合、画像認識のアプリケーションプログラムは、PE22において実行されるが、その場合の負荷情報及び並列度情報に基づく、PE22の動作は、第1の実施の形態における動作と同様である。すなわち、その画像処理プログラムの負荷情報と、並列度情報に基づいて、CPE21が、複数のPE22の動作を決定する。
その場合におけるCPU11の処理の流れは、図3及び図4と同様である。すなわち、CPU11は、画像認識プログラムをAC3Aに送信し、CPE21の演算部21aは、CPU11からの画像認識プログラムをRAM4にストアする。そして、CPU11は、画像認識処理の対象である対象データのアドレスと、認識処理の結果データのアドレスと、画像認識プログラムについての負荷情報と、画像認識プログラムについての並列度情報とを、AC3Aへ送信する。AC3Aは、受信した負荷情報と並列度情報をRAM4に蓄積する。
一方、CPU11が、画像データのデコード処理を、AC3Aに依頼して行わせる場合、CPU11がAC3Aに対して、上述した画像認識処理のためのコマンドとは異なる、所定のコマンドを出力する。なお、CPU11は、画像データのデコード処理の依頼を、上述した画像認識の処理の依頼と同時に行ってもよいし、別々に行ってもよい。AC3Aは、そのコマンドを受信してCPU11により指定されたデコード処理を、ハード・マクロ26を用いて行う。
図10は、その場合におけるCPU11の処理の流れの例を示すフローチャートである。
CPU11が、画像データのデコード処理をAC3Aに分担させる場合、CPU11は、デコーダ26Cと26Dの使用の有無の通知を、AC3Aへ行う(ステップS11)。CPU11は、デコード処理を依頼するので、デコーダ26Cと26Dを使用することを通知し、その結果、エンコーダ26Aと26Bは使用しないことが通知されたことになる。
次に、図3の場合と同様に、CPU11は、対象データのアドレスと、結果データのアドレスと、負荷情報と、並列度情報とを、AC3Aへ送信する(ステップS2)。ここでは、対象データは、デコード処理の対象データであり、結果データは、デコード処理の結果データであり、負荷情報は、デコード処理の対象データについての負荷情報であり、並列度情報は、デコード処理の並列度情報である。負荷情報は、ここでは、対象データである画像データの解像度、プロファイル等に応じて、決定される。例えば、解像度が高ければ、処理の負荷が大きくなり、解像度が低ければ、その負荷は小さくなるからである。AC3Aは、受信した負荷情報と並列度情報をRAM4に蓄積する。
図11は、デコード処理についての負荷情報と並列度情報を示すテーブルデータの例を示す図である。図11に示すように、画像データの解像度のレベルに応じて、負荷情報と、並列度情報とが予め設定されている。図示はしないが、エンコード処理についても、図11と同様のテーブルデータが用意されている。
CPE21における画像認識プログラムの処理については、第1の実施の形態における図5から図7と同様であるので、説明は省略する。
デコード処理について、図12を用いて説明する。図12は、CPE21におけるデコード処理の例を示すフローチャートである。
CPE21は、CPU11から上述したデコード処理を依頼されると、受信した負荷情報と並列度情報を参照し、その負荷情報と並列度情報をRAM4にストアする(ステップS11)。
CPE21は、その負荷情報と並列度情報とに基づいて、動作すべきハード・マクロ(HM)を決定する(ステップS22)。すなわち、CPE21は、負荷情報に、並列度情報を加味して、動作すべき1以上のハード・マクロ(HM)を決定し、動作するハード・マクロ26の数が決定される。
ここでは、依頼された処理がデコード処理なので、デコーダ26C、26Dの2つが使用可能であり、並列度情報が「2」であれば、2つのハード・マクロ26Cと26Dを、動作するハード・マクロとして決定される。
そして、第1の実施の形態と同様に、CPE21は、受信した負荷情報と並列度情報に基づいて、各ハード・マクロ26を、どれくらいの動作周波数で実行できるかを決定することができる。さらに、デコード処理を行わないハード・マクロがあれば、消費電力が最小になるように、そのようなハード・マクロ26は、例えば、電力の供給を停止するように制御される。
従って、CPE21は、決定した1以上の動作すべきハード・マクロ26のそれぞれの動作周波数と供給電圧を決定する(ステップS13)。よって、動作しないハード・マクロ26に対しては、クロック信号は、供給されず、かつ演算処理に必要な電力も供給されない。ステップS13におけるハード・マクロ26に対する、負荷に応じた動作周波数と供給電圧の決定の方法は、第1の実施の形態の図6で説明したPE22に対する、負荷電力に応じた動作周波数と供給電圧の決定の方法と同じであるので、説明は省略する。
次に、CPE21は、動作するハード・マクロ(HM)26に対して、起動命令を出力する(ステップS25)。起動命令を受信したハード・マクロ(HM)26は、デコード処理の対象データを指定されたアドレスから読み出して取得し、デコード処理を施し、そのデコード処理した結果データを、指定されたアドレスに出力する。このとき、各ハード・マクロ26は、F/V制御部26cに通知されて設定された動作周波数と電圧に従って動作している。
以上のように、AC3Aは、複数の汎用処理部に加えて、複数のハード・マクロを有し、CPE21が、処理対象のデータ負荷情報と並列度情報とに基づいて、その複数のハード・マクロの動作を決定する。
よって、本実施の形態によれば、AC3Aは、自律的に、内部の複数のPE22と複数のハード・マクロ26における処理分担を決定し、かつ消費電力を考慮して動作及び処理能力を決定して、CPU11から依頼された処理を実行するようにしたので、AC3Aは、最適な消費電力で依頼された処理を行うことができる。
なお、上述した例では、ハード・マクロの行う処理は、画像データのエンコードとデコードの例として説明したが、他にも例えば、物理シミュレーション処理(仮想空間内での物理現象をシミュレーションする処理)、WIFI通信処理、暗号演算(符号化/復号化)処理、等であってもよい。
以上のように、上述した実施の形態によれば、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能なアクセラレータ及び情報処理装置を実現することができる。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
本発明の第1の実施の形態に係わる情報処理装置の構成を示す構成図である。 本発明の第1の実施の形態に係わるアクセラレータの構成を説明するためのブロック図である。 本発明の第1の実施の形態に係わる、CPUの処理の流れの例を示すフローチャートである。 本発明の第1の実施の形態に係わる、負荷情報と並列度情報を示すテーブルデータの例を示す図である。 本発明の第1の実施の形態に係わる、CPEの処理の例を示すフローチャートである。 本発明の第1の実施の形態に係わる、動作周波数の決定処理の流れの例を示すフローチャートである。 本発明の第1の実施の形態に係わる、CPEの演算部における、処理プログラムの終了時の処理の流れの例を示すフローチャートである。 本発明の第1の実施の形態に係わる、CPEにおける処理を説明するための図である。 本発明の第2の実施の形態に係わるアクセラレータの構成を示すブロック図である。 本発明の第2の実施の形態に係わる、CPUの処理の流れの例を示すフローチャートである。 本発明の第2の実施の形態に係わる、デコード処理についての負荷情報と並列度情報を示すテーブルデータの例を示す図である。 本発明の第2の実施の形態に係わる、CPEにおけるデコード処理の例を示すフローチャートである。
符号の説明
1 情報処理装置、2 PC、3 アクセラレータ、21 制御用プロセッシングユニット(CPE)、22 プロセッシングユニット(PE)

Claims (5)

  1. アクセラレータと、前記アクセラレータと接続されプロセッサとを有する情報処理装置であって、
    前記アクセラレータは、プログラムを実行可能なアクセラレータであって、
    前記プログラムを並列処理により実行可能な複数の演算部と、
    前記複数の演算部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、
    実行する前記プログラムについての負荷情報と並列度情報に基づいて、前記プログラムの実行のための、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、
    を有し、
    前記アクセラレータは、前記プロセッサから、前記プログラムの実行前に、前記プログラムと前記プログラムについての前記負荷情報及び前記並列度情報とを受信することを特徴とする情報処理装置。
  2. 前記プロセッサと接続され、前記プロセッサへの信号の入出力を制御する第1の入出力制御部と、
    前記プロセッサと前記第1の入出力制御部を介して接続され、前記プロセッサへの信号の入出力を制御する第2の入出力制御部と、を含み、
    前記アクセラレータは、前記第2の入出力制御部に接続されていることを特徴とする請求項1に記載の情報処理装置。
  3. アクセラレータと、前記アクセラレータと接続されプロセッサとを有する情報処理装置であって、
    前記アクセラレータは、プログラムを実行可能なアクセラレータであって、
    前記プログラムを並列処理により実行可能な複数の演算部と、
    対象データに対する所定の処理を並列に実行可能な複数のハードウエアエンジン部と、
    前記複数の演算部および前記複数のハードウエアエンジン部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、
    実行する前記プログラムについての第1の負荷情報と第1の並列度情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、かつ前記対象データについての第2の負荷情報と第2の並列度情報に基づいて、前記複数のハードウエアエンジン部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、
    を有し、
    前記アクセラレータは、前記プロセッサから、前記プログラムの実行前に、前記プログラムと、前記対象データと、前記プログラムについての前記第1の負荷情報及び前記第1の並列度情報と、前記対象データに関する前記第2の負荷情報及び前記第2の並列度情報とを受信することを特徴とする情報処理装置。
  4. 前記プロセッサと接続され、前記プロセッサへの信号の入出力を制御する第1の入出力制御部と、
    前記プロセッサと前記第1の入出力制御部を介して接続され、前記プロセッサへの信号の入出力を制御する第2の入出力制御部と、を含み、
    前記アクセラレータは、前記第2の入出力制御部に接続されることを特徴とする請求項3に記載の情報処理装置。
  5. プログラムを並列処理により実行可能な複数の演算部、前記複数の演算部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部、及び前記動作制御部を制御する制御部を有するアクセラレータと、前記アクセラレータと接続されたプロセッサとを含む情報処理装置を用いる情報処理方法であって、
    前記アクセラレータは、前記プロセッサから、前記プログラムの実行前に、前記プログラムと前記プログラムについての負荷情報及び並列度情報とを受信し、
    前記制御部は、実行する前記プログラムについての前記負荷情報と前記並列度情報に基づいて、前記プログラムの実行のための、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御することを特徴とする情報処理方法。
JP2007304273A 2006-12-06 2007-11-26 情報処理装置及び情報処理方法 Expired - Fee Related JP4945410B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007304273A JP4945410B2 (ja) 2006-12-06 2007-11-26 情報処理装置及び情報処理方法
US11/950,901 US8046565B2 (en) 2006-12-06 2007-12-05 Accelerator load balancing with dynamic frequency and voltage reduction

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006329868 2006-12-06
JP2006329868 2006-12-06
JP2007304273A JP4945410B2 (ja) 2006-12-06 2007-11-26 情報処理装置及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2008165746A JP2008165746A (ja) 2008-07-17
JP4945410B2 true JP4945410B2 (ja) 2012-06-06

Family

ID=39547223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007304273A Expired - Fee Related JP4945410B2 (ja) 2006-12-06 2007-11-26 情報処理装置及び情報処理方法

Country Status (2)

Country Link
JP (1) JP4945410B2 (ja)
CN (1) CN101196776B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012008019A1 (ja) * 2010-07-13 2012-01-19 富士通株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2012135019A2 (en) * 2011-03-29 2012-10-04 Lyrical Labs LLC Video encoding system and method
JP2013143652A (ja) * 2012-01-10 2013-07-22 Canon Inc 情報処理装置、情報処理方法
JP2013143653A (ja) * 2012-01-10 2013-07-22 Canon Inc 情報処理装置、情報処理方法
JP5950811B2 (ja) * 2012-12-13 2016-07-13 Kddi株式会社 条件テーブルからクエリエントリに一致する条件エントリを検索する検索装置、フロースイッチ装置、プログラム及び方法
US9747185B2 (en) 2013-03-26 2017-08-29 Empire Technology Development Llc Acceleration benefit estimator
CN110688169B (zh) * 2019-09-16 2021-10-08 腾讯科技(深圳)有限公司 应用程序加速方法及装置、存储介质、电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3946393B2 (ja) * 1999-10-19 2007-07-18 株式会社東芝 階層構造をもつ並列計算機
KR20020028814A (ko) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 마이크로코드 엔진을 이용한 자바 하드웨어 가속기
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US20040039940A1 (en) * 2002-08-23 2004-02-26 Koninklijke Philips Electronics N.V. Hardware-based packet filtering accelerator
CN100430896C (zh) * 2002-10-29 2008-11-05 洛克希德马丁公司 硬件解析器加速器
JP4057989B2 (ja) * 2003-09-26 2008-03-05 株式会社東芝 スケジューリング方法および情報処理システム
US20050228967A1 (en) * 2004-03-16 2005-10-13 Sony Computer Entertainment Inc. Methods and apparatus for reducing power dissipation in a multi-processor system
EP2207103A1 (en) * 2004-04-01 2010-07-14 Panasonic Corporation Integrated circuit for video/audio processing
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ

Also Published As

Publication number Publication date
CN101196776B (zh) 2014-06-25
JP2008165746A (ja) 2008-07-17
CN101196776A (zh) 2008-06-11

Similar Documents

Publication Publication Date Title
US20240028094A1 (en) Techniques To Enable Communication Between A Processor And Voltage Regulator
JP4945410B2 (ja) 情報処理装置及び情報処理方法
CN110109527B (zh) 动态电压裕度恢复
JP2024024042A (ja) プロセッサの最適スロットルのためのシステム、機器、及び方法
US8046565B2 (en) Accelerator load balancing with dynamic frequency and voltage reduction
KR101529016B1 (ko) 멀티-코어 시스템 에너지 소비 최적화
US20080271035A1 (en) Control Device and Method for Multiprocessor
KR101930183B1 (ko) 명령어 세트 아키텍처의 상이한 부분들을 구현하는 다수의 비유사 프로세서 코어들을 포함하는 프로세서
KR20180048886A (ko) 커맨드 스트림 힌팅을 사용한 gpu 작업부하 특성화 및 전력 관리
KR20170019444A (ko) 시스템 메모리의 온도 제어
KR20130024155A (ko) 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
JP2011118871A (ja) イベント処理のためのターボ性能を向上させる方法および装置
KR101930659B1 (ko) 다수의 비유사 프로세서 코어들을 포함하는 프로세서
US20140025930A1 (en) Multi-core processor sharing li cache and method of operating same
US10409350B2 (en) Instruction optimization using voltage-based functional performance variation
CN113748397A (zh) 用于动态控制处理器的处理电路的电流消耗的系统、装置和方法
KR20130020420A (ko) 반도체 장치의 태스크 스케쥴링 방법
TWI432953B (zh) 具電源管理之超長指令處理器以及其電源管理裝置與方法
EP3881181B1 (en) System, apparatus and method for configurable control of asymmetric multi-threading (smt) on a per core basis
US20170068575A1 (en) Hardware Migration between Dissimilar Cores
CN109791427B (zh) 使用滑动平均值的处理器电压控制
KR20210091048A (ko) Soc의 동적 열 분배를 위한 시스템, 장치 및 방법
EP3857336A1 (en) System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
US11921564B2 (en) Saving and restoring configuration and status information with reduced latency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120305

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees