本文已参与「新人创作礼」活动,一起开启掘金创作之路。
👨🎓作者简介:一位喜欢写作,计科专业大二菜鸟
🏡个人主页: starry陆离
🕒首发日期:2022年7月10日星期日
🌌上期文章:『期末复习』微处理器发展历程与微型计算机结构
📚订阅专栏:『微机原理与接口技术』 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦
32位微处理器奔腾的主要部件及其先进技术
1.Pentium微处理器
Pentium微处理器是一种最先进的32位微处理器
- 两组算术逻辑单元(ALU)、两条流水线、能同时执行两条指令;
- 数据cache(高速缓冲存储器)和代码cache分开;不仅提高了总线的速度;还将数据总线增加到64条;
- 流水浮点部件提供了工作站的特性。因此它几乎具有两台80X86的功能。
2.12个主要部件
核心部件是两个流水线执行部件和浮点处理部件
总线接口部件 U流水线和V流水线 数据Cache 代码Cache 指令预取部件 指令译码器控制ROM 分支目标缓冲器BTB 控制部件 浮点处理单元FPU 分段部件和分页部件 寄存器组
总线接口部件
实现CPU与系统总线的连接,包含64位数据线、32位地址线和控制信号线,实现信息交换
U流水线和V流水线
独立运行,均含ALU。
每条流水线含5级(取指令、译码、生成地址、执行指令、回写)
U:可执行所有的整数运算指令
V:执行简单的整数运算和数据交换指令
数据Cache与代码Cache
两者分开,减少冲突,提高数据存取命中率
两者分别配置专用的TLB(转换检测缓冲器),将线性地址转换为高速缓存的物理地址
Cache存放CPU最近要使用的数据和指令,提高存取速度,并配置转换检测缓冲器(TLB),将线性地址转换为高速缓存的物理地址
指令预取部件IPU、指令译码器IDU、控制ROM
IPU每次预取两条指令
复杂指令需要控制ROM的转换(转换为微程序)
浮点处理部件(FPU)
FPU按流水线机制执行指令(8级)
是U流水线的补充
浮点运算指令的前4级在U流水线中执行
常用浮点指令采用专门的硬件电路实现
支持32位、64位、80位精度
分段部件和分页部件
片内二级存储管理
分段将逻辑地址转换为物理地址
分页将线性地址转换为物理地址
控制部件
通过解析指令译码器中的译码信息和控制ROM中的微程序,控制两条流水线和FPU的执行
分支目标缓冲器BTB
BTB在遇到条件转移指令时用来预测是否发生转移,并提供预取地址
3.Pentium采用的先进技术
- 先进的体系结构
- CISC和RISC相结合的技术
- 超标量流水线技术
- 先进的分支预测技术
3.1先进的体系结构
- 外部数据总线为64位,数据传输量提高一倍 -》扩充数据总线
- 设置片内代码cache和数据cache(速度高容量小的存储器),提高取指令和读/写数据的速度 -》cache分离提速
- 两条指令流水线并行执行-》u/v并行流水线
- 片内集成FPU(浮点运算器),是U流水线的补充,采用硬件实现浮点运算-》集成FPU
- 采用分段和分页两级存储管理机制,存储管理方便灵活-》分页分段两级存储
- 增强了信息传输准确性的检测能力和机器异常事件的处理能力,为系统的扩展提供了很好的检测和调试能力-》异常检测增强
3.2CISC和RISC相结合的技术
CISC(复杂指令集)特点:
指令系统包含很多指令,并有使用较少的复杂指令
多种内存寻址方式
采用微程序机制实现复杂指令
RISC(精简指令集)特点:
指令系统只含简单而常用的指令,且指令长度相同
采用流水线机制执行指令
大多数指令利用寄存器来执行,只需一个时钟周期
Pentium:
结合——大多数指令采用简化指令,但仍保留一部分复杂指令并用硬件实现
3.3超标量流水线技术
两个问题什么是流水线,什么是超标量?
问题1:什么是流水线?
非流水线方式:
- 依次执行三个操作 取指令、指令译码、执行
- 当一条指令在执行的过程之中时,其他指令则要等待这条指令的执行,直至完成。
流水线:
指令流水线的组成:
总线接口部件、指令预取部件、指令译码部件、执行部件
- Pentium的指令流水线由5级组成 指令预取级PF、首级译码级D1、二次译码级D2(形成物理地址)、执行级EX、回写级WB
- Pentium4的流水线达20级
- Pentium的浮点运算部件也采用流水线机制运行 8级组成:PF、D1、D2、EX、X1、X2、WF、ER
PF 预取
D1 译码阶段1
D2 译码阶段2
EX 取操作数
X1 浮点执行步骤1
X2 浮点执行步骤2
WT 写浮点数
ER 出错报告
问题2:什么是超标量?
标准状态下
一个处理器含一条指令流水线
超标量
一个处理器中有多条指令流水线
以并行方式在U、V两条流水线上同时执行两条指令
在U流水线中可以执行任何指令
V流水线中只能执行和U流水线当前执行的指令符合配对规则的指令
配对规则
- 两条指令都是简单指令(包括RISC指令)
- 互相没有寄存器关联性:两条指令中的寄存器不是“读后写”或者“写后写”的关系(不能对同一寄存器多次操作)
- 一条指令不能同时既包含位移量又包含立即数
- 带前缀的指令只能出现在U流水中
- 浮点运算指令不能和任何指令配对
流水线受阻的情况
U受阻:影响V
V受阻:不会影响U
U、V两条流水线,U—所有整数运算,V—简单整数运算和数据交换指令
超标量流水线的运行前提
- 所有指令都是简化RISC指令
- V流水线总是能够接受U流水线的下一条指令
因此,超标量流水线技术与RISC技术密不可分!
3.4先进的分支预测技术
使用分支目标缓冲器BTB(branch target buffer)来执行预测功能
分支转移指令的转移目标地址是可以预测的,依据就是前一次的转移目标地址和历史状态