Computer Organization (II) IA-32 Processor Architecture. Pu-Jen Cheng

Similar documents
Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 2: IA-32 Processor Architecture. Chapter Overview.

Assembly Language for x86 Processors 7 th Edition. Chapter 2: x86 Processor Architecture

Assembly Language for Intel-Based Computers, 4 th Edition. Kip R. Irvine. Chapter 2: IA-32 Processor Architecture

CS 16: Assembly Language Programming for the IBM PC and Compatibles

IA-32 Architecture. Computer Organization and Assembly Languages Yung-Yu Chuang 2005/10/6. with slides by Kip Irvine and Keith Van Rhein

Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 2: IA-32 Processor Architecture Included elements of the IA-64 bit

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam

IA-32 Architecture COE 205. Computer Organization and Assembly Language. Computer Engineering Department

Assembly Language. Lecture 2 x86 Processor Architecture

Hardware and Software Architecture. Chapter 2

Introduction to IA-32. Jo, Heeseung

INTRODUCTION TO IA-32. Jo, Heeseung

Computers and Microprocessors. Lecture 34 PHYS3360/AEP3630

Complex Instruction Set Computer (CISC)

We can study computer architectures by starting with the basic building blocks. Adders, decoders, multiplexors, flip-flops, registers,...

The Instruction Set. Chapter 5

IA32 Intel 32-bit Architecture

MICROPROCESSOR TECHNOLOGY

Chapter 2: The Microprocessor and its Architecture

Low Level Programming Lecture 2. International Faculty of Engineerig, Technical University of Łódź

6/17/2011. Introduction. Chapter Objectives Upon completion of this chapter, you will be able to:

EXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM

MICROPROCESSOR MICROPROCESSOR ARCHITECTURE. Prof. P. C. Patil UOP S.E.COMP (SEM-II)

Moodle WILLINGDON COLLEGE SANGLI (B. SC.-II) Digital Electronics

MICROPROCESSOR MICROPROCESSOR ARCHITECTURE. Prof. P. C. Patil UOP S.E.COMP (SEM-II)

IA32/Linux Virtual Memory Architecture

Embedded Systems Programming

Basic Execution Environment

EEM336 Microprocessors I. The Microprocessor and Its Architecture

Assembler Programming. Lecture 2

Machine-level Representation of Programs. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

The Microprocessor and its Architecture

Memory Models. Registers

Dr. Ramesh K. Karne Department of Computer and Information Sciences, Towson University, Towson, MD /12/2014 Slide 1

Lecture (02) The Microprocessor and Its Architecture By: Dr. Ahmed ElShafee

CS3210: Booting and x86

CS3210: Booting and x86. Taesoo Kim

The Pentium Processor

16-Bit Intel Processor Architecture

iapx Systems Electronic Computers M

UNIT 2 PROCESSORS ORGANIZATION CONT.

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-11: 80x86 Architecture

Addressing Modes on the x86

CMSC Lecture 03. UMBC, CMSC313, Richard Chang

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

BOOTSTRAP, PC BIOS, AND IA32 MEMORY MODES. CS124 Operating Systems Winter , Lecture 5

SYSC3601 Microprocessor Systems. Unit 2: The Intel 8086 Architecture and Programming Model

EECE416 :Microcomputer Fundamentals and Design. X86 Assembly Programming Part 1. Dr. Charles Kim

Architecture of 8086 Microprocessor

lesson 3 Transforming Data into Information

Lecture 15 Intel Manual, Vol. 1, Chapter 3. Fri, Mar 6, Hampden-Sydney College. The x86 Architecture. Robb T. Koether. Overview of the x86

What You Need to Know for Project Three. Dave Eckhardt Steve Muckle

Lab 2: Introduction to Assembly Language Programming

Computers Are Your Future

Tutorial 10 Protection Cont.

MICROPROCESSOR ALL IN ONE. Prof. P. C. Patil UOP S.E.COMP (SEM-II)

Processes and Tasks What comprises the state of a running program (a process or task)?

Microprocessor and Assembly Language Week-5. System Programming, BCS 6th, IBMS (2017)

Unit 08 Advanced Microprocessor

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 03, SPRING 2013

Intel 8086 MICROPROCESSOR ARCHITECTURE

DIGITA L LOGIC AND COMPUTER ORGA NIZATION

History of the Intel 80x86

x86 architecture et similia

eaymanelshenawy.wordpress.com

Intel 8086 MICROPROCESSOR. By Y V S Murthy

Chapter 2 COMPUTER SYSTEM HARDWARE

EC-333 Microprocessor and Interfacing Techniques

CHAPTER 3 BASIC EXECUTION ENVIRONMENT

The x86 Architecture

Computers and Microprocessors. Lecture 35 PHYS3360/AEP3630

Practical Malware Analysis

COS 318: Operating Systems. Overview. Prof. Margaret Martonosi Computer Science Department Princeton University

Introduction to the Personal Computer

Mechanisms for entering the system

Computer Processors. Part 2. Components of a Processor. Execution Unit The ALU. Execution Unit. The Brains of the Box. Processors. Execution Unit (EU)

A+ Guide to Hardware: Managing, Maintaining, and Troubleshooting, 5e. Chapter 1 Introducing Hardware

Celeron EPIC Computer with GUI and Dual Ethernet SBC4685

Week 1. Introduction to Microcomputers and Microprocessors, Computer Codes, Programming, and Operating Systems

3 Computer Architecture and Assembly Language

INTRODUCTION TO MICROPROCESSORS

Code segment Stack segment

Components of a personal computer

Computers Are Your Future

x86 Assembly Tutorial COS 318: Fall 2017

CC411: Introduction To Microprocessors

MICROPROCESSOR MCQs. 1) What does the microprocessor comprise of? a. Register section b. One or more ALU c. Control unit d.

Advanced Microprocessors

icroprocessor istory of Microprocessor ntel 8086:

Chapter 4 The Components of the System Unit

About the Presentations

Datapoint 2200 IA-32. main memory. components. implemented by Intel in the Nicholas FitzRoy-Dale

Marking Scheme. Examination Paper Department of CE. Module: Microprocessors (630313)

Computer System Architecture

The PowerEdge 6450 systems offer the following major features:

CS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017

Microprocessor (COM 9323)

Downloaded from various sources on the NET

CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY COMPUTER ARCHITECURE- III YEAR EEE-6 TH SEMESTER 16 MARKS QUESTION BANK UNIT-1

Systems Architecture I

Transcription:

Computer Organization & Assembly Languages Computer Organization (II) IA-32 Processor Architecture Pu-Jen Cheng

Materials Some materials used in this course are adapted from The slides prepared by Kip Irvine for the book, Assembly Language for Intel-Based Computers, 5 th Ed. Assembly Language & Computer Organization, NTU (http://www.csie.ntu.edu.tw/~cyy/courses/assembly/ 05fall/news/) (http://www.csie.ntu.edu.tw/~acpang/course/asm_2004)

IA-32 architecture From 386 to the latest 32-bit processor, P4 From programmer s point of view, IA-32 has not changed substantially except the introduction of a set of high-performance instructions

IA-32 Processor Architecture Modes of operation Basic execution environment Floating-point unit

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

Multitasking (supported by protected mode) OS can run multiple programs at the same time. Multiple threads of execution within the same program. Scheduler utility assigns a given amount of CPU time to each running program. Rapid switching of tasks gives illusion that all programs are running at once the processor must support task switching.

Process A process is an instance of a running program. Not the same as program or processor Process provides each program with two key abstractions: Logical control flow Each program seems to have exclusive use of the CPU. Private address space Each program seems to have exclusive use of main memory. How are these Illusions maintained? Process executions interleaved (multitasking) Address spaces managed by virtual memory system

Process States

Basic Execution Environment Addressable memory General-purpose registers Index and base registers Specialized register uses Status flags Floating-point, MMX, XMM registers

Addressable Memory Protected mode 4 GB 32-bit address Real-address and Virtual-8086 modes 1 MB space 20-bit address

General-Purpose Registers Named storage locations inside the CPU, optimized for speed. 32-bit General-Purpose Registers EAX EBX ECX EDX EBP ESP ESI EDI 16-bit Segment Registers EFLAGS EIP CS SS DS ES FS GS

Accessing Parts of Registers Use 8-bit name, 16-bit name, or 32-bit name Applies to EAX, EBX, ECX, and EDX 8 AH 8 AL 8 bits + 8 bits AX 16 bits EAX 32 bits

Index and Base Registers Some registers have only a 16-bit name for their lower half The 16-bit registers are usually used only in real-address mode

Some specialized register uses General-Purpose EAX accumulator (automatically used by division and multiplication) ECX loop counter ESP stack pointer (should never be used for arithmetic ti or data transfer) ESI, EDI index registers (used for high-speed memory transfer instructions) EBP extended frame pointer (stack)

Some specialized register uses (cont.) Segment CS code segment DS data segment SS stack segment ES, FS, GS - additional segments EIP instruction pointer EFLAGS control flags (control CPU s operation, e.g. break, interrupt, enter 8086/protected mode) Status flag each flag is a single binary bit (set or clear)

Status Flags Carry (CF) unsigned arithmetic out of range Overflow (OF) signed arithmetic out of range Sign (SF) result is negative Zero (ZF) result is zero Auxiliary Carry (AC) carry from bit 3 to bit 4 in 8-bit operand Parity (PF) sum of 1 bits in least-significant byte is an even number

System registers Accessed by operating system kernel at highest privilege level, not by application programs IDTR (Interrupt Descriptor Table Register) GDTR (Global Descriptor Table Register) LDTR (Local Descriptor Table Register) Task register Debug registers Control registers (e.g. task switching, paging, enabling cache memory) Model-specific registers (e.g. performance monitoring, checking architecture)

Floating-Point, MMX, XMM Registers Eight 80-bit floating-point data registers ST(0), ST(1),..., ST(7) arranged in a stack used for all floating-point arithmetic Eight 64-bit MMX registers Eight 128-bit XMM registers for single-instruction multiple-data (SIMD) operations ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7) SIMD: A single computer instruction perform the same identical action (retrieve, calculate, or store) simultaneously on two or more pieces of data

IA-32 Memory Management Real-address mode Calculating linear addresses Protected mode Multi-segment model Paging

Real-Address mode 1 MB RAM maximum addressable Application programs can access any area of memory Single tasking Supported by MS-DOS operating system

Segmented Memory Segmented memory addressing: absolute (linear) address is a combination of a 16-bit segment value added to a 16-bit offset 8086 processor only has 16-bit registers F0000 E0000 D0000 C0000 B0000 A0000 90000 80000 70000 8000:FFFF one segment 60000 50000 40000 0250 8000:0250 30000 8000:0000 20000 10000 00000 seg ofs Segment: 64K units

Calculating Linear Addresses Given a segment address, multiply it by 16 (add a hexadecimal zero), and add it to the offset Example: convert 08F1:0100 to a linear address Adjusted Segment value: 0 8 F 1 0 Add the offset: 0 1 0 0 Linear address: 0 9 0 1 0 A typical program has three segments: code, data and stack. Segment registers CS, DS and SS are used to store them separately.

Your turn... What linear address corresponds to the segment/offset address 028F:0030? 028F0 + 0030 = 02920 Always use hexadecimal notation for addresses.

Your turn... What segment addresses correspond to the linear address 28F30h? Many different segment-offset addresses can produce the linear address 28F30h. For example: 28F0:0030, 28F3:0000, 28B0:0430,...

Protected Mode 4 GB addressable RAM (00000000 to FFFFFFFFh) Each program assigned a memory partition which is protected from other programs Designed for multitasking Supported by Linux & MS-Windows

Protected Mode (cont.) Segments variable-sized areas of memory for code & data Segment descriptor 64-bit value identifying and describing a single memory segment contains segment s base address, access rights, size limit, type, and usage Segment descriptor table contains segment descriptors by which OS keep track of locations of individual program segments Segment registers points to segment descriptor tables Program structure code, data, and stack areas CS, DS, SS segment descriptors global descriptor table (GDT) MASM Programs use the Microsoft flat memory model

Flat Segment Model Single global descriptor table (GDT) whose base address is in GDTR Created when OS switches the processor into protected mode during boot up All segments mapped to entire 32-bit address space Segment descriptor, in the Global Descriptor Table not u sed FFFFFFFF (4GB) 00040000 base address limit access 00000000 00040 - - - - physical RAM 00000000

Multi-Segment Model Each program has a local descriptor table (LDT) holds descriptor for each segment used by the program RAM Local Descriptor Table base limit access 00026000 0010 00008000 000A 00003000 0002 26000 8000 3000

Translating Addresses (See Ch11.4) The IA-32 processor uses a one- or two-step process to convert a variable's logical address into a unique memory location. The first step combines a segment value (16- bit, segment register) with a variable s offset (32-bit) to create a linear address. The second optional step, called page translation, converts a linear address to a physical address.

Converting Logical to Linear Address The segment selector (16-bit) points to a segment descriptor, which contains the base address of a memory segment. The 32-bit offset from the logical address is added to the segment s base address, generating a 32-bit linear address. Logical address Selector GDTR/LDTR Offset (contains base address of descriptor table) Descriptor table Segment Descriptor + Linear address

Indexing into a Descriptor Table Each segment descriptor indexes into the program's local descriptor table (LDT) Each table entry is mapped to a linear address: Linear address space (unused) Logical addresses SS ESP 0018 0000003A Local Descriptor Table DRAM DS offset 0010 000001B6 cs IP 0008 00002CD3 (index) 18 10 08 00 001A0000 0002A000 0001A000 00003000 LDTR register

Virtual Memory Concepts Implements a mapping function Between virtual address space and physical address space Examples PowerPC 48-bit virtual address 32-bit physical address Pentium Both are 32-bit addresses But uses segmentation

Virtual Memory Concepts (cont.) Virtual address space is divided into fixed-size chunks These chunks are called virtual pages Virtual address is divided into Virtual page number Byte offset into a virtual page Physical memory is also divided into similar-size chunks These chunks are referred to as physical pages Physical address is divided into Physical page number Byte offset within a page

Virtual Memory Concepts (cont.) Page size is similar to cache line size Typical page size 4 KB Example 32-bit virtual address to 24-bit physical address If page size is 4 KB Page offset: 12 bits Virtual page number: 20 bits Physical page number: 12 bits Virtual memory maps 2 20 virtual pages to 2 12 physical pages

Virtual Memory Concepts (cont.) An example mapping of 32-bit virtual address to 24-bit physical address

Virtual Memory Concepts (cont.) Virtual to physical address mapping

Virtual Memory Concepts (cont.) A virtual page can be In main memory On disk Page fault occurs if the page is not in memory Like a cache miss OS takes control and transfers the page

Paging Supported directly by the CPU Divides each segment into 4096-byte blocks called pages Sum of all programs can be larger than physical memory Part of running program is in memory, part is on disk Virtual memory manager (VMM) OS utility that manages the loading and unloading of pages As the program runs, the processor selectively unloads inactive pages from memory and loads other pages that are immediately required.

Paging (cont.) OS maintains page directory and page tables Page translation: CPU converts the linear address into a physical address Page fault: issued by CPU when a needed page is not in memory, and CPU interrupts the program OS copies the page into memory, program resumes execution

Page Translation A linear address is divided into a page directory field, page table field, and page frame offset. The CPU uses all three to calculate the physical address. Linear Address 10 10 12 Directory Table Offset Page Directory Directory Entry CR3 32 Page Table Page-Table Entry Page Frame Physical Address

Intel Microprocessor History Intel 8086, 80286 IA-32 processor family P6 processor family CISC and RISC

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)

The IBM-AT Intel 80286 16 MB addressable RAM Protected memory several times faster than 8086 introduced IDE bus architecture 80287 floating point unit

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

Intel P6 Family Pentium Pro advanced optimization techniques in microcode Pentium II MMX (multimedia) instruction set Pentium III SIMD (streaming extensions) instructions Pentium 4 and Xeon Intel NetBurst micro-architecture, tuned for multimedia

What's Next General Concepts IA-32 Processor Architecture IA-32 Memory Management Components of an IA-32 Microcomputer Input-Output t t System

What's Next General Concepts IA-32 Processor Architecture IA-32 Memory Management Components of an IA-32 Microcomputer Input-Output System

Components of an IA-32 Microcomputer Motherboard Video output Memory Input-output ports

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)

Intel D850MD Motherboard Video Audio chip mouse, keyboard, parallel, serial, and USB connectors PCI slots AGP slot memory controller hub Pentium 4 socket dynamic RAM Firmware hub I/O Controller Speaker Battery Source: Intel Desktop Board D850MD/D850MV Technical Product Specification IDE drive connectors Power connector Diskette connector

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.

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

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)

Input-Output Ports USB (universal serial bus) intelligent high-speed connection to devices up to 480 megabits/second (USB version 2.0) 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

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

What's Next General Concepts IA-32 Processor Architecture IA-32 Memory Management Components of an IA-32 Microcomputer Input-Output System

Levels of Input-Output Level 3: Call a library function (C++, Java) easy to do; abstracted from hardware; details hidden slowest performance Level 2: Call an operating system function specific to one OS; device-independent medium performance Level 1: Call a BIOS (basic input-output system) function may produce different results on different systems knowledge of hardware required usually good performance Level 0: Communicate directly with the hardware May not be allowed by some operating systems

Displaying a String of Characters When a HLL program displays a string of characters, the following steps take place: Application Program Level 3 OS Function Level 2 BIOS Function Level 1 Hardware Level 0

ASM Programming levels ASM programs can perform input-output at each of the following levels: OS Function Level 2 ASM Program BIOS Function Level 1 Hardware Level 0