收藏 分销(赏)

32位微处理器.pptx

上传人:可**** 文档编号:941547 上传时间:2024-04-08 格式:PPTX 页数:85 大小:715.31KB
下载 相关 举报
32位微处理器.pptx_第1页
第1页 / 共85页
32位微处理器.pptx_第2页
第2页 / 共85页
32位微处理器.pptx_第3页
第3页 / 共85页
32位微处理器.pptx_第4页
第4页 / 共85页
32位微处理器.pptx_第5页
第5页 / 共85页
点击查看更多>>
资源描述

1、第十一章第十一章 32位微处理器位微处理器 1.Pentium微处理器的外形和封装微处理器的外形和封装1993年开始推出,共生产三代:年开始推出,共生产三代:P5(Pentium 60/66)0.8 m,5V电压电压P54C(Pentium 75/90/100/120/133/150/166/200),0.6 m,3.8V电压电压P55C(Pentium MMX 166/200/233),0.35 m,2.8V电压电压集成度:集成度:310万晶体管万晶体管/片片第十一章第十一章 32位微处理器位微处理器 111 80386微处理器微处理器一一.80386的特点的特点:1.技术上技术上:流水线流

2、水线,虚拟存储器虚拟存储器,片内存储管理片内存储管理,存储器分段和分页存储器分段和分页 机构机构,四级保护机构四级保护机构;2.多任务多任务 多用户操作系统多用户操作系统,与与8086 80286兼容兼容;3.32条条DB和内部数据通道和内部数据通道(R ALU 内总线均为内总线均为32位位),可进行可进行8 16 32位数据处理位数据处理;4.寻址寻址:在实地址方式下在实地址方式下:232=4KMB(4GB)的物理空间的物理空间,在虚地址保护方式下在虚地址保护方式下:246=64MMB=64TB虚拟存储空间虚拟存储空间;5.M按段组织按段组织:一个段最长一个段最长=4KMB 即即:64TB虚

3、拟存储空间虚拟存储空间=16384段段;(即允许一个任务可包(即允许一个任务可包 含的含的 段)段)一一.80386的特点的特点:6.386芯片芯片:132条引脚封装条引脚封装,其耗散功率在其耗散功率在1.53.0W之间之间,时钟频率时钟频率=16MHZ,运行速度运行速度=3倍倍80286;7.三种工作方式三种工作方式:实地址方式实地址方式:即即386为一个高速的为一个高速的8086,目标代码与目标代码与 8086兼容兼容,寻址与寻址与8086相同相同;保护方式保护方式:虚拟存储空间虚拟存储空间,M按段页管理按段页管理,有四级保有四级保 护护 机构机构,寻址不同寻址不同;虚拟虚拟8086方式方

4、式:386像在实地址一样像在实地址一样,可执行可执行8086的应的应 用程序用程序,同时可运行同时可运行386的的 操作系统及操作系统及 程序程序.保护方式是最常用的保护方式是最常用的,最具特色的方式最具特色的方式,也称本性方式也称本性方式.8.硬件支持多任务硬件支持多任务,一条指令可以完成任务一条指令可以完成任务转换转换,转换时间在转换时间在17us内内.9.4级特权级级特权级,很强的抑制病毒感染的能力很强的抑制病毒感染的能力,在用户之间在用户之间用户和操作系统之间形成严用户和操作系统之间形成严格的隔离保护格的隔离保护.一一.80386的特点的特点:采用采用296引脚的引脚栅格阵列(引脚的引

5、脚栅格阵列(PGA)陶瓷封装技术)陶瓷封装技术 (386为为132引脚引脚)二二.80386的结构的结构6级流水线结构级流水线结构:1.总线接口部件总线接口部件(BIU):高速接口高速接口,产生产生AD DB CB信号信号,总线周期仅为总线周期仅为2个时钟周期个时钟周期;2.指令预取部件指令预取部件(IPU):16字节的预取队列寄存器字节的预取队列寄存器,约存放约存放 5条指令条指令;3.指令译码部件指令译码部件(IDU):对指令的操作码预译码对指令的操作码预译码,后送入后送入“已已 译码指令队列译码指令队列”中等待中等待EU执行执行;4.执行部件执行部件(EU):包括包括ALU R 桶形移位

6、桶形移位R和乘除硬和乘除硬 件件(64位位)保护测试部件保护测试部件 控制部件控制部件;二二.80386的结构的结构5.段管理部件段管理部件(SU):实现有效地址的计算实现有效地址的计算,完成从逻完成从逻 辑地址到线性地址的转换辑地址到线性地址的转换,且送且送 PU;(管理逻辑地址空间管理逻辑地址空间)6.页管理部件页管理部件(PU):完成从线性地址到物理地址的转完成从线性地址到物理地址的转 换换;(管理物理地址空间管理物理地址空间)规定规定:1页页=4KB 1段段=4KMB=4096MB=4GB (最大最大)1个任务个任务=16K段段 =16K*4KMB=64MMB=64TB(允许允许)三三

7、.80386CPU的内部寄存器的内部寄存器:1.通用寄存器通用寄存器:8个个 ,均均32位位 在程序执行时暂时保存中间结果。在程序执行时暂时保存中间结果。在进行算术运算和逻辑运算时,通用寄存器任何一个在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数都可以作为源操作数或目的操作数A 累加器寄存器累加器寄存器B 基址寄存器基址寄存器C 计数寄存器计数寄存器D 数据寄存器数据寄存器例例:MOV ECX,12345678H MOV ECX,EDX三三.80386CPU的内部寄存器的内部寄存器:指针和变址寄存器指针和变址寄存器 ESP,EBP,ESI,EDI例例:MOV EA

8、X,ESP三三.80386CPU的内部寄存器的内部寄存器:例例:MOV EAX,BX+24 MOV DX,EAX+1500 MOV AX,BX+SI+50 MOV EAX,EDX+EBP+0FFFF000H三三.80386CPU的内部寄存器的内部寄存器:2.段寄存器段寄存器:6个个16位的位的;6个个64位的位的.CS 代码段代码段 SS 堆栈段堆栈段 DS 数据段数据段 ES 附加段附加段 FS 数据段数据段F GS数据段数据段G注注:在保护方式在保护方式 虚拟方式下虚拟方式下,各段寄存器各段寄存器(16位位)称为段选称为段选 择字择字,64位的则称为描述符位的则称为描述符 寄存器寄存器,它

9、们一一对应它们一一对应.但仍以但仍以CS,DS,ES,SS,FS,GS称称.三三.80386CPU的内部寄存器的内部寄存器:CSDSSSESFSGS程序员可见程序员可见访访问问权权限限访访问问权权限限基基址址界界限限01920515263段描述符高速缓冲寄存器(不可见)段描述符高速缓冲寄存器(不可见)三三.80386CPU的内部寄存器的内部寄存器:3.指令指针寄存器指令指针寄存器EIP:32位位,与与IP意义相同意义相同,为对为对CS的偏移地址的偏移地址.0151631EIP标志寄存器标志寄存器EF:32位位,低低12位是位是8086的的FR,低低16位是位是80286的的FR,低低18位是位

10、是80386的的FR.FLAGSEFLAGS同样同样,EIP EF均可用于均可用于16位位,(IP,FR)IP三三.80386CPU的内部寄存器的内部寄存器:EFLAGS31 17 16 15 14 13 12 11 0 VMRFNTIOPL保留保留1).IOPL标志标志:I/O特权级标志特权级标志.仅用于保护模式仅用于保护模式,表示表示I/O操作操作 处于处于03级特权中的哪一级级特权中的哪一级.00:特权级特权级0 01:-1 10:-2 11:-32).NT标志标志:任务嵌套标志任务嵌套标志.指出当前执行的任务是否嵌套于另指出当前执行的任务是否嵌套于另 一任务中一任务中.NT=1,表示嵌

11、套表示嵌套;NT=0,未嵌套未嵌套.NT也仅用于保护模式也仅用于保护模式,0或或1的置入由任务的控制转的置入由任务的控制转 移来实现移来实现.与与8086意义相同意义相同三三.80386CPU的内部寄存器的内部寄存器:3).VM标志标志:虚拟虚拟8086模式标志模式标志,VM=1,表示表示386在保护模式系统中已从保在保护模式系统中已从保 护模式转换为虚拟护模式转换为虚拟8086模式模式.VM由任务切换置由任务切换置1.PUSHF指令使指令使VM=0.4).RF标志标志:恢复标志恢复标志,用于在调试失败后用于在调试失败后,强迫程序恢强迫程序恢 复执行复执行.RF是配合调试寄存器的断点或单步操作

12、是配合调试寄存器的断点或单步操作 一起使用的一起使用的.在处理断点之前在处理断点之前,在两条指令之间对该位进行检查在两条指令之间对该位进行检查.当检查当检查RF=1时时,即使在下一条指令执行时遇到断点即使在下一条指令执行时遇到断点 或调试故障或调试故障,该故障也会被处理器该故障也会被处理器忽略忽略(即不产生异即不产生异 常中断常中断).三三.80386CPU的内部寄存器的内部寄存器:.在成功执行每一条指令后在成功执行每一条指令后,CPU将将RF自动清自动清0,准,准 备下一个断点中断。备下一个断点中断。.当接收到一个非调试故障的故障信号时当接收到一个非调试故障的故障信号时,CPU将将RF置置

13、1,即忽略该故障,不产生中断。,即忽略该故障,不产生中断。4.控制寄存器控制寄存器:4个个,均均32位位.CR0 CR1 CR2 CR3.供操作系统用供操作系统用.用于保存机器的各种全局性状态用于保存机器的各种全局性状态,以指挥系以指挥系 统所有任务的运行统所有任务的运行.三三.80386CPU的内部寄存器的内部寄存器:三三.80386CPU的内部寄存器的内部寄存器:1).CR0:控制寄存器控制寄存器0:CR0的低的低4位组成机器状态字(位组成机器状态字(MSW):):保护允许位保护允许位 PE:0实模式;实模式;1保护模式保护模式 协处理器位协处理器位 MP:1(系统有数学协处理器系统有数学

14、协处理器)仿真协处理器位仿真协处理器位 EM:1(要求软件仿真要求软件仿真)任务切换位任务切换位TS:任务切换,切换任务时自动设置任务切换,切换任务时自动设置CR0中的中的PG位设置为位设置为1,表示允许分页,表示允许分页,即分页部件可工作即分页部件可工作.三三.80386CPU的内部寄存器的内部寄存器:2).CR2:页面故障线性地址寄存器页面故障线性地址寄存器:用于报告出错信息用于报告出错信息.当发生页异常时当发生页异常时,CPU把引起异常的把引起异常的32位线性地位线性地 址址 CR2中中;操作系统中的页异常处理程序通过检查操作系统中的页异常处理程序通过检查CR2的的 内容内容,可知线性地

15、址空间中的哪一页引起页故障可知线性地址空间中的哪一页引起页故障.3).CR3:页组目录基址寄存器页组目录基址寄存器:用于存放用于存放页目录表页目录表的物的物 理基地址理基地址.页目录表的基地址是以页目录表的基地址是以4KB为边界为边界,即低即低12位位 为为0 CR3的低的低12位为位为0,高高20位有效位有效.三三.80386CPU的内部寄存器的内部寄存器:存储器分页机制:存储器分页机制:CR0中的中的PG位设置为位设置为1,表示允许分页,表示允许分页CR3包含页目录基址,指向页目录的开头包含页目录基址,指向页目录的开头如果发生缺页,则将发生缺页的地址保存在如果发生缺页,则将发生缺页的地址保

16、存在CR2中中 11 0000000000000000000000000几个概念几个概念:1.描述符描述符(Descriptor):描述存储器段的属性的一个描述存储器段的属性的一个8字节的数据结构。字节的数据结构。2.描述符表描述符表:描述符表由描述符顺序排列组成,占内存一定描述符表由描述符顺序排列组成,占内存一定的区域,由系统地址寄存器(的区域,由系统地址寄存器(GDTR、IDTR、LDTR)指示其在物理存储器中的位置和大小指示其在物理存储器中的位置和大小 描述符表有三种:描述符表有三种:全局描述符表全局描述符表GDT 中断描述符表中断描述符表IDT 局部描述符表局部描述符表LDT空间的定义

17、空间的定义:一个任务占用的空间称一个任务占用的空间称局部空间局部空间,多个任多个任务共同占用的空间称务共同占用的空间称全局空间全局空间.如如:被各个任务共同调用的子程序和公被各个任务共同调用的子程序和公 共数据共数据,就放在全局空间中就放在全局空间中.局部空间只是某个任务可访问的局部空间只是某个任务可访问的M空间空间,而而全局空间是所有任务都能访问的全局空间是所有任务都能访问的M空间空间.一个任务由多段组成一个任务由多段组成.局部空间是相互隔离的局部空间是相互隔离的.三三.80386CPU的内部寄存器的内部寄存器:5.系统地址寄存器系统地址寄存器:4:4个个 2 2个系统地址寄存器个系统地址寄

18、存器:GDTR,IDTR:GDTR,IDTR 1).1).GDTR:GDTR:全局描述符表寄存器全局描述符表寄存器(48(48位位).).存放全局描述符表存放全局描述符表(GDT)(GDT)的的3232位线性基地址和位线性基地址和1616位限值位限值.即即GDTR在物理存储器地址空间中定义全局描述符表在物理存储器地址空间中定义全局描述符表GDT0151647GDTRBASELIMITBASE指示指示GDT在物理存储器中开始的位置在物理存储器中开始的位置LIMIT规定规定GDT的界限的界限LIMIT有有16位,从而位,从而GDT最大最大65536个字节,个字节,能够容纳能够容纳65536/8=8

19、192个描述符个描述符三三.80386CPU的内部寄存器的内部寄存器:例例:(GDTR)=001000000FFFH,求,求GDT在物理存储器中在物理存储器中的起始地址,结束地址,表的大小,表中可以存放多的起始地址,结束地址,表的大小,表中可以存放多少个描述符?少个描述符?解解:GDT的起始地址为的起始地址为00100000H结束地址为结束地址为00100000H+0FFFH=00100FFFH表的大小为表的大小为0FFFH+1=4096字节字节表中可以存放表中可以存放4096/8=512个描述符个描述符三三.80386CPU的内部寄存器的内部寄存器:2).2).IDTR:IDTR:中断描述符

20、表寄存器中断描述符表寄存器(48(48位位)存放中断描述符表存放中断描述符表(IDT)(IDT)的的3232位线性基地址和位线性基地址和 1616位限值位限值.即即:IDTR:IDTR在物理存储器地址空间中定义中断描述符表在物理存储器地址空间中定义中断描述符表IDT.M M系统中只有一个系统中只有一个GDTGDT和和IDTIDT 无需通过选择字来选择描述符表无需通过选择字来选择描述符表 故故 只有只有GDTRGDTR和和IDTR.IDTR.即即 由由GDTR(IDTR)GDTR(IDTR)确定表中的描述符项确定表中的描述符项,去寻址存储器系去寻址存储器系 统地址统地址.0151647IDTRB

21、ASELIMIT三三.80386CPU的内部寄存器的内部寄存器:47 16 15 032位线性基地址位线性基地址 16位界限值位界限值32位线性基地址位线性基地址 16位界限值位界限值GDTRIDTR三三.80386CPU的内部寄存器的内部寄存器:2个系统段寄存器个系统段寄存器:LDTR,TR1).LDTR:局部局部描述符表寄存器描述符表寄存器(16(16位位)存放选择局部描述符表存放选择局部描述符表LDTLDT的的1616位段选择字位段选择字.LDTR-64 LDTR-64位的局部描述符寄存器位的局部描述符寄存器.对应对应16位的位的LDTR并不直接定义并不直接定义LDT,它只是一个指向,它

22、只是一个指向GDT中中LDT描述符的选择符。描述符的选择符。如果如果LDTR中装入了选择字,相应的描述符将从中装入了选择字,相应的描述符将从GDT中中读出并装入局部描述符表高速缓冲寄存器。将该描述读出并装入局部描述符表高速缓冲寄存器。将该描述符装入高速缓冲寄存器就为当前任务创建了一个符装入高速缓冲寄存器就为当前任务创建了一个LDTLDT是定义任务用到的局部存储器地址空间是定义任务用到的局部存储器地址空间释义释义:1).保护方式保护方式:一个任务一个任务 属于自己的属于自己的LDT,多任务系统中多任务系统中,有多个有多个LDT.2).每张每张LDT由一个描述符来描述由一个描述符来描述.该描述符该

23、描述符 放在放在GDT中中.3).任务初始化和任务切换时任务初始化和任务切换时,对应任务的选对应任务的选 择字装入择字装入LDTR,CPU据此指向据此指向GDT的一的一 项项,得到该任务的描述符得到该任务的描述符,并装入描述符寄并装入描述符寄 存器中存器中.4).386有有3张描述符表张描述符表:全局全局:GDT(1个个)局部局部:LDT 中段中段:IDT(1个个):为中断设计为中断设计,指向指向256个中断子程序个中断子程序 入口地址的中断描述符入口地址的中断描述符.三张表均放在三张表均放在M中中,其位置分别由其位置分别由 GDTR,LDTR,IDTR定义定义定义了系统中使用的所有段定义了系

24、统中使用的所有段GDTRGDTBASELIMITLDT描述符描述符LDTRLDT基址基址界限界限32位位16位位LDT描述符高速缓冲描述符高速缓冲寄存器(不可见)寄存器(不可见)三三.80386CPU的内部寄存器的内部寄存器:2).TR:TR:任务寄存器任务寄存器(16(16位位)存放选择当前任务所对应的任务状态段存放选择当前任务所对应的任务状态段TSSTSS的的 1616位选择字位选择字.TR-64 TR-64位的局部描述符寄存器位的局部描述符寄存器.存放存放16位的选择符,指示全局描述符表中任务状态段位的选择符,指示全局描述符表中任务状态段(TSS)描述符的位置)描述符的位置当选择符装入当

25、选择符装入TR时,相应的时,相应的TSS描述符自动从存储器中读描述符自动从存储器中读出并装入任务描述符缓冲寄存器。该描述符定义了一个出并装入任务描述符缓冲寄存器。该描述符定义了一个称为称为任务状态段(任务状态段(TSS)的存储块。每个任务都有)的存储块。每个任务都有TSS,TSS包含启动任务所必需的信息。包含启动任务所必需的信息。TSS最大最大64K字节字节释义释义:1).TSS是一种固定的段是一种固定的段(104个字节个字节),包含了一个任务包含了一个任务 的全部信息以及允许嵌套任务联系的信息的全部信息以及允许嵌套任务联系的信息.2).TSS描述符描述符所描述的所描述的TSS段不包含数据和代

26、码段不包含数据和代码,而而 是包含了任务的状态和联系是包含了任务的状态和联系,以使某个任务可以被以使某个任务可以被 其他任务所嵌套其他任务所嵌套.对应对应 3).TR用于任务切换用于任务切换.TR 64位的任务描述符高速缓存位的任务描述符高速缓存.4).系统为每个任务设置了一个系统为每个任务设置了一个TSS,其描述符放在其描述符放在GDT 中中.其描述符包含任务壮态段的位置其描述符包含任务壮态段的位置,大小和特权级大小和特权级,当前是否忙碌当前是否忙碌,不忙是否有效等不忙是否有效等.5).任务切换时任务切换时,将将TSS装入装入TR中中,CPU查到查到GDT,得到得到 TSS描述符描述符,即将

27、任务的即将任务的LDT段的有关信息装入段的有关信息装入 高速缓存中高速缓存中-任务切换完成任务切换完成.GDTRGDTBASELIMITTSS描述符描述符TR基址基址界限界限32位位16位位TSSTSS描述符高速缓冲描述符高速缓冲寄存器(不可见)寄存器(不可见)三三.80386CPU的内部寄存器的内部寄存器:63 52 51 20 19 012位属性位属性 32位线性基地址位线性基地址 20位界限值位界限值12位属性位属性 32位线性基地址位线性基地址 20位界限值位界限值16位选择子位选择子16位选择子位选择子15 0LDTRTR另另:有有2个测试寄存器和个测试寄存器和8个调试寄存器个调试寄

28、存器.11-2 地址总线和数据总线地址总线和数据总线一一.地址总线地址总线:32位位,提供内存和提供内存和I/O端口的物理地址端口的物理地址.引脚引脚:A31A2,BE3 BE2 BE1 BE0 1).由由4字节允许符字节允许符BE3BE0给出给出A1,A0的有效值的有效值:A1 A0 BE3 BE2 BE1 BE0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 2).内存内存=4KMB,即即232,故寻访内存需故寻访内存需32条条AW;3).I/O地址空间为地址空间为64KB,即即216,故寻访外设需故寻访外设需16 条条AW.11-2 地址总线和数据总线地址总线和

29、数据总线二二.数据总线数据总线:32条条,双向双向,引脚引脚D31D0.1).数据总线宽度控制数据总线宽度控制BS16引脚的功能引脚的功能:BS16=0 DB的宽度为的宽度为16位位,BS16=1 DB的宽度为的宽度为32位位.2).4字节允许符字节允许符BE3BE0决定数据传送的宽度决定数据传送的宽度:BE0=0,表示表示D7D0数据线的数据有效数据线的数据有效;BE1=0,表示表示D8D15数据线的数据有效数据线的数据有效;BE2=0,表示表示D16D23数据线的数据有效数据线的数据有效;BE3=0,表示表示D24D31数据线的数据有效数据线的数据有效;即可选择一个字节即可选择一个字节,一

30、个字和一个双字一个字和一个双字.注注:BE3BE0依据依据A1,A0地址信号来产生地址信号来产生,故也称为故也称为 地址选通信号地址选通信号.3).数据传送总线周期数据传送总线周期:13个个.超标量和流水线的概念超标量和流水线的概念超标量:配置多个执行部件和指令译码电路,能同超标量:配置多个执行部件和指令译码电路,能同时执行多条指令。时执行多条指令。Pentium由三个执行单元组织而成,一个执行浮点指由三个执行单元组织而成,一个执行浮点指令,另两个执行整型指令(令,另两个执行整型指令(U流水线和流水线和V流水线),流水线),这意味着这意味着Pentium同时可以执三条指令同时可以执三条指令超标

31、量超标量2.3 2.3 实模式软件体系结构实模式软件体系结构1.寄存器结构寄存器结构CR0的第的第0位叫保护允许位位叫保护允许位(PE),PE用于对实模式和保护模式进行用于对实模式和保护模式进行切换,切换,PE置置0时选择实模式运行时选择实模式运行指令指针指令指针IP段寄存器段寄存器CS,DS,SS,ES,FS,GS通用寄存器通用寄存器EAX,EBX,ECX,EDX变址寄存器变址寄存器ESI,EDI指针寄存器指针寄存器EBP,ESP标志寄存器标志寄存器FLAGS控制寄存器控制寄存器0(CR0)3.段寄存器和存储器分段段寄存器和存储器分段1MB的存储空间被分成段,每段的存储空间被分成段,每段64

32、KB段是可独立寻址的存储器部分段是可独立寻址的存储器部分6个段寄存器:保存个段寄存器:保存16位段基址位段基址CS 代码段代码段SS 堆栈段堆栈段DS 数据段数据段ES 附加段附加段FS 数据段数据段FGS数据段数据段G4.通用寄存器在程序执行时暂时保存中间结果。在程序执行时暂时保存中间结果。在进行算术运算和逻辑运算时,通用寄存器任何一个在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数都可以作为源操作数或目的操作数A 累加器寄存器累加器寄存器B 基址寄存器基址寄存器C 计数寄存器计数寄存器D 数据寄存器数据寄存器5.指针和变址寄存器指针和变址寄存器ESP,EBP,E

33、SI,EDI作通用数据寄存器用作通用数据寄存器用作指针和变址寄存器作指针和变址寄存器用时为用时为16位,位,SP,BP,SI,DIP.529.I/O地址空间地址空间Pentium存储器和存储器和I/O地址空间是分离的。地址空间是分离的。I/O地址空间安放地址空间安放I/O接口,如打印机、终端接口接口,如打印机、终端接口PentiumI/O地址空间为地址空间为64KB,地址范围地址范围0000-FFFF每一个地址对应一个字节宽的每一个地址对应一个字节宽的I/O端口端口1.立即数寻址立即数寻址操作数作为立即数直接存在指令中,可为字节、字、操作数作为立即数直接存在指令中,可为字节、字、双字双字MOV

34、 ECX,12345678H低地址低地址CS段段操作码操作码78H56H34H12H78H56H34H12HECX2.寄存器寻址寄存器寻址操作数包含在指令规定的操作数包含在指令规定的8位、位、16位、位、32位寄存器位寄存器中中MOV ECX,EDX78H56H34H12HECX78H56H34H12HEDX寄存器寻址由于无需从存储器中取操作数,故执行寄存器寻址由于无需从存储器中取操作数,故执行速度快速度快2.4.1 描述符与描述符表描述符与描述符表2.4.2 保护模式的寄存器模型保护模式的寄存器模型2.4.3 保护模式下存储器寻址保护模式下存储器寻址2.4.4 虚拟虚拟8086模式模式2.4

35、 保护模式软件体系结构保护模式软件体系结构1.特权级特权级(PL,Privilege Level):2.4.1 描述符与描述符表描述符与描述符表任务:程序在执行时的一种情况,是一个动态的概念任务:程序在执行时的一种情况,是一个动态的概念应用程序应用程序常规扩展常规扩展系统服务系统服务内核内核级别级别0级别级别1级别级别2级别级别32.描述符描述符(Descriptor):描述存储器段的属性的一个描述存储器段的属性的一个8字节的数据结构。字节的数据结构。包括段描述符、系统段描述符和门描述符三种类包括段描述符、系统段描述符和门描述符三种类型。型。F段描述符:段描述符:用于描述代码、数据用于描述代码

36、、数据和堆栈段(用户段)和堆栈段(用户段)01234567段界限段界限015位位段基址段基址023位位访问权限字节访问权限字节段界限段界限1619位位段基址段基址2431位位DG0 AVLF段描述符:段描述符:G位位(粒度位粒度位):G=0,段的长度以字节为单位段的长度以字节为单位段长最大段长最大1M字节字节G=1,段的长度以页段的长度以页(4K字节字节)为长度单位为长度单位段长最大段长最大1M 4K=4G字节字节D位:位:D=0,16位指令方式位指令方式 D=1,32位指令方式位指令方式AVL位:位:AVL=0,程序不可使用本段,程序不可使用本段 AVL=1,程序可以使用本段,程序可以使用本

37、段访问权限字节访问权限字节01234567APDPLSEED CR WP位:位:P=0,段不在内存中,段不在内存中 P=1,段在内存中,段在内存中DPL:取值:取值03,确定段的,确定段的 特权级特权级S位:位:S=1,段描述符,段描述符A位:位:A=0,段尚未被访问,段尚未被访问 A=1,段已被访问,段已被访问访问权限字节访问权限字节01234567APDPLSEED CW R13位表示段的类型位表示段的类型E=0,为数据段,为数据段ED=0,段向上扩展,段向上扩展 为数据段为数据段ED=1,段向下扩展,段向下扩展 为堆栈段为堆栈段W=0,数据段只读,数据段只读W=1,数据段可写,数据段可写

38、E=1,为代码段,为代码段C=0,忽略描述符特权级,忽略描述符特权级C=1,遵循描述符特权级,遵循描述符特权级R=0,代码段不可读,代码段不可读 即只执行即只执行R=1,代码段可读,代码段可读F系统段描述符:系统段描述符:格式与段描述符基本相同,主要差别格式与段描述符基本相同,主要差别访问权限字节访问权限字节01234567PDPLS TYPE S=0,系统段描述符,系统段描述符TYPE为为4个字节,共有个字节,共有16种类型。其中:种类型。其中:2,LDT9,TSS,非忙,非忙B,TSS,忙,忙5,任务门,任务门C,调用门调用门E,中断门,中断门F,陷阱门,陷阱门 D位无定义位无定义(D=0

39、)F门描述符:门描述符:偏移量:相对于段基地址的偏移量,偏移量:相对于段基地址的偏移量,为目标代码的入口点为目标代码的入口点 选择符:用于确定段基地址选择符:用于确定段基地址字计数:从调用者堆栈中复制到被字计数:从调用者堆栈中复制到被 调用者堆栈中的参数个数,调用者堆栈中的参数个数,参数为参数为32位位属于系统段描述符属于系统段描述符门提供了将程序控制转给服务程门提供了将程序控制转给服务程序入口的手段。有任务门、序入口的手段。有任务门、调用调用门、门、中断门、陷阱门中断门、陷阱门4种类型种类型F门描述符:门描述符:DPL为任务允许访问该门的最低为任务允许访问该门的最低特权级特权级访问权限字节格

40、式与访问权限字节格式与系统段描述符相同系统段描述符相同例:判断描述符所描述的段的性质例:判断描述符所描述的段的性质01234567P=1,S=0,DPL=2TYPE=2,为,为DLT因此为一个特权级为因此为一个特权级为2的的DLT,已经在,已经在内存中内存中该该DLT的基址为的基址为00200000H,界限为界限为00300HG=0,段的长度为字节长度,段的长度为字节长度AVL=0该段不可被程序访问该段不可被程序访问2.4.2 保护模式的寄存器模型保护模式的寄存器模型0151631015015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDXIPCSDSSSE

41、SFSGSSPBPSIDIESPEBPESIEDIFLAGS实模式的寄存器模型实模式的寄存器模型1.全局描述符表寄存器全局描述符表寄存器GDTR在物理存储器地址空间中定义全局描述符表在物理存储器地址空间中定义全局描述符表GDT0151647GDTRBASELIMITBASE指示指示GDT在物理存储器中开始的位置在物理存储器中开始的位置LIMIT规定规定GDT的界限的界限LIMIT有有16位,从而位,从而GDT最大最大65536个字节,个字节,能够容纳能够容纳65536/8=8192个描述符个描述符例:例:(GDTR)=001000000FFFH,求,求GDT在物理存储在物理存储器中的起始地址,

42、结束地址,表的大小,表中可以器中的起始地址,结束地址,表的大小,表中可以存放多少个描述符?存放多少个描述符?解:解:GDT的起始地址为的起始地址为00100000H结束地址为结束地址为00100000H+0FFFH=00100FFFH表的大小为表的大小为0FFFH+1=4096字节字节表中可以存放表中可以存放4096/8=512个描述符个描述符2.中断描述符表寄存器中断描述符表寄存器IDTR在物理存储器地址空间中定义中断描述符表在物理存储器地址空间中定义中断描述符表IDT0151647IDTRBASELIMIT由于由于Pentium只能支持只能支持256个中断和异常,因此个中断和异常,因此LI

43、MIT最大为最大为0FFFHIDT中的描述符类型为中断门中的描述符类型为中断门3.局部描述符表寄存器局部描述符表寄存器LDTR16位的位的LDTR并不直接定义并不直接定义LDT,它只是一个指向,它只是一个指向GDT中中LDT描述符的选择符。描述符的选择符。如果如果LDTR中装入了选择符,相应的描述符将从中装入了选择符,相应的描述符将从GDT中中读出并装入局部描述符表高速缓冲寄存器。将该描述读出并装入局部描述符表高速缓冲寄存器。将该描述符装入高速缓冲寄存器就为当前任务创建了一个符装入高速缓冲寄存器就为当前任务创建了一个LDTLDT定义任务用到的局部存储器地址空间定义任务用到的局部存储器地址空间G

44、DTRGDTBASELIMITLTD描述符描述符LDTRLDT基址基址界限界限32位位16位位LDT描述符高速缓冲描述符高速缓冲寄存器(不可见)寄存器(不可见)4.控制寄存器控制寄存器CR0的低的低5位组成机器状态字(位组成机器状态字(MSW):):PE:0实模式;实模式;1保护模式保护模式MP:1(系统有数学协处理器系统有数学协处理器)EM:0TS:任务切换,切换任务时自动设置任务切换,切换任务时自动设置ET:1(协处理器的类型协处理器的类型)存储器分页机制:存储器分页机制:CR0中的中的PG位设置为位设置为1,表示允许分页,表示允许分页CR3包含页目录基址,指向页目录的开头包含页目录基址,

45、指向页目录的开头如果发生缺页,则将发生缺页的地址保存在如果发生缺页,则将发生缺页的地址保存在CR2中中5.任务寄存器任务寄存器TR存放存放16位的选择符,指示全局描述符表中任务状态段位的选择符,指示全局描述符表中任务状态段(TSS)描述符的位置)描述符的位置当选择符装入当选择符装入TR时,相应的时,相应的TSS描述符自动从存储器中描述符自动从存储器中读出并装入任务描述符缓冲寄存器。该描述符定义了读出并装入任务描述符缓冲寄存器。该描述符定义了一个称为一个称为任务状态段(任务状态段(TSS)的存储块。每个任务都有)的存储块。每个任务都有TSS,TSS包含启动任务所必需的信息。包含启动任务所必需的信

46、息。TSS最大最大64K字节字节GDTRGDTBASELIMITTSS描述符描述符TR基址基址界限界限32位位16位位TSSTSS描述符高速缓冲描述符高速缓冲寄存器(不可见)寄存器(不可见)6.段选择符寄存器段选择符寄存器保护模式下保护模式下CS、DS、SS、ES、FS、GS寄存器称为寄存器称为段选择符寄存器,其值不再是基址而是选择符,它段选择符寄存器,其值不再是基址而是选择符,它选择一个定义存储器段大小和属性的描述符选择一个定义存储器段大小和属性的描述符012315TIRPL索引索引RPL:申请特权级申请特权级03TI:表指示符表指示符0使用全局描述符表使用全局描述符表1使用局部描述符表使用

47、局部描述符表索引:选择描述符表入口索引:选择描述符表入口例:设例:设LDT的基址为的基址为00120000H,GDT的基址的基址为为00100000H,(CS)=1007H,那么:,那么:请求的特权级是多少请求的特权级是多少段描述符位于段描述符位于GDT中还是中还是LDT中中段描述符的地址是什么段描述符的地址是什么解:解:(CS)=1007H=0001 0000 0000 0111B RPL=3,申请的特权级为,申请的特权级为3TI=1,描述符位于,描述符位于LDT中中描述符相对于描述符相对于LDT基址的偏移量为基址的偏移量为0001000000000B 8=512 8=4096=1000H段

48、描述符的地址为段描述符的地址为00120000H+1000H=00121000H7.标志寄存器标志寄存器EFLAGSIOPL:输入输入/输出特权级输出特权级VM:虚拟虚拟8086模式标志模式标志2.4.3 保护模式下存储器寻址保护模式下存储器寻址实模式存储器寻址实模式存储器寻址保护模式的存储器管理单元使用保护模式的存储器管理单元使用48位存储器指针:位存储器指针:16位选择符,位选择符,32位偏移量位偏移量选择符放在段选择符寄存器中选择符放在段选择符寄存器中偏移量放在其他用户可访问的偏移量放在其他用户可访问的32位寄存器中位寄存器中偏移量偏移量32位,因此段的大小可以达到位,因此段的大小可以达

49、到4G字节字节48位存储器指针称为虚拟地址(逻辑地址)位存储器指针称为虚拟地址(逻辑地址)16位选择符中有位选择符中有14位用于存储器段选择,虚拟空间中位用于存储器段选择,虚拟空间中可容纳可容纳16384个段,每段最大个段,每段最大4GB,因而虚拟地址空,因而虚拟地址空间最大间最大64TB1.虚拟地址空间的分段虚拟地址空间的分段在分段模型中,在分段模型中,64TB虚拟地址空间被分为虚拟地址空间被分为32TB的全的全局存储器地址空间和局存储器地址空间和32TB局部存储器地址空间局部存储器地址空间全局段全局段0全局段全局段8192局部段局部段0局部段局部段8192虚拟地址空间虚拟地址空间64TB局

50、部地址空间局部地址空间32TB全局地址空间全局地址空间32TB2.段式地址转换段式地址转换虚拟地虚拟地址指针址指针选择符选择符偏移量偏移量段段描述符描述符数据段数据段操作数操作数DSEAX数据段描述符高速缓数据段描述符高速缓冲寄存器(不可见)冲寄存器(不可见)CSDSSSESFSGS程序员可见程序员可见访访问问权权限限访访问问权权限限基基址址界界限限01920515263段描述符高速缓冲寄存器(不可见)段描述符高速缓冲寄存器(不可见)例:假设虚拟地址为例:假设虚拟地址为0100:00000200H,禁止分页。如,禁止分页。如果描述符中读出的段基址为果描述符中读出的段基址为00030000H,那

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服