1. Field of the Invention
The present invention relates to supporting device configuration, specifically, configuration space redirection for virtual devices.
2. Description of the Related Art
Recently, there is an advent of multiple cores and multiple threads for computer systems. Consequently, utilization of cores to represent devices has proliferated. However, present processors cannot be identified as a device because they have no provisions for Peripheral Component Interconnect (PCI) configuration space. Therefore, a need exists for adding a device configuration to a computer system in an extensible manner.
Subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. The claimed subject matter, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
In the following description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the present invention.
An area of current technological development relates to improving utilization of multiple cores and multiple threads. As previously described, present processors cannot be identified as a device because they have no provisions for PCI configuration space. Therefore, a need exists for adding a device configuration to a computer system in an extensible manner. In contrast, a method, apparatus, and system that facilitates adding a single device in an Input/Output Hub (IOH) as a bridge. In one embodiment the claimed subject matter teaches a bridge and method for facilitates access to actual and virtual devices based at least in part on a hierarchy of virtual devices connected to a bus via the bridge and accessed based at least in part on a configuration header and capability pointer to a configure space in a memory image.
An additional device in the IOH, new bridge device 104, is utilized. This new bridge device is a normal PCI bridge device, with a special purpose capability for directing configuration accesses to a memory image of the virtual devices. An example is discussed in further detail in connection with
The memory image column with a memory space and configuration spaces represent the virtual devices. As previously discussed, the shaded devices in cloud 301 are virtual devices and do not really exist in a system. However, their configuration spaces do exist in the configuration space represented in memory. In one embodiment, the configuration spaces are 4K bytes and are accessed based on a capability pointer and are uniquely mapped, a one to one mapping from a virtual device to a specific configuration space. Therefore, any access to a virtual device's configuration space that is behind the bridge (in cloud 301) is directed to memory.
In this embodiment, the offset register 402 would have values for a device number, adjusted bus number, and a function.
As previously discussed, the BIOS could be used for initialization of memory space and for the bridge handling configuration space accesses as utilized by one embodiment of the claimed subject matter. In order to facilitate the bridge device 104 handling the configuration space accesses, in one embodiment, the BIOS is responsible for initializing the memory space and the bridge device. In this embodiment, the BIOS supports the header information, discussed in connection with
Therefore, the BIOS has set all values. Subsequently, the bridge device 104 is responsible for the configuration space accesses. If the operation is a read, the IOH reads the appropriate memory location and returns that value as that of the configuration access. If the operation is a configuration write, an interrupt is generated (mentioned above) to the CPU, with address and data locations to be specified. The CPU receives the interrupt, and updates the configuration space appropriately based on the address and data information. When the configuration space is correctly updated, the CPU writes a completion register (IOH defined), and the write operation is completed.
Although the claimed subject matter has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiment, as well as alternative embodiments of the claimed subject matter, will become apparent to persons skilled in the art upon reference to the description of the claimed subject matter. It is contemplated, therefore, that such modifications can be made without departing from the spirit or scope of the claimed subject matter as defined in the appended claims.