第 3 章 奔腾系列微处理器

Preview:

DESCRIPTION

第 3 章 奔腾系列微处理器. 教学目的和教学要求. 掌握 Pentium 微处理器的原理结构、基本寄存器组中各寄存器的组成和功能、 Pentium 工作的实模式、保护模式以及虚拟 8086 模式 掌握 Pentium 微处理器的超标量流水线技术 熟悉存储器的保护、浮点运算部件以及与之相配套一起实现浮点运算的浮点寄存器等 了解 Pentium 微处理器的外部引脚 了解 Pentium Pro  Itanium 的技术概况. 本章重点、难点. 重点: Pentium 工作的实模式、保护模式以及虚拟 8086 模式的工作原理 - PowerPoint PPT Presentation

Citation preview

第第 33 章 奔腾系列微处理器章 奔腾系列微处理器

掌握 Pentium 微处理器的原理结构、基本寄存器组中各寄存器的组成和功能、 Pentium工作的实模式、保护模式以及虚拟 8086 模式 掌握 Pentium 微处理器的超标量流水线技

术 熟悉存储器的保护、浮点运算部件以及与

之相配套一起实现浮点运算的浮点寄存器等 了解 Pentium 微处理器的外部引脚 了解 Pentium ProItanium 的技术概况

教学目的和教学要求

重点: Pentium 工作的实模式、保护模式以及虚拟 8086 模式的工作原理 Pentium 微处理器的超标量流水线技术 Pentium 微处理器的原理结构

难点: Pentium 微处理器的只分段、只分页管理 Pentium 微处理器的既分段又分页管理 存储保护中的特权级保护方式

本章重点、难点

3.1 Pentium 性能和结构特点 3.1.1 Pentium 性能简介( 1 )

  1993 年 3月 Intel 公司推出了第五代微处理器 Pentium Pentium 是微处理器本质上的一次创新  Pentium 采用了 0.8μm 双极性互补金属氧化半导体( BiCMOS )技术,它属于单芯片超标量流水线微处理器,片内集成了多达 310 万个晶体管,工作电压+5V ,功耗 15W 。片内时钟频率(微处理器主频)与外片主总线的时钟频率相等,均为 60MHz 或 66MHz 两种

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 )的主频与工作电压

表 3-1 几种 Pentium 的主频与工作电压 型 号 主总线时钟

频( MHz )

倍数因子 主频( MHz ) 工作电压

Pentium -90

60 1.5 90 3.3V 或2.9V

Pentium -100

60 1.5 100 3.3V Pentium -120

60 2 120 3.3V

Pentium -133

60 2 133 3.3V

Pentium -150

60 2.5 150 3.3V

Pentium -166

66 2.5 166 3.3V

Pentium -200

66 3 200 3.3V

3.1.1 Pentium 性能简介( 3 )

  Pentium 通往外部存储器的数据总线为 64位, CPU 内部主要寄存器的宽度仍然为 32 位,那么 Pentium 、 Pentium ( P54C )应该是 32位微处理器。外部 64 位数据总线( D63-D0)每次可同时传输 8 字节的二进制信息,若选用主总线时钟频率 66MHz 计算,即存储器总线的时钟频率也为 66MHz ,则 Pentium 与主存储器交换数据的速率可为 528MB/S

3.1.2 Pentium 的原理结构 (1) 一、 Pentium CPU 内部的主要部件① 总线接口部件②U 流水线和 V 流水线③ 指令高速缓冲存储器 Cache④ 数据高速缓冲存储器 Cache⑤ 指令预取部件⑥ 指令译码器⑦ 浮点处理部件 FPU⑧ 分支目标缓冲器 BTB⑨ 微程序控制器中的控制 ROM⑩ 寄存器组Pentium 微处理器的原理结构图如图 3-1 所示

Pentium CPU 原理结构图

3.1.2 Pentium 的原理结构( 2 )

二、原理结构 在 Pentium CPU 中,总线接口部件实现 CPU 与系统总线之间的连接,其中包括 64位双向的数据线、 32位地址线和所有的控制信号线,具有锁存与缓冲等功能,总线接口部件实现 CPU 与外设之间的信息交换,并产生相应的各类总线周期

3.1.2 Pentium 的原理结构( 3 )

1. 互相独立的指令 Cache 和数据 Cache   Pentium 则在片内设置了 2个独立的 8KB Cache ,分别用于存放指令代码与数据。指令 Cache 是内存中一部分程序的副本,通过猝发方式从内存中每次读入一块存入某一 Cache行中,便于 CPU执行程序时取出并执行,数据 Cache 是可以读写的,双端口结构,每个端口与 U、 V两条指令流水线交换整数数据,或者组合成 64位数据端口,用来与浮点运算部件交换浮点数据,指令 Cache 与数据 Cache 均与 CPU 内部的 64位数据线以及 32位地址线相连接

3.1.2 Pentium 的原理结构( 4 )

互相独立的指令 Cache 和数据 Cache 有利于 U、 V两条流水线的并行操作,它不仅可以同时与 U、 V两条流水线分别交换数据,而且使指令预取和数据读写能无冲突地同时进行

可以通过硬件或软件方法来禁止或允许使用 Pentium CPU 内部的 Cache

3.1.2 Pentium 的原理结构( 5 )

2. 超标量流水线 Pentium 有 U 、 V 两条指令流水线,故称之为超标量流水线,超标量流水线技术的应用,使得 Pentium CPU 的速度较 80486 有很大的提高。因此,超标量流水线是 Pentium 系统结构的核心

3.1.2 Pentium 的原理结构( 6 )

U 、 V 流水线中整数指令流水线均由 5段组成。分别为预取指令( PF)、指令译码( D1 )、地址生成( D2 )、指令执行( EX)和结果写回( WB )

由于采用了指令流水线作业,每条指令流水线可以在 1 个时钟周期内执行一条指令。因此,最佳情况下一个时钟周期内可以执行两条整数指令

3.1.2 Pentium 的原理结构( 7 )

  3. 重新设计的浮点运算部件   Pentium CPU 内部的浮点运算部件在 80486 的基础上进行了重新设计。如图 3-1 所示。浮点运算部件内有专门用于浮点运算的加法器、乘法器和除法器,还有 80 位宽的 8个寄存器构成了寄存器堆,内部的数据通路为 80位。浮点运算部件支持 IEEE754 标准的单、双精度格式的浮点数,还可以使用一种临时实数的 80 位浮点数 

3.1.2 Pentium 的原理结构( 8 )

  Pentium对浮点数的一些常用指令,例如加法指令 ADD ,乘法指令 MUL等,都采用了新的算法,并将新的算法用硬件来实现,使得浮点数运算的速度大大提高,其速度相当于 80486的 10 多倍

3.1.2 Pentium 的原理结构( 9 )

   4. 以 BTB 实现动态转换预测 Pentium 采用了分支目标缓冲器( branch target buffer )实现动态转移预测,可以减少指令流水作业中因分支转移指令而引起的流水线断流

引入了转移预测技术,不仅能预测转移是否发生,而且能确定转移到何处去执行程序

例【 3-1 】下面是连续传送 100 个字节的循环程序段

MOV SI , 0200H   ;源数据区偏移地址给 SI MOV DI , 0500H    ;目的数据区偏移地址给 DI MOV CX , 64H     ;待传送字节数为 100 ,赋给 CXABC : MOV AL , [SI] ;从源区取出一个字节 MOV [DI] , AL ;存入目的数据区 INC SI ;源地址指针加 1 INC DI ;目的地址指针加 1 DEC CX ; CX=CX-1 JNZ ABC ;若 CX≠0 ,转 ABC

·······

从上述程序可以看出,许多分支转移指令转向每个分支的机会不是均等的,而且大多数分支转移指令排列在循环程序段中,除了一次跳出循环体之外,其余转移的目标地址均在循环体内。因此,分支转移指令的转移目标地址是可以预测的,预测的依据就是前一次转移目标地址的状况,即根据历史状态预测下一次转移的目标地址。预测的准确率不可能为 100%,但是对于某些转移指令预测的准确率却非常高

3.2 Pentium 的寄存器

 

Pentium 的寄存器可以分为三组:①基本寄存器组:包括通用寄存器、指令寄存器、标示寄存器以及段寄存器②系统寄存器组:包括系统地址寄存器、控制寄存器③浮点部件寄存器组:包括数据寄存器堆、控制寄存器、状态寄存器、指令指针寄存器和数据指针寄存器以及标记字寄存器

  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位寄存器

3.2 .1  基本寄存器组

   Pentium 通用寄存器

段寄存器及段描述符高速缓存器如图 3-3所示, Pentium 有 6个 16 位段寄存器,每个段寄存器对应有一个 64 位的描述符,用户不可见。6个段寄存器的长度均为 16 位。除 CS 和 SS 分别是代码段寄存器和堆栈段寄存器之外,其余的 DS 、 ES 、 FS 、 GS都是数据段寄存器

二、段寄存器及段描述符高速缓存器

Pentium 段寄存器及段描述符高速缓存器

每个段对应一个段描述符( 8个字节),6个段描述符存放在 CPU 内的段描述符高速缓存器中,它们均由内存的描述符表中拷贝而成,以便 CPU访问某一段时,均按存放在CPU 内该段的段描述符所描述的信息进行操作。每个段描述符的具体组成如图 3-4 所示

1. 6 个段描述符

图 3-4 段描述符的组成

每个段寄存器的组成如图 3-5 所示。在保护模式下,段寄存器被称作为一个 16 位的段选择字,其中 b1 、 b0 位为请求特权级 RPL,可以请求特权层的级别 0-3级

2 . 6 个 16 位段寄存器

Pentium CPU 中有一个 32位的指令指( EIP )和一个 32位的标志寄存器( EFLAGS ),如图 3-6 所示

三、指令指针和标志寄存器

EIP 保存下一条待执行指令所在代码段内的偏移值,也就是偏离代码段首地址的字节地址数值。 EIP 的低 16 位为 IP ,供实地址方式下采用

EFLAGS 在 8086 16 位 FLAGS 基础上扩充了高16 位,其中, FLAGS b11~b0 中保留了 8086 CPU 中 6个状态标志和 3个控制标志,增加了NT与 IOPL,高 16 位中新增了 6 个标志位。这些扩充标志位的含义参考教材

  Pentium 的系统寄存器组包括 4 个表所对应的 4 个基地址寄存器 GDTR、 IDTR、 LDTR、 TR,也称为 4 个段基地址寄存器,还包括 5 个控制寄存器 CR0、 CR1、 CR2、 CR3、 CR4。系统寄存器组中的所有寄存器都不可能被用户访问,只能由特权级为 0的操作系统程序访问

3.2.2 系统寄存器组

   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

一、 4 个表基地址寄存器

图 3-7 4 个表基地址寄存器

(3)LDTR ( Local Descriptor Table Register ),局部描述符寄存器。包括 16 位段选择符,不可编程的 64位描述符寄存器。在 64 位描述符寄存器中,有 32 位 LDT的线性基地址, 20位的表限及 12位的描述符属性 (4)TR,任务寄存器。包括 16 位段选择符, 64 位描述符寄存器,其中, 32 位任务状态段的线性基地址,20位的表限及 12位的描述符属性

1 . CR0 控制寄存器

二、 5 个控制寄存器

2. CR2 页故障线性地址寄存器 用于保存最后出现页故障的 32位线性地址。操作系统中的页异常处理程序可以通过检查 CR2的内容,得知 32位的线性地址。

3. CR3 页目录基址寄存器 其中高 20 位存放页目录表的物理基地址。在进行分页变换时,加上10位线性地址×4 ,找到某一存储容量为 4B的页描述符。在页目录基址寄存器的低 12 中,有 PCD 和 PWT两位控制位,其余 10 位保留

图 3-9 控制寄存器 CR2 、 CR3

4 . CR4允许结构扩展的标志寄存器 32 位 CR4 中仅使用了 9个控制位,其余 23 位保留

5 .模式专用寄存器

Pentium取消了测试寄存器,而用一组专用寄存器来实现更多的功能。这组寄存器具有测试、跟踪、性能检测以及机器检查等功能

Pentium 内部有一个浮点运算部件,与之配套一起实现浮点运算的浮点寄存器有 : 8 个数据寄存器 1个标记字寄存器 1个状态寄存器 1个控制寄存器 1个数据指针寄存器

3.2.3 浮点寄存器组

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只须通过检查标记位,就可以知道数据寄存器是否空等

图 3-11 Pentium 的浮点寄存器

   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 ,则指示堆栈下溢引起无效故障

三、状态寄存器

( 6) ES ,错误标志位,以上任何一个故障都会使 ES=1 ,且使 CPU 引脚信号变为低电平

( 7) C0- C3 ,条件码,这 4 位条件码可以用SAHF指令进行设置,也可用 FSTSW 指令读取,该 4 位二进制的状态使 FPU 实现某种选择。 C0还和 SF配合使用表示堆栈的状态

( 8) TOP ,堆栈栈顶指针( 9 ) B ,用来指示 FPU当前是否处于忙状态,当 B=1 时,表示忙,反之处于不忙状态

( 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 位,用作舍入控制

四、 FPU 的控制寄存器

图 3-13 FPU 的控制寄存器

3.3 Pentium 的虚拟存储器

  3.3.1 Pentium 的工作模式简介   Pentium 的虚拟存储器( Vivtual Storage )技术、高速缓存( Cache )技术以及超标量流水线技术是微型计算机系统的三大支柱,虚拟存储器的目标是如何高速允许多个软件进程共享并使用主存储器这一容量有限的存储资源。虚拟存储器的实现不仅仅体现在计算机硬件系统上的完美无缺,而且虚拟存储器技术是操作系统的核心技术,操作系统中存储器管理程序的主要任务就是要将有限的主存储器不断地动态分配给各活动进程

   Pentium 的工作模式分为:实模式、保护模式、虚拟 86 模式、平展模式、线性空间以及系统管理模式共五种。

   Pentium 外部的地址总线宽度 36位,由控制寄存器 CR4 中物理地址扩充允许位 PAE控制所使用的物理空间,一般设 PAE=0 ,禁止地址的扩充,只使用 32位的物理地址, 32位地址由 A31-A3及 8个字节选择信号 BE7- BE0组成,因此,最大物理地址空间是 4GB 。 Pentium CPU 外部数据总线宽度为 64 位,但 CPU 内部寄存器仍为 32 位,Pentium微处理器是 32位微处理器

3.3.2 Pentium 工作的保护模式

 保护模式是受保护的虚拟地址模式( Protected Virtual Address Mode )的简称。从 80386 CPU开始,就具有了保护模式, Pentium CPU 内部也设有存储器管理部件 MMU ,其中,仍然包括分段部件 SU 和分页部件 PU ,通过系统程序员编程, Pentium 可以工作在只分段或只分页或既分段又分页三种方式。这三种方式的关键建立在分段地址转换与分页地址转换的基础之上

   1.利用 GDTR与 LDTR分别访问 GDT与 LDT 48 位的全局描述符表寄存器包括 32 位全局描述符表的基地址和 16 位的表界限, GDT的长度不超过 64KB 。在保护模式下, Pentium支持多任务的运行,如果某一任务要访问 GDT时,则以 GDTR中 32 位基地址作为全局描述符表的基地址,再由每个任务选择符的高 13 位左移 3 位后作为 GDT的偏移地址,指向所要访问的 8字节的描述符

一、分段地址转换

图 3-14 由 LDTR 由访问 LDT

  当任务发生切换时,由 LDTR中选择符的高13 位左移三位后,作为 GDT中的偏移地址,在 GDT中取出该任务的 LDT 描述符,并装入到 LDT 对应的描述符高速缓存器,于是在 LDTR中的高速缓存器中,存入了当前 LDT的基地址,表界限以及性属性等,如图 3-15 所示

图 3-15 由 GDTR 访问 GDT

 由于 Pentium 内部寄存器是 32 位,由于 Pentium 芯片组成的微机为 32 位机,访问存储器的指令仍然有直接寻址、寄存器寻址、基址寻址、变址寻址、基址加变地寻址等 

2 .分段地址的转换

例【 3-2】 几条访问内存指令 MOV AL, [1888 7777H] MOV AX, [EBX] MOV EAX, [ESI] MOV ECX, [EBX+EDI] MOV DX, [EBP]

 只有最后一条指令访问堆找段 SS ,其余指令均访问数据段 DS ,构成逻辑地址为 DS: 32 位偏移量或 SS:32 位偏移量,在 32位机中,我们将逻辑地址称为虚拟地址,段寄存器称之为段选择符

Pentium 的分段地址转换过程图如图 3-16 所示。根据段寄存器即段选择符中 b2位 TI ,确定访问当前 LDT( TI=1 )或 GDT( TI=0 ),如果访问 LDT,将 13 位索引值左移 3 位后,作为LDT基地址的偏移量,指向 8B 的段描述符,段描述符中的 32 位基地址加上指令中的 32 位偏移量成为 32 位线性地址,如果不分页只分段,结果为该机器指令所寻址的物理地址,如果还需要分页,此线性地址分为三段,即页目录(号)、页面(号)和偏移量

图 3-16 分段地址转换过程图

分页地址转换由 CPU 内的分页部件 PU来实现,它将 32 位的线性地址转换成 32 位的物理地址。这 32位线性地址可能来自分段部件 SU (既分段又分页方式),也可能是不分段只分页的情况,程序不提供段选择符,只由指令寄存器提供的 32 位地址作为线性地址,即 10 位的页目录(号)、 10 位的页表(号)和 12位的页内偏移量

在控制寄存器 CR4 中页面长度控制位 PSE的控制下,Pentium 的分页部件 PU可以按 80386/80486 每页 4KB分页( PSE=0 ),也可按每页 4MB 分页( PSE=1 )

二、分页地址转换

4KB 分页方式采用两级分页方式,第一级有一个 4KB 的页目录表,可存放 1024 个页目录项,称之为高级管理,第二级有一个 4KB 的页表,可以存放 1024 个页表项,称之为低级管理。页目录项与页表项均为 32 位( 4 字节),如图 3-17所示

1 . 4KB 分页方式

图 3-17 页目录项与页表项

①P ,存在位 P=1 表示该页表 /页存在, P=0 ,表示不存在

②PWT ,通写位 用于片外 Cache 的写控制, PWT=1 时,片外 Cache采用通写法, PWT=0 时,片外 cache使用回写法

③PCD ,页 Cache禁止位 用于对分页高速缓冲存储器的控制。若 PCD=1 时, CPU 内部 Cache被禁用

④A ,访问位 表示该目录项或页表项所对应的页面是否在近期被访问过。当 A=1 时表示近期被访问过,过一段时间后由操作系统清除为 0 ,当页面调度程序需要调出一些页面时,通过检查 A 位状态,就可以知道各页的使用情况,并根据调度算法确定调出哪些页

⑤D ,写标志位 仅页表项中的 D 位有意义。当页表项所涉及到的页面被改写过, D 位由硬件置成 1 ,一直保持为 1状态,直到该页被调出内存。当调度程序要调出此页时,首先检查D 标志,若 D=1 ,则把内存中的此页拷贝回外存相应位置,以刷新外存上的本页内容。若 D=0 ,表示此页没有被改写,调度程序不必将它拷贝回外存,只是简单地丢弃本页内容,因而D 位也被称之为“脏位”

⑥PS ( Page Size ),—页大小位。只有页表项中有此位。 PS=1 ,页面大小按 4MB 分页, PS=0 ,页面大小按 4KB 分页

⑦U/S ,用户 /管理员。页面保护属性位

⑧R/W,读 /写。页保护属性位

U/S 与 R/W结合起来,实现页保护。在分页部件中,具有页保护功能,将使用对象分为特权级 3的用户以及特权级 2 、 1 、 0 的管理员用户,管理员用户不受页的保护

Pentium 4KB 分页方式地址转换如图3-18 所示。将 32 位线性地址定义为三个字段,页目录(号)、页面(号)以及偏移量,分别为 10位、 10位和 12位

图 3-18 Pentium 4KB 分页方式地址转换图

例【 3-3】 假设线性地址是 3C4455 66H ,CR3=11223000H

解:①取线地址的高 10 位作为页目录(号),求得 0011 1100 01B ,乘以 4 (左移 2 位)作为页目录项指针,结果为 0011 1100 0100B=3C4H

②查找页目录项的物理地址: 1122 3000H+3C4H =1122 33C4H

例【 3-4】 设所查找到页表项中 20 位页面基地址是 12345H ,线性地址仍然取 3C44 5566H

解:转换后最终物理地址: 12345000H+566H=1234 5566H

将 32 位线性地址分为 2个字段,页面(号) 10位,偏移量 22 位,采用单级页表分页方式,由于页面(号)仅 10 位,页表中共有 1024 个页表项,每个页表项 32 位,页表仅占 4KB ,这是 Pentium较 80386/80486增加的分页方式。全系统只有一个页表,由控制寄存器 CR3 指向页表的起始地址。4MB分页方式的地址转换如图 3-19 所示

2 . 4MB 分页方式

图 3-19 Pentium 4MB 分页方式的地址转换过程图

1 .只分段不分页 从分段地址转换过程图(图 3-16 )可以看出,分段不分页由 16 位的段选择符和一个 32 位的偏移地址组成,段选择符的低 2 位用于保护,高 14 位指示段,因此,一个进程可允许的最大虚拟空间为 214+32=64TB 。

段管理部件 SU将段选择符与 32 位虚地址转换成 32 位线性地址,由于只分段不分页,此线性地址就是最终的 32位物理地址。不需要分页,也就不需要经过页目录表与页表的转换,地址转换速度快。缺点是段的频繁调入调出,耗时多,内存管理性能稍差一点

三、保护模式的三种方式

Pentium 在页管理部件 PU 的管理下,可以对存储器只实行分页管理,分段部件 SU不工作。如前面所述,可以按 4KB 和 4MB 两种大小不同的页面分页。与程序的段选择符无关,仅将指令提供的 32位虚地址看成是 32 位的线性地址,无论按 4KB 分页或是按 4MB 分页,均可形成 32 位物理地址,进程所拥有的最大虚存空间都是 232=4GB 。这种只分页不分段的保护模式也称为平展地址模式,比只分段不分页模式灵活。在 Windows NT和 Windows 95操作系统中采用了这种模式

2 .只分页不分段

分段分页方式是先分段后分页,在分段的基础上进行分页,分段所形成的 32 位线性地址不是最后的物理地址,而是提供给分页部件,作为页目录(号)、页表(号)以及页内偏移量,按 4KB大小分页。一个进程的最大虚地址空间与只分段的虚地址模式相同,也是 64TB ,兼有分段与分页的优点, UNIX System V 和 OS/2操作系统使用了这种保护模式

3. 既分段又分页

图 3-20 分段分页地址转换过程图

( 1)由于段选择符中 TI=1 ,所以从 64KB 的局部描述符表中查找对应的段描述符,该段描述符的指针等于LDTR中 32位基地址 +段选择符高 13 位×8

( 2)由段描述符中 32位段基地址 +虚地址中 32位偏移量 =32 位线性地址。线性地址的高 10 位为页目录(号),中间 10位为页表(号),低 12 位为偏移量

( 3 )以 CR3 中 32 位基地址为页目录表中基地址,按4KB大小分页,其分页的原理与图 3-18 中分页原理完全相同

3.3.3 Pentium 工作的实模式 实模式是实地址模式的简称。所谓实模式,是 8088/8086 CPU 工作的一种模式,指令中只允许出现逻辑地址,逻辑地址由 16 位段值与 16 位偏移地址组成,将 16位段值乘以16,并加上16位偏移地址值,便产生 20 位的物理地址,这由 CPU 中总线接口单元的 20位地址形成部件产生。产生地址信号 A19-A0共 20根,可寻址最大物理空间为 1MB 。 MS-DOS操作系统仅支持实模式, Pentium CPU 工作在 Windows 下,可以通过切换进入到 DOS状态,运行采用实模式的 16 位应用程序

8086 的存储器寻址是将 16 位的段寄存器左移 4 位后,形成 20 位的段基地址,然后同 16 位的偏移量相加,最后产生 20 位的物理地址,可以寻址 1MB 内存空间,当相加产生的 20 位物理地址超出 20 位时,超出位被丢弃,即出现地址环绕现象

例【 3-5】 设 8086 的逻辑地址是 FFFFHFFFFH ,求其物理地址。

解: PA=FFFFH×16+FFFFH=10FFEFH丢弃最高位 1,则 PA=0FFEFH

例【 3-6】 当 32 位机工作在实模式下,设 DS=1002H , FS=2000H , BX=3000H ,求下列两条指令的虚地址分别是什么?①MOV AX , DS: [BX]②MOV EAX , FS: [BX]解:虚地址表达方式为:段选择符:偏移量,那么两条指令的虚地址分别如下:

第①条 1002H: 00003000H第②条 2000H: 00003000H

注意:中括号内的偏移量只允许为 16位,不能为 32位,例如不允许下列指令工作在实模式下: MOV AX, DS: [EBX] MOV ECX, FS: [ESI]

32 位机( 80386/80486/Pentium )工作在实模式下的地址转换图如图 3-21 所示。 32 位机工作在实模式下,最大物理空间仍为 1MB 。 MS-DOS 采用实模式, Windows 3.X也可以运行于实模式,在实模式下, CPU 与内存可以交换 32位数据

图 3-21 实模式下的地址转换过程图

3.3.4 Pentium 工作的虚拟 8086 模式

虚拟8086模式简称虚拟86( V86)模式,它是在32位保护模式下支持 16 位实模式应用程序的一种保护模式

V86 模式和实模式下的地址转换方式基本相同。虚拟86 模式下的地址转换图如图 3-22 所示。如果在 V86模式下禁止分页,那么其地址转换方式完全相同于实模式下的地址转换方式。如果允许分页功能的话,可以通过分页机制,在4GB的物理地址范围内分配多个8086的 1MB地址空间

图 3-22 虚拟 86 模式下不分页地址转换过程图

在 V86 模式允许分页的情况下,物理页的大小为 4KB ,即按 4KB大小分页,多任务中的每一个任务所用的全部页面可以定位在一个物理空间,这个空间大小为 1MB ,不同任务的代码定义在不同的 1MB 内存空间, 4GB物理空间可以定义若干个虚拟 8086 的地址空间( 1MB ),把 4GB物理存储器虚拟化了,这就是取名为虚拟 8086 模式的缘由

图 3-23 虚拟 86 模式下分页地址转换过程图

3.3.5 三种工作模式的相互转换

三种工作模式可以相互转换,如图 3-24 所示。CPU 上电或复位后就进入实地址模式,通过对控制寄存器 CR0中的 b0位置 1 ,即保护允许位 PE置 1 ,于是系统进入保护模式,若使 PE复位,则返回到实地址模式。通过执行 IRETD 指令或者进行任务转换时,则从保护模式转变为 V86 模式,通过中断可以从 V86 模式转变到保护模式。在 V86模式下可以复位到实地址模式

图 3-24 三种工作模式的相互转换

3.3.6 Pentium 的存储保护

80386/80486/Pentium 采用虚拟存储器技术的目的是为了更有效地使用有限的主存储器资源。在程序运行过程中,为了防止应用程序破坏系统程序,某一应用程序破坏其他应用程序,错误地把数据当作程序运行等故障的发生等,所采取的各种措施都称之为存储保护,最典型的存储保护是采用称之为特权级的保护方式

一、特权级的级别

特权级保护是将系统中所有的程序分配相应的级别,特权级 0 的特权级别最高,操作系统( OS )的特权级为 0,特权级别也就最高。特权级保护功能的主要目的是不准任何应用程序修改操作系统的数据,而又允许程序调用操作系统中提供的各种服务子程序

Pentium四个特权级的保护示意图如图 3-25 。操作系统处于最内层,具有最高特权级 0 ,依次向外,特权级降低,最外层特权级最低,而PL 值最大,即 PL=3 。最外层一般是应用程序层,享有最低特权级。

Pentium特权级所应遵循的规则有 2条: ①特权级高的数据段不能被特权级低的代码段访问

②特权级高的代码段不能向特权级低的代码段转移调用,反之是允许的

图 3-25 Pentium四个特权级的分层

1. CPL( Current PL),当前特权级。 CPL是当前运行程序或任务的特权级,分别被保存在段寄存器 CS 即段选择符的 b1b0位和当前任务寄存器的 b1b0位

2. DPL( Discriptor PL),描述符特权级。它表示该段或任务门的特权级,分别被保存在段描述符和门描述符的 DPL域中,段描述符的 DPL具体在访问权字节中的 b6b5位

3. RPL( Requested PL)请求特权级。用于表示段选择符的另一种特权级,它保存在段选择符的 b1b0位。表示本次访问所要求的特权级

二、三种类型特权级

Pentium 的数据段寄存器有 DS 、 ES 、 FS 、 GS 以及堆栈段寄存器 SS ,为了访问某一数据段的内容,必须通过 MOV 、 LDS 、 LES 等指令将数据段的选择符装入相应的段寄存器中, Pentium 在将选择符装载到段寄存器之前,必须要将当前运行程序和任务的 CPL,所要请求的 RPL与要访问的数据段描述符中 DPL进行比较, DPL中值要大于或等于 CPL以及 RPL的值,才能将选择符装载到段寄存器中,也就是要满足如下公式的要求:

DPL数据段描述符≥ MAX( CPL 当前代码段, RPL数据段选择符) ( 3-1 )

例【 3-7 】三种特权级的应用举例

设数据段描述符的特权级为 2 ,设有四个当前程序,当前代码段特权级 CPL 分别为0 、 1 、 2 、 3 ,而段选择符的请求级 RPL 分别为 3 、 1 、 2 、 3 ,求出哪一个段选择符可以装入段寄存器中?根据公式( 3-1 ),分析结果如表 3-3 所示

表 3-3 CPL 、 RPL 、 DPL之间的关系

当前代码段CPL

段选择符请求级 RPL

数据段描述符 DPL

访问与否 原因

0 3 2 否 RPL>DPL

1 1 2 可以 DPL>CPL、 RPL

2 2 2 可以 DPL=CPL、 RPL

3 3 2 否 DPL<CPL、 RPL

3.4 Pentium 的超标量流水线

Pentium具有两条关于指令的标量流水线,所以称之为超标量流水线。每条指令流水线分为 5段, CPU 在一个时钟周期内可以执行两条指令。它兼有复杂指令系统计算机( CISC )与精减指令系统计算机两者的特性

Pentium整数指令流水线的结构请参考图3-1。两条整数流水线分别称之为 U 流水线和 V 流水线。两条指令流水线同时执行先后两条相邻的指令,先一条在 U 流水线中执行,后一条在 V 流水线中执行,“ U”、“ V”有先后顺序及相邻的意思

3.4.1 Pentium 的超标量流水线结构

一、两条指令流水线共用部件⒈ 超标量流水结构中有两个预取缓冲器,均为32 字节,负责从 CPU 内部 Cache 或主存中预先取出指令并缓存⒉ 指令译码器要完成对指令的译码、相邻两条指令的配对检查等操作。如果遇到转移指令,要在译码之后,将转移指令地址送到转移目标缓冲器 BTB 中进行查找⒊ 微程序控制器中的控制 ROM 存储了若干条机器指令的微程序

⒈ U 、 V 两个地址生成部件,分别用于产生存储器操作数的地址, Pentium 工作在不同模式下的逻辑地址都要转换成物理地址以便访问数据 Cache ,转换后援缓冲器 TLB 可用来加快这种地址的转换速度⒉ 8KB 的数据 Cache 是双端口结构,可同时由 U 、 V 两条流水线访问,一个时钟周期内能存取两个 32 位数据,或者是 64 位的浮点数

二、非公用的流水部件

⒊ 两个 32 位的 ALU对简单指令的运算均只需要一个时钟周期。简单指令指 ADD EAX, EBX之类指令,不涉及到访问存储器的运算指令。流水线中还包括 8个 32 位通用寄存器,即 EAX、 EBX、 ECX、 EDX、EBP 、 ESI 、 EDI 、 ESP

3.4.2 U 、 V 流水线及其分工策略

一、 U 、 V 流水线的基本原理 U 、 V 流水线都由 5段组成,前两段 U 、 V 流水线共享,后 3段分离进行。 U 、 V 流水线工作的基本原理图见图 3-26 所示

第一段是预取段—— PF,在这一段要从指令 Cache 中取出指令,并将取出的指令存入预取缓冲器中

第二段是指令译码 1段—— D1 ,在这一段,要确认指令的操作码、寻址方式以及完成指令的配对检查和转移指令的预测,前后连续的两条指令 i1 和 i2都要被译码完成,最终要判断这两条指令能否并行发射到下一段

图 3-26 U 、 V 流水线工作的基本原理

D1段是流水线中的关键段,这一对指令经译码后同时发射到下一段必须要满足下列 4个条件:⒈ 两条指令都是简单指令⒉ 相邻两条指令之间不能有数据相关的问题 共计有三类数据相关冲突,即写后读( RAW )、读后写( WAR)以及写后写( WAW )相关⒊ 两条指令不同时含有立即数,不同时都是含有偏移量的相对寻址指令⒋ 只有 i1条指令允许带有前缀

例【 3-8】 MOV AX, BX MOV ECX, ESI 1NC AX ADD EBX, EDI 前两条指令与后两条指令都是简单指令,都可以同时发射到下一段

例【 3-9】写后读数据相关( RAW )举例 i1条 ADD AX, BX i2条 MOV CX, AX 从上看出, i2条指令在 i1条指令结果尚未写入 AX中之前,就要读 AX中的值,应该是先将运算结果存入到 AX中,后由 i2条指令读 AX,由于两条指令同时进入流水线就发生写后读数据相关冲突

例【 3-10】读后写数据相关( WAR)举例 i1条 MOV [EBX], AX i2条 MOV AX, BX 由于两条指令同时进入流水线, i1条中 AX尚未存入内存,也就是 AX中值尚未取出时,i2条指令就要把 BX中值存入 AX中,发生这种数据相关称之为读后写( WAR)相关,这两条也不能同时发射到下一段

例【 3-12】写后写数据相关举例 i1条 MUL AX, BX i2条 ADD AX, CX

由于 i2条指令执行时间比 i1条指令执行时间短, i2条指令提前把加法运算结果写入 AX中,发生了 WAW 数据相关

U 、 V 两条流水线的功能是不一样的,U 流水线能执行指令系统中的所有指令,而 V 流水线只能执行简单的整数指令和少数浮点数指令。 Pentium对U 、 V 流水线的调度策略采用按序发射与按序完成的策略。图 3-27 描述按序发射按序完成的调度策略

二、 Pentium 对 U 、 V 流水线的调度策略

图 3.27 按序发射按序完成的调度策略

3.5 Pentium 的引脚信号

Pentium 的主要引脚信号按其功能可分为 10类,在图 3-28 中,给出了各类所包含的引脚信号及其 I/O 方向

图 3-28 Pentium 的主要引脚信号

( 1 ) A20M*,用于屏蔽含 A20 以上的地址线

( 2 ) A1~ A31 , 29 位地址线

( 3 ) ADS*,指示地址状态输出有效,即总线周期开始

( 4 ) AP ,地址整体偶校验位输出线,双向

( 5 ) APCHK*,地址的偶校验出错指示信号,输出线,低电平有效

一、地址线及其控制信号

( 1 ) D63~ D0 , 64 位数据线

( 2 ) BE7* ~ BE0*, 8 位字节允许信号,低电平允许

( 3 ) DP7~ DP0 ,奇偶校验信号

( 4 ) PCHK*,数据奇偶校验出错信号,输出

( 5 ) PEN*,数据奇偶校验允许信号,输入。

二、数据线及其控制信号

( 1 ) CACHE*, Cache 控制信号,输出,低电平有效

( 2 ) EADS*,外部地址有效信号。输入,低电平有效

( 3 ) HIT*, Cache命中信号。输出,低电平有效,当其有效,表示 Cache被命中

( 4 ) HITM*, Cache修改信号。输出,低电平有效,当其有效,表示当前命中的 Cache已被修改过

( 5 ) 1NV ,无效请求信号。若此输入信号为高电平,使 Cache 区域不可再使用,这是因为 1NV 为高电平,使得 Cache已处于无效状态

三、 Cache 控制信号

( 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 ,地址保持 /请求信号。输入,高电平有效

( 1 ) D/C*,数据 /控制信号。输出线,为高电平时,表示当前总线周期传输的是数据,为低电平时,指示当前总线周期传输的是指令

( 2 ) M/IO*,存储器 / 输入输出访问信号。输出线,为高电平时,指示当前总线周期访问存储器,为低电平时,则为访问 I/O端口

( 3 ) W/R*,读 / 写控制信号。输出线,为高电平时,表示当前总线周期为 CPU写存储器或写输出端口,为低电平时,指示为读存储器或读输入端口

四、总线周期控制信号

( 4 ) LOCK*,总线封锁信号。输出,低电平有效,当其有效时,当前总线被锁定,使得其他主模块不能获得总线控制权,从而确保 Pentium CPU当前对总线的控制权

( 5 ) SCYS ,分割周期信号。输出,高电平有效

( 6 ) NA*,下一个地址有效信号。输入,低电平有效

( 7 ) BRDY*,突发就绪信号。输入,低电平有效,当其有效,表示外设已处于突发传输准备好状态

( 1 ) INTR ,可屏蔽中断请求输入信号。

( 2 ) NMR ,非屏蔽中断请求输入信号。

( 3 ) RESET ,系统复位信号。输入,高电平复位

( 4 ) CLK ,系统时钟信号。输入,由主板上提供时钟脉冲

( 5 ) INIT ,初始化信号。输入,高电平有效

五、系统控制信号

( 1 ) BUSCHK* ,总线检查信号。输入,低电平有效

( 2 ) IERR*,内部奇偶出错或功能性冗余校验出错信号

( 3 ) FERR*,浮点运算出错信号。输出,低电平有效

( 4 ) FRCMC*,冗余校验控制信号。输入,低电平有效当其有效, CPU进行冗余校验

( 5 ) IGNNE*,忽略浮点运算错误的信号。输入,低电平有效

六、检测与处理信号

( 1 ) HOLD ,总线请求信号。输入,高电平请求

( 2 ) HLDA ,总线请求响应信号。输出,高电平有效,当其有效,表示 CPU已让出总线控制权

七、总线仲裁信号

( 3 ) BREQ,总线周期请求信号。输出,高电平有效,此信号有效时,表示 CPU已提出了一个总线请求,并正在占用总线。此信号用于告示其他能控制总线的主模块

( 4 ) BOFF*,强制让出总线信号。输入,低电平有效, CPU采样到为低电平时,立即放弃总线控制权,直到变为无效电平时, CPU才启动被暂停的总线周期

( 1 ) SMI*,系统管理模式中断请求信号。使 CPU进入系统管理模式的中断请求输入信号

( 2 ) SMLACT*,系统管理模式信号。输出,低电平有效,当其有效,表示当前 CPU 处于系统管理模式

八、系统管理模式信号

( 1 ) PM1 ~ PM0 及 BP3 ~ BP0 , PM

1 ~ PM0 是性能监测信号, BP3 ~ BP0 是与调试寄存器 DR3 ~ DR0 中的断点相匹配的而输出到外部的信号

( 2 ) BT3~ BT0 ,分支地址输出信号

( 3 ) IU ,指令 U 流水线信号。高电平有效,有效时表示此时 U 流水线正在完成指令的执行过程

九、跟踪和检查信号

( 4 ) IV ,指令 V 流水线信号。高电平有效,有效时表示此时 V 流水线正在完成指令的执行过程

( 5 ) IBT ,输出,高电平有效,有效时,表示指令发生分支

( 6 ) R/S*,探针信号。输出,此信号由高电平跳变到低电平时,将会使 CPU停止执行指令而进入空闲状态

( 7 ) PRDY, R/S*的响应信号。输出,高电平有效,有效时表示 CPU当前已停止指令的执行,可以进入测试状态

( 1 ) TCK ,测试时钟信号输入端

( 2 ) TDI ,串行测试数据输入端

( 3 ) TDO ,测试数据结果输出端

( 4 ) TMS ,测试方式选择端

( 5 ) TRST*,测试复位输入端。当输入低电平后,复位测试状态,即系统退出测试状态

十、测试信号

3.6 Pentium Pro~Itanium 的技术概述

自 1993年 Pentium 问世之后, Intel 公司相继推出了

Pentium Pro(1995) Pentium Ⅱ( 1997年) Pentium Ⅲ( 1998年) Pentium 4 ( 2000年)等微处理器,近几年又推出了 64 位的微处理器 Itanium (安腾)

3.6.1 Pentium Pro微处理器简介

Pentium Pro 具有如下的主要技术特点:( 1 ) Pentium Pro内部配置了 L2 Cache

256KB 或 512KB( 2 )不需要额外的逻辑电路就可以支持多达 4 个 CPU ,特别有利于服务器系统的组成

( 3 ) CPU 有 36 位地址线,可寻址物理地址空间 64GB ,虚存空间为 64TB。 CPU外部数据总线仍为 64 位( 4 ) Pentium Pro 最重要的技术是采用了 RISC 技术( 5 )外型使用了长方形 387 管脚陶瓷封装。微处理器要插接到 Socket 8 型插座上。 Pentium Pro是为服务器和工作站而设计的

3.6.2 Pentium Ⅱ微处理器简介

Pentium Ⅱ微处理器是面向个人计算机和工作站而设计的。 PⅡ微处理器所提供的整数运算和浮点运算的功能以及多媒体新技术等三方面的优势,特别适合于三维图形、图像及多媒体应用程序的执行

( 1 )微处理器内部有 2级高速缓存: L1 Cache容量 32KB , L2 Cache容量 512KB 。 PentiumⅡ采用单边接触的卡盒式封装, CPU 芯片、 L1 和 L2 Cache都封装在 CPU 内

( 2 ) Pentium Ⅱ微处理器内部总线宽度高达 300 位,外部仍为 64 位数据线, 36 位地址线,可寻址物理地址空间 64GB ,虚存地址空间 64TB

( 3 )采用了双重独立的总线结构。 Pentium ⅡCPU 一方面由具有纠错功能的 64 位总线专门负责与系统内存及 I/O端口之间的数据传输,另一方面,CPU由具有纠错功能的专用总线负责与 L2 Cache交换数据,两种总线并行工作,但相互独立( 4 )动态执行技术与 MMX技术。 Pentium Ⅱ增加了 57 条 MMX指令,集成了 MMX技术,增强了音频、视频、图形等多媒体应用的处理能力。可以加速数据的加密、解密以及数据的压缩和解压过程

3.6.3 Pentium Ⅲ微处理器简介

Pentium Ⅲ( PⅢ)微处理器主要有 3个系列产品,主频时钟在 400MHz733MHz之间,总线时钟(外部时钟)为 100MHz 和133MHz 两种。仍然经过倍频后产生 CPU 内部工作的主频时钟。电源电压使用范围在1.1V~ 1.65V 之间,电源功耗大大降低,外型采用了 PC-PGA的新型封装技术

( 1 ) PⅢ增加了 70条多媒体指令 SSE指令集, 12条新的多媒体指令,进一步提升了视频处理、图形图像处理的质量; 50条单指令多数据浮点运算指令,可以同时处理 4对单精度浮点数,或同时处理单精度和双精度浮点数,由于既保留了 57 条 MMX指令,又增加了50条浮点运算指令,解决了不能同时处理 MMX数据和浮点数的矛盾,极大地提高了浮点数运算的速度;在 SSE新指令集中,还设有 8条连续数据流内存优化处理指令,并且采用了新的数据预存取技术,大大提高了处理连续数据流的速率

( 2 )在 PⅢ 中,新增了 8 个 128 位( 4×32位)单精度浮点寄存器,配合 SEE指令的执行,可以提高浮点数运算与处理的速率 PⅢ主频的提高以及 SSE技术的应用,使得整体性能大有提高,在 3D图形图像处理、语音处理与识别、视频实时压缩、浮点数的运算、网络软件运行的速率等方面,都有很大的改善与提高

3.6.4 Pentium 4 微处理器简介

Pentium 4 晶体管数目增加到 4200 万个,CPU 主频有 1.4GHz 、 2.2GHz 等版本,由于主频大大提高,动态电流增加,外加晶体管数目增加,所以电源功耗明显增加,高达 55W ,没有选用传统的低压供电方式,而是采用了 12V直流供电。 CPU插座使用478条引脚的产品,采用 Socket 423插座将 CPU固定在主板上

3.6.4 Pentium 4 微处理器简介

( 1 ) CPU 数据总线的并行传输速率大大加快,一个总线时钟周期内可同时传输 4 组 64 位的数据,称之为四倍爆发式总线技术。 P4 通过 850 外围芯片组构成的主机系统,与内存构成双通道的方式传输数据,并行传输带宽可以达到3.2GB/S 。( 2 ) Pentium 4 内部设计了两组独立运行的ALU ,在一个主频时钟周期的上升沿与下降沿之间完成所需要的运算,平均在 P4 内部一个主频时钟内可以完成 2条算术 /逻辑运算指令。

3.6.4 Pentium 4 微处理器简介

( 3) P4 保留了 PⅢ中 MMX指令,同时又增加了70条新的 MMX指令。保留了 PⅢ中原有的 SSE指令,又增加了新的 SSE指令,组成了共计有144条的所谓 SSE2 指令集

( 4 )将指令 Cache直接连接到分支预取单元与执行单元,这与以往的 L1Cache 的结构是有区别的,其结构还考虑到了微指令的格式,当执行重复性代码时,可以提高程序运行的速度,称这种技术为指令跟踪缓存( Trace Cache )技术

3.6.5 Itanium 微处理器简介

Itanium (安腾)是 Intel 公司推出的 64 位微处理器,其外部数据总线为 64 位,地址总线也是 64 位,内部集成了约 2.2亿个晶体管,其集成度大约是 Pentium 的10 倍,特别适用于高档服务器和工作站

3.6.5 Itanium 微处理器简介

( 1)主要技术特点中最重要的一点是采用了完全并行指令计算( Explicitly Parallel Instruction Computing, EPIC )技术。 EPIC 技术的特点是使指令的并行性能好,在增加的 EPIC 指令组中,指令长度较长,包括功能全,指令中既包含了常规指令的操作码和操作数,还包括并行执行的方法等信息。在程序运行时,由编译器将程序编译成几组机器代码,经分组后将多条指令打成一个包,几组指令可以在不同的执行部件中执行

3.6.5 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 个操作,特别适用于密集型浮点运算和三维图形的处理

3.6.5 Itanium 微处理器简介

( 4)采用了新的分支预测技术,通过编译软件可以预先将分支结构的程序段分成几个指令序列,然后通过Itanium 超强的并行处理能力,同时执行这些指令序列,使得分支程序在流水线中也能顺利执行,而不产生断流,起到了消除分支预测错误的作用

( 5)新增了许多寄存器,使 Itanium 在峰值操作状态下,也不会因寄存器不充裕而产生等待延时等问题,可以大大提高系统工作的效益,特别适合于多任务操作。 Itanium 内部包含有 128 个通用寄存器, 128 个浮点寄存器以及用于系统的 64个寄存器