JP2008165746A - Accelerator, information processor and information processing method - Google Patents

Accelerator, information processor and information processing method Download PDF

Info

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
Application number
JP2007304273A
Other languages
Japanese (ja)
Other versions
JP4945410B2 (en
Inventor
Hideki Yasukawa
英樹 安川
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/en
Priority to US11/950,901 priority patent/US8046565B2/en
Publication of JP2008165746A publication Critical patent/JP2008165746A/en
Application granted granted Critical
Publication of JP4945410B2 publication Critical patent/JP4945410B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an accelerator capable of executing a program, including a plurality of operation parts, each operation part capable to execute the program in parallel by determining its own internal sharing between the plurality of operation parts. <P>SOLUTION: The accelerator 3 is an accelerator connected to a PC 2 and capable of executing the program. The accelerator 3 includes the plurality of operation parts 22a capable to execute the program in parallel; an F/V control part 22c for controlling at least either the operation or the throughput of each of the plurality of operation parts 22a; and an operation part 21a for determining at least either the operation or the throughput of each of the plurality of operation parts 22a based on the load information about the program to be executed, and controlling the F/V control part 22c according to the determination. <P>COPYRIGHT: (C)2008,JPO&INPIT

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.

また、アクセラレータ内部に複数の演算部があるような場合について、上記の提案に係る情報処理装置は、何ら考慮されていない。
特開2003−15785号公報
In addition, in the case where there are a plurality of arithmetic units inside the accelerator, the information processing apparatus according to the above proposal is not considered at all.
JP 2003-15785 A

本発明は、以上の問題に鑑みてなされたものであり、並列処理によりプログラムを実行可能な複数の演算部を有するアクセラレータが、自らの内部の複数の演算部間の分担を決定して、プログラムを実行可能なアクセラレータ、情報処理装置及び情報処理方法を提供することを目的とする。   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 information processing apparatus 1 includes a PC 2 that is a computer having a PC architecture. An accelerator 3 can be added to the PC 2, that is, can be connected. The PC 2 includes a CPU (Central Processing Unit) 11, an MCH (Memory Controller Hub) 12, an ICH (I / O Controller Hub) 13, a GPU (Graphics Processing Unit) 14, a main memory 15, and an image memory. An information processing apparatus including a VRAM (Video RAM) 16. Therefore, the information processing apparatus 1 is configured by connecting the accelerator 3 to the PC 2 having such a PC architecture. In the present embodiment, an example of the PC architecture including the CPU 11, the MCH 12, the ICH 13, and the GPU 14 is shown as the PC architecture, but the PC architecture is not limited to such a configuration.

特に、MCH12は、CPU11と主メモリ15との接続等の機能を担う、いわゆるノースブリッジの機能を有する半導体装置のチップである。ICH13は、PCIバス、USB等を介して、ハードディスク装置(以下、HDDという)17等の、他の構成要素と結び付ける等、いわゆるサウスブリッジの機能を有する半導体装置のチップであり、ここでは、ICH13は、USB2、SATA(Serial ATA)、Audio、PCI Express等の規格に応じた各信号の入出力を制御する。また、グラフィック用処理装置であるGPU14は、いわゆるグラフィックエンジンであり、3次元グラフィックスの表示に必要な計算処理を行う半導体装置のチップである。   In particular, the MCH 12 is a chip of a semiconductor device having a so-called north bridge function that performs functions such as connection between the CPU 11 and the main memory 15. The ICH 13 is a chip of a semiconductor device having a so-called south bridge function, such as a hard disk device (hereinafter referred to as HDD) 17 or the like, which is connected to other components via a PCI bus, USB, or the like. Controls input / output of each signal according to standards such as USB2, SATA (Serial ATA), Audio, and PCI Express. The GPU 14 as a graphic processing device is a so-called graphic engine, and is a chip of a semiconductor device that performs calculation processing necessary for displaying three-dimensional graphics.

演算機能を有する付加装置としてのアクセラレータ(以下、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 ICH 13 and further connected to a RAM (may be a flash memory or the like) 4 as its working memory. It is. The configuration of AC3 as a peripheral device will be described later. The RAM 4 may be provided inside the AC 3.
The CPU 11 can execute various application programs. Among the various application programs, there are a program with a high load and a program with a low load. Therefore, the CPU 11 can request the AC 3 to execute an application program having a high load, for example, an application program for image recognition and a reproduction of a moving image. Specifically, in the information processing apparatus 1, when an application program is executed using AC 3, the CPU 11 outputs a predetermined command to the AC 3, and the AC 3 receives the command and designates it by the CPU 11. The processed program is processed. In this case, for example, when AC3 performs a specified process, for example, an image recognition process, the stream signal from SATA or the like is read by DMA, the recognition process is performed, and the result data obtained by the recognition process is transferred to DMA. Then, the data is transferred to the GPU 14 and output.

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 ACs 3 may be connected to each lane of PCI Express, and the plurality of ACs 3 may be connected to the ICH 13. As a result, it is possible to cope with an application program having a high calculation processing load by increasing the number of processing units described later.

さらになお、複数のAC3をICH13に接続するときに、各AC3とICH13とは、複数のレーンにより接続するようにしてもよい。   Furthermore, when a plurality of ACs 3 are connected to the ICH 13, each AC 3 and the ICH 13 may be connected by a plurality of lanes.

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 AC 3 includes an I / F unit 24 and can read programs and data in the RAM 4 connected to the AC 3. The CPE 21, each PE 22, the I / F unit 23, and the I / F unit 24 are connected to each other via an internal bus 25. The I / F unit 23 is a circuit for an interface between the internal bus 25 and the PC architecture bus. When the power is turned on, the CPE 21 is loaded with a program and data from the CPU 11 and stored in the RAM 4. The program and data may be stored in the ROM provided in the AC 3, and the CPE 21 may be read from the ROM. Further, other input / output terminals 26, a PLL circuit 27, and a digital temperature sensor (hereinafter abbreviated as DTS) 28 are also provided in the AC3 chip.

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 CPE 21 includes a calculation unit 21a, which is a control unit, and a cache memory 21b. Each PE includes a calculation unit and a local memory. Each PE is provided with a frequency / voltage control (hereinafter abbreviated as F / V control) section. Specifically, PE22A, 22B, 22C, and 22D (hereinafter collectively referred to as PE22 when referring to one PE) are respectively calculated by calculation units 22Aa, 22Ba, 22Ca, and 22Da (hereinafter collectively or one calculation). And a local memory 22Ab, 22Bb, 22Cb, 22Db (hereinafter collectively referred to as a local memory 22b when referring to one local memory). Each PE 22 is provided with F / V control units 22Ac, 22Bc, 22Cc, 22Dc (hereinafter collectively or referred to as F / V control unit 22c when referring to one F / V control unit).

演算部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 CPE 21. The calculation unit 22a may be a hardware engine for a specific application, but in the present embodiment, it is a general-purpose programmable processing unit. Each calculation unit 22a is a resource for internal calculation in AC3. As will be described later, the calculation unit 22a performs parallel processing of processing programs using one or more calculation units.
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 PE 22, when performing image recognition processing on image data or codec processing such as image data encoding and decoding processing, processing target data read from the HDD 17 or a camera (not shown) is stored in each local memory 22b. It is stored in each local memory 22b in a state of being divided according to the capacity. And each calculating part 22a performs a predetermined | prescribed process with respect to the memorize | stored data by SIMD calculation, and memorize | stores an execution result in each local memory 22b. In each PE 22, when the predetermined processing is completed, data processed from the local memory 22b is transferred to the HDD 17, and data to be processed next is transferred from the HDD 17 to each local memory 22b. As described above, the predetermined processing is performed. Is done. By repeating the above processing, the information processing apparatus 1 uses the AC 3 to perform image recognition processing and the like smoothly.

各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 PLL circuit 27.

なお、ここでは、各PE22にF/V制御部22cが設けられているが、4つのPE22の全体に対して一つのF/V制御部22cを設けて、4つのPE22の全体に対してクロック信号の周波数の変更、クロック信号の供給と停止、及び電力の供給と停止を行うようにしてもよい。その場合、PLL回路27の出力は、図2において点線で示すスイッチ回路29を介して出力するようにし、そのスイッチ回路29に対してクロックの供給を停止するための制御信号が、CPE21から供給される。   Here, each PE 22 is provided with an F / V control unit 22 c, but one F / V control unit 22 c is provided for the entire four PEs 22, and a clock is provided for the entire four PEs 22. You may make it perform the change of the frequency of a signal, supply and stop of a clock signal, and supply and stop of electric power. In that case, the output of the PLL circuit 27 is output via a switch circuit 29 indicated by a dotted line in FIG. 2, and a control signal for stopping the supply of the clock to the switch circuit 29 is supplied from the CPE 21. The

動作周波数の変更の機能は、後述するように、処理プログラムの負荷に比べて、各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 PE 22 when the arithmetic performance that can be provided by each arithmetic unit 22a in each PE 22 is higher than the load of the processing program. This is a function for reducing the frequency and optimizing the power consumption by the clock signal.

クロック信号の供給と停止の機能、すなわち、クロックゲーティング機能は、各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 PE 22. When the supply of the clock signal is stopped, the power consumption by the clock signal can be suppressed to 0 (zero).

電力の供給と停止の機能は、各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 PE 22. When the supply of power is stopped, the power consumption due to the leakage current of the internal circuit can be suppressed to 0 (zero).

各演算部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 part 21a of CPE21 controls each PE22 and each F / V control part 22c so that it may mention later. Therefore, the operation and processing capacity of the calculation unit 22a by each F / V control unit 22c are controlled according to instructions from the calculation unit 21a of the CPE 21.

上述したように、制御部である演算部21aは、CPU11から所定の処理を実行する旨のコマンドを受信すると、4つのPE22に対して所定の指示を出力する。その所定の指示には、どのPE22がその処理を実行するのかの指示、そのときの動作周波数をどのくらいにするのかの指示、等を含む。   As described above, when the arithmetic unit 21a, which is a control unit, receives a command to execute predetermined processing from the CPU 11, the arithmetic unit 21a outputs predetermined instructions to the four PEs 22. The predetermined instruction includes an instruction as to which PE 22 executes the process, an instruction as to what operating frequency is to be used at that time, and the like.

また、AC3のCPE21は、可変の電源である、外部の電源回路モジュールであるVRM(Voltage Regulator Module)30に対して、所定のコード信号VID、例えば6ビット信号、を出力し、VRM30は、その所定のコード信号VIDに応じた電源電圧VをAC3に供給する。   The AC3 CPE 21 outputs a predetermined code signal VID, for example, a 6-bit signal, to a VRM (Voltage Regulator Module) 30 which is an external power supply circuit module which is a variable power supply, and the VRM 30 A power supply voltage V corresponding to a predetermined code signal VID is supplied to 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からの電源が供給される。   Furthermore, each circuit on the AC 3 is divided into a plurality of blocks, here 13 blocks, and the AC 3 is configured so that power is supplied to each divided block. That is, for each power supply, a block of a circuit portion that supplies the power is determined in advance, and each power supply supplies power only to the predetermined corresponding block. Specifically, the block B1 including the CPE 21 is supplied with power from the internal logic power source PS1. The block B2 including the PLL circuit 27 is supplied with power from the PLL unit analog power supply PS2. The block B3 including the DTS 28 is supplied with power from the analog temperature PS3 digital temperature sensor unit. The block B4 including a part of the PCI Express I / F 23 is supplied with power from the first PCI Express logic power supply PS4. The block B5 including the other part of the PCI Express I / F 23 is supplied with power from the second PCI Express logic power supply PS5 and power from the PCI Express analog power supply PS6. The block B7 including a part of the I / F 24 is supplied with power from the analog power supply PS7 for I / F 24. The block B8 including the other part of the I / F 24 is supplied with power from the I / F 24 logic power supply PS8. The block B9 including the other input / output terminals 26 is supplied with power from the other input / output terminal power supply PS9. Each of the four PEs 22 is supplied with power from PE power supplies PS10, PS11, PS12, and PS13.

例えばアプリケーションプログラムが実行されていて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 CPU 11 controls power supply from each power supply so that power is supplied to all circuit units from all the power supplies PS1 to PS13. For example, when AC3 is not used, the CPU 11 controls power supply so that unnecessary power is not supplied. More specifically, when the CPU 11 instructs the device state to AC3, the CPE 21 receives the information on the device state, and in response to the information, the CPE 21 from the power supply PS1 to the external power supply controller 31. Instructs the power supply status of PS13. The external power controller 31 changes the power supply state of each of the power supplies PS1 to PS13 according to the instruction of the power supply state. The device state includes a full state D0 that supplies power from all the power sources PS1 to PS13 as described above, a state D1 that supplies power only from some power sources in the power sources PS1 to PS13, and a so-called sleep state D2. There is a state like this.

以上のように、CPU11により、情報処理装置1の状態に応じて、ここでは、AC3の使用状態に応じて、AC3内の各ブロックに対する電源供給の制御が行われる。   As described above, the CPU 11 controls the power supply to each block in the AC 3 according to the state of the information processing apparatus 1, and here according to the usage state of the AC 3.

図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 CPU 11. A processing program in the CPU 11 is stored in the main memory 15 and executed by the CPU 11.
In the middle of executing various processes by the CPU 11, an example will be described in which a certain process, here, an image recognition process is shared by the AC3. The CPU 11 transmits the image recognition program to the AC 3 after executing predetermined pre-processing before requesting the processing with the AC 3 (step S1). The calculation unit 21 a of the CPE 21 stores the image recognition program from the CPU 11 in the RAM 4.

次に、CPU11は、画像認識処理の対象である対象データのアドレスと、認識処理の結果データのアドレスと、画像認識プログラムの負荷情報と、画像認識プログラムの並列度情報とを、AC3へ送信する(ステップS2)。AC3は、受信した負荷情報と並列度情報をRAM4に蓄積する。   Next, the CPU 11 transmits the address of the target data that is the target of the image recognition process, the address of the result data of the recognition process, the load information of the image recognition program, and the parallel degree information of the image recognition program to the AC 3. (Step S2). The AC 3 stores the received load information and parallelism information in the RAM 4.

負荷情報は、処理の重さを示す情報であり、並列度情報は、その処理プログラムを並列処理できる度合いを示す情報である。本実施の形態では、負荷情報と並列度情報は、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 integers 0, 1, 2,... Including 0 (zero). The load information indicates that the larger the number, the greater the processing load. The degree of parallelism information indicates that the process can be executed with the number of PEs corresponding to the number.

負荷情報と並列度情報は、処理プログラム毎に、予め決められて、主メモリ15にストアされている。図4は、その負荷情報と並列度情報を示すテーブルデータの例を示す図である。   The load information and the parallelism information are determined in advance for each processing program and stored in the main memory 15. FIG. 4 is a diagram illustrating an example of table data indicating the load information and parallelism information.

図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 main memory 15 in advance, the CPU 11 reads out the load information and parallelism information of the processing program requested from the AC 3 from the main memory 15 and transmits them to the AC 3. Can do.

次に、AC3におけるCPE21の演算部21aの処理について説明する。図5は、CPE21の処理の例を示すフローチャートである。   Next, processing of the calculation unit 21a of the CPE 21 in AC3 will be described. FIG. 5 is a flowchart illustrating an example of processing of the CPE 21.

CPE21は、CPU11から上述した処理を依頼されると、受信した負荷情報と並列度情報を参照し、その負荷情報と並列度情報をRAM4にストアする(ステップS11)。   When the CPE 21 is requested by the CPU 11, the CPE 21 refers to the received load information and parallelism information, and stores the load information and parallelism information in the RAM 4 (step S11).

CPE21は、その負荷情報と並列度情報とに基づいて、動作すべきPEを決定する(ステップS12)。すなわち、CPE21は、負荷情報に、並列度情報を加味して、動作すべき1以上のPE22を決定し、動作するPE22の数が決定される。本実施の形態では、並列度は、並列処理可能な演算部の最大数を示し、負荷は、1つのPE22で実行できる処理量を1として、その処理量に対する比率を示している。よって、CPE21は、受信した負荷情報と並列度情報に基づいて、処理プログラムを、いくつのPE22で、かつどれくらいの動作周波数で実行できるかを決定することができる。   The CPE 21 determines a PE to be operated based on the load information and the parallelism information (step S12). That is, the CPE 21 considers the parallelism information to the load information, determines one or more PEs 22 to operate, and determines the number of operating PEs 22. In the present embodiment, the degree of parallelism indicates the maximum number of arithmetic units that can be processed in parallel, and the load indicates the ratio of the processing amount that can be executed by one PE 22 as 1. Therefore, the CPE 21 can determine the number of PEs 22 and how many operating frequencies the processing program can be executed based on the received load information and parallelism information.

その決定方法においては、AC3の消費電力が最小になるようにするという基準に従って、最適な、動作すべきPE22と動作周波数が決定される。また、処理に使用されないPE22は、消費電力が最小になるように、例えば、電力の供給を停止するように制御される。   In the determination method, the optimum PE 22 to be operated and the operating frequency are determined in accordance with a criterion for minimizing the power consumption of AC3. Further, the PE 22 that is not used for processing is controlled so as to stop the supply of power, for example, so that the power consumption is minimized.

CPE21は、決定した1以上の動作すべきPE22のそれぞれの動作周波数と供給電圧を決定する(ステップS13)。すなわち、CPE21は、動作する各PE22の動作周波数と供給電圧を決定し、動作する各PE22にその決定した動作周波数に対応するクロック信号と決定した電圧の電力を供給するように、F/V制御部22cを制御する。なお、動作しないPEに対しては、クロック信号は、供給されず、かつ演算処理に必要な電力も供給されない。   The CPE 21 determines the operating frequency and supply voltage of each of the determined one or more PEs 22 to be operated (step S13). That is, the CPE 21 determines the operating frequency and supply voltage of each operating PE 22 and supplies the clock signal corresponding to the determined operating frequency and the determined voltage power to each operating PE 22. The unit 22c is controlled. Note that the clock signal is not supplied to the non-operating PE, and the power necessary for the arithmetic processing is not supplied.

ステップ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 CPE 21 determines the currently usable PE 22 (step S21). That is, when receiving the processing instruction, there may be a PE 22 that is already executing another processing among the PEs 22 of AC3. The CPE 21 monitors the operation of each PE 22 and can grasp what processing each PE 22 is executing. Therefore, first, before requesting the processing, the CPE 21 determines which PE 22 can be executed, and determines a usable PE 22, that is, an executable PE 22 (step 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となる。   Next, the CPE 21 determines the operating frequency and supply voltage according to the load, and notifies each F / V control unit 22c of each PE 22 (step S22). For example, in the case of a processing program with a load of 2 and a parallelism of 4 as in the program A in the table of FIG. If the maximum operable frequency f of 22a is assumed, the CPE 21 performs a process of dividing 2 indicating the load of the program by 3 indicating the number of executable PEs 22. Then, the value (2/3) as a result of the division is obtained. As a result, the operating frequency of the computing unit 22a of the PE 22 is (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よりも大きい値を、動作周波数として選択して決定する。   In some cases, the operating frequency of the PE 22 cannot take the value resulting from the division. For example, the operation frequency of PE22 can be operated only with a fixed frequency such as f, (1/2) f, (1/3) f, (1/4) f, (1/8) f, etc. This is the case. In such a case, the CPE 21 selects and determines a value close to (2/3) f and larger than (2/3) f as the operating frequency.

このようにして、CPE21は、動作すべきPE22の動作周波数を決定し、さらに、動作するPE22の供給電圧も決定する。供給電圧は、動作すべきPE22に対しては動作に必要な電圧である。動作しないPE22に対しては、動作に必要な電圧は供給されず、供給電圧は、0、あるいはスタンバイ状態のような最小消費電力に対応する電圧となる。   In this way, the CPE 21 determines the operating frequency of the PE 22 to be operated, and further determines the supply voltage of the operating PE 22. The supply voltage is a voltage necessary for operation with respect to the PE 22 to be operated. A voltage necessary for operation is not supplied to the PE 22 that does not operate, and the supply voltage is 0 or a voltage corresponding to the minimum power consumption as in the standby state.

図5に戻り、CPE21は、動作するPE22に対して、処理プログラム(上述した例であれば画像認識プログラム)をロードするように指示する(ステップS14)。具体的には、CPE21は、PE22に処理プログラムのアドレスを通知して、PE22にその処理プログラムをロードするように指示する、すなわち処理プログラムのロード命令を出力する。その結果、動作するPE22は、処理プログラムをロードして、ローカルメモリ22bにストアする。   Returning to FIG. 5, the CPE 21 instructs the operating PE 22 to load the processing program (in the above example, the image recognition program) (step S14). Specifically, the CPE 21 notifies the PE 22 of the address of the processing program and instructs the PE 22 to load the processing program, that is, outputs a load instruction of the processing program. As a result, the operating PE 22 loads the processing program and stores it in the local memory 22b.

そして、CPE21は、動作するPE22に対して、起動命令を出力する(ステップS15)。起動命令を受信したPE22は、ローカルメモリ22bに蓄積された処理プログラムを実行する。このとき、F/V制御部22cに通知されて設定された動作周波数と電圧によって、各PE22の演算部22aは動作している。   Then, the CPE 21 outputs an activation command to the operating PE 22 (step S15). The PE 22 that has received the start command executes the processing program stored in the local memory 22b. At this time, the computing unit 22a of each PE 22 is operating with the operating frequency and voltage notified and set to the F / V control unit 22c.

PE22は、処理した結果データを、ステップS2で指示されたアドレスに出力する。   The PE 22 outputs the processed result data to the address indicated in step S2.

CPE21は、各PEの動作を監視し、全ての処理が終了すると所定の処理を実行する。   The CPE 21 monitors the operation of each PE and executes a predetermined process when all the processes are completed.

図7は、CPE21の演算部21aにおける、処理プログラムの終了時の処理の流れの例を示すフローチャートである。   FIG. 7 is a flowchart illustrating an example of a processing flow at the end of the processing program in the calculation unit 21a of the CPE 21.

CPE21は、各PE22における処理プログラムの実行状態を監視し、まず、その処理プログラムを実行する旨の動作指示を出した全てのPE22がその処理を終了したか否かを判断する(ステップS31)。   The CPE 21 monitors the execution state of the processing program in each PE 22, and first determines whether or not all the PEs 22 that have issued an operation instruction to execute the processing program have finished the processing (step S31).

全てのPE22の処理が終了すると、CPE21は、依頼された処理プログラムの実行が終了した旨を示す終了通知を、CPU11へ出力する(ステップS32)。   When the processing of all the PEs 22 is completed, the CPE 21 outputs an end notification indicating that the requested processing program has been executed to the CPU 11 (step S32).

そして、CPE21は、処理の終了したPE22への、ステップS13において決定した動作周波数のクロック信号と電圧の供給を停止する(ステップS33)。この停止は、いわゆるスタンバイ状態における動作周波数のクロック信号と電圧の供給状態にすることを意味する。   Then, the CPE 21 stops supplying the clock signal and voltage at the operating frequency determined in step S13 to the PE 22 that has been processed (step S33). This stop means a state in which a clock signal having an operating frequency and a voltage are supplied in a so-called standby state.

以上のようにして、処理プログラムがCPU11からAC3へ依頼され、AC3において実行される。   As described above, the processing program is requested from the CPU 11 to the AC 3 and executed in the AC 3.

次に、以上の処理の流れについて、具体的な例を用いて説明する。図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 CPE 21. FIG. 8 shows an example of a change in the state of AC3, and shows four PEs 22 included. In FIG. 8, the node Start indicates a state before the CPE 21 operates, and the node End indicates a state where the CPE 21 ends the operation. When the CPE 21 starts operation, the standby state 101 is entered.

図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 CPU 11 requests processing W with a load of 1 and a parallelism of 1, the state becomes the state 102.

スタンバイ状態101では、AC3内部ではゲーティング可能な回路部分に対してはクロックゲーティングを行いクロック信号の供給が停止され、クロック信号の周波数を下げられる回路部分に対しては下げられるレベルまで下げた周波数のクロック信号が供給される。よって、スタンバイ状態101は、AC3の消費電力が最低の状態である。   In the standby state 101, clock gating is performed on the circuit portion that can be gated in the AC 3, and the supply of the clock signal is stopped, and the circuit portion that can reduce the frequency of the clock signal is lowered to a level that can be lowered. A frequency clock signal is provided. Therefore, the standby state 101 is a state where the power consumption of AC3 is the lowest.

そのスタンバイ状態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 CPE 21 is a load 1 that can be processed by one PE 22, and the parallel degree is 1. In this case, one PE 22A is set as a PE to be operated, the operating frequency of the PE 22A is set to the maximum operating frequency f, clock gating is performed on the other PEs 22B, 22C, and 22D, and power is supplied. Stop supplying. In FIG. 8, among the four PEs 22, the shaded PE 22 A is the operating PE.

その処理Wが終了すると、状態102からスタンバイ状態101へ戻る。さらに、AC3がスタンバイ状態101にあり、そのスタンバイ状態101において、負荷が1でかつ並列度が4の処理Xを、CPU11から依頼されたときは、状態103になる。   When the process W ends, the state 102 returns to the standby state 101. Furthermore, when AC3 is in the standby state 101 and the CPU 11 requests processing X with a load of 1 and a parallelism of 4 in the standby state 101, the state becomes the state 103.

具体的には、上述したような処理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 CPE 21 is determined to be the processing with the load 1 that can be processed by one PE 22 and the parallelism of 4. When the operation method with the least power consumption is a method in which loads are evenly shared among a plurality of operable PEs 22, all the four PEs 22 are set as PEs to be operated, and the operation frequency of each PE 22 is set to (1 / 4) Set to f (f is the maximum operating frequency) and operate.

なお、負荷が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 CPU 11, the state 104 is entered.

具体的には、上述したような処理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, CPE 21 is (1/4) of the load that can be processed by one PE 22 for processing Y, and the degree of parallelism is 2. Becomes clear. Then, it is found that the CPE 21 is the load 2 that can be processed by the two PEs 22 for the processing Z, and the parallelism is 2. Therefore, when the operation method with the least power consumption is a method of evenly sharing the load among the plurality of operable PEs 22, for the processing Y, the two PEs 22A and PE22B are set to operate PEs, and the operation frequency (1/8) Set to f and operate to perform process Y. For process Z, set two PEs 22C and 22D to operate and set the operating frequency to (1/1) f. Operate to perform process Z. In this case, the process Y program is loaded into the PEs 22A and 22B, and the process Z program is loaded into the PEs 22C and 22D.
When the processes Y and Z are completed, the state 104 returns to the standby state 101.

以上のように、AC3においては、処理プログラムに応じて、最適な消費電力となるように、ここでは低消費電力となるように、各PE22の動作は制御され、その結果、AC3における消費電力は動的に変化するように制御される。すなわち、AC3内では、処理プログラムの負荷に応じて、内部の演算リソースである演算部22aの提供及びその動作状態が動的に変更される。そのとき、AC3において最適な消費電力になるように、動作する各PE22の演算部22aに対しては動作周波数と供給電圧を決定され、動作しない各PE22に対しては、クロックゲーティング、電圧供給の停止等が行われる。その結果、使用しないPE22においては、クロック信号による電力の消費や、内部のリーク電流の発生を低く抑え、無駄な電力消費を抑えることができる。   As described above, in AC3, the operation of each PE 22 is controlled so as to achieve low power consumption in accordance with the processing program, so that the power consumption in AC3 is as a result. It is controlled to change dynamically. That is, in AC3, according to the load of the processing program, the provision of the arithmetic unit 22a that is an internal arithmetic resource and its operation state are dynamically changed. At that time, the operating frequency and the supply voltage are determined for the computing unit 22a of each operating PE 22 so as to achieve optimum power consumption in AC3, and clock gating and voltage supply are provided for each PE 22 that does not operate. Is stopped. As a result, in the PE 22 that is not used, power consumption due to the clock signal and generation of internal leakage current can be suppressed to a low level, and wasteful power consumption can be suppressed.

よって、本実施の形態によれば、AC3は、自律的に、内部の複数のPE22における処理分担を決定し、かつ消費電力を考慮して動作及び処理能力を決定して、CPU11から依頼された処理を実行するようにしたので、AC3は、最適な消費電力で依頼された処理を行うことができる。   Therefore, according to the present embodiment, the AC 3 autonomously determines processing sharing among the plurality of internal PEs 22 and determines the operation and processing capacity in consideration of power consumption, and is requested from the CPU 11. Since the process is executed, the AC 3 can perform the requested process with the optimum power consumption.

(第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) encoders 26A, 26B and a plurality (here, two) decoders 26C, 26D, each of which is an internal component. It is connected to the CPE 21 via the bus 25. Hereinafter, the encoders 26A and 26B and the decoders 26C and 26D will be referred to as a hard macro 26 when collectively referring to one of them.

ハード・マクロ26は、ハードウエアエンジン部であり、PE22のような受信したプログラムを実行可能な汎用な処理部ではない。PE22は、プログラムに応じた処理を実行可能な汎用な処理部であるが、ハード・マクロ26の処理内容は、ASIC等のハードウエアにより実現されており、動作用の制御データと対象データが与えられるとその処理が実行されるものである。   The hardware macro 26 is a hardware engine unit, and is not a general-purpose processing unit that can execute a received program such as the PE 22. The PE 22 is a general-purpose processing unit that can execute processing according to a program, but the processing content of the hardware macro 26 is realized by hardware such as an ASIC, and is given control data and target data for operation. If it is, the process is executed.

本実施の形態では、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 hardware macro 26. . The two encoders 26 </ b> A and 26 </ b> B are hardware circuits capable of performing parallel encoding processing based on a request from the CPE 21. The two decoders 26 </ b> C and 26 </ b> D are also hardware circuits that can perform decoding processing in parallel based on a request from the CPE 21.

従って、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 PE 22 by using the hardware macro 26 that can process each in parallel.

また、エンコーダ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 encoders 26A and 26B and the decoders 26C and 26D are respectively provided with F / V control units 26Ac, 26Bc, 26Cc, and 26Dc (hereinafter referred to collectively or F / V control units when referring to one F / V control unit). 26c). Each F / V control unit 26c is an operation control unit that controls both the operation and the processing capability of the corresponding hard macro 26. Specifically, the F / V control unit 26c has the frequency of the clock signal supplied to the corresponding hard macro 26. This is a circuit having a function of changing, a function of supplying and stopping a clock signal supplied to each circuit in the hard macro 26, and a function of supplying and stopping power supplied to each circuit in the hard macro 26.

よって、情報処理装置1においてアプリケーションプログラムが実行されるときに、エンコーダ26A、26Bとデコーダ26C,26Dの使用状態に応じて、あるいは、使用/不使用に応じて、クロック信号の周波数の変更、クロック信号の供給と停止、および電力の供給と停止が、CPE21の制御の下で行われる。   Therefore, when the application program is executed in the information processing apparatus 1, the frequency of the clock signal is changed according to the use state of the encoders 26A and 26B and the decoders 26C and 26D, or according to use / non-use. Signal supply and stop, and power supply and stop are performed under the control of the CPE 21.

なお、本実施の形態においても、エンコーダ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 encoders 26A and 26B and the decoders 26C and 26D, but one encoder is provided for the entire encoders 26A and 26B and the decoders 26C and 26D. The F / V control unit 26c may be provided to change the frequency of the clock signal, supply and stop the clock signal, and supply and stop the power to the whole. In this case as well, as in the first embodiment, the output of the PLL circuit 27 is output via the switch circuit 29, and a control signal for stopping the clock supply to the switch circuit 26 is provided. , Supplied from CPE21.

各機能は、第1の実施の形態で説明したPE22に対する機能と同等である。
なお、本実施の形態においても、各F/V制御部26cは、対応するハード・マクロ26の動作及び処理能力の両方を制御するが、動作及び処理能力の少なくとも一方でもよい。
Each function is equivalent to the function for the PE 22 described in the first embodiment.
Also in the present embodiment, each F / V control unit 26c controls both the operation and the processing capability of the corresponding hardware macro 26, but may be at least one of the operation and the processing capability.

そして、CPE21の演算部21aが、後述するように、各PE22と、各ハード・マクロ26と、各F/V制御部22c、26cを制御する。よって、各F/V制御部22cによる演算部22aの動作及び処理能力の制御、及び各F/V制御部26cによるハード・マクロ26の動作及び処理能力の制御は、CPE21の演算部21aの指示に応じて行われる。   Then, the calculation unit 21a of the CPE 21 controls each PE 22, each hard macro 26, and each F / V control unit 22c, 26c, as will be described later. Therefore, the operation and processing capability of the calculation unit 22a by each F / V control unit 22c and the operation and processing capability of the hardware macro 26 by each F / V control unit 26c are controlled by the calculation unit 21a of the CPE 21. Is done according to.

制御部である演算部21aは、CPU11から所定の処理を実行する旨のコマンドを受信すると、そのコマンドに応じて、4つのPE22及び4つのハード・マクロ26に対して所定の指示を出力する。その所定の指示には、どのPE22、あるいはどのハード・マクロ26がその処理を実行するのかの指示、そのときの動作周波数をどのくらいにするのかの指示、等が含まれる。   When the arithmetic unit 21a, which is a control unit, receives a command to execute a predetermined process from the CPU 11, the arithmetic unit 21a outputs a predetermined instruction to the four PEs 22 and the four hard macros 26 according to the command. The predetermined instruction includes an instruction as to which PE 22 or which hard macro 26 executes the process, an instruction as to what operating frequency is to be used at that time, and the like.

以下、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 CPU 11 requests the AC 3A to execute an image recognition application program, the CPU 11 outputs a predetermined command to the AC 3A. The AC 3A receives the command and processes the application program designated by the CPU 11. In this case, the image recognition application program is executed in the PE 22, but the operation of the PE 22 based on the load information and the parallelism information in this case is the same as the operation in the first embodiment. That is, the CPE 21 determines the operations of the plurality of PEs 22 based on the load information of the image processing program and the parallelism information.
In this case, the processing flow of the CPU 11 is the same as that shown in FIGS. That is, the CPU 11 transmits the image recognition program to AC3A, and the calculation unit 21a of the CPE 21 stores the image recognition program from the CPU 11 in the RAM 4. Then, the CPU 11 transmits the address of the target data that is the target of the image recognition process, the address of the result data of the recognition process, the load information about the image recognition program, and the parallel degree information about the image recognition program to the AC 3A. To do. The AC 3A stores the received load information and parallelism information in the RAM 4.
On the other hand, when the CPU 11 requests the AC 3A to perform image data decoding processing, the CPU 11 outputs a predetermined command different from the above-described image recognition processing command to the AC 3A. Note that the CPU 11 may request the image data decoding process simultaneously with the above-described image recognition processing request, or may perform the request separately. The AC 3A receives the command and performs the decoding process designated by the CPU 11 using the hardware macro 26.

図10は、その場合におけるCPU11の処理の流れの例を示すフローチャートである。   FIG. 10 is a flowchart showing an example of the processing flow of the CPU 11 in that case.

CPU11が、画像データのデコード処理をAC3Aに分担させる場合、CPU11は、デコーダ26Cと26Dの使用の有無の通知を、AC3Aへ行う(ステップS11)。CPU11は、デコード処理を依頼するので、デコーダ26Cと26Dを使用することを通知し、その結果、エンコーダ26Aと26Bは使用しないことが通知されたことになる。   When the CPU 11 shares the decoding process of the image data with the AC 3A, the CPU 11 notifies the AC 3A of the presence / absence of the use of the decoders 26C and 26D (step S11). Since the CPU 11 requests the decoding process, the CPU 11 notifies that the decoders 26C and 26D are used, and as a result, notifies that the encoders 26A and 26B are not used.

次に、図3の場合と同様に、CPU11は、対象データのアドレスと、結果データのアドレスと、負荷情報と、並列度情報とを、AC3Aへ送信する(ステップS2)。ここでは、対象データは、デコード処理の対象データであり、結果データは、デコード処理の結果データであり、負荷情報は、デコード処理の対象データについての負荷情報であり、並列度情報は、デコード処理の並列度情報である。負荷情報は、ここでは、対象データである画像データの解像度、プロファイル等に応じて、決定される。例えば、解像度が高ければ、処理の負荷が大きくなり、解像度が低ければ、その負荷は小さくなるからである。AC3Aは、受信した負荷情報と並列度情報をRAM4に蓄積する。   Next, as in the case of FIG. 3, the CPU 11 transmits the address of the target data, the address of the result data, the load information, and the parallelism information to the AC 3A (step S2). Here, the target data is the target data for the decoding process, the result data is the result data for the decoding process, the load information is the load information for the target data for the decoding process, and the parallel degree information is the decoding process. Is the degree of parallelism information. Here, the load information is determined according to the resolution, profile, and the like of the image data that is the target data. For example, if the resolution is high, the processing load increases, and if the resolution is low, the load decreases. The AC 3A stores the received load information and parallelism information in the RAM 4.

図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 CPE 21 is the same as that in FIGS. 5 to 7 in the first embodiment, the description thereof is omitted.
The decoding process will be described with reference to FIG. FIG. 12 is a flowchart illustrating an example of decoding processing in the CPE 21.
When requested by the CPU 11 to perform the decoding process, the CPE 21 refers to the received load information and parallelism information, and stores the load information and parallelism information in the RAM 4 (step S11).

CPE21は、その負荷情報と並列度情報とに基づいて、動作すべきハード・マクロ(HM)を決定する(ステップS22)。すなわち、CPE21は、負荷情報に、並列度情報を加味して、動作すべき1以上のハード・マクロ(HM)を決定し、動作するハード・マクロ26の数が決定される。   The CPE 21 determines a hardware macro (HM) to be operated based on the load information and the parallelism information (step S22). In other words, the CPE 21 considers the parallelism information to the load information, determines one or more hard macros (HM) to be operated, and determines the number of hard macros 26 to be operated.

ここでは、依頼された処理がデコード処理なので、デコーダ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 CPE 21 can determine how many operating frequencies each hard macro 26 can execute based on the received load information and parallelism information. Further, if there is a hard macro that does not perform decoding processing, such a hard macro 26 is controlled to stop the supply of power, for example, so that power consumption is minimized.

従って、CPE21は、決定した1以上の動作すべきハード・マクロ26のそれぞれの動作周波数と供給電圧を決定する(ステップS13)。よって、動作しないハード・マクロ26に対しては、クロック信号は、供給されず、かつ演算処理に必要な電力も供給されない。ステップS13におけるハード・マクロ26に対する、負荷に応じた動作周波数と供給電圧の決定の方法は、第1の実施の形態の図6で説明したPE22に対する、負荷電力に応じた動作周波数と供給電圧の決定の方法と同じであるので、説明は省略する。   Therefore, the CPE 21 determines the operating frequency and the supply voltage of each of the determined one or more hardware macros 26 to be operated (step S13). Therefore, the clock signal is not supplied to the hardware macro 26 that does not operate, and the power necessary for the arithmetic processing is not supplied. The method of determining the operating frequency and supply voltage corresponding to the load for the hardware macro 26 in step S13 is the same as the operation frequency and supply voltage corresponding to the load power for the PE 22 described in FIG. 6 of the first embodiment. Since it is the same as the determination method, the description is omitted.

次に、CPE21は、動作するハード・マクロ(HM)26に対して、起動命令を出力する(ステップS25)。起動命令を受信したハード・マクロ(HM)26は、デコード処理の対象データを指定されたアドレスから読み出して取得し、デコード処理を施し、そのデコード処理した結果データを、指定されたアドレスに出力する。このとき、各ハード・マクロ26は、F/V制御部26cに通知されて設定された動作周波数と電圧に従って動作している。   Next, the CPE 21 outputs an activation command to the operating hard macro (HM) 26 (step S25). The hardware macro (HM) 26 that has received the start command reads out and acquires the data to be decoded from the designated address, performs the decoding process, and outputs the decoded result data to the designated address. . At this time, each hard macro 26 is operating according to the operating frequency and voltage set by being notified to the F / V control unit 26c.

以上のように、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 CPE 21 uses the plurality of hard macros based on the data load information to be processed and the parallelism information. Determine the behavior.
Therefore, according to the present embodiment, AC3A autonomously determines processing sharing among a plurality of internal PEs 22 and a plurality of hardware macros 26, and determines operation and processing capacity in consideration of power consumption. Since the processing requested from the CPU 11 is executed, the AC 3A can perform the requested processing with the optimum power consumption.

なお、上述した例では、ハード・マクロの行う処理は、画像データのエンコードとデコードの例として説明したが、他にも例えば、物理シミュレーション処理(仮想空間内での物理現象をシミュレーションする処理)、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の実施の形態に係わる情報処理装置の構成を示す構成図である。It is a block diagram which shows the structure of the information processing apparatus concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わるアクセラレータの構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of the accelerator concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わる、CPUの処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process of CPU concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わる、負荷情報と並列度情報を示すテーブルデータの例を示す図である。It is a figure which shows the example of the table data which shows the load information and parallelism information concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わる、CPEの処理の例を示すフローチャートである。It is a flowchart which shows the example of a process of CPE concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わる、動作周波数の決定処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of the determination process of the operating frequency concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わる、CPEの演算部における、処理プログラムの終了時の処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process at the time of completion | finish of a processing program in the calculating part of CPE concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態に係わる、CPEにおける処理を説明するための図である。It is a figure for demonstrating the process in CPE concerning the 1st Embodiment of this invention. 本発明の第2の実施の形態に係わるアクセラレータの構成を示すブロック図である。It is a block diagram which shows the structure of the accelerator concerning the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係わる、CPUの処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process of CPU concerning the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係わる、デコード処理についての負荷情報と並列度情報を示すテーブルデータの例を示す図である。It is a figure which shows the example of the table data which shows the load information and parallelism information about a decoding process concerning the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係わる、CPEにおけるデコード処理の例を示すフローチャートである。It is a flowchart which shows the example of the decoding process in CPE concerning the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

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.
JP2007304273A 2006-12-06 2007-11-26 Information processing apparatus and information processing method Expired - Fee Related JP4945410B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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