多核划时代的里程碑.DOC

上传人:天*** 文档编号:1997739 上传时间:2019-03-26 格式:DOC 页数:6 大小:1.30MB
下载 相关 举报
多核划时代的里程碑.DOC_第1页
第1页 / 共6页
多核划时代的里程碑.DOC_第2页
第2页 / 共6页
多核划时代的里程碑.DOC_第3页
第3页 / 共6页
多核划时代的里程碑.DOC_第4页
第4页 / 共6页
多核划时代的里程碑.DOC_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、多核划时代的里程碑1 / 6多核划时代的里程碑范鸿飞 郑颂伟摘要处理器时钟频率的提升遇到了不可逾越的瓶颈,芯片制造厂商不约而同将目光瞄向了双核乃至多核架构。多核是计算机体系结构发展史上划时代的革命性里程碑,多核处理器实现了真正的并行,极大地提升了 CPU 的性能。如何构建出多核架构下新的开发模式,将是未来一段时间内软件业发展的重中之重。毋庸置疑,多核已是计算机体系结构以及计算机行业不可逆转的发展潮流。关键字处理器 多核 性能 线程 超线程 并行 并发 效率 内核作者信息范鸿飞(033200)郑颂伟(033220)版权声明版权所有,范鸿飞、郑颂伟,2006 年。保留所有权利。同济大学软件学院20

2、06 年 6 月多核划时代的里程碑2 / 61 引言2005 年 4 月 18 日,是计算机体系结构发展史上一个划时代的里程碑。这一天,英特尔公司在全球范围内同步推出了英特尔奔腾D 处理器,标志着 CPU 双核时代的到来。紧接着,加载了超线程技术的英特尔奔腾至尊版处理器闪亮登场,推动了双核时代的步伐。AMD 也早有准备,随后推出了基于双核架构的皓龙( Opteron)处理器以及 64 位的Athlon64 X2 处理器,与英特尔竞争双核市场的份额。纵观过去的十几年内,处理器的发展是计算机技术发展中的亮点。芯片制造厂商不断地推出拥有更高时钟频率的处理器,一次次验证了摩尔定律的准确性。然而,摩尔定

3、律总有失效的一天,处理器的时钟频率不可能无限制地提高,硅原子的直径是芯片技术发展中一个不可逾越的屏障。纯粹地追求时钟频率的提升,已经使得 CPU 性能的提升跟不上频率发展的速度,英特尔在发布了 3.8GHz 的处理器后便没有再按计划推出 4.0GHz 的产品。在摩尔定律面临失效的时候,英特尔和 AMD 都将处理器的发展从提升时钟频率转向架构上的革新,采用双核乃至多核技术来提升 CPU 的性能。早在 1994 年,英特尔就开始了对多核处理的研究工作,并把它作为一项长期的策略。英特尔公司预计到 2006 年底,其产品中超过 85%的服务器处理器和超过 70%的移动与桌面奔腾系列处理器芯片将基于多核

4、架构。多核时代的到来,已是不可逆转的历史潮流。处理器向双核乃至多核的发展,打破了传统的发展模式,这无论是对硬件业还是软件业都带来了前所未有的挑战。处在这样一个变革的时代下,对多核技术进行研究,意义非凡。什么是多核技术,多核技术带来了什么优点,多核技术与其他的并行技术尤其是超线程技术的区别何在,软件业和程序员如何配合多核时代的来临,将会在本文中得到很好的回答。2 多核2.1 多核的基本概念多核架构,就是一块处理器芯片上包含多个“执行内核” ,从而使处理器能够彻底、完全地并发执行程序的多个线程。从操作系统的视角来看,多核处理器就如同是多个处理器,它把多核处理器的每一个执行内核看作是一个单一的拥有所

5、有相关资源的典型处理器。2.2 多核的优点多核处理器全面提升了并行的效果,极大地提高了计算的性能,其前所未有的计算能力增强了多任务环境下的计算体验。如今的桌面操作系统几乎都是多任务的环境,特别是在数字娱乐、多媒体技术高度发展的今天,并行计算、并行处理的能力已经是衡量计算机性能的重要指标。用户使用计算多核划时代的里程碑3 / 6机时,往往是一组前台应用程序和一组后台应用程序并发地执行。在单核时代下,并发的效果是软件模拟出来的。操作系统的进程管理部分负责调度各个进程和线程对 CPU 的控制权,把时间片按照设定的优先级别轮流分配给各个进程和线程。由此,从时间段的角度来看,这些任务仿佛是被同时完成的,

6、而事实上,只是 CPU 不停地切换服务对象,从而达到了并发的效果。这种并发机制耗费不少代价,因为 CPU 在管理和调度进程或线程时需要一定的开销。实际上,单核时代下的并行,是以牺牲一定的 CPU 效率为前提的。多核处理器实现了真正意义上的多线程并行。在多核的架构下,每个单一的内核都拥有自己独立的Cache 以及一组相关的硬件资源。当并行的线程在两个或多个内核上执行时,彼此没有干扰和影响,这种做法从硬件的源头支持了并行,CPU 性能因此而提高很多。3 多核技术与其他并行技术的比较3.1 指令级别的并行指令级并行的主要原理是发现指令序列中存在的潜在并行性,并通过各种可能的硬件技术和软件技术来获得指

7、令级别的并行,提高 CPU 的性能。在指令级并行机制下,单一线程代码段里具有逻辑上的并行性的指令流被分解出来接受并发的执行,之后又被按照原有的顺序组合起来。1994 年,英特尔首次在当时主流的奔腾处理器上引入了指令级并行的技术。指令级并行是实现高性能处理器的重要技术手段,但具有一定的局限性,因为指令并行需要不少额外的开销。对于静态调度,无论是解决循环级并行的处理还是指令的调度,都需要编译器来完成,这就需要额外的编译开销以及研究人员对编译技术的研究。对于动态调度,相关的策略和算法都需要额外的硬件资源来支持。3.2 超线程技术2002 年,英特尔推出了含有超线程技术(Hyper-Threading

8、 Technology 或 HT Technology)的处理器。超线程技术革命性地推动了 CPU 的性能的提升。众所周知,时钟频率的提高是提高 CPU 性能的重要方法,从近 10 年主流 CPU 频率的发展速度便可感知这一点。但是始终频率仅仅是一个方面。要更大程度地提升单一 CPU 的性能,还需考虑如何在每个时钟周期内完成更多的工作。英特尔超线程技术便应运而生。当一块含有超线程的处理器在工作时,处理器把自身表现为 2 个虚拟的处理器,仿佛营造出一个多处理器的环境。操作系统和应用程序认为这台计算机拥有 2 个处理器,把 2套任务分别交给这 2 个虚拟的处理器进行并发处理。超线程技术将一块单一的

9、处理器在功能上分解为 2 个虚拟的、逻辑的处理器,虽然计多核划时代的里程碑4 / 6算机里只有 1 个物理的处理器,但它能够同时执行 2 个线程。超线程技术在性能上固然无法与 2 个物理处理器相比,但是一些性能评测显示,在一些服务器的应用上,超线程技术使得处理器性能提高了 30%。3.3 超线程与多核技术的比较如前所述,超线程技术是在一个单一的处理器内核上模拟出 2 个虚拟的处理器。其实现原理是复制一部分处理单元而保留另一部分共享单元。为了实现 2 个线程的同步执行,超线程处理器的逻辑处理单元被复制了一份,而其他诸如整数运算单元、浮点运算单元、二级缓存等部分仍然保留一份,被 2 个线程所共享。

10、当 2 个线程使用不同的共享单元时,并行性得到了很好的体现。但问题在于,若 2 个并行的线程同时需要使用一个共享单元,其中一个线程就必须等待,直到请求的资源闲置时才被恢复执行。超线程技术的性能提升受到了两个执行线程共享资源可用性的限制,所以,超线程技术的单CPU 同双 CPU 的性能是有一定差距的。为了在单个芯片上实现更出色的性能提升,处理器就需要两个或多个单独的内核,这样每个线程就能拥有其专属的整套执行资源。多核 CPU 中,每一个内核都有一套其专有的硬件资源,不同的线程在不同的内核上执行时互不影响,没有牵制关系。因此,多核 CPU 的性能比超线程技术的单核 CPU 要提升很多。很显然,多核

11、 CPU 内部的制造工艺比较复杂,成本要高出很多。值得一提的是,英特尔奔腾至尊版处理器集成了双核技术与超线程技术,将一块处理器芯片在逻辑上表现为 4 个处理器,可以同时执行 4 个线程,达到了十分高端的性能。4 多核架构的软件配合4.1 现状在芯片制造厂商多核技术大战如火如荼的今天,软件业的配合却是相对滞后的,这极大地影响了多核处理器性能的发挥。究其主要原因,是程序员遇到前所未有的技术问题。毫无疑问,单核处理器下的应用程序也可以在多核处理器下运行,这点兼容性是体系结构的进步中必然拥有的。但是,对于一些计算敏感的程序,程序员不得不思考如何充分发挥和挖掘多核处理器的所有潜在性能。以往的 CPU 性

12、能发展总是以提高时钟频多核划时代的里程碑5 / 6率作为主要方向,程序员不用进行任何努力就可享受硬件进步所带来的益处。而当 CPU 进入双核乃至多核时代,程序员再也无法享受这样的免费午餐,因为他们必须绞尽脑汁思考如何使自己写出来的程序拥有更高的并行性,使其尽可能多地配合多核处理器的优点。就当前的现状而言,程序员必须了解相应的硬件特性,让代码在处理器的两个乃至多个核心之间达到平衡。如何打破以往的顺序思维,是多核技术给程序员带来的巨大挑战。有些程序员仍然企图有一个硬件无关的自动化通用开发平台来联系程序员与多核处理器,但在目前这是不现实的。4.2 解决方案将软件推向多核时代,是程序员义不容辞的责任。

13、在双核 CPU 已经投入生产、多核时代即将到来的今天,程序员应该打破以往的思维,以并行的思考方式来撰写程序。单线程的应用程序不会自动地在多核处理器上运行得更快,普遍使用的 C 和 C+语言从其本质来看都是顺序执行语言,因此,程序员必须为此付出代价,一方面加强对多线程编程的研究和学习,另一方面要投入精力逐步地将软件业的生产方式带入多核时代。操作系统对多核处理器的支持应当提升。如何管理线程的同步,如何控制内核间的通讯,如何提供多核系统对单线程程序的兼容性,如何在多核架构下以更加充分地发挥 CPU性能的方式来调度进程和线程,都是操作系统的设计人员面对多核时代来临时应该思考的问题。针对多核处理器的软件

14、开发技术也有待提高。处理器从单核向多核的发展,是一种打破常规发展方式的突破,编译器应当承担起为多核结构优化线程性能的责任。英特尔公司的 C+编译器 9.0 支持了对多核处理器的优化,当编译器检测到目标机的处理器为多核处理器时,会自动地对源代码进行优化以更好地适应多核结构。多核系统下的调试是一个更为复杂的课题,如何在内核线程的不同状态下进行测试,如何监测内核间的通讯情况,如何发现内核线程执行时发生的冲突,如何控制内核与 I/O 的联系,都给调试带来了前所未有的难度。总之,多核架构下的编译技术、调试技术、性能分析技术和优化技术的进步,是促使软件跟上硬件向多核过渡的关键手段。5 小结多核时代的来临,

15、是计算机体系结构发展史上具有革命性的里程碑。多核处理器实现了真正意义上的线程级并行,每个内核都拥有独立的 Cache 和相关的执行资源,内核线程的执行彼此不受干扰,完全并行。多核处理器极大地提升了 CPU 的性能,带来了全新的计算体验。遗憾的是,软件业的配合还相对滞后,在未来一段时间内,如何将编程思维从传统的顺序模式转向并行模式、如何撰写出高质量的并行程序来发挥出多核 CPU 的性能、如何构建出多核架构下新的开发模式,是程序员乃至整个软件业未来一段时间内发展的重中之重。多核已是计算机体系结构以及计算机行业不可逆转的发展潮流。处在这样一个变革的时代中,我们看到了计算机技术灿烂的未来。多核划时代的里程碑6 / 66 参考资料张晨曦等:计算机体系结构 (第二版) ,高等教育出版社,2005.6http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。