微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 多核技术仍然长路漫漫

多核技术仍然长路漫漫

时间:02-02 来源:电子工程专辑 点击:

在过去的一年里,整个电子行业逐渐清醒,意识到了多核处理器的重要性以及现有技术的差距。这种情况在2007年可能还将延续。

今年预计该领域会出现一些阶梯性的进步,包括首个多内核测试基准以及应用编程接口将先后出台。但与此同时,整个行业也认识到了一个多核软件和互连设计师早已明白的道理:未来几年,有关多核的工作将非常艰难。

英特尔及其主要竞争对手AMD,一直都在积极推动多核处理器的普及。2006年,二位巨头不断出现在各大媒体的新闻头条中竞相发布面向主流计算机的双核和四核CPU。

而相比之下安静得多的嵌入式领域此时也出现了相同的趋势,有的嵌入式处理器在一个裸片上封装了200个以上(有的甚至达到500个)的相同内核。更有甚者,像TI这样的蜂窝电话芯片制造商,已经开始付运带多种不同内核的处理器。即使是低成本的电子玩具,也登上了多内核舞台,以LSI Logic公司为例,该公司针对消费类玩具推出了采用3个或4个不同类型内核的ASIC平台。

随着硅片工程师的工作重点向"提高性能的同时限制功耗和热量"转移,裸片上的内核数量也取代兆赫,成为微处理器最新的衡量标准。所有情况都表明,一个新时代已经到来,CPU和软件需要及时作出响应。

"现在,你可以买到多核笔记本、多核台式机、多核蜂窝电话、多核PDA,多核设备可以说是无处不在,甚至于我7岁大的孩子,也正在使用多核系统。"并行计算长期以来的倡导者Anant Agarwal说道,Agarwal还是麻省理工学院电子工程和计算机科学系的教授。"由于多核技术的快速普及,软件开发人员最终明白,编程已经不再像原来那样,今后他们需要做更多的并行编程工作。"Agarwal指出。

"事实上,有人曾通过电子邮件问我,单线程Unix程序是否已经成为过去时?"他补充道。

对此,ARM有限公司负责多核处理的项目经理John Goodacre表示认同:"在2006年,我已经看到市场从一开始对多核的惧怕和疑惑,转变为多个领域的接受以及采纳。"ARM公司至今已经向10家以上的芯片公司授权使用其ARM11 MPCore多核处理器。

硬件变化在不断推动软件中的思想转变,Goodacre表示。"目前普遍存在的观点是:多核编程难度较大,已有代码投资无法用在多核解决方案中。我希望在2007年,软件社群对多核的迟疑态度能够烟消云散。"他表示。

最大问题

既然业界在这个问题上已经醒悟,那么现在最好有人能够站出来,指明整个行业所存在的问题。从目前来看,计算机科学方面就存在一些尚未解决的重大难题。

"并行计算缺少算法、语言、编译器以及专业技术。"微软研究院编程和工具主管Jim Larus指出。

Larus曾被要求确定需要解决的关键问题,他表示:"短期内会有许多实际问题,如对多线程、同步、调试和错误检测等方面提供更好的支持。"

"长期来看,"他说,"我们需要更好地理解人们想利用并行编程做些什么,并学习如何在各种不同的并行机器上编写代码。"

在加入微软之前,Larus曾在威斯康星大学担任了8年的并行计算专业教授。现在,Larus正在雇用新的研发团队专门研究并行语言和编译器。他的团队已经开始开发能够发现并行代码中错误的工具。他们还开发了一款被称为"Accelerator"的程序,旨在将使用高度并行数据集的X86代码,转换成能在支持多核的图形处理器上运行的程序。

"软件之所以落后于多核芯片,其原因在于我们仍不清楚人们想用这些并行机器做些什么,"Larus表示,"当前许多设备的并行程度并不高。"

许多公司都想把一些旧代码转换到多核,但不想重新编写应用程序。这一事实引起了人们对自动化工具的极大关注,目前众多公司(例如CodePlay软件有限公司)都在开发将串行代码转变为并行代码的编译器。

但Larus却认为这种方法可能行不通。"研究人员在80年代曾花费了数年时间为以前的Fortran代码开发类似工具。那个时候,几乎所有人都认为这不是正确的途径。"他说,"现在,你首先需要用并行语言编写程序,这一工作必须详细到算法级,因此我们真正需要的应该是并行编程语言。"

但是研究人员仍然必须为并行编程确定所有基础性技术。例如,在面向使用并行数据结构(如矩阵)的应用程序时,MSR的"Accelerator"项目表现良好;而"Futures"架构由于能将特定操作封装起来,使其它线程对其进行完整调用,所以研究人员也在对其进行深入研究,以期应用于其它程序中。

另外一种颇有前途的技术被称作轻量级软件事务处理(lightweight software transactions),它充分利用数据库处理中的技巧,创建使系统在结束前无法被中断的高层处理。该方法可以替代容易出错的使用低层锁保证并行进程间互不干扰的老方法,Larus表示。Larus曾就该新方法编著过一本书。

"许多人热衷于实现上述方法,但现在仍存在一些问题,比如这种方法是否真的很好?它如何与软件模型的其它部分进行交互?"Larus指出。

研究人员们已经发现,当前最大的问题,就是没有一种并行编程技术或方法集得到了广泛使用。"每种构造有自己的用途,没有一种是通用的。"Larus指出,"因此我们认为并行算法在今后数年内都将是一个热门的研究领域。"

好消息是去年几个供应商聚集在一起成立了多核协会(MCA)。该机构目前大约有15位成员(还有十几家正在加入过程中),至今已经设立了3个工作组,其中一个工作组目前正在积极准备面向通信应用编程接口(CAPI)的规范。

该机构准备借助分布式系统上获得的工作经验开发一种硅片级方法,使消息传递向多核芯片发展。

"多核编程是一个很大的挑战,API标准(如CAPI)是解决问题的关键。"MIT公司Agawal指出。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top