虚拟系统原型简化嵌入式多内核设计
时间:09-02
来源:互联网
点击:
自从微处理器面世以来就有了嵌入式系统设计。现代嵌入式系统与以往不同的地方在于,极端的运算要求需要使用多个CPU和DSP内核、数十甚至上百个外设和硬件加速模块,以及多级存储器结构,并且所有这些都要通过复杂的多级总线和交叉总线相连。同时,嵌入式系统的软件规模也在呈指数上升。
提高嵌入式设计质量和产能的一个方法,就是采用虚拟系统原型(VSP)。VSP是一种周期、寄存器和时序都十分精确的系统级快速软件仿真模型。“编辑-编译-执行-调试”周期的时间与在实际硬件中相当。一旦确定了最优架构,胜人一筹的VSP就能成为系统的可操作规范(黄金版参考设计)。硬件设计成员立即就能开始具体的硬件设计,而软件开发人员也可以利用VSP连接和开发剩余的系统软件。
以下是给那些准备采用这种极具建设性的设计方法的工程师所提供的一些建议。
应该
尽早使用VSP量化架构性能。多处理器架构要求重点关注总线和存储器系统架构。全面测试有助于确定总线架构的瓶颈。如果不解决瓶颈问题,那么可能会引起资源冲突,甚至导致系统瘫痪和进程处于“饥饿”状态。
测试候选架构性能,并与实际或具有代表性的应用软件进行对比。这种方法可以避免不确定因素以及与估计方法有关的错误,并且更容易构建。
使用VSP来捕捉以可执行规范形式表示的意图,从而推进实现和验证。在明确描述系统操作方面,一个全面开发的VSP要比书面规范更加高效。
使用周期精确模型。这种描述会带来更少的限制:它们可以用于时序重要的高度反应系统,并可以与实现验证结合使用。
在整个设计过程中对VSP进行维护,当发生以实现为主导的架构调整时,对VSP进行更新和重新发布。VSP可以用于调试在实际系统生成很长时间后发生的系统问题。
将VSP用于软件开发。具有足够性能的VSP不仅可以用于早期的设备驱动创建,也能用于中间件和最终应用的开发。提前开发和测试应用软件可以在实现完成前就发现缺陷,从而节省开发成本。
不应该
在开始软件开发和系统级测试之前等待硬件开发。与传统基于硬件原型的设计方法相比,VSP可以帮助用户提前一年开始软件的开发。
等待最终应用开发完成后开始应用层性能测试。对具有代表性的应用进行测试总比什么都不做好。
尽可能发掘功能唯一模型的作用。功能唯一的模型不能精确地处理总线时序和处理器运行的异常情况。总线带宽会影响程序访问对系统性能有重要影响的指令和数据资源。
继续更适合实现而不是仿真的建模实践。把重点放在最重要的方面。例如,考虑用于描述可综合RTL描述的建模类型。因为其主要目的是综合,因此不需要用很多复杂冗长的描述来如实地反映周期精确功能。过多的描述反而会降低仿真的速度。
使用由快速功能性模型和慢但精确的模型组成的混合建模方法。当设计要经历多个工程更改时(会花费相当多时间和资源),要使多个模型在功能上保持同步。另外,慢但精确的模型缺乏足够的速度进行关键时序的全面测试。两种模型分开使用的解决方案更简单也更具建设性。
对不充足的性能感到满足。速度当然是越快越好,但是同时要注意软件开发会要求性能达到数十Mips。通常,必须使用数十亿的时钟才能充分开发软件。
提高嵌入式设计质量和产能的一个方法,就是采用虚拟系统原型(VSP)。VSP是一种周期、寄存器和时序都十分精确的系统级快速软件仿真模型。“编辑-编译-执行-调试”周期的时间与在实际硬件中相当。一旦确定了最优架构,胜人一筹的VSP就能成为系统的可操作规范(黄金版参考设计)。硬件设计成员立即就能开始具体的硬件设计,而软件开发人员也可以利用VSP连接和开发剩余的系统软件。
以下是给那些准备采用这种极具建设性的设计方法的工程师所提供的一些建议。
应该
尽早使用VSP量化架构性能。多处理器架构要求重点关注总线和存储器系统架构。全面测试有助于确定总线架构的瓶颈。如果不解决瓶颈问题,那么可能会引起资源冲突,甚至导致系统瘫痪和进程处于“饥饿”状态。
测试候选架构性能,并与实际或具有代表性的应用软件进行对比。这种方法可以避免不确定因素以及与估计方法有关的错误,并且更容易构建。
使用VSP来捕捉以可执行规范形式表示的意图,从而推进实现和验证。在明确描述系统操作方面,一个全面开发的VSP要比书面规范更加高效。
使用周期精确模型。这种描述会带来更少的限制:它们可以用于时序重要的高度反应系统,并可以与实现验证结合使用。
在整个设计过程中对VSP进行维护,当发生以实现为主导的架构调整时,对VSP进行更新和重新发布。VSP可以用于调试在实际系统生成很长时间后发生的系统问题。
将VSP用于软件开发。具有足够性能的VSP不仅可以用于早期的设备驱动创建,也能用于中间件和最终应用的开发。提前开发和测试应用软件可以在实现完成前就发现缺陷,从而节省开发成本。
不应该
在开始软件开发和系统级测试之前等待硬件开发。与传统基于硬件原型的设计方法相比,VSP可以帮助用户提前一年开始软件的开发。
等待最终应用开发完成后开始应用层性能测试。对具有代表性的应用进行测试总比什么都不做好。
尽可能发掘功能唯一模型的作用。功能唯一的模型不能精确地处理总线时序和处理器运行的异常情况。总线带宽会影响程序访问对系统性能有重要影响的指令和数据资源。
继续更适合实现而不是仿真的建模实践。把重点放在最重要的方面。例如,考虑用于描述可综合RTL描述的建模类型。因为其主要目的是综合,因此不需要用很多复杂冗长的描述来如实地反映周期精确功能。过多的描述反而会降低仿真的速度。
使用由快速功能性模型和慢但精确的模型组成的混合建模方法。当设计要经历多个工程更改时(会花费相当多时间和资源),要使多个模型在功能上保持同步。另外,慢但精确的模型缺乏足够的速度进行关键时序的全面测试。两种模型分开使用的解决方案更简单也更具建设性。
对不充足的性能感到满足。速度当然是越快越好,但是同时要注意软件开发会要求性能达到数十Mips。通常,必须使用数十亿的时钟才能充分开发软件。
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)