影响流水线性能的因素
(1)互锁
在典型的程序处理过程中,经常会遇到这样的情形,即一条指令的结果被用做下一条指令的操作数,下面通过一个简单的例子说明了在流水线上产生互锁。
有如下指令序列:
LDR r0,[r0,#0]
ADD r0,r0,r1 ;在5级流水线上产生互锁
可以看出,流水线的操作产生中断,因为第一条指令的结果在第二条指令取数时还没有产生。第二条指令必须停止,直到结果产生为止。
(2)跳转指令
跳转指令也会破坏流水线的行为,因为后续指令的取指步骤受到跳转目标计算的影响,因而必须推迟。但是,当跳转指令被译码时,在它被确认是跳转指令之前,后续的取指操作已经发生。这样一来,已经被预取进入流水线的指令不得不被丢弃。如果跳转目标的计算是在ALU阶段完成的,那么,在得到跳转目标之前已经有2条指令按原有指令流读取。
解决的办法是,如果有可能,最好早一些计算转移目标,当然这需要硬件支持。如果转移指令具有固定格式,那么可以在解码阶段预测跳转目标,从而将跳转的执行时间减少到单个周期。但要注意,由于条件跳转与前一条指令的条件码结果有关,在这个流水线中,还会有条件转移的危险。
尽管有些技术可以减少这些流水线问题的影响,但是,不能完全消除这些困难。流水线级数越多,问题就越严重。对于相对简单的处理器,使用3~5级流水线效果最好。
显然,只有当所有指令都依照相似的步骤执行时,流水线的效率达到最高。如果处理器的指令非常复杂,每一条指令的行为都与下一条指令不同,那么就很难用流水线实现。
影响流水线性能的因素相关推荐
- 影响数据库性能的因素
论坛上的数据库爱好者们,对于数据库底层的各种细节,内幕,等待事件,隐藏参数等津津乐道,对于调整好一条SQL语句使之在查询优化器/查询引擎下能高性能运转具有巨大的满足感成功感,仿佛自己掌握了天下最有价值 ...
- mysql中影响数据库性能的因素讲解
mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情," ...
- 影响钕铁硼性能的因素及方法
钕铁硼永磁材料自问世以来,就以其优越的磁性能而备受关注,被称为"磁王",在市场需求的不断地增长下,钕铁硼生产工艺及磁体性能也不断发展和提升.我们一般用剩磁.矫顽力和最大磁能积这几个 ...
- 打造扛得住的MySQL数据库架构-第一课--影响数据库性能的因素
连接数,并发量 500 服务器连接错误 磁盘IO: 网卡流量: 1000MB 什么的表才叫大表??? 超过千万行,10G 大表的影响: 大表对DDL操作的影响 修改表的结构需要长时间锁表 5.5和版本 ...
- 机制以及应对方案。影响Redis性能的五大方面的潜在因素DAR
Redis被广泛使用的一个很重要的原因是它的高性能.因此我们必要要重视所有可能影响Redis性能的因素.机制以及应对方案.影响Redis性能的五大方面的潜在因素,分别是: Redis内部的阻塞式操作 ...
- Java EE (11) - 影响性能的因素
垂直层(Tier)影响性能的因素 资源层 数据库性能 通常考虑以下方面的优化(MySQL为例): --使用哪种存储引擎:MyISAM vs. InnoDB, MERGE, MEMORY, Federa ...
- 影响solr性能的一些因素(附使用经验)
Solr本身的性能不错,但是在使用过程中,还是会遇到一些使用错误,或是没考虑到的地方:在出现瓶颈时,可以首先考虑哪些点呢?下面就来看一下Solr官方的总结,个人觉得总结的很好.SOLR+LUCENE的 ...
- java事务过大影响系统性能吗_Java编程性能优化-影响性能的因素你都知道吗?
1.总是听说系统性能咋样,那我们为啥要性能调优?有啥意思? 1.1肺腑之言,唠叨几句感慨 以前写代码,一般都是跟着感觉走,业务实现出来就行了,至少客户端可以使用就可以.不管他三七二十一,总之我搞完了. ...
- 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]
本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...
最新文章
- iOS后台持续定位并定时上传
- 技术图文:如何利用C# + Echarts 绘制 Bar Simple?
- Oracle维护常用SQL语句
- sizeof _countof _tcslen的比较
- 通过IHS(IBM HTTP SERVER)转发WAS(WEBSPHERE)应用的小问题
- Find The Bone
- 数据结构笔记--栈的总结及java数组实现简单栈结构
- service和controller都加了事务_「Spring声明式事务」在service内部之间调用竟然失效啦?...
- 【英语学习】【WOTD】disavow 释义/词源/示例
- r语言 plot_R语言直方图绘制hist(),plot()
- 汇编语言学习--转移指令的原理
- 【机房收费系统】---结账
- 机器学习/深度学习测试题(二)—— 单层线性神经网络求解异或问题
- 接口返回xml格式的数据_接口测试之Jmeter串联xml数据格式请求
- 中小企业CRM评测-销售管理_任我行
- c语言程序设计 国外教材,标准C程序设计(第7版国外计算机科学经典教材)
- 主板诊断卡的使用方法视频教程
- E45: ‘readonly‘ option is set (add to override) 解决方法
- Microsoft Office Home and Student 2007产品密匙
- 前端,网页设计常用色彩搭配表
热门文章
- excel取消密码_不让别人修改你的Excel表,只有1%的人用这个最简方法
- php猴子吃桃子问题n天,『PHP学习笔记』系列四:利用函数递归调用思想解决【斐波那契数列】问题和【猴子吃桃问题】问题...
- java 在已有内容的PDF上添加空白数字签名域
- 如何不通过密保邮箱找回腾讯企业邮箱管理员密码???
- matlab生成三维图软件,Matlab三维图如何绘制?
- 超详细教程:windows安装MSYS2(mingw gcc)——更新于2021.11
- macos 清空dns缓存_如何在macOS上重置DNS缓存
- AddressSanitizer
- IJCAI 2023 | 腾讯优图实验室入选论文解读,含小样本学习方法、玻璃物体分割、RSI变化检测研究方向...
- html 如何播放3pg文件,3gp是什么格式文件?3gp文件怎么打开/用什么打开?