12第八章intel系列高档微处理器_第1页
12第八章intel系列高档微处理器_第2页
12第八章intel系列高档微处理器_第3页
12第八章intel系列高档微处理器_第4页
12第八章intel系列高档微处理器_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1第八章Intel系列

高档微处理器

随着微机应用领域的扩大和应用技术的深入,微处理器也不断地向前发展,最新的INTEL微处理器的主频率已经达到3GHz以上。本章简要介绍具有代表性的Intel主流CPU的发展过程,重点介绍80386的存储器分段和分页管理。X86处理器寻址方式演变现代计算机技术的开山鼻祖图灵提出一个思想模型:一台可以计算的机器,由一个控制器、一个读写头和一条无限长的带子组成。带子相当于存储器,它被划分为大小相同的格子,每个格子上可以写一个字母,读写头可以在带子上随意移动,控制器可以控制读写头读取带子上的字母。这个思想是当代冯诺依曼计算机体系的理论鼻祖。它带来的“数据连续存储和选择读取”思想是目前所有计算机运行背后的灵魂。计算机体系结构中的核心问题之一就是如何有效地进行内存寻址。24位、8位机的寻址1971年,4位处理器4004,可寻址640字节;1972年,8位处理器8008,可寻址16k字节;1974年,8位处理器8080,8位寄存器,两个8位寄存器的组合,可寻址64kByte内存地址;共同的特点是:没有“段”的概念,使用绝对地址,无法重定位316位处理器1978年,8086,Intelx86王朝的开始,由于引入“段”的概念,实现了内存寻址的第一次飞跃;寄存器16位,总线宽度16位,如何寻址1M空间?解决办法:分段。逻辑地址由段加偏移量组成,逻辑地址到物理地址的转换实现了16位内存地址到20位物理地址的“映射”;段式内存管理带来了显而易见的优势:程序的地址不再需要硬编码(实际地址),错误易定位,支持更大的内存地址。4X86处理器寻址方式演变HistoryLate70's:8086,RealModeandhasnoprotection.1982:80286,RealModeand16bProtectedMode.1985:80386,RealModeand32bProtectedMode.5保护模式1982年80286问世,具有24位地址线,内存寻址16MB;引入了内存管理新概念:保护模式。该模式下内存段的访问受到限制,访问内存时不能直接从段寄存器获得段的起始地址,而需要经过额外的转换和检查,从此你不能随意存取数据,从而可以实现“保护”。6保护模式为了和过去兼容,80286寻址有2种模式:实模式和保护模式。实模式下与8086相同,可访问1MB空间,保护模式下可访问16MB空间,保护模式下的段的空间仍为64kB,程序规模仍受限制。很快被80386取代。732位处理器--803861985年,80386,32位处理器,数据总线和地址总线都是32位,可寻址4GB。80386在段寄存器的基础上构筑保护模式,使段的范围扩大到4GB,一下子解放了软件工程师,软件功能和规模迅速上升。从16位的8086到32位的80386,在寻址方式上实现了“实模式”到“保护模式”的进步,处理器结构体系发生了质的变化。之后的486、Pentium等均属相同的体系结构,统称为IA32(32BitIntelArchitecture)。864位处理器2006,core2,36位地址线,64GB寻址;2008,corei7,40位地址线,1TB寻址;9TheRingarchitecture:80386hasfourrings.Eachringisassociatedwithdifferentprivileges.Ring0isthemostprivilegedring,andtheOSkernelusuallyresideswithinthislayer.Eachobjectandsubjectisassociatedwithalabel,calledring.Thislabelisusedasthesubjectinaccesscontrolpolicies.Whetherasubjectcanaccessanobjectisdecidedbythemandatoryaccesscontrolpolicythatareimplementedinthehardware.101112

8.180286微处理器一、概述

80286是Intel公司于1982年推出的,它是更加先进的16位处理器,内部操作和寄存器均是16位的。1、芯片内集成了13.5万个晶体管,68只引脚,具有独立的16条数据线和24条地址线(16MB),内部时钟频率为8MHZ到10MHZ。(8086为5MHz)2、增加了存储器管理和虚地址保护机构,对存储器采用分段管理,每段最大64KB,并支持虚拟存储器。133、80286有两种基本工作方式:实地址方式和虚地址保护方式。在实地址方式下寻址能力为1MB,相当于8086;在虚地址保护方式下,可为每个任务提供1GB的虚拟地址空间,并将之映射到16MB的物理地址空间中。

虚拟存储器------硬盘 物理存储器------实际内存4、改进了流水结构,加快了处理速度。5、80286保证了所有软件向下的兼容性,

8086的程序可以在80286运行。14

二、80286的基本结构指令部件IU总线部件BU执行部件EU地址部件AU15

80286的功能结构

80286与8086一样,分为执行部件EU和总线接口部件BIU两大部分。

BIU细分为地址部件AU,指令部件IU和总线部件BU。其中IU是新增的部件,作用是取出BU预取代码队列中的指令进行译码,然后放到指令队列中,加快指令的执行。1617

8.280386微处理器一、概述1、1985年10月Intel公司推出了80386,集成了32万个晶体管,片内集成了存储管理部件和保护机构,内部操作和寄存器都是32位的。2、芯片有132只引脚,数据线、地址线各32条3、80386存储管理部件可进行段页式存储管理,支持虚拟存储器。18虚拟存储器虚拟存储器——将用户的逻辑地址与物理地址相分离只有部分要执行的程序需要调入内存中;因此逻辑地址空间可以远大于物理地址空间;允许多个过程共享同一地址空间;提高过程生成效率虚拟存储器的实现分段分页194、80386有三种工作方式:实地址工作方式:就是一个极快的8086虚地址工作方式:80386可寻址4GB(232)物理地址空间和64TB虚地址空间。存储器分段,每段最大4GB,最多16384个段。虚拟8086方式:可同时执行8086的操作系统及其应用程序,以及80386的操作系统和80286、386的应用程序。205、1986年后Intel推出了多种型号的80386:

80386SX,外部数据总线只有16位

80386DX,标准8038680386SL,低功耗、节能芯片

80386DL,低功耗、节能型的80386DX80386EX,基于80386SX,但地址总线是26位,且低功耗、节能型。21二、80386的基本结构1、80386的功能结构

80386由执行单元EU、存储管理部件MMU和总线接口部件BIU组成。

2223⑴EU部件由指令部件和执行部件组成,包括预取、译码、执行三个部件。⑵MMU分为分段部件和分页部件。分段部件对逻辑地址空间进行管理,分页部件对物理地址空间进行管理。⑶BIU负责与存储器、I/O端口传送数据。

80386的预取、译码、执行、分段、分页、总线接口这6个部件可以并行操作,从而加快指令执行速度。242、80386的寄存器结构

80386共有7类32个寄存器,分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试寄存器和测试寄存器。2526

(1)通用寄存器共有8个32位寄存器,它们由8086的16位寄存器扩展而来,它们的低16位与8086使用方法相同。EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI2728

指令指针寄存器EIP由8086的IP寄存器扩展而来。标志寄存器EFLAGS是由80286的标志寄存器FLAGS扩展而来,增加了2个标志。VM是虚拟模式标志,RF是重新启动标志。

31181716150EFLAGSVMRF80286FLAGSEIPIP(2)指令指针和标志寄存器29

6个16位的段寄存器,CS、DS、SS、ES、FS、GS其中FS,GS是新加的附加数据段寄存器。描述符高速缓冲寄存器共64位,包括32位的段基址,20位的段限和12位的其他信息。80386线性地址由段基地址和段内偏移地址相加得到。(3)段寄存器和段描述符高速缓冲寄存器30(4)系统地址寄存器和系统段寄存器:系统地址寄存器有全局描述符表寄存器GDTR、中断描述符表寄存器IDTR。

系统段寄存器有局部描述符表寄存器LDTR和任务寄存器TR。这些寄存器保存相应的描述符表的地址。

(5)控制寄存器:4个32位的控制寄存器CR0,CR1(保留),CR2,CR3,它们保存全局性的机器状态。

(6)调试寄存器:共8个排错寄存器DR0-DR7。

(7)测试寄存器:2个32位的测试寄存器TR6和TR7,用于控制转换后援缓冲器中的RAM测试。31一、描述符与描述符表二、保护模式的寄存器模型三、保护模式下存储器寻址四、虚拟8086模式80386保护模式存下的存储管理机制32存储管理机制在保护方式下,80386采用了和8086完全不同的存储管理机制,这种存储管理机制的功能是:第一,实现虚拟存储;第二,支持多用户、多任务操作系统。虚拟存储技术:80386有32根地址线,这意味着能访问的物理存储器最大容量为4GB,如果大型软件的代码和数据的超过4GB,则因为不能装入存储器而无法运行。解决这个问题的方法就是使用虚拟存储技术。33保护功能为了能够支持多用户、多任务操作系统,80386的存储管理机制具有保护功能,这种保护功能表现在以下两个方面。第一,将虚拟存储空间划分为多个区域,不同任务的私有存储段(包括代码段、数据段和堆栈段)存放在各自的局部区域中,以实现任务之间的隔离,避免相互干扰和破坏;第二,对存储段的访问需要进行权限判别,只有符合权限要求的访问才被允许。34LDT在80386中,任务之间的隔离是通过为每个任务建立自己的局部描述符表(LDT)来实现的,LDT中的每个段描述符记录了一个私有存储段的起始地址、长度等信息,一个任务通过LDT访问自己私有的存储段,其它任务无法访问该任务的LDT,因而无法访问该任务私有的存储段。35特权级

特权级(PL,PrivilegeLevel):任务:程序在执行时的一种情况,是一个动态的概念Pentium为每个任务提供了4种特权级,0级最高,3级最低应用程序常规扩展系统服务内核级别0级别1级别2级别33680386的存储管理机制用户程序在访问存储器时给出的是48位虚拟地址(或称为逻辑地址),由16位的段选择子(SegmentSelector)和32位偏移量两部分组成,段选择子由段寄存器给出,而偏移量则根据不同的寻址方式得到。3738分段部件根据段选择子可以得到要访问的存储段的32位段起始地址,与偏移量相加后得到了一个32位地址,这个地址因为是由小到大线性地排列的,因而又称为线性地址。在使用分页机制的情况下,线性地址并不是主存储器的物理地址,需要通过分页部件才能转换为物理地址。若不使用分页机制,则线性地址就是物理地址。39由逻辑地址到物理地址的映射如何根据程序给出的逻辑地址(虚拟地址)计算出要访问的存储器的物理(实)地址呢?这要通过一种叫描述符表的数组来进行变换。因此,首先要了解描述符和描述符表。什么是描述符?401.2描述符(Descriptor):描述存储器段的属性的一个8字节的数据结构。

描述符用来定义存储器的用法,以及控制转移和任务切换的功能。

段描述符通过GDT(全局描述符表)、LDT(局部描述符表)和IDT(中断描述符表)进行存储。一、描述符与描述符表4142非系统段描述符:用于描述代码、数据和堆栈段(用户段)01234567段界限0~15位段基址0~23位访问权限字节段界限16~19位段基址24~31位DG0AVL43非系统段描述符:G位(粒度位):G=0,段的长度以字节为单位段长最大1M字节G=1,段的长度以页(4K字节)为长度单位段长最大1M4K=4G字节D位:D=0,16位指令方式

D=1,32位指令方式AVL位:AVL=0,程序不可使用本段

AVL=1,程序可以使用本段44非系统段描述符:访问权限字节01234567APDPLSEEDCRWP位:P=0,段不在内存中

P=1,段在内存中DPL:取值0~3,确定段的特权级S位:S=1,段描述符A位:A=0,段尚未被访问

A=1,段已被访问45非系统段描述符:访问权限字节01234567APDPLSEEDCWR1~3位表示段的类型当E=0,为数据段ED=0,段向上扩展 为数据段ED=1,段向下扩展 为堆栈段W=0,数据段只读W=1,数据段可写当E=1,为代码段C=0,忽略描述符特权级C=1,遵循描述符特权级R=0,代码段不可读 即只执行R=1,代码段可读46系统段描述符:格式与段描述符基本相同,主要差别①访问权限字节01234567PDPLS

TYPES=0,系统段描述符TYPE为4个字节,共有16种类型。其中:2,LDT9,TSS,非忙B,TSS,忙5,任务门C,调用门E,中断门F,陷阱门②D位无定义(D=0)47门描述符:偏移量:相对于段基地址的偏移量,为目标代码的入口点选择符:用于确定段基地址字计数:从调用者堆栈中复制到被用者堆栈中的参数个数,参数为32位属于系统段描述符门提供了将程序控制转给服务程序入口的手段。有任务门、调用门、中断门、陷阱门4种类型48门描述符:访问权限字节格式与系统段描述符相同DPL为任务允许访问该门的最低特权级49例:判断系统段描述符所描述的段的性质01234567P=1,S=0,DPL=2TYPE=2,为LDT因此为一个特权级为2的LDT,已经在内存中该LDT的基址为00200000H,界限为00300HG=0,段的长度为字节长度AVL=0该段不可被程序访问501.3描述符表描述符表由描述符顺序排列组成,占内存一定的区域,由系统地址寄存器(GDTR、IDTR、LDTR)指示其在物理存储器中的位置和大小描述符表有三种:全局描述符表GDT中断描述符表IDT局部描述符表LDT51二、保护模式的寄存器模型520151631015015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGSCR0实模式的寄存器模型532.1全局描述符表寄存器GDTR,48位

每个操作系统都必须在物理存储器中定义唯一一个GDT,可被系统中的所有程序和任务使用。计算机开机后首先要准备GDT,然后将GDT的基址和大小(界限)信息送入GDTR。GDTR长度为48位。0151647GDTRBASELIMITBASE指示GDT在物理存储器中开始的位置LIMIT规定GDT的界限LIMIT有16位,从而GDT最大65536个字节,能够容纳65536/8=8192个描述符54例:(GDTR)=001000000FFFH,求GDT在物理存储器中的起始地址,结束地址,表的大小,表中可以存放多少个描述符?2.1全局描述符表寄存器GDTR解:GDT的起始地址为00100000H结束地址为00100000H+0FFFH=00100FFFH表的大小为0FFFH+1=4096字节表中可以存放4096/8=512个描述符552.2中断描述符表寄存器IDTR,48位在物理存储器地址空间中定义中断描述符表IDT0151647IDTRBASELIMIT由于Pentium只能支持256个中断和异常,因此LIMIT最大为0FFFHIDT中的描述符类型为中断门562.3局部描述符表寄存器LDTR,16位LDT定义任务用到的局部存储器地址空间一个系统可以有多个任务,每个任务有且只有一个独立的局部描述符表LDT,存放与该任务相关的描述符,包括代码段和数据段的描述符,以及除中断门以外的门描述符。16位的LDTR并不直接定义LDT,它只是一个指向GDT中LDT描述符的选择符如果LDTR中装入了选择符,相应的描述符将从GDT中读出并装入局部描述符表高速缓冲寄存器。将该描述符装入高速缓冲寄存器就为当前任务创建了一个LDT。!!!57GDTRGDTBASELIMITLDT描述符LDTRLDT基址界限32位16位LDT描述符高速缓冲寄存器(不可见)58GDT与LDT的关系59一个系统只有一个GDT,可以有多个LDT;一个GDT最多可存放8192个描述符;所有的LDT最多可存放8192个描述符;一个任务可以访问一个GDT和一个LDT;602.4控制寄存器612.4控制寄存器CR0的低5位组成机器状态字(MSW):PE: 0——实模式;1——保护模式MP: 1(系统有数学协处理器)EM: 0TS: 任务切换,切换任务时自动设置ET: 1(协处理器的类型)PG:设置为1,表示允许分页62存储器分页机制:CR3包含页目录基址,指向页目录的开头如果发生缺页,则将发生缺页的地址保存在CR2中2.4控制寄存器632.5任务寄存器TR存放16位的选择符,指示全局描述符表中任务状态段(TSS)描述符的位置当选择符装入TR时,相应的TSS描述符自动从存储器中读出并装入任务描述符缓冲寄存器。该描述符定义了一个称为任务状态段(TSS)的存储块。每个任务都有TSS,TSS包含启动任务所必需的信息。TSS最大64K字节64GDTRGDTBASELIMITTSS描述符TR基址界限32位16位TSSTSS描述符高速缓冲寄存器(不可见)652.6段选择符寄存器保护模式下CS、DS、SS、ES、FS、GS寄存器称为段选择符寄存器,其值不再是基址而是选择符,它选择一个定义存储器段大小和属性的描述符012315TIRPL索引RPL:申请特权级

0~3TI:表指示符0——使用全局描述符表1——使用局部描述符表索引:选择描述符表入口662.6段选择符寄存器例:设LDT的基址为00120000H,GDT的基址为00100000H,(CS)=1007H,那么:①请求的特权级是多少②段描述符位于GDT中还是LDT中③段描述符的地址是什么解:(CS)=1007H=0001000000000111B①RPL=3,申请的特权级为3②TI=1,描述符位于LDT中③描述符相对于LDT基址的偏移量为0001000000000B8=5128=4096=1000H段描述符的地址为00120000HH=00121000H672.7标志寄存器EFLAGSIOPL:输入/输出特权级VM:虚拟8086模式标志68三、保护模式下存储器寻址实模式存储器寻址693保护模式下存储器寻址保护模式的存储器管理单元使用48位存储器指针:16位选择符:32位偏移量选择符放在段选择符寄存器中偏移量放在其他用户可访问的32位寄存器中偏移量32位,因此段的大小可以达到4G字节48位存储器指针称为虚拟地址(逻辑地址)16位选择符中有14位用于存储器段选择,虚拟空间中可容纳16384个段,每段最大4GB,因而虚拟地址空间最大64TB703.1虚拟地址空间的分段在分段模型中,64TB虚拟地址空间被分为32TB的全局存储器地址空间和32TB局部存储器地址空间全局段0全局段8192局部段0局部段8192虚拟地址空间64TB局部地址空间32TB全局地址空间32TB713.2段式地址转换虚拟地址指针GDT/LDT选择符偏移量段描述符数据段描述符高速缓冲寄存器(不可见)数据段操作数DSEAX723.2段式地址转换CSDSSSESFSGS程序员可见访问权限基址界限01920515263段描述符高速缓冲寄存器(不可见)段寄存器:共80位,16位可见,64位不可见。733.2段式地址转换例:假设虚拟地址为0100:00000200H,禁止分页。如果描述符中读出的段基址为00030000H,那么操作数的物理地址是什么?解:将此虚拟地址转换成物理地址为基地址+偏移量=00030000HH=00032000H743.3分页机制分段法:将程序分成可变长的若干段分页法:将程序分成若干相同大小的页,每页长4KB如果不允许分页,那么分段机构确定的32位线性地址即为物理地址;如果允许分页,就要将32位线性地址通过两级表格结构转换成物理地址,第一级是页目录,第二级是页表7576773.3分页机制——页目录页目录长4KB,包含最多1024个页目录项;每个页目录项4字节,含有下级页表的基地址,格式为:0123783.3分页机制——页目录页表的起始地址是4K的整数倍,因此32位地址的低12位总为0,用高20位表示即可。U/SR/W特权级3特权级0~200无读/写

01无读/写

10只读读/写

11读/写读/写793.3分页机制——页表页表长4KB,包含最多1024个页面项,每项4字节765432100DA00U/SR/WP页面地址0~3位OS专用0页面地址4~11位页面地址12~19位0123页面的起始地址为4K的整数倍,所以32位页面地址只用高20位D位:对所涉及页面进行写操作时,D置1803.3分页机制整个存储器有一个页目录,它最多有1024个页目录项,每个页目录项可含有1024个页面项——共有10241024=1M个页面,每页面4KB,存储器大小正好4GB目录偏移量页表偏移量页偏移量31222112110线性地址格式813.3分页机制线性地址页目录目录偏移量页目录项页面操作数页CR3页表页表项823.3分页机制TLB——转换后援缓冲器TLB为一个Cache,其中保存了32个最近使用的页转换地址。若访问同样的存储区域,则不必再访问页目录和页表,可以加快程序的运行。例:对于线性地址00000000H~00000FFFH,将选中页目录项0和页表项0。若页表项0包含的地址为00100000H,则线性地址00000000H~00000FFFH对应的物理地址为00100000H~00100FFFH83例180386中,指令MOVEAX,[EBX];EBX=3010H,GDTR=08A000009FFF,LDTR=3201H,DS=2005H,CS=8005LDT描述符=300BA2400000FFFFH,数据段描述符=6200D2000000FFFFH,试分析:1)GDT地址范围;2)LDT描述符地址范围;3)LDT基址与界限;4)代码段描述符地址范

温馨提示

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

评论

0/150

提交评论