1多核程序设计吉林大学计算机科学与技术学院包铁邮箱:baotie@jlu.edu.cn2第一章多核技术概述一、微处理器的发展史二、并行计算机三、系统芯片发展四、片上多核处理器构架五、芯片组对多核的支持六、操作系统对多核处理器的支持方法3一、微处理器发展史1945年,世界上第一台全自动电子数字计算机ENIAC。采用电子管,作为基本原件,每秒可进行5000次加减乘除占地172平米,重30吨,耗电150千瓦。他的问世表明计算机时代的到来。从此以后计算机技术的发展日新月异。4计算机的发展按照硬件工艺可以分为四个阶段:第四代(1971年以后):大规模集成电路数字计算机。逻辑原件和主存都采用大规模集成电路。第三代(1964~1971):集成电路数字计算机。软件完善,分时操作系统、会话式语言都有发展。第二代(1958~1964):晶体管数字计算机。外存采用磁盘;出现各种高级语言及编译程序。第一代(1946~1958):电子管数字计算机。主存使用汞延迟线、磁鼓、磁芯;外存采用磁带。软件主要使用机器语言、汇编语言。5计算机的发展方向:巨型机微型机银河系列、曙光系列PC机核心:微处理器(体积小、重量轻、功耗低、功能强、可靠性高、结构灵活)61971年,第一款微处理器4004,4位,2300个晶体管1978年,英特尔公司8086,16位,801861979年,英特尔公司又开发出了8088,集成完善801881981年,美国IBM公司将8088芯片用于其研制的PC机1982年,英特尔公司研制出了80286微处理器1985年10月17日,英特尔80386DX正式发布,32位,Cache1989年,英特尔推出80486芯片,120万个晶体管1993年,新一代586CPU问世,奔腾系列,0.5μm1996年底,多能奔腾PentiumMMX1998年,奔腾二代PentiumII(0.25μm)、至强微处理器Xeon、赛扬Celeron1999年春,英特尔公司PentiumIII奔三2000年,英特尔公司Pentium4,奔四(0.18μm)2002年,英特尔超线程技术(HT,Hyper-Threading)2005年4月18日,英特尔全球同步首发奔腾D处理器.微处理器的发展史:7第一代微处理器(4位):英特尔4004,8008第二代微处理器(8位):采用NMOS工艺,采用汇编语言、BASIC、Fortran编程,使用单用户操作系统。如英特尔8080,8085。第三代微处理器(16位):以1978年英特尔的8086出现为起点。第四代微处理器(32位):运算模式包括实模式、保护模式和“虚拟86”。英特尔80386DX,80486,Pentium4…微处理器的发展史:84004:4位8086:16位8008:8位80386:32位位数:缓存:80386开始有高速缓存(cache).PentiumII开始有二级缓存(L2).多核:奔腾D处理器.关于处理器发展史的说明:Itanium(安腾):64位91高速缓存(Cache)技术:处理器发展史中的一些重要技术:Cache是位于CPU与Mem之间的临时存储器,它的容量比Mem小但交换速度快。在Cache中的数据是Mem中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开Mem直接从Cache中调用,从而加快读取速度。CPU速度快,Mem速度较慢,Cache技术可解决该矛盾。10流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样可以加快程序的运行。2流水线技术:113超线程(Hyper-Threading,HT)技术:超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高CPU的运行效率。采用超线程技术能同时执行两个线程,是因为他们使用了芯片的不同部分,他们并不能象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。12MMX(MultiMediaExtensions),多媒体扩展指令集.SSE2SSE3SSE4提高在多媒体和3D图形方面的处理能力要使用这些新指令集,需使用专业编译器。4新指令集:SSE(StreamingSIMDExtensions),第二套多媒体专用指令集,加速CPU的3D运算能力。3DNow:3D加速指令集,加速CPU的浮点运算。13二、并行计算机概念:由一组处理单元组成,这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。两个最主要的组成部分(发展的方向):节点间的通信与协作机制计算节点14出现背景:●60年代初期,晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。出现规模不大的共享存储多处理器系统,即大型主机(Mainframe)。●60年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了,在处理器内部的应用大大提高了并行计算机系统的性能。15下面我们讨论如下两方面的内容:1并行计算机的弗林(Flynn)分类2并行计算机系统结构分类161并行计算机的弗林(Flynn)分类:指令流(Instructionstream):机器执行的指令序列.数据流(Datastream):指令调用的数据序列(输入数据和中间结果)从计算机的运行机制进行分类:17多指令流单数据流(MultipleInstructionstreamSingleDatastream,MISD)单指令流多数据流(SingleInstructionstreamMultipleDatastream,SIMD)单指令流单数据流(SingleInstructionstreamSingleDatastream,SISD)多指令流多数据流(MultipleInstructionstreamMultipleDatastream,MIMD)Flynn根据指令流和数据流的不同组织方式,把计算机系统的结构分为四类:18SISD:传统串行计算机19SIMD结构一个控制部件,多个专门设计的处理单元20MIMD结构(主流并行机结构)采用通用的CPU,通过互联网进行通信21MISD结构实际中存在争议,有的学者认为没有这种结构的计算机,而有的文献则把流水线结构的计算机看成MISD结构。222并行计算机系统结构分类:(1)分布式存储器的SIMD处理机含有多个同样结构的处理单元(PE),通过寻径网络以一定方式互相连接。互连网络PELM…LMPECU前端机LMPE每个PE有各自的本地存储器(LM)。向量数据总线控制单元23(2)向量超级计算机(共享式存储器SIMD)集中设置存储器,共享的多个并行存储器通过对准网络与各处理单元PE相连。…MMM互连网络…PEPEPECU前端机存储模块数目等于或者略大于处理单元的数目。为减少冲突应合理分布数据。24(3)对称多处理器(SMP)一个计算机上汇集了一组处理器,各处理器之间共享内存子系统以及总线结构。同时由多个处理器运行操作系统的单一副本,共享内存和其它的资源。MIMD25(4)并行向量处理机(PVP)在并行向量处理机中有少量专门定制的向量处理器。每个向量处理器有很高的处理能力。并行向量处理机通过向量处理和多个向量处理器并行处理两条途径来提高处理能力。…VPVPVP交叉开关网络VPVPVP26(5)集群计算机集群是一组独立的计算机(节点)的集合体,节点间通过高性能的互连网络连接;各节点除了可以作为一个单一的计算资源供交互式用户使用外,还可以协同工作并表现为一个单一的、集中的计算资源供并行计算任务使用。集群是一种造价低廉,易于构筑,并且具有较好可扩展性的体系结构。分布式集中式同构异构高性能机群(HPCluster)高可用性机群(HACluster)分类:27并行计算机技术与超级计算机技术为多核计算机的出现奠定了基础,而集成电路技术的发展是多核芯片得以实现的物理条件。28三、系统芯片发展处理器技术紧密地依托于集成电路技术的发展而发展,集成电路的迅猛发展引发了多核技术的出现。集成电路是采用半导体制作工艺,在一块较小的单晶硅片上制造许多晶体管及电阻器、电容器等元器件,并按多层布线或隧道布线的方法将元器件组合成完整的电子电路。1、超大规模集成电路技术29◆集成电路比分立器件电路成本更低、更容易调试和应用、更加可靠、更容易更换。◆集成电路的出现使得一块芯片上可以集成更多的运算和存储单元,计算机的体积减小,成本降低。◆摩尔定律-集成电路的集成度每18个月翻一番。◆当前集成电路已进入特大规模(千万个以上的元器件)阶段,主流生产工艺达到90nm,65nm和45nm。◆摩尔定律不可能无限持续,若不能在设计原理、工艺技术和原材料方面有所突破,无法更大程度地缩小晶体管的尺寸。1、超大规模集成电路技术302、系统芯片SoC:20世纪90年代中期,因使用ASIC(专用集成电路)实现芯片组受到启发,萌生应该将完整计算机所有不同的功能块一次直接集成于一颗硅片上的想法。这种芯片,初始起名叫SystemonaChip(SoC),直译的中文名是“系统级芯片”,又称“片上系统”。SoCIPSOPCTolapai介绍4个概念:31随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的集成,现在又发展到IP的集成,即SoC设计技术。SoC可以有效地降低电子/信息系统产品的开发成本,缩短开发周期,提高产品的竞争力,是未来工业界将采用的最主要的产品开发方式。32(1)SoC应由可设计重用的IP核组成,IP核是具有复杂系统功能的能够独立出售的VLSI(超大规模集成电路)块;(2)IP核应采用深亚微米以上工艺技术;(3)SoC中有至少一个的MPU(微处理器)、MCU(微控制器)、DSP(数字信号处理器)或其复合的IP核。这个定义虽然不是非常严格,但明确地表明了SoC的特征。到底怎么准确定义SoC有着各种不同的说法,在经过了多年的争论后,专家们就SoC的定义达成了一致意见:33IP(IntellectualProperty)核:一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。IP核有3种不同形式:软核,硬核和固核。软核:通常是用某种HDL文本提交用户,它已经过行为级设计优化和功能验证,但其中不含有任何具体的物理信息。毛坯硬核:具有和特定工艺相联系的物理版图,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。成品固核:设计深度介于软核和硬内核之间,除了完成软核所有的设计外,还完成了门电路级综合和时序仿真等设计环节。半成品34从灵活性和可重用性来看:如果想付出少量劳动、又不在乎高价:硬核最好,软核最差软核最好,硬核最差IP核的选择:35SOPC(System-on-a-Programmable-Chip)是SOC和PLD(可编程逻辑器件)的结合物。SOPC(可编程的系统芯片):SOPC技术是美国Altera公司于2000年最早提出的,并同时推出了相应的开发软件QuartusII。SOPC是SoC和可编程逻辑技术的结合,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色。例如,可裁减,可扩充,可升级,并具有一定的系统可编程功能。Altera的Nios和NiosII核是目前最有代表性的软核嵌入式系统处理器之一。36“Tolapai”是英特尔针对企业级市场的SoC计划,也是企业级SOC产品家族的第一款产品。Tolapai集成了北桥和南桥,其中北桥拥有单通道64-bitDDR2内存控制器、四通道DMA控制器、18条PCI-E通道(一个x2、两个x4、两个x1),南桥则支持两个USB、两个SAT