系统与设计
的意见

你几乎足够快吗?

快速的虚拟原型的关键因素来理解。

受欢迎程度

高中时我们班分为两个阵营:塞纳和迈克尔-舒马赫的粉丝。不管营地,真正的加热问题是司机或赛车更重要。多年来我失去联系,我不记得如果这些讨论得出结论。现在,25年后,让我试着参与稍微相似但希望更加平衡的调查:是什么造就了一个虚拟样机快?

我们应该清楚,在仿真期间快速赢得与虚拟样机是不够的。在早期虚拟样机的创建和支持广泛用例更重要的因素需要考虑。同时,虚拟样机的速度取决于其预期的用例。

  • 交互用例需要数以百计的迭代运行代码,编译、调试周期。
  • 回归数量的测试用例是有界的,可用机器的数量和可用的服务器时间。

此外,模拟所需的马力当然取决于系统的复杂性,需要模拟。下面是一个列表的关键技术因素,将针:

  • 优化单线程模拟性能
  • 应用并行仿真概念SystemC内核
  • 使用检查点策略以避免模拟运行
  • 使用硬件加速功能

优化单线程模拟性能
SystemC本质上是一个单线程应用程序和CPU周期是在内核或SystemC模型。概念(比如时间解耦,量子和直接内存访问(DMI)中所描述的TLM 2.0标准减少内核开销降到最低。这使得最大的影响与指令集模拟器(ISS)和用户的SystemC模块。编写优化SystemC代码需要良好的编码方法和编码勤奋。很难发现瓶颈就通过查看代码的一个关键工具,以改善性能是一个单线程模拟SystemC意识到分析器。一个好的分析器允许您监控参数和实时性能或内核激活数和深入SystemC模块或SystemC时间。我们看到即使是高级虚拟样机团队改善他们的平台性能2-5x只要能够定位和隔离他们的瓶颈。一个好的分析器可以让你收获显著的加速通过识别低挂水果。


SimSight分析器在Synopsys对此仿真器通常解锁2-5x加速

SystemC内核并行仿真的概念
并行仿真技术的基本思想是分配模拟到多个主机cpu。以下两种技术有助于产生良好的结果:

  1. 分区的虚拟样机为独立的子系统,经常在片外的自然边界接口。然后每个芯片运行作为一个单独的模拟和动态同步分离仿真环境负责的内核。根据分区和应用程序的性质这一技术可以产生一个线性加速。
  2. 自动映射计算密集的部分在一个单一的虚拟样机到不同的主机CPU核心。这样做是主要是为国际空间站,这是自然最计算密集的在虚拟样机。为此国际空间站需要启用。当这个选项产量最大的好处是高并行性的嵌入式软件上运行的国际空间站。


电路仿真的例子来管理同步的单独的虚拟原型和交流不同的主机上运行的核和多核分配模拟核到不同的主机内核。

检查点重新启动,避免模拟
检查点可以跳过仿真通过重新加载以前保存的虚拟样机的仿真状态。这是一个非常强大的方法故障注入用例,需要大量的时间来模拟初始故障注入点。这只能用于虚拟样机和软件运行期间不发生了变化。软件开发人员现在可以重新加载检查点和注入成千上万不同的错误模式。

硬件加速功能
赢得比赛左移位,原型设计团队往往面临着权衡决定从头开始开发一个SystemC模型的重用现有的遗留RTL代码。快速创建一个模型需要努力,重用RTL有巨大的联合仿真模拟速度惩罚。这些情况下混合硬件加速技术带来巨大的好处,现有RTL FPGA或模拟器上运行同步事务边界的虚拟样机。

那么是什么让一个虚拟样机快?这取决于用例。有了正确的投资,软件开发人员可以在他们的指尖和所有重要的技术加速在需要的地方。



留下一个回复


(注意:这个名字会显示公开)

Baidu