1. 其他的一些加速 性能提升模式 1

2. 乱序执行技术 2

2.1. 处理器乱序执行 2

2.2. 编译器指令重排 3

2.3. 乱序的分类 3

2.4. 允许程序员显式的告诉处理器对某些地方禁止乱序执行.这种机制就是所谓内存屏障 3

3. 采用乱序执行 优化 指令依赖的情况,流水线就会停滞 4

3.1. ,乱序执行可以加快芯片的运行速度将近两倍 5

3.2. 处理器乱序规则 5

1. 其他的一些加速 性能提升模式

指令调度是在一段程序中重新排序指令,使得程序中相关指令尽可能消除.

乱序执行则采用跳过相关指令,先执行不相关指令的方法加速.

超标量处理机基于重复硬件运行多条流水线,使得在一个时钟周期内可以发射或流出多条指令.

超流水线处理机将阶段更加细分, 级数大于等于8级的流水线称为超流水线.

超长指令字是把不相关的多条指令组合在一起作为一条位数超长的指令一同发射到流水线中,并行执行.

标量
将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术。超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理。在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令。超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多)。可以使得cpu的IPC(InstructionPerClock)>,从而提高cpu处理速度。超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度。超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作。熟知的pentium系列(可能是p-II开始),还有SUNSPARC系列的较高级型号,以及

2. 乱序执行技术

2.1. 处理器乱序执行

随着处理器流水线技术和多核技术的发展,目前的高级处理器通过提高内部逻辑元件的利用率来提高运行速度,通常会采用乱序执行技术.这里的乱序和上面谈到烧水煮茶的道理是一样的.

先来看一张处理器的简要结构图:

处理器从L1 Cache中取出一批指令,分析找出那些不存在相互依赖的指令,同时将其发射到多个逻辑单元执行,比如现在有以下几条指令:

一个指令即一个步骤

可以说乱序执行技术是处理器为提高运算速度而做出违背代码原有顺序的优化.在单核时代,处理器保证做出的优化不会导致执行结果远离预期目标,但在多核环境下却并非如此.

2.2. 编译器指令重排

除了上述由处理器和缓存引起的乱序之外,现代编译器同样提供了乱序优化.之所以出现编译器乱序优化其根本原因在于处理器每次只能分析一小块指令,但编译器却能在很大范围内进行代码分析,从而做出更优的策略,充分利用处理器的乱序执行功能.

2.3. 乱序的分类

现在来总结下所有可能发生乱序执行的情况:

· 现代处理器采用指令并行技术,在不存在数据依赖性的前提下,处理器可以改变语句对应的机器指令的执行顺序来提高处理器执行速度

· 现代处理器采用内部缓存技术,导致数据的变化不能及时反映在主存所带来的乱序.

· 现代编译器为优化而重新安排语句的执行顺序

2.4. 允许程序员显式的告诉处理器对某些地方禁止乱序执行.这种机制就是所谓内存屏障

看到乱序执行初始目的是为了提高效率,但是它看来其好像在这多核时代不尽人意,其中的某些”自作聪明”的优化导致多线程程序产生各种各样的意外.因此有必要存在一种机制来消除乱序执行带来的坏影响,也就是说应该允许程序员显式的告诉处理器对某些地方禁止乱序执行.这种机制就是所谓内存屏障.不同架构的处理器在其指令集中提供了不同的指令

这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。分枝技术:(branch)指令进行运算时需要等待结果,一般无条件分支只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行

3. 采用乱序执行 优化 指令依赖的情况,流水线就会停滞

在按序执行中,一旦遇到指令依赖的情况,流水线就会停滞,如果采用乱序执行,就可以跳到下一个非依赖指令并发布它。这样,执行单元就可以总是处于工作状态,把时间浪费减到最少。乱序执行可以允许在发布指令3前发布指令4~8,而且这些指令的执行结果可以在指令3引出后立即引出(按序引出对X86 CPU来说是必需的),实际解码率又会增加25%。不过PⅡ和K6从乱序执行中得到的好处有限,因为如果CPU遇到指令依赖情况,它必须找到更多的非依赖指令进行发布。

3.1. ,乱序执行可以加快芯片的运行速度将近两倍

在多数情况下,乱序执行可以加快芯片的运行速度,有时候加速明显。21264的速度就是21164的将近两倍,而Pentium Pro的速度也比奔腾快了一大截。经过重大改进的最新MIPS架构R10000也采用了乱序执行。

3.2. 处理器乱序规则

上面我们说了处理器会发生指令重排,现在来简单的看看常见处理器允许的重排规则,换言之就是处理器可以对那些指令进行顺序调整:

处理器

Load-Load

Load-Store

Store-Store

Store-Load

数据依赖

x86

N

N

N

Y

N

PowerPC

Y

Y

Y

Y

N

ia64

Y

Y

Y

Y

N

格中的Y表示前后两个操作允许重排,N则表示不允许重排.与这些规则对应是的禁止重排的内存屏障.

注意:处理器和编译都会遵循数据依赖性,不会改变存在数据依赖关系的两个操作的顺序.所谓的数据依赖性就是如果两个操作访问同一个变量,且这两个操作中有一个是写操作,那么久可以称这两个操作存在数据依赖性.举个简单例子:

a=100;//write

b=a;//read

或者a=100;//writea=2000;//write

或者a=b;//read

b=12;//write

作者简介

艾提拉  艾龙 attilax,法名 st attilax akbar rinpoche 圣阿提拉科斯阿克巴仁波切

头街软件技术大师 uke组织创始人

学术成就,完善的20大知识体系,拥有uke学院硕士博士学位

从事软件互联网行业技术背景十二年,csdn排名TOP57

长年从事软件互联网技术与管理,预计出版多本心得分享书籍

擅长技术与管理与文化 致力于标准化事业

Qq 1466519819  小号112237553

微信attilax  小号attilax201708

作者:: 绰号与头街 :老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher   神的使者(Messenger of God)及守望者(Watch Man

捕鸟王"Bird Catcher  kok  虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak KOA万兽之王  纵火者

头街来源:神的使者(Messenger of God)及守望者(Watch Man来源于圣经

老哇的爪子claw of Eagle来源于印加帝国

KOA万兽之王 来源于婆罗门大神森林中修炼

简称:: st Emir Attilax Akbar 圣 埃米尔 阿提拉克斯 阿克巴

全名::st Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 圣 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

喜欢的绰号  捕鸟王纵火者 老瓦的爪子兔子的耳朵

喜欢的头街   st圣  仁波切 大师 马斯塔 艺术家 博士 诗人 国王

头衔:

uke

Emir Uke部落首席大酋长,ati协会创始人  仁波切马斯塔 埃米尔

uke总部o2o负责人,全球网格化项目创始人,

圣阿提拉克斯国王

科技领域

UTSC uke技术标准化委员会委员长 uke 首席cto   软件部门总监 技术部副总监  研发部门总监主管  产品部副经理 项目部副经理   uke科技研究院院长 uke软件培训大师

Ati组织科研研究院创始人

文艺领域

,  ,, uke机车协会主任 uke纹身协会

uke交友协会会长  uke捕猎协会会长

Ati文艺协会会长  ati文学协会

行政领域

Gchsp总裁  gchsp常委  GsP创始人

媒体传播领域

uke出版社编辑总编  宣传布道总策划

Ati传媒总部

渔猎军事领域

uke保安部首席大队长

Uke 户外运动协会理事长  度假村首席大村长

Ati打猎协会

法学

法学研究会 制度研究会

管理领域

工商管理学 公共管理与社会服务

,uke制度检查委员会副会长

教育领域

uec学院校长, uecip图像处理机器视觉专业系主任   uke文档检索专业系主任

Uke图像处理与机器视觉学院首席院长

uke终身教育学校副校长

靓号研究院

经济领域

uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长

直达巴士西北区负责人   直达巴士长沙与西安分部部长

润昌通讯软件事业部总裁 执行长 分部负责人  执行委员会主席

Ati经济研究所

历史领域

历史事业部  ati历史研究院

社会科学领域

社科学院  ati文化部

自然科学领域

Uke研究院院长兼首席研究员 科学家

Ati自然科学研究院

宗教神学领域

uke宗教与文化融合事务部部长  大师master

uke制度与重大会议委员会委员长    ati宗教事务所

医学领域

Uke医院 与医学院方面的创始人

转载请注明来源:attilax的专栏  http://blog.csdn.net/attilax

http://www.cnblogs.com/attilax/

Microblog

http://weibo.com/u/5941179815   (common attilax)

https://weibo.com/p/1005055941179815  (attilax201707,bek weibo)

http://weibo.com/u/5487832265 (tech,for blog auto gene)

知乎空间

https://www.zhihu.com/people/ati-att/activities

Qq 1466519819  小号112237553

微信attilax  小号attilax201708

微博 attilax2016   小号attilax201707

--Atiend  v23

1. 其他的一些加速 性能提升模式 1 2. 乱序执行技术 2 2.1. 处理器乱序执行 2 2.2. 编译器指令重排 3 2.3. 乱序的分类 3 2.4. 允许程序员显式的告诉处理器对某些地方禁止相关推荐

  1. win10 win11关睿频(打开隐藏的“处理器性能提升模式”)

    问题描述 笔记本非节能模式下默认开睿频,非常烫手. 解决方案 关闭睿频,步骤如下: 打开注册表编辑器 => 地址栏输入计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentC ...

  2. 我是培训机构的程序员,不敢告诉任何人

    "我是培训机构的程序员,不敢告诉任何人.真羡慕你们科班的人!" 这是昨天一位粉丝给小编说的话. 我曾经也辅导过非科班的同学学习编程,有成功入行的,也有学习几天就放弃的. 想入编程这 ...

  3. 为什么培训机构出身的程序员,不敢告诉任何人?

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 回复"666",获取一份专属大礼包 来源 | InfoQ 作者丨褚 ...

  4. Python爬取近十万条程序员招聘数据,告诉你哪类人才和技能最受热捧! | 原力计划...

    作者 | Huang supreme 编辑 | 郭芮 出品 | CSDN博客 图源 | 视觉中国 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于"数据&qu ...

  5. 我是培训机构出身的程序员,不敢告诉任何人

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料+视频 本文来自微信公众号:InfoQ(ID:infoqchina) ...

  6. 我是培训机构出身的程序员,不敢告诉任何人!

    来源 | InfoQ 作者丨褚杏娟 1 谁都看不上培训机构的 "我是培训 + 外包出来的,确实有被甲方嫌弃过."2016 年从电子信息专业毕业的小右说起这个话题有些落寞. 公务员考 ...

  7. 程序员的计算机仿真程序告诉你为什么现在不要出门

    作者:业余草 来源:https://www.xttblog.com/?p=4723 这次的疫情,程序员一直在行动! 前几天的<面对武汉疫情,程序员在行动!>不知道大家还记得不?程序员可是一 ...

  8. 都说程序员显老,但这位阿里码农观点截然相反,貌似还很有道理!

    在程序员圈子中,经常能看到一些段子,其中关于程序员熬夜加班的,程序员在地铁站,商场旁若无人工作,更甚至在医院一边打点滴一边写代码等,这种种现象把程序员的日常生活描述成苦不堪言,非常苦逼的样子,这中间可 ...

  9. 真正的程序员,从来不会告诉你这些事!

    有没有发现,每个程序员都曾有过这样的疑问: 我该从事什么技术方向? 相信很多人都会跟你说:找个"钱景"好的,找个简单的,找个应用广的..... 听着好像都很有道理,但很多人学了很久 ...

  10. java面试官:程序员,请你告诉我是谁把公司面试题泄露给你的?

    前情提要: **面试官:**你好!请先做一下自我介绍! **程序员:**balabalabala- 前戏先过了- **面试官:**先介绍SpringCloud核心组件及其作用 **程序员:**Spri ...

最新文章

  1. beautiful loss function
  2. TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系
  3. c++的STL--1概念通述
  4. sqlserver2008r2修改表不能保存的解决方法
  5. 胡学纲数据结构c语言PDF,数据结构精品课程参考书目
  6. 机器学习基础算法14-波士顿房价预测-ElasticNet模型
  7. 深入理解计算机系统(1)--hello world程序的生命周期
  8. 重装上阵,全新的「极光开发者」公众号来了,关注送大礼!
  9. jmeter性能测试实战_Jmeter接口测试实战篇:10分钟学会Jmeter的用法
  10. Centos7 安装mongodb 4.x
  11. 求证:原函数与逆函数具有相同的单调性
  12. 挖掘人工智能心理学新方向
  13. 连小白都能看懂的微信开发之测试账号申请
  14. 不看好叮咚买菜的N个理
  15. Android Kotlin okhttp Retrofit 线程协程那些事
  16. 台山一中2021高考成绩查询,台山高考状元亮相!今年台山各校高考“战况”如何?快来睇......
  17. i节点(inode)和文件描述符(file descriptor)的区别和联系
  18. 基于PCA的TE过程故障诊断(matlab)
  19. 大华摄像头:视频抓图接口
  20. PHP实现字母递增至AA...AZ...ZZ

热门文章

  1. vba宏语言_Excel VBA(1) – VBA 简介及录制宏
  2. python long转int_将 python long/int转换为固定大小的字节数组_others_酷徒编程知识库...
  3. android studio 找不到reosurce,EF 6 Bridge Table Insert Not Working
  4. oschina的技术架构 使用 Live Writer 在 oschina 上写博客
  5. Java web中的web-xml中标签定义之jsp-config
  6. EventBus 加强学习深入了解
  7. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
  8. ASPXGridView生成Excel
  9. 002-JavaScript基本应用
  10. 设计模式-第二篇之简单工厂模式