introduction to the x86 architecture
play

Introduction to the x86 Architecture Camiel Vanderhoeven September - PowerPoint PPT Presentation

Introduction to the x86 Architecture Camiel Vanderhoeven September 29, 2015 Introduction to the x86 Architecture This information contains forward looking statements and is provided solely for your convenience. While the information herein


  1. Introduction to the x86 Architecture Camiel Vanderhoeven September 29, 2015

  2. Introduction to the x86 Architecture This information contains forward looking statements and is provided solely for your convenience. While the information herein is based on our current best estimates, such information is subject to change without notice.

  3. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  4. x86 Development Timeline

  5. New Designs vs Extensions 32- 16-bit 64-bit 32-bit bit Itanium i386 8086 VAX 286 AMD 64- 64-bit PM bit Alpha

  6. Nomenclature Architecture Sub-arch. First in Other implementations x86 (16-bit) 8086 8086 8088, V20, V30, 80186 i286 80286 IA-32 (32-bit) i386 80386 Am386 i486 80486 Am486 i586 Pentium Pentium MMX, K5, K6 i686 Pentium Pro Pentium II, Pentium III, Pentium 4, Athlon x86-64 (64-bit) AMD64 Opteron Athlon 64, Turion, Sempron, Phenom Intel 64 Xeon Pentium 4 “F”, Celeron, Core

  7. Confusion AMD x86-64 AMD64 Intel EM64T IA-32e Intel64 Joke iAMD64 x64 Others (Microsoft, Sun, UEFI)

  8. Confusion AMD X86-64 AMD64 Intel EM64T IA-32e Intel64 Joke iAMD64 x64 Others (Microsoft, Sun, UEFI)

  9. Chip brand names and generations • Intel64 brands • Intel64 microarchitectures − Xeon − Core, Penryn − Core − Nehalem, Westmere − Pentium − Sandy Bridge, Ivy Bridge − Celeron − Haswell, Broadwell − Atom − Skylake − Quark • AMD64 brands • AMD64 microarchitectures − Opteron − K8 Hammer, K10, Fusion − Athlon − Bobcat, Jaguar, Puma − Sempron − Bulldozer, Piledriver, − FX Steamroller, Excavator − A-Series − Zen

  10. ISA Extensions Name First in Function x87 8086+8087 (1980) Floating Point Co-processor PM 80286 (1982) Protected Mode: Virtual Memory IA-32 80386 (1985) 32-bit PAE Pentium Pro (1995) Physical Address Extension MMX Pentium MMX (1997) MultiMedia Extension (Integer SIMD) 3Dnow! AMD K6-2 (1998) 3D Graphics (Floating Point SIMD) SSE(n) Pentium III (1999) Streaming SIMD Extensions (FP SIMD) x86-64 Opteron (2003) 64-bit VT-x Pentium 4 (2005) Virtualization support AMD-V Athlon 64 (2006) Virtualization support AES-NI Westmere (2010) Advanced Encryption Standard AVX(n) Sandy Bridge (2011) Advanced Vector Extensions (FP SIMD) TSX Haswell (2013) Transactional Synchronization Extension MPX Skylake (2015) Memory Protection Extensions

  11. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  12. Some Numbers VAX Alpha Itanium2 x86 Word size 32 64 64 64 Architecture CISC RISC EPIC CISC* Manufacturer DEC DEC Intel Intel AMD VIA GP Registers 16 32+32(FP) 128+128(FP) 16+8(MMX)+16(XMM) Orthogonality YES YES - - Instructions ~460 ~135 ~150 >600** Addr. Modes 24 4 6 10 Instr. size 8-400 bits 32 bits 41b (3/128b) 8-120 bits transistors 1.3M (NVAX) 130M (EV7) 3.1B (Poulson***) 5.6B (E7-v3****) * With an underlying RISC-Like core ** Depending on how you count them *** 8 cores **** 15 cores

  13. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  14. Traditional CISC Architecture (VAX) • Complex Instruction Set Computer • Complex instructions, mixing computation and memory access • Microcoded implementations • Makes optimizing code execution by the processor difficult

  15. RISC Architecture (Alpha) • Reduced Instruction Set Computer • Simple instructions, separating computation and memory access • Hardwired • Relatively easily optimized by processor (parallel execution, re-ordering, pipelining, branch prediction, but… • Optimization hardware becoming increasingly complex

  16. EPIC Architecture (Itanium) • Explicitly Parallel Instruction Set Computer • Simple instructions, separating computation and memory access • Parallel execution of instruction groups, separated by compiler-inserted stops. • Predication instead of conditional branching • Mostly hardwired • Burden of optimization shifted to compiler (though Poulson fixes that by doing some reordering)

  17. Modern CISC Architecture (x86) • Complex instructions are translated into RISC-like micro-ops • Partly hardwired • Extensive optimization performed by processor (parallel execution, re-ordering, pipelining, branch prediction) after translation to micro-ops

  18. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  19. VAX Register Set R0 PSL R1 IPR’s R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 AP/R12 FP/R13 SP/R14 PC/R15

  20. Alpha Register Set R0 R16 PC F0 F16 R1 R17 PS F1 F17 R2 R18 IPR’s F2 F18 R3 R19 F3 F19 R4 R20 F4 F20 R5 R21 F5 F21 R6 R22 F6 F22 R7 R23 F7 F23 R8 R24 F8 F24 R9 AI/R25 F9 F25 R10 RA/R26 F10 F26 R11 PV/R27 F11 F27 R12 R28 F12 F28 R13 FP/R29 F13 F29 R14 SP/R30 F14 F30 R15 RZ/R31 F15 F31

  21. Itanium Register Set IP FR0 Pr0 RZ/GR0 GR16 F16 UM FR1 Pr1 GR1 GR17 GR32-GR127 F17 FR2 IPR’s Pr2 GR2 GR18 Reg. Stack F18 FR3 Pr3 GR3 GR19 F19 FR4 Pr4 GR4 GR20 F20 FR5 Pr5 GR5 GR21 F21 FR6 Pr6 GR6 GR22 F22 FR7 Pr7 GR7 GR23 BR0 F23 FR8 Pr8 GR8 GR24 BR1 F24 FR9 Pr9 GR9 GR25 BR2 F25 FR10 Pr10 GR10 GR26 BR3 F26 FR11 Pr11 GR11 GR27 BR4 F27 FR12 Pr12 GR12 GR28 BR5 F28 FR13 Pr13 GR13 GR29 BR6 F29 FR14 Pr14 GR14 GR30 BR7 F30 FR15 Pr15 GR15 GR31 FR127 Pr127

  22. x86 Register Set MMX0/FPR0 RAX XMM0 RIP MMX1/FPR1 RCX XMM1 RFLAGS MMX2/FPR2 RDX XMM2 IPR’s RBX MMX3/FPR3 XMM3 RSP MMX4/FPR4 XMM4 MMX5/FPR5 RBP XMM5 MMX6/FPR6 RSI XMM6 MMX7/FPR7 RDI XMM7 R8 XMM8 R9 XMM9 R10 XMM10 R11 XMM11 R12 XMM12 R13 XMM13 R14 XMM15 R15 XMM16

  23. x86 register Part naming 63 31 15 7 0 RAX EAX AX AH AL 63 31 15 7 0 R8 R8D R8W R8B

  24. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  25. VAX Instruction encoding Opcode [Operand 1] [Operand 2 … n] 1 or 2 bytes, 1 1 byte same opcode per containing operation addressing mode and register number, up to 4 bytes of displacement, immediate data, or address

  26. Alpha Instruction Encoding Opcode Operands 6 bits, one 26 bits, opcode per encoding up to 3 operation registers, up to 21-bit displacement, 8- bit literal value, up to 16-bit function specifier

  27. Itanium Instruction Encoding Syllable Template Syll. Syll. 41 bits 5 bits Opcode Opcode Opcode 4 bits Operands 31 bits, typically 10-bit Operands Operands function and 3 registers Predicate Predicate Predicate 6 bits

  28. Intel x86 Instruction Encoding [Prefixes] Opcode [Mod-R/M] [SIB] [Displacement] [Immediate] 1-6 bytes 1-3 bytes 1 byte 1 byte 1-8 bytes 1-8 bytes specifying address specifying specifying scale specifying a specifying an Multiple opcodes and operand size addressing mode factor, index and displacement or immediate value per operation override, extended and either 2 base registers for offset register set, registers or 1 indexed extended register + 3 bits addressing instruction set, opcode extension locking, repetition, segment, branch hints

  29. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  30. Memory Specs VAX Alpha Itanium x86 Address size 32 64 64 64 Page size 512 8K/64K/512K/4M 4K-4G 4K/2M/1G Split VA Space no yes yes yes PT Levels 2 3 3 4 PTE Cache no no VHPT PDE cache Virt. Addr. Size 32 48 54 48 Phys. Addr. Size 32 44 50 52 (48) Segmentation no no no yes (kind of) Prot. Bits in TLB 4 enc[KESU][RW] 11 [KESU][RW], 7 enc[KESU], enc[RWX] 3 R/W, U/S, XD FO[RWE]

  31. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  32. Hardware/Software Boundaries OS OS QUEUE QUEUE CPU CPU Console etc. Console etc. OS VAX MicroVAX Firmware Hardware OS OS PALCODE SWIS CPU SRM CPU UEFI Alpha Itanium and x86-64

  33. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  34. RAS Features in Itanium and Xeon Feature Itanium Xeon Cache ECC Coverage ✓ ✓ Single-bit Memory Error Correction ✓ ✓ Double-bit Memory Error Detection & Retry ✓ ✓ ECC on Data Bus ✓ ✓ Internal Logic Soft Error Checking ✓ Skylake-EX Bad Data Containment ✓ ✓ Intel Cache Safe ✓ ✓ Memory Sparing ✓ ✓ Memory Mirroring ✓ ✓ Hot-Plug I/O ✓ ✓ Memory Hot-Swap ✓ ✓ Processor Lock-Step ✓ ✓

  35. x86 Heritage Comparison at a Glance CPU Design Strategy Register Set Instruction Encoding Memory Layout VMS RAS Features Proliferation of x86

  36. Lifespans of different architectures VAX Alpha Itanium X86 SPARC MIPS POWER 1974 1979 1984 1989 1994 1999 2004 2009 2014 Pre Dev Life VMS Sales Post

Recommend


More recommend