

SIGNALS+ 在线快讯订阅
持续关注Signals+,了解有关连接、数字健康、电气化和智能工业的最新见解、信息和想法并加以利用。
应对智能边缘的软件复杂性
如果技术能在数据产生的瞬间立即作出决策,会带来怎样的变化?这正是智能边缘的核心潜力。智能边缘存在于现实世界与数字世界的交汇处。在这里,设备将现实世界的现象转化为可执行的数据和有价值的洞察,为高级驾驶员辅助系统(ADAS)、生命体征监测(VSM)和协作机器人引导等应用提供支持。未来,智能边缘将释放更大的潜能,重塑行业格局,提升生活品质,而软件将成为这一变革的关键。
随着技术不断进步,产品上市时间的压力加剧,软件工程逐渐成为一项日益复杂的挑战。
为了充分发掘智能边缘创新的潜力并使之蓬勃发展,软件开发人员需要解决与嵌入式系统和软件定义系统有关的相互交织的复杂难题。比如,融合了多种处理器特有功能的多核异构架构,或是由供应商、代理商和服务提供商构成的更庞大的底层业务生态系统。
复杂性就好比能量。不能创建,也不能销毁,只能转移到别处。当用户发现产品或服务变得简单时,其实是工程师和设计人员在供应链中使用了更高效、更可靠的工具与资源,以更加智慧的方式优化了底层机制。我们的愿景是以用户期望的抽象程度(决定了用户通过软件所看到的系统细节程度)提供技术,然后以智能化方式与合作伙伴共同构建软硬件,从而消除复杂性。
智能边缘供应链中所有相互关联的部分必须协同工作,以降低复杂性并实现最佳性能和效率。我们之所以使用“链”这个字,是因为流程中的每个环节都会影响下一个环节,一环扣一环,而且一个阶段的延迟或失败,会减缓开发速度,甚至导致整个流程停滞。链上的各个环节必须构成一个由相互关联的工具和技术组成的生态系统,还要形成一个由活跃的贡献者组成的技术社区,从而促进现代化的代码管理和优化效率。我们必须确保生态系统不仅安全,而且易于访问。
位于智能边缘的软件
ADI的Sensinel™心肺管理(CPM)系统就具备了这种适应性。Sensinel设备是一种适合家庭使用的无创式、紧凑型可穿戴设备,能够监测心肺生理数据,帮助护理团队在早期远程监测心力衰竭等慢性疾病。软件会解析传感器数据,以识别需要多加看护的患者。随着系统收集的用户数据越来越多,软件和算法会不断优化,从而更精准、高效地判断哪些患者需要后续护理及最佳干预时间。

1994年,Linux发布,总共有176,250行代码。1
截至2024年,Linux的代码总数已将近4000万行。2
开发人员利用开源技术来加速问题解决和软件开发过程。开源技术提供的透明度与宽松的许可协议,使开发人员能够在其他人的成果基础上,通过增强、修改和定制代码来满足自己的需求,在已有成果的基础上持续创新。这种协作方法不仅促进了创新和灵活性,还大幅减少了开发软件所需的时间和精力。
然而,开源代码的来源及其复杂的依赖关系可能带来一定的安全风险。有时,这些复杂的依赖关系会让不法分子有机可趁,插入恶意代码。为了降低此类风险,业界采用多种安全措施,比如严格的代码审查、自动安全扫描和使用可信的代码仓库。通过这些实践,开源技术社区能够在维护安全可靠的开发环境的同时,继续蓬勃发展。
复杂的硬件需要复杂的软件
2007年,智能手机等诸多早期边缘设备中采用的 ARM® CORTEX®-A9 处理器拥有约2600万个晶体管 3 。如今,ADI公司制造的智能边缘器件拥有超过30亿个晶体管。
SoC的集成方法利用了不同的架构的特有优势,因此能够优化能效比、减少延迟并提高数据吞吐量。然而,为SoC设计软件往往伴随着复杂性,不仅要平衡每个处理单元的需求,实现同步和动态功耗优化,还要保护数据完整性和单元之间的安全通信。随着系统规模的不断扩大,软件必须具备良好的扩展性,否则就可能出现性能瓶颈。而要优化性能并实现出色的性能/能效比平衡,离不开精心的系统设计、先进的工具和深厚的技术知识。
以底层生态系统为基础
为异构架构开发软件可能相当复杂,需要广泛的专业知识、工具和标准化,且往往超出单个公司的能力范围。完善的生态系统能够通过行业参与者之间的协作来促进标准化。得益于标准API、框架和工具,软件能够在不同平台上高效运行,对于跨架构扩展应用至关重要。
生态系统内的参与者可以共同开发新技术、知识产权和最佳实践。这有助于在软件工具、开发技术和硬件优化层面促进创新,从而推动整个领域向前发展。这样的生态系统能够促进协作,降低开发复杂性,确保公司和开发人员能够高效地构建、优化和扩展软件。一个经过审慎选择与妥善管理的生态系统,有助于大幅减少冗余产品和服务方面的支出,从而降低成本并加速成果落地。
应对软件开发环境中的复杂性
随着技术向多核、多架构硬件解决方案发展,当今的软件工程正面临着愈发复杂的挑战。然而,面对这种复杂性,许多工程师仍使用一些老旧的工具、中间件和软件开发套件(SDK)来应对这一复杂性,而这些传统工具只适用于更为简单的单核、单架构环境设计的。现代异构系统使用多种类型的处理器或内核来实现出色的性能/能效比平衡,但传统平台无法提供现代异构系统所需的开放、可扩展接口。
为了帮助解决日益增加的复杂性,嵌入式软件工程师需要开放的工具和环境,这些工具不仅能够针对多核系统提供全面的系统可视性,还具备灵活性,以适应不断变化的开发需求。
下一代软件工具
下一代软件源码和编码工具应能够提高应用质量,改进开发流程,缩短产品上市时间,同时提高软件开发人员的效率。为此,行业必须聚焦以下几点:
- 投资开放标准和开源技术,以真正具有差异化的方式进行集中投资。
- 利用透明的软件供应链和SBOM,加速可扩展的软件开发。
- 专注于设计安全原则和实践,从边缘到核心安全,确保完整性和隐私保护。
- 构建开放的工具平台,在设计时考虑到开发人员的需求,使开发、集成和测试更简单、更快捷且更具可扩展性。
驾驭复杂性,共创美好未来
为了在今后获得软件定义技术所带来的优势,为人类与地球带来福祉,我们必须解决硬件和软件开发的复杂性,同时加快创新步伐。开发人员已准备好响应号召,但合适的工具和技术支持也必不可少。因此,行业必须围绕开源、开放标准和协作式生态系统凝聚共识,促进高效、一致的投资。集体智慧与协同合作是应对当今挑战、突破未来可能性的关键。

参考文献
1 David Hayward,“The History of Linux: How Time has Shaped the Penguin”,TechRadar,2012年11月
2 Dave McKay,“What Is the Linux Kernel, and Why Does It Matter?”,How-To-Geek,2024年11月
3 “A History of Microprocessor Transistor Count, 1971- 2013”,The Wagner Consulting Group,2013年