IP Library Granted Patent US 12,293,190
Granted Patent B2
US 12,293,190 · App. 17/036,028 · Granted May 6, 2025

Managing commit order for an external instruction relative to queued instructions

Inventors: Shubhendu Sekhar Mukherjee (Southborough, MA); David Albert Carlson (Haslet, TX); Michael Bertone (Marlborough, MA)
Assignee: Marvell Asia Pte, Ltd.
G06F9/3836G06F9/30076G06F9/30087G06F9/3854G06F2212/683
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 12,293,190
App. No.
17/036,028
Granted
May 6, 2025
Kind
B2
Abstract

In a pipeline configured for out-of-order issuing, handling translation of virtual addresses to physical addresses includes: storing translations in a translation lookaside buffer (TLB), and updating at least one entry in the TLB based at least in part on an external instruction received from outside a first processor core. Managing external instructions includes: updating issue status information for each of multiple instructions stored in an instruction queue, processing the issue status information in response to receiving a first external instruction to identify at least two instructions in the instruction queue, including a first queued instruction and a second queued instruction. An instruction for performing an operation associated with the first external instruction is inserted into a stage of the pipeline so that the operation associated with the first external instruction is committed before the first queued instruction is committed and after the second queued instruction is committed.

Claims (38)

1. An integrated circuit comprising:

at least a first processor core executing instructions in a pipeline configured for out-of-order issuing of instructions; and

instruction management circuitry configured for managing external instructions received from outside the first processor core, the managing including:

updating issue status information for a plurality of instructions stored in an instruction queue,

maintaining an indication of a program order for the plurality of instructions as they are stored in the instruction queue,

processing at least a portion of the issue status information in response to receiving a first external instruction to identify at least two instructions in the instruction queue, the identified instructions including a first queued instruction and a second queued instruction, wherein the first queued instruction is an unissued instruction that is adjacent to an issued instruction in the program order, with no later instructions in the program order having been issued, and the second queued instruction is an unissued instruction that is adjacent to an issued instruction in the program order, with all earlier instructions in the program order having been issued, and

inserting an instruction for performing an operation associated with the first external instruction into a stage of the pipeline so that the operation associated with the first external instruction is committed before the first queued instruction is committed and after the second queued instruction is committed.

2. The integrated circuit of claim 1 , further comprising:

translation circuitry configured for handling translation of virtual addresses to physical addresses, the handling including:

storing translations between virtual addresses and physical addresses in a translation lookaside buffer, and

updating at least one translation lookaside buffer entry in the translation lookaside buffer based at least in part on an external instruction received from outside the first processor core.

3. The integrated circuit of claim 2 , wherein updating at least one translation lookaside buffer entry in the translation lookaside buffer based at least in part on an external instruction received from outside the first processor core comprises invalidating at least one translation lookaside buffer entry in the translation lookaside buffer before an associated synchronization operation is committed by a commit stage.

4. The integrated circuit of claim 3 , wherein maintaining an indication of the program order for the plurality of instructions as they are stored in the instruction queue comprises associating different instructions in the instruction queue with different respective labels based on the program order.

5. The integrated circuit of claim 3 , wherein the operation associated with the first external instruction comprises the associated synchronization operation.

6. The integrated circuit of claim 3 , wherein the associated synchronization operation comprises a Global Synchronization instruction.

7. The integrated circuit of claim 6 , wherein the Global Synchronization instruction is broadcast as a side-effect of a data synchronization barrier (DSB) instruction.

8. The integrated circuit of claim 7 , wherein the DSB instruction was issued at a second processor core in the integrated circuit that includes the first processor core.

9. The integrated circuit of claim 1 , wherein the plurality of instructions include at least two instructions that are issued out of order relative to each other, according to the program order for the plurality of instructions, in at least one issue stage of the pipeline, and the plurality of instructions are committed in order, according to the program order, in at least one commit stage of the pipeline.

10. The integrated circuit of claim 1 , wherein at least one second processor core in the integrated circuit provides the first external instruction.

11. A method comprising:

executing instructions in a pipeline of a first processor core, the pipeline being configured for out-of-order issuing of instructions; and

managing external instructions received from outside the first processor core, the managing including:

updating issue status information for a plurality of instructions stored in an instruction queue,

maintaining an indication of a program order for the plurality of instructions as they are stored in the instruction queue,

processing at least a portion of the issue status information in response to receiving a first external instruction to identify at least two instructions in the instruction queue, the identified instructions including a first queued instruction and a second queued instruction, wherein the first queued instruction is an unissued instruction that is adjacent to an issued instruction in the program order, with no later instructions in the program order having been issued, and the second queued instruction is an unissued instruction that is adjacent to an issued instruction in the program order, with all earlier instructions in the program order having been issued, and

inserting an instruction for performing an operation associated with the first external instruction into a stage of the pipeline so that the operation associated with the first external instruction is committed before the first queued instruction is committed and after the second queued instruction is committed.

12. The method of claim 11 , further comprising:

handling translation of virtual addresses to physical addresses, the handling including:

storing translations between virtual addresses and physical addresses in a translation lookaside buffer, and

updating at least one translation lookaside buffer entry in the translation lookaside buffer based at least in part on an external instruction received from outside the first processor core.

13. The method of claim 12 , wherein updating at least one translation lookaside buffer entry in the translation lookaside buffer based at least in part on an external instruction received from outside the first processor core comprises invalidating at least one translation lookaside buffer entry in the translation lookaside buffer before an associated synchronization operation is committed by a commit stage.

14. The method of claim 13 , wherein maintaining an indication of the program order for the plurality of instructions as they are stored in the instruction queue comprises associating different instructions in the instruction queue with different respective labels based on the program order.

15. The method of claim 13 , wherein the operation associated with the first external instruction comprises the associated synchronization operation.

16. The method of claim 13 , wherein the associated synchronization operation comprises a Global Synchronization instruction.

17. The method of claim 16 , wherein the Global Synchronization instruction is broadcast as a side-effect of a data synchronization barrier (DSB) instruction.

18. The method of claim 17 , wherein the DSB instruction was issued at a second processor core in an integrated circuit that includes the first processor core.

19. The method of claim 11 , wherein the plurality of instructions include at least two instructions that are issued out of order relative to each other, according to the program order for the plurality of instructions, in at least one issue stage of the pipeline, and the plurality of instructions are committed in order, according to the program order, in at least one commit stage of the pipeline.

20. The method of claim 11 , wherein at least one second processor core in an integrated circuit that includes the first processor core provides the first external instruction.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2021
From: MUKHERJEE, SHUBHENDU SEKHAR; CARLSON, DAVID ALBERT; BERTONE, MICHAEL
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 054947/0278 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2021
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 054947/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2021
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 054947/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2021
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 054947/0326 →
Continuity (2)
Continuation 16171881 · Oct 26, 2018
Related Publication 20210011729A1 · Jan 14, 2021
References Cited (13)
US 6119204A · Chang · 2000 [cited by applicant]
US 6370632B1 · Kikuta · 2002 [cited by applicant]
US 9384133B2 · Gschwind · 2016 [cited by applicant]
US 9501425B2 · Mukherjee et al. · 2016 [cited by applicant]
US 9665505B2 · Mukherjee et al. · 2017 [cited by applicant]
US 9710394B2 · Guthrie et al. · 2017 [cited by applicant]
US 9870328B2 · Mukherjee et al. · 2018 [cited by applicant]
US 10013357B2 · Mukherjee et al. · 2018 [cited by applicant]
US 10817300B2 · Mukherjee · 2020 [cited by examiner]
US 20040215898A1 · Arimilli · 2004 [cited by applicant]
US 20100332786A1 · Grohoski · 2010 [cited by applicant]
Hennessy et al., “Computer Architecture—A Quantitative Approach”, 2nd Edition, 1996, 946 pages. [cited by examiner]
Khan, “Precise Exceptions and Out-of-Order Execution”, University of Virginia, CS 3330, Mar. 16, 2017, pp. 1-39, Retrieved from the Internet < URL: https://www.cs.virginia.edu/˜cr4bd/3330/S2017/notes/20170316-part2-slid… [cited by examiner]