在SoC设计中用SystemC虚拟平台预览USB的性能

技术分类: 通信  | 2006-07-08
Kshitiz Jain, Rohit Jindal, Bhuvan Middha, Rob Smart, STMicroelectronics

  现在的程序员和系统架构师有比以往更多的软件可用于 SoC(单片系统)设计,但也面临着一个日益困扰他们的问题:如何在设计前期,在硅片拿到手以前评估和优化软件的性能。为解决这个问题,程序员们转向虚拟平台,这种平台采用软件来对目标硬件的架构和功能建模。

  当设计师们小心地在其它软件工具帮助下完成这个任务时,这些平台被证明是有效的方法,可以对很多重要性能的度量做出早期评估,如有关嵌入软件功能好坏及其与现有硬件的互相影响。虚拟平台可以预测 CPU 效率、数据传输率以及缓存失中率、中断等待时间、功能性热点,以及其它性能的度量。

  为了便于理解和体会虚拟平台的性质与价值,考虑这样一个例子:评估一个 USB 系统软件栈的性能。开发者的选择是有相当的理由,因为 USB 2.0 有 480 Mbps 的传输速率,是承载实时音、视频数据的常见选择。因此,USB 在多媒体产品中得到日益广泛的应用,如机顶盒和手机。

  由于 USB 的互动中包含有复杂的协议和软、硬件之间大量的相互依赖,因此特别需要这种平台的帮助。这种情况下,不仅要求软件架构尽早确认 USB 系统软件,而且要估算出软件在 CPU 上的负载,

此外还有中断等待时间的影响,从而保证 USB 确实是一个可行的选择。

  这种性能预估要求虚拟平台能够对实际硬件功能,包括处理器、缓存和系统内存、USB 外设、USB EHCI(扩展型主控制器接口),以及 USB 设备等,建立非常接近的模型。此外,还需要一个剖析工具来寻找软件栈中的功能热点,精确地预测出完成功能所需时间。开发人员用平台得到的结果,与理论预测值做对照调整,而平台也可以检验 USB 栈在实际硬件上实现性能的稳定性。另外,当开发人员修改软件栈时,平台还可以精确地反映出性能的变化。

  在本例中,设计师想出一种评估 USB 系统软件栈性能的方法,该软件栈运行在嵌入机顶盒芯片中的 DVR(数字视频录像机)子系统中。DVR 含有一个录/放音、视频数据流的 USB 硬盘驱动器。USB 软件栈包括一个单线程 DVR 应用实例,它用驱动器完成一系列读、写操作。

  功能平台非常详尽地模仿 DVR 硬件的运作,揭示出重要的时序参数。特别是该平台建立了一个 USB 主控制器、硬盘驱动器和系统内存与缓存的模型。平台有一个新颖的功能,它含有一个用 SystemC 写成的事务级模型,以此证明该方案能够用于建立评估复杂嵌入软件的虚拟平台。开发人员一般采用 RTL(寄存器传输级)模型建立系统硬件的模型,与事务级模型相比,这种方法的抽象层次较低。

  平台设置

  虚拟平台包括一个 USB 2.0 EHCI、一个 USB 硬盘驱动器、一个缓存仿真器、一个主处理器指令集仿真器,以及系统内存。USB 2.0 EHCI 模仿主控制器的功能,提供 480 Mbps 数据速率下的精确时序值,以及基于内存模型的内存访问时间,还有 EHCI 寄存器的读、写时间。EHCI 亦作为一个 DMA 主控,可以不通过缓存访问系统内存。

  为了跟踪所有的指令与数据存取,USB 软件栈运行在一个在事务级硬件模型上建立的指令集仿真器上。指令与数据记录通过虚拟平台,测量CPU使用率、缓存失中率以及中断等待时间等。另外,用一个高度可配置、可扩展和模块化的剖析工具 Flexperf 判别功能热点,帮助完成软件栈的排错。

  系统在寻址硬盘驱动器时是按照划分为扇区的 I/O 文件,符合海量存储设备规格,包括USB实施者论坛的“bulk-only”规格。于是,它可以通过端点 0 执行所有标准的设备请求。它还可以执行一个 SCSI 命令的子集,通过端点 1 和 2 与 DVR 相关。

  缓存仿真器对一个可配置的缓存建模,该仿真器包括一个环绕式处理程序 Dinero 、一个追踪驱动的开放源缓存仿真器。作为系统处理器,围绕指令集仿真器的处理程序为一个 216 MHz STMicroelectronics C2 CPU 内核建模。仿真器将处理器的内存访问转换为事务级模型。开发者将系统内存建模为一个 RAM 阵列,所有模型的连接都通过一个大体上基于 ARM AHB(先进高性能总线)的精确事务通道和一个开发者在 USB 上松散建模的通道。

  调用该平台对软件性能参数的评估是一个分两步走的过程(图 1)。第一步,USB 栈运行在 ST20指令集仿真器上。这个过程生成一个追踪文件,它记录了所有的指令内存和数据内存访问,以及硬件启动的任何中断。第二步,有一个流量发生器对追踪文件进行语法分析,并在一个精确事务的通道上生成等效的事务级操作。

调用该平台对软件性能参数的评估是一个分两步走的过程


  两步走的评估过程体现出芯片设计的一般步骤。在第一步中,设计师将设计分解为独立的功能块,它们并行运行实现所需的应用功能。因此,第一个平台只包括功能模型,而没有参考时间。设计师用相同的功能块

0
0
(请您对文章做出评价)
1】【2】【3
加载中

对文章的评论

更多评论

剩余字数:  

相关在线研讨会

我要参加

汉高全套电子材料在手机制造业的应用

时间:2007-12-13 10:00:00-12:15:00
简介:本次在线研讨会主要讨论手机设计中各种胶粘剂的应用,包括结构胶、导电胶、导热胶、底部填充剂、COB、POP及ACP在可靠性方面的解…

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会