游戲愛好者或者硬件愛好者肯定都對顯卡有一定的了解,顯卡一般插在主板上的擴(kuò)展槽上面,顯卡和CPU交互的方式就是通過PCIE協(xié)議,現(xiàn)在常見的擴(kuò)展槽就是PCIE槽,很多人了解PCIE但也有很多人只是聽過不知道具體的功能含義,今天我們就來淺談下PCIE。 ?
PCIE的發(fā)展史
PCIExpress(PCIe)的發(fā)展歷史可以追溯到PCI(Peripheral Component Interconnect)的起源。PCI是Intel于1991年提出的一種計算機(jī)總線標(biāo)準(zhǔn),主要用于計算機(jī)連接其外圍設(shè)備,如硬盤控制器、聲卡、顯卡和網(wǎng)卡等。這些設(shè)備都使用PCI插槽來連接到計算機(jī)的主板上。隨著Intel Pentium處理器的誕生,PCI總線得以迅速發(fā)展。
第一個英特爾奔騰處理器 最初的PCI總線工作在33MHz頻率之下,傳輸帶寬達(dá)到132MB/s,這基本上滿足了當(dāng)時處理器的發(fā)展需要。然而,隨著對更高性能的要求,PCI總線技術(shù)也在不斷發(fā)展。后來提出了將PCI總線的頻率提升到66MHz,使得傳輸帶寬能達(dá)到264MB/s。
然而,PCI總線速率的瓶頸逐漸顯現(xiàn),特別是在服務(wù)器和工作站中,高速磁盤和網(wǎng)絡(luò)適配器對更高帶寬的需求日益迫切。為了滿足這種需求,PCI技術(shù)開始往更高速率的方向發(fā)展,形成了PCI-X新總線標(biāo)準(zhǔn)。PCI-X最大支持到64bit/533M,但在其第二代之后,仍存在一定的局限性。
隨后,PCIe作為PCI的串行總線版本被推出。從2003年開始,PCIe標(biāo)準(zhǔn)不斷得到更新和升級。PCIe 1.0在2003年推出,支持更高的數(shù)據(jù)傳輸速率。隨后,PCIe 2.0在2007年推出,進(jìn)一步提升了傳輸速率。然而,之后幾年P(guān)CIe的發(fā)展相對緩慢,直到2010年P(guān)CIe 3.0的推出,它支持更高的速率,最高可以達(dá)到8GT/s。
2017年,PCIe 4.0標(biāo)準(zhǔn)發(fā)布,進(jìn)一步提升了PCI Express總線的帶寬,最高可以達(dá)到16GT/s。緊接著,2019年P(guān)CIe5.0標(biāo)準(zhǔn)發(fā)布,成為當(dāng)時最新的PCI Express標(biāo)準(zhǔn),最高可以達(dá)到32GT/s的傳輸速率。
2021年,PCI-SIG 組織發(fā)布PCIe 6.0 是最新一代的 PCI Express 接口標(biāo)準(zhǔn),速率達(dá)到64GT/s。
而在最近的2024年,PCI-SIG組織已經(jīng)公布了PCIe 7.0標(biāo)準(zhǔn)。根據(jù)這一標(biāo)準(zhǔn),PCIe 7.0將在一條通道(x1)上單向?qū)崿F(xiàn)128GT/s或128Gbps速率。新的規(guī)范預(yù)計在2025年正式推行。在x16雙向傳輸模式下,PCIe 7.0的速率高達(dá)512GB/s,這對于云端應(yīng)用、大數(shù)據(jù)中心等領(lǐng)域來說,無疑是一個巨大的飛躍。
總的來說,PCIe的發(fā)展歷史體現(xiàn)了計算機(jī)技術(shù)的不斷進(jìn)步和發(fā)展,從最初的并行總線到現(xiàn)在的串行總線,從較低的傳輸速率到如今的極高傳輸速率,滿足了不斷增長的數(shù)據(jù)處理和傳輸需求。
PCIE歷代速率一覽表
PCIE的使用場景
? PCIe(Peripheral Component Interconnect Express)因其高帶寬、低延遲和靈活性等特點(diǎn),在眾多計算和數(shù)據(jù)密集型場景中廣泛應(yīng)用。以下列舉了一些典型的PCIe使用場景:
圖形處理單元(GPU顯卡):
1、游戲和圖形渲染:PCIe插槽用于連接高性能顯卡,為桌面和工作站提供高質(zhì)量的游戲畫面渲染和三維建模能力。
2、深度學(xué)習(xí)與AI訓(xùn)練:
GPU加速卡通過PCIe接口與主機(jī)相連,用于大規(guī)模并行計算,加速機(jī)器學(xué)習(xí)模型的訓(xùn)練過程。
高速存儲:
1、NVMe SSD:
PCIe SSD(非易失性內(nèi)存express)可以利用PCIe通道直接與CPU通信,提供極高的讀寫速度,用于大型數(shù)據(jù)庫、高性能計算集群以及對存儲速度要求極高的應(yīng)用程序。
網(wǎng)絡(luò)接口卡(NIC):
高速網(wǎng)絡(luò)適配器通過CIe接口接入服務(wù)器或工作站,實(shí)現(xiàn)萬兆或更高速度的以太網(wǎng)連接,滿足數(shù)據(jù)中心內(nèi)部或互聯(lián)網(wǎng)之間的高速數(shù)據(jù)傳輸需求。
加速卡與協(xié)處理器:
FPGA加速卡、智能網(wǎng)卡、加密/解密加速卡等通過PCIe連接到系統(tǒng),提供特定領(lǐng)域的加速計算,如金融交易、密碼破解、大數(shù)據(jù)分析等。
高級的多通道音頻和視頻輸入輸出設(shè)備通常使用PCIe接口,以實(shí)現(xiàn)高清視頻流的實(shí)時處理和傳輸。
科研儀器與工業(yè)控制:
在實(shí)驗(yàn)室環(huán)境和工業(yè)自動化領(lǐng)域,高端測量設(shè)備和控制器可通過PCIe接口與計算機(jī)整合,實(shí)現(xiàn)高效的數(shù)據(jù)采集和處理。
總之,PCIe在任何需要高速、低延遲數(shù)據(jù)交換的場合都有廣泛的應(yīng)用,尤其是那些需要大量并發(fā)數(shù)據(jù)處理、高速存取或高吞吐量網(wǎng)絡(luò)連接的場景。隨著PCIe規(guī)范的持續(xù)演進(jìn),其帶寬和性能不斷提升,進(jìn)一步拓寬了其在現(xiàn)代計算架構(gòu)中的應(yīng)用范圍。
PCIE的架構(gòu)
PCIE的結(jié)構(gòu)是一種分層的設(shè)計,旨在確保模塊化和靈活性,同時提供強(qiáng)大的性能。以下是PCIe結(jié)構(gòu)的詳細(xì)說明:
1. 物理層(PhysicalLayer)
物理層是PCIe架構(gòu)的底層,負(fù)責(zé)處理實(shí)際的信號傳輸。物理層的詳細(xì)描述包括以下幾個核心部分:
(1)物理邏輯子層(PhysicalLayer Logic Sublayer, PLSL)
PLSL負(fù)責(zé)對接數(shù)據(jù)鏈路層的數(shù)據(jù),并將其轉(zhuǎn)換為物理層可以處理的格式。這一層處理數(shù)據(jù)包的序列化和反序列化、信號的編碼與解碼,以及數(shù)據(jù)的打包和解包。
(2)物理編碼子層(PhysicalCoding Sublayer, PCS)
PCS負(fù)責(zé)對數(shù)據(jù)進(jìn)行編碼,以適應(yīng)物理介質(zhì)的傳輸特性,如在PCIe中使用8b/10b編碼或更高級別的128b/130b編碼來保證足夠的DC平衡和時鐘恢復(fù)能力。
(3)物理介質(zhì)附屬子層(PhysicalMedium Attachment Sublayer, PMAS)
這一層關(guān)注信號在物理媒介上的傳輸,包括信號的預(yù)加重、均衡、去加重等處理,以優(yōu)化信號質(zhì)量和克服傳輸距離所帶來的損耗。
(4)物理介質(zhì)相關(guān)子層(PhysicalMedium Dependent Sublayer, PMDS)
PMDS定義了具體的物理接口規(guī)范,如電氣特征、電纜類型、連接器標(biāo)準(zhǔn)、信號品質(zhì)參數(shù)等,確保不同制造商生產(chǎn)的組件能夠相互兼容。
(5)物理層信號和時序
PCIe物理層采用差分信號傳輸,降低電磁干擾并提高信號完整性,通過正負(fù)信號對來表示二進(jìn)制數(shù)據(jù),從而在高速傳輸時仍能保持良好的信號質(zhì)量。
(6)鏈路訓(xùn)練與狀態(tài)機(jī)(LinkTraining and Status State Machine, LTSSM
LTSSM是一個重要的組成部分,它負(fù)責(zé)初始化和管理PCIe鏈路的狀態(tài),包括速率協(xié)商、位鎖定、符號鎖定、電氣均衡設(shè)置以及鏈路激活和退出的過程。
(7)物理層包(PhysicalLayer Packet, PLP)
物理層還生成和處理一些特殊類型的包,如用于鏈路訓(xùn)練和管理的命令集(OrderedSets),這些不是常規(guī)的數(shù)據(jù)包,而是用于維護(hù)和優(yōu)化鏈路性能的信號序列。
(8)電氣子層
包括了發(fā)射和接收電路,負(fù)責(zé)生成和識別信號,并確保信號在物理線路上傳輸時符合規(guī)范的要求,包括但不限于信號幅度、邊沿速度、噪聲容限和信號衰減等問題。
2. 數(shù)據(jù)鏈路層(DataLink Layer)
數(shù)據(jù)鏈路層位于物理層之上,負(fù)責(zé)處理數(shù)據(jù)包的封裝、解碼和錯誤檢測。主要包括以下方面:
(1)幀化與去幀化
數(shù)據(jù)鏈路層將事務(wù)層傳遞下來的TLPs(TransactionLayer Packets)幀化,以便在物理層上進(jìn)行傳輸。同時,接收端的數(shù)據(jù)鏈路層將接收到的幀解碼成原始的TLPs,然后傳遞給事務(wù)層。
(2)錯誤檢測與校正
數(shù)據(jù)鏈路層通過CRC(循環(huán)冗余檢查)等算法對TLPs進(jìn)行錯誤檢測。如果檢測到錯誤,數(shù)據(jù)鏈路層會根據(jù)協(xié)議規(guī)定采取相應(yīng)的錯誤處理措施,比如請求重發(fā)。
(3)流量控制
數(shù)據(jù)鏈路層使用Credit-based流控機(jī)制來防止發(fā)送方的數(shù)據(jù)淹沒接收方。每發(fā)送一個TLP,接收方就會消耗一個Credit,而發(fā)送方只有在擁有足夠Credit的情況下才能發(fā)送下一個TLP。
(4)鏈路狀態(tài)管理
數(shù)據(jù)鏈路層負(fù)責(zé)監(jiān)控和管理鏈路的狀態(tài),包括鏈路的訓(xùn)練、配置和維護(hù)等。此外,數(shù)據(jù)鏈路層還負(fù)責(zé)鏈路的恢復(fù)和重新訓(xùn)練過程。
(5)鏈路功耗管理
PCIe支持多種低功耗狀態(tài),數(shù)據(jù)鏈路層參與管理這些狀態(tài),以降低系統(tǒng)的能耗。例如,當(dāng)沒有數(shù)據(jù)傳輸時,鏈路可以被置于低功耗狀態(tài)。
(6)鏈路層報文(LLPs, Link Layer Packets)
數(shù)據(jù)鏈路層定義了自己的報文格式,用于執(zhí)行特定的控制和狀態(tài)管理任務(wù)。LLPs通常包括用于鏈路初始化、訓(xùn)練、狀態(tài)報告和錯誤處理的報文。
(7)DLLP(DataLink Layer Packet)
DLLP是一種特殊的鏈路層報文,用于在設(shè)備和控制器之間傳送流量控制信息和其他控制消息。DLLP的開銷很小,通常只包含8字節(jié),因此對性能的影響非常有限。
3. 事務(wù)層(TransactionLayer)
事務(wù)層是PCIe結(jié)構(gòu)中的第三層,它負(fù)責(zé)處理事務(wù)級的操作,如讀取、寫入和I/O操作。幾個主要功能:
(1)TLP(TransactionLayer Packet)處理
事務(wù)層的主要職責(zé)是創(chuàng)建、處理和解析TLPs。TLPs是封裝了PCIe事務(wù)數(shù)據(jù)的包,它們包含了必要的頭部信息,如命令類型、地址、長度和其他控制信息。
(2)命令與響應(yīng)處理
事務(wù)層支持各種類型的數(shù)據(jù)傳輸命令,包括讀(Read)、寫(Write)、配置讀(Config Read)、配置寫(Config Write)等。對于每種操作,事務(wù)層都會生成相應(yīng)的TLPs,并在數(shù)據(jù)傳輸完成后生成相應(yīng)的完成狀態(tài)TLPs。
(3)虛擬通道(VC,Virtual Channel)管理
為了提高帶寬利用率和響應(yīng)時間,事務(wù)層提供了多通道(通常是兩個)的并發(fā)數(shù)據(jù)傳輸能力。每個虛擬通道都有自己的Credit池和優(yōu)先級,使得不同的流量可以獨(dú)立地被管理和調(diào)度。
(4)地址翻譯
事務(wù)層負(fù)責(zé)將軟件層面的內(nèi)存地址轉(zhuǎn)換為PCIe地址空間,包括事務(wù)層格雷碼地址。這使得TLPs能夠在PCIe網(wǎng)絡(luò)上正確路由。
(5)數(shù)據(jù)緩沖與分段
為了適應(yīng)物理層的數(shù)據(jù)傳輸要求,事務(wù)層會對較大的數(shù)據(jù)塊進(jìn)行分段處理,并將其存儲在緩沖區(qū)中。這樣可以確保數(shù)據(jù)的連續(xù)性和完整性。
(6)流控制
事務(wù)層通過與數(shù)據(jù)鏈路層交互來實(shí)施流控制機(jī)制。這保證了發(fā)送方不會因?yàn)榘l(fā)送速度過快而導(dǎo)致接收方緩沖區(qū)溢出。
(7)事務(wù)排序
事務(wù)層負(fù)責(zé)保證數(shù)據(jù)按照正確的順序進(jìn)行傳輸,特別是在存在多個并發(fā)事務(wù)時,以確保數(shù)據(jù)的正確性和一致性。
(8)錯誤處理
事務(wù)層能夠檢測和處理一些傳輸錯誤,例如地址錯誤、大小錯誤或者無效的操作等。對于無法糾正的錯誤,事務(wù)層會向上游發(fā)送錯誤報告
4. 設(shè)備層和應(yīng)用層
在事務(wù)層之上,是設(shè)備層和應(yīng)用層。這些層次提供了對PCIe設(shè)備的抽象和接口,使得上層軟件能夠方便地與PCIe設(shè)備進(jìn)行交互。設(shè)備層定義了PCIe設(shè)備的特定屬性和功能,而應(yīng)用層則提供了對這些功能的訪問和使用。
? 5. 端點(diǎn)(Endpoints)和根聯(lián)合體(Root Complex)
在PCIe系統(tǒng)中,端點(diǎn)(Endpoints)是實(shí)際的數(shù)據(jù)源或數(shù)據(jù)目的地,它們可以是各種PCIe設(shè)備,如顯卡、網(wǎng)卡等。根聯(lián)合體(Root Complex)則是連接CPU和內(nèi)存的子系統(tǒng),它作為PCIe系統(tǒng)的主機(jī),負(fù)責(zé)管理PCIe總線上的設(shè)備,并協(xié)調(diào)它們之間的數(shù)據(jù)傳輸。
6. 交換機(jī)(Switches)和橋接器(Bridges)
在復(fù)雜的PCIe系統(tǒng)中,交換機(jī)和橋接器用于擴(kuò)展總線的范圍,連接更多的設(shè)備。交換機(jī)用于在多個PCIe設(shè)備之間提供數(shù)據(jù)通道,而橋接器則用于連接不同類型的總線,實(shí)現(xiàn)不同總線之間的通信。
總體來說,PCIe的結(jié)構(gòu)設(shè)計充分考慮了模塊化和靈活性,使得不同層次的組件可以獨(dú)立演進(jìn)和擴(kuò)展。這種設(shè)計確保了PCIe能夠滿足不斷變化的應(yīng)用需求,并提供持續(xù)的性能提升。
PCIE未來發(fā)展趨勢
PCIE未來的發(fā)展趨勢主要集中在以下幾個方面:
1、更高的傳輸速率:隨著數(shù)據(jù)中心和高性能計算需求的增加,PCIe標(biāo)準(zhǔn)的傳輸速率將繼續(xù)提升。例如,PCIe 5.0標(biāo)準(zhǔn)相比于PCIe 4.0,帶寬翻倍,而正在開發(fā)中的PCIe 6.0和PCIe 7.0將進(jìn)一步大幅提高速率。
2、更低的延遲:為了滿足實(shí)時計算和網(wǎng)絡(luò)通信的需求,PCIe的未來發(fā)展將致力于減少傳輸延遲,提高數(shù)據(jù)處理效率。
3、能效優(yōu)化:隨著綠色計算和可持續(xù)發(fā)展的重視,PCIe技術(shù)的能效比將成為重要指標(biāo)。未來的發(fā)展將著重于降低能耗,特別是在空閑或低負(fù)載狀態(tài)下。
4、增強(qiáng)的虛擬通道功能:虛擬通道技術(shù)允許PCIe設(shè)備在多個通道上同時進(jìn)行數(shù)據(jù)傳輸,提高帶寬利用率。未來的PCIe版本可能會進(jìn)一步增強(qiáng)VC的功能,提供更多的通道以及更復(fù)雜的調(diào)度策略。
5、更好的兼容性與互操作性:隨著不同代數(shù)的PCIe設(shè)備并存,確保新舊設(shè)備間的兼容性和互操作性將是PCIe發(fā)展的關(guān)鍵。
6、集成安全特性:為了應(yīng)對日益增長的安全威脅,PCIe未來可能會集成更多的安全特性,如硬件加密和認(rèn)證機(jī)制,以保護(hù)數(shù)據(jù)傳輸過程中的安全性。
7、擴(kuò)展應(yīng)用場景:PCIe不僅應(yīng)用于傳統(tǒng)的計算機(jī)和服務(wù)器領(lǐng)域,還將拓展至更多新興領(lǐng)域,如汽車電子、物聯(lián)網(wǎng)設(shè)備等,以滿足這些領(lǐng)域的特定需求。
綜上所述,PCIe的未來發(fā)展將圍繞提升性能、降低功耗、增強(qiáng)安全性以及擴(kuò)大應(yīng)用范圍等方面展開。隨著技術(shù)的不斷進(jìn)步,PCIe將繼續(xù)作為連接各種硬件組件的關(guān)鍵橋梁,支撐著現(xiàn)代計算和通訊技術(shù)的發(fā)展。
審核編輯:黃飛
?
評論
查看更多