Giáo trình

Computer Architecture

Science and Technology


Tác giả: Hoang Lan Nguyen

Basis Concepts

  • Micro-operations: We have already seen that the programs are executed as a sequence of instructions, each instruction consists of a series of steps that make up the instruction cycle fetch, decode, etc. Each of these steps are, in turn, made up of a smaller series of steps called micro-operations.
  • Micro-operation execution: Each step of the instruction cycle can be decomposed into micro-operation primitives that are performed in a precise time sequence. Each micro-operation is initiated and controlled based on the use of control signals / lines coming from the control unit.

- Controller the data to move from one register to another

- Controller the activate specific ALU functions

  • Micro-instruction: Each instruction of the processor is translated into a sequence of lower-level micro-instructions. The process of translation and execution are to as microprogramming
  • Microprogramming: The concept of microprogramming was developed by Maurice Wilkes in 1951, using diode matrices for the memory element. A microprogram consist of a sequence of micro-instructions in a microprogramming.
  • Microprogrammed Control Unit is a relatively logic circuit that is capable of sequencing through micro-instructions and generating control signal to execute each micro-instruction.
  • Control Unit: The control Unit is an important portion of the processor.

The control unit issues control signals external to the processor to cause data echange with memory and I/O unit. The control Unit issues also control signals internal to the processor to move data between registres, to perform the ALU and other internal operations in processor. In a hardwired control unit, the control signals are generated by a micro-instruction are used to controller register transfers and ALU operations. Control Unit design is then the collection and the implementation of all of the needed control signals for the micro-instruction executions.

Control unit design approaches

How can we use the concept of microprogramming to implement a Control Unit ? There are two approaches of Control Unit Design and implementation:

- Microprogrammed implementation

- Hardwired logic implementation

The figure 7.2 illustrated the control unit inputs. Two techniques have been used to implemente the CU. In a hardwired implementation, the control unit is essentially considered as a logic circuit. Its input logic signals are transformed into the set of ouput logic signals, which are the control signals. The approach of microprogrammed implementation is studied in this section.

Control unit with decoded inputs

Approach of microprogrammed control unit


- The control signal values for each microoperation are stored in a memory.

- Reading the contents of the control store in a prescribed order is equivalent to sequencing through the microoperations

- Since the “microprogram” of microoperations and their control signal values are stored in memory, this is a microprogrammed unit.


  • Are more systematic with a well defined format?
  • Can be easily modified during the design process?
  • Require more components to implement
  • Tend to be slower than hardwired units (due to having to perform memory read operations)

Approach of hardwired logic


- The Control Unit is viewed and designed as a combinatorial and sequential logic circuit.

- The Control Unit is implemented by using any of a variety of “standard” digital logic techniques. The logic circuit generate the fixed sequences of control signals

- This approach is used to generate fixed sequences of control signals with the higher speed.


  • The principle advantages are a high(er) speed operation and the smaller implementations (component counts)
  • The modifications to the design can be hard to do
  • This approach is favored in RISC style designs

Microprogrammed Control Unit

The ideal of microprogrammed Control Unit is that the Control Unit design must include the logics for sequencing through micro-operations, for executing micro-operation, for executing micro-instructions, for interpreting opcodes and for making decision based on ALU flags. So the design is relatively inflexible. It is difficul to change the design if one wishes to add a new machine instruction.

The principal disadvantage of a microprogrammed control unit is that it will be slower than hardwired unit of comparable technology. Despite this, microprogramming is the dominant technique for implementing control unit in the contemporary CISC processor, due to its ease of implementation.

The control unit operates by performing consecutive control storage reads to generate the next set of control function outputs. Performing the series of control memory accesses is, in effect, executing a program for each instruction in the machine’s instruction set -- hence the term microprogramming.

The two basic tasks performed by a microprogrammed control unit are as follows:

- Micro-instruction sequencing: the microprogrammed control unit get the next mico-instruction from the control memory

- Micro-instruction execution: the microprogrammed control unit generate the control signals needed to execute the micro-instruction.

The control unit design must consider both affect the format of the micro-instruction and the timing of the control unit.

Micro-instruction Sequencing

Two problems are involved in the design of a micro-instruction sequencing technique is the size of micro-instruction and the address-generation time. The first concern is obvious minimizing the size of the control memory. The second concern is simply a desire to execute microinstruction as fast as possible.

In executing a microprogram, the address of the next microinstruction to be executed is one of these categories:

- Determined by instruction register

- Next sequential address

- Branch.

It is important to design compact time-efficient techniques for micro-instruction branching.

  • Sequencing technique

Three general categories for a control memory address are as follows:

- Two address fields

- Single address field

- Variable format

In Figure, the branch control logic with a single address field is illustrated.

Branch Control unit of Microprogrammed Control Unit with with a single address field
  • Address generation

The problem is to consider the various ways in which the next address can be derived or computed. The various techniques of the address generation is geven in the following.

Table of Microinstruction Address Generation techiques

Micro-instruction Execution

The microinstruction cycle is the basic event on a microprogrammed processor. Each cycle is made up the two parts: fetch and execute. This section deals with the execution of microinstruction. The effect of the execution of a microinstruction is to generate control signals for both the internal control to processor and the external control to processor.

A organization of a control unit is shown in Figure 7.4

Microprogrammed Control Unit Organization

Classification of Micro-instructions

Microinstruction can be classified in variety of ways in which the designer must choose the parallel “power” of each instruction. There are the following.

– Vertical microprogramming: Each microinstruction specifies a single (or few) microoperations to be performed

– Horizontal microprogramming: Each microinstruction specifies many different

microoperations to be performed in parallel.

  • Vertical microprogramming

– Width is narrow: n control signals can be encoded into log2n control bits

– Limited ability to express parallelism

– Considerable encoding of control information requires external memory word decoder to identify the exact control line being manipulated

  • Horizontal microprogramming

– Wide memory word

– High degree of parallel operations are possible

– Little to no encoding of control information

  • Compromise technique

– Divide control signals into disjoint groups

– Implement each group as a separate field in the memory word

– Supports reasonable levels of parallelism without too much complexity

  • Second compromise: nanoprogramming

– Use a 2-level control storage organization

– Top level is a vertical format memory

Output of the top level memory drives the address register of the bottom (nano-level) memory

– Nanomemory uses the horizontal formal. The produces the actual control signal outputs

– The advantage to this approach is significant saving in control memory size (bits)

– Disadvantage is more complexity and slower operation (doing 2 memory accesses fro each microinstruction).

  • Microprogramming applications

- For the typically large microprocessor systems today:

+ There are many instructions and associated register level hardware

+ There are many control point to be manipulated.

- Emulation

– The use of a microprogram on one machine to execute programs originally written to run on another machine.

– By changing the microcode of a machine, you can make it execute software from another machine.