您的位置:首页 > 移动开发

Tips_编程模型(SoC)(application programming model)

2006-03-31 15:06 309 查看
http://www.eetchina.com/ART_8800379562_865371_33004f16_no.HTM

复杂SoC开发需要新的编程模型

从最近为期一周的多处理器SoC(MPSoC)会议中可以清晰地得到一个结论:许多工作正围绕下一代系统级芯片(SoC)的硬件开发而展开,然而在如何对这些复杂芯片进行编程的问题上,我们却没有拿出非常理想的解决方案。
任何计算平台都必须具备一个编程模型,以此来确定如何开发出运行在该平台上的软件。一个好的模型能够利用抽象化(abstract)来屏蔽底层执行平台的某些细节,同时也能使编程人员充分发掘硬件的功能。然而,正如MPSoC研讨者们所指出的,现有的编程模型并不适用于复杂SoC。我们需要新的编程模型,它能够更好地抽象化硬件/软件接口和内部交互,以及定义这些接口的CPU。

法国Grenoble的TimaLaboratory正开发一种“基于服务的组件模型”,能够同时对硬件和软件进行抽象化,这种方法将功能服务从其本身的访问机制中分离出来,建立一个能够表示每个从抽象特性到RTL代码的单一模型。

当一个SoC中存在多个CPU时,通常用户希望能有一个并行编程模型来充分发挥硬件的性能。圣彼得堡航空航天仪器仪表大学(St.PetersburgStateUniversityofAerospaceInstrumentation)的研究人员正致力于这项技术,他们主要研究任务级和进程级的并行处理,同时利用Visa(一种采用AGP模型的交互、图形化并行编程语言)开发了一系列“异步发生过程”模型。

飞利浦研发机构PhilipsResearch也在对多处理器SoC的并行编程模型进行研究。由于目前的编程模型过于面向底层,飞利浦正着重于开发它称为“任务传输层”(tasktransactionlevel)的“以接口为中心”的设计。

随着所有公司进军具有知识产权、工具和服务的SoC市场,会有越来越多的编程模型不断出现。近来一些非常引人注目的多处理器SoC已经进入市场,如IBM的Cell处理器。MPSoC的几个分组会议中都介绍了Cell的硬件设计,但没有关于编程模型的更多信息。

如果你是一个SoC设计小组的成员,那么在下一个设计总结会上你就可能会提出一个敏感的问题——毫无疑问,我们能够在SoC中设计多处理器、存储器、外围接口和快速总线结构,但我们的用户真的能够对这些SoC实现编程吗?他们能充分发挥我们所设计的这些硬件的全部性能吗?

作者:RichardGoering(rgoering@cmp.com),EETimes设计自动化专栏编辑主任
http://www.eetchina.com/ART_8800372114_865371_848c6340200507.HTM

《多处理SoC需新思维,业界展示SoC编程改进模型》

日前参与多处理器系统级芯片(MPSoC)研讨会的人士表示,必须改进编程模型以充分利用下一代SoC。

编程模型定义了一种SoC平台开发的方式。它采用抽象来隐藏潜在的执行平台。传统上,编程模型来自于软件世界,但MPSoC主办者兼法国TIMA实验室系统级综合部负责人AhmedJerraya表示,现在业界需要面向多处理SoC的新思维。

“当我们开发硬件/软件接口时,我们需要不同的编程模型。硬件和软件都必须抽象化。”Jerraya表示。此外,他指出,编程模型还必须抽象定义硬件/软件接口的CPU。当今的编译通常忽略了CPU环境。

因此,面向SoC的并行编程模型必须变得更为直截了当,以说明CPU结构组织、总线功能模型接口、指令集仿真、交易级模型,以及最终的RTL硬件。“硬件/软件接口协同设计需要统一的代表硬件、软件和CPU的模型。”Jerraya表示。

TIMA的系统级综合部FredericPetrot展示了一种可能的解决方案。他表示,TIMA正在开发一种“基于服务的元件模型”,能处理硬件和软件。这种模型有两部分——接口,包含服务声明和数据结构,以及参数化的实现。目标是实现一个单一模型,能从抽象规范到RTL描述系统设计,并自动生成wrappers和交易器(transactor)。

丹麦技术大学信息及数学建模教授JanMadsen则展示了一种称为ARTS的系统级建模框架。“总体思路是愿意尝试新事物,如新处理器和新时序安排。”

ARTS是基于SystemC的仿真环境,能检测所选特定的实时操作系统、处理器、网络拓扑及任务映射的因果关系。他演示了该模型如何检测处理器利用、总线冲突及存储文件。

加拿大蒙特利尔Ecole理工学院教授GabrielaNicolescu则畅谈了包含MEMS、光学或电生物元件的异类SoC规范和验证要求。

关键是构建减少物理原型的模拟并仿真。一种可能性是扩展语言,例如Verilog-AMS,另外一种可能性是创建允许不同类模型计算的环境,如伯克莱大学的Ptolemy。Nicolescu表示,其大学拥有一个SystemC/Simulink环境的工作原型,能够提供集成连续及离散项目的仿真。

俄国圣彼得堡航空仪器州立大学高性能计算机和网络技术学院院长YuriySheynin认为,多处理器SoC编程需要高效的语言、方法论和工具。他领导的小组开发出一套用于并行计算的“异步成长流程(AGP)”图形化模型,基于异步分配控制,能描述所有流程的互动。该小组还开发出了一种并行编程语言Visa,特别针对AGP模型使用。

www.linuxsir.org/bbs/printthread.php?t=74857
GUI编程-同步化的编程模型
http://nalai.net/content/view/316128/32/《 J2EE开发框架发展简史》
JDBC以一种错误的编程模型来强制开发者用Java代码来处理关系思想。

Hibernate并不是全新的,它的ORM思想在这个领域很普遍,但它提供的编程模型比其他任何竞争者都容易使用、都来的直接,它为ORM的使用提供了更加易用、廉价的途径。

下一代的J2EE规范将拥抱更简单的POJO编程模型,就像Spring和Hibernate做的一样。

一个基于struts,hibernate的项目,业务逻辑很难搞定。尽管对于这种问题,J2EE规范提出了解决方案(EJB),但仍旧没有一个合适的编程模型。(spring很好地解决了这个问题)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: