tags : Multiprocessing, Concurrency, GPGPU, Computer Architecture

They are not different types of CPUs, they are different logic networks integrated into the CPU itself. Or mode in which a CPU can operate.

Regular consumer x86_64 processors hence support both SIMD and MIMD.

Single Data Stream

SISD

  • Traditional single processor machines.
  • Lack of physical concurrency.

MISD

  • Rather exotic
  • Sometimes used for fault-tolerant computing where the same instructions are executed redundantly.

Multiple Data Stream

SIMD

  • Dedicated parallel executions of computations
  • Example: GPGPU , vector processors.
  • Consumer processors extend x86_64 with SIMD extensions(AVX,SSE,MMX).
  • Vector instructions enable faster computing with data-level parallelism. But this is not so useful for say webservers.

MIMD

  • Relies on a shared or distributed memory
  • This is what allows multi processor/multi core etc.

More on SIMD

See Registers SIMD extensions are complimentary.

Intel

AVX

  • AVX uses sixteen YMM registers
  • registers is increased from 128 bits to 256 bits
  • AVX

    • 256-bit width (Vector length)
    • f32 and f64 only
  • AVX2

    • 256-bit width (vector length)
    • Everything else
  • AVX512

    • Also see FMA/fused multiply-add

SSE (Streaming SIMD Extensions)

  • SSE, SSE2, SSE3, SSE4
  • SSE2

    • Register width: 128-bit
    • 64-bit numbers and floats and doubles

MMX (Multimedia Extensions)

  • 1997

AMD

NEON

FMA