PCI Express 是一項經常成為頭條新聞的技術,其性能不斷提高的新規范經常出現在新聞中。如果得知它已經存在了 20 年,您可能會感到驚訝!而且直到現在沒有被取代的跡象。在我們看來,這項技術必須是特別的東西才能持續這么久。
如果您想知道它到底做了什么,以及 PCI Express 是如何在 20 年內一直是每臺家用電腦的主要組成部分,請認真閱讀這篇文章。
在 Express 之前和 PCI 之前
讓我們首先回到 1980 年代,當時計算機主板上集成了數十個芯片和大量用于添加額外卡的特殊擴展槽。對于后者,一種類型主要主導本地場景:IBM 的ISA 總線(行業標準架構)。雖然相比之下對技術的改進并不那么成功,但該系統總體上在行業內變得無處不在。
到下一個十年到來時,更快的處理器幫助推動了對性能更好的擴展總線的需求,最終產生了兩種新格式——英特爾的 PCI 總線(外圍組件互連)和來自視頻電子標準協會的VLB(VESA 本地總線)。
兩者在 1992 年同時出現,盡管 PCI 最初看起來是兩者中較慢的,因為它被設計為以固定的 33 MHz 運行(后來的規范修訂版確實允許 66 MHz,但消費類 PC 從未真正支持這一點) . 相反,VLB 以與 CPU 的前端總線 (FSB:front-side bus) 相同的時鐘運行,從而允許 VLB 達到 40 或 50 MHz,具體取決于中央處理器。
但是,它并不總是穩定在該速率,并且延遲比 PCI 更差。典型的 VLB 擴展槽也比 PCI 擴展槽大得多。盡管有這些優勢,PCI 還是花了一些時間才在主板行業獲得關注,尤其是在工作站和服務器市場。
當時,家庭 PC 用戶通常沒有很多擴展卡,也沒有任何對總線有很大要求的擴展卡。然而,隨著 3D 顯卡行業的騰飛,這種情況發生了變化,最好的顯卡配備了 PCI 連接器。結果,主板開始偏愛新總線而不是舊總線。隨著這些圖形加速器功能的增強和游戲利用這一點,PCI 總線的局限性變得顯而易見。
與之前的 ISA 和 VLB 一樣,PCI 是一種并行數據總線——這意味著 PCI 擴展槽中的所有卡都使用相同的總線,并且必須輪流傳輸和接收數據。對于圖形卡,這可能會有問題,因為它們很容易占用總線。英特爾通過在 1997 年開發加速圖形端口 (AGP:Accelerated Graphics Port) 解決了這個問題,它為顯卡提供了專門的 PCI 總線。
隨著舊千年向新千年的過渡,對更快總線的需求越來越大。英特爾推出 PCI 總線后不久,它成立了一個特別興趣小組 ( PCI-SIG ),以支持主板和擴展卡供應商確保其硬件符合規范。到 2000 年代初,這個小組由數百名成員組成,其中五家(康柏、戴爾、惠普、IBM 和微軟)與英特爾合作,以替代 PCI。
代號為 3GIO(第 3 代 I/O)的PCI-SIG于 2002 年 4 月宣布了其勞動成果,引入了名為PCI Express 的新技術。
PCI 與 PCI Express
盡管名稱相同,但 PCI Express(通常簡稱為 PCIe)和 PCI 總線幾乎沒有共同之處。最顯著的區別是 PCIe 是一個點對點系統——只有一個設備使用總線并且不與其他任何設備共享。在某些方面,這似乎 PCIe 只是升級的 AGP,但在數據傳輸方式上也存在顯著差異。
PCI 和 AGP 使用并行數據通信,同時發送和接收多位數據,而 PCIe 使用串行通信,每個周期只發送一位。這種方法消除了并行通信中可能發生并導致問題的時鐘偏差問題,最終使 PCIe 能夠以更高的時鐘速度運行。
PCI Express 選通脈沖的理想化圖
PCI 有 66 MHz 的絕對限制(擴展版本 PCI-X 可以達到 533 MHz),而 PCI Express 的最慢時鐘速度是驚人的 1250 MHz。
這種速度是通過使用低壓差分選通脈沖 (LVDS:low voltage differential strobes) 實現的——一對信號,相位相差 180 度,工作電壓僅為 PCI 和 AGP 使用的電壓的一小部分。
PCI Express 的串行特性還顯著減少了數據傳輸所需的電線/走線數量,PCI 需要 32 條,PCIe 只需 4 條。從技術上講,只需要兩個,每個選通脈沖一個,但是由于 PCI Express 是全雙工的,同時在兩個方向上發送信息,所以總是使用雙組成對的選通脈沖。
這組四根線更廣為人知的是PCIe 通道,規范通過乘法器指示使用的通道數,例如,x1 是一個通道,x4 是四個通道,x16 是十六個通道
通過LVDS系統的工作方式,單通道 PCIe 總線可以在一個方向上以大約 200 MB/s 的最低速率傳輸數據。在紙面上,它應該比這更高,但傳輸的信息被編碼并以 8 位數據包的形式發送,每個連續的數據包沿著一個連續的通道發送。結果,由于編碼需要額外的位,實際數據速率總是較低。
串行通信和基于數據包的數據傳輸的結合也意味著插槽連接中需要相對較少的引腳來管理所有內容。任何 PCI Express 設備的最小值是 18,盡管不是所有的都需要使用。相比之下,PCI插槽至少需要56個,無論排列多緊湊,都不可避免地占用更多空間。
從左到右:PCIe x1、PCIe x16、PCI、PCIe x1、PCIe x16
也就是說,PCIe x16 插槽明顯比任何標準 PCI 或 AGP 插槽長,但沒有那么高。事實上,無論 PCI Express 擴展插槽的長度如何,它們的寬度和高度幾乎都是相同的(用于顯卡的插槽有時會高一點)——更長的插槽只是容納更多的傳輸通道。與電源和系統管理相關的一切都位于插槽的第一部分,塑料槽口之前。
PCI Express的普遍應用
從設計之初,創建 PCIe 的目的就是盡可能擴大用例范圍。為此,工程師使系統向后兼容 PCI,盡管只是在軟件方面。這意味著開發人員不必擔心重寫他們的軟件來識別和訪問任何使用 PCI Express 總線的設備——理論上,它可以簡單地工作。
為了充分利用新系統,硬件供應商設計他們的產品以將 PCI Express 完全整合到各種組件和結構中。雖然這花了十年的大部分時間才實現,但高速通用總線最終取代了用于將 CPU 連接到主板其余部分以及所有擴展卡插槽的總線。
AMD 和英特爾都為 CPU 開發了自己的點對點超快速連接系統,前者在英特爾采用其QuickPath 互連技術將中央處理器連接到傳統上處理數據流的北橋芯片之前幾年推出了HyperTransport用于系統內存和顯卡插槽。最終,該芯片將完全消失,嵌入到 CPU 本身中,兩家公司都轉而使用 PCI Express 連接到剩余的主板芯片——南橋。
今天選擇任何 AMD 和 Intel 的 CPU 和主板,您會看到處理器和南橋(現在被 Intel 稱為 PCH,被 AMD 簡稱為芯片組)都具有大型 PCI Express 控制器,有許多通道。
例如,AMD 的Ryzen 9 7950X處理器和X670E 主板芯片分別擁有 28 條和 20 條 PCIe 通道。對于 Ryzen CPU,它們被分配到專門的角色:16 個用于顯卡插槽,8 個用于兩個存儲驅動器,其余 4 個用于與主板通信。不過,X670E 芯片中的通道可用于各種數據場景,例如以太網、WiFi 和藍牙適配器,以及擴展槽和存儲驅動器。
PCI Express 的適應性對于存儲尤為重要——如今的主板具有兩個用于連接硬盤和固態驅動器(HDD 和 SSD)的主要插槽,即 SATA 和 M.2 插槽(后者如上所示)。如果我們查看技嘉的 X670E Aorus Xtreme型號,您會發現共有三個擴展槽、四個 M.2 插槽和六個 SATA 插槽。所有這些都使用 PCI Express!
然而,由于 CPU 和芯片組中的通道數量是固定的,因此它們不能同時使用,這對于當今大多數主板來說都是典型的情況。不幸的是,破譯圖形卡、附加卡和存儲驅動器的哪些組合可以工作并不是一件簡單的任務。
代個人電腦擁有大量用于連接各種設備的接口,但在幕后,它是一個 PCI Express 總線處理大多數設備的數據傳輸(其余為 USB)。
PCI Express 如何保持最新
多年來,硬件變得越來越強大,應用程序和游戲對硬件的要求也越來越高。自然地,PCI Express 從一開始就定期更新以滿足帶寬要求。
對更新的一個重要限制是對完全向后兼容性的要求。例如,PCIe 3.0 設備必須能夠在 PCIe 5.0 插槽中工作。這造成了一些故障,我們將在稍后介紹。
自 2003 年首次發布以來,PCI-SIG 已對規范進行了八次更新,主要修訂版具有更快的數據傳輸速率,以及對所采用的編碼方案(以減少帶寬損失)和信號完整性的改進。次要修訂側重于改進電源管理、控制系統和其他方面。
在每次修訂的開發過程中,PCI-SIG 的相關成員都會進行可行性研究,以確定哪些速度和功能可以在保持低成本的情況下切實進行大規模生產。這就是為什么對于 3.0 版,選通脈沖的時鐘速率僅增加了 60%,而不是像以前的版本那樣加倍。
3.0 版引入了更有效的編碼方案(具體來說,8b/10b 用于 1.0 和 2.0,而 128b/130b 用于 3.0 到 5.0),這就是有效帶寬相對于時鐘速度更高的原因。如果不需要編碼,PCIe 1.0 的有效帶寬將達到 0.313 GB/s。
對于 6.0 版,信號方法從NRZ 切換到 PAM4 (在GDDR6X內存中使用),并且放棄了編碼以支持各種糾錯系統。
從帶寬數據來看,單根 DDR4-3200 RAM 的峰值吞吐量為 25 GB/s,因此 PCIe 6.0 的四通道可以與之匹配。這聽起來可能不是特別令人印象深刻,但對于日常 PC 和世界各地其他計算機器中使用的通用通信總線來說,這是一個顯著的改進。
但是,為什么 PC 現在才剛剛采用 PCIe 4.0 和 5.0,前者的規范早在 2017 年就發布了(而 5.0 是在那之后的兩年)?
它歸結為需求和成本問題。按照目前的情況,個人電腦有足夠的帶寬來在內部移動數據,除了視頻游戲之外,家用電腦還沒有太大的空間需要 PCIe 6.0 之類的東西。
然而,在服務器領域,系統設計人員會很樂意使用他們可以獲得的所有帶寬,而且正是在該領域,我們可能會看到最先使用的最新規范。
提供電流的引腳都在最左邊,缺口之前
不過,并非每個更新版本都一帆風順,供電一直是系統的一個長期問題。無論設備使用何種尺寸的 PCIe 插槽,它們都帶有少量 +3.3 V 和 +12 V 引腳,用于提供運行設備所需的電流。
從第一個 PCIe 版本開始,+3.3V 引腳的組合電流限制為 3 A,并且根據插槽中使用的附加卡尺寸,+12 V 引腳的電流限制高達 5.5 A。
這意味著對于全長 x16 卡,該設備的功耗限制為 75.9 W,這對于當時絕大多數顯卡來說已經足夠了。當然也有例外,例如2004 年夏季發布的Nvidia GeForce 6800 Ultra 。
它的最大功率需求略高于 80 W,超出了插槽所能提供的功率,解決方案采用 AMP 1-480424-0 的形式——更廣為人知的名稱是 Molex 連接器。根據零件的制造商和所用電纜的質量,這可以提供額外的 130 W 功率。
然而,這一添加并不是 PCIe 規范的一部分,因此 PCI-SIG 以兩種設計的形式創建了自己的解決方案——一種包含 75 W 的 6 針腳,另一種包含 150 W 的 8 針腳。
最近,PCI-SIG 批準了 16 針設計,其中大部分開發來自 Nvidia(目前只有他們使用),它有 600 W 的限制。12VHPWR 連接器并非沒有爭議,AMD 和英特爾是否會采用該機制還有待觀察。
PCIe 的下一步是什么?
隨著 7.0 版計劃于 2025 年發布,PCI-SIG 沒有顯示出放慢技術發展的跡象,也不打算很快用任何截然不同的東西取而代之。
下一次更新預計數據傳輸速率將再次翻倍,但如果小組成員認為使用 128 Gbps 在經濟上不明智,他們可能會稍微降低增加幅度。考慮到目前 PCIe 5.0 的采用率,更不用說更新的規范了,家用 PC 在很多年內都不太可能實現這樣的速度,可能要到 2030 年代中期。
但是讓我們假設 7.0 現在已經發布,每一個新硬件都準備就緒并且可以使用它——這能帶來什么好處?
首先,顯卡將連接到 CPU 中的 PCIe 控制器,帶寬為 242 GB/s。這與您在AMD Radeon RX 6600或Nvidia RTX 3050上找到的內存帶寬大致相同。您可能認為這意味著筆記本電腦中的獨立 GPU 可以只使用系統內存,而不需要它們自己的 RAM,從而節省資金和空間。
但是 PCIe 控制器仍然需要與 CPU 的內存控制器通信以訪問系統 RAM,即使是超快的 DDR5,例如 DDR5-7200,每個 DIMM 也只能提供大約 58 GB/s 的速度。換句話說,盡管 PCIe 7.0 總線速度很快,但 GPU 仍將受到使用系統內存的限制。
因此,如果 GPU 不會受益,那么存儲驅動器呢?目前,最快的 NVMe M.2 SSD只能達到 PCIe 4.0 x4 總線的極限,即便如此,也只是在非常特殊和短暫的情況下。當然,隨著時間的推移會出現更快的驅動器,但也有更快版本的 PCI Express。
今天的臺式機 CPU 通過 PCIe 總線連接到主板芯片組,AMD 在其最新的 Ryzen 7000 系列中使用 v5.0,而英特爾使用自己的系統稱為直接媒體接口 (DMI),除了名稱之外,它就是 PCIe。
PCI Express 通道不會在 CPU 中占用更多空間
兩家供應商都沒有跡象表明此鏈接以任何方式限制了性能——如果是的話,CPU 將使用更多通道,因為與芯片的其余部分相比,每個通道所需的裸片空間量很小。
這可能會讓您認為不斷更新 PCI Express 規范是在浪費時間,但這是為了讓所有硬件供應商盡早就標準達成一致,以便他們有足夠的時間為他們開發產品和制造方法。
PCIe 現在和 USB 一樣無處不在,就像它的串行表親現在是通過外圍設備移動數據的通用主干一樣,PCI Express 是計算機內部的標準。PC 行業依靠 PCI Express 來滿足所有可能的需求,同時又具有成本效益。
人工智能、數據和計算服務器等專用應用程序將始終按照自己的方式發展,并采用滿足其需求的獨特技術,但對于日常 PC 和大多數工作站,PCI Express 是連接之王,并將持續數十年來。
審核編輯:劉清
評論
查看更多