Enhanced loop streaming detector to drive logic optimization

US9354875B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9354875-B2
Application numberUS-201213728273-A
CountryUS
Kind codeB2
Filing dateDec 27, 2012
Priority dateDec 27, 2012
Publication dateMay 31, 2016
Grant dateMay 31, 2016

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.

An enhanced loop streaming detection mechanism is provided in a processor to reduce power consumption. The processor includes a decoder to decode instructions in a loop into micro-operations, and a loop streaming detector to detect the presence of the loop in the micro-operations. The processor also includes a loop characteristic tracker unit to identify hardware components downstream from the decoder that are not to be used by the micro-operations in the loop, and to disable the identified hardware components. The processor also includes execution circuitry to execute the micro-operations in the loop with the identified hardware components disabled.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a decoder to decode instructions in a loop into micro-operations; a loop streaming detector coupled to the decoder to detect presence of the loop in the micro-operations; a loop characteristic tracker unit coupled to the loop streaming detector to identify hardware components downstream from the decoder that are not to be used by the micro-operations in the loop, and to disable the identified hardware components, wherein the loop characteristic tracker unit comprises a plurality of tracker bits, one or more of the tracker bits indicate whether a micro-operation of a given characteristic is in the loop; circuitry to implement a state machine, and wherein the state machine to include a reset state where all tracker bits of the loop characteristic tracker unit are cleared, a learn state where tracker bits corresponding to the micro-operations in the loop are set, and a replay state where the micro-operations in the loop are executed with the identified hardware components disabled according to the tracker bits; and execution circuitry coupled to the loop streaming detector to execute the micro-operations in the loop with the identified hardware components disabled. 2. The apparatus of claim 1 , further comprising an instruction decode queue coupled to an output of the decoder to store the micro-operations in the loop, wherein the identified hardware components are downstream from the instruction decode queue. 3. The apparatus of claim 1 , wherein the loop characteristic tracker unit is to disable the identified hardware components by powering down or clock gating the identified hardware components. 4. The apparatus of claim 1 , wherein the loop characteristic tracker unit is to disable one or more hardware components in an allocator and register alias table unit downstream from the decoder. 5. The apparatus of claim 1 , wherein a first subset of the identified hardware components are identified by one or more tracker bits of the loop characteristic tracker unit, the first subset of the identified hardware components include one or more of the following: logic that checks whether a micro-operation writes into one or more special-purpose registers, logic that allocates the special-purpose registers, and logic that handles a full stall condition of the special-purpose registers. 6. The apparatus of claim 5 , wherein the special-purpose registers include one or more of the following: a Floating Point Control Word (FPCW) register, a Multimedia Extensions Control and Status Register (MXCSR), and a segment register. 7. The apparatus of claim 1 , wherein a second subset of the identified hardware components are identified by one or more tracker bits of the loop characteristic tracker unit, the second subset of the identified hardware components include one or more of the following: logic that performs transactional memory operations, logic that alters a state of the transactional memory operations, and logic that performs hardware lock control. 8. The apparatus of claim 1 , wherein a third subset of the identified hardware components are identified by one or more tracker bits of the loop characteristic tracker unit, the third subset of the identified hardware components include one or more of the following: logic that detects floating point stack adjustments, and logic that tracks valid locations of the floating point stacks. 9. A method comprising: detecting, by a processor, presence of a loop from micro-operations that are decoded by a decoder; identifying hardware components downstream from the decoder that are not to be used by the micro-operations in the loop; executing a state machine that includes a reset state where all tracker bits are cleared, a learn state where tracker bits corresponding to the micro-operations in the loop are set, and a replay state where the micro-operations in the loop are executed with the identified hardware components disabled according to the tracker bits; and executing the micro-operations in the loop with the identified hardware components disabled. 10. The method of claim 9 , wherein identifying further comprises: setting one or more tracker bits to indicate that a micro-operation of a given characteristic is in the loop; and disabling one or more of hardware components associated with the one or more tracking bits when the tracker bit is not set. 11. The method of claim 9 , wherein disabling further comprises powering down or clock gating the identified hardware components. 12. The method of claim 9 , wherein a first subset of the identified hardware components are identified by one or more tracker bits of a loop characteristic tracker unit downstream from the decoder, the first subset of the identified hardware components include one or more of the following: logic that checks whether a micro-operation writes into one or more special-purpose registers, logic that allocates the special-purpose registers, and logic that handles a full stall condition of the special-purpose registers. 13. The method of claim 9 , wherein a second subset of the identified hardware components are identified by one or more tracker bits of a loop characteristic tracker unit downstream from the decoder, the second subset of the identified hardware components include one or more of the following: logic that performs transactional memory operations, logic that alters a state of the transactional memory operations, and logic that performs hardware lock control. 14. The method of claim 9 , wherein a third subset of the identified hardware components are identified by one or more tracker bits of a loop characteristic tracker unit downstream from the decoder, the third subset of the identified hardware components include one or more of the following: logic that detects floating point stack adjustments, and logic that tracks valid locations of the floating point stacks. 15. A system comprising: memory; and a processor coupled to the memory, the processor comprising one or more cores, each of the cores comprising: a decoder to decode instructions in a loop into micro-operations; a loop streaming detector coupled to the decoder to detect presence of the loop in the micro-operations; a loop characteristic tracker unit coupled to the loop streaming detector to identify hardware components downstream from the decoder that are not to be used by the micro-operations in the loop, and to disable the identified hardware component, wherein the loop characteristic tracker unit comprises a plurality of tracker bits, one or more of the tracker bits indicate whether a micro-operation of a given characteristic is in the loops; circuitry to implement a state machine, and wherein the state machine to include a reset state where all tracker bits of the loop characteristic tracker unit are cleared, a learn state where tracker bits corresponding to the micro-operations in the loop are set, and a replay state where the micro-operations in the loop are executed with the identified hardware components disabled according to the tracker bits; and execution circuitry coupled to the loop streaming detector to execute the micro-operations in the loop with the identified hardware components disabled.

Assignees

Inventors

Classifications

  • Loop control instructions; iterative instructions, e.g. LOOP, REPEAT · CPC title

  • Power saving in microcontroller unit · CPC title

  • Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • by switching off individual functional units in the computer system · 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 US9354875B2 cover?
An enhanced loop streaming detection mechanism is provided in a processor to reduce power consumption. The processor includes a decoder to decode instructions in a loop into micro-operations, and a loop streaming detector to detect the presence of the loop in the micro-operations. The processor also includes a loop characteristic tracker unit to identify hardware components downstream from the …
Who is the assignee on this patent?
Merten Matthew C, Deinlein Justin M, Ilin Yury N, and 4 more
What technology area does this patent fall under?
Primary CPC classification G06F9/30065. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 31 2016 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).