Coming back and rewatching lecture, will mostly fill in things I don’t understand.
Performance:
- Throughput
- Response Time
- (Elapsed Time):
- How much time does it take to do this thing
- Run a program of some sort, and see how much time to complete
- Ideally, represent what you do on the computer
- This leads to benchmarks
- Benchmarks drive a field. This is how you sell a machine, machines have been developed just to maximize a benchmark.
- Report?
- MIPS (Million Instructions Per Second)
- MFLOPs / TerraFLOPS (Floating Point Operations Per Second)
- Ratios?
- 00, 01, 02, 03, 04, 05, 06?
- Make it faster - boils down to CPU equation
- Make clock faster <- tech
- Get more done each clock <- organization
- Use fewer clocks <- compiler
= instr/prog x cycles/instr x time/cycle
= time/prog
Amdahl’s Law - Performance gained by using faster mode limited by amount of time that mode can be used
Why is throughput marketed?
- Technological limitations led us to making transistors smaller, which naturally led to multiple core machines. This makes throughput a natural target.
- However, this can slow down clock speed and maybe even INCREASE response time.
Turboboost is an intel program that lets you overclock, because its very rare you need all 8 cores. They alternate cores to dissipate heat.
Gamers overclock because worst case response (adding -1 and 1 for instance) rarely happen, and mistakes don’t tend to be that serious (dropping a pixel, etc.)
Instruction set:
opcode operands
opcode: what to do
operand: what to operate on
DST = SRC1 op SRC2
1-operand: ACC = ACC + operand
2-operand: Rx = RX + Ry
3-operand inst:
fixed size
fixed opcode field
Load/Store Iset
Arithmetic only on regs
Load/Store to mem
3 formats:
R-Type: opcode Rd Rs1 Rs2
I-Type: opcode Rd Rs1 Imm
J-type: opcode (offset)