IP Library › Granted Patent US 11,586,441
Granted Patent B2
US 11,586,441 · App. 17/125,730 · Granted Feb 21, 2023

Method and apparatus for virtualizing the micro-op cache

Inventors: John Kalamatianos (Boxborough, MA); Jagadish B. Kotra (Austin, TX)
Assignee: Advanced Micro Devices, Inc.
G06F9/3824G06F9/30145G06F12/0875G06F12/0897
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,586,441
App. No.
17/125,730
Granted
Feb 21, 2023
Kind
B2
Abstract

Systems, apparatuses, and methods for virtualizing a micro-operation cache are disclosed. A processor includes at least a micro-operation cache, a conventional cache subsystem, a decode unit, and control logic. The decode unit decodes instructions into micro-operations which are then stored in the micro-operation cache. The micro-operation cache has limited capacity for storing micro-operations. When new micro-operations are decoded from pending instructions, existing micro-operations are evicted from the micro-operation cache to make room for the new micro-operations. Rather than being discarded, micro-operations evicted from the micro-operation cache are stored in the conventional cache subsystem. This prevents the original instruction from having to be decoded again on subsequent executions. When the control logic determines that micro-operations for one or more fetched instructions are stored in either the micro-operation cache or the conventional cache subsystem, the control logic causes the decode unit to transition to a reduced-power state.

Claims (56)

1. A processor comprising:

control logic configured to:

responsive to evicting micro-operations from a micro-operation cache:

store the micro-operations in an instruction cache; and

store an indication in a pre-decode cache, separate from the instruction cache and the micro-operation cache, that the micro-operations are stored in the instruction cache;

initiate a fetch of a first instruction;

responsive to an indication stored in the pre-decode cache that one or more first micro-operations corresponding to the first instruction are stored in the instruction cache:

retrieve, from the instruction cache, the one or more first micro-operations corresponding to the first instruction; and

cause a decode unit to enter a reduced power state.

2. The processor as recited in claim 1 , wherein responsive to a determination that micro-operations corresponding to the first instruction are not stored in the instruction cache, the decode unit does not enter the reduced power state.

3. The processor as recited in claim 1 , wherein responsive to a determination that micro-operations corresponding to the first instruction are not stored in the instruction cache, the decode unit is configured to decode the first instruction responsive to receipt of the first instruction from the instruction cache.

4. The processor as recited in claim 1 , wherein the instruction cache is configured to store a given instruction requiring decode by the decode unit and micro-operations corresponding to the given instruction.

5. The processor as recited in claim 1 , wherein the control logic is configured to determine the micro-operations corresponding to the first instruction are stored in the instruction cache, responsive to an access to the pre-decode cache.

6. The processor as recited in claim 1 , wherein the pre-decode cache is configured to store an identification of an undecoded instruction that corresponds to micro-operations stored in the pre-decode cache.

7. The processor as recited in claim 1 , wherein responsive to a determination that the one or more first micro-operations corresponding to the first instruction are not stored in the instruction cache and the first instruction is stored in the instruction cache, the control logic is configured to:

retrieve the first instruction from the instruction cache; and

cause the decode unit to enter or remain in a powered on state.

8. A method comprising:

responsive to evicting micro-operations from a micro-operation cache:

storing the micro-operations in an instruction cache; and

storing an indication in a pre-decode cache, separate from the instruction cache and the micro-operation cache, that the micro-operations are stored in the instruction cache;

initiating a fetch of a first instruction;

responsive to an indication stored in the pre-decode cache that one or more first micro-operations corresponding to the first instruction are stored in the instruction cache:

retrieving, from the instruction cache, the one or more first micro-operations corresponding to the first instruction; and

causing, by control logic, a decode unit to enter a reduced power state.

9. The method as recited in claim 8 , wherein responsive to determining that micro-operations corresponding to the first instruction are not stored in the instruction cache, the decode unit does not enter the reduced power state.

10. The method as recited in claim 8 , wherein responsive to determining that micro-operations corresponding to the first instruction are not stored in the instruction cache, the method comprises the decoding, by the decode unit, the first instruction responsive to receiving the first instruction from the instruction cache.

11. The method as recited in claim 8 , further comprising storing both micro-operations not requiring decode by the decode unit and instructions requiring decode by the decode unit in the instruction cache.

12. The method as recited in claim 8 , further comprising determining the micro-operations corresponding to the first instruction are stored in the instruction cache, responsive to accessing a pre-decode cache.

13. The method as recited in claim 12 , further comprising accessing metadata in the pre-decode cache that indicates the micro-operations corresponding to the first instruction are stored in the instruction cache.

14. The method as recited in claim 8 , further comprising

responsive to determining that the one or more first micro-operations corresponding to the first instruction are not stored in the instruction cache and the first instruction is stored in the instruction cache:

retrieving the first instruction from the instruction cache; and

causing the decode unit to enter or remain in a powered on state.

15. A system comprising:

a micro-operation cache configured to store micro-operations corresponding to decoded instructions;

an instruction cache;

a pre-decode cache;

a decode unit configured to decode instructions; and

control logic configured to:

responsive to evicting micro-operations from a micro-operation cache:

store the micro-operations in an instruction cache; and

store an indication in the pre-decode cache that the micro-operations are stored in the instruction cache;

initiate a fetch of a first instruction from an instruction cache;

responsive to an indication stored in the pre-decode cache that one or more first micro-operations corresponding to the first instruction are stored in the instruction cache:

retrieve, from the instruction cache, the one or more first micro-operations corresponding to the first instruction; and

cause a decode unit to enter a reduced power state.

16. The system as recited in claim 15 , wherein the pre-decode cache comprises a plurality of entries, each entry configured to store one or more micro-operations decoded from a given instruction and an identification of the given instruction.

17. The system as recited in claim 15 , wherein responsive to a determination that micro-operations corresponding to the first instruction are not stored in the instruction cache, the decode unit is configured to:

receive the first instruction from the instruction cache; and

decode the first instruction.

18. The system as recited in claim 15 , wherein the instruction cache is configured to store both micro-operations not requiring decode by the decode unit and instructions requiring decode by the decode unit.

19. The system as recited in claim 15 , wherein the control logic is configured to determine the micro-operations corresponding to the first instruction are stored in the instruction cache, responsive to an access of the pre-decode cache.

20. The system as recited in claim 15 , wherein responsive to a determination that the one or more first micro-operations corresponding to the first instruction are not stored in the instruction cache and the first instruction is stored in the instruction cache:

retrieve, from the instruction cache, the first instruction; and

cause the decode unit to enter or remain in a powered on state.

Continuity (2)
Continuation 16034844 · Jul 13, 2018
Related Publication 20210149672A1 · May 20, 2021
Cited By (2)
US 12,360,765 US 12,423,103