对现有EDA供应商来说,多核处理器的出现为他们平添了“几分欢喜几分愁”。
欢喜之处在于,随着晶体管数量在65nm及更小工艺下飙增,多核平台能提供更多必需的计算能力。但是,传统的应用软件很难、甚至根本无法实现并行处理,所以这些公司必须投入大手笔对软件进行重写,而这样做直接导致了65和45nm节点工具的推迟上市。也正因为如此,当前的市场天平开始向新一代EDA初创公司倾斜。
在近日于美国圣地亚哥举行的设计自动化会议(DAC)上,对多处理和多核平台的支持是一个被反复讨论的话题。特别地,DAC上的多线程和多核支持重点针对静态时序分析、模拟/混合信号仿真和设计规则检查(DRC)。而事实上,本次会议上也出现了数家EDA新创公司的面孔。
新创公司CLK设计自动化公司推出的Amber,是一款多线程增量时序和信号完整性分析工具,据称在多核平台上几乎能获得呈线性的加速。统计时序分析方面的新兴公司Extreme DA,推出的则是多线程静态和统计时序分析器GoldTime。而Averant公司最新的Solidify 5.0,则为该公司的形式分析工具增添了多CPU处理能力。
Nascentric公司在DAC上预展了AuSim MT,即一款针对多核平台的多线程快速Spice仿真器;新创企业Xoomsys公司展出的是一款即将推出的、可运行在联网计算机或多核CPU上的快速Spice仿真器——XoomCKT;而Tanner EDA公司则演示了其T-Spice电路仿真器的多线程功能。
大型EDA供应商自然也不能忽视。Magma设计自动化公司已经为其Quartz DRC工具套件推出一种“基于流式数据流的架构”,据称可优化Quartz DRC在多核CPU和多处理方面的性能。
对65nm和45nm设计工具来说,多核/多处理器运行是必需的,Gary Smith EDA公司首席分析师Gary Smith指出。“如果EDA工具本身就具有并行机制,”他说,“那么通常情况下增加多核功能只要直接升级就可以了;否则,就要进行大量的改写,这通常要花三年左右的时间。现在有许多工具都处在改写进程进行了一半的状态,这也就解释了为何我们在65/45nm工具方面落后了两年。事实上,这是EDA产业界的大问题。”
F1:AuSim MT在两个SRAM供应商的设计中进行测量比较,证明多线程速度取决于电路结构。
“对下一代物理实现工具来说,如果要跟上摩尔定律,多线程绝对是个关键。”CLK总裁兼首席执行官Isadore Katz表示,“与用户设计步伐保持一致的唯一途径,就是利用所有可用的内核。下一代实现工具必须‘从头开始’建立在真正的多线程架构上。”
Cadence、新思、Mentor Graphics和Magma等大型EDA供应商都承认,未来对多核的支持是基本要求。这四家公司都声称目前可提供多线程和多核功能。
一些近日发布的工具已经可以直接支持多线程处理。Sierra设计自动化公司去年所推出的网表到GDSII套件Opympus-SoC,就完全采用多线程架构,并且支持目前基于Linux的多核CPU。
联网CPU还是多内核?
在EDA领域,采用多个CPU并不是什么新鲜事。一些应用软件,特别是在进行功能验证和物理验证时,就会在联网的工作站集群上使用分布式处理,充分发挥数十甚至数百个CPU的威力。其中,有些工具还采用了多线程处理,从而充分利用拥有多个CPU工作站的优势。
一些多线程工具,例如得到广泛使用的Mentor Graphics公司的Calibre DRC物理验证工具,声称同样能在分布式网络、多CPU工作站和多核CPU上很好地工作。Calibre DRC产品经理Michael White指出,用户正在“计算集群”中部署双核和四核CPU工作站,并结合分布式网络和多核CPU。
如果负载很容易划分,那么分布式网络就可胜任,Cadence公司首席技术官Ted Vucurevich说道,但如果时间响应很重要,那就需要一个耦合更紧密的、多核的环境。
“分布式处理的难点在于:处理器之间的延迟很大。”Nascentric公司首席技术官John Croix说,“可以利用包含多个单CPU芯片的工作站来减小延迟,但这里总线是一项限制因素。虽然从软件实现角度来看,多CPU架构和多核架构之间只有很小的差异,但是相比较,位于同一颗裸片上的多核处理器具有最大的速度。”
由于其公司的产品既支持分布式网络CPU,也支持多核CPU,所以Xoomsys公司首席执行官Raul Camposano的观点比较中立。他认为,多核CPU通信速度很快,但用于存储器访问的带宽非常有限;而联网CPU通信速度虽然较慢,延迟也比较大,但它们有自己的存储器和缓存,因此有更大的带宽进行存储器访问。目前,多核CPU受限于只能包括少量处理器,而联网CPU可以拓展到数百甚至上千个。
Tanner EDA公司首席科学家Massimo Sivilotti指出,随着AMD的Opteron和英特尔的Core Duo工作站的推出,业界已经有“负担得起”的多核平台可用。对于模拟电路仿真等紧密耦合的数值问题,多核处理器比分布式联网CPU更合适,他补充道。
目前只有特定的工具支持分布式处理,而对多核的支持最终会得到普及。“计算范例正在从单核向多核转变。你会看到EDA软件产业也在向这个方向发展。”Cadence公司副总裁Eric Filseth指出。
问题是为多核架构编程非常困难,而且试图借助原有应用软件的做法可能被证明是徒劳无功的。多核编程通常包含了利用线程来分配任务和协调响应。“从软件角度来看,特别是在EDA中,许多算法本身是有顺序的,因此即便使用了多线程,所获的的性能改善也微乎其微。所以,它们需要被重新编写。”Xoomsys公司的Camposano指出。
“可能是个灾难”
“任何想清楚明白地创建用到线程概念复杂软件的企图,都有可能酿成一场灾难,而大多数EDA软件程序正深陷其中。”Calypto设计系统公司首席架构师Ammol Mathur说,“从调试器到工具,它们对线程的支持度都很差,而这种很明确的多线程处理会引起极度难以调试的竞态状态和非确定行为。”
试图使现有EDA软件线程化是一种“亏本行为”,因为它们最多只能与三或四个处理器一起工作,CLK公司的Katz表示。“确实需要一项全新的开发项目来建立线程化架构。”他指出,“这真的是件非常难的事。”但其回报很丰厚:CLK公司的Amber据称能利用多达64个处理器获得接近线性的加速。
Extreme DA公司的行销总监Graham Bell表示,在把EDA软件用到多核CPU上时,存储器和数据管理将是一项挑战。“采用全局变量、不区分数据和执行代码的编程风格,使得改写任务即使能实现也是极度困难。”他表示。
如果负载划分不合适,Nascentric公司的Croix指出,通信开销将抵消掉并行机制所带来的好处。
AuSim MT是为实现多线程处理而从头开始设计的工具。Nascentric公司使用了“几乎完全遵守编码指南的”面向对象的编程方法,Croix透露。
不仅仅针对新创企业
大型EDA供应商们承认多核带来挑战,但同时表示他们正在取得良好进展。事实上,Mentor Graphics公司相信它的Calibre是全球最早的多线程EDA产品之一。Calibre技术行销经理John Ferguson表示,“多核是市场的发展趋势,我们相信在部署能充分发挥多核架构优势的产品方面,Mentor公司走在了前列。”
“不做多核就会被淘汰。”Magma公司物理验证事业部总经理John Lee说道,“英特尔和AMD也不再继续提高时钟周期,而是增加更多的内核。如果你的产品不能充分发挥多核带来的优势,那么你只能用到芯片的一半或四分之一性能。”
Magma公司最新推出的物理验证工具Quartz DRC从一开始就支持分布式处理,但它并没有增加多线程功能,而是采用了称作“流式数据流”的架构。
“这种架构非常有利于多核应用,因为你可以使数据从一个内核流向另一个内核,而无需退到主存储器或磁盘。”Lee指出。EDA软件传统上是采用一种“数据库”架构把大量数据载入内存,这样做很不灵活,他解释道。
与Magma的数据流架构相比,多线程在细颗粒度并行处理方面的能力要稍弱些,Lee指出。尽管如此,Magma公司在具有多核功能的快速Spice仿真器FineSim中,还是采用了多线程技术。
Cadence公司支持多线程技术的工具有Encounter RTL Compiler全局综合、First Encounter、Space-Based Router、NanoRoute和Chip Optimizer。不管是在多CPU工作站还是在多核CPU上,这些工具都能正确运行,Vucurevich指出。其中大多数工具还能运行于分布式网络。
Chip Optimizer和Space-Based Router是最新的软件工具,完全根据多线程技术要求而设计。不过它们需要依赖于不具备线程安全性的OpenAccess数据库,Vucurevich表示。Encounter RTL Compiler已经针对多线程进行了改写。虽然该工具只有特定部分能实现多线程,但是这倒不是什么大问题,Vucurevich补充道。
“最彻底、也最具风险性的方法,就是针对多核处理重构应用软件。”vucurevich表示,“人们都不愿意冒险,即使某款应用软件的市场反应很好。这也是为什么人们注重方法实效的原因。”
新思公司的Galaxy IC实现平台内的多种工具采用了多线程、分割、并行处理或分布式处理等方法,新思公司IT高级总监Hasmukh Ranjan指出。例如,PrimeTime时序分析仪可以使用跨越多个CPU的并行处理,来分析不同的时序和信号完整性。HSpice电路仿真器也具有多线程处理能力。
“新思公司的所有研发小组都在从事某种多核工作。”Ranjan说,“EDA工具肯定会向多核发展,因为未来摩尔定律的优势不是来自同质多核,就是来自具有特殊处理器的多核。”
不过Ranjan也指出,许多EDA工具要求访问存储器中的全芯片数据库。由于存储器访问带宽的限制,在多核处理器上运行软件可能导致性能下降。因此,对处理器供应商来说,改进总线架构、缓存容量和存储速度尤其重要。
“如果这些方面没有改进,数据瓶颈将抵消新增内核所带来的优势。”Ranjan表示。