Selectable and hierarchical power management
US-2024385668-A1 · Nov 21, 2024 · US
US9817466B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9817466-B2 |
| Application number | US-201514663831-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 20, 2015 |
| Priority date | Apr 17, 2014 |
| Publication date | Nov 14, 2017 |
| Grant date | Nov 14, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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)
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.