《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于SPCB的處理器直連低延時PCS的設計實現(xiàn)
基于SPCB的處理器直連低延時PCS的設計實現(xiàn)
2019年電子技術應用第9期
吳劍簫1,,2王 鵬3,,吳 濤1,高 鵬1,,陳文濤4,,5
1.中國科學院 上海高等研究院,上海200120,;2.中國科學院大學,,北京 100049;3.上海大學 計算機工程與科學學院,,上海200444,; 4.上海芯來電子科技有限公司,上海201411,;5.數(shù)學工程與先進計算國家重點實驗室,,江蘇 無錫214125
摘要: SERDES(串行解串)技術因其傳輸速率高、抗干擾能力強等優(yōu)點已成為主流的高速接口物理層規(guī)范,。但由于上層PCS(物理編碼子層)需設置彈性緩沖,、編解碼等功能,導致系統(tǒng)傳輸延時較高,,無法直接應用于處理器直連等延遲敏感應用領域,。介紹了一種基于同源相位補償緩沖(Synchronous Phase Compensation Buffer,SPCB)的PCS架構的設計實現(xiàn),,可應用于延時敏感的SERDES接口傳輸系統(tǒng),。該架構具有高吞吐率和超低延時的特點,通過定制的SPCB,,單通道32 Gb/s時,,發(fā)送與接收通路傳輸延時為10 ns左右,,約為業(yè)界典型PCS方案的一半,達到Intel與AMD并行CPU直連接口(QPI和HT)的延時水平,。該PCS架構可通過28 nm/16 nm/7 nm工藝物理實現(xiàn),,已應用于多款國產(chǎn)處理器直連接口。
中圖分類號: TN402
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190593
中文引用格式: 吳劍簫,,王鵬,,吳濤,等. 基于SPCB的處理器直連低延時PCS的設計實現(xiàn)[J].電子技術應用,,2019,,45(9):65-70,76.
英文引用格式: Wu Jianxiao,,Wang Peng,,Wu Tao,et al. Design and implementation of SPCB-based processor directly connected low delay PCS[J]. Application of Electronic Technique,,2019,,45(9):65-70,76.
Design and implementation of SPCB-based processor directly connected low delay PCS
Wu Jianxiao1,,2,,Wang Peng3,Wu Tao1,,Gao Peng1,,Chen Wentao4,5
1.Shanghai Advanced Research Institute,,Chinese Academy of Sciences,,Shanghai 200120,China,; 2.University of Chinese Academy of Sciences,,Beijing 100049,China,; 3.School of Computer Engineering and Science,,Shanghai University,Shanghai 200444,,China,; 4.Shanghai Si-future Electronics & Technology Co.,Ltd.,,Shanghai 201411,,China; 5.State Key Laboratory of Mathematical Engineer and Advanced Computing,Wuxi 214125,,China
Abstract: SERDES(serial de-serialization) technology has become the mainstream physical layer specification of high-speed interface due to its high transmission rate and strong capacity of resisting disturbance. However, the upper PCS(physical coding sublayer) needs to set elastic buffering, code, encode and do other functions, so the system transmission delay is high. SERDES cannot be directly applied to delay sensitive applications such as processor direct connection. This paper introduces a design of PCS architecture based on synchronous phase compensation buffer(SPCB), which can be applied to delay sensitive SERDES transmission system. This architecture features high throughput and ultra-low latency. With a custom SPCB, the transmission reception path delay is about 10 ns at 32 Gb/s per lane, which is about half of the typical PCS delay in the industry, reaching the level of Intel(QPI) and AMD(HT) interface. This PCS architecture can be realized through 28 nm/16 nm/7 nm chip manufacturing tech, and has been applied to a variety of domestic processor.
Key words : synchronous phase compensation buffer(SPCB),;PCS;SERDES,;low delay,;processor direct connection

0 引言

    SERDES(串行解串)是指將數(shù)據(jù)通過高速串行信號進行差分傳輸,并在接收端恢復的過程[1],。它具有速率高,、功耗低和抗干擾能力強等特點,已廣泛應用于計算機和通信領域,。SERDES系統(tǒng)由實現(xiàn)串行與解串的物理介質連接子層(PMA)和負責數(shù)據(jù)流編解碼的物理編碼子層(PCS)組成[2],。PMA主要由模擬電路構成,,延時較低,,一般在6~7 ns以內;PCS則由數(shù)字電路構成,,實現(xiàn)編解碼,、加解擾和多路對齊等功能,延時較大,,通常為幾十納秒,。當前的芯片直連應用場景要求傳輸延時最好控制在20 ns以內。以處理器的直連接口為例,,Intel QPI(QuickPath Interconnect)與AMD HT(HyperTransport)的傳輸延時均小于20 ns[3-4],。PCI-SIG推出的CCIX延時也小于30 ns。但QPI和HT通常適用X86架構的芯片互連,,CCIX則有PCIe標準兼容性要求,,給國產(chǎn)芯片,尤其是CPU應用帶來不便,。另外購買相關IP授權也對芯片的國產(chǎn)自主可控帶來隱患,。因此如何降低SERDES系統(tǒng)延時,進而滿足國產(chǎn)芯片直連應用,,是本文重點討論的問題,。

    本文介紹基于同源相位補償緩沖(SPCB)的低延時、超高速PCS的設計與實現(xiàn),,其單向帶寬可達N×32 Gb/s(N為可配置物理通道數(shù)),,收發(fā)延時為9~11 ns,加上PMA部分6 s延時,,整個SERDES系統(tǒng)傳輸延時可控制在17 ns以內,,能夠滿足芯片直連等應用場景需求。

1 原理介紹

1.1 SERDES系統(tǒng)的PCS

    傳統(tǒng)SERDES系統(tǒng)的PCS層由發(fā)送通道與接收通道組成:編碼,、加擾,、速率匹配和跨時鐘域模塊構成發(fā)送通道,;解碼、解擾,、速率匹配,、跨時鐘域和彈性緩沖模塊構成接收通道[5]。另外,,為了適配多通道傳輸,,高速SERDES系統(tǒng)常需要在發(fā)送端和接收端設置數(shù)據(jù)分塊與塊重建模塊。

    PCS層中各個模塊的功能如下:

    (1)編解碼模塊:編碼模塊將數(shù)據(jù)進行編碼,,并在編碼后的數(shù)據(jù)流中加入用于定界的有效同步位,。解碼模塊根據(jù)有效同步位對數(shù)據(jù)塊進行對齊,并對數(shù)據(jù)進行解碼,,恢復為原始數(shù)據(jù),。

    (2)加解擾模塊:利用本征多項式對數(shù)據(jù)進行編解碼,使數(shù)據(jù)隨機化,,減少了數(shù)據(jù)中連續(xù)的“0”和“1”的個數(shù),,避免差分接口上的信號長期不跳轉,影響時鐘恢復而導致誤碼,。

    (3)發(fā)送/接收端速率匹配模塊:為了確保PMA側傳入和傳出的數(shù)據(jù)位寬與接口位寬相一致,,需要使用速率匹配模塊進行位寬轉換。

    (4)彈性緩沖模塊:用于補償本地接收側與對端發(fā)送側的異步時鐘頻率差異,。通過頻率的補償實現(xiàn)相位同步,保證數(shù)據(jù)傳輸穩(wěn)定可靠,。

    (5)數(shù)據(jù)分塊與塊重建模塊:根據(jù)系統(tǒng)當前的工作狀態(tài),將發(fā)送的數(shù)據(jù)進行分塊放入不同的通道中,,并在接收端進行數(shù)據(jù)的合并與恢復,。

    SERDES系統(tǒng)PCS層的原理圖如圖1所示。

tx1-t1.gif

1.2 PCS層設計的優(yōu)化

    根據(jù)處理器直連應用場景的特點,,對PCS設計進行了以下延時優(yōu)化:

    (1)刪除彈性緩沖模塊,。彈性緩沖模塊利用類異步FIFO的方法來補償本地時鐘與恢復時鐘的頻率差異。其數(shù)據(jù)傳輸延時與緩沖深度有關,,一般在10個時鐘周期以上,。由于在一個機箱甚至PCB上多顆CPU可采用同源參考時鐘,即不存在參考時鐘頻差,,故可去除此模塊,。

    (2)編解碼采用32B/34B編碼。由于PMA的數(shù)據(jù)位寬是32 bit,,若采用傳統(tǒng)的64B/66B進行編碼,,則需要兩拍數(shù)據(jù)才能進行一次編碼。這會帶來額外一個時鐘周期的數(shù)據(jù)傳輸延時。

    (3)采用自研的SPCB進行跨時鐘域處理,?;谔幚砥髦边B場景,PMA各路發(fā)送/接收時鐘同源不同相,,故需要進行跨時鐘域處理,。傳統(tǒng)的異步FIFO則會帶來至少5~6個時鐘周期的延遲。這里專門設計了SPCB進一步壓縮延時,。

    優(yōu)化后整個PCS層的結構框圖如圖2所示,。

tx1-t2.gif

    該PCS可配置在多通路模式下工作,支持自動或手動切除故障通路,,單路單向帶寬可支持到32 Gb/s,,在該速率下整個PCS層的延時約為9~11 ns。同時PCS還支持數(shù)據(jù)通路翻轉,、遠端/近端自環(huán),、BIST測試等多種工作模式。目前PCS已應用于國產(chǎn)處理器芯片的直連接口,。

2 同源相位補償緩沖(SPCB)的工作原理

    由于PCS與PMA側時鐘不同,,需進行跨時鐘域處理,。在進行高速數(shù)據(jù)傳輸時,,常用的跨時鐘域操作往往會帶來較大的延時[6]??紤]到發(fā)送端與接收端的時鐘是同源時鐘這一應用背景,,為進一步提高效率,壓縮延時,,本設計對傳統(tǒng)跨時鐘域的方案進行了改進,。使用同源相位補償緩沖(SPCB),大大縮短了跨時鐘域的延時,。

    在高速SERDES系統(tǒng)中,,傳統(tǒng)的跨時鐘域方案是使用異步FIFO,利用讀寫指針和空滿狀態(tài)進行工作[7],,數(shù)據(jù)傳輸延遲約為5~6個時鐘周期,。若在PCS的發(fā)送側與接收側均采用其進行跨時鐘域操作,則異步交接部分延時就達10~12個時鐘周期,,很難滿足設計低延時需求,。

    考慮到處理器直連接口發(fā)送端與接收端可采用同源時鐘的特點,設計了同源相位補償緩沖,,通過控制讀寫路徑中延時單元的個數(shù)實現(xiàn)對緩沖讀寫操作間隔的精準控制,。設計中將同源不同相的時鐘進行相位補償,從而實現(xiàn)跨時鐘域操作。其結構如圖3所示,。

tx1-t3.gif

    該結構具體工作原理為:當控制信號有效時,,分別通過兩條由多個延時單元組成的邏輯鏈產(chǎn)生讀寫信號,直接控制Buffer的讀寫,。由于發(fā)送端與接收端的PMA用的是同源參考時鐘,,因此數(shù)據(jù)讀寫的頻率完全相同,讀寫指針更新的速率也一致,,Buffer中數(shù)據(jù)個數(shù)將維持一個定值,。因此整個buffer既不會寫滿也不會讀空,能夠持續(xù)正常工作,。通過配置兩條邏輯鏈之間延時單元個數(shù),,可以實現(xiàn)對讀寫使能信號間距的控制,從而控制數(shù)據(jù)讀寫的延時,。通過利用SPCB,,可以將讀寫延遲縮短至1~2個時鐘周期。

    SPCB的狀態(tài)工作流程如圖4所示,,共計8個狀態(tài),。

tx1-t4.gif

    (1)狀態(tài)1:空閑狀態(tài)。狀態(tài)機在未傳輸或傳輸完成后處于空閑狀態(tài),。清零并關閉計數(shù)器,。等待數(shù)據(jù)傳輸開始的start信號,進行狀態(tài)跳轉,。

    (2)狀態(tài)2:初始化狀態(tài),。在收到了start信號后,在數(shù)據(jù)傳輸開始之前對同源相位補償緩沖進行初始化,。置低讀寫使能信號,,清空buffer中的數(shù)據(jù),同時打開計數(shù)器并清空傳輸完成狀態(tài)信號,。

    (3)狀態(tài)3:寫狀態(tài),。初始化后,經(jīng)過TX_DLY_CNT個時鐘周期,,寫使能置高,。更新寫數(shù)據(jù)和寫指針,向buffer中寫入數(shù)據(jù),。

    (4)狀態(tài)4:讀寫狀態(tài),。初始化后,經(jīng)過RX_DLY_CNT個時鐘周期,,讀使能也被置高,。開始更新讀數(shù)據(jù)和讀指針,,在寫入數(shù)據(jù)的同時讀出數(shù)據(jù)。

    (5)狀態(tài)5:傳輸結束狀態(tài),。在讀寫狀態(tài)下檢測到start信號變?yōu)?時,,進入該狀態(tài)。清零計數(shù)器time_cnt的值,,從而實現(xiàn)對讀寫使能信號的關閉控制,。

    (6)狀態(tài)6:讀狀態(tài)。傳輸結束狀態(tài)后,,經(jīng)過TX_DLY_CNT個時鐘周期,,寫使能置低。停止向buffer中寫入數(shù)據(jù),,讀使能依舊為高,。繼續(xù)進行剩余數(shù)據(jù)的讀出。

    (7)狀態(tài)7:傳輸完成狀態(tài),。傳輸結束狀態(tài)后,,經(jīng)過RX_DLY_CNT個時鐘周期,讀使能置低,。此時buffer中的所有數(shù)據(jù)均已讀出,,不再進行數(shù)據(jù)讀取。同時置高傳輸完成狀態(tài)信號,。

    (8)狀態(tài)8:停止狀態(tài),。該狀態(tài)在正常數(shù)據(jù)傳輸基本不會出現(xiàn)。若是由start信號異常導致在初始化狀態(tài)檢測到start信號變低進入該狀態(tài),,則跳轉到空閑狀態(tài),。若因發(fā)送數(shù)據(jù)較短(小于3個),,在寫狀態(tài)檢測到start信號為0,,則進入讀狀態(tài),將寫的數(shù)據(jù)讀出,。

    其行為圖與對應的時序圖分別如圖5,、圖6所示。

tx1-t5.gif

tx1-t6.gif

    在圖6中,,寫時鐘tx_clk與讀時鐘rx_clk是同源不同相的兩個時鐘,,通過利用SPCB,與寫時鐘對齊的數(shù)據(jù)wdata轉變?yōu)榱伺c讀時鐘對齊的數(shù)據(jù)rdata,,實現(xiàn)了跨時鐘域的操作,。

    利用同源相位補償緩沖,可以通過配置邏輯鏈之間延時單元個數(shù)的差值,,實現(xiàn)對讀寫使能信號間距的控制,。圖5中,,邏輯路徑1和邏輯路徑2上的延時單元個數(shù)分別為2和4,讀寫數(shù)據(jù)傳輸延遲為2個時鐘周期,。SPCB可以將跨時鐘域延時由原先的5~6個時鐘周期縮短至1~2個時鐘周期,。在PCS的發(fā)送與接收端均采用SPCB,可將整個SERDES系統(tǒng)的傳輸延時降低6~10 ns(32 Gb/s通信速率下),。目前同源相位補償緩沖這一設計已申請專利[8],。

3 延時檢測

3.1 數(shù)字設計的理論延時

    通過對設計的PCS進一步的分析,各個模塊的延時如表1,、表2所示,。

tx1-b1.gif

tx1-b2.gif

tx1-gs1-6.gif

    可以看出,該PCS的理論延遲為9~11個時鐘周期,,并且在絕大多數(shù)情況下其延時在10個時鐘周期之內,。對應數(shù)學期望值為9.12拍。即32 Gb/s的傳輸速率下,,對應的絕對延時為9.12 ns,。

3.2 仿真延時的檢測

    通過觀察波形,計算發(fā)送端發(fā)送到第一個數(shù)據(jù)到接收端接收到第一個數(shù)據(jù)的時間差可以確定整個系統(tǒng)數(shù)據(jù)通路的延時,。通過圖7,、圖8可以看出此時發(fā)送端延時為4~5時鐘周期,接收端延時為5~6個時鐘周期,,整個系統(tǒng)的數(shù)據(jù)延時為9~11個時鐘周期,,與理論值相符。

tx1-t7.gif

tx1-t8.gif

3.3 實際延時的測試

    為了進一步檢測該PCS的實際數(shù)據(jù)傳輸延時,,本文參照相關文獻[9-12],,利用FPGA進行測試。

    本次測試選用了Xilinx公司的基于Xilinx kintex-7 FPGA的XC7K325T-IMG開發(fā)板,,使用兩塊開發(fā)板上的GTX(Gigabit Transceiver,,吉比特收發(fā)器)接口將各自發(fā)送端經(jīng)過發(fā)送路徑的數(shù)據(jù)連接到另一塊FPGA的接收端,分別通過板上的SPI接口[13]與PC進行通信,,實現(xiàn)對整個系統(tǒng)的控制,。其結構圖如圖9所示。

tx1-t9.gif

    在進行測試延時之前,,首先應解決以下兩個問題:首先整個PCS的數(shù)據(jù)傳輸延時是納秒級的,,而SPI模塊的讀寫時鐘頻率一般只有幾十兆,無法實現(xiàn)延時的實時讀取;其次利用FPGA測得的傳輸延時不僅包含了PCS延時,,還包含了PMA延時,、線纜延時以及FPGA上的門電路延時等其他延時,會對最終的測試結果造成影響,。

    針對以上兩個問題,,設計了一種利用FPGA對PCS進行延時的方案,。該方案的主要原理如下:

    通過利用多個延時的總時間和延時的個數(shù)來求出平均延時。傳輸延時是發(fā)送端發(fā)送數(shù)據(jù)與接收端受到數(shù)據(jù)的時間差,??紤]到數(shù)據(jù)接收端在接收到數(shù)據(jù)后rx_valid信號才會置高以及發(fā)送端只有在tx_valid信號為高時才會發(fā)送數(shù)據(jù),設計了以下系統(tǒng)延時測試方法:

    配置發(fā)送端發(fā)送隨機數(shù)據(jù)包,,在數(shù)據(jù)開始發(fā)送時,,tx_valid信號由低變高。當接收端收到數(shù)據(jù)后,,rx_valid信號變高,,在下一個時鐘周期置低tx_valid信號。即之后的數(shù)據(jù)不會被傳輸,,經(jīng)過一段時間后rx_valid信號也會變低,。然后再開啟tx_valid。當rx_valid變高后再關閉tx_valid,,以此類推,。工作流程如圖10所示。

tx1-t10.gif

    設整個系統(tǒng)延時為t個時鐘周期,,通過上圖可以看出,,rx_valid信號的一次翻轉對應著(t+1)個時鐘周期。而1個時鐘周期對應一拍32 bit的數(shù)據(jù)傳輸,。所以32 Gb/s速率下系統(tǒng)延時t(ns),,rx_valid變高次數(shù)j,程序運行時間T(s)與時鐘頻率f(GHz)滿足以下關系:

    tx1-gs7.gif

    故可通過寄存器記錄rx_valid由低變高的次數(shù),,結合程序運行時間和數(shù)據(jù)傳輸頻率,,求出系統(tǒng)延時。

    該方法測試的延時是包含了PMA延時,、線纜延時以及FPGA上的門電路延時等其他延時的整個系統(tǒng)延時,。考慮到PMA延時基本為一定值,,而其他的延時基本是elmore延時,,大小僅取決于電路中的電阻和電感,與頻率無關,。故可通過測試在兩個不同頻率下的系統(tǒng)延時,得出PCS層的延時,。

    設32 Gb/s速率下系統(tǒng)pcs的延時為tp(ns),,其他延時為to(ns),則式(7)可表達為:

tx1-gs8-9.gif

    從而求得系統(tǒng)中PCS部分延時tp,。同時由于開發(fā)板上的GTX也是由PCS和PMA組成的,,因此該設計的實際延時應再減去GTX的PCS延遲,,此延遲經(jīng)仿真實測約為15個周期左右。在32 Gb/s的傳輸速率下對應物理延時為15 ns,。

    在本次測試中選取f1=2.5 GHz,,f2=2 GHz,T=60 s,,分別測量j1和j2的多次平均值,,測量結果如表3所示。

tx1-b3.gif

    通過方程組(3)可求出tp=24.48 ns,。即32 Gb/s速率下PCS的總延時為24.48 ns,,去除GTX的PCS延時15 ns,整個設計的PCS延時為9.48 ns,,與理論計算值9.12 ns的誤差約為3.95%,,可認為是測量誤差。

4 結論

    以SERDES為代表的高速串行接口技術代表了當今數(shù)據(jù)傳輸技術的發(fā)展趨勢,。如何進一步壓縮PCS傳輸延遲是SERDES技術發(fā)展所需解決的迫切難題,。本文在SERDES技術的基礎上,通過利用自研相位自適應緩沖(SPCB),,實現(xiàn)了一個低延時超高速PCS,。分析探討了系統(tǒng)結構中各個模塊的功能實現(xiàn),并針對CPU直連這一應用場景對部分模塊進行優(yōu)化,。還對其延時從理論,、仿真與FPGA實測3個方面進行了分析。相比傳統(tǒng)的PCS方案,,本系統(tǒng)數(shù)據(jù)傳輸延時小,,在32 Gb/s的通信速率下僅為10 ns左右,可應用于處理器直連以及2.5D/3D封裝die互連等高速通信場景,。該研究成果目前已應用于國產(chǎn)處理器直連接口,,為國產(chǎn)裝備自主可控提供了有力支撐。

參考文獻

[1] 陳東旭.面向2.5G SerDes的8b/10b編解碼電路設計與測試[D].成都:電子科技大學,,2015.

[2] AISWARYA A S,,GEORGE A.Fixed latency serial transceiver with single bit error correction on FPGA[A].2017 International Conference on Trends in Electronics and Informatics(ICEI)[C].Tirunelveli,2017:902-907.

[3] ANDERSON D,,TRODDEN J.Hypertransport system architecture[M].Addison-Wesley Professional,,2003:30-32.

[4] ZIAKAS D,BAUM A,,MADDOX R A,,et al.Intel quickpath interconnect architectural features supporting scalable system architectures[A].2010 18th IEEE Symposium on High Performance Interconnects.IEEE[C].New York,2010:1-6.

[5] 王偉濤.8b/10b架構SerDes芯片的設計與實現(xiàn)[D].成都:電子科技大學,,2016.

[6] 王菲,,張莎莎,,王茜.信號跨時鐘域問題分析及驗證方法研究[J].電子技術應用,2017,,43(1):43-45,,49.

[7] 王小娟.基于FPGA的異步FIFO的設計[J].中國新通信,2016(23): 66.

[8] 吳濤.一種異步FIFO讀寫控制電路及方法[P].中國:201810628386.9,,2018.

[9] DEWEY M.Implementing digital interfaces with user programmable FPGAs[A].IEEE Autotestcon[C].IEEE Autotestcon Conference,,2017:60-164.

[10] ARORA S.SERDES external loopback test using production parametric-test hardware[A].International Test Conference Proceedings[C].47th IEEE International Test Conference,2016.

[11] 劉安,,禹衛(wèi)東,,馬小兵,等.基于FPGA的高速串行數(shù)據(jù)收發(fā)接口設計[J].電子技術應用,,2017,,43(6):48-51.

[12] 高虎,封二強,,趙剛.基于Testbench的FPGA實物自動化測試環(huán)境設計[J].電子技術應用,,2018,44(4):48-51.

[13] 王玨文,,金偉信,,蔡一兵,等.基于FPGA的SPI總線接口的實現(xiàn)[J].現(xiàn)代電子技術,,2010,,33(14):102-104.



作者信息:

吳劍簫1,王  鵬2,,吳  濤1,,高  鵬1,陳文濤3,,4

(1.中國科學院 上海高等研究院,,上海200120;2.上海大學 計算機工程與科學學院,,上海200444,;

3.上海芯來電子科技有限公司,上海201411,;4.數(shù)學工程與先進計算國家重點實驗室,,江蘇 無錫214125)

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載,。