- 冯博琴《微型计算机原理与接口技术》(第3版)【教材精讲+考研真题解析】讲义与视频课程【20小时高清视频】
- 圣才电子书
- 6023字
- 2021-06-04 17:23:59
2.2 80386与Pentium4
视频二维码(扫码观看)
主要内容:
一、80386处理器
1特性
2内部结构
3引脚
4寄存器
5工作模式
二、Pentium4处理器
1处理器中的新技术
2CPU结构
3存储器管理
4基本执行环境
一、80386处理器
1985年10月,Intel公司推出了与8088/8086/80286相兼容的高性能的32位微处理器80386,它是为满足高性能的应用领域与多用户、多任务操作系统的需要而设计的。它的发布标志着微处理器自此从16位迈入了32位时代。
1主要特性
(1)采用全32位结构,其内部寄存器、ALU和操作是32位,数据线和地址线均为32位,故能寻址的物理空间为232=4GB。
(2)提供32位外部总线接口,最大数据传输率为32MB/s,具有自动切换数据总线宽度的功能。CPU读写数据的宽度可以在32位到16位之间自由进行切换。
(3)具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护,虚拟存储器空间可达64TB(264字节)。存储器按段组织,每段最长4000MB,因此64TB虚拟存储空间允许每个任务可拥有多达16384个段。存储保护机构采用四级特权层,可选择片内分页单元。内部具有多任务机构,能快速完成任务的切换。
(4)具有3种工作方式:实地址方式、保护方式和虚拟8086方式。实地址方式和虚拟8086方式与8086相同,已有的8088/8086软件不加修改就能在80386的这两种方式下运行;保护方式可支持虚拟存储、保护和多任务,包括了80286的保护方式功能。
(5)采用了比8086更先进的流水线结构,使其能高效、并行地完成取指、译码、执行和存储管理功能。它具有增强的指令预取队列,能预取指令并进行内部指令排队。取指和译码操作均由流水线承担,处理器执行指令不需等待。其指令队列从8086的6字节增加到16字节长。
280386内部结构
三大部分组成:总线接口部件(BIU)、中央处理部件(CPU)和存储器管理部件(MMU)。
(1)总线接口部件
总线接口部件(BIU,Bus Interface Unit)负责与存储器和I/O接口进行数据传送,其功能是产生访问存储器和I/O端口所必需的地址、数据和命令信号。与8088/8086中的BIU作用相当。由于总线数据传送与总线地址形成可同时进行,所以80386的总线周期只有2个时钟。平常没有其他总线请求时,BIU将下条指令自动送到指令预取队列。
(2)中央处理部件
中央处理部件(CPU)包括指令预取单元、指令译码单元和执行单元三部分。
(3)存储器管理部件
存储器管理部件(MMU,Memory Management Unit)由分段部件和分页机构组成。
①分段部件
分段部件的作用是根据执行部件的请求,把逻辑地址转换成线性地址,在完成地址转换的同时还要执行总线周期的分段合法性检验。该部件可以实现任务之间的隔离,也可以实现指令和数据区的再定位。
②分页机构
分页机构的作用是把由分段部件或代码预取单元产生的线性地址转换成物理地址,并且要检验访问是否与页属性相符合。为了加快线性地址到物理地址的转换速度,80386内设有一个页描述符高速缓冲存储器(TLB),其中可以存储32项页描述符,使得在地址转换期间大多数情况下不需要到内存中查页目录表和页表。试验证明,TLB的命中率可达98%。对于在TLB内没有命中的地址转换,80386设有硬件查表功能,从而缓解了因查表引起的速度下降问题。
380386主要引脚
参考教材
480386内部寄存器
80386总共有34个寄存器,按其功能可分成以下几类:
通用寄存器
指令指针和标志寄存器
段寄存器
控制寄存器
系统地址寄存器
调试寄存器
测试寄存器
(1)通用寄存器
80386有8个32位的通用寄存器,分别命名为EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。每个32位寄存器的低16位可单独使用,与8088/8086/80286的相应16位通用寄存器作用相同。同时,AX、BX、CX、DX寄存器的高、低8位也可分别当作8位寄存器使用。
(2)指令指针和标志寄存器
80386的指令指针EIP是一个32位寄存器,是从8086的IP扩充而来。80386的标志寄存器EFLAGS也是一个32位寄存器,如下图所示。
IOPL:I/O特权级(I/O Privilege Level,位13、12)。
NT:嵌套任务(Nested Task,位14)。
VM:虚拟8086方式(Virtual 8086 Mode,位17)。
RF:恢复标志(Resume Flag,位16)。
①IOPL:I/O特权级(I/OPrivilegeLevel,位13、12)。此标志位用以指定I/O操作处于0~3特权层中的哪一层。
②NT:嵌套任务(NestedTask,位14)。若NT=1,表示当前执行的任务嵌套于另一任务中,执行完该任务后,要返回到原来的任务中去;否则NT=0。
③VM:虚拟8086方式(Virtual8086Mode,位17)。若VM=1,处理器工作于虚拟8086方式;若VM=0,处理器工作于一般的保护方式。
④RF:恢复标志(ResumeFlag,位16)。RF标志用于DEBUG调试,若RF=0,调试故障被接受;RF=1,则遇到断点或调试故障时不产生异常中断。每执行完一条指令,RF自动置0。
(3)段寄存器
80386有6个段寄存器,分别是CS、DS、SS、ES、FS和GS。前4个段寄存器的名称与8088/8086相同,在实地址方式下的使用方式也和8088/8086相同。增加FS与GS主要是为了减轻对DS段和ES段的压力。
在实方式下,在80386段寄存器内保存着指定段的实际地址,如图所示。
而在保护方式下,在段寄存器内保存着的则是16位的地址。这个16位的地址就是通常所说的选择符选择符指示着描述符表中的某一项,实际的段基地址则是被存放在描述符表中的一个描述符中,如图所示。
(4)控制寄存器
80386有4个32位控制寄存器(CR0、CR1、CR2和CR3),作用是保存全局性的机器状态。
(5)系统地址寄存器
80386有4个系统地址寄存器,用来存储操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间。
GDTR:48位全局描述符表寄存器,用于保存全局描述符表的32位基地址和全局描述符表的16位界限(全局描述符表最大为216字节,共216/8=8K个全局描述符)。
IDTR:48位中断描述符表寄存器,用于保存中断描述符表的32位基地址和中断描述符表的16位界限(中断描述符表最大为216字节,共216/8=8K个中断描述符)。
LDTR:16位局部描述符表寄存器,用于保存局部描述符表的选择符。一旦16位的选择符放入LDTR,CPU会自动将选择符所指定的局部描述符装入64位的局部描述符寄存器中。
TR:16位任务状态寄存器,用于保存任务状态段(TSS)的16位选择符。与LDTR类似,一旦16位的选择符放入TR,CPU会自动将该选择符所指定的任务描述符装入64位的任务描述符寄存器中。
LDTR和TR寄存器是由16位选择字段和64位描述符寄存器组成。用来指定局部描述符表和任务状态段TSS在物理存储器中的位置和大小。64位描述符寄存器是自动装入的,程序员不可见。LDTR与TR只能在保护方式下使用,程序只能访问16位选择符寄存器。
(6)调试寄存器
80386设有8个32位调试寄存器DR0~DR7,它们为调试提供了硬件支持。其中,DR0~DR3是4个保存线性断点地址的寄存器;DR4、DR5为备用寄存器;DR6为调试状态寄存器,通过该寄存器的内容可以检测异常,并允许或禁止进入异常处理程序;DR7为调试控制寄存器,用来规定断点字段的长度、断点访问类型、“允许”断点和“允许”所选择的调试条件。
(7)测试寄存器
80386设置了8个32位的测试寄存器TR0~TR7,其中TR0~TR5由Intel公司保留,用户只能访问TR6、TR7。它们用于控制对TLB中的RAM和CAM相联存储器的测试。TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态。
580386的工作模式
80386可工作于实地址模式或保护虚地址模式。
(1)实地址模式
当80386加电或复位后,就进入实地址工作模式。80386所有指令在实地址模式下都是有效的,不过操作数默认长度是16位。物理地址形成与8088/8086—样,将段寄存器内容左移4位与有效偏移量地址相加而得到,寻址空间为1MB,只有地址线A2~A19,#BE0~#BE3是有效的。而A20~A31总是低电平。惟一的例外是在复位后,在执行第一条段间转移或调用指令前,所有访问代码段的总线周期的地址A20~A31输出总是高电平,以保证执行高端内存引导ROM中的指令。
实地址模式下段的大小为64K字节,因此32位的有效地址必须小于0000FFFFH。此模式下保留了两个固定的存储区域,它们是专用的:
中断向量表区:00000H-003FFH,在1K字节存储空间保留256个中断服务程序的入口地址,每个入口地址占用4个字节,与8088/8086一样。
系统初始化区:FFFFFFF0H-FFFFFFFFH,存放ROM引导程序。
实地址模式下的物理地址生成如下图所示。
(2)保护虚地址模式
当80386工作在保护方式时,其能够访问的线性地址空间可达4GB,而且允许运行几乎不受存储空间限制的虚拟存储器程序。用户逻辑地址空间,即虚拟存储器地址空间可达64TB。在此模式下,80386提供了复杂的存储管理和硬件辅助的保护机构,且可运行现有8088/8086/80286的所有软件。它还增加了支持多任务操作系统的特别优化的指令。
保护模式下的地址变换如下图所示。
在保护模式下,某个段寄存器中的内容不再是段的基地址,32位的段基地址是存放在一个段描述符表中,而段寄存器的内容作为选择符,即作为段描述符表的索引,用它来从表中取出相应的段描述符(包括32位段基地址、段界限和访问权等)。在这个地址转换过程中,由选择符的高13位作为偏移量,再以CPU内部预先初始化好的GDTR中的内容作为基地址,就可获得相应的描述符。该描述符将存入描述符寄存器中。描述符中的段基地址(32位),同指令给出的32位偏移地址相加得到线性地址,再通过分页机构进行变换,最后得到物理地址。如果不分页,线性地址就等于物理地址。
①段选择符
在保护虚地址方式下,段寄存器就成为—个选择符,它由3个字段组成,如下图所示。
INDEX是个13位的索引值。给出要选择的描述符在描述符表中的位置,或描述符在表中的序号。INDEX加上32位的描述符表基地址(在GDTR/LDTR中)就得到所选择的描述符的物理地址。最大可选择8K个全局描述符和8K个局部描述符,共16K个描述符。
TI描述符表指示器。TI=0,表示指向全局描述符表GDT。TI=1,表示指向局部描述符表LDT。
RPL选择器特权级。定义当前请求的特权层级别,特权级为0~3级,0级最高,3级最低。
②段描述符
用段选择器从描述符表中所选择的对象称为段描述符。段描述符包含了一个存储段的所有信息。其中包括:
·段的线性基地址
·段的界限(大小)
·段的—些属性:段的保护等级,读、写、执行特权和保护特权级别,操作数的默认长度(16或32位),段的类型和段的粒度(即段的长度单位)
每个段描述符有8个字节,其中段基地址共32位(4个字节),段界限字段是20位,还有12位定义了段的属性信息,其格式如下图所示。
段基地址:共32位,规定了存储分段在线性地址空间中的基地址。
段界限:指定了本存储段的长度。
G粒度位,当G=0时,段长是以字节为单位,段的最大地址空间是1MB;G=1时,段长是以页(4KB)为单位,分段的最大地址空间是4GB。
D指示操作数和有效地址的缺省长度:D=1时,使用32位操作数和32位寻址方式;D=0时,使用16位操作数和16位寻址方式。
P表示段是否在内存中:P=1时,表示该段已在内存;P=0时,表示该段在硬盘交换区。
A段是否被访问过:A=0时,段未被访问过;A=1时,段已被访问过。
S、TYPE:这两个字段说明了段的类型:数据段或堆栈段(S=1,Type字段的E=0);代码段(S=1,Type字段的E=1);系统段(S=0)。
DPL描述符的优先级。
二、Pentium4处理器
与前一代微处理器相比,Pentium处理器在结构上进行了一些新的改进,如增加了多媒体处理部件、集成了更大的缓存,将L2缓存也做到了CPU内部、采用了多级、多流水线的超标量结构等。其主要的程序特性,如支持多用户、多任务,具有硬件保护功能,支持分段分页虚拟存储等均与80386CPU类似。
1处理器中的新技术
(1)首次实现了Intel Net Burst微体系结构
快速执行引擎使处理器的算术逻辑单元执行速度达到了内核频率的两倍,从而实现了更高的执行吞吐量。
超长流水线技术使流水线深度达到20级,显著提高了处理器性能和执行速度。
创新的新型高速缓存子系统使指令执行更加有效。
增强的动态执行结构可以对更多的指令进行转移预测处理,有效地避免因发生程序转移使流水线停顿的现象(因为一旦预测不正确,CPU将不得不重新填充指令队列)。
(2)流式SIMD(单指令多数据)扩展2(SSE2)技术
扩展了MMX和SSE技术。新增加了144条多媒体处理指令,可用来支持:
·128位SIMD整数运算
·128位SIMD双精度浮点运算
进一步增强和加速了视频、语音、数据加密、图像和影像处理
(3)400MHz英特尔Net Burst微体系结构系统总线
提供了3.2GB/s的吞吐率
4倍速的100MHz可升级的总线时钟使有效速度达到400MHz
片断化事务,深度流水线化操作
128字节传输管线,每次存取64字节
(4)与已有的为IA-32体系结构而编写的应用和操作系统完全兼容。
2CPU结构
(1)BTB:分支目标缓冲区Branch Target Buffer),用于存放所预测分支的所有可能的目的地址。
(2)μOP:微操作(Micro Operation)。微处理器的执行部件能直接执行的指令称为微指令(或微命令),执行部件接受微指令后所进行的操作称为微操作。一条指令可分解为一系列微指令的执行。
(3)ALU:算术逻辑单元,即整数运算单元
(4)AGU:地址产生单元(Address Generation Unit)。
3存储器管理
Pentium4继承了IA-32结构,所以它的存储器管理与80386基本相同,也包括了分段管理和分页管理。分段提供了隔离代码、数据和堆栈的机制,使多个程序(或任务)能够运行在同一个CPU上而不会互相干扰;分页提供了实现传统的基于页请求的虚存系统,这种系统当需要时能把程序执行环境的片段映射到物理存储器中。分页也能用于多个任务的隔离。当运行在保护方式时,必须使用某种形式的分段机制。分段机制不能通过状态位被禁止掉,而分页则是可选的。
保护模式下存储器当中的分段与分页
4基本执行环境
Pentium4仍然继续支持IA-32结构的3种操作模式:保护模式、实模式和系统管理模式。
Pentium4的基本执行环境对这3种模式来说都是相同的。
(1)地址空间。任何程序或任务都可以访问最大为4GB(232字节)的线性地址空间和最大为64GB(236字节)的物理地址空间。
(2)基本的程序执行寄存器。基本的程序执行寄存器包括8个通用寄存器、6个段寄存器、标志寄存器和指令指针寄存器。
(3)FPU寄存器。FPU寄存器包括8个FPU浮点数据寄存器、FPU控制寄存器、FPU状态寄存器、FPU指令指针寄存器、FPU操作数指针寄存器、FPU标签寄存器和FPU操作码寄存器。
(4)MMX寄存器。8个MMX寄存器用于执行单指令多数据(SIMD)操作,支持64位紧缩的字节、字和双字整数类型。
(5)SSE和SSE2寄存器。SSE和SSE2包括8个XMM寄存器和1个MXCSR寄存器,支持128位紧缩的单精度浮点数、双精度浮点数以及128位紧缩的字节、字、双字、四字整型数的SIMD操作。
(6)*堆栈。堆栈用于支持过程(子程序)调用和向过程传递参数。
(7)*I/O端口。
(8)*控制寄存器。5个控制寄存器(CR0~CR4)决定了处理器的操作模式和当前任务的特征。
(9)*存储管理寄存器。GDTR、IDTR、任务寄存器和LDTR指出了保护模式下存储器管理所使用的数据结构在内存中的位置。
(10)*调试寄存器。DR0~DR7用来控制和监视处理器的调试操作。
(11)*机器检测寄存器。这些寄存器用于检测和报告硬件错误。
(12)*存储器类型范围寄存器(MTRRs)。MTRRs用于为物理存储器的范围指定存储器类型。
(13)*机器相关寄存器(MSRs)。这些寄存器用来控制和报告处理器的性能,它们不能被应用程序所访问(除了时间戳计数器外)。
(14)*性能监视寄存器。性能监视寄存器用于监视处理器性能事件。
Pentium4的标志位仅比80386增加了4位:AC、VIF、VIP和ID。
(1)AC:对齐检查标志。当AC=1并且CR0寄存器的AM=1时,允许存储器对齐检查。
(2)VIF:虚拟中断标志。VIF标志位为IF标志位的虚拟映像,与VIP联合使用。
(3)VIP:未决虚拟中断标志。VIP=1时表示有未决的中断,VIP=0时表示没有未决的中断。
(4)ID:鉴别标志。如果程序能设置或清除这一位,表示可以使用CPUID指令。
总 结
本节主要介绍了80386处理器与Pentium4处理器的基本情况。