“几分欢喜几分愁”EDA供应商面对多核设计
联网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实现平台内的多种工具采用了多线
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
