芯片开发师在设计新的CPU结构时,最终目标无疑是提高性能。不过,有时令他们为难的并非这一目标本身,反而是由于性能提升后出现的一些意外因素所造成的难以处理的隐痛。不知是否可称之为“技术的双刃性”?
比如,新型ISA设计遇到的一个现实问题是如何保持二进制向后兼容。服务器任务日益激增的数据处理量要求它的处理器能够配合大容量Cache或主存带宽,但如何在提高处理器数据吞吐量的同时又不使处理时间顺延,则迄今尚无良策。多处理器系统并非象外人臆想的那样会减少设计中的细节处理,事实上正相反,它需要更细腻的协调艺术。
一般而言,系统处理数据的吞吐量越大,它就越有价值,但同时,系统的高可靠性就更显重要。在服务器市场领域,查证(Verification)和支持(Support)服务变得越来越昂贵和耗时就印证了这一点。安腾(Itanium)的教训让硬件厂商们意识到,如何让客户的现有软件在新架构下更好地运行有多么重要。
Cache
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内核中的多线程,其中的某个线程可能会与其它线程发生纠缠。如果说较理想的情况是无需判定就能够得到良好性能,但是缺乏判定对几乎所有应用程序都是一种不合情理的苛刻。
|
|