Download presentation
Presentation is loading. Please wait.
1
第3章 奔腾系列微处理器
2
第3章 奔腾系列微处理器 3.1 Pentium性能和结构特点 3.2 Pentium的寄存器 3.3 Pentium的虚拟存储器
第3章 奔腾系列微处理器 3.1 Pentium性能和结构特点 3.2 Pentium的寄存器 3.3 Pentium的虚拟存储器 3.4 Pentium的超标量流水线 3.5 Pentium的引脚信号 3.6 Pentium Pro ~Itanium的技术概况
3
教学目的和教学要求 掌握Pentium微处理器的原理结构、基本寄存器组中各寄存器的组成和功能、Pentium工作的实模式、保护模式以及虚拟8086模式 掌握Pentium微处理器的超标量流水线技术 熟悉存储器的保护、浮点运算部件以及与之相配套一起实现浮点运算的浮点寄存器等 了解Pentium微处理器的外部引脚 了解Pentium ProItanium的技术概况
4
本章重点、难点 重点: 难点: Pentium工作的实模式、保护模式以及虚拟8086模式的工作原理 Pentium微处理器的超标量流水线技术
存储保护中的特权级保护方式
5
3.1 Pentium性能和结构特点 3.1.1 Pentium性能简介(1)
1993年3月Intel公司推出了第五代微处理器Pentium Pentium是微处理器本质上的一次创新。 Pentium采用了0.8μm双极性互补金属氧化半导体(BiCMOS)技术,它属于单芯片超标量流水线微处理器,片内集成了多达310万个晶体管,工作电压+5V,功耗15W。片内时钟频率(微处理器主频)与外片主总线的时钟频率相等,均为60MHz或66MHz两种。
6
3.1.1 Pentium性能简介(2) 1994年3月之后推出的Pentium(P54C)采用了0.6μm的CMOS技术,工作电压降为3.3V,功耗降至4W。主总线时钟频率有50MHz、60MHz以及66MHz等,经倍频后作为Pentium(P54C)内部的时钟频率(主频),表3-1列出了几种Pentium(P54C)的主频与工作电压。
7
表3-1 几种Pentium的主频与工作电压 型 号 主总线时钟频(MHz) 倍数因子 主频(MHz) 工作电压 Pentium-90 60
型 号 主总线时钟频(MHz) 倍数因子 主频(MHz) 工作电压 Pentium-90 60 1.5 90 3.3V或2.9V Pentium-100 100 3.3V Pentium-120 2 120 Pentium-133 133 Pentium-150 2.5 150 Pentium-166 66 166 Pentium-200 3 200
8
3.1.1 Pentium性能简介(3) Pentium通往外部存储器的数据总线为64位,CPU内部主要寄存器的宽度仍然为32位,那么Pentium、Pentium(P54C)应该是32位微处理器。外部64位数据总线(D63-D0)每次可同时传输8字节的二进制信息,若选用主总线时钟频率66MHz计算,即存储器总线的时钟频率也为66MHz,则Pentium与主存储器交换数据的速率可为528MB/S。
9
3.1.2 Pentium的原理结构(1) 一、Pentium CPU内部的主要部件 ①总线接口部件 ②U流水线和V流水线
③指令高速缓冲存储器Cache ④数据高速缓冲存储器Cache ⑤指令预取部件 ⑥指令译码器 ⑦浮点处理部件FPU ⑧分支目标缓冲器BTB ⑨微程序控制器中的控制ROM ⑩寄存器组 Pentium微处理器的原理结构图如图3-1所示
10
Pentium CPU原理结构图
11
3.1.2 Pentium的原理结构(2) 二、原理结构
在Pentium CPU中,总线接口部件实现CPU与系统总线之间的连接,其中包括64位双向的数据线、32位地址线和所有的控制信号线,具有锁存与缓冲等功能,总线接口部件实现CPU与外设之间的信息交换,并产生相应的各类总线周期。
12
1.互相独立的指令Cache和数据Cache
3.1.2 Pentium的原理结构(3) 1.互相独立的指令Cache和数据Cache Pentium则在片内设置了2个独立的8KB Cache,分别用于存放指令代码与数据。指令Cache是内存中一部分程序的副本,通过猝发方式从内存中每次读入一块存入某一Cache行中,便于CPU执行程序时取出并执行,数据Cache是可以读写的,双端口结构,每个端口与U、V两条指令流水线交换整数数据,或者组合成64位数据端口,用来与浮点运算部件交换浮点数据,指令Cache与数据Cache均与CPU内部的64位数据线以及32位地址线相连接。
13
3.1.2 Pentium的原理结构(4) 互相独立的指令Cache和数据Cache有利于U、V两条流水线的并行操作,它不仅可以同时与U、V两条流水线分别交换数据,而且使指令预取和数据读写能无冲突地同时进行。 可以通过硬件或软件方法来禁止或允许使用Pentium CPU内部的Cache。
14
3.1.2 Pentium的原理结构(5) 2.超标量流水线 Pentium有U、V两条指令流水线,故称之为超标量流水线,超标量流水线技术的应用,使得Pentium CPU的速度较80486有很大的提高。因此,超标量流水线是Pentium系统结构的核心。
15
3.1.2 Pentium的原理结构(6) U、V流水线中整数指令流水线均由5段组成。分别为预取指令(PF)、指令译码(D1)、地址生成(D2)、指令执行(EX)和结果写回(WB)。 由于采用了指令流水线作业,每条指令流水线可以在1个时钟周期内执行一条指令。因此,最佳情况下一个时钟周期内可以执行两条整数指令。
16
3.1.2 Pentium的原理结构(7) 3.重新设计的浮点运算部件 Pentium CPU内部的浮点运算部件在80486的基础上进行了重新设计。如图3-1所示。浮点运算部件内有专门用于浮点运算的加法器、乘法器和除法器,还有80位宽的8个寄存器构成了寄存器堆,内部的数据通路为80位。浮点运算部件支持IEEE754标准的单、双精度格式的浮点数,还可以使用一种临时实数的80位浮点数。
17
3.1.2 Pentium的原理结构(8) Pentium对浮点数的一些常用指令,例如加法指令ADD,乘法指令MUL等,都采用了新的算法,并将新的算法用硬件来实现,使得浮点数运算的速度大大提高,其速度相当于80486的10多倍。
18
3.1.2 Pentium的原理结构(9) 4.以BTB实现动态转换预测 Pentium采用了分支目标缓冲器(branch target buffer)实现动态转移预测,可以减少指令流水作业中因分支转移指令而引起的流水线断流。 引入了转移预测技术,不仅能预测转移是否发生,而且能确定转移到何处去执行程序。
19
例【3-1】下面是连续传送100个字节的循环程序段
MOV SI,0200H ;源数据区偏移地址给SI MOV DI,0500H ;目的数据区偏移地址给DI MOV CX,64H ;待传送字节数为100,赋给CX ABC:MOV AL,[SI] ;从源区取出一个字节 MOV [DI],AL ;存入目的数据区 INC SI ;源地址指针加1 INC DI ;目的地址指针加1 DEC CX ;CX=CX-1 JNZ ABC ;若CX≠0,转ABC ·······
20
从上述程序可以看出,许多分支转移指令转向每个分支的机会不是均等的,而且大多数分支转移指令排列在循环程序段中,除了一次跳出循环体之外,其余转移的目标地址均在循环体内。因此,分支转移指令的转移目标地址是可以预测的,预测的依据就是前一次转移目标地址的状况,即根据历史状态预测下一次转移的目标地址。预测的准确率不可能为100%,但是对于某些转移指令预测的准确率却非常高。
21
3.2 Pentium的寄存器 Pentium的寄存器可以分为三组: ①基本寄存器组:包括通用寄存器、指令寄存器、标示寄存器以及段寄存器。
②系统寄存器组:包括系统地址寄存器、控制寄存器。 ③浮点部件寄存器组:包括数据寄存器堆、控制寄存器、状态寄存器、指令指针寄存器和数据指针寄存器以及标记字寄存器。
22
3.2 .1 基本寄存器组 Pentium的基本寄存器包括通用寄存器、段寄存器、指令指针和标志寄存器: 一、通用寄存器
3.2 .1 基本寄存器组 Pentium的基本寄存器包括通用寄存器、段寄存器、指令指针和标志寄存器: 一、通用寄存器 Pentium通用寄存器如图3-2所示,它兼容8086 CPU原来的8个16位通用寄存器以及原来的8个8位的寄存器,而且将原来的8个16位通用寄存器AX、BX、CX、DX、SI、DI、BP、SP均扩展成32位的寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。既可以使用保留的8位和16位寄存器,还可以使用32位寄存器。
23
Pentium通用寄存器
24
二、段寄存器及段描述符高速缓存器 段寄存器及段描述符高速缓存器如图3-3所示,Pentium有6个16位段寄存器,每个段寄存器对应有一个64位的描述符,用户不可见。6个段寄存器的长度均为16位。除CS和SS分别是代码段寄存器和堆栈段寄存器之外,其余的DS、ES、FS、GS都是数据段寄存器。
25
Pentium段寄存器及段描述符高速缓存器
26
1. 6个段描述符 每个段对应一个段描述符(8个字节),6个段描述符存放在CPU内的段描述符高速缓存器中,它们均由内存的描述符表中拷贝而成,以便CPU访问某一段时,均按存放在CPU内该段的段描述符所描述的信息进行操作。每个段描述符的具体组成如图3-4所示:
27
图3-4 段描述符的组成
28
2.6个16位段寄存器 每个段寄存器的组成如图3-5所示。在保护模式下,段寄存器被称作为一个16位的段选择字,其中b1、b0位为请求特权级RPL,可以请求特权层的级别0-3级。
29
三、指令指针和标志寄存器 Pentium CPU中有一个32位的指令指(EIP)和一个32位的标志寄存器(EFLAGS),如图3-6所示:
30
EIP保存下一条待执行指令所在代码段内的偏移值,也就是偏离代码段首地址的字节地址数值。EIP的低16位为IP,供实地址方式下采用。
EFLAGS在 位FLAGS基础上扩充了高16位,其中,FLAGS b11~b0中保留了8086 CPU中6个状态标志和3个控制标志,增加了NT与IOPL,高16位中新增了6个标志位。这些扩充标志位的含义参考教材。
31
系统寄存器组 Pentium的系统寄存器组包括4个表所对应的4个基地址寄存器GDTR、IDTR、LDTR、TR,也称为4个段基地址寄存器,还包括5个控制寄存器CR0、CR1、CR2、CR3、CR4。系统寄存器组中的所有寄存器都不可能被用户访问,只能由特权级为0的操作系统程序访问。
32
一、4个表基地址寄存器 4个表基地址寄存器如图3-7所示
4个表基地址寄存器如图3-7所示 (1)GDTR(Global Descriptor Table Register),全局描述符表寄存器。共有48位,其中,高32位保存全局描述符表的线性基地址,低16位是表限字段,即表的最大长度仅64KB。 (2)IDTR(Interrupt Descriptor Table Register),中断描述符表寄存器。共有48位,其中高32位用于保存中断描述符表IDT的32位线性基地址,低16位是表限字段,表的最大长度也是64KB。
33
图3-7 4个表基地址寄存器
34
(3)LDTR(Local Descriptor Table Register),局部描述符寄存器。包括16位段选择符,不可编程的64位描述符寄存器。在64位描述符寄存器中,有32位LDT的线性基地址,20位的表限及12位的描述符属性。 (4)TR,任务寄存器。包括16位段选择符,64位描述符寄存器,其中,32位任务状态段的线性基地址,20位的表限及12位的描述符属性。
35
二、5个控制寄存器 1.CR0 控制寄存器
36
2.CR2 页故障线性地址寄存器 用于保存最后出现页故障的32位线性地址。操作系统中的页异常处理程序可以通过检查CR2的内容,得知32位的线性地址。
3.CR3 页目录基址寄存器 其中高20位存放页目录表的物理基地址。在进行分页变换时,加上10位线性地址×4,找到某一存储容量为4B的页描述符。在页目录基址寄存器的低12中,有PCD和PWT两位控制位,其余10位保留。
37
图3-9 控制寄存器CR2、CR3
38
4.CR4允许结构扩展的标志寄存器 32位CR4中仅使用了9个控制位,其余23位保留。
39
5.模式专用寄存器 Pentium取消了测试寄存器,而用一组专用寄存器来实现更多的功能。这组寄存器具有测试、跟踪、性能检测以及机器检查等功能。
40
3.2.3 浮点寄存器组 Pentium内部有一个浮点运算部件,与之配套一起实现浮点运算的浮点寄存器有: 8个数据寄存器 1个标记字寄存器
浮点寄存器组 Pentium内部有一个浮点运算部件,与之配套一起实现浮点运算的浮点寄存器有: 8个数据寄存器 1个标记字寄存器 1个状态寄存器 1个控制寄存器 1个数据指针寄存器
41
1. 8个数据寄存器 数据寄存器R7-R0均为80位宽,在每个80位寄存器中,均有1位数符位,15位阶码位,64位尾数位。 2. 标记字寄存器 16位宽的标记字寄存器分成8个2位,分别对应8个数据寄存器,如图3-11所示。标记字寄存器的b1、b0位对应R0数据寄存器,b3、b2位对应R1数据寄存器,显然b15、b14位对应数据寄存器R7,用两位二进制数作标记,以便CPU只须通过检查标记位,就可以知道数据寄存器是否空等。
42
图3-11 Pentium的浮点寄存器
43
三、状态寄存器 16位寄存器都被用来指示FPU当前所处的状态: (1)IE,若IE置1,表示产生了无效操作,指示这是非法操作产生的故障。
(2)DE,若DE为1,表示操作数不符合规范产生的故障。 (3)ZE,若ZE=1,则指示除数为0引起的故障。 (4)PE,若PE=1,则指示运算结果不符合精度规格。 (5)SP,堆栈故障标志位,当IE=1且SF=1时,若C1=1则表示堆栈上溢引起无效故障。若C1=0,则指示堆栈下溢引起无效故障。
44
(6)ES,错误标志位,以上任何一个故障都会使ES=1,且使CPU引脚信号变为低电平。
(7)C0-C3,条件码,这4位条件码可以用SAHF指令进行设置,也可用FSTSW指令读取,该4位二进制的状态使FPU实现某种选择。C0还和SF配合使用表示堆栈的状态。 (8)TOP,堆栈栈顶指针。 (9)B,用来指示FPU当前是否处于忙状态,当B=1时,表示忙,反之处于不忙状态。
45
四、FPU的控制寄存器 (1)PM~IM低6位控制位,分别用来控制6种异常能否允许产生中断,这6种控制位分别用来屏蔽状态寄存器中的低6种状态位,即IM位用来屏蔽IE位,DM位用于屏蔽DE位等。 (2)2位PC位,用作精度控制,当2位PC位为00时,作24位单精度运算,10时为53位双精度运算,11时为扩展的双精度运算,即64位运算,01未用。 (3)2位RC位,用作舍入控制。
46
图3-13 FPU的控制寄存器
47
3.3 Pentium的虚拟存储器 3.3.1 Pentium的工作模式简介
Pentium的虚拟存储器(Vivtual Storage)技术、高速缓存(Cache)技术以及超标量流水线技术是微型计算机系统的三大支柱,虚拟存储器的目标是如何高速允许多个软件进程共享并使用主存储器这一容量有限的存储资源。虚拟存储器的实现不仅仅体现在计算机硬件系统上的完美无缺,而且虚拟存储器技术是操作系统的核心技术,操作系统中存储器管理程序的主要任务就是要将有限的主存储器不断地动态分配给各活动进程。
48
Pentium的工作模式分为:实模式、保护模式、虚拟86模式、平展模式、线性空间以及系统管理模式共五种。
Pentium外部的地址总线宽度36位,由控制寄存器CR4中物理地址扩充允许位PAE控制所使用的物理空间,一般设PAE=0,禁止地址的扩充,只使用32位的物理地址,32位地址由A31-A3及8个字节选择信号BE7-BE0组成,因此,最大物理地址空间是4GB。Pentium CPU外部数据总线宽度为64位,但CPU内部寄存器仍为32位,Pentium微处理器是32位微处理器
49
Pentium工作的保护模式 保护模式是受保护的虚拟地址模式(Protected Virtual Address Mode)的简称。从80386 CPU开始,就具有了保护模式,Pentium CPU内部也设有存储器管理部件MMU,其中,仍然包括分段部件SU和分页部件PU,通过系统程序员编程,Pentium可以工作在只分段或只分页或既分段又分页三种方式。这三种方式的关键建立在分段地址转换与分页地址转换的基础之上。
50
一、分段地址转换 1.利用GDTR与LDTR分别访问GDT与LDT 48位的全局描述符表寄存器包括32位全局描述符表的基地址和16位的表界限,GDT的长度不超过64KB。在保护模式下,Pentium支持多任务的运行,如果某一任务要访问GDT时,则以GDTR中32位基地址作为全局描述符表的基地址,再由每个任务选择符的高13位左移3位后作为GDT的偏移地址,指向所要访问的8字节的描述符。
51
每个任务有各自的代码段CS、数据段DS、还可能有附加的数据段ES、FS、GS以及堆栈段等,每个段有一个64位的段描述符,如图3-7所示,各个任务组成了自己的局部描述符表LDT,因此,在内存中有多个LDT 。
52
各任务公用的代码段、数据段的段描述符以及任务状态段TSS等系统段的描述符组成了全局描述符表GDT,内存中只有一个GDT。
53
当前任务访问LDT时,由LDTR中对应的64位描述符高速缓存器中32位基地址作为LDT的基地址,再由段选择符的高13位左移3位后作为LDT的偏移地址,指向所要访问的8字节的段描述符。如图3-14所示,其中的描述符也就是图3-4所示的描述符。
54
图3-14 由LDTR由访问LDT
55
当任务发生切换时,由LDTR中选择符的高13位左移三位后,作为GDT中的偏移地址,在GDT中取出该任务的LDT描述符,并装入到LDT对应的描述符高速缓存器,于是在LDTR中的高速缓存器中,存入了当前LDT的基地址,表界限以及性属性等,如图3-15所示:
56
图3-15 由GDTR访问GDT
57
在LDT中查到的描述符,其32位基地址如果只分段不分页的话,此32位基地址加上指令中的32位偏移量址,就求得32位的物理地址。
在GDT中查到的描述符,其32位基地址表示当前LDT的基地址,该描述符一定会由硬件自动存入高速缓存器中。
58
2.分段地址的转换 由于Pentium内部寄存器是32位,由于Pentium芯片组成的微机为32位机,访问存储器的指令仍然有直接寻址、寄存器寻址、基址寻址、变址寻址、基址加变地寻址等。
59
例【3-2】 几条访问内存指令 MOV AL, [ H] MOV AX, [EBX] MOV EAX,[ESI] MOV ECX,[EBX+EDI] MOV DX, [EBP] 只有最后一条指令访问堆找段SS,其余指令均访问数据段DS,构成逻辑地址为DS:32位偏移量或SS:32位偏移量,在32位机中,我们将逻辑地址称为虚拟地址,段寄存器称之为段选择符。
60
Pentium的分段地址转换过程图如图3-16所示。根据段寄存器即段选择符中b2位TI,确定访问当前LDT(TI=1)或GDT(TI=0),如果访问LDT,将13位索引值左移3位后,作为LDT基地址的偏移量,指向8B的段描述符,段描述符中的32位基地址加上指令中的32位偏移量成为32位线性地址,如果不分页只分段,结果为该机器指令所寻址的物理地址,如果还需要分页,此线性地址分为三段,即页目录(号)、页面(号)和偏移量。
61
如果TI=0,则访问GDT,与前述相同。 在图3-7中,系统还有一个48位的中断描述符表寄存器,其中32位的基地址是全系统中仅有的一个中断描述符表IDT的基地址。Pentium机中所有的中断,包括软中断、硬件中断以及CPU内部的异常中断,每个中断在IDT中均有一个描述符,IDT中最多可有256个描述符。每个中断描述符也是8字节,主要包括中断服务程序的入口地址,还有其他属性等信息。
62
图3-16 分段地址转换过程图
63
二、分页地址转换 分页地址转换由CPU内的分页部件PU来实现,它将32位的线性地址转换成32位的物理地址。这32位线性地址可能来自分段部件SU(既分段又分页方式),也可能是不分段只分页的情况,程序不提供段选择符,只由指令寄存器提供的32位地址作为线性地址,即10位的页目录(号)、10位的页表(号)和12位的页内偏移量。 在控制寄存器CR4中页面长度控制位PSE的控制下,Pentium的分页部件PU可以按80386/80486每页4KB分页(PSE=0),也可按每页4MB分页(PSE=1)
64
1.4KB分页方式 4KB分页方式采用两级分页方式,第一级有一个4KB的页目录表,可存放1024个页目录项,称之为高级管理,第二级有一个4KB的页表,可以存放1024个页表项,称之为低级管理。页目录项与页表项均为32位(4字节),如图3-17所示。
65
图3-17 页目录项与页表项
66
①P,存在位 P=1表示该页表/页存在,P=0,表示不存在。
②PWT,通写位 用于片外Cache的写控制,PWT=1时,片外Cache采用通写法,PWT=0时,片外cache使用回写法。 ③PCD,页Cache禁止位 用于对分页高速缓冲存储器的控制。若PCD=1时,CPU内部Cache被禁用。
67
④A,访问位 表示该目录项或页表项所对应的页面是否在近期被访问过。当A=1时表示近期被访问过,过一段时间后由操作系统清除为0,当页面调度程序需要调出一些页面时,通过检查A位状态,就可以知道各页的使用情况,并根据调度算法确定调出哪些页。
68
⑤D,写标志位 仅页表项中的D位有意义。当页表项所涉及到的页面被改写过,D位由硬件置成1,一直保持为1状态,直到该页被调出内存。当调度程序要调出此页时,首先检查D标志,若D=1,则把内存中的此页拷贝回外存相应位置,以刷新外存上的本页内容。若D=0,表示此页没有被改写,调度程序不必将它拷贝回外存,只是简单地丢弃本页内容,因而D位也被称之为“脏位”。
69
⑥PS(Page Size),—页大小位。只有页表项中有此位。PS=1,页面大小按4MB分页,PS=0,页面大小按4KB分页。
⑦U/S,用户/管理员。页面保护属性位。 ⑧R/W,读/写。页保护属性位 。 U/S与R/W结合起来,实现页保护。在分页部件中,具有页保护功能,将使用对象分为特权级3的用户以及特权级2、1、0的管理员用户,管理员用户不受页的保护。
70
Pentium 4KB分页方式地址转换如图3-18所示。将32位线性地址定义为三个字段,页目录(号)、页面(号)以及偏移量,分别为10位、10位和12位。
71
图3-18 Pentium 4KB分页方式地址转换图
72
例【3-3】 假设线性地址是3C445566H,CR3= H 解:①取线性地址的高10位作为页目录(号),求得 B,乘以4(左移2位)作为页目录项指针,结果为 B=3C4H。 ②查找页目录项的物理地址: H+3C4H = C4H。
73
例【3-4】 设所查找到页表项中20位页面基地址是12345H,线性地址仍然取3C44 5566H
解:转换后最终物理地址: H+566H= H
74
① 存储器分页管理通过CPU内部寄存器CR3和两级页表来实现,页目录表称为高级管理,页表称为低级管理。
② 将物理内存按4KB划分为一页,称为一个页面,每1024页为一个低级管理,由线性地址的中间10位地址确定。每页有一个起始地址,存放在页表中,由页表项中20位基址作为物理地址的高20位地址,低12位补0。共有1024页,每页的20位基地址排列存放在页表中,整个页表占4KB。
75
③ 在低级管理的上面是高级管理,由高级管理(页目录表)对1024个页表进行管理,每个页表有一个起始地址,由页目录项中20位基地址作高20位地址,低位补12个0,求得页表的起始地址,页目录表共计有1024个页表项,分别用于存放1024个页表的基地址,构成了页目录表,每个页目录项占4B,页目录表也占4KB 。
76
④ 将线性地址分为10位、10位、12位三个字段,选用两级管理可管理内存210×210×212B=4GB
77
⑤ 如果将32位线性地址分成两个字段,低12位为偏移量不变,一页仍为4KB大小,高20位仅为一个字段,仅采用单级页表,那么,将会有220个页表项(省去页目录表),即页表中有1M个页表项,同样可以管理220×212B=4GB内存,但是若每个页表项同样占4B,那么页表共计占4MB,这是不可取的。
78
2.4MB分页方式 将32位线性地址分为2个字段,页面(号)10位,偏移量22位,采用单级页表分页方式,由于页面(号)仅10位,页表中共有1024个页表项,每个页表项32位,页表仅占4KB,这是Pentium较80386/80486增加的分页方式。全系统只有一个页表,由控制寄存器CR3指向页表的起始地址。4MB分页方式的地址转换如图3-19所示。
79
4MB分页方式地址的转换过程如下:首先,10位页面(号)左移2位,与32位CR3相加产生页表项的物理地址,注意,所寻址页表项中仅有高10位为页面基地址,而不是4KB分页方式中的20位为页面基地址。将此10位地址左移22位,相当于低22位补0,然后与线性地址中的22位偏移量相加,最终产生32位的物理地址 。
80
图3-19 Pentium 4MB分页方式的地址转换过程图
81
三、保护模式的三种方式 1.只分段不分页 从分段地址转换过程图(图3-16)可以看出,分段不分页由16位的段选择符和一个32位的偏移地址组成,段选择符的低2位用于保护,高14位指示段,因此,一个进程可允许的最大虚拟空间为214+32=64TB。 段管理部件SU将段选择符与32位虚地址转换成32位线性地址,由于只分段不分页,此线性地址就是最终的32位物理地址。不需要分页,也就不需要经过页目录表与页表的转换,地址转换速度快。缺点是段的频繁调入调出,耗时多,内存管理性能稍差一点。
82
2.只分页不分段 Pentium在页管理部件PU的管理下,可以对存储器只实行分页管理,分段部件SU不工作。如前面所述,可以按4KB和4MB两种大小不同的页面分页。与程序的段选择符无关,仅将指令提供的32位虚地址看成是32位的线性地址,无论按4KB分页或是按4MB分页,均可形成32位物理地址,进程所拥有的最大虚存空间都是232=4GB。这种只分页不分段的保护模式也称为平展地址模式,比只分段不分页模式灵活。在Windows NT和Windows 95操作系统中采用了这种模式。
83
3.既分段又分页 分段分页方式是先分段后分页,在分段的基础上进行分页,分段所形成的32位线性地址不是最后的物理地址,而是提供给分页部件,作为页目录(号)、页表(号)以及页内偏移量,按4KB大小分页。一个进程的最大虚地址空间与只分段的虚地址模式相同,也是64TB,兼有分段与分页的优点,UNIX System V和OS/2操作系统使用了这种保护模式。
84
图3-20 分段分页地址转换过程图
85
(1)由于段选择符中TI=1,所以从64KB的局部描述符表中查找对应的段描述符,该段描述符的指针等于LDTR中32位基地址+段选择符高13位×8。
(2)由段描述符中32位段基地址+虚地址中32位偏移量=32位线性地址。线性地址的高10位为页目录(号),中间10位为页表(号),低12位为偏移量。 (3)以CR3中32位基地址为页目录表中基地址,按4KB大小分页,其分页的原理与图3-18中分页原理完全相同。
86
Pentium工作的实模式 实模式是实地址模式的简称。所谓实模式,是8088/8086 CPU工作的一种模式,指令中只允许出现逻辑地址,逻辑地址由16位段值与16位偏移地址组成,将16位段值乘以16,并加上16位偏移地址值,便产生20位的物理地址,这由CPU中总线接口单元的20位地址形成部件产生。产生地址信号A19-A0共20根,可寻址最大物理空间为1MB。MS-DOS操作系统仅支持实模式,Pentium CPU工作在Windows下,可以通过切换进入到DOS状态,运行采用实模式的16位应用程序。
87
8086的存储器寻址是将16位的段寄存器左移4位后,形成20位的段基地址,然后同16位的偏移量相加,最后产生20位的物理地址,可以寻址1MB内存空间,当相加产生的20位物理地址超出20位时,超出位被丢弃,即出现地址环绕现象。
88
例【3-5】 设8086的逻辑地址是FFFFHFFFFH,求其物理地址。
解:PA=FFFFH×16+FFFFH=10FFEFH 丢弃最高位1,则PA=0FFEFH
89
例【3-6】 当32位机工作在实模式下,设DS=1002H,FS=2000H,BX=3000H,求下列两条指令的逻辑地址分别是什么?
①MOV AX,DS:[BX] ②MOV EAX,FS:[BX] 解:逻辑地址表达方式为:段选择符:偏移量,那么两条指令的逻辑地址分别如下: 第①条 1002H: H 第②条 2000H: H
90
注意:中括号内的偏移量只允许为16位,不能为32位,例如不允许下列指令工作在实模式下: MOV AX,DS:[EBX]
MOV ECX,FS:[ESI]
91
32位机(80386/80486/Pentium)工作在实模式下的地址转换图如图3-21所示。32位机工作在实模式下,最大物理空间仍为1MB。MS-DOS采用实模式,Windows 3.X也可以运行于实模式,在实模式下,CPU与内存可以交换32位数据。
92
指令中涉及到的段寄存器(例如DS、FS)在这儿被称之为段选择符,指令中32位偏移量的高16位补0,形成了32位偏移量,将段选择符中的值乘以16设置到段寄存器的描述符高速缓存器的基地址字段,作为访问存储器的基地址,而把一个段的大小固定为64K字节,设置在描述符高速缓存器的段界字段。
93
图3-21 实模式下的地址转换过程图
94
虚拟8086模式简称虚拟86(V86)模式,它是在32位保护模式下支持16位实模式应用程序的一种保护模式。
Pentium工作的虚拟8086模式 虚拟8086模式简称虚拟86(V86)模式,它是在32位保护模式下支持16位实模式应用程序的一种保护模式。 在一般保护模式下,32位标志寄存器EFLAGS中的b17=0,即VM位=0,当VM=1时,切换到V86方式。
95
V86模式和实模式下的地址转换方式基本相同。虚拟86模式下的地址转换图如图3-22所示。如果在V86模式下禁止分页,那么其地址转换方式完全相同于实模式下的地址转换方式。如果允许分页功能的话,可以通过分页机制,在4GB的物理地址范围内分配多个8086的1MB地址空间 。
96
在进行地址转换时,把段寄存器的描述符高速缓存器中的基地址同偏移量相加而得到的地址称为线性地址,将线性地址再通过分页机制进行分页转换,就可以产生最终的物理地址。
当CPU工作在实模式下,其工作的代码位于特权级0,保护机构不工作。在V86模式下的代码则位于特权级3,保护机构工作,这要求预先在保护方式下对CR0的PG位置成1,即b31=1,于是就允许分页。
97
在虚拟86方式下,分页地址转换的过程如图3-23所示。由例【3-5】可知,32位线性地址的最大值为0010FFEFH,高11位恒为0,那么b31~b22这高10位一定全为0,线性地址的高10位作为页目录项的基地址,所以V86方式下,只访问页目录表中的第1个页目录项,本来可以有1024个页目录项。
98
线性地址的中间10位地址中,一般情况下高2位(b21、b20)均为0,所以只有低8位是有效位,那么可以访问256个页表项,考虑到FFFFH×16+FFFFH=10FFEFH的特殊情况,则相加后产生上溢出,使得b20上溢出为1,在b20=1的溢出情况下,而b19~b0只有000H~00FH共16种可能,所以可查找的页表项增加16个,变为256+16=272个。本来共计可查找1024个页表项,但是虚拟86模式下只可查找272个页表项。
99
图3-22 虚拟86模式下不分页地址转换过程图
100
在V86模式下,如果禁止分页,存储器寻址空间仅为1MB。这与8086基本上相同,每段存储空间最大为64KB 。
101
由于V86模式只能查找到一个页目录项,而不是1024个,所以V86模式可寻址物理空间,由页表项中的20位基地址与线性地址的低12位相拼而成为32位的物理地址,因此,可访问4GB存储空间。
102
在V86模式允许分页的情况下,物理页的大小为4KB,即按4KB大小分页,多任务中的每一个任务所用的全部页面可以定位在一个物理空间,这个空间大小为1MB,不同任务的代码定义在不同的1MB内存空间,4GB物理空间可以定义若干个虚拟8086的地址空间(1MB),把4GB物理存储器虚拟化了,这就是取名为虚拟8086模式的缘由。
103
图3-23 虚拟86模式下分页地址转换过程图
104
三种工作模式的相互转换 三种工作模式可以相互转换,如图3-24所示。CPU上电或复位后就进入实地址模式,通过对控制寄存器CR0中的b0位置1,即保护允许位PE置1,于是系统进入保护模式,若使PE复位,则返回到实地址模式。通过执行IRETD指令或者进行任务转换时,则从保护模式转变为V86模式,通过中断可以从V86模式转变到保护模式。在V86模式下可以复位到实地址模式。
105
图3-24 三种工作模式的相互转换
106
Pentium的存储保护 80386/80486/Pentium采用虚拟存储器技术的目的是为了更有效地使用有限的主存储器资源。在程序运行过程中,为了防止应用程序破坏系统程序,某一应用程序破坏其他应用程序,错误地把数据当作程序运行等故障的发生等,所采取的各种措施都称之为存储保护,最典型的存储保护是采用称之为特权级的保护方式。
107
一、特权级的级别 特权级保护是将系统中所有的程序分配相应的级别,特权级0的特权级别最高,操作系统(OS)的特权级为0,特权级别也就最高。特权级保护功能的主要目的是不准任何应用程序修改操作系统的数据,而又允许程序调用操作系统中提供的各种服务子程序。
108
Pentium四个特权级的保护示意图如图3-25。操作系统处于最内层,具有最高特权级0,依次向外,特权级降低,最外层特权级最低,而PL值最大,即PL=3。最外层一般是应用程序层,享有最低特权级。
①特权级高的数据段不能被特权级低的代码段访问。 ②特权级高的代码段不能向特权级低的代码段转移调用,反之是允许的。
109
图3-25 Pentium四个特权级的分层
110
二、三种类型特权级 1.CPL(Current PL),当前特权级。CPL是当前运行程序或任务的特权级,分别被保存在段寄存器CS即段选择符的b1b0位和当前任务寄存器的b1b0位。 2.DPL(Discriptor PL),描述符特权级。它表示该段或任务门的特权级,分别被保存在段描述符和门描述符的DPL域中,段描述符的DPL具体在访问权字节中的b6b5位。 3.RPL(Requested PL)请求特权级。用于表示段选择符的另一种特权级,它保存在段选择符的b1b0位。表示本次访问所要求的特权级。
111
例【3-7】三种特权级的应用举例 Pentium的数据段寄存器有DS、ES、FS、GS以及堆栈段寄存器SS,为了访问某一数据段的内容,必须通过MOV、LDS、LES等指令将数据段的选择符装入相应的段寄存器中,Pentium在将选择符装载到段寄存器之前,必须要将当前运行程序和任务的CPL,所要请求的RPL与要访问的数据段描述符中DPL进行比较,DPL中值要大于或等于CPL以及RPL的值,才能将选择符装载到段寄存器中,也就是要满足如下公式的要求: DPL数据段描述符≥MAX(CPL当前代码段,RPL数据段选择符) (3-1)
112
设数据段描述符的特权级为2,设有四个当前程序,当前代码段特权级CPL分别为0、1、2、3,而段选择符的请求级RPL分别为3、1、2、3,求出哪一个段选择符可以装入段寄存器中?根据公式(3-1),分析结果如表3-3所示:
113
表3-3 CPL、RPL、DPL之间的关系 当前代码段CPL 段选择符请求级RPL 数据段描述符DPL 访问与否 原因 3 2 否
3 2 否 RPL>DPL 1 可以 DPL>CPL、RPL DPL=CPL、RPL DPL<CPL、RPL
114
3.4 Pentium的超标量流水线 Pentium具有两条关于指令的标量流水线,所以称之为超标量流水线。每条指令流水线分为5段,CPU在一个时钟周期内可以执行两条指令。它兼有复杂指令系统计算机(CISC)与精减指令系统计算机两者的特性。
115
Pentium整数指令流水线的结构请参考图3-1。两条整数流水线分别称之为U流水线和V流水线。两条指令流水线同时执行先后两条相邻的指令,先一条在U流水线中执行,后一条在V流水线中执行,“U”、“V”有先后顺序及相邻的意思。
116
Pentium的超标量流水线结构 一、两条指令流水线共用部件 ⒈ 超标量流水结构中有两个预取缓冲器,均为32字节,负责从CPU内部Cache或主存中预先取出指令并缓存。 ⒉ 指令译码器要完成对指令的译码、相邻两条指令的配对检查等操作。如果遇到转移指令,要在译码之后,将转移指令地址送到转移目标缓冲器BTB中进行查找。 ⒊ 微程序控制器中的控制ROM存储了若干条机器指令的微程序。
117
二、非公用的流水部件 ⒈ U、V两个地址生成部件,分别用于产生存储器操作数的地址,Pentium工作在不同模式下的逻辑地址都要转换成物理地址以便访问数据Cache,转换后援缓冲器TLB可用来加快这种地址的转换速度。 ⒉ 8KB的数据Cache是双端口结构,可同时由U、V两条流水线访问,一个时钟周期内能存取两个32位数据,或者是64位的浮点数。
118
⒊ 两个32位的ALU对简单指令的运算均只需要一个时钟周期。简单指令指ADD EAX,EBX之类指令,不涉及到访问存储器的运算指令。流水线中还包括8个32位通用寄存器,即EAX、EBX、ECX、EDX、EBP、ESI、EDI、ESP。
119
3.4.2 U、V流水线及其分工策略 一、U、V流水线的基本原理
U、V流水线都由5段组成,前两段U、V流水线共享,后3段分离进行。U、V流水线工作的基本原理图见图3-26所示。 第一段是预取段——PF,在这一段要从指令Cache中取出指令,并将取出的指令存入预取缓冲器中。
120
第二段是指令译码1段——D1,在这一段,要确认指令的操作码、寻址方式以及完成指令的配对检查和转移指令的预测,前后连续的两条指令i1和i2都要被译码完成,最终要判断这两条指令能否并行发射到下一段。
121
第三段是指令译码2段——D2,在这一段,要计算并产生存储器操作数的地址,不是所有指令都要计算存储器操作数,但每条指令都必须流经这一段。
122
第四段是执行段——EX,此段主要在ALU、桶形移位器和其他功能部件中完成指定的运算。
第五段是写回段——WB,将计算结果写回到标志寄存器、目的寄存器以及其他目的地方。
123
图3-26 U、V流水线工作的基本原理
124
⒊ 两条指令不同时含有立即数,不同时都是含有偏移量的相对寻址指令。 ⒋ 只有i1条指令允许带有前缀。
D1段是流水线中的关键段,这一对指令经译码后同时发射到下一段必须要满足下列4个条件: ⒈ 两条指令都是简单指令。 ⒉ 相邻两条指令之间不能有数据相关的问题 共计有三类数据相关冲突,即写后读(RAW)、读后写(WAR)以及写后写(WAW)相关。 ⒊ 两条指令不同时含有立即数,不同时都是含有偏移量的相对寻址指令。 ⒋ 只有i1条指令允许带有前缀。
125
例【3-8】 MOV AX, BX MOV ECX,ESI 1NC AX ADD EBX,EDI 前两条指令与后两条指令都是简单指令,都可以同时发射到下一段。
126
例【3-9】写后读数据相关(RAW)举例 i1条 ADD AX,BX i2条 MOV CX,AX 从上看出,i2条指令在i1条指令结果尚未写入AX中之前,就要读AX中的值,应该是先将运算结果存入到AX中,后由i2条指令读AX,由于两条指令同时进入流水线就发生写后读数据相关冲突。
127
例【3-10】读后写数据相关(WAR)举例 i1条 MOV [EBX],AX i2条 MOV AX,BX 由于两条指令同时进入流水线,i1条中AX尚未存入内存,也就是AX中值尚未取出时,i2条指令就要把BX中值存入AX中,发生这种数据相关称之为读后写(WAR)相关,这两条也不能同时发射到下一段。
128
例【3-12】写后写数据相关举例 i1条 MUL AX,BX i2条 ADD AX,CX 由于i2条指令执行时间比i1条指令执行时间短,i2条指令提前把加法运算结果写入AX中,发生了WAW数据相关。
129
二、Pentium对U、V流水线的调度策略
U、V两条流水线的功能是不一样的,U流水线能执行指令系统中的所有指令,而V流水线只能执行简单的整数指令和少数浮点数指令。Pentium对U、V流水线的调度策略采用按序发射与按序完成的策略。图3-27描述按序发射按序完成的调度策略。
130
图3.27 按序发射按序完成的调度策略
131
如图中的i5、i6两条指令,也是因为i2指令延长了一个时钟周期,i5和i6在第4个时钟周期处于停顿状态,在第7个时钟周期,由于i3指令延长了一个时钟周期,所以i5、i6均停顿了一个时钟周期,U流水线中的i5条指令在EX段能按时完成,所以在第9个时钟周期写回结果,但i6条指令因EX段的延时,在第10个时钟周期才写回结果;反过来,如果i6执行快于i5的话,则i6要停顿等待U流水线中的i5条指令,即V流水线不得早于U流水线就结束一条指令的执行过程。
132
3.5 Pentium的引脚信号 Pentium的主要引脚信号按其功能可分为10类,在图3-28中,给出了各类所包含的引脚信号及其I/O方向。
133
图3-28 Pentium的主要引脚信号
134
一、地址线及其控制信号 (1)A20M*,用于屏蔽含A20以上的地址线。 (2)A1~A31,29位地址线。
(3)ADS*,指示地址状态输出有效,即总线周期开始。 (4)AP,地址整体偶校验位输出线,双向。 (5)APCHK*,地址的偶校验出错指示信号,输出线,低电平有效。
135
二、数据线及其控制信号 (1)D63~D0,64位数据线。 (2)BE7*~BE0*,8位字节允许信号,低电平允许。 (3)DP7~DP0,奇偶校验信号。 (4)PCHK*,数据奇偶校验出错信号,输出。 (5)PEN*,数据奇偶校验允许信号,输入。
136
三、Cache控制信号 (1)CACHE*,Cache控制信号,输出,低电平有效。 (2)EADS*,外部地址有效信号。输入,低电平有效。
(3)HIT*,Cache命中信号。输出,低电平有效,当其有效,表示Cache被命中。 (4) HITM*,Cache修改信号。输出,低电平有效,当其有效,表示当前命中的Cache已被修改过。 (5)1NV,无效请求信号。若此输入信号为高电平,使Cache区域不可再使用,这是因为1NV 为高电平,使得Cache已处于无效状态。
137
(6)PCD,Cache禁止信号。输出,高电平有效。
(7)PWT,CPU外部Cache的控制信号。PWT=1时,主板上Cache使用通写方式,PWT=0时,主板上Cache则使用回写法。 (8)FLUSH*,Cache擦除信号。输出,低电平有效。 (9)KEN*,Cache允许信号。输入,低电平有效。 (10)WB/WT*,CPU内Cache写选择信号。 (11)AHOLD,地址保持/请求信号。输入,高电平有效。
138
四、总线周期控制信号 (1)D/C*,数据/控制信号。输出线,为高电平时,表示当前总线周期传输的是数据,为低电平时,指示当前总线周期传输的是指令。 (2)M/IO*,存储器/输入输出访问信号。输出线,为高电平时,指示当前总线周期访问存储器,为低电平时,则为访问I/O端口。 (3)W/R*,读/写控制信号。输出线,为高电平时,表示当前总线周期为CPU写存储器或写输出端口,为低电平时,指示为读存储器或读输入端口。
139
(4)LOCK*,总线封锁信号。输出,低电平有效,当其有效时,当前总线被锁定,使得其他主模块不能获得总线控制权,从而确保Pentium CPU当前对总线的控制权。
(5)SCYS,分割周期信号。输出,高电平有效。 (6)NA*,下一个地址有效信号。输入,低电平有效。 (7)BRDY*,突发就绪信号。输入,低电平有效,当其有效,表示外设已处于突发传输准备好状态。
140
五、系统控制信号 (1)INTR,可屏蔽中断请求输入信号。 (2)NMR,非屏蔽中断请求输入信号。 (3)RESET,系统复位信号。输入,高电平复位。 (4)CLK,系统时钟信号。输入,由主板上提供时钟脉冲。 (5)INIT,初始化信号。输入,高电平有效。
141
六、检测与处理信号 (1)BUSCHK* ,总线检查信号。输入,低电平有效。 (2)IERR*,内部奇偶出错或功能性冗余校验出错信号。
(3)FERR*,浮点运算出错信号。输出,低电平有效。 (4)FRCMC*,冗余校验控制信号。输入,低电平有效当其有效,CPU进行冗余校验。 (5)IGNNE*,忽略浮点运算错误的信号。输入,低电平有效。
142
七、总线仲裁信号 (1)HOLD,总线请求信号。输入,高电平请求。 (2)HLDA,总线请求响应信号。输出,高电平有效,当其有效,表示CPU已让出总线控制权。
143
(3)BREQ,总线周期请求信号。输出,高电平有效,此信号有效时,表示CPU已提出了一个总线请求,并正在占用总线。此信号用于告示其他能控制总线的主模块。
(4)BOFF*,强制让出总线信号。输入,低电平有效,CPU采样到为低电平时,立即放弃总线控制权,直到变为无效电平时,CPU才启动被暂停的总线周期。
144
八、系统管理模式信号 (1)SMI*,系统管理模式中断请求信号。使CPU进入系统管理模式的中断请求输入信号。 (2)SMLACT*,系统管理模式信号。输出,低电平有效,当其有效,表示当前CPU处于系统管理模式。
145
九、跟踪和检查信号 (1)PM1~PM0及BP3~BP0,PM1~PM0是性能监测信号,BP3~BP0是与调试寄存器DR3~DR0中的断点相匹配的而输出到外部的信号。 (2)BT3~BT0,分支地址输出信号。 (3)IU,指令U流水线信号。高电平有效,有效时表示此时U流水线正在完成指令的执行过程。
146
(4)IV,指令V流水线信号。高电平有效,有效时表示此时V流水线正在完成指令的执行过程。
(5)IBT,输出,高电平有效,有效时,表示指令发生分支。 (6)R/S*,探针信号。输出,此信号由高电平跳变到低电平时,将会使CPU停止执行指令而进入空闲状态。 (7)PRDY,R/S*的响应信号。输出,高电平有效,有效时表示CPU当前已停止指令的执行,可以进入测试状态。
147
(5)TRST*,测试复位输入端。当输入低电平后,复位测试状态,即系统退出测试状态。
十、测试信号 (1)TCK,测试时钟信号输入端。 (2)TDI,串行测试数据输入端。 (3)TDO,测试数据结果输出端。 (4)TMS,测试方式选择端。 (5)TRST*,测试复位输入端。当输入低电平后,复位测试状态,即系统退出测试状态。
148
3.6 Pentium Pro~Itanium的技术概述
自1993年Pentium问世之后,Intel公司相继推出了 Pentium Pro(1995) Pentium Ⅱ(1997年) Pentium Ⅲ(1998年) Pentium 4(2000年)等微处理器,近几年又推出了64位的微处理器Itanium(安腾)
149
英特尔微处理器芯片 Pentium 4 80386 Pentium
150
3.6.1 Pentium Pro微处理器简介 (1)Pentium Pro内部配置了L2 Cache 256KB或512KB。
(2)不需要额外的逻辑电路就可以支持多达4个CPU,特别有利于服务器系统的组成。
151
(3)CPU有36位地址线,可寻址物理地址空间64GB,虚存空间为64TB。CPU外部数据总线仍为64位。
(4)Pentium Pro最重要的技术是采用了RISC技术。 (5)外型使用了长方形387管脚陶瓷封装。微处理器要插接到 Socket 8型插座上。 Pentium Pro是为服务器和工作站而设计的。
152
Pentium Ⅱ微处理器简介 Pentium Ⅱ微处理器是面向个人计算机和工作站而设计的。PⅡ微处理器所提供的整数运算和浮点运算的功能以及多媒体新技术等三方面的优势,特别适合于三维图形、图像及多媒体应用程序的执行。
153
(1)微处理器内部有2级高速缓存:L1 Cache容量32KB,L2 Cache容量512KB。PentiumⅡ采用单边接触的卡盒式封装,CPU芯片、L1和L2 Cache都封装在CPU内。
(2)Pentium Ⅱ微处理器内部总线宽度高达300位,外部仍为64位数据线,36位地址线,可寻址物理地址空间64GB,虚存地址空间64TB。
154
(3)采用了双重独立的总线结构。Pentium ⅡCPU一方面由具有纠错功能的64位总线专门负责与系统内存及I/O端口之间的数据传输,另一方面,CPU由具有纠错功能的专用总线负责与L2 Cache交换数据,两种总线并行工作,但相互独立。 (4)动态执行技术与MMX技术。Pentium Ⅱ增加了57条MMX指令,集成了MMX技术,增强了音频、视频、图形等多媒体应用的处理能力。可以加速数据的加密、解密以及数据的压缩和解压过程。
155
Pentium Ⅲ微处理器简介 Pentium Ⅲ(PⅢ)微处理器主要有3个系列产品,主频时钟在400MHz733MHz之间,总线时钟(外部时钟)为100MHz和133MHz两种。仍然经过倍频后产生CPU内部工作的主频时钟。电源电压使用范围在1.1V~1.65V之间,电源功耗大大降低,外型采用了PC-PGA的新型封装技术。
156
(1)PⅢ增加了70条多媒体指令SSE指令集,12条新的多媒体指令,进一步提升了视频处理、图形图像处理的质量;50条单指令多数据浮点运算指令,可以同时处理4对单精度浮点数,或同时处理单精度和双精度浮点数,由于既保留了57条MMX指令,又增加了50条浮点运算指令,解决了不能同时处理MMX数据和浮点数的矛盾,极大地提高了浮点数运算的速度;在SSE新指令集中,还设有8条连续数据流内存优化处理指令,并且采用了新的数据预存取技术,大大提高了处理连续数据流的速率。
157
(2)在PⅢ中,新增了8个128位(4×32位)单精度浮点寄存器,配合SEE指令的执行,可以提高浮点数运算与处理的速率。
PⅢ主频的提高以及SSE技术的应用,使得整体性能大有提高,在3D图形图像处理、语音处理与识别、视频实时压缩、浮点数的运算、网络软件运行的速率等方面,都有很大的改善与提高。
158
Pentium 4微处理器简介 Pentium 4晶体管数目增加到4200万个,CPU主频有1.4GHz、2.2GHz等版本,由于主频大大提高,动态电流增加,外加晶体管数目增加,所以电源功耗明显增加,高达55W,没有选用传统的低压供电方式,而是采用了12V直流供电。CPU插座使用478条引脚的产品,采用Socket 423插座将CPU固定在主板上。
159
Pentium 4微处理器简介 (1)CPU数据总线的并行传输速率大大加快,一个总线时钟周期内可同时传输4组64位的数据,称之为四倍爆发式总线技术。P4通过850外围芯片组构成的主机系统,与内存构成双通道的方式传输数据,并行传输带宽可以达到3.2GB/S。 (2)Pentium 4内部设计了两组独立运行的ALU,在一个主频时钟周期的上升沿与下降沿之间完成所需要的运算,平均在P4内部一个主频时钟内可以完成2条算术/逻辑运算指令。
160
Pentium 4微处理器简介 (3)P4保留了PⅢ中MMX指令,同时又增加了70条新的MMX指令。保留了PⅢ中原有的SSE指令,又增加了新的SSE指令,组成了共计有144条的所谓SSE2指令集。 (4)将指令Cache直接连接到分支预取单元与执行单元,这与以往的L1Cache的结构是有区别的,其结构还考虑到了微指令的格式,当执行重复性代码时,可以提高程序运行的速度,称这种技术为指令跟踪缓存(Trace Cache)技术。
161
Itanium微处理器简介 Itanium(安腾)是Intel公司推出的64位微处理器,其外部数据总线为64位,地址总线也是64位,内部集成了约2.2亿个晶体管,其集成度大约是Pentium的10倍,特别适用于高档服务器和工作站。
162
Itanium微处理器简介 (1)主要技术特点中最重要的一点是采用了完全并行指令计算(Explicitly Parallel Instruction Computing, EPIC)技术。EPIC技术的特点是使指令的并行性能好,在增加的EPIC指令组中,指令长度较长,包括功能全,指令中既包含了常规指令的操作码和操作数,还包括并行执行的方法等信息。在程序运行时,由编译器将程序编译成几组机器代码,经分组后将多条指令打成一个包,几组指令可以在不同的执行部件中执行。
163
Itanium微处理器简介 (2)Itanium内部有2-3级Cache。Itanium Ⅰ微处理器内含有2级Cache,L1 Cache包括指令Cache和数据Cache各16KB,L2 Cache容量是96KB,还可以在主板上外接4MB的三级Cache。Itanium Ⅱ内部具有L1、L2、L3共三级Cache,L3Cache的容量为3MB。 (3)多个执行部件和多个通道的并行操作。Itanium内部有4个整数算术逻辑运算单元ALU和4个浮点执行部件FNAC,并有9个功能通道,多个执行部件和多个通道可使Itanium在1个主频时钟周期内执行20个操作,特别适用于密集型浮点运算和三维图形的处理。
164
Itanium微处理器简介 (4)采用了新的分支预测技术,通过编译软件可以预先将分支结构的程序段分成几个指令序列,然后通过Itanium超强的并行处理能力,同时执行这些指令序列,使得分支程序在流水线中也能顺利执行,而不产生断流,起到了消除分支预测错误的作用。 (5)新增了许多寄存器,使Itanium在峰值操作状态下,也不会因寄存器不充裕而产生等待延时等问题,可以大大提高系统工作的效益,特别适合于多任务操作。Itanium内部包含有128个通用寄存器,128个浮点寄存器以及用于系统的64个寄存器。
165
习 题 三
Similar presentations