PCI-X

PCI Express（PCI-E或PCIe），是另一種不同的電腦匯流排PCI-X是傳統PCI匯流排（Peripheral Components Interconnect）的升級版，有更高的頻寬。在PCI Express出現前，PCI-X多用於伺服器和工作站。

PCI-X 是1998年由IBM、惠普以及康柏（Compaq）等公司制定，採用64位元匯流排寬度，以及133MHz的頻率來傳送資料，相較於PCI，有更多的接腳，而且所有的連接裝置會共享所有可用的頻寬，但兩者的協定相當類似。PCI-X 2.0還可支援266MHz或533MHz的頻率。

PCI-X還支援MSI，這是一種主動通知的中斷機制。過去的PCI都是被動通知中斷，而且是共享中斷，當有設備（device）發生中斷時，系統會通知PCI所有的設備，這樣會造成時間的浪費。MSI的特點是將中斷向量編號送至指定的記憶體，接著再觸發中斷。

## 歷史

背景和動機

在PCI中，若某個事務無法立即完成，目標設備或發起方會通過發出重試周期來延遲處理，在此期間，其他代理設備無法使用PCI總線。由於PCI缺少一種分割響應機制，允許目標設備稍後返回數據，總線會一直被發出重試周期的目標設備占用，直到讀取的數據準備就緒。而在PCI-X中，主設備發出請求後便會與PCI總線斷開連接，這使得其他代理設備能夠使用總線。分割響應僅在目標設備準備好返回所有請求數據時產生。通過消除重試周期，分割響應提高了總線效率，因為在重試周期內無法進行數據傳輸。

在PCI中，由於獨特中斷線的相對稀缺，僅有的4個中斷引腳（INT A/B/C/D）使得具有多個PCI設備的系統需要多個功能共享一條中斷線，這增加了主機端中斷處理的複雜性。PCI-X引入了消息信號中斷（MSI），這是一種通過向主機記憶體寫入數據來實現的中斷系統。在MSI模式下，功能的中斷不再通過拉高INTx線路來觸發，而是由功能部件執行一次記憶體寫操作到主機記憶體中系統配置的特定區域。由於內容和地址是基於功能進行配置的，MSI模式的中斷是專用的，而非共享。PCI-X系統允許同時使用MSI模式中斷和傳統的INTx中斷（儘管同一功能不能同時使用兩者）。

由於缺乏寄存I/O，PCI的最大頻率被限制在66 MHz。而PCI-X的I/O則通過鎖相環（PLL）等手段將其時鐘信號進行寄存，以主動控制總線引腳上的I/O延遲。這一改進縮短了建立時間，從而使得頻率能夠提升至133 MHz。

某些設備，尤其是千兆乙太網卡、SCSI控制器（包括光纖通道和Ultra320）以及集群互連設備，它們自身就足以耗盡PCI總線133 MB/s的帶寬。為了應對這一挑戰，業界採取了多種措施：有的將總線速度提升至66 MHz，有的將總線寬度擴展至64位（相應地，引腳數從124個增加到184個），還有的同時實施了這兩種改進。這些擴展功能在PCI 2.x標準中作為可選部分得到了較為鬆散的支持，然而，在超越基本133 MB/s速率的情況下，設備間的兼容性問題依然棘手。

開發者們最終將64位與66 MHz的結合擴展作為基礎，並前瞻性地創建了66 MHz和133 MHz兩種變體，分別提供最高532 MB/s和1064 MB/s的帶寬。這一聯合成果被提交給PCI特別興趣小組（電腦協會特別興趣小組），並隨後獲得批准，成為所有電腦開發者均可採用的開放標準。PCI SIG負責PCI-X的技術支持、培訓及合規性測試工作。IBM、Intel、微電子以及Mylex承擔起開發配套晶片組的任務，而3Com和Adaptec則致力於開發兼容的外圍設備。為了加速PCI-X在行業內的普及，康柏公司在其網站上提供了PCI-X開發工具。

PCI-X 1.0

PCI-X標準由IBM、惠普和康柏共同開發，並於1998年提交審批。這一標準旨在將專為伺服器設計的PCI本地總線擴展進行規範化，以解決PCI存在的若干不足，並提升如千兆乙太網、光纖通道和Ultra3 SCSI卡等高帶寬設備的性能，同時支持處理器通過集群方式互連。

英特爾對PCI-X僅表示了有保留的歡迎，強調下一代總線必須是一種「根本性的新架構」。由於缺乏英特爾的支持，PCI-X未能在個人電腦中得到廣泛應用。據《電子工程時報》的Rick Merritt所述，「PCI特別興趣小組與一位曾主導加速圖形埠（AGP）開發的關鍵英特爾互連設計師之間的分歧，導致英特爾退出了初期對PCI-X的支持工作」。儘管如此，蘋果公司在其前幾代Power Macintosh G5中短暫採用了PCI-X接口。

首批採用PCI-X技術的產品於1998年問世，例如Adaptec的AHA-3950U2B雙通道Ultra2 Wide SCSI控制器，然而在當時，包裝上僅將PCI-X接口標註為「64位就緒PCI」，預示著未來向前兼容的可能性。實際的PCI-X品牌標識直到後來才成為標準，可能與配備PCI-X主板的大規模上市時間相吻合。2001年8月，當更多關於PCI Express的細節公布後，PCI SIG主席Roger Tipley表達了他的看法：「PCI-X將在伺服器領域長久存在，因為它滿足了一定層次的功能需求，對於這些功能，轉向3GIO（即PCI Express）可能並不具備足夠的吸引力。我們從無法淘汰ISA的經歷中吸取了教訓，ISA之所以能長期存在，正是因為許多系統並非高批量生產部件。」Tipley同時宣布，當時PCI SIG正計劃將PCI Express與PCI-X 2.0整合到一個暫名為PCI 3.0的統一規範中，但最終，PCI 3.0這一名稱被用於對傳統PCI進行相對較小的修訂。

PCI-X 2.0

2003年，PCI SIG正式批准了PCI-X 2.0標準。該版本新增了266MHz和533MHz兩種頻率模式，分別提供大約2,132 MB/s和4,266 MB/s的數據傳輸速率。PCI-X 2.0在協議層面進行了進一步改進，旨在增強系統穩定性，並引入了糾錯碼，以減少因錯誤導致的數據重傳。針對使用者對PCI-X形態因素——尤其是184針連接器——的常見抱怨，新標準還開發了16位埠，使得PCI-X能夠適應空間受限設備的需求。與PCI Express相似，PCI-X 2.0增加了點對點（PtP）通信功能，使得總線上的設備可以直接相互通信，從而減輕CPU或總線控制器的負擔。

儘管PCI-X 2.0具備諸多理論上的優勢，並且能夠向後兼容PCI-X及PCI設備，但截至2008年，其並未得到大規模實施。這一現象的主要原因在於硬體廠商普遍選擇集成PCI Express技術而非PCI-X 2.0。

IBM是少數幾家在其System i5 Model 515、520和525系列中提供PCI-X 2.0（266 MHz）支持的廠商之一，並宣傳這些插槽適用於10千兆乙太網適配器，他們也確實提供了此類適配器。惠普則在其部分ProLiant和Integrity伺服器中提供了PCI-X 2.0接口，並推出了運行於266 MHz的雙埠4 Gbit/s光纖通道適配器。AMD通過其8132 HyperTransport至PCI-X 2.0隧道晶片支持了PCI-X 2.0（266 MHz）。ServerWorks曾是PCI-X 2.0的積極倡導者（甚至對第一代PCI Express持保留態度），其首席技術官Raju Vegesna尤為突出，然而他因與博通（Broadcom）高層在技術路線圖上存在分歧而很快被解僱。

2003年，戴爾宣布將跳過PCI-X 2.0，轉而更快地採用PCI Express解決方案。據《PC Magazine》報導，英特爾在其2004年的技術路線圖中開始邊緣化PCI-X，傾向於PCI Express，理由是後者在系統延遲和功耗方面具有顯著優勢，更戲劇化地表述為避免了其Tumwater晶片組面臨的「千針末日」困境。

## 版本

PCI-X的64位元版本如下:

- 擴充卡
- 66 MHz（1.0版加入）
- 100 MHz（通過133 MHz轉換器應用於部分伺服器）
- 133 MHz（1.0版加入）
- 266 MHz（2.0版加入）
- 533 MHz（2.0版加入）
- 插槽
- 66MHz（見諸於舊式伺服器）
- 133MHz（多用於新式伺服器）
- 266MHz（甚少, 已被PCIe取代）
- 533MHz（甚少, 已被PCIe取代）

## 與PCI的區別

PCI-X在本質上還是PCI的一個擴展版本，故與PCI同樣使用並列傳輸介面，但在傳輸速度、擴展性和物理外觀方面有一些顯著的區別，且PCI設備不能在不經轉換的情況下，直接鏈接PCI-X接口

在傳輸速度上，與PCI相比，PCI-X具有更高的數據傳輸速度。它最初支持的最大速度是1 GHz（64位，133 MHz），帶寬可達1 GB/s（PCI 最高爲264 MB/s）。後來的版本（PCI-X 2.0）進一步提升了帶寬，支持更高的頻率（最大533 MHz），帶寬可達4 GB/s。

在擴展性上，傳統的PCI總線通常最多支持5個或6個設備，而PCI-X則能夠支持更多設備的擴展，且提供了更好的擴展性和設備支持，能夠處理更多的並發設備和更高的數據傳輸需求。

在物理插槽上，PCI插槽通常為32位或64位設計，並且標準化，常見於大多數桌面和伺服器電腦中，而PCI-X插槽的設計與傳統的PCI插槽不同，通常是64位寬，並且支持較高的頻率。雖然PCI-X插槽與PCI插槽在形態上相似（都使用長插槽），但PCI-X設備與標準PCI設備不完全兼容。主板必須明確支持PCI-X接口才能使用PCI-X設備。

## 與PCI Express的混淆

PCI-X經常與另一種名為PCI Express的滙流排架構相提並論，甚至因為PCI Express的泛用縮寫是PCI-E或PCIe，使得它們不管怎麼看都和PCI-X很相似；除了字型字意很像之外，PCI-X和PCI Express的英文發音也很相近所以很容易造成混淆。然而從外觀及性能上看，這兩者仍有差異性。如果換個角度，從功能上來看，除了兩者都是一種高速電腦內部週邊裝置的滙流排的這個共通點外，在應用方面它們卻是不同的；首先PCI-X是一種並列傳輸介面，它可以向下相容於所有早期的+3.3V PCI滙流排（但不容於最早期的+5V PCI BUS），然而PCI Express卻是一種串列傳輸介面，它是全新設計用來取代PCI和PCI-X的。

在過渡時期裏有些廠商發展出一種橋接方式讓PCI-X或PCI滙流排可以和PCI Express滙流排併存於同一個系統中，這就像過去曾出現過ISA滙流排與PCI滙流排同時出現在同一塊主機板上的情形一樣。其次在最大頻寬方面PCI-X（533-1066MB/S）甚至是後來的PCI-X 2.0（2.1-4.2GB/S）也不是PCI Express的對手。即使是規格最低的PCI Express X1也可以提供單一方向250MB/S的速度（全雙工時 x 2倍），若是最高規格的PCI Express X32還可以提供32個通道總共單向8GB/S的頻寬。

若再考慮技術與成本的方面，PCI Express更遠遠勝於PCI-X。不難想像在PCI-X的設計室裏，佈線工程師們要如何才能把64條資料線放進小小的接線區；同時還要考慮同步、雜訊、串音、屏敝等一連串的問題。相較之下串列傳輸就不必考慮這麼多因素，因此在電路設計上就簡單很多。此外不管是PCI還是PCI-X都只是半雙工的通訊機製，但PCI Express卻完全可以用全雙工方式進行通訊。此外在同一個滙流排裏因為平行傳輸的關係，雖然控製器可以和每個接入的裝置自動協調傳輸速率，但卻必需選用各個裝置中速度最慢者的速度作為滙流排內共同的傳輸速度上限，高速裝置往往因此而失去特別作用。而PCI Express與其相比就更有效，因為串列傳輸的關係各個通道彼此獨立，可以各自皆以最高速度進行通訊，讓各自的能力完全發揮。

最後對比兩者的插槽的長度，PCI Express即使拿最長的X16版本來和最短的PCI-X版本作比較，後者（PCI-X）119.91mm的長度還是比前者（PCI Express）89mm的總長還要長許多（非常規的Mini PCI不在此進行比較），這使得ATX規格或更小型機箱和主板廠商會更喜歡PCI Express。

## 外部連結

- Good diagrams and text on how to recognize the difference between 5 volt and 3.3 volt slots.

## 基本資料

- 全名：PCI Local Bus
- 研發日期：1998年
- 發明者：IBM、惠普以及康柏
- 替代日期：2004年
- 替代介面：PCI Express
- 最多連接：1 per slot
- 速度：1064 MB/s
- 熱插拔：yes