IP Library Granted Patent US 7,676,617
Granted Patent B2
US 7,676,617 · App. 12/059,449 · Granted Mar 9, 2010

Posted memory write verification

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,676,617
App. No.
12/059,449
Granted
Mar 9, 2010
Kind
B2
Abstract

A method for verifying the proper communication of data packets from an initiator device on a PCIe data bus to a target device on the data bus. A target-specific counter on the initiator is synchronized to an initiator-specific counter on the target with the same value. The initiator writes the value of the target-specific counter into the tag field of the packet header, and also writes an identifier of the initiator into the header. Then the initiator sends the packet to the target on the PCIe data bus. Upon receipt of the packet, the target reads the identifier and checks the value against the appropriate initiator-specific counter on the target. When the value is not equal to the initiator-specific counter on the target, then it generates an error message. An additional memory write with specific data is posted from the initiator to the target. A memory read is posted of the additional memory write location from the initiator to the target. The operation of the initiator is continued when a good status and data matching the additional write data is returned from the target, and operation is halted when an error status is returned or data that does not match the additional write data.

Claims (29)

1. A method of verifying proper communication of data packets from one of a plurality of initiator devices on a data bus to one of a plurality of target devices on the data bus, the method comprising the steps of:

synchronizing a target-specific counter selected from a plurality of target-specific counters on the initiator device where one each of the plurality of target-specific counters is associated with one each of the plurality of target devices on the data bus, and an initiator-specific counter selected from a plurality of initiator-specific counters on the target device, where one each of the plurality of initiator-specific counters is associated with one each of the plurality of initiator devices on the data bus, with a common counter value,

with the initiator device, writing the counter value of the target-specific counter on the initiator device into a header for the packet,

sending the packet from the initiator device to the target device on the data bus,

upon receipt of the packet by the target device, checking the counter value written into the header of the packet with the initiator-specific counter on the target device, and

when the counter value written into the header of the packet is not equal to the initiator-specific counter on the target device, then generating an error message with the target device.

2. The method of claim 1 , wherein the communication bus is a PCIe bus.

3. The method of claim 1 , wherein the communication bus is a PCI-X bus.

4. The method of claim 1 , wherein the initiator device writes the counter value into a tag field of the header of the packet.

5. The method of claim 1 , wherein the initiator device further indicates to the target device which initiator-specific counter the target device should check the counter value written into the header of the packet against, by writing an identifier of the initiator device into the packet header.

6. The method of claim 1 , further comprising the steps of:

Posting an additional memory write with specific data to the target,

posting a memory read of the additional memory write location from the initiator device to the target device, and

continuing operation of the initiator device when a completion is returned with a good status and data matching the additional memory write data from the target device to the initiator device.

7. The method of claim 1 , further comprising the steps of:

Posting an additional memory write with specific data to the target,

posting a memory read of the additional memory write location from the initiator device to the target device, and

halting operation of the initiator device when a completion is returned with at least one of an error status and data not matching the additional memory write data from the target device to the initiator device.

8. A method of verifying proper communication of data packets from one of a plurality of initiator devices on a PCIe data bus to one of a plurality of target devices on the data bus, the method comprising the steps of:

synchronizing a target-specific counter selected from a plurality of target-specific counters on the initiator device, where one each of the plurality of target-specific counters is associated with one each of the plurality of target devices on the data bus, and an initiator-specific counter selected from a plurality of initiator-specific counters on the target device, where one each of the plurality of initiator-specific counters is associated with one each of the plurality of initiator devices on the data bus, with a common counter value,

with the initiator device,

writing the counter value of the target-specific counter on the initiator device into a tag field of a header for the packet, and

writing an identifier of the initiator device into the packet header,

sending the packet from the initiator device to the target device on the PCIe data bus,

upon receipt of the packet by the target device, reading the identifier and checking the counter value written into the header of the packet with the initiator-specific counter on the target device,

when the counter value written into the header of the packet is not equal to the initiator-specific counter on the target device, then generating an error message with the target device,

posting an additional memory write with specific data to the target, posting a memory read of additional memory write location from the initiator device to the target device,

continuing operation of the initiator device when a completion is returned with a good status and data matching the additional memory write data from the target device to the initiator device, and

halting operation of the initiator device when the completion is returned with at least one of an error status and data not matching the memory write data from the target device to the initiator device.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED AT REEL: 047195 FRAME: 0827. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Nov 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047924/0571 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0827 →
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 →
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 Mar 31, 2008
From: KLOEPPNER, JOHN R.
To: LSI CORPORATION
Reel/Frame 020729/0121 →