肛检怎么检查:王荣福:新型CPU设计遇挑战

来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 04:48:29
芯片开发师在设计新的CPU结构时,最终目标无疑是提高性能。不过,有时令他们为难的并非这一目标本身,反而是由于性能提升后出现的一些意外因素所造成的难以处理的隐痛。
  二进制向后兼容  新型CPU设计遇到的一个现实问题是如何保持二进制向后兼容。服务器任务日益激增的数据处理量要求其处理器能够配合大容量Cache或主存带宽,但如何在提高处理器数据吞吐量的同时又不使处理时间顺延,迄今尚无良策。多处理器系统并非像人们臆想的那样会减少设计中的细节处理,事实上正相反,它需要更细腻的协调艺术。一般而言,系统处理数据的吞吐量越大,它就越有价值,但同时,系统的高可靠性就更显重要。在服务器市场领域,查证(Verification)和支持(Support)服务变得越来越昂贵和耗时就印证了这一点。安腾的教训让硬件厂商们意识到,如何让客户的现有软件在新架构下更好地运行有多么重要。  Cache的作用是为了减轻内存系统的负担。现在的Cache,多数有助于加快反应时间和部分降低带宽需求。但是,近年来流行的并行线程技术TLP(Thread Level Parallelism)优化设计就存在着反应变慢问题,这将导致设计师选择体积较小、密度更高、反应较快的Cache,相应地,对Cache带宽要求也越高,尤其对多CPU内核间的共享型Cache更是如此。  复杂性与有效性  处理器设计中的另一道难题是如何对复杂性与有效性之间的方程式进行求解。教科书式的处理器设计理论往往单纯地探讨单线程性能;设计性能越高通常意味着越复杂,但往往会导致有效性(实现工艺)欠缺。采用较强的TLP优化设计时,有效性更为主要,具体指标以每个晶体管、每瓦特或给定尺寸模的性能表现进行衡量更为贴切。不要以为有效性意味着简单化设计。比如,多CPU内核之间通过共享逻辑或Cache得到了更大的有效性,但复杂度也随之加剧。  此外,能耗与散热近年来也一直困扰着芯片业,但对每芯多核设计,这些问题并非最为艰涩。比如,TLP优化设计看似会提高能量使用效率,能耗量也不会构成大碍;但是每芯多核意味着每芯内逻辑电路的激增和SRAM的减少,因而采用低能耗逻辑就更为关键;与单核芯片相比,随着对几大热点源的替换,每芯多核的芯片冷却技术应当有某种程度的简化,但实践的情形并不乐观:姑且认为冷却50W功耗的单核芯片是轻而易举的话,那么要对每芯进行4倍冷却(200W)就变为一种严峻挑战。所以对CPU每个内核的降能比对一帧芯片降能更具针对性。因而,减少多核设计中有关时钟频率的晶体管数量及互连关系,才能更大程度地减少能耗的束缚感。  对于模内Cache,追求的是能够让所有内核对其共享。即使是L1 Cache也要设法让2个甚至更多个CPU内核共享之。功能单元,尤其是那些对延迟反应不敏感或调用不频繁的单元也应当被CPU内核所共享。共享设计有利于减少模尺寸和能耗,同时又不会导致性能有较大落差。但是,更多的共享要求有额外的组织逻辑,需要通过额外的电路将数据在共享单元间往返穿梭。但是,共享越多,越不是局部技术,限制条件会越多,对整体牵制也越大。  单线程与多线程  在单线程芯片上运行的程序,遇到条件支路需要进行方向判定时,大致不会影响到整体流水线的运作情况。但是对于每个CPU内核中的多线程,其中的某个线程可能会与其它线程发生纠缠。如果说较理想的情况是无需判定就能够得到良好性能,但是缺乏判定对几乎所有应用程序都是一种不合情理的苛刻。  硬件业的发展现状告诉我们,很多硬件概念需要重新认识,包括CPU内核、Cache、内存等系统设计。想当然地以为只要在一帧芯片内堆放多枚内核就能得到高性能的思维是幼稚的。虽然,“肥胖型”CPU的设计能够消除掉某些性能“瓶颈”,但是它会出现某些新瓶颈,甚至原有的问题变得严重化了。而且,矛盾还不仅仅属于CPU本身,整个问题的解决涉及到系统设计、芯片封装设计、内存子系统设计甚或I/O设计。一些看似过时的设计思想需要重新反思和评估。  究竟多少线程或内核数称得上最佳?目前尚无定论。部分原因在于技术一直处于变革之中,而且不同设计具有不同的目标取向。CPU内核的最大数或许类似摩尔定律——假设芯片平均尺寸不变,每帧芯片的内核数将不断增加。目前,CPU内核常见的硬件线程数为2,4或8。对于SMT设计而言,数量更多的硬件线程也许可以榨取更多的剩余资源,但也会加剧芯片的复杂度和成本负担。况且数量太多的线程反而会造成性能紊乱。精明的ISVs(独立软件开发商)在软件授权许可中指明是“每帧处理器”,今后也许会改为“CPU每内核”,比方说,一位公司客户的服务器具有2帧双核处理器,那么在购买软件时须支付4倍单处理器版本的费用。随着Intel和AMD将双核x86处理器相继摆上桌面,软件商对这样的问题将会直言不讳。但这并非多核为客户造成尴尬的唯一原因。  多核为客户造成的另一个问题是缺乏机动、不便升级。以配置为双核处理器的4P系统(每帧处理器具有4 sockets)为例,其升级方式可以是从1到4个处理器芯片和2到8个CPU内核,但如果是8核处理器的话则只能有8个内核。当然,8核设计也可以是一种冗余方式,它可以表示至少有4内核可以使用,而且各内核应当具有相同的频率。  Sun公司采用TLP优化设计的Niagara,正在实验室处于测试阶段。Niagara正是一帧用于服务器的8内核处理器,芯片尺寸约为350平方毫米,最大能耗60W,它采用16个2GByte DIMMs,总计32GB主内存,主存带宽超过20GB/s。其8内核共享3MB L2 Cache,每个内核具有16KB L1指令Cache和8KB L1数据Cache;其流水线有6阶长,没有分支预报单元。Niagara整个芯片有近2000针脚用于I/O和供能,其中大部分用于主存系统;模上主存控制器采用的是4帧双通道DDR2。我们知道,AMD Opteron是具有模上1帧双通道DDR。与Intel公司最快的90nm Pentium4相比,Niagara能耗是其一半,但模尺寸却有3倍多,从而使能耗密度缩小6倍,Niagara散热应当相对容易。Sun正在研发的Niagara-2处理器,内置有1OGbit以太网,时帧有望达到Sun的高端设计Rock处理器指标。Niagara芯片系列针对的是基于高密网络的重量级应用,每个线程不会让CPU太吃紧;而Rock单线程性能色彩如此浓烈,甚至超越了Sun的“宽肥型”设计结构UltraSPARC V,尽管它的硬件线程数与Niagara大致相同。