一種基於共享內存的多處理器通信方法及其實現裝置的製作方法
2023-07-19 01:16:51 2
專利名稱:一種基於共享內存的多處理器通信方法及其實現裝置的製作方法
技術領域:
本發明涉及一種高性能數控系統中的計算機領域,特別是一種基於共享內存結構的多處理器的通信方法及其實現裝置。
背景技術:
隨著現代製造技術的進步,高效、高速、高精等已成為評價高性能數控系統的重要指標。因此,對數控系統中的功能要求也越來越高,在同一個系統中,單靠一個處理器已經很難滿足數控系統的混合實時任務的應用需求。原有的系統結構採用的是串行處理方式, 功能任務之間的數據傳輸通道利用率比較低。在數控系統的混合實時任務中,實時任務是運行在內核空間,而非實時任務是運行在用戶空間,各個處理器需要完成不同的任務功能, 這就要求分布式處理器之間有一種機制來實現數據交換,保證系統的正常運行。不同的處理器之間都是自治的子系統,為保證系統的完整性,需要提供一種各個子處理器之間數據信息交換的方法。
發明內容
為解決上述的系統運行處理能力差和數據交換速度低的問題,本發明的目的在於提供一種滿足高性能數控系統對實時處理能力,高速高精運動控制能力和數據交換速度方面的要求的基於共享內存的多處理器通信方法及其實現裝置。為了實現上述發明目的,本發明的技術方案如下 一種基於共享內存的多處理器通信方法包括如下步驟
在主處理器模塊的內存劃分一段共享內存空間或者共享PCI地址空間;通過透明式PCI總線橋直接映射到系統PCI總線上,再由非透明式PCI總線橋映射到從處理器模塊的共享PCI地址空間或者共享內存地址空間上,形成一段主處理器模塊和從處理器模塊都能夠訪問的共享內存空間;採用函數接口對共享內存空間中的數據進行讀寫交換。共享空間的劃分過程如下
各處理器在虛擬地址空間中的地址窗口通過交叉開關矩陣路由選擇內存控制器或者 PCI控制器,並設置地址窗口寄存器,相應地在物理地址空間上劃分為共享PCI地址空間和共享內存地址空間。非透明式PCI總線橋地址映射過程如下
對非透明式PCI總線橋配置空間內的基址寄存器地址掩碼和基址寄存器進行設置, 將轉換前地址中的基址和基址寄存器與基址寄存器地址掩碼相與的結果進行比較,如果相等,通過基址轉換控制寄存器轉換成轉換後的基址,將轉換前地址中的偏移量與轉換後的基址合併,形成了轉換後的地址。共享內存空間中的數據讀寫交換步驟包括如下
通過打開函數接口,分配共享內存,掃描共享內存更新標誌,檢查共享內存中的數據是否更新,如果數據更新,則申請並獲得讀互斥信號量,通過讀函數接口讀取共享內存中的數據信息,讀取數據信息結束後,釋放讀互斥信號量。檢查掃描共享內存終止標誌,如果沒有設置終止標誌,進行下一次共享內存數據更新檢查。如果沒有數據更新,則申請並獲得寫互斥信號量,通過寫函數接口更新共享內存中的數據信息,更新數據信息結束後,釋放寫互斥信號量;檢查掃描共享內存終止標誌,如果沒有設置終止標誌,進行下一次共享內存數據更新檢查。如果設置終止標誌,通過關閉函數接口關閉共享內存。一種基於共享內存的多處理器通信方法及其實現裝置包括主處理器模塊和多個從處理器模塊之間通過系統PCI總線連接。主處理器模塊和從處理器模塊均有處理器、IO 接口、網卡、顯卡和透明式PCI總線橋,上述的主從處理器模塊中的IO接口、網卡、顯卡和透明式PCI總線橋分別與本地PCI總線進行連接,上述的主從處理器模塊中處理器和內存通過系統內部總線進行連接;主處理器模塊通過透明式PCI橋連接到系統PCI總線上,從處理器模塊通過非透明式PCI橋連接到系統PCI總線上。本發明與現有技術相比,有益效果如下
1.本發明結合自由軟體Linux作業系統,採用了主從式多處理器系統通信方法,在進行系統控制的同時,實現了複雜數據的並行處理,提高了系統的運算速度。2.本發明中主處理器模塊和從處理器模塊之間採用的是PCI總線,通過讀寫共享內存進行數據交換,極少出現數據丟失情況,具有很高的可靠性,同時數據交換延遲較小, 可以保證系統的實時數據交換需求。3.本發明允許動態地重新配置內存,用戶可以根據系統需要自由地配置共享內存的大小,數據傳遞交互是透明的,具有較強的靈活性。4.本發明中採用的是PCI總線,通過總線橋,可以擴展很多的從處理器模塊和其它輔助應用功能,具有良好地擴展性。
圖1為本發明通信裝置結構示意圖; 圖2為本發明的地址窗口映射模塊示意圖; 圖3為本發明的地址路由選擇模塊示意圖; 圖4為本發明總線橋地址轉換模塊示意圖; 圖5為本發明數據交換流程圖。
具體實施例方式下面結合附圖和具體實施例對本發明方案進一步詳細描述。如圖1所示,處理器採用基於MIPS體系結構的龍芯處理器,在主處理器模塊的內存劃分一段共享內存空間或者共享PCI地址空間,通過透明式PCI總線橋直接映射到系統 PCI總線上,再由非透明式PCI總線橋映射到從處理器模塊的共享PCI地址空間或者共享內存地址空間上,形成一段主處理器模塊和從處理器模塊都能夠訪問的共享內存空間;採用函數接口對共享內存空間中的數據進行讀寫交換。如圖2所示,共享空間劃分各處理器的虛擬地址空間中的地址窗口通過交叉開關矩陣路由選擇內存控制器或者PCI控制器,通過設置地址窗口寄存器,相應地在物理地址空間上劃分為PCI地址空間和內存地址空間。在實施系統中,設置地址窗口的基址寄存器和基址寄存器地址掩碼,將虛擬地址空間中的區段KSEGO和區段KSEGl中的第1地址窗口的256M空間映射到物理地址空間的共享內存地址空間上,第2地址窗口的256M空間映射到物理地址空間的共享PCI地址空間上。如圖3所示,地址路由選擇步驟如下處理器核從系統運行的程序中得到虛擬地址,並將該虛擬地址發送到交叉開關矩陣上,交叉開關矩陣根據發送來的虛擬地址與地址窗口中的基址寄存器進行比較,確定命中共享PCI地址空間還是共享內存地址空間,如果命中共享PCI地址空間,就將第2地址窗口發送到PCI控制器上,如果命中共享內存地址空間,將第1地址窗口發送到內存控制器上。如圖4所示,非透明式PCI總線橋地址映射步驟如下對非透明式PCI總線橋配置空間內的基址寄存器地址掩碼和基址寄存器進行設置,將轉換前地址中的基址和基址寄存器與基址寄存器地址掩碼相與後的結果進行比較,如果相等,通過基址轉換控制寄存器轉換成轉換後的基址,將轉換前地址中的偏移量與轉換後的基址合併,形成了轉換後的地址。如圖5所示,通過打開函數接口,打開共享內存,掃描共享內存更新標誌,檢查共享內存中的數據是否更新,如果數據更新,則申請並獲得讀互斥信號量,通過讀函數接口讀取共享內存中的數據信息,讀取數據信息結束後,釋放讀互斥信號量;檢查掃描共享內存終止標誌,如果沒有設置終止標誌,進行下一次共享內存數據更新檢查;如果設置終止標誌, 通過關閉函數接口關閉共享內存。如果沒有數據更新,則申請並獲得寫互斥信號量,通過寫函數接口更新共享內存中的數據信息,更新數據信息結束後,釋放寫互斥信號量;檢查掃描共享內存終止標誌,如果沒有設置終止標誌,進行下一次共享內存數據更新檢查;如果設置終止標誌,通過關閉函數接口關閉共享內存。本發明的實施例系統是基於共享內存的多處理器通信裝置,多處理器之間採用的是主從式結構,主處理器模塊和多個從處理器模塊之間通過系統PCI總線連接。主處理器模塊和從處理器模塊均有處理器、IO接口、網卡、顯卡和透明式PCI總線橋,上述的主從處理器模塊中的IO接口、網卡、顯卡和透明式PCI總線橋分別與本地PCI總線進行連接, 上述的主從處理器模塊中處理器和內存通過系統內部總線進行連接;PCI總線橋有兩種方式,分別為透明方式的和非透明方式;PCI總線橋的透明方式,橋的從接口上的各從處理器模塊所有設備對主接口上的主處理器模塊的是透明的。PCI總線橋為非透明方式,由於PCI 總線橋的從接口資源和地址對主接口的主處理器模塊地址相互隔離,用於連接兩個獨立的處理器模塊,可實現對主接口和從接口的PCI總線之間進行地址轉換。
權利要求
1.一種基於共享內存的多處理器通信方法,其特徵在於包括如下步驟在主處理器模塊的內存劃分一段共享內存空間或者共享PCI地址空間;通過透明式PCI總線橋直接映射到系統PCI總線上,再由非透明式PCI總線橋映射到從處理器模塊的共享PCI地址空間或者共享內存地址空間上,形成一段主處理器模塊和從處理器模塊都能夠訪問的共享內存空間;採用函數接口對共享內存空間中的數據進行讀寫交換。
2.根據權利要求1所述的基於共享內存的多處理器通信方法,其特徵在於共享空間的劃分過程各處理器在虛擬地址空間中的地址窗口通過交叉開關矩陣路由選擇內存控制器或者 PCI控制器,並設置地址窗口寄存器,相應地在物理地址空間上劃分為共享PCI地址空間和共享內存地址空間。
3.根據權利要求1所述的基於共享內存的多處理器通信方法,其特徵在於非透明式 PCI總線橋地址映射過程如下對非透明式PCI總線橋配置空間內的基址寄存器地址掩碼和基址寄存器進行設置, 將轉換前地址中的基址和基址寄存器與基址寄存器地址掩碼相與的結果進行比較,如果相等,通過基址轉換控制寄存器轉換成轉換後的基址,將轉換前地址中的偏移量與轉換後的基址合併,形成了轉換後的地址。
4.根據權利要求1所述的基於共享內存的多處理器通信方法,其特徵在於共享內存空間中的數據讀寫交換步驟如下通過打開函數接口,分配共享內存,掃描共享內存更新標誌,檢查共享內存中的數據是否更新,如果數據更新,則申請並獲得讀互斥信號量,通過讀函數接口讀取共享內存中的數據信息,讀取數據信息結束後,釋放讀互斥信號量。
5.根據權利要求4所述的基於共享內存的多處理器通信方法,其特徵在於檢查掃描共享內存終止標誌,如果沒有設置終止標誌,進行下一次共享內存數據更新檢查。
6.根據權利要求5所述的基於共享內存的多處理器通信方法,其特徵在於如果沒有數據更新,則申請並獲得寫互斥信號量,通過寫函數接口更新共享內存中的數據信息,更新數據信息結束後,釋放寫互斥信號量;檢查掃描共享內存終止標誌,如果沒有設置終止標誌,進行下一次共享內存數據更新檢查。
7.根據權利要求6所述的基於共享內存的多處理器通信方法,其特徵在於如果設置終止標誌,通過關閉函數接口關閉共享內存。
8.基於共享內存的多處理器通信方法的實現裝置,其特徵在於該裝置包括主處理器模塊和多個從處理器模塊之間通過系統PCI總線連接;主處理器模塊和從處理器模塊均有處理器、IO接口、網卡、顯卡和透明式PCI總線橋,上述的主從處理器模塊中的IO接口、網卡、顯卡和透明式PCI總線橋分別與本地PCI總線進行連接,上述的主從處理器模塊中處理器和內存通過系統內部總線進行連接;主處理器模塊通過透明式PCI橋連接到系統PCI總線上,從處理器模塊通過非透明式PCI橋連接到系統PCI總線上。
全文摘要
本發明公開一種基於共享內存的多處理器通信方法及其實現裝置,多處理器通信方法在主處理器模塊的內存劃分一段共享內存空間或者共享PCI地址空間,通過透明式PCI總線橋直接映射到系統PCI總線上,再由非透明式PCI總線橋映射到從處理器模塊的共享PCI地址空間或者共享內存地址空間上,形成一段主處理器模塊和從處理器模塊都能夠訪問的共享內存空間;所述的共享內存空間中的數據交換採用函數接口的方式讀寫數據信息。該方法的裝置主處理器模塊通過透明式PCI橋連接到系統PCI總線上,從處理器模塊通過非透明式PCI橋連接到系統PCI總線上。本發明提高了系統的運行速度,具有較高的可靠性、靈活性和可擴展性。
文檔編號G06F15/167GK102541805SQ20101058032
公開日2012年7月4日 申請日期2010年12月9日 優先權日2010年12月9日
發明者任豔, 盧小張, 李鎖, 王超, 陶耀東 申請人:瀋陽高精數控技術有限公司