近日,中央計算架構委員會組織了一次年中團建,邀請各分委會的兄弟們來火焰山避暑,順便聊聊汽車下一代中央計算架構的實施進展。
首先登場的是趾高氣揚的SOC兄弟,還沒等進門,就開始喊道:外面傳感器是越來越多,數據量也是越來越大,還都想把原始數據送過來;我把拜把子兄弟都喊過來幫忙了,可高達Gbps級別的數據,我該如何與拜把子兄弟們實時交互信息呢?
接著登場的是大腹便便的存儲兄弟,好不容易坐穩(wěn),一臉愁容的說道:各位看我體型也能猜出我甜蜜的煩惱了吧,什么高精地圖數據,外部傳感器數據,內部智能座艙數據全都需要我存儲,存慢了就背鍋,誰有什么好方法讓SOC給我的數據傳的快點呀。
其他小弟默默無語,兩位大佬的問題不解決,中央計算架構似乎很難有所進展,而兩位大佬問題的共同點就是:如何解決下一代中央計算架構下的片內高速實時通信需求。業(yè)內給出的一種解決方案就是PCIE。
PCIE簡介
2001年初,Intel提出要采用新一代的總線技術來連接內部多種芯片,并取代當時使用的PCI總線,并稱之為第三代輸入輸出技術(3GIO技術)。2001底,雷厲風行的Intel就聯合AMD、DELL、IBM等20多家業(yè)內主導公司開始起草新技術的規(guī)范,并于2002年完成,這種新的總線標準對外正式命名為PCI Express(PCIE/PCI-E)。
PCIE(Peripheral Component Interconnect Express)是一種全雙工、端到端、串行、高速可擴展通信總線標準。
全雙工,是指允許設備在同一時刻,既可以發(fā)送數據也可以接收數據。這就好比一條雙向車道,南來的北往的互不干擾。而實現總線上數據發(fā)送或接收的物理介質是一對差分線,接收端通過比較兩根線上信號的差值,來判斷發(fā)送端發(fā)送的是“邏輯0”還是“邏輯1”。采用差分信號傳輸,可以極大提高抗干擾能力,從而大幅提升傳輸頻率。而這樣的兩對發(fā)送和接收組成的一個差分回路(總共4條線),被稱為1xLane,如圖1所示。
圖1 1xLane結構示意圖
端到端,指的是一條PCIE鏈路(Link)兩端只能各連接一個設備,這兩個設備互為數據的發(fā)送端和接收端,如圖2的設備A和設備B。而一條Link可以由多條上文介紹的Lane組成,這就好比雙向道路中,每一向道路中又可以包含多條車道。常見的Lane有x1,x2,x4,x8,x16,x32等。
圖2 一條PCIE鏈路
串行,數據一位一位的依次傳輸,每一位占據一個固定的時間長度。有點電子學基礎的朋友可能要問,為什么不采用并行方式呢,一個固定時間長度,能同時傳輸8/16/32bit…,傳輸速率不是更快嗎?巧了,PCIE的眾多總線前輩們采用的也的確是并行方式。
采用并行的方式,數據通常在公共時鐘周期的第一個上升沿將數據發(fā)送出去,數據通過傳輸介質到達接收端,接收端在公共時鐘周期的第二個上升沿對數據進行采集,發(fā)送和接收正好經歷一個公共時鐘周期。也就說在這一個公共時鐘周期內,發(fā)送端的發(fā)送數據必須保持不變,以保證接收端可以正確的采樣。
在并行方式下,公共時鐘周期必須大于數據在傳輸介質中的傳輸時間(數據從發(fā)送端到接收端的時間),否則也將無法正確采樣。而并行方式中有幾十根數據線,要遵循木桶原理,即保證數據傳輸最慢的那根數據線滿足公共時鐘周期,這也是為什么高速并行總線需要做等長處理。
所以并行方式要想提高傳輸速率,必須不斷提高時鐘頻率。但是受限于傳輸時間,時鐘頻率不可能非常高。同時隨著頻率越來越高,并行的連線相互干擾異常嚴重,已經到了不可跨越的程度。再加上時鐘相位偏移等因素,導致采用并行方式并不能滿足越來越高的數據傳輸速率要求。
而采用串行的方式便可完美解決上述問題,時鐘信號和數據信號一同編碼在同一數據流中,數據流一位一位的傳輸,接收端從數據流中恢復時鐘信息。由于沒有時鐘線,也就不存在時鐘相位偏移。再加上數據包分解、標記和重組技術的進步,使得串行傳輸數據的速度可以越來越快。
高速,PCIE目前已經正式發(fā)布6個標準版本,最新的為PCIE 6.0,其傳輸速率基本上遵循了下一代比上一代翻倍的定律。我們首先以PCIE 1.0來舉例介紹下傳輸速率與我們更常用的帶寬單位之間的關系。
PCIE標準中用GT/s(GigaTransfers per second,一秒內電位變化的次數)表示傳輸速率,而一次電位變化從數據角度來說就相當于傳輸了一個Bit。但是PCIE的電位變化并不全都用來傳輸有效數據,里面還包含了時鐘信號。PICE 1.0采用的8/10b編碼,就包含了2位時鐘信號,這意味著傳輸8位有效數據要經歷10次電位變化。(注:PCIE 3.0以前使用8/10b編碼,PCIE 3.0及以后版本使用120/130b編碼。)
PCIE 1.0標準中Lanex1的傳輸速率為2.5GT/s,換算成GBps為2GBps(2.5x8/10),換算成MB/s為250MB/s(2/8x1000),x2,x4,x8,x16依次類推。表1給出了PCIE 1.0到6.0不同Lane下的帶寬數據。PCIE 6.0在Lanex16時可以提供高達126GB/s的帶寬,這不就是汽車直男的心動女生嗎。
表1 PCIE 1.0到6.0不同Lane下的帶寬數據
而在2022年PCI-SIG開發(fā)者大會上,PCIE接口標準委員會PCI-SIG就公布了PCIE 7.0的規(guī)范目標,稱其數據速率高達128 GT/s,并在2025年向其成員發(fā)布。這相當于在編碼開銷之前,通過16通道 (x16) 連接能實現512 GB/s的雙向吞吐量。
PCIE拓撲結構
一、基于x86計算機系統(tǒng)
PCIE總線在x86計算機系統(tǒng)中作為局部總線,主要用來連接處理器系統(tǒng)中的外部設備。在x86計算機系統(tǒng)中,PCIE設備主要包括根復合體(Root Complex,RC),交換機(Switch),終端設備(Endpoingt),PCIE到PCI/PCI-X的橋(Bridge)等。一個典型的基于x86計算機系統(tǒng)的PCIE拓撲結構如圖3所示。
圖3 基于x86計算機系統(tǒng)的PCIE拓撲結構
RC將PCIE總線端口、存儲器等一系列與外部設備有關的接口都集成在一起。CPU平時比價忙,便會把很多事情交給RC去做,比如訪問內存,通過內部PCIE總線及外部Bridge拓展出若干個其他的PCIE端口。
Endpoint作為終端設備,可以是PCIE SSD、PCIE網卡等,既可以掛載到RC上,也可以掛載到Switch上。
Switch擴展了PCIE端口,可以將數據由一個端口路由到另一個端口,從而實現多設備的互聯,具體的路由方法包括ID路由,地址路由,隱含路由。靠近RC的端口稱為上游端口,擴展出來的端口稱為下游端口。下游端口可以掛載其他Switch或者Endpoint,并且對他們進行管理。
從上游過來的數據,它需要鑒定:(1)否是是傳給自己的數據,如果是便接收;(2)是不是自己下游端口的數據,如果是便轉發(fā);(3)如果都不是,便拒絕。從下游端口掛載的Endpoint傳給RC的數據,Switch會進行相應的仲裁,確定數據的優(yōu)先級,并將優(yōu)先級高的數據傳送到上游端口中去。
Bridge則是用來實現PCIE設備與PCI/PCI-X設備之間的連接,實現兩種不同協(xié)議之間的相互轉換。
二、基于汽車
汽車電子電氣架構的多樣性,導致很難有像x86一樣的統(tǒng)一架構。而基于中央計算架構,Mircochip曾給出過一種架構方案,如圖4所示。
圖4 汽車上的一種PCIE架構
在此架構中,PCIE Switch串聯起整個片內通信。中央計算單元中的不同SOC,Ethernet Switch等均掛載其上面。外部傳感器通過Zonal ECU的Ethernet Switch串聯在一起。
PCIE分層體系
在PCIE總線中,數據報文在接收和發(fā)送過程中,需要經歷三層蹂躪,包括事務層(Transaction Layer)、數據鏈路層(Data Link Layer)和物理層(Physical Layer)。各層又都包含發(fā)送和接收兩塊功能。這種分層的體系結構和網絡的經典七層模型有異曲同工之妙,但不同的是,PCIE總線中每一層都是使用硬件邏輯實現的。
工作流程如圖5所示,數據報文首先在設備A的核心層中產生,然后再經過該設備的事務層、數據鏈路層和物理層,最終發(fā)送出去。而接收端的數據也需要通過物理層、數據鏈路層和事務層,并最終到達設備B的核心層。
圖5 PCIE工作流程
一、事務層。
事務層位于PCIE分層體系的最高層,一方面接收設備核心層的數據請求,封裝為TLP(Transaction Layer Packet)并在TLP頭中定義好總線事務后,發(fā)送給數據鏈路層。另一方面,從數據鏈路層中接收數據報文,掐頭去尾保留有效數據后轉發(fā)至PCIE設備核心層。
PCIE中定義的總線事務有存儲器讀寫、I/O 讀寫、配置讀寫、Message總線事務和原子操作等總線事務。這些總線事務可以通過Switch等設備傳送到其他PCIE設備或者RC。RC也可以使用這些總線事務訪問PCIE設備。
以存儲器讀為例,網絡中某個有需求的Endpoint初始化該請求后發(fā)送出去,請求經過Switch之后到達RC,RC收到存儲器讀請求后在系統(tǒng)緩存中抓取數據并回傳完成報告。完成報告同樣經過Switch后到達Endpoint,Endpoint收到完成報告后結束此次事務請求。
事務層還使用流量控制機制來保證PCIE鏈路的使用效率。
二、數據鏈路層
數據鏈路層在PCIE總線中發(fā)揮著承上啟下的作用。來自事務層的報文在通過數據鏈路層時,將被添加Sequence Number前綴和CRC后綴,并使用ACK/NAK協(xié)議保證來自發(fā)送端事務層的報文可以可靠、完整地發(fā)送到接收端的數據鏈路層。來自物理層的報文在經過數據鏈路層時,會被剝離Sequence Number前綴和CRC后綴再被發(fā)送到事件層。
PCIE總線的數據鏈路層還定義了多種DLLP(Data Link Layer Packet),DLLP產生于數據鏈路層,終止于數據鏈路層。值得注意的是,TLP與DLLP并不相同,DLLP并不是由TLP加上Sequence Number前綴和CRC后綴組成的。
三、物理層
物理層是PCIE總線的最底層,將PCIE設備連接在一起。PCIE總線的物理電氣特性決定了PCIE鏈路只能使用端到端的連接方式。PCIE總線的物理層為PCIE設備間的數據通信提供傳送介質,為數據傳送提供可靠的物理環(huán)境。
物理層是PCIE體系結構最重要,也是最難以實現的組成部分。PCIE總線的物理層定義了LTSSM(Link Training and Status State Machine)狀態(tài)機,PCIE鏈路使用該狀態(tài)機管理鏈路狀態(tài),并進行鏈路訓練、鏈路恢復和電源管理。
PCIE總線的物理層還定義了一些專門的“序列”,有的書籍將物理層這些“序列”稱為PLP(Phsical Layer Packer),這些序列用于同步PCIE鏈路,并進行鏈路管理。值得注意的是PCIE設備發(fā)送PLP與發(fā)送TLP的過程有所不同。對于系統(tǒng)軟件而言,物理層幾乎不可見,但是系統(tǒng)程序員仍有必要較為深入地理解物理層的工作原理。
汽車領域應用案例
一、理想
從網絡上公開資料獲悉,理想2023年要上市的新車,除了采用800V純電平臺,還將采用其最新的第三代架構LEEA3.0,如圖6所示。LEEA3.0為中央計算平臺+區(qū)域控制架構,中央計算平臺很有可能采用類似工控機的模塊化方案,將實現智能車控、自動駕駛和智能座艙功能的三塊板子通過高性能交換機連接在一起,并設計到一套殼體中,有點類似特斯拉HW3.0的松耦合方案。
而高性能交換機的方案有兩種,一種是PCIE Switch,一種是TSN Switch。PCIE Switch主要充當算力芯片之間“話事人”,通過提供20Gb/s以上的端到端的數據傳輸帶寬,可以解決高帶寬、低延時的痛點需求。同時通過物理隔離,單點失效將不會影響系統(tǒng)失效。TSN Switch主要充當與安全芯片及區(qū)域控制器的通信,提供時間確定性的數據流轉發(fā)和數據交換。
圖6 ?LEEA3.0原理示意圖(圖片來源:基于網絡公開資料整理)
二、Mircochip
2020年9月,Microchip在一期《Inter-Processor Connectivity for Future Centralized Vehicle Computer Platforms》分享中,共享了其對下一代中央計算平臺的一些觀點。什么區(qū)域配合計算中心、SOA、以太網,都是寫老掉牙的話題,沒什么新意。但在提到下一代架構以太網帶寬的挑戰(zhàn)時,預測中央計算平臺中送入的數據量將達到200Gbps(說實話我愣是沒估算出來,大家看下面圖自己領悟吧),如圖7所示。
圖7 以太網面臨的帶寬挑戰(zhàn)(來源:Microchip官方材料)
中央計算單元為了解決這么大數據的涌入問題,必須采用PCIE。PCIE可掛載的Endpoint如圖8所示。
圖8 PCIE掛載節(jié)點示意圖(來源:Microchip官方材料)
基于以上需求,2022年2月,Mircochip宣布推出市場上首款通過汽車級認證的第四代PCIE交換機,提供了一種面向分布式異構計算系統(tǒng)的高速、低延遲連接解決方案,主要用于提供連接ADAS內CPU和加速器所需的最低延遲和高帶寬性能。
審核編輯:劉清
評論
查看更多