COA Unit II Notes
COA Unit II Notes
Dynamic microprogramming:
A more advanced development known as dynamic microprogramming permits a microprogram to
be loaded initially from an auxiliary memory such as a magnetic disk. Control units that use
dynamic microprogramming employ a writable control memory. This type of memory can be
used for writing.
Control Memory:
Control Memory is the storage in the microprogrammed control unit to store the microprogram.
Control Word:
The control variables at any given time can be represented by a control word string of 1 's and 0's
called a control word.
Microoperations:
In computer central processing units, micro-operations (also known as a micro-ops or
μops) are detailed low-level instructions used in some designs to implement complex
machine instructions (sometimes termed macro-instructions in this context).
Micro instruction:
A symbolic microprogram can be translated into its binary equivalent by means of an
assembler.
Each line of the assembly language microprogram defines a symbolic microinstruction.
Each symbolic microinstruction is divided into five fields: label, microoperations, CD,
BR, and AD.
1
UNIT -II
Unit 2 – Microprogrammed Control
Micro program:
A sequence of microinstructions constitutes a microprogram.
Since alterations of the microprogram are not needed once the control unit is in operation,
the control memory can be a read-only memory (ROM).
ROM words are made permanent during the hardware production of the unit.
The use of a micro program involves placing all control variables in words of ROM for
use by the control unit through successive read operations.
The content of the word in ROM at a given address specifies a microinstruction.
Microcode:
Microinstructions can be saved by employing subroutines that use common sections of
microcode.
For example, the sequence of micro operations needed to generate the effective address of
the operand for an instruction is common to all memory reference instructions.
This sequence could be a subroutine that is called from within many other routines to
execute the effective address computation.
2
UNIT -II
Microprogrammed Control
While the microoperations are being executed, the next address is computed in the next
address generator circuit and then transferred into the control address register to read the
next microinstruction.
Thus a microinstruction contains bits for initiating microoperations in the data processor
part and bits that determine the address sequence for the control memory.
The next address generator is sometimes called a micro-program sequencer, as it
determines the address sequence that is read from control memory.
Typical functions of a micro-program sequencer are incrementing the control address
register by one, loading into the control address register an address from control memory,
transferring an external address, or loading an initial address to start the control
operations.
The control data register holds the present microinstruction while the next address is
computed and read from memory.
The data register is sometimes called a pipeline register.
It allows the execution of the microoperations specified by the control word
simultaneously with the generation of the next microinstruction.
This configuration requires a two-phase clock, with one clock applied to the address
register and the other to the data register.
The main advantage of the micro programmed control is the fact that once the hardware
configuration is established; there should be no need for further hardware or wiring
changes.
If we want to establish a different control sequence for the system, all we need to do is
specify a different set of microinstructions for control memory.
Address Sequencing
Microinstructions are stored in control memory in groups, with each group specifying a
routine.
To appreciate the address sequencing in a micro-program control unit, let us specify the
steps that the control must undergo during the execution of a single computer instruction.
Step-1:
An initial address is loaded into the control address register when power is turned on in
the computer.
This address is usually the address of the first microinstruction that activates the
instruction fetch routine.
The fetch routine may be sequenced by incrementing the control address register through
the rest of its microinstructions.
At the end of the fetch routine, the instruction is in the instruction register of the
computer.
3
UNIT -II
Microprogrammed Control
Step-2:
The control memory next must go through the routine that determines the effective
address of the operand.
A machine instruction may have bits that specify various addressing modes, such as
indirect address and index registers.
The effective address computation routine in control memory can be reached through a
branch microinstruction, which is conditioned on the status of the mode bits of the
instruction.
When the effective address computation routine is completed, the address of the operand
is available in the memory address register.
Step-3:
The next step is to generate the microoperations that execute the instruction fetched from
memory.
The microoperation steps to be generated in processor registers depend on the operation
code part of the instruction.
Each instruction has its own micro-program routine stored in a given location of control
memory.
The transformation from the instruction code bits to an address in control memory where
the routine is located is referred to as a mapping process.
A mapping procedure is a rule that transforms the instruction code into a control
memory address.
Step-4:
Once the required routine is reached, the microinstructions that execute the instruction
may be sequenced by incrementing the control address register.
Micro-programs that employ subroutines will require an external register for storing the
return address.
Return addresses cannot be stored in ROM because the unit has no writing capability.
When the execution of the instruction is completed, control must return to the fetch
routine.
This is accomplished by executing an unconditional branch microinstruction to the first
address of the fetch routine.
4
UNIT -II
Microprogrammed Control
Above figure 4.2 shows a block diagram of a control memory and the associated hardware
needed for selecting the next microinstruction address.
The microinstruction in control memory contains a set of bits to initiate microoperations
in computer registers and other bits to specify the method by which the next address is
obtained.
The diagram shows four different paths from which the control address register (CAR)
receives the address.
The incrementer increments the content of the control address register by one, to select the
next microinstruction in sequence.
Branching is achieved by specifying the branch address in one of the fields of the
microinstruction.
Conditional branching is obtained by using part of the microinstruction to select a specific
status bit in order to determine its condition.
An external address is transferred into control memory via a mapping logic circuit.
The return address for a subroutine is stored in a special register whose value is then used
when the micro-program wishes to return from the subroutine.
5
UNIT -II
Microprogrammed Control
The branch logic of figure 4.2 provides decision-making capabilities in the control unit.
The status conditions are special bits in the system that provide parameter information
such as the carry-out of an adder, the sign bit of a number, the mode bits of an instruction,
and input or output status conditions.
The status bits, together with the field in the microinstruction that specifies a branch
address, control the conditional branch decisions generated in the branch logic.
A 1 output in the multiplexer generates a control signal to transfer the branch address
from the microinstruction into the control address register.
A 0 output in the multiplexer causes the address register to be incremented.
Mapping of an Instruction
A special type of branch exists when a microinstruction specifies a branch to the first
word in control memory where a microprogram routine for an instruction is located.
The status bits for this type of branch are the bits in the operation code part of the
instruction.
For example, a computer with a simple instruction format as shown in figure 4.3 has an
operation code of four bits which can specify up to 16 distinct instructions.
Assume further that the control memory has 128 words, requiring an address of seven
bits.
One simple mapping process that converts the 4-bit operation code to a 7-bit address for
control memory is shown in figure 4.3.
This mapping consists of placing a 0 in the most significant bit of the address, transferring
the four operation code bits, and clearing the two least significant bits of the control
address register.
This provides for each computer instruction a microprogram routine with a capacity of
four microinstructions.
If the routine needs more than four microinstructions, it can use addresses 1000000
through 1111111. If it uses fewer than four microinstructions, the unused memory
locations would be available for other routines.
One can extend this concept to a more general mapping rule by using a ROM to specify
the mapping function.
The contents of the mapping ROM give the bits for the control address register.
6
UNIT -II
Microprogrammed Control
In this way the microprogram routine that executes the instruction can be placed in any
desired location in control memory.
The mapping concept provides flexibility for adding instructions for control memory as
the need arises.
7
UNIT -II
Unit 2 – Microprogrammed Control
Microinstruction Format
The microinstruction format for the control memory is shown in figure 4.5. The 20 bits of the
microinstruction are divided into four functional parts as follows:
1. The three fields F1, F2, and F3 specify microoperations for the computer.
The microoperations are subdivided into three fields of three bits each. The three bits in
each field are encoded to specify seven distinct microoperations. This gives a total of 21
microoperations.
2. The CD field selects status bit conditions.
3. The BR field specifies the type of branch to be used.
4. The AD field contains a branch address. The address field is seven bits wide, since the
control memory has 128 = 27 words.
The BR (branch) field consists of two bits. It is used, in conjunction with the address field
AD, to choose the address of the next microinstruction shown in Table 4.2.
8
UNIT -II
Microprogrammed Control
Symbolic Microinstruction.
Each line of the assembly language microprogram defines a symbolic microinstruction.
Each symbolic microinstruction is divided into five fields: label, microoperations, CD,
BR, and AD. The fields specify the following Table 4.3.
9
UNIT -II
Microprogrammed Control
10
UNIT -II
Microprogrammed Control
l0 Input 3 2 1 0
Load
S MU
l1 Logic 1 X 1 SBR
S
T 0
1
Test Increment
MUX 2
L Clock CAR
Select
Control
Memory
Microo AD
ps CD BR
Microprogrammed Control
Boolean Function:
S0 = I0
S1 = I0I1 + I0’T
L = I0’I1T
Typical sequencer operations are: increment, branch or jump, call and return from
subroutine, load an external address, push or pop the stack, and other address sequencing
operations.
With three inputs, the sequencer can provide up to eight address sequencing operations.
Some commercial sequencers have three or four inputs in addition to the T input and thus
provide a wider range of operations.
12
UNIT -II
Computer Organization and Architecture Chapter 2 : Central Processing Unit
Chapter – 2
Central Processing Unit
The part of the computer that performs the bulk of data processing operations is called the
Central Processing Unit (CPU) and is the central component of a digital computer. Its purpose is
to interpret instruction cycles received from memory and perform arithmetic, logic and control
operations with data stored in internal register, memory words and I/O interface units. A CPU is
usually divided into two parts namely processor unit (Register Unit and Arithmetic Logic Unit)
and control unit.
Processor Unit:
The processor unit consists of arithmetic unit, logic unit, a number of registers and internal buses
that provides data path for transfer of information between register and arithmetic logic unit. The
block diagram of processor unit is shown in figure below where all registers are connected
through common buses. The registers communicate each other not only for direct data transfer
but also while performing various micro-operations.
Here two sets of multiplexers select register which perform input data for ALU. A decoder
selects destination register by enabling its load input. The function select in ALU determines the
particular operation that to be performed.
Control unit:
The control unit is the heart of CPU. It consists of a program counter, instruction register, timing
and control logic. The control logic may be either hardwired or micro-programmed. If it is a
hardwired, register decodes and a set of gates are connected to provide the logic that determines
the action required to execute various instructions. A micro-programmed control unit uses a
control memory to store micro instructions and a sequence to determine the order by which the
instructions are read from control memory.
The control unit decides what the instructions mean and directs the necessary data to be moved
from memory to ALU. Control unit must communicate with both ALU and main memory and
coordinates all activities of processor unit, peripheral devices and storage devices. It can be
characterized on the basis of design and implementation by:
Defining basic elements of the processor
Describing the micro-operation that processor performs
Determining the function that the control unit must perform to cause the micro-operations
to be performed.
Control unit must have inputs that allow determining the state of system and outputs that allow
controlling the behavior of system.
Flag: flags are headed to determine the status of processor and outcome of previous ALU
operation.
Computer Organization and Architecture Chapter 2 : Central Processing Unit
Clock: All micro-operations are performed within each clock pulse. This clock pulse is
also called as processor cycle time or clock cycle time.
Control signal from control bus: The control bus portion of system bus provides interrupt,
acknowledgement signals to control unit.
Control signal within processor: These signals causes data transfer between registers,
activate ALU functions.
Control signal to control bus: These are signals to memory and I/O module. All these
control signals are applied directly as binary inputs to individual logic gate.
Register Organization
Registers are at top of the memory hierarchy. They serve two functions:
1. User-Visible Registers - enable the machine- or assembly-language programmer
to minimize main-memory references by optimizing use of registers
2. Control and Status Registers - used by the control unit to control the operation
Computer Organization and Architecture Chapter 2 : Central Processing Unit
Design Issues
Completely general-purpose registers or specialized use?
- Specialized registers save bits in instructions because their use can be implicit
- General-purpose registers are more flexible
- Trend is toward use of specialized registers
Number of registers provided?
- More registers require more operand specifier bits in instructions
- 8 to 32 registers appears optimum (RISC systems use hundreds, but are a
completely different approach)
Register Length?
- Address registers must be long enough to hold the largest address
- Data registers should be able to hold values of most data types
- Some machines allow two contiguous registers for double-length values
Automatic or manual save of condition codes?
- Condition restore is usually automatic upon call return
- Saving condition code registers may be automatic upon call instruction, or may be
manual
| 7
Computer Organization and Architecture Chapter 2 : Central Processing Unit
Data Flow
- Exact sequence depends on CPU design
- We can indicate sequence in general terms, assuming CPU employs:
a memory address register (MAR)
a memory buffer register (MBR)
a program counter (PC)
an instruction register (IR)
Fetch cycle data flow
- PC contains address of next instruction to be fetched
- This address is moved to MAR and placed on address bus
- Control unit requests a memory read
- Result is
placed on data bus
result copied to MBR
then moved to IR
- Meanwhile, PC is incremented
Data are presented to ALU in register and the result of operation is stored in register. These
registers are temporarily storage location within the processor that are connected by signal path
to the ALU. The ALU may also set flags as the result of an operation. The flags values are also
stored in registers within the processor. The control unit provides signals that control the
operation of ALU and the movement of data into an out of ALU.
4X1
Ei
MUX
S0 S1
Example: Design a 2-bit ALU that can perform addition, AND, OR, & XOR.
Cin
A0
B0 FA
A1
B1
Cout
4X1
Result0
MUX
S1 S0
4X1
Result1
MUX
A computer usually has a variety of Instruction Code Formats. It is the function of the control
unit within the CPU to interpret each instruction code and provide the necessary control
functions needed to process the instruction. An n bit instruction that k bits in the address field
and m bits in the operation code field come addressed 2k location directly and specify 2m
different operation.
Computer Organization and Architecture Chapter 2 : Central Processing Unit
The bits of the instruction are divided into groups called fields.
The most common fields in instruction formats are:
o An Operation code field that specifies the operation to be performed.
o An Address field that designates a memory address or a processor
register.
o A Mode field that specifies the way the operand or the effective address is
determined.
Types of Instruction
Computers may have instructions of several different lengths containing varying
number of addresses.
The number of address fields in the instruction format of a computer depends on
the internal organization of its registers.
Most computers fall into one of 3 types of CPU organizations:
General register organization:- The instruction format in this type of computer needs
three register address fields. For example: ADD R1,R2,R3
Computers may have instructions of several different lengths containing varying number of
addresses. Following are the types of instructions.
1. Three address Instruction
With this type of instruction, each instruction specifies two operand location and a result
location. A temporary location T is used to store some intermediate result so as not to
alter any of the operand location. The three address instruction format requires a very
complex design to hold the three address references.
Format: Op X, Y, Z; X Y Op Z
Computer Organization and Architecture Chapter 2 : Central Processing Unit
Example: ADD X, Y, Z; X Y + Z
ADVANTAGE: It results in short programs when evaluating arithmetic
expressions.
DISADVANTAGE: The instructions requires too many bits to specify 3
addresses.
Example: To illustrate the influence of the number of address on computer programs, we will
evaluate the arithmetic statement X=(A+B)*(C+D) using Zero, one, two, or three address
instructions.
1. Three-Address Instructions:
ADD R1, A, B; R1 M[A] + M[B]
ADD R2, C, D; R2 M[C] + M[D]
MUL X, R1,R2; M[X] R1 * R2
It is assumed that the computer has two processor registers R1 and R2. The symbol M[A]
denotes the operand at memory address symbolized by A.
2. Two-Address Instructions:
MOV R1, A; R1 M[A]
ADD R1, B; R1 R1 + M[B]
Computer Organization and Architecture Chapter 2 : Central Processing Unit
3. One-Address Instruction:
LOAD A; Ac M[A]
ADD B; Ac Ac + M[B]
STORE T; M[T] Ac
LOAD C; Ac M[C]
ADD D; Ac Ac + M[D]
MUL T; Ac Ac * M[T]
STORE X; M[X] Ac
Here, T is the temporary memory location required for storing the intermediate result.
4. Zero-Address Instructions:
PUSH A; TOS A
PUSH B; TOS B
ADD; TOS (A + B)
PUSH C; TOS C
PUSH D; TOS D
ADD; TOS (C + D)
MUL; TOS (C + D) * (A + B)
POP X ; M[X] TOS
Instruction
Opcode Register Register
Operand
Operand
Operand
Operand
Register Memory
+ Operand
Implicit
Top of Stack
Arithmetic Instructions
Computer Organization and Architecture Chapter 2 : Central Processing Unit
Shift Instructions
Interrupt
The interrupt procedure is, in principle, quite similar to a subroutine call except for three
variations:
The interrupt is usually initiated by an external or internal signal rather than from
execution of an instruction.
The address of the interrupt service program is determined by the hardware rather
than from the address field of an instruction.
An interrupt procedure usually stores all the information necessary to define the
state of the CPU rather than storing only the program counter.