查看單個文章
舊 2004-05-11, 05:14 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 蛻變 談PCI Express總線及其套用

 現在的處理器已經以數GHz衡量了,顯示卡的處理能力更是達到了前所未有的強大,硬碟的轉速也很快了,但是你發現電腦系統並沒有因此而快多少。

  雖然記憶體都達到了512MB甚至是1024MB,但是我們反而在更多的時候看到硬碟燈狂閃不止。

  當然如果你有錢的話,可以不停的昇級,比如使用最新的3GHz處理器、1024MB記憶體和4個Ultra320 SCSI組成快速又安全的磁牒陣列來讓你的機器在任何程序面前都無所顧忌。

  如果你是個苛刻的遊戲玩家或者對於聲音有著特殊的偏執,那麼擁有一款硬體級的聲效處理器也是比不可少的。這樣你的電腦就站在了效能的頂峰了嗎?不,當這樣的機器用於處理下一代的資料庫時,依然會無力應對—因為這樣的工作往往是多線程的、所以這個時候就要求你的電腦具有多處理器、並行處理能力、雙資料率、雙通道RAM等。

  如果你的機器真的已經成為了這個樣子,你就已經有了一台效能極高的工作站,但是你知道嗎?你的機器依然使用著486時代的技術。 為什麼會出現這樣的情況呢?因為你的幾百個GB的硬碟、SCSI通道、幾百乃至1GB的RAM都要受制於33MHz的PCI總線。

  PCI就是Peripheral Component Interconnect(外部設備互聯總線)的簡稱,它是連接所有擴展板卡、硬碟、光碟到系統的I/O接頭,正是通過PCI總線的聯繫這些設備才能同系統記憶體和處理器進行資料通訊。不過這種總線技術的服役期已經超過了10年了。

  當然出現現在的這種情況也不能完全歸咎於PCI。PCI技術自從推出以來表現一直相當的出色,只是目前的硬體設備為了達到更高的速度都對於帶寬具有非凡的要求,而PCI總線這一個目前電腦那最最基礎的總線標準卻牢牢的禁錮著它們的發展。

  正是因為它的這種基礎的性質,使得其它的I/O總線都要在它的基礎上開發,因為對於整合行業來說如果I/O總線技術也如同處理器或者顯示卡那樣的速度更新換代,無論是廠商還是最終用戶都會苦不堪言,而且對於整個業界乃至整個社會的發展都沒有什麼好處。

  正是因為PCI總線技術是被設計為管理絕大多數外圍設備的,所以它必須經的住時間的考驗。所以在1990年前PCI總線被設計的時候,它就被設計為一種要長期為電腦系統服役的標準。當這種技術第一次在486和早期的Pentium主機板上出現的時候,我們使用電腦的方式就開始被這種總線標準改變了。

  也正是PCI顯示卡的出現,使得顯示卡的處理速度極大的提高,也使得真正意義上的多媒體電腦進入了我們的生活—雖然這個時候沒有什麼全螢幕抗鋸齒等功能,但是從256色提升到真彩色顯示就是一個巨大的飛躍了。隨後很多廠商都意識到了PCI技術的潛力和相對於ISA的優勢,於是在隨後的一兩年中各種各樣的PCI設備應運而生。

  經過了多年的發展,越來越多的設備已經徹底的摒棄了老的ISA/EISA平台而投入到了更快的PCI平台。網路速度的提升和存儲設備速度的提高也使得這種轉變成為了必要。

新的繼承者

  現在已顯得老邁的PCI是一個連接外部、內部設備的I/O總線,於90年代誕生,對於現在越來越多、越來越快的I/O操作已經有些力不從心了。這在幾年前就表現了出來。高效能的顯示卡在五年前就讓PCI總線顯得蒼白無力,於是出現了關於PCI技術的AGP總線。

  在90年代末,伺服器和工作站中的高速硬碟和網路橋接器就轉移到了66Mz/64位PCI總線上,現在更是用上了PCI-X和PCI 2.0。目前南橋和北橋之間的互連也比PCI總線要快的多,Intel的800系列晶片組使用的就是HubLink互連。

  目前的晶片組集成了EIDE、USB(或是USB 2.0)以及10/100網路卡,而不再通過PCI總線。我們的系統機箱裡實際上是一個互連的大雜燴。為了更大的帶寬需求加上如今的PCI瓶頸,業界需要一個標準化的高速的PCI技術來取代老的。

  電腦總線大約每隔3年在效能上提高一倍,從原先8bit的PC/XT、16bit ISA總線,到32位 EISA、MCA、VL總線、PCI、PCI-64/66MHz,再到如見的PCI-X 1.0和2.0。而處理器的效能的提升則要快的多,差不多是每9-10個月效能提升一倍。這種發展的不均衡就造成了I/O系統成為瓶頸,無法滿足處理器、記憶體子系統的需要。

  PCI的繼任者需要更高速的總線插槽,可以將晶片級的I/O設備加入系統。進一步,它還需要通過高速互連可以將系統中不同的功能區連接起來。運算設備在未來可能以各種形狀和大小出現,目前甚至已經出現了分離式的系統設計。

  舉個例子,主機板、處理器以及散熱系統可以放置在一個獨立的地方,存儲設備則被另行放置或是集成到CRT/LCD顯示器中,而顯示子系統也可以集成到顯示器中(很可能作為可昇級單元出現)。 而且這一切都將在PCI Express總線所替代,這就是3rd Generation I/O(第三代輸出輸出總線技術)的正式官方名稱,其未來將成為電腦內部互連技術的總稱。


PCI Express將替代PCI總線成為第三代輸入輸出總線技術

PCI Express發展史

  在2001年的IDF上,Intel就推出了旨在取代PCI總線連接內部晶片的第三代I/O技術,也就是3GIO。根據Intel的說法,3GIO技術將會在下面20年中與我們相伴,可以和不同的物理介質配合。當時曾有人對Intel的這個發佈活動表示懷疑,認為他們缺乏業界的支持。

  不過Intel在接下來證明了自己的實力:PCI-SIG組織在2001年8月初認可了Arapahne標準(3GIO的另一個名字)。Intel的合作夥伴在那個時候已經有了康柏、Dell、IBM、微軟等巨頭,業界的支持已經勿庸置疑。到了8月底,AMD以及其他21家廠商也加入了這個陣營,剛好在Intel的IDF前夕!

  Intel和PCI-SIG的實力使得HyperTransport技術的支持者AMD也加入了進來。早期,Intel認為HyperTransport功能不夠多,無法滿足未來的需要。AMD很快就澄清了這一點,向大家表明HyperTransport和3GIO可以在一個系統中共存,並很快公佈了HyperTransport的遠景發展計劃,提供更豐富的功能、更高的速度。


到了2002年4月,PCI-SGI和Arapahoe工作組完成了3GIO規範草稿,並正式將其改名為PCI Express。有人認為這個名字太接近於PCI-X 1.0/2.0(伺服器、工作站用的連接方式),不過PCI-SIG並不認為這是個大問題。

  在2002年7月23日,PCI-SIG正式公佈了PCI Express規範1.0版以及相應的PCI Express卡電氣規範,對於非PCI-SIG成員而言,定價為475美元。

  採用PCI Express的晶片組和顯示卡在2003年末已經問世,到今年中期正式銷售,也就是說第三代總線技術真的離我們很近了。

PCI Express:新型總線

  PCI Express從名稱上來看似乎同PCI有著很大的關係,但實際上這並不是PCI技術的延續(不是新的具有更高帶寬的PCI技術,也更不是一個驅動程式或者一個昇級修正檔),就如同PCI取代ISA一樣,PCI Express的出現將會改寫我們使用的電腦的架構。

  同樣真是看到了PCI總線所遇到的問題,Intel努力修正設計從而希望PCI Express不再遇到目前PCI所面臨的尷尬。這種解決方案提供的是一個智能化的總線架構,它可以有效的解決多個設備共享的問題—或者說讓這個問題根本的消失。

目前的PCI總線技術主要面臨以下的幾個的問題: 


最高帶寬133MB/s
工作頻率只有33MHz
IRQ共享問題
主機板銅布線工藝
設備數目限制
僅能在機箱內使用 PCI Express的主要目標就是解決以上的所有問題,加入一些用戶嚮往已久的新功能。

PCI Express主要可以為我們帶來如下的新功能:

  效能: PCI Express總線只需要從晶片組中引出很少的引腳,所以使得主機板布線難度大大降低(其引線數目比現在的PCI總線減少大約75%)但是卻具有比現在的PCI高的多的帶寬和傳輸速度,另外在配置的靈活性方面PCI Express也優於PCI。它可以根據所連接的硬體設備的不同,使用不同頻率的同其聯繫通訊。

  多種連接方式:這是同PCI總線非常不同的地方, PCI Express總線可以「走出機箱」。也就是說PCI Express可以如同現在的USB或者Firewire一樣通過電腦上的一定接頭同外部採用相應符合PCI Express標準接頭的設備進行連接和通訊。

  點對點總線:相對於PCI這種「總線式」的連接方式,一旦PCI總線有瓶頸現象發生,將會影響所有連接其上的PCI設備。PCI Express總線採用了點對點技術,這樣每個PCI Express設備都是直接同系統晶片進行交流,而不再存在帶寬問題。

  進階功能: PCI Express可以使用多種不同的信號傳輸協定包括它本身的傳輸協定。它還具有進階電源管理和監視功能,這樣所有的PCI Express設備都會支持熱插拔。在PCI Express中諸如記憶體糾錯等功能都會成為標準功能。

  跨平台的相容性: PCI Express最大的優點之一就是它的跨平台相容性。現在的符合PCI 2.3規範的板卡將可以在低帶寬的PCI Express插槽上使用。(軟體級相容PCI)


PCI Express進階系統架構

  PCI Express是由點對點的模式進行資料傳輸的,一個PCI Express的基本結構包括一個Root Complex(類似與晶片組的北橋晶片,連接CPU/記憶體和I/O設備),Swithes(對於軟體系統而言,像是一個具有2個及以上邏輯PCI到PCI橋路,保持相容性)以及不同的終端設備,並可能存在PCI到PCI Express的連接橋路。下圖就是在PCI Express 1.0規範中的結構圖,有些像開關網路。

  下面這個是PCI Express開關設備的邏輯圖:



  下面這個是PCI Express開關設備的邏輯圖:



  下面這個則是PCI系統和PCI Express系統的對比:

點對點的通信可以在一個終端設備通過Root Complex與另一個終端設備之間進行,也可以在一個終端設備通過Switches與另一個Switches之間,然後再接到一個終端設備。

  還有一種方式稱作進階點對點通信,大家可以看看下面的圖片。由於實現方式的不同,Root Complex可能包括進階切換功能來實現主機軟體之間的點對點通信。



PCI Express物理串行連接特徵

  一個單獨的基本的PCI Express串行連接就是兩個獨立的通過不同的低電壓對驅動信號實現的連接,一個接受對和一個傳送對(共四組線路)。一個微分信號在兩個接頭之間有電壓差來傳遞。第一代的PCI Express連接信號傳輸速度為每對線單向2.5Gbit/s。2004年可以實現5Gbit/s的速度。設計的關鍵是通過4層PCB技術和標準接頭在設備間形成最大20英吋的連接,如果採用了更高質量的元件,可以達到更遠的距離。

  一個雙獨立連接允許資料同時進行雙向傳輸,類似與全雙工連接,不過這裡每一對線都有自己的地線。這樣也就可以實現更高的傳輸速度和更好的信號質量。在PCI總線中,一個啟始化的設備必須首先從Central Arbiter(中心判優器)進入共享PCI總線,然後才可以通過PCI總線將資料傳輸給目標設備,而且在任一時間只能實現單向傳輸。



  基礎PCI Express串行連接的另一項關鍵功能是可以通過8b/10b的編碼,植入了時鐘信號技術。時鐘信號被直接植入資料流中,而不是作為獨立信號存在。很多現存的並行總線都具有源同步的時鐘信號,與資料信號同時傳輸。這兩種方式各有自己的利弊。8b/10b編碼需要每個字串佔據10bit,也就是比通常多出20%。

一個串行資料/時鐘信號流可以比並行資料傳送更長的距離。同時,串行連接造價也更為低廉。不過,提取和植入時鐘的程序需要更多的處理時間,所以並行接頭還會存在一段時間,主要會用於對速度要求較高的場合。

PCI Express串行連接結構

  一個PCI Express連接可以由很多小連接(Lane)組成。每個小連接又是由兩個微分驅動電線對(傳輸和接受)的基本連接組成。這些小連接可以用2.5Gb/s的帶寬提升到10Gb/s,並在今後可以繼續增加。多重小連接可以連接設備、晶片等設備。看起來,這個很像是並行接頭,不過它們實質上是一組獨立的串行連接,也沒有並行接頭那樣的信號質量問題。

  PCI Express連接結構可以有x1、x2、x4、x8、x12、x16和x32幾種不同形式。一個x1的連接具有4個電線,一個x16連接在每個方向上就具有16個微分信號對,或是64個雙向資料傳輸電線。在高端部分,一個x32的連接可以每個方向上進行10GB/s的傳輸(2.5Gb/s×32×8bit)。不過由於8b/10b編碼,事實上的帶寬為8GB/s(扣除20%的植入時鐘信號)。

  連接結構必須對稱分步。因此很多人認為使用PCI Express取代AGP會帶來不對稱分步而不是16個小連接的對稱連接,這樣就會降低顯示卡畫格緩衝(顯示記憶體)到系統記憶體的傳輸速度,需要額外增加信號布線,也就增加了主機板的成本。

  小連接的順序也可以在設備之間交換。在微分信號對的兩端的正負極性可以顛倒,這樣就可以提供設計上的靈活性並有效避免布線時的物理信號交叉。下圖中,左側的連接表明的是一個x2設備通過x1連接和一個x1設備通訊。
來自程序的資料流可以通過多個小連接的PCI Express連接,信號可以在傳送端分散在不同的鏈路中,並可以在接受端重新組合起來。



PCI Express:封包分層傳輸協定、虛擬通道、通信量等級

  PCI Express使用了一個封包分層傳輸協定結構,而不需要在主串行連接上加入任何邊頻信號。分層傳輸協定在資料傳輸領域已經使用了很長時間了,可以在傳輸協定中實現不同功能區的相互獨立,並且在層內的資料傳輸對其他層沒有影響。

  下面這張圖中的是PCI Express中的三個傳輸協定層--處理層、資料連接層和物理層。在一次資料傳輸中,傳送端將資料包在高層產生,在向底層傳遞中每個層都加入一些資訊,資料包通過物理連線到達接受層,資料包再由下至上層層上傳。



  而下面這張圖中的則是在處理層和資料連接層中資料包資訊的主要功能。處理層合成和分解處理級的資料包,並處理連接結構和控制信號。它還可以通過有效資料交叉避免終端對終端通信操作的錯誤。資料連接層確保資料可以正確的從一個點傳遞到另一個點,通過ack/nack技術,並提供錯誤探測和校正功能。

下面的這張則是實際資料包結構。大家可以看到傳統的嵌套式結構,高位層的資訊被低位元層資訊所包裹,套用層的資料位於資料包的核心。處理層使用32位CRC,而資料連接層採用的則是16位CRC



  資料包的頭部帶有的資訊如下所顯示:



PCI Express虛擬通道及通信量等級

  和InfiniBand很類似,PCI Express也支持每個連接的虛擬多通道。在一個小連接上可以存在最大8個獨立控制的通訊。每個通訊都可以根據資料包的通信量等級(Traffic Class,TC)性質得到不同的處理。對於在PCI Express中傳輸的資料包而言,在每一個轉換或連接終端,都要查驗TC資訊,並據此進行適當的處理。在資料包頭部的TC描述符由3個bit組成,可以表示不同的TC等級。




未完待續
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次