《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > PCI-Express非透明橋在智能系統(tǒng)中的應(yīng)用
PCI-Express非透明橋在智能系統(tǒng)中的應(yīng)用
摘要: 在系統(tǒng)設(shè)計(jì)中,,設(shè)計(jì)師們面臨的重要挑戰(zhàn)是既要支持高可靠性(HA,High Availability),,又要使系統(tǒng)盡可能簡單,、有效。而PCI Express,、基于PCI Express的高級交換架構(gòu)(Advanced SwitchingArchitecture),、基于PCI Express的QOS(Quality-Of-Service)特性以及PCI-Express非透明橋的出現(xiàn),共同為這樣的系統(tǒng)設(shè)計(jì)提供了一個(gè)非常有發(fā)展?jié)摿Φ慕鉀Q方案,。
Abstract:
Key words :

0 引言
    在系統(tǒng)設(shè)計(jì)中,,設(shè)計(jì)師們面臨的重要挑戰(zhàn)是既要支持高可靠性(HA,High Availability),,又要使系統(tǒng)盡可能簡單,、有效。而PCI Express,、基于PCI Express的高級交換架構(gòu)(Advanced SwitchingArchitecture),、基于PCI Express的QOS(Quality-Of-Service)特性以及PCI-Express非透明橋的出現(xiàn),共同為這樣的系統(tǒng)設(shè)計(jì)提供了一個(gè)非常有發(fā)展?jié)摿Φ慕鉀Q方案,。

1 PCI Express技術(shù)簡介
    PCI Express技術(shù)是一個(gè)比較新的互連標(biāo)準(zhǔn),。該技術(shù)適用于高性能的芯片到芯片、板子到板子,、背板和機(jī)箱之間的互連,。它是PCI標(biāo)準(zhǔn)的一個(gè)演進(jìn)版本,因此,,在軟件結(jié)構(gòu)上仍保持著對PCI的兼容性,。
    PCI Express是基于層次化的,、高速的串行通信技術(shù),。其協(xié)議棧可分為物理層、數(shù)據(jù)鏈路層和傳輸層,。
    其中,,物理層包括低電壓差分信號(hào)的高速串行接口、8B/10B編碼以及AC耦合差分信號(hào),。通常把一組LVDS雙絞線稱為一個(gè)通道(lane),,而且PCI Express允許將多個(gè)通道合并成一個(gè)更大更寬的端口,如x1,,x2…直到x32,。物理層接口可支持熱插拔(hot-plugging)。
    數(shù)據(jù)鏈路層可支持與臨近PCI Express實(shí)體交換數(shù)據(jù)包,同時(shí)支持?jǐn)?shù)據(jù)完整性(data integrity)和順序性檢查,,以及數(shù)據(jù)包的確認(rèn)和流量控制的能力,。
    PCI Express技術(shù)系統(tǒng)中的傳輸層可在主機(jī)和終端設(shè)備間傳送讀/寫請求,并可選擇性的提供傳輸層的端到端(end-to-end)數(shù)據(jù)包的完整性檢查(CRC-32),。
    一直以來,,PCI Express傳輸系統(tǒng)中的物理層的速度一直在不斷的提高,但是,,分層結(jié)構(gòu)使物理層的變化不會(huì)影響到它的上層,。如PCI Express1.x標(biāo)準(zhǔn)的時(shí)鐘頻率是1.25 GHz,2.0標(biāo)準(zhǔn)的則為2.5 GHz,,3.0標(biāo)準(zhǔn)的是4 GHz,。圖l所示是PCI Ex-press協(xié)議棧結(jié)構(gòu)。

    PCI Express的QOS可通過定義8個(gè)運(yùn)輸?shù)燃?TC-Traffic Classes),、八個(gè)虛擬通道(VC-VirtualChannel),、TC到VC的映射以及VC的仲裁機(jī)制來實(shí)現(xiàn)。
    PCI-SIG組織則定義了從PCI Express串行接口到PCI/PCI-X的橋接規(guī)范,。該規(guī)范可以使得當(dāng)前使用PCI/PCI-X的應(yīng)用系統(tǒng)能夠平滑的轉(zhuǎn)移到PCI Express,。圖2所示是一個(gè)典型的PCI Express系統(tǒng),其中包含有根復(fù)合體(root complex),、PCIExpress交換開關(guān)(switch),、橋(bridge,PCI Expressto PCI-X,,PCI Express to PCI)以及端點(diǎn)(end-point)等設(shè)備,。


2 PCI Express非透明橋
    與PCI/PCI-X一樣,PCI Express本身也是開發(fā)維護(hù)一個(gè)以單一主機(jī)為中心的系統(tǒng)架構(gòu),,但是人們一直使用非透明橋把他們用在多主機(jī)的環(huán)境中,。
    非透明橋的功能和透明橋很相似,其主要差別只有一點(diǎn),,即在非透明橋的兩邊都有智能設(shè)備或處理器,,并且他們擁有獨(dú)立的地址空間。而且,,非透明橋一邊的主機(jī)不能看到橋另一邊的完整地址或I/O空間,。每個(gè)處理器把非透明橋的另一邊看做一個(gè)端點(diǎn)(endpoint),并把它映射到自己的地址空間,。

2.1 地址翻譯
    在非透明橋環(huán)境中,,PCI Express系統(tǒng)需要在從一個(gè)內(nèi)存地址空間穿越到另一個(gè)地址空間時(shí)進(jìn)行地址翻譯。每一個(gè)非透明橋(NTB)端口都有兩套基地址寄存器(BAR),,一套是給主設(shè)備端用的,,另一套是給從設(shè)備端用的。基地址寄存器可用來定義在非透明橋另一端的內(nèi)存地址空間的地址翻譯窗口,,并允許這個(gè)翻譯被映射到本地的內(nèi)存或I/O空間,。每個(gè)BAR定義了一個(gè)設(shè)置寄存器(setup register),可用來定義窗口的大小,、類型以及一個(gè)地址翻譯寄存器,。與透明橋基于總線號(hào)轉(zhuǎn)發(fā)所有CSRs不同,非透明橋設(shè)備只接受針對本設(shè)備的CSR事務(wù),。其地址翻譯技術(shù)有直接地址翻譯和查表地址翻譯兩種,。
    在直接地址翻譯模式下,地址翻譯的過程是基于事務(wù)終結(jié)的BAR基址加上一個(gè)偏移量,。BARs中的基址翻譯寄存器可被用來設(shè)置這樣的翻譯,。圖3所示給出了從主設(shè)備端地址映射到從設(shè)備端地址的偏移過程。

 

    BARs則用一種特別的查找表來為落在它窗口中的事務(wù)進(jìn)行地址翻譯,。因?yàn)榈刂分械乃饕蚩赏ㄟ^編程來調(diào)節(jié)窗口大小,,因此,這種方法在本地地址到主機(jī)地址的映射中具有更高的靈活性,。通常索引被用來提供新內(nèi)存地址的高位比特(bits),。
2.2 處理器間的通信
    非透明橋允許橋兩邊的主機(jī)通過便箋寄存器、門鈴寄存器和心跳消息來交換一些狀態(tài)信息,。
    便箋寄存器在非透明橋的兩端都是可讀寫的,,但是,便箋寄存器的數(shù)量在具體的實(shí)現(xiàn)中是可以不同的,。他們可以被橋兩邊的設(shè)備用來傳送一些狀態(tài)信息,,也可作為通用的可讀可寫寄存器使用。
    門鈴寄存器被用來從非透明橋的一邊向另一邊發(fā)送中斷,。非透明橋的兩邊一般都有軟件可以控制的中斷請求寄存器和相應(yīng)的中斷屏蔽寄存器,。這些寄存器在非透明橋的兩邊都是可以被訪問的。
    心跳消息一般來自主設(shè)備端往從設(shè)備端的主機(jī),,可用來指示它還活著,。從設(shè)備主機(jī)可監(jiān)控主設(shè)備主機(jī)的狀態(tài),如果發(fā)現(xiàn)出錯(cuò),,它就可以采取一些必要的措施,。通過門鈴寄存器可以傳送心跳消息。當(dāng)從設(shè)備主機(jī)沒有收到一定數(shù)量預(yù)先規(guī)定好的心跳消息時(shí),,就可以認(rèn)為主設(shè)備的主機(jī)出錯(cuò)了。


3 基于PCI Express非透明橋的多主機(jī)系統(tǒng)
3.1 智能插卡
    在智能卡模式下,,智能插卡上的PCI Express非透明橋可以將IOP和Host CPU隔離開來,,但仍允許這兩個(gè)CPU通過一些特殊的寄存器進(jìn)行通信。圖4所示是智能插卡模式下的非透明橋的通信結(jié)構(gòu)。

3.2 雙主機(jī)模式
    非透明橋也可用在雙主機(jī)(Dual Host),、主機(jī)故障轉(zhuǎn)移(Host Failover)和負(fù)載分擔(dān)(Load-shar-ing)等應(yīng)用中,。圖5所示是將兩個(gè)Host CPU被非透明橋隔離開的結(jié)構(gòu)示意圖。

3.3 多主機(jī)模式
    在多主機(jī)系統(tǒng)中,,每一個(gè)主機(jī)都可以通過非透明橋接入到系統(tǒng)之中,,并且可以訪問所有的端點(diǎn)。在PCI的枚舉過程中,,每個(gè)端點(diǎn)都要和某個(gè)特定的CPU關(guān)聯(lián),,但在正常的操作過程中,依賴于非透明橋的地址翻譯能力,。所有的CPU都可以訪問所有的端點(diǎn),。圖6所示是主機(jī)系統(tǒng)的非透明橋結(jié)構(gòu)。

4 結(jié)束語
    非透明橋技術(shù)在PCI時(shí)代就已被應(yīng)用?,F(xiàn)在,,在PCI Express系統(tǒng)中也有類似的實(shí)現(xiàn)。相信在不遠(yuǎn)的將來,,從簡單的智能插卡到復(fù)雜的,、帶虛擬輸入輸出技術(shù)的多主機(jī)系統(tǒng),人們都將看到PCIExpress非透明橋的廣泛應(yīng)用,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。