清华大学微机原理32位微处理器_第1页
清华大学微机原理32位微处理器_第2页
清华大学微机原理32位微处理器_第3页
清华大学微机原理32位微处理器_第4页
清华大学微机原理32位微处理器_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、1微型计算机及应用22 2 4 48038680386微处理器微处理器3232位微处理器的地址总线和数据总线位微处理器的地址总线和数据总线 32 32位微处理器的工作方式位微处理器的工作方式5 5 80486 80486微处理器微处理器PentiumPentium微处理器微处理器 3 31 13 32位微处理器的问世,是微处理器发展过程中的又一个里程碑。目前,32位微处理器的型号很多,Intel公司推出的主要类型有80386,80486和Pentium微处理器。 80386微处理器是为多用户和多任务操作系统而设计的,具有32位寄存器和数据通道,支持32位地址和数据类型。CPU片内有存储器管理部

2、件,可实现分段和分页管理,使微处理器地址有4GB(千兆字节)物理存储器和64MMB(万亿字节)虚拟存储器,以及有4级保护功能,因此程序不能访问段所规定区域以外的单元,数据也不能写入到禁止的段里。另外,其指令流水线,在高速缓冲存储器(cache)和高速总线带宽的作用下,缩短了指令执行时间及增加了系统的数据吞吐能力。4 80486微处理器是在80386基础上又增加了浮点运算部件和高速缓冲部件,其性能和速度又提高了一大步。 Pentium处理器是一种最先进的32位微处理器。它是一种双ALU流水线工作的CPU,每一个时钟周期可执行两条指令,提供了强有力的工作站和服务器功能。Pentium,及微处理器又

3、增添了多媒体处理功能,所以,Pentium微处理器也就最适用于多媒体计算机和网络计算机中。 这3种32位微处理器的工作原理类同,都属于80X86系列。它们的软件也与我们前面所学的16位微处理器兼容。为了学习方便,我们先从80386微处理器开始,讲述32位微处理器的工作原理。随后,再来介绍80486和Pentium微处理器。 本章着重讲解32位微处理器与16位微处理器在结构和工作原理上的区别,重点论述32位微处理器的实地址方式、保护方式和虚拟8086方式的机理,存储器的分段和分页管理以及32位微处理器的寻址方法。使同学对32位微处理器有一个基本的认识。5 1.1 803861.1 80386微处

4、理器微处理器 80386微处理器的内部结构流程图如下图所示。这是一种采用流水线工作方式的结构,内部分为中央处理部件(CPU)、存储管理部件(MMU)和总线接口部件(BIU)3部分,图中各部分用虚线分开。 中央处理部件由指令部件和执行部件组成。指令部件包含两个指令队列,其一是指令预取队列,用来暂存从存储器中预取出来的指令代码。其二是已译码指令队列;这些预取指令经预译码后,送入已译码指令队列中等待执行。如果在预译码时发现是转移指令,可提前通知总线接口部件去取目标地址中的指令,取代原预取队列中的顺序指令。执行部件中包含32位的算术运算单元ALU,8个32位通用寄存器组。为了加快乘、除法运算速度,设置

5、了一个64位的桶形移位器和乘除硬件。6 1.1 803861.1 80386微处理器微处理器7 存储管理部件由分段部件和分页部件组成,存储器采用段、页式结构。页是机械划分的,每4KB为一页,程序或数据均以页为单位进入实存。存储器按段来组织,每段包含若干个页,段的最大容量可达4 000MB。一个任务最多可包含16K个段,所以80386可为每个任务提供64TB的虚拟存储空间。为了加快访问速度 ,系统中还设置有高速缓冲存储器(cache),构成完整的cache主存辅存的3级存储体系。 总线接口部件通过数据总线、地址总线和控制总线负责与外部取得联系,包括访问存储器预取指令,读写数据和访问IO端口读写数

6、据等全部操作及其他控制功能。1.1 803861.1 80386微处理器微处理器8 80386微处理器中有通用寄存器、段寄存器、指令指针和标志寄存器、系统地址寄存器、控制寄存器、调试寄存器以及测试寄存器等,如下图所示。1.2 803861.2 80386的寄存器的寄存器9 1. 通用寄存器 80386中设置8个32位通用寄存器,如下图所示。它们的用法与8086相同,也可当作8位、16位寄存器用。若作32位寄存器使用,前面必须加字符E。1.2 803861.2 80386的寄存器的寄存器10 2. 段寄存器 80386中设置6个16位段寄存器和6个64位描述符寄存器。其中CS,SS,DS和ES段

7、寄存器与8086中的段寄存器完全相同。在实地址方式下,使用方法也与8086相同;在保护虚地址方式下,用来存放虚地址指示器中的段选择字。当段选择字置入段寄存器时,CPU会把相应的描述符中的段起始地址、段界限和段属性等自动的置入描述符寄存器,以供地址变换时使用。 FS和GS寄存器是为减轻段寄存器负担而设置的,可由用户将FS,GS定义为其他数据段。1.2 803861.2 80386的寄存器的寄存器11 3. 指令指针和标志寄存器 利用32位的指令指针(EIP) 可直接寻址4000MB的实存空间。标志寄存器的位结构如下图所示。其低端12位与8086标志寄存器完全相同,高端又设置了4个新的标位。其中,

8、IOPL字段为特权标志,用来定义当前任务的特权层。NT位为任务嵌套标志,NT=1,表示当前执行的任务嵌套于另一任务中,否则NT=0。VM位是虚拟方式标志,如果VM位置“1”,表示CPU是工作在虚地址保护方式。RF位是恢复标志位,当RF位置“1”,表示下边指令中的所有调试故障都被忽略,当成功地执行完每条指令时,RF将被置位。1.2 803861.2 80386的寄存器的寄存器12 4. 控制寄存器 80386中设置4个32位的控制寄存器R0R3。CR0的低16位为机器状态字,目前只用低4位。其中,D0位是保护允许位(PE),用来启动CPU进入保护虚地址方式。PE=0,表示CPU当前处于实地址方式

9、;PE =1,表示CPU当前已进入保护虚地址方式。D3位是任务切换位(TS)、D2位是仿真协处理器位(EM)及D1位是监督协处理器位(MP),这3位的组合功能见表5-1。系统可用LMSW及SMSW指令把机器状态字取出和存入存储器,来改变其功能。可使用MOV指令对CR0进行读写操作。 1.2 803861.2 80386的寄存器的寄存器13 CR1保留给将来开发的Intel微处理器使用;CR2包含一个32位的线性地址,指向发生最后一次页故障的地址;CR3包含页目录表的物理基地址,因为80386中的页目录表总是在页的整数边界上,每4KB为一页,所以CR3的低端12位保持为“0”。5. 系统地址寄存

10、器 80386中设置4个专用的系统地址寄存器,它们是GDTR、IDTR、LDTR和TR。GDTR和IDTR长48位,LDTR和TR长16位。GDTR用来存放全局描述符表的基地址(32位)和限值(16位);IDTR用来存放中断描述符表的基地址(32位)和限值(16位);LDTR用来存放局部描述符表的段选择字;TR用来存放任务状态段表的段选择字。 1.2 803861.2 80386的寄存器的寄存器14 6. 调试寄存器 80386设置8个32位的调试(DEBUG)寄存器DR0DR7。DR7用来设置断点;DR6用来保留断点状态。DR0DR3可用来设置4个断点;DR4,DR5保留待用。7. 测试寄存

11、器 80386设置5个32位测试寄存器TR3TR7。 TR3TR5用于片内Cache测试,TR6TR7用来控制分页部件的测试操作。 1.2 803861.2 80386的寄存器的寄存器151 1 4 48038680386微处理器微处理器3232位微处理器的地址总线和数据总线位微处理器的地址总线和数据总线 32 32位微处理器的工作方式位微处理器的工作方式5 5 80486 80486微处理器微处理器PentiumPentium微处理器微处理器 3 32 216 32位地址总线提供内存和I/O端口的物理地址,用30条地址线A2A31加上4个字节允许符BE0BE3来实现。这4个字节允许符给出了两

12、个最低有效地址位和传送宽度编码。32位微处理器的物理寻址空间有4GB,即232字节;而I/O地址空间只有64KB,即216字节。所以,A2A31用来寻址到一个4个字节的单元,而用BE0BE3来标识在当前传送操作中这4个字节单元的处理方法。对于在执行计算机内存的读和写周期时,4个字节允许符BE0BE3用来确定数据总线上哪些字节是有效驱动的: BE0使最低8位数据线D0D7有效,BE1使次低8位数据线D8D15有效, BE2使次高8位数据线D16D23有效,BE3使最高8位数据线D24D31有效。这样,字节允许符BE0BE3直接决定32位数据总线上传送数据的宽度是14个字节。2.1 地址总线17

13、2.22.2 数据总线数据总线 32位数据总线是32条三态双向数据线D0D31。D0D7为最低字节,D24D31为最高字节。可以使用BS8和BS16引脚输入控制信号来改变数据总线的宽度,将数据传送到8位或16位设备中去。使32位微处理器能直接与32位、16位或8位总线相连接。CPU每个时钟周期都采样这些引脚,当接收到BS16或BS8信号时,只需要16位或8位总线有效。当同时接收到BS16或BS8信号时,只有8位总线有效。18 2.3 2.3 总线传送机制总线传送机制 32位微处理器的所有数据传送都是由一个或多个总线周期来完成。1字节、2字节或4字节的逻辑数据操作数可以在物理地址不对界的情况下传

14、送。在对界时的操作数只需要1个总线周期,而对于不对界时的操作数就需要2个或3个总线周期。 80X86地址信号的设计可以简化外部系统的硬件。高位地址由A2A31提供。低位地址则以BE0BE3形式提供了32位数据总线4个字节的选择信号。 当字节允许符参与数据传送时,在数据总线上就会有相应的数据总线字节被传送,如下表所示。19 有时,对多总线接口需要A0和A1这两个地址信号,可由上表得到右图所示的逻辑电路产生。 这样,由A2A31和BE0BE3就能形成了完整的32条地址线,如下表所示。2.3 2.3 总线传送机制总线传送机制202 2 4 48038680386微处理器微处理器3232位微处理器的地

15、址总线和数据总线位微处理器的地址总线和数据总线 32 32位微处理器的工作方式位微处理器的工作方式5 5 80486 80486微处理器微处理器PentiumPentium微处理器微处理器 1 13 321 32位微处理器有3种工作方式,即实地址方式(real mode),保护方式(protected mode)和虚拟8086方式(virtual 8086 mode)。它们运行和转换的关系如下图所示。当CPU进行启动或复位时首先进入实地址方式工作。修改控制寄存器CR0的机器状态字时,就可以由实地址方式转换到保护方式工作。再执行IRET指令或进行任务转换,就可由保护方式转移到虚拟8086方式工作

16、。任务转换功能是32位微处理器的特点之一,我们采用中断处理,就可再把CPU从虚拟8086方式返回到保护方式,以及实地址方式。22 32位微处理器实地址方式的工作原理与8086基本相同,其主要区别是32位微处理器能处理32位数据。 在保护方式下,CPU可访问232字节的物理存储空间,段长为232字节,而且还可以实施保护功能。分页功能是任选的。在保护方式中引入了软件可占用空间的虚拟存储器的概念。 虚拟8086方式是一种既能有效利用保护功能,又能执行8086代码的工作方式。CPU与保护方式下的原理相同,但程序指定的逻辑地址与8086 CPU解释相同。 由此可见,实地址方式主要是为微处理器建立保护方式

17、所必须的。 在实地址方式运行时,32位微处理器就像一个速度很快的8086 CPU,但是,对某些指令,它也可扩展为32位。保护方式提供了复杂的存储器管理和处理器的特权级能力。在保护方式运行时,可实现任务的切换,即切换到虚拟8086方式,允许执行8086的操作系统和应用程序,使32位微处理器实现多任务和多用户的目标。23 3.1 3.1 实地址方式实地址方式 32位微处理器复位或加电后即处于实地址方式。实地址方式具有与8086相同的特性,但允许访问32位寄存器组。其寻址机制、存储器访问范围和中断控制等都与8086相同。 在实地址方式中默认的操作数是16位数,段的大小是64KB。则32位有效地址必须

18、是比0000FFFFH小的值。为了使用32位寄存器和寻址方式必须用超越前缀。实地址方式寻址方法如下图所示。24 3.1 3.1 实地址方式实地址方式 实地址方式的首要目的是安排32位微处理器进入保护方式。在实地址方式运行时,最大的存储器访问范围是1MB。因此,仅A0A19地址线有效,A20A31地址线是高电平。 因为,在实地址方式运行时,不允许分页,物理地址是由相应的段寄存器内容:左移4位;再加上指定的偏移量而形成。这也与8086 CPU相同。在实地址方式中,存储器内保留两个固定的区域,即系统初始化区和中断向量表。FFFFFFF0HFFFFFFFFH为系统初始化保留区,C0000H003FFH

19、为中断向量表,对256级中断的每一级都有一个相应的4字节跳转向量。25 3.1 3.1 实地址方式实地址方式1. 32位微处理器的地址空间 32位微处理器有3种不同方式的地址空间:逻辑空间、线性空间和物理空间。它可以访问232字节的物理存储器,但它支持多个任务时,每个任务又能得到最大为246字节。这就出现了232字节的物理存储器如何去分配给多个任务的存储器管理问题。 物理存储器是CPU可访问的存储器空间,其容量由CPU的地址总线宽度所决定;而虚拟存储器是程序占有的空间,它的容量是由CPU内部结构所决定。 段部件将逻辑地址空间转换为32位的线性地址空间。如果不使用分页部件,则32位线性地址就对应

20、着物理地址。分页部件能将线性地址空间转换为物理地址空间。26 3.1 3.1 实地址方式实地址方式 对于8086 CPU来说,程序占有的存储器与CPU可以访问的存储器是一致的,其容量都是1MB。但对32位微处理器来说,物理存储器与虚拟存储器是有区别的,其容量也不同。用户在写程序时,其程序是存在磁盘里,因此可写246字节的程序。然而,在执行程序时,一定要把程序加载到物理存储器。但是,物理存储器的容量只有232字节。因此,存在着物理存储器的如何分配问题,即存储器管理。这种存储器管理是由操作系统进行,但32位微处理器内部固件就有支持存储器管理的功能。 我们在对程序进行编码时,不可能直接指定物理存储器

21、地址。这时,程序占有的是虚拟存储器地址。该地址是由程序指定,所以也叫做“逻辑地址”。27 3.1 3.1 实地址方式实地址方式 32位微处理器中程序占有的虚拟存储器如下图所示。它与8086 相同,程序可以是有多段构成的。下图只表示了一个有OMEGA变量的数据段。在程序中OMEGA的虚拟存储器地址由逻辑地址所决定。28 3.1 3.1 实地址方式实地址方式例如,要把AL寄存器内容传送到这个位置,就要采用如下指令: MOVFS:OMEGA,ALFS:OMEGA是变量名为OMEGA的虚拟存储器地址的逻辑地址格式。像8086 CPU那样,OMEGA是存入该段的起始地址到OMEGA位置的偏移地址中。在8

22、086 中,段寄存器FS是段基址;而在32位微处理器中,则是段选择字(在本节的“段寄存器”中还要讲解)。段选择字的作用是间接地来指定段。 所以,用程序来处理的所有地址都是以逻辑地址格式指定的虚拟地址。32位微处理器实际使用的FS寄存器是其中的高14位。因此,虚拟地址共可有46位,虚拟存储器地址的空间范围也就是246字节。29 3.1 3.1 实地址方式实地址方式 那么,32位微处理器对程序指定的46位虚拟地址又是怎样变换成为32位物理地址的呢?因为在32位微处理器里有了一个“分段部件”,如下图所示。它能把46位虚拟地址变换成为32位物理地址。我们也可用8086中逻辑地址变换为物理地址的方法来理

23、解32位微处理器的变换,如下图所示。30 3.1 3.1 实地址方式实地址方式我们也可用8086 CPU中逻辑地址变换为物理地址的方法来理解32位微处理器的变换,如下图所示。31 3.1 3.1 实地址方式实地址方式 在8086中,段寄存器的内容就是段的段基址,为了换算成起始地址,我们把它左移4位(16)即可。但对32位微处理器,用16位段选择字变换成为32位段起始地址就比较复杂。 32位CPU的选择字共有16位,除上述高14位作为虚拟存储器地址空间外,其最后两位是请求保护特权级(RPL)。这要在本课程的“保护方式”中进行讲解。32 3.1 3.1 实地址方式实地址方式2. 描述符表 在32位

24、微处理器里,由虚拟地址变换为物理地址时需要用描述符表。描述符表与程序一起保存在虚拟存储器中,程序执行时都要装入物理存储器。在描述符表里描述符记载的仅是程序段数,如下图所示。描述符长度由8个字节组成。它记载着段的起始地址、大小和属性。CPU根据段寄存器中的的选择字从描述符表选定一个描述符,读取存于其描述符中的起始地址等参数,进行虚拟地址到物理地址的变换。33 3.1 3.1 实地址方式实地址方式 为了读取描述符中的起始地址,一定先要知道描述符的物理地址。所以,在CPU中有描述符表寄存器,其中存有描述符表的起始地址。计算的方法如下:(选择字高13位)8+(描述符表的起始地址)=描述符的物理地址其中

25、,乘以8是因为描述符由8个字节组成。这样,利用选择字,从描述符表可以找到段的起始地址,也称为段的首地址。可以说,选择字的功能是用间接方法指定段的首地址,也可理解为选择字在确定段首址时,起到索引的作用。 如上所述,32位微处理器的程序在执行时需要有把虚拟地址(也称为逻辑地址)变换为物理地址的描述符表,而32位微处理器的作用是根据描述符表把程序指定的虚拟地址变换为物理地址。 虚拟地址(逻辑地址)用以下格式表示: 段寄存器:偏移地址 例如,FS:OMEGA所表示的地址是虚拟存储器中某位置的地址,不是实际物理地址,是虚拟地址。34 3.1 3.1 实地址方式实地址方式3.段寄存器 32位微处理器是根据

26、描述符表实现把虚拟地址变换成物理地址。访问描述符表就要花费时间,使CPU速度降低。为此,采用段寄存器来替代描述符表。 32位微处理器的段寄存器由16位选择字寄存器与64位(包括12位的段属性、32位的段首址和20位的界限即段长度)描述符寄存器构成,描述符寄存器中的内容是复制记载在描述符表中的描述符。因为只有CS,SS,DS,ES,FS和GS 6个选择字寄存器,所以也只能复制6条描述符。这样,就把虚拟地址变换成物理地址的访问存储器,变成为访问描述符寄存器,所以速度很快。 35 3.2 3.2 保护方式保护方式3.2.1 32位微处理器的保护机制 32位微处理器为了支持多任务操作系统,以4个特权级

27、来隔离或保护各用户及操作系统。不同等级的特权级不能访问所规定区域外的单元,此外,数据也不能写到禁止写入的段里。 32位微处理器提供的保护机制主要包括分段保护及分页保护。1. 特权级及特权级规则(1) 保护方式中的几个术语PL (protected level) 特权级。分为PL0(最高级)PL3(最低级) 4个特权级。RPL 请求特权级。RPL由选择字的最低两位决定。DPL 特权级描述符。DPL由描述符的访问权字节的第5和第6两位决定。CPL 当前特权级,是当前正在执行任务的特权级。它相当于正执行代码段的优先级。CPL由CS的最低两位来决定。EPL 有效特权级。 EPL是RPL和DPL的最低特

28、权级。此外,对一个程序进行的实例称为任务(Task)。36 3.2 3.2 保护方式保护方式(2) 保护方式的概念 32位微处理器用保护权等级来划分计算机中的各类软件。4级特权在计算机中形成的保护体制如下:微处理器内部的特权级是PL=0,为微处理器服务的I/O系统的特权级是PL=1,操作系统(OS)的特权级是PL=2,应用软件的特权级最低,是PL=3。它们之间的转换是由CPU强制实施的。(3) 特权级的运作规则 32位微处理器按下述规则对某任务各级之间的数据和过程进行访问: 存储在特权级为PL段中的数据,仅可由至少像PL同样特权级上执行的代码来访问。 具有特权级为PL的代码段或过程可由与PL相

29、同或低于PL特权级的任务来调用。37 3.2 3.2 保护方式保护方式2. 特权级分类 为了保证计算机系统在多任务下工作时的可靠性,32位微处理器在许多操作中都设置了各自的特权级。(1) 任务特权级在任一时刻,微处理器总是运行当前特权级CPL指定的任务。一个任务的CPL仅可通过段描述符来改变。因此,一个处于PL=3运行的应用程序可以调用在PL=1上的操作系统子程序,并设置该任务的CPL=1,直到操作系统的子程序执行完。(2) 请求特权级RPL仅用于建立一个比某一段所用的现行特权级低的特权级。该特权级称作任务的有效特权级(EPL)。EPL定义为任务的CPL和选择字中RPL较低的特权级。(3) I

30、/O特权级(IOPL)由EFLAG寄存器中的两位(12及13位)来决定。该特权级定义了可以无条件执行的I/O指令的最低特权级。38 3.2 3.2 保护方式保护方式3.2.2 保护方式的寻址方法 保护方式可以扩大线性地址空间,从4GB扩大到64TB,可运行虚拟存储器中的程序。另外,保护方式提供了精巧复杂的内存管理和硬件辅助的保护机构。在保护方式下可以使用支持多任务操作系统。从学习32位微处理器的角度来看,保护方式和实地址方式间的主要差别是增加了地址空间和一个不同的寻址机制。在保护方式下逻辑地址也由16位的选择字和位的选择字和32位的偏移地址位的偏移地址两部分组成。16位的选择字确定的段起始地址

31、加上一个32位的偏移地址以形成一个32位线性地址。如果分页被禁止,这个线性地址就是物理地址;否则,这个线性地址经分页部件转换为物理地址。39 3.2 3.2 保护方式保护方式3.2.3 分页分页是在保护方式下的一种存储器管理方式,分页是在分段的基础上进行的。它与分段不同,分页是把程序和数据分为许多大小相同的页 (称为页面);而分段是将它们分成可变长度的段。每个页面的长度均为4KB,页面起始地址的低12位为全0。分页机制用两级表形式,在分页部件中把来自分段单元的线性地址转换为物理地址。分页部件由页目录表、页表及页面组成。1.页表将页面(起始)地址的高20位和该页面的标志位或保护信息构成页表项,其

32、内容如下图所示。将1024个页表项集中排列存放构成页表,页表中的每一项占4字节,整个页表占4KB空间。在页表中选取1024个页表项中的一个的10位地址存于线性地址的中间10位。 页表的第1位(R/W)和第2位(U/S)可用来保护该页面。 40 3.2 3.2 保护方式保护方式2.页目录表 每一个页表地址,即页表起始地址的低12位为全0,同页表项一样,将页表(起始)地址构成页目录项,其内容如下图所示。将1024个页目录项集中排列存放构成页目录表。页目录表中的每一项也占4字节,整个页目录表占4KB空间。在页目录表中选取1024个页目录项中的一个的10位地址存于线性地址的高10位。页目录表的起始地址

33、存放于控制寄存器组的CR3中。CR3中的低12位总为0,以保证页目录始终按页面对齐。 页目录表中的第1位(R/W)和第2位(U/S)可用来保护页目录中所包括的全部页面。 41 3.2.4 线性地址变换成物理地址 线性地址变换成物理地址的过程如下图所示。 将分段部件提供的32位线性地址的高10位乘以4与控制寄存器R3中的页目录表的起始地址相加得到页目录项的地址。该目录项中的高20位就是页表起始地址的高20位,将它逻辑左移12位得到页表的起始地址,将线性地址的中间10位左移2位得到页表项在页表中的偏移地址,再将这2个地址相加得到页表项的地址。该页表项的高20位就是页面起始地址的高20位,将它逻辑左

34、移12位与线性地址中的低12位相加,即生成指向某一存储单元的32位物理地址。生成的物理地址送总线接口部件,以访问存储器的某单元。3.2 3.2 保护方式保护方式42 3.2 3.2 保护方式保护方式43 把线性地址4834056H变换为物理地址30000056H的实例如下图所示。3.2 3.2 保护方式保护方式44 控制寄存器CR3中的5000H是页目录表的起始地址。线性地址的高10位 (12H) 乘以4即412H,得到页目录项在页目录表中的偏移地址48H。因此,页目录项的物理地址为5048H。双字单元5048H(5048H504BH)中的内容为0000BXXXH。线性地址的中间10位(34H

35、)乘以4即434H,求得页表项在页表中的偏移地址0D0H,与页表的起始地址0000B000H相加,求得页表项的物理地址0B0D0H。双字单元0B0D0H的内容为03000XXXH,03000000H就是页面起始地址,把它与线性地址的低12位(56H) 相加,就形成物理地址3000056H。3.2 3.2 保护方式保护方式45 3.3 3.3 虚拟虚拟8086方式方式 32位微处理器可以在实地址方式与虚拟8086方式(虚拟方式)下运行8086应用程序。在这两种方式中,虚拟方式为系统设计者提供了最大的灵活性。在虚拟方式下,运行8086程序可以尽量利用32位微处理器的保护机构。尤其是32位微处理器允

36、许同时执行8086的操作系统及其应用程序和32位微处理器操作系统的应用程序。从而,在一个多用户的80X86计算机中,一个用户可以运行Windows版本,另一个用户可以使用MS-DOS,而第3个用户则可以运行多个Unix资源及其应用程序等。在这种环境下的每一个用户就好像完全拥有该计算机资源。46 3.3 3.3 虚拟虚拟8086方式方式1虚拟方式的寻址机制 32位微处理器的实地址方式与保护方式的一个主要差别是对段选择字的不同解释。当处理器在虚拟8086方式下工作时,段寄存器与实地址方式是一样的。段寄存器的内容左移4位后与偏移量相加形成段基本线性地址。 32位微处理器允许操作系统在每一个任务内指定

37、哪些程序使用8086方式的地址机构,哪些程序则使用保护方式寻址。利用分页,可以把虚拟方式任务的1MB地址空间映射到32位微处理器的4GB线性地址空间的任一空间中去。像实地址方式一样,若有效地址不能超出64KB。然而,这些限制并不是很重要的,因为大多数在虚拟8086方式下运行的程序是目前已有的8086应用程序。 47 3.3 3.3 虚拟虚拟8086方式方式2虚拟方式下的分页 分页硬件允许同时运行多个虚拟任务,并提供保护及操作系统隔离。尽管不是运行虚拟方式任务一定要采用分页,但是对于运行多个虚拟任务或把虚拟方式任务的地址重新分配到大于1MB的物理地址空间上时需要分页部件。 分页机制把虚拟方式的程

38、序产生的20位线性地址分成256个页面。每一页面可以安排在32位微处理器4GB物理地址空间的任何位置上。除此以外,由于是通过一个任务的切换来装载页目录起始地址寄存器的,所以每一个虚拟方式下的任务可以利用不同的映射方式把页面映射到不同的物理地址上。 最后一点要指出的是,分页机制允许多个8086应用程序共享8086操作系统。48 3.3 3.3 虚拟虚拟8086方式方式3虚拟方式下的保护 所有的虚拟8086方式程序都是在特权级3下运行的,这是最低特权级。这样的话,虚拟8086方式程序要服从所有的保护方式所定义的保护检查(这与实地址方式不同,它是在特权级0下执行的,这是最高的特权级)。因此,在虚拟8

39、086方式下,要想执行一条赋予了特权级的指令会导致系统故障。 有些特权级的指令,它们仅可在特权级0下执行的。因此,要想使这些指令在虚拟8086方式下(或当CPL0)执行将导致系统故障。也有些指令,特别是那些应用于多任务方式和保护方式的指令,只能在保护方式中执行。因此,要想使下面的指令在实地址方式或虚拟8086方式下执行会产生系统故障。 49 3.3 3.3 虚拟虚拟8086方式方式4虚拟方式中的中断处理 为了完全地支持8086的仿真,虚拟8086方式中的中断是在一个独特的方式中进行处理的。当在虚拟方式中运行时,所有的中断都包括一个返回主32位微处理器操作系统的特权级变化。中断是来自保护方式应用

40、程序还是虚拟方式程序是由32位微处理器操作系统通过检查放在堆栈中的EFLAGS的映像中的VM位来加以确定的。502 2 1处理器微处理器3232位微处理器的地址总线和数据总线位微处理器的地址总线和数据总线 32 32位微处理器的工作方式位微处理器的工作方式5 5 80486 80486微处理器微处理器PentiumPentium微处理器微处理器 3 34 451 内部数据总线为内部数据总线为6464位,外部数据总线为位,外部数据总线为3232位,位,地址总线为地址总线为3232位位) ) 微处理器的组成:微处理器的组成: 总线接口单元、指令译码单元总线接口单元、指令译

41、码单元 指令预取单元、执行单元指令预取单元、执行单元 分段单元分段单元 分页单元以及浮点处理单元(分页单元以及浮点处理单元(FPUFPU) 高速缓存(高速缓存(Cache memoryCache memory)4.1 804864.1 80486的结构的结构52 新增加新增加3 3个测试寄存器个测试寄存器TR3TR3TR5TR5用于片内用于片内CacheCache测试以及浮点处理单元的浮点寄存器测试以及浮点处理单元的浮点寄存器 8048680486除了保留除了保留8038680386的所有标志外,在的所有标志外,在D18D18位位增加了对准检查标志增加了对准检查标志AC(alignment c

42、heck)AC(alignment check)4.2 804864.2 80486的寄存器的寄存器532 2 4 48038680386微处理器微处理器3232位微处理器的地址总线和数据总线位微处理器的地址总线和数据总线 32 32位微处理器的工作方式位微处理器的工作方式1 1 80486 80486微处理器微处理器PentiumPentium微处理器微处理器 3 35 554 Pentium Pentium微处理器是一种最先进的微处理器是一种最先进的3232位微处理器。它位微处理器。它几乎具有两台几乎具有两台8048680486的功能。的功能。55 5.1 Pentium5.1 Penti

43、um微处理器的结构微处理器的结构561.1.总线接口单元总线接口单元 总线接口单元实现微处理器与微型计算机系统总总线接口单元实现微处理器与微型计算机系统总线的连接,其中包括线的连接,其中包括6464位数据线、位数据线、3232位地址线和众多位地址线和众多的信号线,以此实现微处理器与外部的信息交换。的信号线,以此实现微处理器与外部的信息交换。PentiumPentium微处理器与外部交换数据可以是微处理器与外部交换数据可以是6464位还可以位还可以是是3232位、位、1616位或者位或者8 8位。位。5.1 Pentium5.1 Pentium微处理器的结构微处理器的结构572.2.分段单元和分

44、页单元分段单元和分页单元 分段单元将程序提供的逻辑地址转换为线性地址,分段单元将程序提供的逻辑地址转换为线性地址,分页单元将线性地址转换为物理地址。分页单元将线性地址转换为物理地址。 分页是将段分为多个固定大小的页面分页是将段分为多个固定大小的页面( (通常为通常为4KB)4KB),分页支持虚拟存储器环境。内存中只保留程序访问的分页支持虚拟存储器环境。内存中只保留程序访问的页面,而众多的页面被存储在磁盘中。当程序要访问页面,而众多的页面被存储在磁盘中。当程序要访问线性地址空间中的某个地址时,分页单元先将线性地线性地址空间中的某个地址时,分页单元先将线性地址转换为存储器的物理地址,然后执行对该地

45、址的读址转换为存储器的物理地址,然后执行对该地址的读操作或写操作。如果所访问的页面不在物理内存中,操作或写操作。如果所访问的页面不在物理内存中,微处理器就会暂时中断该程序的执行,由操作系统将微处理器就会暂时中断该程序的执行,由操作系统将所需的页面从磁盘读入物理内存中,然后接着执行被所需的页面从磁盘读入物理内存中,然后接着执行被中断的程序。中断的程序。5.1 Pentium5.1 Pentium微处理器的结构微处理器的结构583.U3.U流水线和流水线和V V流水线流水线 Pentium Pentium采用两条流水线,这两条流水线都拥有采用两条流水线,这两条流水线都拥有自己的算术逻辑单元自己的算

46、术逻辑单元ALUALU、地址生成电路和数据、地址生成电路和数据CacheCache的接口。这种双流水线结构允许的接口。这种双流水线结构允许PentiumPentium可以可以一次执行两条指令,每条流水线中执行一条。一次执行两条指令,每条流水线中执行一条。4.4.指令指令CacheCache和数据和数据CacheCache 在在PentiumPentium中,指令中,指令CacheCache和数据和数据CacheCache两者分开,两者分开,从而减少了指令预取和数据存取操作之间可能发生从而减少了指令预取和数据存取操作之间可能发生的冲突,并可提高命中率。的冲突,并可提高命中率。PentiumPen

47、tium的数据的数据CacheCache有有两个接口,分别与两个接口,分别与U U和和V V两条流水线相连,以便同时两条流水线相连,以便同时和两条流水线交换数据。和两条流水线交换数据。5.1 Pentium5.1 Pentium微处理器的结构微处理器的结构595.5.指令预取单元、指令译码单元和控制指令预取单元、指令译码单元和控制ROMROM 指令预取单元从指令指令预取单元从指令CacheCache中预先取指令,每次中预先取指令,每次取两条指令。如果是简单指令,通过指令译码单元取两条指令。如果是简单指令,通过指令译码单元译码后,将两条指令分别送到译码后,将两条指令分别送到U U流水线和流水线和

48、V V流水线执流水线执行。如果是复杂指令,通过控制行。如果是复杂指令,通过控制ROMROM将其转换成对应将其转换成对应的一系列微指令,再送到的一系列微指令,再送到U U流水线和流水线和V V流水线执行。流水线执行。复杂指令对应的微指令存放在控制复杂指令对应的微指令存放在控制ROMROM中。微指令是中。微指令是微处理器能够直接执行的指令,它的长度是固定微处理器能够直接执行的指令,它的长度是固定的,因此很容易在流水线中进行处理。的,因此很容易在流水线中进行处理。5.1 Pentium5.1 Pentium微处理器的结构微处理器的结构606. 6. 控制单元控制单元 控制单元的功能是通过对来自指令译

49、码单元和和控制单元的功能是通过对来自指令译码单元和和控制控制ROMROM中微程序的解析,控制中微程序的解析,控制U U流水线、流水线、V V流水线和流水线和浮点处理单元的正常运行。浮点处理单元的正常运行。7.7.分支转移目标缓冲器分支转移目标缓冲器 分支转移目标缓冲器在遇到分支转移指令时用来分支转移目标缓冲器在遇到分支转移指令时用来预测转移是否发生,并据此为分支指令处的指令提供预测转移是否发生,并据此为分支指令处的指令提供预取地址。预取地址。8.8.浮点处理单元浮点处理单元 浮点处理单元主要用于浮点运算,使得浮点运算浮点处理单元主要用于浮点运算,使得浮点运算的速度得到提高。的速度得到提高。5.1 Pentium5.1 Pentium微处理器的结构微处理器的结构61 5.2 Pentium5.2 Pentium微处理器的先进技术微处理器的先进技术(1)(1)

温馨提示

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

评论

0/150

提交评论