62
An Introduction to IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

An Introduction to IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

  • Upload
    dolph

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

An Introduction to IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008. Overview. Microcomputer Design Intel IA-32 Family Tree Operating Environment Input / Output The Future. Microcomputer Design. What is IA-32? Intel Architecture 32-bit Also known as x86 or i386 - PowerPoint PPT Presentation

Citation preview

Page 1: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

An Introduction to IA-32 Processor

Architecture

Eddie LopezCSCI 6303

Oct 6, 2008

Page 2: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Overview

Microcomputer Design

Intel IA-32 Family Tree

Operating Environment

Input / Output

The Future

Page 3: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

What is IA-32? Intel Architecture 32-bit Also known as x86 or i386 Intel 80386 chip released in 1985 First Intel 32-bit chip

Backward Compatibility preserved Replaced 16-bit architecture of

8086,80186, 80286

Microcomputer Design

Page 4: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Other Manufacturers also produced IA-32 compatible processors

AMD, Cyrix, VIA

Microcomputer Design

Page 5: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

The Central Processing Unit (CPU)

Page 6: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

Motherboard

Page 7: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

CPU Heat Sinks

Page 8: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

The Central Processing Unit contains: Control Unit Arithmetic Logic Unit (ALU) High Frequency Clock Registers

Page 9: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

Page 10: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

IA-32 Instruction Execution Pipeline: Bus Interface Unit – accesses memory Code Prefetch Unit – instruction queue Instruction Decode Unit – translates to

microcode Execution Unit – executes microcode Segment Unit – translates logical

addresses to linear addresses Paging Unit – translates linear addresses

to physical addresses.

Page 11: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Microcomputer Design

Instruction Execution Cycle Fetch – gets instruction from memory Decode – translate into microcode Fetch input – get data from memory Execute – ALU performs instruction Store output – store data back into

memory

Page 12: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Questions?

Page 13: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Architecture

Microcomputer Design

Intel IA-32 Family Tree

Operating Environment

Input / Output

The Future

Page 14: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

8086 (1979) Segmented Memory 20 bit addressing 1 MB limit

Page 15: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

80286 (1982) Protected Mode Privilege Rings

Ring 0 – Kernel Ring 1 – OS / Device Drivers Ring 2 – Device Drivers Ring 3 - Applications

Page 16: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

80386 (1985) Intel’s First 32-bit Processor Flat Memory Model 32-bit Addressing 4 GB Limit Paging

Page 17: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

80486 (1989) Level 1 Cache (8 KB) On-board FPU (Floating Point Unit) 5 Stage Pipeline

Page 18: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Pentium (1993) Super Scalar (u,v pipelines) Separate Code and Data Cache (8KB) Branch Prediction

Page 19: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Branch Prediction Model

Loop 100 times

Do something

Next loop

Next instruction

Page 20: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Pentium Pro (1995) 3 instruction pipelines Out of order execution 36-bit address bus can address 64GB

memory 256kb Level 2 cache MMX Instruction Set

Page 21: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Pentium II (1997) Level 1 cache increased 16KB each Level 2 cache 256KB, 512KB, 1 MB Celeron 128 KB (Value Market)

Page 22: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Pentium III (1999) SSE instruction set (XMM registers)

Pentium IV (2000) SSE2 instruction set NetBurst Micro-architecture Hyper-Threading

Page 23: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

NetBurst Micro-Architecture

•ALU runs at x2 speed

•Dynamic Execution

•Out-Of-Order

Page 24: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Core Micro-Architecture

• 4 Pipelines (14 stages)

• 3 ALU Units

• 4 Instruction Decoders

• Macrofusion

Page 25: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Family Tree

Core Micro-Architecture (Intel Conroe)

Page 26: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Questions?

Page 27: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Overview

Operating Environment Operating Modes

Registers

Memory Management

Instruction Format

Page 28: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Operating Modes

Real Mode Protected Mode System Management Mode Virtual 8086 Mode

Page 29: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Operating Modes

Real Mode Operating mode for 8086 20-bit addressing: 1MB of memory No memory protection or multitasking Modern chips start up in real-mode for

backward compatibility

Page 30: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Operating Modes

Protected Mode Introduced in Intel 80286 chip 32-bit addressing: 4GB of memory Flat memory model Uses privilege rings (0-3) to regulate

applications.

Page 31: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Operating Modes

Protection Rings

Page 32: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Operating Modes

Virtual 8086 Mode Allows “real mode” programs to run

under the supervision of a protected mode operating system

Allows operating systems to run Virtual DOS machines to run legacy software.

Page 33: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Operating Modes

System Management Mode Provides OS with power management

and system security functions.

Page 34: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

What is a register? Storage space on the CPU Used for fast memory storage and

processing Each of the general registers has a

special name and a specific use.

Page 35: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

Page 36: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

Floating Point registers (80-bit) ST0 – ST7 (Part of Floating Point Unit)

MMX registers (64-bit) MMX0 – MMX7

SIMD registers (128-bit) XMM0 – XMM7

Control Registers (32-bit) CR0 - CR4

Page 37: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

Test Registers TR4 - TR7

Description Registers GDTR, LDTR, IDTR

Task Register TR

Control Registers (32-bit) CR0 - CR4

Page 38: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

MMX Multi-Media Extensions Introduced on the Pentium Pro Used for graphics and multimedia

SSE Streaming SIMD Introduced on the Pentium III One instruction can be applied to

multiple data

Page 39: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

6 Segment Registers (16 bit) contain address pointers to segments of the currently running process CS Code Segment DS, ES, FS, GS Data Segments SS Stack Segment

1 Instruction Pointer (32-bit) Contains the memory address of the

next instruction to execute.

Page 40: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

Compatibility with previous architecture To allow backward compatibility,

registers EAX, EBX, ECX, and EDX can be addressed as subsets.

Example using the EAX register:

Page 41: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

Roles for Generic Registers EAX – Accumulator EBX – Base Addressing ECX – Counter EDX – Data Operand EDI – Destination Address ESI – Source Address ESP – Stack Pointer EBP – Stack Base Pointer

Page 42: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Registers

EFLAGS register Carry Flag (CF) – Unsigned Carry Overflow Flag (OF) – Signed Overflow Sign Flag (SF) - Negative arithmetic

results Zero Flag (ZF) – Zero arithmetic

results Auxiliary Carry Flag Parity Flag – Even/Odd of a value

Page 43: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Instruction Set

IA-32 Architecture uses CISC CISC – Complex Instruction Set Computer Large amount of complex instructions Easier for compilers and programmers But placed a strain on decoder Backward Compatibility is a burden

RISC Reduced Instruction Set Computer Atomic instructions Easy to decode and run quickly

Page 44: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Instruction Format

Instructions of varying length Design decisions from 8086 have

placed a burden on modern architecture.

One instruction can vary from 1 byte to 17 bytes

Page 45: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Instruction Format

The instruction Format Prefix (0-4 bytes) Opcode (1-3 bytes) R/M Modifier (0-1 byte) SIB Modifier (0-1 byte) Displacement Modifier (0-4 bytes) Data elements (0-4 bytes)

Page 46: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Instruction Format

Prefix (0-4 bytes) Alerts the CPU that address or operand sizes

are about to change Opcode (1-3 bytes)

The operation to execute. Common operations have one byte code, less frequently used ones get three opcodes

R/M Modifier (0-1 byte) Specifies the addressing mode – Register or

Memory

Page 47: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Instruction Format

Scale / Index / Base (0-1 byte) Indicates whether the register serves

as an index or a base and gives the scale factor

Displacement Modifier (0-4 bytes) Provides an additional data offset

Data elements (0-4 bytes) Immediate data (values and

addresses)

Page 48: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Instruction Sets

Types of instructions in the set: Move data between memory and

registers Exchanging data Integer Arithmetic Flow Control Procedure call and return Manipulating the stack Character string operations

Page 49: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Memory Management

Real Mode 20 bit Addressing: 1 MB of memory Addresses: 00000 to FFFFF Memory is logically divided into 64KB

segments Segment registers stored the segment CPU converts segment:offset value to

its linear equivalent

Page 50: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Memory

Reading From Memory Fetching operands from RAM is slow Bus Interface Unit polls RAM for data and

waits. The CPU is goes into a wait state. Requires many clock cycles depending on

speed of RAM. Level-1 cache is much faster – keeps data

near Registers are the fastest

Page 51: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Memory

Reading From Memory Processor places address on the

address bus Processor asserts the memory read

control signal Processor waits for memory to place

the data on the data bus Processor reads the data from the

data bus Processor drops the memory read signal

Page 52: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Memory Management

Protected Mode 32 bit Addressing: 4 GB of memory Addresses: 00000000 to FFFFFFFF Each process “sees” the full 4 GB. Segment registers store indexes to a

global descriptor table. Multiple processes running

simultaneously Prevents processes from corrupting

each other's data.

Page 53: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Memory Management

Paging Segments are divided into 4KB blocks Virtual Memory Manager Blocks are sent to the page file on the

hard disk when they are not in use Switching between applications in low

memory condition requires a delay The more memory, the less paging is

required

Page 54: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Program Execution

What happens when program runs? User clicks on a program icon Operating System (OS) searches for program OS loads programs into available memory

What happens if memory is full? OS Allocates blocks of memory and adjusts

pointers in the code to point to the data OS branches to the first executable instruction At this point, it becomes a Process Memory is released after program ends

Page 55: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Program Execution

Multi-tasking OS can run multiple processes Only one process runs at any given time Processes run in a time slice CPU must support Task Switching Task Switching requires that all registers

and program counter be stored when switching to another process

Page 56: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Questions?

Page 57: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

IA-32 Architecture

Microcomputer Design

Intel IA-32 Family Tree

Operating Environment

Input / Output

The Future

Page 58: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Input / Output

Input Keyboard, Mouse, Network Card, etc

Output Monitor, Printer, etc

Page 59: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Input / Output

There are 4 access levels of I/O interaction

Level 3 – High level programming language Level 2 – Operating System API Level 1 – BIOS Level 0 – Direct Hardware interaction

The lower the access level, the faster the result, but what is the trade-off?

Operating System may reserve direct access to hardware

Page 60: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Input / Output

Input/Output is Interrupt Driven What happens when you press a

key on the keyboard? Keyboard sends signal to CPU CPU stops and handles the request by

the keyboard that a key was struck CPU puts keystroke into a buffer and

returns to the previous process

Page 61: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

The Future

Intel 64 Shrinking Cores

45 nm core (Intel Penryn) 32 nm (Intel 2009)

Multiple Cores Xeon 7400 Hexcore (9/16/08)

IA-32 phase-out

Page 62: An Introduction to  IA-32 Processor Architecture Eddie Lopez CSCI 6303 Oct 6, 2008

Questions?

The End…