多内核处理器的系统开发挑战

2008-03-06 11:11:48来源: 电子系统设计
  当讨论到多内核处理时,对硬件人员来说是好的东西不一定对软件人员来说也是好事。多内核设计的理想硬件架构异质(不对称)单指令集架构(ISA),它本质上同时包含高复杂度内核和低复杂度内核来实现更低的功耗和更大的吞吐量。

  现在想象一下:先不考虑阿姆达尔定律(它用于发现仅当系统的某一部分改进时系统的最大期望改进量),以及不限制裸片尺寸。从应用编程的角度来看,理想的多内核架构应该是同质(对称)的,因此依赖性并不建立在一个特殊的ISA基础之上。IBM、索尼和东芝联合开发的Cell微处理器采用了异质架构,尽管它并没有采用单一的ISA。目前对多内核处理器的编程还是相当费劲的,因为软件开发人员编的代码在很大程度上与架构有关。Raza微电子公司的首席架构师Dave Haas表示,当你可以避免的时候,你应当小心地不要将自己归附到某个特定的供应商或架构,从而使同质架构在有选择时成为一个更安全的选择。

  如果不考虑最佳的方法,那么对于今天的嵌入式和通用系统设计师来说还是有一些选择。如果你从事嵌入式领域的工作,那么你会有好几种异质多内核处理器选择。如果你从事的是通用领域的工作,那么你可能只有一个同质的多内核处理器选择。

  编程决策指南

  在给多内核处理器编程时,现有好几种折衷方法可以让晶体管发挥出最大的性能(见表)。例如,有一个线程对内核的折衷方法。MIPS公司首席架构师Kevin Kissell指出,你必须首先通过分析你的系统来决定哪些应用程序可以被分解成众多的子任务或线程。

传统的多芯片可视电话架构多内核处理器的系统开发挑战

  “单片多内核处理器的并行化常常是可能的,但很少是容易的,而且开发一个较大的科学代码通常比开发一个较小的嵌入式实时应用程序要容易些。”Kissell说。如果希望进一步节省裸片面积,可以考虑采用多线程架构。该想法的意图是最大化每瓦的性能,以及选择可以充分利用存储器和功率预算的架构。“当单线程内核由于存储器时延和缓慢的功能单元而无法充分利用其管道时,多线程可以在面积相对温和增加的情况下提高吞吐量,而且在许多情况下可以取得超线性的性能。”他说。

  举例来说,你可以在增加15%的CPU和缓存子系统面积的情况下将吞吐量提高30%。“如果丢失带宽的恢复允许多线程内核运行在一个比等效单线程内核更低的频率上,而且仍能满足性能目标,那么这就相当于实现了功率优化。”Kissell表示。

传统的多芯片可视电话架构多内核处理器的系统开发挑战

  因此,如果你的应用不需要大量的共享数据或指令,那么分布式存储器方案可能就是最佳选择。“每个处理单元的存储器容量可以针对其专注任务进行调整。”Kissell说,“而且你可以为不同的处理单元使用不同的处理器频率、不同的处理器型号、甚至不同的处理器架构,以取得最佳的面积/功耗/性能值。”但如果有大量的代码和/或数据共享,对称配置可能就是你最好的选择。Kissell指出:“与分布式存储器模型相比,这一方法增加了复杂性,并损失了一点峰值性能,因为共享存储器阵列会有一些竞争,而且各个内核之间必须使用缓存一致性协议,以确保各个内核在每个存储位置能看到相同的值,不管是否存在缓存。”

  但AMD公司的高级研究员Chuck Moore认为,最终用户可能对多内核技术抱有不正确的期望。“多内核架构对提高吞吐量和响应能力非常好,但由于大多数应用仍是串行的,因此它们实际上不会推动多内核架构的发展。”Moore表示,“随着时间的推移,将会有越来越多的并行应用出现,但这需要的时间似乎比大多数人认为的要更长。”

  不同的开发观点

  当谈到多内核处理器时,所有的“教练”都相信他们的团队采用了最好的开发战略。以AMD和英特尔为例,众所周知它们在下一代多内核处理器上采用了截然相反的开发战略,英特尔公司坚信同质内核是正确的方向,而AMD认为未来的方向是异质内核。

  “明天的多内核解决方案将是异质的,”AMD公司的Moore表示,“它们最初将包含架构上兼容但性能不同的内核,但未来将包含更多专用和更高功效的硬件,这些硬件可通过精心定义的应用编程接口(API)进行访问。”

  英特尔和Vivace半导体公司在针对嵌入式应用领域的多内核处理器方面的观点也完全不同。“英特尔公司的嵌入式与通信部门估计,在今后三到四年中该部门开发的所有多核平台中,使用不对称多处理(AMP)的多核设计的比例约为10%。”英特尔公司嵌入式与通信部门平台解决方案架构师Edwin Verplanke表示。“一旦内核数量达到或超过32个,采用AMP的设计可能就会增加。”Verplanke补充道,“我们的一些客户拥有专有的且通常是实时的操作系统,它们不能提供对称多处理(SMP)。这些客户可能对在不同的内核上运行一些特定功能感兴趣。这些功能包括转发引擎、加密、模式匹配等。”这与Vivace半导体公司总裁兼首席执行官Cary Ussery的观点绝然相反。他认为,AMP约占所有嵌入式多核设计的90%。令我们感到奇怪的是,为什么来自不同机构的两位专家对市场抱有全然相反的意见?

  系统优化

  一旦你为下一个系统选择好架构后,假定是一个多处理环境,你很可能需要回顾一下你的代码,以决定如何自然地利用多核和/或多线程的优势。

  异质多处理架构要求预先理解如何对应用代码做出最佳划分,以充分利用可用的线程/内核。换句话说,如何将目标程序最佳地划分成较小的块?同类多处理方案一般没有这种要求,因为操作系统可以根据某些基本的任务定义和预先计算执行大部分的划分工作。

  今天的部分并行性是虚拟的,并知道何时使用它。根据英特尔,如果你的现有代码有较低的性能要求,那么它可能就是一个很好的虚拟化对象。但Sun公司微电子部门负责Niagara项目的首席技术官Rick Hetherington提供了一个略微不同的观点。“对单个内核进行虚拟化没有任何意义。”Hetherington说。当然,Sun的看法可能更局限于通用计算领域。嵌入式领域在复杂度允许的情况下允许对单个内核进行虚拟化。

  如果你对多处理环境不熟悉,你可以考虑一步步用“what-if”方法来找到瓶颈和最佳并行化方案。你还可能会发现,需要将你的代码移植到能够充分利用多处理架构的标准操作系统,如Linux。如果移植数百万行代码行不通的话,系统管理程序也许是你最好的选择。另外一种方法是从内核上卸载通用的任务,如数据加密和解密,从而释放出内核资源去处理更通用的任务。

  多核的未来

  马萨诸塞州科技大学教授、半导体新创公司Tilera的首席技术官Anant Agarwal在今年于美国圣克拉拉举办的Multicore Expo会议上指出,编程和调试多核处理器的工具还处于“黑暗时代”。很显然,多核处理器上有不少未被利用的内核和线程在等待着工作。但问题并不仅仅与工具有关。“第一代多核处理器只是将一组内核简单地集成进系统级芯片(SoC)。”AMCC解决方案架构总监Dan Bouvier指出。由于对付多处理和存储器瓶颈需要不少开销,因此这样做反而会降低性能。“新一代的多核处理器需要更多地关注处理器间的动态变化以及它们对软件配置和性能的影响。”Bouvier说,“在非对称多处理器子系统中集成更上层(第3层以上)加速器的主要挑战是缺少标准和API。”

传统的多芯片可视电话架构多内核处理器的系统开发挑战

  采用OpenGL的计算机图形有这样的标准,OpenGL标准定义了用于产生2D和3D图形程序的交叉语言和交叉平台API。遗憾的是,由于没有在由跨领域专家推动的开源API基础上开发的工具标准,我们只能使用现有的工具,也许我们需要重新考虑我们的设计策略。

  “编程模型和软件堆栈是将多核架构升级到下一层次的关键使能因素(或抑制因素)。”AMD公司的Moore表示,“通过与软件团队的紧密合作,我们将提供相应的解决方案,它可为用户带来巨大的价值。”

  在软件领域又有哪些新进展呢?“随着多核、一致性和均衡的处理器间通信方案被采纳,多处理器设计正在发生根本性的转变,所使用的软件范例和模型也在发生相关变化。”ARM公司负责多处理业务的项目经理John Goodacre表示。上述转变不仅导致了嵌入式领域的全面断裂,而且也迫使系统工程师重新考虑决策过程。“随着SoC设计师考虑从ARM+DSP到多核+DSP+加速器+RISC的转变,以及存储器一致性、连续性和任务同步的挑战,硬件和软件将发生根本性的改变。”Goodacre指出。

  部分这种根本性改变使得系统工程师必须重新考虑他们的设计方法。如果是自底向上的设计方法,其中处理要求基于性能、存储器和其它与系统有关参数决定,那么这可能导致下游出现灾难性问题。

  “如果你在考虑商业应用软件,你应采用自顶向下、从软件到硬件的考虑方式。在嵌入式领域,如果我们仍然采用从底向上的考虑方式,那么因为产品推出太晚将造成开发进度缓慢并丧失市场机会。”Virtutech公司行销副总裁Michel Genard说道。Genard认为,约有50%的嵌入式设计从未成功,就是因为这种有问题的思维方式,而且设计受性能参数而不是商业要求驱动。“相反,我们需要不断重复硬件和软件开发来加快产品上市。”Genard表示。为了增加市场机会,在软件方面最好考虑系统级虚拟化方法,而不要考虑器件级方法。如果做法正确,Genard表示:“这种方法可以为成功的并行软硬件开发提供必要的速度、灵活性和控制能力。”

  本文小结

  随着越来越多的硅片采用多核架构,或大或小的公司市场部门都会不断发现它们的使用价值。因此,我们必须支持多核架构,继续开发理想的架构/软件混合方案,才能保持领先水平。

  最终所有多核方案都将导致并行编程,并使处理器间通信采用更复杂的架构方案,软件事务存储器也大有用处。Agarwal认为,我们必须改变内核的连接方式,确定理想的资源大小,坚信分布式网络和更小的缓存是未来的发展趋势。

  由于有如此多的问题困扰着多核,对新创企业来说就有很大的机会胜出,也许某一天就会发现所有这些未用线程和内核的用武之地。

关键字:架构  异质  编程  晶体管  线程  应用  系统

编辑:汤宏琳 引用地址:http://www.eeworld.com.cn/news/control/200803/article_18155.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
架构
异质
编程
晶体管
线程
应用
系统

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 数字电视 安防电子 医疗电子 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved