日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB25年11月
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計算2025年會
2025工業(yè)安全大會
CAIAC 2025
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

雙機通信在CPCI總線上的實現(xiàn)
  • 企業(yè):控制網(wǎng)     領(lǐng)域:PLC /PAC/PCC/RTU    
  • 點擊數(shù):2533     發(fā)布時間:2005-11-03 18:06:26
  • 分享到:
介紹了PCI Bridge的工作原理,基于地址映射機制提出了SBC(Single Board Computer)間直接內(nèi)存訪問的新方案。該方案可將板間通信效率提高6倍以上,并可服務(wù)于各種高層應(yīng)用。



  在電信、電力、國防等應(yīng)用領(lǐng)域中,經(jīng)常要求其所用設(shè)備有極高的實時性。當(dāng)需要在各個設(shè)備間進行大容量的信息交換時,傳統(tǒng)的網(wǎng)絡(luò)包交換模式已不能很好地滿足實時性的要求。而借助于CPCI總線,兩個設(shè)備可以互訪對方的內(nèi)存,具有傳輸速度快、傳輸容量大和高可靠性等特點,非常適合大容量的信息傳遞。國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心承擔(dān)的國家863計劃項目――“中國第三代移動通信系統(tǒng)”CDMA2000系統(tǒng)集成就選擇基于CPCI總線的多SBC平臺。各個SBC間的通信效率直接決定了整個系統(tǒng)性能的高低。目前常用的實時操作系統(tǒng)如VxWorks、Lynx等,都針對CPCI總線實現(xiàn)了消息隊列,可用于SBC間的消息通信。但VxWorks、Lynx中消息傳遞的實現(xiàn)方式很不靈活,一般是通過在一個特定的SBC(通常為system board)中開啟一塊共享內(nèi)存,其他各個SBC(通常為non system board)通過對共享內(nèi)存的讀寫交換信息;每完成一次兩個non system SBC間的信息交換,都要進行一次PCI讀寫操作,效率不高。另外VxWorks、Lynx中的消息長度都有一個最大值,當(dāng)要進行大數(shù)據(jù)量(如1GB的內(nèi)存數(shù)據(jù)庫)的信息傳輸時,操作系統(tǒng)提供消息傳遞機制也無能為力。而以上這些問題,都可以通過任意兩個SBC間的直接內(nèi)存訪問得到解決。本文首先介紹了PCI Bridge的工作原理;然后以Motorola公司提供的CPX8000系列工控機為例,討論了兩個SBC是如何基于背板(Backplane)上的CPCI總線,并利用PCI Bridge的地址映射機制,通過互訪內(nèi)存的方式最終實現(xiàn)雙機通信;最后介紹了實際應(yīng)用時應(yīng)注意的性能優(yōu)化問題。

  1 PCI Bridge的工作原理

  在簡單的計算機系統(tǒng)中,其擁有的外部設(shè)備較少,單級總線結(jié)構(gòu)便能滿足系統(tǒng)的需要。但是由于單個 PCI總線可支持的 PCI 設(shè)備數(shù)量有電氣限制,對擁有大量外設(shè)的計算機系統(tǒng)而言,單級總線結(jié)構(gòu)已不能滿足系統(tǒng)的要求,因此便產(chǎn)生了橋接設(shè)備。通過PCI-to-PCI Bridge可擴展出新的PCI總線,通過PCI-to-ISA Bridge可擴展出ISA總線。借助PCI Bridge這些特殊的PCI設(shè)備,系統(tǒng)中各級總線被粘和在一起,使整個系統(tǒng)成為一個有機整體。
  每個PCI設(shè)備都有自己的PCI I/O空間、PCI內(nèi)存空間和PCI配置空間(configuration space)。PCI設(shè)備的設(shè)備驅(qū)動程序?qū)CI配置空間進行初始化設(shè)置后,各個智能控制器如CPU、DMA控制器等,可以對PCI設(shè)備的PCI I/O空間、PCI內(nèi)存空間進行訪問。在圖1中,CPU若要訪問網(wǎng)卡,首先會在PCI Bus0上生成一個物理地址,這個地址經(jīng)PCI-to-PCI Bridge的過濾及轉(zhuǎn)換后,在PCI Bus1上產(chǎn)生一PCI Bus地址,網(wǎng)卡通過地址譯碼,響應(yīng)對這個地址的訪問。



圖1 基于PCI的系統(tǒng)

  從這個過程可以了解到,PCI-to-PCI Bridge有兩種基本的功能:

  (1)地址映射功能。雖然同是對網(wǎng)卡進行訪問,但PCI Bus0與PCI Bus1上的地址意義是不同的。兩個地址分屬各自的地址空間,通過PCI-to-PCI Bridge實現(xiàn)兩個地址的映射。根據(jù)這兩個地址是否相同,可將PCI-to-PCI Bridge區(qū)分為兩種類型:

  ?PCI-to-PCI Transparent Bridge。PCI Bridge不對PCI Bus0上的地址進行轉(zhuǎn)換,直接將其映射到PCI Bus1上。PCI Bus0與PCI Bus1上的地址是相同的。

  ?PCI-to-PCI Non Transparent Bridge。PCI Bus0上的地址必須經(jīng)過PCI Bridge的轉(zhuǎn)換,才能映射到PCI Bus1上。PCI Bus0與PCI Bus1上的地址是不同的。

  (2)地址過濾功能。PCI Bridge在把PCI Bus0上的地址向下游總線(ISA Bus、PCI Bus1)傳遞時,具有選擇性。在圖1中,CPU在PCI Bus0上所產(chǎn)生的地址,只有對SCSI和
  Ethernet的訪問,PCI-to-PCI Bridge才予以接收;而對于PCI Bus0的其他地址,PCI-to-PCI Bridge均不予響應(yīng)。每一個PCI Bridge所響應(yīng)的地址范圍,可形象地稱其為此PCI Bridge的地址窗口,只有當(dāng)上游總線的地址落進PCI Bridge的地址窗口中,PCI Bridge才響應(yīng)此地址并向下游總線傳遞。

  2 雙機通信的具體實現(xiàn)

  本節(jié)以Motorola公司提供的CPX8000系列工控機為例,介紹了如何通過CPCI總線實現(xiàn)雙機間的通信。如圖2所示,兩個SBC通過背板上的CPCI總線實現(xiàn)了物理上的連接。如果兩個SBC能夠互相訪問對方的內(nèi)存,就可實現(xiàn)兩者間的數(shù)據(jù)交流。以系統(tǒng)處理機板(System Processor Board,又稱主機板)訪問非系統(tǒng)處理機板(Non-system Processor Board, 又稱子機板)內(nèi)存為例,介紹雙機通信的具體實現(xiàn)。本方案已在Lynx及VxWorks實時操作系統(tǒng)上實現(xiàn)。

  在圖2中,主機板CPU若要訪問子機板中的1MB內(nèi)存單元,必須將這塊內(nèi)存映射到主機板CPU的虛擬地址空間中,可以通過對主機板、子機板、主機板與子機板的接口配置來達(dá)到目的。此1MB的內(nèi)存單元可被映射到不同的地址空間(如CPU虛擬地址空間、物理地址空間、本地PCI地址空間、系統(tǒng)CPCI地址空間等),映射地址也各不相同。在圖2中,對于此1MB內(nèi)存的起始單元在不同地址空間中的映射地址,分別用符號A1、A2、…A7表示。



圖2 數(shù)據(jù)通信原理圖

  2.1 子機板的配置

  (1)調(diào)用內(nèi)核內(nèi)存分配函數(shù)申請1MB的內(nèi)核虛擬地址空間,得到申請空間的開始地址A7。

  (2)根據(jù)操作系統(tǒng)的內(nèi)存映射關(guān)系,得到虛擬地址A7的物理映射地址A6。

  (3)Raven ASIC是一個Host-to-PCI Bridge,因為Processor Bus不是一個標(biāo)準(zhǔn)總線,所以通過Raven將其轉(zhuǎn)換為PCI總線,以掛接各類PCI設(shè)備。CPU和Raven一起構(gòu)成了一組套片(chipset),配合使用。根據(jù)Raven的設(shè)置,獲得物理地址A6在Local PCI Bus的映射地址A5。

  (4)21554是一PCI-to-PCI Non Transparent Bridge,并可進行雙向數(shù)據(jù)傳遞。通過其內(nèi)部的兩個配置寄存器,將其地址窗口的大小設(shè)為1MB;地址窗口的起始地址在Local PCI Bus端設(shè)為A5。
 
  2.2 主機板的配置

  (1)申請大小1MB的內(nèi)核虛擬地址空間,得到其開始地址A1。

  (2)根據(jù)操作系統(tǒng)的內(nèi)存映射關(guān)系,得到虛擬地址A1的物理映射地址A2。
 
  (3)根據(jù)Raven的設(shè)置,得到物理地址A2在Local PCI Bus上的映射地址A3。
 
  (4)21154是一PCI-to-PCI Transparent Bridge,它也可以在兩個方向上進行數(shù)據(jù)訪問。設(shè)置其內(nèi)部的兩個配置寄存器,將其地址窗口的大小設(shè)為1MB;地址窗口的起始地址設(shè)置為A3。由于21154的透明性,地址A3與其在System CPCI Bus端的映射地址A4的值是相同的。

  2.3 主機板與子機板的接口配置

  在主機板端對子機板進行配置,設(shè)置21554的配置寄存器,將其在System CPCI Bus端的地址窗口開始地址設(shè)為A4。由于在Local PCI Bus端的地址窗口起始地址已設(shè)為A5,所以將地址A4映射到了地址A5。可以看到,由于21554的非透明性,使主機板與子機板的地址空間相互隔離,各自可獨立分配,并在System CPCI Bus級實現(xiàn)了對接。在主機板CPU看來,整個子機板與主機板網(wǎng)卡一樣,都是掛在主機板Local PCI Bus下的一個外設(shè)。對子機板的訪問與對主機板網(wǎng)卡的訪問方式是一樣的,沒有什么不同。

  2.4 地址轉(zhuǎn)換流程

  當(dāng)所有的配置完成后,主機板CPU只對地址A1進行讀寫操作,便可實現(xiàn)對子機板1MB內(nèi)存起始單元的訪問;對1MB內(nèi)存中其他單元的訪問,只要將地址A1加上相應(yīng)的偏移量即可。通過下面的地址轉(zhuǎn)換流程,可以清楚地看到各級地址是如何通過一級級映射,最終命中指定單元的。

  主機板CPU給出虛擬內(nèi)存訪問地址A1→主機板物理地址A2→主機板Local PCI Bus地址A3→System CPCI Bus地址A4→子機板Local PCI Bus地址A5→子機板物理地址A6→經(jīng)Falcon Memory Controller譯碼后,選中所申請的1MB內(nèi)存的起始單元。

  從上述介紹可以看出,要想實現(xiàn)雙機的內(nèi)存互訪,關(guān)鍵是要進行正確的地址映射。當(dāng)要實現(xiàn)多個SBC間的相互訪問時,地址的映射會更復(fù)雜,需要對操作系統(tǒng)的地址空間分配、各個SBC的PCI-to-PCI Bridge設(shè)置、System CPCI Bus地址空間分配等進行通盤考慮。



圖3 在兩SBC間進行讀操作時的時間圖



圖4 在兩SBC間進行寫操作時的時間圖

  3 性能優(yōu)化

  圖3、圖4是用VMETRO的總線分析儀截獲的數(shù)據(jù)。分別是在兩個SBC間進行讀寫訪問時,連續(xù)進行100 Byte傳輸?shù)臅r間圖。

  從圖3可以看出,每進行一次4Byte的讀操作,要花費956.8+4×149.5+179.4=1734.2ns,這相當(dāng)于1734.2ns/29.9ns=58 PCI clock cycles。

  從圖4可以看到,第一個4Byte的寫操作花費了159.5ns,接著是兩次猝發(fā)傳送,隨后一個4Byte寫操作花費了119.6ns。進行一次4Byte的寫操作平均花費(159.5ns+2×29.9ns+119.6ns)/(4×29.9ns)=11 PCI clock cycles。

  對比讀寫兩種訪問方式可以看出,寫操作比讀操作的效率要高得多。這主要有以下一些原因:

  (1)當(dāng)PCI上的一個主設(shè)備發(fā)起對一個目標(biāo)設(shè)備的訪問時,讀和寫操作的完成時間差別很大。目前的PCI設(shè)備中一般都有一個用于存儲器寫的轉(zhuǎn)發(fā)(post)緩沖器。若要進行寫操作(如圖2中主機板對子機板的寫操作),主設(shè)備只需將其寫緩沖區(qū)數(shù)據(jù)復(fù)制到目標(biāo)設(shè)備的轉(zhuǎn)發(fā)緩沖器中,便認(rèn)為操作完成。例如在圖2中,主機板的Raven只要將數(shù)據(jù)發(fā)給21154,便認(rèn)為寫操作完成,后續(xù)的數(shù)據(jù)傳輸由21154驅(qū)動完成。可以看到,寫操作在目的總線上(子機板的Process Bus)完成之前可以先在源總線上(主機板的Local PCI Bus)完成,實際上是寄存器對寄存器的操作。而要實現(xiàn)一個讀操作,則必須經(jīng)過存儲器本身的訪問和各級PCI接口的邏輯延遲才可完成。與寫操作相比,讀操作在源總線上完成之前必須先在目的總線上完成,這導(dǎo)致了讀操作的效率很低。

  (2)從圖3、圖4中可以看到,PCI設(shè)備還可進行寫操作的猝發(fā)操作,但讀操作則無法進行。這是由于猝發(fā)操作只有在前一事務(wù)是寫事務(wù)時才能實現(xiàn)。猝發(fā)傳送取消了FRAME#、AD、C/BE#、IRDY#、TRDY#、DEVSEL#等總線信號的周轉(zhuǎn)周期,實現(xiàn)了每一個PCI clock cycle進行一次數(shù)據(jù)傳送。

  (3)猝發(fā)傳送操作不可能無限制地進行下去。連續(xù)進行猝發(fā)傳送的次數(shù)與轉(zhuǎn)發(fā)緩沖器的大小、Latency Timer的取值、總線的繁忙狀況都有關(guān)系。

  由于以上原因,在兩個SBC間進行數(shù)據(jù)傳送時,應(yīng)該采用如下方式:

  (1)提供數(shù)據(jù)的SBC應(yīng)將數(shù)據(jù)直接寫到消費數(shù)據(jù)的SBC內(nèi)存中;而不是提供者將數(shù)據(jù)放在本地內(nèi)存,再由消費者經(jīng)過PCI讀操作來實現(xiàn)。也就是說,總是進行PCI寫操作。

  (2)當(dāng)需要在多個SBC間進行數(shù)據(jù)互傳時,要合理地設(shè)置Latency Timer的取值,以使各SBC公平使用PCI總線資源。

  考慮兩個子機板間的通信實現(xiàn)。若采用操作系統(tǒng)提供的消息傳遞機制,數(shù)據(jù)提供者必須先將數(shù)據(jù)寫到主機板,數(shù)據(jù)消費者再從主機板讀取數(shù)據(jù)。對一個4 Byte的數(shù)據(jù)傳輸來說,平均要花費58+11=69 PCI clock cycles。若采用本文提供的方法,提供數(shù)據(jù)的SBC將數(shù)據(jù)直接寫到消費數(shù)據(jù)的(接上頁) SBC內(nèi)存中,則傳輸一個4 Byte的數(shù)據(jù),平均只需11 PCI clock cycles。可知,后者比前者快了69/11≈6.3倍,極大提高了傳輸效率。

  參考文獻(xiàn)

  1 Motorola.MCP750 Series Single Board Computer Programmer’s Reference Guide. Motorola, 2001

  2 Motorola. CompactPCI Single Board Computer Programmer’s Reference Guide. Motorola, 2001

  3 Intel.21554 PCI-to-PCI Bridge for Embedded Applications Hardware Reference Manual. Intel,1998

  4 Intel. 21154 PCI-to-PCI Bridge Configuration Application Note. Intel,1998

  5 Wind River.VxWorks Programmer´s Guide. Wind River Sys-tems Inc,1998

  6 Lynx. Lynx Device Driver Service Manual. Lynx, 2000

  7 T.Shanley, D.Anderson. PCI System Architecture(4th Edition).USA: Addison Wesley   Longman,1999

熱點新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
国产精品自拍一区| 精品国产三级a∨在线观看| 国产91精品露脸国语对白| 九九热国产视频| 国产伦久视频免费观看视频| 国产美女在线一区二区三区| 色综合久久天天综合绕观看| 国产91精品露脸国语对白| 亚州视频一区二区| 国产一区二区精品久| 成人免费高清视频| 免费国产在线观看不卡| 亚洲不卡一区二区三区在线| 国产成人精品综合在线| 国产网站在线| 91麻豆精品国产自产在线| 四虎影视精品永久免费网站| 久久国产精品永久免费网站| 一本高清在线| 午夜家庭影院| 亚洲精品影院一区二区| 久久99中文字幕| 欧美α片无限看在线观看免费| 四虎影视久久久免费| 免费毛片基地| 国产欧美精品午夜在线播放| 日本免费区| 欧美大片aaaa一级毛片| 久久精品成人一区二区三区| 欧美另类videosbestsex久久| 国产成人女人在线视频观看| 青青久久精品国产免费看| 精品国产亚一区二区三区| 国产一区二区精品久| 国产激情一区二区三区| 国产伦久视频免费观看视频| 色综合久久天天综合观看| 国产91素人搭讪系列天堂| 国产网站免费观看| 日韩专区一区| 91麻豆国产| 久久久成人影院| 日本伦理网站| 亚洲精品中文一区不卡| 国产麻豆精品高清在线播放| 亚洲wwwwww| 日韩男人天堂| 欧美国产日韩在线| 久久精品成人一区二区三区| 黄色福利片| 国产国语在线播放视频| 久久国产精品自线拍免费| 999久久久免费精品国产牛牛| 日本伦理片网站| 日本特黄特色aaa大片免费| 国产综合成人观看在线| 欧美1区| 国产不卡福利| 天堂网中文在线| 日本免费乱人伦在线观看| 日韩中文字幕一区| 国产视频久久久| 一级女性大黄生活片免费| 国产91精品露脸国语对白| 国产麻豆精品高清在线播放| 天天色色网| 天堂网中文在线| 久久国产影院| 日本免费看视频| 成人高清免费| 黄色短视屏| 国产网站在线| 国产不卡高清| 高清一级淫片a级中文字幕| 国产成人啪精品视频免费软件| 久久精品免视看国产成人2021| 成人高清视频在线观看| 成人高清视频在线观看| 亚洲女人国产香蕉久久精品| 精品视频一区二区| 一级女人毛片人一女人| 亚洲爆爽| 国产一区二区精品久久91| 久久国产一区二区| 国产精品免费久久| 香蕉视频亚洲一级| 四虎影视久久久免费| 亚洲爆爽| 99久久精品费精品国产一区二区| 九九久久99| 青草国产在线观看| 亚洲精品中文字幕久久久久久| 久久久成人影院| 午夜激情视频在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 香蕉视频久久| 欧美α片无限看在线观看免费| 久久国产影院| 四虎影视精品永久免费网站| 99色播| 黄视频网站免费看| 精品在线观看一区| 尤物视频网站在线观看| 欧美激情伊人| 国产成a人片在线观看视频| 麻豆系列 在线视频| 精品视频在线观看一区二区三区| 成人影院一区二区三区| 国产欧美精品| 999久久久免费精品国产牛牛| 国产一区二区高清视频| 毛片高清| 精品国产香蕉在线播出| 亚欧视频在线| a级黄色毛片免费播放视频| 黄色短视屏| 国产成人精品综合| 国产精品免费精品自在线观看| 天天做日日干| 精品国产一区二区三区精东影业| 久久国产精品永久免费网站| 欧美一级视频高清片| 欧美电影免费看大全| 高清一级做a爱过程不卡视频| 国产精品1024在线永久免费| 精品久久久久久中文| 久久精品大片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 黄视频网站在线观看| 久久久久久久网| 午夜精品国产自在现线拍| 免费的黄色小视频| 91麻豆精品国产自产在线 | 欧美一级视频高清片| 九九久久99综合一区二区| 国产精品自拍亚洲| 欧美大片aaaa一级毛片| 亚洲精品中文一区不卡| 色综合久久天天综线观看| 日本伦理网站| 欧美电影免费看大全| 国产高清在线精品一区a| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美爱爱网| 国产成人精品影视| a级毛片免费全部播放| 欧美大片一区| 国产一区二区精品| 日本免费看视频| 久久国产一久久高清| 黄视频网站在线免费观看| 99久久精品国产麻豆| 九九九网站| 久久99中文字幕| 91麻豆tv| 麻豆污视频| 亚飞与亚基在线观看| 精品视频免费在线| 国产91素人搭讪系列天堂| 精品国产香蕉伊思人在线又爽又黄| 国产不卡在线看| 美女免费精品视频在线观看| 日本伦理片网站| 国产美女在线一区二区三区| 久久精品免视看国产明星| 99久久精品国产麻豆| 久久国产一久久高清| 韩国三级一区| 欧美大片a一级毛片视频| 国产一级强片在线观看| 国产极品白嫩美女在线观看看| a级精品九九九大片免费看| 国产不卡在线观看视频| 国产福利免费观看| 国产伦精品一区二区三区无广告 | 91麻豆精品国产自产在线 | 日本特黄特黄aaaaa大片 | 黄视频网站免费观看| 你懂的国产精品| 99久久网站| 99久久精品国产高清一区二区| 欧美日本免费| 天天做日日爱夜夜爽| 亚飞与亚基在线观看| 亚洲www美色| 免费的黄色小视频| 久久久久久久男人的天堂| 91麻豆爱豆果冻天美星空| 欧美日本免费| 国产韩国精品一区二区三区| 日本特黄一级| 精品国产三级a| 亚洲 激情| 欧美一级视| 亚州视频一区二区| 久草免费在线色站| 日本免费区| 国产不卡在线看| 日本伦理片网站|