開發自動駕駛 SoC 相當于讓三輛高速跑車從不同方向匯聚在同一個路口。每輛車都在一條任務關鍵的道路上,但駕駛員能否安全地通過十字路口而不會減速、停車或撞車?現在,不用汽車,想象三個相互沖突的設計要求在 SoC 設計的同一交叉點上匯聚:
1. 安全2. 近實時嵌入式性能3. 超級計算復雜性
開發自動駕駛技術對半導體行業來說是一個令人興奮的增長機會,它將吸引來自傳統和非傳統 SoC 設計團隊的許多開發人員。賭注很高,因為第一名的獲勝者將主導市場。第二名和第三名的選手可能能夠生存下來,但獲得第四名到第 20 名的公司將沒有太多值得慶祝的事情。
工程挑戰是將所有三個特性(安全性、性能和復雜性)同時集成到一個設備中。這些要求可能會以個人計算機、移動電話和數據中心系統沒有的方式困擾系統設計人員。自動駕駛芯片必須在經濟上可行,并滿足汽車 OEM 和監管機構的技術期望。
當前趨勢和 ISO 26262
自動駕駛系統中的安全和超級計算要求極其復雜,并為提供近實時性能帶來障礙。因此,如果僅通過軟件添加功能安全機制,性能將受到影響。
高級駕駛輔助系統 (ADAS) 的設計者曾經試圖通過創建更復雜的軟件來解決這些挑戰。這種方法對于自動駕駛來說是不可持續的,因為它會對系統延遲、處理帶寬和安全性產生不利影響。此外,一旦在現場部署軟件,升級和維護系統會產生更多的風險和成本。
幸運的是,ISO 26262 規范為 ADAS 設計的軟件和硬件開發提供了指南,同時為 CPU、內存控制器和片上互連添加了安全機制。
ISO 26262 規范支持開發更復雜的自動駕駛 SoC。這些系統使用多個異構硬件加速器實現神經網絡。這有助于更高效的視覺處理、傳感器融合和自動駕駛功能。
圖 1:當前的機器學習和 ADAS 芯片將算法處理拆分為多種硬件加速器類型,以優化處理效率。
機器學習驅動復雜性
在這里,要了解復雜性的程度,您必須首先考慮硬件工程師在創建功能安全的超級計算系統時面臨的挑戰。對于自動駕駛 SoC 設計,響應物理世界中不斷變化的條件是應對這一挑戰的基本要求。
好消息是物理世界存在于微秒時間尺度上,而計算世界則在納秒范圍內工作。壞消息是,與移動和 PC 領域不同,自動駕駛 SoC 必須執行一種稱為深度機器學習的人工智能。
為了避免依賴在復雜的物理世界中永遠無法工作的預編程算法方法,實現神經網絡的硬件架構正在成為實現深度機器學習的最佳方法之一。
機器學習需要多次計算才能為系統計算出有用的“答案”。為了在物理世界的時間預算內得到答案,需要對這些計算進行簡化、并行化和硬件加速。
硬件加速
自動駕駛硬件將通過將 SoC 劃分為執行特定算法任務的區域來驅動機器學習。它是通過優化和連接的處理節點完成的。這些處理節點是在神經網絡中充當神經元的自定義處理元素或硬件加速器。
圖 2:在現代機器學習系統中,更大份額的算法處理被配置在自定義硬件加速器上。
為了減少計算延遲,必須通過特定算法的硬件加速器在 SoC 架構中實現更大份額的機器學習處理。它有助于管理處理節點之間通信路徑中的延遲、帶寬和服務質量 (QoS)。
隨著硬件加速器數量的增加,實現自動駕駛的近實時性能變得越來越困難。因此,連接加速器的片上互連成為提高效率的關鍵組件。相比之下,由于芯片到芯片或服務器到服務器的通信,數據中心神經網絡可以承受相當多的延遲。
緩存一致性趨勢
除了低延遲要求之外,神經網絡和超級計算操作還需要處理節點之間的高帶寬通信,以保持它們的有效饋送。它允許盡可能快地完成信息的計算和共享。
共享信息的一種方法是將存儲器(通常以內部 SRAM 的形式)耦合到每個處理元件或子系統。然后將該內存用作輸出郵箱,為后續計算步驟提供輸入。隨著處理元素數量的增加,在軟件中管理這種類型的通信變得難以維護并且增加了延遲。
處于創新前沿的自動駕駛 SoC 設計團隊一直在采用異構緩存一致性。它是一種可擴展的方法,用于實現高帶寬和低延遲的片上通信,因為它簡化了軟件。
自動駕駛競賽正式開啟了 SoC 設計中硬件加速器的突出新時代。過去,主 CPU 或 CPU 集群是芯片上最重要的硬件塊。
今天,硬件加速器越來越受到重視,因為 SoC 架構師現在通過將復雜算法劃分為更小的計算來進行創新。并且這些計算可以通過硬件加速器和最好地連接和饋送該處理網絡的架構來更有效地處理。
功能安全
功能安全為自動駕駛 SoC 開發增加了另一層復雜性。SoC 將在一個方案中執行所有自動駕駛功能,該方案將檢測并在某些情況下糾正錯誤和故障。檢測和糾正故障需要額外的系統邏輯,這可能會竊取超級計算功能的處理能力,特別是如果它是在軟件中實現的。
設計團隊的關鍵是分析他們的系統,并根據各種故障的危害和風險實現基于硬件的故障檢測和修復能力。此外,它們可以補償純軟件故障檢測方法的復雜性。
圖 3:功能安全復制某些邏輯并比較結果以識別故障。
解決硬件故障將為 SoC 設計增加額外的邏輯。這將增加延遲和芯片面積,而這通常是滿足系統 QoS 和功耗要求的唯一方法。例如,SoC 互連單元復制可以為操作增加幾個時鐘周期的延遲,從而增加完成任務的納秒時間。
然而,在軟件中實現等效的功能安全機制不僅需要更多毫秒級的時間,而且還需要更多的功耗,尤其是對于任何片外 DRAM 訪問。
支持硬件開發團隊
要同時實現這些“油水相依”的要求,公司將需要功能安全、近實時嵌入式處理和高性能計算方面的專業知識。大多數公司可能擁有一兩個領域的知識,但不是全部三個。因此,他們必須在缺乏經驗的領域發展和招聘。
功能安全知識很難獲得。這是因為缺乏具有功能安全知識的工程師。許多專家可能不精通汽車行業必須制造的高度復雜的半導體類型。
至此,通往自動駕駛 SoC 的道路要經過開發者的執行辦公室。這些學科中的每一個都沒有足夠的技能可以從其他公司招聘,而且能夠將它們組合在一起的人就更少了。
該軟件將在自動駕駛時代引起媒體“熱議”,因為它的進入門檻比硬件開發低,更容易被投資者理解。然而,真正創新的是半導體開發商,他們設計了經過微調的定制硬件來執行復雜的軟件。
這些團隊已經創建了 ADAS 系統,為成功集成三層復雜性提供了模型:安全性、延遲和性能。這些趨勢為自動駕駛 SoC 的外觀提供了線索:為高效代碼執行而優化的緊密耦合的硬件-軟件設計;支持深度機器學習的緩存一致的 SoC 架構;和多個異構處理元素。
以及在不犧牲電源效率、性能和面積的情況下實現功能安全的智能方法。你準備好了嗎?啟動你的引擎,不要害怕停下來問路。
審核編輯:湯梓紅
評論
查看更多