雙機通信在CPCI總線(xiàn)上的實(shí)現
——
關(guān)鍵詞:CPCI總線(xiàn) 地址映射 PCI Bridge 單板計算機 性能優(yōu)化
在電信、電力、國防等應用領(lǐng)域中,經(jīng)常要求其所用設備有極高的實(shí)時(shí)性。當需要在各個(gè)設備間進(jìn)行大容量的信息交換時(shí),傳統的網(wǎng)絡(luò )包交換模式已不能很好地滿(mǎn)足實(shí)時(shí)性的要求。而借助于CPCI總線(xiàn),兩個(gè)設備可以互訪(fǎng)對方的內存,具有傳輸速度快、傳輸容量大和高可靠性等特點(diǎn),非常適合大容量的信息傳遞。國家數字交換系統工程技術(shù)研究中心承擔的國家863計劃項目——“中國第三代移動(dòng)通信系統”CDMA2000系統集成就選擇基于CPCI總線(xiàn)的多SBC平臺。各個(gè)SBC間的通信效率直接決定了整個(gè)系統性能的高低。目前常用的實(shí)時(shí)操作系統如VxWorks、Lynx等,都針對CPCI總線(xiàn)實(shí)現了消息隊列,可用于SBC間的消息通信。但VxWorks、Lynx中消息傳遞的實(shí)現方式很不靈活,一般是通過(guò)在一個(gè)特定的SBC(通常為system board)中開(kāi)啟一塊共享內存,其他各個(gè)SBC(通常為non system board)通過(guò)對共享內存的讀寫(xiě)交換信息;每完成一次兩個(gè)non system SBC間的信息交換,都要進(jìn)行一次PCI讀寫(xiě)操作,效率不高。另外VxWorks、Lynx中的消息長(cháng)度都有一個(gè)最大值,當要進(jìn)行大數據量(如1GB的內存數據庫)的信息傳輸時(shí),操作系統提供消息傳遞機制也無(wú)能為力。而以上這些問(wèn)題,都可以通過(guò)任意兩個(gè)SBC間的直接內存訪(fǎng)問(wèn)得到解決。本文首先介紹了PCI Bridge的工作原理;然后以Motorola公司提供的CPX8000系列工控機為例,討論了兩個(gè)SBC是如何基于背板(Backplane)上的CPCI總線(xiàn),并利用PCI Bridge的地址映射機制,通過(guò)互訪(fǎng)內存的方式最終實(shí)現雙機通信;最后介紹了實(shí)際應用時(shí)應注意的性能優(yōu)化問(wèn)題。
1 PCI Bridge的工作原理
在簡(jiǎn)單的計算機系統中,其擁有的外部設備較少,單級總線(xiàn)結構便能滿(mǎn)足系統的需要。但是由于單個(gè) PCI總線(xiàn)可支持的 PCI 設備數量有電氣限制,對擁有大量外設的計算機系統而言,單級總線(xiàn)結構已不能滿(mǎn)足系統的要求,因此便產(chǎn)生了橋接設備。通過(guò)PCI-to-PCI Bridge可擴展出新的PCI總線(xiàn),通過(guò)PCI-to-ISA Bridge可擴展出ISA總線(xiàn)。借助PCI Bridge這些特殊的PCI設備,系統中各級總線(xiàn)被粘和在一起,使整個(gè)系統成為一個(gè)有機整體。
每個(gè)PCI設備都有自己的PCI I/O空間、PCI內存空間和PCI配置空間(configuration space)。PCI設備的設備驅動(dòng)程序對PCI配置空間進(jìn)行初始化設置后,各個(gè)智能控制器如CPU、DMA控制器等,可以對PCI設備的PCI I/O空間、PCI內存空間進(jìn)行訪(fǎng)問(wèn)。在圖1中,CPU若要訪(fǎng)問(wèn)網(wǎng)卡,首先會(huì )在PCI Bus0上生成一個(gè)物理地址,這個(gè)地址經(jīng)PCI-to-PCI Bridge的過(guò)濾及轉換后,在PCI Bus1上產(chǎn)生一PCI Bus地址,網(wǎng)卡通過(guò)地址譯碼,響應對這個(gè)地址的訪(fǎng)問(wèn)。

圖1 基于PCI的系統
從這個(gè)過(guò)程可以了解到,PCI-to-PCI Bridge有兩種基本的功能:
(1)地址映射功能。雖然同是對網(wǎng)卡進(jìn)行訪(fǎng)問(wèn),但PCI Bus0與PCI Bus1上的地址意義是不同的。兩個(gè)地址分屬各自的地址空間,通過(guò)PCI-to-PCI Bridge實(shí)現兩個(gè)地址的映射。根據這兩個(gè)地址是否相同,可將PCI-to-PCI Bridge區分為兩種類(lèi)型:
評論