Hardware Optimization Indication
Original Publication Date: 2003-May-01
Included in the Prior Art Database: 2003-May-01
PCI and PCI-X and futures PCI versions of systems move toward larger and larger configurations with remote I/O capabilities, there needs to be real-time feedback during the installation of a device or option to help the user optimize for the best system performance. Today each PCI / PCI-X controller / Bridge or hot plug controller only have local information about current PCI / PCI-X configuration and no knowledge of remote i/o or configuration. The following gives ideas and concepts on how to address these problems and some solutions.
Hardware Optimization Indication
The first most basic type of user indicator is the speed and mode of a given bus. The user will be able to look at any particular slot indication to see the mode and speed at which it is running. With the speed determining algorithm as well as control over the speed and mode of the specific buses, the hot plug controller is able to send the appropriate information signals back out to the user via specified output (visual most likely in the form of LED's but not limited to that). The controller has the speed and mode determined already by the logic shown in the following diagram.
In PCI/PCI-X capable systems, the user cannot determine the mode or speed a particular PCI card/slot is running. This indication invention will provide a visual determinant to be output to the user through signals supplied by the hot plug controller
The user will be able to look at any particular slot indication to see the mode and speed at which it is running. With the speed determing algorithm as well as control over the speed and mode of the specific buses, the hot plug controller is able to send the appropriate information signals back out to the user via specified output (visual most likely in the form of LED's but not limited to that). The controller has the speed and mode determined already by the logic shown in the following diagram (D-1)
The next step is to givet all devices knowledge of the complete configuration, which each local bridge/controller can determination of configuration options across the whole system. The first approach is to use a distributed state through the bridge,
controller, or hot plug controller.
This takes use of existing BUS functions and expand them to give them a truly distributive view of a multi-bus hardware configuration.
At boot time each bridge should read the bus information from each controller and store the information in the user registers. After gathering this information each bridge would then have the total bus configuration to allow a global system view.
In the event of a bus configuration change (i.e. hot add, hot removed, etc) each controller is notified of a change and the new information is redistributed to all bridges / hot plug controllers.
A simple example of this mechanism would be that a device is hot added and the hot plug controller does a configuration write to each other controller (This tells the other controllers he has stale data). Then each controller could the read the new information from the controller.
Each bridge / hot plug controller could intelligently determine where to place hardware during a hot plug event, thus allowing optimized placement of adapte...