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)