JP4800582B2 - Arithmetic processing unit - Google Patents

Arithmetic processing unit Download PDF

Info

Publication number
JP4800582B2
JP4800582B2 JP2004044656A JP2004044656A JP4800582B2 JP 4800582 B2 JP4800582 B2 JP 4800582B2 JP 2004044656 A JP2004044656 A JP 2004044656A JP 2004044656 A JP2004044656 A JP 2004044656A JP 4800582 B2 JP4800582 B2 JP 4800582B2
Authority
JP
Japan
Prior art keywords
vector
instruction
register
clock
scalar
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004044656A
Other languages
Japanese (ja)
Other versions
JP2005234968A (en
Inventor
晃成 轟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004044656A priority Critical patent/JP4800582B2/en
Publication of JP2005234968A publication Critical patent/JP2005234968A/en
Application granted granted Critical
Publication of JP4800582B2 publication Critical patent/JP4800582B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、演算処理装置に関し、特に、ベクトル命令に基づいて各モジュールのクロックゲーティングを行いながら、複数の演算器を並列に動作させることによりパイプライン処理を行う方法に適用して好適なものである。   The present invention relates to an arithmetic processing unit, and in particular, is suitably applied to a method of performing pipeline processing by operating a plurality of arithmetic units in parallel while performing clock gating of each module based on a vector instruction. It is.

従来、プロセッサの低消費電力化を図る技術としては、例えば、特許文献1に開示されたマイクロコンピュータの動作方法(以下、第1の従来例という。)、特許文献2に開示された情報処理装置(以下、第2の従来例という。)、特許文献3に開示された低消費電力プロセッサ(以下、第3の従来例という。)および特許文献4に開示された低消費電力プロセッサ(以下、第4の従来例という。)があった。さらに、特許文献5に開示されたプロセッサ(以下、第5の従来例という。)、特許文献6に開示されたプロセッサシステム(以下、第6の従来例という。)、特許文献7に開示されたマイクロコンピュータ(以下、第7の従来例という。)および特許文献8に開示された低消費マイクロプロセッサ(以下、第8の従来例という。)があった。   Conventional techniques for reducing the power consumption of a processor include, for example, a microcomputer operation method disclosed in Patent Document 1 (hereinafter referred to as a first conventional example), and an information processing apparatus disclosed in Patent Document 2. (Hereinafter referred to as a second conventional example), a low power consumption processor disclosed in Patent Document 3 (hereinafter referred to as a third conventional example), and a low power consumption processor disclosed in Patent Document 4 (hereinafter referred to as a first conventional example). 4). Furthermore, the processor disclosed in Patent Document 5 (hereinafter referred to as the fifth conventional example), the processor system disclosed in Patent Document 6 (hereinafter referred to as the sixth conventional example), and the Patent Document 7 disclosed. There were a microcomputer (hereinafter referred to as a seventh conventional example) and a low consumption microprocessor (hereinafter referred to as an eighth conventional example) disclosed in Patent Document 8.

第1の従来例は、基準信号発生回路と、基準信号発生回路の出力によりシステムの動作を制御するクロックを発生するクロックジェネレータと、プログラムを構成する命令が書き込まれたROMと、ROMに書き込まれた命令を取り出すためにROMのアドレスを指定するプログラムカウンタと、プログラムカウンタで取り出した命令を解読して各種回路を制御する制御回路と、所定の命令が実行されたときクロックジェネレータの動作を停止させる状態制御回路とを備えている。そして、クロックジェネレータの動作停止状態は、少なくとも割込信号の印加によって解除され、かつ、割込信号の印加により制御回路は、プログラムカウンタにクロックジェネレータの動作停止の原因となった命令が書き込まれたアドレスを再びセットすることにより、割込処理終了後に再びクロックジェネレータの動作を停止するようになっている。   In the first conventional example, a reference signal generating circuit, a clock generator for generating a clock for controlling the operation of the system by the output of the reference signal generating circuit, a ROM in which instructions constituting a program are written, and a ROM are written. A program counter for designating a ROM address for fetching a command, a control circuit for controlling various circuits by decoding the command fetched by the program counter, and stopping the operation of the clock generator when a predetermined command is executed And a state control circuit. Then, the operation stop state of the clock generator is canceled at least by the application of the interrupt signal, and the instruction causing the operation stop of the clock generator is written to the program counter by the application of the interrupt signal. By setting the address again, the operation of the clock generator is stopped again after completion of the interrupt process.

これにより、割込信号が印加するまでクロックジェネレータの動作が停止するので、消費電力を低減することができる。
第2の従来例は、主要業務のアプリケーション・プログラムを格納する記憶装置と、そのプログラムを実行する高速動作可能なメインCPUと、主要業務以外の処理を実行する低電圧駆動、低消費電力型のサブCPUと、サブCPUによって制御される周辺回路とを備えている。
As a result, the operation of the clock generator stops until the interrupt signal is applied, so that power consumption can be reduced.
The second conventional example is a storage device that stores an application program for main business, a main CPU that can execute the program at high speed, and a low-voltage drive, low power consumption type that executes processing other than the main business. A sub CPU and a peripheral circuit controlled by the sub CPU are provided.

これにより、サブCPUがメインCPUに代わって周辺回路を制御するので、消費電力を低減することができる。
第3の従来例は、命令プログラムの実行に関与する回路を判別し、命令プログラムの実行に関与する回路のみにクロックを供給する制御回路を備えている。
これにより、命令プログラムの実行に関与する回路のみにクロックが供給されるので、消費電力を低減することができる。
As a result, the sub CPU controls the peripheral circuit instead of the main CPU, so that power consumption can be reduced.
The third conventional example includes a control circuit that determines a circuit involved in the execution of the instruction program and supplies a clock only to the circuit involved in the execution of the instruction program.
As a result, since the clock is supplied only to the circuits involved in the execution of the instruction program, the power consumption can be reduced.

第4の従来例は、プログラムを処理するプロセッサの複数の回路ブロックの別々のクロック入力を、有効にするか無効にするかの手段(例えば各クロック入力に対し符号0/1のフラグACLK1 〜ACLKnを付加する手段)をプロセッサの外部に備えるように構成する。
これにより、ディジタル信号処理プロセッサなどのプログラム処理のプロセッサについて消費電力を低減することができる。
In the fourth conventional example, means for enabling or disabling separate clock inputs of a plurality of circuit blocks of a processor that processes a program (for example, flags ACLK1 to ACLKn having a code 0/1 for each clock input) Is provided outside the processor.
Thereby, power consumption can be reduced for a processor for program processing such as a digital signal processor.

第5の従来例は、マイクロプロセッサを構成する各ハードウェア資源への入力クロックのサイクル数を命令によって個別に変更することを可能にし、コンパイラによって実行に不要であると判断されたハードウェア資源への入力クロックを低下または停止する命令を挿入する。また、実行に必要なハードウェア資源のクロックサイクルを全ハードウェア資源の最大動作周波数とする。   In the fifth conventional example, the number of cycles of the input clock to each hardware resource constituting the microprocessor can be individually changed by an instruction, and the hardware resource determined to be unnecessary for execution by the compiler. Inserts an instruction to lower or stop the input clock. Further, the clock cycle of hardware resources necessary for execution is set as the maximum operating frequency of all hardware resources.

これにより、マイクロプロセッサの消費電力を実行性能を低下することなく削減することができる。
第6の従来例は、命令列をデコードするデコ−ダと、データについての演算を行なう命令ユニットと、デコ−ダが命令列をデコードした結果が、命令ユニットへの命令がNOP(no−operation)であるときには、命令ユニットの電源をオフとする電源制御ユニットとを備え、命令ユニットへの命令がNOPであるときには、命令ユニットの電源がオフとされる。
Thereby, the power consumption of the microprocessor can be reduced without reducing the execution performance.
In the sixth conventional example, a decoder that decodes an instruction sequence, an instruction unit that performs an operation on data, and a result of decoding the instruction sequence by the decoder indicate that an instruction to the instruction unit is a NOP (no-operation). ), The power supply control unit for turning off the power supply of the instruction unit is provided. When the instruction to the instruction unit is NOP, the power supply of the instruction unit is turned off.

これにより、デコード結果がNOPであるときは、命令ユニットの電源がオフとなるので、消費電力を低減することができる。
第7の従来例は、CPUで実行される命令のうち、高速処理が要求されるものと高速処理が要求されないものとを識別するための情報がテーブル化されたテーブルメモリを設け、CPUに命令がフェッチされるごとに、テーブルメモリの情報に基づいてクロック信号の周波数を制御する。
Thereby, when the decoding result is NOP, the power of the instruction unit is turned off, so that the power consumption can be reduced.
The seventh conventional example is provided with a table memory in which information for identifying high-speed processing required and high-speed processing not required among the instructions executed by the CPU is provided as a table. Each time is fetched, the frequency of the clock signal is controlled based on the information in the table memory.

これにより、命令に応じてクロック信号の周波数を下げることができ、マイクロコンピュータ応用機器の全体としてのパフォーマンスを保ったまま、消費電力を低減することができる。
第8の従来例は、命令キャッシュから供給される命令列において、命令無効化回路で浮動小数点演算ユニットを使用しない命令を無効命令に置き換え、その無効命令を浮動小数点命令レジスタに保持し、浮動小数点演算ユニット内の浮動小数点デコーダに供給するように構成される。
As a result, the frequency of the clock signal can be lowered in accordance with the command, and the power consumption can be reduced while maintaining the overall performance of the microcomputer application device.
In the eighth conventional example, in the instruction sequence supplied from the instruction cache, an instruction that does not use the floating-point arithmetic unit in the instruction invalidation circuit is replaced with an invalid instruction, and the invalid instruction is held in the floating-point instruction register. It is configured to be supplied to a floating point decoder in the arithmetic unit.

これにより、無効命令が連続した場合、浮動小数点データパスに加え、浮動小数点デコーダと浮動小数点レジスタの消費電力を低減することができる。
特開昭59−182389号公報 特開平4−96856号公報 特開平4−127210号公報 特開平8−234861号公報 特開平9−22318号公報 特開平9−34599号公報 特開平11−85723号公報 特開2001−22582号公報
As a result, when invalid instructions continue, it is possible to reduce the power consumption of the floating point decoder and the floating point register in addition to the floating point data path.
JP 59-182389 A Japanese Patent Laid-Open No. 4-96856 Japanese Patent Laid-Open No. 4-127210 JP-A-8-234861 JP-A-9-22318 JP-A-9-34599 JP 11-85723 A Japanese Patent Laid-Open No. 2001-22582

このように、第1ないし第8の従来例はいずれも、シングルプロセッサを対象として消費電力の低減を図るものである。しかしながら、複数の演算器を備えそれらを並列に動作させる並列演算処理装置を対象とした場合、同様の電力制御では、次のような問題がある。
第6の従来例は、デコード結果がNOPであるときは、命令ユニットの電源をオフとするようになっている。しかし、並列演算処理装置では、複数の演算器のうち一部を使って演算を行う場合、演算を行わない他の演算器にNOPを与えないこともあり、このような場合は、低消費電力化を十分に図ることができない。これは、演算を行わない他の演算器にもNOPを与えることとすると、プログラム容量が膨大になってしまうためである。
As described above, all of the first to eighth conventional examples are intended to reduce power consumption for a single processor. However, in the case of a parallel arithmetic processing device that includes a plurality of arithmetic units and operates them in parallel, similar power control has the following problems.
In the sixth conventional example, when the decoding result is NOP, the power of the instruction unit is turned off. However, in a parallel processing unit, when performing computation using a part of a plurality of computing units, NOP may not be given to other computing units that do not perform computation. In such a case, low power consumption Cannot be fully realized. This is because if the NOP is given to other computing units that do not perform computation, the program capacity becomes enormous.

また、並列演算処理装置には、例えば、ベクトル演算に特化した演算器やスカラ演算に特化した演算器のように、複数種類の演算器を組み合わせて構成し、演算の効率化を高めるものもある。しかし、それら演算器は演算の性質が異なるため、これを同列に取り扱い省電力制御するのは、消費電力を低減する観点からは効果的ではない。
また、並列演算処理装置は、複数の演算器のほか、演算器が演算に利用するデータを格納するためのレジスタを備えている。しかし、第1ないし第6の従来例では、演算器の省電力制御しか行っていないため、演算器がレジスタを使用しない命令コードを実行する場合には、レジスタで不要な電力が消費されてしまう。したがって、低消費電力化を十分に図ることができない。
In addition, a parallel arithmetic processing unit is configured by combining a plurality of types of arithmetic units, such as an arithmetic unit specialized for vector arithmetic and an arithmetic unit specialized for scalar arithmetic, to increase the efficiency of arithmetic. There is also. However, since these arithmetic units have different arithmetic properties, it is not effective from the viewpoint of reducing power consumption to handle them in the same row and perform power saving control.
In addition to the plurality of arithmetic units, the parallel arithmetic processing device includes a register for storing data used by the arithmetic unit for arithmetic operations. However, in the first to sixth conventional examples, only the power saving control of the arithmetic unit is performed. Therefore, when the arithmetic unit executes an instruction code that does not use the register, unnecessary power is consumed in the register. . Therefore, low power consumption cannot be sufficiently achieved.

そこで、本発明の目的は、種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能な演算処理装置を提供することである。   Therefore, an object of the present invention is to provide an arithmetic processing device capable of reducing power consumption while suppressing a burden on programming even when a plurality of different types of modules are provided. .

上述した課題を解決するために、本発明の一態様に係る演算処理装置によれば、命令で指定された演算処理を行う複数のモジュールと、前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールを選択して消費電力の制御を行う消費電力制御部とを備えることを特徴とする。
これにより、対象となる今回の命令で使用されるモジュールのみを動作させながら、対象となる今回の命令で指定される演算処理を実行させることが可能となる。このため、モジュールに演算処理を行わせるため命令を与えることにより、対象となる今回の命令で使用されないモジュールを停止させることが可能となり、対象となる今回の命令で使用されない他のモジュールを特定するために、NOP命令などを挿入する必要がなくなることから、種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
In order to solve the above-described problem, according to an arithmetic processing device according to an aspect of the present invention, a plurality of modules that perform arithmetic processing specified by an instruction, and a period required to execute the instruction And a power consumption control unit that selects a module necessary for executing the instruction and controls power consumption.
As a result, it is possible to execute the arithmetic processing designated by the target current instruction while operating only the module used in the target current instruction. For this reason, it is possible to stop a module that is not used in the current target instruction by giving an instruction to cause the module to perform arithmetic processing, and specify other modules that are not used in the current target instruction. Therefore, it is not necessary to insert a NOP instruction or the like, so that even when a plurality of different types of modules are provided, it is possible to reduce the power consumption while suppressing the burden on programming.

また、本発明の一態様に係る演算処理装置によれば、前記モジュール単位で挿入された第1クロックゲーティングマクロ回路が設けられ、前記消費電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールに対応した第1クロックゲーティングマクロ回路に第1イネーブル信号を供給することにより、前記命令を実行するために必要なモジュールを選択し、クロックを供給することを特徴とする。   According to the arithmetic processing device of one aspect of the present invention, the first clock gating macro circuit inserted in the module unit is provided, and the power consumption control unit is necessary for executing the instruction. Supplying a first enable signal to a first clock gating macro circuit corresponding to a module required to execute the instruction during the period, selecting a module required to execute the instruction, It is characterized by supplying.

これにより、命令の解読結果に基づいてクロックゲーティングマクロ回路にイネーブル信号を供給することが可能となる。このため、実行プログラムにNOP命令などを挿入することなく、今回の命令で使用されるモジュールにのみクロック信号を供給することが可能となるとともに、今回の命令で使用されないモジュールにはクロック信号の供給を停止することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。     Thus, an enable signal can be supplied to the clock gating macro circuit based on the result of decoding the instruction. Therefore, it is possible to supply a clock signal only to a module used in the current instruction without inserting a NOP instruction or the like in the execution program, and supply a clock signal to a module not used in the current instruction. Can be stopped, and the power consumption can be reduced while suppressing the burden on programming.

また、本発明の一態様に係る演算処理装置によれば、前記モジュールは、スカラー演算を行う複数のスカラー演算器と、ベクトル演算を行う複数のベクトル演算器と、スカラーデータを格納するスカラーレジスタと、ベクトルデータを格納するベクトルレジスタとを備え、前記消費電力制御部は、前記命令の種別がベクトル命令の場合、前記ベクトル命令の実行期間中に、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給するとともに、前記スカラー演算器および前記スカラーレジスタへのクロックの供給を停止することを特徴とする。   Further, according to the arithmetic processing apparatus according to one aspect of the present invention, the module includes a plurality of scalar arithmetic units that perform scalar arithmetic, a plurality of vector arithmetic units that perform vector arithmetic, and a scalar register that stores scalar data. The power consumption control unit supplies a clock to the vector arithmetic unit and the vector register during execution of the vector instruction when the instruction type is a vector instruction. In addition, supply of a clock to the scalar arithmetic unit and the scalar register is stopped.

これにより、ベクトル命令に基づいて各モジュールのクロックゲーティングを行いながら、複数のベクトル演算器を並列に動作させることによりパイプライン処理を行わせることが可能となる。このため、複数の演算器のほか、それらの演算器が演算に利用するデータを格納するためのレジスタが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。   This makes it possible to perform pipeline processing by operating a plurality of vector computing units in parallel while performing clock gating of each module based on a vector instruction. For this reason, in addition to a plurality of arithmetic units, even when a register for storing data used for arithmetic operations by these arithmetic units is provided, the power consumption can be reduced while suppressing the burden on programming. Is possible.

また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記ベクトル命令に含まれるオペコードに基づいて、クロックを供給するベクトル演算器を選択することを特徴とする。
これにより、ベクトル命令に基づいて、どのモジュールが使用されるかを判断することが可能となる。このため、実行プログラムにNOP命令などを挿入することなく、対象となる今回のベクトル命令で使用されるモジュールにのみクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
Further, according to the arithmetic processing apparatus according to one aspect of the present invention, the power consumption control unit selects a vector arithmetic unit that supplies a clock based on an operation code included in the vector instruction.
This makes it possible to determine which module is used based on the vector instruction. For this reason, it is possible to supply a clock signal only to the module used in the current vector instruction without inserting a NOP instruction or the like in the execution program, and while reducing the burden on programming, power consumption Can be reduced.

また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記ベクトル命令に含まれる演算要素数に基づいて、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給するサイクル数を決定することを特徴とする。
これにより、ベクトル命令で指定された演算を行うために何サイクルかかるかを判断することが可能となる。このため、ベクトル命令を実行するために必要なサイクル数分だけ、対象となる今回のベクトル命令で使用されるモジュールのみにクロック信号を供給することを可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
Further, according to the arithmetic processing device according to one aspect of the present invention, the power consumption control unit is configured to supply a clock to the vector arithmetic unit and the vector register based on the number of arithmetic elements included in the vector instruction. It is characterized by determining the number.
This makes it possible to determine how many cycles it takes to perform the operation specified by the vector instruction. For this reason, it becomes possible to supply the clock signal only to the module used in the current vector instruction as a target for the number of cycles necessary to execute the vector instruction, while suppressing the burden on programming, It becomes possible to reduce power consumption.

また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、複数のベクトル命令の依存関係に基づいて、どのモジュールに何サイクル分だけクロックを供給するかを判断することを特徴とする。
これにより、複数のベクトル演算器を並列に動作させながら、ベクトル命令のパイプライン処理が行われる場合においても、それらのベクトル命令で使用されるモジュールのみにクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
Further, according to the arithmetic processing device according to one aspect of the present invention, the power consumption control unit determines which module is supplied with how many clocks based on a dependency relationship of a plurality of vector instructions. It is characterized by.
As a result, even when pipeline processing of vector instructions is performed while operating a plurality of vector arithmetic units in parallel, it is possible to supply a clock signal only to the modules used in those vector instructions. It is possible to reduce power consumption while suppressing the burden on the device.

また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記命令の種別がスカラー命令の場合、前記スカラー命令の実行期間中に、前記スカラー演算器および前記スカラーレジスタにクロックを供給するとともに、前記ベクトル演算器および前記ベクトルレジスタへのクロックの供給を停止することを特徴とする。
これにより、スカラー命令が入力された場合においても、スカラー命令で使用されるモジュールにのみクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
Further, according to the arithmetic processing device according to one aspect of the present invention, when the instruction type is a scalar instruction, the power consumption control unit includes the scalar arithmetic unit and the scalar register during an execution period of the scalar instruction. And a clock supply to the vector arithmetic unit and the vector register are stopped.
As a result, even when a scalar instruction is input, it is possible to supply a clock signal only to a module used in the scalar instruction, and it is possible to reduce power consumption while suppressing the burden on programming. Become.

また、本発明の一態様に係る演算処理装置によれば、前記消費電力制御部は、前記命令の種別がマルチサイクル命令の場合、前記マルチサイクル命令の実行期間中に、前記マルチサイクル命令の実行に使用されるモジュールにクロックを供給するとともに、前記マルチサイクル命令の実行に使用されないモジュールへのクロックの供給を停止することを特徴とする。   Further, according to the arithmetic processing device according to one aspect of the present invention, the power consumption control unit executes the multicycle instruction during the execution period of the multicycle instruction when the type of the instruction is a multicycle instruction. A clock is supplied to a module used for the above-described operation, and a clock supply to a module not used for execution of the multi-cycle instruction is stopped.

これにより、スカラー命令実行において1サイクルで演算が完了しない場合においても、マルチサイクル命令で使用されるモジュールのみにクロック信号を供給することが可能となり、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記モジュールの構成要素単位で設けられ、前記命令を実行するために必要な期間中に前記命令を実行するために必要な構成要素を選択して消費電力の制御を局所的に行なう局所電力制御部をさらに備えることを特徴とする。
This makes it possible to supply the clock signal only to the module used in the multi-cycle instruction even when the operation is not completed in one cycle in the execution of the scalar instruction, thereby reducing power consumption while suppressing the burden on programming. It becomes possible to reduce.
In addition, according to the arithmetic processing device according to an aspect of the present invention, the component necessary for executing the instruction during a period necessary for executing the instruction is provided for each component of the module. It further includes a local power control unit that selectively performs power consumption control.

これにより、今回の命令で使用されないモジュールをモジュール単位で停止させることが可能となるだけでなく、今回の命令で使用されるモジュールのうちの実際に使用される部分のみを構成要素ごとに動作させることができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記構成要素単位で挿入された第2クロックゲーティングマクロ回路が設けられ、前記局所電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要な構成要素に対応した第2クロックゲーティングマクロ回路に第2イネーブル信号を供給することにより、前記命令を実行するために必要な構成要素を選択することを特徴とする。
This makes it possible not only to stop modules that are not used in the current instruction in units of modules, but also to operate only the part that is actually used in the modules used in the current instruction for each component. Therefore, it is possible to further reduce power consumption while suppressing a burden on programming.
Further, according to the arithmetic processing device according to an aspect of the present invention, the second clock gating macro circuit inserted in units of the components is provided, and the local power control unit is necessary for executing the instruction A component necessary for executing the instruction is selected by supplying a second enable signal to a second clock gating macro circuit corresponding to the component necessary for executing the instruction during a period of time. It is characterized by that.

これにより、今回の命令で使用されるモジュールの構成要素に個別にクロック信号を供給することが可能となり、今回の命令で使用されるモジュールの消費電力をきめ細かく制御することを可能として、消費電力をより一層低減することが可能となる。
また、本発明の一態様に係る演算処理装置によれば、前記第1クロックゲーティングマクロ回路の後段に前記第2クロックゲーティングマクロ回路が接続され、前記モジュール単位で消費電力の制御を行ないながら、前記構成要素単位で消費電力の制御を行なうことを特徴とする。
As a result, it is possible to individually supply clock signals to the components of the module used in the current instruction, and it is possible to finely control the power consumption of the module used in the current instruction. This can be further reduced.
Also, according to the arithmetic processing device of one aspect of the present invention, the second clock gating macro circuit is connected to the subsequent stage of the first clock gating macro circuit, and the power consumption is controlled in units of the modules. The power consumption is controlled in units of the constituent elements.

これにより、今回の命令で使用されないモジュールへのクロック信号の供給を停止させることが可能となるだけでなく、今回の命令で使用されるモジュールのうちの実際に使用される構成要素にのみクロック信号を供給することができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。   As a result, it is possible not only to stop the supply of the clock signal to the module that is not used in the current instruction, but also to only the component that is actually used in the module used in the current instruction. It is possible to further reduce the power consumption while suppressing the burden on programming.

以下、本発明の実施形態に係る演算処理装置について図面を参照しながら説明する。なお、以下の実施形態では、図1のコンピュータシステムにおいて、複数の演算器を備える図2の並列演算処理プロセッサ100の各演算器を並列に動作させることによりパイプライン処理を行う場合を例にとって説明する。
図1は、本発明の一実施形態に係るコンピュータシステムの概略構成を示すブロック図である。
Hereinafter, an arithmetic processing apparatus according to an embodiment of the present invention will be described with reference to the drawings. In the following embodiment, an example in which pipeline processing is performed by operating each arithmetic unit of the parallel arithmetic processing processor 100 of FIG. 2 including a plurality of arithmetic units in parallel in the computer system of FIG. 1 will be described. To do.
FIG. 1 is a block diagram showing a schematic configuration of a computer system according to an embodiment of the present invention.

図1において、コンピュータシステムには、複数の演算器を備える並列演算処理プロセッサ100、所定領域にあらかじめ並列演算処理プロセッサ100の制御プログラム等を格納するメインメモリ110、データを入力可能なヒューマンインターフェースとしての入力部120、ディスプレイ等のデータを出力可能な出力部130、ネットワーク等を介して外部との通信を行う通信部140が設けられている。   In FIG. 1, the computer system includes a parallel processing processor 100 having a plurality of arithmetic units, a main memory 110 for storing a control program of the parallel processing processor 100 in a predetermined area in advance, and a human interface capable of inputting data. An input unit 120, an output unit 130 that can output data such as a display, and a communication unit 140 that communicates with the outside via a network or the like are provided.

ここで、メインメモリ110には、プログラムを格納するプログラム・テキスト領域111、定数などのデータを予め格納する初期化済みデータ領域112、定数などのデータを格納するための事前に確保された未初期化データ領域113、プログラム実行時に動的に確保されるヒープ領域114およびスタック領域115ならびにその他論理的に区分された記憶領域を有している。   Here, in the main memory 110, a program / text area 111 for storing a program, an initialized data area 112 for storing data such as constants in advance, and an uninitialized area reserved in advance for storing data such as constants Data area 113, heap area 114 and stack area 115 which are dynamically secured during program execution, and other logically partitioned storage areas.

そして、制御プログラムは、並列演算処理プロセッサ100が直接実行可能な低水準言語(例えば、機械語)で構成されており、高水準言語(例えば、C言語)により記述されたアセンブリソースコード200を、アセンブラ210およびリンカ220からなる命令コード生成系により低水準言語にコンパイルし、実行プログラム230として生成される。そして、生成された制御プログラムは、図示しないハードディスク等の補助記憶装置に格納されるが、並列演算処理プロセッサ100が実行するときは、プログラムローダ240によりメインメモリ110の記憶領域のうちプログラム・テキスト領域111に配置され、実行可能な状態に置かれる。なお、アセンブラ210、リンカ220およびプログラムローダ240は、一般にソフトウェアにより構成することができる。   The control program is composed of a low-level language (for example, machine language) that can be directly executed by the parallel processing processor 100, and the assembly source code 200 described in a high-level language (for example, C language) The program is compiled into a low-level language by an instruction code generation system including the assembler 210 and the linker 220 and generated as an execution program 230. The generated control program is stored in an auxiliary storage device such as a hard disk (not shown). When the parallel processing processor 100 executes the program, the program loader 240 causes the program / text area of the storage area of the main memory 110 to be executed. 111 is placed in an executable state. The assembler 210, linker 220, and program loader 240 can generally be configured by software.

図2は、図1の並列演算処理プロセッサ100の概略構成を示すブロック図である。
図2において、並列演算処理プロセッサ100には、メインメモリ110に対してアクセスを行うアクセス部100a、アクセス部100aを介して読み出した命令コードに基づいて並列演算処理を行う演算処理部100bおよび演算処理部100bの電力制御を行う電力制御部100cが設けられている。
FIG. 2 is a block diagram showing a schematic configuration of the parallel processing processor 100 of FIG.
In FIG. 2, the parallel processing processor 100 includes an access unit 100 a that accesses the main memory 110, an arithmetic processing unit 100 b that performs parallel processing based on an instruction code read through the access unit 100 a, and an arithmetic processing. A power control unit 100c that performs power control of the unit 100b is provided.

そして、アクセス部100aは、汎用外部バス111を介してメインメモリ110にアクセスするメモリアクセス部1と、演算処理部100b自体が使用可能なローカルメモリ2と、ローカルメモリ2とメインメモリ110との間でデータ転送を行うDMA3と、データキャッシュを行うデータキャッシュメモリ4と、プログラムキャッシュを行うプログラムキャッシュメモリ5と、演算処理部100bおよびその他のモジュールが共用して使用可能な共有メモリ6とを備えている。ここで、ローカルメモリ2、キャッシュメモリ4、5および共有メモリ6は、その一端がメモリアクセス部1に接続され、DMA3、キャッシュメモリ4、5および共有メモリ6は、その他端が汎用外部バス111に接続されている。   The access unit 100 a includes a memory access unit 1 that accesses the main memory 110 via the general-purpose external bus 111, a local memory 2 that can be used by the arithmetic processing unit 100 b itself, and a local memory 2 and the main memory 110. DMA 3 for performing data transfer, data cache memory 4 for performing data cache, program cache memory 5 for performing program cache, and shared memory 6 that can be shared and used by the arithmetic processing unit 100b and other modules. Yes. Here, one end of the local memory 2, the cache memory 4, 5 and the shared memory 6 is connected to the memory access unit 1, and the other end of the DMA 3, the cache memory 4, 5 and the shared memory 6 is connected to the general-purpose external bus 111. It is connected.

そして、メモリアクセス部1は、メインメモリ110、ローカルメモリ2、キャッシュメモリ4、5または共有メモリ6から命令コードまたはデータを読み出せないときは、メモリストール信号を出力することができる。
演算処理部100bは、スカラー演算を行う複数のスカラー演算器10a、10bと、ベクトル演算を行う複数のベクトル演算器10c、10dと、スカラー演算器10a、10bがスカラー演算に利用するスカラーレジスタ20aと、ベクトル演算器10c、10dがベクトル演算に利用するベクトルレジスタ20bと、メモリアクセス部1を介してメインメモリ110およびプログラムキャッシュ5から命令を読み出すフェッチ部30と、フェッチ部30で読み出した命令の内容を解読するデコード部40とを備えている。なお、フェッチ部30で読み出される命令は、スカラー命令、ベクトル命令またはマルチサイクル命令のいずれでもよい。
The memory access unit 1 can output a memory stall signal when the instruction code or data cannot be read from the main memory 110, the local memory 2, the cache memory 4, 5 or the shared memory 6.
The arithmetic processing unit 100b includes a plurality of scalar calculators 10a and 10b that perform scalar calculations, a plurality of vector calculators 10c and 10d that perform vector calculations, and a scalar register 20a that the scalar calculators 10a and 10b use for scalar calculations. , A vector register 20b used by the vector computing units 10c and 10d for vector computation, a fetch unit 30 for reading an instruction from the main memory 110 and the program cache 5 via the memory access unit 1, and contents of the instruction read by the fetch unit 30 And a decoding unit 40 for decoding. Note that the instruction read by the fetch unit 30 may be a scalar instruction, a vector instruction, or a multi-cycle instruction.

電力制御部100cは、デコード部40からの命令デコード情報に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの動作状態を管理する複数サイクル命令管理部50と、時間の計時を行うタイマ60と、タイマ60またはDMA3からの割込信号に応じて割込制御を行う割込制御部65と、複数サイクル命令管理部50から出力される電力制御、割込制御部65からの起動信号およびメモリアクセス部1からのメモリストール信号に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を行う動作状態管理部70と、動作状態管理部70の制御に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給するクロックを調整するクロック制御部80と、動作状態管理部70の制御に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、演算器10a〜10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する電圧および電力を調整する電源制御部85とを備えている。   The power control unit 100c is a multi-cycle instruction management unit that manages the operation states of the scalar computing units 10a and 10b, the vector computing units 10c and 10d, the scalar register 20a, and the vector register 20b based on the instruction decode information from the decoding unit 50, a timer 60 that measures time, an interrupt control unit 65 that performs interrupt control according to an interrupt signal from the timer 60 or the DMA 3, and a power control and interrupt that are output from the multi-cycle instruction management unit 50 Based on the start signal from the memory control unit 65 and the memory stall signal from the memory access unit 1, control is performed regarding the power consumption of the scalar computing units 10a and 10b, the vector computing units 10c and 10d, the scalar register 20a, and the vector register 20b. Based on the operation state management unit 70 and the control of the operation state management unit 70 The scalar arithmetic units 10a and 10b, the vector arithmetic units 10c and 10d, the clock control unit 80 for adjusting the clock supplied to the scalar register 20a and the vector register 20b, and the scalar arithmetic unit based on the control of the operation state management unit 70 10a, 10b, vector computing units 10c, 10d, computing units 10a-10d, a scalar register 20a, and a power supply control unit 85 for adjusting the voltage and power supplied to the vector register 20b.

図3は、図2のスカラーレジスタ20aおよびベクトルレジスタ20bの概略構成を示すブロック図である。
図3において、スカラーレジスタ20aには、例えば、32ビット分のデータをそれぞれ記憶する記憶領域SR0〜SR15を16本だけ設けることができる。また、例えば、ベクトルの要素数が8であるとすると、32ビット分のデータをそれぞれ記憶する8個の記憶領域VR0[0]〜VR0[7]で1本分のベクトルレジスタを構成することができる。そして、ベクトルレジスタ20bには、例えば、32ビット分のデータをそれぞれ記憶する64個の記憶領域VR0[0]〜VR0[7]、VR1[0]〜VR1[7]、VR2[0]〜VR2[7]、VR3[0]〜VR3[7]、VR4[0]〜VR4[7]、VR5[0]〜VR5[7]、VR6[0]〜VR6[7]、VR7[0]〜VR7[7]を設けることで、8本分のベクトルレジスタを設けることができる。
FIG. 3 is a block diagram showing a schematic configuration of the scalar register 20a and vector register 20b of FIG.
In FIG. 3, the scalar register 20a can be provided with only 16 storage areas SR0 to SR15 for storing 32-bit data, for example. For example, assuming that the number of elements of a vector is 8, one vector register can be configured by eight storage areas VR0 [0] to VR0 [7] each storing 32-bit data. it can. In the vector register 20b, for example, 64 storage areas VR0 [0] to VR0 [7], VR1 [0] to VR1 [7], and VR2 [0] to VR2 for storing 32-bit data, respectively. [7], VR3 [0] to VR3 [7], VR4 [0] to VR4 [7], VR5 [0] to VR5 [7], VR6 [0] to VR6 [7], VR7 [0] to VR7 By providing [7], eight vector registers can be provided.

図4は、ベクトル命令のデータ構造を示す図である。
図4において、ベクトル命令には、乗算や加算などの命令の種類を定義するオペコードopecodeおよびベクトル演算の実行回数を定義するリピートアマウントrptamtが設けられている。また、ベクトル命令では、書き込み先のディスティネーションレジスタdstおよび読み出し先のソースレジスタsrc1、src2を指定することができる。このため、図2のデコード部40にてベクトル命令を解読することで、どのレジスタを使用しながら、どのような演算が何回行われるかを判別することができる。
FIG. 4 is a diagram illustrating the data structure of a vector instruction.
In FIG. 4, the vector instruction is provided with an opcode opecode that defines the type of instruction such as multiplication and addition, and a repeat amount rptamt that defines the number of executions of the vector operation. In the vector instruction, the destination register dst to be written and the source registers src1 and src2 to be read can be designated. Therefore, by decoding the vector instruction in the decoding unit 40 of FIG. 2, it is possible to determine what operation is performed and how many times while using which register.

また、図4のデータ構造において、リピートアマウントrptamを0にした場合、同じデータ構造を用いてスカラー命令、マルチサイクル命令を格納することができる。
図5は、図2の並列演算処理プロセッサ100のベクトル乗算処理を示す図である。
図5において、ベクトル命令において、例えば、オペコードopecodeにて乗算が指定され、リピートアマウントrptamで8が指定され、ディスティネーションレジスタdstとして図3のベクトルレジスタVR0が指定され、ソースレジスタsrc1、src2として図3のベクトルレジスタVR1、VR2がそれぞれ指定されていたものとする。この場合、ベクトル演算器10c、10dの中から乗算器A1が選択され、ベクトルレジスタVR1に格納されている要素a0〜a7およびベクトルレジスタVR2に格納されている要素x0〜x7が乗算器A1に順次送られる。そして、乗算器A1にて各要素ごとに乗算が行われた後、その乗算結果がベクトルレジスタVR0に格納される。
Also, in the data structure of FIG. 4, when the repeat amount rptam is set to 0, scalar instructions and multi-cycle instructions can be stored using the same data structure.
FIG. 5 is a diagram showing vector multiplication processing of the parallel processing processor 100 of FIG.
In FIG. 5, in the vector instruction, for example, multiplication is specified by the operation code opecode, 8 is specified by the repeat amount rptam, the vector register VR0 of FIG. 3 is specified as the destination register dst, and the source registers src1, src2 are shown. 3 vector registers VR1 and VR2 are respectively designated. In this case, the multiplier A1 is selected from the vector calculators 10c and 10d, and the elements a0 to a7 stored in the vector register VR1 and the elements x0 to x7 stored in the vector register VR2 are sequentially supplied to the multiplier A1. Sent. Then, after multiplication is performed for each element by the multiplier A1, the multiplication result is stored in the vector register VR0.

ここで、図2の並列演算処理プロセッサ100では、メインメモリ110に格納されている命令がフェッチ部30にて読み出される。そして、この読み出された命令の内容がデコード部40にて解読され、フェッチ部30で読み出された命令の種別および命令の形態が判別される。そして、複数サイクル命令管理部50は、デコード部40から出力された命令デコード情報に基づいて、どのモジュールが使用されるかを命令ごとに判断し、そのモジュールの電力を制御する電力制御信号を動作状態管理部70に出力する。そして、動作状態管理部70は、複数サイクル命令管理部50から出力された電力制御信号に基づいて、今回の命令で使用されるモジュールに対応したイネーブル信号EN_0〜EN_nを生成することができる。そして、クロック制御部80は、このイネーブル信号EN_0〜EN_nに基づいてクロックゲーティングを行うことにより、今回の命令で使用されるモジュールにクロック信号clkN_0〜clk_nを供給することができる。   Here, in the parallel processing processor 100 of FIG. 2, an instruction stored in the main memory 110 is read by the fetch unit 30. Then, the contents of the read instruction are decoded by the decoding unit 40, and the type and instruction form of the instruction read by the fetch unit 30 are determined. Then, the multi-cycle instruction management unit 50 determines which module is used for each instruction based on the instruction decode information output from the decoding unit 40, and operates a power control signal for controlling the power of the module. The data is output to the state management unit 70. The operation state management unit 70 can generate the enable signals EN_0 to EN_n corresponding to the module used in the current instruction based on the power control signal output from the multi-cycle instruction management unit 50. The clock control unit 80 can supply the clock signals clkN_0 to clk_n to the module used in the current instruction by performing clock gating based on the enable signals EN_0 to EN_n.

例えば、フェッチ部30で読み出された命令がスカラー命令である場合、スカラーレジスタ20aにクロック信号clkN_0〜clk_nを供給するとともに、ベクトルレジスタ20bへのクロック信号clkN_0〜clk_nの供給を停止することができる。さらに、スカラー演算器10a、10bにクロック信号clkN_0〜clk_nを供給するとともに、ベクトル演算器10c、10dへのクロック信号clkN_0〜clk_nの供給を停止することができる。   For example, when the instruction read by the fetch unit 30 is a scalar instruction, the clock signal clkN_0 to clk_n can be supplied to the scalar register 20a and the supply of the clock signals clkN_0 to clk_n to the vector register 20b can be stopped. . Furthermore, the clock signals clkN_0 to clk_n can be supplied to the scalar calculators 10a and 10b, and the supply of the clock signals clkN_0 to clk_n to the vector calculators 10c and 10d can be stopped.

また、フェッチ部30で読み出された命令がベクトル命令である場合、図4のリピートアマウントrptamで指定されるベクトル演算の回数分だけ、ベクトルレジスタ20bにクロック信号clkN_0〜clk_nを供給するとともに、スカラーレジスタ20aへのクロック信号clkN_0〜clk_nの供給を停止することができる。さらに、図4のリピートアマウントrptamで指定されるベクトル演算の回数分だけ、オペコードopecodeで指定される演算を行うベクトル演算器10c、10dにクロック信号clkN_0〜clk_nを供給するとともに、スカラー演算器10a、10bへのクロック信号clkN_0〜clk_nの供給を停止することができる。   When the instruction read by the fetch unit 30 is a vector instruction, the clock signals clkN_0 to clk_n are supplied to the vector register 20b by the number of times of vector operation specified by the repeat amount rptam in FIG. The supply of the clock signals clkN_0 to clk_n to the register 20a can be stopped. Further, the clock signals clkN_0 to clk_n are supplied to the vector calculators 10c and 10d for performing the calculation specified by the opcode opecode for the number of times of the vector calculation specified by the repeat amount rptam in FIG. 4, and the scalar calculator 10a, The supply of the clock signals clkN_0 to clk_n to 10b can be stopped.

また、フェッチ部30で読み出された命令がマルチサイクル命令である場合、1命令分の実行にかかる複数サイクルの間だけ、スカラーレジスタ20aおよびスカラー演算器10a、10bにクロック信号clkN_0〜clk_nを供給するとともに、ベクトル演算器10c、10dおよびベクトルレジスタ20bへのクロック信号clkN_0〜clk_nの供給を停止することができる。   When the instruction read out by the fetch unit 30 is a multi-cycle instruction, the clock signals clkN_0 to clk_n are supplied to the scalar register 20a and the scalar calculators 10a and 10b only during a plurality of cycles for execution of one instruction. In addition, the supply of the clock signals clkN_0 to clk_n to the vector calculators 10c and 10d and the vector register 20b can be stopped.

これにより、対象となる今回の命令で使用されるモジュールにのみクロック信号clkN_0〜clk_nを供給することが可能となるとともに、対象となる今回の命令で使用されないモジュールにはクロック信号clkN_0〜clk_nの供給を停止することが可能となる。このため、モジュールに演算処理を行わせるための命令を与えることにより、対象となる今回の命令で使用されないモジュールを停止させることが可能となり、対象となる今回の命令で使用されない他のモジュールを特定するために、図1の実行プログラム230にNOP命令などを挿入する必要がなくなることから、種類の異なる複数のモジュールが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。   As a result, it is possible to supply the clock signals clkN_0 to clk_n only to the modules used in the current instruction, and supply the clock signals clkN_0 to clk_n to the modules not used in the current instruction. Can be stopped. For this reason, it is possible to stop a module that is not used in the current target instruction by giving an instruction to cause the module to perform arithmetic processing, and specify other modules that are not used in the current target instruction. Therefore, since it is not necessary to insert a NOP instruction or the like into the execution program 230 of FIG. 1, even when a plurality of different types of modules are provided, it is possible to reduce power consumption while suppressing the burden on programming. It becomes possible to reduce.

また、複数サイクル命令管理部50を介してクロック信号clkN_0〜clk_nの供給を各命令ごとにモジュール単位で制御する方法の他、デコード部40から出力される実行ユニット制御信号に基づいて、各モジュールの構成要素ごとに局所的にクロックゲーティングを行うことにより、各モジュールの構成要素に対するクロック信号の供給を制御することができる。   In addition to a method of controlling the supply of the clock signals clkN_0 to clk_n in units of modules for each instruction via the multi-cycle instruction management unit 50, each module is controlled based on an execution unit control signal output from the decoding unit 40. By performing clock gating locally for each component, supply of a clock signal to the component of each module can be controlled.

例えば、図4のベクトル命令において、ディスティネーションレジスタdstとして図3のベクトルレジスタVR0が指定され、ソースレジスタsrc1、src2として図3のベクトルレジスタVR1、VR2がそれぞれ指定されているものとする。この場合、このベクトル命令を実行する時に、図3の8本分のベクトルレジスタVR0〜VR7のうち、ベクトルレジスタVR0〜VR2にクロック信号を供給するとともに、ベクトルレジスタVR3〜VR7へのクロック信号の供給を停止することができる。   For example, in the vector instruction of FIG. 4, the vector register VR0 of FIG. 3 is designated as the destination register dst, and the vector registers VR1 and VR2 of FIG. 3 are designated as the source registers src1 and src2, respectively. In this case, when this vector instruction is executed, a clock signal is supplied to the vector registers VR0 to VR2 among the eight vector registers VR0 to VR7 in FIG. 3, and a clock signal is supplied to the vector registers VR3 to VR7. Can be stopped.

これにより、ベクトル命令を与えることで、今回の命令で使用されないモジュールをモジュール単位で停止させることが可能となるだけでなく、今回の命令で使用されるモジュールのうちの実際に使用される部分のみを構成要素ごとに動作させることができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
ここで、並列演算処理プロセッサ100には、複数のベクトル演算器10c、10dが設けられ、ベクトル命令に基づいてパイプライン処理を行う場合、各サイクルごとに発行されるベクトル命令で指定される演算を複数のベクトル演算器10c、10dで並列に処理させることができる。
As a result, by giving a vector instruction, it is possible not only to stop modules that are not used in the current instruction in units of modules, but also only the part that is actually used in the modules used in the current instruction. Can be operated for each component, and the power consumption can be further reduced while suppressing the burden on programming.
Here, the parallel processing processor 100 is provided with a plurality of vector computing units 10c and 10d, and when performing pipeline processing based on vector instructions, the computation specified by the vector instructions issued every cycle is executed. A plurality of vector computing units 10c and 10d can be processed in parallel.

図6は、図2の並列演算処理プロセッサ100のパイプライン処理を示すブロック図である。
図6において、メインメモリ110に格納されているプログラムは、例えば、プログラムキャッシュメモリ5を介してフェッチ部30に取り込むことができる。そして、サイクルC1において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.1がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.1がフェッチ部30に取り込まれると、サイクルC2において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.1の解読が行われる。そして、ベクトル命令Ins.1を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.1では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。
FIG. 6 is a block diagram showing pipeline processing of the parallel processing processor 100 of FIG.
In FIG. 6, the program stored in the main memory 110 can be taken into the fetch unit 30 via the program cache memory 5, for example. In cycle C1, instruction fetch IF is performed by fetch unit 30, and vector instruction Ins. 1 is taken into the fetch unit 30. The vector instruction Ins. 1 is fetched by the fetch unit 30, the decode RD is performed by the decode unit 40 in the cycle C2, and the vector instruction Ins. 1 is deciphered. The vector instruction Ins. 1 is extracted, and the opcode opecode and repeat amount rptamt are extracted, and the vector instruction Ins. 1, it is possible to determine how many vector operations are performed using which vector operation units 10c and 10d.

ここで、ベクトル命令Ins.1のリピートアマウントrptamtに4が設定されているものとすると、サイクルC3において、ベクトル命令Ins.1の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC4において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC4において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC5において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC5において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC6において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC6において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。   Here, the vector instruction Ins. Assuming that 4 is set in the repeat amount rptamt of 1, the vector instruction Ins. Execution EXE corresponding to the first vector operation of 1 can be performed, and storage MEM of the execution result can be stored in the vector register 20b in cycle C4. Further, in the cycle C4, the execution EXE corresponding to the second vector operation is performed, and in the cycle C5, the execution result is stored in the vector register 20b. Further, in the cycle C5, the execution EXE corresponding to the third vector operation can be performed, and in the cycle C6, the execution result can be stored in the vector register 20b. Furthermore, in the cycle C6, the execution EXE corresponding to the fourth vector operation is performed, and in the cycle C7, the execution result is stored in the vector register 20b.

また、サイクルC2において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.2がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.2がフェッチ部30に取り込まれると、サイクルC3において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.2の解読が行われる。そして、ベクトル命令Ins.2を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.2では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。   In cycle C2, instruction fetch IF is performed by fetch unit 30, and vector instruction Ins. 2 is fetched into the fetch unit 30. The vector instruction Ins. 2 is fetched by the fetch unit 30, the decode RD is performed by the decode unit 40 in the cycle C3, and the vector instruction Ins. 2 is deciphered. The vector instruction Ins. 2 is extracted, the opcode opecode and the repeat amount rptamt are extracted, and the vector instruction Ins. 2, it is possible to determine how many vector operations are performed using which vector calculators 10 c and 10 d.

ここで、ベクトル命令Ins.2のリピートアマウントrptamtに4が設定されているものとすると、サイクルC4において、ベクトル命令Ins.2の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC5において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC5において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC6において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC6において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC7において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC8において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。   Here, the vector instruction Ins. Assuming that the repeat amount rptamt of 2 is set to 4, in cycle C4, the vector instruction Ins. The execution EXE corresponding to the first vector operation of 2 can be performed, and the execution result can be stored in the vector register 20b in the cycle C5. Furthermore, in the cycle C5, the execution EXE corresponding to the second vector operation is performed, and in the cycle C6, the execution result is stored in the vector register 20b. Further, in the cycle C6, the execution EXE corresponding to the third vector operation is performed, and in the cycle C7, the execution result is stored in the vector register 20b. Further, in the cycle C7, the execution EXE corresponding to the fourth vector operation is performed, and in the cycle C8, the execution result is stored in the vector register 20b.

また、サイクルC3において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.3がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.3がフェッチ部30に取り込まれると、サイクルC4において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.3の解読が行われる。そして、ベクトル命令Ins.3を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.3では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。   In cycle C3, an instruction fetch IF is performed by the fetch unit 30, and the vector instruction Ins. 3 is fetched into the fetch unit 30. The vector instruction Ins. 3 is fetched by the fetch unit 30, the decode RD is performed by the decode unit 40 in cycle C4, and the vector instruction Ins. Decoding of 3 is performed. The vector instruction Ins. 3 is extracted, the opcode opecode and the repeat amount rptamt are extracted, and the vector instruction Ins. 3, it is possible to determine how many vector operations are performed using which vector computing units 10 c and 10 d.

ここで、ベクトル命令Ins.3のリピートアマウントrptamtに4が設定されているものとすると、サイクルC5において、ベクトル命令Ins.3の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC6において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC6において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC7において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC8において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC8において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC9において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。   Here, the vector instruction Ins. Assuming that 4 is set in the repeat amount rptamt of 3, the vector instruction Ins. The execution EXE corresponding to the first vector operation of No. 3 is performed, and the execution result storage MEM can be performed in the vector register 20b in the cycle C6. Furthermore, in the cycle C6, the execution EXE corresponding to the second vector operation is performed, and in the cycle C7, the execution result is stored in the vector register 20b. Further, in the cycle C7, the execution EXE corresponding to the third vector operation is performed, and in the cycle C8, the execution result is stored in the vector register 20b. Furthermore, in the cycle C8, the execution EXE corresponding to the fourth vector operation can be performed, and in the cycle C9, the execution result can be stored in the vector register 20b.

また、サイクルC4において、インストラクションフェッチIFがフェッチ部30にて行われ、ベクトル命令Ins.4がフェッチ部30に取り込まれる。そして、ベクトル命令Ins.4がフェッチ部30に取り込まれると、サイクルC5において、デコードRDがデコード部40にて行われ、ベクトル命令Ins.4の解読が行われる。そして、ベクトル命令Ins.4を解読することにより、オペコードopecodeおよびリピートアマウントrptamtを抽出し、そのベクトル命令Ins.4では、どのベクトル演算器10c、10dを用いて何回分のベクトル演算が行われるかを判別することができる。   In cycle C4, an instruction fetch IF is performed by the fetch unit 30, and the vector instruction Ins. 4 is taken into the fetch unit 30. The vector instruction Ins. 4 is fetched by the fetch unit 30, the decode RD is performed by the decode unit 40 in cycle C5, and the vector instruction Ins. 4 is decoded. The vector instruction Ins. 4 is extracted, the opcode opecode and the repeat amount rptamt are extracted, and the vector instruction Ins. 4, it is possible to determine how many vector operations are performed using which vector calculators 10 c and 10 d.

ここで、ベクトル命令Ins.4のリピートアマウントrptamtに4が設定されているものとすると、サイクルC6において、ベクトル命令Ins.4の1回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC7において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC7において、2回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC8において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC8において、3回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC9おいて、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。さらに、サイクルC9において、4回目のベクトル演算に対応した実行EXEを行うとともに、サイクルC10において、その実行結果の記憶MEMをベクトルレジスタ20bに行うことができる。   Here, the vector instruction Ins. Assuming that the repeat amount rptamt of 4 is set to 4, the vector instruction Ins. The execution EXE corresponding to the first vector operation of No. 4 can be performed, and in the cycle C7, the execution result can be stored in the vector register 20b. Further, in the cycle C7, the execution EXE corresponding to the second vector operation is performed, and in the cycle C8, the execution result is stored in the vector register 20b. Further, in the cycle C8, the execution EXE corresponding to the third vector operation is performed, and in the cycle C9, the execution result is stored in the vector register 20b. Further, in the cycle C9, the execution EXE corresponding to the fourth vector operation can be performed, and in the cycle C10, the execution result can be stored in the vector register 20b.

ここで、ベクトル命令Ins.1〜Ins.4に対応した実行EXEを複数のベクトル演算器10c、10dにて並列処理させることにより、例えば、サイクルC6において、ベクトル命令Ins.1〜Ins.4にそれぞれ対応した実行EXEを同時に行わせることができる。
また、デコード部40にてベクトル命令Ins.1〜Ins.4の解読が行われると、それらのベクトル命令Ins.1〜Ins.4にそれぞれ対応したオペコードopecodeおよびリピートアマウントrptamtを含む命令デコード情報が、複数サイクル命令管理部50に送られる。そして、複数サイクル命令管理部50は、命令デコード情報に基づいて、これらのベクトル命令Ins.1〜Ins.4の依存関係を判断し、これらのベクトル命令Ins.1〜Ins.4を実行するために、何サイクル分の時間がかかるかを判定することができる。
Here, the vector instruction Ins. 1-Ins. 4 is executed in parallel by the plurality of vector computing units 10c and 10d, for example, in cycle C6, the vector instruction Ins. 1-Ins. 4 can be executed simultaneously.
Further, the decode unit 40 executes the vector instruction Ins. 1-Ins. 4 are decoded, their vector instructions Ins. 1-Ins. Instruction decode information including an opcode opecode and repeat amount rptamt corresponding to 4 is sent to the multi-cycle instruction management unit 50. Then, the multi-cycle instruction management unit 50 determines these vector instructions Ins. 1-Ins. 4 dependencies are determined, and these vector instructions Ins. 1-Ins. It can be determined how many cycles it takes to execute 4.

そして、これらのベクトル命令Ins.1〜Ins.4を実行するために、例えば、10サイクル分の時間がかかるものとすると、これらのベクトル命令Ins.1〜Ins.4を実行させるために必要なベクトル演算器10c、10dおよびベクトルレジスタ20bの電力を10サイクル分だけ制御する電力制御信号を出力することができる。
そして、ベクトル演算器10c、10dおよびベクトルレジスタ20bの電力を制御する電力制御信号が出力されると、動作状態管理部70は、この電力制御信号に基づいて、ベクトル命令Ins.1〜Ins.4で使用されるモジュールに対応したイネーブル信号EN_0〜EN_nを生成することができる。そして、クロック制御部80は、このイネーブル信号EN_0〜EN_nに基づいてクロックゲーティングを行うことにより、ベクトル命令Ins.1〜Ins.4で使用されるクロック信号clkN_0〜clk_nをベクトル演算器10c、10dおよびベクトルレジスタ20bに供給することができる。
These vector instructions Ins. 1-Ins. 4 is executed, for example, if it takes time for 10 cycles, these vector instructions Ins. 1-Ins. 4 can output a power control signal for controlling the power of the vector arithmetic units 10c and 10d and the vector register 20b required for executing the step 4 by 10 cycles.
Then, when a power control signal for controlling the power of the vector computing units 10c and 10d and the vector register 20b is output, the operation state management unit 70 performs vector instruction Ins. 1-Ins. Enable signals EN_0 to EN_n corresponding to the modules used in 4 can be generated. Then, the clock control unit 80 performs the clock gating based on the enable signals EN_0 to EN_n, so that the vector instruction Ins. 1-Ins. The clock signals clkN_0 to clk_n used in 4 can be supplied to the vector calculators 10c and 10d and the vector register 20b.

これにより、ベクトル命令Ins.1〜Ins.4に基づいて、ベクトル演算器10c、10dおよびベクトルレジスタ20bの消費電力に関する制御を行うことができる。このため、ベクトル命令Ins.1〜Ins.4にて演算が行われないスカラー演算器10a、10bおよびスカラーレジスタ20aに対してNOP等の命令コードが与えられなくても、そのスカラー演算器10a、10bおよびスカラーレジスタ20aの動作を停止させることができ、プログラミングにかかる負担増を伴うことなく、並列演算処理プロセッサ100の消費電力を低減させることができる。   As a result, the vector instruction Ins. 1-Ins. 4, it is possible to control the power consumption of the vector calculators 10 c and 10 d and the vector register 20 b. For this reason, the vector instruction Ins. 1-Ins. The operation of the scalar computing units 10a, 10b and the scalar register 20a is stopped even if an instruction code such as NOP is not given to the scalar computing units 10a, 10b and the scalar register 20a that are not operated in step 4. Thus, the power consumption of the parallel processing processor 100 can be reduced without increasing the burden on programming.

図7は、図2のクロック制御部80の概略構成を示すブロック図である。
図7において、クロック制御部80は、モジュールM0〜Mnにそれぞれ対応したクロックゲーティングマクロ回路CG1〜CGnが設けられている。なお、各モジュールM0〜Mnは、図2のフェッチ部30、デコード部40、ベクトル演算器10c、10d、スカラー演算器10a、10b、スカラーレジスタ20aおよびベクトルレジスタ20bなどにそれぞれ対応させることができる。そして、各クロックゲーティングマクロ回路CG1〜CGnには、ルートバッファRB1を介してクロック信号CLKが共通に入力されるとともに、動作状態管理部70にて生成されたイネーブル信号EN_0〜EN_nがそれぞれ入力される。そして、クロックゲーティングマクロ回路CG1〜CGnは、イネーブル信号EN_0〜EN_nがハイレベルになると、ゲートクロック信号GateCLK_0〜GateCLK_nを各モジュールM0〜Mnに供給するとともに、イネーブル信号EN_0〜EN_nがロウレベルになると、各モジュールM0〜Mnへのゲートクロック信号GateCLK_0〜GateCLK_nの供給を停止することができる。
FIG. 7 is a block diagram showing a schematic configuration of the clock control unit 80 of FIG.
In FIG. 7, the clock controller 80 is provided with clock gating macro circuits CG1 to CGn corresponding to the modules M0 to Mn, respectively. Each of the modules M0 to Mn can correspond to the fetch unit 30, the decode unit 40, the vector calculators 10c and 10d, the scalar calculators 10a and 10b, the scalar register 20a, the vector register 20b, and the like in FIG. The clock signals CLK are commonly input to the clock gating macro circuits CG1 to CGn via the route buffer RB1, and the enable signals EN_0 to EN_n generated by the operation state management unit 70 are respectively input. The Then, the clock gating macro circuits CG1 to CGn supply the gate clock signals GateCLK_0 to GateCLK_n to the modules M0 to Mn when the enable signals EN_0 to EN_n become high level, and when the enable signals EN_0 to EN_n become low level. The supply of the gate clock signals GateCLK_0 to GateCLK_n to the modules M0 to Mn can be stopped.

これにより、クロックゲーティングを行うことで、今回の命令で使用されるモジュールM0〜Mnのみにクロック信号clkN_0〜clk_nを供給することが可能となり、種類の異なる複数のモジュールM0〜Mnが設けられている場合においても、プログラミングにかかる負担を抑制しつつ、消費電力を低減することが可能となる。
図8(a)は、図7のクロックゲーティングマクロ回路CG1〜CGnの概略構成を示すブロック図、図8(b)は、図7のクロックゲーティングマクロ回路CG1〜CGnの動作を示すタイミングチャートである。
Thus, by performing clock gating, it becomes possible to supply the clock signals clkN_0 to clk_n only to the modules M0 to Mn used in the current instruction, and a plurality of different types of modules M0 to Mn are provided. Even in such a case, it is possible to reduce power consumption while suppressing a burden on programming.
FIG. 8A is a block diagram showing a schematic configuration of the clock gating macro circuits CG1 to CGn in FIG. 7, and FIG. 8B is a timing chart showing the operation of the clock gating macro circuits CG1 to CGn in FIG. It is.

図8(a)において、クロックゲーティングマクロ回路CG1〜CGnには、ラッチ回路82およびアンド回路83が設けられるとともに、アンド回路83の出力はDフリップフロップ84のクロック入力端子に接続されている。そして、図8(b)に示すように、ラッチ回路82に入力されるクロック信号CLKに同期して、動作状態管理部70にて生成されたイネーブル信号ENがラッチ回路82にてラッチされる。そして、ラッチ回路82にてラッチされたイネーブル信号ENはアンド回路83に出力され、クロック信号CLKとの論理積をとることにより、ゲートクロック信号G_CLKがDフリップフロップ84のクロック入力端子に出力される。そして、ゲートクロック信号G_CLKがDフリップフロップ84のクロック入力端子に入力されると、Dフリップフロップ84は、Dフリップフロップ84のD端子に入力されるデータDATAを取り込み、D_OUTとして出力することができる。このため、クロックゲーティングマクロ回路CG1〜CGnは、イネーブル信号ENがアクティブになったときに、Dフリップフロップ84に入力されるデータDATAを取り込ませ、D_OUTとして出力させることができる。   8A, the clock gating macro circuits CG1 to CGn are provided with a latch circuit 82 and an AND circuit 83, and an output of the AND circuit 83 is connected to a clock input terminal of a D flip-flop 84. 8B, the enable signal EN generated by the operation state management unit 70 is latched by the latch circuit 82 in synchronization with the clock signal CLK input to the latch circuit 82. Then, the enable signal EN latched by the latch circuit 82 is output to the AND circuit 83, and the gate clock signal G_CLK is output to the clock input terminal of the D flip-flop 84 by taking a logical product with the clock signal CLK. . When the gate clock signal G_CLK is input to the clock input terminal of the D flip-flop 84, the D flip-flop 84 can take in the data DATA input to the D terminal of the D flip-flop 84 and output it as D_OUT. . Therefore, the clock gating macro circuits CG1 to CGn can take in the data DATA input to the D flip-flop 84 and output it as D_OUT when the enable signal EN becomes active.

図9は、図2の複数サイクル命令管理部50の概略構成を示すブロック図である。
図9において、複数サイクル命令管理部50には、デコード部40から送られた命令デコード情報に基づいて、今回の命令で使用されるモジュールM0〜Mnを判定する使用モジュール判定部51、今回の命令で使用されるモジュールM0〜Mnの動作を制御する制御信号を生成するモジュール制御用ステートマシン52a〜52n、モジュール制御用ステートマシン52a〜52nから出力された制御信号に基づいて、モジュールM0〜Mnの消費電力を制御する電力制御信号を生成する電力制御信号発生部53が設けられている。
FIG. 9 is a block diagram showing a schematic configuration of the multi-cycle instruction management unit 50 of FIG.
In FIG. 9, a multi-cycle instruction management unit 50 includes a use module determination unit 51 that determines the modules M0 to Mn used in the current instruction based on the instruction decode information sent from the decode unit 40, and the current instruction. Module control state machines 52a to 52n that generate control signals for controlling the operations of the modules M0 to Mn used in the module, and based on the control signals output from the module control state machines 52a to 52n, A power control signal generation unit 53 that generates a power control signal for controlling power consumption is provided.

ここで、使用モジュール判定部51には、デコード完了信号とともに、デコードが完了した命令に対応するオペコード情報およびリピートアマウントrptamtがデコード部40から出力される。そして、使用モジュール判定部51は、オペコード情報に基づいて、今回の命令で使用されるモジュールM0〜Mnを起動し、そのモジュールM0〜Mnに対応したモジュール制御用ステートマシン52a〜52nにオペコードopecodeおよびリピートアマウントrptamtを出力する。なお、図6に示すように、インストラクションフェッチIFは、1サイクルに1回だけ発生させることができるので、1個のモジュールM0〜Mnに対応した1個のモジュール制御用ステートマシン52a〜52nを1サイクルごとに起動することができる。   Here, the use module determination unit 51 outputs, from the decoding unit 40, the operation code information and the repeat amount rptamt corresponding to the instruction that has been decoded together with the decoding completion signal. Then, based on the opcode information, the used module determination unit 51 activates the modules M0 to Mn used in the current instruction, and sends the opcode opecode and the module control state machines 52a to 52n corresponding to the modules M0 to Mn. Output repeat amount rptamt. As shown in FIG. 6, since the instruction fetch IF can be generated only once per cycle, one module control state machine 52a to 52n corresponding to one module M0 to Mn is set to one. It can be activated every cycle.

そして、モジュール制御用ステートマシン52a〜52nは、オペコードopecodeおよびリピートアマウントrptamtに基づいて、どのモジュールM0〜Mnが何サイクル分だけ使用されるかを判定する。そして、モジュール制御用ステートマシン52a〜52nは、今回の命令で使用されるモジュールM0〜Mnをリピートアマウントrptamtで決められるサイクル数分だけ動作させる制御信号を電力制御信号発生部53に出力する。そして、電力制御信号発生部53は、モジュール制御用ステートマシン52a〜52nから出力された制御信号に基づいて、今回の命令で使用されるモジュールM0〜Mnの消費電力を制御するモジュール電力制御信号を動作状態管理部70に出力する。さらに、電力制御信号発生部53は、今回の命令で使用されるモジュールM0〜Mnが、ベクトル命令またはスカラー命令のいずれの命令で起動されるかを判別し、今回の命令で使用されるモジュールM0〜Mnがベクトル命令にて起動される場合、ベクトルレジスタ20bの電力を消費制御するベクトルレジスタ電力制御信号を動作状態管理部70に出力する。一方、今回の命令で使用されるモジュールM0〜Mnがスカラー命令にて起動される場合、スカラーレジスタ20aの消費電力を制御するスカラーレジスタ電力制御信号を動作状態管理部70に出力する。   Then, the module control state machines 52a to 52n determine how many cycles of the modules M0 to Mn are used based on the operation code opecode and the repeat amount rptamt. Then, the module control state machines 52a to 52n output to the power control signal generation unit 53 a control signal for operating the modules M0 to Mn used in the current instruction for the number of cycles determined by the repeat amount rptamt. Then, the power control signal generator 53 generates a module power control signal for controlling the power consumption of the modules M0 to Mn used in the current instruction based on the control signals output from the module control state machines 52a to 52n. The data is output to the operation state management unit 70. Further, the power control signal generation unit 53 determines whether the module M0 to Mn used in the current instruction is activated by a vector instruction or a scalar instruction, and the module M0 used in the current instruction. When .about.Mn is activated by a vector instruction, a vector register power control signal for controlling power consumption of the vector register 20 b is output to the operation state management unit 70. On the other hand, when the modules M0 to Mn used in the current instruction are activated by the scalar instruction, a scalar register power control signal for controlling the power consumption of the scalar register 20a is output to the operation state management unit 70.

図10(a)は、ベクトル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nの状態遷移を示す図、図10(b)は、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nの状態遷移を示す図、図10(c)は、ベクトル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nから出力される制御信号を示す図である。   FIG. 10A is a diagram showing state transitions of the state machines 52a to 52n of the modules M0 to Mn corresponding to the vector instruction, and FIG. 10B is a state machine 52a of the modules M0 to Mn corresponding to the multicycle instruction. FIG. 10C is a diagram illustrating control signals output from the state machines 52a to 52n of the modules M0 to Mn corresponding to the vector instructions.

図10(a)において、ベクトル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nは、IDLE状態において、新たな命令によりステートマシン52a〜52nが起動されるまで待機する。そして、デコード部40にてベクトル命令のデコードが完了し、そのベクトル命令を実行するために使用されるモジュールM0〜Mnのステートマシン52a〜52nが起動されると、そのステートマシン52a〜52nは第0要素演算ステートに遷移する。そして、そのステートマシン52a〜52nは、リピートアマウントrptamtで指定されるベクトル演算の繰り返し回数に従って動作を継続する。すなわち、図2のベクトル演算器10c、10dが8要素までの演算をサポートしているものとすると、ステートマシン52a〜52nは、各要素の演算ステートがリピートアマウントrptamtの値に一致するまで、第0要素演算ステートから第7要素演算ステートまでの間を順次遷移する。そして、各要素の演算ステートがリピートアマウントrptamtの値に一致すると、ステートマシン52a〜52nはIDLE状態に遷移する。     In FIG. 10A, the state machines 52a to 52n of the modules M0 to Mn corresponding to the vector instruction wait in the IDLE state until the state machines 52a to 52n are activated by a new instruction. When the decoding of the vector instruction is completed in the decoding unit 40 and the state machines 52a to 52n of the modules M0 to Mn used for executing the vector instruction are started, the state machines 52a to 52n Transition to the 0 element operation state. Then, the state machines 52a to 52n continue to operate according to the number of vector operations repeated specified by the repeat amount rptamt. That is, assuming that the vector calculators 10c and 10d in FIG. 2 support the calculation of up to eight elements, the state machines 52a to 52n perform the first operation until the calculation state of each element matches the value of the repeat amount rptamt. The transition is sequentially made from the 0 element operation state to the seventh element operation state. When the operation state of each element matches the repeat amount rptamt value, the state machines 52a to 52n transition to the IDLE state.

一方、ステートマシン52a〜52nは、IDLE状態において、スカラー命令により起動されると、スカラー命令実行ステートに遷移する。そして、そのスカラー命令で指定される演算が終了した時点で、IDLE状態に遷移する。
また、図10(b)において、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nは、IDLE状態において、マルチサイクル命令により起動されると、データ設定ステートを経て、演算実行ステートに遷移する。そして、終了条件が成立するまで、演算実行ステートを継続し、終了条件が成立した時点で、IDLE状態に遷移する。ここで、終了条件は、命令ごとに定義してもよいし、データにより決定してもよい。
On the other hand, when the state machines 52a to 52n are activated by a scalar instruction in the IDLE state, the state machines 52a to 52n transition to the scalar instruction execution state. Then, when the operation specified by the scalar instruction is completed, the state transits to the IDLE state.
In FIG. 10B, when the state machines 52a to 52n of the modules M0 to Mn corresponding to the multi-cycle instruction are activated by the multi-cycle instruction in the IDLE state, the data execution state passes through the data setting state. Transition. Then, the operation execution state is continued until the end condition is satisfied, and the state transitions to the IDLE state when the end condition is satisfied. Here, the end condition may be defined for each instruction or may be determined by data.

なお、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nは、スカラー命令実行の一形式に対応させることができ、スカラー命令実行において1サイクルで演算が完了しないものである。また、マルチサイクル命令に対応したモジュールM0〜Mnのステートマシン52a〜52nにおいて、データ設定ステートは省略してもよい。   Note that the state machines 52a to 52n of the modules M0 to Mn corresponding to the multi-cycle instruction can correspond to one form of the scalar instruction execution, and the operation is not completed in one cycle in the scalar instruction execution. The data setting state may be omitted in the state machines 52a to 52n of the modules M0 to Mn corresponding to the multicycle instruction.

また、図10(c)において、例えば、各ステートにおけるモジュールM1に対する電力制御信号Module1_en、スカラーレジスタ20aに対する電力制御信号Scalar_Exe_Reqおよびベクトルレジスタ20bに対する電力制御信号Vector_Exe_Reqが定義されている。そして、例えば、ベクトル命令に対応したモジュールM1のステートマシンにおいて、IDLE状態では、電力制御信号Module1_en、電力制御信号Scalar_Exe_Reqおよび電力制御信号Vector_Exe_ReqをDISABLEに設定することができる。また、スカラー命令が実行される場合、電力制御信号Module1_enおよび電力制御信号Scalar_Exe_ReqをACTIVEに設定するとともに、電力制御信号Vector_Exe_ReqをDISABLEに設定することができる。また、ベクトル命令が実行される場合、第0要素演算ステートから第7要素演算ステートまでの各要素の演算ステートにおいて、電力制御信号Module1_enおよび電力制御信号Vector_Exe_ReqをACTIVEに設定するとともに、電力制御信号Scalar_Exe_ReqをDISABLEに設定することができる。また、モジュールM1以外の他のモジュールM0、M2〜Mnについても同様に定義することができる。   In FIG. 10C, for example, a power control signal Module1_en for the module M1 in each state, a power control signal Scalar_Exe_Req for the scalar register 20a, and a power control signal Vector_Exe_Req for the vector register 20b are defined. For example, in the state machine of the module M1 corresponding to the vector instruction, in the IDLE state, the power control signal Module1_en, the power control signal Scalar_Exe_Req, and the power control signal Vector_Exe_Req can be set to DISABLE. When a scalar command is executed, the power control signal Module1_en and the power control signal Scalar_Exe_Req can be set to ACTIVE, and the power control signal Vector_Exe_Req can be set to DISABLE. When a vector instruction is executed, the power control signal Module1_en and the power control signal Vector_Exe_Req are set to ACTIVE and the power control signal Scalar_Exe_Req is set in the operation state of each element from the 0th element operation state to the 7th element operation state. Can be set to DISABLE. The other modules M0, M2 to Mn other than the module M1 can be defined in the same manner.

これにより、モジュールM1が使用されない場合には、モジュールM1、スカラーレジスタ20aおよびベクトルレジスタ20bの動作を停止させることが可能となる。また、モジュールM1にてスカラー命令が実行される場合、モジュールM1およびスカラーレジスタ20aを動作させることが可能となるとともに、ベクトルレジスタ20bの動作を停止させることが可能となる。また、モジュールM1にてベクトル命令が実行される場合、モジュールM1およびベクトルレジスタ20bを動作させることが可能となるとともに、スカラーレジスタ20aの動作を停止させることが可能となる。   Thereby, when the module M1 is not used, the operation of the module M1, the scalar register 20a, and the vector register 20b can be stopped. When a scalar instruction is executed in the module M1, the module M1 and the scalar register 20a can be operated, and the operation of the vector register 20b can be stopped. When a vector instruction is executed in the module M1, the module M1 and the vector register 20b can be operated, and the operation of the scalar register 20a can be stopped.

なお、図9の電力制御信号発生部53は、複数のモジュール制御用ステートマシン52a〜52nからモジュールM0〜Mnを動作させる制御信号を受け取った場合、これらの論理和に基づいてモジュール電力制御信号を生成することができる。これにより、1個のモジュール制御用ステートマシン52a〜52nからでもACTIVE要求があった場合においても、そのモジュール制御用ステートマシン52a〜52nに対応したモジュールM0〜Mnを動作させることができる。   9 receives the control signals for operating the modules M0 to Mn from the plurality of module control state machines 52a to 52n, the power control signal generator 53 in FIG. Can be generated. Thereby, even when there is an ACTIVE request from one module control state machine 52a to 52n, the modules M0 to Mn corresponding to the module control state machines 52a to 52n can be operated.

図11は、図2の動作状態管理部70の概略構成を示すブロック図である。
図11において、動作状態管理部70は、電力モードの設定を記憶した電力モード設定レジスタ71と、電力モード設定レジスタ71の設定に基づいて電力モードを定義する電力モード定義部72と、電力制御信号、割り込みによる起動信号、メモリストール信号および電力モード定義部72からの電力モード信号に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を行う動作ユニット調整部73と、電力モード定義部72からの電力モード信号に基づいて、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給するクロック、電圧および電力を切り換えるクロック・電源切換部74とで構成されている。
FIG. 11 is a block diagram showing a schematic configuration of the operation state management unit 70 of FIG.
In FIG. 11, the operation state management unit 70 includes a power mode setting register 71 that stores the power mode setting, a power mode definition unit 72 that defines a power mode based on the setting of the power mode setting register 71, and a power control signal. Based on the interrupt start signal, the memory stall signal, and the power mode signal from the power mode definition unit 72, the control relating to the power consumption of the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a and the vector register 20b. Based on the power mode signal from the operation unit adjustment unit 73 and the power mode definition unit 72, the clock and voltage supplied to the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a and the vector register 20b And switching power It is composed of a lock power supply switching unit 74.

電力モード定義部72は、クロックモードを定義するクロックモード定義部72aと、クロックモード定義部72aの定義によりクロックモードのステートを行うクロックモードステートマシン72bと、電圧・周波数モードを定義する電圧・周波数モード定義部72cと、電圧・周波数モード定義部72cの定義により電圧・周波数モードのステートを行う電圧・周波数モードステートマシン72dとで構成されており、動作ユニット調整部73およびクロック・電源切換部74に電力モード信号を出力するようになっている。     The power mode definition unit 72 includes a clock mode definition unit 72a that defines a clock mode, a clock mode state machine 72b that performs a clock mode state according to the definition of the clock mode definition unit 72a, and a voltage / frequency that defines a voltage / frequency mode. A mode definition unit 72c and a voltage / frequency mode state machine 72d that performs a voltage / frequency mode state based on the definition of the voltage / frequency mode definition unit 72c, and includes an operation unit adjustment unit 73 and a clock / power supply switching unit 74. The power mode signal is output to the power supply.

動作ユニット調整部73は、複数サイクル命令管理部50からのモジュール電力制御信号に応じて、スカラー演算器10a、10bが非動作演算器となる期間、そのスカラー演算器10a、10bの消費電力が低減されるように、そのスカラー演算器10a、10bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。     In response to the module power control signal from the multi-cycle instruction management unit 50, the operation unit adjustment unit 73 reduces the power consumption of the scalar operation units 10a and 10b during the period when the scalar operation units 10a and 10b are inactive operation units. As described above, control regarding the power consumption of the scalar computing units 10a and 10b can be performed on the clock control unit 80 and the power supply control unit 85.

また、動作ユニット調整部73は、複数サイクル命令管理部50からのモジュール電力制御信号に応じて、ベクトル演算器10c、10dが非動作演算器となる期間、そのベクトル演算器10c、10dの消費電力が低減されるように、そのベクトル演算器10c、10dの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。     In addition, the operation unit adjustment unit 73 responds to the module power control signal from the multi-cycle instruction management unit 50 during the period when the vector calculators 10c and 10d are non-operation calculators, and the power consumption of the vector calculators 10c and 10d. Can be controlled for the clock control unit 80 and the power supply control unit 85 with respect to the power consumption of the vector computing units 10c and 10d.

また、動作ユニット調整部73は、複数サイクル命令管理部50からのスカラーレジスタ電力制御信号に応じて、スカラー演算器10a、10bがスカラーレジスタ20aを利用しない期間、そのスカラーレジスタ20aの消費電力が低減されるように、スカラーレジスタ20aの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。     Further, the operation unit adjustment unit 73 reduces the power consumption of the scalar register 20a in a period in which the scalar calculators 10a and 10b do not use the scalar register 20a according to the scalar register power control signal from the multi-cycle instruction management unit 50. As described above, control regarding the power consumption of the scalar register 20 a can be performed on the clock control unit 80 and the power supply control unit 85.

また、動作ユニット調整部73は、複数サイクル命令管理部50からのベクトルレジスタ電力制御信号に応じて、ベクトル演算器10c、10dがベクトルレジスタ20bを利用しない期間、そのベクトルレジスタ20bの消費電力が低減されるように、ベクトルレジスタ20bの消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。     In addition, the operation unit adjustment unit 73 reduces the power consumption of the vector register 20b during a period when the vector calculators 10c and 10d do not use the vector register 20b in accordance with the vector register power control signal from the multi-cycle instruction management unit 50. As described above, the control related to the power consumption of the vector register 20 b can be performed on the clock control unit 80 and the power supply control unit 85.

また、動作ユニット調整部73は、メモリアクセス部1、ローカルメモリ2、DMA3、キャッシュメモリ4、5、タイマ60または割込制御部65が利用されない期間、それらのリソース1〜5、60、65の消費電力が低減されるように、それらのリソース1〜5、60、65の消費電力に関する制御をクロック制御部80および電源制御部85に対して行うことができる。特に、命令コードがロード/ストア命令以外のものを示すものであるときは、リソース1〜5、60、65について、省電力制御を行うことができる。また、ローカルメモリ2にアクセスするときは、キャッシュメモリ4および共有メモリ6について、省電力制御を行うことができる。     In addition, the operation unit adjustment unit 73 is configured so that the memory access unit 1, the local memory 2, the DMA 3, the cache memory 4, 5, the timer 60 or the interrupt control unit 65 is not used during the period when the resources 1 to 5, 60, 65 are used. Control regarding the power consumption of these resources 1 to 5, 60 and 65 can be performed on the clock control unit 80 and the power supply control unit 85 so that the power consumption is reduced. In particular, when the instruction code indicates something other than a load / store instruction, power saving control can be performed for the resources 1 to 5, 60, and 65. Further, when accessing the local memory 2, power saving control can be performed for the cache memory 4 and the shared memory 6.

ここで、スカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他のリソース1〜6、60、65の消費電力に関する制御は、スカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他リソース1〜6、60、65に供給するクロックの有無を調整する制御、スカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他リソース1〜6、60、65に供給する電力の有無を調整する制御、並びにスカラー演算器10a、10b、ベクトル演算器10c、10dまたはその他リソース1〜6、60、65に供給する周波数および電圧を調整する制御を適用することができる。また、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御は、スカラーレジスタ20aおよびベクトルレジスタ20bに供給するクロックの有無を調整する制御、並びにスカラーレジスタ20aおよびベクトルレジスタ20bに供給する周波数および電圧を調整する制御を適用することができる。     Here, control regarding the power consumption of the scalar calculators 10a and 10b, the vector calculators 10c and 10d, and other resources 1 to 6, 60 and 65 is performed by the scalar calculators 10a and 10b, the vector calculators 10c and 10d, and other resources. Control for adjusting presence / absence of clock supplied to 1-6, 60, 65, scalar operation units 10a, 10b, vector operation units 10c, 10d or other resources 1-6, 60, 65 Control and control for adjusting the frequency and voltage supplied to the scalar calculators 10a, 10b, the vector calculators 10c, 10d or other resources 1-6, 60, 65 can be applied. Further, the control relating to the power consumption of the scalar register 20a and the vector register 20b includes the control for adjusting the presence / absence of a clock supplied to the scalar register 20a and the vector register 20b, and the frequency and voltage supplied to the scalar register 20a and the vector register 20b. Controls can be applied.

また、動作ユニット調整部73は、割込制御部65からの割り込みによる起動信号またはメモリアクセス部1からのメモリストール信号を入力したときは、その入力が停止されるまで、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を延長することができる。     Further, when the activation unit 73 receives an activation signal from the interrupt control unit 65 or a memory stall signal from the memory access unit 1, the operation unit adjustment unit 73 stops the scalar computing units 10a and 10b until the input is stopped. The control relating to the power consumption of the vector calculators 10c and 10d, the scalar register 20a, and the vector register 20b can be extended.

図12は、図11のクロック・電源切換部74の構成を示すブロック図である。
図12において、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する周波数および電圧を調整する場合、周波数・電圧モード変更要求信号により電力モード定義部72が出力する周波数・電圧モードを入力したときは(1)、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bへのクロックの供給を停止すべきクロック停止要求をクロック制御部80に出力する(2)。
FIG. 12 is a block diagram showing a configuration of the clock / power switching unit 74 of FIG.
In FIG. 12, when adjusting the frequency and voltage supplied to the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a, and the vector register 20b, the power mode definition unit 72 uses the frequency / voltage mode change request signal. When the output frequency / voltage mode is input (1), a clock stop request for stopping the supply of clocks to the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a and the vector register 20b is clocked. It outputs to the control part 80 (2).

次いで、クロック停止応答をクロック制御部80から入力したときは(3)、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する電圧設定に関する電圧制御信号を電源制御部85に出力するとともに、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bに供給する周波数設定に関する周波数変更信号をクロック制御部80に出力する(4)。そして、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20bへのクロックの供給を再開すべきクロック再開要求をクロック制御部80に出力し(5)、クロック再開応答をクロック制御部80から入力するのを待って(6)、周波数および電圧の調整を完了する。   Next, when a clock stop response is input from the clock control unit 80 (3), voltage control signals relating to voltage settings to be supplied to the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a and the vector register 20b. While outputting to the power supply control part 85, the frequency change signal regarding the frequency setting supplied to the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a, and the vector register 20b is output to the clock controller 80 (4). . Then, a clock resumption request for resuming the supply of clocks to the scalar arithmetic units 10a and 10b, the vector arithmetic units 10c and 10d, the scalar register 20a and the vector register 20b is output to the clock control unit 80 (5), and the clock resumption response Is input from the clock controller 80 (6), and the adjustment of the frequency and voltage is completed.

このように、図2の並列演算処理プロセッサ100は、スカラー演算を行うスカラー演算器10a、10bおよびベクトル演算を行うベクトル演算器10c、10dとを含んでなり、スカラー演算器10a、10bおよびベクトル演算器10c、10dの消費電力に関する制御を、命令コードにより特定される演算種別に応じてそれぞれ行うことができる。このため、スカラー演算器10a、10bおよびベクトル演算器10c、10dの種別に応じて消費電力に関する制御を行うことができ、複数種類のスカラー演算器10a、10bおよびベクトル演算器10c、10dを組み合わせて構成された並列演算処理プロセッサ100の消費電力を低減することができる。   2 includes the scalar calculators 10a and 10b that perform scalar calculations and the vector calculators 10c and 10d that perform vector calculations. The parallel calculators 100a and 10b perform vector calculations. Control relating to the power consumption of the devices 10c and 10d can be performed according to the operation type specified by the instruction code. For this reason, it is possible to control power consumption according to the types of the scalar calculators 10a and 10b and the vector calculators 10c and 10d, and to combine a plurality of types of scalar calculators 10a and 10b and vector calculators 10c and 10d. It is possible to reduce the power consumption of the configured parallel processing processor 100.

また、並列演算処理プロセッサ100は、スカラー演算器10a、10bおよびベクトル演算器10c、10dの消費電力に関する制御ならびにスカラーレジスタ20aおよびベクトルレジスタ20bの消費電力に関する制御を、命令コードにより特定される演算形態に応じてそれぞれ行うことができる。このため、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20のそれぞれについて消費電力に関する制御を行うことができ、スカラー演算器10a、10b、ベクトル演算器10c、10d、スカラーレジスタ20aおよびベクトルレジスタ20を組み合わせて構成された並列演算処理プロセッサ100の消費電力を低減することができる。   In addition, the parallel processing processor 100 is configured to specify control related to the power consumption of the scalar arithmetic units 10a and 10b and the vector arithmetic units 10c and 10d and control related to the power consumption of the scalar register 20a and the vector register 20b according to an instruction code. Can be done according to each. For this reason, each of the scalar calculators 10a and 10b, the vector calculators 10c and 10d, the scalar register 20a and the vector register 20 can be controlled in terms of power consumption, and the scalar calculators 10a and 10b, the vector calculators 10c and 10d The power consumption of the parallel processing processor 100 configured by combining the scalar register 20a and the vector register 20 can be reduced.

図13は、第2実施形態に係るクロックゲーティング方法を示すブロック図である。
図13において、図2のクロック制御部80には、クロックゲーティングマクロ回路CG1〜CGnが設けられ、クロックゲーティングマクロ回路CG1〜CGnは、例えば、図2のフェッチ部30、デコード部40、ベクトルレジスタ21b、ベクトル演算器10c、10d、スカラー演算器10a、10b、スカラーレジスタ21aにそれぞれ接続することができる。
FIG. 13 is a block diagram illustrating a clock gating method according to the second embodiment.
In FIG. 13, the clock control unit 80 of FIG. 2 is provided with clock gating macro circuits CG1 to CGn. The clock gating macro circuits CG1 to CGn include, for example, the fetch unit 30, the decoding unit 40, and the vector of FIG. It can be connected to the register 21b, the vector calculators 10c and 10d, the scalar calculators 10a and 10b, and the scalar register 21a, respectively.

また、例えば、スカラーレジスタ20aには、スカラーレジスタ20aの構成要素ごとに局所的にクロックゲーティングを行うクロックゲーティングマクロ回路CG10が設けられるとともに、ベクトルレジスタ20bには、ベクトルレジスタ20bの構成要素ごとに局所的にクロックゲーティングを行うクロックゲーティングマクロ回路CG11が設けられている。ここで、クロックゲーティングマクロ回路CG10、CG11には、デコード部40から出力される実行ユニット制御信号が入力される。そして、クロックゲーティングマクロ回路CG10、CG11は、この実行ユニット制御信号に基づいて、スカラーレジスタ20aおよびベクトルレジスタ20bの各構成要素ごとに局所的にクロックゲーティングをそれぞれ行うことにより、スカラーレジスタ20aおよびベクトルレジスタ20bの各構成要素に対するクロック信号の供給をそれぞれ制御することができる。   Further, for example, the scalar register 20a is provided with a clock gating macro circuit CG10 that locally performs clock gating for each component of the scalar register 20a, and the vector register 20b includes each component of the vector register 20b. Is provided with a clock gating macro circuit CG11 for locally performing clock gating. Here, the execution unit control signal output from the decoding unit 40 is input to the clock gating macro circuits CG10 and CG11. Then, the clock gating macro circuits CG10 and CG11 perform the clock gating locally for each component of the scalar register 20a and the vector register 20b based on the execution unit control signal, respectively. The supply of the clock signal to each component of the vector register 20b can be controlled.

これにより、ベクトル命令に基づいて、スカラーレジスタ20aおよびベクトルレジスタ20bの各構成要素の消費電力を細やかに制御することができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。
図14は、本発明の第3実施形態に係るクロックゲーティング方法を示すブロック図である。
Thereby, the power consumption of each component of the scalar register 20a and the vector register 20b can be finely controlled based on the vector instruction, and the power consumption can be further reduced while suppressing the burden on programming. It becomes possible.
FIG. 14 is a block diagram showing a clock gating method according to the third embodiment of the present invention.

図14において、ベクトルレジスタ21bには、その一部の構成要素として、DフリップフロップF0〜F31が設けられ、32ビットレジスタが構成されているものとする。そして、ベクトルレジスタ21bの構成要素となる32ビットレジスタにクロックゲーティングマクロ回路CG12を配置することができる。
すなわち、クロックゲーティングマクロ回路CG12には、ラッチ回路84およびアンド回路85が設けられるとともに、アンド回路85の出力は、DフリップフロップF0〜F31の各クロック入力端子に接続されている。そして、ラッチ回路82に入力されるクロック信号CLKに同期して、イネーブル信号ENがラッチ回路82にてラッチされる。そして、ラッチ回路82にてラッチされたイネーブル信号ENはアンド回路83に出力され、クロック信号CLKとの論理積をとることにより、ゲートクロック信号G_CLKがDフリップフロップF0〜F31の各クロック入力端子に出力される。そして、ゲートクロック信号G_CLKがDフリップフロップF0〜F31の各クロック入力端子に入力されると、DフリップフロップF0〜F31は、Dフリップフロップ84のD端子に入力されるデータDATA[0]〜[31]を取り込み、D_OUT[0]〜[31]として出力することができる。
In FIG. 14, it is assumed that the vector register 21b is provided with D flip-flops F0 to F31 as a part of its constituent elements to constitute a 32-bit register. The clock gating macro circuit CG12 can be arranged in a 32-bit register that is a component of the vector register 21b.
That is, the clock gating macro circuit CG12 is provided with the latch circuit 84 and the AND circuit 85, and the output of the AND circuit 85 is connected to each clock input terminal of the D flip-flops F0 to F31. The enable signal EN is latched by the latch circuit 82 in synchronization with the clock signal CLK input to the latch circuit 82. The enable signal EN latched by the latch circuit 82 is output to the AND circuit 83, and the logical product of the enable signal EN and the clock signal CLK is obtained, whereby the gate clock signal G_CLK is supplied to each clock input terminal of the D flip-flops F0 to F31. Is output. When the gate clock signal G_CLK is input to the clock input terminals of the D flip-flops F0 to F31, the D flip-flops F0 to F31 receive the data DATA [0] to [[ 31] and can be output as D_OUT [0] to [31].

ここで、ベクトル演算器10c、10dが32ビットレジスタに書き込みを行う際に、ベクトル演算器10c、10dは、イネーブル信号ENをアクティブにすることができる。このため、32ビットレジスタへの書き込みが必要な時にのみ、32個のDフリップフロップF0〜F31にクロックを供給することができ、32ビットレジスタにアクセスがない時および32ビットレジスタから読み出しを行っている時には、32個のDフリップフロップF0〜F31へのクロックの供給を停止することができる。この結果、クロックの信号ラインおよびDフリップフロップF0〜F31への不要なクロックの供給を停止することができ、図2の並列演算処理プロセッサ100の消費電力を低減することができる。   Here, when the vector calculators 10c and 10d write to the 32-bit register, the vector calculators 10c and 10d can activate the enable signal EN. Therefore, the clock can be supplied to the 32 D flip-flops F0 to F31 only when writing to the 32-bit register is necessary, and when the 32-bit register is not accessed and when reading from the 32-bit register is performed. When the power is on, the clock supply to the 32 D flip-flops F0 to F31 can be stopped. As a result, supply of unnecessary clocks to the clock signal line and the D flip-flops F0 to F31 can be stopped, and the power consumption of the parallel processing processor 100 of FIG. 2 can be reduced.

なお、1個のクロックゲーティングマクロ回路CG12を32ビットレジスタごとに配置する方法以外にも、例えば、8ビットのバイト刻みでクロックゲーティングマクロ回路を挿入するようにしてもよい。レジスタ退避するアクセスは、32ビットのワード単位で行われる場合と、8ビットのバイト単位、もしくは16ビットのハーフ・ワード単位で行われることがある。このため、8ビットのバイト単位でクロックの供給を制御することで、消費電力をより柔軟に制御することが可能となる。   In addition to the method of disposing one clock gating macro circuit CG12 for each 32-bit register, for example, a clock gating macro circuit may be inserted in units of 8-bit bytes. Access to save a register may be performed in units of 32-bit words, and may be performed in units of 8-bit bytes or 16-bit half words. For this reason, it is possible to control power consumption more flexibly by controlling clock supply in units of 8-bit bytes.

図15は、本発明の第4実施形態に係るクロックゲーティング方法を示すブロック図である。
図15において、図2のクロック制御部80には、クロックゲーティングマクロ回路CG1〜CGnが設けられ、クロックゲーティングマクロ回路CG1〜CGnは、図2のフェッチ部30、デコード部40、ベクトルレジスタ21b、ベクトル演算器10c、10d、スカラー演算器10a、10bおよびスカラーレジスタ21aにそれぞれ接続されている。そして、各クロックゲーティングマクロ回路CG1〜CGnには、ルートバッファRB1を介してクロック信号CLKが共通に入力されるとともに、動作状態管理部70にて生成されたイネーブル信号EN_0〜EN_nがそれぞれ入力される。
FIG. 15 is a block diagram showing a clock gating method according to the fourth embodiment of the present invention.
15, the clock control unit 80 of FIG. 2 is provided with clock gating macro circuits CG1 to CGn, and the clock gating macro circuits CG1 to CGn include the fetch unit 30, the decoding unit 40, and the vector register 21b of FIG. , Vector calculators 10c and 10d, scalar calculators 10a and 10b, and scalar register 21a. The clock signals CLK are commonly input to the clock gating macro circuits CG1 to CGn via the route buffer RB1, and the enable signals EN_0 to EN_n generated by the operation state management unit 70 are respectively input. The

ここで、ベクトルレジスタ21bには、その一部の構成要素として、64個の32ビットレジスタVR00〜VR77が設けられ、8要素からなる8本分のベクトルレジスタが構成されているものとする。そして、ベクトルレジスタ21bには、64個の32ビットレジスタVR00〜VR77にそれぞれ対応してクロックゲーティングマクロ回路CG00〜CG77が挿入されている。そして、各クロックゲーティングマクロ回路CG00〜CG77には、クロックゲーティングマクロ回路CG2から出力されたゲートクロック信号GateCLK_2が共通に入力されるとともに、イネーブル信号EN_00〜EN_77がそれぞれ入力される。   Here, it is assumed that the vector register 21b is provided with 64 32-bit registers VR00 to VR77 as a part of its constituent elements, and 8 vector registers composed of 8 elements are configured. In the vector register 21b, clock gating macro circuits CG00 to CG77 are inserted corresponding to the 64 32-bit registers VR00 to VR77, respectively. The gate clock signal GateCLK_2 output from the clock gating macro circuit CG2 and the enable signals EN_00 to EN_77 are input to the clock gating macro circuits CG00 to CG77, respectively.

そして、クロックゲーティングマクロ回路CG2は、イネーブル信号EN_2がアクティブになると、ゲートクロック信号GateCLK_2を各クロックゲーティングマクロ回路CG00〜CG77に供給するとともに、イネーブル信号EN_2がディセーブルになると、ゲートクロック信号GateCLK_2の各クロックゲーティングマクロ回路CG00〜CG77への供給を停止する。これにより、ベクトルレジスタ21bが使用されないサイクル期間中、ベクトルレジスタ21b全体をモジュール単位で停止させることが可能となり、図2の並列演算処理プロセッサ100の消費電力を低減することができる。   The clock gating macro circuit CG2 supplies the gate clock signal GateCLK_2 to each of the clock gating macro circuits CG00 to CG77 when the enable signal EN_2 becomes active, and when the enable signal EN_2 is disabled, the gate clock signal GateCLK_2. The supply to the clock gating macro circuits CG00 to CG77 is stopped. Thereby, during the cycle period in which the vector register 21b is not used, the entire vector register 21b can be stopped in units of modules, and the power consumption of the parallel processing processor 100 of FIG. 2 can be reduced.

また、ゲートクロック信号GateCLK_2が各クロックゲーティングマクロ回路CG00〜CG77に供給されている時に、イネーブル信号EN_00〜EN_77のいずれかがアクティブになると、アクティブ状態のイネーブル信号EN_00〜EN_77が入力されたクロックゲーティングマクロ回路CG00〜CG77からゲートクロック信号GateCLK_2が出力される。このため、イネーブル信号EN_00〜EN_77を選択することにより、32ビットレジスタVR00〜VR77のいずれかを選択してクロックを供給することが可能となるとともに、今回の命令で使用されない32ビットレジスタVR00〜VR77へのクロックを停止させることができる。   Further, when any one of the enable signals EN_00 to EN_77 becomes active while the gate clock signal GateCLK_2 is supplied to each of the clock gating macro circuits CG00 to CG77, the clock gate to which the enable signals EN_00 to EN_77 in the active state are input. Gate clock signal GateCLK_2 is output from the ting macro circuits CG00 to CG77. Therefore, by selecting the enable signals EN_00 to EN_77, it becomes possible to select one of the 32-bit registers VR00 to VR77 and supply a clock, and to use the 32-bit registers VR00 to VR77 that are not used in the current instruction. The clock to can be stopped.

ここで、イネーブル信号EN_00〜EN_77を選択は、デコード部40からベクトル演算器10c、10dおよびベクトルレジスタ20bに出力される実行ユニット制御信号に基づいて行うことができる。すなわち、ベクトル演算器10c、10dは、図4のベクトル命令によるディスティネーションレジスタdstの指定に基づいて、32ビットレジスタVR00〜VR77のうちの何番目に書き込みを行うかを判断することができる。そして、ベクトル演算器10c、10dは、その書き込み先の32ビットレジスタVR00〜VR77に対応したイネーブル信号EN_00〜EN_77をアクティブにすることにより、今回の命令で書き込みが行われる32ビットレジスタVR00〜VR77にのみクロックを供給するとともに、今回の命令で書き込みが行われない32ビットレジスタVR00〜VR77へのクロックの供給を停止させることができる。   Here, the selection of the enable signals EN_00 to EN_77 can be performed based on the execution unit control signal output from the decoding unit 40 to the vector calculators 10c and 10d and the vector register 20b. That is, the vector calculators 10c and 10d can determine the number of the 32-bit registers VR00 to VR77 to be written based on the designation of the destination register dst by the vector instruction of FIG. The vector arithmetic units 10c and 10d activate the enable signals EN_00 to EN_77 corresponding to the write destination 32-bit registers VR00 to VR77, thereby causing the 32-bit registers VR00 to VR77 to be written by the current instruction. Only the clock is supplied, and the supply of the clock to the 32-bit registers VR00 to VR77 to which writing is not performed by the current instruction can be stopped.

これにより、ベクトル命令を与えることで、今回の命令で使用されないベクトルレジスタ21b全体をモジュール単位で停止させることが可能となるとともに、今回の命令でベクトルレジスタ21bが使用される場合においても、今回の命令で実際に使用される32ビットレジスタVR00〜VR77のみを個別に動作させることができ、プログラミングにかかる負担を抑制しつつ、消費電力をより一層低減することが可能となる。   Thus, by giving a vector instruction, the entire vector register 21b that is not used in the current instruction can be stopped in units of modules, and even when the vector register 21b is used in the current instruction, Only the 32-bit registers VR00 to VR77 that are actually used in the instructions can be individually operated, and the power consumption can be further reduced while suppressing the burden on programming.

図16は、本発明の第5実施形態に係るベクトル演算型並列演算処理プロセッサの構成を示すブロック図である。
図16において、ベクトル演算型並列演算処理プロセッサには、乗算を行う2つの乗算器11a、11b、加算を行う2つの加算器11c、11d、データ転送を行う2つの転送ユニット11e、11f、スカラーレジスタ23aおよびベクトルレジスタ23bが設けられている。また、ベクトル演算型並列演算処理プロセッサには、フェッチ部300、デコード部400、プログラムカウンタ500およびステータスレジスタ600が設けられている。そして、これらのモジュールは、データバス、プログラムバス、データアドレスバスまたはプログラムアドレスバスを介して互いに接続されている。
FIG. 16 is a block diagram showing a configuration of a vector operation type parallel operation processor according to the fifth embodiment of the present invention.
In FIG. 16, a vector operation type parallel operation processor includes two multipliers 11a and 11b that perform multiplication, two adders 11c and 11d that perform addition, two transfer units 11e and 11f that perform data transfer, and a scalar register. 23a and a vector register 23b are provided. Further, the vector operation type parallel operation processor is provided with a fetch unit 300, a decode unit 400, a program counter 500, and a status register 600. These modules are connected to each other via a data bus, a program bus, a data address bus, or a program address bus.

ここで、例えば、図6のベクトル命令Ins.1、Ins.2のオペコードopecodeにて乗算が指定され、ベクトル命令Ins.3、Ins.4のオペコードopecodeにて加算が指定されているものとすると、ベクトル命令Ins.1の実行EXEを乗算器11aで行わせ、ベクトル命令Ins.2の実行EXEを乗算器11bで行わせ、ベクトル命令Ins.3の実行EXEを加算器11cで行わせ、ベクトル命令Ins.4の実行EXEを加算器11dで行われることにより、これらのベクトル命令11b〜Ins.4にそれぞれ対応した実行EXEを並列に行わせることができる。   Here, for example, the vector instruction Ins. 1, Ins. 2 is designated by the operation code opecode, and the vector instruction Ins. 3, Ins. Assuming that addition is specified in the operation code opecode of 4, the vector instruction Ins. 1 is executed by the multiplier 11a, and the vector instruction Ins. 2 is executed by the multiplier 11b, and the vector instruction Ins. 3 is executed by the adder 11c, and the vector instruction Ins. 4 is executed by the adder 11d, so that these vector instructions 11b to Ins. 4 can be executed in parallel.

また、デコード部400にてベクトル命令Ins.1〜Ins.4の解読が行われると、それらのベクトル命令Ins.1〜Ins.4のオペコードopecodeおよびリピートアマウントrptamtに基づいて、これらのベクトル命令Ins.1〜Ins.4の依存関係を判断し、これらのベクトル命令Ins.1〜Ins.4を実行するために、何サイクル分の時間がかかるかを判定することができる。そして、これらのベクトル命令Ins.1〜Ins.4を実行するために必要なサイクル数分だけ、乗算器11a、11b、加算器11c、11dおよびベクトルレジスタ23bを動作させることにより、ベクトル命令Ins.1〜Ins.4を実行するために必要のないモジュールへのクロックの供給を停止させた状態で、ベクトル演算のパイプライン処理を並列に行うことができる。   Further, the decoding unit 400 executes the vector instruction Ins. 1-Ins. 4 are decoded, their vector instructions Ins. 1-Ins. Based on the opcode opecode of 4 and the repeat amount rptamt, these vector instructions Ins. 1-Ins. 4 dependencies are determined, and these vector instructions Ins. 1-Ins. It can be determined how many cycles it takes to execute 4. These vector instructions Ins. 1-Ins. 4 by operating the multipliers 11a and 11b, the adders 11c and 11d, and the vector register 23b for the number of cycles necessary to execute 4. 1-Ins. The pipeline processing of vector operations can be performed in parallel in a state in which the supply of clocks to modules that are not required to execute 4 is stopped.

一実施形態に係るコンピュータシステムの概略構成を示すブロック図。1 is a block diagram showing a schematic configuration of a computer system according to an embodiment. 図1の並列演算処理プロセッサ100の概略構成を示すブロック図。FIG. 2 is a block diagram showing a schematic configuration of a parallel processing processor 100 in FIG. 1. 図2のレジスタ20a、20bの概略構成を示すブロック図。FIG. 3 is a block diagram showing a schematic configuration of registers 20a and 20b in FIG. 2; ベクトル命令のデータ構造を示す図である。It is a figure which shows the data structure of a vector command. 図2の並列演算処理プロセッサ100のベクトル乗算処理を示す図。The figure which shows the vector multiplication process of the parallel processing processor 100 of FIG. 図2の並列演算処理プロセッサ100のパイプライン処理を示すブロック図。FIG. 3 is a block diagram showing pipeline processing of the parallel processing processor 100 of FIG. 2. 図2のクロック制御部80の概略構成を示すブロック図。FIG. 3 is a block diagram showing a schematic configuration of a clock control unit 80 in FIG. 2. 図7のクロックゲーティングマクロ回路の構成を示すブロック図。FIG. 8 is a block diagram showing the configuration of the clock gating macro circuit of FIG. 7. 図2の複数サイクル命令管理部50の概略構成を示すブロック図。FIG. 3 is a block diagram showing a schematic configuration of a multi-cycle instruction management unit 50 in FIG. 2. 図9のステートマシン52a〜52nの状態遷移を示す図。The figure which shows the state transition of the state machines 52a-52n of FIG. 図2の動作状態管理部70の概略構成を示すブロック図である。FIG. 3 is a block diagram illustrating a schematic configuration of an operation state management unit 70 in FIG. 2. 図11のクロック・電源切換部74の構成を示すブロック図である。FIG. 12 is a block diagram illustrating a configuration of a clock / power switching unit 74 in FIG. 11. 第2実施形態に係るクロックゲーティング方法を示すブロック図。The block diagram which shows the clock gating method which concerns on 2nd Embodiment. 第3実施形態に係るクロックゲーティング方法を示すブロック図。The block diagram which shows the clock gating method which concerns on 3rd Embodiment. 第4実施形態に係るクロックゲーティング方法を示すブロック図。The block diagram which shows the clock gating method which concerns on 4th Embodiment. 第5実施形態に係るベクトル演算型並列演算処理プロセッサの概略構成を示すブロック図。The block diagram which shows schematic structure of the vector calculation type | mold parallel arithmetic processing processor which concerns on 5th Embodiment.

符号の説明Explanation of symbols

100 並列演算処理プロセッサ、100a アクセス部、1 メモリアクセス部、2 ローカルメモリ、3 DMA、4 データキャッシュメモリ、5 プログラムキャッシュメモリ、6 共有メモリ、100b 演算処理部、10a、10b スカラー演算器、10c、10d ベクトル演算器、A1、11a、11b 乗算器、11c、11d 加算器、11e、11f 転送ユニット、12a〜12f 汎用演算器20a、21a、23a スカラーレジスタ、20b、21b、23b ベクトルレジスタ、30、300 フェッチ部、40、400 デコード部、100c 電力制御部、50 複数サイクル命令管理部、51 使用モジュール判定部、52a〜52n ステートマシン、53 電力制御信号生成部、60 タイマ、65 割込制御部、70 動作状態管理部、72 電力モード定義部、72a クロックモード定義部、72b クロックモードステートマシン、72c 電圧・周波数モード定義部、72d 電圧・周波数モードステートマシン、73 動作ユニット調整部、74 クロック・電源切換部、80 クロック制御部、85 電源制御部、110 メインメモリ、111 プログラムテキスト領域、112 初期化済みデータ領域、113 未初期化データ領域、114 ヒープ領域、115 スタック領域、200 アセンブリソースコード、210 アセンブラ、220 リンカ、230 実行プログラム、240 プログラムローダ、VR0〜VR2 ベクトルレジスタ、RB1 ルートバッファ、CG0〜CGn、CG11、CG12、CG00〜CG77 クロックゲーティングマクロ回路、M0〜Mn モジュール、82 ラッチ回路、83 アンド回路、84、F0〜F31 Dフリップフロップ、500 プログラムカウンタ、600 ステータスレジスタ 100 parallel processor, 100a access unit, 1 memory access unit, 2 local memory, 3 DMA, 4 data cache memory, 5 program cache memory, 6 shared memory, 100b operation processing unit, 10a, 10b scalar calculator, 10c, 10d vector computing unit, A1, 11a, 11b multiplier, 11c, 11d adder, 11e, 11f transfer unit, 12a-12f general purpose computing unit 20a, 21a, 23a scalar register, 20b, 21b, 23b vector register, 30, 300 Fetch unit, 40, 400 decode unit, 100c power control unit, 50 multi-cycle instruction management unit, 51 used module determination unit, 52a-52n state machine, 53 power control signal generation unit, 60 timer, 65 interrupt control unit 70 operation state management unit 72 power mode definition unit 72a clock mode definition unit 72b clock mode state machine 72c voltage / frequency mode definition unit 72d voltage / frequency mode state machine 73 operation unit adjustment unit 74 clock Power supply switching unit, 80 clock control unit, 85 power control unit, 110 main memory, 111 program text area, 112 initialized data area, 113 uninitialized data area, 114 heap area, 115 stack area, 200 assembly source code, 210 Assembler, 220 Linker, 230 Execution program, 240 Program loader, VR0 to VR2 vector register, RB1 Route buffer, CG0 to CGn, CG11, CG12, CG00 to CG77 Computing macro circuits, M0~Mn module, 82 a latch circuit, 83 an AND circuit, 84, F0~F31 D flip-flop, 500 a program counter, 600 Status Register

Claims (1)

命令で指定された演算処理を行う複数のモジュールと、
前記命令を実行するために必要な期間中に前記命令を実行するために必要なモジュールを選択して消費電力の制御を行う消費電力制御部とを備え、
前記モジュールは、
スカラー演算を行う複数のスカラー演算器と、
ベクトル演算を行う複数のベクトル演算器と、
スカラーデータを格納するスカラーレジスタと、
ベクトルデータを格納するベクトルレジスタとを備え、
前記消費電力制御部は、前記命令の種別がベクトル命令の場合、前記ベクトル命令の実行期間中に、前記ベクトル演算器および前記ベクトルレジスタにクロックを供給すると共に、前記スカラー演算器および前記スカラーレジスタへのクロックの供給を停止し、
前記ベクトルレジスタを構成するレジスタ単位で設けられ、前記命令を実行するために必要な期間中に前記命令を実行するために必要な前記ベクトルレジスタを構成するレジスタを選択して消費電力の制御を局所的に行なう局所電力制御部をさらに備え、
前記ベクトルレジスタを構成するレジスタ単位で挿入されたクロックゲーティングマクロ回路が設けられ、
前記局所電力制御部は、前記命令を実行するために必要な期間中に前記命令を実行するために必要な前記ベクトルレジスタを構成するレジスタに対応した前記クロックゲーティングマクロ回路にイネーブル信号を供給することにより、前記命令を実行するために必要な前記ベクトルレジスタを構成するレジスタを選択し、前記命令の実行において使用されない前記ベクトルレジスタを構成するレジスタに対応した前記クロックゲーティングマクロ回路にイネーブル信号を供給しないことを特徴とする演算処理装置。
A plurality of modules that perform the arithmetic processing specified by the instruction;
A power consumption control unit that performs power consumption control by selecting a module necessary for executing the instruction during a period necessary for executing the instruction;
The module is
A plurality of scalar calculators for performing scalar calculations;
A plurality of vector operators for performing vector operations;
A scalar register for storing scalar data;
A vector register for storing vector data,
When the type of the instruction is a vector instruction, the power consumption control unit supplies a clock to the vector arithmetic unit and the vector register during execution of the vector instruction, and supplies the clock to the scalar arithmetic unit and the scalar register. Stop the clock supply,
Provided in units of registers constituting the vector register, and select a register constituting the vector register necessary for executing the instruction during a period necessary for executing the instruction to control power consumption locally. A local power control unit that automatically performs
A clock gating macro circuit inserted in register units constituting the vector register is provided,
The local power control unit supplies an enable signal to the clock gating macro circuit corresponding to a register constituting the vector register necessary for executing the instruction during a period necessary for executing the instruction. By selecting a register constituting the vector register necessary for executing the instruction, an enable signal is sent to the clock gating macro circuit corresponding to the register constituting the vector register that is not used in the execution of the instruction. An arithmetic processing apparatus characterized by not supplying .
JP2004044656A 2004-02-20 2004-02-20 Arithmetic processing unit Expired - Fee Related JP4800582B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004044656A JP4800582B2 (en) 2004-02-20 2004-02-20 Arithmetic processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004044656A JP4800582B2 (en) 2004-02-20 2004-02-20 Arithmetic processing unit

Publications (2)

Publication Number Publication Date
JP2005234968A JP2005234968A (en) 2005-09-02
JP4800582B2 true JP4800582B2 (en) 2011-10-26

Family

ID=35017857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004044656A Expired - Fee Related JP4800582B2 (en) 2004-02-20 2004-02-20 Arithmetic processing unit

Country Status (1)

Country Link
JP (1) JP4800582B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977680B2 (en) 2016-09-30 2018-05-22 International Business Machines Corporation Clock-gating for multicycle instructions

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183860A (en) * 2006-01-10 2007-07-19 Nec Electronics Corp Clock control circuit
WO2008012874A1 (en) 2006-07-25 2008-01-31 National University Corporation Nagoya University Operation processing device
JP5491113B2 (en) * 2009-09-18 2014-05-14 エヌイーシーコンピュータテクノ株式会社 Vector processing apparatus, vector processing method, and program
CN106057819B (en) * 2009-10-30 2019-03-15 株式会社半导体能源研究所 Semiconductor device
JP5946251B2 (en) * 2011-07-06 2016-07-06 ルネサスエレクトロニクス株式会社 Semiconductor device and system
JP5806529B2 (en) 2011-07-06 2015-11-10 ルネサスエレクトロニクス株式会社 Semiconductor device, radio communication terminal using the same, and clock frequency control method
US9098265B2 (en) * 2012-07-11 2015-08-04 Arm Limited Controlling an order for processing data elements during vector processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977680B2 (en) 2016-09-30 2018-05-22 International Business Machines Corporation Clock-gating for multicycle instructions
US10552167B2 (en) 2016-09-30 2020-02-04 International Business Machines Corporation Clock-gating for multicycle instructions

Also Published As

Publication number Publication date
JP2005234968A (en) 2005-09-02

Similar Documents

Publication Publication Date Title
KR20010080367A (en) Data processor
JP2002512399A (en) RISC processor with context switch register set accessible by external coprocessor
JP2006509290A (en) Register file gating to reduce microprocessor power consumption
US10599428B2 (en) Relaxed execution of overlapping mixed-scalar-vector instructions
JP2004171573A (en) Coprocessor extension architecture built by using novel splint-instruction transaction model
JP2011039982A (en) Processor
JP4800582B2 (en) Arithmetic processing unit
Biswas et al. Automatic identification of application-specific functional units with architecturally visible storage
KR101077425B1 (en) Efficient interrupt return address save mechanism
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
JP4073721B2 (en) Data processing device
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US6049864A (en) Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
JP3729142B2 (en) Parallel processing unit
KR102379886B1 (en) Vector instruction processing
JP2008242947A (en) Semiconductor device
JP2003196085A (en) Information processor
JP2011186850A (en) Data processing system and method of controlling the same
JP3511691B2 (en) Arithmetic processing unit
JP2001014161A (en) Programmable controller
JP2000029696A (en) Processor, and pipeline process control method
WO2004025468A1 (en) Semiconductor device
JP3853309B2 (en) Microprocessor and compiling device for a program executed by the microprocessor
JP2016004383A (en) Semiconductor device and method for manufacturing the same
JP2004199630A (en) Data processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070207

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091109

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091118

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20091211

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: 20110804

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees