IP Library Granted Patent US 8,977,786
Granted Patent B1
US 8,977,786 · App. 13/954,661 · Granted Mar 10, 2015

Method and system for processing information at peripheral devices

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 8,977,786
App. No.
13/954,661
Granted
Mar 10, 2015
Kind
B1
Abstract

Methods and device coupled to a computing device and a network device are provided. A first module receives a first packet and a second packet via a same single data path from the computing device. A second module receives the first packet at a first buffer via a first path and the second packet at a second buffer via a second path. The first module uses a steering mechanism to steer the first packet in the first path and the second packet in the second path. The second module uses an arbitration module to select the first packet and the second packet for maintaining an order in which the first packet and the second packet are received and for sending the first packet and the second packet to a third module for further processing.

Claims (33)

1. A device coupled to a computing device and a network device, comprising:

a first module for receiving a first packet and a second packet via a same single data path from the computing device;

a second module for receiving the first packet at a first buffer via a first path and the second packet at a second buffer via a second path;

wherein the first buffer stores a header, a payload and validation results for the first packet and the second buffer stores a header, a payload and validation results for the second packet;

wherein the first module uses a steering mechanism to steer the first packet in the first path and the second packet in the second path; and

wherein the second module uses an arbitration module to select the first packet and the second packet for maintaining an order in which the first packet and the second packet are received and for sending the first packet and the second packet to a third module for further processing.

2. The device of claim 1 , wherein the first module is a data link layer (DLL).

3. The device of claim 1 , wherein the second module is a transaction layer.

4. The device of claim 3 , wherein the first packet and the second packet are transaction layer packets.

5. The device of claim 1 , wherein the steering mechanism uses a state machine that selects the first path for the first packet and the second path for the second packet.

6. The device of claim 5 , wherein the steering mechanism sends the first packet to a first checker module for the first path and the second packet to a second checker module for the second path.

7. The device of claim 6 , wherein the first checker module validates the first packet and sends validation results with the first packet to the first module.

8. The device of claim 6 , wherein the second checker module validates the second packet and sends validation results with the second packet to the second module.

9. A machine implemented method for a device coupled to a computing device and a network device, comprising:

receiving a first packet and a second packet by a first module of the device via a same single data path from the computing device;

receiving the first packet at a first buffer via a first path and the second packet at a second buffer via a second path of a second module of the device;

steering the first packet in the first path and the second packet in the second path; and

selecting the first packet and the second packet for maintaining an order in which the first packet and the second packet are received and for sending the first packet and the second packet to a third module for further processing; and

wherein the first buffer stores a header, a payload and validation results for the first packet and the second buffer stores a header, a payload and validation results for the second packet.

10. The method of claim 9 , wherein the first module is a data link layer (DLL).

11. The method of claim 9 , wherein the second module is a transaction layer.

12. The method of claim 11 , wherein the first packet and the second packet are transaction layer packets.

13. The method of claim 9 , wherein a steering mechanism using a state machine selects the first path for the first packet and the second path for the second packet.

14. The method of claim 13 , wherein the steering mechanism sends the first packet to a first checker module for the first path and the second packet to a second checker module for the second path.

15. The method of claim 14 , wherein the first checker module validates the first packet and sends validation results with the first packet to the first module.

16. The method of claim 14 , wherein the second checker module validates the second packet and sends validation results with the second packet to the second module.

17. A non-transitory, machine readable storage medium storing executable instructions, which when executed by a machine, causes the machine to perform a method, the method comprising:

receiving a first packet and a second packet by a first module of the device via a same single data path from the computing device;

receiving the first packet at a first buffer via a first path and the second packet at a second buffer via a second path of a second module of the device;

steering the first packet in the first path and the second packet in the second path; and

selecting the first packet and the second packet for maintaining an order in which the first packet and the second packet are received and for sending the first packet and the second packet to a third module for further processing; and

wherein the first buffer stores a header, a payload and validation results for the first packet and the second buffer stores a header, a payload and validation results for the second packet.

18. The storage medium of claim 17 , wherein the first module is a data link layer (DLL) and the second module is a transaction layer.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2013
From: SONKSEN, BRADLEY S.; MOORE, RICHARD S.
To: QLOGIC, CORPORATION
Reel/Frame 030908/0387 →