Power saving by reusing results of identical micro-operations

US9817466B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9817466-B2
Application numberUS-201514663831-A
CountryUS
Kind codeB2
Filing dateMar 20, 2015
Priority dateApr 17, 2014
Publication dateNov 14, 2017
Grant dateNov 14, 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 data processing apparatus has control circuitry for detecting whether a current micro-operation to be processed by a processing pipeline would give the same result as an earlier micro-operation. If so, then the current micro-operation is passed through the processing pipeline, with at least one pipeline stage passed by the current micro-operation being placed in a power saving state during a processing cycle in which the current micro-operation is at that pipeline stage. The result of the earlier micro-operation is then output as a result of said current micro-operation. This allows power consumption to be reduced by not repeating the same computation.

First claim

Opening claim text (preview).

The invention claimed is: 1. A data processing apparatus comprising: a processing pipeline configured to perform a data processing operation in response to micro-operations, the processing pipeline having a plurality of pipeline stages; and control circuitry configured to detect whether a current micro-operation to be processed by the processing pipeline would give the same result as an earlier micro-operation; wherein if the control circuitry detects that said current micro-operation would give the same result as said earlier micro-operation, then the control circuitry is configured to control the processing pipeline to: (i) pass said current micro-operation through the processing pipeline, with at least one pipeline stage passed by the current micro-operation being placed in a power saving state during a processing cycle in which the current micro-operation is at that pipeline stage; and (ii) output a result of said earlier micro-operation as a result of said current micro-operation; the data processing apparatus further comprising a table comprising at least one table entry, each table entry identifying an earlier micro-operation and the result of the earlier micro-operation; wherein the control circuitry is configured to detect whether said current micro-operation would give the same result as said earlier micro-operation by performing a table lookup to detect whether the table comprises a corresponding table entry identifying an earlier micro-operation giving the same result as the current micro-operation; each table entry comprises a tag portion comprising data identifying the earlier micro-operation, and a data portion comprising the result of the earlier micro-operation; the tag portions of each table entry are stored in a first data store at a first pipeline stage of the processing pipeline; and the data portions of each table entry are stored in a second data store at a later pipeline stage than the first pipeline stage. 2. The data processing apparatus according to claim 1 , wherein if the control circuitry detects that said current micro-operation would not give the same result as said earlier micro-operation, then the control circuitry is configured to control the processing pipeline to process the current micro-operation to generate the result of the current micro-operation. 3. The data processing apparatus according to claim 1 , wherein the control circuitry detects that said current micro-operation would give the same result as said earlier micro-operation if the current micro-operation is for the same data processing operation and specifies the same one or more operands as the earlier micro-operation. 4. The data processing apparatus according to claim 3 , wherein the control circuitry detects that said current micro-operation is for the same data processing operation as the earlier micro-operation if an operation identifier specified by the current micro-operation is the same as an operation identifier specified by the earlier micro-operation. 5. The data processing apparatus according to claim 1 , wherein the control circuitry detects that said current micro-operation would give the same result as said earlier micro-operation if one of the current micro-operation and the earlier micro-operation can be translated into the other of the current micro-operation and the earlier micro-operation. 6. The data processing apparatus according to claim 1 , wherein the control circuitry is configured to place said at least one pipeline stage in the power saving state by clock gating a clock signal for at least one component of said at least one pipeline stage. 7. The data processing apparatus according to claim 1 , wherein the processing pipeline is configured to propagate an enable signal indicating, for each pipeline stage, whether the micro-operation at that pipeline stage is a valid micro-operation, with pipeline stages for which the enable signal indicates that the micro-operation at that pipeline stage is an invalid micro-operation being placed in the power saving state; and if the control circuitry detects that said current micro-operation would give the same result as said earlier micro-operation, then the control circuitry is configured to set the enable signal for the current micro-operation to indicate that the current micro-operation is an invalid micro-operation. 8. The data processing apparatus according to claim 1 , wherein if the table lookup detects that the table comprises said corresponding table entry, then the control circuitry is configured to pass an entry identifier to the second data store indicating which table entry is the corresponding table entry, and to control the processing pipeline to output the result of the earlier micro-operation indicated in the corresponding table entry of the second data store. 9. The data processing apparatus according to claim 1 , wherein if the table lookup detects that the table does not comprise said corresponding table entry, then the control circuitry is configured to allocate a new table entry for the current micro-operation, control the first data store to store data identifying the current micro-operation in the tag portion of the new table entry, pass an entry identifier to the second data store indicating which table entry is the new table entry, and control the second data store to store the result of the current micro-operation in the data portion of the new table entry indicated by the entry identifier. 10. The data processing apparatus according to claim 1 , wherein if the current micro-operation is at least one predetermined type of micro-operation, then the control circuitry is configured to: (i) translate the current micro-operation and the at least one operand of the current micro-operation into a translated micro-operation specifying at least one translated operand, the translated micro-operation corresponding to a data processing operation which when performed on the at least one translated operand gives the same result as the current micro-operation; and (ii) perform the table lookup to detect whether the table comprises a corresponding table entry for the translated micro-operation. 11. The data processing apparatus according to claim 10 , wherein if the table lookup detects that the table does not comprise said corresponding table entry for the translated micro-operation, then the control circuitry is configured to allocate a new table entry for the translated micro-operation. 12. The data processing apparatus according to claim 1 , wherein the control circuitry is configured to lock table entries corresponding to an in-flight micro-operation within the processing pipeline; and if the table lookup detects that the table does not comprise said corresponding table entry, then the control circuitry is configured to allocate a new table entry which is not currently locked for storing the result of the current micro-operation. 13. The data processing apparatus according to claim 12 , wherein if the table lookup detects that the table does not comprise said corresponding table entry and all the table entries are currently locked, then the control circuitry is configured to control the processing pipeline to process the current micro-operation to generate the result of the current micro-operation, without allocating a table entry for storing the result of the current micro-operation. 14. The data processing apparatus according to claim 12 , if the table lookup detects that the table does not comprise said corresponding table entry, then the control circuitry is configured to allocate (i) a new table entry which is not currently locked, or (ii)

Assignees

Inventors

Classifications

  • Instruction operation extension or modification · CPC title

  • Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage · CPC title

  • G06F1/3243Primary

    Power saving in microcontroller unit · CPC title

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

  • Decoding the operand specifier, e.g. specifier format · 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 US9817466B2 cover?
A data processing apparatus has control circuitry for detecting whether a current micro-operation to be processed by a processing pipeline would give the same result as an earlier micro-operation. If so, then the current micro-operation is passed through the processing pipeline, with at least one pipeline stage passed by the current micro-operation being placed in a power saving state during a …
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06F1/3243. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 14 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).