IP Library Granted Patent US 6,976,115
Granted Patent B2
US 6,976,115 · App. 10/112,344 · Granted Dec 13, 2005

Peer-to-peer bus segment bridging

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 6,976,115
App. No.
10/112,344
Granted
Dec 13, 2005
Kind
B2
Abstract

A method and apparatus are described for facilitating proper ordering of peer-to-peer communications between bridged bus segments. According to one embodiment of the present invention a fence command is issued when a peer-to-peer communication between devices on separate bus segments connected on the same side of a bridge is detected. The fence command is inserted into a plurality of buffers in an I/O hub corresponding to the bus segments to force temporary ordering across all pipes of the I/O hub. The hub prohibits processing of subsequent commands from a buffer once a fence command has been read from that buffer until a corresponding fence command is read from all other buffers in the plurality of buffers therby assuring proper ordering of the peer-to-peer communication.

Claims (43)

1. A method comprising:

monitoring a plurality of buses connected to a first side of a bridge, the plurality of buses comprising at least a first bus and a second bus;

determining whether a write command issued on the first bus by a first device is a peer-to-peer write command directed to a second device on the second bus; and

based on the determining, issuing a fence command into a first command buffer coupled to the first bus and into a second command buffer coupled to the second bus, the fence commands determining an ordering of commands in the first and second command buffers, and causing pending input/output transactions to be temporarily ordered in response to determining the write command is a peer-to-peer write command.

2. The method of claim 1 , wherein said determining whether the write command is a peer-to-peer write command is performed by the bridge.

3. The method of claim 1 , wherein said determining whether the write command is a peer-to-peer write command is performed by the first device.

4. The method of claim 1 , wherein an I/O hub is coupled to a second side of the bridge.

5. The method of claim 1 , wherein the first and second buffers comprise a plurality of queues.

6. The method of claim 1 , wherein said issuing is performed by the bridge.

7. The method of claim 1 , wherein said issuing is performed by the first device.

8. The method of claim 1 , wherein the first bus is a PCI bus.

9. The method of claim 1 , wherein the second bus is a PCI bus.

10. The method of claim 1 , further comprising:

reading a first buffer of a plurality of buffers in en the I/O hub;

determining whether the fence command has been read, the fence command indicating a need to temporarily order processing of the plurality of buffers; and

responsive to determining the fence command has been read from the first buffer, prohibiting processing of subsequent commands from the first buffer until a corresponding fence command is read from all other buffers in the plurality of buffers.

11. The method of claim 1 , further comprising labeling the write command with an identifier of the second bus.

12. An apparatus comprising:

an internal bus;

a plurality of buffers coupled with the internal bus;

a physical hulk to a plurality of external, independent buses; and

a processor to determine whether a write command issued by a first device on a first bus of the plurality of buses is a peer-to-peer write command directed to a second device on a second bus of the plurality of independent buses and, based on this determination, to issue a fence command into each of the plurality of buffers, the fence commands determining an ordering of commands in the plurality of buffers, and to cause pending input/output transactions to be temporarily ordered in response to determining the write command is a peer-to-peer write command.

13. The apparatus of claim 12 , wherein the plurality of buffers comprises a plurality of queues.

14. The apparatus of claim 12 , wherein the pending input/output transactions are temporarily ordered through an I/O hub coupled to one side of a bridge.

15. The apparatus of claim 12 , wherein the first bus is a PCI bus.

16. The apparatus of claim 12 , wherein the second bus is a PCI bus.

17. The apparatus of claim 12 ,

wherein the processor is further to read a first buffer of a the plurality of buffers into the I/O hub, determine whether a fence command has been read, the fence command indicating a need to temporarily order processing of the plurality of buffers, and responsive to determining a fence command has been read from the first buffer, prohibit processing of subsequent commands from the first buffer until a corresponding fence command is read from all other buffers in the plurality of buffers.

18. The apparatus of claim 17 , wherein the plurality of buffers in the I/O hub correspond to a plurality of devices on one or more buses connected with the bridge, the bridge being connected with the I/O hub.

19. A machine-readable medium having stored thereon data representing sequences of instructions, the sequences of instructions which, when executed by a processor, cause the processor to:

monitor a plurality of buses connected to a first side of a bridge, the plurality of buses comprising at least a first bus and a second bus;

determine whether a write command issued on the first bus by a first device is a peer-to-peer write command directed to a second device on the second bus; and

based on the determining, issue a fence command into a first command buffer coupled to the first bus and into a second command buffer coupled to the second bus, the fence commands determining an ordering of commands in the first and second command buffers, and cause pending input/output transactions to be temporarily ordered in response to determining the write command is a peer-to-peer write command.

20. The machine readable medium of claim 19 , wherein an I/O hub is coupled to a second side of the bridge.

21. The machine-readable medium of claim 19 , wherein the first and second buffers comprises a plurality of queues.

22. The machine-readable medium of claim 19 , wherein said bridge issues the fence command.

23. The machine-readable medium of claim 19 , wherein said first device issues the fence command.

24. The machine-readable medium of claim 19 , wherein the first bus is a PCI bus.

25. The machine-readable medium of claim 19 , wherein the second bus is a PCI bus.

26. The machine-readable medium of claim 19 , further comprising sequences of instructions which, when executed by the processor, cause the processor to:

read a first buffer of a plurality of buffers in the I/O hub;

determine whether the fence command has been read, the fence command indicating a need to temporarily order processing of the plurality of buffers; and

responsive to determining the fence command has been read from the first buffer, prohibit processing of subsequent commands from the first buffer until a corresponding fence command is read from all other buffers in the plurality of buffers.

Assignments (2)
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2023
From: GRASSHOPPER BANK, N.A.
To: POSTPROCESS TECHNOLOGIES, INC.
Reel/Frame 064383/0886 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →