Multiplexing offers two advantages. On one hand, multiplexing allows an architect
to design a bus that has fewer lines. On the other hand, if the number of lines in a bus
is fixed, multiplexing produces higher overall performance. To see why, consider a
data transfer. If K of the lines in the bus are reserved for addresses, those K lines cannot
be used during a data transfer. If all the lines are shared, however, an additional K
bits can be transferred on each bus cycle, which means higher overall throughput.
Despite its advantages, multiplexing does have two disadvantages. First, multiplexing
takes more time because a store operation requires two bus cycles (i.e., one to
transfer the address and another to transfer the data item). Second, multiplexing requires
a more sophisticated bus protocol, and therefore, more complex bus interface
hardware. Despite the disadvantages, however, most architects choose designs that use
multiplexing. In the extreme case, a bus can be designed that multiplexes control information
over the same set of lines used for data and addresses.