Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
IA-32 Processor Architecture • • • • Modes of operation Basic execution environment Floating-point unit Intel Microprocessor history Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 1 Modes of Operation • Protected mode • native mode (Windows, Linux) • Real-address mode • native MS-DOS • System management mode • power management, system security, diagnostics • Virtual-8086 mode • hybrid of Protected • each program has its own 8086 computer Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 2 Basic Execution Environment • • • • • • Addressable memory General-purpose registers Index and base registers Specialized register uses Status flags Floating-point, MMX, XMM registers Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 3 Addressable Memory • Protected mode • 4 GB • 32-bit address • Real-address and Virtual-8086 modes • 1 MB space • 20-bit address Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 4 General-Purpose Registers Named storage locations inside the CPU, optimized for speed. 32-bit General-Purpose Registers EAX EBP EBX ESP ECX ESI EDX EDI 16-bit Segment Registers EFLAGS EIP Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. CS ES SS FS DS GS 5 Accessing Parts of Registers • Use 8-bit name, 16-bit name, or 32-bit name • Applies to EAX, EBX, ECX, and EDX 8 8 AH AL AX EAX Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 8 bits + 8 bits 16 bits 32 bits 6 Index and Base Registers • Some registers have only a 16-bit name for their lower half: Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 7 Some Specialized Register Uses (1 of 2) • General-Purpose • • • • • EAX – accumulator ECX – loop counter ESP – stack pointer ESI, EDI – index registers EBP – extended frame pointer (stack) • Segment • • • • CS – code segment DS – data segment SS – stack segment ES, FS, GS - additional segments Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 8 Some Specialized Register Uses (2 of 2) • EIP – instruction pointer • EFLAGS • status and control flags • each flag is a single binary bit Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 9 Status Flags • Carry • unsigned arithmetic out of range • Overflow • signed arithmetic out of range • Sign • result is negative • Zero • result is zero • Auxiliary Carry • carry from bit 3 to bit 4 • Parity • sum of 1 bits is an even number Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 10 Floating-Point, MMX, XMM Registers 80-bit Data Registers • Eight 80-bit floating-point data registers ST(0) • ST(0), ST(1), . . . , ST(7) ST(1) • arranged in a stack ST(2) • used for all floating-point arithmetic • Eight 64-bit MMX registers • Eight 128-bit XMM registers for singleinstruction multiple-data (SIMD) operations ST(3) ST(4) ST(5) ST(6) ST(7) Opcode Register Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 11 Intel Microprocessor History • • • • Intel 8086, 80286 IA-32 processor family P6 processor family CISC and RISC Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 12 Early Intel Microprocessors • Intel 8080 • 64K addressable RAM • 8-bit registers • CP/M operating system • S-100 BUS architecture • 8-inch floppy disks! • Intel 8086/8088 • IBM-PC Used 8088 • 1 MB addressable RAM • 16-bit registers • 16-bit data bus (8-bit for 8088) • separate floating-point unit (8087) Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 13 The IBM-AT • Intel 80286 • 16 MB addressable RAM • Protected memory • several times faster than 8086 • introduced IDE bus architecture • 80287 floating point unit Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 14 Intel IA-32 Family • Intel386 • 4 GB addressable RAM, 32-bit registers, paging (virtual memory) • Intel486 • instruction pipelining • Pentium • superscalar, 32-bit address bus, 64-bit internal data path Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 15 64-bit Processors • Intel64 • 64-bit linear address space • Intel: Pentium Extreme, Xeon, Celeron D, Pendium D, Core 2, and Core i7 • IA-32e Mode • Compatibility mode for legacy 16- and 32-bit applications • 64-bit Mode uses 64-bit addresses and operands Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 16 Intel Technologies • HyperThreading technology • two tasks execute on a single processor at the same time • Dual Core processing • multiple processor cores in the same IC package • each processor has its own resources and communication path with the bus Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 17 Intel Processor Families Currently Used: • • • • Pentium & Celeron – dual core Core 2 Duo - 2 processor cores Core 2 Quad - 4 processor cores Core i7 – 4 processor cores Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 18 CISC and RISC • CISC – complex instruction set • large instruction set • high-level operations • requires microcode interpreter • examples: Intel 80x86 family • RISC – reduced instruction set • simple, atomic instructions • small instruction set • directly executed by hardware • examples: • ARM (Advanced RISC Machines) • DEC Alpha (now Compaq) Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 19 What's Next • • • • • General Concepts IA-32 Processor Architecture IA-32 Memory Management Components of an IA-32 Microcomputer Input-Output System Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 20 Components of an IA-32 Microcomputer • • • • Motherboard Video output Memory Input-output ports Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 21 Motherboard • • • • • • • CPU socket External cache memory slots Main memory slots BIOS chips Sound synthesizer chip (optional) Video controller chip (optional) IDE, parallel, serial, USB, video, keyboard, joystick, network, and mouse connectors • PCI bus connectors (expansion cards) Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 22 Intel D850MD Motherboard Video mouse, keyboard, parallel, serial, and USB connectors Audio chip PCI slots memory controller hub Pentium 4 socket AGP slot dynamic RAM Firmware hub I/O Controller Speaker Battery Power connector Diskette connector Source: Intel® Desktop Board D850MD/D850MV Technical Product Specification Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. IDE drive connectors 23 Intel 965 Express Chipset Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 24 Video Output • Video controller • on motherboard, or on expansion card • AGP (accelerated graphics port technology)* • Video memory (VRAM) • Video CRT Display • uses raster scanning • horizontal retrace • vertical retrace • Direct digital LCD monitors • no raster scanning required * This link may change over time. Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 25 Sample Video Controller (ATI Corp.) • 128-bit 3D graphics performance powered by RAGE™ 128 PRO • 3D graphics performance • Intelligent TV-Tuner with Digital VCR • TV-ON-DEMAND™ • Interactive Program Guide • Still image and MPEG-2 motion video capture • Video editing • Hardware DVD video playback • Video output to TV or VCR Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 26 Memory • • • • • • • ROM • read-only memory EPROM • erasable programmable read-only memory Dynamic RAM (DRAM) • inexpensive; must be refreshed constantly Static RAM (SRAM) • expensive; used for cache memory; no refresh required Video RAM (VRAM) • dual ported; optimized for constant video refresh CMOS RAM • complimentary metal-oxide semiconductor • system setup information See: Intel platform memory (Intel technology brief: link address may change) Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 27 Input-Output Ports • USB (universal serial bus) • • • • • intelligent high-speed connection to devices up to 12 megabits/second USB hub connects multiple devices enumeration: computer queries devices supports hot connections • Parallel • • • • short cable, high speed common for printers bidirectional, parallel data transfer Intel 8255 controller chip Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 28 Input-Output Ports (cont) • Serial • • • • RS-232 serial port one bit at a time uses long cables and modems 16550 UART (universal asynchronous receiver transmitter) • programmable in assembly language Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 29 Device Interfaces • ATA host adapters • intelligent drive electronics (hard drive, CDROM) • SATA (Serial ATA) • inexpensive, fast, bidirectional • FireWire • high speed (800 MB/sec), many devices at once • Bluetooth • small amounts of data, short distances, low power usage • Wi-Fi (wireless Ethernet) • IEEE 802.11 standard, faster than Bluetooth Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010. 30