《计算机原理与系统结构》学习系列——处理器(中)
系列文章目录
目录
- 流水线数据通路与控制
- 概述
- 5个流水级
- 指令周期与流水级
- 流水线性能
- 流水线时钟周期的长度T和数量cycles
- 流水线性能
- 流水线数据通路
- 流水线寄存器
- 流水线分析
- 图形化流水线
- 流水线控制
流水线数据通路与控制
概述
5个流水级
指令周期与流水级


单周期实现中,任一时刻只有部分硬件在运行
将指令执行分散在五个周期,每个周期只执行一个阶段,这样的方法对于效能浪费大
指令1进入ID周期后,指令2可以使用IF部分硬件
指令1进入EX周期后,指令2可以使用ID部分硬件…
与指令周期五个阶段相对应,把数据通路分为五个流水级,形成流水线
流水线性能
流水线时钟周期的长度T和数量cycles
假设五个阶段各需200ps(1ps = 1 0 − 12 s 10^{-12}s 10−12s),将最慢阶段的200ps作为时钟周期
时钟周期数 = 指令数 + 流水级数 - 1 cycles = IC + n -1
理想加速比 = 流水线级数 S n 理想 = n S_{n理想} = n Sn理想=n
(理想条件为:1.每个流水级时间等长 2.流水线没有开销 3.指令数足够大)

假设五个阶段需要的时间分别为200ps、100ps、200ps、200ps、100ps
仍然将最慢阶段的200ps作为时钟周期(简单源于规整)
现在考虑lw指令后面跟着一条add指令,add指令在ID阶段需要lw取出的数据,而此时lw还没取出数据,这导致了冲突
因此省略流水周期可能导致两条指令抢占同一流水级的硬件部件引发结构冒险
流水线性能
只管查一条指令,可以发现流水线没有减少单挑指令的执行时间,而是通过增加指令的吞吐率来提高性能,即在同一时间处理多条指令的不同阶段,实现指令级并行
理想情况下,流水线CPI为1,IC不变,由时钟周期长度决定的吞吐率是评价流水线性能的重要指标
为提高流水线性能,可以进一步划分流水级、缩短时钟周期。在IC和CPI不变的情况下,进一步缩短T,减少CPU执行时间,提高吞吐率提升
过度划分流水级会导致调度开销增大、分支性能下降、抵消性能
流水线数据通路
流水线寄存器
任一时刻,每个流水级只被一条指令占用,用一条数据通路执行5条MIPS指令不会造成结构冒险
但每条指令使用和生成的数据不同,为了保留指令各自的数据需要在两个流水级之间插入流水线寄存器(以左右两个流水级命名非别为IF/ID,ID/EX,EX/MEM,MEN/WB)


流水线分析
(左半边涂灰表示写入,右半边涂灰表示读取,组合单元涂灰表示使用)
- IF:一切指令都要读取,将PC+4和指令传给IF/ID
- ID:一切指令都要译码产生控制信号,除j以外均要读取寄存器。PC+4继续传给ID/EX,rs和rt的数据、扩展后的立即数也要传给ID/EX
- EX:多选器ALUSrc选择ALU源操作数和rs相加。ALU结果、Zero标志位、分支目标地址都要传给EX/MEM

- MEM:从数据存储器中读取数据,和ALU运算结果一并传给MEM/WB
- WB:将访存读取的数据写回寄存器,为写回rt,需要保存rt地址


图形化流水线
以下面五条指令为例
lw $10,20($1)
sub $11,$2,$3
add $12,$3,$4
lw $13,24($1)
add $14,$5,$6

流水线控制
流水线控制信号和单周期控制信号的种类、数量、功能完全相同
每条指令在ID级产生控制信号后,下一周期会后续指令覆盖
因此,控制信号也需要从ID级依次传递到EX级、MEM级、WB级。EX级使用该级的信号(ALUSrc和ALUOp)后不再使用,可以丢弃,MEM级同理,这就是跨流水级的控制信号传送


相关文章:
《计算机原理与系统结构》学习系列——处理器(中)
系列文章目录 目录 流水线数据通路与控制概述5个流水级指令周期与流水级 流水线性能流水线时钟周期的长度T和数量cycles流水线性能 流水线数据通路流水线寄存器流水线分析图形化流水线流水线控制 流水线数据通路与控制 概述 5个流水级 指令周期与流水级 单周期实现中&#x…...
深入解析 OceanBase 数据库中的局部索引和全局索引
深入解析 OceanBase 数据库中的局部索引和全局索引 引言 在分布式数据库中,索引的设计对于优化查询性能至关重要。OceanBase 作为一款高性能的分布式关系数据库,支持局部索引和全局索引两种索引类型。理解这两种索引的特点和适用场景,对于数…...
2024防晒衣市场社媒营销洞察报告
2024年,硬防晒已经从单一的户外场景,扩展到通勤、外出游玩、穿搭等更多场景,多样化的需求导致的消费群体不断扩大,“防晒经济”迎来自己的主场时刻。 当前,防晒衣不仅需要满足不用场景的灵活切换,还要满足多…...
【Ubuntu20.04 Visual Studio Code安装】【VSCODE】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、打开VSCOE官网二、下载VSODE的Ubuntu版本三、安装VSCODE软件包四、导入工作空间(添加工作空间目录)五、安装插件:1.安装简体中文包2.安装ros插件…...
贪心算法day(1)
1.将数组和减半的最少操作次数 链接:. - 力扣(LeetCode) 思路:创建大跟堆将最大的数进行减半 注意点:double t queue.poll()会将queue队列数字减少一个后再除以2,queue.offer(queue.poll()/…...
窗口函数sql使用总结
一、开窗 基础知识:窗口分析函数 (1)LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往…...
python单因素分析
写了个简易小程序实现,以后用的时候直接复制就行: import numpy as np from scipy.stats import fdatas [[65,60,69,79,38,68,54,67,68,43],[74,71,58,49,58,49,48,68,56,47],[22,34,24,21,20,36,36,31,28,33] ] a 0.05def get_mean_var(data):data_m…...
「C/C++」C++ STL容器库 之 std::list 双向链表容器
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...
应用程序框架进阶<HarmonyOS第一课>
一、判断题 1. 一个应用是由一个或多个HAP组成。 正确(True) 错误(False) 正确(True) 回答正确 2. UIAbility组件多实例启动模式是默认的启动模式。 正确(True)错误(False) 错误(False) 回答正确 二、单选题 1. 以下关于指定实例启动模式说法正确的是? …...
【C++】vector<string>-动态数组存储多个string
#1024程序员节 | 征文# //demo #include <iostream> #include <vector> #include <string>using namespace std; int main() {// 创建一个存储字符串的向量vector<string> Record;// 向向量中添加字符串Record.push_back("example");Record…...
66Analytics 汉化版,网站统计分析源码,汉化前台后台
66Analytics 汉化版,网站统计分析源码,汉化前台后台 本源码汉化前台后台,非其他只汉化前台版 网络分析变得容易。自托管、友好、一体化的网络分析工具。轻量级跟踪、会话回放、热图、用户旅程等 简单、好看、友好-大多数网络分析解决方案做得太多了,在大…...
蓝桥杯单片机STC15F2K60S2第十四届省赛代码详细讲解(附完整代码)
本文是写第十四届的蓝桥杯省赛代码,新手教程作者也写了一篇,欢迎去观看作者专门为新手写的一篇。也欢迎收录该专栏。 蓝桥杯单片机STC15F2K60S2第十三届省赛代码详细讲解(附完整代码) 专栏: 蓝桥杯单片机 然后接下来…...
[免费]SpringBoot+Vue智慧校园(校园管理)系统[论文+源码+SQL脚本]
大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue智慧校园(校园管理)系统,分享下哈。 项目视频演示 【免费】SpringBootVue智慧校园(校园管理)系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术的迅猛发展,…...
景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线
随着经济的发展和人们物质生活水平改善,居民的旅游需求呈现多元化和个性化,自助旅游的人越来越多。许多游客在旅游行程中需要随时随地了解旅游景点有关的各类信息,如旅游景点介绍、推荐路线、地图导航等,合理规划和安排旅游线路。正是为了应对…...
RedisIO多路复用
一、多路复用要解决的问题: 并发多客户端连接,在多路复用之前的处理方案是同步阻塞网络IO模型,这种模型的特点就是用一个进程来处理一个网络连接。优点在于比较简单,缺点在于性能较差,每个用户请求到来都得占用一个进程来处理&am…...
C++的相关习题(2)
初阶模板 下面有关C中为什么用模板类的原因,描述错误的是? ( ) A.可用来创建动态增长和减小的数据结构 B.它是类型无关的,因此具有很高的可复用性 C.它运行时检查数据类型,保证了类型安全 D.它是平台无关的,可移植…...
C++《vector的模拟实现》
在之前《vector》章节当中我们学习了STL当中的vector基本的使用方法,了解了vector当中各个函数该如何使用,在学习当中我们发现了vector许多函数的使用是和我们之前学习过的string类的,但同时也发现vector当中一些函数以及接口是和string不同的…...
无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比
JSP 跳点搜索算法与改进 A*算法对比 一、算法概述: 跳点搜索(Jump Point Search,JPS)算法:一种用于路径规划的启发式搜索算法。它主要用于在网格地图(如游戏地图、机器人运动规划地图等)中快速找到从起点到终点的最短路径。该算法在改进 A*算法的基础上进行了优化,通过跳过一…...
OpenCV ORB角点检测匹配和偏移计算
OpenCV ORB角点检测匹配和偏移计算 1. 简介2. ORB角点检测匹配和偏移计算2.1. 创建平移图片2.2. ORB角点检测2.3. ORB角点匹配2.4. 计算变换矩阵 1. 简介 首先通过 cv2.ORB_create 创建ORB检测器 orb, 然后通过 orb.detectAndCompute 检测两张图片获得ORB角点&…...
图文详解ChatGPT-o1完成论文写作的全流程
学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 本月中旬OpenAI发布了OpenAI o1系列新的AI模型。 据OpenAI介绍,这些模型旨在花更多时间思考后再做出反应,就像人一样。通过训练,它们学会改进思维过…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
