Back to the 2019 paper

Module 2: x86 Architecture, CPU Control, I/O, Memory System Design

20197m

Draw the block diagram of control unit of basic computer. Explain in detail with control timing diagrams.

Worked SolutionAI Assisted

Control Unit of Basic Computer (Mano)

Hardwired control unit generates signals for registers, memory, ALU timed by Sequence Counter (SC) T0T_0 to T15T_{15}.

Block Diagram (Textual)

                    +-------------------+
Clock --------------| Sequence Counter  |---- T0..T15 (decoded)
Reset -------------|   SC (4-bit)      |
                    +---------+---------+
                              | Increment / Clear
                              v
  Opcode (IR12-14) ->+--------+--------+      +--------------+
  I bit (IR15) ------> Decoder (3x8)  |----->| Control Logic|
                     +--------+--------+      |  Gates       |--- Control signals:
  T0-T7 ------------->                       |  (AND-OR)    |    LDAR,LDPC,LDAC,LDDR,LDAC
  Flags(E,AC,etc) --->                       +------+-------+    RD/WR,MEM, INCPC, CLRSC...
                                                    |
  IR 0-11 Address ----------------------------------+

Components:

  1. Sequence Counter SC: 4-bit counts 00 to 1515, decoded to Ti=1T_i=1 only at that count.
  2. Instruction Register IR(15-0): IR(12-14)→ 3x8 decoder gives D0D_0-D7D_7, IR(15)=II, IR(11-0)= address.
  3. Control Logic Gates: Combine Di⋅Tj⋅I/IˉD_i \cdot T_j \cdot I/\bar I and flags to produce register transfer signals.

Control Timing Diagrams

Sequence for every instruction: Fetch (T0T_0-T1T_1), Decode (T2T_2), Execute (T3T_3-T7T_7).

Time Micro-operations Control signals
T0T_0 AR←PCAR \leftarrow PC PCout,ARinPC_{out}, AR_{in}
T1T_1 IR←M[AR],PC←PC+1IR \leftarrow M[AR], PC \leftarrow PC+1 MEMread,IRin,PCincMEM_{read}, IR_{in}, PC_{inc}
T2T_2 D0..D7←DecodeIR(12−14)D_0..D_7 \leftarrow Decode IR(12-14),<br>AR←IR(11−0)AR \leftarrow IR(11-0),<br>I←IR(15)I \leftarrow IR(15) Decode,ARinDecode, AR_{in}
T3T_3 Memory-ref with I=1: AR←M[AR]AR\leftarrow M[AR] (indirect) MEMread,ARinMEM_{read}, AR_{in}
Register-ref (D7,I=0D_7,I=0): Execute rBirB_i (e.g. CLACLA) and SC←0SC\leftarrow0 r⋅T3r\cdot T_3
I/O (D7,I=1D_7,I=1): Execute pBipB_i p⋅T3p\cdot T_3
T4T_4 D0T4D_0 T_4: DR←M[AR]DR\leftarrow M[AR] (AND)<br>D1T4D_1 T_4: DR←M[AR]DR\leftarrow M[AR] (ADD)... MEMread,DRinMEM_{read}, DR_{in}
T5T_5 D0T5D_0 T_5: AC←AC∧DR,  SC←0AC\leftarrow AC\land DR,\; SC\leftarrow0<br>D1T5D_1 T_5: AC←AC+DR,  E←Cout,  SC←0AC\leftarrow AC+DR,\; E\leftarrow C_{out},\; SC\leftarrow0<br>D2T4D_2 T_4: AC←DRAC\leftarrow DR etc. ACin,CLRSCAC_{in}, CLRSC
T6T_6 For BSA, ISZ etc.

Timing diagram sketch:

Clock _|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_
SC    0   1   2   3   4   5   0 ...
T0    ‾‾|__ ____________________
T1    __|‾‾|__ _________________
T2    ____|‾‾|__ _______________
T3    ______|‾‾|__ ____________
D7·T3 triggers register micro-op and clears SC -> next Fetch.
D0·T4, D0·T5 etc. shown as narrow pulses.

Example - ADD direct (D1,I=0):
T0:AR<−PCT_0: AR<-PC, T1:IR<−M[AR],PC++T_1: IR<-M[AR],PC++, T2:DecodeT_2: Decode, T3:idleT_3: idle, T4:DR<−M[AR]T_4: DR<-M[AR], T5:AC<−AC+DR,E<−carry,SC<−0T_5: AC<-AC+DR, E<-carry, SC<-0.

Example - CLA (D7,I=0,B11=1):
r=D7⋅Iˉ⋅B11r = D_7 \cdot \bar I \cdot B_{11}, rT3:AC<−0,SC<−0rT_3: AC<-0, SC<-0 single cycle.

Hardwired version uses gates; microprogrammed version would store above TiDjT_iD_j combinations in control memory.

Similar questions

Official AppAndroid App

PYQDeck for Android

Solve BEU previous-year exam papers anywhere, anytime. Fast search, offline paper viewing, and step-by-step solutions designed specifically for your phone.