中国网站,文学网站建设平台,个人放款可以做网站,网站开发项目源码系列文章目录
本系列博客重点在深圳大学计算机系统#xff08;3#xff09;课程的核心内容梳理#xff0c;参考书目《计算机组成与设计》#xff08;有问题欢迎在评论区讨论指出#xff0c;或直接私信联系我#xff09;。
第一章 计算机组成与设计01——计算机概要与技…系列文章目录
本系列博客重点在深圳大学计算机系统3课程的核心内容梳理参考书目《计算机组成与设计》有问题欢迎在评论区讨论指出或直接私信联系我。
第一章 计算机组成与设计01——计算机概要与技术_李忆如的博客-CSDN博客
第二章 计算机组成与设计02——指令计算机的语言_李忆如的博客-CSDN博客
第三章 计算机组成与设计03——计算机的算术运算_李忆如的博客-CSDN博客
第四章 计算机组成与设计04——处理器 梗概
本篇博客主要介绍深入计算机组成与设计第四章处理器的相关知识。 一、引言
1.计算机性能因素
计算机性能因素与其决定因素如下 2.基本的MIPS实现指令部分
一个基本的MIPS的实现方式如下 指令的执行步骤如下 3.CPU 抽象视图 算术逻辑指令、存储访问指令、分支指令的CPU抽象视图分别如下
Tips某个操作的数有多个来源时需要加入复选器调整视图如bne、lw、sw
4.MIPS子集的基本实现
加入后一个MIPS子集的基本实现如下包含控制信号与复选器。 二、逻辑设计基础
1.组合单元 2.时钟方法 三、数据通路的建立
数据通路CPU中处理数据和地址的单元部件 Registers ALUs Mux’s Memories …
数据通路部件datapath element一个用来操作或保存处理器中数据的单元
程序计数器PC存放下一条指令地址的寄存器 1.R型指令 2.存取指令 Tips符号扩展不能漏为增加数据项长度将原数据项最高位复制到新数据项多出来的高位。
3.分支指令 Tipsbeq需要左移两位MIPS中连续字的地址相差4且字的起始地址为4的倍数一个地址为8位即一个字节一个字有4个字节。所以需要将offset_value左移2位使其表示为字的地址确保其能正确跳转到正确地址。
4.简单的数据通路R型/存取
初步的数据通路在1个时钟周期内完成指令
每个数据通路部件在一个时钟周期内只能处理一条指令 因此需要独立的数据和指令存储器
当不同指令的数据来源不同时需要使用多选器 5.完整的数据通路单周期 Tips数据通路必须有独立的指令存储器和数据存储器因为处理器在一个周期内只能操作每个部件一次而在一个周期内不可能对一个单端口存储器进行两次存取。
四、简单的实现机制
核心以MIPS核心指令子集为目标为数据通路设计控制单元
核心指令 lw, sw, beq, add, sub, and, or, slt, j
1.ALU控制信号 设计单元表示真值表如下 2.主控单元设计 Tips增加了指令判断的复选器与ALU控制单元并标识出了所有控制信号。
控制信号及其含义如下 加入控制单元后的简单数据通路如下 各类指令的控制信号如下 五、流水线概述
单周期处理器缺点无法应对不同指令路径处理时间长短的差异最慢的路径决定时钟周期不符合“加快经常性实事件”设计原则。 0.MIPS指令流水
IF: 从内存中取指令
ID: 指令解码 读寄存器
EX: 执行运算或计算地址
MEM: 访问内存操作
WB: 将结果写回寄存器 Tips流水线每一步的流水线周期Tc一致取决于最慢处理步骤。
1.流水线的性能
对上述例题lw进行分析性能对比如下 2.流水线的加速比及分析 流水线vs单周期如下 流水线vs多周期指令如下 流水线分析n个段以5为例构成了一个指令流水线一条指令经过每个段
CPI平均执行周期数减少到1平均每个时钟周期发射或完成一条指令
在任意时钟周期在每个流水段正执行一条指令的一部分
3.流水线冒险
冒险现象下一周期不能按时执行下一条指令
①结构冒险结构相关所需的部件忙暂不可用
②数据冒险数据相关需要前面某条指令的计算结果用于本次计算输入
③控制冒险控制相关需要根据前面某条指令的结果来确定分支的选择执行
3.1 结构冒险
定义缺乏硬件支持导致指令不能在预定的时钟周期内执行的情况
以data access与instruction fecth的冒险为例 Tips因此流水实现的MIPS中指令和数据内存必须是分离独立的 两个独立的L1 cache
3.2 数据冒险
定义一条指令依赖于前面某条执行的计算结果缺少指令执行所需数据而导致指令无法在预期的时钟周期内执行。 解决方法如下
1前推 2前推停顿 3.3 数据冒险样例
Tips时钟周期即横轴数本题为13个。
调整后指令如下减少时钟周期 3.4 控制冒险
定义取到的指令不是所需要的地址变化不是预期而导致指令不能在预定的时钟周期内执行。
出现原因决策依赖于一条指令的结果而其他指令正在执行中例下一条指令IF阶段时分支指令仍在 ID阶段。
解决控制冒险的方法如下
1阻塞
在分支指令后立即阻塞流水线避免地址未被计算样例如下 分析在较长流水线中往往不能在第二级完成分支决策停顿会带来更大的速度下降。
2预测
根据“通过预测提高性能”的设计原则对分支地址进行预测预测预测错误才需要阻塞。
Ⅰ、恒预测不跳转
一种简单的预测方法就是总预测分支未发生不跳转样例如图 Ⅱ、静态分支预测
一种更成熟的分支预测是基于典型的行为预测一些分支发生而预测另一些分支不发生样例如下 Tips这种分支预测依赖始终不变的行为没有考虑特定分支指令的特点。
Ⅲ、动态硬件预测
定义预测取决于每一步分支的行为并且在整个程序的生命周期内可能改变分支的预测结果。
实现保存每次分支的历史记录利用历史记录来预测。
Tips较长的流水线会恶化预测的性能各种方法并提高错误预测的概率。
3.5 流水线冒险样例 六、MIPS流水化的数据通路
在单时钟周期中流水线最多五条指令因此要把之前的数据通路分为五部分如图 图中从左到右的指令流中有两个例外
1写回阶段是写回数据通路中间的寄存器可能导致数据冒险
2选择PC的下一个值的时候在自增PC与MEM的分支地址间进行选择可能导致控制冒险
1.流水线寄存器
通过增加保存中间数据记录前一时钟周期产生的结果的寄存器使得指令过程中可以共享部分数据通路故需要流水线寄存器确保一条数据通路实现流水线加入流水线寄存器如图所示 Tips流水线寄存器宽度要足够大64、128、97、64
补充每条指令都会更新PCPC可以看作是一个流水线寄存器给IF级提供数据发生异常时必须保存它的内容。
2.流水线工作方式
以lw与sw为例介绍流水线的工作方式与数据通路实现红圈为数据传输与存储供之后的指令使用如图所示
2.1 lw/sw指令的流水操作——IF 2.2 lw/sw指令的流水操作——ID Tips由于处理器并不知道当前是哪一条指令在被译码因此它把符号扩展后的常量及两个寄存器的值都读入ID/EX寄存器中简化控制。
2.3 lw指令的流水操作——EX 2.4 lw指令的流水操作——MEM 2.5 lw指令的流水操作—— WB 其中写回寄存器的值是IF/ID流水线寄存器之前lw的目标寄存器没保存提供的但现在的指令是lw后的指令故写回寄存器的值有问题需要修正如图所示 2.6 sw指令的流水操作——EX Tips只有在Sw中才将第二个寄存器的数据写入EX/MEM寄存器。
2.7 sw指令的流水操作—— MEM 2.8 sw指令的流水操作—— WB 3.流水线图形化
3.1 多时钟周期流水线图
多时钟周期流水线图简单但不包括所有细节构成了资源部件的使用情况图。样例如图所示 Tips上图描述的是每个步骤使用的物理资源
3.2 传统图示 3.3 单时钟周期流水线图
单时钟周期流水线图表示的是一个时钟周期内整个数据通路的状态样例如图 3.4 流水线性能与时钟周期回顾 3.5 流水线例题
Ⅰ、几个学生在讨论五级流水线的效率问题。有一个学生指出并非所有流水级中的指令都是活动的。在忽略冒险的情况下他们做出了以下几个断言其中哪一个是正确的
1允许跳转、分支、ALU指令使用比5级装载指令需要的级数更少的级数将在所有情况下增加流水线的性能。
错误由2解释。
2允许一些指令使用更少的级数并不能提高性能因为吞吐率单位时间流出的指令数是由时钟周期决定的。每条指令所需的流水线级数仅影响它的延迟时间而不影响吞吐率。
正确
3不可能减少ALU指令所需的时钟周期数因为他们需要写回结果。不过分支和跳转指令是可以减少时钟周期数的因此存在改善性能的机会。
错误
4相对于尝试减少指令所需的时钟周期数我们可以延长流水线的级数虽然每条指令花费更多的时钟周期数但时钟周期的长度变短了这样才能提高性能吞吐率 单位时间 / 时钟周期的长度。
正确
Ⅱ、流水线对时钟周期的影响 1.流水线处理器与非流水线处理器的时钟周期分别是多少
流水线处理器时钟周期取决于最慢的流水线级350ps
非流水线时钟周期为一条指令单周期1250ps
2.lw指令在流水线处理器和非流水线处理器中的总延迟分别是多少
流水线总延迟max (250, 350, 150, 300, 200) * 5 350ps * 5 1750ps
非流水线250 350 150 300 200 1250ps
3.如果可以将原流水线数据通路的一级划分为两级每级的延迟是原级的一半那么你会选哪一级进行划分划分后的时钟周期是多少
选择最长的一级划分即ID
划分后时钟周期为300ps
4.假设没有阻塞和冒险数据存储器的利用率是多少占总周期数的百分比
lw与sw使用数据存储器故利用率为201535%
5.假设没有阻塞和冒险寄存器堆的写寄存器端口的利用率是多少
alu与lw使用写寄存器端口故利用率为452065%
6.假设一种多周期的处理器设计其中每条指令需要多个时钟周期完成。但上一条指令完成前不取下一条指令。在这种设计中指令仅经过其所需的阶段例如存储指令仅需4个时钟周期因为其不需要WB阶段。比较单周期设计、多周期设计和流水线设计三者的时钟周期和总执行时间。 Tipsbeq因为branch在mem中所以有控制信号无WB所以在多周期中为4。
4.流水线控制信号
流水线控制信号简化如图 Tips输入ALU control的六位字段为指令立即数的低六位符号扩展时无变化。
EX过程中控制信号有RegDst、ALUOp、ALUSrc根据这些信息选择结果寄存器R、I型指令、ALU操作、并为ALU读取data2或符号扩展后的立即数。
4.1 控制信号说明
ALUOp信号如下 其他信号如下 Tips控制信号与非流水方式相同的意义各种指令如下 4.2 控制信号与数据通路
流水线控制信号根据指令产生与单周期实现一样如图 TipsALUOp分为ALUOp1与ALUOp0为两个控制信号。
流水线数据通路如图 总结
以上便是绍深入计算机组成与设计第四章处理器的相关知识。在第四章中主要以计算机系统处理器与流水线的数据通路介绍与实现为主。