microprocessor system architectures – ia32 introduction jakub yaghob

20
Microprocessor system architectures IA32 introduction Jakub Yaghob

Upload: theodore-jackson

Post on 04-Jan-2016

222 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Microprocessor system architectures –

IA32 introduction

Jakub Yaghob

Page 2: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Architectures

IA-32 Today commonly used AMD64/Intel 64

AMD has attempted to widen IA-32 to 64 bits, very unseemly extended in the system part

IA-64 Very complicated application and system architecture,

coming from HP PA-RISC, used in servers Maybe some others

E.g. SPARC v8+v9, ARM, PowerPC

Page 3: Microprocessor system architectures – IA32 introduction Jakub Yaghob

IA-32 part content

Modes of operation Memory management: segmentation Memory management: paging Multitasking Exception and interrupt handling Debugging and performance monitoring Compatibility modes Advanced parts (multiprocessing, caches,

virtualization)

Page 4: Microprocessor system architectures – IA32 introduction Jakub Yaghob

What is system architecture?

System architecture Application architecture System control registers System data structures System instructions

Page 5: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System architecture overview 32b - I

Page 6: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System architecture overview 32b - II

Page 7: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System architecture overview 64b - I

Page 8: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System architecture overview 64b - II

Page 9: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System architecture overview 64b - III

Model specific registers

Page 10: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Operating modes - I Protected mode

Native for i386+ processors Full 32-bit mode with system resources protection

Real mode Backward compatibility with 8086-80286 No protection Starting mode for CPU

Virtual 8086 mode Running inside the protected mode “Simulation” of the real mode

System management mode Transparent mechanism for implementing power management Activation of an external system interrupt pin Separate address space

Long/IA-32e mode Compatibility and full 64-bit mode

Page 11: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Operating modes - II

Page 12: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Operating modes - III

Page 13: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System flags in EFLAGS/RFLAGS

Page 14: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Memory management system registers

Page 15: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Control registers – CR0

PE – Protection Enable MP – Monitor coProcessor EM – EMulation TS – Task Switched ET – Extension Type NE – Numeric Error

WP – Write Protect AM – Alignment Mask NW – Not Write-through CD – Cache Disabled PG - PaGing

Page 16: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Effects of EM, MP and TS

Coprocessor emulation Context-switch support

Page 17: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Control registers – CR2 and CR3

Paging

PWT – Page-level Writes Transparent PCD – Page-level Cache Disable

Page 18: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Control registers – CR4 Extension

VME – Virtual-8086 Mode Extensions PVI – Protected-mode Virtual Interrupts TSD – Time Stamp Disable DE – Debugging Extensions PSE – Page Size Extensions PAE – Physical Address Extension MCE – Machine-Check Enable PGE – Page Global Enable PCE – Performance-monitoring Counter

Enable OSFXSR – Operating System support for

FXSAVE, FXRSTOR

OSXMMEXCPT – OS support for unmasked SIMD floating-point EXCePTion

VMXE – VMX Enable SMXE – SMX Enable FSGSBASE – Enable instructions

RDxSBASE, WRxSBASE (x=F/G) PCIDE – Enable PCID OSXSAVE – XSAVE and Processor

Extended States-Enable Bit SMEP – Enable supervisor-mode

execution prevention

Page 19: Microprocessor system architectures – IA32 introduction Jakub Yaghob

Extended Control Registers – XCR0

Paging

x87 – x87 state supported by CPU, must be 1, otherwise #GP

SSE – MXCSR and XMM registers supported by XSAVE/XRESTOR

AVX – AVX instructions, XSAVE/XRESTOR handle AVX state

Page 20: Microprocessor system architectures – IA32 introduction Jakub Yaghob

System instructions

LLDT, SLDT LGDT, SGDT LTR, STR LIDT, SIDT MOV CRn LMSW, SMSW CLTS ARPL, LAR, LSL VERR, VERW MOV DRn INVD, WBINVD

INVLPG HLT LOCK (Prefix) RSM RDMSR, WRMSR RDPMC, RDTSC , RDTSCP IN, OUT, INS, OUTS CLI, STI IRET XSETBV, XGETBV