Wednesday, July 20, 2016

Processers The x86 Family

Generation Year Bits Memory Bits
8080 1974 8 16-bit High and Low Registers
8086 1976 16 20-bit Segment
80186 1982 16 20-bit Segment, array bound check
80286 1982-3 16 21-bit Segment (Real Mode) 24-bit Protected Mode (Paging)
80386 SL 1985 16 21-bit Segment Real Mode 25-bit Protected Mode (Paging)
80386 EX 1994 16 21-bit Segment Real Mode 28-bit Protected Mode (Paging)
80386 /DX 1988 32 21-bit Segment Real Mode 32-bit Flat Protected Mode
80486 1989 32 21-bit Segment Real Mode 32-bit Flat Protected Mode
80586 (MMX) 1993 32 21-bit Segment Real Mode 32-bit Flat Protected Mode
80686 (SSE) 1995 32 36-bit Physical Address Extension (PAE/Segment)
80786 (SSE2) 2000 32 36-bit Physical Address Extension (PAE/Segment)
80786 (SSE3) 32 36-bit Physical Address Extension (PAE/Segment)

2003 64 40-bit (1TB) Upper 24 Bits Are Wasted

2013 64 48-bit (256TB) Upper 16 Bits Are Wasted


64 56-bit (64PB = 65536TB) Upper 8 Bits Are Wasted

64 64-bit (16EB = 16384PB = 16777216TB)

PAE was an attempt to use segment registers again, but they are slower since segment registers are not optimized. Flat model has exist for too many generations (12 years) for them to optimize for it.

Addressing Changes
  • From 16 bits to 20 bits (2 years) Year 1976
  • From 20 bits to 24 bits (8 years) Year 1982
    • 21 bit real mode, only 16 bytes of final segment on the other side of 21 bits.
  • From 24 bits to 32 bits (6 years) Year 1988 
    • First 8-bit jump
  • From 32 bits to 28 bits (6 years) Year 1994
    • 80386 EX has only 28-bit address designed for laptops
  • From 32 bits to 36 bits (12 years) Year 2000
  • From 36 bits to 40 bits (3 years) Year 2003
  • From 40 bits to 48 bits (10 years) Year 2013
    • Second 8-bit jump, most prior jumps are 4-bit
  • From 48 bits to 56 bits Future
  • From 56 bits to 64 bits Future
Legacy Segment Registers should have been put to good use, but many designers cannot optimize performance for them.

No comments: