季振凱,楊茂林,于治
(無(wú)錫中微億芯有限公司,江蘇無(wú)錫214072)
高速總線是高性能通信的關(guān)鍵,其廣泛應(yīng)用在雷達(dá)探測(cè)、圖形加速及網(wǎng)絡(luò)適配等領(lǐng)域[1-3]。與眾多數(shù)據(jù)傳輸接口相比,高速串行總線(PCIe)具有點(diǎn)對(duì)點(diǎn)差分傳輸、強(qiáng)抗電磁干擾及高數(shù)據(jù)傳輸帶寬等優(yōu)點(diǎn)。隨著大數(shù)據(jù)時(shí)代的到來(lái),新興的應(yīng)用場(chǎng)景更注重高速總線的高帶寬、低延時(shí)及高靈活性,PCIe 與FPGA 的集成技術(shù)能夠顯著提升總線的靈活性,可滿足新興領(lǐng)域的需求。
高性能與低功耗是FPGA 電路與PCIe 模塊集成技術(shù)的核心競(jìng)爭(zhēng)力。2002 年,Intel 公司聯(lián)合業(yè)界20 余家企業(yè)共同起草第三代I/O 總線PCI Express 協(xié)議[4]。在新一代系統(tǒng)通信中,PCIe 已經(jīng)成為和上位機(jī)高速通信的主流協(xié)議。2017 年,蒲愷等使用28 nm 制程FPGA內(nèi)部集成的PCIe 與上位CPU 進(jìn)行通信,其實(shí)際帶寬可達(dá)180 MB/s,占總線帶寬的50%以上[5]。2022 年,沈洋等在28 nm 制程的FPGA 與雷達(dá)系統(tǒng)的通信中提出了一種由FPGA 發(fā)起的組數(shù)據(jù)傳輸(Block DMA)的傳輸流程,以降低數(shù)據(jù)傳輸過(guò)程中CPU 的參與度,進(jìn)而解放CPU 的算力[6]。然而,在FPGA 與上位機(jī)進(jìn)行高帶寬通信時(shí),會(huì)出現(xiàn)電路表面溫升過(guò)高進(jìn)而影響通信質(zhì)量并增大系統(tǒng)功耗的現(xiàn)象,需要在系統(tǒng)設(shè)計(jì)時(shí)額外增加冗余散熱裝置并提升散熱等級(jí),因此市場(chǎng)需要一種低功耗且高可靠的FPGA 電路[7-8]。為提高FPGA 電路中PCIe 運(yùn)行的穩(wěn)定性,降低運(yùn)行電路的溫升、功耗以及系統(tǒng)的冷卻成本,本文針對(duì)16 nm FinFET 工藝的FPGA 的PCIe Gen3 建立充分完備的性能評(píng)估方案,以探究先進(jìn)工藝制程下超大規(guī)模集成電路中PCIe Gen3 的性能穩(wěn)定性及低功耗性。
本文以16 nm FinFET 工藝SRAM 型FPGA 為研究對(duì)象,搭建針對(duì)低功耗PCIe Gen3 的高速通信的性能測(cè)試、溫升測(cè)試以及三溫(-55~125 ℃)功耗測(cè)試方案,以檢測(cè)其在PCIe 通信時(shí)的低功耗特性及性能穩(wěn)定性。采用不同數(shù)據(jù)長(zhǎng)度的數(shù)據(jù)包來(lái)對(duì)PCIe 與CPU 通信架構(gòu)進(jìn)行測(cè)試,并針對(duì)PCIe 底層高速串行收發(fā)器(SERDES)進(jìn)行高速口眼圖參數(shù)測(cè)定,為全面評(píng)估新工藝技術(shù)下的產(chǎn)品可靠性提供支持。
自1965 年4 月摩爾定律被提出以來(lái),半導(dǎo)體技術(shù)始終按照其預(yù)測(cè)的方向發(fā)展,直至集成電路的規(guī)模從早期的50 只晶體管發(fā)展到億門級(jí)規(guī)模。受限于物理尺寸,在將制程推進(jìn)到納米級(jí)別時(shí),制造技術(shù)壁壘及良品率導(dǎo)致的成本呈指數(shù)上升。除成本因素外,傳統(tǒng)的平面晶體管在制程接近20 nm 時(shí),在高溫環(huán)境下,電路內(nèi)部漏電及電子失控等現(xiàn)象會(huì)顯著增強(qiáng)。為進(jìn)一步提升芯片穩(wěn)定性,在降低晶體管特征尺寸的同時(shí)半導(dǎo)體產(chǎn)業(yè)界也通過(guò)提升制造工藝的方式來(lái)推進(jìn)產(chǎn)業(yè)升級(jí)。
與傳統(tǒng)平面晶體管相比,F(xiàn)inFET 晶體管工藝大大降低了晶體管的啟動(dòng)電壓,在改善電路電性能的同時(shí)也降低了電路的整體功耗[9]。圖1 為平面晶體管與FinFET 晶體管的示意圖,傳統(tǒng)的平面晶體管與源/漏極的接觸面是單獨(dú)的平面矩形,而FinFET 晶體管的柵極對(duì)溝道的鍵合面變成了門式接觸面。在三個(gè)接觸面中,突起鰭式的兩側(cè)面是柵極的主要調(diào)控面,立體的接觸結(jié)構(gòu)不僅增大了柵極對(duì)載流子的控制能力,也提升了晶體管的電參數(shù)穩(wěn)定性及抗輻射性能[10-11]。
圖1 平面晶體管與FinFET 晶體管示意圖
PCIe 協(xié)議需要設(shè)備核心以及PCIe Core 兩個(gè)組件,其中設(shè)備核心負(fù)責(zé)與Core 進(jìn)行交互并實(shí)現(xiàn)事務(wù)的發(fā)起及接收。PCIe 按照實(shí)現(xiàn)功能的不同,可劃分為事務(wù)層(TLP)、數(shù)據(jù)鏈路層(DLLP)及物理層(PLP)。圖2為PCIe Core 結(jié)構(gòu)分層示意圖,TLP 負(fù)責(zé)接收設(shè)備核心發(fā)來(lái)的指令并將信息按照范式轉(zhuǎn)換成TLP 數(shù)據(jù)包,或者將接收的TLP 數(shù)據(jù)包進(jìn)行校驗(yàn)、翻譯并將信息傳遞給設(shè)備核心。DLLP 在邏輯上鏈接TLP 與PLP,DLLP 主要負(fù)責(zé)DLLP 數(shù)據(jù)包的打包/解包、冗余數(shù)據(jù)備份、錯(cuò)誤包識(shí)別及傳輸數(shù)據(jù)流控制等。PLP 是PCIe的數(shù)據(jù)口,負(fù)責(zé)轉(zhuǎn)換或拆解PLP 數(shù)據(jù)包。
圖2 PCIe Core 結(jié)構(gòu)分層示意圖
PCIe 協(xié)議的理論傳輸帶寬與協(xié)議的Gen 值有關(guān),Gen1 下的PCIe 的速度帶寬為2.5 Gbit/s,Gen3 將其提升到8 Gbit/s。由于PCIe Gen3 采用128 bit/130 bit 編碼,且TLP、DLLP 及PLP 在進(jìn)行轉(zhuǎn)換時(shí)會(huì)在數(shù)據(jù)包的包頭及包尾加上起始數(shù)、DLL 協(xié)議包、點(diǎn)對(duì)點(diǎn)循環(huán)冗余校驗(yàn)(ECRC)以及鏈路循環(huán)冗余校驗(yàn)(LCRC),導(dǎo)致PCIe 的實(shí)際傳輸帶寬相比理論值有額外的開銷。PCIe Gen3 的理論最大帶寬(Tmax,單位為MB/s)為[12]
其中,PL為傳輸數(shù)據(jù)(Payload),N 為傳輸通道,OV包括起始數(shù)、DLL、包頭碼、ECRC 以及LCRC 校驗(yàn)值。
PCIe 數(shù)據(jù)包組成示例如表1 所示,在PCIe 協(xié)議中,除Payload 區(qū)間為0~4 096 B 及Header 為12/16 B外,其余數(shù)據(jù)包大小固定。在Gen3 中,當(dāng)PCIe 傳輸數(shù)據(jù)格式為256 B、Header 為16 B、通道為8 時(shí),其理論最大帶寬Tmax為7 219.9 MB/s。
表1 PCIe 數(shù)據(jù)包組成示例
本實(shí)驗(yàn)所用的低功耗FPGA 器件(簡(jiǎn)稱DUT)采用16 nm FinFET 工藝,其封裝形式為倒裝,內(nèi)部集成PCIe Gen3 硬核,對(duì)照電路(簡(jiǎn)稱CD)為國(guó)外同類型FPGA 電路,其工藝制程為28 nm,支持PCIe Gen3。實(shí)驗(yàn)所用的設(shè)備包括高速示波器、高速誤碼儀、多路溫度測(cè)試儀及直流電源,硬件為SERDES 測(cè)試板和PCIe轉(zhuǎn)接板,測(cè)試連接的上位機(jī)為帶有16 通道PCIe 插槽的PC。測(cè)試設(shè)備簡(jiǎn)介如表2 所示。
表2 測(cè)試設(shè)備簡(jiǎn)介
高速示波器用來(lái)檢測(cè)DUT 的高速口收發(fā)眼圖,評(píng)估PCIe 的底層高速口的傳輸質(zhì)量;誤碼儀用來(lái)提供高頻收發(fā)信號(hào),評(píng)估DUT 在高速收發(fā)時(shí)的抗干擾能力;四路直流電源用來(lái)為電路的內(nèi)核、端口、輔助以及高速口部分提供電源,其余模塊電源供給由適配器提供;多路溫度測(cè)試儀用來(lái)記錄電路在動(dòng)態(tài)運(yùn)行時(shí)的溫度變化趨勢(shì)。
被測(cè)電路內(nèi)嵌三組PCIe Gen3 集成器IP,各組之間能夠獨(dú)立進(jìn)行×8 的通信傳輸,即最大可調(diào)用24 路差分串行高速收發(fā)器進(jìn)行通信。圖3 為PCIe 通信連接圖,在PCIe 與CPU 通信時(shí),需將DUT 置于SERDES測(cè)試板內(nèi),通過(guò)一組高速光纖與PCIe 轉(zhuǎn)接板進(jìn)行連接。PCIe 轉(zhuǎn)接板最大支持PCIe×16 金手指通信及熱插拔。
圖3 PCIe 通信連接圖
PCIe 測(cè)試由高速測(cè)試板卡、高速連接器、PCIe 轉(zhuǎn)接板卡以及CPU 主板卡共同完成。該硬件方案并未將FPGA 的SERDES 管腳與PCIe 物理約束固定,因此可實(shí)現(xiàn)電路片上任意高速口區(qū)域與上位機(jī)的PCIe 通信。更換三溫測(cè)試插座后還可對(duì)電路進(jìn)行三溫測(cè)試。將待測(cè)電路放入電路測(cè)試插座中,選擇要測(cè)試的SERDES區(qū)域作為PCIe 的接入高速口區(qū)域。PCIe Gen3×8 測(cè)試使用任意兩個(gè)相鄰區(qū)域,將對(duì)應(yīng)區(qū)域的TX、RX 和參考時(shí)鐘信號(hào)全部引出,與自研的PCIe 轉(zhuǎn)接板進(jìn)行逆序連接。TX 端采用直連方式連接,RX 端添加一個(gè)100 μF 的隔直器進(jìn)行濾波。高速連接器接口形式為BullsEye 接口,使用專用的20 Gbit/s 高速線纜進(jìn)行連接。
在完成物理連接后,接收功能塊與發(fā)送功能塊在電路與CPU 通信時(shí)需要建立同源時(shí)鐘通道。在初始的差分信號(hào)傳輸中,PCIe 總線會(huì)進(jìn)行比特交互,即在鏈路上交替?zhèn)鬏斠欢? 和1 序列,用來(lái)給接收端提取數(shù)據(jù)時(shí)鐘。除數(shù)據(jù)時(shí)鐘外,PCIe 參考時(shí)鐘是以100 MHz為源頭產(chǎn)生的擴(kuò)頻時(shí)鐘。擴(kuò)頻時(shí)鐘可用于所有子設(shè)備,即每個(gè)鏈路設(shè)備共享相同的時(shí)鐘源。PCIe 時(shí)鐘通信示意圖如圖4 所示,本方案的參考時(shí)鐘頻率為100 MHz,由上位機(jī)CPU 提供,此時(shí)的PCIe 總線可直接將參考時(shí)鐘引入,當(dāng)使用125 MHz 或250 MHz 參考時(shí)鐘選項(xiàng)時(shí),須使用FPGA 內(nèi)部的鎖相環(huán)(PLL)進(jìn)行5/4 和5/2 的乘法,實(shí)現(xiàn)100 MHz 時(shí)鐘到125 MHz和250 MHz 時(shí)鐘的轉(zhuǎn)換。
圖4 PCIe 時(shí)鐘通信示意圖
建立電路與CPU 的通信,采用PCIe Gen3 并調(diào)用8 路串行收發(fā)器來(lái)完成與上位機(jī)的數(shù)據(jù)交互。在編譯工具中調(diào)用MARK_DEBUG 命令對(duì)PCIe 的各組件狀態(tài)進(jìn)行監(jiān)控,監(jiān)控的對(duì)象包括cplllock、qplllock、cfg_ltssm_state 等狀態(tài)。cplllock 以及qplllock 用來(lái)標(biāo)識(shí)驅(qū)動(dòng)時(shí)鐘是否滿足高速收發(fā)時(shí)所需的精度與質(zhì)量,cfg_ltssm_state 用來(lái)表示鏈路訓(xùn)練的狀態(tài)。鏈路訓(xùn)練是一個(gè)動(dòng)態(tài)的過(guò)程,上位機(jī)CPU 與電路在上電后按照PCIe 協(xié)議的LTSSM 進(jìn)行鏈路協(xié)商以達(dá)到最優(yōu)的速率以及寬度。圖5 為L(zhǎng)TSSM 狀態(tài)機(jī)實(shí)測(cè)圖,被測(cè)電路在實(shí)測(cè)過(guò)程中cfg_ltssm_state 的狀態(tài)為10,對(duì)應(yīng)鏈路訓(xùn)練的L0,即已經(jīng)實(shí)現(xiàn)通信。
圖5 LTSSM 狀態(tài)機(jī)實(shí)測(cè)圖
建立與CPU 的通信鏈路后,F(xiàn)PGA 與CPU 開始數(shù)據(jù)交互,為降低與上位機(jī)命令交互的時(shí)間以提升傳輸效率,本次讀寫壓力測(cè)試采用上位機(jī)一次指令包含n 組DMA 數(shù)據(jù)包信息的方式進(jìn)行。典型的PCIe 傳輸過(guò)程中,CPU 每次在發(fā)起DMA 傳輸時(shí)都需要設(shè)置每一幀DMA 數(shù)據(jù)的相關(guān)信息并進(jìn)行編解碼操作,嚴(yán)重干擾PCIe 傳輸效率。FPGA 與CPU 交互流程如圖6所示,本次軟件測(cè)試方案中CPU 在完成鏈路建立后向FPGA 一次發(fā)送n 組DMA 的起始地址以及上報(bào)地址等信息,以降低CPU 解析數(shù)據(jù)的壓力,提升與FPGA的交互效率。
圖6 FPGA 與CPU 交互流程
本次PCIe 壓力測(cè)試為非連續(xù)讀寫測(cè)試,為精準(zhǔn)計(jì)算讀寫帶寬,循環(huán)測(cè)試時(shí)數(shù)據(jù)包的字節(jié)長(zhǎng)度選擇512~4 096 B。上位機(jī)速率檢測(cè)軟件為內(nèi)部開發(fā)的PCIe測(cè)試軟件,可實(shí)時(shí)顯示速率。PCIe 帶寬壓力測(cè)試結(jié)果如圖7 所示,經(jīng)過(guò)讀寫壓力測(cè)試,測(cè)得傳輸4 MB 的數(shù)據(jù)包時(shí),其讀速率可以達(dá)到3 907 MB/s、寫速率可以達(dá)到4 430 MB/s,分別為理論最大有效帶寬的54.1%和61.4%,可以滿足實(shí)際傳輸?shù)膸捦掏滦枨蟆?/p>
圖7 PCIe 帶寬壓力測(cè)試結(jié)果
通過(guò)高速示波器監(jiān)測(cè)被測(cè)電路中SERDES 的高速收發(fā)質(zhì)量,通信頻率為8 Gbit/s、通信數(shù)據(jù)格式為PRBS7。通過(guò)對(duì)比CD 與DUT 中高速通信的差異來(lái)分析DUT 的傳輸穩(wěn)定性及信號(hào)質(zhì)量。監(jiān)測(cè)的主要指標(biāo)包括眼寬、眼高及信號(hào)抖動(dòng),信號(hào)抖動(dòng)主要體現(xiàn)在總抖動(dòng)(TJ)上,按照抖動(dòng)來(lái)源可分為確定性抖動(dòng)(DJ)和隨機(jī)性抖動(dòng)(RJ)。DJ 向下可分為占空比失真、碼間干擾和周期性抖動(dòng)。8 Gbit/s 眼圖實(shí)測(cè)結(jié)果如圖8 所示。
圖8 8 Gbit/s 眼圖實(shí)測(cè)結(jié)果
在通信頻率為8 Gbit/s、碼型為PRBS7 的設(shè)置下,DUT 的眼圖脈絡(luò)與CD 基本一致,兩者的整體信號(hào)質(zhì)量較為穩(wěn)定。眼圖參數(shù)的均值及標(biāo)準(zhǔn)方差如表3 所示,DUT 以及CD 的眼高均值分別為324.69 mV 和334.88 mV,說(shuō)明DUT 在高速通信時(shí)眼圖的張開度與CD 基本一致。在信號(hào)抖動(dòng)方面,DUT 的TJ、DJ、RJ 分別為18.766 ps、10.661 ps、578.95 fs,略低于對(duì)照電路的20.151 ps、11.366 ps、627.46 fs,說(shuō)明DUT 在高速通信時(shí)眼圖的抖動(dòng)略優(yōu)于CD。在信號(hào)定時(shí)誤差TIE 參數(shù)上,DUT 的均值為2.1982 fs,比CD 的均值低40.0%,說(shuō)明DUT 的時(shí)鐘峰-峰值偏移更小。
表3 眼圖參數(shù)的均值及標(biāo)準(zhǔn)方差
對(duì)電路進(jìn)行PCIe Gen3×8 運(yùn)行溫度測(cè)試,首先將電路放置進(jìn)PCIe 測(cè)試板插座中實(shí)現(xiàn)與上位機(jī)之間的通信,然后將多路溫度儀的電耦合引線貼合在電路的上表面進(jìn)行表溫測(cè)量。常溫下將PCIe Gen3 程序燒錄進(jìn)電路中后,在觀測(cè)到PCIe 正常運(yùn)行后進(jìn)行高速功率及溫度測(cè)定。高速功率等于電源內(nèi)核以及高速口電源的功率之和。由于PCIe×8 需要用到8 路高速收發(fā)器,因此在高速運(yùn)行的過(guò)程中物理層有著較大的開支來(lái)完成數(shù)據(jù)收發(fā)。溫度測(cè)定主要用來(lái)表征電路的內(nèi)部漏電及電子失控程度,CD 采用傳統(tǒng)的平面CMOS 晶體管工藝,制程為28 nm,DUT 采用16 nm FinFET 工藝,其內(nèi)部采用的門式接觸結(jié)構(gòu)能有效增強(qiáng)對(duì)電子的控制進(jìn)而降低電路升溫[10]。
DUT 的溫升相比于CD 更低,其常溫功耗相比于CD 也有顯著的降低。電路表溫及高速功耗對(duì)比如圖9所示,當(dāng)電路運(yùn)行到30 min 時(shí),DUT 的表溫為30.6 ℃,低于CD 的37.5 ℃。從表溫上升趨勢(shì)來(lái)看,DUT 溫升不顯著,電路的溫度在上升到30.3 ℃之后變化趨勢(shì)較平穩(wěn),最后穩(wěn)定在30.6 ℃左右,比CD 低18.4%;CD 的表溫一直在升高,在10~15 min 時(shí)依然保持一定的上升趨勢(shì)。在高速功耗方面,DUT 在室溫運(yùn)行時(shí)其功耗開支維持在1.54 W 左右。在PCIe 程序運(yùn)行中,F(xiàn)PGA內(nèi)部的SERDES 收發(fā)器、DCM、CLB、BRAM 等資源均會(huì)被調(diào)用,設(shè)計(jì)工藝的區(qū)別導(dǎo)致DUT 在高速運(yùn)行時(shí)整體功耗更小。
圖9 電路表溫及高速功耗對(duì)比
對(duì)電路進(jìn)行PCIe Gen3 三溫動(dòng)態(tài)功耗測(cè)試,將電路放置進(jìn)三溫插座后,啟動(dòng)三溫設(shè)備,待設(shè)備達(dá)到設(shè)定溫度后,保持5 min,待FPGA 溫度達(dá)到設(shè)定溫度后,啟動(dòng)與CPU 的通信并開始記錄功率。測(cè)試選用三顆DUT 和一顆CD,溫度測(cè)試節(jié)點(diǎn)選擇-55 ℃、25 ℃、125 ℃。選用數(shù)據(jù)包的字節(jié)長(zhǎng)度為4 MB 的讀寫程序,所 測(cè) 定 的 功 率 等 于 VCCINT、MGTAVCC 及MGTAVTT 電路的功率之和。電路三溫功耗對(duì)比如表4 所示。
表4 電路三溫功耗對(duì)比
DUT 三溫功耗比CD 低,尤其是在高溫125 ℃條件下,電路的整體功率增加明顯,DUT 平均功耗比CD低41.9%。在-55 ℃下運(yùn)行時(shí),DUT 整體功耗相比常溫時(shí)有一定程度的降低,整體功耗比CD 低10.8%。
本文以16 nm FinFET 工藝SRAM FPGA 為對(duì)象,探究FinFET 晶體管的電子調(diào)控特性、PCIe 協(xié)議及有效帶寬,搭建針對(duì)低功耗PCIe Gen3 的高速通信的性能測(cè)試、溫升測(cè)試以及三溫功耗測(cè)試方案,實(shí)現(xiàn)對(duì)先進(jìn)工藝制程下超大規(guī)模集成電路中PCIe 的性能穩(wěn)定性及低功耗性的探究,其結(jié)論如下:
(1)在被測(cè)電路與CPU 通信過(guò)程中,電路與CPU通信穩(wěn)定,PCIe 讀寫速率分別可以達(dá)到3 907 MB/s、4 430 MB/s,達(dá)到理論最大有效帶寬的54.1%、61.4%;
(2)通過(guò)高速眼圖測(cè)定,在通信頻率為8 Gbit/s、通信格式為PRBS7 時(shí),被測(cè)電路以及對(duì)照電路的眼高均值分別為324.69 mV、334.88 mV,兩者眼圖張開度以及抖動(dòng)基本一致;
(3)在電路溫升以及三溫PCIe 功耗測(cè)試中,被測(cè)電路在常溫下的表面溫度比對(duì)照電路低18.4%,被測(cè)電路在125 ℃下的功耗比對(duì)照電路低41.9%。
該工藝下的電路能夠穩(wěn)定運(yùn)行PCIe Gen3 總線,并在低功耗、低發(fā)熱狀態(tài)下實(shí)現(xiàn)高質(zhì)量的PCIe 信號(hào)傳輸。