IP Library Granted Patent US 11,782,865
Granted Patent B1
US 11,782,865 · App. 17/303,561 · Granted Oct 10, 2023

Flexible data handling

Inventors: Gal Kochavi (Binyamina, IL); Benny Pollak (Yad Binyamin, IL)
Assignee: Amazon Technologies, Inc.
G06F13/4221G06F13/1673G06F13/1678G06F13/20G06F13/161
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,782,865
App. No.
17/303,561
Granted
Oct 10, 2023
Kind
B1
Abstract

An integrated circuit can be used to regulate data flow in a computing system. The integrated circuit can receive input data via a first interface associated with a first type of bus protocol and provide output data via a second interface associated with a second type of bus protocol. Size of the input data and the output data may vary based on the corresponding protocols. The integrated circuit can receive, via the first interface, an input data size for a write transaction to store the input data in a data storage unit. The integrated circuit can also receive a requested data size, via the second interface, to provide the output data for a read transaction. The integrated circuit can also generate an actual size of the output data based on the requested data size, the input data size, and size of the stored input data.

Claims (48)

1. An integrated circuit for regulating data flow between devices that use different communication protocols in a computing system, the integrated circuit comprising:

an input interface configured to:

receive a write enable for a write transaction from a first device external to the integrated circuit based on an on-chip interface protocol;

receive input data for the write transaction from the first device; and

receive an input data size indicating a size of the input data;

a data buffer configured to store the input data based on the input data size; and

an output interface configured to:

receive a read enable to provide output data to a second device external to the integrated circuit for a read transaction based on an off-chip interface protocol, wherein the read enable is received in a same or later clock cycle than the write enable;

receive a requested size for the output data;

determine an actual size of the output data based on a comparison, by the integrated circuit, of the requested size to: (i) the input data size received by the input interface and (ii) a size of any portion of the input data currently stored in the data buffer at a time the read enable is received;

obtain the output data, wherein based on the actual size being greater than the size of any portion of the input data currently stored in the data buffer, the output interface is configured to obtain at least some of the output data from the input data as the input data is being received at the input interface; and

provide, to the second device, the obtained output data, and the actual size of the output data, wherein the obtained output data is provided without introducing a bubble on the output interface when the requested size is greater than the input data size.

2. The integrated circuit of claim 1 , wherein the output data is obtained from stored input data in the data buffer and the input data being received at the input interface when the read enable is received in a same cycle as the write enable, and the requested size is greater than the size of the stored input data.

3. The integrated circuit of claim 1 , wherein at least some of the output data is obtained from stored input data in the data buffer when the read enable is received in a cycle later than the write enable.

4. The integrated circuit of claim 1 , wherein all of the output data is obtained from stored input data in the data buffer when the requested size is smaller than the size of the stored input data.

5. An integrated circuit for regulating data flow between devices that use different communication protocols, the integrated circuit comprising:

a first interface configured to:

receive input data for a write transaction from a first device external to the integrated circuit based on a first bus protocol; and

receive an input data size indicating a size of the input data;

a data storage unit configured to store the input data; and

a second interface configured to:

receive a requested size to provide output data to a second device external to the integrated circuit for a read transaction based on a second bus protocol;

determine an actual size of the output data based on a comparison, by the integrated circuit, of the requested size to: (i) the input data size received by the first interface and (ii) a size of any portion of the input data currently stored in the data storage unit at a time of the read transaction; and

provide the output data, wherein based on the actual size being greater than the size of any portion of the input data currently stored in the data storage unit, the second interface is configured to provide at least some of the output data using the input data as the input data is being received at the first interface.

6. The integrated circuit of claim 5 , wherein the input data size and the requested size have different values.

7. The integrated circuit of claim 5 , wherein the requested size and the actual size have different values.

8. The integrated circuit of claim 5 , wherein the first bus protocol is an on-chip interface protocol, and the second bus protocol is an off-chip interface protocol.

9. The integrated circuit of claim 5 , wherein the first interface is further configured to receive a write enable for the write transaction, and the second interface is further configured to receive a read enable for the read transaction.

10. The integrated circuit of claim 9 , wherein the second interface is configured to provide a first portion of the output data using stored input data from the data storage unit and a second portion of the output data using the input data being received at the first interface when the requested size is greater than the size of the stored input data and the write enable and the read enable are received in a same cycle.

11. The integrated circuit of claim 10 , wherein the requested size is greater than a sum of the size of the stored input data and the input data size, and the actual size of the output data indicates the sum of the size of the stored input data and the input data size.

12. The integrated circuit of claim 9 , wherein the input data is stored in the data storage unit when the read enable is not received in a same cycle as the write enable.

13. The integrated circuit of claim 5 , wherein the second interface is further configured to provide the actual size of the output data along with the output data.

14. The integrated circuit of claim 5 , wherein all of the output data is provided using stored input data in the data storage unit when the requested size is smaller than the size of the stored input data.

15. A method for regulating data flow between devices that use different communication protocols in a computing system, the method comprising, by an integrated circuit:

receiving input data for a write transaction from a first device external to the integrated circuit based on a first bus protocol, wherein the integrated circuit comprises a data storage unit configured to store the input data;

receiving an input data size indicating a size of the input data;

receiving a requested size to provide output data to a second device external to the integrated circuit for a read transaction based on a second bus protocol;

determining an actual size of the output data based on a comparison of the requested size to: (i) the received input data size and (ii) a size of any portion of the input data currently stored in the data storage unit at a time of the read transaction; and

providing the output data, wherein based on the actual size being greater than the size of any portion of the input data currently stored in the data storage unit, at least some of the output data is provided using the input data as the input data is being received.

16. The method of claim 15 , further comprising:

determining that the requested size for the read transaction is greater than a size of stored input data in the data storage unit but smaller than a sum of the input data size and the size of the stored input data; and

responsive to determining that the requested size is greater than the size of the stored input data, providing a first portion of the output data using the stored input data and a second portion of the output data using the input data being received.

17. The method of claim 16 , further comprising:

storing a remaining portion of the input data in the data storage unit; and

generating a write completion upon storing the remaining portion of the input data in the data storage unit.

18. The method of claim 15 , further comprising:

determining that the requested size is greater than a sum of the input data size and a size of stored input data in the data storage unit, wherein determining the actual size of the output data comprises setting the actual size equal to the sum of the input data size and the size of the stored input data; and

providing the actual size of the output data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: KOCHAVI, GAL; POLLAK, BENNY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 056418/0189 →
Cited By (15)
US 12,190,038 US 12,204,482 US 12,204,794 US 12,204,840 US 12,248,419 US 12,248,421 US 12,248,679 US 12,314,567 US 12,438,095 US 12,494,469 US 12,525,540 US 12,579,093 US 12,650,936 US 12,699,514 US 12,717,996