IP Library Granted Patent US 10,719,294
Granted Patent B2
US 10,719,294 · App. 16/718,419 · Granted Jul 21, 2020

Hardware sort accelerator sharing first level processor cache

Inventors: Christian Jacobi (West Park, NY); Aditya Puranik (Maharashtra, IN); Martin Recktenwald (Schoenaich, DE); Christian Zoellin (Weinstadt, DE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F7/16G06F7/02G06F7/08G06F7/24G06F7/36G06F9/5027Y10S707/99937
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,719,294
App. No.
16/718,419
Granted
Jul 21, 2020
Kind
B2
Abstract

A computer processor includes a memory unit that stores key values to be loaded into a partial tournament sort, and a processor cache that obtains tree data from the memory unit indicating the key values. A hardware merge sort accelerator generates a tournament tree based on the key values, and performs a partial tournament sort to store a first portion of tournament results in the processor cache while excluding a second portion of the tournament results from the processor cache.

Claims (27)

1. A computer system configured to sort data, the computer system comprising:

a processor cache in signal communication with a separate memory unit installed in the computer system, and configured to determine a plurality of key values stored in the separate memory unit;

a hardware merge sort accelerator in signal communication with the separate memory unit and the processor cache, the merge sort accelerator configured to generate a tournament tree based on the key values obtained from the processor cache, and to perform a partial tournament sort to determine an overall winning key value among a list of key values participating in the partial tournament sort; and

a main memory unit including memory locations configured to store each overall winning key value,

wherein the main memory unit is continuously updated in response to storing the overall winning key such that each overall winning key is automatically stored sequentially with respect to one another.

2. The computer system of claim 1 , wherein each key value represents a numeral including a plurality of digits.

3. The computer system of claim 2 , wherein the merge sort accelerator executes the partial tournament sort by performing a first tournament to determine a first overall winning digit of the overall winning key value, and performing a second tournament to determine winner of a second overall winning digit of the overall winning key value.

4. The computer system of claim 1 , wherein the merge sort accelerator configured to generate a tournament tree based on the key values and perform a partial tournament sort to store a first portion of tournament results in the processor cache while excluding a second portion of the tournament results from the processor cache.

5. The computer processor of claim 1 , wherein the merge sort accelerator determines the first portion of the tournament results based on a winning digit of a given match between a first digit of a first key value and a first digit of a second key value different from the first key value.

6. The computer processor of claim 5 , wherein the merge sort accelerator determines the winning digit as a lowest value among a comparison between digits of the first and second keys of the given match.

7. The computer processor of claim 5 , wherein the merge sort accelerator determines the overall winning key value of the partial tournament sort by selecting a key value from the tournament list and performing a plurality of passes through the tournament tree using the selected key value.

8. The computer processor of claim 7 , wherein the overall winning key value is stored from the merge sort accelerator to the main memory unit.

9. A computer-implemented method of updating a computer system with sequentially sorted data, the method comprising:

obtaining, via a processor cache, a plurality of key values stored in a memory unit installed on the computer system;

generating, via a hardware merge sort accelerator, a tournament tree based on the key values obtained from the processor cache;

determining, via the merge sort accelerator, a plurality of overall winning key value among a list of key values participating in a partial tournament sort; and

continuously updating the memory unit with the plurality of the overall winning key values that are automatically stored sequentially with respect to one another in response to storing a most recent determined overall winning key value in the memory unit.

10. The method of claim 9 , further comprising using each key value to represent a numeral having a plurality of digits.

11. The method of claim 10 , further comprising:

performing a first tournament to determine a first digit of an overall winning key value; and

performing a second tournament to determine a second digit of the overall winning key value.

12. The method of claim 9 , further comprising generating, via the merge sort accelerator, a tournament tree based on the key values.

13. The method of claim 12 , further comprising performing, via the merge sort accelerator, a partial tournament sort to store a first portion of tournament results in the processor cache while excluding a second portion of the tournament results from the processor cache.

14. The method of claim 9 , further comprising determining, via the merge sort accelerator, the first portion of the tournament results based on a winning digit of a given match between a first digit of a first key value and a first digit of a second key value different from the first key value.

15. The method of claim 14 , further comprising determining, via the merge sort accelerator, the winning digit as a lowest value among a comparison between digits of the first and second keys of the given match.

16. The method of claim 14 , further comprising determining, via the merge sort accelerator, the overall winning key value of the partial tournament sort by selecting a key value from the tournament list and performing a plurality of passes through the tournament tree using the selected key value.

17. The method of claim 16 , further comprising storing the overall winning key value from the merge sort accelerator to the memory unit.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2024
From: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
To: BEIJING ZITIAO NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 066565/0952 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: AWEMANE LTD.
To: BEIJING PIANRUOJINGHONG TECHNOLOGY CO., LTD.
Reel/Frame 064501/0498 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AWEMANE LTD.
Reel/Frame 057991/0960 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: JACOBI, CHRISTIAN; PURANIK, ADITYA; RECKTENWALD, MARTIN; ZOELLIN, CHRISTIAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051316/0325 →