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