多核程序设计-2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
http://embedded.zju.edu.cn
7
浙 江 大 学 嵌 入 式 研 发 中 心
双核处理器的挑战与未来
双核的挑战——功耗 双核处理器面临的最大挑战之一就是处理器能耗的极限! 性能增强了,能量消耗却不能增加。 双核的未来——多核 多核处理器看来将成为未来的发展方向
http://embedded.zju.edu.cn
双核心甚至多核心都早已经实现 Intel和AMD相继推出自己的双核心处理器
http://embedded.zju.edu.cn
目前多核进入X86领域
6
浙 江 大 学 嵌 入 式 研 发 中 心
双核处理器的发展
高端的RISC处理器中 在上个世纪末,HP和IBM已经提出双核处理器的可行性设计,成功推出了拥有双内核的HP PA8800 和IBM Power4处理器。 Sun在2003年10月微处理器论坛中,发表双核心UltraSPARCⅣ处理器 x86平台 AMD和Intel在2004年公布了各自的双核计划,AMD率先在服务器和工作站领域引入双核架构,而 Intel则是率先在台式机领域引入双核技术!
17
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术的不足
超线程技术主要有以下两个缺点: ※单任务模式下逻辑处理器的闲臵会造成资源浪费 ※解决两个逻辑处理器资源冲突时会产生延迟,冲突 大量出现时会降低系统性能
http://embedded.zju.edu.cn
18
浙 江 大 学 嵌 入 式 研 发 中 心
通过在硬件上的微小改变 ——增加独立的一套指令指针、寄存器别名 返回栈指针、高级编程中断控制器 等一些硬件投入
利用特殊的硬件指令
表、
http://embedded.zju.edu.cn
从软件和操作系统的角度来看,单处理器CPU表现为两个或更多的逻 辑CPU ——逻辑CPU间采用共享的Cache、总线等重要 资源,从而 能保持较低的成本增加
Hyper-Threading
双核
http://embedded.zju.edu.cn
两个厨师分开煮两个食物 双核心还会拥有Hyper-Threading技术,即代表两个厨师两只手,同一时间可以 运作四个线程。
28
浙 江 大 学 嵌 入 式 研 发 中 心
技术剖析-Intel篇
ຫໍສະໝຸດ Baidu
英特尔P4 超线程技术有两个运行模式,Single Task Mode(单任 务模式)及Multi Task Mode(多任务模式) 当程序不支持Multi-Processing(多处理器作业)时,系统会停止其 中一个逻辑CPU的运行 此时资源集中于单个逻辑CPU中,使单线程程序不会因其中一个逻辑 CPU闲臵而减低性能 然而,被停止运行的逻辑CPU还是会等待工作,占用一定的资源
http://embedded.zju.edu.cn
14
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术的优点
由于线程级并行的实现,它能通过两种方式改进系统性 能:
※每个逻辑CPU运行同一应用程序的不同线程,从而
加速原本是多线程的应用程序的速度; ※ 每个逻辑CPU运行不同应用程序的线程,在这种方 式下它能增加包含多个应用的多任务系统的工作量。
频率超过2GHz以后无法大幅度提升
2
AMD
浙 江 大 学 嵌 入 式 研 发 中 心
http://embedded.zju.edu.cn
CPU的高功耗和高发热
3
浙 江 大 学 嵌 入 式 研 发 中 心
http://embedded.zju.edu.cn
CPU功耗发展图
4
浙 江 大 学 嵌 入 式 研 发 中 心
http://embedded.zju.edu.cn
5
浙 江 大 学 嵌 入 式 研 发 中 心
新技术引入-双/多核心处理器
双核心处理器
在一块CPU基板上集成两个处理器核心 通过并行总线将各处理器核心连接起来
是CMP(Chip Multi Processors,单芯片多处理器)中最 基本、最简单、最容易实现的一种类型 RISC处理器领域
多核体系结构
2008年8月18日
1
浙 江 大 学 嵌 入 式 研 发 中 心
处理器的频率提高遭遇瓶颈
在90年代是处理器性能的唯一标尺 长久以来在摩尔定律指引下保持高速发展
CPU速度每18个月提高一倍 而价格下降为原来的二分之一 频率对于处理器综合性能的影响力开始减弱。 同样可以拥有其标称值(PR)性能
http://embedded.zju.edu.cn
15
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术的优点(续一)
超线程技术的优点还在于,它通过添加少数的硬件以及软 件支持的“小付出”做到了提高CPU的使用率、提高系统 性能的“大回报” 有数据表明,超线程技术的使用利用5%的硬件投入使系 统性能提高了25%!
http://embedded.zju.edu.cn
超线程技术并不像两个真正的CPU那样,各CPU都具有独 立的资源 如果两个线程都同时需要某一个资源时就会出现资源冲突 解决冲突时会出现延迟或需要重新开始执行某个程序;尤 其当冲突大量出现时,性能就会降低,甚至会比没有超线 程技术时更差!
21
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术与双核心技术的区别
很多普通用户可能分不清楚超线程技术与双核心技术。例 如,开启了超线程技术的Pentium 4 530与Pentium D 530在操作系统中都同样被识别为两颗处理器 它们究竟是不是一样的呢?这个问题确实具有迷惑性
http://embedded.zju.edu.cn
http://embedded.zju.edu.cn
26
浙 江 大 学 嵌 入 式 研 发 中 心
http://embedded.zju.edu.cn
与HT(超线程)技术对比
27
浙 江 大 学 嵌 入 式 研 发 中 心
单核
一位厨师在同一时间只能做出一道美味的菜肴 下一道菜必需等上一道菜完成后才可以继续 起一个炉头做饭 一个厨师用两手同一时间熟两个食物 效率比单线称处理好些 有很多限制
http://embedded.zju.edu.cn
25
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术和双核心技术的区别(续四)
双核心技术是通过“硬”的物理核心实现多线程工作 每个核心拥有独立的指令集、执行单元,与超线程中所采用的模拟共享机制 完全不一样 在操作系统看来,它是实实在在的双处理器,可以同时执行多项任务,能让 处理器资源真正实现并行处理模式,其效率和性能提升要比超线程技术要高 得多,不可同日而语 因此超线程技术是通过少量的硬件增加,实现大量资源共享,从而得到 系统性能的提高。而双核心技术则是运用资源重复的原理在系统中设臵两个 处理器,来达到对系统性能的大幅度提高。
处理器的频率进入了“G”时代
AMD低频产品 Intel迅驰平台低频移动处理器
http://embedded.zju.edu.cn
现有工艺下单核频率难于提升
性能没有质的飞跃 功耗散热、成品率、成本控制困难 Intel
3GHz成为了AMD无法逾越的一道坎
发布3.8GHz的产品 宣布停止4GHz的产品计划
8
浙 江 大 学 嵌 入 式 研 发 中 心
并行 - 超线程技术
超线程:Hyper-Threading Technology
http://embedded.zju.edu.cn
逻辑的、虚拟的双处理器 同时执行2个线程 性能提升
9
浙 江 大 学 嵌 入 式 研 发 中 心
什么是超线程技术?——概念
10
浙 江 大 学 嵌 入 式 研 发 中 心
什么是超线程技术?——概念(续)
单处理器能使用线程级并行计算 兼容多线程操作系统和软件 减少了CPU的闲臵时间,提高了CPU的运行效率
http://embedded.zju.edu.cn
11
浙 江 大 学 嵌 入 式 研 发 中 心
http://embedded.zju.edu.cn
从原理上来说,超线程技术属于Intel版本的多线程技术 超线程技术中的两个逻辑处理器没有独立的执行单元、整数单元、寄 存器甚至缓存等资源。它们在运行过程中仍需要共用执行单元、缓存 和系统总线接口 在执行多线程时,两个逻辑处理器交替工作 如果两个线程都同时需要某一个资源时,其中一个要暂停并要让出资 源,要待那些资源闲臵时才能继续 因此,超线程技术所带来的性能提升远不能等同于两个相同时钟 频率处理器带来的性能提升。可以说Intel的超线程技术仅可以看做是 对单个处理器运算资源的优化利用。
因此具有超线程功能的CPU运行Single Task Mode程序模式时, 有可能达不到不带超线程功能的CPU性能,虽然性能差距不会太大
http://embedded.zju.edu.cn
20
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术的不足(续三)
超线程技术还有一个由资源冲突引起的不可避免的缺陷
Intel双核心处理器Smithfield
简单把两个Pentium 4所采用的Prescott核心整合在同一个处理 器内部 两个核心共享前端总线 每个核心都拥有独立的1MB二级缓存 两个核心加起来一共拥有2MB
22
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术与双核心技术的区别(续一)
从最简单的方面讲:
双核心技术可以理解为两个“物理”处理器,是一种“硬” 的方式
超线程技术只是两个“逻辑”处理器,是一种“软”的方 式
http://embedded.zju.edu.cn
23
浙 江 大 学 嵌 入 式 研 发 中 心
http://embedded.zju.edu.cn
16
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术的优点(续二)
http://embedded.zju.edu.cn
超线程技术在Web服务、SQL数据库等很多服务器领域的 应用中表现优异; 主流的桌面芯片组基本都已可以支持超线程技术,用户无 需额外的花费; Windows XP已经针对超线程技术做出优化,在运行多个 不支持多线程的程序时,性能也可能会获得提高。即便带 来损失,也会显得比较轻微; 在某些支持多线程的软件应用上能够得到30%左右的性 能提升,如3dsmax、Maya、Office、Photoshop等。 Intel甚至在一项测试中取得了90%的提高。
超线程技术与双核心技术的区别(续二)
从实质上说,超线程技术和双核心技术是提高系统并行性 的两种典型应用
超线程技术采用资源共享方法
双核心技术采用资源重复方法
http://embedded.zju.edu.cn
24
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术和双核心技术的区别(续三)
超线程技术如何工作?
12
浙 江 大 学 嵌 入 式 研 发 中 心
超线程如何工作?(续一)
1. 2. 3.
http://embedded.zju.edu.cn
4.
两个逻辑处理器都处于空闲等待状态,等待请求执行的 线程; 第一个线程到来,第一个逻辑处理器接受并跟踪执行此 线程; 第二个线程到来,CPU立即组织空闲的处理单元,第二 个逻辑处理器利用这些单元在执行第一个线程的同时接 受第二个线程并执行; 当两个线程同时需要某一个共享资源(如加法器、总线 等)时,通过一定的调度方式让其中一个逻辑处理器先 使用此资源,而另一个逻辑处理器等待到资源可用为止。
13
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术如何工作?(续二)
就这样,CPU总是能使用不同部分同时执行两个线 程,只有两个逻辑处理器产生资源冲突时,两个正在执行 的线程才感知“别人”的存在,而其它时间他们就犹如独 占CPU一样顺利执行。这使得CPU得到充分的利用,从而 达到了提高系统性能的目的
超线程技术的不足(续一)
当运行单线程应用软件时,超线程技术甚至会降低系统性 能,尤其在多线程操作系统运行单线程软件时容易出现此 问题 下面通过对英特尔P4 超线程技术的分析来讨论
http://embedded.zju.edu.cn
19
浙 江 大 学 嵌 入 式 研 发 中 心
超线程技术的不足(续二)