当前位置: 首页 > 科技观察

通过虚拟硬件原型加速边缘智能系统创新

时间:2023-03-19 00:43:08 科技观察

随着人工智能(AI)技术的飞速发展,我们看到了一个不争的现实,那就是AI的演进趋势必将走出数据中心,落地到数据中心。千家万户。深入各行各业,以智能赋能万物,注定了物联网、边缘计算和嵌入式系统一定是未来AI的主战场。传统的物联网和嵌入式系统开发部署方式给边缘智能的腾飞带来了巨大挑战:市场碎片化、软硬件强耦合、开发流程冗长等,难以进行敏捷的软件开发和应用创新。作为移动互联网时代智能手机芯片架构的领导者,Arm总结了推动市场发展的要素,推出了先进、现代的解决方案和工具链,让软件和硬件的发展齐头并进,加速智能化物联网、嵌入式和边缘智能系统创新。  支持智能手机的蓬勃发展,强大的App生态系统的核心技术之一就是主流应用商店,它使App开发者能够不受智能手机硬件的束缚,在虚拟硬件上独立采用最先进的敏捷软件开发方法。在原型上进行创新。但传统的嵌入式软件开发对硬件开发板的依赖性很强。将虚拟硬件原型设计引入物联网和嵌入式开发将是引爆边缘智能市场的关键。说到这里,就不得不提一下目前流行的Metaverse和DigitalTwins的概念。他们实际上是依靠对现实世界的虚拟化和数字化,创造出一个与现实世界映射交互、具有新的社会体系的虚拟世界。独特的数字化生活空间,让人与人之间的交流、新产品开发、工业控制,甚至教育培训变得更加轻松便捷。虚拟硬件原型设计与这些概念不谋而合。  虚拟原型设计和硬件设计  在设计更强大、更复杂的集成电路和芯片时,设计师在硬件和软件层面都面临着艰巨的任务。SoC架构师需要尝试对硬件组件(即IP块)进行早期评估,检查各种IP配置以降低技术风险,权衡设计方案并了解哪些元素最适合给定的系统要求,这对成功的影响很大直接影响SoC的商品化。此外,设计性能往往会受到设备上运行的软件的影响,那么如何在芯片发布前预测实际性能呢?  SoC设计者需要对系统进行建模,通过软件和硬件的系统级表示,??寻求估计组件在交互状态下的性能。虚拟样机是测试组件级和系统级元素的有效方法。芯片虚拟原型通常由用专用语言(如SystemC)编写的连接组件模型组成。使用标准语言可以将来自不同供应商的IP组件模型集成到同一个虚拟原型中,这更适合运行真实世界的软件工作负载。  早开始软件开发  鉴于现代边缘智能系统软件的复杂性和软硬件联合创新的需求,产品团队不可能等到硬件到位再开始软件开发.尽早开始软件开发有两个明显的优势:首先是硬件/软件接口的早期验证。软硬件平台的融合,有点像丑媳妇见公婆。由于相互不了解和不熟悉,经常会发生摩擦。不仅是软件,硬件系统在集成过程中也会报错。在设计过程的早期验证硬件/软件接口可以避免代价高昂的硬件返工并延迟进度。这就是虚拟原型设计派上用场的地方。硬件设计的快速功能模型不仅精炼到足以从软件程序员的角度模拟硬件,而且抽象到足以以大规模软件开发和调试所需的模型执行速度运行。现代功能模型可以在几秒钟内启动Linux,使您能够像将调试器直接连接到硬件一样快速地逐步执行代码。  功能模型来源于硬件规格,随着硬件规格的逐渐确定,可以迭代开发成虚拟原型,无需等到最终设计定型。一旦每个部分的设计完成,就可以构建模型,软件团队可以在最终设计完成之前迭代开发软件。由于硬件和软件团队会在产品的各个设计过程中协同工作,实现并行开发,验证工作可以更早开始,验证时间更充裕,覆盖面更广,必然会提高产品质量软件。  二是缩短上市时间。目前,复杂嵌入式系统的软件开发在时间和成本上都超过了硬件设计。在开始软件开发之前等待硬件就位并稳定下来可能会使产品开发时间延长12个月或更长时间。  从软件程序员的角度来看,准确快速的功能模型不仅适用于设备驱动程序等低级软件的早期开发,也适用于开发更高级别的软件堆栈,例如中间件和操作系统,甚至应用程序.  软件验证虚拟平台  软件栈越大越复杂,越难开发和测试。持续集成/持续交付(CI/CD)等现代软件开发方法有助于在软件开发早期识别缺陷,从而更容易确定缺陷发生的位置和时间。嵌入式应用程序的传统硬件目标不太适合持续集成过程,因为它们依赖于专门的基础设施,例如开发板、JTAG连接设备、专用机架以及冷却和远程复位硬件。虚拟平台可以部署在具有高弹性的云服务器上,利用先进的云计算服务和资源,或者大多数公司现有的服务器基础设施。这样的虚拟平台非常适合作为持续集成和自动化测试的沙箱环境。服务器硬件价格的下降与云中低成本、可扩展容量的可用性相结合,使得软件验证沙箱成为验证大型软件平台的最先进方法。  策略比较  虽然虚拟原型设计有很多优势,但其他方法也用于硬件/软件协同开发和早期软件开发。其中最常用的是硬件仿真和FPGA原型设计。  1。硬件仿真  硬件仿真是指在硬件仿真器上编译RTL设计,主要用于系统的功能验证。该仿真器比在RTL仿真器中运行RTL快几个数量级。虽然速度不足以支持大规模软件开发,但它足以运行真实的软件工作负载。该设计具有极佳的可见性,几乎所有信号都可以暴露,允许调试硬件/软件接口。  2。FPGA原型设计  FPGA原型设计是指在现场可编程门阵列(FPGA)上综合RTL设计。与仿真相比,FPGA速度快且相对便宜,但它们难以配置和调试。SoC设计通常比最大的FPGA还要大,因此需要将设计拆分为多个FPGA,这对速度和时序提出了挑战。FPGA比仿真器快几个数量级,使它们更适合软件开发。  3。虚拟原型设计  需要几乎完整的RTL才能使用FPGA或仿真解决方案加载和运行软件。虚拟原型为软件团队提供了执行许多软件任务的替代方案。虚拟原型不依赖于RTL,可以在RTL可用前几个月交付。  虽然不如基于硬件的解决方案那么详细,但仿真模型可提供更好的性能、灵活性和轻松的设计重新配置,以及出色的软件调试和分析功能。虚拟原型还特别适用于持续的软件集成任务,因为它们在计算场中的部署速度快且易于部署,可确保在开发过程中获得更好的软件质量。  4。混合技术  仿真、FPGA原型设计和虚拟原型设计各有利弊,因此大多数项目将混合使用这些技术。快速功能性虚拟原型与仿真相结合,提供了两全其美的性能,比单独的仿真器具有更快的性能,并提高了在虚拟模型上调试软件的可见性和灵活性。虚拟原型和FPGA也可以混合使用,其中需要定期更改的设计部分将存在于虚拟原型中,而设计的稳定部分将存在于FPGA中。  或者,还有一种混合解决方案,即纯虚拟原型设计,使用快速功能模型以非常高的速度运行到软件堆栈中的重要节点,然后切换到速??度较慢、更准确的模型进行性能分析。即在更快的模型上运行软件,直到到达重要节点,然后捕获架构的状态,这通常被称为检查点技术。  5.选择正确的开发路径  设计团队面临的最大挑战是了解所有可用的选项并充分利用它们。对于大多数项目来说,一种路径可能是不够的。一个明显的大问题是从哪里获得虚拟原型?IP供应商大多在设计IP时开发模型,以便更早地验证硬件/软件接口并更早地开始操作系统移植和驱动程序开发。然后,这些虚拟原型可能会作为软件开发的学习工具和平台向下游流向最终用户。此外,软件服务提供商还可以创建硅供应商IP模型或将来自多个供应商的IP集成到虚拟原型中,以出售给使用该IP的任何人。  结语  SoC项目在早期软件开发中遇到的挑战并不新鲜,但就像硬件的复杂性一样,它们的难度一直在增加。项目需要混合使用技术和解决方案来完成所有必需的任务。软件在早期系统设计中扮演着越来越重要的角色,尤其是在IP的选择和配置方面。随着虚拟化和管理程序被添加到嵌入式边缘智能产品中,软件变得越来越复杂,安全性与功能软件堆栈一样重要。  IP供应商更加专注于提供用于性能分析的周期精确模型和用于开发完整软件堆栈的快速功能模型。仿真和FPGA原型设计以及混合使用模型等辅助技术是IP供应商支持软件开发的另一种方式。没有万能的解决方案,因此项目团队需要紧跟最新技术,利用所有可能的解决方案,并利用软件的力量尽可能顺利地交付SoC。