2015年6月29日, Eclipse

《模拟人生5》在此——比以往更加平行

由雅各布Engblom

jakob-engblom-intro-picture

下一个主要释放西米奇在这儿。SIMICS 5.不是SIMICS 5.0,但SIMICS 5.计数小数越来越旧,我们的计算机科学家伙更喜欢我们的数字作为整数,而不是浮点。无论编号如何,我们都有一些很棒的新闻。其中的首席是新的多核加速器功能,使得这种释放在Simics历史中最平行,但我们也有很多其他新闻,解决了更好的访问,更自动化和更多的协作。

多芯加速器

Simics 5引入了多核加速器,其中Simics可以使用多核主机来模拟紧密耦合的多核或多处理器目标。自2008年推出Simics 4.0以来,Simics已经能够在多个主机内模拟多个离散目标机器或机架,我们称之为这个功能多机加速器它仍然是Simics性能技术套件的一部分。Simics 5将其引入了逻辑上的下一步,即拆分电路板和soc以实现并行执行多芯加速器

mca-1

我们将在以后的博客文章中更详细地讨论多核加速器,但可以肯定的是,它似乎可以很好地适应计算密集型工作负载,而且它也为其他类型的工作负载(如操作系统引导)提供了有用的加速。

除了多核加速器,我们还改进了Simics OS感知的性能。在保留现有功能的同时,由操作系统感知驱动的Simics Analyzer功能的性能将得到改善,特别是对于具有许多进程和许多任务切换的系统。

提高性能对Simics用户来说总是很重要的,因为它决定了什么样的软件负载可以在交互式使用、自动测试或连续集成周转时间给定的时间框架内有效地在模拟中运行。

检查点服务器-改进协作

检查点服务器是一种新的协作工具,可以帮助用户以简单、可靠和有效的方式交换Simics检查点。到目前为止,用户必须自己收集运行检查点所需的文件,并通过网络文件共享或其他机制共享检查点。使用检查点服务器使协作更加容易,因为共享检查点就像将服务器上的检查点的URL发送给接收方一样简单。

下面是它如何工作的一个例子:

checkpoint-server-1

CheckPoint Server和Client负责将检查站(上图中的R)及其所有先决条件检查点和磁盘映像中的接收器机器进行了处理。如果需要在接收端的某些先前的检查点或磁盘映像已经到位,则不会再次下载。因此,仅传输和存储最小数据量,加速过程。这种机制利用了Simics检查点的固有增量性质 - 插图中的P和R仅存储自己和以前的状态之间的差异。这是根本性地减少了需要存储和传输的数据量。

检查点服务器的另一个好处是,存储在服务器上的Simics检查点具有惟一的ID和URL。这意味着我们可以参考漏洞跟踪系统中的检查点,并通过电子邮件将其发送出去。它真正实现了协作和我在前面展示的反馈循环关于持续集成的博客文章

故障注射 - 自动化艰难测试用例

一般来说,故障注入是Simics和仿真平台的一个非常强大的功能(关于故障注入和Simics的更多信息,请参阅以前的一些博客文章:1,2,3.,4)。SIMICS 5引入了一个新的框架,使得更容易创建支持记录,重放,重复性和反向调试的故障注射器,并使用户更容易发现并将故障注射器应用于其系统。

新的故障注入框架对如何编写故障注入器、如何将它们附加到系统以及如何启用和禁用实际故障进行了标准化。以前,错误通常是通过命令行脚本和Python的混合实现的,以特定于每种情况的特殊方式实现。在新的框架中,故障注入器应该更加规则,并且统一地支持一些特性,比如记录注入的故障以便精确回放。

脚本参数-更好的自动化和用户界面

Simics目标系统设置过程得到了改进,增加了一种方法,可以显式地向Simics脚本声明可用的定制参数。到目前为止,您将设置Simics命令行变量来定制脚本的行为,而在查找可用参数及其含义方面没有太多帮助。它的工作方式类似于Unix shell脚本——用户或另一个脚本将设置$x风格的变量,脚本将读取它们并使用这些值。但是,如果不读取脚本和所调用的所有脚本的源代码,就无法找到可用的变量。

在新的系统中,参数具有名称、文档和类型,这使得在使用参数之前可以对参数进行类型检查以确保其正确性。当从命令行和Eclipse中启动Simics时,可以查询和设置参数。

下面是一个屏幕截图,显示了VxWorks 7的QSP ARM系统的一些可用参数。注意使用组来减少参数的混乱,以及所示的所选参数的类型和文档。

simics-5-params

建模改进——工作流和模型访问之间的协作

《模拟人生5》推出了新版本西米奇SystemC图书馆,这是一种集成SystemC模型与Simics的全新方式。SystemC库使得在Simics中运行现有的SystemC和SystemC tlm -2兼容的模型成为可能,使用Simics命令行和Eclipse GUI来检查和控制模型。系统模型通常使用Simics指令集模拟器和板模型构建,与特定硬件设备的SystemC模型相接口——包括使用周期精确和at风格的SystemC模型。

SystemC库提供了一组随时可用的“垫圈”,提供了一种向Simics框架公开SystemC接口的方法,而无需在Simics或SystemC端编写任何转换代码。使SystemC模型在Simics内运行只需几行代码,这些代码与向Simics运行时系统注册SystemC模型有关。

使用Systemc的Simics的常用情况是使用SIMICS提供一个平台的快速模型,而Systemc用于编写某些硬件的详细定时型号。新的Systemc库使得能够更轻松地支持这种模拟器集成和混合级设置,使硬件设计和验证中的任务有用。

SIMICS 5提供了改进的SIMICS和SIMICS模型调试。调试Simics进程在Eclipse和命令行中工作。使用自定义版本的GDB,有调试器支持SIMICS DML,包括检查DML变量的类型和值以及设置断点,并通过DML源代码汇总。一如既往,调试模拟支持用C和C ++编写的模型和扩展。使用Pydev支持Python代码调试。下面的屏幕截图显示了在Eclipse中调试Simics DML模型的示例。

2015-06-05-DML-Debugger-In-Eclipse

新安装程序

从Simics 5开始,Simics安装将使用所有其他风河产品使用的风河安装程序。这为Simics的安装带来了一个新的便利水平——对于Wind River安装程序,您所需要做的就是下载一个安装程序文件,然后依次下载和安装该产品的所有其他部分。用户不再需要知道他们应该下载的特定软件包,也不需要手动安装每个软件包。

simics-5-installer

Wind River安装程序也完全支持离线安装,因为我们知道我们的客户经常需要能够下载并安装Simics到真正的离线安装程序中。

Eclipse GUI的改进

Simics Eclipse已更新为Eclipse 4.4,Simics Eclipse现在具有日志视图,显示来自模拟目标系统的日志消息。这使得更容易仔细阅读Simics在运行期间发出的日志消息,并保持Simics命令行界面交互清洁器,如下屏幕截图所示。在结构化表中显示时,也更容易读取日志。

log-view-1

概括

Simics 5建立在Simics现有特性集的基础上,改进了性能,使Simics更容易安装和使用,并添加了协作和自动化特性。我们增加了一些特性,使Simics更容易获得价值,特别是支持敏捷方法和持续实践。

以前的使用VirtIO虚拟化存储
下一个新LTS内核万岁