CMP cmp医学上是指什么

CMP cmp医学上是指什么
多核心:并行时代领路者(转自http://zih.it.com.cn/articles/79147.htm)集成电路制造技术的快速发展使得芯片上的晶体管集成度不断提高,微处理器性能也得到了不断的提升。单个硅芯片上集成10亿个晶体管已经具有现实可行性,在这种情况下,如何
进一步发掘与利用程序并行性以有效利用这些晶体管成为一个关键问题。以前处理器设计中大多通过并发执行单个串行程序中的多条指令来提取并行性,但为了发现单个串行程序中的可并发执行指令,处理器设计一般采用了一些复杂的技术,如乱序指令执行、猜测执行和硬件分支预测等。未来的主流应用需要处理器具备同时执行更多条指令的能力,但是从单一线程中已经不太可能提取更多的并行性,主要有以下两个方面的原因:一是不断增加的芯片面积提高了生产成本;二是设计和验证所花费的时间变得更长。在目前的处理器结构上,更复杂化的设计也只能得到有限的性能提高。对单一控制线程的依赖限制了多数应用可提取的并行性,而主流商业应用,如在线数据库事务处理(Online DatabaseTransaction)与网络服务(如Web服务器)等,一般具有较高的线程级并行性(TLP,Thread LevelParallelism)。为此,研究人员提出了两种新型体系结构:单芯片多处理器与同时多线程处理器(SimultaneousMultithreading,SMT),这两种体系结构可以充分利用这些应用的指令级并行性和线程级并行性,从而显著提高了这些应用的性能。从体系结构的角度看,SMT比CMP对处理器资源利用率要高。但是随着VLSI工艺技术的发展,晶体管特征尺寸不断缩小,这使得晶体管门延迟不断减少,但互连线延迟却不断变大。当芯片的特征尺寸减小到0.18微米甚至更小时,线延迟已经超过门延迟,成为限制电路性能提高的主要因素。在这种情况下,由于CMP的分布式结构中全局信号较少,与SMT的集中式结构相比,在克服线延迟影响方面更具优势。CMP:多芯一用CMP是指在一个芯片上集成多个微处理器核心,每个微处理器核心实质上都是一个相对简单的单线程微处理器,这多个微处理器核心可以并行地执行程序代码。具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。图1 期坦福的Hydra CMP结构示意图根据芯片上集成的多个微处理器核心是否相同,CMP可分为同构CMP和异构CMP。同构CMP大多数由通用的处理器组成,多个处理器执行相同或者类似的任务。图1给出了美国斯坦福大学在1996年研制的HydraCMP结构示意图。Hydra集成了四个MIPSR3000处理器核心,属于同构CMP。异构CMP除含有通用处理器作为控制、通用计算之外,多集成DSP、ASIC、媒体处理器、VLIW处理器等针对特定的应用提高计算的性能。图2给出了Sony、Toshiba与IBM(STI联盟)共同研制的Cell处理器的结构示意图。Cell处理器由一个Power结构的处理器核心(PPE,Power Processor Element)和8个辅助处理器(SPE,SynergisticProcessor Element)构成,属于异构CMP。Cell旨在以高效率、低功耗处理下一代宽带多媒体与图形应用。图2 Cell体系结构示意图根据多个微处理器在哪级存储层次上互连,CMP的结构可分为三类:共享一级Cache的CMP,共享二级Cache的CMP以及共享主存的CMP。通常,CMP采用共享二级Cache的CMP结构,即每个处理器核心拥有私有的一级Cache,且所有处理器核心共享二级Cache。由于CMP采用了相对简单的单线程微处理器作为处理器核心,使得CMP主要具有以下优点:●高主频:CMP中绝大部分信号局限于处理器核心内,包含极少的全局信号,因此线延迟对其影响比较小,可以实现高主频。●设计和验证周期短:微处理器厂商一般采用现有的成熟单核处理器作为处理器核心,从而可缩短设计和验证周期,节省研发成本。● 控制逻辑简单,扩展性好,易于实现。● 功耗低:通过动态调节电压/频率、负载优化分布等,可有效降低CMP功 耗。● 通信延迟低:CMP采用共享Cache或者内存的方式,多线程的通信延迟较低。几种高性能处理器结构超标量(Super Scalar)处理器超标量处理器指在单个时钟周期内可以发射执行多条指令的处理器。为了使这多条指令可以并行执行,超标量处理器一般具有多个功能部件,如多个定点运算部件、浮点运算部件和Load/Store部件等。目前流行的桌面微处理器,如Intel奔腾4、AMD Athlon64系列都属于典型的超标量处理器。超标量处理器提升性能的关键在于通过硬件本身尽可能多地从应用中寻找指令级并行性,但是它只能从发掘单个线程的指令级并行性来提高对微处理器资源的利用率,因此对具有较高线程级并行性且较低指令级并行性的商业应用,超标量处理器无法体现其性能优势。当超标量处理器无法在某个时钟周期找到足够的指令级并行度,那么它就不能在这个周期填满全部指令发射槽,这样就造成了所谓水平浪费(HorizontalWaste);如果超标量处理器由于Cache缺失或访问内存而造成随后某些时钟周期中出现空置的指令发射槽,那么就产生了所谓垂直浪费(VerticalWaste)。图3所示为多发射处理器中可能造成的垂直浪费和水平浪费情况,空白块表示该指令发射槽浪费了,不同的填充纹理表示不同线程。从图3可以看出,单线程的超标量处理器出现这两种浪费的几率比较高。图3 多发射处理器指令发射槽利用情况比较此外,超标量体系结构的可扩展能力比较差,当需要对体系结构进行少量改动时,由于数据通路上的每一处都可能受到变动的影响,整个设计将变得特别复杂,系统调试与正确性验证的开销非常庞大。VLIW处理器超长指令字处理器(VLIW,Very Long InstructionWord)也是一种可以在单个时钟周期内发射多条指令的处理器。与超标量处理器不同,它主要是通过编译器来寻找指令级并行性,然后编码成一条可同时发射的多条微指令组合而成的超长指令。目前Intel的服务器芯片Itanium就应用了一种类似于VLIW的技术,此外Transmeta的Cursoe芯片内部的实现也采用VLIW技术。与超标量处理器一样,VLIW也无法避免垂直与水平浪费的出现。多线程处理器(MT)多线程处理器通常为每个线程维护独立的处理器状态,包括寄存器与程序计数器PC等,能够快速地切换线程上下文。多线程处理器又分为细粒度多线程处理器和粗粒度多线程处理器。细粒度多线程处理器在每个时钟周期都进行线程上下文切换;粗粒度多线程处理器在遇到延迟事件(Cache缺失或访存事件)时才切换到其他线程,否则一直执行同一个线程的指令。由于多线程处理器在遇到延迟事件时,将线程迅速切换去执行另外一部分程序代码,从而避免垂直浪费。如图3所示,多线程处理器可有效地减少垂直浪费情况。同时多线程处理器(SMT)多线程处理器在任何时刻只允许单个线程执行,因此尽管没有浪费指令周期,但多个线程还是可能无法在一个时钟周期内同时使用指令发射槽,水平浪费仍然不可避免。同时多线程处理器在超标量处理器上增加了一些硬件,通过从多个活跃线程中动态选择与执行指令流,在一个时钟周期内可发射多个线程的多条指令,能够更好地利用处理器资源,有效降低水平浪费和垂直浪费。美国华盛顿大学的Tullsen等人对多线程处理器结构的仿真结果表明,细粒度多线程只有在线程数为2~5之间时才能有效提高应用性能。这是因为当线程数大于5时,水平浪费比垂直浪费增长得快。仿真结果还表明,即使多个线程间通过优先级策略进行调度,在同时多线程处理器中,多个线程对共享资源,如Cache、TLB以及BTB的共享将会影响性能。如果单个线程的指令Cache缺失率大约为1%,那8个同时线程的Cache缺失率将上升到14%。一种可行的解决办法是让每个线程使用私有指令Cache,减少线程间的互相干扰。Tullsen最后的结论是,尽管资源争用可能会损伤性能,但是同时多线程处理器要优于细粒度多线程。近两三年Intel所力推的HyperThreading本质上就是一种同时多线程技术。CMP与SMT:各有千秋SMT与CMP都是通过利用程序中的线程级并行性来提高程序性能与系统吞吐率。从体系结构角度看,SMT设计更加灵活,但随着集成电路技术的发展,芯片线延迟已经成为阻碍处理器性能提高的主要障碍,在克服线延迟影响方面,CMP的分布式设计要明显优于SMT的集中式设计。当程序中的并行性在执行过程中动态变化时,SMT相对CMP具有性能优势。SMT设计非常灵活,通过在执行过程中增加或减少线程个数,SMT可以实现最大化资源的利用率。在运行某些线程并行性较低的应用时,CMP系统有可能出现资源利用率低的问题。CMP相对SMT的最大优势在于其模块化设计的简洁性。复制简单设计非常容易,指令调度也更加简单。同时SMT中多个线程对共享资源的争用也会影响其性能,而CMP对共享资源的争用要少得多,因此当应用的线程级并行性较高时,CMP性能一般要优于SMT。此外在设计上,更短的芯片连线使CMP比长导线集中式设计的SMT更容易提高芯片的运行频率,从而在一定程度上起到性能优化的效果。从IBM和Intel等处理器巨头的动向来看,将两者结合是未来处理器发展的一个重要方向。CMP的关键技术1. Cache设计Cache一致性策略随着半导体工艺的发展,CPU和主存储器之间的速度差距越来越大。在CMP中,多个处理器核心对单一内存空间的共享使得这一矛盾更加突出,因此在CMP设计中必须使用多级Cache,通过层次化的存储结构来缓解这一矛盾。与常规SMP系统一样,CMP系统必须解决因此而引发的Cache一致性问题。建立怎样的Cache一致性模型与采用何种Cache一致性机制都将对CMP整体性能产生重要影响。在传统多处理器系统结构中广泛采用的Cache一致性模型有:顺序一致性模型(Sequential ConsistencyModel)、弱一致性模型(Weak Consistency Model)、释放一致性模型(Release ConsistencyModel)等。与之相关的Cache一致性机制包括侦听一致性机制(Snooping CoherenceMechanism)、目录机制(Directory Mechanism)、面向编译的一致性机制(Compiler-DirectedCoherence Mechanism)等。上述这些模型和机制是否适用于CMP结构、效率如何等等都需要研究和仿真。此外,能否提出更加适用于CMP结构、且高效易用的Cache一致性模型和机制,也是提高CMP性能的关键。Cache层次结构研究Cache自身的体系结构设计也直接关系到系统整体性能。很多CMP设计都采用了分布一级Cache,共享二级Cache的结构。但是在CMP结构中,共享Cache或独有Cache孰优孰劣、需不需要在一块芯片上建立多级Cache、以及建立几级Cache等等,这些都是需要认真研究和探讨的问题。总之,采用几级Cache、每一级Cache的大小是多少、Cache对整个芯片尺寸、功耗、布局的影响等等问题都对CMP的性能以及运行效率等有很大的影响,须认真研究和探讨。2. 核间通信机制CMP处理器由多个CPU核心组成,每个核心执行各自的程序代码,但是多个核心上同时执行的各个程序之间可能需要进行数据共享与同步,因此CMP处理器的硬件结构必须支持各个CPU内核之间的通信。通信机制的优劣直接关系到CMP处理器的性能,高效的通信机制是CMP处理器高性能的重要保障。目前比较主流的片上高效通信机制有两种,一种基于总线共享的Cache结构,以斯坦福大学的Hydra处理器为代表;一种基于片上的互连结构,以麻省理工学院的RAW处理器为代表。总线共享Cache结构是指每个CPU内核拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统具有结构简单,容易实现与验证,且对系统程序员接口友好的优点,缺点是基于总线的结构可扩展性较差。这种结构适用于集成4个或4个以下CPU核心的CMP处理器;当核心数量大于等于8个时,CMP的性能会有较大幅度的下降。基于片上互连的结构是指每个CPU核心具有独立的处理单元和Cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,适合于集成16个以上CPU核心的CMP处理器;缺点是硬件结构比较复杂,且软件改动较大。3. 高效多端口总线接口传统微处理器中,Cache缺失或访存事件都会对CPU的执行效率产生负面影响,而总线接口单元(BIU)的工作效率会决定此影响的程度。当多个CPU核心同时要求访问内存或多个CPU核心内私有Cache同时出现Cache缺失事件时,BIU对这多个访问请求的仲裁机制以及对外存储访问的转换机制的效率决定了CMP系统的整体性能。因此寻找高效的多端口总线接口单元(BIU)结构,将多核心对主存的单字访问转换为更为高效的Burst访问;同时寻找对CMP处理器整体效率最佳的一次Burst访问字的数量模型以及高效多端口BIU访问的仲裁机制将是CMP处理器研究的重要内容。4. 低功耗设计半导体工艺的迅速发展使微处理器的集成度越来越高,同时处理器表面温度也变得越来越高并成指数增长,每三年处理器的功耗密度就能翻一番。目前,低功耗和热优化设计已经成为微处理器研究中的核心问题。CMP的多核心结构决定了其相关的功耗研究是一个至关重要的课题。低功耗设计是一个多层次问题,需要同时在操作系统级、算法级、结构级、电路级等多个层次上进行研究。每个层次的低功耗设计方法实现的效果不同——抽象层次越高,功耗和温度降低的效果越明显。以操作系统级的低功耗设计为例,在进行任务调度时,操作系统可以根据软件负载情况以及处理器功耗负载,动态地启动或关闭一定数量的处理器核心,从而达到降低整体系统功耗的目的。比如说,当操作系统监测到某个CPU核心温度过高,则可以将正在该核心上运行的任务迁移到其他CPU核心上执行,并暂时关闭该处理器核心。结构级低功耗设计可以应用动态电源管理、热能分布、热敏感的核间通信路径动态调度等策略来避免集中通信引起的芯片局部过热等问题。5. 编译/运行时优化通过编译技术的支持来提高CMP单芯片多处理器的性能是非常重要的途径,其关键是发掘程序中所蕴含的并行性。自动的串行程序并行化是一种最理想的方式,而猜测多线程(SpeculativeMultithreading)技术可以帮助大大简化串行程序并行化的难度。猜测多线程技术是一种编译与运行时优化相结合的软硬件协同的优化技术,对存在数据依赖的两个线程,处理器可以以任意顺序执行。它先假定这两个线程间不存在数据依赖关系,然后同时执行这两个线程,如果执行过程中发现存在数据依赖关系,则停止执行依赖于另外一个线程的线程,并回滚(RollBack)到初始态,再重新执行。6. 操作系统任务调度算法全局vs.局部任务队列CMP体系结构对线程级并行TLP具有良好支持,处理器在同一时刻可以执行多个线程。优化的操作系统任务调度算法可以进一步提高CMP处理器上任务执行效率,这对提高CMP处理器的性能至关重要。CMP处理器的任务调度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU核心利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,这种方法的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部Cache命中率,从而提高系统的性能。目前多数CMP操作系统采用的是基于全局队列的任务调度算法。共生调度CMP处理器的各个CPU核心会共享一些部件,如二级Cache、I/O端口等,当它们同时竞争访问这些资源的时候,就会发生冲突。在任务调度时,可将访问共享资源较多的任务和访问共享资源较少的任务调度到同一时刻执行,从而最大程度上减少冲突,这就是共生(Symbiosis)调度方法的基本思想。在实际系统中,任务调度系统可以让计算密集型的程序和I/O密集型的程序同时执行,以减少对共享二级Cache和I/O端口的访问冲突。CMP研究与应用1. CMP研究系统斯坦福Hydra美国斯坦福大学在1996年研制的Hydra单芯片多处理器上集成了四个MIPSR3000处理器核心,每个处理器核心拥有私有的一级Cache并共享二级Cache。  

爱华网本文地址 » http://www.aihuau.com/a/25101016/320472.html

更多阅读

十八层地狱是指什么? 十八层地狱电影

十八层地狱是指什么?——简介生活中经常听到大家对某事的不悦可以用“十八层地狱”来比喻,那么十八层地狱到底是什么呢?还是只是人们以讹传讹的谬论呢?其实不然,中国自古就有很多神鬼传说,这十八层地狱的来历也是在人们的构想中慢慢建造

我国的三山五岳是指什么? 三山五岳指的是什么

我国的三山五岳是指什么?三山是指:黄山位于安徽省南部,古称“三天子都”,意思是指黄山的三大主峰(莲花峰,光明顶,天都峰)是天上神仙的都会。著名旅行家徐霞客曾说“五岳归来不看山,黄山归来不看岳”。黄山有“天下第一奇山”之称。庐山位于江

股市里的“多头”“空头”“二八现象”是指什么? 多头 空头

多头,是指投资者看好市场的走向为上涨,于是先买入,再卖出,以赚取利润或者是差价;空头是指投资者或者是投机者看到未来的走向为下将,所以就抛出手中证券,然后再伺机买入。二八现象指全部股票中只有20%左右上涨,其余均下跌的现象证券术语牛市

中医上所说“五脏化液”是指什么? 中医五脏六腑的关系

中医上所说“五脏化液”是指什么?  来源:中国中医  中医中所说的“五脏化液”是指五液与五脏的功能活动、经脉所过或开窍有关。《素问·宣明五气篇》中曰“五脏化液:心为汗,肺为涕,肝为泪,脾为涎,肾为唾,是谓五液。”张志聪《素问集注》

声明:《CMP cmp医学上是指什么》为网友南城挽歌分享!如侵犯到您的合法权益请联系我们删除