General-Purpose Processor Overview
General-Purpose Processor Overview
PROCESSORS: Software
Dr. ASSAF M. H.
Introduction
Basic Architecture
Datapath
Control Unit
Instructions
Memory modules
Assembly Instructions
Software Development Process
Application-Specific Instruction-Set Processors
single-purpose
Controller Control
/Status
processor
Key differences Registers
Datapath is general
Control unit doesn’t PC IR
store the algorithm –
the algorithm is
“programmed” into I/O
memory location
I/O
Memory
...
10
11
...
Execute: Move data through the 100 load R0, M[500] Memory
...
500 10
ALU 101 inc R1, R0 501
Store results: Write data from 102 store M[501], R1 ...
register to memory
Embedded Systems Design: A Unified 6
Hardware/Software Introduction, (c) 2002 Vahid/Givargis
Control Unit Sub-Operations
Fetch Processor
into IR ALU
I/O
Registers
PC 100 IR R0 R1
load R0, M[500]
I/O
Registers
10
PC 100 IR R0 R1
load R0, M[500]
I/O
This particular
Controller Control
/Status
instruction does
nothing during this Registers
sub-operation
10
PC 100 IR R0 R1
load R0, M[500]
I/O
This particular
Controller Control
/Status
instruction does
nothing during this Registers
sub-operation
10
PC 100 IR R0 R1
load R0, M[500]
I/O
ALU
Controller Control
/Status
Registers
PC 100 IR R0 R1
I/O
ALU
Controller Control +1
/Status
Registers
10 11
PC 101 IR R0 R1
I/O
ALU
Controller Control
/Status
Registers
10 11
PC 102 IR R0 R1
I/O
memory data
/Status
interface Registers
Embedded: 8-bit,
16-bit, 32-bit PC IR
common
Desktop/servers: I/O
longest register to
Controller Control
/Status
register delay in entire
processor Registers
I/O
Memory
Fetch-instr. 1 2 3 4 5 6 7 8
Decode 1 2 3 4 5 6 7 8
Execute 1 2 3 4 5 6 7 8
Instruction 1
Store res. 1 2 3 4 5 6 7 8
Time
pipelined instruction execution
Memory
...
Instruction Set
Defines the legal set of instructions for that processor
Data transfer: memory/register, register/register, I/O, etc.
Arithmetic/logical: move register through ALU and back
Branches: determine next PC value when not just PC+1
Immediate Data
Register-direct
Register address Data
Register
Register address Memory address Data
indirect
Data
C program
0 MOV R0, #0; // total = 0
1 MOV R1, #10; // i = 10
2 MOV R2, #1; // constant 1
3 MOV R3, #0; // constant 0
L2:
Exec.
Profilers
File Profiler
Implementatio
n Phase
Implementatio
n Phase
Gives us control over time
– set breakpoints, look at
Verification register values, set values,
Phase Development processor step-by-step execution, ...
Debugge
But, doesn’t interact with
r/ ISS real environment
Emulator
Download to board
Use device programmer
External tools
Runs in real environment,
but not controllable
Programme
r Compromise: emulator
Runs in real environment,
Verification
Phase
at speed or near
Supports some
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2002 Vahid/Givargis controllability from the34PC
Application-Specific Instruction-
Set Processors (ASIPs)
General-purpose processors
Sometimes too general to be effective in demanding application
e.g., video processing – requires huge video buffers and operations
on large arrays of data, inefficient on a GPP
But single-purpose processor has high NRE, not programmable
Sources: Intel, Motorola, MIPS, ARM, TI, and IBM Website/Datasheet; Embedded Systems Programming, Nov. 1998
embedded system
bit M[64k][16], RF[16][16];
Fetch IR=M[PC];
PC=PC+1
do
below
corresponding to the Ms
3x1 mux Mre Mwe