DevOps与模拟仿真如何帮您解决硬件问题

如果您是从事智能边缘开发,那么您的硬件就会成为关键问题。好消息则是模拟仿真工具可以解决这些问题。这篇博文将探讨硬件可能造成问题的四种方式,以及模拟仿真工具如何帮您解决问题。

Simics Simulates Systems

开发生命周期瓶颈

比如说,设计团队已经确定,您正在设计的设备或系统最适合采用的处理器/操作系统组合中包含还没有上市的硬件部件,或者这些硬件虽然已经上市但成本太高,无法让每个团队成员都同时使用。对于这些硬件部件,整个项目团队嗷嗷待哺,翘首以盼——有点像您已经拥有了一辆豪华跑车,但它只能使用某种稀有的燃料油,您目前在任何地方都找不到。

也许您可以得到相似的代用品,勉强满足正在开发的系统。然而,我们的许多客户都是制造关键应用设备,可能是需要准确无误地执行100多万次任务的工业机器人,也可能是经常将数百名乘客从这座城市安全运送到那座城市的飞机。这些应用场景是绝对不能允许“凑合”的!

精度与速度

已经有些开发团队使用某种形式的模拟或仿真来解决缺少硬件部件的问题。在选择仿真模型时,有些人会看到精度和速度之间的光谱,可以在两者之间进行游走权衡。我认为事情没那么简单。

应用场景对仿真模型的精度有着特定的要求。例如,如果您正在开发基于Intel®的特定SoC芯片,而您无法获得这款芯片,就可以在仿真x86系统上进行开发和测试,或者在相似设备上进行较普通的x86开发。您可能会发现一些缺陷,或者错误地认为您的设计是可靠的——一旦您能在真实的电路板上进行开发,很可能发现以前做的工作都白费了。

如果您想对您的设计进行微调,或者围绕您的解决方案用实际设备和外围设备来构建复杂的逻辑,并尽早开始测试,那么在开发早期就拥有一套高度逼真的模型,并将其集成到DevOps流水线中,这才是更好的选择。

通过更清晰的描述,您可以在测试中获得更高的准确性,并对结果有更强的信心。如果您拥有一套80%通过率的低精度仿真模型,这会让您有怎样的感觉?再设想如果您拥有更高精度的仿真模型,您对80%的通过率的感觉就完全不同了。最终的底线是,DevOps流水线中的仿真模拟越精确,您对代码的信心就越高,您的软件发布准备也会更加完备。

在准备认证时,这种精度同样很重要。虽然在大多数情况下您不能使用仿真模型进行实际认证,但您还是可以在实际认证之前的测试中使用模拟仿真工具,以更高的置信度、更快的速度为认证做好准备。

无损测试

在这方面模拟仿真技术带来的好处非常明显。虽然您可能无法使用模拟技术进行实际认证,但在准备过程中,您需要查找所有可能的漏洞。您需要了解当您的设备面临多种压力的情况下会发生什么事情。问题是,在不损坏实验室、不破坏实际设备的情况下,如何进行压力测试?如果您必须反复测试设备甚至摧毁它以便发现所有漏洞,那么这将变得非常昂贵,更不用说潜在的危险了。

通过使用模拟仿真工具,您可以扩展DevOps实践的价值,从而加快认证速度,同时大幅削减硬件实验室的成本。通过采用预先模拟技术,您几乎可以对无穷无尽的场景组合进行测试,测试的次数也几乎是无穷无尽。您不需要更换硬件、重新布线或重新配置,只需直接点击重置、修改测试场景,然后再次执行即可。您甚至可以在夜间将其设置为自动运行,然后在第二天早上登录观察运行结果。

一台还是多台设备

在一台设备上设置运行测试是一件事。如果您正在构建包括一群设备的系统,那就是另一回事了!如果每个设备都将处于不同的环境中,或者需要执行不同的操作,但仍然联网或甚至完全依赖于网络,又该怎么办?如果用几十台、几百台或上千台设备建立一个实验环境,在其中运行测试肯定更不容易。有一家企业曾将所有测试设备连接到他们的网络中,跨越公司的整个园区。虽然这是可以做到的,但是既痛苦又昂贵。您必须购买所有设备,然后花时间让所有设备实现网络互连。即便您的设备不是散布于办公室的各个角落,而只是在一个实验室里,那同样会到处都是电线电缆。环境混乱是真正的挑战。

那么,一旦您建立了实体实验室,当您需要进行更改时,DevOps流水线会发生什么变化?在单一盒子上测试一段代码可能已经很有挑战性,但如果您在网络环境中工作,挑战就远不止于此。您需要花费大量的时间在将要部署的环境中测试每一部分硬件。

速度是另一个问题。当您面对着包含多个组件的物理测试实验室,您实际完成一次测试需要多久的时间?如果您需要非常频繁地进行部署,那么您真的可以每月、每周、每天进行多次测试吗?

模拟仿真技术允许您使用任意多个设备来设置完整的环境,不受任何限制——无论是一台设备还是1000台设备。一旦设置了环境,就可以很容易地添加其他设备并根据需要修改配置。如果要测试新的配置或变量,也没有问题。想要返回到原始配置吗?这非常容易!无需到隔壁房间去弄清楚哪根电线连接到哪台设备。而且,通过对所有模型进行模拟仿真,您可以更加频繁地进行测试,这将提高测试的信心,进而提高产品的质量。

所以,再次强调:如果您是从事智能边缘开发,那么您的硬件就会成为关键问题。好消息则是模拟仿真可以解决这些问题!

正如您所看到的,可以在物理设备上进行测试,但有很多因素告诉您——这不是最佳的方法!如果您依赖物理硬件,可能会增加部署成本和时间,同时降低信心和质量。硬件可用性造成的瓶颈不仅会拖延完成日期,同时也会限制您的全面测试能力。上市时间延迟可能会让竞争对手捷足先登,也会导致客户不满意。同时,在项目完成之前,没有给自己足够的时间进行测试,这会增加您的风险,不能交付满足客户需求的产品。

在决定仿真模型时,注重速度而精度,这很可能会降低您的交付能力。如果您采用低精度模型,就无法获得可以信赖的测试结果,最终需要做更多的工作。

无损测试的意义不言自明。每次拆解您的硬件,就会抬高您的成本。每次添加设备就要测试更多设备,这都会增加成本。其中不仅仅是设备成本,连接和管理正在测试的物理网络也会增加成本。

相比之下,采用Simics Simulation,就可以立即开始工作,而且从一开始就采用高精度模型。您无需等待供应商提供硬件,也免除了工程师因为没有硬件而等待的时间。从一开始就采用高精度模型,让您在项目截止日期前有足够的时间运行所需的全部测试。让这些测试实现自动化,每项更改都会直接反馈到您的DevOps流水线中,从而允许您根据需要随时进行部署。

如果一个模拟模型被破坏了,只需按下按钮,就会立即重新创建起来。更有意义的是,可以自动设置并再次运行,这样您就可以直接查看结果。

您需要测试网络吗?添加任意数量的组件,这基本上是复制粘贴之类的简单操作。根据您的应用场景,您甚至可以连接到其他网络或物理设备,并将其包括在测试工作中。