KR20040101344A - Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile - Google Patents

Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile Download PDF

Info

Publication number
KR20040101344A
KR20040101344A KR10-2004-7014991A KR20047014991A KR20040101344A KR 20040101344 A KR20040101344 A KR 20040101344A KR 20047014991 A KR20047014991 A KR 20047014991A KR 20040101344 A KR20040101344 A KR 20040101344A
Authority
KR
South Korea
Prior art keywords
logic
instruction
logic circuit
state
program
Prior art date
Application number
KR10-2004-7014991A
Other languages
Korean (ko)
Inventor
알트만에릭알
글로스너클레어존3세
호케네크에르뎀
멜트저데이비드
모우드질메이얀
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 KR20040101344A publication Critical patent/KR20040101344A/en

Links

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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명에 따른 마이크로프로세서는 논리 회로를 포함한다. 선택 디바이스가 이 논리 회로에 결합되고, 이 선택 디바이스는 저장된 논리 값에 기초하여 논리 회로를 온/오프 상태로 스위칭한다. 마이크로프로세서의 인스트럭션 시퀀스에 따라서 논리 회로의 예상 사용량에 기초하여 논리 회로의 온/오프 상태를 제어하도록 저장된 논리 값을 설정하는 프로그램 인스트럭션이 포함된다.The microprocessor according to the invention comprises a logic circuit. A selection device is coupled to this logic circuit, which switches the logic circuit on / off based on the stored logic value. Program instructions for setting stored logic values to control the on / off state of the logic circuit based on the expected usage of the logic circuit in accordance with the instruction sequence of the microprocessor.

Description

마이크로프로세서, 인스트럭션 시퀀스 발생 방법 및 이를 구현한 프로그램 디바이스{POWER CONTROL OF A PROCESSOR USING HARDWARE STRUCTURES CONTROLLED BY A COMPILER WITH AN ACCUMULATED INSTRUCTION PROFILE}A microprocessor, an instruction sequence generation method and a program device implementing the same {POWER CONTROL OF A PROCESSOR USING HARDWARE STRUCTURES CONTROLLED BY A COMPILER WITH AN ACCUMULATED INSTRUCTION PROFILE}

프로세서의 동적 전력 제어는 두 개의 일반적인 카테고리로 분류할 수 있는데, 즉 클록 게이팅 기법(clock gating technique)을 이용하는 사이클 단위 제어와, 전력 절감 모드(power saving mode)의 소프트웨어 설정에 기초한 장기간(longer term)의 제어로 나눌 수 있다. 클록 게이팅은 논리 회로에 의존하여, 현재의 클록 사이클 동안에 기능(function)이 사용되는 지의 여부를 분석하고, 사용되지 않는 경우 그 기능(function)에 의해 사용된 로직의 일부분으로 클록을 디게이팅(degating)한다. 이 프로세스는 분석 로직 내의 전력을 소비하여 클로킹된 로직 내의 전력을 절감한다. 또한, 클로킹되는 로직이 활성(active)이기 때문에, 클록이 디게이팅되는 사이클 동안 전력 손실(power dissipation)의 동적 성분(dynamic component)만이 제거된다. 또한 누설 또는 정적 성분(static component) 또한 제거하는 것이 바람직할 것이다. 전력 절감 모드는 장기간의 전력 절감에 사용되지만, 이 모드를 호출하여 정상 동작을 다시 시작하기 위해 보다 많은 오버헤드가 요구된다.The dynamic power control of a processor can be divided into two general categories: cycle-by-cycle control using the clock gating technique and longer terms based on software settings in power saving mode. Can be divided into control. Clock gating relies on logic circuitry to analyze whether a function is used during the current clock cycle, and if not, degating the clock as part of the logic used by that function. )do. This process consumes power in analysis logic to save power in clocked logic. In addition, since the clocked logic is active, only the dynamic component of power dissipation is removed during the cycle of clock clocking. It would also be desirable to eliminate leakage or static components as well. The power saving mode is used for long term power savings, but more overhead is required to invoke this mode to resume normal operation.

미국 특허 제 4,980,836 호 APPARATUS FOR REDUCING COMPUTER SYSTEM POWER CONSUMPTION은 소프트웨어 제어형 전력 절감 모드의 일반적인 방법을 개시하고 있는데, 여기서 각각의 개별 프로세서 및 I/O 제어기가 전력 차단 모드(power down mode)를 구비하며, 운영 시스템은 동적으로 각 유닛의 사용량을 동적으로 감시하여, 이들 유닛이 사용되지 않을 때 이들 유닛을 닫는다. 전력 차단 모드는 전원 전압을 발생하는 조절기(regulator)를 제어함으로써 통상적으로 구현되며, 따라서 전력 손실의 활성 성분 및 정적 성분 모두를 제거한다. 현 기술 수준의 이 범용 모드 방법은 몇 가지 취약점을 갖고 있다. 이 방법은 일부 전력을 소비하여 운영 시스템의 감시 활동(activity)을 요구하며, 이 방법은 장래의 활동을 예측할 수 없다. 유닛은 자주 온 및 오프로 될 수도 있으며 따라서 실제 전력 절감은 작다.U.S. Patent No. 4,980,836 APPARATUS FOR REDUCING COMPUTER SYSTEM POWER CONSUMPTION discloses a general method of software controlled power saving mode, wherein each individual processor and I / O controller has a power down mode and is operated. The system dynamically monitors the usage of each unit dynamically, closing these units when they are not in use. The power off mode is typically implemented by controlling a regulator that generates a supply voltage, thus eliminating both active and static components of power loss. This general-mode method at the current technology level has some vulnerabilities. This method consumes some power and requires monitoring of the operating system, which cannot predict future activity. The unit may be turned on and off frequently, so the actual power savings are small.

미국특허 제 5,781,062 호, SEMICONDUCTOR INTEGRATED CIRCUIT는 가상 Vdd 및 그라운드(ground)를 발생하는 MTCMOS(multi-threshold complementary metal oxide semiconductor) 구조를 갖는 로직이 글로벌 전력 절감 신호, 예를 들어 "대기 제어 신호(Standby Control Signal)"에 의해 제어된 헤더/푸터(footer) 스위치 구조를 포함할 수도 있다는 것을 개시하고 있다. 미국 특허 제 5,781,062 호에는전력 절감 제어의 두 모드가 개시되어 있다. 제 1 모드에서는, 대기 기간 동안에, 헤더/푸터 스위치 디바이스가 로직 내의 정보의 손실을 방지하기 위해 주기적으로 도전(conduction)/비도전(non-conduction)을 반복하여 누설 전력을 가상 Vdd 및 그라운드에 제공한다. 제 2 모드에서는, 대기 기간 동안에 주기적인 도전 간격이 제공되지 않으며, 이에 따라 가상 Vdd 라인을 방전시켜 누설 전력을 제거함으로써 전력 절감이 증가되는데, 상기 가상 Vdd 라인은 활성 주기의 시작에서 Vdd로 다시 충전된다. 이런 방식으로 가상 Vdd 및 그라운드를 오프로 하면, 많은 사이클 동안 호출되는 경우에만 사이클 단위의 클록 게이팅보다 더 많은 전력이 절감된다. 이 기술은 오프로 된 로직의 일부가 장래에 많은 사이클 동안 사용되지 않을 것이라고 판정하는 수단을 개시하고 있지 않으며, 따라서 명시적으로 프로그램된 글로벌 모드가 헤더/푸터 스위치를 제어하기 위해 종래 기술에서 이용할 수 있는 유일한 수단이다.U.S. Patent No. 5,781,062, SEMICONDUCTOR INTEGRATED CIRCUIT, is a logic that has a multi-threshold complementary metal oxide semiconductor (MTCMOS) structure that generates virtual Vdd and ground. Signal / "header-footer switch structure controlled by " U.S. Patent 5,781,062 discloses two modes of power saving control. In the first mode, during the waiting period, the header / footer switch device repeatedly conducts / non-conductions to provide leakage power to the virtual Vdd and ground to prevent loss of information in the logic. do. In the second mode, no periodic conduction interval is provided during the standby period, thereby increasing power savings by discharging the virtual Vdd line to eliminate leakage power, which is charged back to Vdd at the start of the active period. do. Turning off virtual Vdd and ground in this manner saves more power than cycle clock gating only when called for many cycles. This technique does not disclose a means of determining that some of the logic that is turned off will not be used for many cycles in the future, so that an explicitly programmed global mode is available in the prior art to control the header / footer switch. That is the only means.

CMOS 로직에서의 전력 손실은 회로가 스위칭될 때 소비되는 활성 전력(active power) 및 Vdd 및 그라운드가 로직에 인가될 때마다 소비되는 정적 전력 또는 누설 전력의 두 성분을 포함한다. 종래의 활성 전력의 전력 제어는 로직이 사용되지 않을 때 사이클 단위로 클록을 오프로 하는 클록 게이팅에 의존한다.Power loss in CMOS logic includes two components: active power consumed when the circuit is switched and static power or leakage power consumed each time Vdd and ground are applied to the logic. Conventional active power power control relies on clock gating to turn off the clock on a cycle-by-cycle basis when logic is not used.

도 1에는, 정적 CMOS 로직(12)의 누설 전력을 제어하기 위해 사용된 MTCMOS 구조가 도시되어 있다. SLEEP 신호가 활성일 때, Vdd 및 그라운드가 트랜지스터(11, 13)에 의해 로직의 나머지로부터 분리되어, 누설 전력이 소비되지 않는다. 통상적으로, SLEEP 모드의 전계 효과 트랜지스터(FET)(11, 13)의 임계치는 최소 누설 전력을 보장하도록 논리 FET의 나머지보다 더 높게 된다. 이 기법은 두 가지 단점이 있는데, 첫째는 슬립(sleep) 모드의 FET의 사이징(sizing)이 성능을 떨어뜨리지 않기 위해 중요하며, 둘째는 Vdd 또는 그라운드가 분리될 때, 로직이 저장된 전하를 점차로 상실하며 따라서 이전에 저장된 상태의 모든 메모리를 상실한다는 것이다. 전력이 회복될 때, 전력을 소비하여 로직의 모든 방전된 노드가 재충전되어야 한다. 따라서, 실제 전력 절감을 달성하기 위해 SLEEP 모드 제어가 수 사이클 동안 호출되어야 한다.In Figure 1, the MTCMOS structure used to control the leakage power of static CMOS logic 12 is shown. When the SLEEP signal is active, Vdd and ground are separated from the rest of the logic by transistors 11 and 13 so that no leakage power is consumed. Typically, the thresholds of field effect transistors (FETs) 11 and 13 in SLEEP mode are higher than the rest of the logic FETs to ensure minimum leakage power. This technique has two drawbacks: first, sizing of the FET in sleep mode is important to avoid degrading performance, and second, the logic gradually loses the stored charge when Vdd or ground is isolated. Therefore, all memory in the previously saved state is lost. When power is restored, all discharged nodes of the logic must be recharged by consuming power. Thus, SLEEP mode control must be invoked for several cycles to achieve real power savings.

프로세서의 로직이 장래에 사용될 때를 예측하는 것은 어렵기 때문에, 종래 기술은 운영 시스템의 글로벌 제어에 의존하여 MTCMOS 구조의 SLEEP 모드를 제어한다. 도 2를 참조하면, 이러한 제어 구조를 갖는 프로세서(22)가 도시되어 있다. 프로세서(22)는 슬립 모드 래치(24)(항상 전력이 공급됨)의 상태로부터 발생된 제어 신호(SLEEP)를 이용하여 FET(21, 23)에 의해 제어된 가상 그라운드 및 가상 Vdd에 의해 전력을 공급받는다. 이 래치(24)는 세트(set) 신호(25)를 통해 프로세서(22)에 의해 설정되고, 행해질 작업이 남아 있지 않을 때 프로그램된 동작을 통해 프로세서에 의해 어서팅(asserting)된다. 운영 시스템 커널은 신호(25)를 어서팅하기 전에 몇몇 비휘발성 저장 장치(도시되어 있지 않음)에 동작을 다시 시작하는데 필요한 프로세서(22)의 상태를 저장해야 한다. 몇몇 외부 이벤트(26)는 슬립 모드 래치(24)의 리셋에 접속되어 동작을 다시 시작한다. 개념적으로 이것은 몇몇 컴퓨터에 사용된 전력 조절기 차단을 갖는 "중지(suspend)" 모드와 동일하다.Because it is difficult to predict when processor logic will be used in the future, the prior art relies on global control of the operating system to control the SLEEP mode of the MTCMOS structure. 2, a processor 22 having such a control structure is shown. The processor 22 uses the control signal SLEEP generated from the state of the sleep mode latch 24 (always powered on) to supply power by the virtual ground and the virtual Vdd controlled by the FETs 21 and 23. To be supplied. This latch 24 is set by the processor 22 via a set signal 25 and is asserted by the processor through a programmed operation when there is no work left to be done. The operating system kernel must store the state of the processor 22 needed to resume operation to some non-volatile storage (not shown) before asserting the signal 25. Some external event 26 is connected to reset of the sleep mode latch 24 to resume operation. Conceptually this is the same as the "suspend" mode with power regulator shutdown used in some computers.

따라서, 디지털 집적 회로에서 보다 효과적으로 전력을 제어하는 장치 및 방법이 요구된다. 또한 특정 하드웨어 구조의 장래의 사용량(usage)을 아는 것에 기초하여 프로세서의 전력 제어를 할 필요가 있다.Accordingly, what is needed is an apparatus and method for more effectively controlling power in a digital integrated circuit. There is also a need to control the power of the processor based on knowing the future usage of a particular hardware architecture.

본 발명은 마이크로프로세서 디지털 집적 회로의 전력 제어에 관한 것으로, 특히 컴파일러에 의해 발생된 인스트럭션에 전력 제어 정보를 삽입함으로써 프로세서의 일부의 전력을 동적으로 제어하기 위한 장치 및 방법에 관한 것이다.The present invention relates to power control of microprocessor digital integrated circuits, and more particularly, to an apparatus and method for dynamically controlling power of a portion of a processor by inserting power control information into instructions generated by a compiler.

도 1은 종래 기술에 따른 논리 기능의 전력 차단에 대한 다중 임계치(multi-threshold) CMOS(MTCMOS)의 개략도.1 is a schematic diagram of a multi-threshold CMOS (MTCMOS) for power down logic function according to the prior art;

도 2는 글로벌 슬립 모드 제어를 갖는 MTCMOS 구조를 갖는 종래 기술의 구조의 개략도.2 is a schematic diagram of a prior art structure having an MTCMOS structure with global sleep mode control.

도 3은 별도의 MTCMOS 제어를 각각 갖는 몇 개의 독립적으로 제어된 로직의 부분들로 분할되는, 본 발명의 일실시예에 따라 구성된 프로세서의 개략도.3 is a schematic diagram of a processor constructed in accordance with one embodiment of the present invention, divided into portions of several independently controlled logic, each having separate MTCMOS control.

도 4는 본 발명에 따른 도 3의 프로세서에 대한 컴파일러의 코드 발생의 분석 부분 동안 구성된 테이블의 개략도.4 is a schematic diagram of a table constructed during the analysis portion of code generation of the compiler for the processor of FIG. 3 in accordance with the present invention;

도 5는 본 발명에 따른 도 3의 프로세서에 대한 스위치 제어를 발생하는 컴파일러의 코드 발생 부분을 위한 시스템/방법의 블록도/흐름도.5 is a block diagram / flow diagram of a system / method for a code generation portion of a compiler for generating switch control for the processor of FIG. 3 in accordance with the present invention.

도 6은 본 발명에 따른 도 4의 예에 대해 전력 맵 제어 인스트럭션의 삽입으로 인한 인스트럭션 시퀀스를 도시한 도면.6 illustrates an instruction sequence resulting from the insertion of a power map control instruction for the example of FIG. 4 in accordance with the present invention.

본 발명에 따른 마이크로프로세서는 논리 회로를 포함한다. 선택 디바이스가 논리 회로에 결합되고, 이 선택 디바이스는 저장된 논리 값에 의거하여 논리 회로를 온/오프 상태로 스위칭한다. 마이크로프로세서의 인스트럭션 시퀀스에 따라서 논리 회로의 예상 사용량(usage)에 기초하여 논리 회로의 온/오프 상태를 제어하도록 저장된 논리 값을 설정하는 프로그램 인스트럭션이 포함된다.The microprocessor according to the invention comprises a logic circuit. The selection device is coupled to the logic circuit, which switches the logic circuit on / off based on the stored logic value. Program instructions for setting stored logic values to control the on / off state of the logic circuit based on the expected usage of the logic circuit in accordance with the instruction sequence of the microprocessor.

다른 실시예에서는, 선택 디바이스가 온 상태에서 공급 전압으로부터 적어도 하나의 논리 회로의 전력 라인으로의 접속을 제공하는 스위치를 포함할 수도 있다. 선택 디바이스는 온 상태에서 그라운드로부터 적어도 하나의 논리 회로로의 접속을 제공하는 스위치를 포함할 수도 있다. 마이크로프로세서는 선택 디바이스에 결합되어 저장된 논리 값을 저장하는 레지스터를 포함할 수도 있다. 레지스터는 다수의 인스트럭션 사이클 후에 갱신된다. 입력 테이블은 논리 유닛에 필요한 인스트럭션 시퀀스 및 관련 자원을 포함할 수도 있으며, 여기서 예상 사용량은 입력 테이블에 따라서 결정된다.In another embodiment, the selection device may include a switch that provides a connection from the supply voltage to the power line of the at least one logic circuit in the on state. The selection device may include a switch that provides a connection from ground to at least one logic circuit in the on state. The microprocessor may include a register coupled to the selection device to store the stored logical value. The register is updated after a number of instruction cycles. The input table may include instruction sequences and related resources required for the logical unit, where the expected usage is determined according to the input table.

또 다른 실시예에서는, 논리 유닛의 예상 사용량이 다수의 인스트럭션 사이클 후의 논리 디바이스의 사용량을 포함할 수도 있다. 마이크로프로세서는 논리 디바이스의 전력 절감 온/오프 상태에 대응하는 논리 상태를 갖는 출력 테이블을포함할 수도 있고, 프로그램 인스트럭션은 전력 절감 온/오프 상태에 따라서 논리 회로를 제어하도록 저장된 논리 값을 설정할 수도 있다.In another embodiment, the expected usage of the logical unit may include the usage of the logical device after a number of instruction cycles. The microprocessor may include an output table having a logic state corresponding to the power saving on / off state of the logic device, and the program instructions may set stored logic values to control the logic circuit in accordance with the power saving on / off state. .

본 발명의 또 다른 마이크로프로세서는 기능 그룹(functional group)으로 분할된 복수의 논리 회로를 포함한다. 선택 디바이스는 각각의 기능 그룹에 결합되고, 각각의 선택 디바이스는 레지스터에 저장된 논리 값에 기초하여 대응하는 기능 그룹을 온/오프 상태로 스위칭한다. 프로그램 인스트럭션은 기능 그룹의 온/오프 상태를 제어하도록 레지스터 내의 논리 값을 설정한다. 컴파일러 프로그램은 각각의 기능 그룹의 사용량을 예상하는 인스트럭션 시퀀스에 기초하여 레지스터에서 설정되는 논리 값을 발생한다.Another microprocessor of the present invention includes a plurality of logic circuits divided into functional groups. The selection device is coupled to each functional group, and each selection device switches the corresponding functional group on / off based on a logic value stored in a register. The program instruction sets a logical value in the register to control the on / off state of the functional group. The compiler program generates a logical value that is set in a register based on an instruction sequence that anticipates the usage of each functional group.

선택 디바이스는 각각 온 상태에서 공급 전압으로부터 기능 그룹의 전력 라인으로의 접속을 제공하는 스위치 또는 온 상태에서 그라운드로부터 기능 그룹의 전력 라인으로의 접속을 제공하는 스위치를 포함할 수도 있다. 레지스터는 각 기능 그룹에 대한 하나의 메모리 위치를 포함할 수도 있다. 레지스터는 바람직하게는 다수의 인스트럭션 사이클 후에 갱신된다. 마이크로프로세서는 컴파일러 프로그램에 의해 발생된 입력 테이블을 포함할 수도 있고, 각각의 기능 그룹에 필요한 인스트럭션 시퀀스 및 관련 자원을 포함할 수도 있으며, 기능 그룹의 사용량은 입력 테이블에 따라서 결정된다. 기능 그룹의 사용량은 다수의 인스트럭션 사이클 후의 기능 그룹의 사용량을 포함할 수도 있다. 마이크로프로세서는 기능 그룹의 전력 절감 온/오프 상태에 대응하는 논리 상태를 포함하는 출력 테이블을 포함할 수도 있다.The selection device may each comprise a switch providing a connection from the supply voltage to the power line of the functional group in the on state or a switch providing a connection from the ground to the power line of the functional group in the on state. The register may contain one memory location for each functional group. The register is preferably updated after a number of instruction cycles. The microprocessor may include an input table generated by the compiler program, or may include instruction sequences and related resources required for each functional group, and usage of the functional group is determined according to the input table. The usage of the functional group may include the usage of the functional group after a number of instruction cycles. The microprocessor may include an output table that includes a logic state corresponding to the power saving on / off state of the functional group.

본 발명에 따르면, 마이크로프로세서 내의 논리 회로에 대한 전력을 제어하기 위해 삽입된 인스트럭션 시퀀스를 발생하는 방법은 마이크로프로세서에 대한 기능 프로그램을 제어하는 인스트럭션 시퀀스를 발생한다. 인스트럭션 시퀀스는 각 인스트럭션 사이클에서 어느 논리 회로가 활성인지를 판정하기 위해 분석되고, 현재의 인스트럭션 사이클 후에 비활성화되는 각각의 논리 회로에 대한 복수의 인스트럭션 사이클이 기능 프로그램의 각 인스트럭션 사이클에 대한 값과 비교된다. 인스트럭션 시퀀스는 비교에 따라서 각각의 논리 회로를 온 또는 오프로 전환시키도록 삽입된다.In accordance with the present invention, a method of generating an inserted instruction sequence for controlling power to a logic circuit in a microprocessor generates an instruction sequence for controlling a functional program for the microprocessor. The instruction sequence is analyzed to determine which logic circuit is active in each instruction cycle, and a plurality of instruction cycles for each logic circuit that are deactivated after the current instruction cycle are compared with the values for each instruction cycle of the function program. . The instruction sequence is inserted to turn each logic circuit on or off depending on the comparison.

다른 방법에서는, 삽입 인스트럭션 시퀀스가 논리 값을 갖는 레지스터를 프로그램하는 것을 포함할 수도 있으며, 여기서 각각의 논리 회로는 논리 값에 기초하여 온 또는 오프로 된다. 비교의 값은 논리 회로 내에서 순수 전력 절감을 제공하도록 결정된 수를 포함할 수도 있다. 기계에 의해 실행가능한 인스트럭션들의 프로그램을 명확하게 구현하는 기계에 의해 판독가능한 프로그램 저장 디바이스는 본 명세서에 상술된 방법을 수행하는 것을 포함할 수도 있다.In another method, the insert instruction sequence may include programming a register with a logical value, where each logic circuit is turned on or off based on the logical value. The value of the comparison may include a number determined to provide pure power savings within the logic circuit. A program storage device readable by a machine that specifically implements a program of instructions executable by the machine may include performing the method described herein.

본 발명의 상기 및 다른 목적들, 특징들 및 이점들은 첨부한 도면을 참조로 한 실시예의 상세한 설명으로부터 명확해질 것이다.The above and other objects, features and advantages of the present invention will become apparent from the following detailed description of the embodiments with reference to the accompanying drawings.

본 발명은 다음의 도면과 관련된 바람직한 실시예의 설명에서 상세하게 설명된다.The invention is explained in detail in the description of the preferred embodiment in connection with the following figures.

본 발명은 마이크로프로세서의 헤더/푸터 디바이스, 바람직하게는, 비록 다른 전계 효과 트랜지스터 디바이스 또는 다른 유형의 구조가 이용될 수도 있지만, 다중 임계치 상보형 금속 산화물 반도체(MTCMOS; multi-threshold complementary metal oxide semiconductor) 구조를 이용하는 디지털 집적 회로에 대한 제어를 제공한다. 제어된 로직이 장래에 몇몇 사이클에 사용되지 않을 것이라는 인식에 기반하여, 선택된 헤더/푸터 디바이스는 스위치 오프된다. 특정 디바이스에 대한 요구에 대한 인식은 메모리 디바이스, 룩아웃 테이블(lookout table) 또는 컴파일러로부터의 인스트럭션 시퀀스로부터 추출될 수도 있다. 그러면 이 특정 디바이스에 대한 요구에 대한 인식은 헤더/푸터 스위치를 온 또는 오프로 전환하는데 이용된다. 이들 스위치는 CMOS FET 또는 임의의 다른 스위칭 디바이스를 포함할 수도 있다.The present invention is a header / footer device of a microprocessor, preferably a multi-threshold complementary metal oxide semiconductor (MTCMOS), although other field effect transistor devices or other types of structures may be used. Provides control over digital integrated circuits utilizing the structure. Based on the recognition that the controlled logic will not be used in some cycles in the future, the selected header / footer device is switched off. Recognition of a request for a particular device may be extracted from a memory device, a lookout table or an instruction sequence from a compiler. Awareness of the need for this particular device is then used to turn the header / footer switch on or off. These switches may include a CMOS FET or any other switching device.

일실시예에서, 디바이스의 사용에 대한 인식은 프로세서용 인스트럭션이 발생되어 그 실행 동안 사용할 인스트럭션의 텍스트와 관련될 때 컴파일러에 의해 추출될 수 있다. 특히 유용한 실시예에서, 마이크로프로세서의 논리 디바이스/회로를 예를 들어 자신의 헤더/푸터 스위치에 의해 별도로 제어될 수 있는 복수의 전력 제어 영역으로 세분하는 방법이 이용된다. 복수의 제어 영역에 대한 전력을 개별적으로 제어하기 위한 인스트럭션이 발생될 수 있다.In one embodiment, the perception of the use of the device may be extracted by the compiler when instructions for the processor are generated and associated with the text of the instructions to use during its execution. In a particularly useful embodiment, a method of subdividing a logic device / circuit of a microprocessor into a plurality of power control regions that can be controlled separately, for example by its header / footer switch is used. Instructions for individually controlling power for a plurality of control regions may be generated.

본 발명의 한 측면은 복수의 독립적인 논리 그룹으로 분할된 마이크로프로세서 디지털 집적 회로를 제공하는데, 이들 논리 그룹은 예를 들어, 헤더/푸터 스위치를 독립적으로 제어하는 MTCMOS 구조와, 스위치의 상태를 프로그램으로 제어하도록 허용하는 마이크로프로세서의 인스트럭션 세트 아키텍처 내의 인스트럭션들을 각각 갖는다. 마이크로프로세서용 프로그램을 형성하는 인스트럭션 시퀀스는 기능에 의한 로직의 분할 및 헤더/푸터가 전력 절감을 위해 개방되는 최소 시간이 지정되는 컴파일러 프로그램에 의해 발생될 수도 있다. 컴파일러는 바람직하게는 이들 기능들 중 임의의 기능과 관련된 자원이 그 기능과 관련된 최소 시간 간격 동안 사용되지 않을 지를 결정하는 프로그램 로직을 포함한다. 그룹이 사용되지 않을 때, 코드 발생 단계가 각 그룹을 오프시키는데 필요한 인스트럭션을 삽입하는 프로그램 로직 내에 제공된다. 가상 Vdd 및 그라운드를 오프로 함으로써 소실될 임의의 상태를 저장하고 회복하기 위해 프로그램 로직이 컴파일러 및 실행 환경에 추가된다. 본 발명을 사용하면, 개별 클록 게이팅보다 더 큰 전력 절감이 이루어지며 글로벌 슬립 모드를 호출하는 것과 관련된 부정적인 시스템 효과 없이 이들 절감을 제공한다.One aspect of the present invention provides a microprocessor digital integrated circuit divided into a plurality of independent logic groups, for example, an MTCMOS structure that independently controls a header / footer switch, and programs the state of the switch. Each of the instructions in the instruction set architecture of the microprocessor allows control. The instruction sequence forming the program for the microprocessor may be generated by a compiler program that specifies the division of logic by the function and the minimum time that the header / footer is opened for power saving. The compiler preferably includes program logic that determines whether resources associated with any of these functions will not be used during the minimum time interval associated with that function. When groups are not used, a code generation step is provided in the program logic that inserts the instructions needed to turn off each group. Program logic is added to the compiler and execution environment to save and recover any state that will be lost by turning off the virtual Vdd and ground. Using the present invention, greater power savings are achieved than discrete clock gating and provide these savings without the negative system effect associated with invoking global sleep mode.

도면에 도시된 요소들은 하드웨어, 소프트웨어 또는 이들의 조합의 다양한 형태로 구현될 수도 있다. 바람직하게는, 이들 요소들은 하드웨어 및 소프트웨어의 조합으로 구현되며, 배선연결되거나 또는 프로세서와 메모리와 입력/출력 인터페이스를 갖는 하나 이상의 적절하게 프로그래밍된 범용 디지털 컴퓨터 상에 저장되어 그 컴퓨터 상에서 실행된다. 이제 도면을 참조하면, 도면에서, 유사한 참조번호는 동일하거나 유사한 요소들을 나타내며, 먼저 도 3에는, 예시적인 회로(100)의 개략도가 본 발명을 예증하도록 도시되어 있지만, 본 발명은 여기에 한정되지 않고 다른 회로, 집적 회로 또는 반도체 회로에도 적용가능하다.The elements shown in the figures may be implemented in various forms of hardware, software, or a combination thereof. Preferably, these elements are implemented in a combination of hardware and software, wired or stored on and executed on one or more suitably programmed general-purpose digital computers having a processor, memory and input / output interfaces. Referring now to the drawings, in the drawings, like reference numerals refer to the same or similar elements, and first, in FIG. 3, a schematic diagram of an example circuit 100 is shown to illustrate the invention, but the invention is not limited thereto. And other circuits, integrated circuits or semiconductor circuits.

본 발명의 일실시예에서, 프로세서(100)는 논리 회로(112, 121, 123)를 포함한다. 논리 회로의 기능 그룹은 특정 인스트럭션 및 헤더와 푸터 FET(108), 바람직하게는 MTCMOS와 관련된 그룹(101 내지 107)으로 더 세분되며, 개별 제어(라인(110))가 각 논리 그룹(101 내지 107)(그룹(102 내지 106)용의 라인(110)은 단순화를 위해 생략된다)에 제공된다. 프로세서(100)는 개별적으로 제어된 헤더/푸터 스위치 없이 논리 회로(112)의 그룹으로 분할된 프로세서 로직을 갖는 본 발명에 따라 구성된다. 그룹(112)의 일부 또는 그룹(112)의 전체 회로가 다른 실시예에서 개별 헤더/푸터 제어를 포함한다 하더라도 논리 회로의 이 그룹(112)(또는 그룹들)은 전체 그룹에 대한 개별 MTCMOS 헤더/푸터 제어를 포함하지 않는다. 특정 인스트럭션 유형의 실행 자원에 대응하는 7 개의 개별적으로 제어된 그룹(101 내지 107)은 개별적으로 제어가능한 헤더/푸터 스위치(108)를 구비한다.In one embodiment of the present invention, processor 100 includes logic circuits 112, 121, 123. The functional group of logic circuits is further subdivided into specific instructions and headers and footer FETs 108, preferably groups 101 to 107 associated with MTCMOS, with individual controls (line 110) being provided for each logical group 101 to 107. (Line 110 for groups 102-106 is omitted for simplicity). Processor 100 is configured in accordance with the present invention having processor logic divided into groups of logic circuits 112 without individually controlled header / footer switches. Although part of the group 112 or the entire circuit of the group 112 includes separate header / footer control in other embodiments, this group 112 (or groups) of logic circuits is a separate MTCMOS header / group for the entire group. Does not include footer control. The seven individually controlled groups 101-107 corresponding to execution resources of a particular instruction type have individually controllable header / footer switches 108.

이러한 제어를 갖지 않는 로직(112)의 일부는 실제로 세분될 수 있으며, 일부 세분은 전력 제어를 구비하지만, 도 3에 도시된 세분들은 본 발명의 원리를 보여주기에 충분하다. 본 발명은 많은 다른 논리 구성에 적용될 수도 있으며, 그러한 논리 회로의 분할들은 회로의 동작가능하며 효과적인 세분을 결정하도록, 예를 들어 일반적인 원리를 이용하여 칩 설계자에 의해 규정된 표준에 따라서 형성될 수 있다.Some of the logic 112 without such control may actually be subdivided, while some subdivisions have power control, but the subdivisions shown in FIG. 3 are sufficient to illustrate the principles of the present invention. The invention may be applied to many other logic configurations, and the divisions of such logic circuits may be formed in accordance with standards defined by chip designers using, for example, general principles to determine operable and effective subdivisions of the circuit. .

일실시예에서, 레지스터(131, 133) 및 로직(112) 내의 기타 레지스터들(도시되지 않음)에 포함된 프로세스(100)이 현재 상태와 관련된 모든 로직은 가상 Vdd/그라운드에 의해 전력 공급이 되지 않고 대신에 "온(on)"으로 남는다. 한편, 이 로직은 전술한 바와 같이 글로벌 신호에 의해 제어된 가상 Vdd/그라운드에 의해 전력이 공급될 수도 있다. 그러나, 현재의 프로세서의 상태가 소실될 수 없기 때문에, 프로세서 상태가 일부 비휘발성 저장 장치에 저장되어 있지 않으면 이 가상 Vdd/그라운드는 실제 Vdd/그라운드로부터 분리될 수 없다. 비휘발성 저장 장치 및 운영 시스템 지원 장치는 상태 저장을 위해 필요하며 도 2를 참조하여 전술한 바와같이 글로벌 전력 절감 모드로 회복된다. 이 전체 전력 제어의 대안은 공지되어 있기 때문에, 도 3에 도시되어 있지 않다.In one embodiment, all logic associated with the current state of process 100 contained in registers 131 and 133 and other registers (not shown) in logic 112 is not powered by virtual Vdd / ground. Instead it remains "on". On the other hand, this logic may be powered by a virtual Vdd / ground controlled by a global signal as described above. However, since the state of the current processor cannot be lost, this virtual Vdd / ground cannot be separated from the actual Vdd / ground unless the processor state is stored in some nonvolatile storage. The nonvolatile storage device and the operating system support device are required for state storage and are returned to the global power saving mode as described above with reference to FIG. 2. An alternative to this overall power control is known and therefore not shown in FIG. 3.

프로세서(100)는 복수의 다른 디바이스를 포함할 수도 있다. 도 3에 도시되어 있는 바와 같이, 정수 유닛(integer unit)(121)은 예를 들어 가산 로직(101), 정수 시프터 로직(102), 정수 로직 유닛(103), 정수 승산기 로직(104) 및 정수 레지스터(131)와 같은 정수 로직을 포함한다. 부동 소수점 유닛(123)은 예를 들어 부동 소수점 가산기 로직(105), 부동 소수점 분할기 로직(106), 부동 소수점 승산기 로직(107) 및 부동 소수점 레지스터(133)와 같은 부동 소수점 로직을 포함한다.The processor 100 may include a plurality of other devices. As shown in FIG. 3, the integer unit 121 is, for example, an addition logic 101, an integer shifter logic 102, an integer logic unit 103, an integer multiplier logic 104 and an integer. It contains integer logic such as register 131. Floating point unit 123 includes floating point logic such as, for example, floating point adder logic 105, floating point divider logic 106, floating point multiplier logic 107, and floating point register 133.

그룹(112)은 입력으로서 어드레스 정보 및 데이터를 수신하는 메모리 큐 및 버스 인터페이스 유닛(130)을 포함하고, 데이터는 케시 어레이(132) 내의 어드레스된 위치에 저장된다. 케시 어레이(132) 내에 존재하는 정보를 식별하기 위해 케시 태그(134)가 케시 어레이(132)에 저장된 데이터에 인가될 수도 있다. 인스트럭션 큐 및 디스패치 로직 유닛(136)은 인스트럭션(예를 들면, 특수 목적 유닛 인스트럭션, 부동 소수점 인스트럭션 및/또는 정수 인스트럭션)을 수신하고, 이들을 처리를 위한 적절한 실행 자원(예를 들면, 특수 목적 레지스터 유닛(150), 부동 소수점 유닛(123), 정수 유닛(121))으로 진행시킨다. 인스트럭션 페치 유닛(138)은 다음 순차 인스트럭션 어드레스 또는 브랜치 타겟 어드레스로부터 실행될 다음 인스트럭션을 페치한다. 브랜치 유닛(140)은 인스트럭션 페치 유닛(138)에 의해 페치된 임의의 브랜치 인스트럭션을 제공받아, 브랜치 다음에 실행될 다음 인스트럭션이 다음 순차 인스트럭션인 지 또는 브랜치 인스트럭션에 의해 지정된 정보로부터 계산된어드레스로부터 페치된 브랜치 타겟에서 취해진 인스트럭션인 지를 판정한다. 로드/저장 유닛(142)은 모든 로드 저장 인스트럭션을 실행하고, 캐시 어레이(132)와 정수 레지스터(131), 부동 소수점 레지스터(133)와 특수 목적 레지스터 유닛(150) 내의 특수 목적 레지스터, 예를 들어 레지스터(152) 사이에 데이터 전송 인터페이스를 제공한다.Group 112 includes a memory queue and bus interface unit 130 that receives address information and data as inputs, and the data is stored at addressed locations in cache array 132. Cache tag 134 may be applied to data stored in cache array 132 to identify information present in cache array 132. The instruction queue and dispatch logic unit 136 receives instructions (e.g., special purpose unit instructions, floating point instructions, and / or integer instructions), and processes the appropriate execution resources (e.g., special purpose register units) for processing. 150, the floating point unit 123, and the integer unit 121. The instruction fetch unit 138 fetches the next instruction to be executed from the next sequential instruction address or branch target address. Branch unit 140 is provided with any branch instructions fetched by instruction fetch unit 138 so that the next instruction to be executed next to the branch is the next sequential instruction or is fetched from the information calculated from the information specified by the branch instruction. Determines whether the instruction was taken from a branch target. The load / store unit 142 executes all load storage instructions and executes special purpose registers in the cache array 132 and the integer register 131, the floating point register 133, and the special purpose register unit 150, for example. Provide a data transfer interface between registers 152.

본 발명에 따르면, 각각의 로직 그룹(101 내지 107)에 대한 제어는 전력 맵 레지스터(152)를 포함하는 특수 목적 유닛(150) 내의 비트에 의해 제공된다. 레지스터(152) 내의 값은 인스트럭션 텍스트로부터 레지스터(152)로 값을 로딩하는 특별한 즉시 인스트럭션(special immediate instruction)에 의해 설정된다. 이들 인스트럭션은 이하에서 설명하는 컴파일러의 코드 발생기에 의해 삽입된다.In accordance with the present invention, control for each logical group 101-107 is provided by a bit in special purpose unit 150 including a power map register 152. The value in register 152 is set by a special immediate instruction that loads the value from the instruction text into register 152. These instructions are inserted by the code generator of the compiler described below.

도 4를 참조하면, 편집(compilation)의 코드 할당 단계(code assignment phase)의 종료 동안, 컴파일러는 도 4에 도시된 정보로 테이블(200)을 구성한다. 테이블(200)의 각 열은 개별적으로 제어된 헤더/푸터 FET(108)(도 3 참조)를 갖는 로직의 그룹(도 3에 101 내지 107로 표시된 그룹)에 대응하고, 각 행(201)은 실행 순서로 1 내지 10으로 표시된 인스트럭션에 대응한다. 체크 부호가 현재 대응하는 인스트럭션에 의해 그 자원(예를 들어 로직 그룹)이 사용될 때를 가리키기 위해 테이블(200)의 셀 내에 위치한다. 체크 부호들 사이의 각 열 내의 거리가 멀수록, 논리 그룹(101 내지 107)은 더 오래 전력 공급이 오프로 될 수도 있다. 바람직한 실시예에서, 컴파일러는 컴파일러의 최적화 지령에 부합하여 각 열 내의 체크 부호들 사이의 거리를 최대화하도록 코드를 바람직하게 재정렬한다. 일단 테이블(200)이 채워지면, 도 5에 도시된 방법이 실행되어 적절한 즉시 데이터 값에 의해 "로드 전력 맵 레지스터(Load Power Map Register)" 인스트럭션이 발생된다. 도 5의 방법은 바람직하게는 실제 전력 절감이 이루어지기 전에 유닛이 차단되는 최소 수의 사이클로 고려된 다수의 사이클을 입력으로서 요구하는 소프트웨어에 이용된다.Referring to FIG. 4, during the end of the code assignment phase of compilation, the compiler constructs a table 200 with the information shown in FIG. 4. Each column of the table 200 corresponds to a group of logic (groups labeled 101-107 in FIG. 3) with individually controlled header / footer FETs 108 (see FIG. 3), and each row 201 is Corresponds to the instructions indicated by 1 to 10 in the order of execution. A check mark is placed in a cell of table 200 to indicate when the resource (eg, logical group) is being used by the current corresponding instruction. The further the distance in each column between the check marks, the longer the logic group 101-107 may be powered off. In a preferred embodiment, the compiler preferably rearranges the code to maximize the distance between the check marks in each column in accordance with the compiler's optimization instructions. Once the table 200 is populated, the method shown in FIG. 5 is executed to generate a " Load Power Map Register " instruction with appropriate immediate data values. The method of FIG. 5 is preferably used in software that requires as input a number of cycles considered to be the minimum number of cycles in which the unit is shut off before actual power savings are made.

도 5를 참조하면, 예를 들어 실제 전력 절감이 이루어지기 전에 유닛이 차단되는 사이클의 최수 수는 5 사이클(인스트럭션)이다. 입력 테이블(300)은 입력 테이블(300)에서 논리 "1" 값으로 표시된 도 4의 각 체크 부호를 갖는 도 4의 테이블(200)과 동일한 수의 행 및 열로 구성된다. 출력 테이블(301)은 입력 테이블(300)과 동일한 수의 행 및 열을 가지며, 그 열에 대응하는 로직(그룹(101 내지 107)) 중 0개 이상)에 대한 스위치(108)(도 3 참조)로의 제어 신호가 NOT SLEEP(즉, 로직에 전력 공급됨)으로 설정될 때 "1"의 값을 갖는다. 블록(304)에서, 상기 방법은 초기화되어 입력 테이블(300)의 제 1 행에서 시작한다.Referring to FIG. 5, for example, the maximum number of cycles in which the unit is shut off before actual power savings are made is 5 cycles (instruction). The input table 300 is composed of the same number of rows and columns as the table 200 of FIG. 4 with each check mark in FIG. 4 indicated by a logical "1" value in the input table 300. The output table 301 has the same number of rows and columns as the input table 300, and switches 108 (see FIG. 3) for the logic corresponding to that column (zero or more of the groups 101-107). Has a value of "1" when the control signal to the furnace is set to NOT SLEEP (ie, powered on logic). At block 304, the method is initialized and begins at the first row of input table 300.

상기 방법은 유닛이 전력 차단될 수 있는 지를 알기 위해 전력 절감에 요구되는 최소 사이클 수(이 예에서는 최소 사이클 수(또는 인스트럭션)가 5임)를 예측하고, 만약 전력이 차단될 수 있는 경우, 출력 테이블(301) 내의 대응 셀을 "1"로 설정한다. 이것은 블록(306)에서 입력 테이블(300)의 제 1 행 내의 각 셀을 검사함으로써 행해진다. 현재의 셀 값은 "C"로 표현되고 "1" 또는 "0"의 값을 가질 수 있다. 출력 테이블 내의 이전의 행의 값은 "P"로 표현된다. 출력 테이블(301) 내의 모든 1의 선행 행이 상기 방법에 의해 고려되는 제 1 행에 이용될 수 있다. 이제 인스트럭션 활동의 결정이 최소 사이클 수(예를 들면, 5)에 대응하는 최소 행의수를 논리 OR 연산함으로써 결정된다. 이 논리 OR 연산의 결과는 N으로 표현된다.The method estimates the minimum number of cycles required for power savings (in this example, the minimum number of cycles (or instructions) is 5) to see if the unit can be powered down, and outputs if power can be cut off. The corresponding cell in the table 301 is set to "1". This is done by examining each cell in the first row of the input table 300 at block 306. The current cell value is represented by "C" and may have a value of "1" or "0". The value of the previous row in the output table is represented by "P". All 1 preceding rows in the output table 301 may be used for the first row considered by the method. The determination of instruction activity is now determined by a logical OR operation on the minimum number of rows corresponding to the minimum number of cycles (eg, 5). The result of this logical OR operation is represented by N.

블록(308)에서, C=1이면, 프로그램 경로는 블록(310)으로 진행한다. 그렇지 않으면, 프로그램 경로는 블록(312)으로 진행한다. 블록(310)에서, C=1인 셀에 대응하는 그룹 또는 로직 디바이스는 온으로 유지된다. 따라서, 출력 테이블(301) 내의 대응 위치는 "1"로 설정된다. 블록(312)에서, 로직 유닛 또는 그룹(예를 들면 그룹(101 내지 107) 중 하나)이 5 사이클 내에서 사용되지 않거나(C=0, N=0), 5 사이클 내에서 사용되지만 이미 전력이 차단되었다면(C=0, P=0), 그 셀에 대응하는 그룹 또는 로직 유닛은 필요할 때까지 오프된다. 이들 조건이 존재하면, 출력 테이블(301) 내의 대응 위치에 "0"이 위치한다.At block 308, if C = 1, the program path proceeds to block 310. Otherwise, the program path proceeds to block 312. At block 310, the group or logic device corresponding to the cell with C = 1 remains on. Therefore, the corresponding position in the output table 301 is set to "1". In block 312, a logic unit or group (e.g., one of groups 101-107) is not used within five cycles (C = 0, N = 0) or is used within five cycles but power is already If blocked (C = 0, P = 0), the group or logic unit corresponding to that cell is turned off until needed. If these conditions exist, "0" is located at the corresponding position in the output table 301.

블록(314)에서, 모든 열이 종료되었는지에 대해 확인한다. 만약 모든 행이 종료되지 않으면, 프로그램 경로는 블록(316) 내의 다음 행으로 진행하고 블록(306)으로 돌아간다. 그렇지 않으면, 프로그램 경로는 블록(318)으로 진행한다.In block 314, a check is made to see if all rows have been completed. If all rows do not end, the program path proceeds to the next row in block 316 and returns to block 306. Otherwise, the program path proceeds to block 318.

블록(318)에서, 전력 제어 인스트럭션 LOAD POWER MAP의 삽입이 행해진다. 삽입된 LOAD POWER MAP(LPM) 인스트럭션의 수는 유닛들(예를 들면, 101 내지 107) 중 일부의 턴오프의 전력 절감과 새로운 인스트럭션으로 인해 낭비된 전력 및 인스트럭션 공간 사이의 차(balance)를 나타낸다. 극단적인 경우, 새로운 전력 제어 값이 매 사이클마다 로딩될 수 있으며, 따라서 인스트럭션의 수를 배가시킨다. 다른 경우에는, 전력 제어 인스트럭션이 매 x 사이클마다 행해질 수도 있다. 따라서, 코드의 유닛당 전력 제어 인스트럭션의 최대 수가 바람직하게 유지되고, x의 실제 값은 삽입된 LPM 인스트럭션을 실행하는 중에 소비되는 총 전력 및 LPM 인스트럭션의 유무에 의한 프로그램의 총 크기를 고려하여 설정될 수 있다. 삽입된 각각의 LPM 인스트럭션은, 그 인스트럭션이 다른 인스트럭션에 사용될 수 있는 하나의 실행 사이클을 차지하기 때문에 프로그램 성능을 저하시킬 수도 있으며, 페칭 및 실행 동안에 전력을 소비할 수도 있다. LPM 인스트럭션을 실행하는데 소비된 총 전력은 유닛(101 내지 107)(도 3 참조)의 가상 Vdd/그라운드를 오프로 함으로써 절감된 전력 이하로 유지되어야 한다.At block 318, insertion of the power control instruction LOAD POWER MAP is made. The number of inserted LOAD POWER MAP (LPM) instructions represents the balance between power savings of the turn-off of some of the units (e.g., 101-107) and wasted power due to new instructions and instruction space. . In extreme cases, a new power control value can be loaded every cycle, thus doubling the number of instructions. In other cases, power control instructions may be made every x cycles. Thus, the maximum number of power control instructions per unit of code is preferably maintained, and the actual value of x may be set in consideration of the total power consumed during the execution of the inserted LPM instruction and the total size of the program by the presence or absence of the LPM instruction. Can be. Each embedded LPM instruction may degrade program performance because the instruction occupies one execution cycle that may be used for other instructions, and may consume power during fetching and execution. The total power consumed to execute the LPM instruction should be kept below the power saved by turning off the virtual Vdd / ground of units 101-107 (see FIG. 3).

도 6을 참조하면, 도 5의 출력 테이블(301)에 따라 부가된 전력 제어 인스트럭션을 갖는 도 4의 테이블(200)을 구현하기 위한 일례가 제공된다. 이 예에서, 이들의 출력 테이블 값은 1에서 0으로 되는 사이클에서 유닛들이 오프된다. 도 6에 도시된 바와 같이, 인스트럭션 시퀀스는 LoadPowerMap(LPM) 인스트럭션을 포함하고, 인스트럭션 내에, 예를 들어 1111000의 즉시 디지털 데이터 필드를 포함하는데, 이것은 이 디지털 워드를 출력 테이블(301)로부터 전력 맵 레지스터(152)로 로딩하여 아무것도 인에이블 또는 디스에이블하지 않거나 일부 또는 모든 로직 유닛/그룹(101 내지 107)을 인에이블 하거나 디스에이블한다. 이 예에서, 디지털 워드(1111000)는 유닛(101 내지 104)을 인에이블하고, 유닛(105 내지 107)을 디스에이블하거나 또는 오프 상태로 유지한다. 그 다음에, 인스트럭션 1이 행해지고, 이어서 다른 LPM 인스트럭션(0111000), 인스트럭션 2 및 3, LPM 인스트럭션(0011000) 및 인스트럭션 4 및 5가 행해진다. 그 다음에, 인스트럭션 5와 6 사이에 삽입된 LPM 인스트럭션이 한 사이클 빨리 부가 유닛을 온으로 하여 다음 사이클에 다른 전력 마스크 인스트럭션을 삽입하는 것을 회피한다. 그 다음에, 인스트럭션 6, 7, 8LPM(1000110), 9 및 10이 행해진다.Referring to FIG. 6, an example for implementing the table 200 of FIG. 4 with power control instructions added in accordance with the output table 301 of FIG. 5 is provided. In this example, their output table values are turned off in cycles from one to zero. As shown in FIG. 6, the instruction sequence includes a LoadPowerMap (LPM) instruction and includes, within the instruction, an immediate digital data field of, for example, 1111000, which translates this digital word from the power table register 301. Loading to 152 enables or disables nothing or enables or disables some or all logic units / groups 101-107. In this example, digital word 1111000 enables units 101-104 and disables or keeps units 105-107 off. Next, instruction 1 is performed, followed by other LPM instructions 0111000, instructions 2 and 3, LPM instruction 0011000, and instructions 4 and 5. The LPM instruction inserted between instructions 5 and 6 then turns on the additional unit as soon as one cycle to avoid inserting another power mask instruction in the next cycle. Instructions 6, 7, 8LPM 1000110, 9, and 10 are then performed.

LPM 인스트럭션으로 전력 맵 레지스터(152)를 능동적으로 제어하는 프로그램의 올바른 동작은 레지스터의 올바른 상태가 프로그램 인터럽트에 걸쳐서 유지되도록 한다. 전력 맵 레지스터(152)의 상태의 처리는 바람직하게는 인터럽트 처리 프로그램과 통합된다. 프로그램 인터럽트가 발생할 때, 항상 외부 이벤트의 결과로서, 관련 전력 맵 레지스터 상태를 갖는 현재 실행중인 프로그램이 중지되고 인터럽트 처리 프로그램이 호출된다. 인터럽트 처리 프로그램은 우선, 프로그램의 요구에 적절한 값을 전력 맵 레지스터(152)에 설정함으로써 프로그램이 필요로 하는 모든 실행 자원이 전력 공급받도록 보장한다. LPM 인스트럭션이 실행될 때까지 프로그램이 지연되고 실행 유닛의 전력의 상태는 레지스터(152)에 로딩된 상태에 대응한다. 이 지연은 인스트럭션(이 경우에는 LPM)을 페칭하는 것과 그것의 실행(즉, 필요할 수도 있는 임의의 오프 유닛의 터닝 온(turning on)) 사이의 일반적인 파이프라인 지연에 기인한다.Correct operation of the program actively controlling the power map register 152 with the LPM instruction ensures that the correct state of the register is maintained across the program interrupt. The processing of the state of the power map register 152 is preferably integrated with the interrupt processing program. When a program interrupt occurs, always as a result of an external event, the currently running program with the associated power map register state is stopped and the interrupt handling program is called. The interrupt handling program first ensures that all execution resources required by the program are powered up by setting a value in the power map register 152 that is appropriate to the program's needs. The program is delayed until the LPM instruction is executed and the state of the power of the execution unit corresponds to the state loaded in the register 152. This delay is due to the general pipeline delay between fetching an instruction (in this case LPM) and its execution (i.e. turning on any off unit that may be needed).

일실시예에서, 인터럽트된 프로그램의 전력 맵 레지스터(152)의 상태는 인터럽트 핸들러 프로그램의 실행 자원 요구에 대응하는 새로운 값을 로딩하기 전에 저장될 수 있다. 이 때문에 인터럽트 핸들러는 인터럽트된 프로그램을 재개하기 바로 전에 전력 맵 레지스터에 그 값을 복원할 수 있다. 그러나, 이것은 올바른 프로그램 동작에 요구되지 않는다.In one embodiment, the state of the power map register 152 of the interrupted program may be stored before loading a new value corresponding to the execution resource request of the interrupt handler program. This allows the interrupt handler to restore its value to the power map register just before resuming the interrupted program. However, this is not required for correct program operation.

한편, 인터럽트된 프로그램은 전력 절감의 약간의 손실로 전력 마스크 레지스터에서 모든 "1"의 값으로 다시 시작될 수 있다. 다시 시작된 프로그램에서 실행된 다음 LPM 인스트럭션은 전력 마스크 레지스터를 올바른 값으로 설정한다.On the other hand, the interrupted program can be restarted with all "1" values in the power mask register with some loss of power savings. The next LPM instruction, executed in the restarted program, sets the power mask register to the correct value.

전술한 본 발명은 단일 이슈(single issue), 즉 정상적인 프로세서(in order processor)에 대하여 장치 및 컴파일러 방법을 제공한다. 본 명세서에서 기술한 컴파일러는 머신 개념의 차원에서 인스트럭션이 실행된다고 가정하고, 컴파일러는 그 기초 위에서 분석을 행한다. 그러나, 본 발명은 멀티 이슈(multi-issue), 고장 머신(out of order machine)에도 또한 적용가능하다. 이것은 LPM 인스트럭션의 마스크를 분석하기 위해 그러한 머신의 이슈 로직에 대해 부가적인 하드웨어를 이용함으로써 구현될 수도 있다. 이 로직은 스코어보드 레지스터 사용량에 필요한 로직과 유사하며, 로직의 추가로 인해 그에 따라서 전력 절감을 감소시킨다.The present invention described above provides a device and compiler method for a single issue, i.e., an in-order processor. The compiler described herein assumes that instructions are executed in terms of machine concepts, and the compiler performs the analysis on that basis. However, the present invention is also applicable to multi-issue, out of order machines. This may be implemented by using additional hardware to the issue logic of such a machine to analyze the mask of the LPM instruction. This logic is similar to the logic required for scoreboard register usage, and the addition of logic reduces power savings accordingly.

누적된 인스트럭션 프로파일을 갖는 컴파일러에 의해 제어된 하드웨어 구조를 이용하는 프로세서의 전력 제어를 위한 바람직한 실시예를 설명하였지만(이들은 예시일 뿐 한정적인 것은 아님), 전술한 설명으로부터 당업자들에 의해 변형 및 변경이 이루어질 수 있을 것이다. 따라서 첨부한 청구범위에 의해 기술된 본 발명의 사상 및 범주 내에서, 본 발명의 특정 실시예에 변경이 이루어질 수도 있을 것이다. 특허법에 의해 요구된 상세한 설명에 의해 본 발명을 설명하였지만, 특허증에 의해 청구되고 보호되기를 희망하는 사항은 첨부한 청구범위에 개시되어 있다.Although preferred embodiments for controlling power of a processor using a hardware structure controlled by a compiler having a cumulative instruction profile have been described (these are illustrative only and not limiting), variations and modifications may be made by those skilled in the art from the foregoing description. Could be done. Accordingly, modifications may be made to certain embodiments of the invention within the spirit and scope of the invention as described by the appended claims. Although the present invention has been described by the detailed description required by the patent law, matters claimed and protected by a patent certificate are disclosed in the appended claims.

Claims (20)

마이크로프로세서에 있어서,In a microprocessor, 적어도 하나의 논리 회로와,At least one logic circuit, 상기 적어도 하나의 논리 회로에 결합되어, 저장된 논리 값에 기초하여 상기 적어도 하나의 논리 회로를 온/오프 상태로 스위칭하는 선택 디바이스와,A selection device coupled to the at least one logic circuit to switch the at least one logic circuit on / off based on a stored logic value; 상기 마이크로프로세서의 인스트럭션 시퀀스에 따라서 상기 적어도 하나의 논리 회로의 예상 사용량에 기초하여 상기 적어도 하나의 논리 회로의 상기 온/오프 상태를 제어하도록 상기 저장된 논리 값을 설정하는 프로그램 인스트럭션A program instruction for setting the stored logic value to control the on / off state of the at least one logic circuit based on an expected usage amount of the at least one logic circuit in accordance with the instruction sequence of the microprocessor 을 포함하는 마이크로프로세서.Microprocessor comprising a. 제 1 항에 있어서,The method of claim 1, 상기 선택 디바이스는 온 상태에서 공급 전압으로부터 상기 적어도 하나의 논리 회로의 전력 라인으로의 접속을 제공하는 스위치를 포함하는 마이크로프로세서.The selection device includes a switch to provide a connection from a supply voltage to a power line of the at least one logic circuit in an on state. 제 1 항에 있어서,The method of claim 1, 상기 선택 디바이스는 온 상태에서 그라운드로부터 상기 적어도 하나의 논리회로의 전력 라인으로의 접속을 제공하는 스위치를 포함하는 마이크로프로세서.The selection device includes a switch to provide a connection from ground to a power line of the at least one logic circuit in an on state. 제 1 항에 있어서,The method of claim 1, 상기 선택 디바이스에 결합되어 상기 저장된 논리 값을 저장하는 레지스터를 더 포함하는 마이크로프로세서.And a register coupled to the selection device to store the stored logical value. 제 4 항에 있어서,The method of claim 4, wherein 상기 레지스터는 다수의 인스트럭션 사이클 후에 갱신되는 마이크로프로세서.The register is updated after a number of instruction cycles. 제 1 항에 있어서,The method of claim 1, 상기 적어도 하나의 논리 회로에 필요한 인스트럭션 시퀀스 및 관련 자원을 포함하는 입력 테이블을 더 포함하되, 상기 예상 사용량은 상기 입력 테이블에 따라서 결정되는 마이크로프로세서.And an input table comprising an instruction sequence and associated resources required for the at least one logic circuit, wherein the estimated usage is determined according to the input table. 제 1 항에 있어서,The method of claim 1, 상기 적어도 하나의 논리 회로의 예상 사용량은 다수의 인스트럭션 사이클 후의 상기 적어도 하나의 논리 회로의 사용량을 포함하는 마이크로프로세서.The expected usage of the at least one logic circuit comprises the usage of the at least one logic circuit after a number of instruction cycles. 제 1 항에 있어서,The method of claim 1, 상기 적어도 하나의 논리 회로의 전력 절감 온/오프 상태에 대응하는 논리 상태를 포함하는 출력 테이블을 더 포함하고,An output table including a logic state corresponding to a power saving on / off state of the at least one logic circuit, 상기 프로그램 인스트럭션은 상기 전력 절감 온/오프 상태에 따라서 상기 적어도 하나의 논리 회로를 제어하도록 상기 저장된 논리 값을 설정하는The program instruction sets the stored logic value to control the at least one logic circuit in accordance with the power saving on / off state. 마이크로프로세서.Microprocessor. 마이크로프로세서에 있어서,In a microprocessor, 기능 그룹으로 분할된 복수의 논리 회로와,A plurality of logic circuits divided into functional groups, 각각의 상기 기능 그룹에 결합되어, 레지스터에 저장된 논리 값에 기초하여 대응하는 상기 기능 그룹을 온/오프 상태로 스위칭하는 선택 디바이스와,A selection device coupled to each of the functional groups, for switching the corresponding functional group to an on / off state based on a logical value stored in a register; 상기 기능 그룹의 온/오프 상태를 제어하도록 상기 레지스터 내의 상기 논리 값을 설정하는 프로그램 인스트럭션과,Program instructions for setting the logical value in the register to control an on / off state of the functional group; 각각의 상기 기능 그룹의 사용량을 예상하는 인스트럭션 시퀀스에 기초하여 상기 레지스터 내에 설정되는 상기 논리 값을 발생하는 컴파일러 프로그램A compiler program that generates the logical value set in the register based on an instruction sequence that anticipates usage of each functional group 을 포함하는 마이크로프로세서.Microprocessor comprising a. 제 9 항에 있어서,The method of claim 9, 상기 선택 디바이스는 온 상태에서 공급 전압으로부터 상기 기능 그룹의 전력 라인으로의 접속을 제공하는 스위치를 각각 포함하는 마이크로프로세서.The selection device each including a switch to provide a connection from a supply voltage to a power line of the functional group in an on state. 제 9 항에 있어서,The method of claim 9, 상기 선택 디바이스는 온 상태에서 그라운드로부터 상기 기능 그룹의 전력 라인으로의 접속을 제공하는 스위치를 각각 포함하는 마이크로프로세서.The selection device each including a switch that provides a connection from ground to the power line of the functional group in an on state. 제 9 항에 있어서,The method of claim 9, 상기 레지스터는 각각의 기능 그룹에 대해 하나의 메모리 위치를 포함하는 마이크로프로세서.Said register containing one memory location for each functional group. 제 9 항에 있어서,The method of claim 9, 상기 레지스터는 다수의 인스트럭션 사이클 후에 갱신되는 마이크로프로세서.The register is updated after a number of instruction cycles. 제 9 항에 있어서,The method of claim 9, 상기 컴파일러 프로그램에 의해 발생되며, 상기 각각의 기능 그룹에 필요한 인스트럭션 시퀀스 및 관련 자원을 포함하는 입력 테이블을 더 포함하되, 상기 기능 그룹의 사용량은 상기 입력 테이블에 따라서 결정되는 마이크로프로세서.And an input table generated by the compiler program and including an instruction sequence and related resources required for each functional group, wherein usage of the functional group is determined according to the input table. 제 9 항에 있어서,The method of claim 9, 상기 기능 그룹의 사용량은 다수의 인스트럭션 사이클 후에 상기 기능 그룹의 사용량을 포함하는 마이크로프로세서.The usage of the functional group comprises the usage of the functional group after a plurality of instruction cycles. 제 9 항에 있어서,The method of claim 9, 상기 기능 그룹의 전력 절감 온/오프 상태에 대응하는 논리 상태를 포함하는 출력 테이블을 더 포함하는 마이크로프로세서.And an output table including a logic state corresponding to a power saving on / off state of the functional group. 마이크로프로세서 내의 논리 회로에 대한 전력을 제어하기 위해 삽입된 인스트럭션 시퀀스를 발생하는 방법에 있어서,A method of generating an inserted instruction sequence for controlling power to a logic circuit in a microprocessor, the method comprising: 상기 마이크로프로세서에 대한 기능 프로그램을 제어하는 인스트럭션 시퀀스를 발생하는 단계와,Generating an instruction sequence for controlling a functional program for the microprocessor; 각각의 인스트럭션 사이클에 대해 논리 회로들 중 어느 논리 회로가 활성인지를 판정하기 위해 상기 인스트럭션 시퀀스를 분석하는 단계와,Analyzing the instruction sequence to determine which of the logic circuits is active for each instruction cycle; 각각의 논리 회로가 현재의 인스트럭션 사이클 후에 비활성으로 되는 다수의 인스트럭션 사이클을 상기 기능 프로그램의 각각의 인스트럭션 사이클에 대한 값과 비교하는 단계와,Comparing a number of instruction cycles, each logic circuit being inactive after a current instruction cycle, with a value for each instruction cycle of the function program; 상기 비교 단계에 기초하여 각각의 상기 논리 회로를 온 또는 오프시키도록 인스트럭션 시퀀스를 삽입하는 단계Inserting an instruction sequence to turn each of said logic circuits on or off based on said comparing step 를 포함하는 인스트럭션 시퀀스 발생 방법.Instruction sequence generation method comprising a. 제 17 항에 있어서,The method of claim 17, 인스트럭션 시퀀스 삽입 단계는 레지스터를 논리 값으로 프로그램하는 단계를 포함하되, 각각의 상기 논리 회로가 상기 논리 값에 기초하여 온 또는 오프로 되는 인스트럭션 시퀀스 발생 방법.The instruction sequence inserting step includes programming a register to a logic value, wherein each of said logic circuits is turned on or off based on said logic value. 제 17 항에 있어서,The method of claim 17, 상기 비교 단계의 값은 상기 논리 회로 내의 순수 전력 절감을 제공하도록 결정된 수를 포함하는 인스트럭션 시퀀스 발생 방법.And wherein the value of the comparing step comprises a number determined to provide pure power savings in the logic circuit. 청구항 17의 방법 단계를 수행하기 위해 기계에 의해 실행가능한 인스트럭션들의 프로그램을 실제로 구현하는 기계에 의해 판독가능한 프로그램 저장 디바이스.A program storage device readable by a machine that actually implements a program of instructions executable by the machine to perform the method steps of claim 17.
KR10-2004-7014991A 2002-04-19 2002-04-19 Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile KR20040101344A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2002/012086 WO2003090055A1 (en) 2002-04-19 2002-04-19 Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile

Publications (1)

Publication Number Publication Date
KR20040101344A true KR20040101344A (en) 2004-12-02

Family

ID=29247986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7014991A KR20040101344A (en) 2002-04-19 2002-04-19 Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile

Country Status (7)

Country Link
JP (1) JP2005523510A (en)
KR (1) KR20040101344A (en)
CN (1) CN1625727A (en)
AU (1) AU2002257172A1 (en)
CA (1) CA2481567A1 (en)
IL (1) IL164725A0 (en)
WO (1) WO2003090055A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4082706B2 (en) * 2005-04-12 2008-04-30 学校法人早稲田大学 Multiprocessor system and multigrain parallelizing compiler
FR2930355B1 (en) * 2008-04-18 2013-01-18 Commissariat Energie Atomique METHOD FOR MANAGING ENERGY CONSUMPTION FOR MULTIPROCESSOR SYSTEMS.
US8601302B2 (en) * 2009-06-22 2013-12-03 Amazon Technologies, Inc. Processor system in low power state retention mode with linear regulator off and switch regulator low in power management IC
US8760217B2 (en) 2011-02-25 2014-06-24 Qualcomm Incorporated Semiconductor device having on-chip voltage regulator
CA2837331A1 (en) * 2011-05-30 2012-12-06 String Therapeutics Inc. Methods and compositions for therapeutic drug monitoring and dosing by point-of-care pharmacokinetic profiling

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
JP2931776B2 (en) * 1995-08-21 1999-08-09 三菱電機株式会社 Semiconductor integrated circuit
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
US6317840B1 (en) * 1999-03-24 2001-11-13 International Business Machines Corporation Control of multiple equivalent functional units for power reduction
EP1117031B1 (en) * 2000-01-14 2007-07-11 Texas Instruments France Microprocessor with reduced power-consumption.

Also Published As

Publication number Publication date
WO2003090055A1 (en) 2003-10-30
JP2005523510A (en) 2005-08-04
IL164725A0 (en) 2005-12-18
CA2481567A1 (en) 2003-10-30
AU2002257172A1 (en) 2003-11-03
CN1625727A (en) 2005-06-08

Similar Documents

Publication Publication Date Title
US10802567B2 (en) Performing local power gating in a processor
US8356194B2 (en) Method and apparatus for estimating overshoot power after estimating power of executing events
US8051315B2 (en) Power throttling apparatus
US7624295B2 (en) Processor system, instruction sequence optimization device, and instruction sequence optimization program
US7500126B2 (en) Arrangement and method for controlling power modes of hardware resources
US7539879B2 (en) Register file gating to reduce microprocessor power dissipation
US7219249B1 (en) System and method for reducing power requirements of microprocessors through dynamic allocation of datapath resources
US20170031866A1 (en) Computer with Hybrid Von-Neumann/Dataflow Execution Architecture
US7447923B2 (en) Systems and methods for mutually exclusive activation of microprocessor resources to control maximum power
US20020112193A1 (en) Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
EP2003534A2 (en) Method of and apparatus for reducing power consumption within an integrated circuit.
US20070174651A1 (en) Processor system, instruction sequence optimization device, and instruction sequence optimization program
JPH10275100A (en) Method and system for monitoring performance in multi-thread processor
JP2004334872A (en) Integrated circuit device comprising unit power adjustment mechanism
US20100122064A1 (en) Method for increasing configuration runtime of time-sliced configurations
CN116420140A (en) Dynamically configurable over-provisioned microprocessor
KR20040101344A (en) Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
Ayala et al. Energy aware register file implementation through instruction predecode
Tabkhi et al. AFReP: application-guided function-level registerfile power-gating for embedded processors
JP3082103B2 (en) Processor
Rajamani et al. High performance and alleviated hot-spot problem in processor frontend with enhanced instruction fetch bandwidth utilization
US20080222399A1 (en) Method for the handling of mode-setting instructions in a multithreaded computing environment
JP2000330762A (en) Semiconductor integrated circuit

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid