18.5.2 Weakly ordered memory transactions

Some processors, such as those in IPF platforms, have weakly ordered memory models. With weak ordering, system memory transactions may complete in a different order than the source code would seem to indicate. A PCI driver should be implemented so that the source code is compatible with as many processors and platforms as possible. As a result, the guidelines on the use of the EDK II library BaseLib function MemoryFence()(see the next discussion) should be followed even if the driver is not initially implemented for an IPF platform. The techniques shown here do not have any impact on the executable size of a driver for strongly ordered processors such as IA32, X64, and EBC.