I/O buses, unlike memory buses, operate asynchronously. Requests for bus access must be arbitrated among the devices involved.
Bus control lines activate the devices when they are needed, raise signals when errors have occurred, and reset devices when necessary.
The number of data lines is the width of the bus.
A bus clock coordinates activities and provides bit cell boundaries.