一種多處理器并行計算機系統的設計
3.3 共享存儲區(qū)的網絡心跳
在多CPU 系統中,所有的處理器只有當共享存儲區(qū)域初始化后才可以通過網絡進行通信,所以各個處理器需要知道共享網絡是否處于激活狀態(tài)或是就緒狀態(tài)。在這里采用心跳檢測的方法使各個處理器得知網絡的狀態(tài)。
心跳(heartbeat)是一個計數器,它被主處理器每1 秒進行計數,其他處理器靠監(jiān)視心跳值來確認共享網絡是否處于正常。其他處理器監(jiān)視心跳一般是每隔幾秒進行一次(根據具體情況而定)。共享存儲器心跳偏移地址被放置在共享存儲器包頭的第5個4 個節(jié)的字中。如圖3 所示。
圖3 心跳數據包
3.4 處理器之間的通信
處理器之間通信可以采用中斷方式也可以采用查詢方式。每一個處理器都有一個輸入隊列用來接收其它處理器發(fā)送來得的數據包,當采用查詢方式時,處理器以固定時間間隔查詢隊列是否接收到數據。當使用中斷方式時,發(fā)送處理器通知接收處理器輸入隊列中有數據。中斷方式可以采用總線中斷或是郵箱中斷,它比查詢方式更有效。
多CPU 的并行系統類似于一個嵌入式分布式系統,它們之間的通信可采用分布式消息隊列、分式數據庫技術。分布式消息隊列和分布式數據庫技術相結合,給系統中的所有處理器提供了一個透明化的通信平臺。處理器訪問分布式消息隊列,就好象是訪問自己的資源一樣。分布式消息隊列技術可以簡化應用程序的設計,加快系統開發(fā)。
3.5 多處理器之間的資源分配
在具有多處理器的單板計算機系統中,最重要的一點是要考慮任務的并行執(zhí)行效率,多個處理器均需要訪問外圍設備和進行數據通信,這樣就存在外部設備的分配問題。
對設備資源的分配,有兩種:一是定制(即靜態(tài)分配),即單板計算機在設計時就將資源分配好,缺點是適應性不強,資源不能根據用戶的需求而改動;二是動態(tài)分配,在板上加載FPGA 邏輯,預留軟件接口,用戶可根據任務的要求動態(tài)指定。整個資源控制是透明的,不需要知道是哪個CPU控制。在硬件設計時,要考慮對CPU及外部設備訪問的仲裁、優(yōu)先級設置等,防止由于訪問臨界資源而造成的沖突。軟件則應該指定是那一個CPU使用特定設備,其余CPU 訪問時要互斥進行。
在該系統中采用CPU 類型為Intel Pentium3處理器,主頻是700MHz。測試方法,用相同功能的數據處理算法,將之分解為模塊,分別運行在系統的各個處理器中。測試結果分析,和單CPU相比,采用兩塊CPU處理,運算性能可提高60%~70%;采用三塊CPU,運算性能至少達到2倍。我們知道,影響這個測試結果的最大因素是測試方法,將相同功能的算法分解到多個處理器,分解的方法直接決定綜合處理效率。但可以肯定,多個處理器并行處理設計,可大大提高系統的運算效率。
5 結束語
多CPU 的并行計算機技術,在很大程度上提高了系統計算速度,突破了單CPU 處理速度的極限。同時采用多個CPU 的單板計算機設計,可以減少計算機系統的體積、降低開發(fā)成本、減少系統的開發(fā)周期。本文中介紹的技術,在我所設計的計算機系統中已經實現并且得到軟硬驗證,所采用的CPU 類型包括DSP、pentium3 等系列。
評論