這一篇文章來繼續(xù)聊一聊接收端物理層邏輯子層的實(shí)現(xiàn)細(xì)節(jié)。回顧一下之前的那張圖片:
其中的一個(gè)Lane的具體邏輯如下圖所示:
其中,Rx Clock Recovery從輸入的串行數(shù)據(jù)流中提取出Rx Clock。當(dāng)Rx Clock穩(wěn)定在Tx Clock的頻率上(Rx Clock locked on to the Tx Clock Freq)時(shí),我們就稱接收端取得了Bit Lock。
如果鏈路(Link)處于低功耗狀態(tài)(比如L0s或者L1)時(shí),接收端此時(shí)會(huì)失去同步(即Losing Bit Lock)。為了避免物理層認(rèn)為這是一個(gè)錯(cuò)誤(異常),發(fā)送端會(huì)發(fā)送一個(gè)電氣空閑命令集(Electrical Idle Ordered Sets,EIOS)通知接收端,即將進(jìn)入低功耗狀態(tài)。此時(shí),接收端會(huì)臨時(shí)關(guān)閉(De-gate)其輸入。
注:這里的關(guān)閉(De-gate)并非是直接關(guān)閉輸入端口,只是暫時(shí)不對(duì)輸入端口上的數(shù)據(jù)進(jìn)行處理。
當(dāng)發(fā)送端需要喚醒鏈路(Link)時(shí),會(huì)首先發(fā)送一定數(shù)量的FTS Ordered Sets,并重新取得Bit Lock和Symbol Lock。
接收端的鏈路De-Skew邏輯如下圖所示:
Gen1和Gen2的PCIe采用COM字符來進(jìn)行De-Skew,如果COM沒有同事出現(xiàn)在每個(gè)Lane上,那么先到達(dá)的COM會(huì)被延時(shí)一會(huì),以實(shí)現(xiàn)Lane的同步。很顯然,這種機(jī)制只能校正比較小的Skew,也就是說Lane-to-Lane的Skew有一個(gè)最大值,超出這個(gè)最大值,De-Skew也無能為力了。如下表所示:
接收端的8b/10b解碼器結(jié)構(gòu)如下圖所示:
以下情況,被認(rèn)為是編碼沖突(Code Violation),即該字符在傳輸過程中發(fā)生了錯(cuò)誤:
關(guān)于解擾碼器(Descrambler)和Byte Un-striping都比較簡(jiǎn)單了,這里就不在詳細(xì)地介紹了。具體可以參考PCIe Spec的相關(guān)內(nèi)容。
-
PCIe
+關(guān)注
關(guān)注
15文章
1234瀏覽量
82584 -
物理層
+關(guān)注
關(guān)注
1文章
148瀏覽量
34360
原文標(biāo)題:【博文連載】PCIe掃盲——物理層邏輯部分基礎(chǔ)(三)
文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論