IP Library Granted Patent US 9,753,734
Granted Patent B2
US 9,753,734 · App. 15/215,004 · Granted Sep 5, 2017

Method and apparatus for sorting elements in hardware structures

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 9,753,734
App. No.
15/215,004
Granted
Sep 5, 2017
Kind
B2
Abstract

A method for sorting elements in hardware structures is disclosed. The method comprises selecting a plurality of elements to order from an unordered input queue (UIQ) within a predetermined range in response to finding a match between at least one most significant bit of the predetermined range and corresponding bits of a respective identifier associated with each of the plurality of elements. The method further comprises presenting each of the plurality of elements to a respective multiplexer. Further the method comprises generating a select signal for an enabled multiplexer in response to finding a match between at least one least significant bit of a respective identifier associated with each of the plurality of elements and a port number of the ordered queue. Finally, the method comprises forwarding a packet associated with a selected element identifier to a matching port number of the ordered queue from the enabled multiplexer.

Claims (43)

1. A method for sorting elements stored in hardware structures, said method comprising:

allocating elements out of order into an unordered input queue (UIQ) of a register file of a processor;

selecting a plurality of elements to order from the UIQ;

presenting each element of the plurality of elements to a respective multiplexer;

generating a select signal for a respective enabled multiplexer corresponding to each element in response to finding a match between at least one least significant bit of a respective identifier associated with said each element and a port number of an ordered retirement queue in the register file.

2. The method of claim 1 , wherein the selecting comprises:

selecting elements within a range in response to finding a match between at least one most significant bit of the range and corresponding bits of a respective identifier operable to tag each of the plurality of elements.

3. The method of claim 1 , further comprising:

forwarding a packet corresponding to a selected identifier to a matching port number of the ordered retirement queue from the UIQ using the enabled multiplexer.

4. The method of claim 3 , further comprising:

writing the packet into a port corresponding to the matching port number in the ordered retirement queue.

5. The method of claim 2 , wherein the selecting and the generating are performed in response to a communication protocol controlled by a reorder buffer in a pipeline of the processor, and wherein the communication protocol communicates the range and a number of elements to be ordered to the register file.

6. The method of claim 5 , wherein the communication protocol indicates a number of elements to be retired during a clock cycle from the ordered retirement queue.

7. The method of claim 1 , wherein the ordered queue comprises elements to be retired from the register file in a retirement cycle of a pipeline of the processor.

8. The method of claim 3 , further comprising performing match using port content address match (CAM) circuitry, wherein the select signal is generated in response to the CAM circuitry indicating a match.

9. The method of claim 8 , wherein a write enable signal is generated for the port corresponding to the matching port number by performing a logical OR of the select signal.

10. A method for sorting elements stored in hardware structures, said method comprising:

allocating elements out of order into an unordered input queue (UIQ) of a load store queue of a processor;

selecting a plurality of elements to order from the UIQ;

presenting each of the plurality of elements to a respective multiplexer;

generating a select signal for a respective enabled multiplexer corresponding to each element in response to finding a match between at least one least significant bit of a respective identifier associated with said each element and a port number of an ordered retirement queue in the load store queue.

11. The method of claim 10 , wherein the selecting comprises:

selecting elements within a range in response to finding a match between at least one most significant bit of the range and corresponding bits of a respective identifier operable to tag each of the plurality of elements.

12. The method of claim 10 , further comprising:

forwarding a packet corresponding to a selected identifier to a matching port number of the ordered retirement queue from the UIQ using the enabled multiplexer.

13. The method of claim 12 , further comprising:

writing the packet into a port corresponding to the matching port number in the ordered retirement queue.

14. The method of claim 11 , wherein the selecting and the generating are performed in response to a communication protocol controlled by a reorder buffer in a pipeline of the processor, and wherein the communication protocol communicates the range and a number of elements to be ordered to the load store queue.

15. The method of claim 14 , wherein the communication protocol indicates a number of elements to be retired during a clock cycle from the ordered retirement queue.

16. The method of claim 10 , wherein the ordered queue comprises elements to be retired from the load queue in a retirement cycle of a pipeline of the processor.

17. The method of claim 12 , further comprising performing the match using port content address match (CAM) circuitry, wherein the select signal is generated in response to the CAM circuitry indicating a match.

18. The method of claim 17 , wherein a write enable signal is generated for the port corresponding to the matching port number by performing a logical OR of the select signal.

19. An apparatus for sorting elements stored in hardware structures, said apparatus comprising:

a memory;

a processor communicatively coupled to said memory, wherein said processor is configured to process instructions out of order, and further wherein said processor is configured to:

allocate elements out of order into an unordered input queue (UIQ) of the processor;

select a plurality of elements to order from the UIQ;

present each of the plurality of elements to a respective multiplexer;

generate a select signal for a respective enabled multiplexer corresponding to each element in response to finding a match between at least one least significant bit of a respective identifier associated with said each element and a port number of an ordered retirement queue of the processor.

20. The apparatus of claim 19 , wherein said processor is further configured to:

forward a packet corresponding to a selected identifier to a matching port number of the ordered retirement queue from the UIQ using the enabled multiplexer.

21. The apparatus of claim 19 , wherein said processor is further configured to:

write the packet into a port corresponding to the matching port number in the ordered retirement queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2016
From: SOFT MACHINES, INC.
To: INTEL CORPORATION
Reel/Frame 040631/0915 →