JP5714792B2 - Instruction control circuit, instruction control method, and information processing apparatus - Google Patents

Instruction control circuit, instruction control method, and information processing apparatus Download PDF

Info

Publication number
JP5714792B2
JP5714792B2 JP2008242708A JP2008242708A JP5714792B2 JP 5714792 B2 JP5714792 B2 JP 5714792B2 JP 2008242708 A JP2008242708 A JP 2008242708A JP 2008242708 A JP2008242708 A JP 2008242708A JP 5714792 B2 JP5714792 B2 JP 5714792B2
Authority
JP
Japan
Prior art keywords
instruction
reduction
entry
entries
buf
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
JP2008242708A
Other languages
Japanese (ja)
Other versions
JP2010073124A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008242708A priority Critical patent/JP5714792B2/en
Publication of JP2010073124A publication Critical patent/JP2010073124A/en
Application granted granted Critical
Publication of JP5714792B2 publication Critical patent/JP5714792B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は命令制御回路、命令制御方法、および情報処理装置に関し、特に低消費電力を実現する命令制御回路、命令制御方法、および情報処理装置に関する。   The present invention relates to an instruction control circuit, an instruction control method, and an information processing apparatus, and more particularly to an instruction control circuit, an instruction control method, and an information processing apparatus that realize low power consumption.

消費電力制御の一例が特許文献1に記載されている。特許文献1のデータ処理装置は、データを格納するバッファとバッファにデータを供給するデータ供給部とデータ供給部の動作モードを制御するデータ供給制御部とを有し、データ供給制御部がバッファのデータ蓄積量に基づいてデータ供給部を低電力モードあるいは通常モードに移行させることで、データ処理装置自身の消費電力を制御する。   An example of power consumption control is described in Patent Document 1. The data processing apparatus of Patent Literature 1 includes a buffer for storing data, a data supply unit that supplies data to the buffer, and a data supply control unit that controls an operation mode of the data supply unit. The power consumption of the data processing apparatus itself is controlled by shifting the data supply unit to the low power mode or the normal mode based on the data accumulation amount.

また、消費電力制御の他の一例が、特許文献2に記載されている。特許文献2のメモリ管理ユニットは、メモリ管理ユニット制御回路と複数のエントリよりなるアドレス変換バッファとエントリ選択部と電力制御部とを有し、電力制御部がエントリ選択部の出力情報とメモリ管理ユニットの出力情報とに基づいてアドレス変換バッファのエントリの電力を制御する。   Another example of power consumption control is described in Patent Document 2. The memory management unit of Patent Document 2 includes a memory management unit control circuit, an address translation buffer including a plurality of entries, an entry selection unit, and a power control unit. The power control unit outputs information from the entry selection unit and the memory management unit. The power of the address translation buffer entry is controlled based on the output information.

さらに、消費電力制御の他の一例が、特許文献3に記載されている。特許文献3の並列演算処理プロセッサは、命令デコード部および複数の演算器を有する演算処理部と電力制御部とを有し、電力制御部が命令デコード部の出力するユニット選択信号および電力モード設定信号に基づいて各演算器に対するクロックおよび電源の供給を制御する。   Another example of power consumption control is described in Patent Document 3. The parallel processing processor of Patent Literature 3 includes an instruction processing unit having a command decoding unit and a plurality of computing units, and a power control unit, and the power control unit outputs a unit selection signal and a power mode setting signal output from the command decoding unit. Based on the above, the clock and power supply to each arithmetic unit are controlled.

特開2007−095040号公報JP 2007-095040 A WO2004/104841号公報WO2004 / 104841 publication 特開2003−263311号公報Japanese Patent Laid-Open No. 2003-263311

しかしながら、上述した特許文献1〜3に記載されたような技術では、それぞれが複数のエントリを有する複数の命令バッファを構成した場合、動作可能な、即ち電力を消費する、命令バッファのエントリの数をアプリケーションの動的な特性に応じてきめ細かく制御することができないという問題があった。   However, in the techniques as described in Patent Documents 1 to 3 described above, when a plurality of instruction buffers each having a plurality of entries are configured, the number of instruction buffer entries that are operable, that is, that consumes power, are included. There is a problem that it cannot be finely controlled according to the dynamic characteristics of the application.

以下に、例として、図4を参照してこの問題についてさらに説明する。図4は、命令キャッシュ10、命令実行部60および命令制御回路900を有する一般的なプロセッサを示す。このようなプロセッサの構成と動作に関しては、以下の非特許文献1を参照することができる。   In the following, this problem will be further described by way of example with reference to FIG. FIG. 4 shows a general processor having the instruction cache 10, the instruction execution unit 60, and the instruction control circuit 900. Regarding the configuration and operation of such a processor, the following Non-Patent Document 1 can be referred to.

David A.Patterson、John L.Hennessy、成田光影訳、「コンピュータの構成と設計」第3版[下]6.9高度なパイプライン処理:将来のさらなる向上、2006。David A. Patterson, John L. Hennessy, Mitsue Narita, “Computer Configuration and Design” 3rd edition [bottom] 6.9 Advanced Pipeline Processing: Further Improvements in the Future, 2006.

図4を参照すると、命令制御回路900は、命令ディスパッチ制御部920と各々「32個」のエントリを有するバッファーA(以下、「Abuf」)941、バッファーB(以下、「Bbuf」)942およびバッファーC(以下、「Cbuf」)943とを有している。   Referring to FIG. 4, the instruction control circuit 900 includes an instruction dispatch control unit 920, a buffer A (hereinafter “Abuf”) 941, a buffer B (hereinafter “Bbuf”) 942 and a buffer each having “32” entries. C (hereinafter “Cbuf”) 943.

命令ディスパッチ制御部920は、命令ディスパッチ制御回路924と、Abuf941、Bbuf942およびCbuf943において命令が登録されているエントリ個数を各々カウントするAbuf登録個数カウンタ21、Bbuf登録個数カウンタ22およびCbuf登録個数カウンタ23と、命令キャッシュ10からフェッチした命令を格納する命令レジスタdU925および命令レジスタdL926とを有する。   The instruction dispatch control unit 920 includes an instruction dispatch control circuit 924, an Abuf registration number counter 21, a Bbuf registration number counter 22, and a Cbuf registration number counter 23 that count the number of entries in which instructions are registered in the Abuf 941, Bbuf 942, and Cbuf 943, respectively. And an instruction register dU 925 for storing an instruction fetched from the instruction cache 10 and an instruction register dL 926.

Abuf登録個数カウンタ921、Bbuf登録個数カウンタ922およびCbuf登録個数カウンタ923は、それぞれ命令登録指示信号である命令DSP(Dispatch)-Abuf、命令DSP-Bbufおよび命令DSP-Cbufを入力して「1」カウントアップし、それぞれエントリ解放信号であるErel-Abuf、Erel-BbufおよびErel-Cbufを入力して「1」カウントダウンする。更に、Abuf登録個数カウンタ921、Bbuf登録個数カウンタ922およびCbuf登録個数カウンタ923は、各々の登録個数カウンタが32となった場合にAbuf-full/Bbuf-full/Cbuf-fullというBusy信号を立てる。   The Abuf registration number counter 921, the Bbuf registration number counter 922, and the Cbuf registration number counter 923 input the instruction DSP (Dispatch) -Abuf, the instruction DSP-Bbuf, and the instruction DSP-Cbuf, which are instruction registration instruction signals, respectively, and “1”. Count up, and input entry release signals Erel-Abuf, Erel-Bbuf and Erel-Cbuf, respectively, and count down by "1". Further, the Abuf registered number counter 921, the Bbuf registered number counter 922, and the Cbuf registered number counter 923 generate a Busy signal of Abuf-full / Bbuf-full / Cbuf-full when each registered number counter becomes 32.

命令ディスパッチ制御回路924は、Busy信号が立っている場合は、命令レジスタdU925および命令レジスタdL926をホールドし命令の取得を延期する。   If the Busy signal is raised, the instruction dispatch control circuit 924 holds the instruction register dU 925 and the instruction register dL 926 and postpones the acquisition of the instruction.

命令制御回路900においては、以上のようにして命令バッファの登録制御がおこなわれる。   In the instruction control circuit 900, instruction buffer registration control is performed as described above.

図5は、上記の構成において、Abuf登録個数カウンタ921が「32」になったために命令ディスパッチ制御回路924が命令レジスタdU925および命令レジスタdL926をホールドして命令DSP-Abufが延期し、パイプラインの動きを止めてしまった状況を示している(TMG2〜TMG5)。この場合、Abuf941というリソースが枯渇して命令供給レートが悪化することは仕方が無いとしても、後続のBbuf入命令およびCbuf入命令まで止まってしまい、Bbuf942の未使用エントリ「17」およびCbuf943の未使用エントリ「25」は電力を消費した状態のままである。これは、電力あたりの性能という面で問題である
図5の例では、TMG6において命令DSP-Abufが発行され、続くTMG7、TMG8においてBbuf入命令とC-buf入命令が連続してディスパッチされる。仮に命令実行部60がOut-of-order実行可能に構成してあれば、Bbuf/Cbuf入命令のディスパッチはもっと前のタイミングで実行されることになるが、Out-of-Order実行制御を可能にすることはアーキテクチャを複雑にし、消費電力の上昇を招くことになる。従って、電力あたりの性能向上という課題に対しての解決策としては有効ではない。
FIG. 5 shows that in the above configuration, the instruction dispatch control circuit 924 holds the instruction register dU 925 and the instruction register dL 926 because the Abuf registered number counter 921 becomes “32”, and the instruction DSP-Abuf is postponed. It shows the situation where the movement has stopped (TMG2 ~ TMG5). In this case, even if it is unavoidable that the resource of Abuf 941 is depleted and the instruction supply rate deteriorates, the subsequent Bbuf input instruction and Cbuf input instruction are stopped, and the unused entry “17” of Bbuf 942 and the unused Cbuf 943 are not used. The usage entry “25” remains in a state where power is consumed. This is a problem in terms of performance per power. In the example of Fig. 5, instruction DSP-Abuf is issued in TMG6, and Bbuf input instruction and C-buf input instruction are continuously dispatched in TMG7 and TMG8. . If the instruction execution unit 60 is configured to execute out-of-order execution, dispatch of Bbuf / Cbuf input instructions will be executed at an earlier timing, but out-of-order execution control is possible. Doing so complicates the architecture and increases power consumption. Therefore, it is not effective as a solution to the problem of performance improvement per electric power.

他方、使っていないBbuf942およびCbuf943に対して電力が供給されていることは、省電力という観点からは問題と言える。図5の例で言えば、Bbuf登録個数カウンタ22およびCbuf登録個数カウンタ23はそれぞれ「15」、「7」のままであるので、Bbuf942およびCbuf943のエントリの最大をそれぞれ「16」、「8」にしても性能には変化が無い。従って、Bbuf942およびCbuf943の使用しないそれぞれ「16」、「24」のエントリの電源やクロックを落とすことがプロセッサ全体の動きを踏まえた効率的な省電力制御のあり方である。ここで、Abuf941、Bbuf942およびCbuf943の使用度はアプリケーションに依存するものではあるが、コンパイラ時の静的な解析に基づいてバッファ容量を確定させる等の方法は効果を上げにくい。   On the other hand, supplying power to the unused Bbuf 942 and Cbuf 943 is a problem from the viewpoint of power saving. In the example of FIG. 5, the Bbuf registration number counter 22 and the Cbuf registration number counter 23 remain “15” and “7”, respectively, so the maximum entries of Bbuf 942 and Cbuf 943 are “16” and “8”, respectively. However, there is no change in performance. Therefore, the power supply control and the clock of the entries “16” and “24” that are not used by the Bbuf 942 and the Cbuf 943, respectively, are reduced in an efficient power saving control based on the movement of the entire processor. Here, the usage of Abuf 941, Bbuf 942, and Cbuf 943 depends on the application, but a method of determining the buffer capacity based on a static analysis at the time of compiler is not effective.

即ち、特許文献1乃至3のいずれに記載された技術を用いても、性能バランスを保持しつつ、命令バッファのエントリの電力消費を動的に制御することができないという問題があった。   That is, there is a problem that even if the technique described in any one of Patent Documents 1 to 3 is used, the power consumption of the instruction buffer entry cannot be dynamically controlled while maintaining the performance balance.

本発明の目的は、上述した課題を解決する命令制御回路、命令制御方法、および情報処理装置を提供することにある。   An object of the present invention is to provide an instruction control circuit, an instruction control method, and an information processing apparatus that solve the above-described problems.

本発明の命令制御回路は、それぞれ複数のエントリを有する複数の命令バッファと、
該複数の命令バッファのぞれぞれに対し、に当該命令バッファ毎の全ての前記エントリが使用状態であるbuf-full時間を計時する時間計時部と、
前記buf-full時間に基づいて削減後エントリ数を算出する時間解析部と、
前記削減後エントリ数に基づいて前記複数のエントリのそれぞれの電力消費の停止あるいは低減を制御する制御部とを有する。
The instruction control circuit of the present invention includes a plurality of instruction buffers each having a plurality of entries,
For each of the plurality of instruction buffers, a time counting unit that measures a buf-full time in which all the entries for each instruction buffer are in use,
A time analysis unit that calculates the number of entries after reduction based on the buf-full time;
And a control unit that controls stop or reduction of power consumption of each of the plurality of entries based on the number of entries after reduction.

本発明の命令制御方法は、それぞれ複数のエントリを有する複数の命令バッファのそれぞれに対し、当該命令バッファ毎の全ての前記エントリが使用状態であるbuf-full時間を計時し、
前記buf-full時間に基づいて削減後エントリ数を算出し、
前記削減後エントリ数に基づいて前記複数のエントリのそれぞれの電力消費の停止あるいは低減を制御する。
In the instruction control method of the present invention, for each of a plurality of instruction buffers each having a plurality of entries, the buf-full time during which all the entries for each instruction buffer are in use is counted,
Calculate the number of entries after reduction based on the buf-full time,
Control of stopping or reducing power consumption of each of the plurality of entries is performed based on the number of entries after reduction.

本発明によれば、命令バッファのエントリのうち性能バランス保持に不要分のエントリの消費電力を、動的にきめ細かく削減することが可能になる。   According to the present invention, it is possible to dynamically and finely reduce the power consumption of entries unnecessary for maintaining the performance balance among the entries in the instruction buffer.

次に、本発明の実施の形態について図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

図1を参照すると、本発明の第1の実施の形態は、命令キャッシュ10、命令実行部60および命令制御回路200から構成されている。   Referring to FIG. 1, the first embodiment of the present invention includes an instruction cache 10, an instruction execution unit 60, and an instruction control circuit 200.

命令キャッシュ10は、例えばキャッシュメモリであり、命令実行部60で実行されるアプリケーションプログラムの命令100を保持する。   The instruction cache 10 is a cache memory, for example, and holds an instruction 100 of an application program executed by the instruction execution unit 60.

命令実行部60は、例えば複数命令発行方式のパイプラインであり、命令制御回路200から取得した命令の各ステージ(命令デコード/実行、レジスタファイル読み出し/書き戻し、メモリのアクセス、など)を実行する。   The instruction execution unit 60 is, for example, a multiple instruction issue type pipeline, and executes each stage (instruction decode / execute, register file read / write-back, memory access, etc.) of the instruction acquired from the instruction control circuit 200. .

命令制御回路200は、以下に詳述する構成と動作により、命令キャッシュ10から命令を取得し、取得した命令をディスパッチして命令実行部60に渡す。命令制御回路200は、命令ディスパッチ制御部20、Abuf41、Bbuf42、Cbuf43およびバッファフル時間解析制御部50を含む。   The instruction control circuit 200 acquires an instruction from the instruction cache 10 by the configuration and operation described in detail below, dispatches the acquired instruction, and passes the acquired instruction to the instruction execution unit 60. The instruction control circuit 200 includes an instruction dispatch control unit 20, an Abuf 41, a Bbuf 42, a Cbuf 43, and a buffer full time analysis control unit 50.

命令ディスパッチ制御部20は、Abuf登録個数カウンタ21、Bbuf登録個数カウンタ22、Cbuf登録個数カウンタ23、命令ディスパッチ制御回路24、命令レジスタdu25、命令レジスタdL26およびBuf数更新間隔REG27を含む。なお、「命令ディスパッチ制御部20」は一般的に「制御部」と呼ぶことができる。   The instruction dispatch control unit 20 includes an Abuf registration number counter 21, a Bbuf registration number counter 22, a Cbuf registration number counter 23, an instruction dispatch control circuit 24, an instruction register du25, an instruction register dL26, and a Buf number update interval REG27. The “instruction dispatch control unit 20” can be generally called a “control unit”.

Abuf登録個数カウンタ21、Bbuf登録個数カウンタ22およびCbuf登録個数カウンタ23は、例えばカウンタ回路であり、それぞれAbuf41、Bbuf42およびCbuf43において命令が登録されているエントリの個数(以下、登録エントリ数と呼ぶ)を保持する。Abuf登録個数カウンタ21、Bbuf登録個数カウンタ22およびCbuf登録個数カウンタ23は、それぞれ命令DSP-Abuf信号、命令DSP-Bbuf信号および命令DSP-Cbuf信号を入力するとそれぞれの保持している登録エントリ数を「1」加算し、それぞれAbufエントリ解放信号、Bbufエントリ解放信号およびCbufエントリ解放信号を入力するとそれぞれの保持している登録エントリ数を「1」減算する。   The Abuf registered number counter 21, the Bbuf registered number counter 22, and the Cbuf registered number counter 23 are, for example, counter circuits, and the number of entries in which instructions are registered in the Abuf 41, Bbuf 42, and Cbuf 43, respectively (hereinafter referred to as the registered entry number). Hold. The Abuf registered number counter 21, the Bbuf registered number counter 22 and the Cbuf registered number counter 23 receive the instruction DSP-Abuf signal, the instruction DSP-Bbuf signal and the instruction DSP-Cbuf signal, respectively. When “1” is added and an Abuf entry release signal, a Bbuf entry release signal, and a Cbuf entry release signal are input, “1” is subtracted from the number of registered entries held.

命令ディスパッチ制御回路24は、例えば論理回路であり、命令ディスパッチ制御部20全体の動作を制御して、Abuf41、Bbuf42およびCbuf43がオーバーフローしないようにそれぞれの登録エントリ数を監視しながら、Abuf41、Bbuf42およびCbuf43への命令の登録制御を実行する。同時に、命令ディスパッチ制御回路24は、後述する削減後エントリ数に基づいて、Abuf41、Bbuf42およびCbuf43の各エントリの電力消費の停止あるいは低減を指示する。   The instruction dispatch control circuit 24 is, for example, a logic circuit, and controls the operation of the entire instruction dispatch control unit 20 to monitor the number of registered entries so that the Abuf 41, Bbuf 42, and Cbuf 43 do not overflow. The registration control of the instruction to Cbuf 43 is executed. At the same time, the instruction dispatch control circuit 24 instructs to stop or reduce the power consumption of each entry of the Abuf 41, the Bbuf 42, and the Cbuf 43 based on the number of entries after reduction described later.

具体的には、命令ディスパッチ制御回路24は、命令フェッチdl信号を入力すると、命令126の分類に対応するAbuf41、Bbuf42またはCbuf43のいずれか一つを選択し、選択したAbuf41、Bbuf42およびCbuf43にそれぞれ対応する命令DSP-Abuf信号と命令DSP-Abuf信号、命令DSP-Bbuf信号と命令DSP-Bbuf信号および命令DSP-Cbuf信号と命令DSP-Cbuf信号とを出力する。尚、これらの各信号は、例えばパルス信号である。   Specifically, when the instruction dispatch control circuit 24 receives the instruction fetch dl signal, the instruction dispatch control circuit 24 selects any one of Abuf 41, Bbuf 42, or Cbuf 43 corresponding to the classification of the instruction 126, and selects the selected Abuf 41, Bbuf 42, and Cbuf 43, respectively. The corresponding instruction DSP-Abuf signal and instruction DSP-Abuf signal, instruction DSP-Bbuf signal and instruction DSP-Bbuf signal, instruction DSP-Cbuf signal and instruction DSP-Cbuf signal are output. Each of these signals is a pulse signal, for example.

上記の動作と並行して、命令ディスパッチ制御回路24は、命令フェッチdl信号を入力すると、Abuf登録個数カウンタ21の登録エントリ数とA-Buf削減後エントリ数REG55の削減後エントリ数とを比較し、これらが等しくかつAbuf-full信号がオフである場合にAbuf41がフル状態になったことを検出し、Abuf-full信号をオン状態にする。尚、Abuf-full信号は、例えばレベル信号であり、オン状態でAbuf41に対応する登録エントリ数と削減後エントリ数が等しいことを、オフ状態でAbuf41に対応する登録エントリ数が削減後エントリ数未満であることを示す。同様に、命令ディスパッチ制御回路24は、Bbuf42およびCbuf43に対応する登録エントリ数と削減後エントリ数に基づいて、それぞれBbuf-full信号およびCbuf-full信号を制御する。   In parallel with the above operation, when the instruction dispatch control circuit 24 receives the instruction fetch dl signal, the instruction dispatch control circuit 24 compares the registered entry number of the Abuf registered number counter 21 with the reduced entry number of the A-Buf reduced entry number REG55. If they are equal and the Abuf-full signal is off, it is detected that the Abuf 41 is full, and the Abuf-full signal is turned on. The Abuf-full signal is, for example, a level signal, indicating that the number of registered entries corresponding to the Abuf 41 and the number of entries after reduction are equal in the on state, and the number of registered entries corresponding to the Abuf 41 in the off state is less than the number of entries after reduction. Indicates that Similarly, the instruction dispatch control circuit 24 controls the Bbuf-full signal and the Cbuf-full signal, respectively, based on the number of registered entries corresponding to Bbuf 42 and Cbuf 43 and the number of entries after reduction.

加えて、命令ディスパッチ制御回路24は、Abuf-full信号、Bbuf-full信号またはCbuf-full信号のうちのいずれか1以上をオン状態にしている場合、同時にDLHLD信号をオン状態にする。尚、DLHLD信号は、例えばレベル信号である。   In addition, when any one or more of the Abuf-full signal, the Bbuf-full signal, and the Cbuf-full signal are turned on, the instruction dispatch control circuit 24 simultaneously turns on the DLHLD signal. The DLHLD signal is a level signal, for example.

さらに、命令ディスパッチ制御回路24は、命令フェッチdl信号を入力すると、A-Buf削減後エントリ数REG55の削減後エントリ数(現削減後エントリ数と呼ぶ)と、前回の命令フェッチdl信号の入力時に読み出して記憶していた削減後エントリ数(先削減後エントリ数と呼ぶ)とを比較する。そして、命令ディスパッチ制御回路24は、現削減後エントリ数と先削減後エントリ数が等しい場合には対応する動作として何もせず、現削減後エントリ数が先削減後エントリ数を超えている場合にはAbuf41に対して現削減後エントリ数を示して電力消費の停止あるいは低減するエントリを指示する。また、命令ディスパッチ制御回路24は、現削減後エントリ数が先削減後エントリ数未満の場合にはAbuf登録個数カウンタ21の登録エントリ数が現削減後エントリ数以下になった時点で、Abuf41に対して現削減後エントリ数を示して電力消費の停止あるいは低減するエントリを指示する。同様の動作により、命令ディスパッチ制御回路24は、Bbuf42およびCbuf43に対して現削減後エントリ数を示して電力消費の停止あるいは低減するエントリを指示する。   Further, upon receiving the instruction fetch dl signal, the instruction dispatch control circuit 24 receives the reduced entry number REG55 (referred to as the current reduced entry number) and the previous instruction fetch dl signal when the A-Buf reduced entry number is input. The number of entries after reduction that has been read and stored (referred to as the number of entries after pre-reduction) is compared. The instruction dispatch control circuit 24 does nothing as the corresponding operation when the number of entries after the current reduction is equal to the number of entries after the previous reduction, and when the number of entries after the current reduction exceeds the number of entries after the previous reduction. Indicates to Abuf 41 the current number of entries after reduction, and indicates an entry to stop or reduce power consumption. In addition, when the number of entries after the current reduction is less than the number of entries after the previous reduction, the instruction dispatch control circuit 24 determines that the number of registered entries in the Abuf registration number counter 21 is equal to or less than the number of entries after the current reduction. The number of entries after the current reduction is indicated to indicate an entry for stopping or reducing power consumption. By a similar operation, the instruction dispatch control circuit 24 indicates the number of entries after the current reduction to the Bbuf 42 and the Cbuf 43 and instructs an entry for stopping or reducing the power consumption.

命令レジスタdu25は、例えばレジスタ回路であり、命令フェッチのタイミングにおいて、DLHLD信号がオフ状態の場合には命令キャッシュ10から命令100を取得して命令125として保持し、DLHLD信号がオン状態の場合には命令キャッシュ10から命令100を取得しない。   The instruction register du25 is, for example, a register circuit. When the DLHLD signal is off at the instruction fetch timing, the instruction register du25 acquires the instruction 100 from the instruction cache 10 and holds it as the instruction 125, and when the DLHLD signal is on. Does not obtain the instruction 100 from the instruction cache 10.

命令レジスタdL26は、例えばレジスタ回路であり、命令フェッチのタイミングにおいて、DLHLD信号がオフ状態の場合には命令レジスタdu25から命令125を取得して命令126として保持し、命令フェッチdl信号を出力し、DLHLD信号がオン状態の場合には命令レジスタdu25から命令125を取得しない。尚、命令フェッチdl信号は、例えばパルス信号である。   The instruction register dL26 is, for example, a register circuit. When the DLHLD signal is off at the instruction fetch timing, the instruction register dL26 acquires the instruction 125 from the instruction register du25 and holds it as the instruction 126, and outputs the instruction fetch dl signal. When the DLHLD signal is on, the instruction 125 is not acquired from the instruction register du25. The instruction fetch dl signal is a pulse signal, for example.

Buf数更新間隔REG27は、例えばプログラムによるアクセスが可能なレジスタ回路であり、後述する削減後エントリ数を算出する処理を実行する時間間隔を保持する。この時間間隔は、例えば、命令ディスパッチ制御部20が実装されたコンピュータ上で動作するオペレーティングシステムにおけるプロセススイッチング処理の一部として実現される更新間隔設定手段(図示しない)から設定される。そして、設定される時間間隔の単位は、例えば命令実行部60の動作クロック(図示しない)のクロック数である。あるいは、設定される時間間隔の単位は、専用の発信器(図示しない)または他の回路の動作クロック(図示しない)のクロック数であっても良い。なお、「Buf数更新間隔REG27」は一般的に「Buf数更新間隔保持部」と呼ぶことができる。   The Buf number update interval REG27 is, for example, a register circuit that can be accessed by a program, and holds a time interval for executing processing for calculating the number of entries after reduction, which will be described later. This time interval is set, for example, from update interval setting means (not shown) realized as part of process switching processing in an operating system operating on a computer on which the instruction dispatch control unit 20 is mounted. The unit of the set time interval is, for example, the number of clocks of the operation clock (not shown) of the instruction execution unit 60. Alternatively, the unit of the set time interval may be the number of clocks of a dedicated oscillator (not shown) or an operation clock (not shown) of another circuit. The “Buf number update interval REG27” can be generally called a “Buf number update interval holding unit”.

Abuf41、Bbuf42およびCbuf43は、例えばFIFO(First In First Out)形式のバッファ回路であり、本実施の形態ではそれぞれ例えば32個のエントリを有し(最大エントリ数=32)、例えば演算命令、メモリアクセス命令あるいは分岐命令というような命令の分類に対応して、格納するAbuf41、Bbuf42およびCbuf43を割り当てる。尚、エントリ数は他の実施の形態において任意の個数を有するように構成しても良いし、また格納の割り当ては他の任意の命令の分類に対応しても良い。   Abuf 41, Bbuf 42, and Cbuf 43 are, for example, FIFO (First In First Out) buffer circuits, each of which has, for example, 32 entries (maximum number of entries = 32) in this embodiment. Abuf 41, Bbuf 42, and Cbuf 43 to be stored are assigned in accordance with the instruction classification such as an instruction or a branch instruction. It should be noted that the number of entries may be configured to have an arbitrary number in other embodiments, and the storage allocation may correspond to another arbitrary instruction classification.

Abuf41、Bbuf42およびCbuf43は、それぞれ命令DSP-Abuf信号、命令DSP-Bbuf信号および命令DSP-Cbuf信号を入力すると、命令レジスタdl26から命令126を取得しそれぞれのエントリに登録する。また、Abuf41、Bbuf42およびCbuf43は、エントリに登録している命令126を命令実行部60に出力した場合、それぞれAbufエントリ解放信号、Bbufエントリ解放信号およびCbufエントリ解放信号を出力する。尚、Abufエントリ解放信号、Bbufエントリ解放信号およびCbufエントリ解放信号は、例えばパルス信号である。   When the instruction DSP-Abuf signal, the instruction DSP-Bbuf signal, and the instruction DSP-Cbuf signal are input to the Abuf 41, Bbuf 42, and Cbuf 43, the instruction 126 is acquired from the instruction register dl26 and registered in the respective entries. Further, when the instruction 126 registered in the entry is output to the instruction execution unit 60, the Abuf 41, Bbuf 42, and Cbuf 43 output an Abuf entry release signal, a Bbuf entry release signal, and a Cbuf entry release signal, respectively. The Abuf entry release signal, the Bbuf entry release signal, and the Cbuf entry release signal are, for example, pulse signals.

Abuf41、Bbuf42およびCbuf43は、命令ディスパッチ制御回路24からの電力消費の停止あるいは低減の指示に対応して、各エントリのクロックを停止、電源を停止あるいは低電力モードへ移行させる。尚、このような電力消費の停止あるいは低減の具体的な実現方法は、特許文献1、特許文献2および特許文献3などの記載を参照しても良い。なお、「Abuf41」や、「Bbuf42」、「Cbuf43」は一般的に「命令バッファ」と呼ぶことができる。   Abuf 41, Bbuf 42, and Cbuf 43 respond to an instruction to stop or reduce power consumption from instruction dispatch control circuit 24, stop the clock of each entry, stop the power supply, or shift to the low power mode. In addition, you may refer description of patent document 1, patent document 2, patent document 3, etc. for the concrete implementation | achievement method of such a stop or reduction of power consumption. Note that “Abuf 41”, “Bbuf 42”, and “Cbuf 43” can be generally called “instruction buffers”.

バッファフル時間解析制御部50は、Buf-full時間解析回路51、Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53、Cbuf-full時間カウンタ54、A-Buf削減後エントリ数REG55、B-Buf削減後エントリ数REG56およびC-Buf削減後エントリ数REG57を含む。なお、「Abuf-full時間カウンタ52」、「Bbuf-full時間カウンタ53」および「Cbuf-full時間カウンタ54」は一般的に「時間計時部」と呼ぶことができる。   The buffer full time analysis control unit 50 includes a Buf-full time analysis circuit 51, an Abuf-full time counter 52, a Bbuf-full time counter 53, a Cbuf-full time counter 54, an A-Buf reduced entry number REG55, and a B-Buf. It includes the entry number REG56 after reduction and the entry number REG57 after C-Buf reduction. The “Abuf-full time counter 52”, the “Bbuf-full time counter 53”, and the “Cbuf-full time counter 54” can be generally referred to as a “time counter”.

Buf-full時間解析回路51は、例えば論理回路であり、バッファフル時間解析制御部50全体の動作を制御し、Abuf41、Bbuf42およびCbuf43がバッファフル状態である時間に基づいて、アプリケーションプログラムの実行状態に合わせたAbuf41、Bbuf42およびCbuf43の削減後エントリ数を算出する。なお、「Buf-full時間解析回路51」は一般的に「時間解析部」と呼ぶことができる。   The Buf-full time analysis circuit 51 is, for example, a logic circuit, and controls the operation of the entire buffer full time analysis control unit 50. Based on the time when the Abuf 41, Bbuf 42, and Cbuf 43 are in the buffer full state, the execution state of the application program The number of entries after reduction of Abuf 41, Bbuf 42, and Cbuf 43 in accordance with is calculated. The “Buf-full time analysis circuit 51” can be generally called a “time analysis unit”.

具体的には、Buf-full時間解析回路51は、Buf数更新間隔REG27から取得した時間間隔を計時し、この時間間隔ごとに以下の処理を実行する。   Specifically, the Buf-full time analysis circuit 51 measures the time interval acquired from the Buf number update interval REG 27, and executes the following processing for each time interval.

まず、Buf-full時間解析回路51は、A-Buf削減後エントリ数REG55、B-Buf削減後エントリ数REG56およびC-Buf削減後エントリ数REG57の保持する各削減後エントリ数にそれぞれAbuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54の保持する各時間を乗じて、Abuf41、Bbuf42およびCbuf43のフル度値を算出する。続けてBuf-full時間解析回路51は、これらのフル度値の内最大のフル度値に対する各フル度値の比を算出し、これらの各フル度値の比に対応するAbuf41、Bbuf42およびCbuf43の最大エントリ数を乗じて新たな削減後エントリ数を算出する。   First, the Buf-full time analysis circuit 51 sets the Abuf-full for each number of entries after reduction held in the entry number REG55 after A-Buf reduction, the entry number REG56 after B-Buf reduction, and the entry number REG57 after C-Buf reduction. The fullness values of Abuf 41, Bbuf 42, and Cbuf 43 are calculated by multiplying each time held by the time counter 52, the Bbuf-full time counter 53, and the Cbuf-full time counter 54. Subsequently, the Buf-full time analysis circuit 51 calculates the ratio of each fullness value to the maximum fullness value among these fullness values, and Abuf41, Bbuf42 and Cbuf43 corresponding to the ratio of each fullness value. The new number of entries after reduction is calculated by multiplying the maximum number of entries.

次にBuf-full時間解析回路51は、算出した削減後エントリ数をそれぞれA-Buf削減後エントリ数REG55、B-Buf削減後エントリ数REG56およびC-Buf削減後エントリ数REG57に設定する。   Next, the Buf-full time analysis circuit 51 sets the calculated post-reduction entry number to the A-Buf reduction entry number REG55, the B-Buf reduction entry number REG56, and the C-Buf reduction entry number REG57, respectively.

また同時に、Buf-full時間解析回路51は、カウントリセット信号を出力する。   At the same time, the Buf-full time analysis circuit 51 outputs a count reset signal.

Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54は、例えばカウンタ回路であり、Abuf41、Bbuf42およびCbuf43がフル状態にある時間を保持する。   The Abuf-full time counter 52, the Bbuf-full time counter 53, and the Cbuf-full time counter 54 are, for example, counter circuits, and hold the time during which the Abuf 41, Bbuf 42, and Cbuf 43 are full.

具体的には、Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54は、それぞれAbuf-full信号、Bbuf-full信号およびCbuf-full信号がオン状態の間カウンタをカウントアップする。尚、これらのカウンタ回路は、例えば命令ディスパッチ制御部20の動作クロック(図示しない)あるいは命令実行部60の動作クロック(図示しない)でカウントを実行する。また、Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54は、カウントリセット信号を入力してカウンタを「0」クリアする。   Specifically, the Abuf-full time counter 52, the Bbuf-full time counter 53, and the Cbuf-full time counter 54 count the counter while the Abuf-full signal, the Bbuf-full signal, and the Cbuf-full signal are on, respectively. Up. Note that these counter circuits execute counting by an operation clock (not shown) of the instruction dispatch control unit 20 or an operation clock (not shown) of the instruction execution unit 60, for example. Further, the Abuf-full time counter 52, the Bbuf-full time counter 53, and the Cbuf-full time counter 54 input a count reset signal and clear the counter to “0”.

A-Buf削減後エントリ数REG55、B-Buf削減後エントリ数REG56およびC-Buf削減後エントリ数REG57は、例えばレジスタ回路であり、それぞれBuf-full時間解析回路51が設定したAbuf41、Bbuf42およびCbuf43の削減後エントリ数を保持する。尚、A-Buf削減後エントリ数REG55、B-Buf削減後エントリ数REG56およびC-Buf削減後エントリ数REG57の初期設定値は、それぞれAbuf41、Bbuf42およびCbuf43の最大エントリ数(本実施の形態では、「32」)である。   The entry number REG55 after A-Buf reduction, the entry number REG56 after B-Buf reduction, and the entry number REG57 after C-Buf reduction are, for example, register circuits, and Abuf 41, Bbuf 42, and Cbuf 43 set by the Buf-full time analysis circuit 51, respectively. Holds the number of entries after reduction. Note that the initial setting values of the entry number REG55 after A-Buf reduction, the entry number REG56 after B-Buf reduction, and the entry number REG57 after C-Buf reduction are respectively the maximum entries of Abuf 41, Bbuf 42, and Cbuf 43 (in this embodiment, "32").

次に、Buf-full時間解析回路51の削減後エントリ数算出の動作を、具体的な例を上げて説明する。   Next, the operation of calculating the post-reduction entry number of the Buf-full time analysis circuit 51 will be described with a specific example.

初期設定後、最初にBuf数更新間隔REG27から取得した時間間隔(例えば、1,000,000クロック)を計時した期間のAbuf41、Bbuf42およびCbuf43がフル状態であった時間がそれぞれ120,000クロック、60,000クロック、90,000クロックであったとする。   After the initial setting, the time when Abuf 41, Bbuf 42 and Cbuf 43 were full during the time interval (for example, 1,000,000 clocks) first acquired from Buf number update interval REG27 was 120,000 clocks, 60,000 clocks and 90,000 clocks, respectively. Suppose there was.

まず、Buf-full時間解析回路51は、フル度値を以下のとおり算出する。   First, the Buf-full time analysis circuit 51 calculates the fullness value as follows.

(Abuf41のフル度値)=(A-Buf削減後エントリ数REG55の保持する削減後エントリ数)×(Abuf-full時間カウンタ52の保持する時間)=32×120,000=3,840,000。   (Fullness value of Abuf 41) = (Number of entries after reduction held by REG55 after A-Buf reduction) × (Time held by Abuf-full time counter 52) = 32 × 120,000 = 3,840,000.

(Bbuf42のフル度値)=(B-Buf削減後エントリ数REG56の保持する削減後エン数)×(Bbuf-full時間カウンタ53の保持する時間)=32×60,000=1,920,000。   (Fullness value of Bbuf 42) = (Number of post-reduction entries held in the REG 56 after B-Buf reduction) × (Time held by the Bbuf-full time counter 53) = 32 × 60,000 = 1,920,000.

(Abuf41のフル度値)=(C-Buf削減後エントリ数REG57の保持する削減後エントリ数)×(Cbuf-full時間カウンタ54の保持する時間)=32×90,000=2,880,000。   (Fullness value of Abuf 41) = (Number of entries after reduction held in REG 57 after C-Buf reduction) × (Time held by Cbuf-full time counter 54) = 32 × 90,000 = 2,880,000.

続けてBuf-full時間解析回路51は、これらのフル度値の内最大のフル度値(本例では、3,840,000)に対する各フル度値の比を算出する。   Subsequently, the Buf-full time analysis circuit 51 calculates a ratio of each fullness value to the maximum fullness value (3,840,000 in this example) among these fullness values.

(Abuf41のフル度値比)=3,840,000÷3,840,000=1。   (Abuf 41 fullness value ratio) = 3,840,000 ÷ 3,840,000 = 1.

(Bbuf42のフル度値比)=1,920,000÷3,840,000=0.5。   (Fullness value ratio of Bbuf42) = 1,920,000 ÷ 3,840,000 = 0.5.

(Cbuf43のフル度値比)=2,880,000÷3,840,000=0.75。   (Fullness value ratio of Cbuf43) = 2,880,000 ÷ 3,840,000 = 0.75.

続けて、Buf-full時間解析回路51は、フル度値の比に対応するAbuf41、Bbuf42およびCbuf43の最大エントリ数を乗じて(小数点以下は切り上げ)、新たな削減後エントリ数を算出する。   Subsequently, the Buf-full time analysis circuit 51 multiplies the maximum number of entries of Abuf 41, Bbuf 42, and Cbuf 43 corresponding to the ratio of the fullness value (rounds up the decimal point) to calculate a new number of entries after reduction.

(Abuf41の新たな削減後エントリ数)=1×32=32。   (New number of entries after reduction of Abuf 41) = 1 × 32 = 32.

(Bbuf42の新たな削減後エントリ数)=0.5×32=16。   (New number of entries after reduction of Bbuf 42) = 0.5 × 32 = 16.

(Cbuf43の新たな削減後エントリ数)=0.75×32=24。   (New number of entries after reduction of Cbuf 43) = 0.75 × 32 = 24.

こうして算出した削減後エントリ数を設定後、再びBuf数更新間隔REG27から取得した時間間隔を計時した期間のAbuf41、Bbuf42およびCbuf43がフル状態であった時間がそれぞれ120,000クロック、130,000クロック、110,000クロックであったとする。   After setting the number of entries after reduction calculated in this way, the time when Abuf 41, Bbuf 42 and Cbuf 43 are full during the time interval obtained by measuring the time interval obtained from Buf number update interval REG27 again is 120,000 clocks, 130,000 clocks and 110,000 clocks, respectively. Suppose there was.

今回は、Buf-full時間解析回路51は、フル度値を以下のとおり算出する。   This time, the Buf-full time analysis circuit 51 calculates the fullness value as follows.

(Abuf41のフル度値)=32×120,000=3,840,000。   (Fullness value of Abuf 41) = 32 × 120,000 = 3,840,000.

(Bbuf42のフル度値)=16×130,000=2,080,000。   (Fullness value of Bbuf42) = 16 × 130,000 = 2,080,000.

(Abuf41のフル度値)=24×110,000=2,640,000。   (Fullness value of Abuf 41) = 24 × 110,000 = 2,640,000.

続けてBuf-full時間解析回路51は、これらのフル度値の内最大のフル度値(本例では、3,840,000)に対する各フル度値の比を算出する。   Subsequently, the Buf-full time analysis circuit 51 calculates a ratio of each fullness value to the maximum fullness value (3,840,000 in this example) among these fullness values.

(Abuf41のフル度値比)=3,840,000÷3,840,000=1。   (Abuf 41 fullness value ratio) = 3,840,000 ÷ 3,840,000 = 1.

(Bbuf42のフル度値比)=2,080,000÷3,840,000=0.54。   (Fullness value ratio of Bbuf42) = 2,080,000 ÷ 3,840,000 = 0.54.

(Cbuf43のフル度値比)=2,640,000÷3,840,000=0.69。   (Fullness value ratio of Cbuf43) = 2,640,000 ÷ 3,840,000 = 0.69.

続けて、Buf-full時間解析回路51は、フル度値の比に対応するAbuf41、Bbuf42およびCbuf43の最大エントリ数を乗じて、新たな削減後エントリ数を算出する。   Subsequently, the Buf-full time analysis circuit 51 multiplies the maximum number of entries of Abuf 41, Bbuf 42, and Cbuf 43 corresponding to the ratio of the fullness value to calculate a new number of entries after reduction.

(Abuf41の新たな削減後エントリ数)=1×32=32。   (New number of entries after reduction of Abuf 41) = 1 × 32 = 32.

(Bbuf42の新たな削減後エントリ数)=0.54×32=18。   (New number of entries after reduction of Bbuf 42) = 0.54 × 32 = 18.

(Cbuf43の新たな削減後エントリ数)=0.69×32=23。   (New number of entries after reduction of Cbuf 43) = 0.69 × 32 = 23.

以上が、具体的な例による、Buf-full時間解析回路51の削減後エントリ数算出の動作の説明である。   The above is the description of the operation for calculating the post-reduction entry count of the Buf-full time analysis circuit 51 according to a specific example.

図2は、本実施の形態の基本的な構成を示す。図2によれば、命令制御回路201は、Abuf41、Bbuf42、Cbuf43、Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54、buf-full時間解析回路51および命令ディスパッチ制御部20を有する。   FIG. 2 shows a basic configuration of the present embodiment. According to FIG. 2, the instruction control circuit 201 includes an Abuf 41, a Bbuf 42, a Cbuf 43, an Abuf-full time counter 52, a Bbuf-full time counter 53, a Cbuf-full time counter 54, a buf-full time analysis circuit 51, and an instruction dispatch control. Part 20.

Abuf41、Bbuf42およびCbuf43は、それぞれ32個のエントリを有する。   Each of Abuf 41, Bbuf 42, and Cbuf 43 has 32 entries.

Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54は、Abuf41、Bbuf42およびCbuf43毎にAbuf41、Bbuf42およびCbuf43毎の32個の全てのエントリが使用状態であるbuf-full時間を計時する。   The Abuf-full time counter 52, the Bbuf-full time counter 53, and the Cbuf-full time counter 54 are buf-full in which all 32 entries for each Abuf 41, Bbuf 42, and Cbuf 43 are in use. Time is measured.

buf-full時間解析回路51は、Abuf-full時間カウンタ52、Bbuf-full時間カウンタ53およびCbuf-full時間カウンタ54が計時するbuf-full時間に基づいて削減後エントリ数を算出する。   The buf-full time analysis circuit 51 calculates the number of entries after reduction based on the buf-full time counted by the Abuf-full time counter 52, the Bbuf-full time counter 53, and the Cbuf-full time counter 54.

命令ディスパッチ制御部20は、buf-full時間解析回路51が算出した削減後エントリ数に基づいてAbuf41、Bbuf42およびCbuf43の各エントリの電力消費の停止あるいは低減を制御する。   The instruction dispatch control unit 20 controls the stop or reduction of the power consumption of each entry of the Abuf 41, Bbuf 42, and Cbuf 43 based on the number of entries after reduction calculated by the buf-full time analysis circuit 51.

上述した本実施の形態における第1の効果は、命令バッファのエントリのうち性能バランス保持に不要分のエントリの電力を動的にきめ細かく削減できる点である。その理由は、命令バッファフルによる時間のバランスに基づいて使用エントリ数を決定するようにしたからである。   The first effect of the present embodiment described above is that the power of entries unnecessary for maintaining the performance balance among the entries in the instruction buffer can be dynamically and finely reduced. The reason is that the number of entries used is determined based on the time balance due to the instruction buffer full.

上述した本実施の形態における第2の効果は、アプリケーションの動作が動的に著しく変化する場合であっても、第1の効果を得ることができる点である。その理由は、使用エントリ数を決定する間隔を変更可能にしたからである。   The second effect in the present embodiment described above is that the first effect can be obtained even when the operation of the application changes significantly dynamically. This is because the interval for determining the number of entries used can be changed.

次に本発明の第2の実施の形態について図面を参照して詳細に説明する。図3を参照すると、第2の実施の形態の構成は、図1に示す第1の実施の形態の構成と比較して、命令ディスパッチ制御部20に余裕度REG32が追加されていることが異なる。また、第2の実施の形態は、第1の実施の形態と比較して、Buf-full時間解析回路51の動作が異なる。   Next, a second embodiment of the present invention will be described in detail with reference to the drawings. Referring to FIG. 3, the configuration of the second embodiment is different from the configuration of the first embodiment shown in FIG. 1 in that a margin REG 32 is added to the instruction dispatch control unit 20. . Further, the second embodiment differs from the first embodiment in the operation of the Buf-full time analysis circuit 51.

余裕度REG32は、例えばプログラムによるアクセスが可能なレジスタ回路であり、Buf-full時間解析回路51が削減後エントリ数を調整する場合に参照するための余裕度を保持する。設定される余裕度は、例えばbuf-full時間に基づいて算出された削減後エントリ数の増減値である。あるいは、余裕度は、削減後エントリ数を算出する基であるbuf-full時間の増減値であっても良い。なお、「余裕度REG32」は一般的に「余裕度保持部」と呼ぶことができる。   The margin REG32 is a register circuit that can be accessed by a program, for example, and holds a margin for reference when the Buf-full time analysis circuit 51 adjusts the number of entries after reduction. The margin set is an increase / decrease value of the number of entries after reduction calculated based on the buf-full time, for example. Alternatively, the margin may be an increase / decrease value of the buf-full time that is a basis for calculating the number of entries after reduction. The “margin REG32” can be generally referred to as “margin holding unit”.

Buf-full時間解析回路51は、buf-full時間に基づいて算出した新たな削減後エントリ数を、余裕度REG32から取得した余裕度に基づいて増加あるいは減少し、新たな削減後エントリ数を調整する。例えば、Buf-full時間解析回路51は、buf-full時間に基づいて算出した新たな削減後エントリ数に、最大エントリ数を超えない範囲で余裕度の値を加算する。   The Buf-full time analysis circuit 51 adjusts the new post-reduction entry number by increasing or decreasing the new post-reduction entry number calculated based on the buf-full time based on the spare degree obtained from the spare degree REG32. To do. For example, the Buf-full time analysis circuit 51 adds a margin value to the new post-reduction entry number calculated based on the buf-full time within a range not exceeding the maximum number of entries.

次にBuf-full時間解析回路51は、調整した削減後エントリ数をそれぞれA-Buf削減後エントリ数REG55、B-Buf削減後エントリ数REG56およびC-Buf削減後エントリ数REG57に設定する。   Next, the Buf-full time analysis circuit 51 sets the adjusted number of entries after reduction to an entry number REG55 after A-Buf reduction, an entry number REG56 after B-Buf reduction, and an entry number REG57 after C-Buf reduction, respectively.

例えば余裕度REG32に「1」が設定されている場合の、Buf-full時間解析回路51が削減後エントリ数を調整する動作ついて説明する。   For example, an operation in which the Buf-full time analysis circuit 51 adjusts the number of entries after reduction when “1” is set in the margin REG32 will be described.

まず、Buf-full時間解析回路51は、第1の実施の形態で説明したように、新たな削減後エントリ数を以下の通り算出する。   First, as described in the first embodiment, the Buf-full time analysis circuit 51 calculates a new post-reduction entry number as follows.

(Abuf41の新たな削減後エントリ数)=1×32=32。   (New number of entries after reduction of Abuf 41) = 1 × 32 = 32.

(Bbuf42の新たな削減後エントリ数)=0.5×32=16。   (New number of entries after reduction of Bbuf 42) = 0.5 × 32 = 16.

(Cbuf43の新たな削減後エントリ数)=0.75×32=24。   (New number of entries after reduction of Cbuf 43) = 0.75 × 32 = 24.

次に、Buf-full時間解析回路51は、余裕度「1」に基づいて新たな削減後エントリ数を以下の通り調整する。   Next, the Buf-full time analysis circuit 51 adjusts the new number of entries after reduction based on the margin “1” as follows.

(Abuf41の新たな削減後エントリ数の調整結果)=32。   (Adjustment result of new number of entries after reduction of Abuf 41) = 32.

(Bbuf42の新たな削減後エントリ数の調整結果)=16+1=17。   (Adjustment result of new number of entries after reduction of Bbuf 42) = 16 + 1 = 17.

(Cbuf43の新たな削減後エントリ数の調整結果)=24+1=25。   (Adjustment result of new number of entries after reduction of Cbuf 43) = 24 + 1 = 25.

余裕度は、例えば「-1」のような負の値であってもよく、この場合は削減後エントリ数が少なめに調整される。また、余裕度REG32は、命令バッファ毎に対応して有するように構成しても良い。   The margin may be a negative value such as “−1”. In this case, the number of entries after reduction is adjusted to be small. Further, the margin REG 32 may be configured to correspond to each instruction buffer.

上述した本実施の形態における効果は、第1の実施の形態における効果に比べて、性能または省電力をより重視することができる点である。その理由は、余裕度に基づいて新たな削減後エントリ数を調整するようにしたからである。   The effect in the present embodiment described above is that the performance or power saving can be emphasized more than the effect in the first embodiment. The reason is that the new number of entries after reduction is adjusted based on the margin.

以上の各実施の形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個のモジュールとして実現されたり、ひとつの構成要素が複数のモジュールで実現されたり、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。   Each component described in each of the above embodiments does not necessarily have to be individually independent, and a plurality of components are realized as a single module, or a single component is realized as a plurality of modules. Alternatively, a configuration in which a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like may be employed.

さらに、以上説明した各実施の形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作の実行タイミングと他の動作の実行タイミングとの一部ないし全部が重複していたりしていてもよい。   Furthermore, in each embodiment described above, a plurality of operations are not limited to being executed at different timings. For example, another operation may occur during the execution of a certain operation, or part or all of the execution timing of a certain operation and the execution timing of another operation may overlap.

さらに、以上説明した各実施の形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作のすべての関係を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の関係は内容的に支障しない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施の形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。   Further, in each of the embodiments described above, it is described that a certain operation becomes a trigger for another operation, but the description does not limit all relationships between the certain operation and the other operations. For this reason, when each embodiment is implemented, the relationship between the plurality of operations can be changed within a range that does not hinder the contents. The specific description of each operation of each component does not limit each operation of each component. For this reason, each specific operation of each component may be changed within a range that does not hinder the functional, performance, and other characteristics in implementing each embodiment.

なお、以上説明した各実施の形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。   In addition, each component in each embodiment described above may be realized by hardware, software, or a mixture of hardware and software, if necessary. May be.

また、各構成要素の物理的な構成は、以上の実施の形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。   Further, the physical configuration of each component is not limited to the description in the above embodiment, and may exist independently, may exist in combination, or may be separated. It may be configured.

本発明は、性能低下のない省電力の実現を必要とする、例えばスーパーコンピュータなどに適用できる。   The present invention can be applied to, for example, a supercomputer that requires power saving without performance degradation.

本発明の第1の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. 本発明の第1の実施の形態の基本的な構成を示すブロック図である。It is a block diagram which shows the basic composition of the 1st Embodiment of this invention. 本発明の第2の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 2nd Embodiment of this invention. 関連する命令制御回路の構成を示すブロック図である。It is a block diagram which shows the structure of a related command control circuit. 関連する命令制御回路の動作を示すタイムチャートである。It is a time chart which shows operation | movement of a related command control circuit.

符号の説明Explanation of symbols

10 命令キャッシュ
20 命令ディスパッチ制御部
21 Abuf登録個数カウンタ
22 Bbuf登録個数カウンタ
23 Cbuf登録個数カウンタ
24 命令ディスパッチ制御回路
41 Abuf
42 Bbuf
43 Cbuf
50 バッファフル時間解析制御部
51 時間解析回路
52 Abuf-full時間カウンタ
53 Bbuf-full時間カウンタ
54 Cbuf-full時間カウンタ
60 命令実行部
200 命令制御回路
201 命令制御回路
920 命令ディスパッチ制御部
921 Abuf登録個数カウンタ
922 Bbuf登録個数カウンタ
923 Cbuf登録個数カウンタ
924 命令ディスパッチ制御回路
941 Abuf
942 Bbuf
943 Cbuf
DESCRIPTION OF SYMBOLS 10 Instruction cache 20 Instruction dispatch control part 21 Abuf registration number counter 22 Bbuf registration number counter 23 Cbuf registration number counter 24 Instruction dispatch control circuit 41 Abuf
42 Bbuf
43 Cbuf
50 Buffer full time analysis control unit 51 Time analysis circuit 52 Abuf-full time counter 53 Bbuf-full time counter 54 Cbuf-full time counter 60 Instruction execution unit 200 Instruction control circuit 201 Instruction control circuit 920 Instruction dispatch control unit 921 Number of registered Abuf Counter 922 Bbuf registered number counter 923 Cbuf registered number counter 924 Instruction dispatch control circuit 941 Abuf
942 Bbuf
943 Cbuf

Claims (14)

それぞれ複数のエントリを有する複数の命令バッファと、
該複数の命令バッファのそれぞれに対し、当該命令バッファの全ての前記エントリが使用状態であるbuf-full時間を計時する時間計時部と、
前記命令バッファのそれぞれの前記buf-full時間の比率と前記buf-full時間を計時した際の前記エントリの使用数を示す第1の削減後エントリ数とに基づいて新たな削減後エントリ数である第2の削減後エントリ数を算出する時間解析部と、
前記第2の削減後エントリ数に基づいて前記複数のエントリのそれぞれの電力消費の停止あるいは低減を制御する制御部と、
を有することを特徴とする命令制御回路。
A plurality of instruction buffers each having a plurality of entries;
For each of the plurality of instruction buffers, a time measuring unit that measures a buf-full time in which all the entries of the instruction buffer are in use,
Is the number of post-entry new reduced on the basis of each of the buf-full first reducing the number after entry indicating the number of use of the entries of the ratio of the time when the counting of the buf-full time of the instruction buffer A time analysis unit for calculating a second post-reduction entry number ;
A control unit that controls stop or reduction of power consumption of each of the plurality of entries based on the second post-reduction entry number;
An instruction control circuit comprising:
前記時間解析部は、前記複数の命令バッファのそれぞれに対応する前記第1の削減後エントリ数と前記第1の削減後エントリ数に対応する前記buf-full時間とを乗じて前記命令バッファ毎のフル度値を算出し、
前記フル度値のうちの最大のフル度値に対する各前記フル度値の比を算出し、
各前記命令バッファに対応する最大エントリ数と各前記命令バッファに対応する各前記比とを乗じて各前記命令バッファに対応する前第2の削減後エントリ数を算出する
ことを特徴とする請求項1記載の命令制御回路。
The time analysis unit, the buf-full time and the multiplying and for each of the instruction buffer corresponding to the number of the first reduction after entry to the first number of reductions after entry corresponding to each of the plurality of instruction buffers Calculate the fullness value,
Calculating the ratio of each fullness value to the maximum fullness value of the fullness values;
And calculates the maximum number of entries and a second number of reductions after entry before SL that corresponds to each of said ratios and each said instruction buffer by multiplying the corresponding to each of said instruction buffer for each said instruction buffer The instruction control circuit according to claim 1.
前記buf-full時間に基づいて算出する前記第2の削減後エントリ数に対する、予め定められた余裕度を保持する余裕度保持部を有し、
前記時間解析部は、前記余裕度に基づいて前記第2の削減後エントリ数を増減することを特徴とする請求項1または2記載の命令制御回路。
A margin holding unit that holds a predetermined margin with respect to the second post-reduction entry number calculated based on the buf-full time;
The instruction control circuit according to claim 1, wherein the time analysis unit increases or decreases the second post-reduction entry count based on the margin.
前記余裕度保持部の保持する前記余裕度は書き換え可能である
ことを特徴とする請求項3記載の命令制御回路。
4. The instruction control circuit according to claim 3, wherein the margin held by the margin holding unit is rewritable.
前記第2の削減後エントリ数を算出する予め定められた時間間隔を保持するBuf数更新間隔保持部を有し、
前記時間解析部は、前記時間間隔に基づいて前記第2の削減後エントリ数を算出する
ことを特徴とする請求項1乃至4のいずれかに記載の命令制御回路。
A Buf number update interval holding unit for holding a predetermined time interval for calculating the second post-reduction entry number;
5. The instruction control circuit according to claim 1, wherein the time analysis unit calculates the second post-reduction entry number based on the time interval.
前記Buf数更新間隔保持部の保持する前記時間間隔は書き換え可能である
ことを特徴とする請求項5記載の命令制御回路。
6. The instruction control circuit according to claim 5, wherein the time interval held by the Buf number update interval holding unit is rewritable.
前記第2の削減後エントリ数に基づいて、命令取得を延期する命令ディスパッチ制御回路
を有することを特徴とする請求項1乃至6のいずれかに記載の命令制御回路。
The instruction control circuit according to claim 1, further comprising an instruction dispatch control circuit that suspends instruction acquisition based on the second post-reduction entry count.
それぞれ複数のエントリを有する複数の命令バッファそれぞれに対し、当該命令バッファの全ての前記エントリが使用状態であるbuf-full時間を計時し、
前記命令バッファのそれぞれの前記buf-full時間の比率と前記buf-full時間を計時した際の前記エントリの使用数を示す第1の削減後エントリ数とに基づいて新たな削減後エントリ数である第2の削減後エントリ数を算出し、
前記第2の削減後エントリ数に基づいて前記複数のエントリのそれぞれの電力消費の停止あるいは低減を制御する
ことを特徴とする命令制御方法。
For each of a plurality of instruction buffers each having a plurality of entries, time the buf-full time during which all the entries in the instruction buffer are in use,
Is the number of post-entry new reduced on the basis of each of the buf-full first reducing the number after entry indicating the number of use of the entries of the ratio of the time when the counting of the buf-full time of the instruction buffer Calculate the second post-reduction entry count ,
A command control method comprising: controlling stop or reduction of power consumption of each of the plurality of entries based on the second number of entries after reduction.
前記複数の命令バッファのそれぞれに対応する前記第1の削減後エントリ数と前記第1の削減後エントリ数に対応する前記buf-full時間とを乗じて前記命令バッファ毎のフル度値を算出し、
前記フル度値のうちの最大のフル度値に対する各前記フル度値の比を算出し、
各前記命令バッファに対応する最大エントリ数と各前記命令バッファに対応する各前記比とを乗じて各前記命令バッファに対応する前第2の削減後エントリ数を算出する
ことを特徴とする請求項8記載の命令制御方法。
By multiplying said buf-full time corresponding to said first number of reductions after entry to the first number of reductions after entry corresponding to each of the plurality of instruction buffers to calculate the full degree value for each of the instruction buffer ,
Calculating the ratio of each fullness value to the maximum fullness value of the fullness values;
And calculates the maximum number of entries and a second number of reductions after entry before SL that corresponds to each of said ratios and each said instruction buffer by multiplying the corresponding to each of said instruction buffer for each said instruction buffer The instruction control method according to claim 8.
前記buf-full時間に基づいて算出する前記第2の削減後エントリ数に対する、予め定められた余裕度に基づいて前記第2の削減後エントリ数を増減する
ことを特徴とする請求項8または9記載の命令制御方法。
Claim 8 or 9, wherein the relative buf-full time the second number reduction after entry be calculated based on, increase or decrease the number of post-entry the second reduction based on a predetermined margin Instruction control method as described.
前記第2の削減後エントリ数を算出する予め定められた時間間隔に基づいて前記第2の削減後エントリ数を算出する
ことを特徴とする請求項8乃至10のいずれかに記載の命令制御方法。
Instruction control method according to any one of claims 8 to 10, characterized in that for calculating the number of said rear second reduction entries based on a predetermined time interval to calculate the number of the post-second reduction entry .
前記第2の削減後エントリ数に基づいて、命令取得を延期する
ことを特徴とする請求項8乃至11のいずれかに記載の命令制御方法。
12. The instruction control method according to claim 8, wherein instruction acquisition is postponed based on the second post-reduction entry number.
請求項1乃至7のいずれかに記載の命令制御回路を有する情報処理装置。 An information processing apparatus comprising the instruction control circuit according to claim 1. 請求項8乃至12のいずれかに記載の命令制御方法により命令のディスパッチ制御を行う
情報処理装置。
An information processing apparatus that performs dispatch control of instructions by the instruction control method according to claim 8.
JP2008242708A 2008-09-22 2008-09-22 Instruction control circuit, instruction control method, and information processing apparatus Expired - Fee Related JP5714792B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008242708A JP5714792B2 (en) 2008-09-22 2008-09-22 Instruction control circuit, instruction control method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008242708A JP5714792B2 (en) 2008-09-22 2008-09-22 Instruction control circuit, instruction control method, and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2010073124A JP2010073124A (en) 2010-04-02
JP5714792B2 true JP5714792B2 (en) 2015-05-07

Family

ID=42204808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008242708A Expired - Fee Related JP5714792B2 (en) 2008-09-22 2008-09-22 Instruction control circuit, instruction control method, and information processing apparatus

Country Status (1)

Country Link
JP (1) JP5714792B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793198A (en) * 1993-09-27 1995-04-07 Toshiba Corp Computer system
JPH10240698A (en) * 1997-02-24 1998-09-11 Nec Corp Load distribution system for high load job
JP2885764B2 (en) * 1997-06-19 1999-04-26 北陸日本電気ソフトウェア株式会社 Printer device
JP2001228985A (en) * 2000-02-16 2001-08-24 Matsushita Graphic Communication Systems Inc Image processor and print data receiving method
JP2007200213A (en) * 2006-01-30 2007-08-09 Nec Corp Information processing device, entry configuration control method and program

Also Published As

Publication number Publication date
JP2010073124A (en) 2010-04-02

Similar Documents

Publication Publication Date Title
US8959372B2 (en) Dynamic performance control of processing nodes
US7627770B2 (en) Apparatus and method for automatic low power mode invocation in a multi-threaded processor
JP5329410B2 (en) Method and apparatus for executing processor instructions based on dynamic variable delay
US7752627B2 (en) Leaky-bucket thread scheduler in a multithreading microprocessor
US7853777B2 (en) Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US9086823B2 (en) Providing adaptive frequency control for a processor using utilization information
US7600135B2 (en) Apparatus and method for software specified power management performance using low power virtual threads
KR100745904B1 (en) a method and circuit for modifying pipeline length in a simultaneous multithread processor
US8245065B2 (en) Power gating processor execution units when number of instructions issued per cycle falls below threshold and are independent until instruction queue is full
JP3919764B2 (en) How to use dispatch flush on concurrent multithreaded processors to eliminate exception conditions
US20140189328A1 (en) Power reduction by using on-demand reservation station size
US9436464B2 (en) Instruction-issuance controlling device and instruction-issuance controlling method
US8365179B2 (en) Multi-thread processor and its hardware thread scheduling method
US20060179279A1 (en) Bifurcated thread scheduler in a multithreading microprocessor
US20060179284A1 (en) Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
WO2001048599A1 (en) Method and apparatus for managing resources in a multithreaded processor
JP2005302025A (en) Method, completion table, and processor for tracking a plurality of outstanding instructions
US20100031006A1 (en) Thread completion rate controlled scheduling
JP2010286898A (en) Multithread execution device, and multithread execution method
US8006073B1 (en) Simultaneous speculative threading light mode
JPH08221311A (en) Dynamic changeover of priority sequence of load buffer and store buffer in superscalar processor
JP5714792B2 (en) Instruction control circuit, instruction control method, and information processing apparatus
US20060179186A1 (en) Method and apparatus for adaptive buffer sizing
JP4209377B2 (en) Semiconductor device
JP2010061642A (en) Technique for scheduling threads

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100910

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150312

R150 Certificate of patent or registration of utility model

Ref document number: 5714792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees