專利名稱:多處理器之間的通信方法與包括多處理器的通信裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其是一種多處理器之間的通信方法與包括多處 理器的通信裝置。
背景技術(shù):
每個系統(tǒng)中都需要有中央處理器(Central Processing Unit,以下簡稱 CPU),也即處理器,來進行算術(shù)運算和邏輯運算。CPU主要由控制單元、 算術(shù)邏輯單元和存^f渚單元三部分構(gòu)成。按照CPU處理信息的字長,CPU可以 分為8位處理器、16位處理器、32位處理器與64位處理器等。
嵌入式處理器是面向特定應用的CPU,與通用CPU相比,例如與個人 計算機(Personal Computer,以下簡稱PC)中的CPU相比,嵌入式CPU 通常工作在為特定用戶群設計的嵌入式系統(tǒng)中,它通常都具有功耗低、體積 小、集成度高等特點,能夠把通用計算機系統(tǒng)中許多由板卡完成的功能集成 在CPU芯片內(nèi)部實現(xiàn),從而有利于嵌入式系統(tǒng)的小型化,大大增強嵌入式系 統(tǒng)的移動能力。
隨著通信技術(shù)的不斷發(fā)展,通信量迅速增加,通信業(yè)務內(nèi)容逐漸豐富, 對通信系統(tǒng)的功能要求也越來越高,在同一個系統(tǒng)中,單靠一個處理器已經(jīng) 不能滿足通信應用的需求。為解決該問題,現(xiàn)有技術(shù)中在同一個通信系統(tǒng)中 使用多個處理器,各個處理器分別完成不同的功能,通過處理器之間的通信 來交換各自的處理信息。目前業(yè)界使用的處理器之間通信方式主要有通過通 用異步收發(fā)傳車lT器(Universal Asynchronous Receiver/Transmitter , 以下簡稱 UART)通信、數(shù)字信號處理(Digital Signal Processing,以下簡稱DSP) 與主機相連接的并行通信口 ( Host-Post Interface ,以下簡稱HPI)接口通信、
6以及通過獨立的連接電路通信等。在現(xiàn)有的通信方式下,處理器之間的數(shù)據(jù)
傳輸速率較低,通常僅有幾百KBit/s。
發(fā)明內(nèi)容
本發(fā)明實施例的目的是提供一種多處理器之間的通信方法與包括多 處理器的通信裝置,提高多處理器之間的數(shù)據(jù)傳輸速度。
為解決上述技術(shù)問題,本發(fā)明實施例提供的一種多處理器之間的通信 方法,所述多處理器包括通過外部設備互聯(lián)PCI總線連接的一個主處理器 與多個從處理器,所述主處理器包括外部設備互聯(lián)PCI控制器,各從處理 器分別包括外部設備互聯(lián)PCI設備與存儲器直接訪問DMA控制器,所述 方法包括
待傳送數(shù)據(jù)的處理器設置待傳送數(shù)據(jù)的長度與源地址;
待傳送數(shù)據(jù)的處理器與待接收數(shù)據(jù)的處理器之間以存儲器直接訪問
DMA方式,通過外部設備互聯(lián)PCI總線進行數(shù)據(jù)傳輸;
數(shù)據(jù)傳送完成后,待接收數(shù)據(jù)的處理器從設置的目的地址讀取傳送的
數(shù)據(jù)并進行處理。
本發(fā)明實施例提供的一種包括多處理器的通信裝置,包括一個主處理 器與多個從處理器,主處理器與多個從處理器之間通過外部設備互聯(lián)PCI 總線連接,所述主處理器包括數(shù)據(jù)處理模塊與外部設備互聯(lián)PCI控制器, 各從處理器分別包括數(shù)據(jù)處理模塊、外部設備互聯(lián)PCI設備與存儲器直接 訪問DMA控制器;所述外部設備互聯(lián)PCI控制器用于向該外部設備互聯(lián) PCI控制器與各外部設備互聯(lián)PCI設備分配地址空間;所述數(shù)據(jù)處理模塊 用于在所述外部設備互聯(lián)PCI控制器分配的地址空間內(nèi)設置待傳送數(shù)據(jù)的 長度與源地址、以及設置存放接收到的數(shù)據(jù)的目的地址,以及在數(shù)據(jù)傳送 完成后,從設置的目的地址讀取傳送的數(shù)據(jù)并進行處理;待傳送或待接收 數(shù)據(jù)的處理器中的存儲器直接訪問DMA控制器用于控制待傳送或待接收數(shù)據(jù)的處理器中的PCI設備,與待接收或待傳送數(shù)據(jù)的處理器之間以存儲
器直接訪問DMA方式,通過外部設備互聯(lián)PCI總線將待傳送數(shù)據(jù)從源地 址傳送到目的地址。
本發(fā)明上述實施例提供的包括多處理器的通信裝置以及多處理器之 間的通信方法,通信裝置中的多個處理器通過PCI總線連接,多處理器中 的主處理器包括PCI控制器,從處理器分別包括PCI設備與DMA控制器, 采用DMA方式通過PCI總線在兩個處理器之間進行數(shù)據(jù)傳輸,與現(xiàn)有技 術(shù)相比,大大提高了處理器之間的數(shù)據(jù)傳輸速率;并且,在處理器之間傳輸 數(shù)據(jù)時,處理器可以處理其它數(shù)據(jù),在數(shù)據(jù)傳輸完成后才參與處理傳輸?shù)?數(shù)據(jù),因此,數(shù)據(jù)的傳輸和處理可以并行進行,大大提高了通信系統(tǒng)的工 作效率與性能。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
圖1為本發(fā)明多處理器之間的通信方法一個實施例的流程圖; 圖2為本發(fā)明向N個PCI接口分配2"大小的PCI地址空間的示意圖; 圖3為本發(fā)明多處理器之間的通信方法另一個實施例的流程圖; 圖4為本發(fā)明多處理器之間的通信方法又一個實施例的流程圖; 圖5為本發(fā)明包括多處理器的通信裝置一個實施例的結(jié)構(gòu)示意圖; 圖6為本發(fā)明包括多處理器的通信裝置另 一個實施例的結(jié)構(gòu)示意圖。
具體實施例方式
從計算機架構(gòu)來看,總線是在同 一個計算機或者不同計算機的功能部件 之間共享信息的傳輸線。按照每次能同時傳輸?shù)男畔⑽粩?shù),總線可以分為并
行總線和串行總線。在并行總線中,多位數(shù)據(jù)可以同時傳輸。串行總線不同 于并行總線之處在于,它的數(shù)據(jù)和控制信息是一位接一位地傳送出去的。與點對點連接不同,總線可以通過同一套傳輸線連接多個功能部件。
在現(xiàn)有的各種總線中,外部設備互聯(lián)(Peripheral Component Interconnect, 以下簡稱PCI)總線的傳輸速度較高,目前可實現(xiàn)66M的工作頻率,在64 位總線寬度下可達到533MB/s的突發(fā)(Burst)傳輸速率??梢詽M足大吞吐量 的外部設備需求。
存儲器直接訪問(Direct Memory Access,以下簡稱DMA)是一種高速 的數(shù)據(jù)傳輸操作,它允許在外部設備和存儲器之間直接讀寫數(shù)據(jù),整個數(shù)據(jù) 傳輸操作在一個稱為DMA控制器的控制下進行,不通過CPU,也不需要CPU 干預。CPU除了在數(shù)據(jù)傳輸開始和結(jié)束時作一點處理外,在數(shù)據(jù)傳輸過程中, CPU可以進行其它的工作。這樣,在大部分時間里,CPU和輸入輸出都處在 并行操作。因此,使整個計算機系統(tǒng)的效率大大提高。
本發(fā)明實施例在通信裝置中設置有多個處理器,也稱為多處理器,將多 處理器中的一個處理器作為主處理器,其它處理器作為從處理器,多處理器 之間以PCI總線連接,將主處理器的PCI接口配置為PCI控制器,將從處理 器的PCI接口配置為PCI設備,并在從處理器中設置DMA控制器,通過DMA 控制器控制PCI設備,實現(xiàn)主處理器與從處理器之間、以及從處理器之間以 DMA方式,通過PCI總線進行數(shù)據(jù)傳輸,從而大大提高了處理器之間的數(shù) 據(jù)傳輸速率,4艮據(jù)本發(fā)明實施例,數(shù)據(jù)傳輸速率最大可以達到533MB/s。并 且,通過DMA方式在處理器之間傳輸數(shù)據(jù)時,處理器可以處理其它數(shù)據(jù), 在數(shù)據(jù)傳輸完成后才參與處理傳輸?shù)臄?shù)據(jù),因此,數(shù)據(jù)的傳輸和處理可以 并行進行,大大提高了通信裝置中通信系統(tǒng)的工作效率與性能。本發(fā)明的 各實施例中,通信裝置的一個實施例為計算機。
如圖l所示,為本發(fā)明多處理器之間的通信方法一個實施例的流程圖。 其中的多處理器包括通過PCI總線連接的一個主處理器與多個從處理器, 主處理器包括PCI控制器,各從處理器分別包括PCI設備與DMA控制器。 參見圖1,多處理器之間的通信方法包括以下步驟步驟101,待傳送數(shù)據(jù)的處理器設置待傳送數(shù)據(jù)的長度與源地址。 步驟102,待傳送數(shù)據(jù)的處理器與待接收數(shù)據(jù)的處理器之間以DMA
方式,通過PCI總線進行數(shù)據(jù)傳輸。
其中,待傳送數(shù)據(jù)的處理器可以是主處理器,也可以是從處理器。待
接收數(shù)據(jù)的處理器可以是多處理器中待傳送數(shù)據(jù)的處理器以外的從處理
器或者主處理器。
步驟103,數(shù)據(jù)傳送完成后,待接收數(shù)據(jù)的處理器從設置的目的地址 讀取傳送的數(shù)據(jù)并進行處理。
為了實現(xiàn)多處理器之間的通信,在通信裝置上電復位之后,PCI控制 器對PCI總線上的各PCI接口 (即PCI控制器和PCI設備)進行初始化, 分別向各PCI接口分配一個地址空間,在獲得地址空間后,各處理器就可 以通過各自地址空間中的地址來互相訪問。以32位的地址空間為例,整 個PCI地址空間的大小為232 ,也就是4G大小。如圖2所示,為本發(fā)明向 N個PCI接口分配232大小的PCI地址空間的示意圖。
在圖1所示實施例的步驟102中,通過外部設備互聯(lián)PCI總線進行數(shù) 據(jù)傳輸具體可以是根據(jù)DMA狀態(tài)機,通過PCI總線進行數(shù)據(jù)傳輸。
如圖3所示,為本發(fā)明多處理器之間的通信方法另一個實施例的流程 圖。該實施例中,以待傳送數(shù)據(jù)的處理器為主處理器,待接收數(shù)據(jù)的處理 器為從處理器為例進行說明,其包括以下步驟
步驟201,主處理器有數(shù)據(jù)需要傳送到從處理器時,主處理器創(chuàng)建與 待接收數(shù)據(jù)的從處理器之間的DMA狀態(tài)機,初始狀態(tài)下,該DMA狀態(tài) 才幾處于初始狀態(tài)DMA—IDLE。
步驟202,主處理器設置待傳送數(shù)據(jù)的長度與源地址,并將DMA狀 態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸準備狀態(tài)DMA— READY。
步驟203,待接收數(shù)據(jù)的從處理器根據(jù)數(shù)據(jù)傳輸準備狀態(tài)DMA_ READY,設置用于存放主處理器傳送的數(shù)據(jù)的目的地址。步驟204,待接收數(shù)據(jù)的從處理器啟動其中的DMA控制器,將待傳 送數(shù)據(jù)通過PCI總線從源地址轉(zhuǎn)移到目的地址,并在開始轉(zhuǎn)移待傳送數(shù)據(jù) 時,將DMA狀態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸狀態(tài)DMA—ACTIVE。
步驟205,將待傳送數(shù)據(jù)從源地址轉(zhuǎn)移到目的地址后,待接收數(shù)據(jù)的 從處理器通知主處理器本次數(shù)據(jù)傳送完成。
步驟206,主處理器判斷是否還有其它待傳送數(shù)據(jù)需要傳送到待接收 數(shù)據(jù)的從處理器,若有,返回執(zhí)行步驟202;若沒有其它待傳送數(shù)據(jù),執(zhí) 行步驟207。
步驟207,主處理器將DMA狀態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸完成狀態(tài) DMA—COMPLETE 。
步驟208,待接收數(shù)據(jù)的從處理器根據(jù)數(shù)據(jù)傳輸完成狀態(tài) DMA—COMPLETE,從目的地址讀取傳送的數(shù)據(jù)并進行處理,并將DMA 狀態(tài)機的狀態(tài)更新為初始狀態(tài)DMA—IDLE 。
圖3所示的上述實施例中,以主處理器作為待傳送數(shù)據(jù)的處理器,對 于待傳送數(shù)據(jù)的處理器為從處理器的情況,上述圖3所示的實施例同樣適 用,只需要待傳送數(shù)據(jù)的從處理器執(zhí)行圖3所示流程中主處理器執(zhí)行的操 作即可,不再贅述。
如圖4所示,為本發(fā)明多處理器之間的通信方法又一個實施例的流程 圖。該實施例中,以待傳送數(shù)據(jù)的處理器為從處理器,待接收數(shù)據(jù)的處理 器為主處理器為例進行說明,其包括以下步驟
步驟301,待傳送數(shù)據(jù)的從處理器創(chuàng)建與主處理器之間的DMA狀態(tài) 機,初始狀態(tài)下,該DMA狀態(tài)機處于初始狀態(tài)DMA—IDLE。
步驟302,主處理器根據(jù)初始狀態(tài)DMA_IDLE,設置用于存放待傳送
數(shù)據(jù)的從處理器傳送的數(shù)據(jù)的目的地址。
步驟303,待傳送數(shù)據(jù)的從處理器有數(shù)據(jù)需要傳送到主處理器時,待 傳送數(shù)據(jù)的處理器設置待傳送數(shù)據(jù)的長度與源地址。
ii步驟304,待傳送數(shù)據(jù)的從處理器啟動其中的DMA控制器,將待傳 送數(shù)據(jù)通過PCI總線從源地址轉(zhuǎn)移到目的地址,并在開始轉(zhuǎn)移待傳送數(shù)據(jù) 時,將DMA狀態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸狀態(tài)DMA—ACTIVE。
步驟305,將待傳送數(shù)據(jù)從源地址轉(zhuǎn)移到目的地址后,待傳送數(shù)據(jù)的 從處理器通知主處理器本次數(shù)據(jù)傳送完成。
步驟306,主處理器從設置的目的地址讀取傳送的數(shù)據(jù)并進行處理, 設置用于接收新再次傳送的數(shù)據(jù)的新目的地址,并將DMA狀態(tài)機的狀態(tài) 更新為數(shù)據(jù)傳輸完成狀態(tài)DMA—COMPLETE。
步驟307,待傳送數(shù)據(jù)的從處理器根據(jù)數(shù)據(jù)傳輸完成狀態(tài)DMA_ COMPLETE,判斷是否還有其它待傳送數(shù)據(jù),若還有其它待傳送數(shù)據(jù),執(zhí) 行步驟308;若沒有其它待傳送數(shù)據(jù),執(zhí)行步驟309。
步驟308,待傳送數(shù)據(jù)的從處理器將DMA狀態(tài)機的狀態(tài)更新為初始 狀態(tài)DMA—IDLE,然后以新目的地址作為目的地址,返回4丸行步驟303。
步驟309,待傳送數(shù)據(jù)的從處理器將DMA狀態(tài)機的狀態(tài)更新為初始 狀態(tài)DMA—IDLE 。
圖4所示的上述實施例中,以主處理器作為待接收數(shù)據(jù)的處理器,對 于待接收數(shù)據(jù)的處理器為從處理器的情況,上述圖4所示的實施例同樣適 用,只需要待接收數(shù)據(jù)的從處理器執(zhí)行圖4所示流程中主處理器執(zhí)行的操 作即可,不再贅述。
如圖5所示,為本發(fā)明包括多處理器的通信裝置一個實施例的結(jié)構(gòu)示意 圖。該實施例的通信裝置可用于實現(xiàn)如本發(fā)明上述任一實施例的多處理器之 間的通信方法流程,其包括一個主處理器1與多個從處理器2。主處理器 1與多個從處理器2之間通過PCI總線3連接。主處理器1包括數(shù)據(jù)處理 模塊401與PCI控制器402。各從處理器2分別包括數(shù)據(jù)處理模塊401、 PCI設備403與DMA控制器404。其中,PCI控制器402用于向該PCI 控制器402與各PCI設備403分配地址空間。各處理器中的數(shù)據(jù)處理模塊401用于在PCI控制器402設置的待傳送數(shù)據(jù)的長度與源地址、與設置存 放接收到的數(shù)據(jù)的目的地址,以及在數(shù)據(jù)傳送完成后,從設置的目的地址 讀取傳送的數(shù)據(jù)并進行處理。待傳送或待接收數(shù)據(jù)的處理器中的DMA控 制器404用于控制相應的待傳送數(shù)據(jù)的處理器與待接收數(shù)據(jù)的處理器之 間,即PCI控制器402與PCI設備403之間,或PCI設備403與PCI設 備403之間,以DMA方式,通過PCI總線3將待傳送數(shù)據(jù)從源地址傳送 到目的地址。其中,待傳送數(shù)據(jù)的處理器可以是主處理1器或從處理器2, 相應的,待接收數(shù)據(jù)的處理器為待傳送數(shù)據(jù)的從處理器2以外的從處理器 2;或者,待傳送數(shù)據(jù)的處理器為從處理器2,待接收數(shù)據(jù)的處理器為主處 理器1或待傳送數(shù)據(jù)的從處理器2以外的從處理器2。
圖5中僅示出了兩個從處理器,對于其它的從處理器的構(gòu)成及與其它 處理器之間的連接關(guān)系,與圖5中的從處理器相同。
具體地,PCI控制器402可以通過PCI總線配置單元與PCI驅(qū)動軟件 單元實現(xiàn),其中,PCI總線配置單元通過硬件實現(xiàn),PCI驅(qū)動軟件單元通 過軟件實現(xiàn)。在通信設備上電復位后,PCI驅(qū)動軟件單元控制PCI總線配 置單元對各處理器進行初始化,向各處理器的PCI接口,即PCI控制器 402與各PCI設備403,分別分配一個不同的地址空間。在獲得自己的地 址空間后,各處理器就可以通過各自的地址來互相訪問。
在圖5所示的實施例中,DMA控制器404可以設置在同一處理器的 PCI設備403中,如圖6所示,為本發(fā)明包括多處理器的通信裝置另一個 實施例的結(jié)構(gòu)示意圖。
另外,在本發(fā)明各實施例提供的通信裝置中,多處理器中的一個或多 個處理器具體可以采用嵌入式處理器。通常情況下,應用于通信領(lǐng)域的嵌 入式處理器都集成了 PCI接口 ,可以直接將該PCI接口配置為PCI控制器 或者PCI設備,而無需單獨在嵌入式處理器上設置PCI接口,硬件結(jié)構(gòu)改 動較?。徊⑶?,嵌入式處理器的功耗低、體積小、集成度高,采用嵌入式處理器后,能夠把通用計算機系統(tǒng)中許多由板卡完成的功能集成在處理器芯片 內(nèi)部實現(xiàn),從而有利于嵌入式系統(tǒng)的小型化,大大增強嵌入式系統(tǒng)的移動能 力。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步 驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機
可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;
而前述的存儲介質(zhì)包括ROM、 RAM、義茲碟或者光盤等各種可以存儲程 序代碼的介質(zhì)。
本發(fā)明實施例大大提高了處理器之間的數(shù)據(jù)傳輸速率;并且,在處理 器之間傳輸數(shù)據(jù)時,處理器可以處理其它數(shù)據(jù),在數(shù)據(jù)傳輸完成后才參與 處理傳輸?shù)臄?shù)據(jù),因此,數(shù)據(jù)的傳輸和處理可以并行進行,大大提高了通 信系統(tǒng)的工作效率與性能。
最后所應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對 本發(fā)明作限制性理解。盡管參照上述較佳實施例對本發(fā)明進行了詳細說明, 本領(lǐng)域的普通技術(shù)人員應當理解其依然可以對本發(fā)明的技術(shù)方案進行修改 或者等同替換,而這種修改或者等同替換并不脫離本發(fā)明技術(shù)方案的精神和 范圍。
權(quán)利要求
1、一種多處理器之間的通信方法,所述多處理器包括通過外部設備互聯(lián)PCI總線連接的一個主處理器與多個從處理器,所述主處理器包括外部設備互聯(lián)PCI控制器,各從處理器分別包括外部設備互聯(lián)PCI設備與存儲器直接訪問DMA控制器,其特征在于,所述方法包括待傳送數(shù)據(jù)的處理器設置待傳送數(shù)據(jù)的長度與源地址;待傳送數(shù)據(jù)的處理器與待接收數(shù)據(jù)的處理器之間以存儲器直接訪問DMA方式,通過外部設備互聯(lián)PCI總線進行數(shù)據(jù)傳輸;數(shù)據(jù)傳送完成后,待接收數(shù)據(jù)的處理器從設置的目的地址讀取傳送的數(shù)據(jù)并進行處理。
2、 根據(jù)權(quán)利要求1所述的多處理器之間的通信方法,其特征在于, 待傳送數(shù)據(jù)的處理器設置待傳送數(shù)據(jù)的長度與源地址之前,還包括外部設備互聯(lián)PCI控制器向該外部設備互聯(lián)PCI控制器與各外部設備 互聯(lián)PCI設備分配地址空間。
3、 根據(jù)權(quán)利要求2所述的多處理器之間的通信方法,其特征在于, 通過外部設備互聯(lián)PCI總線進行數(shù)據(jù)傳輸具體為根據(jù)存儲器直接訪問 DMA狀態(tài)機,通過外部設備互聯(lián)PCI總線進行數(shù)據(jù)傳輸。
4、 根據(jù)權(quán)利要求3所述的多處理器之間的通信方法,其特征在于, 待傳送數(shù)據(jù)的處理器為主處理器或從處理器,待接收數(shù)據(jù)的處理器為從處 理器;主處理器或待傳送數(shù)據(jù)的從處理器設置待傳送數(shù)據(jù)的長度與源地址 之前,還包括主處理器或待傳送數(shù)據(jù)的從處理器創(chuàng)建與待接收數(shù)據(jù)的從 處理器之間的存儲器直接訪問DMA狀態(tài)機,該存儲器直接訪問DMA狀 態(tài)機處于初始狀態(tài)DMA—IDLE;主處理器或待傳送數(shù)據(jù)的從處理器設置待傳送數(shù)據(jù)的長度與源地址 之后,還包括主處理器或待傳送數(shù)據(jù)的從處理器將存儲器直接訪問DMA狀態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸準備狀態(tài)DMA— READY;待接收數(shù)據(jù)的從 處理器根據(jù)數(shù)據(jù)傳輸準備狀態(tài)DMA— READY,設置用于存放主處理器或 待傳送數(shù)據(jù)的從處理器傳送的數(shù)據(jù)的所述目的地址;主處理器或待傳送數(shù)據(jù)的從處理器與待接收數(shù)據(jù)的從處理器之間以 存儲器直接訪問DMA方式,通過外部設備互聯(lián)PCI總線進行數(shù)據(jù)傳輸包 括待接收數(shù)據(jù)的從處理器啟動其中的存儲器直接訪問DMA控制器,將 待傳送數(shù)據(jù)通過PCI總線從所述源地址轉(zhuǎn)移到所述目的地址,并在開始轉(zhuǎn) 移待傳送數(shù)據(jù)時,將存儲器直接訪問DMA狀態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸 狀態(tài)DMA—ACTIVE;將待傳送數(shù)據(jù)從所述源地址轉(zhuǎn)移到所述目的地址后, 待接收數(shù)據(jù)的從處理器通知主處理器或待傳送數(shù)據(jù)的從處理器本次數(shù)據(jù) 傳送完成;若主處理器或待傳送數(shù)據(jù)的從處理器還有其它待傳送數(shù)據(jù),返 回執(zhí)行所述主處理器或待傳送數(shù)據(jù)的從處理器設置待傳送數(shù)據(jù)的長度與據(jù),主處理器或待傳送數(shù)據(jù)的從處理器將存儲器直接訪問DMA狀態(tài)機的 狀態(tài)更新為數(shù)據(jù)傳輸完成狀態(tài)DMA—COMPLETE;數(shù)據(jù)傳送完成后,待接收數(shù)據(jù)的從處理器從設置的目的地址讀取傳送 的數(shù)據(jù)并進行處理具體為待接收數(shù)據(jù)的從處理器根據(jù)數(shù)據(jù)傳輸完成狀態(tài) DMA—COMPLETE,從所述目的地址讀取傳送的數(shù)據(jù)并進行處理,并將存 儲器直接訪問DMA狀態(tài)機的狀態(tài)更新為初始狀態(tài)DMA_IDLE。
5、根據(jù)權(quán)利要求3所述的多處理器之間的通信方法,其特征在于, 待傳送數(shù)據(jù)的處理器為從處理器,待接收數(shù)據(jù)的處理器為主處理器或從處 理器;待傳送數(shù)據(jù)的從處理器設置待傳送數(shù)據(jù)的長度與源地址之前,還包 括待傳送數(shù)據(jù)的從處理器創(chuàng)建與主處理器或待接收數(shù)據(jù)的從處理器之間 的存儲器直接訪問DMA狀態(tài)機,該存儲器直接訪問DMA狀態(tài)機處于初 始狀態(tài)DMAjDLE;主處理器或待接收數(shù)據(jù)的從處理器根據(jù)初始狀態(tài)DMA—IDLE設置用于存放待傳送數(shù)據(jù)的從處理器傳送的數(shù)據(jù)的所述目的 地址;待傳送數(shù)據(jù)的從處理器設置待傳送數(shù)據(jù)的長度與源地址之后,還包 括待傳送數(shù)據(jù)的從處理器啟動其中的存儲器直接訪問DMA控制器,將 待傳送數(shù)據(jù)通過PCI總線從所述源地址轉(zhuǎn)移到所述目的地址,并在開始轉(zhuǎn) 移待傳送數(shù)據(jù)時,將存儲器直接訪問DMA狀態(tài)機的狀態(tài)更新為數(shù)據(jù)傳輸 狀態(tài)DMA—ACTIVE;將待傳送數(shù)據(jù)從所述源地址轉(zhuǎn)移到所述目的地址后, 待傳送數(shù)據(jù)的從處理器通知主處理器或待接收數(shù)據(jù)的從處理器本次數(shù)據(jù) 傳送完成;數(shù)據(jù)傳送完成后,主處理器或待接收數(shù)據(jù)的從處理器從設置的目的地 址讀取傳送的數(shù)據(jù)并進行處理包括主處理器或待接收數(shù)據(jù)的從處理器從 設置的目的地址讀取傳送的數(shù)據(jù)并進行處理,設置用于接收新再次傳送的 數(shù)據(jù)的新目的地址,并將存儲器直接訪問DMA狀態(tài)^L的狀態(tài)更新為數(shù)據(jù) 傳輸完成狀態(tài)DMA—COMPLETE;主處理器或待接收數(shù)據(jù)的從處理器從設置的目的地址讀取傳送的數(shù) 據(jù)并進行處理之后,還包括待傳送數(shù)據(jù)的從處理器根據(jù)數(shù)據(jù)傳輸完成狀 態(tài)DMA— COMPLETE,判斷是否還有其它待傳送數(shù)據(jù);若還有其它待傳 送數(shù)據(jù),待傳送數(shù)據(jù)的從處理器將存儲器直接訪問DMA狀態(tài)機的狀態(tài)更 新為初始狀態(tài)DMA_IDLE,然后以新目的地址作為所述目的地址,返回執(zhí) 行所述待傳送數(shù)據(jù)的從處理器設置待傳送數(shù)據(jù)的長度與源地址的操作;若 沒有其它待傳送數(shù)據(jù),待傳送數(shù)據(jù)的從處理器將存儲器直接訪問DMA狀 態(tài)機的狀態(tài)更新為初始狀態(tài)DMA一IDLE。
6、 一種包括多處理器的通信裝置,包括一個主處理器與多個從處理 器,其特征在于,主處理器與多個從處理器之間通過外部設備互聯(lián)PCI總 線連接,所述主處理器包括數(shù)據(jù)處理模塊與外部設備互聯(lián)PCI控制器,各 從處理器分別包括數(shù)據(jù)處理模塊、外部設備互聯(lián)PCI設備與存儲器直接訪問DMA控制器;所述外部設備互聯(lián)PCI控制器用于向該外部設備互聯(lián)PCI 控制器與各外部設備互聯(lián)PCI設備分配地址空間;所述數(shù)據(jù)處理模塊用于 在所述外部設備互聯(lián)PCI控制器分配的地址空間內(nèi)設置待傳送數(shù)據(jù)的長度 與源地址、以及設置存放接收到的數(shù)據(jù)的目的地址,以及在數(shù)據(jù)傳送完成 后,從設置的目的地址讀取傳送的數(shù)據(jù)并進行處理;待傳送或待接收數(shù)據(jù) 的處理器中的存儲器直接訪問DMA控制器用于控制待傳送或待接收數(shù)據(jù) 的處理器中的PCI設備,與待接收或待傳送數(shù)據(jù)的處理器之間以存儲器直 接訪問DMA方式,通過外部設備互聯(lián)PCI總線將待傳送數(shù)據(jù)從源地址傳 送到目的;l也址。
7、 根據(jù)權(quán)利要求6所述的包括多處理器的通信裝置,其特征在于, 所述存儲器直接訪問DMA控制器設置在所述外部設備互聯(lián)PCI設備中。
8、 根據(jù)權(quán)利要求6或7所述的包括多處理器的通信裝置,其特征在 于,所述多處理器為嵌入式處理器。
9、 根據(jù)權(quán)利要求6或7所述的包括多處理器的通信裝置,其特征在 于,待傳送數(shù)據(jù)的處理器為主處理器或從處理器,待接收數(shù)據(jù)的處理器為 從處理器;或者,待傳送數(shù)據(jù)的處理器為從處理器,待接收數(shù)據(jù)的處理器 為主處理器或從處理器。
全文摘要
本發(fā)明公開了一種多處理器之間的通信方法與包括多處理器的通信裝置,所述多處理器包括通過外部設備互聯(lián)PCI總線連接的一個主處理器與多個從處理器,所述主處理器包括外部設備互聯(lián)PCI控制器,各從處理器分別包括外部設備互聯(lián)PCI設備與存儲器直接訪問DMA控制器,所述方法包括待傳送數(shù)據(jù)的處理器設置待傳送數(shù)據(jù)的長度與源地址;待傳送數(shù)據(jù)的處理器與待接收數(shù)據(jù)的處理器之間以存儲器直接訪問DMA方式,通過外部設備互聯(lián)PCI總線進行數(shù)據(jù)傳輸;數(shù)據(jù)傳送完成后,待接收數(shù)據(jù)的處理器從設置的目的地址讀取傳送的數(shù)據(jù)并進行處理。本發(fā)明實施例可以提高多處理器之間的數(shù)據(jù)傳輸速度。
文檔編號G06F13/20GK101452430SQ20081023955
公開日2009年6月10日 申請日期2008年12月12日 優(yōu)先權(quán)日2008年12月12日
發(fā)明者劉小宏 申請人:北京星網(wǎng)銳捷網(wǎng)絡技術(shù)有限公司