IP Library Granted Patent US 11,531,522
Granted Patent B2
US 11,531,522 · App. 16/670,604 · Granted Dec 20, 2022

Selecting an ith largest or a pth smallest number from a set of n m-bit numbers

Inventors: Thomas Rose (Watford, GB); Robert McKemey (Hemel Hempstead, GB)
Assignee: Imagination Technologies Limited
G06F7/026G06F7/02G06F7/24G06F7/57G06F7/78
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 11,531,522
App. No.
16/670,604
Granted
Dec 20, 2022
Kind
B2
Abstract

A method of selecting, in hardware logic, an i th largest or a p th smallest number from a set of n m-bit numbers is described. The method is performed iteratively and in the r th iteration, the method comprises: summing an (m−r) th bit from each of the m-bit numbers to generate a summation result and comparing the summation result to a threshold value. Depending upon the outcome of the comparison, the r th bit of the selected number is determined and output and additionally the (m−r−1) th bit of each of the m-bit numbers is selectively updated based on the outcome of the comparison and the value of the (m−r) th bit in the m-bit number. In a first iteration, a most significant bit from each of the m-bit numbers is summed and each subsequent iteration sums bits occupying successive bit positions in their respective numbers.

Claims (37)

1. A method, implemented in fixed function hardware circuitry, for generating and selecting a number, the method comprising:

performing a MSB-first iterative calculating process in fixed function hardware circuitry to generate a set of n numbers;

concurrently with performing the MSB-first iterative calculating process to generate the set of n numbers, performing a MSB-first iterative selection process in fixed function hardware circuitry to select either an i th largest or a p th smallest number from the set of n numbers, where i, p and n are integers; and

in response to the MSB-first iterative selection process determining that a particular one of the numbers of said set of n numbers will not be the selected number, halting the generation of said particular number by said MSB-first iterative calculating process after at least one of the bits of said particular number has been generated and before all of the bits of said particular number have been generated,

wherein the method comprises outputting data indicative of the selected number.

2. The method of claim 1 , wherein the MSB-first iterative calculating process is a CORDIC (Coordinate Rotation Digital Computer) process or an Online Arithmetic process.

3. The method of claim 1 , wherein performing the MSB-first iterative selection process comprises performing a plurality of iterations, wherein each of the iterations comprises:

summing a bit from each of the numbers of the set to generate a summation result, wherein all the bits being summed occupy an identical bit position within their respective number;

comparing the summation result to a threshold value, wherein the threshold value is calculated based on i or p;

setting, based on an outcome of the comparison, a bit of the selected number; and

for each of the numbers of the set, based on the outcome of the comparison and a value of the bit from the number, selectively updating a bit in the number occupying a next bit position.

4. The method of claim 3 , wherein in a first iteration, a most significant bit from each of the numbers of the set is summed and a most significant bit of the selected number is set and each subsequent iteration sums bits occupying successive bit positions in their respective numbers and sets a next bit of the selected number.

5. The method of claim 3 , wherein the selected number is the i th largest number from the set of n numbers and the threshold value is equal to i.

6. The method of claim 3 , wherein the selected number is the p th smallest number from the set of n numbers and the threshold value is equal to (n−p) or (n−p+1).

7. The method of claim 1 , wherein each of then numbers of the set, if fully generated, are m-bit numbers.

8. The method of claim 1 , wherein outputting data indicative of the selected number comprises either:

outputting the selected number; or

outputting an indication of the position, within the set of n numbers, of the selected number.

9. A processing unit configured to generate and select a number, the processing unit comprising:

a generation logic unit, implemented in fixed function hardware circuitry, configured to perform a MSB-first iterative calculating process to generate a set of n numbers;

a selection logic unit, implemented in fixed function hardware circuitry, configured to operate concurrently with the generation logic unit, and configured to perform a MSB-first iterative selection process to select either an i th largest or a p th smallest number from the set of n numbers, where i, p and n are integers; and

an output arranged to output data indicative of the selected number,

wherein the processing unit is configured to, in response to the selection logic unit determining that a particular one of the numbers of said set of n numbers will not be the selected number, cause the generation logic unit to halt the calculation of said particular number by said MSB-first iterative generating process after at least one of the bits of said particular number has been generated and before all of the bits of said particular number have been generated.

10. The processing unit of claim 9 , wherein the selection logic comprises:

summation logic arranged to, in each iteration, sum a bit from each of the numbers to generate a summation result, wherein all the bits being summed occupy an identical bit position within their respective number;

comparison logic arranged to, in each iteration, compare the summation result generated by the summation logic in that iteration to a threshold value and set a bit of the selected number based on an outcome of the comparison, wherein the threshold value is calculated based on i or p; and

updating logic arranged to, in each iteration and for each of the numbers, selectively update a bit in the number occupying a next bit position based on the outcome of the comparison in that iteration and a value of the bit from the number.

11. The processing unit of claim 10 , wherein the summation logic is arranged such that in a first iteration, a most significant bit from each of the numbers is summed and each subsequent iteration sums bits occupying successive bit positions in their respective numbers.

12. An integrated circuit manufacturing system comprising:

a computer readable storage medium having stored thereon a computer readable description of an integrated circuit that describes a processing unit;

a layout processing system configured to process the integrated circuit description so as to generate a circuit layout description of an integrated circuit embodying the processing unit; and

an integrated circuit generation system configured to manufacture the processing unit according to the circuit layout description,

wherein the processing unit comprises:

a generation logic unit, implemented in fixed function hardware circuitry, configured to perform a MSB-first iterative calculating process to generate a set of n numbers;

a selection logic unit, implemented in fixed function hardware circuitry, configured to operate concurrently with the generation logic unit, and configured to perform a MSB-first iterative selection process to select either an i th largest or a p th smallest number from the set of n numbers, where i, p and n are integers; and

an output arranged to output data indicative of the selected number,

and wherein the processing unit is configured to, in response to the selection logic unit determining that a particular one of the numbers of said set of n numbers will not be the selected number, cause the generation logic unit to halt the calculation of said particular number by said MSB-first iterative generating process after at least one of the bits of said particular number has been generated and before all of the bits of said particular number have been generated.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2020
From: ROSE, THOMAS; MCKEMEY, ROBERT
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 051544/0268 →