Computer bus (source code)

= 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}