= Computer bus
A <computer bus> connects components through agreed communication paths and transfer rules. On a <shared computer bus>, a <CPU> and a <DMA> engine can both want the same path to <computer memory>: attaching another initiator does not create another independent path. <Bus arbitration> chooses who may start; <bus ownership> states who may use each resource; <bus throughput> measures the useful data delivered. This makes sharing a performance question as well as a correctness question.
\Image[/computer-bus-shared-paths-and-signal-roles.png]
{title=Shared <computer bus> paths, <bus arbitration>, and address, data and control roles}
Back to article page