《電子技術應用》
您所在的位置:首頁 > 其他 > 业界动态 > 基于共享存储体的多处理器间数据交换的几种方法

基于共享存储体的多处理器间数据交换的几种方法

2009-05-06
作者:荣向军

  摘? 要: 一個大型復雜系統(tǒng)往往有多個處理器,處理器間要協(xié)同工作就必須交換數(shù)據。給出基于存儲體共享的處理器間交換數(shù)據的三種方法,即:基于雙口RAM的方法、基于單向或雙向FIFO的方法、基于總線開關加存儲器的方法。在某型合成孔徑雷達實時信號處理系統(tǒng)設計中,用這三種方法都取得了預期的結果。

  關鍵詞: 多處理器? 數(shù)據交換? 雙口RAM? 單向(或雙向)FIFO? 總線開關加存儲器

?

  合成孔徑雷達信號處理機系統(tǒng)的任務就是對雷達回波信號進行距離向和方位向的二維數(shù)據脈沖壓縮,從而得到地面目標的高分辨率圖像。該系統(tǒng)是一個實時信號處理系統(tǒng),系統(tǒng)數(shù)據量大,運算復雜。該系統(tǒng)A/D轉換模塊的采樣率為200Mbyte/s,雷達回波信號I/Q正交雙通道,每通道采樣2048點,脈沖重復頻率為1.4kHz,則數(shù)據率為5.6Mbyte/s。系統(tǒng)在算法上主要完成距離向和方位向的脈沖壓縮,還要完成距離徙動校正和運動補償。根據合成孔徑雷達成像算法,系統(tǒng)主要由A/D數(shù)據采集模塊、預處理模塊、標量處理模塊、矢量處理模塊、后處理模塊、中心控制及數(shù)據顯示模塊組成。其中A/D數(shù)據采集模塊的A/D轉換器用MAXIM公司的SPT7750芯片,其采樣率為200Mbyte/s,分辨率為8bit。預處理用TMS320C6201定點處理器,峰值運算速率為1600mips。標量處理模塊用多片ADSP2106X來完成。矢量處理模塊用LH9124/9320芯片組來完成。后處理用TMS320C31來完成。中心控制器用i386EX單片機來完成,圖象顯示及人機接口用具有ISA總線及PCI總線的ALL IN ONE 來完成。顯而易見,這是一個多處理器系統(tǒng)。

  作為一個系統(tǒng),多個處理器必須交換數(shù)據,系統(tǒng)才能協(xié)同并行工作。處理器間交換數(shù)據可以有兩種方法,一種是利用標準總線結構實現(xiàn)板間數(shù)據傳輸,如VME、Compact PCI總線等,利用這種方法傳輸數(shù)據要求本板有總線控制器接口電路,還要有0槽卡,系統(tǒng)復雜,成本高,這里不作討論。另一種是利用共享存儲體的方法,這是本文討論的重點。兩個處理器要交換數(shù)據則必須要有兩個處理器都可以訪問的共享存儲體,一個處理器將數(shù)據寫入存儲體,而由另一處理器將數(shù)據時分讀出,這種方法可以實現(xiàn)處理器總線的隔離,使兩個處理器間可以有效地交換數(shù)據,實現(xiàn)數(shù)據共享。兩個處理器要共同訪問一個存儲體有這樣幾種方法,其一是雙口RAM法、其二是先進先出的FIFO法、其三是總線開關加存儲器法。這三種方法所要注意的問題是處理器間信號的握手,即當一個處理器給存儲體寫入數(shù)據后產生旗標通知另一處理器將數(shù)據取走。另一個問題是兩個處理器訪問同一存儲單元可能產生的沖突。下面就分別討論這三種方法。

1 用雙口RAM實現(xiàn)兩個處理器間數(shù)據交換

  雙口RAM是一種雙端口器件,允許兩個處理器各訪問一個端口,每一個處理器都可以將雙口RAM看作自己的本地存儲器。雙口RAM的每個端口都有各自的數(shù)據、地址、控制總線,允許處理器對存儲器的任何地址執(zhí)行隨機讀寫操作。當兩個處理器同時對同一地址單元操作(如同時寫、或一個寫一個讀),雙口RAM會自動產生BUSY信號表示沖突。一般此BUSY信號接至處理器的READY端,使其讀或寫時序延長,最終讀出或寫入。

  IDT公司的IDT7133是一種典型的雙口RAM芯片,其管腳分布如圖1所示。其中IO0~15表示數(shù)據總線、A0~10表示地址總線、R/W、CE、OE分別表示讀/寫、片選、讀選通,BUSY是IDT7133的輸出信號表示沖突,L、R分別表示左右端口,讀寫管腳中的L、U表示16Bit數(shù)據的低字節(jié)、高字節(jié)的區(qū)分,字母上方的—號表示該信號低電平有效。

?

  作為雷達數(shù)字信號處理機的一個子系統(tǒng)的一部分,筆者設計了一個電路用于ISA總線和i386EX單片機交換數(shù)據,其示意性原理圖如圖1所示。

  其中EXD0~15和i386EX單片機的數(shù)據總線相連,EXB1~11和i386EX的地址總線相連,EXOE#、EXWRL#、EXWRH#由i386EX狀態(tài)信號、讀寫信號組合產生,EXCS#由i386EX高端地址譯碼產生。ISAD0~15和ISA數(shù)據總線相連,ISAB1~11和ISA的地址總線相連,ISAOER#、ISAWRL#、ISAWRH#、ISACS#是由ISA總線的地址、讀寫、狀態(tài)組合產生,BUSY驅動i386EX的READY信號,結果表明i386EX和ISA總線間可以有效可靠地交換數(shù)據。

2 用FIFO實現(xiàn)兩個處理器間數(shù)據交換

  實現(xiàn)兩個處理器間數(shù)據交換的另一種方法是FIFO結構。FIFO是一種先進先出的結構,較之雙口RAM,它有如下特點:第一它無地址線,布線簡單;第二它不能像雙口RAM一樣可以對任意地址單元操作,實現(xiàn)隨機存取,只能是順序存取。FIFO只能實現(xiàn)塊操作,其讀出數(shù)據的順序和寫入的順序是一樣的。FIFO有單向雙向之分和同步異步之分。單向FIFO只能向一個方向傳輸數(shù)據,雙向FIFO可以向兩個方向傳輸數(shù)據。目前FIFO的內部結構是由雙口RAM加驅動雙口RAM 地址的計數(shù)器構成。同步FIFO 是由專用時鐘管腳信號來使計數(shù)器翻轉,片選和讀寫是使能信號;異步FIFO是由讀寫信號使計數(shù)器翻轉。IDT7205(CY7C460)是單向異步FIFO的典型芯片,其管腳分布如圖2所示。

?

  D0~8是數(shù)據輸入總線,Q0~8是數(shù)據輸出總線,R、W是讀、寫控制端,XI、XO是級聯(lián)控制端,HF、FF是FIFO狀態(tài)滿標志,EF是FIFO狀態(tài)空標志。根據HF、FF狀態(tài),寫處理器就可以知道FIFO是否已滿,根據EF狀態(tài)讀處理器就可以知道FIFO里是否有數(shù)據。

  筆者設計了一個用于TMS320C30傳輸數(shù)據給i386EX的電路,和FIFO相關部分的示意性原理圖如圖2。如果要反向傳輸,F(xiàn)IFO的輸入輸出要交換位置,邏輯要作適當?shù)男薷摹F渲蠿D0~7和C30的副總線相連接,TMS_WRITE、TMS_RESET由C30副總線的觸發(fā)、讀寫及地址譯碼組合產生,TMS_FULL信號驅動C30的XRDY信號,以使FIFO滿時,寫總線周期延長。EXD0~7和i386EX單片機的數(shù)據總線相連,EX_READ是由i386EX狀態(tài)信號、讀寫信號及地址譯碼組合產生,EX_EMPTY供i386EX單片機的I/O口判讀。

3 用總線開關加存儲器實現(xiàn)兩個處理器間數(shù)據交換

  第三種方法是總線開關法。對于像圖像處理等需要大量交換數(shù)據的應用場合,用雙口RAM或FIFO方法就不太合適。雙口RAM和FIFO一般容量較小,而且價格昂貴。比如說常用的雙口RAM? IDT7133 只有32Kbit(2K×16bit),而單向FIFO IDT7205也只有8K×9bit。用總線開關外加大容量存儲器很適合這種大容量的數(shù)據傳輸。

  IDT74FST163212是一種典型的總線開關芯片,其管腳分布如圖3所示。

?

????其中S0~2是總線開關控制端,A、B、C、D是四個總線端口,每個總線端口有12根線組成,由S0~2控制A、B和C、D總線端口的導通或不導通。例如當S2、S1、S0為000時,總線間不導通,呈高阻態(tài);當為001時,A總線端口和B總線端口導通,即A1和B1導通、A2和B2導通……;由于總線開關是由柵極可控的場效應管組成,信號無方向性,導通電阻很小,只有幾個或十幾個歐姆。

??? 筆者設計了一個電路,由TMS320C30和一塊FPGA作主控器共同訪問一片存儲器,由于線較多,這里僅給出其示意性原理圖見圖4。由TMS320C30將數(shù)據塊寫入存儲器,再由FPGA將數(shù)據讀走。

?

??? 利用共享存儲體實現(xiàn)處理器間的數(shù)據交換是一種簡單易行的方法。用共享存儲體實現(xiàn)處理器間數(shù)據交換的各種方法中,雙口RAM、FIFO適用于小容量交換數(shù)據的場合,總線開關加存儲器的結構適用于大容量數(shù)據交換的場合。

?

參考文獻

1 TMS320C3X USER GUIDE.TEXAS INSTRUMENTS 1992

2 Intel386EX Embedded Microprocessor User′S Manual.Intel 1995

3 IDT 集成電路手冊.Integrated Device Technology,Inc? 1996

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。