




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理 PrinciplesofComputerOrganization 广义双语教学课程 http 211 64 192 109 skyclass25 青岛理工大学校级精品课程 盛建伦jlsheng 虚拟存储器 VirtualMemory Virtualmemoryisacomputersystemtechniquewhichgivesanapplicationprogramtheimpressionthatithascontiguousworkingmemory whileinfactitmaybephysicallyfragmentedandmayevenoverflowontodiskstorage Systemsthatusethistechniquemakeprogrammingoflargeapplicationseasieranduserealphysicalmemory e g RAM moreefficientlythanthosewithoutvirtualmemory 盛建伦jlsheng 虚拟存储器指的是 主存 辅存 层次 它能使该层次具有辅存的容量 接近于主存的等效速度和辅存的每位成本 它使得程序员可以按比主存大得多的虚存空间编制程序 对于大的程序 可以先分配少数几个页面 将该程序的一部分装入主存 在运行中间 发生缺页时再按需陆续调入 只要主存容量大于某个最小值 不论机器配备多大容量的主存 程序可不必作任何修改照样能运行 主存实际容量的大小会影响系统工作的效率和解题速度 虚拟存储系统的设计目标是 设法获得主存储器的最佳使用 形成一个高性能 低价格的大容量存储器 虚拟存储器的管理方法有 页式 段式和段页式 盛建伦jlsheng 虚拟存储器的地址映象 或称定位算法 是指每个虚页按什么规则 算法 装入 定位于 实存 地址变换是指程序按照映象关系装入实存后 在程序运行时虚地址如何变换成对应的实存地址 当处理机发出访存地址时 首先进行虚地址到主存实地址的映象变换 如果出现页故障 再进行虚地址到辅存实地址的映象变换 虚地址到主存实地址的地址映射变换有 直接映射 相联映射 组相联映射 段相联映射等 虚拟存储器和Cache 主存层次的管理原则基本相同 把程序中常用的页 块 驻留在较高速的存储器中 一旦某页变的不常用了 则把它替换出去 盛建伦jlsheng 当CPU访问主存不命中时 必须从辅存把包含这个字的1个数据块传送到主存 然后 CPU才能在主存中访问到这个字 若传送该数据块的时间为TB TA2 TB TM则 主存 辅存 层次的平均访问时间 TA H TA1 1 H TA2 H TM 1 H TB TM TM 1 H TB Embeddedsystemsandotherspecial purposecomputersystemswhichrequireveryfast veryconsistentresponsetimedonotgenerallyusevirtualmemory 盛建伦jlsheng Almostallimplementationsofvirtualmemorydividethevirtualaddressspaceofanapplicationprogramintopages apageisablockofcontiguousvirtualmemoryaddresses 页式虚拟存储器 Pagedvirtualmemory 页式虚拟存储器把虚存空间分成页 实存空间也分成同样大小的页 称为实页和物理页 虚存的页面称为虚页或逻辑页 虚存空间划分成个页面 每个页面容量为个存储单元 实存只有个页面 页面大小一般为1k字 8K字 程序员按虚存空间编制程序 虚地址是逻辑地址 由虚页号及页内地址组成 必须经过地址变换得到主存 辅存实地址 页的划分是机械的 与程序结构和大小无关 盛建伦jlsheng 程序在装入主存前由操作系统分配页面 如果分配的页面比程序需要的少 就先装入一部分 其他部分在需要的时候再装入 虚存地址到主存实地址的映象变换是由页表实现的 页表应该在主存中 这样每次访存都要加上一次访存查页表PageTable Almostallimplementationsusepagetablestotranslatethevirtualaddressesseenbytheapplicationprogramintophysicaladdresses alsoreferredtoas realaddresses usedbythehardwaretoprocessinstructions Eachentryinapagetablecontainsthestartingvirtualaddressofthepage eithertherealmemoryaddressatwhichthepageisactuallystored oranindicatorthatthepageiscurrentlyheldinadiskfile 若采用全相联映象 任何虚页能映射到实存任何页面位置 在实存的RAM中有一个页表 页表共有行 每行对应一个虚页 页表中有每个虚页是否装入主存的标志 装入位 和主存实页号 CPU访存时 首先做虚地址到主存实地址的地址变换 查页表 若该行的装入位为1 则该页在实存中 对应的实页面地址在该行中 将与拼接 得到实存地址 若该行的装入位为0 则需从辅存调入 页故障 用Nv在页表中选中一行 页表的容量为 每行字节 实存页面 实存容量16MB 按字节编址 虚存空间1024M 页容量1KB 虚存页面 页表有行 为位 1M 16K 1M 2 2MB 例如 14 全相联映象的优点是实页冲突概率最小 每个虚页只能映射到实存一个特定页面 直接映象的页式虚拟存储器 页表中存放的是 用做地址去查表 将页表中对应的读出与 中的比较 如果相符 表示该虚页已在实存中 将虚地址中的和作为实地址 否则 页面失效 实页冲突概率高 实存利用率低 将实存空间和虚存空间都分成组 每组K 2S页 组相联映象的页式虚拟存储器 K值越大 实页冲突概率越低 实存共个页 分成组 整个实存是一区 虚存分成与实存同样大小的区 当K 时是全相联 当K 1时是直接映象 组相联映象的页式虚拟存储器 组相联的目录表有2q组 每组2S行 表的总容量行 实存共个页 分成组 整个实存是一区 虚存分成与实存同样大小的区 组相联映象的页式虚拟存储器 地址变换过程 先用虚地址中的q 按地址访问 在2q组中选出一组 对该组再用 Tag 在2S行中进行相联查找 如果在2S行中查不到相符的 则表示该虚页不在实存中 如果查到 则将表中相应的S与q 拼接 就是实地址 盛建伦jlsheng 页表也构成表层次 因为整个页表是连续存储的 当一个页表的大小超过一个页面的大小时 页表就可能分成若干页 分存于几个不连续的页面中 这些页表的起始地址又放在一个新的页表 页表的表 中 形成二级页表层次 通常把第一级页表驻留在主存中 第二级页表只有一部分在主存中 大部分可保存在辅存 需要时再调入 Systemscanhaveonepagetableforthewholesystemoraseparatepagetableforeachapplication 盛建伦jlsheng 段式虚拟存储器 Segmentation 段式虚拟存储器是把一个程序分成多个在逻辑上形成整体 相互独立或基本独立 而且可清楚定义的模块 如 子程序 过程 数据表 等 这些模块的大小可以是不同的 甚至预先不知道 令每个模块是一个段Segment 都从该段的起点开始编址 如 代码段 堆栈段 数据段 等 Usingsegmentation anapplication svirtualaddressspaceisdividedintovariable lengthsegments Avirtualaddressconsistsofasegmentnumberandanoffsetwithinthesegment 盛建伦jlsheng 由于各段是按其逻辑特点组合的 容易以段为单位实现存储保护 段的分界与程序的自然分界相对应 段的逻辑独立性使它易于编译 管理 修改和保护 便于多道程序共享已经在主存中的程序和数据 在调入该段时 由操作系统赋予该段一个基址 由基址和原来在段内的地址相加形成该段每个单元在主存的实地址 用段表指明各段在主存的位置 每段有自己的名称 段起点 段长等 段表本身也是一个段 一般在主存中 盛建伦jlsheng 段页式虚拟存储器 段页式虚拟存储器把程序按逻辑结构分段后 再把每段分成固定大小的页 与实存页面大小相同 程序对主存的调入调出是按页面进行的 每道程序通过一个段表和一组页表来进行定位 段表中的每行对应一个段 每行有一个指向该段的页表的起始地址及该段的控制保护信息 由页表指明该段各页在主存中的位置及是否已装入 已修改等 盛建伦jlsheng 由于采用分页 所以与纯段式的主要区别是段的起点不能是任意的 必须是位于实存中页面的起点 多道程序 多用户 的每一道 每个用户 有一个基号 用户标志号 可由它指明该道程序的段表起点 在基址寄存器中 虚地址包括 基号 段号 页号 页内地址 段页式存储管理 由虚地址向主存实地址的变换至少需2次查表 段表和页表构成表层次 通常设置TLB表加快地址变换 盛建伦jlsheng 虚地址到辅存实地址的地址变换 当发生页故障时 必须访问辅存 虚地址实际上也是辅存的逻辑地址 还须经虚存空间到辅存实空间的地址变换 辅存一般是按信息块编址 而不是按字编址 如果一个块的大小等于一个虚页面的大小 就只需由虚页号Nv变换到NVd即可完成虚地址到辅存实地址的变换 实际的虚页面可大于信息块 也可小于信息块 变换采用查外页表的方式 外页表可放在辅存 只在需要查用时才调入主存 主存已满 调入页 调入页 实页号 1 0 在辅存 辅存实地址Nvd 外部地址变换虚地址 辅存实地址 内部地址变换虚页号 主存实页号 I O处理机 通道 DMA 实存页面表 页面替换算法 主存未满 访辅存 不在辅存 访主存 中断 页故障 装入位 被替换页 被替换页 虚拟存储器工作的全过程 盛建伦jlsheng 快表与慢表 虚拟存储器工作过程有两种地址变换 虚拟存储器的速度 关键是虚地址到主存实地址的变换速度 这个速度如果达不到要求 虚拟存储器就不能被采用 如何从逻辑结构上提高虚地址到主存实地址的变换速度正是系统结构设计的任务 由虚地址变换成主存实地址 每次访存都得进行一次 要求速度高 由虚地址到辅存实地址的变换 仅当页面失效时才进行 变换速度可低些 而替换算法仅在页面失效且主存已满时才用 使用概率更低 速度可更低些 盛建伦jlsheng 由于程序访问局部性的特点 查表时对表内各行的使用有簇聚性 在一段时间里实际上只用到表内很少的几行 因此引入用快速硬件构成的部分 相联目录表 快表 把行的全相联目录表的很少几行装入快表 快表 只是 慢表 的一个小小的副本 只有在查快表不命中时才从慢表中取实页号 页表法 页表在主存中 每访问主存一次 得再加一次访存查页表 段页式 仅查表就需要访存2次 一次段表 一次页表 内部地址变换是通过查表得到实地址的 不同的表结构 其查表速度不同 盛建伦jlsheng 查表时 由虚页号同时去查快表和慢表 当快表中有此虚页号 就很快找到对应的实页号 并使慢表的查找作废 从而做到虽然采用虚拟存储器但访问主存的速度几乎没有下降 如果在快表中查不到 就需要一个访问主存的时间查慢表 查到实页号 并将此虚页号和对应的实页号送入快表 替换快表中应移掉的内容 虚拟存储器只是有了快表才得以真正实用 快表命中率对系统效率影响很大 快表与慢表也构成表层次 快表对系统程序员是透明的 快表容量越大 命中率越高 但相联比较时间长 速度下降 盛建伦jlsheng Pentium处理机的虚拟存储器 Pentium处理机的虚拟地址被称为逻辑地址 虚地址长度为48位 由16位段地址和32位位移地址构成 段地址中有2位用于存储保护 所以 有效的逻辑地址为46位 虚拟地址空间为246 Pentium的存储器结构 根据其段表和页表可以设置成4种组合 无段表和无页表的存储器 非虚拟存储器 其逻辑地址就是物理地址 无段表和有页表的存储器 页式虚拟存储器 有段表和无页表的存储器 段式虚拟存储器 有段表和有页表的存储器 段页式虚拟存储器 当Pentium采用段页式管理时 地址转换机制为 通过段地址查段表 将表中地址与位移地址相加得到32位线性地址 然后通过页面转换得到物理地址 页面转换是通过页目录和页表实现的 线性地址由页目录 10位 页号 10位 和位移地址 12位 组成 页面大小为4KB Pentium还允许将页面大小设置为4MB 此时页面转换只要查一次页表 Cache 主存 层次与虚拟存储器的比较 主要作用是弥补主存与处理机间的速度差距 主要作用是弥补主存容量不足 管理部件用硬件实现 管理部件基本上是软件 快速存储器是Cache 慢速存储器是主存 访问时间比1 5 1 100 快速存储器是主存 慢速存储器是辅存 访问时间比1 105 1 107 传递的信息块 几 几十个字节 传递的信息块 几百个字节 CPU对Cache和主存都有直接访问路径 辅存必须通过主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新保护老板的协议书
- 2025年新工程材料采购协议书
- (2025年标准)配偶婚前协议书
- 2025年信达金融租赁协议书
- 体育赛事合同民事起诉状范文
- 2026届辽宁省丹东市第七中学化学高一第一学期期中质量检测模拟试题含解析
- 2026届北京市门头沟区市级名校化学高一上期末达标检测模拟试题含解析
- 河南省洛阳市偃师高中2026届高二化学第一学期期末预测试题含答案
- 2026届陕西省商洛市高三上化学期中综合测试模拟试题含解析
- 湖北省天门、仙桃、潜江2026届高三化学第一学期期中达标检测模拟试题含解析
- 超声波龈下刮治术专题讲解
- 2025年电信传输工程师职称考试试题
- 小学一年级升二年级暑假数学作业-58套计算
- 2025年思想政治理论知识测试与能力考试试题及答案
- 福利院消防培训课件
- 肩袖修复术后影像学评估的新技术
- 未成年人违法犯罪警示教育
- 医疗废物与污水处理培训
- 4S店员工职业卫生培训
- 体检机构礼仪培训
- 《工业机器人技术与应用》高职人工智能技术应用专业全套教学课件
评论
0/150
提交评论