A mechanism is provided for reordering
bus transactions to increase
bus utilization in a computer
system in which a split-transaction
bus is bridged to a single-envelope bus. In one embodiment, both masters and slaves are ordered, simplifying implementation. In another embodiment, the
system is more loosely coupled with only masters being ordered. Greater bus utilization is thereby achieved. To avoid
deadlock, transactions begun on the split-transaction bus are monitored. When a combination of transactions would, if a predetermined further transaction were to begin, result in
deadlock, this condition is detected. In the more tightly coupled
system, the predetermined further transaction, if it is requested, is refused, thereby avoiding
deadlock. In the more loosely-coupled system, the flexibility afforded by unordered slaves is taken
advantage of to, in the typical case, reorder the transactions and avoid deadlock without killing any transaction. Where a
data dependency exists that would prevent such reordering, the further transactions is killed as in the more tightly-coupled embodiment. Data dependencies are detected in accordance with address-
coincidence signals generated by slave devices on a cache-line basis. In accordance with a further optimization, at least one slave device (e.g.,
DRAM) generates page-
coincidence bits. When two transactions to the slave device are to the same address page, the transactions are reordered if necessary to ensure that they are executed one after another without any intervening transaction. Latency of the slave is thereby reduced.