Datapaths and Microoperations
In most digital system designs, we partition the system into two types of modules: a datapath, which performs the actual data-processing operations, and a control unit, which determines the sequence of those operations. Slide 7-1 shows the general relationship between a datapath and a control unit. Control signals are binary signals that activate the various data-processing operations. To activate a sequence of such operations, the control unit sends the proper sequence of control signals to the datapath. The control unit, in turn, receives status signals from the datapath. These binary variables describe aspects of the “state” of the datapath. The control unit uses these variables to “orchestrate” the specific sequence of operations to be performed. Note that the datapath and control unit may also interact with other parts of a digital system, such as memory and input-output logic, through the paths labeled data inputs, data outputs, control inputs, and control outputs.
Datapaths are best defined by their registers and the operations that are performed on the binary information stored in the registers. In fact, registers are the “bread and butter” of computer design. They are both the source and destination of almost all computer operations. Examples of register operations are increment, shift, count, clear and load. The movement of data stored in registers and the processing performed on the data are referred to as register transfer operations. The register transfer operations of digital systems are specified by the following three basic components:
• The set of registers in the system
• The operations that are performed on the data stored in the registers
• The control that “orchestrates” the sequence of operations in the system
A register has the capability to perform one or more elementary operations such as increment, shift, add, subtract and load. For example, as we’ve studied, a bi-directional shift register has the ability to shift the contents of the register one bit to the left or to the right. An up-down counter is a register that can either increment or decrement the contents of the register by 1. A flip-flop is a one-bit register that can be set or cleared.
The elementary operations performed on the data stored in registers are called microoperations. Examples of microoperations are transferring the contents of one register to another, adding the contents of two registers, incrementing (or decrementing) a register and shifting a register. Describing microoperations as elementary (i.e. atomic, primitive) refers to the characteristic that the operations are performed during one clock cycle on the information stored in one or more of the registers. Most of the digital functions introduced earlier were registers that lend themselves to these typical microoperations.