3.高级计算机体系结构_Intel86体系结构2

上传人:dja****22 文档编号:243014347 上传时间:2024-09-13 格式:PPT 页数:37 大小:186.50KB
返回 下载 相关 举报
3.高级计算机体系结构_Intel86体系结构2_第1页
第1页 / 共37页
3.高级计算机体系结构_Intel86体系结构2_第2页
第2页 / 共37页
3.高级计算机体系结构_Intel86体系结构2_第3页
第3页 / 共37页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,保护模式下寻址过程示意图:,选择子 偏移量,15 0 15 0,+,23 0,描述子表基地址寄存器,存贮器,被访单元,描述子表,.,描述子,描述子,描述子,.,虚地址(选择子, 偏移量),高级计算机系统结构 第二章,Intel,系列处理器80286,1,3、描述子和选择子,(1) 数据/代码段描述子,描述子是一个数据结构, 用于描述,所对应的(或所描述的),那个存储段的访问属性。,访问属性主要包括:,一个存储段可以被哪一特权级的任务访问,该段的大小,该段的读写/可执行权限,该段的基地址,高级计算机系统结构 第二章,Intel,系列处理器80286,2,I,ntel,公司保留,P DPL S TYPE A BASE,2316,BASE,150,Limit (,段限),6,4,2,0,7,5,3,1,15 0,数据/代码段描述子的结构,BASE,2316,BASE,150,:,Limit (,段限):,描述子所描述的那个段的段基地址,该段的最后一个字节的偏移量, 指明该段的大小。,高级计算机系统结构 第二章,Intel,系列处理器80286,3,A:,所描述的段是否被访问,该位与时钟相结合, 可进行段淘汰,该段已被访问过, 则,A,1,该段未被访问过, 则,A,0,S:,描述子类型,0 系统描述子(如门描述子/任务状态段描述子),1 数据代码段描述子,I,ntel,公司保留,P DPL S TYPE A BASE,2316,BASE,150,Limit (,段限),6,4,2,0,7,5,3,1,15 0,高级计算机系统结构 第二章,Intel,系列处理器80286,4,TYPE:,由三位构成, 即数据段(,E, ED, W),或代码段(,E, C, R)。,P:,0 该描述子所描述的段不在物理空间,1 该描述子所描述的段在物理空间,DPL:,规定可以访问该描述子所描述的那个段的任务的最低特权级。,I,ntel,公司保留,P DPL S TYPE A BASE,2316,BASE,150,Limit (,段限),6,4,2,0,7,5,3,1,15 0,高级计算机系统结构 第二章,Intel,系列处理器80286,5,若该段为代码段, 则,E=1,C,R,0 非一致性代码段,访问和被访问代码段特权级相同,1 一致性代码段,访问和被访问代码段特权级可以不同,0 代码段只能执行, 不能读,1 代码段可以执行, 也可以读,E=1,若该段为数据段,则,E=0,ED,0: 段向上生长, 则要求偏移量,段限,1: 段向下生长, 则要偏移量,段限,W,0: 数据段只能读, 不能写,1: 数据段可读、可写,E=0,高级计算机系统结构 第二章,Intel,系列处理器80286,6,根据描述子中的内容和定义, 将保护模式下的寻址过程描述为:,得到描述子,由程序给出,访问描述子表,特权级检查,段限检查,读写/执行权限检查,提供目标段基地址,虚地址(选择子, 偏移量 ),物理地址,高级计算机系统结构 第二章,Intel,系列处理器80286,7,系统提供三个寄存器存放描述子表的基地址, 称为,描述子表基地址寄存器, 分别为:,LDTR,23 0,GDTR,23 0,IDTR,23 0,局部描述子表基地址寄存器,全局描述子表基地址寄存器,中断描述子表基地址寄存器,程序如何访问描述子? (描述子的地址在哪里?,),高级计算机系统结构 第二章,Intel,系列处理器80286,8,选择子,指明使用该选择子的任务的特权级,指明所要访问的描述子在描述子表中的偏移量,指明访问全局描述子表还是访问局部描述子,偏 移 量,TI RPL,15 3 2 1 0,RPL:,请求特权级, 用以表示使用该选择子的任务的特权级,当前运行的任务的特权级称为当前特权级,CPL。,一般有:,RPL= CPL,高级计算机系统结构 第二章,Intel,系列处理器80286,9,TI:,区分访问全局描述子还是局部描述子:,1 访问局部描述子,TI=,0 访问全局描述子,偏移量,D,15,D,3,:,所要访问的描述子在描述子表中的偏移量(以描述子表基地址寄存器的内容为基地址,)。,高级计算机系统结构 第二章,Intel,系列处理器80286,偏 移 量,TI RPL,15 3 2 1 0,偏移量(13位)低位补3个0形成16位偏移量,描述子表基地址寄存器,描述子,描述子,描述子,.,描述子,描述子表,10,某一任务,.,描述子表,描述子,选择子 段偏移量,段基地址,段偏移量,某一存储段,.,.,LDTR,高级计算机系统结构 第二章,Intel,系列处理器80286,描述子和选择子的引出, 可将保护模式下存储段的访问过程描述如下:,11,一个描述子对应一个存储段, 段的最大空间64,K,因此可访问的最大存储空间(虚地址空间)为:,虚存空间的计算,可以访问的描述子的数量为2,13,=8,K (,个描述子,),TI,位区分了全局描述子或局部描述子, 因此可以访问的描述子的总数为: 2,8,K=16K (,=2,14,个,),16,K,64K=1000M,高级计算机系统结构 第二章,Intel,系列处理器80286,12,加快访问速度,选择子,CS,DS,SS,ES,15 0,访问权限 段基地址,BASE,段限,Limit,47 40 39 16 15 0,隐,Cache,隐,Cache,的内容随着段寄存器的修改而被重新装入,这种装入操作对程序员透明。,高级计算机系统结构 第二章,Intel,系列处理器80286,13,关于“数据/代码段描述子”寻址过程例,假设一个32位的虚地址:,005,E 0100,选择子 偏移量,选择子 005,E=0,0,0,0,0,0,0,0,0,1,0,1,1 1 10,TI=1,访问,局部描述子,RPL=2,低位补3个0, 为0058,H,作为访问,LDT,的偏移量,为什么低位补3个0?,每个描述子为8个字节, 意味着选择子中的偏移量每增减一个单位, 应指向另一个描述子(偏移8个字节), 因此偏移量的,D,2,D,1,D,0,保持为0, 增减一个单位均在,D,3,上进行, 以保证偏移8字节。,高级计算机系统结构 第二章,Intel,系列处理器80286,14,假设,LDTR=100000H,第一步:,第二步:,将描述子表基地址,LDTR+,选择子偏移量,=100000,H+0058H=100058H,由物理地址100058,H,访问并得到相应的描述子, 检查对该描述子访问的合法性(比较,CPL,和,DPL),假设,DPL=3, 则,CPL=RPL=2,DPL(,数值上), 访问是合法的。,高级计算机系统结构 第二章,Intel,系列处理器80286,15,第三步:,第四步:,由描述子中的访问权字段(,TYPE),检查本次访问的访问权限, 假设通过检查, 将虚地址中的偏移量(即0100,H),与描述子中的段限,Limit,进行比较, 以确定访问是否越界, 假设描述子中给出的段基地址位046000,H, Limit=2000H,有偏移量0100段限2000,H,未越界。,形成物理地址046000+0100=046100,H,以此访问存储单元的物理地址, 得到所需要的数据。,高级计算机系统结构 第二章,Intel,系列处理器80286,16,(2) 系统描述子之一: 门描述子,用途,用于代码段之间的转移控制和保护, 以及任务之间的切换:,第一: 控制同一个任务内不同代码段之间的转移,第二: 控制任务之间的切换,类别及格式,四种类型:,控制同一个任务内不同代码段之间的转移,控制任务之间的切换,调用门、中断门、自陷门,、,任务门,高级计算机系统结构 第二章,Intel,系列处理器80286,(不用于描述某个存储段的属性),17,调用门 中断门 自陷门,主程序调用子程序、转移指令,中断引起的代码段转移,自陷引起的代码段转移,区别仅在于调用中断门时要将,IF,置0, 调用自陷门则不管,IF,标志, 调用门/中断门/自陷门的应用范围,高级计算机系统结构 第二章,Intel,系列处理器80286,18,若是任务门, 则表示,TSS,描述子的选择子,仅调用门使用,该偏移量对任务门无效,门描述子的格式,P,0 该描述子内容无效,1 该描述子内容有效,TYPE,4: 调用门,5: 任务门,6: 中断门,7: 自陷门,Intel,公司保留,P DPL 0 0 TYPE,字计数(5位),目标代码段描述子的选择子,目标代码段的偏移量,DPL:,与数据代码段中的,DPL,相同,高级计算机系统结构 第二章,Intel,系列处理器80286,19,对任务门,Intel,公司保留,P DPL 0 0 TYPE,TSS,描述子的选择子,无效,任务门与任务状态段描述子一起, 控制任务之间的切换。,高级计算机系统结构 第二章,Intel,系列处理器80286,20,通过中断门/自陷门实现代码段转移调用的过程:,中断类型码,8(作为访问,IDT,表的选择子), 结合,IDTR,访问中断描述子表,IDT,得到中断门/自陷门,由中断门,或自陷门,得到服务程序代码段描述子的,选择子,以及代码段的,偏移量,由该选择子,访问服务程序代码段描述子,由代码段描述子中提供的,基地址,和中断/自陷门中的代码段,偏移量,得到,服务程序入口地址,高级计算机系统结构 第二章,Intel,系列处理器80286,21,通过调用门实现代码段调用的过程,程序中给出调用门描述子的选择子结合,LDTR,或,GDTR,访问调用门描述子,得到目标代码段描述子的,选择子,以及代码段的,偏移量,由该选择子,访问并得到目标代码段描述子,由代码段描述子中提供的,基地址,和调用门中的代码段,偏移量,转移到,目标代码段,高级计算机系统结构 第二章,Intel,系列处理器80286,22,1 流程中的地址转换过程, 只要访问描述子, 都需要作的保护性检查, 比如仅当,CPL,DPL,时转换过程才能继续往下进行。,说明:,在保护模式下, 同一任务的不同代码段, 也有不同的特权级, 意味着主调代码段与被调代码段可能处于不同的特权级, 因此需要指明目标代码段特权级, 并由此实现这种同一任务特权级的改变。,2 为什么需要两次访问描述子(第一次是访问门描述子, 第二次是访问目标代码段描述子),高级计算机系统结构 第二章,Intel,系列处理器80286,23,为实现特权级的改变, 通过 “门”这样一个描述子中提供目标代码段描述子的选择子, 该选择子的低,2,位(,RPL),指明目标代码段的特权级。,假设:,源代码段的特权级为,CPL1;,转换过程如下图所示:,目标代码段的特权级为,CPL2;,高级计算机系统结构 第二章,Intel,系列处理器80286,24,CALL,选择子 偏移量,源代码段,CPL1,CPL1,与“门”中的,DPL,比较, 判明是否满足,CPL1,DPL,D,1,D,0,(RPL),即为,CPL2,与目标代码段描述子中的,DPL,比较, 如果满足,CPL2,DPL,目标代码段2,CPL2,DPL,目标代码段描述子的选择子,目标代码段偏移量,中断/自陷/调用门,目标代码段描述子,DPL,目标代码段基地址,25,3,中断/自陷/调用门的使用场合,:,同级特权级之间转移,可以使用也可以不使用“门”。不使用“门”意味着在指令中,直接引用目标代码段描述子的选择子,来访问目标代码段描述子。即:,选择子,描述子,代码段1,代码段2,高级计算机系统结构 第二章,Intel,系列处理器80286,源代码段,目标代码段,26,向更低特权级转移,可以使用也可以不使用调用门, 但不管使用与否, 都只能发生在,RET,或,IRET,两种情况。可以直接引用目标代码段描述子的选择子, 此时,该选择子中的,RPL,将成为新的,CPL2。,向更高级转移,向更高特权级转移, 必须“门”来实现。即:,门描述子,目标代码段描述子的选择子,代码段1,代码段2,目标代码段描述子,高级计算机系统结构 第二章,Intel,系列处理器80286,27,任务门可在,LDT、GDT,和,IDT,任何一个表中。,4 任务门的存放位置,如果将任务门放在,IDT,表中, 即可以通过访问,IDT,表来访问任务门, 则可以达到由于中断而发生任务切换的目的。,任务之间的切换过程不同于代码段之间的转移过程, 任务切换还涉及其它描述子的支持, 即,任务状态段描述子,。,高级计算机系统结构 第二章,Intel,系列处理器80286,28,(3) 系统描述子之二: 任务状态段描述子,任务状态段, 多个任务运行过程例(按优先级剥夺方式),Task2,Task1,Task3,t,0,t,5,t,1,t,2,t,3,t,4,优先级,高,低,在每一个时间点(,t,0,、 t,1,、 t,2,、 t,3,、 t,4,、,t,5,)都存在:,(设置新任务状态),或者,(保护前一任务状态, 切换到新任务状态),或者,(恢复前一任务状态,),高级计算机系统结构 第二章,Intel,系列处理器80286,29,显然,TSS,中的内容随着任务执行的推进不断发生变化。,TSS,的内容主要包括:,任务状态段(,Task State Segment,TSS):,用于存放在任务被切换时刻的处理器现场的一个,存储段,。每个任务都有一个,TSS。,由此可知, 系统应为每一个任务提供一种保存任务状态的场所, 在,Intel80,86,系统中称为,任务状态段。,高级计算机系统结构 第二章,Intel,系列处理器80286,30,DS,SS,CS,ES,DI,SI,BP,SP,AX,BX,CX,DX,FR,在各特权层的堆栈指针等,任务状态段,TSS,任务之间的切换必须通过访问,TSS,来进行, 以实现,CPU,状态切换,高级计算机系统结构 第二章,Intel,系列处理器80286,31,任务状态段描述子,Intel,公司保留,P DPL 0,段基地址,2316,段基地址,150,段限,与“门”的,P,位含义相同,段基地址即为,TSS,的基地址。,为什么任务状态段描述子不提供任务状态段的偏移量?,高级计算机系统结构 第二章,Intel,系列处理器80286,32,任务切换可由,JMP、CALL,指令或中断(,INT),指令, 异常或外部中断引起。,JMP、CALL,指令可以直接引用一个任务状态段, 也可以先引用一个,GDT,或,LDT,中的任务门, 再由任务门的选择子引用任务状态段描述子, 进而访问任务状态段而实现任务转换。,中断类的指令则必须先从,IDT,中引用任务门,再由任务门中,TSS,的选择子引用状态任务段描述子而实现任务转换。,IRET,指令通过引用,IDT,中的任务门而返回到原任务中去。,任务切换的引起,高级计算机系统结构 第二章,Intel,系列处理器80286,33,(1) 直接切换,任务切换方式,同特权级之间或向更低的特权级切换, 可采用直接切换。,直接切换不使用任务门, 直接引用任务状态段描述子的选择子来访问,TSS,以实现任务切换。,如下图所示:,任务1,TSS2,描述子的选择子,TSS2,描述子,TSS2,引用,任务2,访问,描述子中提供,TSS2,的基地址,高级计算机系统结构 第二章,Intel,系列处理器80286,34,间接切换则可以向任何特权级切换。,从引用任务门开始, 由任务门提供目标任务状态段描述子的选择子,。,(2) 间接切换,切换过程如下图所示:,任务1,任务门选择子,任务门,保护处理器现场,TSS1,TSS2,描述子,的选择子,访问,TSS2,描述子,得到,若直接切换,则从此处开始,TSS2,任务2,访问,按,TSS2,布置处理器现场,高级计算机系统结构 第二章,Intel,系列处理器80286,35,小结,虚地址保护: 保证复杂多任务系统的可靠的运行。,各种私用和公用数据段,.,各种系统任务和库函数,.,任务1,含多个,任务段,任务,N,任务2,.,高级计算机系统结构 第二章,Intel,系列处理器80286,36,实现:, 系统任务与应用任务之间隔离与保护, 应用任务与应用任务之间隔离与保护, 任务与数据之间的隔离与保护,高级计算机系统结构 第二章,Intel,系列处理器80286,37,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!