1 / 14

16.317: Microprocessor System Design I

16.317: Microprocessor System Design I. Instructor: Dr. Michael Geiger Spring 2012 Lecture 20: Protected mode introduction. Lecture outline. Announcements/reminders Lab 2 due 3/28 HW 3 posted, due 3/26 Lecture outline Review: subroutine instructions Protected mode intro. Review.

wilbur
Download Presentation

16.317: Microprocessor System Design I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 16.317: Microprocessor System Design I Instructor: Dr. Michael Geiger Spring 2012 Lecture 20: Protected mode introduction

  2. Lecture outline • Announcements/reminders • Lab 2 due 3/28 • HW 3 posted, due 3/26 • Lecture outline • Review: subroutine instructions • Protected mode intro Microprocessors I: Lecture 20

  3. Review • Subroutines: low-level functions • When called, address of next instruction saved • Return instruction ends routine; goes to that point • May need to save state on stack • 80386 specifics • CALL <proc>: call procedure • <proc> can be label (16-/32-bit imm), reg, mem • RET: return from procedure • Saving state to stack: push instructions • Store data “above” current TOS; decrement SP • Basic PUSH stores word or double word • Directly storing flags: PUSHF • Storing all 16-/32-bit general purpose registers: PUSHA/PUSHAD • Restoring state: POP/POPF/POPA/POPAD Microprocessors I: Lecture 20

  4. 80386DX Subroutine example SQUARE PROC NEAR PUSH AX ; Save AX to stack MOV AL, BL ; Copy BL to AL IMUL BL ; AL = BL * AL ; = original BL squared MOV BX, AX ; Copy result to BX POP AX ; Restore AX RET SQUARE ENDP Microprocessors I: Lecture 20

  5. Protected Mode Benefits • Memory management • Larger memory space (up to 4GB physical memory) • Flexible segment size in segmentation • Can also be organized as 4KB “pages” • Virtual memory (larger than physical memory size) • Multitasking • Tasks sharing CPU, memory, I/O • Protection • Safeguard against software bugs and integrity of OS • Virtual mode • Allow execution of DOS applications Microprocessors I: Lecture 20

  6. Protected Mode Differences • PE bit in CR0 = 1  protected mode • Instruction pointer, FLAGS extended to 32 bits  EIP, EFLAGS • All four control registers active (CR0-CR3) • Used for machine status, paging support • Memory addressing done through use of selectors and descriptors • Segment register operation changed • Descriptors stored in tables indicated by special purpose registers • Task switching, paging (virtual memory), virtual mode all supported in hardware • Additional registers/hardware mechanisms used Microprocessors I: Lecture 20

  7. Selectors • Segment registers now hold selectors • Index into table holding actual memory address • Selector format • RPL: Requested privilege level • 4 levels  0 highest, 3 lowest • Used for checking access rights • TI: Table indicator • Global (TI == 0) or local (TI == 1) data/code • Index: pointer into appropriate descriptor table Microprocessors I: Lecture 20

  8. Descriptors • Descriptor: information about protected-mode segment • Each descriptor is 8 bytes long; includes: • 32-bit segment starting address (base) • 20-bit maximum offset within segment (limit) • Actual segment size = limit + 1 • Additional bit allows “granularity” to change so limit can specify segment size up to 4 GB • Access information (privilege, access bits, etc.) • Descriptors stored in memory regions organized as descriptor tables Microprocessors I: Lecture 20

  9. Memory accesses • Real mode • Segment register indicates start of segment • Physical addr. = (shifted segment register) + (effective address) • Protected mode • Segment selector register points to descriptor table entry • Descriptor indicates start (base) of segment • Linear addr. = (segment base) + (effective address) Microprocessors I: Lecture 20

  10. Descriptor tables • Descriptors organized into “tables” • Memory ranges holding all descriptors • Two memory types in protected mode • Global memory: accessible to all tasks • Descriptors in global descriptor table (GDT) • Local memory: memory accessible to only a single task • Descriptors in local descriptor table (LDT) • Each task has its own LDT Microprocessors I: Lecture 20

  11. Global Descriptor Table Register (GDTR) • GDTR describes global descriptor table • Lower 2 bytes define LIMIT (or size) • Upper 4 bytes define base (starting address) • Initialized before switching to protected mode • Example: GDTR = 001000000FFFH • GDT base = 00100000H, • GDT size = 0FFFH+1 = 1000H = 4096 bytes • # of descriptors = 4096/8 = 512 • Highest address in GDT = 00100FFFH Microprocessors I: Lecture 20

  12. GDTR questions • What is the GDT base address and limit if • GDTR = 1234000000FFH? • GDTR = FEDC1AB20007H? • GDTR = AABB11221F0FH? • What is the size of the GDT and number of descriptors it holds in each of the examples above? • What is the maximum GDT size and number of descriptors? • What property must the GDTR limit always satisfy? Why? Microprocessors I: Lecture 20

  13. Illustrating global memory access MOV AX, [10H]  Logical addr = DS:10H DS = 0013H = RPL = 3 Index = 2 TI = 0  global Desc. 2 Base = 00000100H Limit = 0FFFH 00002010H GDTR = Base Limit Descriptor addr: (GDT base) + (selector index * 8) 00002000H + (0002H * 8) 00002010H Actual mem addr: (seg base) + (effective address) 00000100H + 10H 00000110H Microprocessors I: Lecture 21

  14. Next time • Continue with discussion of protected mode • Local memory access • Interrupt descriptors • Task register/task switching • Virtual memory Microprocessors I: Lecture 20

More Related