PCIe掃盲 物理層邏輯部分基礎(一)

2021-09-24 23:08:49 字數 1152 閱讀 3541

首先,回顧一下,之前看了很多遍的pcie的layer結構圖:

pcie中的物理層主要完成編譯碼(8b/10b for gen1&gen2,128b/130b for gen3 and later)、擾碼與解擾碼、串並轉換、差分傳送與接收、鏈路訓練等功能。其中鏈路訓練主要通過物理層包ordered sets來實現。

pcie spec將物理層分為兩個部分——邏輯子層和電氣子層,如下圖所示:

如上圖所示,pcie物理層實現了一對收發差分對,因此可以實現全雙工的通訊方式。需要注意的是,pcie spec只是規定了物理層需要實現的功能、效能與引數等,至於如何實現這些卻並沒有明確的說明。也就是說,廠商可以根據自己的需要和實際情況,來設計pcie的物理層。下面將以mindshare書中的例子來簡要的介紹pcie的物理層邏輯部分,可能會與其他的廠商的裝置的物理層實現方式有所差異,但是設計的目標和最終的功能是基本一致的。

物理層邏輯子層的傳送端部分的結構圖如下圖所示:

在進行8b/10b編碼之前,mux會對來自資料鏈路層的資料中插入一些內容,如用於標記包邊界或者ordered sets的控制字元和資料字元。為了區分這些字元,mux為其對應上乙個d/k#位(data or kontrol)。

注:圖中還包含了gen3的一些實現,不過這裡只介紹gen1 & gen2,並不會介紹gen3。如果大家感興趣的,可以去閱讀mindshare的書籍或者參考pcie gen3的spec。

byte striping將來自mux的並行資料按照一定的規則(後面會詳細地說)分配到各個lane上去。隨後進行擾碼(scrambler)、8b/10b編碼、序列化(serializer),然後是差分傳送對。

其中擾碼器(scrambler)是基於偽隨機碼(pesudo-random)的異或邏輯(xor),由於是偽隨機碼,所以只要傳送端和接收端採用相同的演算法和種子,接收端便可以輕鬆地恢復出資料。但是,如果傳送端和接收端由於某些原因導致其節拍不一致了,此時便會產生錯誤,因此gen1和gen2的擾碼器(scrambler)會周期性地被復位。

物理層邏輯子層的接收端部分的結構圖如下圖所示:

由於pcie採用的是一種embeded clock(借助8b/10b)機制,因此接收端在接收到資料流時,首先要從中恢復出時鐘訊號,這正是通過cdr邏輯來實現的。如上圖所示,接收端的邏輯基本上都是與傳送端相對應的相反的操作。這裡就不在詳細地介紹了。

物理層 網路基礎

物理層 一 物理層與物理層協議的基本概念 1.功能 保證位元流通過傳輸介質的正確傳輸,為資料鏈路層提供資料傳輸服務。2.傳輸介質 連線物理層的傳輸介質可以有不同型別,如 線 同軸電纜 光纖與無線通訊線路。3.設定物理層的目的 由於計算機網路使用的傳輸介質與通訊裝置種類繁多,各種通訊線路 通訊技術存在...

網路基礎 物理層

物理層 1.為了完成訊號的傳輸物理層規定了如下特性 1 機械特性 指明通訊實體間硬體連線介面的機械特點 2 電氣特性 規定了在物理連線上導線的電氣連線及有關的電路的特性 3 功能特性 指明物理介面各條訊號線的用途 用法 4 規程特性 指明利用介面傳輸位流的全過程及各項用於傳輸的事件發生的合法順序。2...

架構設計 邏輯層 vs 物理層

layer 和tier都是層,但是他們所表現的含義不同,tier指的是軟體系統中物理上的軟體和硬體,具體指部署在某伺服器上,而layer 邏輯層 指軟體系統中完成特定功能的邏輯模組,邏輯概念。layer是邏輯上 組織 的形式。比如邏輯分層中表現層,服務層,業務層,領域層,他們是軟體功能來劃分的。並不...