IP Library Granted Patent US 10,191,748
Granted Patent B2
US 10,191,748 · App. 14/953,644 · Granted Jan 29, 2019

Instruction and logic for in-order handling in an out-of-order processor

Inventor: Jacob Mathew (Bangalore, IN)
Assignee: Intel IP Corporation
G06F9/3855G06F9/30G06F9/30043G06F9/30145G06F12/0875G06F2212/452
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 10,191,748
App. No.
14/953,644
Granted
Jan 29, 2019
Kind
B2
Abstract

In one embodiment, a processor includes a decode logic, an issue logic to issue decoded instructions, and at least one execution logic to execute issued instructions of a program. The at least one execution logic is to execute at least some instructions of the program out-of-order, and the decode logic is to decode and provide a first in-order memory instruction of the program to the issue logic. In turn, the issue logic is to order the first in-order memory instruction ahead of a second in-order memory instruction of the program. Other embodiments are described and claimed.

Claims (28)

1. A processor comprising:

a core comprising an out-of-order pipeline including a decode logic, an issue logic to issue decoded instructions, and at least one execution logic to execute issued instructions of a program, wherein the at least one execution logic is to execute at least some instructions of the program out-of-order, the decode logic to decode a first in-order memory instruction of the program and provide the decoded first in-order memory instruction to the issue logic, the issue logic to order the first in-order memory instruction ahead of a second in-order memory instruction of the program, the first in-order memory instruction comprising a user-level instruction of an instruction set architecture to specify in-order execution of the first in-order memory instruction, wherein the issue logic is to issue the first in-order memory instruction to the at least one execution logic with a higher priority than the second in-order memory instruction by association of a priority indicator with the first in-order memory instruction.

2. The processor of claim 1 , wherein the first in-order memory instruction is to enable a memory mapped input/output access for the program, wherein the program comprises an embedded control application.

3. The processor of claim 1 , wherein the first in-order memory instruction and the second in-order memory instruction comprise memory mapped input/output operations.

4. The processor of claim 1 , wherein the issue logic comprises:

a first storage to store only pending in-order memory instructions; and

a second storage to store pending unordered instructions.

5. The processor of claim 4 , wherein the decode logic is to provide the first in-order memory instruction to the first storage of the issue logic, the first storage comprising a first-in-first-out queue.

6. The processor of claim 5 , wherein the issue logic, in response to a determination that another in-order memory instruction of the program is in flight in the processor, is to issue an unordered instruction of the program to the at least one execution logic.

7. The processor of claim 1 , wherein the at least one execution logic comprises at least one load/store execution unit to execute the first in-order memory instruction.

8. The processor of claim 1 , wherein the decode logic is to associate the priority indicator with the first in-order memory instruction.

9. The processor of claim 1 , wherein the issue logic, in response to a first determination that another in-order memory instruction of the program is not in flight in the processor and a second determination that one or more prior in-order memory instructions of the program have been executed, is to issue the first in-order memory instruction to the at least one execution logic.

10. The processor of claim 1 , wherein the issue logic, in response to a determination that another in-order memory instruction of the program is in flight in the processor, is to not issue the first in-order memory instruction to the execution logic and issue at least one unordered instruction of the program to the at least one execution logic.

11. The processor of claim 1 , wherein the issue logic, in response to a determination that the first in-order memory instruction is in a ready queue but not ready to issue, is to issue at least one unordered instruction of the program to the at least one execution logic.

12. The processor of claim 1 , wherein the issue logic is to issue one or more unordered instructions of the program to the at least one execution logic unordered with respect to the first in-order memory instruction.

13. A system comprising:

a processor including a first core having:

a decode logic to decode instructions;

an issue logic to issue decoded instructions, the issue logic including a first queue to store only in-order memory access instructions and a second storage to store unordered instructions, the second storage separate from the first queue; and

a first execution logic to execute issued instructions of a program, wherein the issue logic is to store a decoded first in-order memory access instruction of the program and a decoded second in-order memory access instruction of the program in the first queue and store one or more unordered instructions of the program in the second storage, and provide the decoded first in-order memory access instruction to the first execution logic ahead of the decoded second in-order memory access instruction of the program and unordered with respect to one or more of the one or more unordered instructions, the issue logic further to issue the decoded first in-order memory access instruction to the first execution logic with a higher priority than the decoded second in-order memory access instruction by association of a priority indicator with the decoded first in-order memory access instruction; and

a dynamic random access memory coupled to the processor.

14. The system of claim 13 , wherein the decode logic is to provide the first in-order memory access instruction to the first queue of the issue logic, the first queue comprising a first-in-first-out queue.

15. A processor comprising:

a core comprising an out-of-order pipeline including a decode logic, an issue logic to issue decoded instructions, and at least one execution logic to execute issued instructions of a program, wherein the at least one execution logic is to execute at least some instructions of the program out-of-order, the decode logic to decode a first in-order memory instruction of the program and provide the decoded first in-order memory instruction to the issue logic, the issue logic to order the first in-order memory instruction ahead of a second in-order memory instruction of the program, the first in-order memory instruction comprising a user-level instruction of an instruction set architecture to specify in-order execution of the first in-order memory instruction, wherein the issue logic is to issue the first in-order memory instruction to the at least one execution logic with a higher priority than an unordered instruction of the program by association of a priority indicator with the first in-order memory instruction.

16. The processor of claim 15 , wherein the issue logic comprises:

a first storage to store only pending in-order memory instructions; and

a second storage to store pending unordered instructions.

17. The processor of claim 16 , wherein the decode logic is to provide the first in-order memory instruction to the first storage of the issue logic, the first storage comprising a first-in-first-out queue.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 057060/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 057254/0415 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 037164 FRAME: 0877. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 17, 2015
From: MATHEW, JACOB
To: INTEL IP CORPORATION
Reel/Frame 037316/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2015
From: MATHEW, JACOB
To: INTEL CORPORATION
Reel/Frame 037164/0877 →
Continuity (1)
Related Publication 20170153896A1 · Jun 1, 2017