![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 在SoC设计中用SystemC虚拟平台预览USB的性能 | |||||
作者:Kshitiz … 文章来源:互联网 点击数: 更新时间:2007-2-26 ![]() |
|||||
|
Kshitiz Jain, Rohit Jindal, Bhuvan Middha 现在的程序员和系统架构师有比以往更多的软件可用于 SoC(单片系统)设计,但也面临着一个日益困扰他们的问题:如何在设计前期,在硅片拿到手以前评估和优化软件的性能。为解决这个问题,程序员们转向虚拟平台,这种平台采用软件来对目标硬件的架构和功能建模。 这种性能预估要求虚拟平台能够对实际硬件功能,包括处理器、缓存和系统内存、USB 外设、USB EHCI(扩展型主控制器接口),以及 USB 设备等,建立非常接近的模型。此外,还需要一个剖析工具来寻找软件栈中的功能热点,精确地预测出完成功能所需时间。开发人员用平台得到的结果,与理论预测值做对照调整,而平台也可以检验 USB 栈在实际硬件上实现性能的稳定性。另外,当开发人员修改软件栈时,平台还可以精确地反映出性能的变化。 在本例中,设计师想出一种评估 USB 系统软件栈性能的方法,该软件栈运行在嵌入机顶盒芯片中的 DVR(数字视频录像机)子系统中。DVR 含有一个录/放音、视频数据流的 USB 硬盘驱动器。USB 软件栈包括一个单线程 DVR 应用实例,它用驱动器完成一系列读、写操作。 功能平台非常详尽地模仿 DVR 硬件的运作,揭示出重要的时序参数。特别是该平台建立了一个 USB 主控制器、硬盘驱动器和系统内存与缓存的模型。平台有一个新颖的功能,它含有一个用 SystemC 写成的事务级模型,以此证明该方案能够用于建立评估复杂嵌入软件的虚拟平台。开发人员一般采用 RTL(寄存器传输级)模型建立系统硬件的模型,与事务级模型相比,这种方法的抽象层次较低。 平台设置
性能参数 在这个点上,可以调用 Flexperf 剖析工具来测量 CPU 花费在空闲线程上的时间。将输入追踪文件以及一个映像文件馈送给剖析工具,前者中包含程序计数器和相应的时间。映像文件定义了与空闲线程功能有关的起始和终止地址。从这些输入内容中,剖析工具可以计算出在空闲线程上花费的时间,接下来就可以从CPU时间中减去这些空闲时间,获得准确的CPU占用率数字。 还可以将通过USB的总数据量(包括控制、批量和协议信息)除以运行应用程序的总仿真时间,计算出通过USB的数据传输率。但是,USB2.0的480 Mbps速率只是一个理论最大值。由于协议开销问题加上从系统内存获取计划表和数据也要消耗时间,尤其是当EHCI缓存较小时,所以实际的数据速率要低得多。软件将数据提交给硬件的速率亦会限制数据的速率。 当你提供有内存流量信息的 Dinero开放源缓存仿真器时,它会生成有关指令、数据和总失中率的统计数字。从这个数据中,可以确定最佳的缓存配置。为了在ST20主处理器追踪文件中记录中断的次数,可以累计ST20回绕式处理器捕获的中断数。从这些基本性能数字可以得到一些其它参数,包括指令集仿真器报告的执行指令总数、CPU的执行时间(总时间减去空闲时间)、CPU的总指令执行时间,以及总CPU读、写时间。 本例中虚拟平台获得的性能结果是超出了本文讨论范围的数学推导。但是,这些推导的内容包含最大 SCSI 缓冲、读/写操作时传输的数据量、系统软件为中断服务花费的时间,以及处理与硬盘驱动器有关的 SCSI命令的时间等之间的关系。 使用虚拟平台,可以得到块的大小、总数据传输量、缓存参数、数据传输机制、栈尺寸、CPU占用,以及其它重要的性能数据等结果。通过虚拟平台的预测与硬件结合起来,可以极大地简化开发确定过程。 例如,虚拟平台表明增加块大小(即每次读、写操作时传输的数据量)可以降低CPU占用率(表1)。但是,块越大,降低的程度越少。平台亦预测CPU使用率会随数据传输量的增加而下降。平台作这些预测的前提是采用216 MHz的ST20-C2内核,10 ns缓存命中等待时间,160 ns 的单字内存访问时间,以及可在等待硬件中断前缓冲最多256kB数据。该平台亦假定缓存模型含有8kB、双向、组合式指令与数据缓存,每个有16B的块。另外,它还假定USB的传输速率为80 MB/s。
虽然虚拟平台得到了有希望的结果,但它仍与硬件的工作有不一致的地方。例如,ST20 处理器流量发生器的模型过于简单。它假定每条指令的执行阶段都是一个恒定的平均时间,但事实并不总是这样。此外,流量发生器建模时既无处理器流水线停顿也无任何流水线停顿的情况。不过,这些因素之间有些相互抵消,得到的结果还算准确。 现在的工作重点集中在建立更复杂平台和开发无缝的方法上,用于评估任何软件栈的性能。例如,正在进行的是虚拟平台与Flexperf这种剖析工具相结合,使软件编程人员和系统架构师有一个统一的方法,能够评估并增强嵌入式代码的性能。 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 电压调节技术用于SoC低功耗设… SOC与单片机应用技术的发展 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|