1、试比较多核CPU与多处理机,讨论线程、进程、多机、内核、流水线的关系16组目录CONTENTE比较多核CPU和多处理机01浅谈线程、进程、多机、内核、流水线02谈以上联系030113122711胡红青16组试比较多核CPU与多处理机多核cpu多处理机多核cpu(处理器)是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。1P.H.Enslow对多处理机作了下列定义:*包含两个或两个以上功能大致相同的处理器;*所有处理器共享一个公共内存;*所有处理器共享I/O通道、控制器和外围设备;*整个系统由统一的操作系统控制,在处理器和程序之间实现作业、任务、程序段、数组和数组元素等各级的全面并行213
2、122711胡红青多核cpu13122711胡红青在大多数情况下,多核CPU的内核拥有独立的L1缓存,共享L2缓存、内存子系统、中断子系统和外设13122711胡红青为什么出现多核在此添加关键字Lorem ipsum dolor sit amet,consectetuer adipiscing elit.瓶颈:频率无法无限提升,物理定律无法违背,温度,制程,功耗均是制约条件增加多核的原因,主要是控制功耗和发热量。单核的瓶颈 微处理器4004摩尔定律每过18个月,芯片上可以集成的晶体管数目将增加一倍2005年4月,戈登摩尔曾公开表示,引领半导体市场接近40年的“摩尔定律”,在未来10年至20年内
3、可能失效。13122711胡红青多核调度算法在此添加关键字Lorem ipsum dolor sit amet,consectetuer adipiscing elit.1)对任务的分配进行优化。使同一应用程序的任务尽量在一个核上执行,以便达到有共享数据的任务能够尽量在一个核上进行,而共享数据量少或者没有的任务尽量在不同核上进行。这样,可以显著得降低cache的缺失率,进而很大程度上提升了系统的整体性能。2)对任务的共享数据优化。体系结构共享二级缓存,可以考虑改变任务在内存中的数据分布,使任务在执行时尽量增加二级缓存的命中率。3)对任务的负载均衡优化。当任务在调度时,出现了负载不均衡,考虑将较
4、忙处理器中与其他任务最不相关的任务迁移,以达到数据的冲突量小。13122711胡红青多处理机13122711胡红青Cache不一致性不一致性在此添加关键字Lorem ipsum dolor sit amet,consectetuer adipiscing elit.以进一步减少访问主存的次数,可以在每个处理机同PMIN间设置Cache(CM)。但有了Cache以后,又要产生系统中多个Cache之间以及Cache同主存间的数据一致性问题。13122711胡红青多处理机的优点多处理机的优点很高的性能价格比:单处理机的性能价格比随其规模的增大而下降 很高的可靠性:冗余度大、可维护性、可用性 很高的处
5、理速度:多个处理器并行运算 很好的模块性:大量重复设置,结构灵活性、可扩充性、可重构性 多处理机属于MIMD计算机13122711胡红青多处理机的分类在此添加关键字Lorem ipsum dolor sit amet,consectetuer adipiscing elit.分类多处理机的分类按多处理机各机器之间物理连接的紧密程度与交互作用能力的强弱来分,多处理机分为紧耦合系统和松耦合系统两大类。按处理机的结构是否相同来分,如果每个处理机是同类型的,且完成同样的功能,我们称为同构型多处理机系统。如果多处理机是由多个不同类型,且担负不同功能的处理机组成,我们称为异构型多处理机系统。按多处理机系统
6、的组成结构来分,现有的MIMD计算机分为如下五种类型:并行向量处理机(PVP)、对称多处理机(SMP)、大规模并行处理机(MPP)、分布共享存储器多处理机(DSM)、工作站机群(COW),如图7.2所示。两者的比较13122711胡红青这就像为什么我们要去公司上班而不是在家里上班一样。去公司上班(多核CPU)的话,资源共享(共享缓存),沟通方便(CPU内数据传输速度远大于总线速度)。但是如果信息技术(类比总线)上有突破性进展,否则我们还是每天要挤公车去公司上班。两者比较12多核实现,(即100支手在一个人身上):即使人有一百只手,可一次搬的板砖太多了,脊椎估计顶不住,他在某些地方存在瓶颈(比如
7、I/O),可能脑子控制不过来(内部的协调逻辑,调度策略复杂)。人多力量大,50个人协调好了,必然效率非常高,协调不好的话。1.可能俩人抢着搬一块砖(数据一致性)2.可能一个人搬着砖走了一半不走了(单点故障),最要命的是别人都没看见他不走了!那块砖最后搞不好就丢了!3.可能因为任务没分配好(任务调度),几个人累死,几个人傻看着4.稀缺资源的分配,如I/O13122711胡红青形象的任务目标:你需要搬很多砖,你现在有一百支手。实际的任务目标:你有一个很大的计算任务,你有很多cpu。http:/sites.nationalacademies.org/cstb/index.htmhttp:/ 操作系统
8、中的进程是指特定的代码序列在指定的数据集合上的一次执行活动,是指并行程序的一次执行过程,在Windows系统中就是一个EXE文件。13121507张文杰u 计算机上运行的可执行文件对特定的输入数据的一个实例。进程=PCB(进程控制块)+程序段+数据u 同一个执行程序文件如果操作不同的输入数据就是两个不同的进程。u 线程是指由进程进一步派生出来的一组代码(指令组)的执行过程。进程和线程通俗说法u 进程可以理解为一个线程容器,线程不能独立存在,它必须隶属于某个进程,而进程也必须至少拥有一个线程,如果一个进程的所有线程都结束了,那么进程也就结束。13121507张文杰进程和线程例子u 线程就是进行并
9、行计算的一个抽象概念,在另一个线程完成计算任务的同时,一个线程可以对图像进行更新,两个线程可以同时处理同一个进程发出的两个网络请求。13121507张文杰u 一个人在处理家务的过程中,将衣服放在洗衣机中自动洗涤后将大米放在电饭煲里,然后开始做菜。等菜做好了,饭也熟了同时衣服也洗好了。进程和线程13121507张文杰多处理机 多个处理机及存储器模块构成的并行处理机被称为多处理机系统(multiprocessor system),简称处理机。113121507张文杰处理机分类处理机之间通信通过存储器进行。依据存储器模块所在的位置不同,多处理机可以分为紧耦合(tightly coupled)和松耦合
10、(loosely coupled)。多处理机213121507张文杰cachep cache是容量较少、速度较快的存储器,cache中存放经常使用的信息。p 从存储器读信息到cache方法:直接映像、全相联映像、组相联映像、扇区映像。p cache替换策略:随机替换、先进先出(FIFO)替换、最近最少使用(LRU)替换。p 命中写策略:写回(write back/copy back)、写透(write through)p 不命中写策略:写装入(write allocate)和写不装入(write no allocate)多处理机313121507张文杰多处理机cache一致性解决问题的核心:如
11、何让处理机在执行过程中始终能够使用最新的数据多处理机313121507张文杰p 写废策略:当一个处理机往cache的某个“block”写数据的时候,该块在其它处理机cache中的拷贝(它们具有相同的存储器地址)应被置为无效状态。p 写改策略:新的数据也被写到其它处理机cache相应的块中。依据互联网络的拓扑结构的不同,实现方法也不同监听cache协议:(互联网络易于实现广播的操作)写废和写改命令能够被广播到其它所有的cache,每个cache都监视总线上的动作,监测是否有其它cache的写操作发生。目录协议:(不易实现广播操作)cache目录为每个块设立一个指针,指向其它每个存有该块拷贝的ca
12、che。cache目录可以是集中式的也可以是分布式的。多机13121507张文杰内核地位p 主要作用在于与计算硬件进行交互,实现对硬件的编程控制和接口操作,调度访问硬件资源,同时向应用程序提供一个高级的执行环境和对硬件的虚拟接口。p 内核与普通的应用程序不同,其所拥有的所有硬件设备的访问权限以及启动时即划分的受保护的内存空间。13121507张文杰内核内核(Kernel)是操作系统的核心。流水线13121507张文杰 乱序执行流水线p 译码级有一些略微的修改。不同于以往处理器仅仅译码指令指针指向的指令,现今的处理器(2008-2013 年)每个时钟周期最多可以译码 4 条指令。p 寄存器重命名
13、(register aliasing)在处理器内部,这些原始的寄存器(如AX,BX,CX,DX 等)被翻译(或者重命名)成为内部的寄存器,而这些寄存器对程序员是不可见的。寄存器和内存地址需要被映射到一个临时的地方用于指令执行。当前每个始终周期可以翻译 4 条微指令。p 重排序缓存(Reorder Buffer,ROB)ROB 可以存储最多 128 条微指令。在支持超线程的处理器上,ROB 同样可以重排来自两个虚拟处理器的指令。两个虚拟处理器在 ROB 中将微指令汇集到一个共享的乱序执行部件中。流水线13121507张文杰 乱序执行流水线p 保留站(Reservation Station,RS)
14、解码单元解码后的指令不是直接送到流水线,而是根据各自的指令种类,将解码后的指令送往各自的保留站中保存下来。如果操作数位于寄存器中,就把操作数从寄存器中读出来,和指令一起放入保留站。相反,如果操作数还在由前面的指令进行计算,那么就把那条指令的识别信息保存下来。然后,保留站把操作数齐备、可执行的指令依次送到流水线进行运算。即使指令位于前面,如果操作数没准备好,也不能开始执行,所以保留站中的指令执行顺序与程序不一致(乱序)。另外,保留站会监视执行流水线输出的结果,如果产生的结果正好是等待中的指令的操作数,就将其读入,这样操作数齐备后,等待中的指令就可以执行了。流水线13121507张文杰 乱序执行流
15、水线p 乱序执行 不同的微指令在不同的执行单元中同时执行,而且每个执行单元都全速运行。只要当前微指令所需要的数据就绪,而且有空闲的执行单元,微指令就可以立即执行,有时甚至可以跳过前面还未就绪的微指令。通过这种方式,需要长时间运行的操作不会阻塞后面的操作,流水线阻塞带来的损失被极大的减小了。p 猜测执行(if&switch)猜测执行意味着当遇到一个分支指令后,乱序执行部件会将所有分支的指令都执行一遍。一旦分支指令的跳转方向确定后,错误跳转方向的指令都将被丢弃。通过同时执行两个跳转方向的指令,避免了由于分支跳转导致的阻塞。13121507张文杰流水线LD r1,a;将内存的变量a 读入到寄存器r1
16、(加载)ADD r2,r1,r5;r1与r5相加,保存到r2SUB r1,r5,r4;r5减去 r4,保存到 r1执行这类程序时,开头的加载指令缓存未命中时,将变量a 读取到r1 就需要很长时间。而下一条ADD指令要使用r1 的值作为操作数,所以在加载指令完成之前,ADD指令无法执行。但是,再下一条SUB 指令的操作数r4 和r5 的值已经求出了,利用乱序执行,无须等待前面的LD 指令、ADD指令就可以执行,但ADD指令的操作数r1 正好是后面SUB 指令保存结果的位置反向依赖问题参考资料13121507张文杰http:/ 后PC时代,是移动运算高发展的时代,所以CPU应该向低功率,高性能的方
17、向发展,所以流水线深度可能更小,但CPU采用更好的架构以及更高的工艺来制造,达到和长流水线一样甚至更高的性能。更多条数的流水线 流水线条数的增加,使CPU在相同的时间内完成更多的工作,相当于提高了CPU的性能。CPU线程的提高 CPU线程会越来越多,多线程的使用,使CPU的流水线效率和速度得到了很大的提高,所以未来CPU可能会出现一个CPU8个、16个、32个甚至64个线程的情况。13121785常旭婷CPU内核与线程超线程技术 一般处理器,都是几个核心,那就有几个线程。但是由于处理器技术发展越来越快,就诞生了一个“超线程”技术。如果是一核心一线程的话,那么核心在工作时,难免会有空闲、休息的时
18、候。但是我们不想让它(核心)休息,就可以用超线程技术,给核心更多的线程,让处理器的利用率更高,从而提升处理器的能力。;超线程HT(Hyper-Threading)技术是在单个核心处理单元中集成两个逻辑处理单元,也就是一个实体内核(共享的运算单元),两个逻辑内核(有各自独立的处理器状态),在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程。但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。13121
19、785常旭婷多线程、多核、多CPU相当于一辆卡车在一条车道上跑。由于车少,所以运输能力有限。以往CPU生产厂商都是在不断的提高卡车的载重即主频来提高他的运输能力。运行性能方面:双CPU双核CPU超线程CPU单CPU;而在价格上也是双CPU双核CPU超线程CPU单CPU双CPU超线程系统双核CPU单CPU系统两辆卡车在一条车道上跑。虽然他运输的货物能力提高了,而且也不会频繁产生类似于HT超线程那样的冲突,但是因为他们都在一条车道上跑,所以互相避让减速的频率要比双CPU高得多,运输能力要比双CPU系统差相当于两辆卡车在两条相交的车道上跑。每辆车大部分都在自己的路上跑,但偶尔会相遇、停车避让。由于车
20、多路宽,所以双CPU运输能力最强13121785常旭婷相当于一辆双层卡车在一条车道上跑。由于是双层的,所以猛地一看以为是两辆车在跑,其实只有一辆。不过因为双层涉及到车高以及捆绑等问题,有的时候遇到限高的桥梁,需要人为的将货物卸下,手工搬运。所以说HT超线程适用的条件比较苛刻并行:多机多机系统并行处理1通过每s 注入800,1 600,2 400,3 200,4 000,4 800 批目标,主要测试系统融合时延t13121785常旭婷多机系统并行处理2加速比Sn采用以下简化的定义形式,即同一计算任务在单台和多台计算机运行所用时间的比率S n=T1/Tn,其中:T1 是单机串行运算时间;Tn 是多机并行运算时间。并行处理策略在工作负载达到一定规模且负载均衡后有较高的加速比.13121785常旭婷 Intel系列CPU的流水线结构与性能分析参考资料13121785常旭婷线程与进程的比较http:/