Unit - Iv 4.0) Introduction: Digital Logic and Computer Organization
Unit - Iv 4.0) Introduction: Digital Logic and Computer Organization
0) Introduction
The functionality of a computer and the execution of an instruction set is controlled by the control unit. This chapter deals with the simple computer architecture and describes in detail two alternative ways in which its control section may be organized.
4.1) Objectives
In this chapter you will learn about: Introduction The Basic Concepts Hard-Wired Control Unit Micro-programmed Control Unit Microinstruction
4.2) Content
4.2.1. The Fundamental Concepts All traditional digital computers have two principal functional parts: the data path section in which processing occurs and the control section which is responsible for decoding instructions and leaving the correct sequence of control signals to make the processing happen in the data path. Basically there are two types of control units: hardwired controllers and micro-programmed controllers. In order to differentiate the functionality of the computers, a block diagram of its data path sections is shown in Figure 6.1. A single 12-bit-wide bus provides for exchange of information between pairs of registers within the data path section. The registers and the 256 X 12 bit RAM memory are controlled by 16 control signals. Most of the registers have Load (L) and Enabled (E) signals. An active L signal to a register causes the contents of the bus to be clocked into that register on the next rising pulse from the system clock. An active E signal enables the tristate outputs of the register, thereby making its contents available to the bus. Therefore, a register transfer from, for example, register A to register B would require active EA and LB control signals.
Page 112
Figure 6.1: A Simple Basic Computer. The Arithmetic-Logic-Unit (ALU), a circuit that is capable of adding or subtracting the 12-bit numbers contained in its two input registers, does processing of data: the accumulator (ACC) and register B. The operation performed by the ALU is selected by the Add (A) or Subtract (S) control signals. The accumulator also contains a single flipflop that is set whenever its contents are negative (i.e., whenever the leading bit is set-meaning a negative 2's complement number). The value of this "negative flag" provides input to the controller/sequencer and permits implementation of conditional branching instructions. The machine's RAM memory is accessed by first placing the 8-bit address in the Memory Address Register (MAR). An active Read (R) control signal to the RAM will then cause the selected word from the RAM to appear in the Memory Data Register (MDR). An active Write (W) signal, on the other hand, will cause the word contained in the MDR to be stored in the RAM at the address specified by the MAR. Since there are no input or output ports in this simple computer, all I/O is memory mapped. In other words, several memory locations are reserved for input/output devices. Memory reads from any of those locations will cause data from the corresponding input device to appear in the MDR; memory writes to them will cause data in the MDR to be sent to the corresponding output device. A word stored in any given memory location may be data to be manipulated by the computer or a coded instruction that specifies an action to be taken. The data path section also contains a Program Counter (PC) whose function it is to point to the address in RAM of the next instruction to be executed. The Increment Program
Page 113
(Mem) A
AA+B AAB BA PC Mem PC Mem If Negative Flag is Set Stop Clock IR Next Instruction
Table 6.1. An Instruction Set For The Basic Computer In each case the register transfers required for execution of each step are shown. For example, in the case of the LDA (load accumulator) instruction, the first step consists of
Page 114
Figure 6.2: Block Diagram of Basic Computers Hard-wired Control Unit The ring counter provides a sequence of six consecutive active signals that cycle continuously. Synchronized by the system clock, the ring counter first activates its T0 line, then its T1 line and so forth. After T5 is active, the sequence begins again with T0. Figure 6.3 shows how the ring counter might be organized internally.
Page 115
Figure 6.3: Internal Organization of the ring counter The instruction decoder takes its four-bit input from the op-code field of the instruction register and activates one and only one of its 8 output lines. Each line corresponds to one of the instructions in the computer's instruction set. Figure 6.4 shows the internal organization of this decoder.
Figure 6.4: Hard-wired instruction decoder The most important part of the hard-wired controller is the control matrix. It receives input from the ring counter and the instruction decoder and provides the proper sequence of control signals. Figure 6.5 is a diagram of how the control matrix for the simple machine might be wired. The machine's instruction set (Table 6.1) helps to understand the control matrix.
Page 116
Figure 6.5: Hard-Wired Control Matrix Table 6. 2 shows, which control signals, must be active at each ring counter pulse for each of the instructions in the computer's instruction set and for the instruction fetch operation. The table shows the instructions in the left-hand column, which in the circuit will be shown as the output lines from the decoder. The various control signals are placed horizontally along the top of the table. Entries into the table consist of the moments (ring counter pulses T0, T1, T2, T3, T4 or T5) at which each control signal must be active in order to have the instruction executed.
Control Signal: IP LP EP LM R W LD ED LI EI LA EA A S EU LB Instruction: ---------------------------------------------------------------------------------------------"Fetch" T2 T0 T0 T1 T2 T2 LDA T3 T4 T5 T3 T5 STA T3 T5 T4 T3 T4 MBA T3 T3 ADD SUB JMP JN T3 T3 T3 T3*NF T3 T3*NF T3 T3 T3 T3
Table 6.2. Times Matrix at which Each Control Signal Must Be Active in Order to Execute the Hard-wired Basic Computer's Instructions For example, the Fetch operation has the EP and LM control signals active at ring count T0 and ED, LI and IP active at ring count T2. Therefore the first row (Fetch) of Table 2 has T0 entered below EP and LM, T1 below R and T2 below IP, ED and LI.
Page 117
Page 118
Page 119
...
Jump to Indirect or Execute
...
Jump to Execute Indirect Cycle routine Interrupt cycle routine Execute cycle begin AND routine
...
Jump to Fetch Jump to Op code routine
...
Jump to Fetch or Interrupt
...
Jump to Fetch or Interrupt ADD routine
Figure 6.7: The Control Memory Each micro-program ends with a branch to the Fetch, Interrupt, Indirect or Execute micro-program. Microinstruction Types Each microinstruction specifies single (or few) micro-operations to be performed (vertical micro-programming) and many different micro-operations to be performed in parallel (horizontal micro-programming). The features of Vertical Microprogramming are: Width is narrow n control signals encoded into log2 n bits Limited ability to express parallelism Considerable encoding of control information requires external memory word decoder to identify the exact control line being manipulated
Function Codes
instruction Address
Figure 6.8: Vertical Micro-programming The features of Horizontal Micro-programming are: Wide memory word High degree of parallel operations possible Little encoding of control information
Page 120
Micro-instruction Address
Jump Condition
Figure 6.9: Horizontal Micro-programming The Tasks done By Microprogrammed Control Unit are: Microinstruction sequencing Microinstruction execution Micro-programmed Control Unit has the Decoder that determines type of operation stored in IR. It loads control address register with the op codes micro-program starting location and loops on the following: Sequencer causes read of control memory content using address in control address register Item in control memory moved to control buffer register Contents of Control Buffer Register generate control signals and next address information Sequencer moves next address to control address register Next instruction (add 1 to current) Jump to new routine Jump to new machine routine The two concerns with grouping micro-operations into microinstructions are: Minimizing the size of the control memory Generating the next microinstruction address Determined by IR (new op code, branch to new micro-program) Next sequential entry in this micro-program Branch based on jump condition Microinstruction Addresses The Microinstruction Addresses has the sequencing techniques that have the following: Two address fields one is the next instruction, one is the branch destination. A multiplexer using the jump condition logic makes the choice. Single address field where the choice is made of whether to use the value in the address field (a branch) or increment the current address by one. Variable format two formats selected by a single microinstruction bit that denotes whether the next instruction should be used or a branch is to be taken.
Page 121
Op-code field from Instruction Register 4 Error! Bookmark not defined. Negative Flag
Microcounter
Incrementer
Control Rom
Page 123
Instruction Mnemonic
Address-ROM Contents (Control-ROM MicroRoutine Start Address) ---------------------------------------------------------------------------------------------"Fetch" LDA STA ADD SUB MBA JMP JN Available for New Instructions 0 1 2 3 4 5 6 7 8-E 00 03 06 09 0A 0B 0C 0D 10-1E
Table 6.3: The Basic Computer's Address ROM To see how the address ROM works, let us assume that an ADD instruction has been fetched into the outer computer's instruction register. Since the op-code of the ADD instruction is 3, the number stored at location 3 of the address ROM (a 9) is the starting Page 124
Figure 6.11: Next address field of the microinstrcution The CD is the condition bit, MAP causes the address of the next microinstruction to be obtained from the ROM, HLT stops the clock and CRJA is the control ROM jump address field. The 5-bit CRJA (Control ROM Jump Address) sub-field holds a microinstruction address. Thus, the address of the next microinstruction may be obtained from the current microinstruction. This permits branching to other sections within the microprogram. The combination of the MAP bit, the CD (condition) bit and the negative flag from the accumulator of the external machine provide input to the logic that feeds the select lines of the multiplexer and thereby determine how the address of the next microinstruction will be obtained. If the MAP bit is one, the logic attached to the multiplexer's select lines produces a 10 which selects the address ROM. Therefore, the address of the micro-routine corresponding to the instruction in the outer machine's instruction register will be channeled to the control ROM. It should be clear that the MAP bit must be set in the last microinstruction of the "fetch" micro-routine, since it is at that moment that the newlyfetched instruction to be executed is required. If the MAP bit is zero and the CD bit is zero, (unconditional branch), the multiplexer logic produces a 01, which selects the CRJA field of the current instruction. Therefore, the next instruction will come from the address contained in the current instruction's nextaddress field. With MAP=0 and CD=1 (conditional branch), the logic that feeds the multiplexer will produce either a 00 or a 01, depending on the value of the negative flag. If the flag is set, it is a 01, which selects the jump address contained in the current microinstruction. If the negative flag is cleared, the select lines to the multiplexer receive a 00, which causes the incrementer to be selected. The next microinstruction will come from the next address in sequence. It should be noticed that with this scheme, if no branching is done, the CRJA field should contain the address of the next microinstruction and the CD bit should be cleared. This will cause "branch to the next microinstruction" to occur. The one exception to this rule is the case of the last microinstruction within a micro-routine. It would be then required to branch back to the "fetch" micro-routine. Since this routine starts at control-ROM location 00000, that address should be contained in the CRJA field and CD should be 0. The HLT bit is used to terminate execution. If it is set, the clock that synchronizes activities within the entire machine is stopped.
Page 125
Page 126
No. 1. 2.
Page 127
Applications: Horizontal organisation : Best suited while for high operating speed and the machine structure allows parallel usage of a number of resources. Vertical organisation: Best suited when usage of parallel architecture is not available to handle execution of microinstructions, and lower speed is acceptable.
4.5) Summary
All traditional digital computers have two principal functional parts: the data path section and the control section. Basically there are two types of control units: hard-wired controllers and microprogrammed controllers. Processing of data is done by the Arithmetic-Logic-Unit (ALU).The machine's RAM memory is accessed by first placing the 8-bit address in the Memory Address Register (MAR). The data path section also contains a Program Counter (PC) whose function it is to point to the address in RAM of the next instruction to be executed. The Increment Program Counter (IP) control signal causes the contents of the PC to increase by one. An Instruction Register (IR) holds the instruction that is about to be execute and provides its opcode to the controller/sequencer. The controller is composed of the functional units: - A ring counter, an instruction decoder and a control matrix. A sequence of microinstructions that implements an instruction on the external computer is known as a micro-routine
4.8) Assignments
Write the sequence of control steps required to perform the operation Add r1, (r2) for a single bus processor. This instruction adds the contents of Register R1 and the contents of the memory location specified by Register R2 and store the result in the register R1.
4.11) Keywords
Control bus, Control path, Hardwired implementation, Micro-programmed control Control unit, Control signal, Microinstructions, Horizontal format, Vertical format.
Page 129