2.232位微处理器Pentium主要内容:※Pentium采用的新技术:RISC技术、超标量流水线技术、分支预测技术(BTB)、浮点处理部件(FPU)和CACHE技术。※保护方式下的存储器管理。※Pentium的原理结构。1、先进的体系结构1)Pentium内部总线32位,外部总线64位,使得在一个总线周期内数据传输量提高一倍。另外Pentium支持数据成组传送。2)重新设计的浮点单元(FPU)Pentium的浮点单元在486的基础上进行了彻底的改进,其执行过程分为8级流水,使每个时钟周期能完成一个浮点操作(某些情况下可完成两个)。Pentium还对一些常用指令如ADD、MUL和LOAD等采用了新的算法,同时,用电路进行了固化,用硬件来实现。3)设置了相互独立的代码Cache和数据Cache。4)采用了分段和分页管理机制。5)使用了多流水线作业。2、CISC技术和RISC技术结合,Pentium处理器取2者之长,实现更高的性能。即在流水线作业中使用RISC技术,而对于一些不常用的复杂技术采用硬件电路实现。采用RISC技术的CPU有如下特点:1)指令系统只含简单常用的指令,长度一致。2)利于流水线作业机制。3)大多数指令利用内部寄存器来执行。Pentium处理器中少量的CISC指令一般采用硬件来实现。3、超标量流水线超标量流水线设计是Pentium处理器技术的核心。它由U与V两条指令流水构成,其中,每条流水线都拥有自己的ALU、地址生成电路和Cache的接口。这种流水线结构允许Pentium在单个时钟周期内执行两条整数指令,并且每一条流水线也分为指令预取、指令译码、地址生成、指令执行和回写五个步骤。当一条指令完成预取步骤,流水线就可以开始对另一条指令的操作,极大地提高了指令的执行速度。超标量流水线机制的条件:(1)所有指令都是简化指令(RISC);(2)V流水线总是能够接受U流水线的下一条指令。4、分支预测技术Pentium提供了一个称为分支目标缓冲器BTB(BranchTargetBuffer)的小Cache来动态地预测程序分支。当一条指令导致程序分支时,BTB记忆下这条指令和分支目标的地址,并用这些信息预测这条指令再次产生分支时的路径,预先从此处预取,保证流水线的指令预取步骤不会空置。Cache的容量为1KB,能容纳256条转移指令的目标地址和历史状态,历史状态用2个二进制位表示4种状态:必定转移、可能转移、可能不转移和必定不转移。分支预测在预测循环指令时有很高的预测精度,因为循环体只有一次转移不同,那就是退出循环。5、独立的指令Cache和数据CachePentium有两个8KBCache、一个作为指令Cache、另一个作为数据Cache、即双路Cache结构。TLB的作用是将线性地址翻译成物理地址。指令Cache和数据Cache采用32×8线宽、是对Pentium64位总线的有力支持。Pentium的数据Cache有两个接口、分别通向U和V两条流水线、以便能在相同时刻向两个独立工作的流水线进行数据交换。当向已被占满的数据Cache写数据时、将移走一部分当前使用频率最低的数据、并同时将其写回主存,这个技术称为Cache回写技术。由于处理器向Cache写数据和将Cache释放的数据写回主存是同时进行的,所以,采用Cache回写技术大大节省了处理时间。指令和数据分别使用不同的Cache,使Pentium的性能大大超过以往的微处理器。2.3Pentium的超标量流水线Pentium具有两条关于指令的标量流水线,所以称之为超标量流水线。每条指令流水线分为5段,CPU在一个时钟周期内可以执行两条指令。它兼有复杂指令系统计算机(CISC)与精减指令系统计算机两者的特性。两条整数流水线分别称之为U流水线和V流水线。两条指令流水线同时执行先后两条相邻的指令,先一条在U流水线中执行,后一条在V流水线中执行,“U”、“V”有先后顺序及相邻的意思。一、两条指令流水线共用部件•⒈超标量流水结构中有两个预取缓冲器,均为32字节,负责从CPU内部Cache或主存中预先取出指令并缓存。•⒉指令译码器要完成对指令的译码、相邻两条指令的配对检查等操作。如果遇到转移指令,要在译码之后,将转移指令地址送到转移目标缓冲器BTB中进行查找。•⒊微程序控制器中的控制ROM存储了若干条机器指令的微程序。2.3.1Pentium的超标量流水线结构二、独立的流水部件⒈U、V两个地址生成部件,分别用于产生存储器操作数的地址,Pentium工作在不同模式下的逻辑地址都要转换成物理地址以便访问数据Cache,转换后援缓冲器TLB可用来加快这种地址的转换速度。⒉8KB的数据Cache是双端口结构,可同时由U、V两条流水线访问,一个时钟周期内能存取两个32位数据,或者是64位的浮点数。⒊两个32位的ALU对简单指令的运算均只需要一个时钟周期。简单指令指ADDEAX,EBX之类指令,不涉及到访问存储器的运算指令。流水线中还包括8个32位通用寄存器,即EAX、EBX、ECX、EDX、EBP、ESI、EDI、ESP。2.3.2U、V流水线及其分工策略一、U、V流水线的基本原理•U、V流水线都由5段组成,前两段U、V流水线共享,后3段分离进行。U、V流水线工作的基本原理图见图2-3-1所示。•第一段是预取段——PF,在这一段要从指令Cache中取出指令,并将取出的指令存入预取缓冲器中。•第二段是指令译码1段——D1,在这一段,要确认指令的操作码、寻址方式以及完成指令的配对检查和转移指令的预测,前后连续的两条指令i1和i2都要被译码完成,最终要判断这两条指令能否并行发射到下一段。•第三段是指令译码2段——D2,在这一段,要计算并产生存储器操作数的地址,不是所有指令都要计算存储器操作数,但每条指令都必须流经这一段。•第四段是执行段——EX,此段主要在ALU、桶形移位器和其他功能部件中完成指定的运算。•第五段是写回段——WB,将计算结果写回到标志寄存器、目的寄存器以及其他目的地方。图2-3-1U、V流水线工作的基本原理•D1段是流水线中的关键段,这一对指令经译码后同时发射到下一段必须要满足下列4个条件:⒈两条指令都是简单指令。⒉相邻两条指令之间不能有数据相关的问题共计有三类数据相关冲突,即写后读(RAW)、读后写(WAR)以及写后写(WAW)相关。⒊两条指令不同时含有立即数,不同时都是含有偏移量的相对寻址指令。⒋只有i1条指令允许带有前缀。U、V两条流水线的功能是不一样的,U流水线能执行指令系统中的所有指令,而V流水线只能执行与U流水线配套的整数指令和浮点数指令的前五级(或前四级)。2.3.3地址流水线一、概念逻辑地址:程序员编程时使用的地址,称逻辑地址,在保护模式下,它由16位选择子和32位偏移地址确定。通过选择子找到描述符表中的一项段描述符得到32位段基址,再加上32位偏移得到实际的线性地址。特别地,Pentium每个任务可以拥有16384(216)段,每段最大长度为4GB(232),所以一个任务的逻辑地址空间可以达:64TB(246)。线性地址:分段部件将选择子和偏移地址转换为32位线性地址,这种转换是通过段描述符表实现的。段描述符表的每一项为64位,包括:32位线性段基址、16位段界限、16位特权级和存取权等地址空间信息。分页部件将线性地址转换为实际的物理地址,如果分页被禁止,则线性地址对应实际的物理地址。二、地址流水线地址流水线由分段部件、分页部件和总线接口部件组成。地址流水线体现在:有效地址形成、分段部件将逻辑地址转换为线性地址、分页部件将线性地址转换为物理地址这3个工作是重叠进行的。特别地,Pentium将段描述符表、页组目录表、页表存放在MMU的高速缓存中,以提高地址转换效率。2.5Pentium处理器的原理结构Pentium处理器外部的数据总线宽度为64位,但内部的数据寄存器仍然是32位的,故称为32位处理器。Pentium处理器内部结构如下图。