應對智能邊緣的軟件復雜性
如果技術能在數據產生的瞬間立即作出決策,會帶來怎樣的變化?這正是智能邊緣的核心潛力。智能邊緣存在于現實世界與數字世界的交匯處。在這里,設備將現實世界的現象轉化為可執行的數據和有價值的洞察,為高級駕駛員輔助系統(ADAS)、生命體征監測(VSM)和協作機器人引導等應用提供支持。未來,智能邊緣將釋放更大的潛能,重塑行業格局,提升生活品質,而軟件將成為這一變革的關鍵。
隨著技術不斷進步,產品上市時間的壓力加劇,軟件工程逐漸成為一項日益復雜的挑戰。為了充分發掘智能邊緣創新的潛力并使之蓬勃發展,軟件開發人員需要解決與嵌入式系統和軟件定義系統有關的相互交織的復雜難題。比如,融合了多種處理器特有功能的多核異構架構,或是由供應商、代理商和服務提供商構成的更龐大的底層業務生態系統。
復雜性就好比能量。不能創建,也不能銷毀,只能轉移到別處。當用戶發現產品或服務變得簡單時,其實是工程師和設計人員在供應鏈中使用了更高效、更可靠的工具與資源,以更加智慧的方式優化了底層機制。我們的愿景是以用戶期望的抽象程度(決定了用戶通過軟件所看到的系統細節程度)提供技術,然后以智能化方式與合作伙伴共同構建軟硬件,從而消除復雜性。
智能邊緣供應鏈中所有相互關聯的部分必須協同工作,以降低復雜性并實現最佳性能和效率。我們之所以使用“鏈”這個字,是因為流程中的每個環節都會影響下一個環節,一環扣一環,而且一個階段的延遲或失敗,會減緩開發速度,甚至導致整個流程停滯。鏈上的各個環節必須構成一個由相互關聯的工具和技術組成的生態系統,還要形成一個由活躍的貢獻者組成的技術社區,從而促進現代化的代碼管理和優化效率。我們必須確保生態系統不僅安全,而且易于訪問。
ADI的Sensinel?心肺管理(CPM)系統就具備了這種適應性。Sensinel設備是一種適合家庭使用的無創式、緊湊型可穿戴設備,能夠監測心肺生理數據,幫助護理團隊在早期遠程監測心力衰竭等慢性疾病。軟件會解析傳感器數據,以識別需要多加看護的患者。隨著系統收集的用戶數據越來越多,軟件和算法會不斷優化,從而更精準、高效地判斷哪些患者需要后續護理及最佳干預時間。
ADI的Sensinel CPM系統
隨著應用功能不斷擴展,軟件的規模和復雜性也不斷增加,對軟件工程師的開發效率提出了更高要求,用于驅動異構多核架構和智能邊緣應用。
17.6萬 vs 近4000萬
1994年,Linux發布,總共有176,250行代碼。
截至2024年,Linux的代碼總數已將近4000萬行。
開發人員利用開源技術來加速問題解決和軟件開發過程。開源技術提供的透明度與寬松的許可協議,使開發人員能夠在其他人的成果基礎上,通過增強、修改和定制代碼來滿足自己的需求,在已有成果的基礎上持續創新。這種協作方法不僅促進了創新和靈活性,還大幅減少了開發軟件所需的時間和精力。
然而,開源代碼的來源及其復雜的依賴關系可能帶來一定的安全風險。有時,這些復雜的依賴關系會讓不法分子有機可趁,插入惡意代碼。為了降低此類風險,業界采用多種安全措施,比如嚴格的代碼審查、自動安全掃描和使用可信的代碼倉庫。通過這些實踐,開源技術社區能夠在維護安全可靠的開發環境的同時,繼續蓬勃發展。
2007年,智能手機等諸多早期邊緣設備中采用的 ARM? CORTEX?-A9 處理器擁有約2600萬個晶體管。如今,ADI公司制造的智能邊緣器件擁有超過30億個晶體管。
SoC的集成方法利用了不同的架構的特有優勢,因此能夠優化能效比、減少延遲并提高數據吞吐量。然而,為SoC設計軟件往往伴隨著復雜性,不僅要平衡每個處理單元的需求,實現同步和動態功耗優化,還要保護數據完整性和單元之間的安全通信。隨著系統規模的不斷擴大,軟件必須具備良好的擴展性,否則就可能出現性能瓶頸。而要優化性能并實現出色的性能/能效比平衡,離不開精心的系統設計、先進的工具和深厚的技術知識。
為異構架構開發軟件可能相當復雜,需要廣泛的專業知識、工具和標準化,且往往超出單個公司的能力范圍。完善的生態系統能夠通過行業參與者之間的協作來促進標準化。得益于標準API、框架和工具,軟件能夠在不同平臺上高效運行,對于跨架構擴展應用至關重要。
生態系統內的參與者可以共同開發新技術、知識產權和最佳實踐。這有助于在軟件工具、開發技術和硬件優化層面促進創新,從而推動整個領域向前發展。這樣的生態系統能夠促進協作,降低開發復雜性,確保公司和開發人員能夠高效地構建、優化和擴展軟件。一個經過審慎選擇與妥善管理的生態系統,有助于大幅減少冗余產品和服務方面的支出,從而降低成本并加速成果落地。
隨著技術向多核、多架構硬件解決方案發展,當今的軟件工程正面臨著愈發復雜的挑戰。然而,面對這種復雜性,許多工程師仍使用一些老舊的工具、中間件和軟件開發套件(SDK)來應對這一復雜性,而這些傳統工具只適用于更為簡單的單核、單架構環境設計的。現代異構系統使用多種類型的處理器或內核來實現出色的性能/能效比平衡,但傳統平臺無法提供現代異構系統所需的開放、可擴展接口。
為了幫助解決日益增加的復雜性,嵌入式軟件工程師需要開放的工具和環境,這些工具不僅能夠針對多核系統提供全面的系統可視性,還具備靈活性,以適應不斷變化的開發需求。
下一代軟件源碼和編碼工具應能夠提高應用質量,改進開發流程,縮短產品上市時間,同時提高軟件開發人員的效率。為此,行業必須聚焦以下幾點:
投資開放標準和開源技術,以真正具有差異化的方式進行集中投資。
利用透明的軟件供應鏈和SBOM,加速可擴展的軟件開發。
專注于設計安全原則和實踐,從邊緣到核心安全,確保完整性和隱私保護。
構建開放的工具平臺,在設計時考慮到開發人員的需求,使開發、集成和測試更簡單、更快捷且更具可擴展性。
為了在今后獲得軟件定義技術所帶來的優勢,為人類與地球帶來福祉,我們必須解決硬件和軟件開發的復雜性,同時加快創新步伐。開發人員已準備好響應號召,但合適的工具和技術支持也必不可少。因此,行業必須圍繞開源、開放標準和協作式生態系統凝聚共識,促進高效、一致的投資。集體智慧與協同合作是應對當今挑戰、突破未來可能性的關鍵。
評論