JP2005327178A - Processor, its compiler, and information processor including it - Google Patents

Processor, its compiler, and information processor including it Download PDF

Info

Publication number
JP2005327178A
JP2005327178A JP2004146258A JP2004146258A JP2005327178A JP 2005327178 A JP2005327178 A JP 2005327178A JP 2004146258 A JP2004146258 A JP 2004146258A JP 2004146258 A JP2004146258 A JP 2004146258A JP 2005327178 A JP2005327178 A JP 2005327178A
Authority
JP
Japan
Prior art keywords
instruction
instructions
decoding
parallel
processor
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.)
Withdrawn
Application number
JP2004146258A
Other languages
Japanese (ja)
Inventor
Hayato Fujiwara
隼人 藤原
Hirokazu Takada
浩和 高田
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004146258A priority Critical patent/JP2005327178A/en
Publication of JP2005327178A publication Critical patent/JP2005327178A/en
Withdrawn 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

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Power Sources (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processor capable of reducing power consumption in a peak time. <P>SOLUTION: This processor includes an instruction decode part 11 decoding a fetched instruction and a plurality of computing units from 12-1 to 12-4 executing computing according to a decode result by the instruction decode part 11. The instruction decode part 11 retracts dependent data to a register to use them when fetched instructions are parallel instructions including a plurality of instructions and there is dependency between a plurality of instructions. In this way, the parallel instructions are sequentially operated by a part of the computing units among the plurality of computing units from 12-1 to 12-4. Therefore, a part of the computing units are not required to be operated, and consequently, power consumption in the peak time can be lowered. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、VLIW(Very Long Instruction Word)方式やスーパースカラなどの複数の命令を同時に実行することが可能なプロセッサに関し、消費電力を低減することが可能なプロセッサ、そのコンパイラおよびそれを含んだ情報処理装置に関する。   The present invention relates to a processor capable of simultaneously executing a plurality of instructions such as a VLIW (Very Long Instruction Word) method and a superscalar, a processor capable of reducing power consumption, a compiler thereof, and information including the same The present invention relates to a processing apparatus.

近年、社会の情報化に伴い、高度な情報処理を行なうためのプロセッサの性能向上が求められている。このようなプロセッサの性能向上を実現する方法の1つとして、1つのプロセッサが複数の命令を同時に実行することを挙げることができる。このようなプロセッサとして、VLIW方式やスーパースカラなどのプロセッサが知られている。   In recent years, with the progress of informatization in society, there has been a demand for improving the performance of processors for performing advanced information processing. One method for realizing such an improvement in processor performance is that one processor executes a plurality of instructions simultaneously. As such a processor, a processor such as a VLIW system or a superscalar is known.

VLIW方式のプロセッサは、複数の演算器を有する。コンパイラがプログラムのコンパイル時に命令の並列性を検出し、並列実行可能な命令を生成する。そして、プロセッサが並列実行可能な命令を複数の演算器で並列に実行することによって、処理速度の向上を図っている。   A VLIW processor has a plurality of computing units. A compiler detects parallelism of instructions when compiling a program, and generates instructions that can be executed in parallel. The processor can execute instructions that can be executed in parallel by a plurality of arithmetic units in parallel, thereby improving the processing speed.

また、スーパースカラは、命令を処理するパイプラインを複数有し、命令実行時にハードウェアによって逐次的な命令として記述されたプログラムから命令レベル並列性を検出する。そして、スケジューラが並列実行可能な命令をそれぞれのパイプラインに投入することによって、処理速度の向上を図っている。   The superscalar has a plurality of pipelines for processing instructions, and detects instruction level parallelism from a program described as sequential instructions by hardware at the time of instruction execution. The scheduler inputs the instructions that can be executed in parallel into each pipeline, thereby improving the processing speed.

一方、大規模な回路を集積したLSI(Large Scale Integrated circuit)が、ワークステーションやパーソナルコンピュータのみならず、テレビや携帯電話などの家庭用電気製品にも多く使用されている。このような家庭用電気製品においては、製品の消費電力を削減することが求められており、特に携帯電話などで顕著である。これに伴い、LSIにおいても低消費電力化が求められている。これに関連する技術として、VLIW方式のプロセッサの低消費電力化に関する非特許文献1や、マルチメディアプロセッサの低消費電力化に関する非特許文献2を挙げることができる。   On the other hand, LSIs (Large Scale Integrated circuits) in which large-scale circuits are integrated are often used not only in workstations and personal computers but also in household electrical products such as televisions and mobile phones. In such household electric products, it is required to reduce the power consumption of the products, and this is particularly noticeable in mobile phones and the like. Along with this, low power consumption is also required in LSIs. As related technologies, Non-Patent Document 1 regarding the reduction in power consumption of a VLIW processor and Non-Patent Document 2 regarding the reduction of power consumption of a multimedia processor can be cited.

また、特許文献1に記載のデータ処理装置においては、命令をデコードし、命令が複数の演算を実行する命令であることを検出する検出部と、検出部によって複数の演算を実行する命令であることが検出されると、予め定められた1回の演算数に基づいて、命令の一部のフィールドを演算順序に基づいて組替えるフィールド組替え部と、組替えたフィールドの順序に同期して複数サイクルで演算実行するための制御を行なう演算制御部とを含むデコーダと、演算制御部からの制御に基づいて、命令を複数サイクルに分けて演算を実行する演算部とを有する。
特開平7−253888号公報 Low-Power VLIW Processors: A High-Level Evaluation. J. M. Puiatti, C. Piguet, E.Sanchez, J. Llosa. Proc. of Int. Workshop - Power and Timing Modeling, Optimization and Simulation) Low-Power Architectures for Programmable Multimedia Processors. Takao NISHITANI. IEICE TRANS. FUNDAMENTALS, VOL.E82-A, NO.2 Feb. 1999)
In addition, in the data processing device described in Patent Document 1, a detection unit that decodes an instruction and detects that the instruction is an instruction that executes a plurality of operations, and an instruction that executes a plurality of operations by the detection unit When a certain number of operations is detected, a field rearrangement unit that rearranges some fields of the instruction based on the operation order based on a predetermined number of operations, and a plurality of cycles in synchronization with the order of the rearranged fields A decoder including an arithmetic control unit that performs control for executing an operation in the computer, and an arithmetic unit that executes an operation by dividing an instruction into a plurality of cycles based on control from the arithmetic control unit.
JP-A-7-253888 Low-Power VLIW Processors: A High-Level Evaluation. JM Puiatti, C. Piguet, E. Sanchez, J. Llosa. Proc. Of Int. Workshop-Power and Timing Modeling, Optimization and Simulation) Low-Power Architectures for Programmable Multimedia Processors. Takao NISHITANI. IEICE TRANS. FUNDAMENTALS, VOL.E82-A, NO.2 Feb. 1999)

上述したVLIW方式のプロセッサやスーパースカラにおいては、常に複数の演算器が動作する。そのため、高い処理能力を必要としない動作条件下や、消費電力を低減したい動作条件下においても、消費電力が大きくなってしまうといった問題点があった。   In the above-described VLIW processor and superscalar, a plurality of arithmetic units always operate. For this reason, there is a problem in that power consumption increases even under operating conditions that do not require high processing capacity or under operating conditions where it is desired to reduce power consumption.

また、特許文献1に記載のデータ処理装置においては、複数演算を有する複合命令を幾つかの実行単位に対応、または分割して処理することで、コンパクトで低消費電力のデータ処理装置を提供することができる。しかしながら、どのような条件下で複合命令を分割して処理するのかが開示されていないため、このデータ処理装置をそのままシステムに組込むことはできない。   Further, the data processing apparatus described in Patent Document 1 provides a compact and low power consumption data processing apparatus by processing a composite instruction having a plurality of operations corresponding to or divided into several execution units. be able to. However, since it is not disclosed under what conditions the compound instruction is divided and processed, this data processing apparatus cannot be incorporated into the system as it is.

本発明は、上記問題点を解決するためになされたものであり、第1の目的は、ピーク時における消費電力を低減させることが可能なプロセッサおよびそれを含んだ情報処理装置を提供することである。   The present invention has been made to solve the above problems, and a first object of the present invention is to provide a processor capable of reducing power consumption at a peak time and an information processing apparatus including the processor. is there.

第2の目的は、プロセッサにおけるピーク時の消費電力を低減させることができるように命令コードを生成するコンパイル装置を提供することである。   A second object is to provide a compiling device that generates instruction code so that power consumption at a peak time in a processor can be reduced.

本発明のある局面に従えば、複数の命令を同時に実行することが可能なプロセッサであって、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性がある場合、依存性があるデータをレジスタに退避して使用することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to one aspect of the present invention, a processor capable of executing a plurality of instructions simultaneously, an instruction decoding unit for decoding a fetched instruction, and an operation according to a decoding result by the instruction decoding unit The instruction decoding means is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions. By saving certain data in a register and using it, a parallel instruction is sequentially executed by some of the arithmetic means.

本発明の別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサであって、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性がある場合、例外を発生させて並列命令をソフトウェアでエミュレートすることによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to another aspect of the present invention, a processor capable of simultaneously executing a plurality of instructions, an instruction decoding unit for decoding a fetched instruction, and a decoding result by the instruction decoding unit, A plurality of arithmetic means for performing an operation, and the instruction decoding means determines that an exception is given if the fetched instruction is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions. By generating and emulating parallel instructions by software, the parallel instructions are sequentially executed by some of the arithmetic means.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサであって、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段と、命令を格納するための格納手段とを含み、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性がある場合、並列命令を逐次命令群に変換して格納手段に格納し、逐次命令群を順次読出すことによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to still another aspect of the present invention, there is provided a processor capable of executing a plurality of instructions at the same time, according to an instruction decoding means for decoding a fetched instruction, and a decoding result by the instruction decoding means. A plurality of arithmetic means for executing an operation and a storage means for storing an instruction, wherein the instruction decoding means is a parallel instruction in which the fetched instruction includes a plurality of instructions, and the plurality of instructions When there is a dependency between the parallel instructions, the parallel instructions are converted into sequential instruction groups, stored in the storage means, and the sequential instruction groups are sequentially read out, so that the parallel instructions are partially calculated among the plurality of calculation means. Are executed sequentially.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサであって、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、命令デコード手段は、フェッチされた命令がコプロセッサ命令であれば、例外を発生させてコプロセッサ命令をソフトウェアでエミュレートすることによって、コプロセッサ命令を複数の演算手段に実行させる。   According to still another aspect of the present invention, there is provided a processor capable of executing a plurality of instructions at the same time, according to an instruction decoding means for decoding a fetched instruction, and a decoding result by the instruction decoding means. The instruction decoding means generates an exception and emulates the coprocessor instruction in software by generating an exception if the fetched instruction is a coprocessor instruction. A processor instruction is executed by a plurality of arithmetic means.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサによって実行されるプログラムをコンパイルするコンパイラであって、命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性があるか否かを判定するための条件判定手段と、条件判定手段によって依存性があると判定された場合、並列命令を逐次命令の命令コードに変換して出力するための命令コード生成手段とを含む。   According to still another aspect of the present invention, a compiler for compiling a program executed by a processor capable of executing a plurality of instructions simultaneously, wherein the instructions are parallel instructions including a plurality of instructions, and Condition determining means for determining whether or not there is a dependency between a plurality of instructions, and when the condition determining means determines that there is a dependency, the parallel instruction is converted into an instruction code of a sequential instruction and output Instruction code generation means.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサによって実行されるプログラムをコンパイルするコンパイラであって、命令が複数の命令を含んだ並列命令であり、かつ複数の命令の消費電力が所定値以上であるか否かを判定するための条件判定手段と、条件判定手段によって消費電力が所定値以上であると判定された場合、並列命令を逐次命令の命令コードに変換して出力するための命令コード生成手段とを含む。   According to still another aspect of the present invention, a compiler for compiling a program executed by a processor capable of executing a plurality of instructions simultaneously, wherein the instructions are parallel instructions including a plurality of instructions, and Condition determining means for determining whether or not the power consumption of a plurality of instructions is greater than or equal to a predetermined value, and when the condition determination means determines that the power consumption is greater than or equal to a predetermined value, the parallel instructions are sequentially instructions Instruction code generation means for converting the code into a code and outputting the code.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサによって実行されるプログラムをコンパイルするコンパイラであって、命令が複数の命令を含んだ並列命令であり、かつ複数の命令の消費電力が所定値以上であるか否かを判定するための条件判定手段と、条件判定手段によって消費電力が所定値以上であると判定された場合、並列命令に含まれる複数の命令のいずれかを前後の命令と入替えて命令コードを生成するための命令コード生成手段とを含む。   According to still another aspect of the present invention, a compiler for compiling a program executed by a processor capable of executing a plurality of instructions simultaneously, wherein the instructions are parallel instructions including a plurality of instructions, and Condition determining means for determining whether or not the power consumption of a plurality of instructions is greater than or equal to a predetermined value, and when the condition determination means determines that the power consumption is greater than or equal to a predetermined value, the plurality of instructions included in the parallel instruction Instruction code generation means for generating an instruction code by replacing any of the instructions with the preceding and succeeding instructions.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサと、温度を計測するための計測手段とを含んだ情報処理装置であって、プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、計測手段によって計測された温度が所定値以上の場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to still another aspect of the present invention, there is provided an information processing apparatus including a processor capable of executing a plurality of instructions simultaneously and a measuring unit for measuring temperature, wherein the processor is fetched An instruction decoding means for decoding an instruction, and a plurality of operation means for executing an operation according to a result of decoding by the instruction decoding means, and when the temperature measured by the measuring means is a predetermined value or more, the instruction If the fetched instruction is a parallel instruction including a plurality of instructions, the decoding means converts the parallel instruction into a sequential instruction so that the parallel instruction is sequentially transferred to a part of the plurality of arithmetic means. To run.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサと、電流を計測するための計測手段とを含んだ情報処理装置であって、プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、計測手段によって計測された情報処理装置に供給される電流が所定値以上の場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to still another aspect of the present invention, there is provided an information processing apparatus including a processor capable of executing a plurality of instructions at the same time and a measurement unit for measuring current, wherein the processor is fetched An instruction decoding means for decoding an instruction and a plurality of arithmetic means for executing an operation according to a decoding result by the instruction decoding means, and a current supplied to the information processing device measured by the measuring means When the value is equal to or greater than the predetermined value, the instruction decoding means converts the parallel instruction into one of the plurality of arithmetic means by converting the parallel instruction into a sequential instruction if the fetched instruction is a parallel instruction including a plurality of instructions. Are sequentially executed by the operation means of the unit.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサを含んだ情報処理装置であって、プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、外部から入力される信号が所定の値を示す場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to still another aspect of the present invention, there is provided an information processing apparatus including a processor capable of simultaneously executing a plurality of instructions, the processor comprising: instruction decoding means for decoding the fetched instruction; A plurality of arithmetic means for executing an operation according to a result of decoding by the instruction decoding means, and when an externally input signal indicates a predetermined value, the instruction decoding means includes a plurality of fetched instructions If the instruction includes a parallel instruction, the parallel instruction is converted into a sequential instruction, whereby the parallel instruction is sequentially executed by some of the arithmetic means.

本発明のさらに別の局面に従えば、複数の命令を同時に実行することが可能なプロセッサと、書換えが可能なレジスタとを含んだ情報処理装置であって、プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、レジスタに所定値が格納されている場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させる。   According to still another aspect of the present invention, an information processing apparatus including a processor capable of executing a plurality of instructions simultaneously and a rewritable register, wherein the processor decodes a fetched instruction Instruction decoding means for performing the operation and a plurality of operation means for executing the operation according to the result of decoding by the instruction decoding means, and when the predetermined value is stored in the register, the instruction decoding means is fetched If the received instruction is a parallel instruction including a plurality of instructions, the parallel instruction is sequentially executed by some of the plurality of operation means by converting the parallel instruction into a sequential instruction.

本発明のある局面によれば、命令デコード手段が、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性がある場合、依存性があるデータをレジスタに退避して使用することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させるので、演算手段の一部を動作させる必要がなくなり、ピーク時における消費電力を低減させることが可能となった。   According to an aspect of the present invention, the instruction decoding unit registers the dependent data when the fetched instruction is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions. By saving and using, the parallel instructions are sequentially executed by some of the computing means among the plurality of computing means, so there is no need to operate a part of the computing means and the power consumption at the peak time is reduced. It became possible to reduce.

本発明の別の局面によれば、命令デコード手段が、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性がある場合、例外を発生させて並列命令をソフトウェアでエミュレートすることによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させるので、演算手段の一部を動作させる必要がなくなり、ピーク時における消費電力を低減させることが可能となった。   According to another aspect of the present invention, the instruction decoding means generates an exception when the fetched instruction is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions, and performs parallel processing. By emulating instructions with software, parallel instructions are executed sequentially by some of the computing means, eliminating the need to operate some of the computing means and power consumption during peak hours Can be reduced.

本発明のさらに別の局面によれば、命令デコード手段が、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ複数の命令の間に依存性がある場合、並列命令を逐次命令群に変換して格納手段に格納し、逐次命令群を順次読出すことによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させるので、演算手段の一部を動作させる必要がなくなり、ピーク時における消費電力を低減させることが可能となった。   According to still another aspect of the present invention, when the instruction decode means is a parallel instruction including a plurality of instructions and the dependency is between the plurality of instructions, the parallel instruction is sequentially processed. By converting the data into groups and storing them in the storage means, and sequentially reading out the sequential instruction group, the parallel instructions are sequentially executed by some of the arithmetic means. It is no longer necessary to operate, and it is possible to reduce power consumption during peak hours.

本発明のさらに別の局面によれば、命令デコード手段が、フェッチされた命令がコプロセッサ命令であれば、例外を発生させてコプロセッサ命令をソフトウェアでエミュレートすることによって、コプロセッサ命令を複数の演算手段に実行させるので、コプロセッサを動作させる必要がなくなり、ピーク時における消費電力を低減させることが可能となった
本発明のさらに別の局面によれば、条件判定手段によって依存性があると判定された場合、命令コード生成手段が、並列命令を逐次命令の命令コードに変換して出力するので、プロセッサのピーク時における消費電力を低減させることが可能となるように命令コードを生成することが可能となった。
According to yet another aspect of the present invention, if the instruction decoding means is a coprocessor instruction, the instruction decoding means generates an exception and emulates the coprocessor instruction in software, thereby generating a plurality of coprocessor instructions. According to still another aspect of the present invention, there is a dependency depending on the condition determination means. If it is determined that the instruction code is generated, the instruction code generation means converts the parallel instruction into the instruction code of the sequential instruction and outputs the instruction code, so that the instruction code is generated so that the power consumption at the peak time of the processor can be reduced. It became possible.

本発明のさらに別の局面によれば、条件判定手段によって消費電力が所定値以上であると判定された場合、命令コード生成手段が、並列命令を逐次命令の命令コードに変換して出力するので、プロセッサのピーク時における消費電力を低減させることが可能となるように命令コードを生成することが可能となった。   According to still another aspect of the present invention, when the condition determining unit determines that the power consumption is equal to or greater than a predetermined value, the instruction code generating unit converts the parallel instruction into an instruction code of a sequential instruction and outputs the instruction code. The instruction code can be generated so that the power consumption at the peak time of the processor can be reduced.

本発明のさらに別の局面によれば、条件判定手段によって消費電力が所定値以上であると判定された場合、命令コード生成手段が、並列命令に含まれる複数の命令のいずれかを前後の命令と入替えて命令コードを生成するので、プロセッサのピーク時における消費電力を低減させることが可能となるように命令コードを生成することが可能となった。   According to still another aspect of the present invention, when the condition determination unit determines that the power consumption is equal to or greater than a predetermined value, the instruction code generation unit replaces any of the plurality of instructions included in the parallel instruction with the preceding and following instructions. Therefore, the instruction code can be generated so that the power consumption at the peak time of the processor can be reduced.

本発明のさらに別の局面によれば、計測手段によって計測された温度が所定値以上の場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させるので、情報処理装置の温度が必要以上に高くなることを防止でき、プロセッサの誤動作等を防止することが可能となった。   According to still another aspect of the present invention, when the temperature measured by the measuring unit is equal to or higher than a predetermined value, the instruction decoding unit outputs the parallel instruction if the fetched instruction includes a plurality of instructions. By converting to sequential instructions, parallel instructions are sequentially executed by some of the computing means among a plurality of computing means, so that the temperature of the information processing device can be prevented from becoming higher than necessary, and the processor malfunctions. Etc. can be prevented.

本発明のさらに別の局面によれば、計測手段によって計測された情報処理装置に供給される電流が所定値以上の場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させるので、情報処理装置に供給される電流が必要以上に大きくなることを防止でき、プロセッサの誤動作等を防止することが可能となった。   According to still another aspect of the present invention, when the current supplied to the information processing apparatus measured by the measuring unit is equal to or greater than a predetermined value, the instruction decoding unit is configured to execute a parallel instruction in which the fetched instruction includes a plurality of instructions. If so, by converting the parallel instruction into the sequential instruction, the parallel instruction is executed sequentially by some of the arithmetic means, so that the current supplied to the information processing device is more than necessary. It is possible to prevent the processor from becoming large and to prevent malfunction of the processor.

本発明のさらに別の局面によれば、外部から入力される信号が所定の値を示す場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させるので、外部から低消費電力モードの切替えを行なうことが可能となった。   According to still another aspect of the present invention, when the signal input from the outside indicates a predetermined value, the instruction decoding means outputs the parallel instruction if the fetched instruction includes a plurality of instructions. By converting to sequential instructions, the parallel instructions are sequentially executed by some of the plurality of computing means, so that the low power consumption mode can be switched from the outside.

本発明のさらに別の局面によれば、レジスタに所定値が格納されている場合、命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、並列命令を逐次命令に変換することによって、並列命令を複数の演算手段の中の一部の演算手段に逐次的に実行させるので、プログラムによって低消費電力モードの切替えを行なうことが可能となった。   According to still another aspect of the present invention, when a predetermined value is stored in the register, the instruction decoding means converts the parallel instruction into a sequential instruction if the fetched instruction is a parallel instruction including a plurality of instructions. By converting, the parallel instructions are sequentially executed by some of the arithmetic means among the plurality of arithmetic means, so that the low power consumption mode can be switched by the program.

(第1の実施の形態)
図1は、本発明の第1の実施の形態におけるVLIW方式のプロセッサの概略構成を示すブロック図である。このVLIW方式のプロセッサは、図示しない命令フェッチ部によってフェッチされた命令列をデコードする命令デコード部11と、命令デコード部11によるデコード結果に応じて命令列を実行する複数の演算器(PU)12−1〜12−4とを含む。
(First embodiment)
FIG. 1 is a block diagram showing a schematic configuration of a VLIW processor according to the first embodiment of the present invention. The VLIW processor includes an instruction decode unit 11 that decodes an instruction sequence fetched by an instruction fetch unit (not shown), and a plurality of arithmetic units (PUs) 12 that execute an instruction sequence according to a decoding result by the instruction decode unit 11. -1 to 12-4.

図2は、本発明の第1の実施の形態におけるVLIW方式のプロセッサによって実行される命令フォーマットの一例を示す図である。この命令フォーマットは、32ビットによって構成される。MSB(Most Significant Bit)21が“0”の場合には、2つの16ビット命令によって構成され、MSB21が“1”の場合には、1つの32ビット命令によって構成されることを示している。   FIG. 2 is a diagram illustrating an example of an instruction format executed by the VLIW processor according to the first embodiment of this invention. This instruction format is composed of 32 bits. When the MSB (Most Significant Bit) 21 is “0”, it is composed of two 16-bit instructions, and when the MSB 21 is “1”, it is composed of one 32-bit instruction.

また、MSB21が“0”であり、MSB22が“0”の場合には、2つの16ビット命令が逐次実行されることを示している。また、MSB21が“0”であり、MSB22が“1”の場合には、2つの16ビット命令が並列実行されることを示している。なお、図2においては、MSB21によって1つの32ビット命令であるか、2つの16ビット命令であるかを示しているが、命令フィールドを3つ以上のフィールドに分割し、3つ以上の命令の逐次実行/並列実行を選択できるようにしてもよい。また、命令のビット数はこれに限られるものではない。   Further, when the MSB 21 is “0” and the MSB 22 is “0”, two 16-bit instructions are sequentially executed. Further, when the MSB 21 is “0” and the MSB 22 is “1”, it indicates that two 16-bit instructions are executed in parallel. In FIG. 2, the MSB 21 indicates one 32-bit instruction or two 16-bit instructions. However, the instruction field is divided into three or more fields, and three or more instruction Sequential execution / parallel execution may be selected. Further, the number of bits of the instruction is not limited to this.

図3は、本発明の第1の実施の形態におけるVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。なお、処理手順の一例として、図1に示すVLIW方式のプロセッサによって図2に示す命令が実行される場合について説明するものとし、演算器12−1および12−2のみが動作するものとする。   FIG. 3 is a flowchart for explaining the processing procedure of the VLIW processor according to the first embodiment of this invention. As an example of the processing procedure, the case where the instruction shown in FIG. 2 is executed by the VLIW processor shown in FIG. 1 will be described, and only the arithmetic units 12-1 and 12-2 operate.

まず、命令デコード部11は、命令が2つの16ビット命令であり(MSB21=0)、かつ並列実行(MSB22=1)の場合、低消費電力モード信号に応じて低消費電力モードであるか否かを判定する(S11)。なお、命令デコード部11は、命令が1つの32ビット命令の場合(MSB21=1)、そのデコード結果を演算器12−1または12−2に出力することによって、32ビット命令を実行させる。   First, when the instruction is two 16-bit instructions (MSB21 = 0) and executed in parallel (MSB22 = 1), the instruction decoding unit 11 determines whether or not the low power consumption mode is set according to the low power consumption mode signal. Is determined (S11). When the instruction is one 32-bit instruction (MSB21 = 1), the instruction decoding unit 11 outputs the decoding result to the arithmetic unit 12-1 or 12-2 to execute the 32-bit instruction.

また、2つの16ビット命令の逐次実行の場合(MSB21=0,MSB22=0)、命令デコード部11は最初のサイクルで上位の16ビット命令のデコード結果を演算器12−1または12−2に出力することによって最初の16ビット命令を実行させ、次のサイクルで下位の16ビット命令のデコード結果を演算器12−1または12−2に出力することによって次の16ビット命令を実行させる。   In the case of sequential execution of two 16-bit instructions (MSB21 = 0, MSB22 = 0), the instruction decoding unit 11 sends the decoding result of the higher-order 16-bit instruction to the arithmetic unit 12-1 or 12-2 in the first cycle. The first 16-bit instruction is executed by outputting, and the decoding result of the lower 16-bit instruction is output to the arithmetic unit 12-1 or 12-2 in the next cycle, so that the next 16-bit instruction is executed.

低消費電力モードでない場合(S11,No)、命令デコード部11は演算器12−1および12−2に2つの16ビット命令のデコード結果を同時に出力することによって、2つの16ビット命令を並列に実行させる(S15)。   When not in the low power consumption mode (S11, No), the instruction decoding unit 11 outputs two 16-bit instructions in parallel by simultaneously outputting the decoding results of the two 16-bit instructions to the arithmetic units 12-1 and 12-2. (S15).

また、低消費電力モードの場合(S11,Yes)、命令デコード部11は2つの16ビット命令をデコードすることによって、2つの16ビット命令の間に依存関係があるか否かを判定する(S12)。   In the case of the low power consumption mode (S11, Yes), the instruction decoding unit 11 determines whether there is a dependency between the two 16-bit instructions by decoding the two 16-bit instructions (S12). ).

2つの16ビット命令の間に依存関係がない場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっておらず、かつ一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照しない場合には(S12,No)、ステップS14に処理が進む。   If there is no dependency between two 16-bit instructions, that is, the destination operand of one 16-bit instruction is not the source operand of the other 16-bit instruction and one 16-bit instruction is If the condition bit is changed and the other 16-bit instruction does not refer to the condition bit (S12, No), the process proceeds to step S14.

また、2つの16ビット命令の間に依存関係がある場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっている場合、または一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照する場合には(S12,Yes)、命令デコード部11はオペランドの値やコンディションビットの値をバックアップ用のレジスタに退避させる(S13)。   Also, if there is a dependency between two 16-bit instructions, that is, if the destination operand of one 16-bit instruction is the source operand of the other 16-bit instruction, or one 16-bit instruction When the instruction changes the condition bit and the other 16-bit instruction refers to the condition bit (Yes in S12), the instruction decoding unit 11 saves the operand value and the condition bit value in the backup register ( S13).

ステップS14において、命令デコード部11はMSB22の値を無視して“0”であるとし、2つの16ビット命令を逐次実行させる。すなわち、命令デコード部11は、最初のサイクルで上位の16ビット命令のデコード結果を演算器12−1または12−2に出力することによって最初の16ビット命令を実行させ、次のサイクルで下位の16ビット命令のデコード結果を演算器12−1または12−2に出力することによって次の16ビット命令を実行させる。   In step S14, the instruction decoding unit 11 ignores the value of the MSB 22 and assumes that it is “0”, and sequentially executes two 16-bit instructions. That is, the instruction decoding unit 11 executes the first 16-bit instruction by outputting the decoding result of the upper 16-bit instruction to the arithmetic unit 12-1 or 12-2 in the first cycle, and lower-order in the next cycle. By outputting the decoding result of the 16-bit instruction to the arithmetic unit 12-1 or 12-2, the next 16-bit instruction is executed.

なお、2つの16ビット命令の間に依存関係がある場合、命令デコード部11は2番目の命令を演算器に実行させるときにバックアップ用のレジスタに退避された値を用いて演算を行なわせる。また、2つの16ビット命令は同じ演算器によって演算が行なわれ、他方の演算器は動作しないものとする。   When there is a dependency relationship between two 16-bit instructions, the instruction decoding unit 11 performs an operation using the value saved in the backup register when the arithmetic unit executes the second instruction. Two 16-bit instructions are operated by the same arithmetic unit, and the other arithmetic unit does not operate.

ここで、2つの16ビット命令が共にコンディションビットを変更するような命令である場合も考えられるが、元々このような並列実行される命令が生成されるのは禁止されているので、このような場合を考慮する必要はない。   Here, there are cases where two 16-bit instructions are instructions that change the condition bit, but since it is prohibited to generate such instructions that are executed in parallel originally, There is no need to consider the case.

また、使用しなくなった演算器等に対するクロックや電源等の供給を停止することによって、さらに消費電力を低減することが可能となる。   In addition, power consumption can be further reduced by stopping the supply of a clock, a power supply, and the like to a computing unit that is no longer used.

また、クロックや電源等の供給を停止している演算器等のリソースを使用しようとした場合、例外を発生させてソフトウェアでそれをエミュレートするようにしてもよい。   In addition, when trying to use a resource such as a computing unit that has stopped supplying a clock or power, an exception may be generated and emulated by software.

また、クロックや電源等の供給を停止している演算器等のリソースを使用しようとした場合、そのリソースへのクロックや電源等の供給を再開し、これらを使用可能な状態にしてから命令を実行するようにしてもよい。   Also, if you try to use a resource such as a computing unit that has stopped supplying clocks and power, etc., restart the supply of clocks and power to that resource, make them available, and then issue an instruction. You may make it perform.

以上説明したように、本実施の形態におけるVLIW方式のプロセッサによれば、低消費電力モードであり、かつ2つの16ビット命令が並列実行されることが示される場合に、命令デコード部11が2つの16ビット命令を1つの演算器に逐次実行させるようにしたので、一部の演算器を動作させる必要がなくなる。これによって、演算器などの回路を同時に動作させる必要がなくなり、ピーク時における消費電力を低減させることが可能となった。   As described above, according to the VLIW processor of the present embodiment, the instruction decode unit 11 is set to 2 when it is in the low power consumption mode and two 16-bit instructions are executed in parallel. Since one 16-bit instruction is sequentially executed by one arithmetic unit, it is not necessary to operate some arithmetic units. As a result, it is not necessary to operate a circuit such as an arithmetic unit at the same time, and the power consumption at the peak time can be reduced.

(第2の実施の形態)
本発明の第2の実施の形態におけるVLIW方式のプロセッサの概略構成は、図1に示す第1の実施の形態におけるVLIW方式のプロセッサの概略構成と同様である。したがって、重複する構成及び機能の詳細な説明は繰返さない。
(Second Embodiment)
The schematic configuration of the VLIW processor in the second embodiment of the present invention is the same as the schematic configuration of the VLIW processor in the first embodiment shown in FIG. Therefore, detailed description of overlapping configurations and functions will not be repeated.

図4は、本発明の第2の実施の形態におけるVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。まず、命令デコード部11は、命令が2つの16ビット命令であり(MSB21=0)、かつ並列実行(MSB22=1)の場合、低消費電力モード信号に応じて低消費電力モードであるか否かを判定する(S21)。   FIG. 4 is a flowchart for explaining the processing procedure of the VLIW processor according to the second embodiment of the present invention. First, when the instruction is two 16-bit instructions (MSB21 = 0) and executed in parallel (MSB22 = 1), the instruction decoding unit 11 determines whether or not the low power consumption mode is set according to the low power consumption mode signal. Is determined (S21).

低消費電力モードでない場合(S21,No)、命令デコード部11は演算器12−1および12−2に2つの16ビット命令のデコード結果を同時に出力することによって、2つの16ビット命令を並列に実行させる(S26)。   When not in the low power consumption mode (S21, No), the instruction decode unit 11 outputs the two 16-bit instructions in parallel by simultaneously outputting the decoding results of the two 16-bit instructions to the arithmetic units 12-1 and 12-2. This is executed (S26).

また、低消費電力モードの場合(S21,Yes)、命令デコード部11は2つの16ビット命令をデコードすることによって、2つの16ビット命令の間に依存関係があるか否かを判定する(S22)。   In the case of the low power consumption mode (S21, Yes), the instruction decoding unit 11 determines whether there is a dependency between the two 16-bit instructions by decoding the two 16-bit instructions (S22). ).

2つの16ビット命令の間に依存関係がない場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっておらず、かつ一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照しない場合には(S22,No)、命令デコード部11はMSB22の値を無視して“0”であるとし、2つの16ビット命令を逐次実行させる(S25)。   If there is no dependency between two 16-bit instructions, that is, the destination operand of one 16-bit instruction is not the source operand of the other 16-bit instruction and one 16-bit instruction is If the condition bit is changed and the other 16-bit instruction does not refer to the condition bit (No at S22), the instruction decode unit 11 ignores the value of the MSB 22 and assumes that it is “0”, and two 16-bit instructions Are sequentially executed (S25).

また、2つの16ビット命令の間に依存関係がある場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっている場合、または一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照する場合には(S22,Yes)、命令デコード部11は例外を発生させて例外ハンドラを起動する(S23)。この例外ハンドラの起動によって並列命令のエミュレートが行なわれ、並列命令が複数の逐次命令として実行される(S24)。なお、命令メモリに予め例外ハンドラが格納されているものとする。   Also, if there is a dependency between two 16-bit instructions, that is, if the destination operand of one 16-bit instruction is the source operand of the other 16-bit instruction, or one 16-bit instruction When the instruction changes the condition bit and the other 16-bit instruction refers to the condition bit (S22, Yes), the instruction decoding unit 11 generates an exception and activates the exception handler (S23). By starting the exception handler, a parallel instruction is emulated, and the parallel instruction is executed as a plurality of sequential instructions (S24). It is assumed that an exception handler is stored in advance in the instruction memory.

また、低消費電力モード時にコプロセッサ命令を実行する場合、コプロセッサの有無にかかわらずコプロセッサ命令例外を発生させ、例外ハンドラを起動することによってコプロセッサ命令をエミュレートするようにしてもよい。これによって、コプロセッサを動作させる必要がなくなり、消費電力を低減することが可能となる。   When executing a coprocessor instruction in the low power consumption mode, a coprocessor instruction exception may be generated regardless of the presence or absence of the coprocessor, and the coprocessor instruction may be emulated by activating an exception handler. As a result, it is not necessary to operate the coprocessor, and power consumption can be reduced.

以上説明したように、本実施の形態におけるVLIW方式のプロセッサによれば、低消費電力モードであり、2つの16ビット命令が並列実行されることが示されており、かつ2つの16ビット命令の間に依存関係がある場合に、命令デコード部11が例外を発生させて例外ハンドラを起動するようにしたので、第1の実施の形態において説明した効果に加えて、レジスタの退避などが不要となり、ハードウェア構成を簡略化することが可能となった。   As described above, according to the VLIW processor in the present embodiment, it is shown that the low power consumption mode is executed, and two 16-bit instructions are executed in parallel. When there is a dependency relationship, the instruction decode unit 11 generates an exception and activates the exception handler. In addition to the effects described in the first embodiment, saving of registers and the like is not necessary. It became possible to simplify the hardware configuration.

(第3の実施の形態)
本発明の第3の実施の形態におけるVLIW方式のプロセッサの概略構成は、図1に示す第1の実施の形態におけるVLIW方式のプロセッサの概略構成と同様である。したがって、重複する構成及び機能の詳細な説明は繰返さない。
(Third embodiment)
The schematic configuration of the VLIW processor in the third embodiment of the present invention is the same as the schematic configuration of the VLIW processor in the first embodiment shown in FIG. Therefore, detailed description of overlapping configurations and functions will not be repeated.

図5は、本発明の第3の実施の形態におけるVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。まず、命令デコード部11は、命令が2つの16ビット命令であり(MSB21=0)、かつ並列実行(MSB22=1)の場合、低消費電力モード信号に応じて低消費電力モードであるか否かを判定する(S31)。   FIG. 5 is a flowchart for explaining the processing procedure of the VLIW processor according to the third embodiment of the present invention. First, when the instruction is two 16-bit instructions (MSB21 = 0) and executed in parallel (MSB22 = 1), the instruction decoding unit 11 determines whether or not the low power consumption mode is set according to the low power consumption mode signal. Is determined (S31).

低消費電力モードでない場合(S31,No)、命令デコード部11は演算器12−1および12−2に2つの16ビット命令のデコード結果を同時に出力することによって、2つの16ビット命令を並列に実行させる(S36)。   When not in the low power consumption mode (S31, No), the instruction decode unit 11 outputs two 16-bit instructions in parallel by simultaneously outputting the decoding results of the two 16-bit instructions to the arithmetic units 12-1 and 12-2. This is executed (S36).

また、低消費電力モードの場合(S31,Yes)、命令デコード部11は2つの16ビット命令をデコードすることによって、2つの16ビット命令の間に依存関係があるか否かを判定する(S32)。   In the case of the low power consumption mode (S31, Yes), the instruction decoding unit 11 determines whether there is a dependency between the two 16-bit instructions by decoding the two 16-bit instructions (S32). ).

2つの16ビット命令の間に依存関係がない場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっておらず、かつ一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照しない場合には(S32,No)、命令デコード部11はMSB22の値を無視して“0”であるとし、2つの16ビット命令を逐次実行させる(S25)。   If there is no dependency between two 16-bit instructions, that is, the destination operand of one 16-bit instruction is not the source operand of the other 16-bit instruction and one 16-bit instruction is When the condition bit is changed and the other 16-bit instruction does not refer to the condition bit (No in S32), the instruction decoding unit 11 ignores the value of the MSB 22 and assumes that the value is “0”. Are sequentially executed (S25).

また、2つの16ビット命令の間に依存関係がある場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっている場合、または一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照する場合には(S32,Yes)、この依存関係がある並列命令を同じ意味の動作をする逐次命令群に変換し、高速アクセスが可能なメモリ(キャッシュメモリ、SRAM(Static Random Access Memory))に格納する。この高速アクセスが可能なメモリには、逐次命令群を格納するための領域が予め確保されており、命令フェッチ部がこの領域から直接逐次命令群を読出すことによって逐次命令群のフェッチが行なわれる。   Also, if there is a dependency between two 16-bit instructions, that is, if the destination operand of one 16-bit instruction is the source operand of the other 16-bit instruction, or one 16-bit instruction When the instruction changes the condition bit and the other 16-bit instruction refers to the condition bit (S32, Yes), the parallel instruction having this dependency relation is converted into a sequential instruction group having the same meaning operation, and the high-speed operation is performed. It is stored in an accessible memory (cache memory, SRAM (Static Random Access Memory)). In the memory capable of high-speed access, an area for storing the sequential instruction group is secured in advance, and the sequential instruction group is fetched by the instruction fetch unit reading the sequential instruction group directly from this area. .

そして、命令デコード部11は、フェッチされた逐次命令群を順次デコードし、デコード結果を同じ演算器に出力することによって逐次実行が行なわれる(S34)。   Then, the instruction decode unit 11 sequentially decodes the fetched sequential instruction group, and outputs the decoded result to the same arithmetic unit, so that sequential execution is performed (S34).

以上説明したように、本実施の形態におけるVLIW方式のプロセッサによれば、低消費電力モードであり、2つの16ビット命令が並列実行されることが示されており、かつ2つの16ビット命令の間に依存関係がある場合に、並列命令を逐次命令群に変換して高速アクセスが可能なメモリに格納し、その逐次命令群を順次実行するようにしたので、第1の実施の形態において説明した効果に加えて、並列命令を逐次命令群に変換して実行するときの処理速度の低下を防止することが可能となった。   As described above, according to the VLIW processor in the present embodiment, it is shown that the low power consumption mode is executed, and two 16-bit instructions are executed in parallel. When there is a dependency relationship between the parallel instructions, the parallel instructions are converted into a sequential instruction group, stored in a memory that can be accessed at high speed, and the sequential instruction group is executed sequentially, which will be described in the first embodiment. In addition to the effects described above, it is possible to prevent a decrease in processing speed when parallel instructions are converted into sequential instructions and executed.

(第4の実施の形態)
図6は、本発明の第4の実施の形態におけるコンパイル装置の構成例を示すブロック図である。このコンパイル装置は、コンピュータ本体31、ディスプレイ装置32、FD(Flexible Disk)34が装着されるFDドライブ33、キーボード35、マウス36、CD−ROM(Compact Disc-Read Only Memory)38が装着されるCD−ROM装置37、およびネットワーク通信装置39を含む。
(Fourth embodiment)
FIG. 6 is a block diagram illustrating a configuration example of the compiling device according to the fourth embodiment of the present invention. The compiling device includes a computer main body 31, a display device 32, an FD drive 33 to which an FD (Flexible Disk) 34 is mounted, a keyboard 35, a mouse 36, and a CD to which a CD-ROM (Compact Disc-Read Only Memory) 38 is mounted. -ROM device 37 and network communication device 39 are included.

コンパイルプログラム(以下、コンパイラと呼ぶ。)は、FD34またはCD−ROM38等の記録媒体によって供給される。コンパイラがコンピュータ本体31によって実行されることによって、プログラムからオブジェクトコードが生成される。また、コンパイラは他のコンピュータよりネットワーク通信装置39を経由し、コンピュータ本体31に供給されてもよい。   A compile program (hereinafter referred to as a compiler) is supplied by a recording medium such as the FD 34 or the CD-ROM 38. By executing the compiler by the computer main body 31, object code is generated from the program. The compiler may be supplied to the computer main body 31 from another computer via the network communication device 39.

図6に示すコンピュータ本体31は、CPU(Central Processing Unit)40、ROM(Read Only Memory)41、RAM42およびハードディスク43を含む。CPU40は、ディスプレイ装置32、FDドライブ33、キーボード35、マウス36、CD−ROM装置37、ネットワーク通信装置39、ROM41、RAM42またはハードディスク43との間でデータを入出力しながら処理を行なう。   The computer main body 31 shown in FIG. 6 includes a CPU (Central Processing Unit) 40, a ROM (Read Only Memory) 41, a RAM 42, and a hard disk 43. The CPU 40 performs processing while inputting / outputting data to / from the display device 32, FD drive 33, keyboard 35, mouse 36, CD-ROM device 37, network communication device 39, ROM 41, RAM 42 or hard disk 43.

FD34またはCD−ROM38に記録されたコンパイラは、CPU40によりFDドライブ33またはCD−ROM装置37を介してハードディスク43に格納される。CPU40は、ハードディスク43から適宜コンパイラをRAM42にロードして実行することによって、プログラムからオブジェクトコードが生成される。   The compiler recorded in the FD 34 or the CD-ROM 38 is stored in the hard disk 43 by the CPU 40 via the FD drive 33 or the CD-ROM device 37. The CPU 40 appropriately loads a compiler from the hard disk 43 into the RAM 42 and executes it, thereby generating object code from the program.

図7は、本発明の第4の実施の形態におけるコンパイル装置の機能的構成を示すブロック図である。このコンパイル装置は、低消費電力モードであるか否かを判定するモード判定部51と、ソースファイルから命令を1つずつ抽出し、その命令を解析して所定の条件を満たしているか否かを判定する条件判定部52と、モード判定部51および条件判定部52による判定結果に応じて命令コードを生成し、オブジェクトコードとして出力する命令コード生成部53と含む。   FIG. 7 is a block diagram showing a functional configuration of a compiling device according to the fourth embodiment of the present invention. The compiling device extracts a mode determination unit 51 that determines whether or not a low power consumption mode is selected, and extracts instructions one by one from the source file, analyzes the instructions, and determines whether or not a predetermined condition is satisfied. It includes a condition determination unit 52 for determination, and an instruction code generation unit 53 that generates an instruction code according to the determination results by the mode determination unit 51 and the condition determination unit 52 and outputs the generated instruction code.

図8は、本発明の第4の実施の形態におけるコンパイル装置の処理手順を説明するためのフローチャートである。なお、本実施の形態におけるコンパイル装置は、消費電力を抑えるためのコードを出力するオプションを有しており、この低消費電力モードの設定はユーザ指定などによって行なわれる。   FIG. 8 is a flowchart for explaining the processing procedure of the compiling apparatus according to the fourth embodiment of the present invention. Note that the compiling apparatus according to the present embodiment has an option of outputting a code for reducing power consumption, and the setting of the low power consumption mode is performed by user designation or the like.

まず、モード判定部51は、低消費電力モードが指定されているか否かを判定する(S41)。モード判定部51によって低消費電力モードが指定されていないと判定された場合(S41,No)、命令コード生成部53は命令からそのまま命令コードを生成して出力する(S44)。すなわち、命令が2つの16ビット命令の並列命令の場合には、VLIW方式のプロセッサによって並列に実行される命令コードを生成して出力する。また、命令が2つの16ビット命令の逐次命令の場合には、VLIW方式のプロセッサによって逐次実行される命令コードを生成して出力する。また、命令が32ビット命令であれば32ビット命令の命令コードを生成して出力する。   First, the mode determination unit 51 determines whether or not the low power consumption mode is designated (S41). When the mode determination unit 51 determines that the low power consumption mode is not designated (S41, No), the instruction code generation unit 53 generates and outputs the instruction code as it is from the instruction (S44). That is, if the instruction is a parallel instruction of two 16-bit instructions, an instruction code that is executed in parallel by a VLIW processor is generated and output. If the instruction is a sequential instruction of two 16-bit instructions, an instruction code that is sequentially executed by a VLIW processor is generated and output. If the instruction is a 32-bit instruction, an instruction code of the 32-bit instruction is generated and output.

モード判定部51によって低消費電力モードが指定されていると判定された場合(S41,Yes)、条件判定部52は命令が2つの16ビット命令の並列命令であれば、2つの16ビット命令の間に依存関係があるか否かを判定する(S42)。   When the mode determination unit 51 determines that the low power consumption mode is designated (S41, Yes), the condition determination unit 52 determines that two 16-bit instructions are parallel if the instruction is a parallel instruction of two 16-bit instructions. It is determined whether there is a dependency between them (S42).

条件判定部52によって2つの16ビット命令の間に依存関係がないと判定された場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっておらず、かつ一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照しない場合には(S42,No)、上述したステップS44の処理が行なわれる。   If the condition determination unit 52 determines that there is no dependency between two 16-bit instructions, that is, the destination operand of one 16-bit instruction is the source operand of the other 16-bit instruction. If one 16-bit instruction changes the condition bit and the other 16-bit instruction does not refer to the condition bit (S42, No), the process of step S44 described above is performed.

また、条件判定部52によって2つの16ビット命令の間に依存関係があると判定された場合、すなわち、一方の16ビット命令のディスティネーション・オペランドが、他方の16ビット命令のソース・オペランドになっている場合、または一方の16ビット命令がコンディションビットを変更し、他方の16ビット命令がコンディションビットを参照する場合には(S42,Yes)、命令コード生成部53は並列命令から逐次命令の命令コードを生成して出力する(S43)。   In addition, when the condition determination unit 52 determines that there is a dependency between two 16-bit instructions, that is, the destination operand of one 16-bit instruction becomes the source operand of the other 16-bit instruction. If one of the 16-bit instructions changes the condition bit and the other 16-bit instruction refers to the condition bit (Yes in S42), the instruction code generation unit 53 executes the instruction from the parallel instruction to the sequential instruction. A code is generated and output (S43).

図9は、本発明の第4の実施の形態におけるコンパイル装置によってコンパイルされたプログラムを実行するVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。なお、このVLIW方式のプロセッサの概略構成は、図1に示す第1の実施の形態におけるVLIW方式のプロセッサの概略構成と同様である。したがって、重複する構成及び機能の詳細な説明は繰返さない。   FIG. 9 is a flowchart for explaining a processing procedure of a VLIW processor that executes a program compiled by a compiling apparatus according to the fourth embodiment of the present invention. The schematic configuration of the VLIW processor is the same as that of the VLIW processor in the first embodiment shown in FIG. Therefore, detailed description of overlapping configurations and functions will not be repeated.

まず、命令デコード部11は、命令が2つの16ビット命令であり(MSB21=0)、かつ並列実行(MSB22=1)の場合、低消費電力モード信号に応じて低消費電力モードであるか否かを判定する(S51)。   First, when the instruction is two 16-bit instructions (MSB21 = 0) and executed in parallel (MSB22 = 1), the instruction decoding unit 11 determines whether or not the low power consumption mode is set according to the low power consumption mode signal. Is determined (S51).

低消費電力モードでない場合(S51,No)、命令デコード部11は演算器12−1および12−2に2つの16ビット命令のデコード結果を同時に出力することによって、2つの16ビット命令を並列に実行させる(S53)。また、低消費電力モードの場合(S51,Yes)、命令デコード部11はMSB22の値を無視して“0”であるとし、2つの16ビット命令を逐次実行させる(S52)。   When not in the low power consumption mode (S51, No), the instruction decode unit 11 outputs two 16-bit instructions in parallel by simultaneously outputting the decoding results of the two 16-bit instructions to the arithmetic units 12-1 and 12-2. This is executed (S53). In the case of the low power consumption mode (S51, Yes), the instruction decode unit 11 ignores the value of the MSB 22 and assumes "0", and sequentially executes two 16-bit instructions (S52).

なお、低消費電力モードであり、かつ2つの16ビット命令が並列命令の場合、その依存性はコンパイル装置によって解消されているので、プロセッサは並列命令を単に逐次実行すればよい。   In the low power consumption mode and when two 16-bit instructions are parallel instructions, the dependency is eliminated by the compiling device, and the processor simply executes the parallel instructions sequentially.

以上説明したように、本実施の形態におけるコンパイル装置によれば、低消費電力モードであり、2つの16ビット命令が並列命令であり、かつ2つの16ビット命令の間に依存関係がある場合に、逐次命令の命令コードに変換して出力するようにしたので、この命令コードを実行するプロセッサは、並列命令を単に逐次命令に変換して実行すればよくなり、第1の実施の形態において説明した効果に加えて、ハードウェア構成を簡略化することが可能となった。   As described above, according to the compiling apparatus in the present embodiment, the low power consumption mode is set, two 16-bit instructions are parallel instructions, and there is a dependency between the two 16-bit instructions. Since the instruction code of the sequential instruction is converted and output, the processor that executes the instruction code only needs to convert the parallel instruction into the sequential instruction and execute it, which will be described in the first embodiment. In addition to the effect, the hardware configuration can be simplified.

(第5の実施の形態)
本発明の第5の実施の形態におけるコンパイル装置の構成例および機能的構成は、図6および図7に示す第4の実施の形態におけるコンパイル装置の構成例および機能的構成と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
(Fifth embodiment)
The configuration example and the functional configuration of the compiling device in the fifth embodiment of the present invention are the same as the configuration example and the functional configuration of the compiling device in the fourth embodiment shown in FIGS. Therefore, detailed description of overlapping configurations and functions will not be repeated.

図10は、本発明の第5の実施の形態におけるコンパイル装置の処理手順を説明するためのフローチャートである。まず、モード判定部51は、低消費電力モードが指定されているか否かを判定する(S61)。モード判定部51によって低消費電力モードが指定されていないと判定された場合(S61,No)、命令コード生成部53は並列命令から逐次命令の命令コードを生成して出力する(S64)。   FIG. 10 is a flowchart for explaining the processing procedure of the compiling apparatus according to the fifth embodiment of the present invention. First, the mode determination unit 51 determines whether or not the low power consumption mode is designated (S61). When the mode determination unit 51 determines that the low power consumption mode is not designated (S61, No), the instruction code generation unit 53 generates and outputs an instruction code of a sequential instruction from the parallel instruction (S64).

モード判定部51によって低消費電力モードが指定されていると判定された場合(S61,Yes)、条件判定部52は命令が2つの16ビット命令の並列命令であれば、2つの16ビット命令を並列に実行したときの消費電力が所定値よりも小さいか否かを判定する(S62)。   When it is determined by the mode determination unit 51 that the low power consumption mode is designated (S61, Yes), the condition determination unit 52 determines that two 16-bit instructions are used if the instruction is a parallel instruction of two 16-bit instructions. It is determined whether or not the power consumption when executed in parallel is smaller than a predetermined value (S62).

たとえば、16ビット命令を実行するときの消費電力をテーブルとして保持しておき、そのテーブルを参照して2つの16ビット命令のそれぞれの消費電力を抽出し、それを加算することによって並列命令を実行したときの消費電力を計算することができる。   For example, the power consumption when executing a 16-bit instruction is stored as a table, the power consumption of each of the two 16-bit instructions is extracted with reference to the table, and the parallel instructions are executed by adding them. The power consumption can be calculated.

条件判定部52によって2つの16ビット命令の消費電力が所定値以上であると判定された場合(S62,No)、命令コード生成部53は並列命令から逐次命令の命令コードを生成して出力する(S64)。また、条件判定部52によって2つの16ビット命令の消費電力が所定値よりも小さいと判定された場合(S62,Yes)、命令コード生成部53は並列命令の命令コードを生成して出力する(S63)。   When the condition determination unit 52 determines that the power consumption of two 16-bit instructions is greater than or equal to a predetermined value (S62, No), the instruction code generation unit 53 generates and outputs the instruction code of the sequential instruction from the parallel instruction. (S64). When the condition determination unit 52 determines that the power consumption of the two 16-bit instructions is smaller than the predetermined value (S62, Yes), the instruction code generation unit 53 generates and outputs an instruction code of the parallel instruction ( S63).

以上説明したように、本実施の形態におけるコンパイル装置によれば、低消費電力モードであり、2つの16ビット命令が並列命令であり、かつ2つの16ビット命令の消費電力が所定値より小さい場合にのみ並列命令の命令コードを生成して出力し、それ以外の場合には逐次命令の命令コードを生成して出力するようにしたので、プロセッサのピーク時における消費電力を低減させることが可能となるように命令コードを生成することが可能となった。   As described above, according to the compiling apparatus in the present embodiment, the low power consumption mode is set, two 16-bit instructions are parallel instructions, and the power consumption of the two 16-bit instructions is smaller than a predetermined value. Since the instruction code of the parallel instruction is generated and output only in the case of, and the instruction code of the sequential instruction is generated and output in other cases, it is possible to reduce the power consumption at the peak time of the processor It is now possible to generate instruction codes.

(第6の実施の形態)
本発明の第6の実施の形態におけるコンパイル装置の構成例および機能的構成は、図6および図7に示す第4の実施の形態におけるコンパイル装置の構成例および機能的構成と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
(Sixth embodiment)
The configuration example and the functional configuration of the compiling device in the sixth embodiment of the present invention are the same as the configuration example and the functional configuration of the compiling device in the fourth embodiment shown in FIGS. Therefore, detailed description of overlapping configurations and functions will not be repeated.

図11は、本発明の第6の実施の形態におけるコンパイル装置の処理手順を説明するためのフローチャートである。まず、モード判定部51によって低消費電力モードが指定されていると判定された場合、条件判定部52は2つの16ビット命令を並列に実行したときの消費電力を判定する(S71)。たとえば、16ビット命令を実行するときの消費電力をテーブルとして保持しておき、そのテーブルを参照して2つの16ビット命令のそれぞれの消費電力を抽出し、それを加算することによって並列命令を実行したときの消費電力を計算することができる。   FIG. 11 is a flowchart for explaining the processing procedure of the compiling apparatus according to the sixth embodiment of the present invention. First, when the mode determination unit 51 determines that the low power consumption mode is designated, the condition determination unit 52 determines the power consumption when two 16-bit instructions are executed in parallel (S71). For example, the power consumption when executing a 16-bit instruction is stored as a table, the power consumption of each of the two 16-bit instructions is extracted with reference to the table, and the parallel instructions are executed by adding them. The power consumption can be calculated.

条件判定部52によって2つの16ビット命令の消費電力がしきい値よりも小さいと判定された場合(S72,No)、命令コード生成部53は2つの16ビット命令から並列命令の命令コードを生成して出力する(S74)。   When the condition determination unit 52 determines that the power consumption of two 16-bit instructions is smaller than the threshold (No in S72), the instruction code generation unit 53 generates an instruction code of a parallel instruction from the two 16-bit instructions And output (S74).

また、条件判定部52によって2つの16ビット命令の消費電力がしきい値以上であると判定された場合(S72,Yes)、意味の変わらない範囲で前後の命令と入替えを行ない、ステップS71に戻って以降の処理を繰返す。たとえば、前後の命令との間で依存関係がないか否かを判定し、依存関係がなければその命令を前後の命令と入替える。   If the condition determining unit 52 determines that the power consumption of the two 16-bit instructions is equal to or greater than the threshold value (S72, Yes), it replaces the previous and subsequent instructions within a range that does not change the meaning, and proceeds to step S71. Return and repeat the subsequent processing. For example, it is determined whether or not there is a dependency relationship between the preceding and succeeding instructions. If there is no dependency relationship, the instruction is replaced with the preceding and succeeding instructions.

以上説明したように、本実施の形態におけるコンパイル装置によれば、低消費電力モードであり、2つの16ビット命令が並列命令であり、かつ2つの16ビット命令の消費電力がしきい値よりも大きい場合には、命令を入替えて命令コードを生成するようにしたので、プロセッサのピーク時における消費電力を低減させることが可能となるように命令コードを生成することが可能となった。   As described above, according to the compiling device in the present embodiment, the low power consumption mode is set, two 16-bit instructions are parallel instructions, and the power consumption of the two 16-bit instructions is lower than the threshold value. If it is large, the instruction code is generated by replacing the instruction, so that the instruction code can be generated so that the power consumption at the peak time of the processor can be reduced.

(第7の実施の形態)
図12は、本発明の第7の実施の形態におけるシステム(情報処理装置)の概略構成の一例を示すブロック図である。このシステムにおいては、外部に設けられた温度センサ61の出力が第1〜第4の実施の形態において説明したVLIW方式のプロセッサ1に接続される。プロセッサ1は、温度センサ61の出力を参照することにより、温度が所定値以上であるか否かを判定する。温度が所定値以上の場合には、プロセッサ1は低消費電力モードであると判定する。
(Seventh embodiment)
FIG. 12 is a block diagram showing an example of a schematic configuration of a system (information processing apparatus) according to the seventh embodiment of the present invention. In this system, the output of the temperature sensor 61 provided outside is connected to the VLIW processor 1 described in the first to fourth embodiments. The processor 1 refers to the output of the temperature sensor 61 to determine whether the temperature is equal to or higher than a predetermined value. When the temperature is equal to or higher than the predetermined value, the processor 1 determines that the low power consumption mode is set.

図13は、本発明の第7の実施の形態におけるシステム(情報処理装置)の概略構成の他の一例を示すブロック図である。このシステムは、内部に温度センサ61が設けられる。それ以外は、図12に示すシステムと同様である。   FIG. 13 is a block diagram illustrating another example of a schematic configuration of a system (information processing apparatus) according to the seventh embodiment of the present invention. This system is provided with a temperature sensor 61 inside. The rest is the same as the system shown in FIG.

以上説明したように、本実施の形態におけるシステムによれば、温度が所定値以上の場合に低消費電力モードで動作するようにしたので、システムの温度が必要以上に高くなることを防止でき、プロセッサ1の誤動作等を防止することが可能となった。   As described above, according to the system in the present embodiment, when the temperature is equal to or higher than a predetermined value, the system is operated in the low power consumption mode, so that the system temperature can be prevented from becoming higher than necessary. It has become possible to prevent malfunction of the processor 1 and the like.

(第8の実施の形態)
図14は、本発明の第8の実施の形態におけるシステム(情報処理装置)の概略構成の一例を示すブロック図である。このシステムにおいては、外部に設けられた電流センサ62の出力が第1〜第4の実施の形態において説明したVLIW方式のプロセッサ1に接続される。プロセッサ1は、電流センサ62の出力を参照することにより、システムに供給される電流が所定値以上であるか否かを判定する。電流が所定値以上の場合には、プロセッサ1は低消費電力モードであると判定する。
(Eighth embodiment)
FIG. 14 is a block diagram showing an example of a schematic configuration of a system (information processing apparatus) according to the eighth embodiment of the present invention. In this system, the output of the current sensor 62 provided outside is connected to the VLIW processor 1 described in the first to fourth embodiments. The processor 1 determines whether or not the current supplied to the system is greater than or equal to a predetermined value by referring to the output of the current sensor 62. If the current is greater than or equal to a predetermined value, the processor 1 determines that the current mode is the low power consumption mode.

図15は、本発明の第8の実施の形態におけるシステム(情報処理装置)の概略構成の他の一例を示すブロック図である。このシステムは、内部に電流センサ62が設けられる。それ以外は、図14に示すシステムと同様である。   FIG. 15 is a block diagram showing another example of a schematic configuration of a system (information processing apparatus) according to the eighth embodiment of the present invention. This system is provided with a current sensor 62 therein. The rest is the same as the system shown in FIG.

以上説明したように、本実施の形態におけるシステムによれば、システムに供給される電流が所定値以上の場合に低消費電力モードで動作するようにしたので、システムに供給される電流が必要以上に大きくなることを防止でき、プロセッサ1の誤動作等を防止することが可能となった。   As described above, according to the system in the present embodiment, when the current supplied to the system is equal to or higher than the predetermined value, the system is operated in the low power consumption mode, so that the current supplied to the system is more than necessary. It becomes possible to prevent the processor 1 from malfunctioning.

(第9の実施の形態)
図16は、本発明の第9の実施の形態におけるシステム(情報処理装置)の概略構成を示すブロック図である。このシステムにおいては、外部から入力される低消費電力モード信号が第1〜第4の実施の形態において説明したVLIW方式のプロセッサ1に接続され、外部入力の値によって低消費電力モードの切替えが行なわれる。
(Ninth embodiment)
FIG. 16: is a block diagram which shows schematic structure of the system (information processing apparatus) in the 9th Embodiment of this invention. In this system, a low power consumption mode signal input from the outside is connected to the VLIW processor 1 described in the first to fourth embodiments, and the low power consumption mode is switched according to the value of the external input. It is.

以上説明したように、本実施の形態におけるシステムによれば、外部入力の値に応じて低消費電力モードで動作するか否かを決定するようにしたので、システムの外部から低消費電力モードの切替えを容易に行なうことが可能となった。   As described above, according to the system in the present embodiment, whether or not to operate in the low power consumption mode is determined according to the value of the external input. It became possible to switch easily.

(第10の実施の形態)
図17は、本発明の第10の実施の形態におけるシステム(情報処理装置)の概略構成を示すブロック図である。このシステムにおいては、内部にレジスタ64が設けられ、第1〜第4の実施の形態において説明したVLIW方式のプロセッサ1に接続される。プロセッサ1などがこのレジスタ64に値を設定することによって、低消費電力モードの切替えが行なわれる。
(Tenth embodiment)
FIG. 17 is a block diagram showing a schematic configuration of a system (information processing apparatus) according to the tenth embodiment of the present invention. In this system, a register 64 is provided, and is connected to the VLIW processor 1 described in the first to fourth embodiments. The processor 1 or the like sets a value in the register 64 to switch the low power consumption mode.

以上説明したように、本実施の形態におけるシステムによれば、レジスタ64に設定された値に応じて低消費電力モードで動作するか否かを決定するようにしたので、プロセッサ1がこのレジスタ64の値を設定することによって、プログラムで低消費電力の切替えを行なうことが可能となった。   As described above, according to the system in the present embodiment, since it is determined whether or not to operate in the low power consumption mode according to the value set in the register 64, the processor 1 determines this register 64. By setting this value, it is possible to switch low power consumption by a program.

(第11の実施の形態)
図18は、本発明の第11の実施の形態におけるスーパースカラの概略構成を示すブロック図である。このスーパースカラは、フェッチされた命令列の並列性を検出してスケジューリングを行なうハードウェア命令スケジューラ71と、ハードウェア命令スケジューラ71によってスケジューリングされた命令を実行する複数の演算器(PU)72−1〜72−4とを含む。
(Eleventh embodiment)
FIG. 18 is a block diagram showing a schematic configuration of the superscalar in the eleventh embodiment of the present invention. This superscalar includes a hardware instruction scheduler 71 that performs scheduling by detecting parallelism of fetched instruction sequences, and a plurality of arithmetic units (PU) 72-1 that execute instructions scheduled by the hardware instruction scheduler 71. -72-4.

低消費電力モードが設定されている場合、ハードウェア命令スケジューラ71は、複数のパイプラインのうち利用するパイプラインを限定してスケジューリングを行ない、演算器72−1〜72−4のうち少なくとも1個の演算器が動作しないようにする。また、低消費電力モードにレベルを持たせ、これに応じて利用するパイプライン数を変化させることで、より細かく消費電力の制御を行なうようにしてもよい。   When the low power consumption mode is set, the hardware instruction scheduler 71 performs scheduling by limiting the pipeline to be used among a plurality of pipelines, and at least one of the computing units 72-1 to 72-4. To prevent the calculator from operating. Further, the power consumption mode may be controlled more finely by giving a level to the low power consumption mode and changing the number of pipelines used in accordance with the level.

なお、本実施の形態におけるスーパースカラを、図12〜図17に示す第7〜第10に示すシステムに適用することも可能である。この場合、VLIW方式のプロセッサ1に替えて、本実施の形態において説明したスーパースカラが搭載される。   Note that the superscalar in the present embodiment can also be applied to the seventh to tenth systems shown in FIGS. 12 to 17. In this case, instead of the VLIW processor 1, the superscalar described in the present embodiment is mounted.

以上説明したように、本実施の形態におけるスーパースカラによれば、低消費電力モードが設定されている場合には、利用するパイプライン数を制限してスケジューリングを行なうようにしたので、演算器などの回路を同時に動作させる必要がなくなり、ピーク時における消費電力を低減させることが可能となった。   As described above, according to the superscalar in the present embodiment, when the low power consumption mode is set, scheduling is performed by limiting the number of pipelines to be used. It is no longer necessary to operate these circuits simultaneously, and the power consumption at the peak time can be reduced.

今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

本発明の第1の実施の形態におけるVLIW方式のプロセッサの概略構成を示すブロック図である。1 is a block diagram showing a schematic configuration of a VLIW processor according to a first embodiment of the present invention. FIG. 本発明の第1の実施の形態におけるVLIW方式のプロセッサによって実行される命令フォーマットの一例を示す図である。It is a figure which shows an example of the instruction format performed by the processor of the VLIW system in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。4 is a flowchart for explaining a processing procedure of a VLIW processor according to the first embodiment of the present invention. 本発明の第2の実施の形態におけるVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the processor of the VLIW system in the 2nd Embodiment of this invention. 本発明の第3の実施の形態におけるVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the processor of the VLIW system in the 3rd Embodiment of this invention. 本発明の第4の実施の形態におけるコンパイル装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the compilation apparatus in the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるコンパイル装置の機能的構成を示すブロック図である。It is a block diagram which shows the functional structure of the compilation apparatus in the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるコンパイル装置の処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the compilation apparatus in the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるコンパイル装置によってコンパイルされたプログラムを実行するVLIW方式のプロセッサの処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the processor of a VLIW system which executes the program compiled by the compilation apparatus in the 4th Embodiment of this invention. 本発明の第5の実施の形態におけるコンパイル装置の処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the compilation apparatus in the 5th Embodiment of this invention. 本発明の第6の実施の形態におけるコンパイル装置の処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the compilation apparatus in the 6th Embodiment of this invention. 本発明の第6の実施の形態におけるシステム(情報処理装置)の概略構成の一例を示すブロック図である。It is a block diagram which shows an example of schematic structure of the system (information processing apparatus) in the 6th Embodiment of this invention. 本発明の第7の実施の形態におけるシステム(情報処理装置)の概略構成の他の一例を示すブロック図である。It is a block diagram which shows another example of schematic structure of the system (information processing apparatus) in the 7th Embodiment of this invention. 本発明の第8の実施の形態におけるシステム(情報処理装置)の概略構成の一例を示すブロック図である。It is a block diagram which shows an example of schematic structure of the system (information processing apparatus) in the 8th Embodiment of this invention. 本発明の第8の実施の形態におけるシステム(情報処理装置)の概略構成の他の一例を示すブロック図である。It is a block diagram which shows another example of schematic structure of the system (information processing apparatus) in the 8th Embodiment of this invention. 本発明の第9の実施の形態におけるシステム(情報処理装置)の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the system (information processing apparatus) in the 9th Embodiment of this invention. 本発明の第10の実施の形態におけるシステム(情報処理装置)の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the system (information processing apparatus) in the 10th Embodiment of this invention. 本発明の第11の実施の形態におけるスーパースカラの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the superscalar in the 11th Embodiment of this invention.

符号の説明Explanation of symbols

11 命令デコード部、12−1〜12−4,71−1〜71−4 演算器、21,22 MSB、31 コンピュータ本体、32 ディスプレイ装置、33 FDドライブ、34 FD、35 キーボード、36 マウス、37 CD−ROM装置、38 CD−ROM、39 ネットワーク通信装置、40 CPU、41 ROM、42 RAM、43 ハードディスク、51 モード判定部、52 条件判定部、53 命令コード生成部、61 温度センサ、62 電流センサ、63 低消費電力モード、64 レジスタ、71 ハードウェア命令スケジューラ。   11 Instruction decoding unit, 12-1 to 12-4, 71-1 to 71-4 arithmetic unit, 21, 22 MSB, 31 computer main body, 32 display device, 33 FD drive, 34 FD, 35 keyboard, 36 mouse, 37 CD-ROM device, 38 CD-ROM, 39 network communication device, 40 CPU, 41 ROM, 42 RAM, 43 hard disk, 51 mode determination unit, 52 condition determination unit, 53 command code generation unit, 61 temperature sensor, 62 current sensor 63 Low power consumption mode, 64 registers, 71 Hardware instruction scheduler.

Claims (15)

複数の命令を同時に実行することが可能なプロセッサであって、
フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ前記複数の命令の間に依存性がある場合、依存性があるデータをレジスタに退避して使用することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、プロセッサ。
A processor capable of executing a plurality of instructions simultaneously,
Instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
When the fetched instruction is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions, the instruction decoding means saves the dependent data in a register and uses it The processor causes the parallel instructions to be sequentially executed by some of the arithmetic means in the plurality of arithmetic means.
複数の命令を同時に実行することが可能なプロセッサであって、
フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ前記複数の命令の間に依存性がある場合、例外を発生させて前記並列命令をソフトウェアでエミュレートすることによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、プロセッサ。
A processor capable of executing a plurality of instructions simultaneously,
Instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
The instruction decoding means generates an exception and emulates the parallel instruction by software when the fetched instruction is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions. Accordingly, a processor that causes the arithmetic instructions to be sequentially executed by some of the arithmetic means.
複数の命令を同時に実行することが可能なプロセッサであって、
フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段と、
命令を格納するための格納手段とを含み、
前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であり、かつ前記複数の命令の間に依存性がある場合、前記並列命令を逐次命令群に変換して前記格納手段に格納し、該逐次命令群を順次読出すことによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、プロセッサ。
A processor capable of executing a plurality of instructions simultaneously,
Instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means;
Storage means for storing instructions,
The instruction decoding unit converts the parallel instruction into a sequential instruction group when the fetched instruction is a parallel instruction including a plurality of instructions and there is a dependency between the plurality of instructions. And sequentially reading out the sequential instruction group to cause the parallel instructions to be executed sequentially by some of the arithmetic means.
複数の命令を同時に実行することが可能なプロセッサであって、
フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
前記命令デコード手段は、フェッチされた命令がコプロセッサ命令であれば、例外を発生させて前記コプロセッサ命令をソフトウェアでエミュレートすることによって、前記コプロセッサ命令を前記複数の演算手段に実行させる、プロセッサ。
A processor capable of executing a plurality of instructions simultaneously,
Instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
If the fetched instruction is a coprocessor instruction, the instruction decoding means causes the plurality of arithmetic means to execute the coprocessor instruction by generating an exception and emulating the coprocessor instruction by software. Processor.
前記命令デコード手段は、前記複数の演算手段のうち使用しない演算手段へのクロックまたは電源の供給を停止させる、請求項1〜4のいずれかに記載のプロセッサ。   The processor according to any one of claims 1 to 4, wherein the instruction decoding unit stops supply of a clock or power to an arithmetic unit that is not used among the plurality of arithmetic units. 前記使用しない演算手段を使用する命令を実行する場合、前記命令デコード手段は例外を発生させてソフトウェアでエミュレートすることによって当該命令を実行させる、請求項5記載のプロセッサ。   6. The processor according to claim 5, wherein, when executing an instruction that uses the computing means that is not used, the instruction decoding means causes the instruction to be executed by generating an exception and emulating it by software. 前記使用しない演算手段を使用する命令を実行する場合、前記命令デコード手段は前記使用しない演算手段に対してクロックまたは電源の供給を再開して当該命令を実行させる、請求項5記載のプロセッサ。   6. The processor according to claim 5, wherein, when executing an instruction using the unused arithmetic means, the instruction decoding means restarts supply of a clock or power to the unused arithmetic means and executes the instruction. 複数の命令を同時に実行することが可能なプロセッサによって実行されるプログラムをコンパイルするコンパイラであって、
命令が複数の命令を含んだ並列命令であり、かつ前記複数の命令の間に依存性があるか否かを判定するための条件判定手段と、
前記条件判定手段によって依存性があると判定された場合、前記並列命令を逐次命令の命令コードに変換して出力するための命令コード生成手段とを含む、コンパイラ。
A compiler for compiling a program executed by a processor capable of executing a plurality of instructions simultaneously,
Condition determining means for determining whether the instruction is a parallel instruction including a plurality of instructions and whether there is a dependency between the plurality of instructions;
A compiler comprising: an instruction code generating means for converting the parallel instruction into an instruction code of a sequential instruction and outputting the instruction when the condition determining means determines that there is a dependency.
複数の命令を同時に実行することが可能なプロセッサによって実行されるプログラムをコンパイルするコンパイラであって、
命令が複数の命令を含んだ並列命令であり、かつ前記複数の命令の消費電力が所定値以上であるか否かを判定するための条件判定手段と、
前記条件判定手段によって消費電力が所定値以上であると判定された場合、前記並列命令を逐次命令の命令コードに変換して出力するための命令コード生成手段とを含む、コンパイラ。
A compiler for compiling a program executed by a processor capable of executing a plurality of instructions simultaneously,
Condition determining means for determining whether the instruction is a parallel instruction including a plurality of instructions and the power consumption of the plurality of instructions is equal to or greater than a predetermined value;
A compiler comprising: an instruction code generating means for converting the parallel instruction into an instruction code of a sequential instruction and outputting the parallel instruction when the condition determining means determines that the power consumption is a predetermined value or more.
複数の命令を同時に実行することが可能なプロセッサによって実行されるプログラムをコンパイルするコンパイラであって、
命令が複数の命令を含んだ並列命令であり、かつ前記複数の命令の消費電力が所定値以上であるか否かを判定するための条件判定手段と、
前記条件判定手段によって消費電力が所定値以上であると判定された場合、前記並列命令に含まれる複数の命令のいずれかを前後の命令と入替えて命令コードを生成するための命令コード生成手段とを含む、コンパイラ。
A compiler for compiling a program executed by a processor capable of executing a plurality of instructions simultaneously,
Condition determining means for determining whether the instruction is a parallel instruction including a plurality of instructions and the power consumption of the plurality of instructions is equal to or greater than a predetermined value;
An instruction code generating means for generating an instruction code by replacing any of the plurality of instructions included in the parallel instruction with the preceding and succeeding instructions when the condition determining means determines that the power consumption is a predetermined value or more; Including the compiler.
前記条件判定手段は、それぞれの命令を実行するときの消費電力をテーブルに保持し、該テーブルを参照して前記並列命令に含まれる複数の命令の消費電力の和を算出することによって、前記複数の命令の消費電力が所定値以上であるか否かを判定する、請求項9または10記載のコンパイラ。   The condition determining means holds power consumption when executing each instruction in a table, and refers to the table to calculate the sum of power consumption of a plurality of instructions included in the parallel instruction, thereby The compiler according to claim 9, wherein the power consumption of the instruction is determined to be equal to or greater than a predetermined value. 複数の命令を同時に実行することが可能なプロセッサと、
温度を計測するための計測手段とを含んだ情報処理装置であって、
前記プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
前記計測手段によって計測された温度が所定値以上の場合、前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、該並列命令を逐次命令に変換することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、情報処理装置。
A processor capable of executing a plurality of instructions simultaneously;
An information processing apparatus including a measuring means for measuring temperature,
The processor includes instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
When the temperature measured by the measuring unit is a predetermined value or more, the instruction decoding unit converts the parallel instruction into a sequential instruction if the fetched instruction is a parallel instruction including a plurality of instructions, An information processing apparatus that causes some of the computing means to sequentially execute the parallel instructions.
複数の命令を同時に実行することが可能なプロセッサと、
電流を計測するための計測手段とを含んだ情報処理装置であって、
前記プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
前記計測手段によって計測された前記情報処理装置に供給される電流が所定値以上の場合、前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、該並列命令を逐次命令に変換することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、情報処理装置。
A processor capable of executing a plurality of instructions simultaneously;
An information processing apparatus including a measuring means for measuring current,
The processor includes instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
When the current supplied to the information processing device measured by the measuring unit is greater than or equal to a predetermined value, the instruction decoding unit determines that the fetched instruction is a parallel instruction including a plurality of instructions. An information processing apparatus that causes some of the computing means to sequentially execute the parallel instructions by converting the instructions into sequential instructions.
複数の命令を同時に実行することが可能なプロセッサを含んだ情報処理装置であって、
前記プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
外部から入力される信号が所定の値を示す場合、前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、該並列命令を逐次命令に変換することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、情報処理装置。
An information processing apparatus including a processor capable of executing a plurality of instructions simultaneously,
The processor includes instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
When the externally input signal indicates a predetermined value, the instruction decoding means converts the parallel instruction into a sequential instruction if the fetched instruction is a parallel instruction including a plurality of instructions. An information processing apparatus that causes a part of the plurality of arithmetic means to sequentially execute parallel instructions.
複数の命令を同時に実行することが可能なプロセッサと、
書換えが可能なレジスタとを含んだ情報処理装置であって、
前記プロセッサは、フェッチされた命令をデコードするための命令デコード手段と、
前記命令デコード手段によるデコード結果に応じて、演算を実行するための複数の演算手段とを含み、
前記レジスタに所定値が格納されている場合、前記命令デコード手段は、フェッチされた命令が複数の命令を含んだ並列命令であれば、該並列命令を逐次命令に変換することによって、前記並列命令を前記複数の演算手段の中の一部の演算手段に逐次的に実行させる、情報処理装置。
A processor capable of executing a plurality of instructions simultaneously;
An information processing apparatus including a rewritable register,
The processor includes instruction decoding means for decoding the fetched instruction;
A plurality of arithmetic means for performing an operation according to a result of decoding by the instruction decoding means,
When the predetermined value is stored in the register, the instruction decode means converts the parallel instruction into a sequential instruction if the fetched instruction includes a plurality of instructions, thereby converting the parallel instruction into a sequential instruction. An information processing apparatus for causing a part of the plurality of calculation means to sequentially execute the above.
JP2004146258A 2004-05-17 2004-05-17 Processor, its compiler, and information processor including it Withdrawn JP2005327178A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004146258A JP2005327178A (en) 2004-05-17 2004-05-17 Processor, its compiler, and information processor including it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004146258A JP2005327178A (en) 2004-05-17 2004-05-17 Processor, its compiler, and information processor including it

Publications (1)

Publication Number Publication Date
JP2005327178A true JP2005327178A (en) 2005-11-24

Family

ID=35473482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004146258A Withdrawn JP2005327178A (en) 2004-05-17 2004-05-17 Processor, its compiler, and information processor including it

Country Status (1)

Country Link
JP (1) JP2005327178A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257445A (en) * 2009-04-14 2010-11-11 Technology Currents Llc Program and data annotation for hardware customization and energy optimization

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257445A (en) * 2009-04-14 2010-11-11 Technology Currents Llc Program and data annotation for hardware customization and energy optimization
US9104435B2 (en) 2009-04-14 2015-08-11 Empire Technology Development Llc Program and data annotation for hardware customization and energy optimization
US10331191B2 (en) 2009-04-14 2019-06-25 Empire Technology Development, Llc Program and data annotation for hardware customization and energy optimization

Similar Documents

Publication Publication Date Title
KR101770491B1 (en) Processor that performs approximate computing instructions
JP5172942B2 (en) Method for reducing power consumption by processor, processor, and information processing system
JP4986431B2 (en) Processor
JP5808348B2 (en) Instruction split based on machine state
JP4484925B2 (en) Method and apparatus for control flow management in SIMD devices
KR101720452B1 (en) Processor that recovers from excessive approximate computing error
WO2014004272A1 (en) Methods and apparatus to extend software branch target hints
Tabkhi et al. Application-guided power gating reducing register file static power
JP2015191346A (en) Compile program, compile method, and compile device
US20150227371A1 (en) Processors with Support for Compact Branch Instructions &amp; Methods
Wolf How many system architectures?
JP2005327178A (en) Processor, its compiler, and information processor including it
EP1220088B1 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
Multanen Energy-efficient instruction streams for embedded processors
Hou et al. FuMicro: A fused microarchitecture design integrating in-order superscalar and VLIW
CN110045989B (en) Dynamic switching type low-power-consumption processor
Lee et al. Power-aware code scheduling assisted with power gating and DVS
Eni et al. Efficient Hint-Based Event (EHE) issue scheduling for hardware multithreaded RISC-V pipeline
CN216527140U (en) Branch prediction device and processor
Shi et al. DSS: Applying asynchronous techniques to architectures exploiting ILP at compile time
CN112947999B (en) Method and device for expanding instruction function of reduced instruction set computer
Gao et al. A trigonometric function instruction set extension method based on RISC-V
EP4202664A1 (en) System, apparatus and method for throttling fusion of micro-operations in a processor
Pilla et al. A speculative trace reuse architecture with reduced hardware requirements
Andorno Design of the frontend for LEN5, a RISC-V Out-of-Order processor

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070807