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

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

除了多核加速器,我们还改进了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-style变量,脚本读取这些变量并使用这些值。但是,如果不阅读脚本的源代码和所有被调用的脚本,就无法找到可用的变量。

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

下面是一个截图,显示了使用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内部运行只需要几行代码,就可以将SystemC模型注册到Simics运行时系统中。

使用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安装带来了一个新的便利级别——使用风河安装程序,你所需要做的就是下载一个安装文件,然后它会反过来下载和安装产品的所有其他部分。用户不再需要知道他们应该下载的特定包,也不需要手动安装每个包。

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内核万岁