PCIe匯流排協議概述
正所謂,時勢造英雄、英雄造時勢。是時,PCI匯流排在PC界已然一統江湖多年,應用已然廣泛,PCI的匯流排已蔚然成風。然,科技日益發展,需求不斷膨脹,經過計算機技術10年的發展,包括摩爾定律的不斷驗證,PCI匯流排已漸漸感覺力不從心,成為PC系統發展的瓶頸了,在顯示卡和圖形處理方面尤為明顯。更高速度的技術的出現勢在必行。這種時候的到來是必然的,早在PCI取代ISA的時候就應該想得到的。對科技生產力的阻礙已經掩蓋了您的輝煌。
新一代的高速匯流排技術相繼出現了。大多數是基於高速序列構架產生的傳輸標準。包括HyperTransport, InfiniBand, RapidIO,ARM架構中的AMBA和StarFabric
而PCIe的出現就是基於這種群雄割據的形勢誕生的。Intel在2001年的IDF上提出了這個第三代的IO匯流排技術---PCI Express。當時稱為“3GIO”當時PCIe一出現,各大廠商紛紛表示支援,就連Intel的競爭對手amd也表示要將PCIe加入到自己的晶片組中,其他晶片廠商(如ATI、Nvidia、VIA)也想將自己的技術加入到PCIe協議中去。可想而知,PCIe很明顯成為取代PCI匯流排的新一代匯流排技術。
那麼PCIe究竟是何方神聖,到底有多大能耐呢?這裡就PCIe的概念做一些瞭解。
PCIe匯流排標準比PCI匯流排有優勢:
1、 PCIe匯流排使用兩對資料線實現傳輸,TxRx。所有匯流排簡化了很多,響應的設計成本會降低。
2、 兩個裝置之間點對點序列互聯,不同於PCI的共享一條匯流排資源,PCIe採用點對點技術,每個裝置獨享通道頻寬,可以提高資料傳輸率。
3、 採用雙通道傳輸,類似於全雙工模式。
4、 支援熱插拔,hotplug,這點讓使用者使用起來更方便。
5、 智慧電源管理,支援低功耗。支援ACPI。
6、 軟體對PCI架構的相容,使用PCI那套軟體方式即可配飾PCIe裝置。
7、 測試方式簡單化,通過簡單連線即可測試裝置。
PCIe匯流排的拓撲結構
PCIe匯流排的架構可以形象化為:多組點對點相互連線的元件。下圖可以看出,大概有這些組成:Root Complex(RC),多個Endpoint(PCIe裝置),Switch和PCIe-PCI bridge。各個成員之間匯流排即為PCI Express。
PCIe匯流排協議的層次結構
這個有點類似於網路的七層協議了,不過PCIe架構簡單一些:
1、 物理層(PhysicalLayer)。電力方面,使用兩個單向的低電壓差分訊號實現資料傳輸。也承擔8b/10b的資料解碼。
2、 資料鏈路層(DataLink Layer)。對該層傳輸的TLPs進行組裝和分拆。為上下兩層服務。
3、 傳輸層(TransactionLayer)。接受從軟體方面送來的請求,並生成請求包傳輸到資料鏈路層。同時接受從資料鏈路層來的資料包,傳遞給軟體。也就是對TLPs進行分裝和組裝。
PCIe匯流排的軟體層面
PCIe在軟體層上是和PCI相容的,也就是說,使用PCI的訪問方式可以去配置PCIe匯流排。PCIe device一般都有BusNO/DeviceNO/Function.通常DeviceNO為0.
同時,另外提供了一種memory對映來訪問PCIe device的方式---PCIe enhance configuration mechanism。一共會佔用256Mbyte的空間。這個後續再說。
隨著PCIe匯流排的應用和發展,已經陸續出來了幾代版本,最主要還是在速率上有提升。區別如下:
版本 |
資料頻寬 |
單向單通道頻寬 |
雙向16通道頻寬 |
原始傳輸率 |
解碼 |
發表日期 |
1.0 |
2Gb/s |
250MB/s |
8GB/s |
2.5GT/s |
8/10 |
2002年7月22日 |
1.0a |
2Gb/s |
250MB/s |
8GB/s |
2.5GT/s |
8/10 |
2003年4月15日 |
1.1 |
2Gb/s |
250MB/s |
8GB/s |
2.5GT/s |
8/10 |
2005年3月28日 |
2.0 |
4Gb/s |
500MB/s |
16GB/s |
5.0GT/s |
8/10 ] |
2006年12月20日 |
2.1 |
4Gb/s |
500MB/s |
16GB/s |
5.0GT/s |
8/10 |
2009年3月4日 |
3.0 |
8Gb/s |
1GB/s |
32GB/s |
8.0GT/s |
128/130 |
2010年11月10日 |
4.0 |
16Gb/s |
2GB/s |
64GB/s |
16.0GT/s |
128/130 |
2014年-2015年[3] |