Claims
- 1. In a multi-node computer system including a plurality of CPUs communicatively coupled to a plurality of switches, each switch communicatively coupled to at least one network interface controller (NIC), a method for routing a processor input/output (PIO) write reference from a CPU to a NIC connected to a switch that is local to the CPU, the method comprising:
receiving the PIO write reference, the reference including an address and data; responsive to the address indicating a local NIC alias, generating a modified address, based on the address, the modified address including an address of a NIC local to a switch that is connected to the CPU that issued the PIO write reference; and routing the data to the modified address.
- 2. The method of claim 1, wherein the address further includes a base field, and wherein the method further comprises comparing the base field with a NIC base register to determine whether the PIO write reference is made to the NIC.
- 3. The method of claim 1, wherein each PIO write reference includes all the information required for the NIC to send the data to its destination.
- 4. The method of claim 1, wherein the address further comprises a switch ID (SWID) field, and wherein the step of generating a modified address further comprises:
replacing the SWID field with a local SWID of the NIC local to the switch that is connected to the CPU that issued the PIO write reference.
- 5. A multi-node computer system comprising:
a plurality of CPUs for issuing a PIO write reference, each reference including an address; a plurality of switches, each switch communicatively coupled to at least one CPU for routing the PIO write reference to a network interface controller (NIC); a plurality of NICs, each NIC communicatively coupled to at least one of the plurality of switches for routing the PIO write reference on a network; and a plurality of alias decoders, each alias decoder residing in one of the plurality of switches, for generating a modified address based on the address, the modified address including an address of a NIC local to a switch that is connected to the CPU that issued the PIO write reference.
- 6. The system of claim 5, further comprising a plurality of address decoders, each address decoder residing in one of the plurality of switches, for routing the PIO write reference to the modified address.
- 7. The system of claim 5, wherein the address used in the PIO write reference further comprises a size field indicating a number of cache lines that can be written in a memory-mapped input/output (MMIO) window.
- 8. The system of claim 5, wherein the address used in the PIO reference further comprises a cache line offset field indicating the size of each cache line written in an MMIO window.
- 9. The system of claim 5, wherein each switch further comprises a NIC base register for indicating where the NICs are mapped in an MMIO window.
- 10. The system of claim 9, wherein the NIC base register stores a programmed constant.
- 11. The system of claim 5, wherein each switch is capable of recognizing the PIO write reference to the MMIO window in any switch.
- 12. The system of claim 5, wherein each PIO write reference to a NIC includes all information required for the NIC to send data to its destination.
- 13. In a multi-node computer system including a plurality of CPUs communicatively coupled to a plurality of switches, each switch communicatively coupled to at least one network interface controller (NIC), a method for routing a processor input/output (PIO) write reference from a CPU to a NIC connected to a switch that is local to the CPU, the method comprising:
receiving the PIO write reference, including an address, the address including a base address and a switch ID (SWID); comparing the base address with a NIC base register to determine whether the PIO write reference is made to a NIC; responsive to the PIO write reference being made to the NIC, determining whether the SWID has a specified value indicating a local NIC alias; and responsive to the SWID having a specified value indicating a local NIC alias, replacing the SWID field with a local SWID.
- 14. The method of claim 13, wherein each PIO reference includes a data packet, and wherein each PIO reference to a NIC includes all the information required for the NIC to send the data packet to its destination.
- 15. The method of claim 13, wherein the local SWID is an ID of the switch connected to the CPU that issued the PIO write reference.
- 16. The method of claim 13, wherein the local NIC alias is a region in an MMIO window that allows the PIO write reference to be routed to the NIC connected to a switch local to the CPU that issued the reference.
- 17. A distributed multi-node computer system comprising:
processor means for issuing a processor input/output (PIO) reference, the PIO reference including an address; switching means for routing the PIO reference to a network interface controller (NIC); and alias dedcoding means for receiving the address used in the PIO reference and for generating a modified address, based on the received address, the modified address indicating the NIC connected to the switching means local to processor means that issued the PIO write reference.
RELATED APPLICATION
[0001] This application claims priority under 35 U.S.C. § 119(e) from U.S. provisional application No. 60/386, 301, entitled “HARDWARE MECHANISM TO IMPROVE PERFORMANCE IN A MULTI-NODE COMPUTER SYSTEM”, filed on Jun. 29, 2001 by Jeremy J. Farrell, Kazunori Masuyama, Sudheer Miryala, and Patrick N. Conway, which provisional application is incorporated herein by this reference in its entirety.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60386301 |
Jun 2002 |
US |
|
60301886 |
Jun 2001 |
US |