IP Library Granted Patent US 7,953,908
Granted Patent B2
US 7,953,908 · App. 11/754,294 · Granted May 31, 2011

High throughput pipelined data path

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 7,953,908
App. No.
11/754,294
Granted
May 31, 2011
Kind
B2
Abstract

Methods and apparatus to provide a high throughput pipelined data path are described. In one embodiment, an apparatus may include three stages to process inbound data packets, e.g., to align one or more bits of data. Other embodiments are also described.

Claims (30)

1. An apparatus comprising:

a first stage to receive a plurality of data packets, comprising a data packet, through a physical interface, wherein the first stage is to load data corresponding to the received packet in response to a determination that the received packet is a valid expected completion packet with a valid destination;

a second stage to determine whether one or more bits within the data packet are to be shifted and align the bits;

a third stage coupled to a transfer interface to transfer the aligned bits; and

a storage device to store a plurality of entries to indicate read completion status corresponding to the plurality of data packets, wherein a buffer stores data corresponding to the data packet to stall a next transfer received at the first stage for one or more clock cycles in response to a determination that it will take two backend transfers to complete a single frontend transfer of the data packet.

2. The apparatus of claim 1 , wherein the second stage computes a byte count, shift count, first byte enable, and last byte enable.

3. The apparatus of claim 1 , wherein the second stage computes the shift count based on a group consisting essentially of source and destination addresses of the data packet.

4. The apparatus of claim 1 , wherein a network interface card comprises the first, second, and third stages.

5. The apparatus of claim 1 , wherein the physical interface is coupled to a network.

6. The apparatus of claim 1 , wherein the transfer interface is coupled to a host computer.

7. The apparatus of claim 1 , wherein the read completion status is to indicate whether a corresponding data packet from the plurality of data packets has been completely received at the first stage.

8. A method comprising:

receiving at a first stage a plurality of data packets, comprising a data packet, wherein the first stage is to load data corresponding to the received packet in response to a determination that the received packet is a valid expected completion packet with a valid destination;

determining at a second stage whether one or more bits within the data packet are to be shifted and align the bits;

transferring at a third stage the aligned bits; and

storing a plurality of entries to indicate read completion status corresponding to the plurality of data packets, wherein a buffer stores data corresponding to the data packet to stall a next transfer received at the first stage for one or more clock cycles in response to a determination that it will take two backend transfers to complete a single frontend transfer of the data packet.

9. The method of claim 8 , further comprising receiving the data packet through a physical interface.

10. The method of claim 8 , further comprising coupling the third stage to a transfer interface to transfer the aligned bits.

11. The method of claim 10 , further comprising coupling the transfer interface to a host computer.

12. The method of claim 8 , further comprising the second stage computing a byte count, shift count, first byte enable, and last byte enable of the received data packet.

13. The method of claim 8 , further comprising the second stage computing the shift count based on a group consisting essentially of source and destination addresses of the data packet.

14. The method of claim 8 , wherein the read completion status is to indicate whether a corresponding data packet from the plurality of data packets has been completely received at the first stage.

15. A computer-readable storage medium storing one or more instructions that when executed on a processor configure the processor to:

receive at a first stage a plurality of data packets, comprising a data packet, wherein the first stage is to load data corresponding to the received packet in response to a determination that the received packet is a valid expected completion packet with a valid destination;

determine at a second stage whether one or more bits within the data packet are to be shifted and align the bits;

transfer at a third stage the aligned bits; and

store a plurality of entries to indicate read completion status corresponding to the plurality of data packets, wherein a buffer stores data corresponding to the data packet to stall a next transfer received at the first stage for one or more clock cycles in response to a determination that it will take two backend transfers to complete a single frontend transfer of the data packet.

16. The computer-readable storage medium of claim 15 , further comprising one or more instructions that configure the processor to receive the data packet through a physical interface.

17. The computer-readable storage medium of claim 15 , further comprising one or more instructions that configure the processor to cause the second stage to compute a byte count, shift count, first byte enable, and last byte enable of the received data packet.

18. The computer-readable storage medium of claim 15 , wherein the read completion status is to indicate whether a corresponding data packet from the plurality of data packets has been completely received at the first stage.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2007
From: WARD, ROBERT E.
To: LSI LOGIC CORPORATION
Reel/Frame 019347/0457 →