An efficient system and method for managing reads and writes on a bi-directional
bus to optimize bus performance while avoiding bus contention and avoiding read/write
starvation. In particular, by intelligently managing reads and writes on a bi-directional
bus, bus latency can be reduced while still ensuring no bus contention or read/write
starvation. This is accomplished by utilizing bus streaming control logic, separate
queues for reads and writes, and a simple 2 to 1 mux.