Distributed computer system supporting remote interrupts and lock mechanism
First Claim
1. A method of executing a locked transaction over a distributed computer system to a remotely located I/O resource, the distributed computer system comprising a host computer and a remotely located I/O resource that is coupled to the host computer via a network, said method comprising the steps of:
- detecting a locked host transaction on a host computer that is targeted to a remotely located I/O resource;
wrapping the locked transaction in a packet for transmission over a network, the packet including a field indicating that the transaction is locked;
transmitting the packet over the network to the remote I/O resource;
unwrapping he packet received at the I/O resource;
converting the locked host transaction to a locked I/O transaction;
determining if the targeted resource is already locked by another host; and
if the targeted I/O resource is not locked by another host computer, then replaying the locked transaction to the targeted I/O resource.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed computer system includes a host CPU, a network/host bridge, a network/I/O bridge and one or more I/O devices. The host CPU can generate a locked host transaction, which is wrapped in a packet and transmitted over a network to the remote I/O device for replay. The remote I/O devices can generate interrupts. The interrupt is wrapped in a packet and transmitted to the host computer for replay as an interrupt. The host CPU then executes the appropriate interrupt service routine to process the interrupt routine. The remote location of the I/O device with respect to the host CPU is transparent to the CPU and I/O devices. The bridges perform wrapping and unwrapping of host and I/O transactions for transmission across a network.
-
Citations
16 Claims
-
1. A method of executing a locked transaction over a distributed computer system to a remotely located I/O resource, the distributed computer system comprising a host computer and a remotely located I/O resource that is coupled to the host computer via a network, said method comprising the steps of:
-
detecting a locked host transaction on a host computer that is targeted to a remotely located I/O resource;
wrapping the locked transaction in a packet for transmission over a network, the packet including a field indicating that the transaction is locked;
transmitting the packet over the network to the remote I/O resource;
unwrapping he packet received at the I/O resource;
converting the locked host transaction to a locked I/O transaction;
determining if the targeted resource is already locked by another host; and
if the targeted I/O resource is not locked by another host computer, then replaying the locked transaction to the targeted I/O resource. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of executing a locked transaction over a distributed computer system to a remotely located I/O resource, the distributed computer system comprising a host computer and a remotely located I/O resource that is coupled to the host computer via a network, said method comprising the steps of:
-
detecting a locked host transaction on a host computer that is targeted to a remotely located I/O resource;
identifying, based on the memory address of the locked host read transaction, that the host transaction is directed to the I/O resource that is remotely located from the host computer;
wrapping the locked transaction in a packet for transmission over a network, the packet including a field indicating that the transaction is locked;
transmitting the packet over the network to the remote I/O device;
unwrapping the packet received at the I/O device;
converting the locked host transaction to a locked I/O transaction;
confirming that the targeted I/O resource is not already locked by another host computer;
if the targeted I/O resource is not locked by another host computer, then outputting the locked read transaction to the targeted I/O resource;
otherwise, if the targeted I/O resource is locked by another host computer, then sending a rejection packet over the network to the host computer rejecting the locked read request.
-
-
9. A distributed computer system comprising:
-
a host CPU;
a network/host bridge coupled to the host CPU, said network/host bridge adapted to detect a locked host transaction directed to a remotely located target I/O resource and wrap the host transaction in a packet for transmission over a network, said packet including a field indicating that the transaction is locked;
a network/I/O bridge coupled to the network/host bridge via a network, said network/I/O bridge adapted to receive and unwrap the packet and replay the locked transaction over an I/O bus to the targeted I/O resource.
-
-
10. A method of processing a remote interrupt in a distributed computer system, the distributed computer system comprising a host computer and a plurality of remotely located I/O devices, each of the I/O devices coupled to the host computer via a network, said method comprising the steps of:
-
generating an interrupt at one of the remote I/O devices;
wrapping and transporting the interrupt over the network to the host computer;
unwrapping and replaying the interrupt to the host computer;
generating, wrapping and transmitting one or more host read transactions to one or more remote I/O devices in response to the replayed interrupt;
unwrapping and replaying the read transactions to the one or more remote I/O devices;
obtaining information identifying the I/O device that generated the interrupt;
wrapping and transmitting the information identifying the I/O device that generated the interrupt to the host computer;
executing an interrupt service routine associated with the I/O device that generated the interrupt based on the information identifying the I/O device. - View Dependent Claims (11, 12)
the host computer issuing one or more I/O bus scan transactions to identify any interrupt driven I/O devices;
generating and transmitting one or more query packets requesting an identification of any remotely located I/O devices that are interrupt driven;
generating and transmitting one or more reply packets that identify the remote I/O devices that are interrupt driven; and
receiving and unwrapping the reply packets and generating an interrupt table for the identified remote I/O devices.
-
-
13. A method of processing a remote interrupt in a distributed computer system, the distributed computer system comprising a host computer and a plurality of remotely located I/O devices, each of the I/O devices coupled to the host computer via a network, said method comprising the steps of:
-
generating an interrupt at one of the remote I/O devices;
generating an interrupt packet;
transmitting the interrupt packet over the network to the host computer;
receiving and unwrapping the interrupt packet;
replaying the interrupt to the host computer in response to the unwrapped interrupt packet;
obtaining the address of an interrupt service routine associated with the interrupt;
the host computer issuing one or more host read transactions sent over the network to read pending interrupt registers in one or more of the remote I/O devices in order to identify the remote I/O device that issued the interrupt;
wrapping the values read from the pending interrupt registers in one or more reply packets and transmitting the reply packets over the network back to the host computer;
receiving and unwrapping the reply packets;
determining which I/O device issued the interrupt based on the values of the pending interrupt registers; and
executing an interrupt service routine associated with the identified I/O device.
-
-
14. A distributed computer system comprising:
-
an I/O device to generate an interrupt;
a network/I/O bridge coupled to the I/O device via an I/O bus, said network/I/O bridge to detect the interrupt and generate and transmit an interrupt packet via a network;
a network/host bridge coupled to the network/I/O bridge via a network, said network/host bridge to detect an interrupt packet and output an interrupt in response thereto onto a host bus;
a host CPU coupled to the network/host bus via the host bus, said host CPU to acknowledge the interrupt and execute an interrupt service routine of the remote I/O device that generated the interrupt; and
the network/host bridge to obtain information identifying the I/O device that generated the interrupt through one or more packets transmitted to or received from the network/I/O bridge.
-
-
15. A method comprising:
-
a host computer issuing one or more I/O bus scan transactions to identify one or more interrupt driven I/O devices which are coupled to the host computer via a network;
generating one or more query packets requesting an identification of any remotely located I/O devices that are interrupt driven in response to the bus scan transactions;
transmitting the one or more query packets over a network to one or more I/O devices in response to the one or more bus scan transactions;
generating one or more reply packets that identify the remote I/O devices that are interrupt driven in response to the one or more query packets;
transmitting the reply packets over the network to the host computer; and
receiving and unwrapping the reply packets to identify the interrupt driven I/O devices. - View Dependent Claims (16)
-
Specification