Richard Solomon 發表於 2017-11-15 19:57:01
PCI Express® (PCIe®) 標準在個人電腦、網絡和工作站利用中已經應用了很長時間。由於具有多種優點,例如可靠性、低功耗、低延時和從2.5 GT/s至16 GT/s的帶寬擴展能力,這種規範不斷演進,也成為存儲、雲計算、移動和汽車領域的主要設計規範。PCI-SIG在2011年11月發布最新PCIe 4.0 16 GT/s (Gen4) 規範,但早在兩年前,該機構就已經積極開始這一工作。PCIe 4.0 Draft 0.7規範最近向PCI-SIG成員發布,再次激發晶片系統 (SoC) 設計師去儘快利用PCIe 4.0 16 GT/s規範。此後不久,Intel也發布了作為補充的Physical Interface for PCI Express (PIPE) 4.4規範。本文介紹設計師應了解這些規範包含哪些內容,以及設計師目前應如何開發自己的PCIe 4.0設計。
要了解Draft 0.7版本的重要性,您有必要了解PCI-SIG規範的制定過程和PCIe 4.0版本的歷史。PCI-SIG規範包括5個主要版本/檢查點:
Draft 0.3(概念):該版本的細節較少,僅大致列出總體理念和目標。對於PCIe 4.0,這包括16 GT/s信令速率、重複利用專為PCI 3.0 8 GT/s模式開發的128/130編碼機制、保持全面的後向兼容性等,並於2014年2月發布。
Draft 0.5(初稿):該版本規定了一整套架構要求,而且必須完全滿足0.3版中規定的目標。PCIe 4.0 Draft 0.5規範於2015年2月發布。
Draft 0.7(完整初稿):該版本必須規定一整套功能要求和方法,而且在該版本以後,可能不向規範中增加新的功能。在該版本發布前,電氣規範必須通過測試矽片進行驗證。對於PCIe 4.0,兩個獨立的實施版本提供給了PCI-SIG工作組成員,一個是Synopsys,另一個是Mellanox。PCIe 4.0 Draft 0.7於2016年11月15日發布。
Draft 0.9(終稿):該版本允許PCI-SIG成員公司對智慧財產權進行內部審查,在該版本後不再允許功能更改。
1.0(最終版):這是最終的確定性規範,而且任何更改或增強將分別通過勘誤文檔和工程設計變更通知 (ECN) 而進行。
過去,新PCIe規範的最早採用者一般從Draft 0.5開始設計,因為他們可以充滿信心地圍繞新的帶寬定義而構建自己的應用邏輯,甚至通常開始開發新的協議特性。然而,在Draft 0.5階段,實際PCIe協議層的實施很有可能發生變化,因此,與採用來自外部的接口IP的設計師相比,負責在企業內部開發這些模塊的設計師可能相對更不願意開始這項工作。
過去,新PCIe規範的最早採用者一般從Draft 0.5開始設計,因為他們可以充滿信心地圍繞新的帶寬定義而構建自己的應用邏輯,甚至通常開始開發新的協議特性。然而,在Draft 0.5階段,實際PCIe協議層的實施很有可能發生變化,因此,與採用來自外部的接口IP的設計師相比,負責在企業內部開發這些模塊的設計師可能相對更不願意開始這項工作。
對於Draft 0.7版本,以前描述的PCI-SIG流程要求不增加新的功能,因此,即使最謹慎的早期採用者也可以立即開始工作。設計師可以開發即使最低級的PCIe協議堆棧,並且相當安全地確保規範的穩定性。對於規範強制要求對實施細節做出少量更改,業內始終存在誤解或忽略的風險,但這些並不常見,而且一般對設計的影響較小。PCI-SIG成員可以從 PCI-SIG網站 下載完整的0.7 Draft,以了解全部信息。
從PCIe 8GT/s信令向16GT/s的演進與PCIe 2.5GT/s向5GT/s演進類似– 主要是採用了在鏈路初始化時商定的新速度。然而,與以前的數據速率不同,達到PCIe 16GT/s數據速率需要兩個階段實現。首先,鏈路通過類似的4相均衡過程達到8GT/s的速率,然後重複相同的4相過程,同時運行8GT/s速率,以切換到16GT/s速率。這要求在PCIe鏈路狀態機上採用一些新的弧線,但重複使用已在PCIe 8GT/s中得到良好驗證的方法。PCIe 8GT/s中的128/130/s編碼模式在PCIe 16GT/s數據速率時使用,這樣,設計師可以重複使用幾乎所有這種邏輯。當然,設計師需要對主協議狀態機進行一些細微的修改,即鏈路訓練與狀態機 (LTSSM),以適應新的均衡。為了保證在更高速度時順利運行,規範還規定了其他一些細微的信號和測試模式更改,但總體來講,對於熟悉8GT/s操作的設計師來說,PCIe 4.0 16GT/s鏈路看起來幾乎沒有改動。
在PCIe 4.0規範制定過程中,需要關注的一點是,由於目前在信用和未結交易上的限制,某些具有特定工作負載的設備可能無法充分利用16GT/s的數據速率。為了解決這個問題,Draft 0.7將PCIe 4.0包頭中的Tagfield從8位擴展到了10位。需要注意的是,新位數的一種組合被保留,用於檢測錯誤的分層配置,共有768個標籤可用。所有實施16GT/s信令的設備都要求支持接收10位標籤,但可以選擇是否根據需求而生成標籤。因此,所有PCIe 4.0 16GT/s設計師都需要擴展對接收到的標籤進行跟蹤的邏輯,以處理更大的標籤,但設計師可以繼續依靠包頭信用控制他們必須接受的並行請求的總數。
為了支持更大標籤的充分利用,PCIe 4.0規範為流量控制信用機制定義了一種伸縮模式。比以前需要更多信用的設備現在可以採用4倍或16倍擴展因子,其中協議中的每個數字信用實際分別表示4或16個信用。同樣,所有實施PCIe 4.0 16GT/s的設備都需要支持4倍或16倍的鏈路合作夥伴擴展,但允許根據需要使用1倍的自有信用擴展。藉助新的擴展因子,PCIe 3.1最多支持的127個包頭信用可擴展到508個(採用4倍擴展)或2032個(採用16倍擴展)– 對每個Posted (PH)、Non-Posted (NPH) 或Completion (CPLH) 信用類型互相獨立。同樣,通過每個Posted (PD)、Non-Posted (NPD) 或Completion (CPLD)信用類型的4倍或16倍擴展,數據信用可從PCIe 3.1的2047個(~32KB) 增加到8188個 (~128KB) 或32,752個 (~512KB)。
也許0.7版本引入的最重要一項是「接收器通路裕量」。這一特性採用PCIe系統板上運行的軟體評估PCIe通道的每個通路中存在多少裕量,或者換句話說,指定通路無法可靠傳輸數據的可能性有多大。規定定義了一組寄存器和基本命令集,憑藉這些,主機軟體可以命令PCIe通道中的每個接收器移動其取樣時間點(可選擇移動電壓),以大致確定信號眼在接收器上的寬度(可選擇高度)。關鍵區別在於,這個特性旨在用作系統診斷/評估工具,用於提供對PCIe通道的概略測量,而不是對接收器進行測量。另外,同樣重要的一個方面是,所有支持PCIe 4.0 16GT/s的設備都要求支持通路裕量,但通路裕量的運行不要求在16GT/s速率下運行。最後,這個特性在SoC中的實施需要PCIe 4.0 16GT/s控制器和16GT/s PHY的密切配合。
好消息是,對於從不同廠商購買PCIe 4.0 16GT/s PHY和控制器的設計師,Intel已經將PCIe 4.0 16GT/s的運行整合到Physical Interface for PCI Express (PIPE) 規範中,並在4.4版本中提供給公眾使用。新的PCIe 4.0 16GT/s速率通過32位、16位或8位通路數據路徑選項而支持,這與以前通過8GT/s速率支持PCIe 2.5GT/s類似。這意味著設計師要使用每通路32位而應對500MHz時達到的時鐘速率,直至使用每通路8位達到2GHz!
早期PIPE規範用戶熟悉的基本PHY-控制器接口信號在PIPE 4.4中基本沒有變化,但明顯的預期變化是指出PCIe 4.0 16GT/s以及與上述細微物理層變化相關的細節。然而,將這個信令擴展到通路裕量機制中則需要在每個方向上有大量新信號,以在PCIe 4.0 16GT/s PHY和控制器之間交換所需要的控制和狀態信息。通過使用Synopsys工程師最初提出的機制,PIPE規範目前採用一個通用寄存器類型的接口,在PHY和控制器之間提供控制和通信。這個接口最初僅為PCIe 4.0 16GT/s通路裕量接口而定義,將來可顯著簡化多項PHY特性 – 包括現有的特性,如L1子狀態控制,以及未來對更高數據速率、更複雜的均衡模式等的控制。
DesignWare IP for PCI Express 4.0 Draft 0.7立即發布
PCI-SIG規範制定過程凍結了Draft 0.7中的功能,因此,現在是開始使用PCIe 4.0 16GT/s接口設計高性能SoC的最佳時機。PCIe 4.0 Draft 0.7提供了按比例擴展的信用(1倍、4倍或16倍)和更寬的標籤(從8位增加到10位),從而改進了鏈路帶寬,以及接收器通路裕量,幫助系統設計師評估其系統的性能變化允差。Synopsys的DesignWare® IP Solution for PCI Express 4.0支持最新的 Draft 0.7版本,而且現已推出。包含PHY和控制器的完整PCIe IP解決方案通過了矽片驗證,並且支持大量代工廠工藝節點。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴