IP Library Granted Patent US 9,086,871
Granted Patent B2
US 9,086,871 · App. 14/037,891 · Granted Jul 21, 2015

Reordering the output of recirculated transactions within a pipeline

Inventors: Damir A. Jamsek (Austin, TX); Andrew K. Martin (Austin, TX)
Assignee: International Business Machines Corporation
G06F9/30138G06F9/30101G06F9/3867
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,086,871
App. No.
14/037,891
Granted
Jul 21, 2015
Kind
B2
Abstract

A mechanism is provided for recirculating transactions within a pipeline while reordering outputs. A set of transactions associated with a block of data is received and each transaction in the set of transactions is processed via the pipeline. For each transaction processed via the pipeline, responsive to the transaction exiting the pipeline, a determination is made as to whether the transaction needs further processing. Responsive to the transaction needing further processing, the transaction is re-circulated via the pipeline forming a recirculated transaction.

Claims (63)

1. A method, in a data processing system, for recirculating transactions within a pipeline while reordering outputs, the method comprising:

receiving a set of transactions associated with a block of data;

processing each transaction in the set of transactions via the pipeline;

for each transaction processed via the pipeline:

as the transaction enters the pipeline, identifying a unique identifier for the transaction and a unique identifier for a subsequent transaction that will follow the transaction;

responsive to the transaction exiting the pipeline:

storing results of the transaction in a results data structure according to the unique identifier;

determining whether the transaction needs further processing;

responsive to the transaction failing to need further processing, recording the unique identifier for the transaction that immediately follows the transaction in an exit data structure for use in exporting the results; and

responsive to the transaction needing further processing, recirculating the transaction via the pipeline forming a recirculated transaction; and

for each recirculated transaction processed via the pipeline:

identifying a new unique identifier for the recirculated transaction while retaining, the unique identifier for the subsequent transaction that will follow the recirculated transaction;

recording the new unique identifier for the transaction in the exit data structure for use in exporting the results; and

processing the recirculated transaction.

2. The method of claim 1 , further comprising:

responsive to one or more results being available to be written from the results data structure, exporting the one or more results of the set of transactions as per the exit data structure.

3. The method of claim 1 , further comprising:

responsive to the recirculated transaction exiting the pipeline and failing to need further processing, storing the results of the recirculated transaction in the results data structure according to the new unique identifier.

4. The method of claim 1 , wherein, responsive to the transaction being re-circulated through the pipeline, the reprocessed transaction enters the pipeline before any unprocessed transaction.

5. The method of claim 1 , wherein the block of data comprises compressed symbols.

6. The method of claim 1 , wherein each transaction comprises nine or more Huffman codes.

7. The method of claim 1 , wherein the exit data structure is a linked list.

8. The method of claim 1 , wherein the results data structure is in a static random-access memory (SRAM).

9. A computer program product comprising a non-transitory computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to:

receive a set of transactions associated with a block of data;

process each transaction in the set of transactions via a pipeline;

for each transaction processed via the pipeline:

as the transaction enters the pipeline, identify a unique identifier for the transaction and a unique identifier for a subsequent transaction that will follow the transaction;

responsive to the transaction exiting the pipeline:

store the results of the transaction in a results data structure according to the unique identifier;

determine whether the transaction needs further processing;

responsive to the transaction failing to need further processing, record the unique identifier for the transaction that immediately follows the transaction in an exit data structure for use in exporting the results; and

responsive to the transaction needing further processing, re-circulate the transaction via the pipeline forming a recirculated transaction; and

for each recirculated transaction processed via the pipeline:

identify a new unique identifier for the recirculated transaction while retaining the unique identifier for the subsequent transaction that will follow the recirculated transaction;

record the new unique identifier for the transaction in the exit data structure for use in exporting the results; and

process the recirculated transaction.

10. The computer program product of claim 9 , wherein the computer readable program further causes the computing device to:

responsive to one or more results being available to be written from the results data structure, export the one or more results of the set of transactions as per the exit data structure.

11. The computer program product of claim 9 , wherein the computer readable program further causes the computing device to:

responsive to the recirculated transaction exiting the pipeline and failing to need further processing, store the results of the recirculated transaction in the results data structure according to the new unique identifier; and

responsive to one or more results being available to be written from the results data structure, export the results of the set of transactions as per the exit data structure.

12. An apparatus comprising:

a processor; and

a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:

receive a set of transactions associated with a block of data;

process each transaction in the set of transactions via a pipeline;

for each transaction processed via the pipeline:

as the transaction enters the pipeline, identify a unique identifier for the transaction and a unique identifier for a subsequent transaction that will follow the transaction;

responsive to the transaction exiting the pipeline:

store the results of the transaction in a results data structure according to the unique identifier;

determine whether the transaction needs further processing;

responsive to the transaction failing to need further processing, record the unique identifier for the transaction that immediately follows the transaction in an exit data structure for use in exporting the results; and

responsive to the transaction needing further processing, re-circulate the transaction via the pipeline forming a recirculated transaction; and

for each recirculated transaction processed via the pipeline:

identify a new unique identifier for the recirculated transaction while retaining the unique identifier for the subsequent transaction that will follow the recirculated transaction;

record the new unique identifier for the transaction in the exit data structure for use in exporting the results; and

process the recirculated transaction.

13. The apparatus of claim 12 , wherein the instructions further cause the processor to:

responsive to one or more results being available to be written from the results data structure, export the one or more results of the set of transactions as per the exit data structure.

14. The apparatus of claim 12 , wherein the instructions further cause the processor to:

responsive to the recirculated transaction exiting the pipeline and failing to need further processing, store the results of the recirculated transaction in the results data structure according to the new unique identifier; and

responsive to one or more results being available to be written from the results data structure, export the results of the set of transactions as per the exit data structure.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2013
From: JAMSEK, DAMIR A.; MARTIN, ANDREW K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031289/0382 →
Continuity (1)
Related Publication 20150089128A1 · Mar 26, 2015