IP Library Granted Patent US 10,372,413
Granted Patent B2
US 10,372,413 · App. 15/268,627 · Granted Aug 6, 2019

First-in-first-out buffer

Inventors: Joerg Behrend (Rangendingen, DE); Markus Cebulla (Gerstetten, DE); Rolf Fritz (Waldenbuch, DE); Andreas Koenig (Boeblingen, DE); Daniel D. Sentler (Steinenbronn, DE)
Assignee: International Business Machines Corporation
G06F5/14G06F5/06G06F5/065G06F13/1673G06F13/4282G06F2205/067G06F2205/126
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,372,413
App. No.
15/268,627
Granted
Aug 6, 2019
Kind
B2
Abstract

Disclosed aspects relate to a first-in-first-out (FIFO) buffer. The FIFO buffer may include an input interface to receive a set of data payloads. The FIFO buffer may include a set of buffer entry elements to store the set of data payloads. The FIFO buffer may include a set of status indicators to indicate a set of statuses of the set of buffer entry elements with respect to the set of data payloads. The FIFO buffer may include an output interface for release of the set of data payloads.

Claims (60)

1. A method for use by a sender computer device that includes a first in first out buffer (FIFO) memory and a status register, the method comprising:

receiving, by the sender computer device, a communication data set to be communicated over a communication network to a recipient computer device;

creating, by the sender computer device, a plurality of sequential packets collectively including data of the communication data set, with each sequential packet including a substantially equal amount of data from the communication data set;

for each given sequential packet of the plurality of sequential packets:

determining status information for the given sequential packet, where the status information for each given sequential packet indicates of one of the following three status types: valid, invalid or end of sequence,

storing, by the sender computer device, the given sequential packet in the FIFO memory while moving previously stored sequential packets through the FIFO memory in a first in first out manner, and

storing the status information for the given sequential packet in an associated entry of the status register while shifting register values of the status register to account for storage of the status information for the given sequential packet;

communicating, to a receiver computer device, the status register, with the communication of the status register including information indicative of: (i) the receiver computer should not read at least one sequential packet in the FIFO memory having a status information in the status register indicative of an invalid status, and (ii) an interrupt handler should be disabled for processing receiving the contents of the FIFO memory; and

responsive to communicating the status register, communicating contents of the FIFO memory to the receiver computer device, based, at least in part on the status information for each sequential packet in the status register;

wherein a complete instance of the status register is embedded within unused bus bandwidth and communicated simultaneously with each stored packet of the FIFO memory.

2. The method of claim 1 , wherein the valid status type includes information indicative of the given sequential packet is at least one of the following: (i) interpretable, (ii) ready for transmission, (iii) formatted to be readable by the processing units of a host computer system, (iv) non-encrypted, and/or (v) available for reception by a receiving unit.

3. The method of claim 1 , wherein the invalid status type includes information indicative of the given sequential packet is at least one of the following: (i) non-interpretable, (ii) not ready for transmission, (iii) formatted in a language or encryption format unreadable by processing units of a host computer system, (iv) corrupted, and/or (v) not available for reception by the receiving unit.

4. The method of claim 1 , wherein the end of sequence status type includes information indicative of the given sequential packet will be followed by a separation, pause, or break in the transmission of data elements from the FIFO buffer system.

5. The method of claim 1 , wherein:

the status register includes two status registers, a first status register and a second status register, for each sequential packet of the plurality of sequential packets;

the first status register includes a binary bit indicative of whether the given sequential packet has a valid or invalid status; and

the second status register including a binary bit indicative of the given sequential packet having an end of transmission or not an end of transmission status.

6. A computer program product (CPP) comprising:

a first in first out buffer (FIFO) memory;

a status register;

a machine readable storage device; and

computer code stored on the machine readable storage device, with the computer code including instructions for causing a processor(s) set to perform operations including the following:

receiving, by a sender computer device, a communication data set to be communicated over a communication network to a recipient computer device,

creating, by the sender computer device, a plurality of sequential packets collectively including data of the communication data set, with each sequential packet including a substantially equal amount of data from the communication data set,

for each given sequential packet of the plurality of sequential packets:

determining status information for the given sequential packet, where the status information for each given sequential packet indicates of one of the following three status types: valid, invalid or end of sequence,

storing, by the sender computer device, the given sequential packet in the FIFO memory while moving previously stored sequential packets through the FIFO memory in a first in first out manner, and

storing the status information for the given sequential packet in an associated entry of the status register while shifting register values of the status register to account for storage of the status information for the given sequential packet,

communicating, to a receiver computer device, the status register, with the communication of the status register including information indicative of: (i) the receiver computer should not read at least one sequential packet in the FIFO memory having a status information in the status register indicative of an invalid status, and (ii) an interrupt handler should be disabled for processing receiving the contents of the FIFO memory, and

responsive to communicating the status register, communicating contents of the FIFO memory to the receiver computer device, based, at least in part on the status information for each sequential packet in the status register;

wherein a complete instance of the status register is embedded within unused bus bandwidth and communicated simultaneously with each stored packet of the FIFO memory.

7. The CPP of claim 6 , wherein the valid status type includes information indicative of the given sequential packet is at least one of the following: (i) interpretable, (ii) ready for transmission, (iii) formatted to be readable by the processing units of a host computer system, (iv) non-encrypted, and/or (v) available for reception by a receiving unit.

8. The CPP of claim 6 , wherein the invalid status type includes information indicative of the given sequential packet is at least one of the following: (i) non-interpretable, (ii) not ready for transmission, (iii) formatted in a language or encryption format unreadable by processing units of a host computer system, (iv) corrupted, and/or (v) not available for reception by the receiving unit.

9. The CPP of claim 6 , wherein the end of sequence status type includes information indicative of the given sequential packet will be followed by a separation, pause, or break in the transmission of data elements from the FIFO buffer system.

10. The CPP of claim 6 , wherein:

the status register includes two status registers, a first status register and a second status register, for each sequential packet of the plurality of sequential packets;

the first status register includes a binary bit indicative of whether the given sequential packet has a valid or invalid status; and

the second status register including a binary bit indicative of the given sequential packet having an end of transmission or not an end of transmission status.

11. A computer system (CS) comprising:

a first in first out buffer (FIFO) memory;

a status register;

a processor(s) set;

a machine readable storage device; and

computer code stored on the machine readable storage device, with the computer code including instructions for causing the processor(s) set to perform operations including the following:

receiving, by a sender computer device, a communication data set to be communicated over a communication network to a recipient computer device,

creating, by the sender computer device, a plurality of sequential packets collectively including data of the communication data set, with each sequential packet including a substantially equal amount of data from the communication data set,

for each given sequential packet of the plurality of sequential packets:

determining status information for the given sequential packet, where the status information for each given sequential packet indicates of one of the following three status types: valid, invalid or end of sequence,

storing, by the sender computer device, the given sequential packet in the FIFO memory while moving previously stored sequential packets through the FIFO memory in a first in first out manner, and

storing the status information for the given sequential packet in an associated entry of the status register while shifting register values of the status register to account for storage of the status information for the given sequential packet,

communicating, to a receiver computer device, the status register, with the communication of the status register including information indicative of: (i) the receiver computer should not read at least one sequential packet in the FIFO memory having a status information in the status register indicative of an invalid status, and (ii) an interrupt handler should be disabled for processing receiving the contents of the FIFO memory, and

responsive to communicating the status register, communicating contents of the FIFO memory to the receiver computer device, based, at least in part on the status information for each sequential packet in the status register;

wherein a complete instance of the status register is embedded within unused bus bandwidth and communicated simultaneously with each stored packet of the FIFO memory.

12. The CS of claim 11 , wherein the valid status type includes information indicative of the given sequential packet is at least one of the following: (i) interpretable, (ii) ready for transmission, (iii) formatted to be readable by the processing units of a host computer system, (iv) non-encrypted, and/or (v) available for reception by a receiving unit.

13. The CS of claim 11 , wherein the invalid status type includes information indicative of the given sequential packet is at least one of the following: (i) non-interpretable, (ii) not ready for transmission, (iii) formatted in a language or encryption format unreadable by processing units of a host computer system, (iv) corrupted, and/or (v) not available for reception by the receiving unit.

14. The CS of claim 11 , wherein the end of sequence status type includes information indicative of the given sequential packet will be followed by a separation, pause, or break in the transmission of data elements from the FIFO buffer system.

15. The CS of claim 11 , wherein:

the status register includes two status registers, a first status register and a second status register, for each sequential packet of the plurality of sequential packets;

the first status register includes a binary bit indicative of whether the given sequential packet has a valid or invalid status; and

the second status register including a binary bit indicative of the given sequential packet having an end of transmission or not an end of transmission status.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2016
From: BEHREND, JOERG; CEBULLA, MARKUS; FRITZ, ROLF; KOENIG, ANDREAS; SENTLER, DANIEL D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039774/0553 →
Continuity (1)
Related Publication 20180081623A1 · Mar 22, 2018