从最近为期一周的多处理器SoC(MPSoC)会议中可以清晰地得到一个结论:许多工作正围绕下一代系统级芯片(SoC)的硬件开发而展开,然而在如何对这些复杂芯片进行编程的问题上,我们却没有拿出非常理想的解决方案。
|
任何计算平台都必须具备一个编程模型,以此来确定如何开发出运行在该平台上的软件。一个好的模型能够利用抽象化(abstract)来屏蔽底层执行平台的某些细节,同时也能使编程人员充分发掘硬件的功能。然而,正如MPSoC研讨者们所指出的,现有的编程模型并不适用于复杂SoC。我们需要新的编程模型,它能够更好地抽象化硬件/软件接口和内部交互,以及定义这些接口的CPU。
法国Grenoble的Tima Laboratory正开发一种“基于服务的组件模型”,能够同时对硬件和软件进行抽象化,这种方法将功能服务从其本身的访问机制中分离出来,建立一个能够表示每个从抽象特性到RTL代码的单一模型。
当一个SoC中存在多个CPU时,通常用户希望能有一个并行编程模型来充分发挥硬件的性能。圣彼得堡航空航天仪器仪表大学(St. Petersburg State University of Aerospace Instrumentation)的研究人员正致力于这项技术,他们主要研究任务级和进程级的并行处理,同时利用Visa(一种采用AGP模型的交互、图形化并行编程语言)开发了一系列“异步发生过程”模型。
飞利浦研发机构Philips Research也在对多处理器SoC的并行编程模型进行研究。由于目前的编程模型过于面向底层,飞利浦正着重于开发它称为“任务传输层”(task transaction level)的“以接口为中心”的设计。
随着所有公司进军具有知识产权、工具和服务的SoC市场,会有越来越多的编程模型不断出现。近来一些非常引人注目的多处理器SoC已经进入市场,如IBM的Cell处理器。MPSoC的几个分组会议中都介绍了Cell的硬件设计,但没有关于编程模型的更多信息。
如果你是一个SoC设计小组的成员,那么在下一个设计总结会上你就可能会提出一个敏感的问题——毫无疑问,我们能够在SoC中设计多处理器、存储器、外围接口和快速总线结构,但我们的用户真的能够对这些SoC实现编程吗?他们能充分发挥我们所设计的这些硬件的全部性能吗?
作者:Richard Goering(rgoering@cmp.com),EE Times设计自动化专栏编辑主任
文章评论(0条评论)
登录后参与讨论