计算机指令流水线时间计算,计算机指令-流水线和吞吐率
流水线
我们把计算机的一条指令抽象成三个步骤(实际不止这些)
现在向计算机发送三条指令A,B,C,如果不采用流水线的方式传输,那么在每个机器周期中的执行步骤如下图所示(我们假设每个步骤都会耗费一个机器周期):
采用流水线的方式传输如下图所示:
对比上面两张图,我们可以看出,流水线是一种准并行处理技术:
第1个机器周期:处理A指令的取指步骤
第2个机器周期:处理A指令的分析步骤,同时也在处理B指令的取指步骤
以此类推,我们可以看出,同一机器周期只允许处理不同的步骤,不能处理相同的步骤,这样在保证指令安全的同时也可以加快处理速度,提升了效率,这就是流水线带来的好处
吞吐率
流水线理解了,吞吐率就好说了,这里的吞吐率指的是流水线的吞吐率,简单理解吞吐率就是通过数值来反应计算的处理速度,先列个公式:吞吐率 = 指令条数 / 流水线时间
指令条数:需要计算吞吐率的指令的总数
流水线时间:这里的流水线时间指的并不是一个指令流水线花费的时间,而是跑完公式中指定的指令条数所需要的时间,对比上面两个图,一条指定所需要耗费的流水线时间是3个机器周期,而跑完ABC三条指令耗费的流水线时间是5个机器周期,对于流水线时间,有个计算公式:一条指令流水线所需要耗费的时间 + (指令条数 - 1)* 一条流水线中最耗时的步骤时间
吞吐率一般分为实际吞吐率和最大吞吐率,下面我从两个案例来分别讲述:
实际吞吐率
按照上面的公式,指令条数为8条,流水线时间=(1+2+3+1) + (8-1) * 3=28,结果就显而易见是C了
最大吞吐率
我们列个一元二次方程,设最大吞吐率为y,指令条数为x,按照上面的公式y=x /((2+1+3+1+2) + (x-1)* 3),简化下就是y=x / (3x + 6)=1 / 3 - 2 / (3x-6),x为正整数,当x趋于无穷大的时候,y的最大值为1/3
大家想要更加详细的了解其中的原理,可以参考:https://blog.csdn.net/yi_zz/article/details/7479912
用通俗易懂的语言阐述复杂的概念,学无止境,共勉前进!!!
计算机指令流水线时间计算,计算机指令-流水线和吞吐率相关推荐
- 流水线性能吞吐率、加速比、效率计算
流水线性能吞吐率.加速比.效率计算 吞吐率 1.最大吞吐率 Tpmax=1△tTpmax=\frac{1}{△t}Tpmax=△t1 2.实际吞吐率 Tp=n(m+(n−1))∗△tTp=\frac ...
- 指令——流水线和吞吐率
指令--流水线和吞吐率 解析: (1)吞吐率有个公式:指令条数除以流水线时间 (2)流水线时间计算有个公式:一条指令所需时间+(指令条数-1)*时间最长的指令的一段 7+(8-1)*3 流水线: 流水 ...
- 软考--流水线问题吞吐率详解
今天从网上看到一篇不错的关于流水线吞吐率的文章,为软考问题做出了详细的解释,转载分享给广大网友. 从生活中的工厂入手,流水线上每个工人所作的工作都不同,但却是相连的,上面的工人做完了他的事就直接丢给下 ...
- 计算机系统结构:Pipelining 基本流水线技术
如何让程序运行更快? CPU性能公式:CPU时间 = CPI × 所执行的指令条数 × 时钟周期时间 关于流水线的几个问题: Pipeline Hazard(Data hazard.structure ...
- 关于cpu流水线的各阶段周期,吞吐率计算问题
本人在复习计组流水线时,遇到了一些问题,再次记录,以备不时之需. 首先要弄明白一点,那就是cpu的各阶段是否具有相同的时钟周期,也就是说,每个阶段所花费的时间是否都是相同的? 为什么会想到这个问题,先 ...
- 体系结构 流水线吞吐率、加速比、效率
https://www.icourses.cn/web/sword/portal/shareDetails?&cId=3266#/course/assignments 吞吐率:单位时间内流水线 ...
- 1.6流水线:流水线、流水线周期、流水线执行时间、流水线吞吐率、流水线加速比
1.6流水线:流水线.流水线周期.流水线执行时间.流水线吞吐率.流水线加速比 流水线 流水线周期 流水线执行时间 理论公式 实践公式 举例计算流水线执行时间 流水线吞吐率 举例计算流水线吞吐率 流水线 ...
- 加速器吞吐率、能效比的计算
吞吐率和能效比是加速器性能评估的重要指标 首先介绍吞吐率和能效比的公式,然后介绍吞吐量的计算方式 一.吞吐率 吞吐率是指单位时间内运行加.减.乘.除的次数. 吞吐率=吞吐量/运行时间吞吐率= 吞吐量/ ...
- 波特率-符号速率-传码率-数据速率-比特率-吞吐率-带宽区别
计算机界原文 信号在信道上传输的基本形式如下图 如上图所示,传输bit0~bit7,但由于通信机制的限制,我们必须在bit0之前加上start bit或者起始帧,在bit7之后加上stop bit或者 ...
最新文章
- 喷涂机器人保养应该注意的七个事项
- 深入掌握Java技术 EJB调用原理分析
- ios unrecognized selector sent to instance出现的原因和解决方案
- oracle 创建用户、授权、表空间
- python对文件的读操作有哪些方法-Python中文件的读取和写入操作
- JavaScript基础(一)基本认识
- python中数组的del,remove,pop区别详解
- 2017年11月01日普及组 I Liked Matrix!
- Java布局怎么加图片组件_java – 将图像缩略图添加到网格中的布局...
- java js获取css方法_5种JavaScript和CSS交互的方法
- DockPanel 类
- android批处理脚本,BAT批处理一键生成APK包脚本分享
- Apache开启Gzip压缩设置(转)
- activeMQ入门安装
- Photoshop通道抠出散乱的儿童头发
- JAVA学习经验--总结JAVA抽象类和接口
- linux 命令安装 wine,如何在Ubuntu 18.04 LTS上安装Wine
- hdu--1077--Catching Fish
- 投身管理工作(项目经理修炼手册正文的开头)
- 【C++】类和对象(中) —— 构造函数 | 析构函数 | 拷贝构造 | 赋值运算符重载
热门文章
- MySQL学习第四章课后题
- joc杂志影响因子2019_边缘计算 | SCI期刊JoCCASA诚邀专刊稿件
- python数据分析考点_零基础30天入门python数据分析|知识点整理
- oracle修改10到20,Oracle 10.2.0.5 RMAN迁移并升级11.2.0.4一例
- 【☀️~爆肝万字总结递归~❤️玩转算法系列之我如何才能掌握递归解题的能力❤️~十大经典问题助你突破极限~建议收藏☀️】
- SSM实现个人博客-day03
- XCTF WEB backup
- 【记录】python多线程的使用 线程同步(LOCK和RLOCK) python与mysql数据库交互实现增加和查找 python的格式化输出
- 【ubuntu】ubuntu18.04:在处理时有错误发生:ufw E: Sub-process /usr/bin/dpkg returned an error code (1)
- SpringSide 4 QuickStart运行Demo