PCI-Express

PCIE
PCI-Express
繼PCI (個人計算機擴展匯流排接口規範)之後的規範。PCI 屬於並行傳輸方式,即使用多條信號線同時並行傳輸多位數據,但 PCI Express 採用的是每次 1 位的串列傳輸方式,其最高數據傳輸速度為 8Gbit / s ,最大電纜長度 3m 。開發階段的代號是 3GIO 。
PCI Express匯流排的起源和現狀
2001年春季的IDF上Intel正式公布PCI Express,是取代PCI匯流排的第三代I/O技術,也稱為3GIO。該匯流排的規範由Intel支持的AWG(Arapahoe Working Group)負責制定。2002 年4月17日,AWG正式宣布3GIO 1.0規範草稿制定完畢,並移交PCI-SIG進行審核。開始的時候大家都以為它會被命名為Serial PCI(受到串列ATA的影響),但最後卻被正式命名為PCI Express。2006年正式推出Spec2.0(2.0規範)。
PCI Express匯流排技術的演進過程,實際上是計算系統I/O接口速率演進的過程。PCI匯流排是一種33MHz@32bit或者66MHz@64bit的並行匯流排,匯流排頻寬為133MB/s到最大533MB/s,連線在PCI匯流排上的所有設備共享133MB/s~533MB/s頻寬。這種匯流排用來應付音效卡、10/100M網卡以及USB 1.1等接口基本不成問題。隨著計算機和通信技術的進一步發展,新一代的I/O接口大量湧現,比如千兆(GE)、萬兆(10GE)的乙太網技術、4G/8G的FC技術,使得PCI匯流排的頻寬已經無力應付計算系統內部大量高頻寬並行讀寫的要求,PCI匯流排也成為系統性能提升的瓶頸,於是就出現了PCI Express匯流排。PCI Express匯流排技術在當今新一代的存儲系統已經普遍的套用。PCI Express匯流排能夠提供極高的頻寬,來滿足系統的需求。
目前,PCI-E 3.0規範也已經確定,其編碼數據速率,比同等情況下的PCI-E 2.0規範提高了一倍,X32連線埠的雙向速率高達320Gbps。
PCI Express匯流排的技術優勢
PCI匯流排的最大優點是匯流排結構簡單、成本低、設計簡單,但是缺點也比較明顯:
1) 並行匯流排無法連線太多設備,匯流排擴展性比較差,線間干擾將導致系統無法正常工作;
2) 當連線多個設備時,匯流排有效頻寬將大幅降低,傳輸速率變慢;
3) 為了降低成本和儘可能減少相互間的干擾,需要減少匯流排頻寬,或者地址匯流排和數據匯流排採用復用方式設計,這樣降低了頻寬利用率。 PCI Express匯流排是為將來的計算機和通訊平台定義的一種高性能,通用I/O互連匯流排。
與PCI匯流排相比,PCI Express匯流排主要有下面的技術優勢:
1) 是串列匯流排,進行點對點傳輸,每個傳輸通道獨享頻寬。
2) PCI Express匯流排支持雙向傳輸模式和數據分通道傳輸模式。其中數據分通道傳輸模式即PCI Express匯流排的x1、x2、x4、x8、x12、x16和x32多通道連線,x1單向傳輸頻寬即可達到250MB/s,雙向傳輸頻寬更能夠達到500MB/s,這個已經不是普通PCI匯流排所能夠相比的了。
3) PCI Express匯流排充分利用先進的點到點互連、基於交換的技術、基於包的協定來實現新的匯流排性能和特徵。電源管理、服務質量(QoS)、熱插拔支持、數據完整性、錯誤處理機制等也是PCI Express匯流排所支持的高級特徵。
4) 與PCI匯流排良好的繼承性,可以保持軟體的繼承和可靠性。PCI Express匯流排關鍵的PCI特徵,比如套用模型、存儲結構、軟體接口等與傳統PCI匯流排保持一致,但是並行的PCI匯流排被一種具有高度擴展性的、完全串列的匯流排所替代。
5) PCI Express匯流排充分利用先進的點到點互連,降低了系統硬體平台設計的複雜性和難度,從而大大降低了系統的開發製造設計成本,極大地提高系統的性價比和健壯性。從下面表格可以看出,系統匯流排頻寬提高同時,減少了硬體PIN的數量,硬體的成本直接下降。
PCI Express的硬體協定
PCIe的連線是建立在一個雙向的序列的(1-bit)點對點連線基礎之上,這稱之為“傳輸通道”。與PCI 連線形成鮮明對比的是PCI是基於匯流排控制,所有設備共同分享的單向32位並行匯流排。PCIe是一個多層協定,由一個對話層,一個數據交換層和一個物理層構成。物理層又可進一步分為邏輯子層和電氣子層。邏輯子層又可分為物理代碼子層(PCS)和介質訪問控制子層(MAC)。
物理層
於使用電力方面,每組流水線使用兩個單向的低電壓微分信號(LVDS)合計達到2.5兆波特。傳送及接收不同數據會使用不同的傳輸通道,每一通道可運作四項資料。兩個PCIe設備之間的連線成為“連結”,這形成了1組或更多的傳輸通道。各個設備最少支持1傳輸通道(x1)的連結。也可以有2,4,8,16,32個通道的連結。這可以更好的提供雙向兼容性。(x2模式將用於內部接口而非插槽模式)PCIe卡能使用在至少與之傳輸通道相當的插槽上(例如x1接口的卡也能工作在x4或x16的插槽上)。一個支持較多傳輸通道的插槽可以建立較少的傳輸通道(例如8個通道的插槽能支持1個通道)。PCIe設備之間的連結將使用兩設備中較少通道數的作為標準。一個支持較多通道的設備不能在支持較少通道的插槽上正常工作,例如x4接口的卡不能在x1的插槽上正常工作,但它能在x4的插槽上只建立1個傳輸通道(x1)。PCI-Express卡能在同一數據傳輸通道內傳輸包括中斷在內的全部控制信息。這也方便了與PCI的兼容。多傳輸通道上的數據傳輸採取交叉存取,這意味著連續位元組交叉存取在不同的通道上。這一特性被稱之為“數據條紋”,需要非常複雜的硬體支持連續數據的同步存取,也對連結的數據吞吐量要求極高。由於數據填充的需求,數據交叉存取不需要縮小數據包。與其它高速數傳輸協定一樣,時鐘信息必須嵌入信號中。在物理層上,PCIe採用常見的8B/10B代碼方式來確保連續的1和0字元串長度符合標準,這樣保證接收端不會誤讀。編碼方案用10位編碼比特代替8個未編碼比特來傳輸數據,占用20%的總頻寬。有些協定(如SONET)使用另外的編碼結構如“不規則”在數據流中嵌入時鐘信息。PCIe的特性也定義了一種“不規則化”的運算方法,但這種方法與SONET完全不同,它的方法主要用來避免數據傳輸過程中的數據重複而出現數據散射。第一代PCIe採用2.5兆位單信號傳輸率,PCI-SIG計畫在未來版本中增強到5~10兆位。
數據連結層
數據連結層採用按序的交換層信息包(Transaction Layer Packets,TLPs),是由交換層生成,按32位循環冗餘校驗碼(CRC,本文中用LCRC)進行數據保護,採用著名的協定(Ack and Nak signaling)的信息包。TLPs能通過LCRC校驗和連續性校驗的稱為Ack(命令正確應答);沒有通過校驗的稱為Nak(沒有應答)。沒有應答的TLPs或者等待逾時的TLPs會被重新傳輸。這些內容存儲在數據連結層的快取內。這樣可以確保TLPs的傳輸不受電子噪音干擾。
Ack和Nak信號由低層的信息包傳送,這些包被稱為數據連結層信息包(Data Link Layer Packet,DLLP)。DLLP也用來傳送兩個互連設備的交換層之間的流控制信息和實現電源管理功能。
交換層
PCI Express採用分離交換(數據提交和應答在時間上分離),可保證傳輸通道在目標端設備等待傳送回應信息傳送其它數據信息。它採用了可信性流控制。這一模式下,一個設備廣播它可接收快取的初始可信信號量。連結另一方的設備會在傳送數據時統計每一傳送的TLP所占用的可信信號量,直至達到接收端初始可信信號最高值。接收端在處理完畢快取中的TLP後,它會回送傳送端一個比初始值更大的可信信號量。可信信號統計是定製的標準計數器,這一算法的優勢,相對於其他算法,如握手傳輸協定等,在於可信信號的回傳反應時間不會影響系統性能,因為如果雙方設備的快取足夠大的話,是不會出現達到可信信號最高值的情況,這樣傳送數據不會停頓。第一代PCI-E標稱可支持每傳輸通道單向每秒250兆位元組的數據傳輸率。這一數字是根據物理信號率2500兆波特除以編碼率(10位/每位元組)計算而得。這意味著一個16通道(x16)的PCIe卡理論上可以達到單向250*16=4000兆位元組/秒(3.7G兆位元組/每秒)。實際的傳輸率要根據數據有效載荷率,即依賴於數據的本身特性,這是由更高層(軟體)應用程式和中間協定層決定。PCI Express與其它高速序列連線系統相似,它依賴於傳輸的魯棒性(CRC校驗和Ack算法)。長時間連續的單向數據傳輸(如高速存儲設備)會造成>95%的PCIe通道數據占用率。這樣的傳輸受益於增加的傳輸通道,但大多數應用程式如USB或乙太網絡控制器會把傳輸內容拆成小的數據包,同時還會強制加上確認信號。這類數據傳輸由於增加了數據包的解析和強制中斷,降低了傳輸通道的效率。這種效率的降低並非只出現在PCI-E上。
制式標準
半高卡微型卡: 代替Mini PCI卡 (支持x1 PCIe, USB 2.0和SMBus匯流排接口) 快速卡: 類似PCMCIA接口標準(支持x1 PCI-E,USB 2.0;支持熱插拔) 先進TCA卡: 代替CompactPCI卡
競爭協定
基於高速序列構架產生了很多傳輸標準。包括HyperTransport,InfiniBand,RapidIO和StarFabric等等。這些均有業界的不同企業支持,背後也都有大量的資金投入標準的研究開發,所以每一標準都聲稱自己與眾不同,獨占優勢。主要的差異在於可擴展性、靈活性與反應時間、單位成本的取捨平衡各不相同。其中的一個例子是在傳輸包上增加一個複雜的頭信息以支持複雜路由傳輸(PCI Express不支持這種方式)。這樣的信息增加降低了接口的有效頻寬也使傳輸更複雜,但是相應創造了新的軟體支持此功能。這種架構下需要軟體追蹤網路拓撲結構的變化以實現系統支持熱插拔。InfiniBand 和 StarFabric 標準即能實現這以功能。另一個例子是縮小信息包以減少反應時間。較小的信息包意味著包頭占用了包的更大百分比,這樣又降低了有效頻寬。能實現此功能的標準是RapidIO 和HyperTransport。PCI Express取中庸之道,定位於設計成一種系統互連線口(匯流排)而非一種設備接口或路由網路協定。另外為了針對軟體透明,它的設計目標限制了它作為協定,也在某種程度上增加了它的反應時間。
PCIE2.0和PCIE16插槽相比的不同和性能提升
現在的P43/45都是2.0的PCIE16插槽,2.0會比1.0電壓高。
(1)2.0顯示卡插1.0顯示卡插槽
2.0的顯示卡可以插在1.0的PCIE16插槽上,但是需要外接6pin電源,現在的2.0顯示卡(HD3650/3850等)都有6pin電源接口,就是為了滿足1.0PCIE16插槽的要求,而現在的主機板或電源都有為顯示卡準備6pin電源接口,把兩個接口對接就可以了。
(2)1.0顯示卡插2.0顯示卡插槽
電壓是相同的,增加的是頻寬和插槽提供的功率——電壓不變,增加的就是電流強度上限。 所以是互相兼容的。
(3)2.0顯示卡插2.0顯示卡插槽
這裡有個很奇怪的現象,原則上說,2.0顯示卡插上去後不需要外接6pin電源接口,但是實際情況是,不接的話會很不穩定,這個我也不知道為什麼,所以現在的2.0顯示卡插2.0顯示卡插槽也都還有外接6pin電源。
所以,對於2.0顯示卡來說,提供1.0PCIE16插槽的主機板(如P35)和提供2.0PCIE16插槽的主機板幾乎沒有區別,至少在現階段。

相關詞條

熱門詞條

聯絡我們