IP Library › Granted Patent US 11,762,660
Granted Patent B2
US 11,762,660 · App. 16/909,352 · Granted Sep 19, 2023

Virtual 3-way decoupled prediction and fetch

Inventors: Brett Alan Ireland (Santa Clara, CA); Michael Stephen Chin (Santa Clara, CA); Stephan Jean Jourdan (Santa Clara, CA)
Assignee: Ampere Computing LLC
G06F9/30181G06F9/3802G06F9/3804G06F9/3846
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,762,660
App. No.
16/909,352
Granted
Sep 19, 2023
Kind
B2
Abstract

A unified queue configured to perform decoupled prediction and fetch operations, and related apparatuses, systems, methods, and computer-readable media, is disclosed. The unified queue has a plurality of entries, where each entry is configured to store information associated with at least one instruction, and where the information comprises an identifier portion, a prediction information portion, and a tag information portion. The unified queue is configured to update the prediction information portion of each entry responsive to a prediction block, and to update the tag information portion of each entry responsive to a tag and TLB block. The prediction information may be updated more than once, and the unified queue is configured to take corrective action where a later prediction conflicts with an earlier prediction.

Claims (47)

1. An apparatus, comprising:

a unified queue having a plurality of entries, each entry configured to store information associated with at least one instruction, the information comprising an identifier portion, a prediction information portion, and a tag information portion corresponding to the at least one instruction associated with the instruction identifier portion; and

the unified queue configured to:

update the prediction information portion of each entry responsive to a prediction block by being configured to:

receive first prediction information associated with a first entry from the prediction block; and

store the first prediction information in the prediction information portion of the first entry; and

update the tag information portion of each entry responsive to a tag and TLB block by being configured to request that the tag and TLB block provide first tag information associated with the first entry in response to storing the first prediction information in the prediction information portion of the first entry.

2. The apparatus of claim 1 , wherein the unified queue is configured to allocate the first entry by storing an identifier associated with the at least one instruction in the identifier portion of the first entry.

3. The apparatus of claim 1 , wherein the first prediction information is received from a first predictor having a first latency.

4. The apparatus of claim 1 , wherein:

the unified queue is configured to allocate a second entry by storing an identifier associated with at least one instruction in the identifier portion of the second entry; and

the unified queue is further configured to receive updated first prediction information associated with the first entry from the prediction block, store the updated first prediction information in the prediction information portion of the first entry, and invalidate the second entry based on the updated first prediction information.

5. The apparatus of claim 4 , wherein the updated first prediction information is received from a second predictor, the second predictor having a second latency longer than the first latency.

6. The apparatus of claim 1 , wherein the unified queue is configured to receive the first tag information from the tag and TLB block and store the first tag information in the tag information portion of the first entry.

7. The apparatus of claim 6 , wherein the unified queue is configured to request that a data access block retrieve at least one instruction associated with the first entry in response to storing the first tag information in the tag information portion of the first entry.

8. The apparatus of claim 1 , where in the unified queue is configured to request that a data access block retrieve at least one instruction associated with the first entry in response to storing the first prediction information in the prediction information portion of the first entry.

9. The apparatus of claim 1 , wherein the unified queue is configured as a circular buffer, and wherein the unified queue further comprises a free pointer, a prediction pointer, a tag pointer, and a data pointer.

10. The apparatus of claim 1 , integrated into an integrated circuit (IC).

11. The apparatus of claim 10 , further integrated into a device selected from the group consisting of: a server, a computer, a portable computer, a desktop computer, a mobile computing device, a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc.), a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, an automobile, a vehicle component, avionics systems, a drone, and a multicopter.

12. An apparatus, comprising:

a means for queueing, the means for queueing having a plurality of entries, each entry configured to store information associated with at least one instruction, the information comprising an identifier portion, a prediction information portion, and a tag information portion corresponding to the at least one instruction associated with the instruction identifier portion;

the means for queueing configured to update the prediction information portion of each entry responsive to a means for prediction by being configured to:

receive first prediction information associated with a first entry from the means for prediction; and

store the first prediction information in the prediction information portion of the first entry; and

the means for queueing further configured to update the tag information portion of each entry responsive to a means for providing tag information by being configured to request that the means for providing tag information provide first tag information associated with the first entry in response to storing the first prediction information in the prediction information portion of the first entry.

13. A method, comprising:

receiving an instruction identifier associated with a first instruction at a unified queue;

storing the instruction identifier in a first entry of the unified queue;

receiving a first prediction associated with the first instruction;

storing the first prediction in the first entry;

requesting that a tag and TLB block provide first tag information associated with the first entry in response to storing the first prediction in the first entry;

receiving the first tag and translation information associated with the first instruction; and

storing the first tag and translation information in the first entry.

14. The method of claim 13 , further comprising receiving an updated first prediction associated with the first instruction.

15. The method of claim 13 , wherein the first prediction is received from a first predictor having a first latency, the updated first prediction is received from a second predictor having a second latency, and wherein the second latency is longer than the first latency.

16. The method of claim 14 , further comprising:

replacing the first prediction with the updated first prediction in the first entry and taking corrective action in the unified queue, in response to the updated first prediction associated with the first instruction conflicting with the first prediction stored in the first entry; and

retaining the first prediction in the first entry, in response to the updated first prediction associated with the first instruction not conflicting with the first prediction stored in the first entry.

17. The method of claim 16 , wherein the corrective action comprises invalidating all entries of the unified queue that are newer than the first entry which received the updated first prediction.

18. A non-transitory computer-readable medium having stored thereon computer executable instructions which, when executed by a processor, cause the processor to:

receive an instruction identifier associated with a first instruction at a unified queue;

store the instruction identifier in a first entry of the unified queue;

receive a first prediction associated with the first instruction;

store the first prediction in the first entry;

request that a tag and TLB block provide first tag information associated with the first entry in response to storing the first prediction in the first entry;

receive the first tag and translation information associated with the first instruction; and

store the first tag and translation information in the first entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2022
From: IRELAND, BRETT ALAN; CHIN, MICHAEL STEPHEN; JOURDAN, STEPHAN JEAN
To: AMPERE COMPUTING LLC
Reel/Frame 059675/0357 →
Continuity (1)
Related Publication 20210397452A1 · Dec 23, 2021