WO2011024330A1 - アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法 - Google Patents

アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法 Download PDF

Info

Publication number
WO2011024330A1
WO2011024330A1 PCT/JP2010/000307 JP2010000307W WO2011024330A1 WO 2011024330 A1 WO2011024330 A1 WO 2011024330A1 JP 2010000307 W JP2010000307 W JP 2010000307W WO 2011024330 A1 WO2011024330 A1 WO 2011024330A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
processor
idle state
data
execution unit
Prior art date
Application number
PCT/JP2010/000307
Other languages
English (en)
French (fr)
Inventor
松田源一郎
繁田裕之
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Publication of WO2011024330A1 publication Critical patent/WO2011024330A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag

Definitions

  • the present invention relates to a circuit and a method for detecting an idle state of a processor.
  • a cache miss data cache miss or instruction cache miss
  • the processor enters an idle state (a state in which the instruction cannot be executed and is waiting). You can see that That is, the processor cannot resume processing until the memory access requested externally is completed.
  • a cache miss occurs, it takes a long time (for example, several tens to several hundred cycles) to acquire data from the external memory.
  • the operating frequency of the processor is lowered (or the clock supply to the processor is stopped) while the processor is in an idle state, the influence on the user is extremely small. Therefore, by detecting the idle state of the processor and lowering the operating frequency of the processor, it is possible to reduce the power consumption of the processor without degrading the performance in actual use.
  • an object of the present invention is to provide a technology capable of accurately detecting an idle state of a processor.
  • an idle state detection circuit includes an instruction execution unit that executes an instruction by pipeline processing, and an idle state of a processor that includes a primary cache that stores an instruction and data used by the instruction execution unit.
  • a circuit for detecting a state wherein the instruction execution unit detects an instruction-less state in which there is no instruction currently executed by the instruction execution unit and an instruction to be executed next; and the instruction execution unit reads A read wait detection unit that detects a read wait state waiting for data, and a determination unit that determines that the processor is in an idle state when at least one of the no instruction state and the read wait state is detected.
  • the idle state detection circuit can accurately detect the processor idle state due to a cache miss.
  • the idle state detection circuit further includes a write buffer monitoring unit, and the primary cache is generated by the instruction execution unit and an instruction cache and a data cache for storing instructions and data used by the instruction execution unit, respectively.
  • a write buffer for storing the written data wherein the write buffer monitoring unit detects a buffer full state in which the write buffer is full, and the determination unit includes the no command state, the read wait state, and
  • the processor may be determined to be in an idle state when at least one of the buffer full states is detected. With this configuration, it is possible to accurately detect the processor idle state caused by the write buffer being full.
  • a semiconductor integrated circuit supplies the processor with the idle state detection circuit, the processor, and a clock and a driving voltage for driving the processor.
  • a drive circuit configured to reduce at least one of the frequency of the clock and the voltage value of the drive voltage when the processor is determined to be in an idle state. In the semiconductor integrated circuit, power consumption in the processor can be reduced.
  • the semiconductor integrated circuit includes the idle state detection circuit, the processor, and a drive circuit, and the idle state detection circuit has a number of clock cycles corresponding to a period in which the processor is determined to be in an idle state.
  • An idle counter that counts the number of clock cycles counted by the idle counter
  • a comparison unit that compares the number of clock cycles counted by the idle counter
  • the drive circuit includes a clock and a drive voltage for driving the processor.
  • the comparison unit determines that the number of clock cycles is greater than the specified number of clock cycles, at least one of the frequency of the clock and the voltage value of the drive voltage is supplied to the processor. It may be lowered.
  • the power consumption of the processor can be reliably reduced during a period in which the processor is in an idle state.
  • an idle state detection method includes an instruction execution unit that executes instructions by pipeline processing, and a processor idler that includes a primary cache that stores instructions and data used by the instruction execution unit.
  • a method of detecting a state wherein the instruction execution unit reads a step (a) of detecting an instruction-free state in which there is no instruction currently executed by the instruction execution unit and an instruction to be executed next, and the instruction execution unit reads A step (b) of detecting a read wait state waiting for data, and a step (c) of determining that the processor is in an idle state when at least one of the no instruction state and the read wait state is detected. ).
  • the idle state of the processor due to a cache miss can be accurately detected.
  • FIG. 1 is a diagram illustrating a configuration example of a semiconductor integrated circuit according to the first embodiment.
  • FIG. 2 is a diagram for explaining a program execution device including the semiconductor integrated circuit shown in FIG.
  • FIG. 3 is a diagram for explaining the pipeline processing of the processor.
  • FIG. 4 is a diagram for explaining an instruction cache miss.
  • FIG. 5 is a diagram for explaining a data cache miss.
  • FIG. 6 is a diagram illustrating a configuration example of a semiconductor integrated circuit according to the second embodiment.
  • FIG. 7 is a diagram illustrating a configuration example of a semiconductor integrated circuit according to the third embodiment.
  • FIG. 1 shows a configuration example of a semiconductor integrated circuit 1 according to the first embodiment.
  • the semiconductor integrated circuit 1 includes a processor 11, a data memory 12, an instruction memory 13, a key input I / F 14, an image I / F 15, an external I / F 16, an idle state detection circuit 10, and a clock supply unit 17. And a voltage supply unit 18.
  • the processor 11 executes various instructions by pipeline processing.
  • the data memory 12 stores data.
  • the instruction memory 13 stores instructions.
  • the idle state detection circuit 10 detects an idle state of the processor 11.
  • the semiconductor integrated circuit 1 is used as a part of a program execution device (signal processing device) including peripheral devices such as a keyboard 200, a mouse 300, a display 400, and an external storage device 500.
  • Key input I / F 14 is connected to keyboard 200 and mouse 300
  • image I / F 15 and external I / F 16 are connected to display 400 and external storage device 500, respectively.
  • the processor 11 when the processor 11 reads data from the data memory 12 or a peripheral device (for example, the keyboard 200, the mouse 300, the display 400, the external storage device 500, etc.), the processor 11 has the data memory 12 or an interface (for example, a key).
  • the data request is notified to the peripheral device via the input I / F 14, the image I / F 15, and the external I / F 16).
  • the processor 11 requests the data memory 12 and the peripheral device to transfer the data stored at the address indicated by the instruction.
  • the data memory 12 and the peripheral device transfer the data requested by the processor 11 to the processor 11.
  • the processor 11 when the processor 11 writes data to the data memory 12 or the peripheral device, the processor 11 transfers the data to be written and the address to which the data is written to the data memory 12 or the peripheral device.
  • the data memory 12 and the peripheral device store the data transferred from the processor 11 at an address designated by the processor 11.
  • the user performs various operations using the keyboard 200 and the mouse 300.
  • the details of operations performed on the keyboard 200 and the mouse 300 are notified to the processor 11 via the key input I / F 14. Further, the user confirms the processing result by the processor 11 on the display 400 connected via the image I / F.
  • the processor 11 includes an instruction execution unit 110 and a primary cache 111.
  • Primary cache 111 includes an instruction cache 112, a data cache 113, a write buffer 114, and a bus I / F 115.
  • the instruction execution unit 110 processes instructions by pipeline processing, and has a plurality of pipeline stages.
  • the instruction cache 112 stores instructions used by the instruction execution unit 110.
  • the data cache 113 stores data used by the instruction execution unit 110.
  • the write buffer 114 stores the write data generated by the instruction execution unit 110.
  • the write data is data scheduled to be written in the data memory 12 or the external storage device 500.
  • the bus I / F 115 exchanges instructions (or data) between the instruction cache 112 and the write buffer 114 and the data memory 12, the instruction memory 13, the key input I / F 14, the image I / F 15, and the external I / F 16. Execute.
  • the vertical axis indicates the program execution order, and instruction 1, instruction 2,..., Instruction 6 are executed from top to bottom.
  • the horizontal axis indicates a clock cycle, and time elapses from left to right (the same applies to FIGS. 4 and 5). Further, in each of steps FE, DE, EX, MEM, and WB, the following processing is executed.
  • Step FE when a processor executes one instruction , DE, EX, MEM, and WB are executed in order.
  • the processor 11 shown in FIG. 1 executes instructions by pipeline processing as shown in FIG. That is, after step FE is executed for instruction 1 in clock cycle C1, step DE is executed for instruction 1 in clock cycle C2, and step FE is executed for instruction 2 at the same time.
  • instruction 1 instruction 2,..., Instruction 6 are sequentially processed, and in clock cycle C5, steps WB, MEM, EX, DE are executed for instruction 1, instruction 2, instruction 3, instruction 4 and instruction 5. , FE are executed simultaneously. Further, instruction 1 is completed in clock cycle C5, and instruction 2, instruction 3,..., Instruction 6 are sequentially completed one by one in each of clock cycles C6, C7,.
  • the processor 11 shown in FIG. 1 is provided with an instruction cache 112 and a data cache 113 in order to shorten the access time.
  • the processor 11 reads the prefetch function (the instruction expected to be executed next and stores it in the instruction cache 112 in advance. It may have a function to keep).
  • Step MEM for instruction 2 will be completed in clock cycle Cn + 5, not clock cycle C5.
  • Step WB is executed for instruction 2 and instruction 2 is completed in clock cycle Cn + 6.
  • the write data is stored in the write buffer 114. Therefore, even if a cache miss occurs in the instruction 2, the pipeline processing is not disturbed as long as the write buffer 114 is not full. However, when the write buffer 114 is full, the processor 11 waits until the write data stored in the write buffer 114 is written to the data memory 12 (or the external storage device 500) and the write buffer 114 becomes free. , I will be idle.
  • the idle state detection circuit 10 includes an execution instruction detection unit 101, a write buffer monitoring unit 102, a read wait detection unit 103, and a determination unit 104.
  • Execution instruction detector The execution instruction detection unit 101 monitors the operation of the instruction execution unit 110 and detects a no instruction state (a state in which there is no instruction currently executed by the instruction execution unit 110 and an instruction to be executed next). For example, the execution instruction detection unit 101 sets the detection signal S101 to “0” when there is no instruction, and sets the detection signal S101 to “1” when there is no instruction.
  • each pipeline stage of the instruction execution unit 110 is not filled with an instruction (that is, there is no instruction), so the execution instruction detection unit 101 sets the detection signal S101 to “ Set to 0 ”.
  • each pipeline stage of the instruction execution unit 110 is filled with instructions (that is, not in the no instruction state), so the executed instruction detection unit 101 detects the detection signal S101. Is set to “1”.
  • the write buffer monitoring unit 102 monitors the storage state of the write buffer 114 and detects a buffer full state (a state where the write buffer 114 is full). For example, the write buffer monitoring unit 102 sets the detection signal S102 to “1” when the write buffer 114 is full, and sets the detection signal S102 to “0” when the write buffer 114 is not full. Set.
  • the read wait detection unit 103 monitors the operation of the bus I / F 115 and detects a read wait state (a state in which the instruction execution unit 110 is waiting for read data).
  • the read data is data transferred from the data memory 12 or the external storage device 500 (data transferred from the data memory 12 or the external storage device 500 to the processor 11 in response to a request from the processor 11).
  • the read wait detection unit 103 sets the detection signal S103 to “1” when the read wait state is set, and sets the detection signal S103 to “0” when the read wait state is not set.
  • the instruction execution unit 110 When a data cache miss has occurred, the instruction execution unit 110 is in a read wait state, so the read wait detection unit 103 sets the detection signal S103 to “1”. On the other hand, if no data cache miss has occurred, the instruction execution unit 110 is not in the read wait state, and the read wait detection unit 103 sets the detection signal S103 to “0”.
  • the determination unit 104 determines that the processor 11 is in an idle state when at least one of a no instruction state, a buffer full state, and a read wait state is detected. For example, the determination unit 104 sets the idle state notification signal S10 to “0” when the detection signals S101, S102, and S103 are “1”, “0”, and “0”, and otherwise, the idle state notification signal S10. The status notification signal S10 is set to “1”. By setting the idle state notification signal S10 to “0”, it can be seen that the processor 11 is executing processing (that is, not in the idle state). If an instruction cache miss has occurred, the detection signal S101 is set to “0”, so the determination unit 104 sets the idle state notification signal S10 to “1”.
  • the determination unit 104 sets the idle state notification signal S10 to “1”. Further, since the detection signal S102 is set to “1” when the write buffer 114 is full, the determination unit 104 sets the idle state notification signal S10 to “1”. By setting the idle state notification signal S10 to “1”, it can be seen that the processor 11 is in the idle state.
  • the idle state detection circuit 10 does not have to include the write buffer monitoring unit 102.
  • the clock supply unit 17 supplies a clock CLK1 for driving the processor 11 (specifically, the instruction execution unit 110 and the primary cache 111).
  • the clock supply unit 17 decreases the frequency of the clock CLK1, and the idle state notification signal S10 changes from “1” to “0”. If it has changed, the frequency of the clock CLK1 is restored.
  • the voltage supply unit 18 supplies a drive voltage VDD1 for driving the processor 11 (specifically, the instruction execution unit 110 and the primary cache 111). Further, when the idle state notification signal S10 changes from “0” to “1”, the voltage supply unit 18 decreases the voltage value of the drive voltage VDD1, and the idle state notification signal S10 changes from “1” to “0”. When it has changed to "”, the voltage value of the drive voltage VDD1 is restored.
  • the clock supply unit 17 and the voltage supply unit 18 reduce the frequency of the clock CLK1 and the voltage value of the drive voltage VDD1 in response to the idle state notification signal S10, respectively, so that the processor 11 is in the idle state.
  • the power consumption of the processor 11 can be reduced in a certain period. Thereby, power waste in the processor 11 can be reduced.
  • FIG. 6 shows a configuration example of the semiconductor integrated circuit 2 according to the second embodiment.
  • the semiconductor integrated circuit 2 includes a processor 21, a clock supply unit 22, and a voltage supply unit 23 instead of the processor 11 illustrated in FIG. 1.
  • the processor 21 includes a secondary cache 211 in addition to the configuration of the processor 11 illustrated in FIG. Other configurations are the same as those in FIG.
  • the secondary cache 211 stores instructions and data used by the processor 11.
  • the read data is data transferred from the secondary cache 211, the data memory 12, or the external storage device 500 (in response to a request from the processor 11, the secondary cache 211, the data memory 12, or the external storage device 500). Is data to be transferred to the processor 11).
  • the latency of the secondary cache 211 is larger than the latency of the instruction cache 112 and the data cache 113 of the primary cache 111. For example, access to the secondary cache 211 requires a time of two clock cycles or more.
  • the clock supply unit 22 supplies a clock CLK2 for driving the secondary cache 211.
  • the voltage supply unit 23 supplies a drive voltage VDD2 for driving the secondary cache 211. Even if the idle state notification signal S10 changes, the clock supply unit 22 and the voltage supply unit 23 do not change the frequency of the clock CLK2 and the voltage value of the drive voltage VDD2, respectively. That is, the performance (operation speed) of the secondary cache 211 does not decrease.
  • the clock CLK1 and the drive voltage VDD1 are supplied to the instruction execution unit 110 and the primary cache 111.
  • the idle state notification signal S10 is set to “1” when the secondary cache 211 is accessed. If set, the performance of the secondary cache 211 is degraded during the access process of the secondary cache 211. On the other hand, in the semiconductor integrated circuit 2 shown in FIG. 6, even if the idle state notification signal S10 is set to “1”, the performance of the secondary cache 211 does not deteriorate. It is possible to prevent the performance of the secondary cache 211 from deteriorating during As described above, when the processor 11 is in the idle state, the power consumption of the processor 11 can be reduced without degrading the performance of the secondary cache 211.
  • the clock CLK1 and the drive voltage VDD1 may be supplied to the secondary cache 211 without providing the clock supply unit 22 and the voltage supply unit 23.
  • the processor 21 may include not only the secondary cache 211 but also a tertiary cache. In this case, the clock CLK2 and the drive voltage VDD2 may be supplied to the tertiary cache.
  • FIG. 7 shows a configuration example of the semiconductor integrated circuit 3 according to the third embodiment.
  • the semiconductor integrated circuit 3 includes an idle state detection circuit 30 instead of the idle state detection circuit 10 shown in FIG.
  • the idle state detection circuit 30 includes an idle counter 301 and a comparison unit 302 in addition to the configuration of the idle state detection circuit 10 shown in FIG.
  • Other configurations are the same as those in FIG.
  • the idle counter 301 counts the number of clock cycles corresponding to the period when the idle state notification signal S10 is set to “1”. For example, the idle counter 301 starts counting up when the idle state notification signal S10 changes from “0” to “1”, and ends counting up when the idle state notification signal S10 changes from “1” to “0”. .
  • the comparison unit 302 compares the count value (clock cycle number) of the idle counter 301 with the specified clock cycle number CX, and notifies the idle state when the count value of the idle counter 301 exceeds the specified clock cycle number CX.
  • the signal S30 is set to “1”.
  • the clock supply unit 17 and the voltage supply unit 18 respectively change the frequency of the clock CLK1 and the voltage value of the drive voltage VDD1 in response to the idle state notification signal S30 instead of the idle state notification signal S10.
  • the idle state notification signal S10 may change every clock cycle. Further, it takes more time than one clock cycle to change the frequency of the clock CLK1 by the clock supply unit 17. Therefore, in the semiconductor integrated circuit 1 shown in FIG. 1, the clock supply unit 17 may not be able to change the frequency of the clock CLK1 following the change of the idle state notification signal S10. Similarly, the voltage supply unit 18 may not be able to change the voltage value of the drive voltage VDD1 following the change in the idle state notification signal S10. On the other hand, in the semiconductor integrated circuit 3 shown in FIG. 7, when the count value of the idle counter 301 becomes larger than the specified clock cycle number CX, the idle state notification signal S30 is set to “1”. And the voltage value of the drive voltage VDD1 can be changed reliably. Thereby, the power consumption of the processor 11 can be reliably reduced during the period in which the processor 11 is in the idle state.
  • the specified clock cycle number CX may be a fixed value or a value that can be arbitrarily set.
  • a setting register or the like may be provided so that the user can freely set the specified clock cycle number CX.
  • the semiconductor integrated circuit 3 may include the processor 21, the clock supply unit 22, and the voltage supply unit 23 shown in FIG. 6 instead of the processor 11 shown in FIG.
  • the idle state detection circuit described above can accurately detect the processor idle state caused by a cache miss, it is useful for a technique for reducing the power consumption of the processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

 プロセッサ(11)は、パイプライン処理により命令を実行する命令実行ユニット(110)と、命令実行ユニットによって利用される命令およびデータを格納する一次キャッシュ(111)とを備える。アイドル状態検出回路(10)において、実行命令検出部(101)は、命令実行ユニット(110)によって現在実行されている命令および次に実行される予定の命令が存在しない命令なし状態を検出する。リード待ち検出部(103)は、命令実行ユニット(110)がリードデータを待っているリード待ち状態を検出する。判定部(104)は、命令なし状態およびリード待ち状態のうち少なくとも1つが検出された場合に、プロセッサ(11)がアイドル状態であると判定する。

Description

アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法
 この発明は、プロセッサのアイドル状態を検出する回路および方法に関する。
 近年、プロセッサの高速化はますます進展しており、それに伴いプロセッサの動作電力は大きくなってきている。しかし、携帯電話等のモバイルデバイスは電池で動作するので、長時間の連続使用を可能とするためには、消費電力を低く抑える必要がある。また、モバイルデバイス以外においても放熱の問題などもあり、いかにしてプロセッサの電力を抑えるかが現在のLSI設計において、非常に重要な課題となっている。プロセッサの消費電力を抑えるための有効な手段の1つとして、プロセッサの動作周波数を下げるという手法がある。しかし、当然のことながら動作周波数を下げるということはプロセッサの処理性能を下げるということであり、単純に周波数を下げた場合には製品の性能低下を招いてしまう。
 一方、プロセッサの動作状況を詳しく調べてみると、キャッシュミス(データキャッシュミスや命令キャッシュミス)が発生している場合、プロセッサは、アイドル状態(命令を実行できずに待機している状態)になっていることがわかる。すなわち、プロセッサは、外部に要求したメモリアクセスが完了するまで、処理を再開することができない。一般的に、キャッシュミスが発生した場合、外部メモリからデータを取得するために、長時間(例えば、数十~数百サイクル)を要する。また、プロセッサがアイドル状態である期間にプロセッサの動作周波数を下げても(または、プロセッサへのクロック供給を停止しても)、ユーザに与える影響は極めて小さい。したがって、プロセッサのアイドル状態を検出してプロセッサの動作周波数を低下させることにより、実使用上の性能を劣化させることなく、プロセッサの消費電力を低減することが可能となる。
 従来、プロセッサのクロック制御方法に関して、さまざまな方式が提案されており、その一例としてプロセッサの使用率に着目したクロック制御方法がある(例えば、特許文献1など)。特許文献1に開示されたクロック制御方法では、単位時間当たりのプロセッサの実行命令数と、単位時間当たりのクロックサイクル数とが取得され、クロックサイクル数に対する実行命令数の割合(命令実行数/クロックサイクル数)が所定値よりも小さくなった場合に、プロセッサの動作周波数が低下する。
特開2004-38291号公報
 しかしながら、従来のクロック制御方法では、キャッシュミスやI/Oアクセス回数が多くなるほど、外部メモリアクセスやI/Oアクセスに要するサイクル数が大きくなり、(実行命令数/サイクル数)が非常に小さくなってしまう。その結果、プロセッサの使用率が低いと誤って判定されてしまう可能性がある。このように、プロセッサの使用率を正確に判定することができない。すなわち、従来の技術では、プロセッサのアイドル状態を正確に検出することが困難であった。
 そこで、この発明は、プロセッサのアイドル状態を正確に検出できる技術を提供することを目的とする。
 この発明の1つの局面に従うと、アイドル状態検出回路は、パイプライン処理により命令を実行する命令実行ユニットと、上記命令実行ユニットによって利用される命令およびデータを格納する一次キャッシュとを備えるプロセッサのアイドル状態を検出する回路であって、上記命令実行ユニットによって現在実行されている命令および次に実行される予定の命令が存在しない命令なし状態を検出する実行命令検出部と、上記命令実行ユニットがリードデータを待っているリード待ち状態を検出するリード待ち検出部と、上記命令なし状態および上記リード待ち状態のうち少なくとも1つが検出された場合に、上記プロセッサがアイドル状態であると判定する判定部とを備える。上記アイドル状態検出回路では、キャッシュミスに起因するプロセッサのアイドル状態を正確に検出できる。
 また、上記アイドル状態検出回路は、ライトバッファ監視部をさらに備え、上記一次キャッシュは、上記命令実行ユニットによって利用される命令およびデータをそれぞれ格納する命令キャッシュおよびデータキャッシュと、上記命令実行ユニットによって生成されたライトデータを格納するライトバッファとを含み、上記ライトバッファ監視部は、上記ライトバッファが満杯であるバッファ満杯状態を検出し、上記判定部は、上記命令なし状態,上記リード待ち状態,および上記バッファ満杯状態のうち少なくとも1つが検出された場合に、上記プロセッサがアイドル状態であると判定しても良い。このように構成することにより、ライトバッファが満杯であることに起因するプロセッサのアイドル状態を正確に検出できる。
 この発明の別の局面に従うと、半導体集積回路は、上記アイドル状態検出回路と、上記プロセッサと、上記プロセッサを駆動させるためのクロックおよび駆動電圧を上記プロセッサに供給するものであり、上記判定部によって上記プロセッサがアイドル状態であると判定された場合に、上記クロックの周波数および上記駆動電圧の電圧値のうち少なくとも1つを低下させる駆動回路とを備える。上記半導体集積回路では、プロセッサにおける電力浪費を低減できる。
 または、半導体集積回路は、上記アイドル状態検出回路と、上記プロセッサと、駆動回路とを備え、上記アイドル状態検出回路は、上記プロセッサがアイドル状態であると判定されている期間に相当するクロックサイクル数をカウントするアイドルカウンタと、上記アイドルカウンタによってカウントされたクロックサイクル数と規定クロックサイクル数とを比較する比較部とをさらに備え、上記駆動回路は、上記プロセッサを駆動させるためのクロックおよび駆動電圧を上記プロセッサに供給するものであり、上記比較部によって上記クロックサイクル数が上記規定クロックサイクル数よりも多いと判定された場合に、上記クロックの周波数および上記駆動電圧の電圧値のうち少なくとも1つを低下させても良い。上記半導体集積回路では、プロセッサがアイドル状態である期間においてプロセッサの消費電力を確実に低下させることができる。
 この発明の別の局面に従うと、アイドル状態検出方法は、パイプライン処理により命令を実行する命令実行ユニットと、上記命令実行ユニットによって利用される命令およびデータを格納する一次キャッシュとを備えるプロセッサのアイドル状態を検出する方法であって、上記命令実行ユニットによって現在実行されている命令および次に実行される予定の命令が存在しない命令なし状態を検出するステップ(a)と、上記命令実行ユニットがリードデータを待っているリード待ち状態を検出するステップ(b)と、上記命令なし状態および上記リード待ち状態のうち少なくとも1つが検出された場合に、上記プロセッサがアイドル状態であると判定するステップ(c)とを備える。上記アイドル状態検出方法では、キャッシュミスに起因するプロセッサのアイドル状態を正確に検出できる。
 以上のように、キャッシュミスに起因するプロセッサのアイドル状態を正確に検出できる。
図1は、実施形態1による半導体集積回路の構成例を示す図である。 図2は、図1に示した半導体集積回路を備えるプログラム実行装置について説明するための図である。 図3は、プロセッサのパイプライン処理について説明するための図である。 図4は、命令キャッシュミスについて説明するための図である。 図5は、データキャッシュミスについて説明するための図である。 図6は、実施形態2による半導体集積回路の構成例を示す図である。 図7は、実施形態3による半導体集積回路の構成例を示す図である。
 以下、実施の形態を図面を参照して詳しく説明する。なお、図中同一または相当部分には同一の符号を付しその説明は繰り返さない。
 (実施形態1)
 図1は、実施形態1による半導体集積回路1の構成例を示す。半導体集積回路1は、プロセッサ11と、データメモリ12と、命令メモリ13と、キー入力I/F14と、画像I/F15と、外部I/F16と、アイドル状態検出回路10と、クロック供給部17と、電圧供給部18とを備える。プロセッサ11は、パイプライン処理によって種々の命令を実行する。データメモリ12は、データを格納する。命令メモリ13は、命令を格納する。アイドル状態検出回路10は、プロセッサ11のアイドル状態を検出する。図2のように、半導体集積回路1は、キーボード200,マウス300,ディスプレイ400,および外部記憶装置500などの周辺デバイスを含むプログラム実行装置(信号処理装置)の一部として利用される。キー入力I/F14は、キーボード200およびマウス300に接続され、画像I/F15および外部I/F16は、それぞれ、ディスプレイ400および外部記憶装置500に接続される。
  〔プログラム実行手順〕
 ここで、プロセッサ11によるプログラムの実行手順について簡単に説明する。プロセッサ11は、プログラムを実行するために、自己の内部に設けられたプログラムカウンタ(図示せず)が示す命令アドレスに格納された命令を転送することを命令メモリ13に要求する。命令メモリ13は、プロセッサ11からの要求に応答して、命令アドレスに格納された命令をプロセッサ11に転送する。次に、プロセッサ11は、命令メモリ13から転送された命令を実行し、次に必要となる命令を転送することを命令メモリ13に要求する。このようにして、プロセッサ11は、プログラムを実行していく。
 また、プロセッサ11がデータメモリ12や周辺デバイス(例えば、キーボード200,マウス300,ディスプレイ400,および外部記憶装置500など)からデータを読み出す場合、プロセッサ11は、データメモリ12や、インターフェイス(例えば、キー入力I/F14,画像I/F15,および外部I/F16など)を介して周辺デバイスにデータ要求を通知する。例えば、プロセッサ11は、命令メモリ13から転送された命令に従って、その命令によって示されたアドレスに格納されたデータを転送することをデータメモリ12や周辺デバイスに要求する。データメモリ12や周辺デバイスは、プロセッサ11からのデータ要求に応答して、プロセッサ11に要求されたデータをプロセッサ11に転送する。
 一方、プロセッサ11がデータメモリ12や周辺デバイスにデータを書き込む場合、プロセッサ11は、書き込むべきデータとそのデータを書き込むべきアドレスとをデータメモリ12や周辺デバイスに転送する。データメモリ12や周辺デバイスは、プロセッサ11から転送されたデータをプロセッサ11によって指定されたアドレスに格納する。
 使用者は、キーボード200やマウス300を用いて各種操作を実行する。キーボード200やマウス300に対して実行された操作内容は、キー入力I/F14を介してプロセッサ11に通達される。また、使用者は、プロセッサ11による処理結果などを、画像I/Fを介して接続されたディスプレイ400で確認する。
  〔プロセッサ〕
 図1に戻って、プロセッサ11は、命令実行ユニット110と、一次キャッシュ111とを含む。一次キャッシュ111は、命令キャッシュ112と、データキャッシュ113と、ライトバッファ114と、バスI/F115とを含む。命令実行ユニット110は、パイプライン処理により命令を処理するものであり、複数のパイプラインステージを有する。命令キャッシュ112は、命令実行ユニット110によって利用される命令を格納する。データキャッシュ113は、命令実行ユニット110によって利用されるデータを格納する。ライトバッファ114は、命令実行ユニット110によって生成されたライトデータを格納する。ライトデータは、データメモリ12や外部記憶装置500に書き込まれる予定のデータである。バスI/F115は、命令キャッシュ112およびライトバッファ114と、データメモリ12,命令メモリ13,キー入力I/F14,画像I/F15および外部I/F16との間で命令(またはデータ)の受け渡しを実行する。
  〔パイプライン処理〕
 次に、図3を参照しつつ、プロセッサ11によるパイプライン処理について説明する。ここでは、説明の簡潔化のために、5段パイプライン処理を実行する場合を例に挙げて説明するが、6段以上のパイプライン処理を実行するプロセッサやスーパースカラプロセッサ(superscalar processor)の場合も基本動作は同様である。
 図3において、縦軸は、プログラムの実行順序を示し、上から下に向かって命令1,命令2,…,命令6が実行される。横軸は、クロックサイクルを示し、左から右に向かって時間が経過する(図4,図5についても同様である)。また、ステップFE,DE,EX,MEM,WBの各々において、次のような処理が実行される。
   FE…フェッチステージ:命令の読み込み(フェッチ)
   DE…デコードステージ:命令のデコード
   EX…実行ステージ:命令の演算
  MEM…メモリアクセスステージ:メモリへのアクセス
   WB…ライトバックステージ:演算結果の書き戻し
 プロセッサがある1つの命令を実行する場合、ステップFE,DE,EX,MEM,WBが順番に実行される。1つの命令に対してこの5つのステップのすべてが完了してから次の命令の実行を開始する場合、1つの命令を完了するために必要なサイクル数が“5サイクル”になってしまう。一方、図1に示したプロセッサ11は、図3のようなパイプライン処理によって命令を実行する。すなわち、クロックサイクルC1において命令1に対してステップFEが実行された後、クロックサイクルC2において命令1に対してステップDEが実行されると同時に命令2に対してステップFEが実行される。このようにして、命令1,命令2,…,命令6が順次処理され、クロックサイクルC5では、命令1,命令2,命令3,命令4,命令5に対してステップWB,MEM,EX,DE,FEがそれぞれ同時に実行される。また、クロックサイクルC5において命令1が完了し、クロックサイクルC6,C7,…,C10の各々において命令2,命令3,…,命令6が1つずつ順番に完了していく。
 また、上述のようにクロックサイクル毎に1つの命令を完了させるためには、メモリ(例えば、外部記憶装置500)へのアクセスが必要となるステップFE,MEMを1サイクルで完了させる必要がある。しかし、一般的に、メモリへのアクセスには2サイクル以上の時間を要してしまう。そこで、図1に示したプロセッサ11には、アクセス時間の短縮のために、命令キャッシュ112およびデータキャッシュ113が設けられている。
  〔キャッシュミス〕
 図1に示したプロセッサ11において、キャッシュヒットした場合(命令キャッシュ112(データキャッシュ113)に命令実行ユニット110が必要とする命令(データ)が格納されている場合)には、命令実行ユニット110は、1サイクルで命令(データ)を読み出すことができるが、キャッシュミスした場合(命令キャッシュ112(データキャッシュ113)に命令実行ユニット110が必要とする命令(データ)が格納されていない場合)には、データメモリ12,命令メモリ13,または外部記憶装置500から必要な命令(データ)を読み出すことになるので、命令実行ユニット110の待機時間が長くなってしまう。
   《命令キャッシュミス》
 次に、図4を参照して、命令2において命令キャッシュミスが発生した場合(命令2が命令キャッシュ112に格納されていない場合)について説明する。図4のように、クロックサイクルC2において命令2の命令キャッシュミスが発生した場合、外部記憶装置500から命令2を読み出すために“nサイクル”の時間を要するため、命令2に対するステップFEは、クロックサイクルC2ではなく、クロックサイクルCn+2に完了することになる。その後、命令2に対してステップDE,EX,MEM,WBが実行され、クロックサイクルCn+6において命令2が完了する。一方、命令2の処理遅延により、命令3,命令4,…,命令6については、命令2に対するステップFEが終わるまで処理が待たされるため、命令3,命令4,…,命令6の完了が遅くなってしまう。例えば、命令3は、クロックサイクルC7ではなく、クロックサイクルCn+7に完了することになる。
 このような命令キャッシュミスに起因するペナルティ(処理速度の劣化)を隠蔽するために、プロセッサ11は、プリフェッチ機能(次に実行されると予想される命令を読み出して命令キャッシュ112に事前に格納しておく機能)を有していても良い。
   《データキャッシュミス》
 次に、図5を参照して、命令2においてデータキャッシュミスが発生した場合(命令2によって要求されているデータがデータキャッシュ113に格納されていない場合)について説明する。ここでは、命令2は、ロード命令であるものとする。図5のように、クロックサイクルC5において命令2のデータキャッシュミスが発生した場合、外部記憶装置500からデータ(命令2によって要求されているデータ)を読み出すために“nサイクル”の時間を要するため、命令2に対するステップMEMは、クロックサイクルC5ではなく、クロックサイクルCn+5に完了することになる。その後、命令2に対してステップWBが実行され、クロックサイクルCn+6において命令2が完了する。一方、命令2の処理遅延により、命令3,命令4,…,命令6については、命令2に対するステップMEMが終わるまで処理が待たされるため、命令3,命令4,…,命令6の完了が遅くなってしまう。例えば、命令4は、クロックサイクルC8ではなく、クロックサイクルCn+8に完了することになる。
 なお、命令2がストア命令である場合、ライトデータが、ライトバッファ114に格納される。そのため、命令2においてキャッシュミスが発生したとしても、ライトバッファ114が満杯にならない限り、パイプライン処理は乱れない。ただし、ライトバッファ114が満杯である場合には、ライトバッファ114に格納されたライトデータがデータメモリ12(または、外部記憶装置500)に書き込まれてライトバッファ114に空きができるまで、プロセッサ11は、アイドル状態になってしまう。
  〔アイドル状態検出回路〕
 図1に戻って、アイドル状態検出回路10は、実行命令検出部101と、ライトバッファ監視部102と、リード待ち検出部103と、判定部104とを含む。
   《実行命令検出部》
 実行命令検出部101は、命令実行ユニット110の動作を監視し、命令なし状態(命令実行ユニット110によって現在実行されている命令および次に実行される予定の命令が存在しない状態)を検出する。例えば、実行命令検出部101は、命令なし状態である場合には、検出信号S101を“0”に設定し、命令なし状態ではない場合には、検出信号S101を“1”に設定する。
 命令キャッシュミスが発生している場合、命令実行ユニット110の各パイプラインステージには命令が充填されていない(すなわち、命令なし状態である)ので、実行命令検出部101は、検出信号S101を“0”に設定する。一方、命令キャッシュミスが発生していない場合、命令実行ユニット110の各パイプラインステージには命令が充填されている(すなわち、命令なし状態ではない)ので、実行命令検出部101は、検出信号S101を“1”に設定する。
   《ライトバッファ監視部》
 ライトバッファ監視部102は、ライトバッファ114の格納状態を監視し、バッファ満杯状態(ライトバッファ114が満杯である状態)を検出する。例えば、ライトバッファ監視部102は、ライトバッファ114が満杯である場合には、検出信号S102を“1”に設定し、ライトバッファ114が満杯ではない場合には、検出信号S102を“0”に設定する。
   《リード待ち検出部》
 リード待ち検出部103は、バスI/F115の動作を監視し、リード待ち状態(命令実行ユニット110がリードデータを待っている状態)を検出する。ここでは、リードデータは、データメモリ12または外部記憶装置500から転送されるデータ(プロセッサ11による要求に応答して、データメモリ12または外部記憶装置500がプロセッサ11に転送するデータ)である。例えば、リード待ち検出部103は、リード待ち状態である場合には、検出信号S103を“1”に設定し、リード待ち状態ではない場合には、検出信号S103を“0”に設定する。
 データキャッシュミスが発生している場合、命令実行ユニット110はリード待ち状態であるので、リード待ち検出部103は、検出信号S103を“1”に設定する。一方、データキャッシュミスが発生していない場合、命令実行ユニット110はリード待ち状態ではないので、リード待ち検出部103は、検出信号S103を“0”に設定する。
   《判定部》
 判定部104は、命令なし状態,バッファ満杯状態,およびリード待ち状態のうち少なくとも1つが検出された場合に、プロセッサ11がアイドル状態であると判定する。例えば、判定部104は、検出信号S101,S102,S103がそれぞれ“1”“0”“0”である場合にはアイドル状態通知信号S10を“0”に設定し、それ以外の場合にはアイドル状態通知信号S10を“1”に設定する。アイドル状態通知信号S10が“0”に設定されることにより、プロセッサ11が処理を実行中である(すなわち、アイドル状態ではない)ことがわかる。命令キャッシュミスが発生している場合、検出信号S101が“0”に設定されるので、判定部104は、アイドル状態通知信号S10を“1”に設定する。また、データキャッシュミスが発生している場合、検出信号S103が“1”に設定されるので、判定部104は、アイドル状態通知信号S10を“1”に設定する。さらに、ライトバッファ114が満杯である場合、検出信号S102が“1”に設定されるので、判定部104は、アイドル状態通知信号S10を“1”に設定する。アイドル状態通知信号S10が“1”に設定されることにより、プロセッサ11がアイドル状態であることがわかる。
 以上のように、実行命令検出部101による検出結果(検出信号S101)およびリード待ち検出部103による検出結果(検出信号S103)に応じてアイドル状態通知信号S10を変化させることにより、キャッシュミス(命令キャッシュミス,データキャッシュミス)やI/Oアクセスが頻発する場合であっても、キャッシュミスに起因するプロセッサ11のアイドル状態を正確に検出できる。特に、プロセッサ11がプリフェッチ機能を有している場合であっても、キャッシュミスに起因するプロセッサ11のアイドル状態を正確に検出できる。
 また、ライトバッファ監視部102による検出結果(検出信号S102)に応じてアイドル状態通知信号S10を変化させることにより、ライトバッファ114が満杯であることに起因するプロセッサ11のアイドル状態を正確に検出できる。なお、アイドル状態検出回路10は、ライトバッファ監視部102を含んでいなくても良い。
  〔クロック供給部,電圧供給部〕
 クロック供給部17は、プロセッサ11(詳しくは、命令実行ユニット110および一次キャッシュ111)を駆動させるためのクロックCLK1を供給する。また、クロック供給部17は、アイドル状態通知信号S10が“0”から“1”に変化した場合には、クロックCLK1の周波数を低下させ、アイドル状態通知信号S10が“1”から“0”に変化した場合には、クロックCLK1の周波数を元に戻す。
 電圧供給部18は、プロセッサ11(詳しくは、命令実行ユニット110および一次キャッシュ111)を駆動させるための駆動電圧VDD1を供給する。また、電圧供給部18は、アイドル状態通知信号S10が“0”から“1”に変化した場合には、駆動電圧VDD1の電圧値を低下させ、アイドル状態通知信号S10が“1”から“0”に変化した場合には、駆動電圧VDD1の電圧値を元に戻す。
 以上のように、クロック供給部17および電圧供給部18が、それぞれ、アイドル状態通知信号S10に応答してクロックCLK1の周波数および駆動電圧VDD1の電圧値を低下させることにより、プロセッサ11がアイドル状態である期間においてプロセッサ11の消費電力を低下させることができる。これにより、プロセッサ11における電力浪費を低減できる。特に、アイドル状態通知信号S10が“1”に設定されている期間が長いほど、電力削減効果が顕著になる。例えば、外部記憶装置500のアクセス時間が非常に長い場合に、特に有効である。なお、クロックCLK1の周波数および駆動電圧VDD1の電圧値のいずれか一方を低下させた場合でも、プロセッサ11の電力浪費を低減することは可能である。
 (実施形態2)
 図6は、実施形態2による半導体集積回路2の構成例を示す。半導体集積回路2は、図1に示したプロセッサ11に代えて、プロセッサ21,クロック供給部22,および電圧供給部23を備える。プロセッサ21は、図1に示したプロセッサ11の構成に加えて、二次キャッシュ211を備える。その他の構成は、図1と同様である。
 二次キャッシュ211は、プロセッサ11によって利用される命令およびデータを格納する。ここでは、リードデータは、二次キャッシュ211,データメモリ12,または外部記憶装置500から転送されるデータ(プロセッサ11による要求に応答して、二次キャッシュ211,データメモリ12,または外部記憶装置500がプロセッサ11に転送するデータ)である。また、二次キャッシュ211のレイテンシは、一次キャッシュ111の命令キャッシュ112およびデータキャッシュ113のレイテンシよりも大きい。例えば、二次キャッシュ211へのアクセスに、2クロックサイクル以上の時間を要する。
 クロック供給部22は、二次キャッシュ211を駆動させるためのクロックCLK2を供給する。電圧供給部23は、二次キャッシュ211を駆動させるための駆動電圧VDD2を供給する。なお、アイドル状態通知信号S10が変化したとしても、クロック供給部22および電圧供給部23は、それぞれ、クロックCLK2の周波数および駆動電圧VDD2の電圧値を変化させない。すなわち、二次キャッシュ211の性能(動作速度)が低下しない。なお、クロックCLK1および駆動電圧VDD1は、命令実行ユニット110および一次キャッシュ111に供給される。
 クロックCLK2および駆動電圧VDD2の代わりにクロックCLK1および駆動電圧VDD1が二次キャッシュ211に供給される場合、二次キャッシュ211へのアクセスが発生している際にアイドル状態通知信号S10が“1”に設定されると、二次キャッシュ211のアクセス処理中に二次キャッシュ211の性能が低下してしまうことになる。一方、図6に示した半導体集積回路2では、アイドル状態通知信号S10が“1”に設定されたとしても二次キャッシュ211の性能は低下しないので、二次キャッシュ211へのアクセスが発生している際に二次キャッシュ211の性能が低下してしまうことを防止できる。このように、プロセッサ11がアイドル状態である場合に、二次キャッシュ211の性能を劣化させることなく、プロセッサ11の消費電力を低下させることができる。
 なお、クロック供給部22および電圧供給部23を設けずに、クロックCLK1および駆動電圧VDD1を二次キャッシュ211に供給しても良い。また、プロセッサ21は、二次キャッシュ211だけでなく、三次キャッシュを含んでいても良い。この場合、クロックCLK2および駆動電圧VDD2を三次キャッシュに供給しても良い。
 (実施形態3)
 図7は、実施形態3による半導体集積回路3の構成例を示す。半導体集積回路3は、図1に示したアイドル状態検出回路10に代えて、アイドル状態検出回路30を備える。アイドル状態検出回路30は、図1に示したアイドル状態検出回路10の構成に加えて、アイドルカウンタ301および比較部302を含む。その他の構成は、図1と同様である。
 アイドルカウンタ301は、アイドル状態通知信号S10が“1”に設定されている期間に相当するクロックサイクル数をカウントする。例えば、アイドルカウンタ301は、アイドル状態通知信号S10が“0”から“1”に変化するとカウントアップを開始し、アイドル状態通知信号S10が“1”から“0”に変化するとカウントアップを終了する。比較部302は、アイドルカウンタ301のカウント値(クロックサイクル数)と規定クロックサイクル数CXとを比較し、アイドルカウンタ301のカウント値が規定クロックサイクル数CXよりも多くなった場合に、アイドル状態通知信号S30を“1”に設定する。
 クロック供給部17および電圧供給部18は、それぞれ、アイドル状態通知信号S10の代わりにアイドル状態通知信号S30に応答して、クロックCLK1の周波数および駆動電圧VDD1の電圧値を変化させる。
 アイドル状態通知信号S10は、クロックサイクル毎に変化する可能性がある。また、クロック供給部17によってクロックCLK1の周波数を変化させるためには、1クロックサイクルよりも多くの時間を要する。そのため、図1に示した半導体集積回路1では、クロック供給部17は、アイドル状態通知信号S10の変化に追従してクロックCLK1の周波数を変化させることができない可能性がある。電圧供給部18も同様に、アイドル状態通知信号S10の変化に追従して駆動電圧VDD1の電圧値を変化させることができない可能性がある。一方、図7に示した半導体集積回路3では、アイドルカウンタ301のカウント値が規定クロックサイクル数CXよりも多くなった場合に、アイドル状態通知信号S30が“1”に設定されるので、クロックCLK1の周波数および駆動電圧VDD1の電圧値を確実に変化させることができる。これにより、プロセッサ11がアイドル状態である期間においてプロセッサ11の消費電力を確実に低下させることができる。
 なお、規定クロックサイクル数CXは、固定値であっても良いし、任意に設定可能な値であっても良い。例えば、設定レジスタ等を設けて使用者によって規定クロックサイクル数CXを自由に設定できるようにしても良い。また、半導体集積回路3は、図7に示したプロセッサ11に代えて、図6に示したプロセッサ21,クロック供給部22,および電圧供給部23を備えていても良い。
  以上説明したように、上述のアイドル状態検出回路は、キャッシュミスに起因するプロセッサのアイドル状態を正確に検出できるので、プロセッサの低電力化技術などに有用である。
1,2,3  半導体集積回路
10,30  アイドル状態検出回路
11,21  プロセッサ
12  データメモリ
13  命令メモリ
14  キー入力I/F
15  画像I/F
16  外部I/F
17,21  クロック供給部
18,22  電圧供給部
101  実行命令検出部
102  ライトバッファ監視部
103  リード待ち検出部
104  判定信号生成部
110  命令実行ユニット
111  一次キャッシュ
112  命令キャッシュ
113  データキャッシュ
114  ライトバッファ
115  バスI/F
211  二次キャッシュ

Claims (9)

  1.  パイプライン処理により命令を実行する命令実行ユニットと、前記命令実行ユニットによって利用される命令およびデータを格納する一次キャッシュとを備えるプロセッサのアイドル状態を検出する回路であって、
     前記命令実行ユニットによって現在実行されている命令および次に実行される予定の命令が存在しない命令なし状態を検出する実行命令検出部と、
     前記命令実行ユニットがリードデータを待っているリード待ち状態を検出するリード待ち検出部と、
     前記命令なし状態および前記リード待ち状態のうち少なくとも1つが検出された場合に、前記プロセッサがアイドル状態であると判定する判定部とを備える
    ことを特徴とするアイドル状態検出回路。
  2.  請求項1において、
     ライトバッファ監視部をさらに備え、
     前記一次キャッシュは、
      前記命令実行ユニットによって利用される命令およびデータをそれぞれ格納する命令キャッシュおよびデータキャッシュと、
      前記命令実行ユニットによって生成されたライトデータを格納するライトバッファとを含み、
     前記ライトバッファ監視部は、前記ライトバッファが満杯であるバッファ満杯状態を検出し、
     前記判定部は、前記命令なし状態,前記リード待ち状態,および前記バッファ満杯状態のうち少なくとも1つが検出された場合に、前記プロセッサがアイドル状態であると判定する
    ことを特徴とするアイドル状態検出回路。
  3.  請求項1において、
     前記リードデータは、前記命令実行ユニットによる要求に応答して外部記憶装置から転送されるデータである
    ことを特徴とするアイドル状態検出回路。
  4.  請求項1において、
     前記プロセッサは、前記命令実行ユニットによって利用される命令およびデータを格納し且つ前記一次キャッシュよりもレイテンシが大きい二次キャッシュをさらに備え、
     前記リードデータは、前記命令実行ユニットによる要求に応答して前記二次キャッシュから転送されるデータである
    ことを特徴とするアイドル状態検出回路。
  5.  請求項1~4のいずれか1項に記載のアイドル状態検出回路と、
     前記プロセッサと、
     前記プロセッサを駆動させるためのクロックおよび駆動電圧を前記プロセッサに供給するものであり、前記判定部によって前記プロセッサがアイドル状態であると判定された場合に、前記クロックの周波数および前記駆動電圧の電圧値のうち少なくとも1つを低下させる駆動回路とを備える
    ことを特徴とする半導体集積回路。
  6.  請求項1~4のいずれか1項に記載のアイドル状態検出回路と、
     前記プロセッサと、
     駆動回路とを備え、
     前記アイドル状態検出回路は、
      前記プロセッサがアイドル状態であると判定されている期間に相当するクロックサイクル数をカウントするアイドルカウンタと、
      前記アイドルカウンタによってカウントされたクロックサイクル数と規定クロックサイクル数とを比較する比較部とをさらに備え、
     前記駆動回路は、前記プロセッサを駆動させるためのクロックおよび駆動電圧を前記プロセッサに供給するものであり、前記比較部によって前記クロックサイクル数が前記規定クロックサイクル数よりも多いと判定された場合に、前記クロックの周波数および前記駆動電圧の電圧値のうち少なくとも1つを低下させる
    ことを特徴とする半導体集積回路。
  7.  請求項6において、
     前記規定クロックサイクル数は、可変値である
    ことを特徴とする半導体集積回路。
  8.  請求項1に記載のアイドル状態検出回路と、
     前記プロセッサと、
     外部記憶装置とを備え、
     前記リードデータは、前記命令実行ユニットによる要求に応答して前記外部記憶装置から転送されるデータである
    ことを特徴とする信号処理装置。
  9.  パイプライン処理により命令を実行する命令実行ユニットと、前記命令実行ユニットによって利用される命令およびデータを格納する一次キャッシュとを備えるプロセッサのアイドル状態を検出する方法であって、
     前記命令実行ユニットによって現在実行されている命令および次に実行される予定の命令が存在しない命令なし状態を検出するステップ(a)と、
     前記命令実行ユニットがリードデータを待っているリード待ち状態を検出するステップ(b)と、
     前記命令なし状態および前記リード待ち状態のうち少なくとも1つが検出された場合に、前記プロセッサがアイドル状態であると判定するステップ(c)とを備える
    ことを特徴とするアイドル状態検出方法。
PCT/JP2010/000307 2009-08-24 2010-01-20 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法 WO2011024330A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009192994A JP2011044072A (ja) 2009-08-24 2009-08-24 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法
JP2009-192994 2009-08-24

Publications (1)

Publication Number Publication Date
WO2011024330A1 true WO2011024330A1 (ja) 2011-03-03

Family

ID=43627454

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/000307 WO2011024330A1 (ja) 2009-08-24 2010-01-20 アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法

Country Status (2)

Country Link
JP (1) JP2011044072A (ja)
WO (1) WO2011024330A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112634964A (zh) * 2020-12-24 2021-04-09 潍柴动力股份有限公司 电子控制单元的数据写入方法、装置、设备及存储介质
CN117136344A (zh) * 2021-04-01 2023-11-28 高通股份有限公司 自适应动态时钟和电压缩放

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5695766B2 (ja) * 2011-09-21 2015-04-08 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアシステムエネルギー消費最適化
JP6162491B2 (ja) * 2013-06-10 2017-07-12 Necプラットフォームズ株式会社 処理装置、処理方法、および、プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143296A (ja) * 1996-11-08 1998-05-29 Sanyo Electric Co Ltd 演算処理装置の動作検出方法
JPH10312222A (ja) * 1997-05-13 1998-11-24 Seiko Epson Corp マイクロコンピュータ及び電子機器
JP2001175533A (ja) * 1999-12-14 2001-06-29 Japan Science & Technology Corp プロセッサ
JP2003150403A (ja) * 2001-11-06 2003-05-23 Arc Internatl (Uk) Ltd データプロセッサの観測方法及び装置
JP2007521538A (ja) * 2003-08-26 2007-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143296A (ja) * 1996-11-08 1998-05-29 Sanyo Electric Co Ltd 演算処理装置の動作検出方法
JPH10312222A (ja) * 1997-05-13 1998-11-24 Seiko Epson Corp マイクロコンピュータ及び電子機器
JP2001175533A (ja) * 1999-12-14 2001-06-29 Japan Science & Technology Corp プロセッサ
JP2003150403A (ja) * 2001-11-06 2003-05-23 Arc Internatl (Uk) Ltd データプロセッサの観測方法及び装置
JP2007521538A (ja) * 2003-08-26 2007-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求駆動型クロック・スロットリング電力低減を用いるプロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112634964A (zh) * 2020-12-24 2021-04-09 潍柴动力股份有限公司 电子控制单元的数据写入方法、装置、设备及存储介质
CN117136344A (zh) * 2021-04-01 2023-11-28 高通股份有限公司 自适应动态时钟和电压缩放
JP7470261B2 (ja) 2021-04-01 2024-04-17 クゥアルコム・インコーポレイテッド 適応型の動的クロックおよび電圧スケーリング

Also Published As

Publication number Publication date
JP2011044072A (ja) 2011-03-03

Similar Documents

Publication Publication Date Title
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
TWI528169B (zh) 在閒置顯示情況中之記憶體電力節省
US10241797B2 (en) Replay reduction by wakeup suppression using early miss indication
US9442758B1 (en) Dynamic processor core switching
US20070043965A1 (en) Dynamic memory sizing for power reduction
US8726055B2 (en) Multi-core power management
EP3332306B1 (en) System and method for cache aware low power mode control in a portable computing device
US9563567B2 (en) Selective cache way-group power down
US20190266098A1 (en) Progressive Flush of Cache Memory
US20190146699A1 (en) Dynamic configuration of compressed virtual memory
TW201926060A (zh) 省電快取記憶體使用
EP2972826B1 (en) Multi-core binary translation task processing
WO2011024330A1 (ja) アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法
EP1313014B1 (en) Interruptible and re-entrant instruction for cleaning a region of a cache memory
JP2006351013A (ja) 電子装置において保存/リストア手順を行なうための方法及びシステム
US9043507B2 (en) Information processing system
JP5928272B2 (ja) 半導体集積回路及びコンパイラ
US20240168658A1 (en) System and Method to Reduce Power Consumption When Conveying Data to a Device
US20160216756A1 (en) Power management in computing devices
WO2024112530A1 (en) System and method to reduce power consumption when conveying data to a device
US20110219257A1 (en) Idle-state detection circuit, semiconductor integrated circuit, and idle-state detection method
JP2003085153A (ja) 制御レジスタ及びプロセッサ

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10811390

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10811390

Country of ref document: EP

Kind code of ref document: A1