在數(shù)字經(jīng)濟(jì)飛速發(fā)展的今天,數(shù)據(jù)傳輸速率已成為硬件性能突破的核心瓶頸。作為國內(nèi)首款適配中端FPGA的PCIe Gen4高速接口方案,鈦金高速接口的閃亮登場(chǎng),憑借高速低功耗特性、靈活配置能力與全面協(xié)議支持,成為FPGA硬件設(shè)備實(shí)現(xiàn)高速互聯(lián)的首要選擇。其控制器硬件架構(gòu)由物理介質(zhì)附加層(PMA)和物理編碼子層(PCS)兩大核心模塊組成,其中PCS硬核支持SGMII、10GBase-R、PCIe Gen4及PMA Direct等多種協(xié)議。
Part 01 簡(jiǎn)介
從性能參數(shù)來看,鈦金PCIe控制器的硬實(shí)力尤為突出:其最高支持Gen4 x4的鏈路配置,單Lane速率可達(dá)16Gbps,整個(gè)鏈路的理論帶寬最高可達(dá)64Gbps,相比友商的PCIe Gen3(單Lane 8Gbps)實(shí)現(xiàn)了速率翻倍,意味著數(shù)據(jù)傳輸效率直接翻倍提升;且單芯片可支持兩個(gè)PCIe硬核控制器,能夠輕松應(yīng)對(duì)大型文件傳輸、高清視頻流處理、算力密集型計(jì)算等高速數(shù)據(jù)交互場(chǎng)景。

在工作模式上,這款控制器提供了極強(qiáng)的靈活性,可根據(jù)實(shí)際應(yīng)用需求配置為端點(diǎn)(EP)模式或根端口(RP)模式,適配不同的硬件拓?fù)浼軜?gòu)。從數(shù)據(jù)流向來看,用戶側(cè)發(fā)起的PCIe操作會(huì)通過AXI4從端口驅(qū)動(dòng),而主機(jī)側(cè)發(fā)起的操作則由AXI4主端口承載,這種雙端口設(shè)計(jì)讓控制器既能作為“數(shù)據(jù)接收端”響應(yīng)外部請(qǐng)求,也能作為“數(shù)據(jù)發(fā)起端”主動(dòng)發(fā)起交互,完美適配復(fù)雜系統(tǒng)中的數(shù)據(jù)交互需求。

無論是服務(wù)器、工業(yè)控制設(shè)備,還是高端顯卡、存儲(chǔ)陣列,鈦金PCIe Gen4控制器都能憑借其低功耗、高速率、高兼容性的優(yōu)勢(shì),成為連接硬件組件的“高速橋梁”。接下來,我們將深入解析其核心特性與技術(shù)細(xì)節(jié),帶大家全面認(rèn)識(shí)這款PCIe硬核控制器。
Part 02 核心特性
基于鈦金PCIe控制器的硬件架構(gòu)與協(xié)議支持,其核心特性圍繞“高速、靈活、穩(wěn)定、低耗”四大維度展開,既充分發(fā)揮了PCIe Gen4的協(xié)議優(yōu)勢(shì),又針對(duì)實(shí)際應(yīng)用場(chǎng)景進(jìn)行了深度優(yōu)化,具體特性如下:
2.1 極致速率與帶寬,釋放Gen4潛力
控制器最高支持PCIe Gen4 x4鏈路配置,單Lane傳輸速率穩(wěn)定在16Gbps,鏈路總帶寬可達(dá)64Gbps。這一性能指標(biāo)意味著數(shù)據(jù)傳輸延遲大幅降低,單位時(shí)間內(nèi)可傳輸?shù)臄?shù)據(jù)量翻倍,能夠滿足算力密集型場(chǎng)景(如AI推理、高性能計(jì)算)和大數(shù)據(jù)吞吐場(chǎng)景(如分布式存儲(chǔ)、4K/8K視頻編輯)的核心需求。相比友商產(chǎn)品,無需通過增加鏈路數(shù)量即可實(shí)現(xiàn)帶寬翻倍提升,有效降低了硬件設(shè)計(jì)的復(fù)雜度與成本。在PCIe Gen4 x4硬核讀寫帶寬測(cè)試中,寫速度持續(xù)超過7500MB/s,讀速度持續(xù)超過7400MB/s。
2.2 雙模式配置 + AXI4-MM接口,適配多元場(chǎng)景
支持端點(diǎn)(EP)和根端口(RP)兩種工作模式,可靈活融入不同的系統(tǒng)拓?fù)?。EP模式下,控制器作為外設(shè)接口與主機(jī)互聯(lián)(如顯卡、網(wǎng)卡等外設(shè)場(chǎng)景);RP模式下,控制器可作為系統(tǒng)主控制器連接多個(gè)外設(shè)(如SSD、WiFi6等主控場(chǎng)景)。同時(shí),通過AXI4-MM主/從端口實(shí)現(xiàn)數(shù)據(jù)交互,AXI4-MM協(xié)議作為業(yè)界主流的高性能總線協(xié)議,具備突發(fā)傳輸、亂序訪問等優(yōu)勢(shì),能夠與FPGA邏輯架構(gòu)高效協(xié)同,提升系統(tǒng)整體數(shù)據(jù)處理效率。
2.3 完整中斷與消息機(jī)制,保障信號(hào)響應(yīng)及時(shí)
配備專用中斷接口和帶內(nèi)消息中斷接口,全面支持傳統(tǒng)中斷、MSI和MSI-X三種中斷模式。傳統(tǒng)中斷適用于簡(jiǎn)單場(chǎng)景的信號(hào)反饋,MSI通過將中斷封裝為消息包傳輸,減少了中斷請(qǐng)求的資源占用,而MSI-X則支持更多獨(dú)立中斷向量,能為多設(shè)備、多任務(wù)場(chǎng)景提供精準(zhǔn)的中斷響應(yīng)。三種模式的靈活適配,確保了從簡(jiǎn)單工業(yè)控制到復(fù)雜服務(wù)器系統(tǒng)等不同場(chǎng)景下,設(shè)備狀態(tài)變化都能被及時(shí)捕獲和處理。
2.4 虛擬化與多功能支持,應(yīng)對(duì)復(fù)雜系統(tǒng)需求
支持SR-IOV(單根I/O虛擬化)技術(shù),最多可配置4個(gè)物理函數(shù)(PF),每個(gè)物理函數(shù)又能支持多達(dá)16個(gè)虛擬函數(shù)(VF),總計(jì)支持64個(gè)虛擬函數(shù)。這一特性讓單塊PCIe設(shè)備能被多個(gè)虛擬機(jī)共享,無需為每個(gè)虛擬機(jī)配置獨(dú)立硬件,大幅提升了服務(wù)器等虛擬化場(chǎng)景的硬件利用率。同時(shí),多PF/VF的配置能力也讓控制器能同時(shí)承載多個(gè)獨(dú)立的業(yè)務(wù)負(fù)載,滿足復(fù)雜系統(tǒng)的多功能集成需求。
2.5 高級(jí)錯(cuò)誤報(bào)告與流量?jī)?yōu)化,提升系統(tǒng)可靠性
具備高級(jí)錯(cuò)誤報(bào)告(AER)功能,能夠?qū)崟r(shí)監(jiān)測(cè)傳輸過程中的各類錯(cuò)誤并詳細(xì)記錄錯(cuò)誤類型、位置等信息,方便工程師快速定位故障根源,降低系統(tǒng)維護(hù)成本。同時(shí)支持TLP處理提示(TPH)和路由標(biāo)簽(Steering Tag)技術(shù),TPH能讓主機(jī)提前知曉數(shù)據(jù)包的處理優(yōu)先級(jí),優(yōu)化緩存利用效率;路由標(biāo)簽則可實(shí)現(xiàn)數(shù)據(jù)包的精準(zhǔn)路由,避免傳輸擁堵,進(jìn)一步提升了數(shù)據(jù)傳輸?shù)牧鲿承院拖到y(tǒng)穩(wěn)定性。
2.6 靈活復(fù)位與電源管理,平衡性能與功耗
支持功能級(jí)復(fù)位(FLR)和多種電源管理狀態(tài),F(xiàn)LR允許只復(fù)位單個(gè)PCIe功能而不影響整個(gè)鏈路或其他功能,特別適合多設(shè)備共享鏈路的場(chǎng)景(如服務(wù)器多網(wǎng)卡配置),避免了局部故障導(dǎo)致整體系統(tǒng)重啟。電源管理方面則覆蓋L0s、L1、L1子狀態(tài)及L2等多種低功耗模式,可根據(jù)系統(tǒng)負(fù)載動(dòng)態(tài)調(diào)整功耗,在保證高性能的同時(shí)降低待機(jī)或輕載狀態(tài)下的能源消耗,適配移動(dòng)設(shè)備、工業(yè)控制器等對(duì)功耗敏感的場(chǎng)景。在實(shí)際運(yùn)行功耗測(cè)試中,功耗優(yōu)于友商40%左右。

Part 03 功能描述
PCIe協(xié)議的核心優(yōu)勢(shì)在于其清晰的分層架構(gòu)設(shè)計(jì),鈦金PCIe硬核控制器嚴(yán)格遵循這一架構(gòu),通過物理層、數(shù)據(jù)鏈路層、事務(wù)層的協(xié)同工作,實(shí)現(xiàn)了高速、可靠的數(shù)據(jù)傳輸。這三層架構(gòu)如同“高速物流系統(tǒng)”:物理層是“運(yùn)輸公路”,負(fù)責(zé)數(shù)據(jù)的物理傳輸;數(shù)據(jù)鏈路層是“物流調(diào)度中心”,保障數(shù)據(jù)傳輸?shù)耐暾?;事?wù)層是“快遞分揀中心”,負(fù)責(zé)數(shù)據(jù)的定向分發(fā)。下面我們逐一拆解各層的工作機(jī)制。

3.1物理層
物理層是PCIe數(shù)據(jù)傳輸?shù)奈锢磔d體,完成PCS到PMA之間的數(shù)據(jù)交互,處理傳輸過程中的信號(hào)同步、失真校準(zhǔn)等問題。鈦金PCIe硬核控制器的物理層設(shè)計(jì)充分適配Gen4的高速特性,具體工作流程如下:
3.1.1接收(RX)側(cè)工作流程
數(shù)據(jù)通過PIPE接口從PMA輸入,每個(gè)Lane采用32位接口,時(shí)鐘頻率根據(jù)鏈路速率可配置為62MHz、125MHz、250MHz或500MHz(對(duì)應(yīng)不同PCIe速率)。
數(shù)據(jù)首先被轉(zhuǎn)換到核心時(shí)鐘域,確保與控制器內(nèi)部邏輯時(shí)鐘同步。
每個(gè)Lane的數(shù)據(jù)獨(dú)立進(jìn)行解擾處理,恢復(fù)原始數(shù)據(jù)。
通過SKP序列(跳過序列)對(duì)多Lane數(shù)據(jù)進(jìn)行去偏斜處理,確保所有Lane的數(shù)據(jù)包對(duì)齊,避免因傳輸延遲差異導(dǎo)致的數(shù)據(jù)錯(cuò)亂。
幀解碼器解析對(duì)齊后的數(shù)據(jù)包,移除起始符(SOP)和結(jié)束符(EOP)等幀定界符,同時(shí)識(shí)別數(shù)據(jù)包類型并檢測(cè)傳輸錯(cuò)誤,最終將處理后的數(shù)據(jù)包發(fā)送至數(shù)據(jù)鏈路層。

3.1.2發(fā)送(TX)側(cè)工作流程
從數(shù)據(jù)鏈路層接收128位寬的數(shù)據(jù)包及旁帶信號(hào)。
幀編碼器為數(shù)據(jù)包添加SOP和EOP定界符,確保接收端能正確識(shí)別數(shù)據(jù)包邊界,并將數(shù)據(jù)包對(duì)齊到對(duì)應(yīng)的傳輸Lane上。
數(shù)據(jù)包與鏈路訓(xùn)練狀態(tài)機(jī)(LTSSM)生成的訓(xùn)練序列進(jìn)行多路復(fù)用,鏈路訓(xùn)練階段會(huì)屏蔽數(shù)據(jù)傳輸,由LTSSM控制各Lane進(jìn)行協(xié)商;正常傳輸時(shí)則優(yōu)先發(fā)送數(shù)據(jù)。
每個(gè)Lane的數(shù)據(jù)包獨(dú)立進(jìn)行擾碼處理,然后通過PIPE接口輸出到PMA。

3.1.3關(guān)鍵技術(shù):SRIS與 RX Lane Margining
SRIS:支持獨(dú)立參考時(shí)鐘擴(kuò)頻(SRIS)技術(shù),支持的頻偏可達(dá)5600ppm。在SRIS模式下,控制器會(huì)按固定間隔發(fā)送SKP OS(跳過有序集),8b/10b編碼模式下每128個(gè)符號(hào)發(fā)送一次,128b/130b編碼模式下每32個(gè)塊發(fā)送一次,用于補(bǔ)償時(shí)鐘偏差。若遇到大型TLP(事務(wù)層數(shù)據(jù)包)無法按時(shí)發(fā)送,會(huì)累積SKP OS并在TLP傳輸結(jié)束后集中發(fā)送,確保時(shí)鐘同步不中斷。
RX Lane Margining:接收端容限測(cè)試功能,允許系統(tǒng)軟件在鏈路處于L0(正常工作)狀態(tài)時(shí),檢測(cè)接收端在不同時(shí)序和電壓條件下的傳輸余量。支持所有Lane同時(shí)進(jìn)行容限測(cè)試,適配PIPE 4.4.1接口,通過可編程寄存器配置測(cè)試參數(shù)。該功能能提前發(fā)現(xiàn)接收端的穩(wěn)定性隱患,幫助工程師優(yōu)化硬件設(shè)計(jì)或調(diào)整傳輸參數(shù),避免因電壓波動(dòng)、時(shí)序偏差導(dǎo)致的數(shù)據(jù)錯(cuò)誤。
3.1.4鏈路訓(xùn)練與狀態(tài)機(jī)(LTSSM)
物理層的核心控制邏輯是LTSSM,負(fù)責(zé)鏈路初始化、速率協(xié)商、狀態(tài)監(jiān)測(cè)等關(guān)鍵操作。上電或復(fù)位后,LTSSM會(huì)自動(dòng)與對(duì)端設(shè)備進(jìn)行協(xié)商,確定鏈路速率(如Gen4 16Gbps)、鏈路寬度(如x4)等參數(shù),并通過訓(xùn)練序列校準(zhǔn)信號(hào)時(shí)序,確保鏈路穩(wěn)定后再進(jìn)入數(shù)據(jù)傳輸狀態(tài)。若傳輸過程中出現(xiàn)信號(hào)異常,LTSSM會(huì)自動(dòng)觸發(fā)鏈路恢復(fù)流程,若恢復(fù)失敗則會(huì)通知上層進(jìn)行錯(cuò)誤處理,是保障物理層可靠性的“核心大腦”。
3.2 數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層位于物理層與事務(wù)層之間,核心職責(zé)是保障數(shù)據(jù)傳輸?shù)耐暾院陀行蛐裕喈?dāng)于為數(shù)據(jù)傳輸添加了“安全防護(hù)網(wǎng)”,主要通過以下機(jī)制實(shí)現(xiàn):
3.2.1接收(RX)側(cè)工作流程
從物理層接收去除幀定界符后的數(shù)據(jù)包,首先通過CRC校驗(yàn)器驗(yàn)證數(shù)據(jù)包的LCRC(鏈路層CRC),檢測(cè)數(shù)據(jù)在傳輸過程中是否因干擾發(fā)生錯(cuò)誤。
若LCRC校驗(yàn)通過,剝離LCRC字段后將數(shù)據(jù)包轉(zhuǎn)發(fā)至事務(wù)層;若校驗(yàn)失敗,會(huì)根據(jù)錯(cuò)誤類型觸發(fā)重傳請(qǐng)求或錯(cuò)誤報(bào)告,確保錯(cuò)誤數(shù)據(jù)不被上層處理。
獨(dú)立的狀態(tài)機(jī)負(fù)責(zé)數(shù)據(jù)鏈路層初始化,與對(duì)端設(shè)備協(xié)商流量控制、重傳機(jī)制等參數(shù),確保雙方工作模式一致。

3.2.2發(fā)送(TX)側(cè)工作流程
從事務(wù)層接收128位寬的數(shù)據(jù)包,為其添加LCRC字段(用于接收端校驗(yàn)),確保數(shù)據(jù)完整性可驗(yàn)證。
將數(shù)據(jù)鏈路層數(shù)據(jù)包(如ACK確認(rèn)包、流量控制DLLP)與事務(wù)層TLP進(jìn)行多路復(fù)用,按優(yōu)先級(jí)調(diào)度傳輸順序,確保確認(rèn)包、流量控制包等關(guān)鍵信號(hào)優(yōu)先傳輸,避免數(shù)據(jù)擁堵。
數(shù)據(jù)包存儲(chǔ)在重放緩沖區(qū)中,若未收到對(duì)端的ACK確認(rèn),會(huì)自動(dòng)重傳該數(shù)據(jù)包,直到確認(rèn)接收或觸發(fā)超時(shí)錯(cuò)誤,徹底解決數(shù)據(jù)丟失問題。

3.2.3核心機(jī)制:流量控制與重傳保障
流量控制:采用基于信用的流量控制機(jī)制,對(duì)端設(shè)備會(huì)定期告知當(dāng)前可用的接收緩沖區(qū)大?。ㄐ庞弥担径丝刂破鲀H在信用值充足時(shí)發(fā)送數(shù)據(jù)包,避免因接收端緩沖區(qū)溢出導(dǎo)致數(shù)據(jù)丟失。
重傳機(jī)制:重放緩沖區(qū)會(huì)暫存已發(fā)送但未確認(rèn)的數(shù)據(jù)包,接收端通過ACK DLLP(數(shù)據(jù)鏈路層數(shù)據(jù)包)確認(rèn)正確接收,若超時(shí)未收到確認(rèn)或收到NACK(否定確認(rèn)),則從緩沖區(qū)中取出數(shù)據(jù)包重新發(fā)送,確保數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
3.2.4數(shù)據(jù)鏈路層特性交換與流量控制擴(kuò)展
數(shù)據(jù)鏈路特性交換:支持PCIe 4.0規(guī)范中的數(shù)據(jù)鏈路特性交換功能,通過配置寄存器啟用后,控制器會(huì)在鏈路進(jìn)入L0狀態(tài)后發(fā)送特性DLLP,與對(duì)端協(xié)商流量控制等參數(shù)。若對(duì)端不支持該功能,控制器會(huì)在收到INITFC1 DLLP后切換至初始化狀態(tài),確保兼容性。
擴(kuò)展流量控制:支持縮放流量控制,可通過寄存器修改縮放因子和信用限制。接收端會(huì)向?qū)Χ送ǜ骖^部和有效載荷的最大信用值,發(fā)送端根據(jù)信用值調(diào)整傳輸節(jié)奏,避免緩沖區(qū)溢出。若檢測(cè)到流量控制協(xié)議違規(guī)(如超出信用額度限制),會(huì)觸發(fā)FCPE(流量控制協(xié)議錯(cuò)誤)并上報(bào)。
3.2.5 ACK聚合:提升傳輸效率
控制器支持ACK DLLP聚合功能,優(yōu)化傳輸效率:正常情況下,每個(gè)接收的TLP對(duì)應(yīng)一個(gè)ACK DLLP;若發(fā)送端正忙于傳輸TLP,ACK DLLP會(huì)等待當(dāng)前TLP傳輸完成后發(fā)送。若等待期間收到新的TLP,控制器會(huì)將多ACK DLLP聚合為一個(gè),攜帶最高序列號(hào),減少DLLP的傳輸數(shù)量,節(jié)省鏈路帶寬。
3.3 事務(wù)層
事務(wù)層是PCIe硬核的“上層大腦”,負(fù)責(zé)數(shù)據(jù)包的解析、路由、調(diào)度,以及與應(yīng)用層(如AXI接口)的交互,核心是將應(yīng)用層的請(qǐng)求轉(zhuǎn)換為PCIe協(xié)議支持的TLP,同時(shí)將接收的TLP轉(zhuǎn)換為應(yīng)用層可識(shí)別的數(shù)據(jù)格式。
3.3.1接收(RX)側(cè)工作流程
從數(shù)據(jù)鏈路層接收經(jīng)過完整性校驗(yàn)的數(shù)據(jù)包,存入接收FIFO緩沖區(qū),確保只有完整的數(shù)據(jù)包才會(huì)被處理,避免碎片化數(shù)據(jù)導(dǎo)致的解析錯(cuò)誤。
對(duì)數(shù)據(jù)包進(jìn)行解碼,識(shí)別TLP的類型(如內(nèi)存讀寫、I/O讀寫、配置讀寫、消息包等)、目標(biāo)地址、數(shù)據(jù)長度等關(guān)鍵信息。
根據(jù)解碼結(jié)果,將數(shù)據(jù)包轉(zhuǎn)發(fā)至對(duì)應(yīng)的主機(jī)接口(Posted包無需確認(rèn),如寫操作;Non-Posted包需確認(rèn),如讀操作)或完成包(Completion)接口,避免不同類型數(shù)據(jù)包的傳輸沖突。
對(duì)于中斷消息等特殊數(shù)據(jù)包,直接轉(zhuǎn)發(fā)至內(nèi)部中斷處理模塊,確保及時(shí)響應(yīng)。

3.3.2發(fā)送(TX)側(cè)工作流程
從客戶端邏輯(如AXI應(yīng)用層)接收數(shù)據(jù)請(qǐng)求,按請(qǐng)求類型(Posted/Non-Posted/完成包)通過獨(dú)立接口傳入事務(wù)層。
狀態(tài)機(jī)對(duì)請(qǐng)求進(jìn)行處理,封裝為符合PCIe協(xié)議的TLP,添加必要的頭部信息(如地址、長度、類型標(biāo)識(shí))和ECRC(可選)。
按優(yōu)先級(jí)對(duì)TLP進(jìn)行調(diào)度,優(yōu)先傳輸高優(yōu)先級(jí)請(qǐng)求(如緊急消息、完成包),并通過公共數(shù)據(jù)路徑轉(zhuǎn)發(fā)至數(shù)據(jù)鏈路層,確保傳輸效率。

3.3.3核心價(jià)值:靈活適配與精準(zhǔn)路由
事務(wù)層的設(shè)計(jì)核心是“適配性”和“高效性”:通過對(duì)不同類型請(qǐng)求的分類處理,適配內(nèi)存訪問、I/O控制、配置管理等多種應(yīng)用場(chǎng)景;通過優(yōu)先級(jí)調(diào)度和獨(dú)立接口設(shè)計(jì),避免傳輸擁堵;通過TLP頭部的精準(zhǔn)編碼,實(shí)現(xiàn)數(shù)據(jù)包的定向路由,確保數(shù)據(jù)能準(zhǔn)確送達(dá)目標(biāo)設(shè)備或應(yīng)用模塊,是連接應(yīng)用層與底層傳輸?shù)摹瓣P(guān)鍵橋梁”。
3.4 AXI 應(yīng)用層
AXI(Advanced eXtensible Interface)作為ARM推出的高性能總線協(xié)議,是鈦金PCIe控制器連接用戶邏輯(如FPGA內(nèi)部模塊、DMA引擎、內(nèi)存控制器)的核心接口。簡(jiǎn)單來說,AXI應(yīng)用層就像一位“翻譯官”——將PCIe協(xié)議TLP(事務(wù)層數(shù)據(jù)包)轉(zhuǎn)換為AXI信號(hào),讓用戶邏輯無需理解復(fù)雜的PCIe協(xié)議就能直接交互;同時(shí)也能將用戶邏輯的AXI請(qǐng)求轉(zhuǎn)換為TLP,發(fā)送到PCIe鏈路上。

AXI 應(yīng)用層包含三大核心接口,分工明確:
AXI 主接口(Master Interface):接收PCIe鏈路傳來的請(qǐng)求(如主機(jī)對(duì)設(shè)備的讀寫),轉(zhuǎn)換為AXI信號(hào)發(fā)送給用戶邏輯(如設(shè)備的內(nèi)存控制器),是“設(shè)備接收外部請(qǐng)求”的通道。
AXI 從接口(Slave Interface):接收用戶邏輯發(fā)起的請(qǐng)求(如設(shè)備主動(dòng)讀取主機(jī)內(nèi)存),轉(zhuǎn)換為TLP發(fā)送到PCIe鏈路,是“設(shè)備主動(dòng)發(fā)起請(qǐng)求”的通道。
消息與中斷接口:處理PCIe鏈路上的消息包和中斷信號(hào),確保設(shè)備狀態(tài)能及時(shí)反饋給主機(jī)。
3.4.1 AXI 主接口讀操作:數(shù)據(jù)從PCIe到用戶邏輯的“按需提取”
AXI主接口讀操作負(fù)責(zé)將主機(jī)發(fā)起的“讀請(qǐng)求TLP”轉(zhuǎn)換為AXI信號(hào),從用戶邏輯中讀取數(shù)據(jù)并返回給主機(jī)。讀操作是“分裂事務(wù)”(地址和數(shù)據(jù)通道分離),就像先提交“取件單”(地址),再領(lǐng)取“包裹”(數(shù)據(jù)),流程清晰且高效。

地址通道發(fā)起請(qǐng)求:控制器解析讀請(qǐng)求TLP后,通過AXI主接口的地址通道向用戶邏輯發(fā)送請(qǐng)求參數(shù),包括TARGET_AXI_ARADDR(讀起始地址)、TARGET_AXI_ARLEN(突發(fā)傳輸長度)、TARGET_AXI_ARSIZE(數(shù)據(jù)包大?。┑?,同時(shí)斷言TARGET_AXI_ARVALID信號(hào)表示地址有效。
用戶邏輯確認(rèn)地址:用戶邏輯準(zhǔn)備好后,斷言TARGET_AXI_ARREADY信號(hào),告知控制器“可開始讀取數(shù)據(jù)”。
數(shù)據(jù)通道返回?cái)?shù)據(jù):用戶邏輯通過數(shù)據(jù)通道TARGET_AXI_RDATA發(fā)送數(shù)據(jù),斷言TARGET_AXI_RVALID表示數(shù)據(jù)有效,TARGET_AXI_RLAST標(biāo)記最后一包數(shù)據(jù)??刂破魍ㄟ^TARGET_AXI_RREADY信號(hào)控制接收節(jié)奏,確保數(shù)據(jù)穩(wěn)定接收。
特殊場(chǎng)景處理:若TLP長度超過AXI最大突發(fā)長度,控制器會(huì)將其拆分為多個(gè)AXI讀事務(wù),用相同的TARGET_AXI_ARID標(biāo)記,確保數(shù)據(jù)順序正確;對(duì)于非對(duì)齊地址的TLP,控制器會(huì)自動(dòng)調(diào)整讀取范圍,覆蓋所需字節(jié)后過濾無效數(shù)據(jù)。
3.4.2 AXI 主接口寫操作:數(shù)據(jù)從PCIe到用戶邏輯的“精準(zhǔn)投遞”
AXI主接口寫操作負(fù)責(zé)將PCIe鏈路上收到的“寫請(qǐng)求TLP”轉(zhuǎn)換為AXI信號(hào),最終寫入用戶邏輯的內(nèi)存或寄存器。與讀操作的“地址先發(fā)、數(shù)據(jù)后到”不同,寫操作的地址和數(shù)據(jù)通道是并行的,就像“快遞單”和“包裹”同時(shí)發(fā)出,效率更高。

寫操作的基本流程
地址通道啟動(dòng):PCIe控制器收到主機(jī)發(fā)來的寫請(qǐng)求TLP后,解析出目標(biāo)地址、數(shù)據(jù)長度、突發(fā)傳輸參數(shù)等信息,通過AXI主接口的地址通道發(fā)送給用戶邏輯。關(guān)鍵信號(hào)包括TARGET_AXI_AWADDR(寫起始地址)、TARGET_AXI_AWLEN(突發(fā)傳輸長度)、TARGET_AXI_AWSIZE(單個(gè)數(shù)據(jù)包大?。?、TARGET_AXI_AWVALID(地址有效信號(hào))。
用戶邏輯確認(rèn)地址:用戶邏輯(如內(nèi)存控制器)收到地址后,通過TARGET_AXI_AWREADY信號(hào)確認(rèn)“已收到地址,可以接收數(shù)據(jù)”。
數(shù)據(jù)通道傳輸:地址確認(rèn)的同時(shí),PCIe控制器通過數(shù)據(jù)通道發(fā)送實(shí)際數(shù)據(jù),關(guān)鍵信號(hào)包括TARGET_AXI_WDATA(待寫入的數(shù)據(jù))、TARGET_AXI_WSTRB(字節(jié)掩碼,標(biāo)記有效字節(jié))、TARGET_AXI_WLAST(最后一個(gè)數(shù)據(jù)標(biāo)記)、TARGET_AXI_WVALID(數(shù)據(jù)有效信號(hào))。
用戶邏輯確認(rèn)數(shù)據(jù):用戶邏輯接收數(shù)據(jù)后,通過TARGET_AXI_WREADY信號(hào)確認(rèn)“數(shù)據(jù)已接收”。
寫響應(yīng)反饋:所有數(shù)據(jù)傳輸完成后,用戶邏輯通過響應(yīng)通道(TARGET_AXI_BRESP)反饋寫操作結(jié)果(如“成功”“地址錯(cuò)誤”),PCIe控制器再將結(jié)果封裝為完成TLP,回傳給主機(jī)。
關(guān)鍵特性與特殊場(chǎng)景
突發(fā)傳輸拆分:若PCIe TLP的長度超過AXI支持的最大突發(fā)長度,控制器會(huì)自動(dòng)將TLP拆分為多個(gè)AXI突發(fā)傳輸,用相同的TARGET_AXI_AWID標(biāo)記,保證用戶邏輯能按順序拼接。
錯(cuò)誤標(biāo)記轉(zhuǎn)發(fā):支持Poison Bit(錯(cuò)誤標(biāo)記位)轉(zhuǎn)發(fā),帶錯(cuò)誤標(biāo)記的TLP會(huì)通過TARGET_AXI_AWUSER[43]位告知用戶邏輯,非投遞式(Non-Posted)寫請(qǐng)求的錯(cuò)誤響應(yīng)會(huì)通過MASTER_AXI_BUSER信號(hào)標(biāo)記,形成完整的錯(cuò)誤溯源鏈。
嚴(yán)格排序:Posted寫和Non-Posted寫使用相同TARGET_AXI_AWID時(shí),控制器會(huì)等待前一個(gè)Non-Posted寫完成后再發(fā)送下一個(gè),避免數(shù)據(jù)亂序。
零長度與非連續(xù)寫入:忽略零長度寫TLP(AXI不支持);非連續(xù)寫入通過TARGET_AXI_WSTRB標(biāo)記有效字節(jié),用戶邏輯僅寫入指定字節(jié)。
3.4.3 AXI從接口讀操作:主動(dòng)拉取外部數(shù)據(jù)的“自主取件”
AXI從接口讀操作負(fù)責(zé)將用戶邏輯發(fā)起的“外部數(shù)據(jù)讀取請(qǐng)求”轉(zhuǎn)換為Non-Posted讀TLP,發(fā)送至PCIe鏈路(如主機(jī)內(nèi)存),并將獲取到的數(shù)據(jù)返回給用戶邏輯。讀操作是設(shè)備“主動(dòng)發(fā)起、按需獲取”的過程,就像自主提交“取件申請(qǐng)”(地址請(qǐng)求),等待外部響應(yīng)后領(lǐng)取“數(shù)據(jù)包裹”,流程獨(dú)立且靈活。

操作的基本流程
地址通道發(fā)起請(qǐng)求:用戶邏輯通過AXI從接口的讀地址通道(MASTER_AXI_AR*)發(fā)送請(qǐng)求參數(shù),包括目標(biāo)地址、突發(fā)傳輸長度、數(shù)據(jù)包大小等,同時(shí)斷言MASTER_AXI_ARVALID信號(hào)表示地址有效。控制器需滿足兩個(gè)條件才會(huì)接收請(qǐng)求:①鏈路信用充足(確保TLP可正常發(fā)送);②分裂完成表未存滿,隨后斷言MASTER_AXI_ARREADY信號(hào)確認(rèn)接收。
封裝TLP并發(fā)送:控制器將用戶邏輯的請(qǐng)求封裝為符合PCIe協(xié)議的Non-Posted讀TLP,同時(shí)在分裂完成表中記錄請(qǐng)求狀態(tài)(如請(qǐng)求標(biāo)簽、目標(biāo)地址、數(shù)據(jù)長度等),避免請(qǐng)求丟失或亂序。
待外部數(shù)據(jù)響應(yīng):控制器持續(xù)監(jiān)測(cè)PCIe鏈路,等待外部(如主機(jī))返回的“完成TLP”(攜帶請(qǐng)求的數(shù)據(jù)),期間保持分裂完成表中的請(qǐng)求狀態(tài)為“未完成”。
數(shù)據(jù)通道返回?cái)?shù)據(jù):收到完成TLP后,控制器解析數(shù)據(jù)并通過讀數(shù)據(jù)通道(MASTER_AXI_R*)發(fā)送給用戶邏輯:MASTER_AXI_RDATA攜帶有效數(shù)據(jù),MASTER_AXI_RLAST標(biāo)記最后一包數(shù)據(jù),MASTER_AXI_RVALID表示數(shù)據(jù)有效。用戶邏輯通過MASTER_AXI_RREADY信號(hào)控制接收節(jié)奏,確保數(shù)據(jù)穩(wěn)定接收。
關(guān)鍵特性與特殊場(chǎng)景
請(qǐng)求權(quán)限限制:必須滿足四大使用條件才能發(fā)起讀請(qǐng)求:①僅根端口可發(fā)起I/O或配置讀請(qǐng)求,端點(diǎn)無此權(quán)限;②端點(diǎn)發(fā)起內(nèi)存讀需確保“總線主控使能位”(PCI命令寄存器)已設(shè)置(通過FUNCTION_STATUS信號(hào)查詢);③功能需處于D0 Active(正常工作)狀態(tài)(通過FUNCTION_POWER_STATE信號(hào)確認(rèn));④功能未執(zhí)行功能級(jí)復(fù)位(FLR),避免復(fù)位期間數(shù)據(jù)錯(cuò)亂。
地址與長度約束:請(qǐng)求長度受限于AXI_SLAVE_MAX_RD_TRANSFER_SIZE和MAX_READ_REQUEST_SIZE,若請(qǐng)求長度超過后者,控制器將直接拒絕處理。
分裂事務(wù)處理:若請(qǐng)求長度超過MAX_READ_REQUEST_SIZE且AXI_SLAVE_MAX_RD_TRANSFER_SIZE小于該值,控制器會(huì)按兩者最小值拆分事務(wù),所有拆分包使用相同請(qǐng)求標(biāo)簽,確保數(shù)據(jù)順序正確。
3.4.4 AXI從接口寫操作:主動(dòng)推送數(shù)據(jù)的“主動(dòng)投遞”
AXI從接口寫操作負(fù)責(zé)將用戶邏輯生成的數(shù)據(jù),通過主動(dòng)發(fā)起寫請(qǐng)求的方式發(fā)送至外部(如主機(jī)內(nèi)存、其他外設(shè)),核心是“設(shè)備自主發(fā)起、數(shù)據(jù)主動(dòng)推送”。與主接口寫操作的“被動(dòng)接收、并行傳輸”不同,從接口寫操作是設(shè)備的“主動(dòng)行為”,就像主動(dòng)聯(lián)系“收件人”(外部設(shè)備)并完成數(shù)據(jù)投遞,分為Posted(投遞式)和Non-Posted(非投遞式)兩種類型。

操作的基本流程
地址與數(shù)據(jù)并行發(fā)起:用戶邏輯通過寫地址通道(MASTER_AXI_AW*)發(fā)送目標(biāo)地址、突發(fā)傳輸參數(shù)等信息,同時(shí)通過寫數(shù)據(jù)通道(MASTER_AXI_W*)發(fā)送實(shí)際數(shù)據(jù):關(guān)鍵信號(hào)包括MASTER_AXI_AWADDR(寫起始地址)、MASTER_AXI_AWLEN(突發(fā)長度)、MASTER_AXI_WDATA(待寫數(shù)據(jù))、MASTER_AXI_WSTRB(字節(jié)掩碼,標(biāo)記有效字節(jié))、MASTER_AXI_WLAST(最后一包標(biāo)記),且同時(shí)斷言MASTER_AXI_AWVALID和MASTER_AXI_WVALID信號(hào)表示地址與數(shù)據(jù)均有效。
控制器接收請(qǐng)求:控制器滿足“鏈路信用充足+分裂完成表未滿”條件后,分別斷言MASTER_AXI_AWREADY(確認(rèn)地址)和MASTER_AXI_WREADY(確認(rèn)數(shù)據(jù)),接收地址參數(shù)與數(shù)據(jù)。
封裝TLP并發(fā)送:控制器根據(jù)請(qǐng)求類型封裝TLP:①Posted寫(如內(nèi)存寫)直接生成TLP發(fā)送至PCIe鏈路,無需等待響應(yīng);②Non-Posted寫(如I/O配置寫)封裝后發(fā)送,同時(shí)在分裂完成表中記錄請(qǐng)求狀態(tài),等待外部完成響應(yīng)。
寫響應(yīng)反饋(僅Non-Posted寫):若為Non-Posted寫,控制器收到外部返回的“完成TLP”(表示寫操作結(jié)果)后,通過響應(yīng)通道MASTER_AXI_BRESP向用戶邏輯反饋結(jié)果(如“成功”“地址錯(cuò)誤”),同時(shí)斷言MASTER_AXI_BVALID信號(hào)表示響應(yīng)有效。
關(guān)鍵特性與特殊場(chǎng)景
請(qǐng)求類型差異處理:Posted寫無需等待響應(yīng),傳輸效率更高(適用于大批量數(shù)據(jù)寫入);Non-Posted寫需等待響應(yīng),確保數(shù)據(jù)寫入成功(適用于關(guān)鍵配置信息寫入)。
嚴(yán)格信號(hào)約束:字節(jié)使能(WSTRB)必須連續(xù),不能出現(xiàn)離散有效位;突發(fā)傳輸過程中不能提前終止,需按預(yù)設(shè)長度完成數(shù)據(jù)發(fā)送,否則會(huì)導(dǎo)致協(xié)議違規(guī)。
出站訪問雙模式:支持兩種發(fā)起TLP的方式,適配不同場(chǎng)景:
靜態(tài)方式(基于區(qū)域):通過APB接口預(yù)編程“區(qū)域寄存器”,每個(gè)區(qū)域?qū)?yīng)一類TLP(如內(nèi)存讀、消息),包含固定頭部信息。用戶邏輯訪問該區(qū)域AXI地址時(shí),控制器自動(dòng)生成TLP,適合固定類型的重復(fù)請(qǐng)求。
動(dòng)態(tài)方式(邊帶描述符):用戶邏輯直接通過邊帶信號(hào)提供完整TLP信息(如頭部、數(shù)據(jù)長度),控制器直接封裝發(fā)送,適合TLP信息頻繁變化的場(chǎng)景,避免重復(fù)編程寄存器。
長度限制與拆分:請(qǐng)求長度受限于AXI_SLAVE_MAX_WR_TRANSFER_SIZE,若該值大于MAX_PAYLOAD_SIZE且請(qǐng)求長度超界,控制器會(huì)按MAX_PAYLOAD_SIZE拆分事務(wù),拆分包按順序發(fā)送并共享同一請(qǐng)求標(biāo)識(shí)。
3.4.5 入站消息接口:PCIe消息的“專用通道”
PCIe協(xié)議中,“消息”(Message)是一種特殊TLP,用于傳遞控制信號(hào)(如中斷、電源管理指令)。鈦金PCIe控制器設(shè)計(jì)了“入站消息接口”,專門處理從PCIe鏈路接收的消息,相當(dāng)于為消息開辟了“專用高速通道”,避免與普通數(shù)據(jù)傳輸沖突。
核心信號(hào)與傳輸規(guī)則
信號(hào)組成:包括MSG_VALID(消息有效)、MSG_START/MSG_END(消息邊界)、MSG_DATA(數(shù)據(jù)/頭部標(biāo)記)、MSG_BYTE_EN(字節(jié)使能)、MSG_VDH(廠商自定義頭部標(biāo)記),各信號(hào)協(xié)同指示消息的狀態(tài)和類型。
傳輸規(guī)則:接口與AXI時(shí)鐘同步,不支持背壓,需用戶外接FIFO(深度建議≥32)緩存消息;MSG_VALID為高時(shí)數(shù)據(jù)有效,傳輸頭部時(shí)MSG_BYTE_EN為低,數(shù)據(jù)傳輸時(shí)字節(jié)使能連續(xù)。
中斷消息的特殊處理
對(duì)于中斷類消息,控制器會(huì)在消息輸出的同時(shí)驅(qū)動(dòng)對(duì)應(yīng)的中斷信號(hào)(INTA_OUT至INTD_OUT),避免無效狀態(tài)切換;復(fù)位時(shí)所有中斷信號(hào)自動(dòng)撤銷,確保初始狀態(tài)一致。
3.4.6 入站PCIe到AXI地址轉(zhuǎn)換
PCIe設(shè)備與AXI用戶邏輯使用不同的地址空間,地址轉(zhuǎn)換的作用是“翻譯門牌號(hào)”,確保數(shù)據(jù)能準(zhǔn)確映射。根端口(RP)與端點(diǎn)(EP)的轉(zhuǎn)換規(guī)則略有不同:
根端口(RP)的地址轉(zhuǎn)換
根端口有2個(gè)基地址寄存器(BAR0、BAR1),未匹配的地址默認(rèn)使用BAR7。
轉(zhuǎn)換后的AXI地址由兩部分組成:高位來自地址轉(zhuǎn)換寄存器(addr0和addr1),低位來自PCIe地址的低N位(N=addr0[5:0]+1)。
端點(diǎn)(EP)的地址轉(zhuǎn)換
每個(gè)功能(PF/VF)有6個(gè)BAR,對(duì)應(yīng)6組地址轉(zhuǎn)換寄存器(每組含addr0和addr1)。
轉(zhuǎn)換邏輯與根端口一致,AXI地址的低位長度由BAR的地址空間大小決定,確保只映射所需的地址空間。
3.4.7 AXI 主從接口的長度限制
PCIe和AXI協(xié)議對(duì)單次事務(wù)的長度(數(shù)據(jù)量)有明確限制,鈦金控制器需遵循這些限制,避免協(xié)議違規(guī)導(dǎo)致的數(shù)據(jù)錯(cuò)誤:
出站傳輸限制(AXI 到 PCIe)
讀操作:受限于AXI_SLAVE_MAX_RD_TRANSFER_SIZE和MAX_READ_REQUEST_SIZE,若請(qǐng)求長度超過后者,控制器無法處理。
寫操作:受限于AXI_SLAVE_MAX_WR_TRANSFER_SIZE,若該值大于MAX_PAYLOAD_SIZE且請(qǐng)求長度超界,控制器會(huì)按MAX_PAYLOAD_SIZE拆分事務(wù)。
入站傳輸限制(PCIe 到 AXI)
寫操作:受限于MAX_PAYLOAD_SIZE,若AXI_MASTER_MAX_WR_TRANSFER_SIZE小于該值且TLP長度超界,按AXI_MASTER_MAX_WR_TRANSFER_SIZE拆分,所有拆分包使用相同AXI ID。
讀操作:受限于MAX_READ_REQUEST_SIZE,若AXI_MASTER_MAX_RD_TRANSFER_SIZE小于該值且TLP長度超界,按兩者最小值拆分,地址對(duì)齊到RCB(請(qǐng)求控制塊)邊界。
Part 04 四、中斷機(jī)制:設(shè)備與主機(jī)的“求救信號(hào)”
中斷是設(shè)備向主機(jī)反饋狀態(tài)的核心機(jī)制,相當(dāng)于設(shè)備的“求救信號(hào)”-當(dāng)設(shè)備發(fā)生特定事件(如數(shù)據(jù)接收完成、出現(xiàn)錯(cuò)誤)時(shí),通過中斷通知主機(jī)及時(shí)處理。鈦金PCIe控制器支持三種中斷模式,適配不同復(fù)雜度的應(yīng)用場(chǎng)景。
4.1 傳統(tǒng)中斷:簡(jiǎn)單場(chǎng)景的“基礎(chǔ)信號(hào)”
傳統(tǒng)中斷(Legacy Interrupt)是PCI協(xié)議的經(jīng)典中斷模式,適配簡(jiǎn)單場(chǎng)景的信號(hào)反饋,核心特點(diǎn)是“引腳模擬”:
控制器模擬4個(gè)PCI中斷引腳(INTA_IN、INTB_IN、INTC_IN、INTD_IN),多個(gè)功能可共享同一引腳,降低硬件資源占用。
端點(diǎn)側(cè)通過這4個(gè)引腳向控制器發(fā)送中斷信號(hào):引腳從低變高時(shí),控制器發(fā)送Assert_INTx消息;從高變低時(shí),發(fā)送Deassert_INTx消息,告知主機(jī)中斷的“斷言”與“撤銷”。
關(guān)鍵約束:使用傳統(tǒng)中斷時(shí)無法啟用MSI/MSI-X;發(fā)送中斷前需檢查對(duì)應(yīng)功能的“INTX禁用位”(通過FUNCTION_STATUS信號(hào)查詢),禁用狀態(tài)下不能發(fā)起中斷;信號(hào)轉(zhuǎn)換后需等待控制器的INT_ACK確認(rèn),才能發(fā)起下一次轉(zhuǎn)換。
適用場(chǎng)景:簡(jiǎn)單工業(yè)控制設(shè)備、低復(fù)雜度外設(shè),對(duì)中斷響應(yīng)速度和數(shù)量要求不高的場(chǎng)景。
4.2 MSI 中斷:高效簡(jiǎn)潔的“消息型信號(hào)”
MSI(Message Signaled Interrupt)是PCIe協(xié)議引入的中斷模式,核心是“用內(nèi)存寫TLP替代引腳信號(hào)”,大幅提升中斷效率和靈活性:
核心原理
MSI將中斷封裝為“內(nèi)存寫TLP”,包含目標(biāo)地址(主機(jī)內(nèi)存的中斷處理區(qū)域)和數(shù)據(jù)(中斷標(biāo)識(shí)信息)。設(shè)備發(fā)起中斷時(shí),無需操作引腳,直接向主機(jī)內(nèi)存發(fā)送該TLP,主機(jī)通過監(jiān)測(cè)內(nèi)存寫入事件識(shí)別中斷。
關(guān)鍵特性
支持每個(gè)功能最多32個(gè)獨(dú)立中斷向量(數(shù)據(jù)模式),每個(gè)向量可對(duì)應(yīng)不同的設(shè)備事件(如數(shù)據(jù)接收完成、發(fā)送超時(shí)、錯(cuò)誤告警),實(shí)現(xiàn)“精準(zhǔn)中斷”。
中斷地址和數(shù)據(jù)可通過配置寄存器靈活設(shè)置:主機(jī)通過配置寫初始化MSI地址(高低32位)、數(shù)據(jù)、掩碼寄存器,設(shè)備發(fā)起中斷時(shí)讀取這些參數(shù)生成TLP。
支持中斷掩碼與掛起:若中斷向量被掩碼(MSI_MASK位設(shè)置),設(shè)備會(huì)將中斷掛起(置位MSI_PENDING_STATUS),待掩碼清除后再發(fā)送中斷TLP。
適用場(chǎng)景:中高復(fù)雜度設(shè)備,如網(wǎng)卡、存儲(chǔ)控制器,需要多個(gè)中斷向量且對(duì)響應(yīng)速度有一定要求的場(chǎng)景。
工作流程
主機(jī)初始化:通過配置寫設(shè)置MSI地址、數(shù)據(jù)、掩碼和使能位(MSI_ENABLE)。
設(shè)備檢查:通過MSI_ENABLE信號(hào)確認(rèn)MSI已啟用,監(jiān)測(cè)中斷事件或掩碼清除事件。
中斷發(fā)送:若中斷未被掩碼,設(shè)備分配MSI區(qū)域,編程地址轉(zhuǎn)換和描述符寄存器,生成出站寫請(qǐng)求,數(shù)據(jù)為“向量號(hào)+MSI數(shù)據(jù)寄存器值”。
掛起處理:若中斷被掩碼,置位對(duì)應(yīng)掛起位,待掩碼清除后重復(fù)步驟3。
4.3 MSI-X 中斷:多向量場(chǎng)景的“終極方案”
MSI-X是MSI的增強(qiáng)版本,針對(duì)多任務(wù)、高復(fù)雜度設(shè)備設(shè)計(jì),核心優(yōu)勢(shì)是“更多向量、更靈活配置”:
核心改進(jìn)
支持每個(gè)功能最多2048個(gè)獨(dú)立中斷向量,遠(yuǎn)超MSI的32個(gè),可滿足多核心、多任務(wù)設(shè)備的精準(zhǔn)中斷需求(如高端FPGA、多端口網(wǎng)卡)。
每個(gè)向量可配置獨(dú)立的地址和數(shù)據(jù),無需共享地址空間,減少中斷沖突。
引入“MSI-X表”和“掛起位陣列(PBA)”:MSI-X表存儲(chǔ)每個(gè)向量的地址、數(shù)據(jù)和掩碼狀態(tài),PBA存儲(chǔ)每個(gè)向量的掛起狀態(tài),均存儲(chǔ)在設(shè)備內(nèi)存中,配置更靈活。
工作流程
設(shè)備初始化:編程MSI-X表和PBA的內(nèi)存地址(通過 MSI-X Table Offset Register和MSI-X Pending Interrupt Register )。
主機(jī)配置:讀取MSI-X表和PBA地址,初始化每個(gè)向量的地址、數(shù)據(jù),并啟用MSI-X(MSIX_ENABLE)。
中斷發(fā)送:設(shè)備監(jiān)測(cè)到中斷事件后,讀取對(duì)應(yīng)向量的表項(xiàng),若未被掩碼,分配MSI-X區(qū)域,生成出站寫TLP發(fā)送;若被掩碼,置位PBA中對(duì)應(yīng)位。
主機(jī)響應(yīng):主機(jī)接收TLP后,根據(jù)地址和數(shù)據(jù)識(shí)別向量,執(zhí)行中斷處理。
4.4 三種中斷模式的對(duì)比與選型建議
| 中斷模式 | 向量數(shù)量 | 核心優(yōu)勢(shì) | 適用場(chǎng)景 |
| 傳統(tǒng)中斷 |
最多4個(gè) (共享) |
硬件簡(jiǎn)單、兼容性好 | 低復(fù)雜度設(shè)備、傳統(tǒng)系統(tǒng) |
| MSI | 最多32個(gè) | 效率高、資源占用少 | 中復(fù)雜度設(shè)備、需要多個(gè)中斷向量 |
| MSI-X | 最多2048個(gè) | 向量極多、配置靈活 | 高復(fù)雜度設(shè)備、多任務(wù)/多核心場(chǎng)景 |
選型核心原則:優(yōu)先選擇MSI-X(若設(shè)備支持),其次MSI,最后傳統(tǒng)中斷,平衡中斷精準(zhǔn)度和系統(tǒng)資源占用。
Part 05 五、PCIe Gen4 核心技術(shù)參數(shù)對(duì)照表
| 參數(shù)類別 | 具體規(guī)格 | 備注 |
| 基礎(chǔ)性能參數(shù) | 單Lane速率:16Gbps (Gen4) | 相比Gen3(8Gbps)速率翻倍,核心性能提升點(diǎn) |
| 最大鏈路寬度:x4 | 鏈路總帶寬可達(dá)64Gbps,滿足高速數(shù)據(jù)吞吐需求 | |
| 支持100ms快速啟動(dòng) | 作為EP時(shí),可快速啟動(dòng) | |
| 支持P/N極性交換與線序交換 | 支持極性與線序靈活適配,適配復(fù)雜硬件部署場(chǎng)景 | |
| 工作模式 | 支持配置:端點(diǎn)(EP)模式、根端口(RP)模式 | EP作為外設(shè)接口,RP作為主控制器接口,適配不同系統(tǒng)拓?fù)?/td> |
| 虛擬化特性 | 虛擬化支持:SR-IOV技術(shù) | 最大4個(gè)物理函數(shù)(PF),每個(gè)PF支持16個(gè)虛擬函數(shù)(VF),總計(jì)64個(gè)VF |
| 接口特性 | 總線接口:AXI4主接口、AXI4從接口 | 主接口接收外部請(qǐng)求,從接口主動(dòng)發(fā)起請(qǐng)求,兼容AMBA AXI協(xié)議 |
| 中斷機(jī)制 | 支持模式:傳統(tǒng)中斷、MSI、MSI-X | 傳統(tǒng)中斷(最多4個(gè)共享向量)、MSI(32個(gè)向量)、MSI-X(2048個(gè)向量) |
| 數(shù)據(jù)保護(hù) | 鏈路層:LCRC校驗(yàn) | 保障TLP傳輸完整性,錯(cuò)誤自動(dòng)重傳 |
| 端到端:字節(jié)級(jí)奇校驗(yàn) | 覆蓋PCIe到AXI全路徑,雙重?cái)?shù)據(jù)保護(hù) | |
| 地址轉(zhuǎn)換 | 根端口(RP):2個(gè)BAR(BAR0/BAR1)+默認(rèn)BAR7 | 地址高位來自轉(zhuǎn)換寄存器,低位來自PCIe地址 |
| 端點(diǎn)(EP):7個(gè)BAR/功能 | 每個(gè)BAR對(duì)應(yīng)獨(dú)立轉(zhuǎn)換寄存器,適配多地址空間 | |
| 復(fù)位與電源管理 | 復(fù)位類型:冷復(fù)位、溫復(fù)位、熱復(fù)位、功能級(jí)復(fù)位(FLR) | FLR僅復(fù)位單個(gè)功能,不影響鏈路其他設(shè)備 |
| 電源狀態(tài):L0、L0s、L1、L1.1、L1.2、L2 | 動(dòng)態(tài)調(diào)整功耗,適配高性能與低功耗場(chǎng)景 | |
| 錯(cuò)誤處理 | 高級(jí)錯(cuò)誤報(bào)告(AER)、流量控制協(xié)議錯(cuò)誤(FCPE) | 詳細(xì)記錄錯(cuò)誤信息,支持快速故障定位 |
| 其他關(guān)鍵特性 | 流量?jī)?yōu)化:TPH(TLP處理提示)、Steering Tag(路由標(biāo)簽) | 優(yōu)化緩存利用,避免傳輸擁堵 |
| ACK聚合、SRIS操作 | 提升傳輸效率,降低硬件設(shè)計(jì)復(fù)雜度 |
Part 06 總結(jié)
綜上所述,鈦金PCIe Gen4高速接口方案作為國內(nèi)首款適配中端FPGA的PCIe Gen4解決方案,憑借其卓越的高速低功耗特性、靈活的多協(xié)議支持以及創(chuàng)新的雙控制器架構(gòu),為突破數(shù)據(jù)傳輸瓶頸提供了關(guān)鍵支撐。再次彰顯了易靈思在FPGA領(lǐng)域深耕硬核技術(shù)、直擊用戶痛點(diǎn)的創(chuàng)新實(shí)力,持續(xù)為數(shù)字經(jīng)濟(jì)發(fā)展注入高速、靈活與高效的連接動(dòng)力。
易靈思公司介紹
易靈思是一家國產(chǎn)FPGA公司,總部位于深圳前海。公司憑借自主可控的Quantum硬件架構(gòu),采用邏輯和路由可以互換的XLR結(jié)構(gòu),實(shí)現(xiàn)了創(chuàng)新的產(chǎn)品設(shè)計(jì)與軟件算法,使得FPGA產(chǎn)品具備低功耗、小體積、高密度、高性能等優(yōu)勢(shì)。已量產(chǎn)的40nm Trion系列及16nm鈦金系列 FPGA產(chǎn)品,廣泛應(yīng)用于機(jī)器視覺、顯示、工業(yè)控制、醫(yī)療、汽車、AI和通信等終端領(lǐng)域。
重要產(chǎn)品
鈦金系列FPGA具有增強(qiáng)的Quantum架構(gòu),16nm工藝,35K 至 1,000K 邏輯單元,超高性能 300-500MHz,封裝最小可至3.5mm*3.4mm@60K LE,功耗低至競(jìng)爭(zhēng)對(duì)手的1/4,硬核資源豐富,最新產(chǎn)品TJ375現(xiàn)已量產(chǎn)。
-
FPGA
+關(guān)注
關(guān)注
1660文章
22406瀏覽量
636095 -
控制器
+關(guān)注
關(guān)注
114文章
17786瀏覽量
192989 -
高速接口
+關(guān)注
關(guān)注
1文章
73瀏覽量
15294 -
PCIe
+關(guān)注
關(guān)注
16文章
1459瀏覽量
88376
原文標(biāo)題:鈦金高速接口之PCIe介紹
文章出處:【微信號(hào):易靈思官微,微信公眾號(hào):易靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
賽普拉斯推出TrueTouch Gen4觸摸屏控制器Gen4X
賽普拉斯為其TrueTouch Gen4觸摸屏控制器添加新功能
群聯(lián)技冠群雄 推出全球最快PCIe Gen4 SSD控制芯片E18
用于BBB的4D系統(tǒng)Gen4 LCD觸摸屏如何校準(zhǔn)
采用TrueTouch Gen4觸摸屏解決方案的富士通手機(jī)
賽普拉斯推出全新Gen4系列TrueTouch觸摸屏控制器
賽普拉斯推出全新Gen4 TrueTouch控制器
賽普拉斯單芯片Gen4 TrueTouch控制器支持Windows 8操作系統(tǒng)
Gen4系列觸控屏幕控制芯片介紹
美高森美憑借24G SAS和PCIe Gen 4三模式存儲(chǔ)控制器技術(shù) 引領(lǐng)行業(yè)創(chuàng)新
邁威科技PCIe Gen4 NVMe SSD控制器面世!推進(jìn)下一代技術(shù)發(fā)展
三星開發(fā)了基于PCIe Gen4的SSD新產(chǎn)品PM1733
邁入高速新進(jìn)程,上海寶存推出PCIe Gen4企業(yè)級(jí)存儲(chǔ)
西部數(shù)據(jù)推出高性能、輕薄低功耗的PCIe Gen4 NVMe SSD
PCIe 7.0技術(shù)細(xì)節(jié)曝光
鈦金PCIe Gen4控制器的核心特性與技術(shù)細(xì)節(jié)
評(píng)論