Distributed systems are gaining popularity as they fill the need of next generation systems. Multihost systems provide not only the ability to increase processing bandwidth, but also allow greater system reliability through host failover. These features are becoming increasingly important, especially in next generation storage and communications devices.

The PCI Express specification has been silent with regards to implementing multi processor systems. Because of this, many have assumed that distributed processing cannot be implemented using PCI Express. This, of course, is incorrect; given that PCI Express is software compatible with PCI, and PCI systems have long implemented distributed processing.

PCI was originally designed as an interconnect for personal computers; because of the nature of PCs at that time, the protocol architects did not anticipate the need for multiprocessors. Therefore, they designed the system assuming that the host processor would enumerate the entire memory space. Obviously, if another processor is added, the system operation would fail as both processors would attempt to service the system requests.

This paper outlines how to implement multiprocessor systems using industry standard practices established in the PCI paradigm.