Lecture 1: Introduction. CprE 58 1 Computer Systems Architecture, Fall 2005 Zhao Zhang. Traditional “Computer Architecture”.
CprE 581 Computer Systems Architecture, Fall 2005
The term architecture is used here to describe the attribute of a system as seen by the programmer, i.e., theconceptual structure and functional behavior as distinct from the organization of the data flow and controls, the logic design, and the physical implementation.
VLSI technology: faster transistors and larger transistor budget
For sequential program:
CPU time = #Inst CPI Clock cycle time
To improve performance
Pipeline + Multi-issue
X[i] = a*X[i];
// let R3=&X,R4=&X[N]
// and F0=a
LOOP:LD.D F2, 0(R3)
MUL.D F2, F2, F0
S.D F2, 0(R3)
DADD R3, R3, 8
BNE R3, R4, LOOP
What instructions are parallel?
How to schedule those instructions?Instruction-level Parallelism
Find independent instructions through dependence analysis
Example: Intel Pentium, IBM Power/PowerPC, Sun UltraSparc, SGI MIPS …
Maintain register data flow
Maintain control flow
Maintain memory data flow
Memory Stall CPI
= Miss per inst × miss penalty
= % Mem Inst × Miss rate × Miss Penalty
Assume 20% memory instruction, 2% miss rate, 400-cycle miss penalty. How much is memory stall CPI?
Disk, Tape, etc.
Many applications are memory-bound
Cache hierarchy: exploits program locality
Also talk about virtual memory
What limits the performance of web servers? Storage!
Must exploit thread-level parallelism for further performance improvement
Shared-memory multiprocessors: Cooperating programs see the same memory address
How to build them?
As a hardware designer/researcher – know how to design processor, cache, storage, graphics, interconnect, and so on
As a system designer – know how to build a computer system using the best components available
As a software designer – know how to get the best performance from the hardware
WebCT: Grades, Assignments and Discussions