The Micro-Architecture Level
The Micro-Architecture Level
+ Lecture 6
The Micro-architecture
level of a computer system,
is where these useful
digital logic devices are
organized in a structured
manner to create circuits
that comprise a processor
(the CPU).
+
Micro-Architectures
The internal organization of the parts that make up a
processor is referred to as the micro-architecture of
the processor.
Warning!!
There is no standard micro-architecture. Every
processor has it own organization. In practice, there are
many “tricks” that are used by the designers of
processors in order to meet design goals.
However, there are some common principles.
e.g. every processor is controlled by a clock, has a
control unit, an ALU, and registers at the least
+
Micro-Architectures
GOALS
• Some of the goals that are sought in designing a
processor might include:
1. Speed at which the processor can accomplish tasks.
2. Cost considerations (building the perfect processor
might not be economically feasible) - make it fast but
not too expensive.
3. Type of things the processor can do (e.g. most
modern processors include capability for processing
media. Older processors did not.)
• Processor design is to some extent a creative process
1. Some goals might be sacrificed for others.
2. “Tricks” are sometimes used to achieve some goals.
+
Micro-Architectures
D1 8
▪ This data path has three 8-
bit registers. 8
In Out
8
Load OE
▪ Each register is given a
name.
▪ The pathways are 8-bit D0 8
buses (hence the
8
Out
processor is called an 8-bit
In
Load OE
processor).
A B F1
8-bit ALU
Output F0
Carry In
+
A Simple Data Path D2
(an 8-bit processor) In Out
8 8
Load OE
This simple ALU has four
functions that are selected as D1 8
shown below: 8 8
In Out
Load OE
F1 F0 OUTPUT
0 0 A
0 1 B
D0
1 0 B+1 8 8
1 1 A + B (SUM) In Out
Load OE
8
Load OE
In Out
Load OE
The C Bus is connected to the
output of the ALU.
A B
F1
8-bit ALU F0
Output
Carry In
+
A Simple Data Path D2
(an 8-bit processor)
In Out
8 8
Load OE
Load OE
▪ This is done by asserting
(setting to 1) the OE control of
a register.
D0 8
▪ Note: Only one register can
8
Out
output at any time. If more than
In
Load OE
one register is enabled for 8
8
Carry In
+
A Simple Data Path D2
(an 8-bit processor) In Out
8
Load OE
D1
▪ In this data path, the output of
8
Carry In
+
A Simple Data Path D2
(an 8-bit processor) In Out
8
Load OE
Out
▪ The value will appear at the B
In
Load OE
input of the ALU.
1
▪ The computation is performed
and the output of the ALU will be A B F1
placed on the C Bus. 8-bit ALU
Output
F0
▪ Load the value from the C Bus
into one, or more of the Registers. Carry In
+
Data Path Timing
▪ The operations can occur in one clock cycle as shown below:
▪ Using registers that are loaded on the trailing edge of the clock
D1
▪ We can therefore command the
8
computation D2 = D1 + D0 8
In Out
8
R f(R, R)
▪ Where f is in the set of operations allowable to the ALU.
R2 R1
◼ the data lines from the source register (R5) to the destination register
(R3)
◼ Parallel load in the destination register (R3)
◼ Control lines to perform the action
+
Control Functions
P:R2 R1
Which means “if P = 1, then load the contents of register R1
into register R2”, i.e., if (P = 1) then (R2 R1).
+
Simultaneous Operations
In Out
A B
F1
F1 F0 OUTPUT
0 0 A 8-bit ALU F0
0 1 B Output
1 0 B+1
Carry In
1 1 A + B (SUM)
Microinstructions D2
In Out
8
We can set the bits in a control LD2
word to accomplish a simple task. OE2
For example, to transfer the value D1 8
LD1
▪ Set OE1 to 1 (output to B bus)
OE1
▪ SET F1 to 0
▪ SET F0 to 1 8 D0 88
8
1 1 0 1 0 0 0 1 0
Carry In
Microinstructions D2
In Out
8
LD2
OE2
D1 8
To execute D0<-D2+D0 8 8
In Out
▪ Set OE2 to 1
LD1
▪ Set F1 to 1 OE1
▪ Set F0 to 1
D0 88
▪ Set LD0 to 1 8
8
In Out
LD0
OE0
Carry In
+
Microinstructions & Micro-routines
1 1 1 0 1 0 0 0 1 0
• If we put both instructions together
one, after the other then we have a 2 1 0 1 1 0 0 1 1 0
◼ Micro-Architectures
◼ Data Paths
◼ Data Path Timing
◼ Register Operations
◼ Control Functions
◼ Control Word
◼ Microinstructions
◼ Micro-Routines