JP2008165746A - Accelerator, information processor and information processing method - Google Patents
Accelerator, information processor and information processing method Download PDFInfo
- Publication number
- JP2008165746A JP2008165746A JP2007304273A JP2007304273A JP2008165746A JP 2008165746 A JP2008165746 A JP 2008165746A JP 2007304273 A JP2007304273 A JP 2007304273A JP 2007304273 A JP2007304273 A JP 2007304273A JP 2008165746 A JP2008165746 A JP 2008165746A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- program
- information
- accelerator
- control unit
- 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.)
- Granted
Links
Images
Landscapes
- Power Sources (AREA)
- Advance Control (AREA)
Abstract
Description
本発明は、アクセラレータ、情報処理装置及び情報処理方法に関し、特に、情報処理装置に接続可能でプログラムを並列処理により実行可能な複数の演算部を有するアクセラレータ、そのアクセラレータに接続された情報処理装置及び情報処理方法に関する。 The present invention relates to an accelerator, an information processing device, and an information processing method, and in particular, an accelerator having a plurality of arithmetic units that can be connected to the information processing device and can execute a program by parallel processing, an information processing device connected to the accelerator, and The present invention relates to an information processing method.
従来より、演算機能を有する装置を情報処理装置に付加して、実行される処理の一部を、その付加した装置に分担させる技術が知られている。例えば、情報処理装置としてのパーソナルコンピュータ(以下、PCという)に、アクセラレータと呼ばれる演算機能を有する装置を装着して、PC本体の中央処理装置(以下、CPUという)が、アクセラレータにプログラムの処理を分担させ、処理速度の向上を図る技術がある。 2. Description of the Related Art Conventionally, a technique is known in which a device having an arithmetic function is added to an information processing device, and a part of processing to be executed is shared by the added device. For example, a personal computer (hereinafter referred to as a PC) serving as an information processing device is equipped with a device having an arithmetic function called an accelerator, and the central processing unit (hereinafter referred to as a CPU) of the PC main body performs program processing on the accelerator. There is a technology for sharing and improving the processing speed.
最近では、処理分担あるいは処理速度向上を単に図るだけでなく、消費電力を考慮した、本体部にアクセラレータを付加した情報処理装置も、例えば、特開2003−15785号公報に、提案されている。 Recently, an information processing apparatus in which an accelerator is added to a main body in consideration of power consumption as well as processing sharing or processing speed improvement has been proposed in, for example, Japanese Patent Application Laid-Open No. 2003-15785.
その提案に係る技術によれば、本体部側のCPUが、付加されたアクセラレータの性能情報を読み込み、その性能情報に基づいてアクセラレータの駆動電圧あるいは駆動周波数を決定して設定するようにすることによって、低消費電力モード等に対応したアクセラレータの駆動が可能となる。 According to the technology related to the proposal, the CPU on the main body side reads the performance information of the added accelerator, and determines and sets the driving voltage or driving frequency of the accelerator based on the performance information. In addition, it is possible to drive the accelerator corresponding to the low power consumption mode and the like.
しかし、上記の提案に係る情報処理装置の場合、アクセラレータの駆動電圧等を決定するのは本体部側のCPUであり、そのために、そのCPUがその決定処理を実行しなければならず、CPUにオーバーヘッドが発生する。 However, in the case of the information processing apparatus according to the above proposal, it is the CPU on the main body side that determines the drive voltage of the accelerator, and for that purpose, the CPU must execute the determination process. Overhead occurs.
また、アクセラレータ内部に複数の演算部があるような場合について、上記の提案に係る情報処理装置は、何ら考慮されていない。
本発明は、以上の問題に鑑みてなされたものであり、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能なアクセラレータ、情報処理装置及び情報処理方法を提供することを目的とする。 The present invention has been made in view of the above problems, and an accelerator having a plurality of arithmetic units capable of executing a program by parallel processing determines sharing among a plurality of arithmetic units within itself, and a program It is an object to provide an accelerator, an information processing apparatus, and an information processing method capable of executing the above.
本発明の一態様によれば、情報処理装置に接続可能で、プログラムを実行可能なアクセラレータであって、前記プログラムを並列処理により実行可能な複数の演算部と、前記複数の演算部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、実行する前記プログラムについての負荷情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、を有するアクセラレータを提供することができる。 According to one aspect of the present invention, there is an accelerator that can be connected to an information processing apparatus and that can execute a program, and each of the plurality of arithmetic units that can execute the program by parallel processing, and each of the plurality of arithmetic units Determining at least one of the operation and processing capability of each of the plurality of arithmetic units based on load information about the program to be executed and an operation control unit that controls at least one of operation and processing capability; And an accelerator having a control unit that controls the operation control unit.
本発明によれば、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能なアクセラレータ、情報処理装置及び情報処理方法を実現することができる。 According to the present invention, an accelerator having a plurality of arithmetic units capable of executing a program by parallel processing determines an assignment among a plurality of internal arithmetic units, an accelerator capable of executing the program, an information processing device, and An information processing method can be realized.
以下、図面を参照して本発明の実施の形態を説明する。
(第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アーキテクチャは、このような構成に限られるものではない。
Embodiments of the present invention will be described below with reference to the drawings.
(First embodiment)
First, the configuration of the information processing apparatus according to the first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a configuration diagram showing the configuration of the information processing apparatus according to the present embodiment.
The
特に、MCH12は、CPU11と主メモリ15との接続等の機能を担う、いわゆるノースブリッジの機能を有する半導体装置のチップである。ICH13は、PCIバス、USB等を介して、ハードディスク装置(以下、HDDという)17等の、他の構成要素と結び付ける等、いわゆるサウスブリッジの機能を有する半導体装置のチップであり、ここでは、ICH13は、USB2、SATA(Serial ATA)、Audio、PCI Express等の規格に応じた各信号の入出力を制御する。また、グラフィック用処理装置であるGPU14は、いわゆるグラフィックエンジンであり、3次元グラフィックスの表示に必要な計算処理を行う半導体装置のチップである。
In particular, the
演算機能を有する付加装置としてのアクセラレータ(以下、ACと略す)3は、ICH13に接続されており、さらに、自己のワーキングメモリとしてのRAM(フラッシュメモリ等でもよい)4にも接続されているチップである。周辺デバイスとしてのAC3の構成については後述する。なお、RAM4は、AC3の内部に設けてもよい。
CPU11は、各種のアプリケーションプログラムを実行可能であり、各種アプリケーションプログラムの中には、負荷量の高いプログラムもあれば、負荷量の低いプログラムもある。従って、CPU11は、負荷量の高いアプリケーションプログラム、例えば、画像認識のアプリケーションプログラム、動画の再生等のアプリケーションプログラムの実行を、AC3に依頼して、行わせることができる。具体的には、情報処理装置1において、あるアプリケーションプログラムをAC3を用いて実行する場合には、CPU11がAC3に対して所定のコマンドを出力し、AC3は、そのコマンドを受信してCPU11により指定されたプログラムの処理を行う。その場合、例えば、AC3は、指定された処理、例えば画像の認識処理、を行う場合、SATA等からのストリーム信号をDMAにより読み込んで、その認識処理を行い、その認識処理した結果データを、DMAにより、GPU14等に転送して出力する。
An accelerator (hereinafter abbreviated as AC) 3 as an additional device having an arithmetic function is connected to the
The
PCI Expressは、1以上のレーン数を有する。ICH13とAC3とは、所定のレーン数、例えば、1、2、4、8等のレーン数のPCI Expressにより接続される。レーン数は、BIOS等により設定される。例えば、ICH13とAC3とは、4レーンのPCI Expressにより接続される。 PCI Express has one or more lanes. The ICH 13 and the AC 3 are connected by PCI Express having a predetermined number of lanes, for example, 1, 2, 4, 8, or the like. The number of lanes is set by the BIOS. For example, the ICH 13 and the AC 3 are connected by 4-lane PCI Express.
なお、図1において点線で示すように、複数のAC3のそれぞれを、PCI Expressの各レーンに接続するようにして、複数のAC3をICH13に接続するようにしてもよい。その結果、演算処理負荷の高いアプリケーションプログラムに対して、後述するプロセッシングユニットの数を増やして対応することができる。
Note that, as indicated by dotted lines in FIG. 1, each of the plurality of
さらになお、複数のAC3をICH13に接続するときに、各AC3とICH13とは、複数のレーンにより接続するようにしてもよい。
Furthermore, when a plurality of
AC3は、並列処理可能なマルチコア・マルチプロセッサ・アーキテクチャを有する半導体装置のプロセッサであり、各演算部の動作及び処理能力が制御される。 AC3 is a processor of a semiconductor device having a multicore multiprocessor architecture capable of parallel processing, and the operation and processing capability of each arithmetic unit are controlled.
本実施の形態では、AC3は、プログラムを並列処理可能な複数の演算部を含み、AC3は、その指定された処理を実行するときに、自らが複数の演算部間での分担を決定して、各演算部に処理を実行させる。分担の決定では、AC3は、自ら、複数の演算部のどの演算部にその処理を実行させるかを決定し、その処理を実行する演算部に対しては、電力を供給し、かつその実行に際しての動作周波数を決定して設定する。 In the present embodiment, AC3 includes a plurality of arithmetic units that can process a program in parallel, and AC3 determines the sharing among the plurality of arithmetic units when executing the specified processing. Then, each processing unit is caused to execute processing. In the determination of sharing, AC3 decides which computing unit of the plurality of computing units is to execute the process, supplies power to the computing unit that executes the process, and executes the process. Determine and set the operating frequency.
次に、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のチップ内に設けられている。
Next, the configuration of AC3 will be described. FIG. 2 is a block diagram for explaining the configuration of AC3. The AC 3 includes a control processing unit (hereinafter abbreviated as CPE) 21, a plurality of, here four, processing units (hereinafter abbreviated as PE), and an interface unit (hereinafter abbreviated as I / F unit) 23. including. The four PEs are respectively PE22A, PE22B, PE22C, and PE22D. Hereinafter, when collectively or referring to one PE, it is referred to as PE22. Further, the
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という)が設けられている。
The
演算部22aは、CPE21からの依頼に基づいて、処理プログラムを並列処理する回路である。演算部22aは、特定用途向けのハードウエアエンジンでもよいが、本実施の形態では、プログラム可能な汎用な処理部である。各演算部22aは、AC3における内部演算のためのリソースである。後述するように、演算部22aは、1以上の演算部を用いて処理プログラムを並列処理する。
演算部22aは、ここでは、データ幅が128ビットのデータに対してSIMD演算が可能な演算部である。さらに、演算部22aは、32ビットの単精度及び64ビットの倍精度のフローティング演算が可能である。
The computing unit 22a is a circuit that processes processing programs in parallel based on a request from the
Here, the calculation unit 22a is a calculation unit capable of performing SIMD calculation on data having a data width of 128 bits. Further, the calculation unit 22a can perform a 32-bit single-precision and 64-bit double-precision floating calculation.
各ローカルメモリ22bは、処理プログラム及び処理対象のデータである対象データをストアする記憶部である。 Each local memory 22b is a storage unit that stores a processing program and target data that is processing target data.
例えば、各PE22では、画像データに対する画像認識処理、あるいは画像データのエンコード及びデコード処理等のコーデック処理を行う場合、HDD17あるいは図示しないカメラから読み出された処理対象のデータが、各ローカルメモリ22bの容量に合わせて分割された状態で各ローカルメモリ22bに記憶される。そして、各演算部22aは、SIMD演算により、その記憶されたデータに対して所定の処理を実行し、実行結果を各ローカルメモリ22bに記憶する。各PE22では、所定の処理が終了すると、ローカルメモリ22bから処理されたデータは、HDD17に転送され、次に処理すべきデータがHDD17から各ローカルメモリ22bに転送され、上述したように所定の処理が行われる。以上の処理を繰り返すことによって、情報処理装置1では、AC3を利用して、画像認識処理等がスムーズに行われる。
For example, in each
各F/V制御部22cは、対応する演算部22aの動作及び処理能力の両方を制御する動作制御部であり、具体的には、対応する演算部22aへ供給するクロック信号の周波数の変更の機能、演算部22a内の各回路へ供給されるクロック信号の供給と停止の機能、及び演算部22a内の各回路へ供給される電力の供給と停止の機能を有する回路である。なお、各回路へ供給されるクロックCLKは、PLL回路27から供給される。
Each F / V control unit 22c is an operation control unit that controls both the operation and processing capability of the corresponding calculation unit 22a. Specifically, the F / V control unit 22c changes the frequency of the clock signal supplied to the corresponding calculation unit 22a. This is a circuit having a function, a function of supplying and stopping a clock signal supplied to each circuit in the calculation unit 22a, and a function of supplying and stopping power supplied to each circuit in the calculation unit 22a. The clock CLK supplied to each circuit is supplied from the
なお、ここでは、各PE22にF/V制御部22cが設けられているが、4つのPE22の全体に対して一つのF/V制御部22cを設けて、4つのPE22の全体に対してクロック信号の周波数の変更、クロック信号の供給と停止、及び電力の供給と停止を行うようにしてもよい。その場合、PLL回路27の出力は、図2において点線で示すスイッチ回路29を介して出力するようにし、そのスイッチ回路29に対してクロックの供給を停止するための制御信号が、CPE21から供給される。
Here, each
動作周波数の変更の機能は、後述するように、処理プログラムの負荷に比べて、各PE22内の各演算部22aが提供できる演算性能が高い場合に、各PE22内の各演算部22a等の動作周波数を低減して、クロック信号による消費電力を最適にするための機能である。
As will be described later, the function of changing the operating frequency is the operation of each arithmetic unit 22a in each
クロック信号の供給と停止の機能、すなわち、クロックゲーティング機能は、各PE22内の各演算部22a等に対するクロック信号の供給と停止を行うための機能である。クロック信号の供給が停止されると、クロック信号による消費電力を0(ゼロ)に抑えることができる。
The function of supplying and stopping the clock signal, that is, the clock gating function is a function for supplying and stopping the clock signal to each arithmetic unit 22a and the like in each
電力の供給と停止の機能は、各PE22内の各演算部22a等に対する電力の供給と停止を行う機能である。電力の供給が停止されると、内部回路のリーク電流による消費電力を0(ゼロ)に抑えることができる。
The function of supplying and stopping power is a function of supplying and stopping power to each arithmetic unit 22a and the like in each
各演算部22aへ供給されるクロック周波数は、各演算部22aの処理能力を示す。各演算部22aについて予め決められた最大動作周波数のとき、その演算部22aの処理能力は最大となり、各F/V制御部22cは、その最大動作周波数以下に変更することによって、演算部22aの処理能力を、最大処理能力以下に、制御することができる。 The clock frequency supplied to each computing unit 22a indicates the processing capability of each computing unit 22a. When each operation unit 22a has a predetermined maximum operating frequency, the processing capability of the operation unit 22a is maximized, and each F / V control unit 22c changes the operation frequency of the operation unit 22a below the maximum operation frequency. The processing capacity can be controlled below the maximum processing capacity.
また、各演算部22aへ供給されるべきクロック信号の供給を停止することによって、各F/V制御部22cは、各演算部22aの動作を停止させることができる。同様に、各演算部22aへ供給されるべき電力、例えば供給電圧、の供給を停止することによって、各F/V制御部22cは、演算部22aの動作を停止させることができる。従って、各F/V制御部22cは、演算部22aへのクロック信号の周波数の変更をしたり、クロック信号の供給を制御、すなわちクロックゲーティングを行ったり、各演算部22aへの電力の供給を制御することによって、各演算部22aの動作を制御することができる。 Further, by stopping the supply of the clock signal to be supplied to each calculation unit 22a, each F / V control unit 22c can stop the operation of each calculation unit 22a. Similarly, each F / V control part 22c can stop the operation | movement of the calculating part 22a by stopping supply of the electric power which should be supplied to each calculating part 22a, for example, supply voltage. Accordingly, each F / V control unit 22c changes the frequency of the clock signal to the calculation unit 22a, controls the supply of the clock signal, that is, performs clock gating, and supplies power to each calculation unit 22a. By controlling the operation, the operation of each computing unit 22a can be controlled.
なお、本実施の形態では、各F/V制御部22cは、対応する演算部22aの動作及び処理能力の両方を制御するが、動作及び処理能力の少なくとも一方でもよい。 In the present embodiment, each F / V control unit 22c controls both the operation and the processing capability of the corresponding calculation unit 22a, but may be at least one of the operation and the processing capability.
そして、CPE21の演算部21aが、後述するように、各PE22と各F/V制御部22cを制御する。よって、各F/V制御部22cによる演算部22aの動作及び処理能力の制御は、CPE21の演算部21aの指示に応じて行われる。
And the calculating
上述したように、制御部である演算部21aは、CPU11から所定の処理を実行する旨のコマンドを受信すると、4つのPE22に対して所定の指示を出力する。その所定の指示には、どのPE22がその処理を実行するのかの指示、そのときの動作周波数をどのくらいにするのかの指示、等を含む。
As described above, when the
また、AC3のCPE21は、可変の電源である、外部の電源回路モジュールであるVRM(Voltage Regulator Module)30に対して、所定のコード信号VID、例えば6ビット信号、を出力し、VRM30は、その所定のコード信号VIDに応じた電源電圧VをAC3に供給する。
The
さらにまた、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からの電源が供給される。
Furthermore, each circuit on the
例えばアプリケーションプログラムが実行されていてAC3を使用する状態では、電源PS1からPS13のすべてから各回路部に電源が供給されるように、CPU11は、各電源からの電源供給を制御する。また、例えばAC3を使用しない状態では、不要な電源の供給がされないように、CPU11は、電源供給を制御する。より具体的には、CPU11が、AC3に対してデバイスステートを指示すると、CPE21は、そのデバイスステートの情報を受信し、その情報に応じて、外部の電源コントローラ31に対して、各電源PS1からPS13の電源供給状態を指示する。外部電源コントローラ31は、その電源供給状態の指示に従って、各電源PS1からPS13の電源供給状態を変更する。デバイスステートには、上述したようなすべての電源PS1からPS13からの電源を供給するフル状態D0、電源PS1からPS13中の一部の電源からのみ電源供給を行う状態D1、及び、いわゆるスリープ状態D2のような状態がある。
For example, when the application program is executed and AC3 is used, the
以上のように、CPU11により、情報処理装置1の状態に応じて、ここでは、AC3の使用状態に応じて、AC3内の各ブロックに対する電源供給の制御が行われる。
As described above, the
図3は、CPU11の処理の流れの例を示すフローチャートである。CPU11における処理プログラムは、主メモリ15内にストアされて、CPU11によって実行される。
CPU11が各種処理を実行している途中で、ある処理、ここでは画像の認識処理、をAC3に分担させる場合の例で説明する。CPU11は、AC3との間で、その処理を依頼する前に、所定の前処理を実行した後に、CPU11は、その画像認識プログラムをAC3に送信する(ステップS1)。CPE21の演算部21aは、CPU11からの画像認識プログラムをRAM4にストアする。
FIG. 3 is a flowchart showing an example of the processing flow of the
In the middle of executing various processes by the
次に、CPU11は、画像認識処理の対象である対象データのアドレスと、認識処理の結果データのアドレスと、画像認識プログラムの負荷情報と、画像認識プログラムの並列度情報とを、AC3へ送信する(ステップS2)。AC3は、受信した負荷情報と並列度情報をRAM4に蓄積する。
Next, the
負荷情報は、処理の重さを示す情報であり、並列度情報は、その処理プログラムを並列処理できる度合いを示す情報である。本実施の形態では、負荷情報と並列度情報は、0(ゼロ)を含む整数0,1,2,・・で示す例で説明する。負荷情報は、その数が大きい程、その処理の負荷が大きいことを示す。並列度情報は、その数に応じたPEの数で実行可能な処理であることを示す。
The load information is information indicating the weight of processing, and the parallel degree information is information indicating the degree to which the processing program can be processed in parallel. In the present embodiment, load information and parallelism information will be described using an example indicated by
負荷情報と並列度情報は、処理プログラム毎に、予め決められて、主メモリ15にストアされている。図4は、その負荷情報と並列度情報を示すテーブルデータの例を示す図である。
The load information and the parallelism information are determined in advance for each processing program and stored in the
図4に示すように、処理プログラム毎に、負荷情報と、並列度情報とが予め設定されている。処理プログラムAは、負荷が2であり、並列度が4であることが示されている。処理プログラムBは、負荷が1であり、並列度が1であることが示されている。処理プログラムCは、負荷が1であり、並列度が4であることが示されている。 As shown in FIG. 4, load information and parallelism information are set in advance for each processing program. The processing program A is shown to have a load of 2 and a degree of parallelism of 4. It is shown that the processing program B has a load of 1 and a parallelism of 1. It is shown that the processing program C has a load of 1 and a parallelism of 4.
図4の表データは、主メモリ15に予め記憶されているので、CPU11は、AC3に依頼する処理プログラムの負荷情報と並列度情報を、主メモリ15から読み出して取得してAC3に送信することができる。
Since the table data of FIG. 4 is stored in the
次に、AC3におけるCPE21の演算部21aの処理について説明する。図5は、CPE21の処理の例を示すフローチャートである。
Next, processing of the
CPE21は、CPU11から上述した処理を依頼されると、受信した負荷情報と並列度情報を参照し、その負荷情報と並列度情報をRAM4にストアする(ステップS11)。
When the
CPE21は、その負荷情報と並列度情報とに基づいて、動作すべきPEを決定する(ステップS12)。すなわち、CPE21は、負荷情報に、並列度情報を加味して、動作すべき1以上のPE22を決定し、動作するPE22の数が決定される。本実施の形態では、並列度は、並列処理可能な演算部の最大数を示し、負荷は、1つのPE22で実行できる処理量を1として、その処理量に対する比率を示している。よって、CPE21は、受信した負荷情報と並列度情報に基づいて、処理プログラムを、いくつのPE22で、かつどれくらいの動作周波数で実行できるかを決定することができる。
The
その決定方法においては、AC3の消費電力が最小になるようにするという基準に従って、最適な、動作すべきPE22と動作周波数が決定される。また、処理に使用されないPE22は、消費電力が最小になるように、例えば、電力の供給を停止するように制御される。
In the determination method, the
CPE21は、決定した1以上の動作すべきPE22のそれぞれの動作周波数と供給電圧を決定する(ステップS13)。すなわち、CPE21は、動作する各PE22の動作周波数と供給電圧を決定し、動作する各PE22にその決定した動作周波数に対応するクロック信号と決定した電圧の電力を供給するように、F/V制御部22cを制御する。なお、動作しないPEに対しては、クロック信号は、供給されず、かつ演算処理に必要な電力も供給されない。
The
ステップS13における動作周波数の決定は、例えば次のように行われる。図6は、動作周波数の決定処理の流れの例を示すフローチャートである。 The operation frequency is determined in step S13 as follows, for example. FIG. 6 is a flowchart illustrating an example of the flow of the operating frequency determination process.
まず、CPE21は、現在の使用可能なPE22を判定する(ステップS21)。すなわち、その処理の指示を受けたときに、既にAC3のPE22の中には、既に別の処理を実行しているPE22がある場合がある。CPE21は、各PE22の動作を監視しており、各PE22が何の処理を実行しているかを把握することができる。よって、まず、CPE21は、処理を依頼する前に、実行可能なPE22がどれかを判定して、使用可能な、すなわち実行可能なPE22を決定する(ステップS21)。
First, the
次に、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となる。
Next, the
なお、PE22の動作周波数が、除算した結果の値を取ることができない場合がある。例えば、PE22の動作周波数として、f,(1/2)f,(1/3)f,(1/4)f,(1/8)f等、予め固定した値の周波数のみで、動作可能な場合である。このような場合には、CPE21は、(2/3)fに近く、かつ(2/3)fよりも大きい値を、動作周波数として選択して決定する。
In some cases, the operating frequency of the
このようにして、CPE21は、動作すべきPE22の動作周波数を決定し、さらに、動作するPE22の供給電圧も決定する。供給電圧は、動作すべきPE22に対しては動作に必要な電圧である。動作しないPE22に対しては、動作に必要な電圧は供給されず、供給電圧は、0、あるいはスタンバイ状態のような最小消費電力に対応する電圧となる。
In this way, the
図5に戻り、CPE21は、動作するPE22に対して、処理プログラム(上述した例であれば画像認識プログラム)をロードするように指示する(ステップS14)。具体的には、CPE21は、PE22に処理プログラムのアドレスを通知して、PE22にその処理プログラムをロードするように指示する、すなわち処理プログラムのロード命令を出力する。その結果、動作するPE22は、処理プログラムをロードして、ローカルメモリ22bにストアする。
Returning to FIG. 5, the
そして、CPE21は、動作するPE22に対して、起動命令を出力する(ステップS15)。起動命令を受信したPE22は、ローカルメモリ22bに蓄積された処理プログラムを実行する。このとき、F/V制御部22cに通知されて設定された動作周波数と電圧によって、各PE22の演算部22aは動作している。
Then, the
PE22は、処理した結果データを、ステップS2で指示されたアドレスに出力する。
The
CPE21は、各PEの動作を監視し、全ての処理が終了すると所定の処理を実行する。
The
図7は、CPE21の演算部21aにおける、処理プログラムの終了時の処理の流れの例を示すフローチャートである。
FIG. 7 is a flowchart illustrating an example of a processing flow at the end of the processing program in the
CPE21は、各PE22における処理プログラムの実行状態を監視し、まず、その処理プログラムを実行する旨の動作指示を出した全てのPE22がその処理を終了したか否かを判断する(ステップS31)。
The
全てのPE22の処理が終了すると、CPE21は、依頼された処理プログラムの実行が終了した旨を示す終了通知を、CPU11へ出力する(ステップS32)。
When the processing of all the
そして、CPE21は、処理の終了したPE22への、ステップS13において決定した動作周波数のクロック信号と電圧の供給を停止する(ステップS33)。この停止は、いわゆるスタンバイ状態における動作周波数のクロック信号と電圧の供給状態にすることを意味する。
Then, the
以上のようにして、処理プログラムがCPU11からAC3へ依頼され、AC3において実行される。
As described above, the processing program is requested from the
次に、以上の処理の流れについて、具体的な例を用いて説明する。図8は、CPE21における処理を説明するための図である。図8は、AC3の状態の変化の例を示し、4つのPE22を含むように示している。なお、図8において、ノードStartは、CPE21が動作する前の状態を示し、ノードEndは、CPE21が動作を終了した状態を示す。CPE21が動作を開始すると、スタンバイ状態101の状態になる。
Next, the flow of the above processing will be described using a specific example. FIG. 8 is a diagram for explaining processing in the
図8において、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1でかつ並列度が1の処理Wを、CPU11から依頼されたときは、状態102になる。
In FIG. 8, AC3 is in the standby state 101. In the standby state 101, when the
スタンバイ状態101では、AC3内部ではゲーティング可能な回路部分に対してはクロックゲーティングを行いクロック信号の供給が停止され、クロック信号の周波数を下げられる回路部分に対しては下げられるレベルまで下げた周波数のクロック信号が供給される。よって、スタンバイ状態101は、AC3の消費電力が最低の状態である。
In the standby state 101, clock gating is performed on the circuit portion that can be gated in the
そのスタンバイ状態101において、上述したような処理Wを依頼されると、CPE21は、その処理Wが1つのPE22で処理できる負荷1であり、並列度が1である処理であることが判明するので、その場合は、1つのPE22Aを動作すべきPEとし、かつそのPE22Aの動作周波数を最大動作周波数fに設定し、他のPE22B,22C,22Dに対しては、クロックゲーティングを行い、かつ電力の供給を停止する。なお、図8において、4つのPE22中、斜線を付したPE22Aが動作するPEである。
When the processing W as described above is requested in the standby state 101, the
その処理Wが終了すると、状態102からスタンバイ状態101へ戻る。さらに、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1でかつ並列度が4の処理Xを、CPU11から依頼されたときは、状態103になる。
When the process W ends, the
具体的には、上述したような処理Xを依頼されると、CPE21は、その処理Xが1つのPE22で処理できる負荷1であり、並列度が4である処理であることが判明する。そして、もっとも消費電力が少ない動作方法が、動作可能な複数のPE22に均等に負荷を分担させる方法であるときは、4つのPE22全てを動作すべきPEとし、かつ各PE22の動作周波数を(1/4)f(fは最大動作周波数)に設定して動作させる。
Specifically, when the processing X as described above is requested, the
なお、負荷が1でかつ並列度が4の処理Xの場合、選択肢としては、他にも、(1/1)fの動作周波数で1つのPEで実行する方法と、(1/2)fの動作周波数で2つのPEで実行する方法とあるが、AC3における各回路の実装方法、運用方法等によって、決定される最適なすなわち低消費電力になる方法は、異なる。 In the case of processing X with a load of 1 and a degree of parallelism of 4, other options include a method of executing with one PE at an operating frequency of (1/1) f, and (1/2) f However, the optimum method of achieving low power consumption is different depending on the mounting method and operating method of each circuit in AC3.
その処理Xが終了すると、状態103からスタンバイ状態101へ戻る。さらに、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1/4でかつ並列度が2の処理Yと、負荷が2でかつ並列度が2の処理Zの2つの処理を、CPU11から依頼されたときは、状態104になる。
When the process X ends, the state 103 returns to the standby state 101. Furthermore, AC3 is in the standby state 101, and in the standby state 101, two processes, a process Y with a load of 1/4 and a parallel degree of 2, and a process Z with a load of 2 and a parallel degree of 2, When requested by the
具体的には、上述したような処理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へ戻る。
Specifically, when processing Y and Z as described above are requested,
When the processes Y and Z are completed, the
以上のように、AC3においては、処理プログラムに応じて、最適な消費電力となるように、ここでは低消費電力となるように、各PE22の動作は制御され、その結果、AC3における消費電力は動的に変化するように制御される。すなわち、AC3内では、処理プログラムの負荷に応じて、内部の演算リソースである演算部22aの提供及びその動作状態が動的に変更される。そのとき、AC3において最適な消費電力になるように、動作する各PE22の演算部22aに対しては動作周波数と供給電圧を決定され、動作しない各PE22に対しては、クロックゲーティング、電圧供給の停止等が行われる。その結果、使用しないPE22においては、クロック信号による電力の消費や、内部のリーク電流の発生を低く抑え、無駄な電力消費を抑えることができる。
As described above, in AC3, the operation of each
よって、本実施の形態によれば、AC3は、自律的に、内部の複数のPE22における処理分担を決定し、かつ消費電力を考慮して動作及び処理能力を決定して、CPU11から依頼された処理を実行するようにしたので、AC3は、最適な消費電力で依頼された処理を行うことができる。
Therefore, according to the present embodiment, the
(第2の実施の形態)
次に、本発明の第2の実施の形態を説明する。第2の実施の形態に係る情報処理装置用のACは、複数の汎用の処理部(PE)を有するだけでなく、さらに、複数のハード・マクロを有し、その複数のハード・マクロの動作についても、処理分担を決定して、かつ最適な消費電力で処理を実行するように制御する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described. The AC for the information processing apparatus according to the second embodiment has not only a plurality of general-purpose processing units (PE) but also a plurality of hard macros, and the operations of the plurality of hard macros Also, the processing sharing is determined and control is performed so that the processing is executed with the optimum power consumption.
図9は、第2の実施の形態に係わるAC3Aの構成を示すブロック図である。第1の実施の形態のAC3と同じ構成要素については、同じ符号を付して説明は省略する。
図9に示すように、AC3Aは、ハード・マクロとして、複数(ここでは2つ)のエンコーダ26A、26Bと、複数(ここでは2つ)のデコーダ26C、26Dとを有し、それぞれが、内部バス25を介して、CPE21と接続されている。以下、エンコーダ26A、26Bと、デコーダ26C、26Dとを、纏めて指すときは、あるいはその中の1つを指すときは、ハード・マクロ26という。
FIG. 9 is a block diagram showing a configuration of AC3A according to the second embodiment. The same components as those of AC3 in the first embodiment are denoted by the same reference numerals and description thereof is omitted.
As shown in FIG. 9, AC3A has, as a hard macro, a plurality (here, two)
ハード・マクロ26は、ハードウエアエンジン部であり、PE22のような受信したプログラムを実行可能な汎用な処理部ではない。PE22は、プログラムに応じた処理を実行可能な汎用な処理部であるが、ハード・マクロ26の処理内容は、ASIC等のハードウエアにより実現されており、動作用の制御データと対象データが与えられるとその処理が実行されるものである。
The
本実施の形態では、AC3Aは、ハード・マクロ26によって、MPEG4、H264、VC1等の画像処理における、画像データのエンコード処理とデコード処理の2つの処理が実行できるように構成されているものとする。2つのエンコーダ26A、26Bは、CPE21からの依頼に基づいて、エンコード処理を並列処理可能なハードウエア回路である。2つのデコーダ26C、26Dも、CPE21からの依頼に基づいて、デコード処理を並列処理可能なハードウエア回路である。
In the present embodiment, AC3A is configured to be able to execute two processes of image data encoding processing and decoding processing in image processing such as MPEG4, H264, and VC1 by
従って、AC3Aは、それぞれが並列処理可能なハード・マクロ26を用いて、エンコード又はデコードの処理を、あるいはエンコードとデコードの両処理を、PE22の処理とは別に実行可能となっている。
Therefore, the AC 3A can execute the encoding or decoding process, or both the encoding and decoding processes separately from the process of the
また、エンコーダ26A、26Bとデコーダ26C、26Dには、それぞれ、F/V制御部26Ac、26Bc、26Cc、26Dc(以下、纏めてあるいは1つのF/V制御部を指すときはF/V制御部26cという)が設けられている。各F/V制御部26cは、対応するハード・マクロ26の動作及び処理能力の両方を制御する動作制御部であり、具体的には、対応するハード・マクロ26へ供給するクロック信号の周波数の変更の機能、ハード・マクロ26内の各回路へ供給されるクロック信号の供給と停止の機能、ハード・マクロ26内の各回路へ供給される電力の供給と停止の機能を有する回路である。
Also, the
よって、情報処理装置1においてアプリケーションプログラムが実行されるときに、エンコーダ26A、26Bとデコーダ26C,26Dの使用状態に応じて、あるいは、使用/不使用に応じて、クロック信号の周波数の変更、クロック信号の供給と停止、および電力の供給と停止が、CPE21の制御の下で行われる。
Therefore, when the application program is executed in the
なお、本実施の形態においても、エンコーダ26A、26Bとデコーダ26C、26DのそれぞれにF/V制御部26cが設けられているが、エンコーダ26A、26Bとデコーダ26C、26Dの全体に対して一つのF/V制御部26cを設けて、その全体に対してクロック信号の周波数の変更、クロック信号の供給と停止、電力の供給と停止を行うようにしてもよい。その場合も、第1の実施の形態と同様に、PLL回路27の出力は、スイッチ回路29を介して出力するようにし、そのスイッチ回路26に対してクロックの供給を停止するための制御信号が、CPE21から供給される。
Also in the present embodiment, the F / V control unit 26c is provided in each of the
各機能は、第1の実施の形態で説明したPE22に対する機能と同等である。
なお、本実施の形態においても、各F/V制御部26cは、対応するハード・マクロ26の動作及び処理能力の両方を制御するが、動作及び処理能力の少なくとも一方でもよい。
Each function is equivalent to the function for the
Also in the present embodiment, each F / V control unit 26c controls both the operation and the processing capability of the corresponding
そして、CPE21の演算部21aが、後述するように、各PE22と、各ハード・マクロ26と、各F/V制御部22c、26cを制御する。よって、各F/V制御部22cによる演算部22aの動作及び処理能力の制御、及び各F/V制御部26cによるハード・マクロ26の動作及び処理能力の制御は、CPE21の演算部21aの指示に応じて行われる。
Then, the
制御部である演算部21aは、CPU11から所定の処理を実行する旨のコマンドを受信すると、そのコマンドに応じて、4つのPE22及び4つのハード・マクロ26に対して所定の指示を出力する。その所定の指示には、どのPE22、あるいはどのハード・マクロ26がその処理を実行するのかの指示、そのときの動作周波数をどのくらいにするのかの指示、等が含まれる。
When the
以下、AC3Aの動作を、例えば、カメラ等によって撮像されて得られた画像データについて、画像データのデコードの処理と画像認識の処理を、AC3Aが行う場合で説明する。なお、画像認識の処理とデコードの処理は、同時に行われても、同時に行われなくても良いし、さらに、互いに同期して行われても良いし、非同期で行われても良い。 Hereinafter, the operation of AC3A will be described in the case where AC3A performs image data decoding processing and image recognition processing, for example, on image data obtained by imaging with a camera or the like. Note that the image recognition process and the decoding process may be performed simultaneously, or may not be performed at the same time, may be performed in synchronization with each other, or may be performed asynchronously.
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を用いて行う。
Similarly to the first embodiment, when the
In this case, the processing flow of the
On the other hand, when the
図10は、その場合におけるCPU11の処理の流れの例を示すフローチャートである。
FIG. 10 is a flowchart showing an example of the processing flow of the
CPU11が、画像データのデコード処理をAC3Aに分担させる場合、CPU11は、デコーダ26Cと26Dの使用の有無の通知を、AC3Aへ行う(ステップS11)。CPU11は、デコード処理を依頼するので、デコーダ26Cと26Dを使用することを通知し、その結果、エンコーダ26Aと26Bは使用しないことが通知されたことになる。
When the
次に、図3の場合と同様に、CPU11は、対象データのアドレスと、結果データのアドレスと、負荷情報と、並列度情報とを、AC3Aへ送信する(ステップS2)。ここでは、対象データは、デコード処理の対象データであり、結果データは、デコード処理の結果データであり、負荷情報は、デコード処理の対象データについての負荷情報であり、並列度情報は、デコード処理の並列度情報である。負荷情報は、ここでは、対象データである画像データの解像度、プロファイル等に応じて、決定される。例えば、解像度が高ければ、処理の負荷が大きくなり、解像度が低ければ、その負荷は小さくなるからである。AC3Aは、受信した負荷情報と並列度情報をRAM4に蓄積する。
Next, as in the case of FIG. 3, the
図11は、デコード処理についての負荷情報と並列度情報を示すテーブルデータの例を示す図である。図11に示すように、画像データの解像度のレベルに応じて、負荷情報と、並列度情報とが予め設定されている。図示はしないが、エンコード処理についても、図11と同様のテーブルデータが用意されている。 FIG. 11 is a diagram illustrating an example of table data indicating load information and parallelism information regarding decoding processing. As shown in FIG. 11, load information and parallelism information are set in advance according to the resolution level of image data. Although not shown, the same table data as in FIG. 11 is prepared for the encoding process.
CPE21における画像認識プログラムの処理については、第1の実施の形態における図5から図7と同様であるので、説明は省略する。
デコード処理について、図12を用いて説明する。図12は、CPE21におけるデコード処理の例を示すフローチャートである。
CPE21は、CPU11から上述したデコード処理を依頼されると、受信した負荷情報と並列度情報を参照し、その負荷情報と並列度情報をRAM4にストアする(ステップS11)。
Since the processing of the image recognition program in the
The decoding process will be described with reference to FIG. FIG. 12 is a flowchart illustrating an example of decoding processing in the
When requested by the
CPE21は、その負荷情報と並列度情報とに基づいて、動作すべきハード・マクロ(HM)を決定する(ステップS22)。すなわち、CPE21は、負荷情報に、並列度情報を加味して、動作すべき1以上のハード・マクロ(HM)を決定し、動作するハード・マクロ26の数が決定される。
The
ここでは、依頼された処理がデコード処理なので、デコーダ26C、26Dの2つが使用可能であり、並列度情報が「2」であれば、2つのハード・マクロ26Cと26Dを、動作するハード・マクロとして決定される。 Here, since the requested process is a decoding process, two decoders 26C and 26D can be used, and if the degree of parallelism information is “2”, the two hard macros 26C and 26D are operated. As determined.
そして、第1の実施の形態と同様に、CPE21は、受信した負荷情報と並列度情報に基づいて、各ハード・マクロ26を、どれくらいの動作周波数で実行できるかを決定することができる。さらに、デコード処理を行わないハード・マクロがあれば、消費電力が最小になるように、そのようなハード・マクロ26は、例えば、電力の供給を停止するように制御される。
As in the first embodiment, the
従って、CPE21は、決定した1以上の動作すべきハード・マクロ26のそれぞれの動作周波数と供給電圧を決定する(ステップS13)。よって、動作しないハード・マクロ26に対しては、クロック信号は、供給されず、かつ演算処理に必要な電力も供給されない。ステップS13におけるハード・マクロ26に対する、負荷に応じた動作周波数と供給電圧の決定の方法は、第1の実施の形態の図6で説明したPE22に対する、負荷電力に応じた動作周波数と供給電圧の決定の方法と同じであるので、説明は省略する。
Therefore, the
次に、CPE21は、動作するハード・マクロ(HM)26に対して、起動命令を出力する(ステップS25)。起動命令を受信したハード・マクロ(HM)26は、デコード処理の対象データを指定されたアドレスから読み出して取得し、デコード処理を施し、そのデコード処理した結果データを、指定されたアドレスに出力する。このとき、各ハード・マクロ26は、F/V制御部26cに通知されて設定された動作周波数と電圧に従って動作している。
Next, the
以上のように、AC3Aは、複数の汎用処理部に加えて、複数のハード・マクロを有し、CPE21が、処理対象のデータ負荷情報と並列度情報とに基づいて、その複数のハード・マクロの動作を決定する。
よって、本実施の形態によれば、AC3Aは、自律的に、内部の複数のPE22と複数のハード・マクロ26における処理分担を決定し、かつ消費電力を考慮して動作及び処理能力を決定して、CPU11から依頼された処理を実行するようにしたので、AC3Aは、最適な消費電力で依頼された処理を行うことができる。
As described above, AC3A has a plurality of hard macros in addition to a plurality of general-purpose processing units, and the
Therefore, according to the present embodiment, AC3A autonomously determines processing sharing among a plurality of
なお、上述した例では、ハード・マクロの行う処理は、画像データのエンコードとデコードの例として説明したが、他にも例えば、物理シミュレーション処理(仮想空間内での物理現象をシミュレーションする処理)、WIFI通信処理、暗号演算(符号化/復号化)処理、等であってもよい。 In the example described above, the processing performed by the hard macro has been described as an example of encoding and decoding of image data. However, for example, physical simulation processing (processing for simulating a physical phenomenon in a virtual space), WIFI communication processing, cryptographic operation (encoding / decoding) processing, and the like may be used.
以上のように、上述した実施の形態によれば、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能なアクセラレータ及び情報処理装置を実現することができる。 As described above, according to the above-described embodiment, an accelerator having a plurality of arithmetic units capable of executing a program by parallel processing determines the sharing among a plurality of internal arithmetic units and executes the program. A possible accelerator and information processing apparatus can be realized.
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。 The present invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the scope of the present invention.
1 情報処理装置、2 PC、3 アクセラレータ、21 制御用プロセッシングユニット(CPE)、22 プロセッシングユニット(PE) 1 Information processing equipment, 2 PC, 3 Accelerator, 21 Processing unit for control (CPE), 22 Processing unit (PE)
Claims (5)
前記プログラムを並列処理により実行可能な複数の演算部と、
前記複数の演算部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、
実行する前記プログラムについての負荷情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、
を有することを特徴とするアクセラレータ。 An accelerator that can be connected to an information processing device and can execute a program,
A plurality of arithmetic units capable of executing the program by parallel processing;
An operation control unit that controls at least one of the operation and processing capability of each of the plurality of arithmetic units;
Based on load information about the program to be executed, determine at least one of the operation and processing capacity of each of the plurality of arithmetic units, and a control unit that controls the operation control unit according to the determination;
An accelerator comprising:
前記アクセラレータは、プログラムを実行可能なアクセラレータであって、
前記プログラムを並列処理により実行可能な複数の演算部と、
前記複数の演算部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、
実行する前記プログラムについての負荷情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、
を有することを特徴とする情報処理装置。 An information processing apparatus having an accelerator and a computer connected to the accelerator,
The accelerator is an accelerator capable of executing a program,
A plurality of arithmetic units capable of executing the program by parallel processing;
An operation control unit that controls at least one of the operation and processing capability of each of the plurality of arithmetic units;
Based on load information about the program to be executed, determine at least one of the operation and processing capacity of each of the plurality of arithmetic units, and a control unit that controls the operation control unit according to the determination;
An information processing apparatus comprising:
プログラムを並列処理により実行可能な複数の演算部と、
対象データに対する所定の処理を並列に実行可能な複数のハードウエアエンジン部と、
前記複数の演算部および前記複数のハードウエアエンジン部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、
実行する前記プログラムについての負荷情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、かつ前記対象データについての負荷情報に基づいて、前記複数のハードウエアエンジン部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、
を有することを特徴とするアクセラレータ。 An accelerator that can be connected to an information processing device,
A plurality of arithmetic units capable of executing a program by parallel processing;
A plurality of hardware engine units capable of executing predetermined processing on target data in parallel;
An operation control unit that controls at least one of the operation and processing capability of each of the plurality of arithmetic units and the plurality of hardware engine units;
Based on load information about the program to be executed, determine at least one of the operation and processing capability of each of the plurality of arithmetic units, and based on the load information about the target data, the plurality of hardware A control unit that determines at least one of the operation and processing capacity of each engine unit and controls the operation control unit in accordance with the determination;
An accelerator comprising:
前記アクセラレータは、
プログラムを並列処理により実行可能な複数の演算部と、
対象データに対する所定の処理を並列に実行可能な複数のハードウエアエンジン部と、
前記複数の演算部および前記複数のハードウエアエンジン部のそれぞれの動作及び処理能力の少なくとも一方を制御する動作制御部と、
実行する前記プログラムについての負荷情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、かつ前記対象データについての負荷情報に基づいて、前記複数のハードウエアエンジン部のそれぞれの前記動作及び処理能力の少なくとも一方を決定して、その決定に応じて前記動作制御部を制御する制御部と、
を有することを特徴とする情報処理装置。 An information processing apparatus having an accelerator and a computer connected to the accelerator,
The accelerator is
A plurality of arithmetic units capable of executing a program by parallel processing;
A plurality of hardware engine units capable of executing predetermined processing on target data in parallel;
An operation control unit that controls at least one of the operation and processing capability of each of the plurality of arithmetic units and the plurality of hardware engine units;
Based on load information about the program to be executed, determine at least one of the operation and processing capability of each of the plurality of arithmetic units, and based on the load information about the target data, the plurality of hardware A control unit that determines at least one of the operation and processing capacity of each engine unit and controls the operation control unit in accordance with the determination;
An information processing apparatus comprising:
実行する前記プログラムについての負荷情報に基づいて、前記複数の演算部のそれぞれの前記動作及び処理能力の少なくとも一方を決定し、
その決定に応じて前記動作制御部を制御することを特徴とする情報処理方法。 An information processing method using an accelerator having a plurality of arithmetic units capable of executing a program by parallel processing and an operation control unit that controls at least one of the operation and processing capability of each of the plurality of arithmetic units,
Based on the load information about the program to be executed, determine at least one of the operation and processing capacity of each of the plurality of arithmetic units,
An information processing method comprising controlling the operation control unit in response to the determination.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007304273A JP4945410B2 (en) | 2006-12-06 | 2007-11-26 | Information processing apparatus and information processing method |
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 (en) | 2006-12-06 | 2007-11-26 | Information processing apparatus and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008165746A true JP2008165746A (en) | 2008-07-17 |
JP4945410B2 JP4945410B2 (en) | 2012-06-06 |
Family
ID=39547223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007304273A Expired - Fee Related JP4945410B2 (en) | 2006-12-06 | 2007-11-26 | Information processing apparatus and information processing method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4945410B2 (en) |
CN (1) | CN101196776B (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013143652A (en) * | 2012-01-10 | 2013-07-22 | Canon Inc | Information processing apparatus and information processing method |
JP2013143653A (en) * | 2012-01-10 | 2013-07-22 | Canon Inc | Information processing apparatus and information processing method |
JP5435133B2 (en) * | 2010-07-13 | 2014-03-05 | 富士通株式会社 | Information processing apparatus, information processing apparatus control method, and program |
JP2014120827A (en) * | 2012-12-13 | 2014-06-30 | Kddi Corp | Search device for searching for condition entry matching query entry from condition table, flow switch device, program, and method |
JP2014515895A (en) * | 2011-03-29 | 2014-07-03 | リリカル ラブス エルエルシー | Video encoding system and method |
KR101478567B1 (en) | 2013-03-26 | 2015-01-02 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | Acceleration benefit estimator |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688169B (en) * | 2019-09-16 | 2021-10-08 | 腾讯科技(深圳)有限公司 | Application program acceleration method and device, storage medium and electronic equipment |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001117893A (en) * | 1999-10-19 | 2001-04-27 | Toshiba Corp | Parallel computer having hierarchical structure |
JP2002202893A (en) * | 2000-10-24 | 2002-07-19 | Texas Instruments Inc | Method for controlling execution of multiplex task and processing circuit |
JP2005100264A (en) * | 2003-09-26 | 2005-04-14 | Toshiba Corp | Scheduling method and information processing system |
JP2005267635A (en) * | 2004-03-16 | 2005-09-29 | Sony Computer Entertainment Inc | Method, apparatus and processor for reducing power dissipation in multi-processor system |
WO2005096168A1 (en) * | 2004-04-01 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | Integrated circuit for video/audio processing |
JP2006293768A (en) * | 2005-04-12 | 2006-10-26 | Univ Waseda | Multiprocessor system and multi-grain parallelizing compiler |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020028814A (en) * | 2000-10-10 | 2002-04-17 | 나조미 커뮤니케이션즈, 인코포레이티드 | Java hardware accelerator using microcode engine |
US20040039940A1 (en) * | 2002-08-23 | 2004-02-26 | Koninklijke Philips Electronics N.V. | Hardware-based packet filtering accelerator |
CN100380322C (en) * | 2002-10-29 | 2008-04-09 | 洛克希德马丁公司 | Hardware accelerated validating parser |
-
2007
- 2007-11-26 JP JP2007304273A patent/JP4945410B2/en not_active Expired - Fee Related
- 2007-12-06 CN CN200710196783.5A patent/CN101196776B/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001117893A (en) * | 1999-10-19 | 2001-04-27 | Toshiba Corp | Parallel computer having hierarchical structure |
JP2002202893A (en) * | 2000-10-24 | 2002-07-19 | Texas Instruments Inc | Method for controlling execution of multiplex task and processing circuit |
JP2005100264A (en) * | 2003-09-26 | 2005-04-14 | Toshiba Corp | Scheduling method and information processing system |
JP2005267635A (en) * | 2004-03-16 | 2005-09-29 | Sony Computer Entertainment Inc | Method, apparatus and processor for reducing power dissipation in multi-processor system |
WO2005096168A1 (en) * | 2004-04-01 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | Integrated circuit for video/audio processing |
JP2006293768A (en) * | 2005-04-12 | 2006-10-26 | Univ Waseda | Multiprocessor system and multi-grain parallelizing compiler |
Non-Patent Citations (1)
Title |
---|
WAKASUGI@IMPRESS.CO.JP: "Mercury、Cell搭載のPCIeアクセラレータカード", [ONLINE], vol. [平成23年6月13日検索],インターネット, JPN6011031446, 2 August 2006 (2006-08-02), ISSN: 0001943866 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5435133B2 (en) * | 2010-07-13 | 2014-03-05 | 富士通株式会社 | Information processing apparatus, information processing apparatus control method, and program |
JP2014515895A (en) * | 2011-03-29 | 2014-07-03 | リリカル ラブス エルエルシー | Video encoding system and method |
US9712835B2 (en) | 2011-03-29 | 2017-07-18 | Lyrical Labs LLC | Video encoding system and method |
JP2017201791A (en) * | 2011-03-29 | 2017-11-09 | リリカル ラブス エルエルシーLyrical Labs Llc | Video encoding system and method |
JP2013143652A (en) * | 2012-01-10 | 2013-07-22 | Canon Inc | Information processing apparatus and information processing method |
JP2013143653A (en) * | 2012-01-10 | 2013-07-22 | Canon Inc | Information processing apparatus and information processing method |
JP2014120827A (en) * | 2012-12-13 | 2014-06-30 | Kddi Corp | Search device for searching for condition entry matching query entry from condition table, flow switch device, program, and method |
KR101478567B1 (en) | 2013-03-26 | 2015-01-02 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | Acceleration benefit estimator |
US9747185B2 (en) | 2013-03-26 | 2017-08-29 | Empire Technology Development Llc | Acceleration benefit estimator |
Also Published As
Publication number | Publication date |
---|---|
CN101196776B (en) | 2014-06-25 |
CN101196776A (en) | 2008-06-11 |
JP4945410B2 (en) | 2012-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240028094A1 (en) | Techniques To Enable Communication Between A Processor And Voltage Regulator | |
JP4945410B2 (en) | Information processing apparatus and information processing method | |
KR101861742B1 (en) | Data processing system and method for switching between heterogeneous accelerators | |
JP2024024042A (en) | System, apparatus, and method for optimized throttling of processor | |
KR101552079B1 (en) | Execution of graphics and non-graphics applications on a graphics processing unit | |
KR101529016B1 (en) | Multi-core system energy consumption optimization | |
US8046565B2 (en) | Accelerator load balancing with dynamic frequency and voltage reduction | |
US20150355700A1 (en) | Systems and methods of managing processor device power consumption | |
US20080271035A1 (en) | Control Device and Method for Multiprocessor | |
KR101930183B1 (en) | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture | |
KR20180048886A (en) | GPU workload characterization and power management using command stream hinting | |
JP5776688B2 (en) | Information processing apparatus and task switching method | |
JP2011118871A (en) | Method and device for improving turbo performance for event processing | |
KR101930659B1 (en) | Processor including multiple dissimilar processor cores | |
US20140025930A1 (en) | Multi-core processor sharing li cache and method of operating same | |
CN113748397A (en) | System, apparatus and method for dynamically controlling current consumption of processing circuitry of a processor | |
KR20130020420A (en) | Task scheduling method of semiconductor device | |
TWI432953B (en) | Very low instruction word (vliw) processor with power management, and apparatus and method of power management therefor | |
US20170068575A1 (en) | Hardware Migration between Dissimilar Cores | |
CN109791427B (en) | Processor voltage control using a running average | |
KR20210091048A (en) | System, apparatus and method for dynamic heat distribution of SOC | |
WO2020068319A1 (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 | |
US20130219123A1 (en) | Multi-core processor sharing l1 cache | |
US11256657B2 (en) | System, apparatus and method for adaptive interconnect routing |
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 | Request for written amendment filed |
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 |