透視PCIe規格實體介面 PIPE規範資訊載送通道與方式

2006-06-19
PCIe資料交易的傳遞模式採用三層架構:資料交易層-資料鏈結層-實體層,而資料通訊的概念與一般貨運的概念是一致的,因此PCIe最精彩之處就在於資訊載送的傳輸道路與方式,實體層也成為廠商競爭的重兵集結處。在PCIe實體層規格中,PHY/MAC介面是真正的核心,接腳的定義與時序圖也是重點所在。
在2006年1月15日,隸屬於IEEE802.15委員會之下,負責超寬頻(Ultra-Wide Band, UWB)的TG3a決定解散,並以95%以上壓倒性的票數贊成解散,與成立之初和衷共濟的景象形成強烈對比。從2002年初開始,經過漫長四年的討論,最後竟成一場空。那麼,底層採用超寬頻的無線USB又該何去何從?既然官方撒手,民間只好自力救濟。超寬頻論壇(UWB Forum)與WiMedia聯盟迅速反應,發表聲明表示保證將把超寬頻推向商用化,就是自力救濟的具體舉動。  

TG3a解散的事件,就是所謂的「技術風險」。那麼,已經出現一段日子的PCI Express(以下稱PCIe),在市面上的產品除了顯示卡之外,其他產品少之又少,令人擔心PCIe會不會重蹈超寬頻的覆轍?這一點倒是可以放心,PCIe終將站穩腳步!為何有把握這麼說?在此陳述一些事實作為根據。  

其一,微處理器巨人英特爾(Intel)隨著雙核心處理器的推出,新一代的ICH8晶片組(圖1),似乎徹底取消PCI匯流排,以PCIe取代PCI的決心強烈。但是PCI並不會從市場上絕跡,畢竟PCI的裝機量與十餘年來的技術累積資產,自然會找到另外的出路。  

其二,蘋果電腦的新一代的iMac電腦,架構已經完全投向英特爾的懷抱,期望在電腦領域扳回一城。觀察iMac內部,擁有PCIe介面的Express Card介面已經被蘋果電腦悄悄使用了(圖2)。  

其三,當然就是Express Card的蓄勢待發。眾所皆知,PCI的被取代也意味著PCMCIA的改朝換代,Express Card是唯一的接班人。目前相關產品雖然有限,但是只要筆記型電腦的平台數量達到門檻,業者就會馬上介入,毋須擔心。  

其四,一些嵌入型應用(Embedded System)的產品,有逐漸朝向PCIe的傾向。  

其五,微軟在2005年推出的傑作產品Xbox 360遊戲機,若是仔細觀察其微處理器與晶片組的介面,似乎與PCIe的架構方式很相像。當初PCIe架構的開發目標,就是提供晶片至晶片的連線,與配接卡的輸出入連線功能,或做為PCIe與其他連線的輸出入連接點(Attach Point),例如PCI、1394(FireWire)與USB等。  

然而,本文探討的是PCIe規格實體介面(Physical Interface for PCIe Specification, PIPE),這是英特爾開發的規範。基本上這是晶片或上游元件的設計者才會詳細閱讀的規格,設計終端產品的人可能用不上,只要略知即可。  

廠商重兵集結於 實體層設計  

為了維持文章的完整性,還是必須回顧兩個基本觀念。第一,PCIe資料交易的傳遞模式,是採用三個階層:資料交易層—資料鏈結層—實體層。第二,資料通訊的概念,與一般貨運的概念是一致的。一旦了解這兩點,就會發現,最精彩之處就在於真正將資訊載送過去的傳輸道路與方式(圖3),這就是為何實體層總是廠商競爭的重兵集結處。  

此外,依據規格書記載,PCIe實體層又可細分成三個功能區塊(圖4),規範中以MAC-PCS-PMA來描述。  

媒體存取控制層(Media Access Control, MAC)負責邏輯的處理,PCIe則是將之歸類在實體層中。實體編碼子層(Physical Coding Sublayer, PCS)與實體媒體連接層(Physical Media Attachment Layer, PMA)的區別,完全是為了解釋各個功能的處理而各自表述的,事實上以一顆晶片就可以實踐。而數位與邏輯之間的標準介面就是PIPE,與USB介面中的UTMI在理念上是彼此呼應的。有一個問題始終困擾許多人,那就是PCIe與PIPE規範兩者之間的對應關係究竟為何?為了解釋方便,在此使用圖5來說明。  

不過請勿因圖5而誤解,PCS與PMA之分,只是功能上的描述,其間並無實質規範。反而是MAC與PCS之間才是PIPE的重心。圖5使用了PHY/MAC的描述方式,PHY/MAC是一個雙單工、並列式的介面。同時,MAC層到資料鏈結層(Data Link Layer, DLL)之間並無規範,而是由競爭廠商各自努力。鏈路調訓和狀況狀態機(Link Training and Status State Machine, LTSSM)、資料攪和(Data Scrambling)、位元等量(Byte Striping)等功能,都是MAC層的職責。  

了解這個概念後,可知PHY/MAC介面才是PIPE真正的核心,接腳的定義與時序圖(Timing)是重點所在。不同廠商晶片之間的相容性就必須仰賴這些正確的時序,才能彼此動作無誤。  

很明顯的,這個並列式介面是以MAC為主,資料的傳遞交換可採用8位元或16位元的方式,又因為PCIe的編碼採用8b/10b的編碼方式,因此也需要一或兩個Control K(圖6的TxDataK)來區別純資料或控制字元(Character),這一點可以完全理解,有趣之處反而是傳送端那七條訊號線所建構的指令(Command)與接收端的狀態線(Status)。這七條訊號線是MAC層用來告知PCS要處理下列工作:  

1.起始接收器的偵測(Receiver Detection)。  

2.讓外部進入迴路(Look-back)的狀態。  

3.進入電氣閒置(Electrical Idle)的狀態。  

4.設定目前的執行配類(Running Parity)為正還是為負。  

5.轉換接收資料的極性(Polarity)。  

6.重置(Reset)實體層。  

7.將實體層導入各個電源管理(Power Management)模式。  

既然有指令傳送過去,自然也必須有狀態訊號將實體層狀態從PCS告知MAC。6個位元構成了各種狀態回應:  

1.所收到資料有效。  

2.實體層已經獲得字元(Character)的鎖定。  

3.實體層已經完成各種電源管理狀態的遷移。  

4.實體層已經偵測到對方接收器的接上。  

5.實體層已經偵測到鏈結(Link)進入了電氣閒置的狀態。  

6.定義有8個額外的狀態碼與錯誤碼。  

此外,實體層有一個PCLK的時脈輸出線,用來同步MAC/PHY介面的資料傳送。當資料寬採用16位元,時脈頻率為125MHz;若是該介面採用8位元的資料寬,PCLK時脈頻率則為250MHz。當然這些數值是為了迎合串流連結的速度而制定的,假設未來PCIe的速度向上提升,這些時脈頻率理應跟著加倍。  

實體編碼子層承擔MAC/PHY介面溝通  

固然實體編碼子層(PCS)是實體層中的一個小方塊,承擔著MAC/PHY介面的溝通,然而與PMA之間的接續,在PIPE規格中並無規範,完全任憑廠商的設計本領(圖7)。參考時脈CLK訊號的輸入,是實體層用來產生內部位元傳輸率的時脈,也是用來產生PCLK訊號的基礎,採用展頻調變(Spread Spectrum Modulation)則是允許的。  

8b/10b編碼線路就存在PCS中,8b/10b編碼器的輸入當然就是來自MAC/PHY介面的資料與控制字元,而且,目前「執行不對稱(Running Disparity)」與TxDataK訊號也是編碼器所需的資訊,畢竟資料字元與控制字元兩者的編碼是不同的。此外,彈性緩衝空間(Elastic Buffer)也是內建於PCS,用來補償傳送器與接收器兩者時脈的微小差異。  

在重置(Reset)之後,鏈結初始化(Link Initialization)與調訓歷程(Training Process)之後的第一個動作,就是偵測彼端是否有接收器存在。當然PCS中的線路會控制接收器的偵測,並將結果透過MAC/PHY介面來通知MAC層。因此,PCS會包括有一個鎖相迴路(Phase Lock Loop, PLL),依據CLK訊號的輸入來產生實體層所需的內部高速時脈。  

實體媒體連接層實踐高速訊號線路  

實體媒體連接層(PMA)理所當然就是要實踐PCIe高速訊號的類比-數位線路,例如每一個連結的差動驅動器與差動接收器等(圖9)。PCS與PMA之間的資料交遞是10位元的資訊,還必須經過序列反序列轉換器(Serialization & De-serialization, SERDES)的處理,才能夠創造出序列式的傳輸環境。  

一路探索至此,可開始談論一個滿足PIPE規範的實體層所扮演的功能與特色,並作扼要整理。無論是一個獨立的實體層元件或巨集單元(Macrocell),皆是用來處理PCIe低階傳輸協定與高速電氣傳送訊號。綜合以上所述,可歸納出一個符合PIPE規範的實體層,必須實踐下列功能(圖9):  

1.建構SERDES線路。  

2.8b/10b的編碼器(Encoder)與解碼器(Decoder)。  

3.傳送資料與接收資料的類比緩衝。  

4.一個作為雙端時脈補償的彈性緩衝空間(Elastic Buffer)。  

5.接收器偵測線路。  

6.PCIe互容性字元組(Compliance Pattern)的不對稱(Disparity)控制。  

7.信標(Beacon)訊號的傳送與接收線路,主要是用來實現遠端喚醒(Remote Wake-up)的功能。  

PIPE規格確實描述PCS的PMA的基本動作,但是對於內部的設計並沒有規範。PIPE重點在於訊號接腳的定義,就結構而論,訊號可歸納成四大類(圖10):  

1.PLL的輸入與輸出時脈。  

2.資料的傳送與控制。  

3.資料的接收與控制。  

4.命令與狀態。  

鎖相迴路產生同步訊號  

鎖相迴路(PLL)功能方塊必須依賴輸入的CLK訊號來產生MAC/PHY並列介面所需的PCLK訊號,作為同步用途(圖11)。PCLK在16位元載送時為125MHz,8位元載送時則為250MHz,此外針對8b/10b編碼解碼器則提供一個250MHz時脈輸入。額外的2.5GHz當然與資料傳送速度息息相關,輸入到SERDES與時脈回復(Clock Recovery)迴路。  

傳送器細分四部分  

接著來觀察傳送器的細部構成。很明顯的,傳送器依照資料的流動可細分成四個部分(圖12)。從MAC/PHY並列介面仰賴PCLK上緣送過來的8位元或16位元資料,至於16位元轉換8位元是一個選項,畢竟8位元並不需要這個轉換手續。  

8b/10b編碼的動作就是將8位元字元(Character)映射成10位元符號(Symbol),動作頻率為250MHz。這是IBM於1980年代初期發表的論文,轉換規則在該論文中詳述。TxDataK乃是用來區別資料或控制字元的編碼。TxCompliance是一輸入訊號,用來強迫編碼器的執行配類(Running Parity)變為負,針對互容性測試產生錯誤的狀況。  

由於PCIe有規範實體層的折返(Loop-back)模式,主要是將接收器的資料直接饋入傳送器的P-S轉換器再傳送出去。使用者不會用到這個功能,只有元件線路設計者或產品之間測試時才用的到。P-S自然要遵照PCIe的規格送出位元序列流,TxElecIdle訊號是用來告知差分驅動器進入電氣閒置狀態。如果沒有設定,差分驅動器則會正常送出資料或信標訊號。  

接收器具有時脈與資料回復線路  

至於接收器端就較傳送器複雜一些,由於8b/10b編碼本身就有內置時脈(Embedded Clock),因此接收端勢必要有時脈與資料回復(Clock & Data Recovery)線路。當然也會偵測連結的電氣閒置狀態,並且經由RxElecIdle狀態訊號來告知MAC層(圖13)。  

S-P轉換器的動作與P-S轉換器完全相反,會將10位元的資料符號送入彈性緩衝器與K28.5(Comma Character)偵測電路。彈性緩衝器主要用以傳送與接收兩端時脈相差的補償,有趣之處在於K28.5的偵測。回顧PCIe的每個指令集(Ordered Set)的開頭必定是K28.5,因此該電路是用來作為符號鎖定,並且經由RxValid狀態訊號線來通知MAC層。  

彈性緩衝器的輸出,則是饋入8b/10b解碼器、RxStatus電路與迴路折返到傳送器。RxStatus電路的主要功用,則是查看彈性緩衝器是否發生溢位(Overflow)或欠位(Underflow)的情況,也查看8b/10b編碼器是否發生錯誤,這是透過RxStatus狀態訊號來告知MAC層。8b/10b解碼器是將10位元符號轉換成原來的8位元字元,是資料或控制字元,會由RxDataK訊號來反應。  

與傳送端同樣的道理,最後階段的8-16位元轉換線路是選項,僅16位元的MAC/PHY介面才會使用到。如果MAC/PHY介面是採用8位元傳送模式,8-16位元轉換線路就不需要,收到的資料是以250MHz送出。  

談論至此,已勾勒出PIPE規格的輪廓。由英特爾主導的PIPE規範是一項新技術,不時有更新版本,有心學習者必須主動常常上網查閱,以免落伍。最後以PIPE訊號圖(圖14)作為本文結尾。  

 

參考資料  

1.www.intel.com/products/motherboard/pix/d975xbx_lg.jpg  

2.www.pcisig.com  

3.www.asic-architectinc.com  

4.www.mindshare.com  

5.PHY Interface for the PCIe Architecture(PIPE)文獻,英特爾。  

6.www.ti.com/pciexpress  

7.www.pciexpressdevnet.org/apps/org/workgroup/devnetgf/pipe  

8.PCIe講義,科學自強基金會,陳乃塘。  

9.陳乃塘技術日誌2002/2003/2004/2005/2006。  

10.Interface/Design Wave與www.kumikomi.net網站。  

 

(詳細圖表請見新通訊64期6月號)  

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

我知道了!