Week 12, still on hardware, look primarily at processors, memory and system performance.

Major factors in determining system performance (note software design struggles to make use of current hardware capabilities)

  • CPU processing speeds
  • Multiple thread processing
  • Multiple CPUs
  • Distributed systems
  • Wider/Faster Instruction paths (buses)
  • Faster secondary memory access
  • More/Faster memory including RAM and cache
  • Better memory/processor management (ie Virtual Memory OS)

Note that CPU clock speeds are determined by the manufacturer using non-standardized instructions. Thus box label clock speed should b ‘taken with a pinch of salt’.

More important is the instruction set architecture aka CPU architecture. At present there are two major architecture types:

  • CISCĀ  – Intel/AMD [Complex Instruction Set Computers]
    • Small number of registers, large number of specialized instructions
  • RISC – SUN Sparc [Reduced Instruction Set Computers]
    • Large number of registers, small number of stored instructions

RISC takes heed of the fact that most programs only use about 10 of the 200 stored instructions. At present almost all processors with the exception of Intels x86 range utilized RISC architecture.

Techniques for increasing CPU performance:

  • fetch-execute operations made concurrent (can both be conducted at the same time)
  • Pipelining overlapping fetch and execute cycles
  • Parallel executions

This techniques result in scalar and super-scalar processing:

Without the above techniques 28 cycle would be required

Cache is another key technique for improving computing performance. By having a small amount of memory between the CPU and primary memory