IP Library › Granted Patent US 10,514,927
Granted Patent B2
US 10,514,927 · App. 15/121,348 · Granted Dec 24, 2019

Instruction and logic for sorting and retiring stores

Inventors: Anton Lechanka (Moscow, RU); Andrey Efimov (Saint-Petersburg, RU); Sergey Y. Shishlov (Moscow, RU); Andrey Kluchnikov (Moscow, RU); Kamil Garifullin (Moscow, RU); Igor Burovenko (Chisinau, MD); Boris A. Babayan (Moscow, RU)
Assignee: Intel Corporation
G06F9/3855G06F9/30043G06F9/30145G06F9/3824G06F9/3851G06F9/3857
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,514,927
App. No.
15/121,348
Granted
Dec 24, 2019
Kind
B2
Abstract

A processor includes logic to execute an instruction stream out-of-order. The instruction stream is divided into a plurality of strands and its instructions and those within the streams are ordered by program order (PO). The processor further includes logic to identify an oldest undispatched instruction in the instruction stream and record its associated PO as an executed instruction pointer, identify a most recently committed store instruction in the instruction stream and record its associated PO as a store commitment pointer, a search pointer with PO less than the execution instruction pointer, identify a first set of store instructions in a store buffer with PO less than the search pointer and eligible for commitment, evaluate whether the first set of store instructions is larger than a number of read ports of the store buffer, and adjust the search pointer.

Claims (53)

1. A processor, comprising:

one or more execution units comprising circuitry to execute an instruction stream out-of-order, the instruction stream divided into a plurality of strands, the instruction stream and contents within each strand ordered by program order (PO); and

a memory system communicatively coupled to the one or more execution units, wherein the memory system comprises logic to:

identify an oldest undispatched instruction in the instruction stream and record its associated PO as an executed instruction pointer;

identify a most recently committed store instruction in the instruction stream and record its associated PO as a store commitment pointer;

determine a search pointer with PO less than the execution instruction pointer;

identify a first set of store instructions in a store buffer, each store instruction with PO less than the search pointer and eligible for commitment;

evaluate whether the first set of store instructions is larger than a number of read ports of the store buffer; and

adjust the search pointer based upon an evaluation that the first set of store instructions is larger than the number of read ports of the store buffer.

2. The processor of claim 1 , further comprising circuitry to:

identify a second set of store instructions, each store instruction with a PO less than the search pointer after the adjustment of the search pointer;

evaluate whether the second set of store instructions is larger than the number of read ports of the store buffer; and

commit the second set of store instructions based upon an evaluation that the second set of store instructions is smaller than or equal in size to the number of read ports of the store buffer.

3. The processor of claim 2 , further comprising circuitry to sort the second set of store instructions according to PO before the second set of store instructions is committed.

4. The processor of claim 2 , further comprising circuitry to write a store buffer identifier of each of the second set of store instructions to a store retirement queue to commit the second set of store instructions.

5. The processor of claim 1 , further comprising circuitry to adjust the search pointer based upon the size of the first set of store instructions.

6. The processor of claim 1 , further comprising circuitry to adjust the search pointer based upon the size of the first set of store instructions and the number of read ports of the store buffer.

7. The processor of claim 1 , further comprising circuitry to adjust the search pointer based upon a previous adjustment to the search pointer.

8. A method comprising, within a processor:

executing an instruction stream out-of-order, the instruction stream divided into a plurality of strands, the instruction stream and contents within each strand ordered by program order (PO);

identifying an oldest undispatched instruction in the instruction stream and recording its associated PO as an executed instruction pointer;

identifying a most recently committed store instruction in the instruction stream and recording its associated PO as a store commitment pointer;

determining a search pointer with PO less than the execution instruction pointer;

identifying a first set of store instructions in a store buffer, each store instruction with PO less than the search pointer and eligible for commitment;

evaluating whether the first set of store instructions is larger than a number of read ports of the store buffer; and

adjusting the search pointer based upon an evaluation that the first set of store instructions is larger than the number of read ports of the store buffer.

9. The method of claim 8 , further comprising:

identifying a second set of store instructions, each store instruction with a PO less than the search pointer after adjusting the search pointer;

evaluating whether the second set of store instructions is larger than the number of read ports of the store buffer; and

committing the second set of store instructions based upon an evaluation that the second set of store instructions is smaller than or equal in size to the number of read ports of the store buffer.

10. The method of claim 9 , further comprising sorting the second set of store instructions according to PO before the second set of store instructions is committed.

11. The method of claim 8 , further comprising writing a store buffer identifier of each of the second set of store instructions to a store retirement queue to commit the second set of store instructions.

12. The method of claim 8 , further comprising adjusting the search pointer based upon the size of the first set of store instructions.

13. The method of claim 8 , further comprising adjusting the search pointer based upon the size of the first set of store instructions and the number of read ports of the store buffer.

14. A system comprising:

a processor comprising:

one or more execution units comprising circuitry to execute an instruction stream out-of-order, the instruction stream divided into a plurality of strands, the instruction stream and contents within each strand ordered by program order (PO); and

a memory system communicatively coupled to the one or more execution units, wherein the memory system comprises logic to:

identify an oldest undispatched instruction in the instruction stream and record its associated PO as an executed instruction pointer;

identify a most recently committed store instruction in the instruction stream and record its associated PO as a store commitment pointer;

determine a search pointer with PO less than the execution instruction pointer;

identify a first set of store instructions in a store buffer, each store instruction with PO less than the search pointer and eligible for commitment;

evaluate whether the first set of store instructions is larger than a number of read ports of the store buffer; and

adjust the search pointer based upon an evaluation that the first set of store instructions is larger than the number of read ports of the store buffer.

15. The system of claim 14 , further comprising circuitry to:

identify a second set of store instructions, each store instruction with a PO less than the search pointer after the adjustment of the search pointer;

evaluate whether the second set of store instructions is larger than the number of read ports of the store buffer; and

commit the second set of store instructions based upon an evaluation that the second set of store instructions is smaller than or equal in size to the number of read ports of the store buffer.

16. The system of claim 15 , further comprising circuitry to sort the second set of store instructions according to PO before the second set of store instructions is committed.

17. The system of claim 15 , further comprising circuitry to write a store buffer identifier of each of the second set of store instructions to a store retirement queue to commit the second set of store instructions.

18. The system of claim 14 , further comprising circuitry to adjust the search pointer based upon the size of the first set of store instructions.

19. The system of claim 14 , further comprising circuitry to adjust the search pointer based upon the size of the first set of store instructions and the number of read ports of the store buffer.

20. The system of claim 14 , further comprising circuitry to adjust the search pointer based upon a previous adjustment to the search pointer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2017
From: LECHANKA, ANTON; EFIMOV, ANDREY; SHISHLOV, SERGEY Y.; KLUCHNIKOV, ANDREY; GARIFULLIN, KAMIL; BUROVENKO, IGOR; BABAYAN, BORIS A.
To: INTEL CORPORATION
Reel/Frame 040874/0965 →
Continuity (1)
Related Publication 20160364239A1 · Dec 15, 2016
Cited By (4)
US 12,367,012 US 12,393,399 US 12,579,075 US 12,705,184