In: Computer Science
Consider a hypothetical Control Unit which supports 8 k words.
The Hardware contains 64 internal control signals, 16 bus control
signals, 8 Flags and 8 branch conditions. What is the size of
control word and control memory in: |
Solution:
Given,
=>Number of control words memory = 8 K
=>Number of internal control signal = 64
=>Number of bus control signal = 16
=>Number of flags = 8
=>Number of branch conditions = 8
(a)
Explanation:
Horizontal programming:
Control word:
Branch condition | Internal control signal | Bus control signal | Flag | Memory |
3 bits 64 bits 16 bits 3 bits 13 bits
Calculaitng number of bits for branch condition:
=>Number of bits for branch condition = log2(number of branch conditions)
=>Number of bits for branch condition = log2(8)
=>Number of bits for branch condition = 3 bits
Calculating number of bits for internal control signal:
=>In horizontal programming 1 bit is required for each control signal.
=>Number of bits required for 64 internal control signal = 64 bits
Calculating number of bits for bus control signal:
=>In horizontal programming 1 bit is required for each control signal.
=>Number of bits required for 16 bus control signal = 16 bits
Calculating number of bits for flag:
=>Number of bits for flag = log2(number of flags)
=>Number of bits for flag = log2(8)
=>Number of bits for flag = 3 bits
Calculating number of bits for memory address:
=>Number of bits for memory address = log2(size of memory)
=>Number of bits for memory address = log2(8 K)
=>Number of bits for memory address = log2(8*2^10)
=>Number of bits for memory address = 13 bits
Calculating size of control word:
=>Size of control word = 3 bits + 64 bits + 16 bits + 3 bits + 13 bits
=>Size of control word = 99 bits
Calculating size of control memory:
=>Size of control memory = (2^number of memory address bits)*size of control word
=>Size of control memory = 2^13*99 bits
(b)
Vertical programming:
Control word:
Branch condition | Internal control signal | Bus control signal | Flag | Memory |
3 bits 6 bits 4 bits 3 bits 13 bits
Calculaitng number of bits for branch condition:
=>Number of bits for branch condition = log2(number of branch conditions)
=>Number of bits for branch condition = log2(8)
=>Number of bits for branch condition = 3 bits
Calculating number of bits for internal control signal:
=>Number of bits required for 64 internal control signal = log2(number of internal control signals)
=>Number of bits required for 64 internal control signal = log2(64)
=>Number of bits required for 64 internal control signal = 6 bits
Calculating number of bits for bus control signal:
=>Number of bits required for 16 bus control signal = log2(16)
=>Number of bits required for 16 bus control signal = 4 bits
Calculating number of bits for flag:
=>Number of bits for flag = log2(number of flags)
=>Number of bits for flag = log2(8)
=>Number of bits for flag = 3 bits
Calculating number of bits for memory address:
=>Number of bits for memory address = log2(size of memory)
=>Number of bits for memory address = log2(8 K)
=>Number of bits for memory address = log2(8*2^10)
=>Number of bits for memory address = 13 bits
Calculating size of control word:
=>Size of control word = 3 bits + 6 bits + 4 bits + 3 bits + 13 bits
=>Size of control word = 29 bits
Calculating size of control memory:
=>Size of control memory = (2^number of memory address bits)*size of control word
=>Size of control memory = 2^13*29 bits
I have explained each and every part with the help of statements attached to it.