2019独角兽企业重金招聘Python工程师标准>>>

2002年,Intel发布Northwood核心的P4C系列处理器,为桌面级处理器带来了一个新技术:Hyper-Threading超线程技术,随后的Prescott核心P4E系列也提供了对超线程技术的支持。后来的事实证明,Netburst架构上采用的HT技术,称之为杯具或许有些过分,但称之为鸡肋还是比较贴切的。进入Core时代,Intel便取消了对HT技术的支持。2008年11月,Intel新架构Nehalem发布,超线程技术出现在新的i系列处理器中,不过名字改成了Simultaneous Multi-Threading(同步多线程)。

多线程技术MultiThreading源于叫做ILP(Instruction Level Parallelism,指令级并行化)的思想,类似于分时共享计算系统,执行多个线程的处理器在某个线程因为缓存未命中(Cache Miss)或者分支预测失败而停止时,处理单元可以切换到另外一个线程来执行,以此提高资源利用率和数据吞吐量。多线程的实现有几种不同的形式:Coarse-Grained MultiThreading(粗粒度多线程),当正在执行的线程遇到长时间延迟时,就进行线程切换,直到原线程的等待操作完成,再切换回去,Intel的服务器级处理器Itanium 2采用这种方式。Fine-Grained MultiThreading(细粒度多线程),随时可以在每个时钟周期内切换多个线程,这种多线程方式可以最大化的利用处理单元实现最大化的吞吐量。这两种多线程技术,实际上都是处理单元的分时共享,处理单元在不同的线程切换,以此提高利用率以及总吞吐量,因此这两种多线程技术都属于Temporal MultiThreading(分时多线程)。

Netburst和Nehalem架构处理器所采用的多线程技术不同于上面两种,这种多线程技术可以同时运行多个线程,也就是说线程之间是时间并行的,因此称为Simultaneous MultiThreading,同步多线程(Intel一开始叫做Hyper-Threading大概是因为这个名字听起来比较NX吧=。=)。Intel采用的方法是在处理器中为每一个核心加一个入额外的逻辑控制单元,从而模拟出一个核心来执行线程。这样每个处理器核心都可以同时执行两个线程,它们共用同一个运算单元,当其中一个线程正在使用运算单元的某一模块时,另一个线程就要等待或者进行其它操作。这种多线程的方式也是提高了运算单元的利用效率,但由于除了控制单元外其它所有资源都是两个线程共享,所以远不能达到两个硬件核心的性能,当初Intel推出P4C系列时声称相对于同频率同架构没有HT技术的CPU,性能可以提升30%,而实际应用中远没有这么高的效果。

我认为,Netburst架构上超线程技术杯具的原因,主要有三个。首先是支持超线程技术需要更大的数据读取,两个线程共用高速缓存和内存通道,势必引起二级缓存和内存总线捉襟见肘。推出P4C系列时,Intel把Netburst架构的前端总线(FSB)频率提高到了800MHz,并且为配合高速的FSB采用了双通道DDR内存控制,到推出采用Prescott核心的P4E系列时,更是采用了高达1066MHz的FSB。即时在1066MHz的FSB下,内存通道的带宽也只有8.5GB/s,配合1M的二级缓存,完全应付两个线程的吞吐还是有些吃力。

其次,是Netburst架构超长的流水线。Northwood核心的流水线长度已经达到了20级,Prescott核心的流水线竟然达到令人跌眼镜的31级。超长的流水线可以更容易的提升处理器的主频,但随着流水线的逐步加长,主频提升所带来的性能提升越来越小。现代的微处理器基本上都使用超标量处理和分支预测技术,更长的流水线意味着更低的执行效率。本来已经如此低下的执行效率,再加入超线程技术,更是放大了Intel的尴尬。

如果上面两个原因是Netburst架构上HT技术的杯具的话,那么最后这个因素无疑是HT技术的餐具。当时的HT技术,不仅需要CPU,芯片组,BIOS等的支持,更需要操作系统和应用软件对多线程的支持。当时的主流操作系统WinXP已经支持多线程,但当时能支持多线程的常用软件是少之又少,特别的游戏软件,几乎没有- -b。集成了HT技术的处理器在执行单线程任务时,不仅没有任何帮助,反而会因为资源闲置而降低系统性能。Intel应该也意识到,在普及多核处理器之前,向桌面级微处理器上加入多线程技术是操之过急了。

2008年,在经历了Core时代以后,多核处理器已经普及,Intel认为重新推出多线程技术的时机已经成熟,配合新的Nahalem架构,超线程技术新瓶装旧酒,SMT出现在i系列处理器中。

Nahalem架构把内存控制器集成在cpu中,并使用QPI高速总线连接双通道或者三通道(LGA1366接口)DDR3内存,提供远超FSB通道的内存通道带宽。另外Nehalem架构采用了全新的三级缓存结构,大大提升了对cpu的数据供应能力,以此支持多核多线程的数据需求。

另外Intel处理器的流水线早在Core时代就降了下来。其实超长流水线的出现还是源于人们对于cpu性能=主频的误解,直到进入多核时代,人们才开始注重高性能低功耗,而不是单纯的追求高频率。

最后一个问题,桌面级微处理器已经全面进入多核时代,支持多线程的应用软件已经非常普遍了,所以SMT也不必像HT那样成为大餐具了。

Intel的超线程技术经历了Netburst时代的沉沦之后,在Nahalem时代强势归来,如果SMT技术获得成功,也许我们会在以后的桌面级微处理器上见到更多的多线程技术(MultiThreading),单个核心可以支持的线程数可能会是4个、8个或者更多。

本文写于2010-1-25 16:38      --con

转载于:https://my.oschina.net/JackSparrow/blog/136673

Intel超线程的沉沦与逆袭相关推荐

  1. python mkl 锐龙 cpu_AMD锐龙CPU销量疯狂逆袭:多点击破Intel

    时至今日,是不是还有人不相信AMD锐龙处理器的崛起?好吧,那就让数据说话. 欧洲媒体报道称,对Benelux(Belgium, Netherlands, Luxembourg,即比利时.荷兰和卢森堡的 ...

  2. 湖南打工妹逆袭,从北大才女到“网络红娘”,她用1000元赚了5个亿

    湖南打工妹逆袭,从北大才女到"网络红娘",她用1000元赚了5个亿 自从有了互联网,网上购物什么的都成为了小儿科,随着越来越多的互联网社交网站和软件的出现,就连决定终身大事,都能足 ...

  3. Http Server : 一个差生的逆袭

    我刚毕业那会儿,国家还是包分配工作的, 我的死党小明被分配到了一个叫数据库的大城市,天天都可以坐在高端大气上档次的机房里, 在那里专门执行SQL查询优化 , 工作稳定又舒适: 隔壁宿舍的小白被送到了编 ...

  4. Asp.Net Core多榜逆袭,这是.NET最好的时代!

    摒弃侥幸之念,必取百炼成钢. 厚积分秒之功,始得一鸣惊人! 经过多年的沉沦,.NET终于迎来逆袭!近期连出多个排行榜,Asp.Net Core直接霸榜,这意味着属于.Neter的好时代的即将到来!.N ...

  5. 湖南打工妹逆袭成为身价5亿“网络第一红娘”

    算法数学之美 日期:2018年1月1日 正文共:3236字 8图 预计阅读时间:9分钟 来源:算法数学之美 自从有了互联网,网上购物.找工作.买房子都是稀松平常的事情,,就连终身大事也能足不出户在家搞 ...

  6. 《逆袭大学:传给IT学子的正能量》

    <逆袭大学:传给IT学子的正能量> 基本信息 作者: 贺利坚 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115347473 上架时间:2014-3-3 出版日期:201 ...

  7. 毕业十年,唯有独立面对——记 贺利坚老师新书《逆袭大学——传给IT学子的正能量》

    贺老师的新书<逆袭大学>即将出版(2014年3月10日左右),目前在图灵社区已经可以看到编目与样章.在这里分享样章中的一段话:唯有独立面对,写出了当我们面对生活时,怎样的生活态度才是真实的 ...

  8. 《逆袭大学——传给IT学子的正能量》目录

    近日,由于咨询来信的增多,已经感到逐渐回复力不从心.而读者所提的问题,有不少在"IT学子成长指导"专栏中已经解答过.有人提出的几个问题,可能是分散在几封信中.我在做让自己不得闲的重 ...

  9. 七牛首席布道师:Go不是在颠覆,就是在逆袭

    文章来源:http://www.csdn.net/article/2014-07-21/2820743 七牛官网: https://github.com/qiniu http://developer. ...

最新文章

  1. hadoop伪分布式安装
  2. 【转】c# winform 打包部署 自定义界面 或设置开机启动
  3. 黑客是如何发现女朋友出轨的,痛心的经历!
  4. 操作系统(十一)线程的概念和特点
  5. (五)LESS 规范
  6. jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...
  7. canvas笔记-在canvas中使用其他HTML元素
  8. java启动项目报错,org.apache.catalina.lifecycleException..............以及解决方案
  9. netty 支持多种通讯协议
  10. python爬虫之协程理解爬取照片的简单版
  11. 系统学习深度学习(十九)--GoogLeNetV1,V2,V3
  12. 40岁学python怎么样_40岁老男人从0开始学Python实录(第5天):到底Python是啥东东?...
  13. JAVA获取各种日期时间
  14. 以太坊智能合约gas如何估计?
  15. mplayer+科大讯飞离线语音包
  16. 企业网站排名,站内布局,不只有关键词密度
  17. 实验三:CART回归决策树python实现(两个测试集)(二)|机器学习
  18. 22考研基础阶段计划;超七成考研人已开始复习!
  19. ViewPager + TextView 小说阅读器分页
  20. loadrunner入门篇 - Vuser发生器

热门文章

  1. 产品创新与研发管理的八大典型问题
  2. 报错:Fatal error: Uncaught Error: Call to undefined function mysql_connect()解决
  3. MATLAB下载时报错原因
  4. CSDN的台历到了,挺好看的,放在桌子上的感觉很拉轰啊。
  5. 东偶已逝,桑榆非晚。
  6. IO-BIO NIO
  7. 人工智能公司招聘资深java开发工程师
  8. python中selenium模块驱动谷歌详解
  9. OpenEuler 会长久吗
  10. 张艾迪(创始人):梦想与未来