第2章_432位编程结构(×)_第1页
第2章_432位编程结构(×)_第2页
第2章_432位编程结构(×)_第3页
第2章_432位编程结构(×)_第4页
第2章_432位编程结构(×)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、 1985年年80386处理器应用于处理器应用于PC机,微型计算机进机,微型计算机进入了入了32位数据处理的时代,一直到位数据处理的时代,一直到2005年以前个人年以前个人电脑都是以电脑都是以32位数据处理为主。位数据处理为主。 2.6.1 32位微处理器虚拟存储器管位微处理器虚拟存储器管理理 虚拟存储器(虚拟存储器(VMVM,Virtual MemoryVirtual Memory) 虚拟存储器是一种存储管理技术,它提供比物理虚拟存储器是一种存储管理技术,它提供比物理内存大得多的存储空间,使程序设计人员编写的程内存大得多的存储空间,使程序设计人员编写的程序不考虑实际内存容量,从而可以编写出远

2、大于实序不考虑实际内存容量,从而可以编写出远大于实际内存容量应用程序。际内存容量应用程序。 32 32位位80X8680X86虚拟存储器管理结构虚拟存储器管理结构 按照内存与外存之间信息交换时传送单位的不按照内存与外存之间信息交换时传送单位的不同,虚拟存储器可分为段式虚拟存储器、页式虚拟同,虚拟存储器可分为段式虚拟存储器、页式虚拟存储器和段页式虚拟存储器三种。存储器和段页式虚拟存储器三种。1 1)段式虚拟存储器)段式虚拟存储器 段是按照程序逻辑结构划分的一种方式段是按照程序逻辑结构划分的一种方式, ,段的大小段的大小是不确定的,它由段中内容决定。是不确定的,它由段中内容决定。 优点:优点: 段

3、是程序自然分界的描述,与程序结构的一致性段是程序自然分界的描述,与程序结构的一致性好;段的逻辑独立性使它易于编译、管理、修改和保护,好;段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享;某些类型的段(如堆栈、队列等)也便于多道程序共享;某些类型的段(如堆栈、队列等)具有动态可变长度,允许自由调度以便有效利用主存空具有动态可变长度,允许自由调度以便有效利用主存空间。间。 缺点:缺点: 段的长度各不相同,在分配和管理上具有一定难段的长度各不相同,在分配和管理上具有一定难度,而且段的长度相对较大,在内存分配时容易产生一度,而且段的长度相对较大,在内存分配时容易产生一些空余的小空间造成

4、内存资源浪费。些空余的小空间造成内存资源浪费。 描述子共描述子共6464个比特,主要包括三个方面内容。个比特,主要包括三个方面内容。 一是段的基地址(共一是段的基地址(共3232位),用于表示段在内存位),用于表示段在内存中的起始位置;中的起始位置; 二是段限(共二是段限(共2020位),用于描述段的大小;位),用于描述段的大小; 三是段的属性,包括段类型、访问权限、段是否三是段的属性,包括段类型、访问权限、段是否已加载到内存、段限的单位(字节已加载到内存、段限的单位(字节/ /页)等页)等段式虚拟存储器地址转换过程如下图所示:段式虚拟存储器地址转换过程如下图所示: 2 2)页式虚拟存储器)页

5、式虚拟存储器 页是一个固定长度的信息描述单位,一个程序可以页是一个固定长度的信息描述单位,一个程序可以被分为若干页。如果将内存空间也按照页的大小分成若被分为若干页。如果将内存空间也按照页的大小分成若干个固定大小的存储块,则该存储块被称为页面。干个固定大小的存储块,则该存储块被称为页面。 优点:优点: 在页式管理中由于页面大小固定,进行内存分配时,在页式管理中由于页面大小固定,进行内存分配时,不考虑分配信息的逻辑关系等因素,因此对页面的管理不考虑分配信息的逻辑关系等因素,因此对页面的管理将变得十分方便。由于页面的大小通常较小(如将变得十分方便。由于页面的大小通常较小(如4KB4KB),),浪费只

6、是在最后一个页面中的零头产生,因此页式管理浪费只是在最后一个页面中的零头产生,因此页式管理具有较高的内存利用率。具有较高的内存利用率。 缺点:缺点: 由于页不是逻辑上独立的实体,因而处理、保护和由于页不是逻辑上独立的实体,因而处理、保护和共享等方面都不如段式方便。共享等方面都不如段式方便。 页式虚拟存储器地址转换过程如下:页式虚拟存储器地址转换过程如下: 由于每一页只由于每一页只4KB大小,如果只使用一级页地址转换最多会大小,如果只使用一级页地址转换最多会有有220个页表项,这需要占用很大的连续存储空间,如果分为两个页表项,这需要占用很大的连续存储空间,如果分为两级,则可以将页表变小,从而更加

7、灵活。因此级,则可以将页表变小,从而更加灵活。因此80X86使用的是两使用的是两级页表结构。级页表结构。两级页表转换过程:两级页表转换过程:第一次转换查页目录表,第一次转换查页目录表,找到二级页表的起始地址找到二级页表的起始地址第二次转换查页表,第二次转换查页表,找到数据所在页的起始地址找到数据所在页的起始地址起始地址起始地址+偏移偏移找到对应的数据找到对应的数据 3 3)段页式虚拟存储器)段页式虚拟存储器 为了克服段式和页式存储器管理各自的缺点,可为了克服段式和页式存储器管理各自的缺点,可以将这两种管理方式结合成段页式管理。段页式管理首以将这两种管理方式结合成段页式管理。段页式管理首先将程序

8、按照模块分段,段内再分页,分配内存以页为先将程序按照模块分段,段内再分页,分配内存以页为单位进行,而管理以段为单位进行。这样就结合了这两单位进行,而管理以段为单位进行。这样就结合了这两种管理方式的优点。种管理方式的优点。 首先查段表项首先查段表项找到对应的段内线性地址找到对应的段内线性地址根据段内线性地址查两级页表根据段内线性地址查两级页表找到数据所在页的起始地址找到数据所在页的起始地址+偏移地址得物理地址偏移地址得物理地址2.6.2 2.6.2 基本结构寄存器基本结构寄存器 80X86/3280X86/32位微处理器有位微处理器有1616个基本结构寄存器,这个基本结构寄存器,这1616个寄存

9、器按其用途可分为个寄存器按其用途可分为8 8个通用寄存器、个通用寄存器、2 2个专用个专用寄存器和寄存器和6 6个段寄存器。个段寄存器。 1. 1. 通用寄存器通用寄存器(General Purpose Registers)(General Purpose Registers) 分别是累加器分别是累加器EAXEAX、基址寄存器、基址寄存器EBXEBX、计数寄存器、计数寄存器ECXECX、数据寄存器、数据寄存器EDXEDX、堆栈指针、堆栈指针ESPESP、基址指针、基址指针EBPEBP、源变址寄存器源变址寄存器ESIESI及目的变址寄存器及目的变址寄存器EDIEDI。 这些这些3232位的通用寄

10、存器可以用来保存数据和地址,位的通用寄存器可以用来保存数据和地址,支持支持1 1、8 8、1616和和3232位的数据操作数,位的数据操作数,1 13232的位字段的位字段以及以及1616位或位或3232位的地址操作数。在这位的地址操作数。在这8 8个个3232位寄存器位寄存器中,中,8 8个个1616位寄存器位寄存器AXAX、BXBX、CXCX、DXDX、SPSP、BPBP、SISI和和DIDI可以存放可以存放1616位信息,位信息,8 8个个8 8位寄存器位寄存器AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH和和DLDL可以存放可以存放8 8位信息。位信息。 间接寻址

11、时用来保存偏移间接寻址时用来保存偏移地址地址( (用作基址和变址用作基址和变址寄存器寄存器) ) 通用寄存器具有一些隐含的用法,常用规则如下:通用寄存器具有一些隐含的用法,常用规则如下: 2. 2. 专用寄存器专用寄存器(Special Registers)(Special Registers) 80X86/32 80X86/32位位CPUCPU的专用寄存器有指令指针的专用寄存器有指令指针EIPEIP和标志和标志寄存器寄存器EFLAGS EFLAGS 1) 1) 指令指针指令指针EIPEIP 指令指针指向要执行的下一条指令的偏移地值,指令指针指向要执行的下一条指令的偏移地值,该偏移地值为相对于

12、指令所在代码段的基地址(段起该偏移地值为相对于指令所在代码段的基地址(段起始地址)。始地址)。 2) 2) 标志寄存器标志寄存器EFLAGSEFLAGS 32 32位标志寄存器位标志寄存器EFLAGSEFLAGS用于指示微处理器的状态,用于指示微处理器的状态,并控制其操作。并控制其操作。8048680486803868038680286802868088,8086,801868088,8086,80186Pentium/Pentium ProPentium/Pentium Pro各标志位在标志寄存器的位置如下:各标志位在标志寄存器的位置如下:部分部分286286以上以上CPUCPU使用的标志位

13、功能如下:使用的标志位功能如下: 3. 3. 段寄存器段寄存器 80X8680X86系列的系列的3232位微处理器中有位微处理器中有6 6个个1616位段寄存器,位段寄存器,其中其中CSCS、DSDS、ESES、SSSS寄存器功能与寄存器功能与1616位微处理器的功位微处理器的功能基本相同,只是在保护模式下访问空间更大。而能基本相同,只是在保护模式下访问空间更大。而FSFS、GSGS段寄存器是在段寄存器是在8038680386及其以后的微处理器特有的,及其以后的微处理器特有的,这两个段寄存器均为附加段寄存器,用于描述两个不这两个段寄存器均为附加段寄存器,用于描述两个不同数据段的起始地址。同数据

14、段的起始地址。 在保护模式下,段寄存器中并不存放段的实际起在保护模式下,段寄存器中并不存放段的实际起始地址,而是保存要访问段的选择子。通过选择子可始地址,而是保存要访问段的选择子。通过选择子可以找到该段的描述子,进而找到对应物理段的起始地以找到该段的描述子,进而找到对应物理段的起始地址。址。 为了提高对描述子的访问速度,在微处理器中还为了提高对描述子的访问速度,在微处理器中还设置了段描述子高速缓存寄存器,用于存放每个段的设置了段描述子高速缓存寄存器,用于存放每个段的描述子。描述子。2.6.3 2.6.3 系统寄存器系统寄存器 80X86/3280X86/32位微处理器中有一组系统级寄存器,位微

15、处理器中有一组系统级寄存器,包括:包括:5 5个控制寄存器个控制寄存器CR0CR0CR4CR4和和4 4个系统地址寄存个系统地址寄存器器GDTRGDTR、IDTRIDTR、LDTRLDTR、TRTR。如图。如图2.372.37所示所示1 1控制寄存器控制寄存器(Control Registers)(Control Registers) 80X86/32 80X86/32位微处理器有位微处理器有5 5个控制寄存器,实现个控制寄存器,实现对微处理器的多种功能的控制与选择(其中对微处理器的多种功能的控制与选择(其中CR1CR1寄寄存器保留未使用)。存器保留未使用)。 1)CR0 Pentium Pr

16、o微处理器的微处理器的CR0定义了定义了11个控制位个控制位 2 2) CR2CR2 页故障线性地址寄存器页故障线性地址寄存器CR2CR2用来保存发生页故用来保存发生页故障中断障中断( (异常异常14)14)之前所访问的最后一个页面的线之前所访问的最后一个页面的线性页地址。性页地址。 3 3) CR3CR3 页目录基地址寄存器页目录基地址寄存器CR3CR3,用来存放页目录表,用来存放页目录表的物理基地址。由于页目录表是按页对齐的的物理基地址。由于页目录表是按页对齐的(4KB)(4KB),因而因而CR3CR3通过高通过高2020位来实施这一要求,低位来实施这一要求,低1212位用作位用作其它功能

17、,已定义的有其它功能,已定义的有7 7位。位。 CR3CR3为为8038680386以上微处理器才被定义和使用,以上微处理器才被定义和使用,其中其中PWTPWT和和PCDPCD两位为两位为8048680486以上的微处理器才具有以上的微处理器才具有的新控制标志。的新控制标志。 位置及名称位置及名称功功 能能 描描 述述P(0P(0位位) )存在位存在位P P位指出页面目录或页表条目是否可用于地址转换。位指出页面目录或页表条目是否可用于地址转换。P=1P=1,该条目可用于地址转换,该条目可用于地址转换P=0P=0,该条目不可用于地址转换,所有其余各位均可供软件使用。,该条目不可用于地址转换,所有

18、其余各位均可供软件使用。R/WR/W、U/S(1U/S(1,2 2位位) )读读/ /写、用户写、用户/ /超级管理员超级管理员控制控制R/WR/W、U/SU/S位用于页面级保护。为最低的级位用于页面级保护。为最低的级特权级特权级3 3设置分页优先级设置分页优先级保护。特权级保护。特权级3 3的存取保护为:的存取保护为:U/SU/SR/WR/W特权级特权级3 3存取存取 0 0 0 0 无无 0 0 1 1 无无 1 1 0 0 只读只读 l l 1 1 读读/ /写写PWT(3PWT(3位位) )页面通写控制页面通写控制PWTPWT用于指示是页面通写还是回写。用于指示是页面通写还是回写。PW

19、T=1PWT=1,外部,外部cachecache对页目录进行通写对页目录进行通写PWT=0PWT=0,进行回写,进行回写PCD(4PCD(4位位) )页面页面cachecache控制控制PCDPCD用于指示页面用于指示页面cachecache工作情况。工作情况。PCD=lPCD=l,禁止片内,禁止片内cachecachePCD=0PCD=0,允许片内页,允许片内页cachecacheA(5A(5位位) ) 被访问被访问D(6D(6位位) ) 被修改被修改在对该页面目录或页表条目所覆盖的某一地址进行读或写访问之前,在对该页面目录或页表条目所覆盖的某一地址进行读或写访问之前,将将A A位置位;位置

20、位;在对页表条目所覆盖的某一地址进行写人之前将在对页表条目所覆盖的某一地址进行写人之前将D D位置位;对于页面目位置位;对于页面目录条目,录条目,D D位未定义。位未定义。4 4) CR4CR4 CR4 CR4是是PentiumPentium以上处理器中新增加的控制寄存器,以上处理器中新增加的控制寄存器,已定义了已定义了8 8位。位。位置及名称位置及名称功功 能能 描描 述述VME(0位)位)虚拟方式扩充位虚拟方式扩充位VME=1,允许虚拟,允许虚拟8086方式扩充方式扩充VME=0,禁止虚拟,禁止虚拟8086方式扩充方式扩充PVI(1位)位)保护方式虚拟中断位保护方式虚拟中断位PVI=1,允

21、许保护方式虚拟中断,允许保护方式虚拟中断PVI=0,禁止保护方式虚拟中断,禁止保护方式虚拟中断虚拟中断标志位虚拟中断标志位VIFTSD(2位)位)时间戳控制位时间戳控制位TSD=1,且当前特权级不为,且当前特权级不为0时,禁止时,禁止RDTSC(读时间戳计数器读时间戳计数器)指令;指令;TSD=0,RDTSC将在所有特权级上执行将在所有特权级上执行DE(3位)位)调试扩充调试扩充DE用来控制是否支持用来控制是否支持I/O断点断点DE=1时,允许时,允许I/O断点调试扩充;断点调试扩充;DE=0时,禁止时,禁止I/O断点调试扩充。断点调试扩充。PSE(4位)位)页尺寸扩充控制位页尺寸扩充控制位P

22、SE=l,允许页面大小扩充;,允许页面大小扩充;PSE=0,禁止页面大小扩充。在,禁止页面大小扩充。在Pentium中中设置时允许设置时允许4MB,而,而Pentium Pro为为2MBPAE(5位)位)页地址扩充位页地址扩充位PAE=1,允许页地址扩充;,允许页地址扩充;PAE=0,禁止页地址扩充;,禁止页地址扩充;当使用当使用Pentium Pro中由中由PSE控制的新寻址方式时允许使用控制的新寻址方式时允许使用A35A32MCE(6位)位)机器检查使能控制位机器检查使能控制位MCE=I,允许机器检查异常;,允许机器检查异常;MCE=0,禁止机器检查异常,禁止机器检查异常PGE(7位)位)

23、页尺寸扩展控制位页尺寸扩展控制位PGE同同PAE和和PSE一起设置时,用于控制新的一起设置时,用于控制新的64GB的寻址方式的寻址方式2. 2. 系统地址寄存器系统地址寄存器(System Address Registers)(System Address Registers) 在保护模式下,存储器操作数所在的段的性质在保护模式下,存储器操作数所在的段的性质由一个称为由一个称为“描述子描述子”(Descriptor)(Descriptor)的数据结构来的数据结构来描述。所有段的描述子存放在一个或几个称为描述。所有段的描述子存放在一个或几个称为“描描述子表述子表”的存储区中。为了寻址和定义这些描

24、述子的存储区中。为了寻址和定义这些描述子表的地址,表的地址,80X86(8028680X86(80286以上以上) )中包含有中包含有4 4个系统地个系统地址寄存器:址寄存器:n全局描述子表寄存器全局描述子表寄存器GDTR GDTR n中断描述子表寄存器中断描述子表寄存器IDTR IDTR n局部描述子表寄存器是局部描述子表寄存器是 LDTRLDTRn任务状态段寄存器任务状态段寄存器 TR TR 4 4) TR(Task State Segment Register)TR(Task State Segment Register) 任务状态段寄存器是一个任务状态段寄存器是一个1616位的寄存器。位的寄存器。TSTS的的功能是为了实现任务或进程之间的快速切换。每个功能是为了实现任务或进程之间的快速切换。每个任务都必须有一个与其相关联的任务都必须有一个与其相关联的TSS(TSS(任务状态段,任务状态段,Task State Segment)Task Stat

温馨提示

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

评论

0/150

提交评论