A bus is a digital communication mechanism that allows two or more functional
units to transfer control signals or data. Most buses are designed for use inside a single
computer system; some are used within a single integrated circuit. Many bus designs
exist because a bus can be optimized for a specific purpose. For example, a memory
bus is intended to interconnect a processor with a memory system, and an I/O bus is intended
to interconnect a processor with a set of I/O devices. We will see that generalpurpose
designs are possible.