首頁 > 新能源汽車

PCIe3.0總線有什么特點?

來源:新能源汽車網(wǎng)
時間:2023-05-23 17:05:34
熱度:

PCIe3.0總線有什么特點?PCIe標(biāo)準(zhǔn)自從推出以來,1代和2代標(biāo)準(zhǔn)已經(jīng)在PC和Server上逐漸普及,用于滿足高速顯卡、高速存儲設(shè)備對于高速數(shù)據(jù)傳輸?shù)囊?。出于支持更高總線數(shù)據(jù)

PCIe標(biāo)準(zhǔn)自從推出以來,1代和2代標(biāo)準(zhǔn)已經(jīng)在PC和Server上逐漸普及,用于滿足高速顯卡、高速存儲設(shè)備對于高速數(shù)據(jù)傳輸?shù)囊?。出于支持更高總線數(shù)據(jù)吞吐率的目的,PCI-SIG組織在2010年制定了PCIe 3.0,即PCIe 3代的規(guī)范,數(shù)據(jù)速率達(dá)到8Gbps。


PCIe3.0總線究竟有什么特點?對于其測試有什么特殊的地方呢?本文我們就來探討一下。

1

PCI-E 3.0簡介


制定PCI-e 3代規(guī)范的目的主要是要在現(xiàn)有的廉價的FR4板材和接插件的基礎(chǔ)上提供比PCI-e 2代高一倍的有效數(shù)據(jù)傳輸速率,同時保持和原有1代、2代設(shè)備的兼容。別看這是個簡單的目的,但實現(xiàn)起來可不容易。

>>> 如何將數(shù)據(jù)傳輸速率提高一倍?

PCI-E 2代在每對差分線上的數(shù)據(jù)傳輸速率是5Gbps,相對于1代數(shù)據(jù)速率的兩倍;而PCI-E 3代要相對于2代把速率也提高一倍,理所當(dāng)然的是把數(shù)據(jù)傳輸速率提高到10Gbps。

但是就是這個10Gbps帶來了很大的問題,因為PC和Server上出于成本的考慮,普遍使用便宜的FR4的PCB板材以及廉價的接插件,如果不更換板材和接插件,很難保證10Gbps的信號還能在原來的信號路徑上可靠地傳輸很遠(yuǎn)的距離(典型距離是15~30cm)。因此PCI-SIG終決定把PCI-E 3代的數(shù)據(jù)傳輸速率定在8Gbps。但是8Gbps相比2代的5Gbps并沒有高一倍,所以PCI-E協(xié)會決定在3代標(biāo)準(zhǔn)中把在1代和2代中使用的8b/10b編碼去掉。

在PCI-E 1代和2代中,為了保證數(shù)據(jù)的傳輸密度、直流平衡以及內(nèi)嵌時鐘的目的,會把8bit數(shù)據(jù)編碼成10bit數(shù)據(jù)傳輸。因此,5Gbps的實際有效數(shù)據(jù)傳輸速率是5Gbps×8b/10b=4Gbps。這樣,在PCI-E 3代中,如果不使用8b/10b編碼,其有效數(shù)據(jù)傳輸速率就能比 2代的4Gbps提高1倍。

>>> 如何保證數(shù)據(jù)傳輸密度和直流平衡?

但是這樣問題又來了,數(shù)據(jù)如果不經(jīng)編碼傳輸,很難保證數(shù)據(jù)傳輸密度和直流平衡,接收端的時鐘恢復(fù)電路也很容易失鎖。為了解決這個問題,PCI-E 3代里面采用了擾碼的方法,即數(shù)據(jù)傳輸前,先和一個多項式進行異或,這樣傳輸鏈路上的數(shù)據(jù)就看起來就比較有隨機性,到了接收端再用相同的多項式把數(shù)據(jù)恢復(fù)出來。

通過上述方法,PCI-E 3代就可以用8Gbps的傳輸速率實現(xiàn)比2代的5Gbps高1倍的數(shù)據(jù)傳輸速率。實際應(yīng)用中,PCI-E 3代的總線上也仍然有數(shù)據(jù)編碼,不過采用的是128b/130b的編碼,編碼效率很高,由此損失的總線有效帶寬比8b/10b編碼小多了。


2

PCI-E 3.0 發(fā)送及接收端的變化

但是問題遠(yuǎn)沒有結(jié)束,即使數(shù)據(jù)速率只有8Gbps,要在原有的廉價PCB和接插件上實現(xiàn)可靠傳輸也還要解決一些新的問題。其中的問題是信號的損耗,F(xiàn)R4板材對信號高頻成分有很大衰減,而信號速率越高,其高頻成分越多,所以衰減也就更厲害。圖1是不同速率的信號經(jīng)過10英寸的FR4板材的PCB傳輸以后信號的眼圖,我們可以看到,8Gbps的信號在接收端基本上看不到眼圖了,更不要說進行有效的數(shù)據(jù)接收。

▲ 圖1 不同速率信號經(jīng)過10英寸的FR4板材的PCB傳輸以后信號的眼圖


>>> 發(fā)送端的變化

為了解決這個問題,在PCI-E的1代和2代中使用了去加重(De-emphasis)技術(shù),即信號的發(fā)射端(TX)在發(fā)送信號時對跳變bit(代表信號中的高頻成分)加大幅度發(fā)送,這樣可以部分補償一下傳輸線路對高頻成分的衰減,從而得到比較好的眼圖。PCI-E 1代中采用了-3.5db的去加重,PCI-E 2代中采用了-3.5db和-6db的去加重。而對于3代來說,由于信號速率更高,需要采用更加復(fù)雜的去加重技術(shù),因此除了跳變bit比非跳變bit幅度增大發(fā)送以外,在跳變bit的前1個bit也要增大幅度發(fā)送,這個增大的幅度通常叫做Preshoot。圖2是PCI-E 3代中采用的預(yù)加重技術(shù)對波形的影響的例子(參考資料:PCI Express? base Specification 3.0 )。


▲ 圖2 PCI-e 3.0 預(yù)加重技術(shù)對信號波形的影響


為了應(yīng)對復(fù)雜的鏈路環(huán)境,PCI-E3代中規(guī)定了共11種不同的Preshoot和De-emphasis的組合,每種組合叫做一個Preset,實際應(yīng)用中Tx和Rx端可以在link Training階段根據(jù)接收端收到的信號質(zhì)量協(xié)商出一個的Preset值。下圖是11種Preset的組合(參考資料:PCI Express? base Specification 3.0)。比如P4代表沒有任何預(yù)加重,P7代表厲害的預(yù)加重。



>>> 接收端的變化

那做了這些工作就夠了嗎?經(jīng)過實驗發(fā)現(xiàn),僅僅在發(fā)送端對信號高頻進行補償還是不夠,于是PCI-E 3代標(biāo)準(zhǔn)中又規(guī)定在接收端(RX端)還要對信號做均衡(Equalization),從而對線路的損耗進行進一步的補償。均衡電路的實現(xiàn)難度較大,以前主要用在通信設(shè)備的背板或長電纜傳輸?shù)膱龊?,現(xiàn)在也逐漸開始在計算機領(lǐng)域應(yīng)用,比如USB3.0中和SATA 6G中也采用了均衡技術(shù)。下圖是PCI-E 3.0里對均衡器的頻響特性的要求。我們可以看到均衡器的強弱也有很多檔可選,在link Training階段TX和RX端會協(xié)商出一個的組合(參考資料:PCI Express? base Specification 3.0)。

經(jīng)過各種信號處理技術(shù)的結(jié)合以及大量的實驗,PCI-E 3.0總算初步實現(xiàn)了在現(xiàn)有的FR4板材和接插件的基礎(chǔ)上提供比PCI-E 2代高一倍的有效數(shù)據(jù)傳輸速率。但我們同時也看到,PCI-E 3代的芯片會變得更加復(fù)雜,系統(tǒng)設(shè)計的難度也也更大。如何保證PCI-E 3代總線工作的可靠性和很好的兼容性,就成為設(shè)計和測試人員面臨的嚴(yán)峻挑戰(zhàn)。


3

PCI-E 3.0 發(fā)送端信號質(zhì)量測試


對于發(fā)送端的測試,主要是用寬帶示波器捕獲其發(fā)出的信號并驗證其信號質(zhì)量滿足規(guī)范要求。按照目前規(guī)范中的要求,PCI-E 3.0的一致性測試需要至少13GHz帶寬的示波器,并配合上相應(yīng)的測試夾具和測試軟件。之所以PCI-E 3.0測試需要的示波器帶寬相對于PCI-E 2.0來說變化不大,是因為信號的上升時間基本沒變,不過如果是出于調(diào)試的目的,一般建議使用16GHz或以上帶寬的示波器進行測試。

由于PCI-E 3代的信號經(jīng)過傳輸以后信號幅度都已經(jīng)衰減得很?。ǖ湫椭凳?00mV左右),為了保證足夠的測量精度,除了示波器的帶寬要足夠以外,還需要示波器有很低的底噪聲才能保證測量的準(zhǔn)確性和測量重復(fù)性。比如Keysight公司的高端的V或者Z系列示波器都可以用于PCI-E 3.0這樣的高速信號的測試中。以V系列示波器來說,其帶寬選擇可從8GHz~33GHz,采樣率80G/s,具有業(yè)內(nèi)的底噪聲和本底抖動。同時V系列示波器還可以選配高達(dá)20G/s的數(shù)字通道用于DDR3/4等總線的調(diào)試,或者選配高達(dá)160bit長度、12.5Gbps數(shù)據(jù)速率的硬件串行觸發(fā)及誤碼檢測功能,這是市面上能對PCIE3.0 的128b/130b編碼數(shù)據(jù)進行硬件觸發(fā)和調(diào)試的示波器。



在PCIE3.0的測試中,首先使用PCI-E協(xié)會提供的PCI-E 3代的夾具把被測信號引出(PCI-E3代的夾具和PCI-E 2代一樣分為CBB板和CLB板,CBB板用于插卡的測試,CLB板用于主板的測試),然后通過測試夾具上的切換開關(guān)控制DUT輸出PCI-E 3代的一致性測試碼型。在切換板上的按鍵開關(guān)時,正常的PCI-E 3代的被測件依次會輸出2.5Gbps、5Gbps -3dB、5Gbps -6dB、8Gbps P0、8Gbps P1、8Gbps P2、8Gbps P3、8Gbps P4、8Gbps P5、8Gbps P6、8Gbps P7、8Gbps P8、8Gbps P9、8Gbps P10的碼型。需要注意的一點是,由于PCI-E 3代信號如前所述共有11種Preset值,測試過程中應(yīng)明確當(dāng)前測試的是哪一種Preset值,做信號質(zhì)量測試常用的有Preset7、Preset8、Preset1、Preset0等。下圖是PCI-E 3代的CBB板及一致性測試碼型。

另外,由于PCI-E 3代的標(biāo)準(zhǔn)里,在接收芯片側(cè)使用了信號均衡技術(shù),而且均衡器對于終信號質(zhì)量做了改善調(diào)整。為了把傳輸通道對信號的惡化以及均衡器對信號的改善效果都考慮進去,PCI-E 3代的測試?yán)锖苤匾囊稽c是其發(fā)送端眼圖、抖動等測試的參考點是在接收端。也就是說,即使我們是在發(fā)送端進行測試,在進行眼圖、抖動等測試時也不是直接測試發(fā)送端的波形,而是需要把傳輸通道對信號的惡化的影響以及均衡器對信號的改善影響都考慮進去。圖4比較直觀地顯示出了在不同位置信號質(zhì)量的情況。


▲ 圖4 PCI-e 3.0信號在傳輸過程中的信號質(zhì)量的變化


為了模擬出傳輸通道和芯片封裝對信號的影響,測試中需要做傳輸通道參數(shù)的嵌入操作,即Embed。這個傳輸通道的模型是PCI-E協(xié)會以S參數(shù)文件的形式提供的,測試過程中需要示波器能把這個S參數(shù)文件的影響加到被測波形上。同時,測試過程中示波器是用兩個通道分別連接信號的正負(fù)端,要得到的差分波形需要示波器對兩個通道的波形做相減運算。如果波形相減和S參數(shù)嵌入的工作都由示波器軟件計算,會大大影響測試速度,因此有些公司的高端示波器內(nèi)部會有硬件的通道相減及S參數(shù)運算功能,可以大大提高測試的速度和效率。

對測試數(shù)據(jù)做分析的方法有2種:一種是使用PCI-SIG提供的Sigtest軟件做手動分析;一種是使用示波器廠商提供的自動測試軟件。

Sigtest軟件算法由PCI-SIG提供,可以進行信號的眼圖、模板、抖動的測試,但是需要用戶手動捕獲數(shù)據(jù)進行后分析,不熟練的測試人員, 經(jīng)常由于設(shè)置不對造成測試結(jié)果不一致,而且其測試項目有限,沒有覆蓋全部的信號要求。所以針對PCI-E3.0的測試有些示波器廠商還提供了相應(yīng)的自動化測試軟件,比如Keysight公司的N5393D自動化測試軟件。這個軟件以圖形化的界面指導(dǎo)用戶完成設(shè)置、連接和測試過程,除了可以自動進行示波器測量參數(shù)設(shè)置以及自動生成外,還提供了Swing、Preset、Common Mode等更多測試項目以,提高了測試的效率和可重復(fù)性。除此以外,這個軟件在測試過程中還會對被測件發(fā)出的碼型和速率進行檢查,以確認(rèn)測試使用的是規(guī)范要求的正確碼型。另外,很重要的一點是,在N5393D軟件里,使用的是和SigTest軟件完全一樣的分析算法,從而可以保證分析結(jié)果和SigTest軟件的一致性。圖5是N5393D軟件的設(shè)置界面。


▲ 圖5 N5393D軟件的設(shè)置界面


因此,簡單來說,對于以前從事PCI-E 2.0的測試人員來說,進行PCI-E 3.0的測試除了需要重新購置PCI-E3.0的測試夾具CLB3和CBB3以外(其實原有的CLB2和CBB2等針對PCI-E2.0測試的夾具勉強也仍然可以用于PCI-E3.0的發(fā)送信號測試中),PCI-E3.0的信號測試相對于PCI-E2.0來說硬件設(shè)備的變化不大,基本使用13GHz或16GHz帶寬的示波器就可以,但是測試軟件對于測試數(shù)據(jù)的處理變得更加復(fù)雜了。數(shù)據(jù)分析時除了要嵌入傳輸通道和芯片封裝的線路模型以外,還要把均衡器對信號的改善也考慮進去,好在無論是PCI-E協(xié)會提供的的Sigtest軟件還是Keysight公司的N5393D自動測試軟件都可以為PCI-E3.0的測試提供很好的幫助。

此外,由于PCI-E總線上要測試的數(shù)據(jù)Lane的數(shù)量很多,雖然測試項目可以由軟件自動完成,但是連接還是需要人工進行,因此每測試完一對差分線就需要測試人員來更改一下連接,非常麻煩。為了提高測試效率,可以把示波器配合相應(yīng)的微波開關(guān)矩陣使用,微波開關(guān)矩陣可以在自動測試軟件的控制下根據(jù)需要進行信號的切換。這樣測試人員只需要把所有的被測信號都連接到開關(guān)矩陣上,然后運行測試軟件就可以了。圖6是在PCI-E的測試中配合開關(guān)矩陣使用的情況


4

PCI-E 3.0 接收端容限測試


在PCI-E 1.0和2.0的時代,接收端測試不是必須的,通常只要保證發(fā)送端的信號質(zhì)量基本就能保證系統(tǒng)的正常工作。但是對于PCI-E3.0來說,由于速率更高,發(fā)送端發(fā)出的信號經(jīng)過長線傳輸后信號質(zhì)量總是不會太好,所以接收端使用了復(fù)雜的均衡技術(shù)來提升接收端的接收能力。由于接收端更加復(fù)雜而且其均衡的有效性會顯著影響鏈路傳輸?shù)目煽啃?,因此在PCI-E3.0時代,接收端的測試變成了必測的項目。

Keysight的M8020A是高性能的串行誤碼儀,其單路可以產(chǎn)生16.2Gbps的高速數(shù)據(jù)流,固有抖動只有300fs(RMS),同時其內(nèi)部集成時鐘恢復(fù)電路、預(yù)加重模塊、噪聲注入、參考時鐘倍頻、信號均衡電路等,非常適合PCIE3.0接收測試這種速率高同時對信號質(zhì)量又有很好要求的場合。除此以外,M8020A支持到16.2Gbps信號的8階的預(yù)加重,可以充分滿足未來PCIE4.0的接收測試的要求。圖7是用 M8020A進行PCI-E 3.0接收測試的一個示意圖。


▲ 圖7  PCI-E 3.0接收端測試示意圖。


所謂接收端測試,就是要驗證接收端對于惡劣信號的容忍能力。這就涉及到兩個問題,一個是這個惡劣信號怎么定義,另一個是怎么判斷被測系統(tǒng)能夠容忍這樣的惡劣信號。

首先來看一下這個惡劣信號的定義,這不是一個隨便的差信號就可以,這個信號的惡劣程度有定義才能保證測量的重復(fù)性。這個惡劣信號通常叫做Stress Eye,即壓力眼圖,實際上是借鑒了光通信里的叫法。這個Stress Eye實際上是用高性能的誤碼儀先產(chǎn)生一個純凈的帶預(yù)加重和Preshoot的8Gbps的信號,然后在這個信號上疊加上控制的隨機抖動(RJ)、周期抖動(SJ)、差模和共模噪聲以及碼間干擾(ISI)。為了確定每個成分的大小都符合規(guī)范的要求,所以測試之前需要先用示波器對誤碼儀輸出的信號進行校準(zhǔn),確定產(chǎn)生的是規(guī)范要求的Stress Eye。其中信號的RJ、SJ、共模噪聲等都可以由誤碼儀產(chǎn)生,而ISI抖動是由PCI-E協(xié)會提供的CLB3或CBB3夾具產(chǎn)生,其夾具上會模擬典型的主板或者插卡的PCB走線對信號的影響。

為了方便接收測試,CLB3和CBB3夾具相對于前一代夾具做了一些電路的改動,主要是考慮了接收測試的情況。比如為了切換測試碼型,在PCI-E2.0的CLB2夾具上,從主板發(fā)過來的RefClk是直接環(huán)回到主板的Lane0的接收端,不能斷開;而在PCI-E3.0的CLB3的夾具上,由于要考慮到可能還會對主板Lane0的接收端進行測試,因此這個連接是通過SMP的跳線完成的。另外,在CBB3的夾具上,增加了專門的Riser板以模擬服務(wù)器等應(yīng)用場合的走線對信號的影響。要產(chǎn)生PCI-E3.0要求的壓力眼圖需要調(diào)整很多參數(shù),比如需要調(diào)整輸出信號的幅度、預(yù)加重、差模噪聲、隨機抖動、周期抖動等以滿足眼高、眼寬和抖動的要求。而且各個調(diào)整參數(shù)之間也會相互制約,比如調(diào)整信號的幅度時,除了會影響眼高也會影響到眼寬,因此各個參數(shù)的調(diào)整需要反復(fù)進行以得到一個化的組合。校準(zhǔn)中會調(diào)PCI-SIG的Sigtest軟件對信號進行通道模型嵌入和均衡,并計算的眼高和眼寬。如果沒有達(dá)到要求,會在誤碼儀中進一步調(diào)整注入的隨機抖動和差模噪聲的大小,直到眼高和眼寬達(dá)到以下參數(shù)要求:

校準(zhǔn)時,信號的參數(shù)分析和調(diào)整需要反復(fù)進行,人工操作非常耗時耗力。為了解決這個問題,Keysight公司在業(yè)內(nèi)早推出了N5990A的針對PCI-E3.0接收容限的自動測試軟件,這個軟件可以提供設(shè)置和連接向?qū)?、控制誤碼儀和示波器完成自動校準(zhǔn)、發(fā)出訓(xùn)練碼型把被測件設(shè)置成環(huán)回狀態(tài)并自動進行環(huán)回回來數(shù)據(jù)的誤碼率統(tǒng)計。

設(shè)置被測件進入環(huán)回模式有兩種方式,一種是借助于誤碼儀本身的Training序列,另一種是借助于芯片廠商提供的工具(比如Intel公司的ITP工具)。傳統(tǒng)的誤碼儀不具有對于PCIE協(xié)議理解的功能,只能盲發(fā)訓(xùn)練序列,缺點是沒有經(jīng)過正常的預(yù)加重和均衡的協(xié)商,這就可能造成不能把被測件設(shè)置成正確的狀態(tài)。而很多新的CPU平臺要求誤碼儀和被測件進行有效的預(yù)加重和均衡的溝通,然后再進行環(huán)回,這就要求誤碼儀能夠識別對端返回的訓(xùn)練序列并做相應(yīng)的調(diào)整。M8020A平臺集成了link協(xié)商的功能,能夠真正和被測件進行訓(xùn)練序列的溝通,可以有效地把被測件設(shè)置成正確的環(huán)回狀態(tài)。



當(dāng)被測件進入環(huán)回模式并且誤碼儀發(fā)出壓力眼圖的信號后,被測系統(tǒng)會把其從RX端收到的數(shù)據(jù)再通過TX端發(fā)送出來送回誤碼儀,誤碼儀通過比較誤碼來判斷數(shù)據(jù)是否被正確接收,測試通過的標(biāo)準(zhǔn)是要求誤碼率小于1E-12。