Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1664355
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类:

2007-09-28 16:50:37

利用基于平台的环境加速软件开发
技术分类:    作者:Mike Uhler,MIPS科技公司首席技术官  发表时间:2007-09-11


  不久以前,如果你问大多数开发人员,在他们的开发过程当中,什么是其中最大的瓶颈,他们一定会说是逻辑验证。这个回答并不会令人惊奇,在过去十年中,SoC电路设计的密度在迅速增加,使得硬件验证的复杂度以指数的速度在不断增加。

   但是,如果你现在对SoC开发人员提出同样的问题,他们很可能会说,嵌入式软件的开发是开发过程中最大的挑战。目前,有一半以上的SoC开发成本花在了 开发驱动程序、引导代码、硬件相关部分的协议栈、DSP算法和其它嵌入式软件方面。图1显示了不同工艺节点SoC开发过程中,各个开发工作所占的成本比 例。

图1SoC开发过程中各个开发工作所占的成本比例


  今天,SoC设计人员面对的是实际的芯片开发与支持它的软件架构开发之间的差距。在传统的开发流程中,在硬件团队开发出物理原型之前,软件工程师是没法进入到目标硬件的。因此,在硬件设计完成之前,一直处于停顿状态。在一个产品寿命不断缩短和上市时间压力无情加大的市场中,任何开发方面的耽搁都会增加成本和影响产品收益。

  SoC设计人员需要的是一种新的开发策略,能够减少或消除这种硬件/软件设计的顺序排列。理想的情形是,这种方法将有助于SoC开发人员将经过验证的硬件IP集成


到硬件核中。此外,这种方法还将建立一个开放的架构,便于无缝地集 成IP。最后,通过实现真正的硬件/软件共同设计,使SoC开发人员在硬件设计定案之前,编写和调试他们的软件,在这个过程中可以显著降低开发成本和缩短 上市时间。本文将介绍这样一种方法,以及这种方法如何可以迅速加速软件的开发进程。

  基于的设计方法

   基于平台的方法可以提供一个完全集成的通用架构,设计人员易于利用并迅速建立具有通用功能的SoC。此外,采用事先设计和事先确定功能的元件,而不是采 用定制设计方法,开发团队能够加速设计流程,应对逐步升级的上市时间压力。在多个项目间重用IP,也有助于减少开发成本。

  基于平台的方法也有助于SoC设计人员满足日益增长的复杂性和细分市场需要。利用一个基于平台的架构,设计人员能够增加或更换一些IP构件,方便而迅速地开发派生产品。预先集成的架构还有助于减少验证的不确定性,利用已有的模块使开发资源集中于核心项目上。

  硬件的隔离

  加速软件开发的关键是采用硬件接口或硬件抽象层(HAL),这样有助于改变 底层硬件而不影响软件的兼容性。理想的情况是,这个抽象层还可以对由其它厂商的IP块进行扩展。采用基于平台的方法,HAL可以将硬件与操作系统内核隔离 开来,并为运行的应用提供一个一致的硬件平台,无论设计人员的硬件配置如何。

  在基于平台的方法中,HAL可以为硬件和软件之间提供一 个抽象层。元件的基本硬件核包括了所必需的关键功能,包括存储器子系统、中断和片上互连。核的心脏是一个系统控制器,它采用了一种用于互连结构的矩阵式交 换总线架构,为低延迟和高带宽进行了优化,还可为SDR和DDR/DDR2存储器提供与互连结构的存储控制器连接的高性能连接。可选的L2高速缓存控制器 可以最大限度地减少存储器延迟,还可以减少系统成本,HAL在系统中的位置如图2所示。

  HAL也可以与用于大多数嵌入式系统,也可以与实时时钟(RTC)、串行端口(UART)和各种GPIO等外设一起工作。重要的是,硬件核和HAL的设计是开放的,可以为软件提供一个稳定的移植平台。

  这种方法和其它基于平台的开发策略之间有本质上的不同,它可以简化驱动程序的开发过程。大多数硬件抽象层(HAL)可以补偿系统CPU中的差异。在这个平台中,HAL进行了优化,可以补偿外设方面的差异。

   以以太网控制器为例。所有以太网控制器的上层驱动程序都是相当类似的。不过,在底层,如何对一个具体的控制器的功能或最高速度进行编程经常存在着差异。 在这种新的平台方法中,这些底层的驱动程序栈的差异位于HAL。这样,驱动程序就可以集成到平台中的IP块,而软件可以简单地将顶层驱动程序连接到 API,与底层驱动程序实现通信。

图2MIPS SOC-it平台的组成结构


  这个开发策略可以大大简化驱动程序的开发。由于软件移植平台在HAL API上是恒定的,开发人员选择哪一个以太网控制器无关紧要,因为HAL无需改变驱动程序,只要控制器支持同样的操作环境就可以了。设计人员只要为支持操 作环境的每个以太网控制器创建一个驱动程序,可以简化驱动程序开发,还有助于保证硬件元件的兼容性。

  最大限度地减少性能问题

  在大多数基于平台中,使用方便灵活的通用API可能要以牺牲性 能为代价。如果用SOC-it平台,可通过采用用于不同类型设备的不同API来减少这种性能问题。例如,使用一个专为因特网控制器优化的API和另一个专 为DSP控制器优化的API,就可以通过一个个性化模块使该平台满足这些特殊功能的性能要求,同时仍然保持方便性和加速开发通用API的好处。在这种情况 下,设计人员可以将特殊设备类型的更高层的设备驱动程序 连接到HAL API。设计人员只需在每个设备类型的每个操作环境做一个端口就可以了。

  这种方法和其它方法之间的另一个重要差异在于,使设计人员能够为多种具体应用开发。

  历史上,更高的提取层的软件模型还没有提供支持真正硬件/软件共同设计所需的性能。不过,ESL技术的最新进展已开始突破了这个限制。

  不同于同类方法,SOC-it可 以在早期设计流程的架构层支持虚拟系统模型的开发,直至完成RTL设计。同样重要的是,它还有助于设计人员在设计周期的各个阶段将该平台作为一个虚拟系统 模型,即一个评估板或实际的SoC。该平台可用作可合成RTL,而且还可以作为各提取层的SystemC模型。这些模型与大多数通用电子系统工具 (ESL)兼容。

  这种在不同提取层多视角访问同一个IP块,以及保证不改变软件运行的能力可以为现有的基于平台的方法提供重要优势。 它有助于在开发过程的不同阶段使硬件平台形成一个稳定的软件移植平台。利用这个模型,设计人员能够验证系统块的连接性,与传统方法相比,可以在设计周期早 期开始过程,并在硬件设计完成以前实现。

  结论

  基于平台的方法使设计人员能够以一个完全虚拟的系

统原型开发整个设计,开发人员能够在硬件完成之前开始费时的软件开发过程。同时,通过采用创新的方法隔开硬件和软件设计,这个平台还可以简化来自不同厂商的IP的集成,并显著加速软件开发进程。
阅读(988) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~