專利名稱:直接存儲器存取傳送裝置的制作方法
技術領域:
本發明涉及一種包括多個處理器的多處理器系統,具體上涉及一種用于執行處理器到處理器的直接存儲器存取(DMA)傳送的DMA傳送裝置。
背景技術:
在多處理器系統中,多個處理器可以并行地執行計算。具體上,在圖像處理領域中,經常執行高并行度的處理,因此如果存在大量的處理器,則可以相應地縮短圖像處理所需的時間。但是,在執行并行計算之前,要處理的數據需要被劃分以分布到多個處理器。當劃分數據時,作為開銷,向處理時間新增加處理器到處理器的數據傳送。因此,如何能夠以高速執行處理器到處理器的傳送以提高最終的計算效率成為一個關鍵問題。
一種已知的作為加速處理器到處理器傳送的現有技術是稱為DMA的功能,其對要由處理器傳送的數據執行與處理器無關的直接傳送。當執行DMA傳送時,處理器可以繼續不同的處理,因此可以增加處理速度。在DMA傳送中,主處理器監視DMA傳送的開始和完成,并且在完成DMA傳送時,主處理器使用在處理器之間提供的通信部件向從處理器發送完成通知。
圖9是示出DMA傳送序列的圖。例如,為了執行向預定區域DMA傳送由主處理器10管理的數據并且在完成所述DMA傳送后由從處理器11使用所述數據來執行處理,所述主處理器10向DMA傳送裝置13發出傳送請求,其用于啟動DMA傳送裝置13,DMA傳送裝置13在DMA傳送結束后向主處理器10發出傳送結束通知,主處理器10使用處理器到處理器通信向從處理器11發出因為DMA傳送結束而可以開始數據處理的通知(處理開始OK),并且接收所述通知的從處理器11執行數據處理。如果在從處理器11中的數據處理需要被劃分為幾個部分以便執行(如圖10中所示),則多次執行在圖9中所示的DMA傳送序列。
順便提及,在多處理器系統中,每個處理器可以成為主處理器,因此在每個處理器的控制程序中實現了對于DMA傳送結束通知的確定處理功能。因此,在完成DMA傳送后,向所有處理器發出傳送結束通知,因此,在根本不需要所述通知的處理器中也需要進行對于傳送結束通知的確定。(例如參見JP-A-2002-163239)因為在如上所述的現有技術的DMA傳送中每個處理器必須確定從DMA控制器向所有處理器發出的傳送結束通知,因此存在所述處理器上的負荷增加的問題。因為主處理器必須在每次DMA傳送結束時向每個從處理器發出通知(處理開始OK),因此存在所述處理器上的負荷增加的問題。
發明內容
因此,本發明的目的是提供一種可以在DMA傳送中減輕在處理器上的負荷的DMA控制器。
按照本發明,提供了一種DMA傳送裝置,用于在每個處理器具有的本地存儲器和由多個處理器共享的全局存儲器之間執行DMA傳送,所述DMA傳送裝置包括表格,用于管理DMA傳送結束通知要被發送至的目的地;以及,控制部件,用于向通過查詢(reference)所述表格而確定的目的地發出所述DMA傳送結束通知。按照所述配置,DMA傳送裝置直接向特定目的地發出傳送結束通知,而沒有主處理器的干預,以便可以減少在所述處理器上的負荷。因為僅僅向特定從處理器發出所述傳送結束通知,因此消除了對于任何其他從處理器確定傳送結束通知的需要,因此可以減少在所述處理器上的負荷。
在本發明中,所述表格管理要發送DMA傳送結束通知的時間,并且所述控制部件在通過查詢所述表格而確定的定時發出DMA傳送結束通知。按照所述配置,可以改變DMA傳送結束通知的定時,以便可以在不等待每個DMA傳送的結束的情況下而開始對于傳送數據的處理。
在本發明中,所述表格管理作為DMA傳送結束通知要被發送至的目的地的從處理器或者作為DMA傳送結束通知要被發送至的目的地的表格。按照所述配置,如果DMA傳送結束通知要被發送至的目的地被設置為包含所述表格的DMA傳送裝置,則使得有可能連續地執行DMA傳送,并且可以有效地執行多個DMA傳送。
按照本發明,所述DMA傳送裝置向特定目的地直接發出傳送結束通知,而沒有主處理器的干預。因此可以減少在所述處理器上的負荷。因為僅僅向特定從處理器發出傳送結束通知,因此消除了對于任何其他從處理器確定傳送結束通知的需要,因此可以減少在所述處理器上的負荷。
在附圖中圖1是用于示出包含本發明的多處理器系統的配置的方框圖;圖2是用于示出管理表的圖;圖3是用于示出DMA傳送序列的圖;圖4是用于示出DMA傳送序列的圖;圖5是用于示出DMA傳送序列的圖;圖6是用于示出DMA傳送序列的圖;圖7是用于示出流數據的結構的圖;圖8是示出存儲器到存儲器的數據復制的圖;圖9是示出在現有技術中的DMA傳送序列的圖;以及圖10是示出多次執行DMA傳送的序列的圖。
具體實施例方式
圖1是示出包含本發明的多處理器系統的配置的方框圖。如圖1中所示,所述多處理器系統包括通過總線17連接的主處理器10、從處理器11、從處理器12、全局存儲器15和DMA傳送裝置13。處理器的數量不限于三,但是,在所述實施例中,作為例子,描述了三個處理器。
每個處理器具有在執行處理器適當的處理時用作數據存儲器的本地存儲器16。不能從任何其他處理器直接訪問本地存儲器16,并且將處理器到處理器的數據傳送執行為通過全局存儲器15的DMA傳送。所述全局存儲器15是可以由多個處理器共同使用的共享存儲器,并且被用作可以由多個處理器使用的公共緩沖區域以及被用作在多個處理器彼此進行通信時的公共數據的存儲器。
圖2是用于示出DMA傳送裝置13具有的管理表14的圖。在管理表14中將目的地地址、源地址和DMA傳送結束通知目的地ID設置為參數。而且,設置通知定時、DMA傳送完成標記和DMA通道(后述)。管理表14存儲多條記錄,每條記錄包含一組參數。
圖3是用于示出DMA傳送序列的圖。主處理器10向DMA傳送裝置13發出DMA傳送請求。在完成所述DMA傳送時,DMA傳送裝置13查詢管理表14,并且向確定對應于DMA傳送參數(目的地地址和源地址)的從處理器集的目的地ID發出傳送結束通知。在DMA傳送后執行處理時,從處理器11向主處理器10發出結束通知。可以省略向主處理器10發出結束通知。可以設置傳送結束通知要發送至的多個從處理器以便向所述多個從處理器中的每一個從處理器發出傳送結束通知。
圖4是示出DMA傳送序列的另一個示例的圖。例如,將討論下列操作序列執行向全局存儲器15DMA傳送在主處理器10的本地存儲器16中存儲的數據,以及處理在從處理器11中的數據。主處理器10向DMA傳送裝置13發出第一DMA傳送請求。在完成第一DMA傳送時,DMA傳送裝置13查詢管理表14,并且向確定對應于第一DMA傳送參數(目的地地址和源地址)的從處理器集的目的地ID發出傳送結束通知。接著,主處理器10向DMA傳送裝置13發出第二DMA傳送請求。在完成第二DMA傳送時,DMA傳送裝置13查詢管理表14,并且向確定對應于第二DMA傳送參數(目的地地址和源地址)的從處理器集的目的地ID發出傳送結束通知。在DMA傳送后執行處理時,從處理器11向主處理器10發出結束通知。將上述的DMA傳送重復N次,由此可以執行所述處理序列。
圖5是示出DMA傳送序列的另一個示例的圖。在圖5中所示的傳送序列中,從從處理器發出從主處理器發出的DMA傳送請求。主處理器10向從處理器11發出處理開始請求。在執行必要的處理后,從處理器11向DMA傳送裝置13發出DMA傳送請求。在完成所述DMA傳送后,DMA傳送裝置13查詢管理表14,并且向確定對應于DMA傳送參數(目的地地址和源地址)的從處理器集的目的地ID發出傳送結束通知。隨后的處理類似于在前面參照圖4描述的DMA傳送序列中的處理。
按照所述實施例,所述DMA傳送裝置直接向特定從處理器發出傳送結束通知,而沒有主處理器的干預,因此可以減少在DMA傳送中在處理器上的負荷。
圖6是示出DMA傳送序列的另一個示例的圖。發出DMA傳送請求的主處理器10在DMA傳送裝置13具有的管理表14中設置通知定時(,參見圖2)。DMA傳送裝置13查詢管理表14,并且向確定對應于DMA傳送參數(目的地地址和源地址)的從處理器集的目的地ID發出傳送結束通知。所述發出定時被定義為在管理表14中設置的通知定時。因此,如果按照未傳送的數據段的數量定義通知定時,則當未傳送的數據段的數量變得等于或小于按照其來定義在DMA傳送期間的通知定時的數據段的數量時,發出傳送結束通知。DMA傳送裝置13繼續未傳送的數據的DMA傳送,并且在完成所有數據的DMA傳送時,設置完成標記(參見圖2)。從處理器11將處理提前到與DMA傳送并行。從處理器11可以通過查詢在管理表14中的完成標記來確認所有數據的DMA傳送的完成。
當改變發出傳送結束通知的定時時,為了處理具有首標部分和跟隨首標部分的有效負荷部分的結構的流數據(例如如圖7中所示),定義通知定時以便在當首標部分的DMA傳送結束時發出傳送結束通知,由此,從處理器11可以提前與首標相關的處理(首標分析等),而不等待所有數據的DMA傳送的結束。可以按照已傳送的數據段的數量而不是未傳送的數據段的數量來定義通知定時。可以采用通知定時的定時器管理。
圖8示出了如何通過全局存儲器以存儲塊為單位將在主處理器具有的本地存儲器中分配的存儲塊10、11、12和13中的數據復制到在從處理器具有的本地存儲器中的存儲塊100、101、102和103。在這種情況下,需要執行從主處理器具有的本地存儲器到全局存儲器(1、3、5、7)的DMA傳送以及從所述全局處理器到從處理器具有的本地存儲器(2、4、6、8)的DMA傳送。
DMA傳送裝置首先開始DMA傳送1。在完成DMA傳送1時,DMA傳送裝置向DMA傳送裝置發出傳送結束通知。DMA傳送裝置向DMA傳送2分配未使用的DMA通道,并且同時,開始DMA傳送3。此后,同樣,以流水線的方式來執行每個DMA傳送。以DMA傳送順序在管理表中設置DMA傳送參數。DMA傳送裝置接收DMA傳送結束通知,并且執行DMA傳送,由此,與在現有技術中的經由主處理器的DMA傳送相比,可以減輕在處理器上的負荷。
本發明的DMA傳送裝置直接向特定目的地發出傳送結束通知,而沒有主處理器的干預,因此可以減少在所述處理器上的負荷。因為僅僅向特定從處理器發出傳送結束通知,因此消除了對于任何其他從處理器確定傳送結束通知的需要,因此可以減少在所述處理器上的負荷,并且作為用于在包括多個處理器的多處理器系統中執行處理器到處理器的DMA傳送的DMA傳送裝置等,本發明的DMA傳送裝置十分有用。
權利要求
1.一種直接存儲器存取DMA傳送裝置,用于在每個處理器具有的本地存儲器和由多個處理器共享的全局存儲器之間執行DMA傳送,所述DMA傳送裝置包括表格,用于管理DMA傳送結束通知要被發送至的目的地;以及控制器,用于向通過查詢所述表格確定的目的地發出DMA傳送結束通知。
2.按照權利要求1的DMA傳送裝置,其中,所述表格管理要發送DMA傳送結束通知的定時,以及其中所述控制器在通過查詢所述表格確定的定時發出DMA傳送結束通知。
3.按照權利要求2的DMA傳送裝置,其中,所述表格管理按照未傳送的數據段的數量或者已傳送的數據段的數量定義的定時。
4.按照權利要求1的DMA傳送裝置,其中,所述表格管理作為DMA傳送結束通知要被發送至的目的地的從處理器。
5.按照權利要求1的DMA傳送裝置,其中,所述表格按照DMA傳送結束通知要被發送至的目的地管理所述表格。
全文摘要
為了減輕在DMA傳送中在處理器上的負荷,DMA傳送裝置(13)用于執行在每個處理器具有的本地存儲器(16)和由多個處理器共享的全局存儲器(15)之間的DMA傳送,其中,向通過查詢表格(14)確定的目的地發出DMA傳送結束通知,所述表(14)用于管理DMA傳送結束通知要被發送至的目的地。
文檔編號G06F13/20GK101013410SQ20071000672
公開日2007年8月8日 申請日期2007年2月2日 優先權日2006年2月2日
發明者淺田智司, 米津武紀, 永峰聰 申請人:松下電器產業株式會社