Fundamentals of Processor Design: Using Figures From by Hamblen and Furman
Fundamentals of Processor Design: Using Figures From by Hamblen and Furman
Fundamentals of Processor Design: Using Figures From by Hamblen and Furman
Design
Using figures from
Rapid Prototyping of Digital Systems
by Hamblen and Furman
Spring 2014
Digital
Hardware Design
Rapid Prototyping
with FPGAs
VHDL
Computer
Organization
Overview
Behavioral model is provided in Hamblen
You will design a structural model over the
course of the semester
ALU
Registers
Controller
P3
The Framework
Computer organization; the role of the
processor
Processor architecture vs. organization
Processor organization in detail
Processor performance
Will learn about processor design and
organization in general
Datapath
Registers (register file)
ALU
Interconnection
structure
Interface with memory
Instruction path
Registers
Interface with memory
Control Unit
Memory
I/O
A softwareprogrammable computing
system also needs
Compiler
Operating System
Middleware
Desktop
Priority is
computational speed
Buffered interfaces to
the external
environment
Memory
Interconnection
Structure
I/O
Architecture
Organization
What it does
microarchitecture
How it does it
Analogy: The structural
engineer defines the
materials and the loadbearing frame structure--how the building is put
together
Precisely, the collection of
functional units (registers,
ALU, and control unit) and
how they are
interconnected
Static
Architecture
Machine
D/SI
Dynamic
Addressing modes
Data types
Dynamics temporal
behavior
Block diagram
Basic Datapath
From
Data Bus
Register
File
To
Address Bus
To
Data Bus
ALU
Status to
Control Unit
Structure of a Processor
Control Unit
Program
Counter
Address
Generation
Logic
Stack
Pointer
Bus
Address
Register
Control
Circuitry Control
Status
Register
ALU
Signals
Instruction
Register
Data
Register
Register
File
Processor
Memory
PC
Input/Ouput
IR
AC
MAR
ALU
Control
Unit
MDR
Address Bus
Data Bus
Need to define
interconnection structure
IR
00 00
ALU
register_AC
16
+1
00 00
PC
00
8
MAR
Memory
00: 02 11
01: 00 12
02: 01 10
03: 03 03
MDR
16
00
10: 00 00
11: 00 04
12: 00 03
MW = 0
02 11
MW is
Memory Write
control line
Register Definitions
Instruction-oriented
registers
PC (Program Counter)
points to the address
of the (current/next)
instruction
IR (Instruction
Register) holds the
current instruction
Data-oriented registers
AC (accumulator) holds
one operand for ALU;
receives result from ALU
MAR (Memory Address
Register) holds location
of information to be
loaded from memory
MDR (Memory Data
Register) holds data
coming from/going to
memory; other operand
for ALU
Instruction Format
Opcode
15
Address
8 7
Instruction Set
Fetch Next
Instruction
Decode
Instruction
Execute
Instruction
FETCH
DECODE
MAR = PC*
IR = MDR
PC = PC + 1
Read Memory
MAR = IR
Read
Memory
Opcode=STORE
Opcode=ADD
EXECUTE
AC = AC + MDR
MAR set in
EXECUTE step
Opcode=LOAD
AC = MDR
MDR = AC
Write Memory
IR
00 00
ALU
register_AC
16
+1
00 00
PC
00
8
MAR
Memory
00: 02 11
01: 00 12
02: 01 10
03: 03 03
MDR
16
00
10: 00 00
11: 00 04
12: 00 03
MW = 0
02 11
MW is
Memory Write
control line
IR
02 11
ALU
register_AC
16
+1
Memory
00: 02 11
01: 00 12
02: 01 10
03: 03 03
MDR
Note: MAR=PC
is moved to
Execute state
to save a clock
cycle!
00 04
PC
01
MAR
01
1. Read memory
2. IR = MDR
3. PC = PC + 1
10: 00 00
11: 00 04
12: 00 03
00 12
IR
1. Decode opcode
2. MAR = IR
3. Start memory
read
00 12
12
ALU
register_AC
00 04
PC
MAR
Memory
00: 02 11
01: 00 12
02: 01 10
03: 03 03
MDR
02
01
12
10: 00 00
11: 00 04
12: 00 03
00 12
IR
00 12
00 04
00 03
ALU
00 07
register_AC
1. AC = AC + MDR
2. MAR = PC
3. Go to FETCH
00 04
PC
02
16
MAR
Memory
00: 02 11
01: 00 12
02: 01 10
03: 03 03
MDR
12
02
16
10: 00 00
11: 00 04
12: 00 03
00 03
Performance
Performance of a processor is determined by:
There is more
References
Computer Architecture and Organization, John
P. Hayes, Third ed., 2002
MCU datasheets
Hamblen, Hall and Furman, Rapid Prototyping
of Digital Systems, SOPC Ed.