Architecture:Major Components of a Microprocessor
Major Components of a Microprocessor
The main hardware of a microprocessor system can be divided into sections according to their functionalities. A popular approach is to divide a system into four subsystems: the central processor, the memory subsystem, the input/output (I/O) subsystem, and the system interconnect. Figure 66.1 shows the connection between these subsystems. The main components and characteristics of these subsystems will be described.
Central Processor
A modern microprocessor system’s central processor is typically further divided into control unit and data path.
Control Unit
The control unit of a microprocessor generates the control signals to orchestrate the activities in the data path. There are two major types of communication lines between the control unit and the data path: the control lines and the condition lines. The control lines deliver the control signals from the control unit to the data path. Different signal values on these lines trigger different actions in the data path. The condition lines carry the status of the execution from data path to the control unit. These lines are needed to test conditions involving the registers in the data path to make future control decisions. Note that the decision is made in the control unit but the registers are in the data path. Therefore, the conditions regarding the register contents are formed in the data path and then communicated to the control unit for decision making. A control unit can be implemented with hardwiring, microprogramming, or a combination of both.
A hardwired control unit is designed as a finite-state machine that is realized with registers, combinational logic, and wires. Once constructed, the design can be changed only through physically rewiring the unit. Therefore, the resulting circuits are called hardwired control units. Design optimizations are typically performed on the combinational logic to minimize component count and maximize operation speed, which makes the resulting circuits exhibit little structure. The lack of structure makes it very difficult to design and debug complicated control units with this technique. Therefore, hardwiring is normally used when the control unit is relatively simple.
Most of the design difficulties in the hardwired control units are due to the effort of optimizing the combinational logic. One popular alternative to hardwired control unit design is to use either read only memory (ROM) or random access memory (RAM) to implement the combinational logic. A control unit whose combinational logic is realized by the use of ROM or RAM is called a microprogrammed control unit. The memory used is called control memory (CM). The practice of realizing the combinational circuit in a control unit with ROM/RAM is called microprogramming. The concept of microprogramming was first introduced by Maurice V. Wilkes.
The idea of using a memory to implement a combinational circuit can be illustrated with a simple example. Assume that we are to implement a logic function with three input variables, as described in the truth table illustrated in Figure 66.2(a). A common way to realize this function is to use Karnaugh maps to derive highly optimized logic and wiring. The result is shown in Figure 66.2(b). The same function can also be realized using a memory with eight 1-bit locations to retain the eight possible combinations of the three input variables. Location i contains an F value corresponding to the ith input combination. For example, location 3 contains the F value (0) for the input combination 011. The three input variables are then connected to the address input of the memory to complete the design (Figure 66.2[c]). In essence, the memory contains the entire truth table. Considering the decoding logic and storage cells involved in a 8 × 1 memory, it is obvious that the memory approach uses a lot more hardware components than the Karnaugh map approach. However, the design is much simpler in the memory approach.
Figure 66.3 illustrates the general model of a microprogrammed control unit. Each control memory location consists of an address field and some control fields. The address field plus the next address logic implements the combinational logic for generating the next state value. The control fields implement the combinational logic for generating the control signals. The state register/counter is referred to as control memory address register (CMAR) for an obvious reason: the contents of the register are used as the address input to the control memory. An important insight is that the CMAR stores the state of the control unit. In modern microprocessor designs, hardwiring and microprogramming are often used in conjunction with each other. In such a design, hardwiring is used to handle common, simpler cases of instruction execution whereas microprogramming is used to handle complex cases such as string move instructions in the IA-32 microprocessors.
Data Path
The data path of a microprocessor contains the main arithmetic and logic execution units required to execute instructions. Designing the data path involves analyzing the function(s) to be performed, then specifying a set of hardware registers to hold the computation state, and designing computation steps to transform the contents of these registers into the final result. In general, the functions to be performed are divided into steps each of which can be done with a reasonable amount of logic in one clock cycle. Each step brings the contents of the registers closer to the final result. The data path must be equipped with sufficient amount of hardware to allow these computation steps in one clock cycle. The data path of a typical microprocessor contains integer and floating-point register files, 10 or more functional units for computation and memory access, and pipeline registers. The concept of pipelining and pipeline registers will be introduced later in this chapter.
Comments
Post a Comment