一种采用虚拟系统原型实现系统级的多内核系统调试方法
度。ISS模型的主要特点仅在于精确的指令,也就是说它们能够如实地产生与制造芯片中处理器相同的结果运行代码。然而,处理器接口的逐个周期行为可能无法 匹配实际处理器内核的行为。
在开发多内核无线设备时ISS模型的缺点是一个大问题。由于对缓存和存储器的访问不具有周期精确 性,因此无法精确测量存储器性能,也无法进行详细的架构折衷。此外,针对SoC的剩余部分将ISS和硬件设计连接起来需要周期精确性,单凭指令精确性将极 大地限制可以执行的软硬件协同仿真的数量。而且不准确的时序将意味着处理器内核之间的交互操作有可能不匹配实际运行情况,从而导致芯片和硬件原型制造出来 以后还要做进一步的软件开发和反复调试。
使用独立的ISS模型会给调试带来很大的限制。由于单个模型之间缺少同步机制,在试 图调试故障测试案例时很难理解处理器之间是如何交互信息的。另外,由于内核周边环境中而不是内核本身内的时序问题会导致许多错误发生(如竞态条件和死 锁),因此使用单步执行调试根本无法捕获这些错误。
从传统角度看唯一的替代方案是针对处理器内核使用周期精确性仿真模型。这 种模型牺牲速度换取精度,由于运行速度太慢,仿真中只能执行关键代码中的一小部分。然而在单内核芯片中,周期精确模型允许详尽的测量,与硬件设计有更多的 交互,可提供精确调试所需的深度可观察性。只有这些模型被链接进一个公共验证环境、而且速度不重要的条件下多内核调试才可能获得相同的好处。
多内核无线设计师真正需要的解决方案需要具有很高的仿真速度、完全的周期精确以及支持不同处理器之间精确控制和交互调试的集成环境。而能够满足所有这些要求的唯一已知解决方案就是虚拟系统原型技术。
虚拟系统原型
虚 拟系统原型是一个基于软件仿真、时序精确的电子系统级(ESL)模型,首先使用于架构级,然后在整个设计周期内作为可执行的黄金参考模型。虚拟系统原型可 以包含周期精确、所执行的编译链接目标代码与实际硬件相同的虚拟处理器模型,因此可以准确地预测系统的实际行为。还可以增加总线、外围器件和其它硬件设计 部分的周期精确模型,以便虚拟系统原型能够为多内核无线SoC的完整行为建模。
虚拟系统原型通过混合和匹配硬件和软件部分实施架构开发。针对实际行为建模的精确测量可以帮助系统架构师在开发过程早期进行精确的软硬件折衷。当建立最初的系统架构模型后,虚拟系统原型就能成为可执行的系统规范来进一步推进具体软硬件实现的并行开发。
图1 给出了与其它基于软件方法相比之下的虚拟系统原型中处理器模型的性能。由于可以同时提供高速和周期精确性,虚拟系统原型在SoC开发中扮演着非常重要的角 色。而且虚拟系统原型可以运行在标准PC平台之上,因此它们能够很容易地发布给系统架构师、软件工程师和硬件设计师,甚至在地理上分散的团队成员。
在 本例中,为了实现虚拟系统原型的高效仿真,VaST系统技术公司同时提供了模型和基础架构。VaST仿真内核能够在包括处理器内核、总线和外围器件在内的 各个模块间实现精确的同步式交互,同时还能促进与第三方调试器的透明通信。由于能够执行完整的系统级单步调试,因此能为调试提供时序精确性以匹配实际的配 置。
多内核调试任何多内核SoC设计都会面临一些常见的调试挑战。由于多处理器和外围器件之间存在复杂交互,因此有许多通信链接需要深层次的观察和调试才能确保生成高质量的软件。
对 于非常依赖于通过存储器进行同步的设计来说,常见的缺陷包括不正确的存储器访问仲裁和不希望的数据差错。一些其它系统通过专用主机端口进行直接通信,这是 管理通信的一种方便有效的方式。采用这种方法的系统常会发生同步问题,如果没有仔细进行设计和验证,可能会造成系统中断甚至死锁,这对调试来说是也是一个 艰巨的挑战。
目前的关键是要能精确地评估各项系统性能、调试所有缺陷以便通过修改架构或实现纠正这些缺陷。典型问题与总线宽度以及由于大业务量引起的时延有关,这二方面问题都是语音分析和综合类的实时应用所特有的,因为实时应用需要获得性能的保证。
总之,在无线SoC验证期间必须调试和解决的典型问题有:
* 共享存储器应用
。数据混乱
。竟态条件
* 直接通信链路
。死锁
。中断
。缺输入
* 处理器性能
。缓存
。管线中断
。缺输入
* 系统总线性能
。拥塞
* 外围器件性能
。时延
通 过提供综合的验证环境以及能够快速执行实际代码的一致性处理器模型,虚拟系统原型能使所有这些问题的调试变得更加容易。与其它基于软件的方法相比,虚拟系 统原型能够更加
- FPGA系统设计原则和技巧之:FPGA系统设计的3种常用IP模块(06-05)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)