第6讲Pentium虚拟存储剖析_第1页
第6讲Pentium虚拟存储剖析_第2页
第6讲Pentium虚拟存储剖析_第3页
第6讲Pentium虚拟存储剖析_第4页
第6讲Pentium虚拟存储剖析_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第6讲讲Pentium虚拟存储剖析虚拟存储剖析1 Pentium的虚拟存储的虚拟存储 虚拟存储技术 物理和虚拟寻址 三种虚拟存储器 Pentium的三类地址 分段管理 段描述符表 逻辑地址转换为线性地址 分页管理 页相关概念 页表目录项和页表项 线性地址转换为物理地址 转换检测缓冲器TLB 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析2 虚拟存储技术虚拟存储技术 虚拟存储器指的是“主存-辅存”层次。 由主存、辅存和存储管理部件MMU共同组建。通过管理软 件,使主存和辅存密切配合,能使该层次具有辅存的容量 ,接近于主存的等效速度和辅存的每位成本。它使得程序 员可以按比主存大得多的虚存空间编

2、制程序。 程序员编写程序时使用虚拟地址(逻辑地址) 程序运行时,逻辑地址转为物理地址。对于大的程序,可 以先分配少数几个页面,将该程序的一部分装入主存。在 运行中间,发生缺页时再按需按需陆续调入。只要主存容量大 于某个最小值,不论机器配备多大容量的主存,程序可不 必作任何修改照样能运行。 主存实际容量的大小会影响系统工作的效率和解题速度。 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析3 A System Using Physical Addressing(物理寻址物理寻址) 应用于简单的系统中,如汽车、电梯、数码相框等设备的嵌 入式微控制器 0: 1: M-1: Main memory C

3、PU 2: 3: 4: 5: 6: 7: Physical address (PA) Data word 8: . 4 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析4 A System Using Virtual Addressing(虚拟寻址虚拟寻址) Used in all modern servers, desktops, and laptops One of the great ideas in computer science 0: 1: M-1: Main memory MMU 2: 3: 4: 5: 6: 7: Physical address (PA) Data word

4、8: . CPU Virtual address (VA) CPU Chip 4 4100 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析5 三种虚拟存储器三种虚拟存储器 段式虚拟存储器 每段的长度不是固定的 每个段都是受到保护的独立的空间 页式虚拟存储器 一个系统中的所有页面大小固定 页面的起点和终点也固定 只有分页机制才支持虚拟存储 段页式虚拟存储器 Pentium中使用 只在保护模式下支持 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析6 Pentium的三类地址的三类地址 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析7 Pentium的三类地址的三类地址 逻辑地址 这是程序员编

5、写的源程序中使用的地址 完整的逻辑地址一共48位 逻辑地址中的选择子对应于段基址 线性地址 由分段部件转换逻辑地址得到 由2个32位量相加而成,分别是段基址和偏移地址 段基址由段描述符得到 线性地址是分为3个字段体现其功能 物理地址 由分页部件转换线性地址得到 是物理存储器的地址,实际访问时用到 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析8 Pentium的虚拟存储的虚拟存储 虚拟存储技术 物理和虚拟寻址 三种虚拟存储器 Pentium的三类地址 分段管理分段管理 段选择子段选择子 段描述符段描述符 段描述符表段描述符表 逻辑地址转换为线性地址逻辑地址转换为线性地址 分页管理 页相关概念

6、 页表目录项和页表项 线性地址转换为物理地址 转换检测缓冲器TLB 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析9 分段管理分段管理 相关控制信息 大小 界限 访问的优先级 访问属性(eg. 是否可读写) 三种描述符表 GDT:供系统所有程序使用 LDT:专门供某个程序使用 IDT:包含指向256个中断服务程序入口的中断描述符 描述符表的三个优点 扩展存储空间 实现虚拟存储 实现多任务隔离 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析10 段选择子段选择子 应用程序不能修改 程序运行前由link程序或装配程序根据当时的环境 指定 段描述符索引字段DI 13位,可以在描述符表的213个项

7、中选择一个段描述符 对应描述符地址:描述符表起始地址+DI*8 起始地址来自描述符表寄存器LDTR或GDTR GDTR的内容在OS启动时设置 LDTR内容在任务(程序)启动时设置 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析11 段选择子段选择子 描述符表指示标志TI 0,索引GDT 1,索引LDT 请求特权级字段RPL 2位,4个特权级 防止特权级低的程序访问特权级高的程序的数据 保护系统程序所用数据不被破坏 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析12 段描述符段描述符 8个字节,包含对应段的所有信息 系统启动时,由OS生成固定格式的DT,每个程序运行前 ,由链接程序、编译程序

8、或装配程序填写对应项 系统程序用的系统段和应用程序用的非系统段描述符略有 不同 应用程序的数据段和代码段描述符也略有不同 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析13 32位段基址 G:粒度(段界限长度单位) 0,以字节为单位 1,以4KB为单位 20位段界限(段的长度) 段长度=段界限* 段类型S 1,非系统段描述符,对应段为代码段、数据段或堆栈段 0,系统段描述符,包括任务状态的TSS、各种门机构、 LDT和IDT )41(KBGBG 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析14 3位段属性 E:可执行位 E=1且S=1,该段为应用程序的代码段 E=0且S=1,该段为应用程

9、序的数据段(包括堆栈段) ED/C:扩展方向/符合位 E=1且S=1,本位作为符合位C。C=1,本段可被调用执行,否则 不能被当前任务调用 E=0且S=1,本位作为扩展方向位ED。ED=0,表示向上扩展, 是一般的数据段; ED=1,表示向下扩展,为堆栈段 W/R:可读/写位 定义代码段的可读性和数据段的可写性 E=1且S=1,本位作为R。R=0,代码段不可读; R=1,可读 E=0且S=1,本位作为W。W=0,数据段不可写; W=1,可写 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析15 存在位P 1,对应段已装入主存 0,对应段未装入主存,访问此段会发生异常 DPL:特权级 指出对应段

10、的特权级,03,共4级 防止一般用户程序访问OS的对应段 访问位A 1,已访问过 0,未访问过 OS利用该位对给定段进行使用率统计 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析16 存D/B字段 代码段描述符中为D,指出代码段使用的操作数长度 1,表示使用32位代码和32位有效地址 0,表示使用16位代码和16位有效地址 数据段描述符中为B,用来控制堆栈操作 1,使用32位堆栈指针ESP 0,使用16位堆栈指针SP 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析17 段描述符表段描述符表 一个任务运行时,可使用GDT和该任务对应的LDT 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析1

11、8 逻辑地址转换为线性地址(由分段部件完成)逻辑地址转换为线性地址(由分段部件完成) 如何找到 GDT和LDT? 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析19 Pentium的寄存器组的寄存器组-系统地址寄存器 内容在计算机启动时由OS设置 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析20 提高系统性能的措施提高系统性能的措施 为6个段寄存器设置64位的段描述符寄存器 位于高速缓存中 每次装入段选择子时一起装入 程序员不可见 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析21 如果禁止分页如果禁止分页 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析22 Pentium的虚拟存储

12、的虚拟存储 虚拟存储技术 物理和虚拟寻址 三种虚拟存储器 Pentium的三类地址 分段管理 段选择子 段描述符 段描述符表 逻辑地址转换为线性地址 分页管理分页管理 页相关概念页相关概念 页表目录项和页表项页表目录项和页表项 线性地址转换为物理地址线性地址转换为物理地址 转换检测缓冲器TLB 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析23 分页管理分页管理 页的大小固定,因而存储器分页时,边界有对准点 Pentium的页面大小可调节,由控制寄存器CR4的 PSE(页面扩展位)决定 1,页面为4MB 0,页面为4KB 多任务系统中,只需把每个活动任务当前所需的少 量页面放在内存中 实际的

13、存储页叫做物理页 虚存中的页叫虚拟页 页表 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析24 Page(页页) The data on disk is partitioned into pages Serve as the transfer units between the disk and the main memory virtual pages (VPs) physical pages (PPs) or page frames (页框、页帧) PP 2m-p-1 Physical memory Empty Empty Uncached VP 0 VP 1 VP 2n-p-1 Vir

14、tual memory Unallocated Cached Uncached Unallocated Cached Uncached PP 0 PP 1 Empty Cached 0 N-1 M-1 0 Virtual pages (VPs) stored on disk Physical pages (PPs) cached in DRAM 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析25 Page Attributes unallocated(未分配的):VM系统还未分配(创建) 的页。没有数据与它们相关联,不占磁盘空间。 allocated(已分配的) cached(缓存的):当前

15、缓存在物理存储器中的已分配页 uncached(未缓存的):没有缓存在物理存储器中的已分 配页 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析26 Page Table(页表页表) Os maintains a page table for each allocated page of virtual memory A Page Table Entry (PTE,页表项,页表条目) 虚拟地址空间中的每个页都在页表中一个固定偏移量处有一个PTE Mapping from a virtual page to its corresponding physical page if the virtu

16、al page is cached Specifies the disk address to store the virtual page which is uncached OS can use it to retrieve information 4 bytes in Pentium 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析27 Page Table NULL Memory resident page table (physical page or disk address) Physical Memory Disk Storage (s or regular file) Val

17、id 1 1 0 1 1 1 1 0 0 0 Virtual Page Number PTE0 PTE9 PP0 PP5 VP4 VP1 VP2 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析28 Multi-Level Page Tables(多级页表多级页表) Common solution multi-level page tables e.g., 2-level page table : 1024 entries, each of which points to a Level 2 page table(教材中的 页组目录项表). : 1024 entries, each of wh

18、ich points to a page(教材中的页表) Level 1 Table . Level 2 Tables 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析29 Multi-Level Page Tables Level 1 page table . Level 2 page tables VP 0 . VP 1023 VP 1024 . VP 2047 Gap 0 PTE 0 . PTE 1023 PTE 0 . PTE 1023 1023 null PTEs PTE 1023 1023 unallocated pages VP 9215 Virtual memory (1K -

19、 9) null PTEs PTE 0 PTE 1 PTE 2 (null) PTE 3 (null) PTE 4 (null) PTE 5 (null) PTE 6 (null) PTE 7 (null) PTE 8 2K allocated VM pages for code and data 6K unallocated VM pages 1023 unallocated pages 1 allocated VM page for the stack 32 bit addresses, 4KB pages, 4-byte PTEs 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析30 页

20、表目录项和页表项页表目录项和页表项 表的物理基址(20位) 如为页组目录项,则为页表的起始物理基址(页表基地址) 如为页表项,则为页面的起始物理基址(页基址) P:存在标志 1,所指的页表或页在主存中 0,对应的页表或页不在主存中,引起页故障 访问标志A 当对某一页表或页访问时,设为1 为系统提供本页的使用信息,帮助OS选择哪一页应该调 出到磁盘 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析31 页表目录项和页表项页表目录项和页表项 脏位D 写标志,只用在页表中 刚调入内存时为0 对该页进行写操作时,设置为1,保持 用户/系统位U/S 0,此页为系统级页面,用户程序不能访问 1,对应为用户

21、程序页面 W/R:可读/写位 0,只读 1,可读/写 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析32 线性地址转换为物理地址(线性地址转换为物理地址(P159) No Image 此处用的控 制寄存器 CR3(页 组目录项 表的基址 寄存器) ,存放页 组目录项 表在存储 器中的起 始物理地 址。 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析33 线性地址转换为物理地址举例线性地址转换为物理地址举例 假设页组目录从物理地址0000 0000H开始。假定线 性地址为0123 5674H。 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析34 Pentium的虚拟存储的虚拟存储 虚拟存储

22、技术 物理和虚拟寻址 三种虚拟存储器 Pentium的三类地址 分段管理 段选择子 段描述符 段描述符表 逻辑地址转换为线性地址 分页管理 页相关概念 页表目录项和页表项 线性地址转换为物理地址 转换检测缓冲器转换检测缓冲器TLB 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析35 转换检测缓冲器转换检测缓冲器TLB (Translation Lookaside Buffer) Speeding up Translation with a TLB 平常所讲的“快表” Small hardware cache in MMU,其中每一行都 保存着一个页表项 Maps virtual page n

23、umbers to physical page numbers 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析36 转换检测缓冲器转换检测缓冲器TLB (Translation Lookaside Buffer) 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析37 转换检测缓冲器转换检测缓冲器TLB工作原理工作原理 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析38 MMU Cache/ Memory PA Data CPU VA CPU Chip PTE 1 2 4 5 TLB VPN 3 TLB Hit A TLB hit eliminates a memory access(一次一

24、次TLB命中减命中减 少了一次存储器访问少了一次存储器访问) 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析39 TLB Miss MMU Cache/ Memory PA Data CPU VA CPU Chip PTE 1 2 5 6 TLB VPN 4 PTEA 3 A TLB miss incurs an additional memory access (PTE) Fortunately, TLB misses are rare. Why? 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析40 Speeding up Translation with a TLB virtual address virtual page numberpage offset n10p1p validphysical page numbertag validtagdata data = cache hit tag index = TLB hit TLB Cache . physical addressphysical page numberpage offset 第第6讲讲Pentium虚拟存储剖析虚拟存储剖析41 Page Hit(页命中页命中) VA: vi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论