15第二章 微处理器存储器管理技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章微处理器存储器管理技术(6学时)第二节保护模式存储器寻址(4学时)退出第一节实模式存储器寻址(2学时)知识概述第一节实模式存储器寻址80286及其以上的微处理器可工作于实模式或者保护模式,而8086只能工作于实模式。实模式只允许微处理器寻址第一个1MB内存空间,即使是PentiumⅣ微处理器也是如此。DOS操作系统要求微处理器工作于实模式。实模式操作是允许为8086编写的应用软件不用修改就可以在80286及更高型号的微处理器中运行。在任何情况下,这些微处理器每次加电或复位后都默认地以实模式开始工作。退出2.1.1段地址和偏移地址图2.1说明了段加偏移的寻址机制如何选择内存单元。1.逻辑地址:用冒号连接段地址和偏移地址,即段地址:偏移地址。2.物理地址:物理地址=段的起始地址+偏移地址=段地址10H+偏移地址。退出2.1.2默认段和偏移寄存器微处理器有一套规则,用于每次访问内存段,这套规则既适合于实模式也适合于保护模式,规则如下:1.用CS:IP或CS:EIP定位微处理器执行的下一条指令。2.用SS:SP或SS:ESP寻址存储器堆栈段中的数据。3.用DS或ES寻址存储器的数据段中的数据。8086~80286允许访问4个存储段,80386~PentiumⅣ允许访问6个存储段。注意内存段可以相邻甚至重叠,如果一段不需要64KB内存,则它可与其它段重叠。例如某个应用程序的代码需要1000H个字节的内存,数据需要190H个字节的内存,堆栈需要200H个字节的内存,这个应用程序不需要附加段。图2.3表示了DOS是如何装入应用程序的。退出2.1.3程序重定位问题的实现1.可重定位程序:是一个可以放在内存任何区域,不加修改而仍能执行的程序。2.可重定位的数据:是可以放在内存任何区域,且不需要修改就可以被程序应用的数据。段加偏移寻址机制允许程序和数据不需要任何修改,而使程序和数据重定位。退出第二节保护模式存储器寻址在保护模式下,当寻址内存中的数据和程序时,仍然使用偏移地址访问位于存储段内的信息。区别是,保护模式下的段地址不再像实模式那样由段寄存器提供。在原来存放段地址的段寄存器里含有一个选择子,用于选择描述表内的一个描述符。描述符描述存储器段的位置、长度和访问权限。两种模式之间的区别是微处理器访问存储段时对段寄存器的解释不同。退出2.2.1分段存储器管理一、选择子在保护模式下,段寄存器的功能如图2.4所示,段寄存器包括13位的选择子字段、表指示器位(tableindicator,TI)和请求优先级(requestedprivilegelevel,RPL)字段。其中13位的选择子可从描述符表的213=8192个描述符中选择一个。TI位选择全局描述附表(TI=0)或局部描述附表(TI=1)。1.对于286由于偏移地址是16位长,所以一个段的最大容量为64KB。因此逻辑空间,也即虚拟空间为214216=230=1GB。2.而对于80386~PentiumⅣ,它的偏移地址为32位长,所以一个段的最大容量为4GB。因此虚拟地址空间为214232=246=64TB。退出2.2.1二、描述符图2.5表示80286、80386~PentiumⅣ的描述符格式。注意每个描述符长8个字节,所以全局和局部描述符表每个最长为64KB。例2-1如果段的基地址为10000000H,界限为001FFH,G位为0时,求段的结束地址;若G位为1时,求段的结束地址。base=10000000HG=0End=Base+Limit=10000000H+001FFH=100001FFHG=1End=Base+Limit=10000000H+001FFFFF=101FFFFFH退出2.2.11.访问权限字节功能如图2.6所示。2.保护模式下的寻址:图2.7表示含选择子的段寄存器如何从全局描述符表中选择一个描述符,从描述符中如何选择存储器的一个段。退出2.2.2分页存储器管理分页管理将克服分段管理的缺点,把虚拟存储空间和内存物理空间都划分长度为4KB的页,页的起点和终点地址都是固定的。一、分页寄存器分页机制的启用是由微处理器中控制寄存器的内容控制。控制寄存器CR0到CR3的内容见图2.8。退出2.2.2二、分页机制的存储器的组织1.物理内存分页:一个物理页的大小为4KB,页与页互不重叠,只需要32bit的地址中高20bit来寻址物理页。2.页表:页表中的每一项的内容(每项4个字节,32位)高20位用来存放一个物理页的起始物理地址,低12bit放着一些关于该页的其它信息。3.页目录:页目录中的每一项的内容(每项4个字节)高20bit用来存放一个页表的起始物理地址,低12位存放该页表的其它信息。4.从前面的讲解可以知道,对于80386~PentiumⅣ系统,页目录的物理地址放在CPU的CR3寄存器中高20位。其寻址过程是:CR3页目录页表物理内存分页。退出2.2.2三、页目录项和页表页目录项和页表项的格式是相同的,如图2.9所示。存在位:若P=1,该页被映射到物理内存,可以使用进行地址的转换;若P=0,该页没有被映射到物理内存,则不能进行地址转换。写位:W位指示该表项所指定的页是否可读、写或执行。若W=1,对表项所指定的页可进行读、写或执行;若W=0,对表项所指定的页可读或执行,但不能对该指定的页写入。用户/超级用户位:指示该表项所指定的页是否是用户级页。若U/S=1,表项所指定的页是用户级页,可由任何特权级下执行的程序访问;如果U/S=0,表项所指定的页是系统级页,只能由系统特权级0、1和2上执行的程序访问。通写位:如果PWT置1,相关页使用通写策略。否则,采用回写策略。退出2.2.2禁用高速缓冲位PCD:如果PCD位被清除为0,则页表或页面可用高速缓存;若PCD置位,禁用高速缓存。访问位:A=1,表示已访问过对应的物理页。脏位:对于页目录项,D位是未定义。对于页表项,D位用来记录页表项所描述的页是否进行过数据写入,D=0该页中的内容没有被改动过。D=1该页中的内容已经被改动过了(被写过)。通写式高速缓冲存储器回写式高速缓冲存储器退出2.2.2四、转换后备缓冲区因为进行4KB存储器重新分页的操作要求使用存储器内的页目录和页表,所以Intel构造一个称为TLB的高速缓冲存储器。在80486微处理器中,TLB保存了32个最近使用的页转换地址。因此如果访问某个存储区,其地址已经在TLB中,就不需要在访问页目录和页表,这样加速了程序的执行。如果一个页表转换不在TLB中,则必须访问页目录和页表,这就需要额外的执行时间。(本章结束)退出图2.1实模式内存的寻址机制退出10001FFFF1F0001000000000FFFFF实模式内存段寄存器偏移地址=F00064KB段图2.1实模式内存的寻址机制图2.3应用程序装入DOS内存系统示意图退出0A280A0F090FSSCSDS090F00A0EF0A47F0A0F00A27F0A480FFFFF堆栈段数据段090EF000000A280代码段DOS和驱动程序StackDataCode图2.3应用程序装入DOS内存系统示意图图2.4保护模式下段寄存器的内容退出选择子TIRPL从8192个全局描述符或者局部描述符中选择一个描述符请求优先级00为最高级,11为最低级TI=0全局描述符表TI=1局部描述符表图2.4保护模式下段寄存器的内容150图2.580286和80386~PentiumⅣ微处理器的描述符格式80286描述符0000000000000000访问权限基(B23-B16)基(B15-B0)界限(L15-L0)642080386~PentiumⅣ基(B31-B24)GD0AV界限(L19-L16)访问权限基(B23-B16)基(B15-B0)界限(L15-L0)753175316420退出图2.680286~PentiumⅣ描述符中的访问权限字节退出PSEED/CR/WADPLE=0描述符描述数据段或堆栈段ED=0数据段向上扩展ED=1堆栈段向下扩展W=0数据不能写入W=1数据可被写入E=1描述符描述代码段C=0忽视描述符优先级(conforming)C=1遵循描述符优先级R=0代码段不能被读(readable)R=1代码段可被读A=0段未被访问A=1段已被访问过S=0系统描述符(system)S=1代码或数据段描述符DLP=设定描述符优先级P=0该段不在内存中P=1该段在内存中图2.680286~PentiumⅣ描述符中的访问权限字节图2.7用DS寄存器从全局描述符表中选择一个描述符退出0008009210000000FF00DS全局描述符表存储器系统FFFFFFFFH00100100H001000FFH00100000H000FFFFFH00000000H数据段图2.7用DS寄存器从全局描述符表中选择一个描述符退出MCEPSEDETSDPVIVME页目录基地址PCDPWT页故障线性地址未用PGCDNWAMWPNEETTSEMMPPE3112110CR4CR3CR2CR1CR01816图2.8微处理器控制寄存器结构图2.9页目录项和页表项格式退出页表地址或页地址DAPCDPWTUWP31126543210通写式高速缓冲存储器通写式高速缓冲存储器,在CPU向Cache写入的同时,也把数据写入相应内存单元。保证Cache和内存中相应单元数据的一致性。通写式速度慢,而且有些操作是不必要的,比如CPU连续多次更新一个Cache单元的内容,将导致相应内存单元连续多次被写入,而效果其实和写入最后一次更新是一样的。退出回写式高速缓冲存储器回写式高速缓冲存储器,CPU修改了Cache的内容后,并不立即修改内存中相应的单元。只有当回写操作被执行的时候,才修改相应内存单元。比如该Cache单元的内容从Cache中撤销时触发回写操作。回写式速度快,也避免了一些不必要的操作。退出知识概述•基本概念:实模式,实空间,段地址,偏移地址,保护模式,虚拟存储空间,段选择子,描述符•重点:实模式存储器寻址,默认的段加偏移,保护模式下的存储器寻址•难点:保护模式下分页机制的存储器寻址退出

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功