CS6461 - Computer Architecture Fall 2016 Instructor Morris Lancaster
CS6461 - Computer Architecture Fall 2016 Instructor Morris Lancaster
CS6461 - Computer Architecture Fall 2016 Instructor Morris Lancaster
Fall 2016
Instructor Morris Lancaster
Adapted from Professor Stephen Kaislers Slides
.
Lecture 2 - Basic System Design
Hierarchical System Architecture
Processor
logic capacity: 2 x increase in performance every 1.5 - 2 years;
clock rate: about 25% per year
overall performance: 1000 x in last decade
Main Memory
DRAM capacity: 2 x every 2 years; 1000 x size in last decade
memory speed: about 10% per year
cost / bit: improves about 25% per year
Disk
capacity: > 2 x increase in capacity every 1.5 years
cost / bit: improves about 60% per year
120 x capacity in last decade
Disk architecture not much different than IBMs 10 MByte disks of the
early 1980s
Network Bandwidth
Bandwidth: 1 Gbit/s standard to the desktop in many places
Bandwidth: Probably 1 Tbit/s b end of decade, but may require new
infrastructure
Performance:
the key to computing for most intensive problems
whats the secret? TIME, TIME, TIME
analogy to Real Estate: Location, Location, Location
Response Time:
How long does it take for my job/program to run?
How long does it take to execute my job/program?
[NOTE: These are not equivalent. Why not?]
How long must I wait for a database query?
Throughput:
How many jobs can the machine run at once?
What is the average execution rate?
How much work is getting done?
How long does it take to handle an interrupt?
Execution Times:
Elapsed Time: counts everything, disk and memory accesses, I/O waits, etc.
Sometimes, a useful number, but not good for comparison purposes
CPU Time: counts instruction execution times, but not I/O time; basis for
MIPS/MFLOPS; often divided into system time and user time
Q? What are MIPS and MFLOPS good measures of, if anything?
Reset
Init
Initialize
Machine
Fetch
Instr.
How many
Memory
Registers do I need to access RF?
See Mul/Div instructions
X1
R0
X2
R1
RFI
X3
R2
R3
ALU
Carry
PC
Condition Codes
Arithmetic Shifter
Logical Unit
Unit
Carry
Opcode
ALU-Result
xRR = result registers, hold result of operation for store on next cycle
Both the arithmetic unit and the logic unit are active
and produce outputs.
The mux determines whether the final result comes from the
arithmetic or logic unit.
The output of the other one is effectively ignored.
Our hardware scheme may seem like wasted effort, but
its not really.
Deactivating one or the other wouldnt save that much time.
We have to build hardware for both units anyway, so we might
as well run them together.
This is a very common use of multiplexers in logic
design.
Convoluted?? Yes!
Why??
1. No jump less than or greater than instructions!
2. Did we really need them or were they a matter of convenience?
E.g., how many instructions did we save by not having them?
3. Implicit use of r3