N.T.開講:導向串列式傳輸 降低PCIe匯流排信號抖動

2005-11-14
當今IT產業裡的所有主流匯流排,如USB2.0、1394a/b、SATA、PCI Express(PCIe)、光纖通道(Fibre Channel)等,已全面性邁向串列式傳輸,而串列式資料傳輸已被工程界證實,若在光纖媒介上傳送,其速度可以跨越100Gbps高門檻...
當今IT產業裡的所有主流匯流排,如USB2.0、1394a/b、SATA、PCI Express(PCIe)、光纖通道(Fibre Channel)等,已全面性邁向串列式傳輸,而串列式資料傳輸已被工程界證實,若在光纖媒介上傳送,其速度可以跨越100Gbps高門檻。  

不少人有疑問,並列式傳輸方式採多個位元同時輸出,而串列式連接卻是一個位元緊接一個位元載送出去,照道理說,一次多個位元的方式不是較快嗎?究竟串列式連接有何致命魅力,會將今日個人電腦的主力輸出入匯流排標準,甚至高速網路,全面導向串列式呢?  

英特爾(Intel)晶片組從ICH6起開始導入PCIe匯流排,915/925/945/955系列主機板陸續推出,在該主機板上可見到PCIe x16以及PCIe x1的連接器,少數的主機板甚至內建x4的連接器,但是,市面上的介面卡,除取代AGP 8X的PCIe x16顯示卡外,常見到的介面卡可能僅有Gigabit乙太網路卡。  

相當有趣的是PCIe1.0主要核心規格的制定也不過是2002年的新鮮事,事隔一年就出現1.0a版本,在2005年3月又再度出現1.1版本,一個尚未普及的規範不斷天蠶變,無論對消費者或工程人員來說,實在有點折磨。筆者有時相當感嘆,研讀規格的速度甚至追不上規格變異的步調,「十倍速時代」真是令人感到難以承受。  

串列式傳送實現零BER  

串列式傳送的整體性能優異點,其實就是位元錯誤率(Bit Error Rate, BER),不過,其有但書存在,要實現十全十美零BER的美麗境界,必須在兩方面得到適當控制,亦即信號時序抖動(Timing Jitter)以及信號振幅雜訊(Amplitude Noise)(圖1)。  

而最新的1.1版本究竟又增修哪些規格呢?以重點來說,主要改變三個層面:  

‧參考時脈(Reference Clock)的驗證測試更加明確化。  

‧傳送端規格的更新,在乾淨的時脈下其傳送抖動小於0.25UI(Unit Interval),傳送端相位閉鎖迴路(Phase Locked Loop, PLL)的3dB點必須座落在1.5MHz~22MHz之間。  

‧接收端的抖動餘域(Jitter Tolerance)必須大於0.6UI,時脈資料恢復迴路(Clock Data Recovery, CDR)的頻寬必須低於22MHz。  

因此,信號抖動(Jitter)幾乎是PCIe新規格的著墨重點。那麼信號抖動的定義是什麼呢?依據「T11.2/ Project 1230/ Rev 10 Fibre Channel - Methodologies forJitter Specifi-cation Page 7.」,可定義為「理想時序的偏差」。  

解說「Tj = Dj + Rj」  

信號抖動其實是一門頗為深奧的學問,學理上的數學式演義就留給研究專才發揮,在此則針對產品應用來淺談攸關PCIe1.1的抖動課題。  

傳統上整體抖動的表示方式都是以「Tj = Dj + Rj」的手段來表示,其中,Dj涵義是可決定性量測的抖動(Deterministic Jitter),Rj則是代表著隨機性抖動(Random Jitter)元素(圖2、3)。  

若從眼狀圖(Eye Diagram)來觀察,眼狀開口可用底下明確的數學式來呈現:  

‧眼狀開口(Eye Opening) = Bit Period – TJ@BER  

當然,抖動是不令人歡迎的東西,越低越少越好。當眼狀圖變漂亮了,意思就是信號品質實在不錯。  

Dj一般是呈現非高斯(Non-Gaussian)的分布方式,因此,可以用峰值對峰值的界限數值來加以定量化,它並不會隨著更多的取樣次數而增加(圖4)。通常Dj的發生原因源自四面八方,然而最主要原因不外乎是串音(Crosstalk)、EMI電磁輻射、電源雜訊,或是傳輸線上的截線(Stub)引起的效應等。  

而Rj的發生原因主要是來自於熱雜訊(Thermal Noise)、散粒雜訊(Shot Noise)以及閃爍雜訊(Flicker Noise)。由於Rj的峰對峰數值(Peak-to-Peak)無窮大,因此,一般都是使用在特定的BER情況下計算出Tj(圖5)。Dj的峰對峰值可以量測出來,而隨機性抖動可以量測出其均方根數值Rj(RMS)。對於任何的隨機性抖動而言,其峰值與標準值的偏差是與BER息息相關。  

因此,對一特定BER情況之下,隨機性抖動通常會乘以一個定數,將RMS均方根數值轉換成峰對峰數值(表1)。因此,在BER=(10-12)的情況下,整體抖動Tj就可以利用底下這個數學式來表示:  

.Tj = n × Rj(RMS) + Dj = 14 × Rj(RMS) + Dj  

CDR影響信號抖動  

由於PCIe採用8b/10b編碼方式,時脈乃是隱藏於資料流中,因此在接收端必然會有CDR迴路存在,而該CDR對於信號抖動的內在影響就是一個很有趣的探討課題(圖6)。  

至於時脈恢復CR (Clock Recovery)對於信號抖動的測量有多大的影響,請觀看圖7專業廠商的實驗結果,心中自然會有定數。  

串列式連接的接收端之時脈恢復,大多是用PLL來實踐,由於時脈信號是由進來的資料中藉由PLL抽取出來,資料再由時脈信號載入到移位暫存器(Shift Register)中,移位暫存器的並列資料輸出就提供給後段來處理。  

於是,產生一個有趣現象,低頻的抖動信號會因為PLL的三分貝頻率(也稱為轉角頻率Corner Frequency)的阻擋而被過濾掉,但是,高於fc的抖動高頻成分,將不會被資料回復機能方塊所濾掉。因此,如何建立一個傳遞函數(Transfer Function)模型來定性定量解析攸關BER的抖動與雜訊,有其必要性。  

解說「Hrx(s) = 1 - Hcr(s)」  

信號抖動的傳遞函數就是指抖動頻率,以及抖動振幅的傳送特性。根據接收器的架構,可以用圖8來呈現接收端抖動的傳遞函數(Transfer Function),該模型的本質可以說抖動的傳遞函數是資料信號與時脈恢復之間的差,換句話說,可以運用底下簡易的數學式來闡述:  

.Hrx(s) = 1 - Hcr(s)  

其中,Hrx(s)是資料接收端抖動信號的傳遞函數,Hcr(s)是時脈恢復的頻率傳遞函數,而s則是複頻率(Complex Frequen-cy)。大多數的時脈恢復電路採用PLL方式,呈現出低通濾波器(Low-Pass Filter, LPF)的特徵,所以,Hrx(s)本質上是一個高通率波(High-Pass)的型態。無論是光纖通道還是Gigabit乙太網路等,皆是具有抖動高通傳遞函數的特色。  

BER為10-12或是更低,是當前主要通信規範的可接受基準,不過,雖然網路通信與個人電腦的串列通信在本質上相當相近,但在實踐上可就有大小眼不同了。通常,網路通信設備保留屬性乃是小量、價格昂貴的產品,可以選用高品質低抖動的高級元件,但是,個人電腦的環境則是恰巧相反,是大量、價格不斷滑洛的產品屬性,元件或是迴路實踐的選擇上有所限制,而且,個人電腦的場合還要去處理展頻時脈SSC(Spread Spectrum Clock)的問題。話雖如此,必要的BER規範還是得維持。  

重要關鍵當然就是時脈恢復的實踐之道,有些人為了成本考量,有機會採用諸如相位內插法(Phase Interpolation, PI)的低價位數位手段,來取代傳統的PLL。  

探討PCIe抖動傳遞函數  

PCIe的參考時脈為100MHz,也是本文要摸索的參考時脈抖動傳遞函數。第一代的PCIe速度為2.5Gbps,意思是每一個位元的單元間隔UI為400PS,也就是說每一個400PS代表一個完整的週期(Cycle)。在完美情況下,也就是沒有相位抖動(Phase Jitter, Φ)的狀態下,第一個UI的弧度(Radian)是從0到2π,第二個UI的弧度是從2π到4π,第三個UI從4π到6π,依此類推下去,可以得知「絕對相位」是一個線性關係。  

.θn = 2nπ, n = 0, 1, 2, 3,……N  

探討相位抖動、週期抖動(Period Jitter)與週期對週期抖動(Cycle-to-Cycle Jitter)之間的內在關係,為探討PCIe參考時脈抖動傳遞函數過程中滿重要的一環,因此,就必須對這三個技術固有名詞加以澄清與解釋。  

若將UI定義寫成數學式呈現,第m個UI就是目前測量與前面測量之差:  

.UIm = t(m) – t(m-1), m = 1, 2, 3,…N  

理想位元週期T是為了解數學式涵義而寫,實際上的位元週期是經由資料本身抽取出來,也就是因為這個過程而產生時脈恢復,用於實際計算中。  

相位抖動的定義乃意指測量時間以及理想位元週期T的相差,因此,相位抖動其實就是理想時間nT的時間錯誤累積:  

.Φn = t(n) – nT, n = 0, 1, 2, 3,…N  

圖9是一個100MHz的正弦波式之相位抖動。週期抖動Φ’的定義是指測量週期與理想週期的差異(圖10):  

.Φ’(n) = (t(n) - t(n-1)) – T, n = 1, 2, 3,…N  

根據上面兩個數學式,不難導出相位抖動的第一次微分:  

.Φ’(n) =Φ(n) – Φ(n-1)  

週期對週期抖動Φ”之涵義則是連續位元之間的相差(圖11):  

.Φ”(n) = (t(n) - t(n-1)) – (t(n-1) - t(n-2)), n = 2, 3, 4,…N  

同樣的道理,也可以推導出:  

.Φ”(n) =Φ’(n) –Φ’(n-1), n = 2, 3, 4,…N  

可以看出週期對週期抖動Φ”是週期抖動Φ’的一次微分,也是相位抖動的二次微分,圖12解釋了三者間的關係。  

由此可知,相位抖動Φ、週期抖動Φ’與週期對週期抖動Φ”三種不同途徑表示相同的時脈抖動現象。  

實現時脈資料恢復迴路  

就PCIe匯流排來說,時脈資料恢復迴路的實踐方式因人而異,為了價格考量,有些工程人員會採用相位內插法與過度取樣(Oversampling)的數位技巧,也有人會採用PLL對策。  

相位內插法固然在半導體設計成本上比較低廉,也比較省電,但是,追蹤頻率的改變還是有其限制,基本上該種策略是依賴系統共通基準時脈以及內部的PLL來恢復頻率資訊,同時,此種方案模型的建立也很困難。  

PLL的策略沒有使用系統共通基準時脈來恢復頻率或相位,而是緊盯輸入的資料來調整相位與頻率,此種方案在網路通信領域裡已廣泛使用,可以採用兩階以上的傳遞函數(圖13)。  

該模型的傳遞函數、3dB頻率的數學式以及相關的頻率響應,請參照圖14、15。其中,數學式裏的ξ是指阻尼因素(Damping Factor),ω即是固有頻率(Natural Frequency),就此例來說,3dB頻率約是在15MHz地帶。  

再透過反向的Laplace轉換,就可以得到時間領域的「Eye-Closure」圖(圖16)。  

在制定PCIe規格的時候,PCI Express Jitter Working Group(JWG)工作小組進行討論找出一個共通可遵循的模式,用在互通性測試才能夠有一個共通的基準,以力求公平。  

走在高頻資料通信的路途上,信號抖動果真是一道必須認真學會的硬工夫。  

(詳細圖表請見新通訊57期11月號)  

 

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!