生活随笔
收集整理的這篇文章主要介紹了
ARM在汽车电子电器架构的应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
整理自ARM中國FAE高級經理及技術專家丁先生在集微網的演講,侵刪。
該演講涵蓋了汽車電子電器架構的多個方面,整體包含的知識面非常廣。整個演講非常精彩,也是非常佩服丁先生在汽車電子電器架構及ARM在其中的應用的精彩闡述。
本人也是從事汽車電子方面的工作,遂整理了一下演講中的部分內容,和大家共享。
概要
經典汽車電子電器架構功能安全設計虛擬化設計信息安全自動駕駛芯片系統架構實時性設計應用場景
在每個部分中都有ARM IP在各設計中的應用
經典汽車電子電器架構
?分布式的域設計。
車載娛樂芯片子系統:
功能安全設計
安全島:
ASIL-D, 具有鎖步設計的處理器,通過檢測電路和帶ECC的總線來實現 兩份硬件電路不斷做實時比較,通過硬件比較器,相等時間內給定相同的輸入,得到的輸出一定是相同的(有限狀態機的特性)。并不是所有的IP內部子模塊都能通過上面的方法達到檢測的目的,需要在IP設計的時候,考慮FMEDA, FEDA獨立的電源電壓和時鐘域: 主控制器和相關邏輯需要有必要的冗余設計==》Lock Step.運行高安全等級的操作系統檢測手段:在線MBIST,LBIST,SBIST(Software BIST, 可以在R52的介紹里查找), 鎖步 MBIST:LBIST:SBIST: 儀表盤:
ASIL-B:單點錯誤檢測覆蓋率達到90%以上推薦和IVI操作系統進行隔離,擁有獨立的CPU和GPU。否則CPU需要支持SMP SMP, CCI:? 經過總線,所有的CPU看到對方的代碼都是同一份的,絕對不會因為有各自的緩存而看到不同的代碼,所有的數據和頁表的信息都可以保證是一致的,不需要軟件刷緩存的方法來實現。操作系統線程之間的遷移時互相對稱的。在SMP的前提下,跑hypervisor的時候,IVI和Cluster跑起來存在的問題: 如果CCI總線本身出現了硬件瞬時錯誤或者永久錯誤導致的地址或者其他的訪問失敗,無法告知軟件這個錯誤并采取措施。這樣,IVI和Cluster之間的干擾就無法排除。跑在虛擬機之上的Cluster,啟動時間可能無法達到要求如何做到IVI和Cluster之間更好的隔離操作系統本身最好具有一定的安全等級 Cortex-R52的功能安全設計案例
每個模塊做冗余設計:雙核鎖步(檢測瞬時錯誤),單點錯誤覆蓋率 Single Point Fault Metric > 99%。Dual Core Lock Step (影響:雙倍的面積)CPU內部的傳輸線: ECC校驗檢查永久錯誤:周期性軟件測試機制,系統上電跑LBIST和MBIST, 在線內存檢測機制FMEA/FMEDA報告:應用場景:RVC和Cluster
?虛擬化
硬件虛擬化子系統:比單純的軟件虛擬化消耗的性能明顯降低,且能夠做到軟件靈活。這在中控娛樂系統來說,是一個趨勢。 MMU:虛地址向實地址的轉換;實地址向物理地址的轉換。外設需要MMU來和CPU通過MMU(一級或者兩級)。推薦MMU600AE(Automotive Enhancement)虛擬化的軟件支持: ARM有支持硬件虛擬化的GPU,也有不支持硬件虛擬化的GPU。 如果GPU本身不支持硬件虛擬化,那么GPU如何共享支持不同操作系統的顯示需求呢? Hypervisor里有一個scheduler,例如有兩個Guest OS, 在Guest OS里面GPU跑非虛擬化的驅動。Guest OS并不知道其他Guest OS也使用了同一套GPU硬件。這樣就可以通過pass through模式(虛擬機的一種工作模式,和不運行虛擬機時的訪問是一樣的,權限和內存訪問通過配置MMU來實現),對于GPU來說性能損失很小。調度器擁有類似決策和仲裁的機制。GPU在渲染的時候,會到hypervisor中詢問調度器,是否可以進行渲染。調度器控制所有Guest OS對GPU的訪問權限。不同Guest通過時分復用的方式,對GPU進行操作
?信息安全
?汽車電子信息安全拓撲示例
?
?自動駕駛芯片系統架構
?
?
與信息娛樂域的最大不同:
更高的功能安全等級,需要做到ASIL-D。(兩個ASIL-B可以合成一個ASIL-D)場景覆蓋比信息娛樂域更多,因為可能涉及到發動機或者車身控制
ARM對應的IP:
Automotive Enhanced. A76AE, A65AE。多路的傳感器數據輸入并行處理,適合A65AE的應用。當數據處理完成后,需要同時處理最終結果,做決策,這是適合A76AE的應用場景。達到總體性能和效率的平衡 A65: 本身為網絡處理器而設計的。單核多線程,更高的并行處理能力。A76AE:單線程高性能的,適合運行大型App總線,中斷,GPU, MMU都做了Automotive Enhancement
實時性的要求和設計
操作的時間短在確定時間內完成操作
Cortex-R52如何保證實時性呢?
R52核心內部的TCM 緊耦合內存(Tightly-coupled memories <https://developer.arm.com/ip-products/processors/cortex-r/cortex-r52> )CPU流水線訪問這個TCM可能只需要0~1個時鐘周期。而且每個核心都有獨占的TCM,既能保證訪問周期確定又保證沒有其他核心的競爭,性能不受影響。可以把中斷代碼或者常用代碼放在片上TCM中,做到高性能且不受影響。
處理器外部的總線QoS架構
劃分優先級。高優先級的任務在運行時 ,內部的所有資源(buffer,仲裁,總線的內存控制器等)需要保證最高優先級。這樣在一定程度上能保證實時性第一點存在的問題:head-of-line blocking. 如果一個低優先級的任務占用了資源,那么高優先級任務需要等待低優先級任務執行完成,增加了高優先級任務的執行不確定性。 ARM通過Token設計來解決這個問題。CMN600總線中所有的資源在第一次傳輸時,確保發出一個Token值,賦予一個優先級。資源需要有相應的Token值,才能進行優先訪問。在任何訪問之前,相當于已經通過預設的方式保留了資源訪問的優先級。下一次一旦有高優先級任務進來,那么可以立刻進行傳輸或者中轉。片內的資源如Cache,進行等級劃分。
處理器本身的實時性優化方法
使用大頁表, 連續物理內存綁定任務至特定核心,避免切換(減少開銷)。使用輪詢代替中斷關鍵代碼和數據使用內部獨有的SRAM(保證訪問時間的確定性)減少內核與用戶空間切換(減少上下文切換的開銷),使用用戶態協議棧,文件系統和驅動啟用硬件支持的QoS(上文提到的總線的QoS機制)和相關機制使用緩存分區,Cache Stashing等機制(把CPU即將需要處理的數據直接放到處理器中一級或二級緩存,這樣CPU在輪詢的時候可以直接在cache中獲取數據)使用多類型交織訪問
中控典型應用場景
| 應用 | 分辨率/指標 | Layer | GPU |
| IVI | 4K60 | 5-8 | Mali-G77 MC4+顯示模塊 |
| Cluster | 1080p60 | 4-5 | Mali-G77 MC1+顯示模塊 |
| HUD | 1080p60 | 4 | Mali-G77 MC1+顯示模塊 |
| SVM | 4K60 | 5-8 | Mali-G77 MC4+顯示模塊+畸變矯正/G77 |
?雖然架構設計中不是最新的ARM IP,但是還是具有非常好的參考性。
?諸多細節還未完全理解,如有興趣建議觀看:http://zb.laoyaoba.com/watch/10196771
總結
以上是生活随笔為你收集整理的ARM在汽车电子电器架构的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。