《微型计算机原理》课件第5章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《微型计算机原理》课件第5章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理 微型计算机 原理 课件
- 资源描述:
-
1、第5章 存 储 器 管 理 第5章 存 储 器 管 理 5.1 实方式存储器管理实方式存储器管理 5.2 保护方式存储器管理保护方式存储器管理5.3 保护及任务切换保护及任务切换5.4 虚拟虚拟8086方式方式第5章 存 储 器 管 理 5.1 实方式存储器管理实方式存储器管理5.1.1 存储器的分段结构存储器的分段结构 微处理器运行在实方式时,程序对存储器的访问采用分段地址。分段地址由一个段值和一个有效的地址偏移值组合而成,其表示方式为:段值:偏移量(均以省略后缀H的十六进制形式表示)第5章 存 储 器 管 理 图图 5.1 在分段寻址中组合段和偏移量在分段寻址中组合段和偏移量 存储器高地址
2、段字节FFFFH段字节0段寻址的存储器区域存储器低地址偏移量确定在段中一个字节偏移量从段字节0处测量安置在10H(16)倍段值地址处第5章 存 储 器 管 理 5.1.2 物理地址的形成物理地址的形成 图 5.2 实方式下物理地址的产成 16位段值0000193016位偏移值153020位物理地址190段:偏移量1BA4:204E+1DA8EH204EHBA40H1第5章 存 储 器 管 理 5.2 保护方式存储器管理保护方式存储器管理 5.2.1 存储器的分段管理存储器的分段管理 1.段选择器段选择器 图 5.3 保护方式段选择器格式 TIRPL索引表中的索引请求者特权级00b=最高特权11
3、b=最低特权表指示器0=全局描述符表(GDT)1=局部描述符表(LDT)153210第5章 存 储 器 管 理 2.段描述符表段描述符表 图 5.4 段选择器和描述符表 索引TI153210局部描述符表全局描述符表第一个项目不用空描述符TI=1TI=0段选择器第5章 存 储 器 管 理 3.段描述符段描述符图 5.5 描述符的分类 堆栈(通常向下扩展)非堆栈(通常向上扩展)数据代码一般的段描述符特殊的段描述符TSSLDT段描述符任务门调用门中断门陷阱门门描述符描述符第5章 存 储 器 管 理 图 5.6 段描述符格式 基地址(2431)GD0段限量(1619)PDPL类型Base基地址(162
4、3)基地址(015)段限量(015)15141312 111098765432106在80286上,这一字必须置为0,以便向上兼容420域描述G粒度D缺省AVL可用P出现DPL描述符特权级DT描述符类型DTAVLAVL第5章 存 储 器 管 理 段基地址。该域用来确定段在存储器的起始地址。对80286来说,段基地址24位宽,段可在4 MB线性地址空间的任何字节处起始;对80386和80486来说,段基地址32位宽,分成两部分,由处理器将它们结合在一起,32位段基地址决定了段可在4 GB线性地址空间中的任何字节处起始。可以看出,保护方式下段基地址的设置与实方式下段基地址仅限于被10 H整除的地址
5、处是大不相同的,使用起来灵活得多。第5章 存 储 器 管 理 段限量。该域用来确定段的尺寸。对80286,段限量为16位无符号数,表示段的最大尺寸为64 KB。对80386和80486,段限量由两部分组成20位的无符号数。但仅就20位的段限量还不能确定出段的尺寸,还需要根据段描述符中粒度D的设置来共同确定。若粒度位设置成字节粒状,则限量以字节为单位,得段的尺寸为1 B1 MB。若粒度位设置成页粒状,则限量以页为单位,一页为4 KB,故段的尺寸为4 KB4 GB。当采用页粒状时,有效地址偏移量的最低12位不必检查。若粒度设置为页,段限量设置为00000H,则该段的有效地址偏移量为0FFFH(40
6、95)。第5章 存 储 器 管 理 类型。图 5.7 段描述符类型域的定义 ST段类型ST位的设置决定了如何解释其他域代码段(ST=1)1CRA访问(1=yes)可读(1=yes)一致性(1=yes)数据段(ST=0)0EWA访问(1=yes)可写(1=yes)向下扩展(1=yes)(对于正常数据段E=0)第5章 存 储 器 管 理 DT位。这是描述符类型位,用来区分两种类型的段描述符。DT=1,表示为段描述符;DT=0,表示为一个特殊的描述符(或称系统段描述符)或门描述符。DPL。该域为描述符特权级域,用来实现保护而不用于地址生成。第5章 存 储 器 管 理 P。P位为存在位,用来表示描述符
7、存在于存储器中(P=1)或不存在于存储器中(P=0),它用于地址生成。如果一个描述符所描述的段已移至硬盘上,表明不在内存中,这时P=0。若这种情况下试图将该描述符的段选择器装入段寄存器,处理器便会产生一个段不存在异常(以P=0为标志),并且操作系统中的异常处理程序会把该段重新装入存储器。因而该位的设置使操作系统能够对应用程序实现虚拟存储器的功能。第5章 存 储 器 管 理 AVL。AVL为可用位,只在80386、80486中使用。该位用来确定是否允许系统程序员扩充处理器的保护机制,即是否允许对存储器映象的I/O口实现保护。当AVL=1时,表示该描述符(用来描述存储器映象的I/O段)可被系统软件
8、使用。当AVL=0时,表示该描述符对应的段选择器不能重新装入和使用。第5章 存 储 器 管 理 D。D位为缺省操作尺寸位,不用于地址生成,只在80386及80486的代码段描述符中被识别。当D=0时,表示操作数和有效地址的缺省值是16位;当D=1时,表示操作数和有效地址的缺省值为32位。当一条单指令具有超越前缀时,可以超越该位设置。G。G位为粒度位,在80386、80486中,它用来指定段限量的单位。G=0,表明段限量以字节为单位;G=1,表明段限量以页为单位,每页4 KB。第5章 存 储 器 管 理(2)特殊的段描述符及门描述符。特殊的段描述符及门描述符。表表5.1 系统段类型域定义系统段类
9、型域定义 第5章 存 储 器 管 理 4.描述符表寄存器描述符表寄存器 图 5.8 描述符表寄存器 全局描述符表寄存器基地址限量80286-24位80386/80486-32位16位局部描述符表寄存器选择器限量80286-24位80386/80486-32位16位基地址16位(GDTR)(LDTR)第5章 存 储 器 管 理 图 5.9 GDTR、LDTR与描述符表的关系 0123最大8191基址GDT310 150123最大8191基址LDT310 15GDTRLDTR150LDTR高速缓存器00边界第5章 存 储 器 管 理 图 5.10 LDTR同LDT描述符和LDT的关系 0010类型
10、S=0PLDT 基地址A16A23GD0段限量(169)基地址(2431)LDT基地址A0A15LDT限量015LDT选择器150LDT描述符(在GDT内)访问权LDT限量LDT基地址07150LDT 高速缓存器310LDTR 局部描述符表:LDT (规定任务的局部地址空间。最大64KB)CPUAVL第5章 存 储 器 管 理 5.段寄存器段寄存器 图 5.11 80286段寄存器格式 PDPL11CRA出现描述符特权级段描述符代码/数据PDPL10EDWA访问可读可写一致性数据或堆栈段向下扩展T1RPL段选择器(16位)访问权限(8位)限量用字节表示的段尺寸(16位)63504948 474
11、03916150可见部分不可见部分基地址用字节表示的段基地址(24位)代码段第5章 存 储 器 管 理 图 5.12 80386和80486段寄存器格式 23222120191817161514 131211109876543210GDPLD未用PDTType未用粒度缺省操作尺寸出现描述符特权级描述符类型类型参数计数(仅用于调用门)T1RPL段选择器(16位)访问权限(24位)限量以字节表示的段尺寸(32位)10390 898887646332 310可见部分不可见部分基地址以字节表示的段基地址(32位)第5章 存 储 器 管 理 5.2.2 存储器的分页管理存储器的分页管理 1.页目录和页表
12、页目录和页表 分页管理机制在将线性化地址空间的页转换到物理地址空间的页时,由于每个页面的整个4 KB是作为一个单位进行映射的,且每个页面都对齐在4 KB的边界,因而线性地址的低12位在分页转换过程中将直接作为物理地址的低12位使用。分页管理机制中的重定位函数(或称转换函数)实际上是把线性地址的高20位转换成对应物理地址的高20位,并且,这个转换函数是通过对常驻内存的页表查询来完成的。对页表的查询分两步进行,即查询一个两级表来完成。第一级表称为页目录表,它的长度也总是恰好为一页(4 KB),且起始于能被1000H整除的物理存储器地址上。因而页目录表的起始地址为20位(80386SX中为12位),
13、页目录表可在微处理器4GB(80386SX为16 MB)地址空间内任意安置,只要它对齐在4 KB的边界处即可。第5章 存 储 器 管 理 页目录的4 KB数据结构共存放了1024个项(称为页目录项)。每项4 B,32位,是一个指针,它指向另一个相似的数据结构。这个相似的数据结构即是称为页表的第二级表。它也总是4 KB长,并对齐在4 KB 的边界处。页表的4 KB数据结构又存放了1 024个页表项,每项同样4 B,32位长,且作为物理存储器中页的指针。页目录项和页表项的格式都一样,表示在图5.13中。其中高20位称为页帧地址,低12位定义如下:第5章 存 储 器 管 理 图 5.13 页目录表/
14、页表的表项格式 页基地址3212AVL0 0DA0 0U/SR/WP3112119876543210第5章 存 储 器 管 理 (1)P位。该位为存在位。P=1表示该项里的页地址映射到物理存储器中的一个页。P=0,表示该项里的页地址没有映射到物理存储器中,或说该项所指页不在物理存储器中。这时,若欲用该项进行地址转换将产生一个页出错异常,并且操作系统中的页出错处理程序将把该项重新装入存储器。如果页目录中,某项的P位清零,则表示对应的页表已被移出存储器。可以说操作系统利用P位提供的信息实现了请求分页的虚拟存储器的能力。(2)R/W位。R/W位为读/写位,用于实现页级保护,它不涉及到地址转换。第5章
15、 存 储 器 管 理 (3)U/S位。U/S位为用户/监控程序位,用于实现页级保护,不涉及地址转换。(4)A位。A位为访问位,用来表明该项指出的页是否已被读或写。若目录项中A=1,则表示该项所指出的页表已被访问过。若页表项中A=1,则表示该页表项所指出存储器中的页已被访问过。总之,A位的置位由处理器完成,A位的状态可供操作系统软件测试,以便计算不同页的使用频度。第5章 存 储 器 管 理 (5)D位。该位为页面重写标志位,只在页表项中设置,而不在页目录项中设置。当页表项中D=1时,表明该项所指出的存储器中的页已被写。D位的状态可被操作系统软件测试,以便操作系统判断存储器的某页在它最后一次被复制
16、到磁盘后是否被修改过。(6)AVL域。该域为可用域,共3位,供系统软件设计人员使用。可将与页使用有关的信息放在该域中,帮助分析判断应把哪些页移出存储器。第5章 存 储 器 管 理 2.线性地址到物理地址的转换线性地址到物理地址的转换 图 5.14 线性地址格式 313029282726252423222120191817161514131211109876543210目录索引域(10位)表索引域(10位)偏移量(12位)第5章 存 储 器 管 理 图 5.15 线性地址到物理地址的转换 页目录项页目录页表项页表目的地址目录索引域页帧表索引域偏移量线性地址3122 2112 110CR3(PDB
17、R)第5章 存 储 器 管 理 图 5.16 线性地址25674890H的分解 0010 0101 01目录索引10 0111 0100页表索引1000 1001 0000偏移量31222112110(10位)(10位)(12位)第5章 存 储 器 管 理 由于CR3=28345XXXH,所以页目录基地址=28345000H。线性地址中目录索引地址为0010010101B,故得页目录表中所寻址项的物理地址=目录表基地址+偏移地址(目录索引地址乘4)=28345000H+254H=28345254H。设目录表中寻址项(从28345254H开始的4个字节)的内容为00200021H,这表明寻址项对
18、应页表的基地址为00200000H,P位(位0)及A位(位5)为1,该被寻址页表在存储器中,且对应目录项已被访问过。线性地址中的页表索引地址为1001110100B,故得页表中所寻址项的物理地址=页表基地址+页表索引地址4=00200000H+9D0H=002009D0H。又设页表中所寻址项(从002009D0H开始的4个字节)的内容为34567021H,则页帧基地址=34567000H,要寻址的存储单元最终物 理 地 址=页 帧 基 地 址+线 性 地 址 中 的 1 2 位 偏 移 量=34567000H+890H=34567890H。第5章 存 储 器 管 理 4.页转换高速缓冲存储器页
19、转换高速缓冲存储器 图 5.17 386DX/386SX转换监视缓冲器(TLB)结构 2替换位块Way 0Way 1Way 2Way 3Way 0Way 1Way 2Way 3标记块数据块标记17386DX=20位386SX=12位集173匹配标记3115 1412 11001234567有效属性130012110TLB入口12填充0线性地址集选择第5章 存 储 器 管 理 3.小结小结 图 5.18 虚拟物理地址转换 选择子150偏移量段机制310310310虚拟地址线性地址(分页被禁用)物理地址分页机制第5章 存 储 器 管 理 5.3 保护及任务切换保护及任务切换 5.3.1 不同任务间
20、的保护不同任务间的保护 不同任务间的保护首先开始于把每个任务放置在不同的虚拟地址空间,然后,再在每个任务中定义一组独立的映射表,完成相互间各不相同的虚拟物理地址转换。这样,一个任务中的虚拟地址空间映射到物理存储器的一部分;另一个任务的虚拟地址空间映射到物理存储器的另外区域。在各任务中定义各自独立的一组映射表时,一般不应使它们所映射的物理存储空间重叠,因而,各任务之间是彼此隔离的。第5章 存 储 器 管 理 为了将操作系统与各应用程序隔离,且为各应用程序所共享,常把操作系统存储在一个单独的任务中,并把操作系统存储在虚拟存储空间的一个公共区域中。然后,再对每个任务按此公共区域分配一个同样的虚拟地址
21、空间及定义同样的虚拟物理地址转换函数。这样,既可使每个任务能对操作系统进行访问,又可保证操作系统不被各应用程序破坏。通常,称各任务公用的这部分虚拟地址空间为全局地址空间,而称仅被一个任务独占不被其它任务共享的虚拟地址空间为局部地址空间。第5章 存 储 器 管 理 5.3.2 段级别保护段级别保护 图 5.19 段描述符格式 基地址(2431)GD0段限(1619)PDPLDT类型基地址(1623)基地址(015)段限量(015)15141312 111098765432106在80286上,为向上兼容,此字必须置为0420域描述G颗粒性D缺省AVL 可用P存在DPL 描述符特权级别DT描述符类
22、型AVL第5章 存 储 器 管 理 1.类型检查类型检查 图 5.20 描述符类型域 ST段类型ST位的设置决定如何解释其他域代码段(ST=1)1CRA可访问的(1=yes)可读的(1=yes)一致的(1=yes)数据段(ST=0)0EWA可访问的(1=yes)可写的(1=yes)向下扩展(1=yes)(对于正常数据段E=0)第5章 存 储 器 管 理 表表5.2 存储段描述符类型存储段描述符类型 第5章 存 储 器 管 理 表5.3 相容的段寄存器和段类型 第5章 存 储 器 管 理 2.限度检查限度检查 实方式下,段的限度固定为64 KB。保护方式下,段的限度由段描述符的限度域指出,是不固
23、定的。对80286来说,限度以字节为单位,16位限度域表明一个段最大尺寸为64 KB。对80386/80486来说,限度域为20位,当描述符中G=0时,限度以字节为单位,一个段最大尺寸为1 MB;当G=1时,限度以页为单位,一页为4 KB,限度=限度域值*4096+4095。因此,若限度域值为0,则该段的最大尺寸为4 KB,程序可访问段内从0到4095的字节。第5章 存 储 器 管 理 除了向下扩充的段以外,所有段的段描述符的限度(化为字节数)都表示从段起始处开始的最大偏移量。当访问存储器操作数时,只要被访问操作数的一部分超出限度,处理器就会发出一般保护异常信号。例如,访问一个双字操作数,其地
展开阅读全文