The PCI-X bus gives you the speed you need for modern devices such as SANs and graphics, but it also offers the opportunity for problems.
Although it is based on the PCI bus, which has been around since the early 1990s, PCI-X expands the data path and increases throughput up to 1 gigabit per second burst speed. However, this also means PCI-X is more complex than PCI and more subject to interference, crosstalk and other problems.
Troubleshooting a PCI-X bus is best done with a four-step process. Here, I'll start with the simplest troubleshooting process and work up to the more complex.
This involves testing reads, writes, signal continuity and other fundamental operations. This is fairly straightforward and not terribly different from running down a problem on a PCI bus. Of course, because of the higher bus speeds, wider bus and larger block sizes, the test equipment needs to be more sophisticated than what is used for PCI bus testing.
The advanced functions of the PCI-X bus are harder to test and should be tested only after you've thoroughly tested the basic functions.
A good example is testing split transactions on PCI-X bus. Any transaction other than a memory write can be split on the PCI-X bus and completed later. This allows pipelining transactions and generally more efficient use of the bus. However, it poses problems for testing since you need to test the completion of the transaction with different time delays. This requires a more sophisticated approach to testing and, probably, more sophisticated test equipment.
Pinpoint the errors
Basic and advanced function testing should locate the errors in the device under test. However, they usually won't tell you what is causing the problems. To discover what is causing the problems, you've got to be able to work backwards from the error to its source.
One thing that is very handy at this stage is to be able to repeat the error at will. Since a lot of errors, such as timing errors, typically don't show up every time an operation is performed, it's useful to have something that can reproduce the error while holding everything else constant. This usually requires a test card or other equipment specifically designed for testing PCI-X buses. A logic analyzer is helpful here as well.
Check in with the real world
When you feel you've got the problem licked, you're ready for the fourth step in testing: Running real-world applications to see how the system performs.
You should test the applications extensively before you declare the problem is solved. Of course, you can simply wait to see if the failure repeats itself, but one of the best ways to extract the maximum information from the test is to use a protocol analyzer to monitor what is happening on the bus.
Rick Cook has been writing about mass storage since the days when the term meant an 80 K floppy disk. The computers he learned on used ferrite cores and magnetic drums. For the last 20 years he has been a freelance writer specializing in storage and other computer issues.
Fast Guide: Peripheral Component Interconnect (PCI)
A primer on PCI devices
Four ways to troubleshoot PCI-X
Three reasons to choose PCIe over PCI-X technology