IP Library › Granted Patent US 9,760,373
Granted Patent B2
US 9,760,373 · App. 15/226,714 · Granted Sep 12, 2017

Functional unit having tree structure to support vector sorting algorithm and other algorithms

Inventors: Robert M. Ioffe (Portland, OR); Nicolas C. Galoppo Von Borries (Portland, OR)
Assignee: Intel Corporation
G06F9/30036G06F7/24G06F9/3001G06F9/30021G06F9/3867G06F9/3893
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,760,373
App. No.
15/226,714
Granted
Sep 12, 2017
Kind
B2
Abstract

An apparatus is described having a functional unit of an instruction execution pipeline. The functional unit has a plurality of compare-and-exchange circuits coupled to network circuitry to implement a vector sorting tree for a vector sorting instruction. Each of the compare-and-exchange circuits has a respective comparison circuit that compares a pair of inputs. Each of the compare-and-exchange circuits have a same sided first output for presenting a higher of the two inputs and a same sided second output for presenting a lower of the two inputs, said comparison circuit to also support said functional unit's execution of a prefix min and/or prefix add instruction.

Claims (34)

1. An apparatus, comprising:

a decoder to decode an instruction;

execution circuitry to execute the decoded instruction using a plurality of compare-and-exchange circuits coupled to network circuitry to implement a vector sorting tree, each of said compare-and-exchange circuits having a respective comparison circuit that compares a pair of inputs, each of said compare-and-exchange circuits having a first output for presenting a higher of the two inputs and a second output for presenting a lower of the two inputs, said comparison circuit to also support said functional unit's execution of a prefix min and/or prefix add instruction.

2. The apparatus of claim 1 wherein said functional unit supports sorting of different sized vectors.

3. The apparatus of claim 2 wherein a particular one of said sizes is specified with an immediate operand of said vector sorting instruction.

4. The apparatus of claim 2 wherein said different sized vectors include 2 elements, 4 elements, 8 elements and 16 elements.

5. The apparatus of claim 2 wherein said functional unit can simultaneously sort two vectors whose size is less than a maximum vector size that can be sorted through said vector sorting tree.

6. The apparatus of claim 1 wherein said network circuitry includes a configurable switching network.

7. The apparatus of claim 6 wherein said functional unit includes a memory circuit containing microcode that present control signals to said configurable switching network for said vector sorting instruction.

8. An apparatus, comprising:

a decoder to decode an instruction;

a functional unit of execution circuitry have a plurality of compare-and-exchange circuits coupled to network circuitry to execute the decoded instruction, each of said compare-and-exchange circuits having a respective comparison circuit that compares a pair of inputs, each of said compare-and-exchange circuits having a first output for presenting a higher of the two inputs and a second output for presenting a lower of the two inputs, each of said circuits also having any of:

an adder to implement a prefix add instruction with said functional unit;

a multiplier to implement a prefix multiply instruction with said functional unit.

9. The apparatus of claim 8 wherein said functional unit supports sorting of different sized vectors.

10. The apparatus of claim 9 wherein a particular one of said sizes is specified with an immediate operand of said vector sorting instruction.

11. The apparatus of claim 9 wherein said different sized vectors include 2 elements, 4 elements, 8 elements and 16 elements.

12. The apparatus of claim 9 wherein said functional unit can simultaneously sort two vectors whose size is less than a maximum vector size that can be sorted through said vector sorting tree.

13. The apparatus of claim 8 wherein said network circuitry includes a configurable switching network.

14. The apparatus of claim 13 wherein said functional unit includes a memory circuit containing microcode that present control signals to said configurable switching network for said vector sorting instruction.

15. The apparatus of claim 8 wherein said comparator of each of said circuits is also used to implement any of the following with said functional unit:

a prefix min instruction;

a prefix max instruction.

16. A method, comprising:

performing the following with functional unit circuitry of an instruction execution pipeline in response to a decoded instruction:

receiving a first vector and a second vector;

passing elements of said first and second vectors through a plurality of comparison-and-exchange circuits that implement a sorting tree to sort said first and second vectors, wherein, each of said comparison-and-exchange circuits perform the following:

compare a pair of said elements;

present a higher of the pair of elements on a first output;

present a lower of the pair of elements on a second output.

17. The method of claim 16 wherein said instruction specifies a size of said first and second vectors.

18. The method of claim 17 wherein said functional unit uses said size to determine how many stages of said sorting tree said elements are to pass through.

19. The method of claim 16 further comprising executing any of a prefix sum instruction or prefix add instruction with said functional unit.

20. The method of claim 16 further comprising executing any of a prefix min instruction or prefix max instruction with said functional unit.

Continuity (2)
Continuation 13730685 · Dec 28, 2012
Related Publication 20160342418A1 · Nov 24, 2016