Computer Organization & Architecture
Computer Organization & Architecture
[Adapted from Dave Patterson’s UCB CS152 slides, Mary Jane Irwin’s PSU CSE331 slides and Dan
Garcia, Lectures SOE UC Berkeley]
Memory Hierarchy
Parallel Processing and Multicore Computing
Text Books:
David A. Patterson, and John L. Hennessy, “Computer Organization
and Design: The Hardware/Software Interface”, 5th Edition, Elsevier
(Morgan Kaufmann Publishers)
William Stallings, “Computer Organization and Architecture: Designing
for Performance”, 8th Edition, Pearson (Prentice Hall Publishers)
Every class
First 5-10 minutes, review of the last class
Repeaters students:
If there is a conflict in timings with other class(es),
please sort it out yourself with the semester
coordinator.
Parts of Computer
Gordon Moore
Intel Cofounder
B.S. Cal 1950!
2XTransistors / Chip
Every 1.5 years
1000000000
year size (Mbit)
100000000 1980 0.0625
10000000 1983 0.25
1986 1
Bits
Bits
1000000
1989 4
100000
1992 16
10000
1996 64
1000
1998 128
1970 1975 1980 1985 1990 1995 2000
Year
Year 2000 256
• Now 1.4X/yr, or 2X every 2 years. 2002 512
• 8000X since 1980! 2004 1024 (1Gbit)
Computer Organization & Architecture .13 Spring 2019
Technology Trends:
Uniprocessor Performance (SPECint)
VAX-11/780)
10000
1.20x/year
20%/year
1000
VAX-11/780)
1.52x/year
52%/year
(x86(vs.vs.
100
Performance
Performance
10
1.25x/year
25%/year
1
1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006
Processor
Speed 2x / 1.5 years(since ‘85);
100X performance in last decade.
Disk
Capacity: 2x / 1 year (since ‘97)
250X size in last decade.
Workstation
Dell Precision, Sun Blade, IBM Intell-iStation
Same dimensions as desktop computers
High-resolution graphics I/O capability, more computational power
Servers ~ Supercomputers
HP Integrity Superdome, IBM eServer
Computing power and storage
Embedded Computers
The micro-controller is embedded in the appliance, you often are not aware of the
fact that it contains a micro-controller (e.g. 70 micro-controllers in a modern high
end car: engine control, ABS, airbag, interior illumination, central lock, alarm,
radio, ...)
CISC
Motorola 6800, 6809 and 68000-families; the Intel 8080
and x86-family; the Zilog Z80, Z8 and Z8000-families; the
Intel 8051-family.
Advantages:
Compiler has to do very little work to translate a high-level
language statement into assembly.
Because the length of the code is relatively short, very little RAM is
required to store instructions.
Equation :
The terms CISC and RISC have become less meaningful with the
continued evolution of both CISC and RISC designs and implementations
Computer Organization & Architecture .36 Spring 2019
Below the Program
High-level language program (in C)
swap (int v[], int k)
{int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
C compiler
Assembly language program (for MIPS)
swap: sll $2, $5, 2
add $2, $4,$2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31 assembler
hardware
software
hardware
Machine Organization
How the hardware implements ISA ?
Physical View
Personal Computer
Computer Keyboard,
Processor
Mouse
Memory Devices
Disk
Control Input
(where (where
(“brain”) programs,
programs,
data data
Datapath live when live when
(“brawn”) Output not running)
running)
Display,
Printer
Processor Devices
Control Input
Memory Input devices
Keyboard
Datapath Output Mouse
Network
Joysticks, trackballs, etc
Processor Memory
Devices
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000
100011 00010 01111 0000000000000000
Control 100011 00010 10000 0000000000000100 Input
101011 00010 10000 0000000000000000
101011 00010 01111 0000000000000100
000000 11111 00000 0000000000001000
Datapath Output
Memory holds both INSTRUCTIONS and DATA and you can’t tell the
difference. They are both just 32 bit strings of zeros and ones.
Secondary storage
Magnetic disks, tapes, optical disks
Sequential execution
Fetch
Exec Decode
Processor Memory
Devices
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000
100011 00010 01111 0000000000000000
Control 100011 00010 10000 0000000000000100 Input
101011 00010 10000 0000000000000000
101011 00010 01111 0000000000000100
000000 11111 00000 0000000000001000
Datapath Output
Processor Devices
Control
000000 00100 00010 0001000000100000
Memory Input
Datapath
Output
Processor Devices
Control
000000 00100 00010 0001000000100000
Memory Input
Datapath
contents Reg #4 ADD contents Reg #2
results put in Reg #2
Output
Processor Memory
Devices
Control Input
00000100010100000000000000000000
Datapath 00000000010011110000000000000100 Output
00000011111000000000000000001000
Processor Devices
Control Input
Memory
Datapath Output
00000100010100000000000000000000
00000000010011110000000000000100
00000011111000000000000000001000