企业级的理解---你不得不看的Pentium处理器

 

Pentium微处理器

Pentium微处理器是一种最先进的32位微处理器。它与DOS,Windows, OS/2和UNIX基础上的应用软件兼容。
有两组算术逻辑单元(ALU)、两条流水线、能同时执行两条指令;
并且把数据cache(高速缓冲存储器)和代码cache分开;不仅提高了总线的速度;还将数据总线增加到64条;
流水浮点部件提供了工作站的特性。因此它几乎具有两台80X86的功能。

 

 

 

Pentium的原理结构

  包括12个主要部件,核心部件是两个流水线执行部件和浮点处理部件


总线接口部件  

  • 实现CPU与系统总线的连接,包含64位数据线、32位地址线和控制信号线,实现信息交换

U流水线和V流水线       

  • 独立运行,均含ALU。每条流水线含5级(取指令、译码、生成地址、执行指令、回写) 
  • U:可执行所有的整数运算指令 V:执行简单的整数运算和数据交换指令

数据Cache      

  • 存放CPU最近要使用的数据和指令,提高存取速度,并分别配置了转换检测缓冲器

代码Cache    

  • Cache存放CPU最近要使用的数据和指令,提高存取速度,并配置转换检测缓冲器(TLB),将线性地址转换为高速缓存的物理地址

控制ROM       

  • 含有复杂指令对应的微程序

分支目标缓冲器BTB   

  • BTB在遇到条件转移指令时用来预测是否发生转移,并提供预取地址

控制部件    

  • 通过解析指令译码器中的译码信息和控制ROM中的微程序,控制两条流水线和FPU的执行

浮点处理单元FPU           

  • 采用硬件电路实现加、乘、除浮点运算

分段部件和分页部件        

  • 分段/分页实现对存储器的两级管理

寄存器组                       

  •  通用寄存器
  • 段寄存器
  • 描述符寄存器
  • 指令计数器
  • 标志寄存器
  • 控制组寄存器
  • 系统地址寄存器
  • 调试寄存器

指令预取部件                 

  •  从指令缓存中预取指令流

指令译码器                   

  • 三个译码器进行译码

Pentium的主要部件


总线接口部件

64位数据线、32位地址线、控制总线


功能
    ① 地址驱动和传输:A31~ A3、BE7#~BE0#
    ② 数据驱动:D63~D0
    ③ 数据总线宽度控制(8,16,32,64位通过控制信号实现总线宽度控制)
    ④ 数据缓冲
    ⑤ 总线操作的控制功能(数据传输,成组传输,中断,复位,DMA操作等)
    ⑥ 奇/偶校验告示功能
    ⑦ Cache操作控制(片内和片外Cache一致性)


U流水线和V流水线,独立运行


代码Cache和数据Cache(高速缓存可读写RAM)

  1. 两者分开,减少冲突,提高数据存取命中率
  2. 两者分别配置专用的TLB(转换检测缓冲器),将线性地址转换为高速缓存的物理地址


指令预取部件IPU、指令译码器IDU、控制ROM和分支目标缓冲器BTB

  1. IPU每次预取两条指令
  2. 复杂指令需要控制ROM的转换(转换为微程序)


控制部件(控制流水线和FPU的正常运行)

  1. FPU按流水线机制执行指令(8级)
  2. 是U流水线的补充
  3. 浮点运算指令的前4级在U流水线中执行
  4. 常用浮点指令采用专门的硬件电路实现
  5. 支持32位、64位、80位精度

 

分段部件和分页部件

  1. 片内二级存储管理
  2. 分段将逻辑地址转换为物理地址
  3. 分页将线性地址转换为物理地址

先进的体系结构

  1. 外部数据总线为64位,数据传输量提高一倍
  2. 设置片内代码cache和数据cache(速度高容量小的存储器)提高取指令和读/写数据速度
  3. 两条指令流水线并行执行
  4. 片内集成FPU(浮点运算器),是U流水线的补充,采用硬件实现浮点运算,对ADD,MUL,INC,DEC,PUSH等常用指令采用硬件实现
  5. 采用分段和分页两级存储管理机制,存储管理方便灵活
  6. 增强了信息传输准确性的检测能力和机器异常事件的处理能力

 

RISC,CISC技术

计算机流水线一般是:指令流水线和运算流水线

RISC出现后,就出现了超流水线,超标量等体系结构

CISC

新设计的处理器,只需要增加较少的电晶体就可以执行同样的指令集,也可以很快的编写新的指令集程式。

优点:能够有效缩短新指令的微代码设计事件,允许设计师实现CISC体系机器的向上相容

缺点:指令集以及晶片的设计比上一代产品更复杂,不同的指令需要不同的时钟周期完成,执行较慢的指令,将影响整台机器的执行效率

 

RISC

解决途径就是减少微处理器指令总数和减少指令操作的时钟周期数

精简指令集:包含了简单的基本指令,透过简单,基本的指令,就可以组成复杂指令。

相同长度的指令:每条指令的长度都是相同的,可以再一个单独西操作里完成。

单机器周期指令:大多数的指令都可以再一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令

优点:在使用相同的晶片技术相同运行时钟下,RISC系统的运行速度是CISC的2~ 4倍

缺点:要选用合适的编译器;多任务环境下,会形成任务切换时众多寄存器保护和恢复的需求,从而增加操作量

 

Pentium结合两者之长——大多数指令采用简化指令,但仍保留一部分复杂指令并用硬件实现

RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更为复杂

 

超标量流水线

超流水线结构:一个时钟周期再细分伟多个子周期,每个子周期发出一条指令
超标量结构:再每个时钟周期内发射多条指令,这要求微处理器片内集成两条或以上的流水线
超标量超流水线结构:就是超流水线和超标量结合起来

标准状态下:一个处理器含有一条指令流水线

 

Pentium微处理器的超标量执行机构允许两条指令以并行的方式执行:一条叫U流水线,一条叫V流水线

这种双流水线可以使两条指令并行执行,使Pentium微处理器在每个时钟周期内可以同时执行两条指令

 

U流水线和V流水线均含有独立的ALU,一系列寄存器,地址生成电路和连接数据Cache存取数据,称为Cache双端接口

要求所有指令基本都是简化指令,V流水线能接受U流水线的下一条指令

先进的分支预测技术

BTB可以进行动态分支预测

BTB含有一个1KB容量的Cache,BTB中存放三种信息。

以前执行过的分支指令的地址记录BIA;该分支指令的跳转目的地址BTA;分支历史记录,历史状态有四种情况:必定转移,可能转移,可能不转移,必定不转移

指令解码完成后,CPU搜索BTB中的记录,如果当前指令的地址与BTB某一条目中的BIA部分记录相符,则成为一次BTB命中。BTB命中后首先根据该条目分支历史纪录来判定分支是否跳转,如果判定为跳转,那么CPU按条目中BTA的地址纪录取指令,否则依旧按编译顺序取指令。如果BTB未命中,.则同样按编译顺序取指令。

与此同时,不论BTB是否命中,也不论预测结果如何,分支指令依然会被送到下级处理单元,直至执行完成,并将执行结果回馈给BTB。如果出现误预测,则修改历史记录,并清空流水线里的后续指令,并按正确的地址进行取指。
进一步提高性能

双向分支预测 芯片内部配置了两个预取缓冲存储器 一个按照BTB预测结果预取指令,并在预取指令时,在BTB中建立一个登记项

 

Pentium的指令流水线技术

指令流水线的组成

总线接口部件

  1. 控制数据总线和地址总线的信息传输
  2. 主要进行读取指令和存取指令

指令预取部件

        在总线空闲时从存储器读取指令放入指令预取队列

指令译码部件

        对指令译码,送入译码指令队列

执行部件

         控制两条流水线的运行

 

总线接口部件、指令预取部件、指令译码部件和存储器管理部件构成了80386CPU指令流水线

指令流水线的原理

非流水线方式

以此执行取指令,指令译码,执行三个操作

流水线

  1. Pentium的整数运算流水线最初由5级组成:
  2. 指令预取级PF、首级译码级D1、二次译码级D2(形成物理地址)、执行级EX、回写级WB
  3. 级别越多,速度越快
  4. Pentium4的流水线达20级
  • Pentium的浮点运算部件也采用流水线机制运行 8级组成:PF、D1、D2、EX、X1、X2、WF、ER

 

八个阶段的浮点流水线:

  1. PF 预取
  2. D1 译码阶段1
  3. D2 译码阶段2
  4. EX 取操作数
  5. X1 浮点执行步骤1
  6. X2 浮点执行步骤2
  7. WT 写浮点数
  8. ER 出错报告

 

 

超标量流水线技术

标准状态下

  • 一个处理器含有一条指令流水线

超标量

  • 一个处理器中又多条指令流水线

指令流水线的组成

  • 总线接口部件、指令预取部件、指令译码部件、执行部件

Pentium的一条指令流水线:

  • 5级:指令预取级PF、首次译码级D1、D2、执行级EX、回写级WB

Pentium中:

  1. U、V两条流水线,U—所有整数运算,V—简单整数运算和数据交换指令
  2. 每条流水线均含有独立的ALU、一系列寄存器、地址生成电路、连接数据Cache的接口

超标量:

  • 以并行方式在U、V两条流水线上同时执行两条指令
  • 在U流水线中可以执行任何指令
  • V流水线中只能执行和U流水线当前执行的指令符合配对规则的指令

配对规则:

  • 两条指令都是简单指令(包括RISC指令)
  • 互相没有寄存器关联性:两条指令中的寄存器不是“读后写”或者“写后写”的关系(不能对同一寄存器多次操作)
  • 一条指令不能同时既包含位移量又包含立即数
  • 带前缀的指令只能出现在U流水中
  • 浮点运算指令不能和任何指令配对

过程:

  • D1步骤,指令译码器中的两个并行的译码部件对两套指令译码,并用指令配对规则进行判断
  • 不能100%配对成功:V流水线不会全速运行

流水线受阻的情况:

  • U:影响V
  • V:不会影响U

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章