[IT-计算机]80X86处理器结构chapter2-mpu32-3.ppt
《[IT-计算机]80X86处理器结构chapter2-mpu32-3.ppt》由会员分享,可在线阅读,更多相关《[IT-计算机]80X86处理器结构chapter2-mpu32-3.ppt(94页珍藏版)》请在三一办公上搜索。
1、第二章 80 x86微处理器的结构,罗文坚中国科大 计算机学院,本章内容,8086微处理器的结构80286微处理器的结构32位微处理器(386、486、Pentium、Pentium Pro、)的结构80386以上,以80386为主,32位微处理器的结构(80386以上),保护模式下的内存管理,x86内存管理:保护模式下的内存管理保护模式下的存储管理包含两大机制地址转换机制保护机制任务切换,逻辑地址、线性地址和物理地址,逻辑地址,即虚拟地址,这是应用程序设计人员进行编程时要用到的地址。“段选择子:偏移量”:由一个16位的段选择子和32位偏移量两部分组成。段选择子放在段寄存器中;偏移量也称为偏移
2、地址、有效地址。物理地址:指内存芯片阵列中每个阵列对应的唯一的地址。32位地址线可直接寻址4GB内存单元。线性地址:沟通逻辑地址与物理地址的桥梁。32位微处理器芯片内的分段部件将逻辑地址空间转换成32位的线性地址。,二级虚拟物理地址转换,什么情况下,偏移地址和线性地址一致?,什么情况下,线性地址和物理地址一致?,段描述子(Descriptor),段描述子/段描述符:描述存储器“段”的属性的一个8字节的数据结构。为了实现分段管理,32位微处理器把有关段的信息都放在段描述子数据结构中,并把系统中所有的描述子编成表,放在内存中,以便硬件查找。由段选择子可以找到相应的段描述子。两种类型的描述子代码或数
3、据段描述子:用于描述代码、数据和堆栈段。系统段描述子:任务状态段等。局部描述子表LDT也作为一种系统段来看待。,段描述子的分类,段描述子(Descriptor),段基址:32位;段限:20位。G:GranularityG=0,段的长度以字节为单位,段长最大1M字节。G=1,段的长度以页(4K字节)为长度单位,段长最大1M 4K=4G字节。,段描述子(Descriptor),D/B:本质:D=1,32位代码/数据段;D=0,16位代码/数据段段。对可执行代码段(D):指示指令引用的有效地址和操作数的缺省长度。D=1为32位地址、32位或8位操作数;D=0为16位地址、16位或8位操作数。对堆栈段
4、(B):指示堆栈指针的大小,ESP/SP。对向下扩展的数据段(B):指示段的上限,4G/64K。AVL:Available for use by system software,提供给系统软件使用(80386对该位的使用未作规定)。P:P=0,段不在内存中;P=1,段在内存中。,段描述子(Descriptor),DPL:描述子特权级,取值03,确定段的特权级,为任务允许访问该段的最低特权级。S:S=1表示该描述子为代码或数据段描述子;S=0,表示该描述子为系统段描述子。Type:段的类型(与段描述子类型相关)。,代码或数据段描述子的类型,系统段描述子的类型,TYPE为4个字节,共有16种类型。
5、其中:,2,LDT9,TSS,非忙B,TSS,忙,5,任务门C,调用门E,中断门F,陷阱门,系统段描述子的类型,例:系统段描述子所描述的段的性质,段基址为0000 0000H,段限为FFFFFHG=1,段的长度以4K为单位属性位D=1,表示32位段P=1,DPL=00,S=1,TYPE=10(可读可执行代码段),因此一个特权级为0的代码段已经在内存中,描述子表由描述子顺序排列组成,占内存一定的区域,由系统地址寄存器(GDTR、IDTR、LDTR)指示其在物理存储器中的位置和大小。,描述子表有:全局描述子表GDT中断描述子表IDT局部描述子表LDT,描述子表,全局描述子表,一个系统只能有一个全局
6、描述子表(GDT)。全局描述子表:定义了能被系统中所有任务公用的存储分段,可以避免对同一系统服务程序的不必要的重复定义与存储。通常GDT中包含了操作系统使用的代码段、数据段、任务状态段以及系统中各个LDT所在段的描述子。注意:中断服务程序所在段的段描述子在IDT中。GDT本身不是一个段;它是一个在线性地址空间的数据结构。,在线性地址空间中定义全局描述子表GDT,BASE:指示GDT在存储器中开始的位置(线性地址)LIMIT:规定GDT的界限,LIMIT有16位,从而GDT最大65536个字节能够容纳 65536/8=8192个描述子(213),全局描述子表寄存器GDTR,例:(GDTR)=00
7、10 0000 0FFFH,求GDT在存储器中的起始地址,结束地址,表的大小,表中可以存放多少个描述子?,解:GDT的起始地址为0010 0000HGDT的结束地址为0010 0000H+0FFFH=0010 0FFFH表的大小为0FFFH+1=4096字节表中可以存放4096/8=512个描述子,全局描述子表寄存器GDTR,中断描述子表IDT,中断描述子表(Interrupt Descriptor Table,IDT)最多包含256个中断服务程序的位置的描述子。系统所使用的每种类型的中断在IDT中必须有一个描述子表项。IDT的表项通过中断指令、外部中断和异常事件来访问。为容纳Intel保留的
8、32个中断描述子,IDT的长度至少应有256Byte(328byte)。与GDT相似,IDT也不是一个段。,在线性地址空间中定义中断描述子表IDT,IDT中的描述子类型为门描述子(属于系统描述子)Pentium只能支持256个中断和异常。,中断描述子表寄存器IDTR,IDTR和IDT的关系,中断门陷阱门任务门,局部描述子表,局部描述子表(Local Descriptor Table,LDT)包含了与某个任务相关联的段描述子。在设计操作系统时,通常一个任务有一个独立的LDT。LDT提供了将一任务的代码段、数据段与操作系统的其余部分相隔离的机制。LDT是一个LDT类型的系统段,其段描述子保存在GD
9、T中。,一个任务一个LDT。因此,系统中有多个LDT。LDT定义任务用到的局部存储器地址空间。,16位的LDTR并不直接定义LDT,它只是一个指向GDT中LDT描述子的段选择子。如果LDTR中装入了段选择子,相应的段描述子将从GDT中读出并装入LDTR的段描述子Cache。,局部描述子表寄存器LDTR,GDTR,GDT,BASE,LIMIT,LDT描述子,LDTR与GDT表、LDT表的关系,OS根据LDT使用情况为LDTR赋值,全局和局部地址空间,保护模式下CS、DS、SS、ES、FS、GS寄存器称为段选择子寄存器,其值不再是段基址而是选择子,它从描述子表中选择一个定义存储器段大小和属性的描述
10、子。FS/GS中存放新的两个附加数据段的基址/选择子。,段选择子寄存器,段描述子寄存器,程序员不可见,段描述子寄存器,称为段描述子高速缓冲寄存器(或段描述子Cache),段选择子与段描述子的关系,例:设LDT的基址为0012 0000H,GDT的基址为00100000H,(CS)=1007H,请问:请求特权级是多少?段描述子位于GDT中还是LDT中?段描述子的地址是什么?,解:(CS)=1007H=0001 0000 0000 0111B RPL=3,请求特权级为3。TI=1,描述子位于LDT中。描述子相对于LDT基址的偏移量为:0001 0000 0000 0B8=512 8=4096=10
11、00H段描述子的地址为:0012 0000H+1000H=00121000H,例题,段基址 段限和属性,48位虚拟地址,GDT/LDT,选择子,偏移量,段描述子,段描述子Cache(不可见),被选中的段,操作数,段式地址转换(不分页),段寄存器,段式地址转换(不分页),例:假设虚拟地址为0100:0000 0200H,禁止分页。如果描述子中读出的段基址为0003 0000H,那么操作数的物理地址是什么?,解:将此虚拟地址转换成物理地址,即基地址+偏移量=00030000H+00002000H=0003 2000H,Segmentation,分段机制的使用,IA-32体系结构支持多种系统设计,例
12、如:Basic Flat Model(基本的平展模型)Protected Flat Model(保护的平展模型)Multi-Segment Model(多段模型),基本的平展模型,基本的平展模型:最简单的存储模型,操作系统和应用程序可以访问一个连续的、不分段的地址空间。对系统程序员和应用程序员隐藏了分段机制。,保护的平展模型,保护的平展模型与基本的平展模型的不同点:段限设置为仅仅包括物理内存存在的地址范围。,多段模型,二级虚拟物理地址转换,分段法:将程序分成可变长的若干段。分页法:将程序分成若干相同大小的页,每页长4KB。,如果不允许分页,那么分段机构确定的32位线性地址即为物理地址;如果允许
13、分页,就要将32位线性地址通过两级表格结构转换成物理地址,第一级是页目录表,第二级是页表。二级分页方案,分页机制,分页机制(1),Linear Address Translation(4-KByte Pages),分页机制(2),Linear Address Translation(4-MByte Pages),分页机制(3)页目录表项,页表基址:页表的起始地址是4K的整数倍,因此32位地址的低12位总为0,用高20位表示即可,即页目录表项中给出的是页基址的高20位。P:为1指示页表在内存中;为0指示页表不在内存。R/W:读/写;U/S:User/Supervisor。,U/S R/W 特权级
14、3 特权级02 0 0 无 读/写 0 1 无 读/写 1 0 只读 读/写 1 1 读/写 读/写,分页机制(4)页目录表项,PWT:Page-level write-through Flag,为1表示write-through caching,为0表示write-back caching。PCD:Page-level cache disable flag,为1,不允许Cache操作;为1,禁止Cache操作。A:Accessed Flag,访问时置1。PS:Page size Flag,为0表示4KB/页;为1表示4 MB/页。G:Global Flag,指示全局页;Pentium Pro
15、增加。Avail.:OS专用的三位,通常记录使用情况。,页目录表长4KB,包含最多1024个页目录项,每个页目录项4字节。,页表长4KB,包含最多1024个页表项,每项4字节。,页面的起始地址为4K的整数倍,所以32位页面地址只用高20位。,与页目录表项不同的标志位:D位(Dirty):对所涉及页面进行写操作时,D置1。页目录表项中恒为0。第7位为保留位(Reserved),设置为0。页目录表项中为PS标志。,分页机制(5)页表,例:对于线性地址00000000H00000FFFH,将选中页目录项0和页表项0。若页表项0包含的地址为00100000H,则线性地址00000000H00000FF
16、FH对应的物理地址为 00100000H00100FFFH,分页机制(6),页转换高速缓冲存储器TLBTLB为一个Cache,其中保存了32个最近使用的页转换地址。若访问同样的存储区域,则不必再访问内存中的页目录表和页表,可以加快程序的运行。,分页机制(6)TLB,二级虚拟物理地址转换,分段机制和分页机制之间有什么关系?,分段与分页,段页映射,Intel Architecture并不强制段、页边界的对齐。一个页可能包含一个段的结束和另一个段的开始。反之亦然。存储管理软件可以强制边界对其以简化设计。一个方便的方法:每一个段对应一个页表。,保护模式的子模式。本质:保护方式的任务之一严格地说,不能算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IT-计算机 IT 计算机 80 X86 处理器 结构 chapter2 mpu32
链接地址:https://www.31ppt.com/p-2719201.html