(1)互锁

在典型的程序处理过程中,经常会遇到这样的情形,即一条指令的结果被用做下一条指令的操作数,下面通过一个简单的例子说明了在流水线上产生互锁。

有如下指令序列:

LDR r0,[r0,#0]
ADD r0,r0,r1 ;在5级流水线上产生互锁

可以看出,流水线的操作产生中断,因为第一条指令的结果在第二条指令取数时还没有产生。第二条指令必须停止,直到结果产生为止。

(2)跳转指令

跳转指令也会破坏流水线的行为,因为后续指令的取指步骤受到跳转目标计算的影响,因而必须推迟。但是,当跳转指令被译码时,在它被确认是跳转指令之前,后续的取指操作已经发生。这样一来,已经被预取进入流水线的指令不得不被丢弃。如果跳转目标的计算是在ALU阶段完成的,那么,在得到跳转目标之前已经有2条指令按原有指令流读取。

解决的办法是,如果有可能,最好早一些计算转移目标,当然这需要硬件支持。如果转移指令具有固定格式,那么可以在解码阶段预测跳转目标,从而将跳转的执行时间减少到单个周期。但要注意,由于条件跳转与前一条指令的条件码结果有关,在这个流水线中,还会有条件转移的危险。

尽管有些技术可以减少这些流水线问题的影响,但是,不能完全消除这些困难。流水线级数越多,问题就越严重。对于相对简单的处理器,使用3~5级流水线效果最好。

显然,只有当所有指令都依照相似的步骤执行时,流水线的效率达到最高。如果处理器的指令非常复杂,每一条指令的行为都与下一条指令不同,那么就很难用流水线实现。

影响流水线性能的因素相关推荐

  1. 影响数据库性能的因素

    论坛上的数据库爱好者们,对于数据库底层的各种细节,内幕,等待事件,隐藏参数等津津乐道,对于调整好一条SQL语句使之在查询优化器/查询引擎下能高性能运转具有巨大的满足感成功感,仿佛自己掌握了天下最有价值 ...

  2. mysql中影响数据库性能的因素讲解

    mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情," ...

  3. 影响钕铁硼性能的因素及方法

    钕铁硼永磁材料自问世以来,就以其优越的磁性能而备受关注,被称为"磁王",在市场需求的不断地增长下,钕铁硼生产工艺及磁体性能也不断发展和提升.我们一般用剩磁.矫顽力和最大磁能积这几个 ...

  4. 打造扛得住的MySQL数据库架构-第一课--影响数据库性能的因素

    连接数,并发量 500 服务器连接错误 磁盘IO: 网卡流量: 1000MB 什么的表才叫大表??? 超过千万行,10G 大表的影响: 大表对DDL操作的影响 修改表的结构需要长时间锁表 5.5和版本 ...

  5. 机制以及应对方案。影响Redis性能的五大方面的潜在因素DAR

    Redis被广泛使用的一个很重要的原因是它的高性能.因此我们必要要重视所有可能影响Redis性能的因素.机制以及应对方案.影响Redis性能的五大方面的潜在因素,分别是: Redis内部的阻塞式操作 ...

  6. Java EE (11) - 影响性能的因素

    垂直层(Tier)影响性能的因素 资源层 数据库性能 通常考虑以下方面的优化(MySQL为例): --使用哪种存储引擎:MyISAM vs. InnoDB, MERGE, MEMORY, Federa ...

  7. 影响solr性能的一些因素(附使用经验)

    Solr本身的性能不错,但是在使用过程中,还是会遇到一些使用错误,或是没考虑到的地方:在出现瓶颈时,可以首先考虑哪些点呢?下面就来看一下Solr官方的总结,个人觉得总结的很好.SOLR+LUCENE的 ...

  8. java事务过大影响系统性能吗_Java编程性能优化-影响性能的因素你都知道吗?

    1.总是听说系统性能咋样,那我们为啥要性能调优?有啥意思? 1.1肺腑之言,唠叨几句感慨 以前写代码,一般都是跟着感觉走,业务实现出来就行了,至少客户端可以使用就可以.不管他三七二十一,总之我搞完了. ...

  9. 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

最新文章

  1. iOS后台持续定位并定时上传
  2. 技术图文:如何利用C# + Echarts 绘制 Bar Simple?
  3. Oracle维护常用SQL语句
  4. sizeof _countof _tcslen的比较
  5. 通过IHS(IBM HTTP SERVER)转发WAS(WEBSPHERE)应用的小问题
  6. Find The Bone
  7. 数据结构笔记--栈的总结及java数组实现简单栈结构
  8. service和controller都加了事务_「Spring声明式事务」在service内部之间调用竟然失效啦?...
  9. 【英语学习】【WOTD】disavow 释义/词源/示例
  10. r语言 plot_R语言直方图绘制hist(),plot()
  11. 汇编语言学习--转移指令的原理
  12. 【机房收费系统】---结账
  13. 机器学习/深度学习测试题(二)—— 单层线性神经网络求解异或问题
  14. 接口返回xml格式的数据_接口测试之Jmeter串联xml数据格式请求
  15. 中小企业CRM评测-销售管理_任我行
  16. c语言程序设计 国外教材,标准C程序设计(第7版国外计算机科学经典教材)
  17. 主板诊断卡的使用方法视频教程
  18. E45: ‘readonly‘ option is set (add to override) 解决方法
  19. Microsoft Office Home and Student 2007产品密匙
  20. 前端,网页设计常用色彩搭配表

热门文章

  1. excel取消密码_不让别人修改你的Excel表,只有1%的人用这个最简方法
  2. php猴子吃桃子问题n天,『PHP学习笔记』系列四:利用函数递归调用思想解决【斐波那契数列】问题和【猴子吃桃问题】问题...
  3. java 在已有内容的PDF上添加空白数字签名域
  4. 如何不通过密保邮箱找回腾讯企业邮箱管理员密码???
  5. matlab生成三维图软件,Matlab三维图如何绘制?
  6. 超详细教程:windows安装MSYS2(mingw gcc)——更新于2021.11
  7. macos 清空dns缓存_如何在macOS上重置DNS缓存
  8. AddressSanitizer
  9. IJCAI 2023 | 腾讯优图实验室入选论文解读,含小样本学习方法、玻璃物体分割、RSI变化检测研究方向...
  10. html 如何播放3pg文件,3gp是什么格式文件?3gp文件怎么打开/用什么打开?