Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Assistant Professor
Electrical and Computer Engineering Dept.
University of Alabama in Huntsville
Evaluate Existing
Systems for
Bottlenecks
Technology
Trends
Implement Next
Generation System
Applications
Benchmarks
Simulate New
Designs and
Organizations
Workloads
Technology Directions:
SIA Roadmap
Year
1999 2002 2005
Feature size (nm)
Logic trans/cm2
Cost/trans (mc)
#pads/chip
Clock (MHz)
Chip size (mm2)
Wiring levels
Power supply (V)
High-perf pow (W)
180
130
6.2M 18M
1.735 .580
1867 2553
1250 2100
340
430
6-7
7
1.8
1.5
90
130
100
39M
.255
3492
3500
520
7-8
1.2
160
3 x 4 mm
Intel 4004
November 15, 1971
4-bit ALU, 108 KHz, 2,300
transistors,
10-micron technology
Intel Pentium 4
August 27, 2001
32-bit architecture, 1.4 GHz
(now 3.08), 42M transistors
(now 55+M), 0.18-micron
technology (now 0.09)
146 mm sq
Future Applications
Desktop: 90% of cycles
will be spent on media applications
video encode/decode, polygon & image-based graphics
audio processing, compression, music,
speech recognition/synthesis
modulation/demodulation at audio and video rates
Scientific desktops:
high-performance FPs and graphics
Commercial servers: support for databases and
transaction processing, enhancement for reliability, support for
scalability
Embedded computing:
special support for graphics or video,
power limitations
Behavioral
Structural
Algorithmic
Systems
Functional Block
Processor
Hardware Modules
Algorithms
Logic
ALUs, Registers
Register Transfer
Circuit Gates, FFs
Logic
Transistors
Transfer Functions
Rectangles
Cell, Module Plans
Floor Plans
Domains
Clusters
Physical Partitions
Physical/Geometry
LaCASA IP Library
Chip Complexity
58% / year
Design productivity
21% / year
Use IP cores
LaCASA IP Library
LaCASA IP Library
LaCASA IP Library
Instruction
Set Analysis
Dpth&Cntr
Design
VHDL Model
Verification
Synthesis&
Implementation
ASM Test
Programs
C
Programs
MPLAB IDE
C Compiler
iHex2Rom
LaCASA IP Library
Specification
Design
Modeling
Simulation &
Verification
LaCASA IP Library
PIC18 Greetings
http://www.ece.uah.edu/~milenka/pic18/pic.html
Instruction format
Instruction set
Instruction
Opcode
Effect
LDA S
0000
ACC := mem16[S]
STO S
0001
mem16[S] := ACC
ADD S
0010
SUB S
0011
JMP S
0100
PC := S
JGE S
0101
if ACC >= 0 PC := S
JNE S
0110
if ACC !=0 PC := S
STP
0111
stop
12 bits
S
Instruction Register
Instruction Decode and
Control Logic
address bus
PC
control
IR
memory
ALU
ACC
data bus
Initialization
Reset input to start
executing instructions from
a known address; here it is
000hex
provide zero at the ALU
output and then load it into
the PC register
memory
Control Logic
Asel
Bsel
ACCce (ACC change
enable)
PCce (PC change enable)
IRce (IR change enable)
ACCoe (ACC output enable)
ALUfs (ALU function select)
MEMrq (memory request)
RnW (read/write)
Ex/ft (execute/fetch)
MEMrq
RnW
IRce
MU0
IR
opcode
PC
ACCoe
PCce
Asel
ALUf s
ALU
ACCce
ACC[15]
ACCz
Bsel
ACC
mux
MU0 control
logic
In p ut s
Op c o de Ex / f t ACC1 5
In s t ruc t i o n
Re s e t ACCz
Reset
xxxx
1
x
x
x
LDA S
0000
0
0
x
x
0000
0
1
x
x
STO S
0001
0
0
x
x
0001
0
1
x
x
ADD S
0010
0
0
x
x
0010
0
1
x
x
SUB S
0011
0
0
x
x
0011
0
1
x
x
JMP S
0100
0
x
x
x
JGE S
0101
0
x
x
0
0101
0
x
x
1
JNE S
0110
0
x
0
x
0110
0
x
1
x
STOP
0111
0
x
x
x
Out p ut s
Bs el
PCc e ACCo e
MEMrq Ex / f t
As e l ACCc e IRc e
ALUf s
Rn W
0
0
1
1
1
0
=0
1
1
0
1
1
1
0
0
0
=B
1
1
1
0
0
0
1
1
0
B+1
1
1
0
1
x
0
0
0
1
x
1
0
1
0
0
0
1
1
0
B+1
1
1
0
1
1
1
0
0
0
A+B
1
1
1
0
0
0
1
1
0
B+1
1
1
0
1
1
1
0
0
0
A-B
1
1
1
0
0
0
1
1
0
B+1
1
1
0
1
0
0
1
1
0
B+1
1
1
0
1
0
0
1
1
0
B+1
1
1
0
0
0
0
1
1
0
B+1
1
1
0
1
0
0
1
1
0
B+1
1
1
0
0
0
0
1
1
0
B+1
1
1
0
1
x
0
0
0
0
x
0
1
0
LDA S (0000)
Ex/ft = 0
Ex/ft = 1
memory
memory
MEMrq
RnW
IRce
MU0
MEMrq
RnW
IRce
IR
IR
opcode
opcode
PC
PC
ACCoe
PCce
Asel
ACCoe
PCce
Asel
B+1
ALUf s
ALU
ALUf s
Bsel
ACC
mux
ALU
ACCce
ACCce
ACC[15]
ACCz
MU0
ACC[15]
ACCz
Bsel
ACC
mux
STO S (0001)
Ex/ft = 0
Ex/ft = 1
memory
MEMrq
RnW
memory
IRce
MU0
MEMrq
IR
RnW
IRce
IR
opcode
opcode
PC
PC
ACCoe
PCce
Asel
ALUf s
ACCoe
PCce
Asel
x ALU
B+1ALU
ALUf s
ACCce
ACC[15]
ACCz
Bsel
mux
ACCce
ACC
MU0
ACC[15]
ACCz
Bsel
ACC
mux
ADD S (0010)
Ex/ft = 0
Ex/ft = 1
memory
MEMrq
RnW
memory
IRce
MU0
MEMrq
IR
RnW
IRce
IR
opcode
opcode
PC
PC
ACCoe
PCce
Asel
ALUf s
ACCoe
PCce
Asel
A+B
ALU
ALUf s
ACCce
ACC[15]
ACCz
Bsel
mux
B+1
ALU
ACCce
ACC
MU0
ACC[15]
ACCz
Bsel
ACC
mux
SUB S (0011)
Ex/ft = 0
Ex/ft = 1
memory
MEMrq
RnW
memory
IRce
MU0
MEMrq
IR
RnW
IRce
IR
opcode
opcode
PC
PC
ACCoe
PCce
Asel
ALUf s
ACCoe
PCce
Asel
A-B
ALU
ALUf s
ACCce
ACC[15]
ACCz
Bsel
mux
B+1
ALU
ACCce
ACC
MU0
ACC[15]
ACCz
Bsel
ACC
mux
JMP S (0100)
Ex/ft = 0
memory
MEMrq
RnW
IRce
MU0
IR
opcode
PC
ACCoe
PCce
Asel
ALUf s
B+1
ALU
ACCce
ACC[15]
ACCz
Bsel
ACC
mux
JGE S (0101)
Ex/ft = 0,
ACC15 = 0
Ex/ft = 0,
ACC15 = 1
memory
memory
MEMrq
RnW
IRce
MU0
MEMrq
RnW
IRce
IR
IR
opcode
opcode
PC
PC
ACCoe
PCce
Asel
ALUf s
B+1
ALU
ACCoe
PCce
Asel
ALUf s
Bsel
ACC
mux
B+1
ALU
ACCce
ACCce
ACC[15]
ACCz
MU0
ACC[15]
ACCz
Bsel
ACC
mux
JNE S (0110)
Ex/ft = 0,
ACCz = 0
Ex/ft = 0,
ACCz = 1
memory
memory
MEMrq
RnW
IRce
MU0
MEMrq
RnW
IRce
IR
IR
opcode
opcode
PC
PC
ACCoe
PCce
Asel
ALUf s
B+1
ALU
ACCoe
PCce
Asel
ALUf s
Bsel
ACC
mux
B+1
ALU
ACCce
ACCce
ACC[15]
ACCz
MU0
ACC[15]
ACCz
Bsel
ACC
mux
STP (001)
Ex/ft = 0
memory
MEMrq
RnW
IRce
MU0
IR
opcode
PC
ACCoe
PCce
Asel
ALUf s
xALU
ACCce
ACC[15]
ACCz
Bsel
ACC
mux
Reset
Ex/ft = 0
memory
MEMrq
IRce
RnW
MU0
IR
opcode
PC
PCce
Asel
ALUf s
ACCoe
0
ALU
ACCce
ACC[15]
ACCz
Bsel
ACC
mux