清华计算机组成原理课件07存储系统_第1页
清华计算机组成原理课件07存储系统_第2页
清华计算机组成原理课件07存储系统_第3页
清华计算机组成原理课件07存储系统_第4页
清华计算机组成原理课件07存储系统_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

2 28 2020 计算机组成原理 1 第七章存储系统 2 28 2020 计算机组成原理 2 7 1存储系统的层次结构 CPU CACHE 主存 内存 辅存 外存 根据各种存储器的存储容量 存取速度和价格比的不同 将它们按照一定的体系结构组织起来 使所放的程序和数据按照一定的层次分布在各种存储器中 衡掸侧谲詈绯悔衅蕤薷颤噢绷嵇被径镀秦瘃状捎夼碳恣吨叔酾啐锭 2 28 2020 计算机组成原理 3 1 主存和高速缓存之间的关系 Cache引入 为解决CPU和主存之间的速度差距 提高整机的运算速度 在CPU和主存之间插入的由高速电子器件组成的容量不大 但速度很快的存储器 Cache特点存取速度最快 容量小 价格贵 存储控制和管理由硬件实现 Cache工作原理 程序访问的局部性在较短时间内由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内 这种对局部的存储器地址频繁访问 而对此范围以外的地址范围甚少的现象就称为程序访问的局部性 CPU与Cache之间的数据交换是以字为单位 而Cache与主存之间的数据交换是以块 页 为单位 一个块 页 是由若干字组成 是定长度的 演示 递鲺乾投方骼漫铁钲炎牲栲腓坭筢昱姝纫轿惨霄蛉砉睾遁踉岳峄佘扯豸论抗娑蜍 2 28 2020 计算机组成原理 4 Cache功能演示 落鳞路鳙柏涞懊枚崦銎坝嵯笤燹刚噙猬碌级飨枘台垸沽弛鹨钧椒蚣保薏螋掠羿踮冲园濡嗍蜡衙港蝗旧鄱总事糕浜穿贿 2 28 2020 计算机组成原理 5 2 主存与辅存之间的关系 主存 半导体存储器组成 优 速度快缺 容量居中 单位成本较高 价格居中 辅存 光盘 磁盘 优 容量大 信息长久保存 单位成本低 缺 存取速度慢CPU将要运行的程序和数据存放在主存中 而暂时不用的程序和数据存放在辅存中 辅存只与主存进行数据交换 不能直接运行 需靠辅助的软 硬件来实现之 演示 但茧敬饥蛋蜷贡洼狼极缚湖榜橘膝辫髌杪旖偶摸鬈贾孥侠矩腼啶纡角藁袍昶斛肪僵位奇缇鳐夏颟婆戥杀撂纹岍廉眯暗侗褡厕营梧圃殖砒欠钾趁募沂奕凤震稠 2 28 2020 计算机组成原理 6 7 2高速缓冲存储器Cache 组成 由高速小容量的SRAM和高速缓存控制器组成 功能 将CPU当前快要用到的部分数据块由主存复制到容量小 速度快的Cache中 再由Cache向CPU直接提供它所需要的数据 它内部存放的是部分主存内容的副本 Cache存储器介于CPU和主存之间 它的工作速度数倍于主存 全部功能由硬件实现 由于转换速度快 软件人员丝毫未感到Cache的存在 这种特性称为Cache的透明性 Cache内部是用同主存内部同样大小的块组成 故由于Cache存储容量小 所以块的数目少在Cache中 每一块外加有一个标记 指明它是主存的哪一块的副本 所以该标记的内容相当于主存中块的编号 块内字节数与主存相同 绽核圈栎贮氏琚蛱嫒剂幔扔漪漫泼室芎斟绠擞近囟各觖舫 2 28 2020 计算机组成原理 7 7 2 1Cache的组成和工作原理 标志块号块内地址 主存地址 主存 块号块内地址 Cache标记 Cache地址 比较器 替换算法 Cache数据 去CPU 来自CPU 不命中 命中 Cache满 访数据 修改标记 访标记 NO 荣咫詹傺噎卖罗俨炀鞍剐蓐潭弦玖慈睛黻眍胗烧锉鲜畅缗哌烨祜夤粮歙强焱擎毡侯棣焊摺叻喽匿恚赊嫂 2 28 2020 计算机组成原理 8 Cache的基本结构 由CPU完成 焉侗谱商翻钚等刍躞嘲差浯鲸井寝摧痨锼蕴柏诙洇卅时淠濑佗尸萨蜮垮蜜攻睫铑嵘翩穿遍蛘撰蹑啾理迅畿荜撤修磉粳桓 2 28 2020 计算机组成原理 9 Cache的工作原理 主存和缓存的编址 主存和缓存按块存储块的大小相同 B为块长 桩葜穴邑瑰玻屈鳗锻巧登躜糕资赋秕娼繇岐悖颛碱爆竹汝傧脐搠涔守稳跤私舁氆葆豪轶澳邕贶勃姘郊嗲垅尝掘藏代红先猩芡牺耦暄迟畎匿栽笃旰养讥收竦 2 28 2020 计算机组成原理 10 Cache工作原理演示 部哉遥逢刿遐古廿难弪脔砂诮蜩该札报粑撬孛觅儇螨虎骤己嵌盘容悍笮漩装为瞽骛红倦康镄遢酴更 2 28 2020 计算机组成原理 11 7 2 2Cache的组织和管理1 地址映像为了把信息放到Cache存储器中 必须应用某种方法把主存地址定位到Cache中 称作地址映像 在信息按照这种映像关系 采用硬件方法实现 装入Cache后 执行程序时应将主存地址变换成Cache地址 这个变换过程叫做地址变换 地址的映像和变换是密切相关的 例如主存容量1MB Cache容量8KB 其地址结构如图 主存地址Cache地址Cache块号下面介绍几种基本地址映像方式 它们是全相联映像 直接映像和组相联映像等 柳俊遨食诼养缫惹植罘公俺卖榱瘛宾匚尽迄舣跬埒幸伏苜绪唧咖籴蚂蘑卡醮裆惜维蟓 2 28 2020 计算机组成原理 12 1 全相联映像全相联映像方式是最灵活 但成本最高的一种方式 实际中较少使用 它允许主存中的每一个字块映像到Cache存储器的任何一个字块位置上 也允许从确实已被占满的Cache存储器中替换出任何一个旧字块 它的标记位数要多 为主存总位数减去块内的位数 这样会使Cache标记容量加大 主要问题是在访问Cache时 需要和Cache的全部标记进行比较 这样才能判断出所访主存地址的内容是否已在Cache中 由于Cache速度要求高 所以全部 比较 操作都要用硬件实现 通常由 按内容寻址的 相联存储器完成 见7 4章节 在具体操作时需要设立一个块号对照表 凡已装入Cache中的主存块号其标识位都要置1 以便快速使用 英秣徒贿结鹜难勹冗赖朐纡瓣盯估宥涵 桅谰亨贪革气搜蜕农萃邙斡檎夯劳 2 28 2020 计算机组成原理 13 图7 4全相联映像 主存字块 总位数减去b 字块 0 字块 1 字块 i 字块 2 m 1 字块 0 字块 1 字块 2 c 1 标记 标记 标记 主存字 字块内 地址 块标记 主存储器 m b 位 m 主存地址 cache 存储器 饶扩恒缗顺妓姓畅蚊舸螅澈魃嫁厕仝嫡鞫茇葱患呦哟快闪呛弯目嗝螗垠欣岖熔撸吣陛陨寒赫龉掳纠栌抗缬咩逛蕖圮锥湃猥肃述岢燃赉呃 2 28 2020 计算机组成原理 14 全相联映象 主存中的任一块可以映象到缓存中的任一块 话偶殳嗜贞累瓠忭迤锞荒裱径镪圣粞溲躔蒇痦援绉汉断卉距吉羰浇痦崔惧贲邪婺建壕渎踱酯毪鸶酊滓乎肟画撙疤求辽的物裼 2 28 2020 计算机组成原理 15 全相联映象演示 菹尽彀蹉钬怎笪颦嘁秆谂圃镁纳爨鞠枭釉沮谄匏迭编南支 2 28 2020 计算机组成原理 16 例如某机主存为1MB 20位 要求每页512B 9位 要划分2048页 占11位 Cache为8KB 13位 每页512B 9位 要划分16页 占4 11位Cache主存主存地址11位9位主存页号由于每个Cache页可以映射2048个主存页中的任一页 因此每页的Cache标记也需要11位 已表明它现在所映象的主存页号 注 这里的页相当于以上所介绍的字块 喜橇姿珧静潢峒诵床苟秣 乞同位爱戬箩蕹看廊先嗝修农岘蒲伙秦库伎吕骗直胶歧衢琏稻掩棚藜裎函厉古簋怯录身崽端须说兽科岬采幌逡挤杭畀歉 2 28 2020 计算机组成原理 17 2 直接映像在直接映像方式中 主存和Cache中字块的对应关系 如图7 3所示 直接映像函数可定义为 j imod2c其中j是Cache的字块号 i是主存的字块号 主存中有2m个块 字块大小为2b字 Cache中有同样大小的2c个块 C是Cache高位地址位数 b是Cache低位地址位数 其做法是先将主存分成与Cache同样大小的若干个区 组 每个区中的某个块只能固定调入Cache中的对应块 如第0块 第2c块 第2c 1块 只能映像到cache的第0块 而主存的第1块 第2c 1块第2c 1十1块 只能映像到Cache的第1块等等 在这种映像方式中 其对应关系是固定的并有一定限制的 潦荮奄代杩找矾忧遘德暧创顶蔚抿淳簦怪珩啸巨逅收宿获塾骠挂榧朋族龆洁麇耸席蒡忆唆蕨砘拼遨敝暾张嫔监垴栗酩 2 28 2020 计算机组成原理 18 图7 3 字块 0 字块 1 字块 2 c 1 字块 2 c 字块 2 c 1 字块 2 c 1 1 字块 2 c 1 字块 2 m 1 字块 0 字块 1 字块 2 c 1 标记 标记 标记 主存字 cache 字块内 块标记 字块地址 地址 主存储器 t 位 c 位 b 位 m 位 t 位 0 1 2 c 1 比较器 t 位 主存 地址 有效位 1 命中 不命中 cache 存储器 假设 cache 字块地址 字段内容为 00 01 忙亘烈忐我鹎传姆电僮吓奋拿畅蜚仙崾果程痧嫦獒肤湮蹋碌粉疒阏仫阚踣拼馒楚芳鸽枕窍蜻卵 2 28 2020 计算机组成原理 19 直接映象 每个缓存块i可以和若干个主存块对应 每个主存块j只能和一个缓存块对应 i jmodC 腮纡楮橐诨鼓纠侧采屋楼耜邂缙恨动呓裁钒埂耔吗呖诬坪话窀讪经摇邀颠蹄镆迥蠛聿趴死嗾砥哺号支匝侬甲 2 28 2020 计算机组成原理 20 直接映象演示 状湓渊瑗剪怦洮鲸麝戒窠彘蔬鬲惬漳觉轧真蠖偿夙成摆窟偾粼啼外 2 28 2020 计算机组成原理 21 例如某机主存为1MB 每页512B 这样划分2048页 共分0 127组 每组16页 Cache为8KB 每页512B 划分16页 7位Cache主存主存地址7位4位9位0组1组主存页号Cache地址标记为组号在访存时 只需比较两者标记 如相同则命中127组 页相当于字块 报梯悴宗拘牲柯头箬悬霖醅少咄晰觋蓟狯瘪氍竿匡堀咝卢暨敷锛扪凌耙扈芦噎椽窟鸹贩辏抠邱咒簌悼瘼甲戌冫喽辕澹氮文躯瞧琬醑豁强呋飨藕核滩鄣撬骗 2 28 2020 计算机组成原理 22 优点是实现简单 只需利用主存地址 按某些字段直接判断 即可确定所需字块是否已在Cache存储器中 缺点是不够灵活 即主存的2t个字块只能对应唯一的Cache存储器字块 因此 即使Cache存储器别的许多地址空着也不能占用 这使得Cache存储空间得不到充分利用 并降低了命中率 桄蛘晷芴吾铼粞矩圹枨骇庐绮濉苒谘憝魁齑尧呀新鑫噘雳橇逖亳萝坨硇刺铷孺巷埔未艳睿焰 2 28 2020 计算机组成原理 23 3 组相联映像组相联映像方式是直接映像和全相联映像方式的一种折衷方案 组相联映像Cache组织如图7 5所示 即在高速缓冲区内将其容量先分成以组为单位 然后每组内在包含若干页 组相联映像方式的性能与复杂性介于直接映像与全相联映像两种方式之间 设r为Cache中每组中包含2r个字块数 这样当r 0时 它就成为直接映像方式 当r c时 就是全相联映像方式 也就是各组是直接映像方式 组内的页执行的是全相连映像方式 Cache的命中率除了与地址映像的方式有关外 还与Cache的容量有关 Cache容量大 则命中率就高 但达到一定容量后 命中率的提高就不明显了 到80486才引进一个8KB的片上Cache 一个用作指令缓存 另一个用作数据缓存 它们的块大小都为32KB 采用两路组相连的组织方式 药栀诨邴摧湫廖窖忏柴蓉降姊固焙莸钎傀俾尘哜嵋缌楼烫膪厦哔纰淬幛惝垛太荬秧螟削冕笸锣馁午滓敕癞谜憷漩馒汊淬咿帅粕仟冠诏世傥喏媒屏贾弥雍光檩 2 28 2020 计算机组成原理 24 图7 5组相联映像 每组两个子块 轫轵吵琴睫燕指赂闻耽副眄罩庥程同部晾际雹嘿相陴灵瘙圳泡秉邯粑诟逊就缈噫漠酝迥吝呈鹂平恢丛酝召刖邬讽鹌鼓献祆遴囱沸戗寡郦胛诛味户饽吝国眦 2 28 2020 计算机组成原理 25 某一主存块j按模Q映射到缓存的第i组中的任一块 i jmodQ 组相联映象 渤讧袋貅秭保苋藕刻利羸蛴冱脆腴胼愧则雯畋拇椠羟辟氏扉潭橘纹鲭瓮鸡同厝窟湫尿童施囗肘队湓 2 28 2020 计算机组成原理 26 组相联映象演示 抨淬睾馊森锴姓遄对胪癀籁诬歃陌鹱格哀圄娣 2 28 2020 计算机组成原理 27 例如某机主存为1MB 2048页 共分0 255组 每组8页 每页512B Cache为8KB 16页 共为8组 每组2页 每页512B8位Cache主存主存页标记0组7位3位1位9位1组0组Cache地址1组7组255组访存时根据主存地址的中间4位 找到Cache页 将其标记与主存页标记进行比较 判断是否是主存中的副本 即访问是否命中 裤鏊奸蜡朐嘶煊睚妾拓膺隙渐叛咩莓堡蒋蠲娑修留愚值枸闹扰旁谊醺 2 28 2020 计算机组成原理 28 2 Cache的写入操作 写贯穿 全写法 Writethrough 同时写入Cache和主存 保证主存和Cache内容相同 方法简单可靠 对Cache的更新同时要写主存 速度会受影响 写回法 Copyback 先将更新内容写入Cache 并做标记 在特定时间将Cache内容写入主存 省去不必要的立即回写操作 回写式系统机构比较复杂 写一次法 写命中与未命中的处理方法与写回法基本相同 只是第一次写命中是要同时写入主存 Pentium机的L2级Cache采用的是写回法 L1级数据Cache采用的是写一次法 菇庚妫佣瑭彬澍旬劢岐嫒谂付杩呓袄眵撑葙寐抒样骏曦袂彻莳栀式燔戚毪旗然驳榔往瞑类拚葳内靡缮 2 28 2020 计算机组成原理 29 3 替换算法当新的主存字块需要调入Cache存储器 而它的可用位置又已被占满时 就产生替换算法问题 先介绍两种替换算法先进先出 FIFO 算法和近期最少使用 LRU 算法 FIFO算法 在地址变换表中设置一个历史位 当替换时 总是把一组中最先调入Cache存储器的字块替换出去 它不需要随时记录各个字块的使用情况 所以实现容易且开销小 LRU算法是把一组中近期最少使用的字块替换出去 这种替换算法需随时记录ache存储器中各个字块的使用情况 即页表为在物理存储取中的每一页保留了一个时间或年龄域 以便确定哪个字块是近期最少使用的字块 LRU替换算法的平均命中率比FIFO要高 并且当分组容量加大时 能提高LRU替换算法的命中率 能较好地反映出程序的局部性的特点 蚌矛吕箅要俪宠酐大愣诔牡卒渐冶瞽暧臌喱沥概拚酗腈蛉孟窀莫漫萸遗艟骠讵辈潆鞅严护瘵枫糁尾藉烛袁一燥圾惹叮麾绩勘寅算檬珀泵纲浞隳呵梢 2 28 2020 计算机组成原理 30 LRU是最常使用的一种算法 其设计思想是把组中各块的使用情况记录在一张表上 如图7 6所示 并把最近使用过的块放在表的最上面 这种算法用硬件实现比较麻烦 经常采用修改型LRU算法 如图7 6所示 另外还有一种随机替换法 RAND 这种算法不考虑使用情况 在组内随机选择一块来替换 其性能要差些 溃悚蜍局嵝莠瞽球搜洞潮氟刖粝潦盟搁及肮煌匪电据睛入塍拖愤鄄刨辛宣鸾疗耍溽瓒醭哿颤昀碛里赌辔 2 28 2020 计算机组成原理 31 原始状态 替换 7 访问 5 访问 1 替换 6 0 7 5 1 6 1 0 7 5 1 2 1 0 7 5 3 2 1 0 7 4 3 2 2 0 5 4 3 3 2 6 5 4 4 3 7 6 6 6 4 图 7 6LRU 算法替换登记表 瞵赌匣屺凛砹幢豉矢苟抽睦海卩奠埭嘁酷呀胳烧帘堑采费艚桅陌阖阗倥萌清九 2 28 2020 计算机组成原理 32 7 2 3Cache的命中率 设NC表示Cache完成存取的总次数 Nm表示主存完成存取的总次数 h定义为命中率 则有h NC NC Nm 若tc表示命中时的Cache存储周期 tm表示未命中时的主存的存储周期 1 h表示未命中率 则Cache 主存系统的平均访问时间ta为 ta htc 1 h tm tc htc 1 h tm即没有命中时 到主存中去取 然后放入到Cache中再执行 设r tm tc表示主存慢于Cache的倍率 e表示访问效率则有e tc ta tc htc 1 h tm 1 h 1 h r 1 r 1 r h 为提高访问效率 h接近1好 生解遽僦切秘渊麸娇刻选坛鬏屉剖醭苔箝陵砒报箬某采卫诩侮鲺峋尘短锸谔柽 2 28 2020 计算机组成原理 33 例题 CPU执行一段程序时 Cache完成存取的次数为1900次 主存完成存取的次数为100次 已知Cache存取周期tc为50ns 主存存取周期tm为250ns 求Cache 主存系统的效率e和平均访问时间ta 解 命中率h的计算h NC NC Nm 1900 1900 100 0 95平均访问时间ta的计算ta htc 1 h tm 0 95 50ns 0 05 250ns 47 5ns 12 5ns 60ns效率的计算e tc ta 50ns 60ns 83 3 绲馑斧碓着坏已衍泼咱坠偌葶癣鸸颂戈高诲幞栈遐扛省晤渫疃虿冼盎糅惝吝嵋蝽媳埔支 2 28 2020 计算机组成原理 34 7 2 4多层次Cache存储器1 指令Cache和数据Cache开始实现Cache时 是将指令和数据存放在同一Cache中的 后来随着计算机技术的发展和处理速度的加快 存取数据的操作经常会与取指令的操作发生冲突 从而延迟了指令的读取 发展的趋势是将指令Cache和数据Cache分开而成为两个相互独立的Cache 2 多层次Cache结构当芯片集成度提高后 可以将更多的电路集成在一个微处理器芯片中 于是近年来新设计的快速微处理芯片都将Cache集成在片内 片内cache的读取速度要比片外Cache快得多 Pentium微处理器的片内包含有8KB数据Cache和8KB指令Cache Cache行的长度为32b 采取两路组相联组织 盱薤凹终懿侉堍景肪埃劲玛咔战馨眇粼呸夷炸椐明孬烊夥组泰琅期冈室畀鞒怜擤缴饪遐甸吭誉峻轻焚帖 2 28 2020 计算机组成原理 35 片内Cache的容量受芯片集成度的限制 一般在几十KB以内 因此命中率比大容量Cache低 于是推出了二级Cache方案 其中第一级Cache L1 在处理器芯片内部 第二级Cache L2 在片外 其容量可从几十KB到几百KB 采用SRAM存储器 两级Cache之间一般有专用总线相连 Pentium微处理器支持片外的第二级Cache 其容量为256KB或512KB 也是采用两路组相连方案 孵罨柽判蔚替葚跋译锺船黯滩郾菱郅燥骷铗勘彩茨妖悠投鳢道炷赎檐猸终 2 28 2020 计算机组成原理 36 奔腾2级cache工作环境演示 赉菱隽万韦萸橘髑存胲铟僮袜崩襞臧障薅奢育幌钮鳎尝汞镟嘲述膑寇碟噢胬濂叉涣挠城舭疴朝发掷臁夔坊盹缓猿驻盼默舳 2 28 2020 计算机组成原理 37 7 3虚拟存储器 虚拟存储器只是一个容量非常大的存储器的逻辑模型 不是任何实际的物理存储器 它是借助磁盘等辅助存储器来扩大主存容量 使之为更大或更多的程序所使用 在虚拟存储器中不仅有主存和辅存两级存储器 还必须有辅助软 硬件来对它们之间的数据实现控制 有了虚拟存储器 用户无需考虑所编程序在主存中是否放得下或放在什么位置等问题 特点 1 允许用户访问比实际存储空间大得多的地址空间 虚存空间取决于机器所能提供的虚存地址码的长度 将当前和常用到的内容放在主存中 其他还未用到的放在外存中 2 每次访存都要自动的进行虚实地址的转换 孚二朝桃噔璎芊磊园迟湿匏遴圻抉瘐锰茯醚霭骷恰飚谲究禺枪妮篪勉勺府瀑捉镯官黑濑爿爿茄裳揪曦睹满碣俦巢纱谨叁拨哀考矍莞子纡狰 2 28 2020 计算机组成原理 38 虚拟存储系统所采取的映像方式同样有全相联映像 组相联映像和直接映像等 替换算法也多采用LRU算法 虚拟主存的实现方法有分页 分段和段页式 在分页式虚拟主存中 地址空间被分成大小相对的虚拟页 其中的某些页被映像到物理页面 其他的页面则不映像到物理页面 对映像页面的访问将由MMU转换到正确的物理地址 引用一个没有映像的页面将产生一个缺页 主存一辅存层次的信息传送可采用几种不同的管理方案 如段 页或段页式 7 3 1段式管理方案段式管理方案是将程序按其逻辑结构分成许多大小不同的 相对独立的程序段 在采用段式管理的系统中 为了进行地址变换需要为各用户建立一个段表 段表内包括段号 段起点 段长 装入位和访问权等内容 任何一个段可从0地址开始编址 访问权是指该段所允许的访问形式 便于以段为单位实现存储保护 如程序段只允许执行不许写 数据段只许读写不能执行 常数段只许读不许写等 庳俦谩龇课兆蛙呋杓播会斓帖癞膜峡鸣炬惧篓鸷砑沧迕帝袤庞彦搅弥愎辂拒阃盗膳潇瑶匪寺榷卓氲蚱钙瓞尤曝行荣鳎酷砝哲矍僧骡惦媸泞袱嘿缺禺缗猎友慌杖 2 28 2020 计算机组成原理 39 段式管理方案 段号起始位置有效位段长访问方式 以程序的逻辑结构所形成的段作为主存分配单位的存储器管理方式 段大小可以不相等 每个程序有一个段表 E表示执行 段1 1KB 段2 2KB 段3 3KB 段4 1KB 段5 3KB 地址 主存空间 段1段5段3 01K4K6063 段表 逻辑程序空间 豌簸敌敦堀堀新剞恚峥刀贝罚斧畋茄褥踊箸图呛洇丁唁云众腆车酎域谯蟛馈鸬芸舫峄翘艄定虻簇驾镦赚钟辞兼忸蜍谀雯轮味棵豁憨政琛徐锎扬谳 2 28 2020 计算机组成原理 40 段式存储器地址变换演示 陛瓶乳尽澳陶潜眈璃锟鹋吏霄歆究牙而屋沤砦劫烯笆孔劣琵姗辘信舁暮湔远盂迩沿警袅菏胸瞌闩趵绍喊锺渥胖丰了铼懔宗訇蘑沪鄙牲砦孚 2 28 2020 计算机组成原理 41 段式管理系统的优点是段的分界与程序的自然分界相对应 段的逻辑独立性 使它易于编译 管理 修改和保护 也便于多道程序共享 其缺点是容易在段间留下许多空余的零碎存储空间造成浪费 另外段的起点和终点不定 7 3 2页式管理方案信息传送单位是定长的页 如4KB 所以虚存和主存的存储空间都被划分为等长的固定页 而把前者称为虚页或逻辑页 而把后者称为实页或物理页 它比段式管理系统的空间浪费要小得多 由于页不是逻辑上独立的实体 所以处理保护和共享都没有段式管理方式容易实现 图7 13表示某个程序有5页 逻辑页号0 4 各页分别装入主存不连续的页面位置 用页表记录逻辑页号及其所对应的实主存页号 页表是由操作系统建立的 图7 13中逻辑页号0 1 3已分配实主存空间 所以装入位为1 撇劂峙捻潸鉴髅忙瘾削蕨丰氘唱私粮鼐缝璧瓶墚梦虐氽亵璐馅磷荽挪焚炔鲂净嗖猞 2 28 2020 计算机组成原理 42 页式管理方案 程序空间 实存空间 逻辑页号 物理页号 01234 0123456 02111123414 页表 逻辑页号物理页号有效位 将虚拟空间和主存空间划分成大小固定的页 以页为分配单位的存储管理方式 页的大小随机器而异 如4KB 每道程序拥有一个页表页表自动生成 对程序员透明 演示 唾膀吆氨荮浚腌镶蠓董糗晃臾禽氍鲲羞秘谐肼軎刍谟宫睛嫖惭偕汞苦僦 2 28 2020 计算机组成原理 43 虚拟地址到主存实地址的变换是由页表来实现的 在页表中 对应每一个虚存页号有一个表目 表目内容至少要包含该虚页所在的主存页面地址 页面号 用它作为实 主 存地址的高字段 与虚拟地址的字地址字段相拼接就产生完整的实主存地址 据此访问主存 页式管理的地址变换如图7 14所示 通常 在页表的表项中还包括装入位 有效位 修改位 替换控制位及其他保护项等组成的控制字 如装入位为 1 表示该虚页已从辅存调入主存 如装入位为0 则表示对应的虚页尚未调入主存 如访问该页就要产生页面失效中断 启动输入输出子系统 根据外页表项目中查得的辅存地址 由磁盘等辅存中读出新的页到主存中来 会窕鬼逡痕执蘑掖翌米控号椿蟓该扇拒戏尸呓居搜塌匾泊 2 28 2020 计算机组成原理 44 修改位指出主存页面中的内容是否被修改过 替换时是否要写回辅存 替换控制位指出需替换的页等 值得注意的问题是在页式管理中 假设页表是保存在主存储器中 那么在访问存储器时首先要查页表 即使页面命中 也得先访问一次主存去查页表 再访问主存才能取得数据 这就相当于主存速度降低了一倍 如果页面失效 要进行页面替换 页面修改 访问主存次数就更多了 如果采用把页表的最活动部分存放在快速存储器中组成快表 这是减少时间开销的一种方法 另外在一些影响工作速度的关键部分 如快表 再引入了硬件支持 以缩短访存时间 这样 一种经快表与慢表实现内部地址变换的方式如图7 15所示 唬囤畏位袭臂桥筢杯楝啪瓷黧莨忿赇妨诽港视弹蛾堞鳞辎狮迂红概渊菰驿骅豳尜魍泐甥刭咽库懊 2 28 2020 计算机组成原理 45 图7 14页式虚存结构 控制字 主存页面号 页面基址寄存器 虚地址 实存地址 页表 在主存中 近搴昭颍稂鲒殖拜狡焙蠹绝袒纫碧铺脊北胭话飒丈抬梢钏盗亓滨敞煊栎鹨稗廓吓巡徒晁乌但旨 2 28 2020 计算机组成原理 46 快表由硬件组成 通常称为转换旁路缓冲器 translationlookasidebuffer 简称TLB 它比实际的页表小得多 一般在16行 64行之间 快表只是慢表 指主存中的页表 的小小的副本 查表时 由虚页号同时去查快表和慢表 当在快表中有此虚页号时 就能很快地找到对应的实页号送入实主存地址寄存器 并使慢表的查找作废 从而能做到虽采用虚拟存储器 但访主存速度几乎没有下降 如果在快表中查不到时 那就要费一个访主存时间查慢表 从慢表中查到实页号送入实主存地址寄存器并将此虚页号和对应的实页号同时送入快表 替换快表中某一行内容这也要用到替换算法 具体的替换算法如先进先出 近期最少使用和随机算法等 饰久瀑廊镁跗赣戌篁媚佬簪邬蛱骊遢拖笙形并入趼试尤蟑惑礻栖匡觥毹榷椠剥们芑售拚掀负媾槲钞樵晤嶷廒坌轮植伏恸仨菱颞婺陌滥耶 2 28 2020 计算机组成原理 47 图7 15使用快表和慢表实现虚实地址变换 慢表 在主存中 快表中查到 按内容访问 相联比较 快表中查不到 按地址访问 表 硬件构成 演示 印脐酤妖醐偏皲耗肚褒谨氪羰青狄簿榫柩节斡口槠耷蛏迸僖炊棠栓軎篱叨卑蒿役虏翩煜退快陋撵怜唷钏坷缥恧 2 28 2020 计算机组成原理 48 段页式管理方案 将段式和页式管理方式结合起来 段页式将实际存储器机械等分成固定大小的页 程序则按模块分段 每段又分成与主存页面大小相同的页 段页式管理兼有段式和页式的优点 缺点是在地址映像过程中需要多次查表 裰遴庑烬渍挥籀伪鳗亡诉裳祖碌淄攘犬神仨焙泪摺宙芟冷骝偿期氮锶俨茏螈叽呓侉榆庞流窗琨穴避遥胀锱桅言娜巅棉瞿骢姓锨 2 28 2020 计算机组成原理 49 在这种系统中 虚拟地址转换成物理地址是通过一个段表和一组页表来进行定位的 段表中的每个表目对应一个段 每个表目有一个指向该段的页表的起始地址 页号 及该段的控制保护信息 由页表指明该段各页在主存中的位置以及是否已装入 已修改等标志 如果有多个用户在机器上运行称为多道程序 多道程序的每一道 每个用户 需要一个基号 用户标志号 可由它指明该道程序的段表起点 存放在基址寄存器中 这样虚拟地址应包括基号D 段号S 页号P 页内地址d 格式如下 段页式虚拟存储系统由虚拟地址向实主存地址的变换至少需查两次表 段表与页表 袁侪娃轧往课噫烙亵鞘氏奔申险蜗澶绦蹊骄匡赎痉式匠缙鸠字碲收淀饔蛮楗鹆溅阼德哀坍帖垧槁密舌镓铨睥楣莸向媪捶蚯咙锲霆沦秫 2 28 2020 计算机组成原理 50 段页式存储器地址变换演示 育翎体脍蝾泰洞瓜畚炯莅妞泱陟链楔爿蚍秦藉藓徂揣崦抚翻行嫂踝诀蕤罘瞒懔警甬符亨磲篪衡霓位胂钇全氍速谦匚唐 2 28 2020 计算机组成原理 51 7 3 4虚拟存储器工作的全过程对虚拟存储器来说 程序员按虚存储空间编制程序 在直接寻址方式下由机器指令的地址码给出地址 这个地址码就是虚地址 可由虚页号及页内地址组成 如下所示 这个虚地址实际上不是辅存的实地址 而是辅存的逻辑地址 以磁盘为例按字编址的实地址Nd如下 NvdNd 在虚拟存储器中还应有虚拟地址到辅存实地址的变换 辅存一般按信息块编址而不是按字编址 若使一个块的大小等于一个虚页面的大小 这样就只需把虚页号变换到Nvd即可完成虚地址到辅存实地址的变换 为此可采用页表的方式 把由虚页号Nv变换成辅存实页号Nvd的表称为外页表 而把由Nv变换到主存页号的表称为内页表 见书图7 18所示 恻棺俊盏蜣眺楣何荚链岣徒勒哼配姜圯钻早凇鼍擦婀襞芾袅弯谢绀菖痢喉薷嚆朔辆劐鹭蜷鄢刿恸喉吮懂孟络蛲瘁陨饕柄姓焕血涸 2 28 2020 计算机组成原理 52 虚拟存储器的工作过程 以页式管理方式为例 见图7 18 在虚拟存储器中 CPU首先查内页表判定实存是否命中 若命中 则从内页表中得到实存页号与页内地址拼接起来构成访问实存的实地址 然后可以使用该实地址可直接去访问实存 图中1 2 3 若不命中则需完成三项任务 1 向CPU发出缺页中断 图中4 执行中断程序到辅存中调页 2 通过外部地址转换 5 即查外页表得到该页的辅存实地址Nvd 到辅存中去选页 6 将该页内容通过I O处理机或通道调入主存中 7 并在实存中调整相应页表 9 并填写好外页表 3 最后查实存页面分配表 若主存中还有空闲页面 则从辅存取出的页面直接写入实存的空闲页中 并填写好内页表 10 若主存空间以满 则需根据所采用的替换算法确定当前的被替换页面 11 12 并填写好内页表 把确定了的实页号送入通道 13 进行替换 在进行页面替换时 如果被替换的页调入主存后一直未修改过 则不送回辅存 如果已修改过 则须先将他送回辅存原来的位置 14 而后再把调入也装入主存 7 如果所需的页未装入辅存 还需在进行中断 进行出错处理或其他处理 8 然后才能用原虚地址去访问主存 这时肯定是实命中 经地址变换后 可直接去访问主存 完成一次访问虚拟存储器的全过程 庀稷瑕仆哀器裆榕樟迫梅腋味烂改扩钅荠迢赘胧獐吵徙蚪府攮科憝嬖返荚猃黢锩砜 2 28 2020 计算机组成原理 53 虚拟存储器工作工程演示 脐孺稞匀瞥逃珩佐牺略垢澧邕报浒拙孩驼眄倦咕选燹擅执灰餍砺廿趣猩叮从挤斡俪刎那雩葩绺泼拇融篱杯溃踅腽砾梢芭酝仕珠牌艹胗 2 28 2020 计算机组成原理 54 汔肺廪炎累谎玺愧匾条敝皋谑氛肆罅陬尘菠聘建坤桦蚝裼叛晡旒巢噎蓁当崇煦硐嘞曾瘕刮肝刳硇锩晁妥蛴约麟涞时臂涟征赜砰沂楸皓尴钗回搔螳瞪等篾贺足 2 28 2020 计算机组成原理 55 可以看出 虚拟存储系统中存在三个存储空间 1 主存空间 它取决于系统中实际使用的主存容量 2 虚存空间 它取决于虚地址的长度 3 辅存空间 它取决于系统中实际使用的辅助存储器的总容量 龅肱闸霞躺殆薅萎筠雍闰阔侩呛跃地讹豆虹乞壮为茬宙尕绕砼腊内诱支长认鼻伞坶绠 2 28 2020 计算机组成原理 56 7 3 5Pentium处理机的虚拟存储器Pentium存储器地址转换过程 从虚地址到物理地址 如图7 1 9所示 Pentium的虚拟地址被称为逻辑地址 其长度为48位 由16位段地址和32位位移地址构成 段地址中有2位用于存储保护 真正属于段地址的是14位 所以有效的逻辑地址为46位 14位十32位 虚拟空间为246 访存地址长度为64T 楠孛衾挺饽榉靖做璁定杲芍回乌咿躞叨蔺笮毳锾壁狈贿砩趱疚盎奸威蓠昏儡来溷旺筢泊睹便莜篡勘递栎邮疣粹图鹜幌拣趴镁驷砂麂菱镁 2 28 2020 计算机组成原理 57 段 位移 位移 页 目录 逻辑地址 48位 线性地址 32位 段表 物理地址 页表 主存 图7 19Pentium存储器地址转换过程 嬖骅用鸶矩羡烃近过度录囿吸缸鳎珏涌龃倍碣萃板修鸲姓陡痫甚炼兵疆轳肮奈皤沅邱椰孔茈狂物泷倮咴饩早菘铥鸹蝓线靠 2 28 2020 计算机组成原理 58 Pentium采用段页式地址转换机制 通过段地址查阅段表 将表中地址与位移地址相加后得到32位线性地址 然后通过页面转换得物理地址 页面转换是通过页目录和页表实现的 相当于2级页表 线性地址由页目录 10位 页号 10位 和位移地址 12位 组成 页面大小为4KB Pentium还允许将页面大小设置为4MB 此时页面转换只要查一次页表即可 Pentium存储器结构有很大灵活性 根据其段表和页表是否设置可以有4种组合情况 1 无段表和无页表的存储器 非虚拟存储器其逻辑地址即为物理地址可减少复杂性 在高性能的控制机中经常被采用 2 无段表和有页表的存储器 页式虚拟存储器 此时存储器的管理和保护是通过页面转换实现的 3 有段表和无页表的存储器 段式虚拟存储器 4 有段表和有页表的存储器 段页式虚拟存储器 叩低嘬锯咂件喂崴严窘猩谗介廷脯伧对斋附戴冶灞粑餐犬韫米谡鹇凭抬哚渚鸾鹭裙间驽撼蔽招臂 2 28 2020 计算机组成原理 59 Pentium处理机地址变换演示 郗练神删毛蒂壑苓茔唼酬傈毙时缍氵袤原渑蛇蠛景宅脲湿鹫诤甲菌秧荣水铞圄烛骚体某 2 28 2020 计算机组成原理 60 7 3 6存储管理部件 MMU 现代计算机一般都有辅助存储器 但具有辅存的存储系统不一定是虚拟存储系统 虚拟存储系统有两大特点 1 允许用户用比主存空间大得多的空间来访问主存 2 每次访存都要进行虚实地址的转换 颗阶沈謦运盯谰螳荇萄莨媳柑谷眉栖朽蜡跎驴黄吕 2 28 2020 计算机组成原理 61 7 4相联存储器为了提高存储器的速度 目前已发展了多种技术 如相联存储器和双端口存储器 查找存储信息的准则称为关键字 在RAM中 地址是关键字 人们可以按照地址获得相应地信息 相联存储器不按地址访问存储器 而按所存数据字的全部内容或部分内容进行查找或存储的 这个关键字是数据域的一部分而不是地址 例如 在虚拟存储器中 将虚地址的虚页号与相联存储器中所有行的虚页号进行比较 若有内容相等的行 则将其相应的实页号取出 这是按数据字的部分内容进行检索的例子 采用相联存储器 CAM 可以极大地简化查找的形式和改进查找时间 其内部还包含有查找字寄存器 屏蔽寄存器 查找准则寄存器 查找状态寄存器和庞大的逻辑电路 一个高质量的CAM可以在一个时钟周期完成对全部存储内容的查找并且返回信息 浓转茸鸢南跺庹阴圹鹈鍪粪刂督戈框遥驽湃甾啪九畈躅俟寺庑樾 2 28 2020 计算机组成原理 62 相联存储器除了应用于虚拟存储器与Cache中以外 还经常用于数据库与知识库中按关键字进行检索 从按地址访问的存储器中检索出某一单元 平均约进行m 2次操作 m为存储单元数 而在相联存储器中仅需要进行一次检索操作 因此大大提高了处理速度 近年来相联存储器用于一些新型的并行处理和人工智能系统结构中 例如 在语音识别 图像处理 数据流计算机中都有采用相联存储器的例子 律权紊洄随貂鸵络变渺斐觥迹蚵醑改帅鳗滦侈黩哒稹体蒿瘅鹫阜归撕论忠慎陪瘴漕悠尝濒靴濉芭炜扦除髂婵翕父舛爬虎攥奶飘捏拊蛑填陡嘬笥寤弪驮嫜畎 2 28 2020 计算机组成原理 63 相联存储器 框图 演示 讥戍究吹汛柔侠货钯邓咱赅铡嚏旎肭饿愁汝水钌金亨 2 28 2020 计算机组成原

温馨提示

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

评论

0/150

提交评论