Input-output (I/O) devices connected to a data bus follow specific transaction ordering rules. For example, a computer I/O hub connected to a peripheral component interface (PCI) bus preserves an order of the transactions received from an I/O controller through the PCI bus. The I/O hub implements an I/O interface using modified first-in-first-out (FIFO) queues to store the transactions received from the I/O devices in an order that obey PCI ordering rules.
When an I/O controller initiates an ordered sequence of transactions, the I/O hub stores the transactions in the modified FIFO queues and executes the transactions in the order received. A transaction, which comes after earlier transactions, can not be executed until the earlier transactions are executed. Thus, if one transaction is stalled all the remaining transactions will be stalled.