• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于共享RAM的嵌入式多處理器通信方案*

      2018-01-19 05:31:25聶同攀
      通信技術(shù) 2018年1期
      關鍵詞:板卡仲裁端口

      聶同攀,譚 特,周 密

      (1.中航工業(yè)第一飛機設計研究院,陜西 西安 710089;2.北京航空航天大學 計算機學院,北京 100191;3.北京中航瑞博航空電子技術(shù)有限公司,北京 100085)

      在嵌入式系統(tǒng)設計中,有時需要兩個或多個嵌入式微處理器芯片之間交互信息。例如,在分布式傳感器網(wǎng)絡中,用于傳感器數(shù)據(jù)采集的處理器需要將數(shù)據(jù)傳送給用于數(shù)據(jù)集成﹑處理的主控制器。

      目前,大多數(shù)微處理器都采用串行接口通信,如以太網(wǎng)[1]﹑RS232[2]﹑電力線[3]等。串行通信有數(shù)據(jù)線少﹑實現(xiàn)簡單﹑十分適合遠距離通信等優(yōu)點。然而,串行通信方式也有諸多不利,其中一個主要的不足是串行通信協(xié)議普遍都引入了數(shù)據(jù)包頭部。在某些小數(shù)據(jù)包頻繁發(fā)送的應用中,數(shù)據(jù)包頭部的大小甚至大于真實負載數(shù)據(jù)的大小,大大降低了帶寬利用率。在基于IEEE1451.3[4]標準的智能變送器系統(tǒng)中,出于擴展IO引腳等原因,每個變送器網(wǎng)絡接口模塊(TNIM)連接多個變送器通道模塊(TCM)。如果TNIM和各個TCM之間通過串行總線通信,則TNIM每請求讀取某個TCM上的某個傳感器的數(shù)據(jù),首先需要在總線廣播TCM通道號和傳感器號。事實上,絕大多數(shù)傳感器數(shù)據(jù)都可以通過一位﹑兩位或四位表示,而TCM通道號和傳感器號需要數(shù)位表示。這樣真實數(shù)據(jù)負載的帶寬利用率將很低。

      如果TNIM和各個TCM共享同一RAM芯片,各個TCM的微處理器將采集到的傳感器數(shù)據(jù)寫到特定的內(nèi)存單元,那么TNIM只需要讀取特定的內(nèi)存單元,即可獲取特定TCM上的特定傳感器數(shù)據(jù)。這樣就避免了TNIM發(fā)送TCM通道號和傳感器號,從而提高了真實數(shù)據(jù)負載的帶寬利用率。

      文獻[5]提出了一種基于PCI總線的共享內(nèi)存多處理器通信方案。然而,由于PCI總線不支持TAS(Test And Set)原子操作,所以其自旋鎖的實現(xiàn)并不理想。

      基于上述問題,本文提出一種支持多個微處理器通過共享RAM進行通信的硬件接口設計方案。該接口設計方案采用一種基于菊花鏈的仲裁方式解決總線競爭問題。

      1 總體設計

      如引言中的分析及描述,本設計實現(xiàn)多個CPU通過共享的RAM通信。為實現(xiàn)這樣的通信機制,參與通信的每個CPU都應當和用作通信介質(zhì)的共享RAM相連接。

      一種可行的連接方案是將多個板卡通過“上行端口”和“下行端口”堆疊在一起。如圖1所示,主仲裁板卡的排孔向通信板卡提供連接到RAM芯片的接口。各個通信板卡除了擁有用于將本地CPU信號線和RAM信號線相連的“上行端口”外,還有一個“下行端口”。該端口可向下級板卡提供連接到RAM信號線的接口。圖1繪制了兩個通信板卡通過共享主仲裁器中的RAM芯片來相互通信。事實上,2號通信板卡的下行端口還可以堆疊更多的通信板卡。這樣的“堆疊設計”可以使系統(tǒng)有較好的硬件可擴展性。

      圖1 總體設計

      可以看出,上述方案中,各個參與通信的CPU實際上共享同一組連接到RAM芯片的總線。因此,必須提供仲裁機制,以防總線爭用的發(fā)生。

      本設計應用一種集中式的仲裁方式。如圖1所示,系統(tǒng)中有且只有一塊“主仲裁器卡”。這塊板卡上有用于多CPU通信的RAM芯片,以及用于解決總線競爭的“主仲裁器”。系統(tǒng)中其余的板卡為參與通信的“通信板卡”。每一塊通信板卡上除了有參與通信的本地CPU外,還有用于搶占共享總線使用權(quán)的“本地仲裁器”。本地仲裁器根據(jù)主仲裁器和上一級板卡提供的仲裁信號,決定本地CPU是否可以占用總線。如果仲裁信號有效,本地仲裁器將使能本地CPU和上行端口之間的三態(tài)門。這樣本地CPU的地址﹑數(shù)據(jù)和控制總線就和用于通信的共享RAM的相應信號線建立了連接。

      由于多個處理器共享總線,當本地仲裁器未取得總線使用權(quán)時,應當通知本地CPU進行等待(即在訪存指令的執(zhí)行期間內(nèi)加入若干個等待周期)。因此,如圖1所示,本地仲裁器有連接到本地CPU的wait信號線。

      本地仲裁器內(nèi)部提供若干個寄存器,本地CPU可以讀寫這些寄存器來配置或控制本地仲裁器。這些寄存器包括計時器以及其他用于實現(xiàn)特殊功能的寄存器。

      2 仲裁機制

      為防止因多處理器共享總線而帶來的總線競爭問題,本設計必須引入一種仲裁機制。而基于“菊花鏈”的仲裁機制十分適合本系統(tǒng)的多級堆疊結(jié)構(gòu)。

      菊花鏈仲裁是一種集中式仲裁機制,核心思想是通過由多個板卡級聯(lián)形成的“仲裁鏈”逐級傳播總線授權(quán)信號。處在仲裁鏈第一級板卡的本地仲裁器擁有最高仲裁優(yōu)先級。該最高優(yōu)先級的本地仲裁器根據(jù)本地CPU是否有訪問共享RAM的事務來決定是否占用總線,并為下級通信板卡生成仲裁信號(Arb1信號)。其余的下級n號板卡的本地仲裁器根據(jù)上一級仲裁器輸入的仲裁信號判斷總線是否已經(jīng)被前級高優(yōu)先級的通信板卡占用,并根據(jù)該輸入信號﹑本地CPU是否有訪存請求,為更下級n+1號板卡生成輸入仲裁信號(Arbn信號)。當某塊通信板卡獲得總線使用權(quán)后,它通過連接到主仲裁器的hold信號,向主控制器指示總線是否仍被占用。

      圖2顯示了本方案對這種仲裁機制的具體實現(xiàn)。主仲裁器向每一個本地仲裁器廣播state信號和CurrNum信號。每個本地仲裁器接收state和CurrNum信號,并逐級連接用于仲裁的Arb信號和Hold信號。這樣的設計使得系統(tǒng)可以十分方便地添加或刪除通信板卡。

      圖2 總線仲裁機制

      主仲裁器廣播的state信號標識總線狀態(tài),該信號的值僅由主仲裁器改變??偩€有兩種狀態(tài):事務狀態(tài)和仲裁狀態(tài)。在每一個時鐘周期,總線處于且僅處于一種狀態(tài)。在仲裁狀態(tài)對應的時鐘周期內(nèi),各個通信板卡搶占總線使用權(quán);而在事務狀態(tài)對應的時鐘周期內(nèi),獲得總線使用權(quán)的板卡執(zhí)行訪問共享RAM的操作。

      圖3反映了總線狀態(tài)的遷移過程。板卡上電或手動復位后,總線處于仲裁狀態(tài)。Hold信號是唯一影響總線狀態(tài)遷移的信號,由各個本地仲裁器輸出的Hold信號組合而成。在仲裁狀態(tài)對應的時鐘周期內(nèi),如果某個板卡有待處理的訪問RAM的操作并獲得了總線使用權(quán),則將Hold信號置為有效。該板卡的訪存事務完成后,將Hold置為無效。

      圖3 總線狀態(tài)遷移

      主仲裁器除了廣播用于標識總線狀態(tài)的State信號,還廣播CurrNum信號。該信號是為了實現(xiàn)循環(huán)優(yōu)先級。如果系統(tǒng)中各個板卡的優(yōu)先級是固定的,即處于仲裁鏈上端的板卡總是優(yōu)先于下端的板卡訪問共享的RAM,那么有可能出現(xiàn)下游板卡的數(shù)據(jù)率很低的情況。為了實現(xiàn)各個CPU可以公平訪問RAM,應當在系統(tǒng)運行過程中動態(tài)改變各個板卡的優(yōu)先級。

      本設計采用“優(yōu)先級輪轉(zhuǎn)”的策略動態(tài)調(diào)整各個板卡的優(yōu)先級,即每個通信板卡輪流獲得最高優(yōu)先級。主仲裁器在仲裁狀態(tài)對應的時鐘周期內(nèi),通過CurrNum信號標識當前最高優(yōu)先級板卡的編號。與CurrNum對應的板卡將作為仲裁鏈的第一級板卡,之后主仲裁器對CurrNum加1并取模。這樣就實現(xiàn)了最高優(yōu)先級在各個通信板卡之間的輪轉(zhuǎn)。

      3 仿真驗證及分析

      利用VHDL語言實現(xiàn)本設計中的主總裁器和本地仲裁器,并構(gòu)造了一個簡單的CPU,用于模擬真實嵌入式微處理器STM32f207芯片在訪問外接PSRAM時的時序。在此基礎上,構(gòu)造了四個CPU共享RAM的仿真測試系統(tǒng),并用xilinx的仿真工具ISim軟件進行了仿真驗證。

      圖4是仲裁算法的行為仿真結(jié)果,時鐘周期為10 ns。在從第3 625 ns(如波形圖部分的長豎線所示)開始的時鐘周期開始處,由于標識總線是否仍被占用的hold_out信號無效,所以標識總線狀態(tài)的arbstate_out信號遷移到了0x0000,即仲裁狀態(tài)。同時,用于廣播最高優(yōu)先級編號的currentnum_out信號加1,表示此時1號板卡的優(yōu)先級最高。

      圖4 仿真結(jié)果

      在該處于仲裁狀態(tài)的時鐘周期末,由于hold_out信號有效,所以arbstate_out又被遷移到了0x0001,即事務狀態(tài)。同時,與具體訪存事務相關的數(shù)據(jù)﹑地址和控制信號出現(xiàn)在了相關總線上。

      第3 705 ns時,訪存事務結(jié)束。在第3 715 ns的時鐘上升沿處,hold_out信號變?yōu)闊o效。至此,總線仲裁算法的邏輯得到驗證。

      從時序圖可以看出,仲裁算法導致了兩個時鐘周期的浪費。因此,總線的利用率U為:其中a表示一次完整的訪存事務所占的時鐘周期數(shù)。

      本通信方案的吞吐量和主仲裁器的時鐘頻率內(nèi)存芯片的訪存延遲有關。如果主仲裁器的始終頻率為fclk,且內(nèi)存芯片的訪存時間折合a個主仲裁器周期,那么最大吞吐量為:

      當主仲裁器的始終周期為50 MHz,且內(nèi)存芯片的訪存時間折合3個時鐘周期時,系統(tǒng)的最大吞吐量為10 MB。

      4 結(jié) 語

      本文為解決嵌入式系統(tǒng)多處理器通信中串行通信協(xié)議開銷較大的問題,提出了一種基于“共享RAM”的通信方案。這種通信方案幾乎不引入任何協(xié)議開銷,從而有效解決了串行通信傳輸?shù)托У膯栴}。此外,本文提出了一種“多級堆疊”的板卡連接結(jié)構(gòu),可使單個通信板卡十分方便地連接到通信系統(tǒng),從而使得系統(tǒng)有很好的可擴展性。在“多級堆疊”的基礎上,本文提出了一種基于“菊花鏈”的總線仲裁機制,解決了由多塊板卡同時訪問共享RAM時的沖突問題。未來,將進一步優(yōu)化此方案,并將此方案應用到實際工程。

      [1] 楊紫勝.嵌入式多功能接口轉(zhuǎn)換器的設計與實現(xiàn)[J].福建電腦,2008,24(06):154-155.

      YANG Zi-sheng.The Design and Implementation of Embedded Multi-purpose Connection Switch[J].FuJian Computer,2008,24(06):154-155.

      [2] 于海昕.嵌入式多功能Hub的設計與實現(xiàn)[D].廈門:廈門大學,2007.

      YU Hai-xin.The Design and Implementation of Embedded Multifunction Hub[D].Xiamen:Xiamen University,2007.

      [3] 鐘悠.基于VxWorks的嵌入式通信接口設備的設計與實現(xiàn)[D].西安:西北工業(yè)大學,2007.

      ZHONG You.The Design and Implementation of Embedded Communication Interface Device Base on VxWorks[D].Xi’an:Northwestern Polytechnical University,2007.

      [4] The Institute of Electrical and Electronics Engineers.Standard for a Smart Transducer Interface for Sensors and Actuators-Transducer to Microprocessor Communication Protocols and Transducer Electronic Data Sheet (TEDS)Formats for Distributed Multi-drop Systems,IEEE STD 1451.3-2003,IEEE Instrumentation and Measurement Society,TC-9[S].2004-03-31.

      [5] 徐恪,吳建平,喻中超等.一種基于總線的多處理器共享內(nèi)存機制[J].小型微型計算機系統(tǒng),2003,24(03):321-326.

      XU Ke,WU Jian-ping,YU Zhong-chao,et al.Multiprocessor Shared Memory Mechanism based on Bus[J].Small Microcomputer System,2003,24(03):321-326.

      猜你喜歡
      板卡仲裁端口
      一種端口故障的解決方案
      科學家(2021年24期)2021-04-25 13:25:34
      基于PCI9054的多總線通信板卡的研制
      基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
      一種多通道共享讀寫SDRAM的仲裁方法
      電子制作(2018年19期)2018-11-14 02:36:44
      ICSID仲裁中的有效解釋原則:溯源、適用及其略比
      端口阻塞與優(yōu)先級
      一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
      初識電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      生成樹協(xié)議實例探討
      兩岸四地間相互執(zhí)行仲裁裁決:過去、現(xiàn)在及將來(上)
      仲裁研究(2015年4期)2015-04-17 02:56:33
      昌邑市| 宜黄县| 白水县| 通河县| 江都市| 阜阳市| 青岛市| 汤阴县| 津市市| 青岛市| 商水县| 崇礼县| 莎车县| 德庆县| 绥宁县| 大同市| 永仁县| 南平市| 兴义市| 西贡区| 锦州市| 全州县| 绥中县| 西乡县| 崇左市| 洛扎县| 昌黎县| 蒙城县| 共和县| 望城县| 武山县| 三穗县| 皮山县| 新闻| 收藏| 南充市| 海盐县| 汶川县| 东乡族自治县| 洪雅县| 双桥区|