Claims
- 1. A method of accessing a configuration data space for a device, the device being connected to a processor through an interconnect, the method comprising:
receiving a request from the processor to access the processor's addressable space, the request being generated in response to an instruction intended to access the device's configuration data space; accessing a map between the device's configuration data space and the processor's addressable space, the map having previously mapped the device's configuration data space to one or more pages of the processor's addressable space; and translating, using the map, the request from the processor into a configuration cycle on the interconnect to access the device's configuration data space.
- 2. The method of claim 1 wherein:
the one or more pages of processor addressable space are in a memory address space of the processor, and the instruction comprises a memory-address-space instruction.
- 3. The method of claim 2 further comprising:
mapping the device's configuration data space to one or more pages of the processor's memory address space; and mapping the configuration data space of an additional device to one or more different pages of memory in the processor's memory address space.
- 4. The method of claim 1 wherein:
the one or more pages of processor addressable space are in a third address space of the processor, the processor having at least three address spaces, including a memory address space, an input-output address space, and the third address space, and the instruction comprises a third-address-space instruction.
- 5. The method of claim 1 further comprising mapping the device's configuration data space to one or more pages of the processor's addressable space.
- 6. The method of claim 1 wherein the instruction comprises an atomic operation.
- 7. The method of claim 1 wherein the configuration data space of the device and one page of memory in the processor's addressable space both have the same size.
- 8. The method of claim 1 wherein the configuration data space of the device is mapped to two pages of memory in the processor's addressable space.
- 9. The method of claim 1 wherein:
the interconnect is a PCI, the device is a PCI-compatible input-output device, and the mapping and the instruction are backward-compatible with PCI.
- 10. The method of claim 1 wherein the device is selected from the group consisting of a bridge, a switch, and a memory device.
- 11. The method of claim 1 wherein the instruction comprises an instruction selected from the group consisting of a read instruction and a write instruction.
- 12. The method of claim 1 wherein the instruction to access the device's configuration data space is part of an attempt to detect the device.
- 13. The method of claim 1 wherein the instruction to access the device's configuration data space is part of an attempt to configure the device.
- 14. A computer program, residing on a computer-readable medium, for accessing a configuration data space for a device connected to a processor through an interconnect, the computer program comprising instructions for causing a computer to perform the following operations:
receive a request from the processor to access the processor's addressable space, the request being generated in response to receiving an instruction intended to access the device's configuration data space; access a map between the device's configuration data space and the processor's addressable space, the map having previously mapped the device's configuration data space to one or more pages of the processor's addressable space; and translating, using the map, the request on the processor bus into a configuration cycle on the interconnect to access the device's configuration data space.
- 15. The computer program of claim 14 wherein:
the one or more pages of processor addressable space are in a memory address space of the processor, and the instruction comprises a memory-address-space instruction.
- 16. The computer program of claim 15 wherein the configuration data space of the device and one page of memory in the processor's memory address space both have the same size.
- 17. The computer program of claim 14 wherein the request comprises an access cycle.
- 18. An apparatus comprising:
a device; an interconnect; and a controller connected to the device through the interconnect, the controller being programmed to:
receive a request from a processor to access the processor's addressable space, the request being generated in response to an instruction intended to access the device's configuration data space, access a map between the device's configuration data space and the processor's addressable space, the map having previously mapped the device's configuration data space to one or more pages of the processor's addressable space, and translate, using the map, the request on the processor bus into a configuration cycle on the interconnect to access the device's configuration data space.
- 19. The apparatus of claim 18 wherein:
the one or more pages of processor addressable space are in a memory address space of the processor, and the instruction comprises a memory-address-space instruction.
- 20. The apparatus of claim 19 wherein the memory-address-space instruction comprises an atomic operation.
- 21. A method of communicating between a processor and a device connected to an interconnect, the method comprising:
mapping a configuration data space of the device to one or more pages of memory in the processor's addressable space; and executing an instruction to access the device's configuration data space over the interconnect.
- 22. The method of claim 21 wherein:
the one or more pages of memory are part of a memory address space of the processor, and the instruction comprises a memory-address-space instruction.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to U.S. application Ser. No. ______ (Attorney Docket No. 10559/546001/P12566), entitled “Device Virtualization and Assignment of Interconnect Devices,” being filed concurrently herewith.