X86 History

In the beginning there was 8080

Here is the history of the x86 and links to documentation of specific version. Not sure about most of it really.

1st - 1978 - 8086

2nd - 1982 - 286

MMU and Protected mode.

3rd - 1985 - 386

32-bit instruction set and virtual mode.

4th - 1989 - 486

Integrated x87 FPU, pipelined processor and on-chip cache.

5th - 1993 - Pentium

Faster FPU and MMX.

6th - 1995 - Pentium Pro

SSE

6th Generation CPU Comparisons

7th - 2000 - Pentium 4 - 1.3 Ghz

SSE2, SSE3 and hyper-threading.

7th Generation CPU Comparisons

8th - 2003 -

x86-64, multi-core and SSE4.

9th - 2008 -

SSE5/AVX

10th - 2015 -

Reference

Generations of the computer processors - 2008

PC Processors Guide

=== CPU Evolution

Fetch -> Decode -> Execute

Multi-cycle operation

Phase 1: Load instruction

Phase 2: Decode instruction / read register

Phase 3: Execute operation

Phase 4: Write back results

Pipelining (Fetch - Decode - Execute)

Allow mutiple instruction in flight at once

Instruction 1: Writes back

Instruction 2: Execute

Instruction 3: decode

Instruction 4: fetch

Problems: Branch delay and memory latency

Caches

Add large cache to lower memory latency

Slower then register

A cache miss takes time.

Branch Prediction

System that guess what memory is needed next.

Reads it into cache memory before needed

If guess wrong then useless work is performed.

Out-of-order Execution

Guess what code will run next and run it.