當(dāng)前,Synopsys公司的PCIe IP在整個市場中占據(jù)著主導(dǎo)地位。憑借在PCIe IP領(lǐng)域超過20年的專業(yè)經(jīng)驗,Synopsys為AI、HPC、網(wǎng)絡(luò)、存儲、移動和汽車SoC提供下一代設(shè)計所需的低延遲和高性能連接,覆蓋從PCIe 1.0到7.0全版本的標(biāo)準(zhǔn)。
本文主要介紹Synopsys PCIe控制器的一些基本內(nèi)容和概念。Synopsys PCIe Application如下圖所示,主要實現(xiàn)了PCIe協(xié)議的三個層:事務(wù)層、數(shù)據(jù)鏈路層和物理層的MAC部分。
此外,它還實現(xiàn)了用于數(shù)據(jù)包傳輸?shù)腜CIe事務(wù)層的依賴于應(yīng)用程序的功能,該功能位于應(yīng)用程序邏輯和PCIe協(xié)議層之間。
一個完整的PCIe port解決方案包括控制器、模擬PHY、以及application邏輯。模擬PHY通過標(biāo)準(zhǔn)PIPE接口與物理層的MAC相連。
PCIe IP架構(gòu)介紹
PCIe IP的總體架構(gòu)框圖如下,主要包括CXPL、RADM、XADM、CDM四個模塊。
Common Express Port Logic(CXPL)模塊:實現(xiàn)PCIe物理層、鏈路層和事務(wù)層的基本功能。該模塊實現(xiàn)了大部分事務(wù)層邏輯、所有數(shù)據(jù)鏈路層邏輯和物理層的MAC部分,包括鏈路訓(xùn)練和狀態(tài)狀態(tài)機(LTSSM)。CXPL通過PIPE與外部PHY連接。
Transmit Application- Dependent Module(XADM)模塊:實現(xiàn)PCIe 事務(wù)層用于數(shù)據(jù)包傳輸?shù)膽?yīng)用功能。其功能包括:
- TLP仲裁TLP形成流量控制credit檢查
Receive Application- Dependent Module(RADM)模塊:實現(xiàn)用于數(shù)據(jù)包接收的PCIe事務(wù)層的應(yīng)用功能。其功能包括:
-
- 對接收到的TLP進行排序/過濾。過濾規(guī)則和路由是可配置的。對接收到的TLP進行緩沖和排隊。接收到的TLP到控制器接收接口的路由。
- RADM維護一個接收完成查找表(LUT),用于完成跟蹤和完成超時監(jiān)控TX未提交的請求。當(dāng)預(yù)期的RX完成沒有在超時時間內(nèi)到達時,它表示一個超時。
Configuration- Dependent Module(CDM)模塊:其功能包括:
- 標(biāo)準(zhǔn)PCIe配置空間控制器特定的寄存器空間(端口邏輯寄存器)
帶有AXI Bridge模塊的PCIe控制器的詳細框圖如下:
AXI Bridge模塊:實現(xiàn)PCIe控制器native接口與AXI接口的轉(zhuǎn)換。
Transmit Application Interface Module (XAIM)模塊:該模塊與應(yīng)用程序接口,用于數(shù)據(jù)包傳輸。該模塊形成PCIe TLP頭,并可選地實現(xiàn)地址轉(zhuǎn)換功能。
電源管理控制器(Power Management Controller,PMC):實現(xiàn)控制器電源管理功能。LBC(Local Bus Controller):為本地CPU(通過DBI)提供了一種訪問內(nèi)部寄存器(在CDM中)的機制。數(shù)據(jù)總線接口(Data Bus Interface,DBI):?DBI模塊為本地CPU訪問內(nèi)部寄存器(在CDM中)提供了一種機制。消息生成模塊(MSG_GEN):用于傳輸控制器產(chǎn)生的消息。熱插拔控制模塊(HOTPLUG):實現(xiàn)對熱插拔事件產(chǎn)生中斷的邏輯。CXS控制器:用于CML (Coherent Multichip Links)。XALI?: Transmit Interfaces。VMI?: Vendor Message Interface。SII?: System Information Interface。
PCIe控制器的初始化流程:
1、application設(shè)置app_ltssm_enable為0來disable link training。
2、在鏈路訓(xùn)練之前,application可通過DBI接口配置控制器的寄存器。
3、application設(shè)置app_ltssm_enable為1,控制器開始進行鏈路訓(xùn)練。
4、確認鏈路建立完成。
5、RC開始枚舉Downstream Device
讀取Downstream device的配置空間;
配置device的capabilities;
配置switch port的base和limit寄存器,以反映device enumerated downstream的BAR的范圍;
配置endpoint的BAR。
6、Host軟件使能BME(Bus Manager Enable)、MSE(Memory Space Enable)、ISE(I/O Space Enable)。
7、開始傳輸數(shù)據(jù)。