1、華為鯤鵬華為鯤鵬 920 處理器處理器技術白皮書技術白皮書文檔版本文檔版本01發布日期發布日期2020-02-10華為技術有限公司華為技術有限公司 版權所有版權所有 華為技術有限公司華為技術有限公司 2020。保留一切權利。保留一切權利。非經本公司書面許可,任何單位和個人不得擅自摘抄、復制本文檔內容的部分或全部,并不得以任何形式傳播。商標聲明商標聲明和其他華為商標均為華為技術有限公司的商標。本文檔提及的其他所有商標或注冊商標,由各自的所有人擁有。注意注意您購買的產品、服務或特性等應受華為公司商業合同和條款的約束,本文檔中描述的全部或部分產品、服務或特性可能不在您的購買或使用范圍之內。除非合同另
2、有約定,華為公司對本文檔內容不做任何明示或默示的聲明或保證。由于產品版本升級或其他原因,本文檔內容會不定期進行更新。除非另有約定,本文檔僅作為使用指導,本文檔中的所有陳述、信息和建議不構成任何明示或暗示的擔保。華為技術有限公司華為技術有限公司地址:深圳市龍崗區坂田華為總部辦公樓 郵編:518129網址:https:/文檔版本 01(2020-02-10)版權所有 華為技術有限公司i前言前言概述概述華為鯤鵬920處理器為面向ICT領域的ARM v8指令集64bit多核處理器芯片。本文檔簡單介紹華為鯤鵬920處理器系列芯片的架構和功能特性,以及芯片的各個子系統和組件之間的交互關系。讀者對象讀者對象
3、本文檔主要適用于以下工程師:產品架構師產品系統方案設計人員符號約定符號約定在本文中可能出現下列標志,它們所代表的含義如下。符號符號說明說明表示如不避免則將會導致死亡或嚴重傷害的具有高等級風險的危害。表示如不避免則可能導致死亡或嚴重傷害的具有中等級風險的危害。表示如不避免則可能導致輕微或中度傷害的具有低等級風險的危害。用于傳遞設備或環境安全警示信息。如不避免則可能會導致設備損壞、數據丟失、設備性能降低或其它不可預知的結果?!绊氈辈簧婕叭松韨?。對正文中重點信息的補充說明?!罢f明”不是安全警示信息,不涉及人身、設備及環境傷害信息。華為鯤鵬 920 處理器技術白皮書前言文檔版本 01(2020-0
4、2-10)版權所有 華為技術有限公司ii修改記錄修改記錄文檔版本文檔版本發布日期發布日期修改說明修改說明012020-02-10第一次正式發布。華為鯤鵬 920 處理器技術白皮書前言文檔版本 01(2020-02-10)版權所有 華為技術有限公司iii目目 錄錄前言前言.ii1 概述概述.12 芯片架構芯片架構.42.1 重要概念.42.2 芯片組件.92.3 組件單元.112.3.1 片上總線.112.3.2 CCL.122.3.3 ICL.122.3.4 SCCL.132.3.5 SICL.143 CPU 核核.164 內存子系統內存子系統.175 設備及設備拓撲設備及設備拓撲.195.1
5、 設備分類.195.2 疊加設備拓撲.205.3 平臺設備拓撲.215.4 固件設備.225.5 StreamID 與 DeviceID 對應關系.225.6 設備內存序.236 PCIe 子系統子系統.246.1 PCIe 軟件視圖.246.2 華為鯤鵬 920 PCIe 硬件視圖介紹.266.3 PCIe 系統特點.267 網絡子系統網絡子系統.298 管理子系統管理子系統.32華為鯤鵬 920 處理器技術白皮書目 錄文檔版本 01(2020-02-10)版權所有 華為技術有限公司iv1 概述概述本文檔中,華為鯤鵬920系列涵蓋表表1-1列出的所有芯片型號,相關的重要概念如表表1-2所示。
6、表表 1-1 華為鯤鵬 920 系列芯片概覽芯片型號芯片型號計算能力計算能力內內存存支支持持網絡能網絡能力力存儲能存儲能力力PCIe接口接口平臺平臺特性特性加速加速華為鯤鵬9207265/7260/5255/525048核/64核Armv8.2架構;單核支持512KB L2Cache;單核支持1MB L3Cache。8個DDR控制器2*100G;4*25GE;2*50G;支持RoCEv2和SR-IOV。2-portAHCI接口SATA控制器;x8 SAS3.0控制器,支持STP協議。40個PCIe4.0通道;多達20個根端口;支持x16接口;支持Peer2Peer和ATS;支持CCIX。最高支
7、持4顆芯片互聯;內置引擎;片內外設采用PCI拓撲結構。壓縮/解壓縮引擎;安全算法引擎;RSA算法引擎。華為鯤鵬9205220/321024核/32核Armv8.2架構;單核支持512KB L2Cache;單核支持1MB L3Cache。4個DDR控制器2*100G;4*25GE;2*50G;支持RoCEv2和SR-IOV。2-portAHCI接口SATA控制器;x8 SAS3.0控制器,支持STP協議。40個PCIe4.0通道;多達20個根端口;支持x16接口;支持Peer2Peer和ATS;支持CCIX。內置引擎;片內外設采用PCI拓撲結構。壓縮/解壓縮引擎;安全算法引擎;RSA算法引擎。華
8、為鯤鵬 920 處理器技術白皮書1 概述文檔版本 01(2020-02-10)版權所有 華為技術有限公司1表表 1-2 華為鯤鵬 920 處理器系列芯片的重要概念術語術語定義定義Chip華為鯤鵬920處理器系列芯片集成了多個CPU核和其他架構組件。一顆芯片可以包含一個或多個SCCL,以及一個或多個SICL。多顆芯片可以通過Hydra接口實現片間互聯,組成具有Cache一致性的多片系統。Chip ID在通過Hydra接口實現的多片系統中,Chip ID指單顆芯片的ID。對芯片進行編號,便于地址譯碼及設備區分。CCLCore Cluster(CCL),即內核集群。每個CCL包含4個Arm內核(及各
9、自的L1 Cache),為華為鯤鵬920提供專用的L2 Cache。Cluster華為鯤鵬920將處理器內核和相關設備組成共享公共資源或邏輯關聯緊密的集群組件。Core當物理上不支持多線程能力時,單處理器內核對軟件可見。DAWDynamic Address Window(DAW),即動態地址窗口,是芯片內部的地址譯碼機制。通過配置動態地址窗口參數,可以修改分配給內存控制器和設備的起始地址和空間大小。Device設備指除內核外的物理單元,如I/O集群、片內加速設備、管理設備等。DeviceIDDeviceID是芯片分配給每個設備的唯一標識號。在中斷系統中,DeviceID用于中斷上下文索引及區分
10、各個上報中斷設備。DispatchDispatch是片上總線的組件之一,用于對物理地址進行最后一級譯碼,提供各設備地址空間的訪問通道。HAHome Agent是華為鯤鵬920 Hydra協議中定義的組件之一。在多片系統中,Home Agent用于保持L3 Cache之間的Cache一致性。Hydra接口Hydra接口是實現片間互聯的物理接口。用于多芯片擴展,滿足Cache一致性和統一地址空間的要求。HydraHydra協議和Hydra接口。Hydra協議是華為定義的片間互聯Cache一致性協議。Hydra接口是遵循Hydra協議的高帶寬、低時延物理接口。ICLI/O Cluster(ICL),
11、即I/O集群,由物理上距離相近且共享系統總線接口和內部接口的多個設備組成。IMUIntelligent Management Unit(IMU)即智能管理單元,對華為鯤鵬920處理器進行管理和監督。IMU具有完整的SoC組件,完全獨立于應用處理器系統。華為鯤鵬 920 處理器技術白皮書1 概述文檔版本 01(2020-02-10)版權所有 華為技術有限公司2術語術語定義定義MTPT存儲轉換及保護表實現虛擬地址(Virtual Address,VA)到物理地址(Physical Address,PA)的轉換,控制遠程直接數據存?。≧emote Direct Memory Access,RDMA)
12、協議棧處理過程中的訪問權限。虛擬地址是的到物理地址的轉換由RoCE引擎完成,不由系統內存管理單元(System Memory Management Unit,SMMU)完成。Outstanding在前一次總線讀寫完成之前,并行發起多個新的總線讀寫請求,從而提高總線訪問內存的性能。Outstanding值越大,總線帶寬越高。PCIe EP模式華為鯤鵬920的PCIe控制器可工作于Endpoint(EP)模式。在該模式下,PCIe控制器作為標準的EP設備連接到外部CPU。此時,PCIe控制器具備完整的EP配置空間和中斷機制。華為鯤鵬920的所有功能都可以用作單個PCIe EP設備的擴展功能。華為鯤
13、鵬920上可以運行不同的應用,為EP設備提供不同的功能。SAWStatic Address Window(SAW),即靜態地址窗口,是華為鯤鵬920內部的地址譯碼機制。用物理地址中的一些固定比特,對位于ICL中具有特定大小的物理地址空間的設備進行譯碼。SchedulerScheduler是片上總線的組件之一。Scheduler用于調度設備對系統物理地址空間的DMA訪問。SCCLSuper Core Cluster(SCCL),即超級內核集群,由物理上距離相近且共享其他資源的多個集群組成。根據關聯關系的不同,一個SCCL還可能包含L3 Cache、多個DDR控制器和一個I/O集群。SICLSup
14、er I/O cluster(SICL),即超級I/O集群,由3個物理上接近的ICL和1個Hydra接口模塊組成。SICL還提供I/O接口,及加速和平臺管理功能。根據關聯關系的不同,一個SICL還可能包含一個內核集群。由于SICL負責提供PCIe和Hydra接口功能,因此華為鯤鵬920系列的所有芯片都必須包含SICL。SCLSuper Cluster(SCL)即超級集群,包括SCCL和SICL。SCL ID對芯片內的SCL進行編號,便于地址譯碼及區分設備。華為鯤鵬 920 處理器技術白皮書1 概述文檔版本 01(2020-02-10)版權所有 華為技術有限公司32 芯片架構芯片架構2.1 重要
15、概念2.2 芯片組件2.3 組件單元2.1 重要概念重要概念本節對本文檔中一些核心概念進行約定。芯片內部功能模塊按物理親和性或邏輯親和性劃分為CCL和ICL。華為鯤鵬920處理器系列芯片的組成單元如圖圖2-1所示。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司4圖圖 2-1 華為鯤鵬 920 處理器系列芯片物理架構圖2P服務器處理器多片互聯方案示例如圖圖2-2所示。每顆芯片各提供2個SCCL和1個SICL。芯片之間通過片間Cache一致性接口連接,片間帶寬高達480Gbps,即X16Hydra接口。華為鯤鵬 920 處理器技術白皮
16、書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司5圖圖 2-2 標準 2P 服務器處理器多片互聯方案示例4P服務器處理器多片互聯方案示例如圖圖2-3所示。每顆芯片各提供2個SCCL和1個SICL。芯片之間通過片間緩存一致接口連接,片間帶寬高達240Gbps,即X8 Hydra接口。此外,由于沒有額外的Hydra接口,4P互聯系統無法支持I/O(PCIe)擴展。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司6圖圖 2-3 標準 4P 服務器處理器多片互聯方案示例圖圖2-4所示服務器處理器多片系統實現了P
17、CIe擴展。本系統中有2個處理器芯片和1個主要用于PCIe接口擴展的I/O擴展的I/O橋片。3顆芯片通過Hydra接口連接(本場景中Hydra接口僅用于CPU和I/O橋的連接)。本方案多用于對PCIe插槽有擴展需求的2P服務器場景。此外,I/O橋通過地址配置來區分處理器的DDR空間。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司7由于華為鯤鵬920的7265/7260/5255/5250/5245/5240/5235/5230只能為Hydra接口提供24-lane的SerDes,因此4P(即,有4個CPU槽位)多芯片系統無法支持I
18、/O擴展功能。圖圖 2-4 帶 PCIe 擴展的服務器處理器多片系統架構示意圖圖圖2-5提供了另一種多片互聯方案。本系統有兩顆芯片,一顆是華為鯤鵬9205220/3210芯片(包含一個SCCL和一個SICL),另一顆是華為鯤鵬920的7265/7260/5255/5250/5245/5240/5235/5230 I/O橋片(用于I/O擴展),兩顆芯片之間通過Hydra接口連接(在本方案中,Hydra接口只用于CPU和I/O橋連接)。本方案多用于存儲系統。如果沒有PCIe插槽擴展需求,I/O橋片可以省去。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有
19、 華為技術有限公司8圖圖 2-5 存儲場景多片互聯方案示例2.2 芯片組件芯片組件華為鯤鵬920 7265/7260/5255/5250/5245/5240/5235/5230芯片組件示意圖如圖圖2-6所示。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司9圖圖 2-6 華為鯤鵬 920 7265/7260/5255/5250/5245/5240/5235/5230 組件示意圖由于Hydra以及其他高速I/O接口(如PCIe、GE和XGE)都集成在SICL中,因此每個處理器都包括一個SICL。華為鯤鵬920 5220/3210芯片組
20、件示意圖如圖圖2-7所示。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司10圖圖 2-7 華為鯤鵬 920 5220/3210 芯片組件示意圖2.3 組件單元組件單元2.3.1 片上總線片上總線Cache一致性總線連接華為鯤鵬920處理器芯片內部的各個組件,為每個內核、設備、集群、以及其他可尋址組件提供對系統內存地址空間的一致訪問。(可通過華為自研Cache一致性片間總線Hydra接口級聯多顆芯片來實現SMP系統擴展)通過Cache一致性總線連接支持不同功能或不同版本的集群,從而組合成為不同型號的芯片。各個內核、設備和集群通過該片
21、上總線來訪問內存和其他設備寄存器中的數據。(詳見章節4 內存子系統內存子系統)。各個設備通過該片上總線向處理器內核發送中斷信號。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司112.3.2 CCL華為鯤鵬920的每個內核集群(CCL)都由4個內核和專用L2 Cache組成。華為鯤鵬920兼容Armv8.2-A架構平臺的所有特性。每個華為鯤鵬920內核都有一個專用L2 Cache。華為鯤鵬920的CCL之間支持完全一致性??偩€上的其他功能單元可以一致性地訪問每個CCL的緩存中的最新數據。CCL內部共用一個系統總線接口。CCL組件如圖
22、圖2-8所示。圖圖 2-8 華為鯤鵬 920 的 CCL 組件示意圖2.3.3 ICLI/O集群(ICL)指物理上距離相近且共享公共資源(如共用系統總線接口和內部接口)或邏輯關聯緊密的設備組。一個典型的ICL包括以下組成部分:多個設備(如圖圖2-9所示);0個或1個SMMU(System Memory Management System),為設備提供地址轉換和訪問保護功能;1個系統總線接口;1個Sysctrl或Subctrl,用于固件初始化和公共配置;1個Dispatch,為訪問設備寄存器空間提供物理地址(PA)譯碼;0個或多個Scheduler,當設備數量較多時,Scheduler可以合并各
23、設備的內存訪問流量。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司12不是所有的ICL都支持DMA能力。但是所有設備都有一個可通過編程訪問的寄存器。ICL的內部結構如圖圖2-9所示。支持DMA能力的設備主動對系統地址空間發起讀寫操作,Scheduler將請求進行合并。該請求由SMMU進行處理,通過物理地址(PA)訪問總線。從設備經由Scheduler再到SMMU的路徑上的地址,可以是虛擬地址(VA)、中間物理地址(IPA)或物理地址(PA)。如果DMA引擎上配置的內存訪問地址不是物理地址(PA),設備通過StreamID識別合適的
24、地址空間。SMMU將地址轉換為最終的物理地址(PA)。StreamID和DeviceID的配置和生成方法,請參見5.5 StreamID與與DeviceID對應關系對應關系。用來訪問設備寄存器空間的地址是從片上總線經由Dispatch傳送給設備的物理地址(PA),如圖圖2-9所示。各類設備的行為,請參見5.1 設備分類設備分類。圖圖 2-9 ICL 內部結構2.3.4 SCCL華為鯤鵬920處理器提供超級內核集群(SCCL)概念。SCCL由物理上距離相近且共享其他資源的多個集群組成。華為鯤鵬920的每個SCCL包括6個CCL、2個ICL和4個DDR控制器。DDR控制器也可以看做一個設備。SCC
25、L內部結構如圖圖2-10所示。L3 Cache在物理上分為兩部分:L3 Cache標簽和L3 Cache數據。為了降低snoop時延,CCL集成了L3 Cache標簽。L3數據塊直接通過片上總線傳輸。每個SCCL在物理上都具有一個通用中斷分發器(Generic Interrupt ControllerDistributor,GICD)模塊,兼容GICv4規范。當單片或多片系統中有多個SCCL時,只有一個GICD對系統軟件可見。Hydra Home Agent負責處理多片系統的Cache一致性協議。POE_ICL是系統中的硬件加速器。使用場景如下:華為鯤鵬 920 處理器技術白皮書2 芯片架構文
26、檔版本 01(2020-02-10)版權所有 華為技術有限公司13報文保序;消息排隊;分發消息、任務到指定內核。圖圖 2-10 SCCL 內部結構2.3.5 SICL此外,華為鯤鵬920處理器系列芯片還提供超級I/O集群(SICL)概念。每個SICL由4個ICL、1個Hydra接口和1個獨立的IMU組成。每個SICL也可能包含一個內核集群。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司14其一級內部結構如圖圖2-11所示。圖圖 2-11 SICL 內部結構SICL提供SerDes。PCIe、NIC、存儲接口控制器和Hydra接口均
27、要用到SerDes功能,它們對應的ICL也包含在SICL中。Network ICL提供片內以太網絡接口控制(Network Interface Control,NIC),包括100G、50G、40G、25G、10G、1G速率接口,支持RoCE和RoCEv2功能。PCIe_ICL提供根復合體(Root Complex,RC)功能。支持PCIe 4.0規范,最大根端口號為20。PCIe_ICL還支持Cache一致性互聯協議(Cache Coherent Interconnect forX,CCIX)。Hydra接口是保證片間互聯Cache一致性的高帶寬接口。最多支持4個處理器芯片互聯。HAC_IC
28、L和IO_MGMT_ICL是存儲Host控制器、USB Host控制器、硬件加速器和各種I/O的組合。均可在系統設備樹中找到。IMU是芯片的管理單元,完全獨立于芯片的其他部分。說明說明在多片互聯場景下,SMP系統中存在多個SICL。1)PCIe、網絡、HAC和IO_MGMT的I/O集群如同示例副本一樣并行工作。2)多片互聯場景下,只有Chip 0的IMU對Cache一致性SMP系統可見,其他芯片的IMU對Cache一致性SMP系統不可見。單片系統和多片系統使用不同的IMU配置。華為鯤鵬 920 處理器技術白皮書2 芯片架構文檔版本 01(2020-02-10)版權所有 華為技術有限公司153
29、CPU 核核華為鯤鵬920處理器集成了Arm TaiShan處理器內核。該處理器基于Armv8.2-A架構平臺,滿足高性能、低功耗需求,兼容Armv8-A平臺所有特性,支持Armv8.1和Armv8.2擴展。華為鯤鵬920處理器芯片系列各型號的內核配置如表表3-1所示。內核與其他組件的邏輯關系請參見2 芯片架構芯片架構。表表 3-1 各芯片型號的內核配置芯片型號芯片型號SCCL數量數量單個單個SCCL中中CCL數量數量單個單個CCL中中內核數量內核數量內核總數內核總數Arm架構版架構版本本華為鯤鵬920 321016424Armv8.2華為鯤鵬920 522018432Armv8.2華為鯤鵬9
30、205255/525026448Armv8.2 CCL的配置細節,請參見2.3.2 CCL。華為鯤鵬 920 處理器技術白皮書3 CPU 核文檔版本 01(2020-02-10)版權所有 華為技術有限公司164 內存子系統內存子系統本節介紹單片或多片系統中物理地址空間涉及的內存行為。當某個CCL或ICL訪問物理內存空間時,內存空間在頁表、內存屬性、訂單行為等方面的配置和行為均遵循Armv8架構。CCL訪問的內存空間的屬性由MMU(memorymanagement unit,內存管理單元)中的頁表控制。ICL訪問的內存空間的屬性由SMMU中的頁表或源設備控制。SMMU中的頁表可以通過硬件自動同步
31、到CCL中的MMU中,也可以單獨配置。華為鯤鵬920系列處理器支持跨芯片的硬件Cache一致性,整個系統相當于一個SMP系統。系統的內存行為和內存序模型遵循Arm架構。由于物理限制,內存訪問延遲受數據所在位置(例如不同級別的緩存中或DDR內存中)影響。如果目標數據位置在物理上接近內存訪問發起者,則時延較低。物理內存的層次關系如圖圖4-1所示。對典型內存訪問路徑從1到6進行順序編號,訪問時延從低到高。也就是說,路徑1的時延最低,路徑6的時延最高。華為鯤鵬 920 處理器技術白皮書4 內存子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司17圖圖 4-1 華為鯤鵬 920 內存
32、層次關系說明說明華為鯤鵬920的內核不共享L2 Cache,每個內核都有一個單獨的L2 Cache。對L3 Cache按照CCL進行區域劃分,每個區域靠近一個CCL,以降低L3 Cache訪問時延。換句話說,本地SCCL中的所有內核共享一個L3 Cache,但每個內核的訪問時延可能有細微差異。華為鯤鵬 920 處理器技術白皮書4 內存子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司185 設備及設備拓撲設備及設備拓撲5.1 設備分類5.2 疊加設備拓撲5.3 平臺設備拓撲5.4 固件設備5.5 StreamID與DeviceID對應關系5.6 設備內存序5.1 設備分類設
33、備分類華為鯤鵬920采用SoC芯片架構,除了內核和內存子系統外,芯片還集成了大量設備。這些片內設備分為三類:固件設備用于配置芯片的功能模式及啟動流程,如DDR初始化、系統地址譯碼、SerDes初始化等。這些設備在系統中有固定的內存映射地址,還可能已經預先分配了SPI中斷。對應的寄存器不能由操作系統或驅動程序直接訪問,而只能由BIOS或運行時UEFI進行讀寫。固件設備的工作不依賴于平臺設備或外設。平臺設備作為一款基于Arm的服務器處理器,華為鯤鵬920遵循Arm生態系統的各項規范,包括SBSA規范和RAS相關規范。平臺設備包括SMMU、通用中斷控制器(GenericInterrupt Contr
34、oller,GIC)、UART、Watchdog等,是平臺的必要組成部分。平臺設備提供統一的可編程寄存器。所有平臺設備都應該采用標準驅動程序,以保證跨版本和跨廠商兼容性。片內外設芯片內部的部分功能可以用類似功能替代,如NIC、USB控制器等,這些功能統稱為“外設”。這些外設使用的驅動程序由專門的廠商提供。從軟件角度來看,大多數片內外設都是標準PCI設備。標準PCI設備包括如下行為:華為鯤鵬 920 處理器技術白皮書5 設備及設備拓撲文檔版本 01(2020-02-10)版權所有 華為技術有限公司19可被固件或操作系統枚舉,如片外PCI設備??梢栽赑CIe框架中分配內存地址和中斷。采用與PCI設
35、備相同的功能復位和電源管理機制。虛擬化特性完全遵循PCIe SR-IOV規范。圖圖 5-1 華為鯤鵬 920 設備分類5.2 疊加設備拓撲疊加設備拓撲這些外設不是Arm SBSA(Server Base System Architecture,服務器基礎架構)規范定義的通用平臺設備。外設包括片內外設和片外外設,片外外設通過PCIe與華為鯤鵬920連接。這兩種外設都采用PCI拓撲方式組織,遵循PCIe框架。啟動默認外設的拓撲結構如圖圖5-2所示。整個拓撲完全遵循PCIe固件和軟件架構。用戶可以對照2.3 組件單元組件單元描述的集群內部結構,以對系統全面有更清晰的了解。注意以下幾點:不管是單片架構
36、還是多達4片互聯的多片架構,整個SMP系統共享一個ECAM空間。提供PCI總線(包含256條子總線)用于掛接設備。整個系統共享一個PCI總線域。受芯片物理設計和系統譯碼機制的限制,每個SCL都包含多個Host橋。Host橋應由ACPI(Advanced Configuration and Power Interface,高級配置與電源接口)表來描述。不包含在最終產品里的外設不能在ACPI表中體現。以Network ICL為例,如果PCB板只用到了Chip 1的網口控制器,Chip 0的Network ICL就不能體現在ACPI表中。那么,Chip 0的網絡功能對軟件不可見。不支持虛擬化外設作為
37、集成端點設備(Integrated Endpoint)與Host橋連接。支持虛擬化外設通過虛擬PCI-PCI橋與Host橋連接,可以獲取更多PCI功能。對于不在產品PCB板上使用的片內外設,可以在固件里將這些設備的PCI頭的廠商ID配置為0 xffff,隱藏這些冗余邏輯。片上總線功能通過Chip ID和SCL ID對默認地址譯碼邏輯進行調整。Chip 0有一套默認的總線號和地址范圍分配配置,Chip 1有一套默認的總線號和地址范圍分配配置,以此類推。以Chip 0為例,Chip 0的默認總線范圍在單片和4片互聯場景下相同。用戶可以根據需要在固件中對這些配置進行更改。華為鯤鵬 920 處理器技術
38、白皮書5 設備及設備拓撲文檔版本 01(2020-02-10)版權所有 華為技術有限公司20圖圖 5-2 外設拓撲5.3 平臺設備拓撲平臺設備拓撲表表5-1對所有平臺設備進行了總結。所有平臺設備都提供與Arm生態系統兼容的標準編程接口。固件向操作系統提供平臺設備的描述,平臺設備的驅動由操作系統通過通用軟件框架驅動完成。SMMU模塊采用消息中斷(Message Signaled Interrupt,MSI)的中斷形式,SMMU驅動以編程方式將MSI ID和地址寫入SMMU寄存器中。表表 5-1 平臺設備拓撲平臺設備平臺設備功能功能兼容架構版本兼容架構版本數量數量通用UARTUART接口Arm S
39、erver BaseSystemArchitecture 3.0每顆芯片都有一個UART接口。固件描述決定哪些UART接口軟件可見。通用WatchdogWatchdogArm Server BaseSystemArchitecture 3.0SMP系統共用一個Watchdog。GICD通用中斷分發器Arm GenericInterruptControllerArchitectureSpecificationversion 4.0整個系統共用一個GICD。華為鯤鵬 920 處理器技術白皮書5 設備及設備拓撲文檔版本 01(2020-02-10)版權所有 華為技術有限公司21平臺設備平臺設備功能功
40、能兼容架構版本兼容架構版本數量數量IMU消息通道應用處理器與IMU的信息交互Arm ComputeSubsystem SCPVersion:1.2MessageInterfaceProtocols1組IMU消息通道。ITSInterruptTranslation Service(ITS)將MSI/MSI-X設備中斷轉換成系統的LPI中斷,并發送給不同的通用中斷控制寄存器(General InterruptControl Register,GICR)。Arm GenericInterruptControllerArchitectureSpecificationversion 4.0每顆芯片都有一
41、個ITS組件,包含在SICL中。SMMU1)地址轉換和內存訪問保護;2)PCIe_ICL中的SMMU也支持地址轉換服務(AddressTranslationServices,ATS)和頁面請求接口(Page RequestInterface,PRI)虛擬化特性。Arm SystemMemoryManagementUnit ArchitectureSpecificationSMMUarchitectureversion 3.0每個ICL都有一個專用SMMU組件。5.4 固件設備固件設備固件設備可以被固件訪問。5.5 StreamID 與與 DeviceID 對應關系對應關系SMMU模塊借助Str
42、eamID對地址轉換表進行索引。ITS模塊借助DeviceID對引中斷轉換表進行索引。在PCIe系統架構中,還有兩種ID:Requester ID和PASID。Requester ID與PCI總線,設備,功能號組合,共同標識PCI層次結構中的功能。PASID是Requester的進程地址空間ID。在典型應用場景中,可能與內核的進程地址空間有關。關于這些ID定義的更多信息,請參見SMMU、GIC和PCIe規范。根據章節5 設備及設備拓撲設備及設備拓撲的描述,華為鯤鵬920采用PCIe系統拓撲進行基礎設備管理。與SMMU或ITS產生工作交互的設備都按PCIe的要求分配了唯一的Requester I
43、D:設備一般都具有標準的PCIe頭。設備Requester ID由PCI枚舉軟件按標準流程分配。華為鯤鵬 920 處理器技術白皮書5 設備及設備拓撲文檔版本 01(2020-02-10)版權所有 華為技術有限公司22沒有標準PCI頭的設備在系統啟動時直接分配Requester ID。此類Requester ID用的是芯片預留的PCI總線。SMMU DeviceID示例如圖圖5-2。系統(包括多片系統)內的Requester ID均為16位長度的編號。這些ID的映射功能如圖圖5-3所示。在整個路徑中,一個設備的RequesterID、SMMU StreamID和ITS DeviceID都相同且唯
44、一。設備的PASID映射到SMMUSubstream ID,對Stage1轉換表進行索引。華為鯤鵬920處理器對以上所有ID的映射都是1:1映射。圖圖 5-3 StreamID 和 DeviceID 的對應關系5.6 設備內存序設備內存序設備內存具有重排序(Re-ordering)的屬性。對于標記為“非重排序(nR)”的設備內存訪問,其對相同塊大小的訪問應該按程序中定義的順序在目標設備中體現。對華為鯤鵬920的設備內存來說,每個PCIe根端口為塊大小。也就是說,對同一個PCIe根端口的非重排序訪問,與按照程序中定義的順序訪問效果一致;而對不同PCIe根端口的訪問,除非借助內存屏障機制,否則訪問
45、順序是無法保證的。華為鯤鵬920的片內設備都是按順序排列的獨立的設備內存塊,也就是說,對同一個設備的非重排序訪問,與按照程序中定義的順序訪問效果一致;而對不同設備的訪問順序,除非借助內存屏障機制,否則訪問順序是無法保證的。華為鯤鵬 920 處理器技術白皮書5 設備及設備拓撲文檔版本 01(2020-02-10)版權所有 華為技術有限公司236 PCIe 子系統子系統華為鯤鵬920支持16GT/s數據傳輸,兼容PCIe規范V4.0。6.1 PCIe軟件視圖6.2 華為鯤鵬920 PCIe硬件視圖介紹6.3 PCIe系統特點6.1 PCIe 軟件視圖軟件視圖華為鯤鵬920處理器的每個PCIe_IC
46、L都是一個Host橋。華為鯤鵬920最多支持4片SMP配置,4個PCIe根端口對應4個Host橋。所有這些Host橋都位于統一的ECAM空間和統一的PCI總線域內。華為鯤鵬920支持在PCIe根端口間進行Peer2Peer傳輸。當啟用Peer2Peer功能時,任何PCIe設備都可以在軟件邏輯視圖中連接到一條共享PCI總線;PCIe設備共享一個公共地址空間,并且可以彼此發起數據傳輸。Peer2Peer傳輸通過Host橋配置進行路由,RC感知系統Host橋內存和總線范圍信息,且這些信息可以在BIOS階段得到同步。中斷同樣對軟件可見。PCIe設備的MSI/MSI-X中斷路徑,請參見5.5 Strea
47、mID與與DeviceID對應關系對應關系和5.5 StreamID與與DeviceID對應關系對應關系。系統把所有PCIe INTx中斷整合為4個SPI中斷。注意,這是針對整個PCIe總線域來說的,對應統一的ECAM空間,并非每個根端口都有4個SPI中斷。在Armv8架構下,PCIe設備的配置空間、內存地址空間、I/O地址空間被映射到全局內存地址。配置空間訪問指的是對ECAM空間的內存訪問。Host橋利用地址轉換單元(Address Translation Unit,ATU)機制,將系統訪問轉換為PCIe內存和I/O請求。華為鯤鵬920不支持對外部的原子操作。轉換機制如圖圖2-6所示。表表
48、6-1 PCIe 地址空間和 Arm 內存類型配置PCIe目標地址空間目標地址空間PCIe請求請求推薦推薦Arm內存類型內存類型PCIe控制器轉換機制控制器轉換機制PCIe配置空間配置讀;配置寫。Device-nGnRnE型設備內存1)系統基內存地址,用于標識ECAM訪問。2)PCI總線范圍,用于過濾配置訪問。華為鯤鵬 920 處理器技術白皮書6 PCIe 子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司24PCIe目標地址空間目標地址空間PCIe請求請求推薦推薦Arm內存類型內存類型PCIe控制器轉換機制控制器轉換機制I/O空間I/O讀;I/O寫。Device-nGnR
49、nE型設備內存ATU表項64bit可預取內存地址空間供寄存器使用。內存讀;內存寫。Device-nGnRE型設備內存ATU表項用于內存空間擴展。內存讀;內存寫。Device-nGRE型設備內存;Device-GRE型設備內存;不可緩存型普通內存32bit可預取內存地址空間供寄存器使用。內存讀;內存寫。Device-nRE型設備內存ATU表項將32bit的PCIe地址映射到Arm內存中大于4G地址空間。用于內存空間擴展。內存讀;內存寫。Device-nGRE型設備內存;Device-GRE型設備內存;不可緩存型普通內存32bit不可預取內存地址空間內存讀;內存寫。Device-nGnRE型設備內
50、存ATU表項 說明說明1.強烈建議將PCIe內存映射的寄存器空間設為Device-nGnRE型設備內存,這樣華為鯤鵬920才能夠保證讀寫訪問的執行順序。編程時可以通過讀請求來Flush在PCIe系統中的滯后寫數據(Posted Write Data)。2.當PCIe內存空間為Device-R型設備內存或不可緩存型普通內存時,編程時應借助屏障機制來保證訪問的執行順序。3.當PCIe配置和I/O空間為Device-E型設備內存時,則無法保證PCIe配置寫和I/O寫操作能正常生效。因為雖然Arm內存序對配置寫和I/O寫進行了提前應答,但PCIe無法對配置寫和I/O寫執行Flush。這些特性如圖圖6-
51、1所示。圖中為4個處理器級聯場景示意圖。若SMP系統中處理器少于4個,可以直接忽略對應處理器的Host橋。華為鯤鵬 920 處理器技術白皮書6 PCIe 子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司25圖圖 6-1 華為鯤鵬 920 PCIe RC 軟件視圖6.2 華為鯤鵬華為鯤鵬 920 PCIe 硬件視圖介紹硬件視圖介紹華為鯤鵬920的PCIe控制器具有多個根端口的電路邏輯,根端口作為虛擬PCI-PCI橋呈現在軟件視圖中。如果板端的實際物理端口數小于芯片最大端口數,可以通過BIOS對控制器進行初始化,屏蔽不存在的根端口。例如,x16 PCIe控制器可以配置為單個根
52、端口,即系統可見單橋;也可以配置為4個x4根端口,即系統可見4橋。華為鯤鵬920支持PCIe熱插拔。芯片的I2C總線可以獲取PCIe插槽的硬件狀態,并將該狀態信息同步給根端口指示器。軟件用戶界面遵循PCIe標準。I2C總線狀態收集協議采用華為鯤鵬920專用時序。6.3 PCIe 系統特點系統特點除了物理、數據鏈路和事務層之外,還有許多與芯片實現相關的系統特性。華為鯤鵬920并沒有全部實現所有特性,詳見表表6-2。華為鯤鵬920已實現的系統特性主要滿足以下三大編程接口規范:PCIe Base規范PCI固件規范Arm生態規范表表 6-2 PCIe 系統特性移植系統架構功能系統架構功能華為鯤鵬華為鯤
53、鵬920是否支持是否支持備注備注中斷/功耗管理事件(Power ManagementEvent,PEM)支持SMP系統把所有INTx中斷轉換為4個SPI本地中斷。錯誤信令和日志支持-虛擬通道(VC)原生PCIe不支持僅適用于CCIX-華為鯤鵬 920 處理器技術白皮書6 PCIe 子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司26系統架構功能系統架構功能華為鯤鵬華為鯤鵬920是否支持是否支持備注備注設備同步支持-鎖定事務不支持-PCIe復位支持-PCIe熱插拔支持-功率預算能力不支持-槽位功率限制不支持-RC拓撲發現支持ECAM機制鏈路速率管理支持-訪問控制器服務(Ac
54、cessController Services,ACS)支持RC/SR-IOV/Peer2Peer替換路由ID協議(Alternative Routing-ID Interpretation,ARI)支持-多播不支持-原子操作僅支持對內部的原子操作不支持對外部的原子操作,即華為鯤鵬920不能通過CPU原子命令向PCIe設備外部發起原子操作。動態功率分配(DynamicPower Allocation,DPA)不支持-事務層包處理提示(Transaction LayerPacket Process Hints,TPH)支持-延遲容限報告(LTR,Latency ToleranceReportin
55、g)不支持-Optimized Buffer Flush/Fill(OBFF)不支持-PASID支持與SMMU共同工作ID的寬度為16bit,而不是20bit。輕量級通知(LightweightNotification,LN)不支持-華為鯤鵬 920 處理器技術白皮書6 PCIe 子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司27系統架構功能系統架構功能華為鯤鵬華為鯤鵬920是否支持是否支持備注備注精確時間測量(PrecisionTime Measurement,PTM)不支持-就緒通知(ReadinessNotifications,RN)支持-增強分配(Enhance
56、dAllocation,EA)不支持-華為鯤鵬 920 處理器技術白皮書6 PCIe 子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司287 網絡子系統網絡子系統華為鯤鵬920通過外接網絡設備,提供高帶寬以太網絡能力。Network ICL控制以太網幀的接收和發送,支持典型的業務處理機制,支持基于RoCEV1和RoCEV2規范的RDMA。華為鯤鵬920的最大線速為100Gbps,RDMA目標時延低于600ns。提供通用網卡,性能調優支持項完全兼容Linux ethtool,也支持Microsoft網絡堆棧。編程方面,Network ICL兼容PCIe系統架構。提供標準的P
57、CIe配置空間,供PCI ECAM機制訪問,支持BIOS枚舉。虛擬化符合SR-IOV規范。支持256項PCI功能,包括虛擬功能(Virtual Function,VF)和物理功能(Physical Function,PF)。每個PCI功能都有獨立的任務和配置空間,便于業務數據處理和硬件配置。華為鯤鵬920網絡子系統基于共享內存架構,如圖圖7-1所示。存儲交換單元提供收發包緩存,完成包的緩存、存儲和交換。TxDMA和RxDMA用于將報文放入報文隊列或從CPU內存中載入報文隊列。集成管理處理器(Integrated Management Processor,IMP)是一種嵌入式的管理處理器,主要完
58、成命令通道的管理和網絡控制器邊帶接口(Network ControllerSideband Interface,NC-SI)功能。IMP負責解析讀寫命令,配置硬件和獲取硬件配置。IMP還負責響應主板管理控制器(Baseboard Management Controller,BMC)的配置請求。每個50GE/40GE MAC控制器都可以配置為1個XLGE MAC控制器或者4個XGE MAC控制器。因此,也可以進行如下配置組合:2個100G/50G/40G/25G/10G/1Gbps MAC控制器+2個千兆MAC控制器,或者4個50G/25G/10G/1Gbps+2個千兆MAC控制器,或者8個25
59、G/10G/1Gbps MAC控制器。華為鯤鵬 920 處理器技術白皮書7 網絡子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司29圖圖 7-1 華為鯤鵬 920 網絡子系統框架示意圖我們把這些功能都視做PCIe框架的功能外設,并且與通過PCIe外接的NIC或HBA網卡在同一個框架中集中管理。通用網絡邏輯和RDMA邏輯放在同一個PCIe功能中,不占用不同的PCI功能。華為鯤鵬 920 處理器技術白皮書7 網絡子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司30華為鯤鵬920典型網絡接口配置如表表7-1所示。BIOS初始化Network ICL的邏輯,
60、根據單板的物理連接告知系統這些功能外設的設備ID。表表 7-1 華為鯤鵬 920 網絡可用設備配置PCI廠商廠商ID(華為)(華為)PCI設備設備ID功能描述功能描述0 x19E50 xA220華為鯤鵬920 GE片內NIC。0 xA221華為鯤鵬920 GE/XGE/25GE片內NIC。0 xA222華為鯤鵬920 GE/XGE/25GE片內NIC,支持RDMA、數據中心橋接(Data Center Bridging,DCB)及優先級流量控制(Priority FlowControl,PFC)。0 xA224華為鯤鵬920 GE/XGE/25GE/50G片內NIC,支持RDMA、DCB及PF
61、C。0 xA226華為鯤鵬920 GE/XGE/25GE/40G/50GE/100GE片內NIC,支持RDMA、DCB及PFC。0 xA22E華為鯤鵬920片上NICVF虛擬功能,不支持RDMA、DCB及PFC。0 xA22F華為鯤鵬920片上NICVF虛擬功能,支持RDMA、DCB及PFC。華為鯤鵬 920 處理器技術白皮書7 網絡子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司318 管理子系統管理子系統智能管理單元(Intelligent Management Unit,IMU)是華為鯤鵬920的管理子系統,配備64位Armv8內核。IMU在芯片上完全獨立。這意味著
62、無論其他子系統發生什么情況,IMU的代碼空間、數據空間、外設、時鐘、復位功能都可以正常工作。其主要組件有:64位Armv8內核的指令架構集(Instruction Set Architecture,ISA)子系統,及其外設和中斷控制器。外設兼容Arm SBSA。中斷控制器符合GICv3標準。片上內存,為IMU內核提供專用的基礎管理固件代碼空間和數據空間。在其他子系統發生異常時,確保IMU子系統正常工作。該片上專用內存不能被應用處理器訪問。系統隔離墻,為IMU子系統外部環境提供安全通道,確保IMU RISC不會因系統異常而阻塞。I2C接口,連接其他處理器以及BMC,當多片互聯場景下芯片間的高速接
63、口發生異常時,I2C接口可以充當帶外通道,供IMU訪問其他處理器。IMU的主要功能如下:通過智能平臺管理總線(Intelligent Platform Management Bus,IPMB)協議與BMC等外部管理芯片進行信息交互。通過系統控制管理接口(System Control and Management Interface,SCMI)與應用處理器通信,實現對應用處理器的全面管理,包括電源管理、熱管理、狀態和事件管理;通過應用處理器序列號(Application Processor EquipmentIdentity,APEI)與應用處理器共享內存空間和數據。安全啟動,啟動代碼驗證,包括統一可擴展固件接口(Unified ExtensibleFirmware Interface,UEFI)固件和信任固件。安全啟動功能可配置。華為鯤鵬 920 處理器技術白皮書8 管理子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司32圖圖 8-1 華為鯤鵬 920 IMU 框架示意圖華為鯤鵬 920 處理器技術白皮書8 管理子系統文檔版本 01(2020-02-10)版權所有 華為技術有限公司33