Processor power management based on class and content of instructions

US9710277B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9710277-B2
Application numberUS-89057410-A
CountryUS
Kind codeB2
Filing dateSep 24, 2010
Priority dateSep 24, 2010
Publication dateJul 18, 2017
Grant dateJul 18, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A processor and method are disclosed. In one embodiment the processor includes a prefetch buffer that stores macro instructions. The processor also includes a clock circuit that can provide a clock signal for at least some of the functional units within the processor. The processor additionally includes macro instruction decode logic that can determine a class of each macro instruction. The processor also includes a clock management unit that can cause the clock signal to remain in a steady state entering at least one of the units in the processor that do not operate on a current macro instruction being decoded. Finally, the processor also includes at least one instruction decoder unit that can decode the first macro instruction into one or more opcodes.

First claim

Opening claim text (preview).

The invention claimed is: 1. A processor, comprising: a prefetch buffer to store a plurality of macro instructions; a clock circuit to provide an oscillating clock signal to be used by one of a plurality of circuits in the processor; macro instruction decode circuitry to determine a class of each macro instruction retrieved from the prefetch buffer and determine whether a macro instruction utilizes a displacement byte field and zero out the displacement byte field in the macro instruction in response to the macro instruction not utilizing the displacement byte field; a first decoder circuit of an instruction decoder circuit of the plurality of circuits to decode a first macro instruction into one or more opcodes; a floating point micro-operation tracker to track a floating point micro-operation, wherein the floating point micro-operation corresponds to a floating point macro instruction of the plurality of macro instructions, from a time when the corresponding floating point macro instruction is retrieved from the prefetch buffer to retirement of the floating point micro-operation and set a floating point pipeline clear flag indicating that, when set, no floating point micro-operations are currently being tracked, wherein an indication of retirement is to be provided by retirement circuitry to the floating point micro-operation tracker; and a clock management circuit to cause an oscillating clock signal entering a floating point circuit of the plurality of circuits to remain in a steady state for at least one clock cycle in response to the floating point pipeline clear flag being set. 2. The processor of claim 1 , wherein the first decoder circuit is to include: a first programmable logic array (PLA) circuit of the plurality of circuits to decode macro instructions, retrieved from the prefetch buffer, that produce a one-byte opcode, a second PLA circuit of the plurality of circuits to decode macro instructions, retrieved from the prefetch buffer, that produce a two-byte opcode, and a third PLA circuit of the plurality of circuits to decode macro instructions, retrieved from the prefetch buffer, that produce a three-byte opcode; and wherein the macro instruction decode circuitry is further to determine a byte-length of an opcode produced from the first macro instruction and the clock management circuit is further to cause an oscillating clock signal entering any of the first, second, and third PLA circuits which do not decode macro instructions of the determined byte-length to remain in a steady state for at least one clock cycle. 3. The processor of claim 1 , wherein the clock management circuit is further to cause a second oscillating clock signal entering a branch address calculation circuit of the plurality of circuits to remain in a steady state for at least one clock cycle in response to a class of the first macro instruction being determined to not be a branch instruction. 4. The processor of claim 1 , wherein the macro instruction decode circuitry is further to: determine whether the first macro instruction includes an immediate operand; and zero out an immediate operand field in the first macro instruction in response to the first macro instruction not having the immediate operand. 5. The processor of claim 1 , further comprising: a second decoder circuit; wherein the macro instruction decode circuitry is further to determine whether a second macro instruction of the plurality of macro instructions is not valid, the first macro instruction is to enter the first decoder circuit at a first clock cycle and the second macro instruction is to enter the second decoder circuit at the first clock cycle; and the clock management circuit is further to cause a second oscillating clock signal entering the second decoder circuit to remain in a steady state for at least one clock cycle in response to the second macro instruction being determined to be not valid. 6. A method, comprising: storing a plurality of macro instructions in a prefetch buffer; determining a class of each macro instruction retrieved from the prefetch buffer; in response to the determination of the class of a first macro instruction of the plurality of macro instructions, causing a first oscillating clock signal supplied by a clock circuit to one of a plurality of circuits in a processor that is not utilized to operate on the first macro instruction, as determined by the class of the first macro instruction, to be gated; determining, by macro instruction decode circuitry, whether the first macro instruction utilizes a displacement byte field; zeroing out, by the macro instruction decode circuitry, the displacement byte field in the first macro instruction in response to the first macro instruction not utilizing the displacement byte field; decoding the first macro instruction into one or more opcodes; conducting a full-length decode of the first macro instruction by a full-length decoder in parallel with the decoding the first macro instruction into one or more opcodes; tracking a floating point micro-operation by a floating point micro-operation tracker, wherein the floating point micro-operation corresponds to a floating point macro instruction of the plurality of macro instructions, from a time when the corresponding floating point macro instruction is retrieved from the prefetch buffer to a time of retirement of the floating point micro-operation; setting a floating point pipeline clear flag indicating that, when set, no floating point micro-operations are currently being tracked; providing an indication of retirement by retirement circuitry to the floating point micro-operation tracker; and causing a second oscillating clock signal entering a floating point unit of the plurality of circuits to remain in a steady state for at least one clock cycle in response to the floating point pipeline clear flag being set. 7. The method of claim 6 , further comprising: determining a byte-length produced from the first macro instruction; and causing a third oscillating clock signal entering any of a first, second, and third PLA which do not decode macro instructions of the determined byte-length produced from the first macro instruction to remain in a steady state for at least one clock cycle. 8. The method of claim 6 , further comprising: causing a third oscillating clock signal entering a branch address calculation circuit of the plurality of circuits to remain in a steady state for at least one clock cycle in response to a class of the first macro instruction being determined to not be a branch instruction. 9. The method of claim 6 , further comprising: determining whether the first macro instruction includes an immediate operand; and zeroing out an immediate operand field in the first macro instruction in response to the first macro instruction not having the immediate operand. 10. The method of claim 6 , further comprising: determining whether a second macro instruction of the plurality of macro instructions is not valid, the first macro instruction to enter a first decoder circuit of an instruction decoder circuit at a first clock cycle and the second macro instruction to enter a second decoder circuit of the instruction decoder circuit at the first clock cycle; and causing a third oscillating clock signal entering the second decoder circuit to remain in a steady state for at least one clock cycle in response to the second macro instruction being determined to be not valid. 11. A processor, comprising: a prefetch buffer to store a plurality of macro instructions; macro instruction decode circuitry to determine a class of each macro instruction retrieved from the prefetch buffer and determine wh

Assignees

Inventors

Classifications

  • Cross-Sectional Technologies · mapped topic

  • Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking · CPC title

  • controlled by multiple instructions, e.g. MIMD, decoupled access or execute · CPC title

  • by switching off individual functional units in the computer system · CPC title

  • Runtime instruction translation, e.g. macros · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9710277B2 cover?
A processor and method are disclosed. In one embodiment the processor includes a prefetch buffer that stores macro instructions. The processor also includes a clock circuit that can provide a clock signal for at least some of the functional units within the processor. The processor additionally includes macro instruction decode logic that can determine a class of each macro instruction. The pro…
Who is the assignee on this patent?
Madduri Venkateswara R, Tong Jonathan Y, Cheong Hoichi, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F1/3237. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 18 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).