TWI696949B - 直接記憶體存取方法、裝置、專用計算晶片及異構計算系統 - Google Patents

直接記憶體存取方法、裝置、專用計算晶片及異構計算系統 Download PDF

Info

Publication number
TWI696949B
TWI696949B TW108105818A TW108105818A TWI696949B TW I696949 B TWI696949 B TW I696949B TW 108105818 A TW108105818 A TW 108105818A TW 108105818 A TW108105818 A TW 108105818A TW I696949 B TWI696949 B TW I696949B
Authority
TW
Taiwan
Prior art keywords
dma control
control block
length
output data
data
Prior art date
Application number
TW108105818A
Other languages
English (en)
Other versions
TW202004494A (zh
Inventor
廖恬瑜
潘國振
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW202004494A publication Critical patent/TW202004494A/zh
Application granted granted Critical
Publication of TWI696949B publication Critical patent/TWI696949B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

本說明書實施例提供一種直接記憶體存取方法、裝置、專用計算晶片及異構計算系統,在直接記憶體存取方法中,從DMA控制塊指標佇列中讀取DMA控制塊指標。根據DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊。判定DMA控制塊中的DMA控制資訊和輸入資料的總長度。根據DMA控制塊指標以及總長度,將DMA控制資訊和輸入資料搬移至設備記憶體。對輸入資料進行相應的計算,得到輸出資料。將輸出資料寫入設備記憶體,並獲取輸出資料的長度。根據DMA控制資訊以及輸出資料的長度,將輸出資料從設備記憶體搬移至DMA控制塊。

Description

直接記憶體存取方法、裝置、專用計算晶片及異構計算系統
本說明書一個或多個實施例涉及電腦技術領域,尤其涉及一種直接記憶體存取方法、裝置、專用計算晶片及異構計算系統。
異構計算是指由通用中央處理器(Central Processing Unit,CPU)進行資料處理整體流程的控制,當需要進行專用計算時,通用CPU調用專用計算晶片進行計算。具體地,通用CPU需要調用直接記憶體存取(Direct Memory Access,DMA)方法(一種通過專用的硬體模組實現記憶體資料的搬移方法),將專用計算的輸入資料從系統記憶體傳輸到設備記憶體。專用計算晶片完成計算後,再把輸出資料傳輸回系統記憶體。由此可以看出,在一次異構計算中,需要分別進行兩次的DMA傳輸:輸入資料的傳輸和輸出資料的傳輸。 具體地,輸入資料的傳輸過程可以為:1)存取DMA描述符所在佇列的指標,以讀取輸入資料的DMA描述符(用於描述輸入資料的位址和長度)。2)存取輸入資料的DMA描述符,以讀取輸入資料的位址和長度。3)根據輸入資料的位址和長度,讀取輸入資料。輸出資料的傳輸過程可以為:1)存取DMA描述符所在佇列的指標,以讀取輸出資料的DMA描述符(用於描述輸出資料的位址和長度)。2)存取輸出資料的DMA描述符,以讀取輸出資料的位址和長度;3)根據輸出資料的位址和長度,寫入輸出資料。綜上,傳統技術中,一次異構計算的過程需要執行六次存取操作。
本說明書一個或多個實施例描述了一種直接記憶體存取方法、裝置、專用計算晶片及異構計算系統,可以減小DMA傳輸中的資料存取次數,從而可以提高異構計算的性能。 第一方面,提供了一種直接記憶體存取方法,包括: 從直接記憶體存取DMA控制塊指標佇列中讀取DMA控制塊指標; 根據所述DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊,所述DMA控制塊的內容包括DMA控制資訊和輸入資料;所述系統記憶體是指用於儲存通用中央處理器CPU使用的資料的儲存空間; 判定所述DMA控制資訊和所述輸入資料的總長度; 根據所述DMA控制塊指標以及所述總長度,將所述DMA控制資訊和所述輸入資料搬移至設備記憶體;所述設備記憶體是指用於儲存專用計算晶片的資料的儲存空間; 對所述輸入資料進行相應的計算,得到輸出資料; 將所述輸出資料寫入所述設備記憶體; 獲取所述輸出資料的長度; 根據所述DMA控制資訊以及所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述DMA控制塊。 第二方面,提供了一種專用計算晶片,包括:直接記憶體存取DMA長度暫存器、DMA控制塊指標佇列、DMA資料傳輸模組以及專用計算模組; 所述DMA長度暫存器,用於儲存輸入資料的長度以及輸出資料的長度; 所述DMA控制塊指標佇列,用於儲存多個DMA控制塊指標;所述DMA控制塊指標指向系統記憶體中的DMA控制塊;所述DMA控制塊的內容包括DMA控制資訊和輸入資料; DMA資料傳輸模組,用於根據所述輸入資料的長度、所述DMA控制資訊的長度以及所述DMA控制塊指標,將所述DMA控制資訊以及所述輸入資料從系統記憶體搬移至設備記憶體;還用於根據所述DMA控制資訊以及所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述系統記憶體; 所述專用計算模組,用於對所述輸入資料進行計算,並得到所述輸出資料。 第三方面,提供了一種異構計算系統,包括:通用中央處理器CPU、系統記憶體、如上述第二方面提供的專用計算晶片和設備記憶體; 所述通用CPU,用於調用所述專用計算晶片進行異構計算; 所述系統記憶體,用於儲存所述通用CPU使用的資料; 所述設備記憶體,用於儲存所述專用計算晶片所使用的資料。 第四方面,提供了一種直接記憶體存取裝置,包括: 讀取單元,用於從直接記憶體存取DMA控制塊指標佇列中讀取DMA控制塊指標; 判定單元,用於根據所述讀取單元讀取的所述DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊,所述DMA控制塊的內容包括DMA控制資訊和輸入資料;所述系統記憶體是指用於儲存通用中央處理器CPU使用的資料的儲存空間; 所述判定單元,還用於判定所述DMA控制資訊和所述輸入資料的總長度; 搬移單元,用於根據所述讀取單元讀取的所述DMA控制塊指標以及所述判定單元判定的所述總長度,將所述DMA控制資訊和所述輸入資料搬移至設備記憶體;所述設備記憶體是指用於儲存專用計算晶片的資料的儲存空間; 計算單元,用於對所述輸入資料進行相應的計算,得到輸出資料; 寫入單元,用於將所述計算單元計算的所述輸出資料寫入所述設備記憶體; 獲取單元,用於獲取所述輸出資料的長度; 所述搬移單元,還用於根據所述DMA控制資訊以及所述獲取單元獲取的所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述DMA控制塊。 本說明書一個或多個實施例提供的直接記憶體存取方法、裝置、專用計算晶片及異構計算系統,從DMA控制塊指標佇列中讀取DMA控制塊指標。根據DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊。判定DMA控制塊中的DMA控制資訊和輸入資料的總長度。根據DMA控制塊指標以及總長度,將DMA控制資訊和輸入資料搬移至設備記憶體。對輸入資料進行相應的計算,得到輸出資料。將輸出資料寫入設備記憶體,並獲取輸出資料的長度。根據DMA控制資訊以及輸出資料的長度,將輸出資料從設備記憶體搬移至DMA控制塊。 由此可以看出,本說明書提供的方案,在輸入資料的傳輸過程,執行如下兩次存取操作:第一次,存取DMA控制塊指標佇列,以讀取DMA控制塊指標。第二次,存取DMA控制塊指標,以讀取DMA控制資訊和輸入資料。相比傳統的技術方案,減少了對DMA描述符的存取。在對輸入資料進行相應的計算之後,可以直接根據DMA控制資訊,將輸出資料搬移至DMA控制塊。也即輸出資料的傳輸過程,只執行一次輸出資料的存取,不需要再執行DMA描述符所在佇列的指標以及輸出資料的描述符的存取操作。綜上,相比傳統技術,兩次的DMA傳輸可以減少3次存取操作。這可以大大提升資料的DMA傳輸效率,進而可以提高異構計算的性能。
下面結合附圖,對本說明書提供的方案進行描述。 本說明書一個實施例提供的直接記憶體存取方法可以應用於如圖1所示的異構計算系統中,該異構計算系統可以包括:通用CPU10、系統記憶體20、專用計算晶片30以及設備記憶體40,其中,通用CPU10和專用計算晶片30也可以稱為異構計算系統中的兩個計算單元。 通用CPU10用於實現異構計算的資料處理主要流程的控制。具體包括:a.異構計算輸入資料的預處理和準備。b.調用專用計算晶片進行異構計算。c.查詢異構計算結果(也稱輸出資料)返回。d.進行異構計算輸出資料的後處理和輸出結果。 系統記憶體20用於儲存通用CPU10使用的資料。在一種實現方式中,其可以以DMA控制塊(一種資料結構)的形式來儲存使用的資料,該DMA控制塊在系統記憶體20中佔用一個物理上連續的位址空間。以使用的資料包括輸入資料和輸出資料為例來說,該DMA控制塊的內容可以包括DMA控制資訊、輸入資料和輸出資料。其中,輸入資料所佔用的空間也可以稱為輸入資料塊。同樣,輸出資料所佔用的空間也可以稱為輸出資料塊。具體地,通用CPU10可以在進行異構計算時,根據當前異構計算方法,判定輸入資料的長度和輸出資料的長度。需要說明的是,在本說明書中,對一次特定的異構計算,其對應的輸入資料以及輸入資料的長度和輸出資料的長度通常是判定的。之後可以構造出DMA控制資訊,具體的構造過程後續進行說明。由此,就得到了DMA控制塊的部分內容(DMA控制資訊和輸入資料)。在得到DMA控制塊的部分內容之後,通用CPU10可以將該部分內容寫入系統記憶體20的一個物理上連續的位址空間內。可以理解的是,由於輸出資料的長度也是判定的,所以,在上述部分內容之後通常會連續地預留上述長度的位址空間,以用於寫入輸出資料。系統記憶體20中寫入部分內容的位址空間與預留的位址空間就構成了上述DMA控制塊。總之,針對一次異構計算,在系統記憶體20中就可以構成一個DMA控制塊。 需要說明的是,上述DMA控制資訊可以包括:輸入資料的偏移位址、輸出資料的偏移位址以及計算完成標誌。其中,輸入資料的偏移位址可以佔用32個bit位元(即4個位元組),其可以是指輸入資料所佔用的空間(或者輸入資料塊)相對DMA控制塊起始位址的偏移量。具體地,根據DMA控制塊起始位址以及該偏移位址,可以判定輸入資料在系統記憶體20中的實際位址。輸出資料的偏移位址的定義與輸入資料的偏移位址的定義相同。計算完成標誌可以佔用1個bit位元(擴展為4個位元組),其可以是在異構計算前被通用CPU10清0。在異構計算完成後,專用計算晶片30將該標誌位元改寫為1。CPU10通過循環該計算完成標誌,確認異構計算是否完成。 專用計算晶片30用於配合通用CPU完成專用計算(如,矩陣乘以及大數模乘等)功能。該專用計算晶片30例如可以為現場可程式設計閘陣列(Field-Programmable Gate Array,FPGA)晶片,專用積體電路(Application Specific Integrated Circuit,ASIC)晶片,圖形處理器(Graphics Processing Unit,GPU)晶片等。通用CPU10計算效率較低,使用專用計算晶片30進行計算,性價比更高。 設備記憶體40用於儲存專用計算晶片30的資料。具體地,當開始進行異構計算時,專用計算晶片30可以從設備記憶體40中讀取輸入資料。當異構計算完成時,可以將輸出資料寫入設備記憶體40。 圖1中,專用計算晶片30具體可以包括:DMA長度暫存器31、DMA控制塊指標佇列32、DMA資料傳輸模組 33以及專用計算模組34。 DMA長度暫存器31用於儲存輸入資料的長度以及輸出資料的長度。通常對於一次特定的異構計算,輸入資料的長度以及輸出資料的長度是固定的。也即通用CPU10可以根據當前所執行的異構計算方法來判定上述長度。 DMA控制塊指標佇列32用於儲存多個DMA控制塊指標,該DMA控制塊指標指向系統記憶體20中的DMA控制塊,其可以佔用32bit位元。具體地,在系統記憶體20中每構成一個DMA控制塊,通用CPU10就可以向DMA控制塊指標佇列32寫入與該DMA控制塊對應的DMA控制塊指標。由於針對一次異構計算就可以構成一個DMA控制塊,所以DMA控制塊指標也是與一次異構計算相對應的。當異構處理系統中有多個進程處理任務時,DMA控制塊指標佇列32中的多個DMA控制塊指標就可以被同時讀取,由此可以實現多次異構計算可以並行進行,這可以大大提高異構計算的效率。需要說明的是,此處的多次異構計算屬於同一類型,如,均為加密計算等。 DMA資料傳輸模組33用於根據輸入資料的長度、DMA控制資訊的長度以及DMA控制塊指標,將DMA控制資訊以及輸入資料從系統記憶體20搬移至設備記憶體40;還用於根據DMA控制資訊以及輸出資料的長度,將輸出資料從設備記憶體40搬移至系統記憶體20。 專用計算模組34用於實現專用計算功能。具體地,用於對輸入資料進行計算,並得到輸出資料。 如前所述,圖1中的通用CPU10可以調用專用計算晶片30進行異構計算。為了提高異構計算的性能,本說明書對直接記憶體存取方法進行了改進。在執行本說明書提供的用於異構計算的直接記憶體存取方法之前,可以先執行如下步驟: 1)通用CPU10根據當前異構計算方法,判定輸入資料的長度和輸出資料的長度,並把輸入資料的長度和輸出資料的長度寫入DMA長度暫存器31。 2)通用CPU10準備異構計算的輸入資料,並構造DMA控制資訊。由上述內容可知,DMA控制資訊可以包括:輸入資料的偏移位址、輸出資料的偏移位址以及計算完成標誌。當DMA控制塊中的內容按照DMA控制資訊、輸入資料以及輸出資料存放時,對輸入資料的偏移位址,可以根據DMA控制資訊的長度來判定。由於DMA控制資訊的長度=輸入資料的偏移位址的長度+輸出資料的偏移位址的長度+計算完成標誌的長度=4+4+4=12。因此,輸入資料的偏移位址可以為:12(此處為10進制表示方法)。對輸出資料的偏移位址,可以根據DMA控制資訊與輸入資料的總長度來判定。假設輸入資料的長度為100個位元組,那麼輸出資料的偏移位址為:12+100=112(此處為10進制表示方法)。在完成上述構造過程之後,可以將DMA控制資訊以及輸入資料寫入系統記憶體20的一個物理上連續的位址空間內,並將計算完成標誌清0。 可以理解的是,由於輸出資料的長度也是判定的,所以,在完成上述寫入過程之後可以連續地預留上述長度的位址空間,以用於寫入輸出資料。系統記憶體20中寫入資料的位址空間與預留的位址空間就構成了一個DMA控制塊。 3)通用CPU10向DMA控制塊指標佇列32中寫入DMA控制塊指標,該DMA控制塊指標指向構成的DMA控制塊的起始位址。 需要說明的是,針對多次異構計算,當該多次異構計算屬於同一類型(如,均為加密計算)時,上述步驟1)可以只執行一次,而步驟2)和步驟3)則可以是根據異構計算的次數迴圈多次執行的。 可以理解的是,在DMA控制塊指標佇列32中寫入DMA控制塊指標之後,就可以執行本說明書提供的用於異構計算的直接記憶體存取方法。 圖2為本說明書一個實施例提供的直接記憶體存取方法流程圖。所述方法的執行主體可以為圖1中的專用計算晶片30。如圖2所示,所述方法具體可以包括: 步驟210,從DMA控制塊指標佇列中讀取DMA控制塊指標。 此處的DMA控制塊指標指向DMA控制塊的起始位址,從而根據該指標可以直接對DMA控制塊的內容進行存取,由此可以減少對系統記憶體20的存取次數,從而可以降低DMA傳輸延遲。 具體地,專用計算晶片30可以循環檢查DMA控制塊指標佇列32是否為空。如果不為空,則可以從佇列的頭部讀取DMA控制塊指標。本說明書提供的DMA控制塊指標佇列32由於可以同時存放多個DMA控制塊指標,所以可以更加方便的支持DMA非同步作業,更加方便的支援多進程各自獨立進行DMA操作,提高了DMA的傳輸效率。 步驟220,根據DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊。 以圖1為例來說,當讀取DMA控制塊指標A時,可以判定DMA控制塊A;當讀取DMA控制塊指標B時,可以判定DMA控制塊B。可以理解的是,在該步驟中讀取到的DMA控制塊的內容只包括DMA控制資訊和輸入資料。 步驟230,判定DMA控制資訊和輸入資料的總長度。 根據上述內容可知,本說明書中的DMA控制資訊可以包括:輸入資料的偏移位址、輸出資料的偏移位址以及計算完成標誌,且其具有固定長度。該固定長度為上述三者的長度之和。在DMA控制資訊的長度固定時,上述總長度的判定過程可以為:從DMA長度暫存器31中讀取輸入資料的長度。根據固定長度以及輸入資料的長度,判定總長度。 步驟240,根據DMA控制塊指標以及總長度,將DMA控制資訊和輸入資料搬移至設備記憶體。 此處可以是由DMA資料傳輸模組33根據DMA控制塊指標以及總長度,將DMA控制資訊和輸入資料搬移至設備記憶體40。 在一種實現方式中,在執行上述搬移操作之前,可以先在設備記憶體40中劃分一塊物理上連續的位址空間。之後,可以根據DMA控制塊指標以及總長度,從對應的DMA控制塊中讀取DMA控制資訊和輸入資料。此處,由於DMA控制塊在系統記憶體20中佔用物理上連續的位址空間,所以上述讀取的操作也可以理解為是一種連讀的讀取操作。將DMA控制資訊和輸入資料寫入設備記憶體40中預先劃分的物理上連續的位址空間。可以理解的是,在執行上述寫入操作之後,DMA控制資訊和輸入資料在設備記憶體40中的起始位址是判定的。 步驟250,對輸入資料進行相應的計算,得到輸出資料。 此處,可以是調用專用計算模組34對輸入資料進行相應的計算。具體地,可以根據步驟240中判定的起始位址以及DMA控制資訊中輸入資料的偏移位址,判定輸入資料在設備記憶體40的實際位址。之後,可以根據該實際位址,從設備記憶體40中讀取該資料登錄,並調用專用計算模組34對輸入資料進行相應的計算。 步驟260,將輸出資料寫入設備記憶體。 具體地,可以根據步驟240中判定的起始位址以及DMA控制資訊中輸出資料的偏移位址,判定輸出資料在設備記憶體40的實際位址。之後,可以將輸出資料寫入設備記憶體40中該實際位址對應的儲存空間。 步驟270,獲取輸出資料的長度。 如,可以是從DMA長度暫存器31中讀取輸出資料的長度。 步驟280,根據DMA控制資訊以及輸出資料的長度,將輸出資料從設備記憶體搬移至DMA控制塊。 具體地,可以是根據DMA控制資訊中的輸出資料的偏移位址以及輸出資料的長度,將輸出資料從設備記憶體40搬移至DMA控制塊。該搬移過程具體可以為:獲取DMA控制資訊和輸入資料在設備記憶體40的起始位址。根據偏移位址以及起始位址,判定輸出資料在設備記憶體40的第一實際位址。根據偏移位址以及DMA控制塊指標,判定輸出資料在DMA控制塊的第二實際位址。根據第一實際位址以及輸出資料的長度,從設備記憶體40中讀取輸出資料。將輸出資料寫入DMA控制塊中第二實際位址對應的位置。因為DMA控制塊位於系統記憶體20中,所以該寫入的步驟也可以為:將輸出資料寫入系統記憶體20中第二實際位址對應的位置。 在執行完成步驟280之後,專用計算晶片30可以對DMA控制資訊中的計算完成標誌進行改寫,如,可以將計算完成標誌改寫為1。通用CPU10可以循環計算完成標誌,當計算完成標誌為1時,表示該異構計算完成,可以使用系統記憶體20中的輸出資料。 綜上,本說明書實施例提供的直接記憶體存取方法,可以避免單獨的輸出資料的DMA傳輸對系統記憶體的存取,利用從系統記憶體中獲取輸入資料的同時獲取了輸出資料的偏移位址。從而在異構計算完成後,直接根據該偏移位址進行輸出資料的搬移。避免了通用CPU在其中的操作,減少了整個異構計算的延遲。此外,本說明書提供的DMA塊指標佇列每次只需要寫入一個32bit的DMA塊指標,資料量很小,直接對應一個通用CPU的原子寫操作,提高了多進程進行併發操作的效率。 與上述直接記憶體存取方法對應地,本說明書一個實施例還提供的一種直接記憶體存取裝置,如圖3所示,該裝置可以包括: 讀取單元301,用於從直接記憶體存取DMA控制塊指標佇列中讀取DMA控制塊指標。 判定單元302,用於根據讀取單元301讀取的DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊,該DMA控制塊的內容包括DMA控制資訊和輸入資料。上述系統記憶體是指用於儲存通用中央處理器CPU使用的資料的儲存空間。 判定單元302,還用於判定DMA控制資訊和輸入資料的總長度。 可選地,DMA控制資訊可以具有固定長度。判定單元302具體可以用於: 從DMA長度暫存器中讀取輸入資料的長度。該輸入資料的長度是由通用CPU根據當前所執行的異構計算方法判定的。 根據固定長度以及輸入資料的長度,判定總長度。 搬移單元303,用於根據讀取單元301讀取的DMA控制塊指標以及判定單元32判定的總長度,將DMA控制資訊和輸入資料搬移至設備記憶體。該設備記憶體是指用於儲存專用計算晶片的資料的儲存空間。 此處的搬移單元303可以由圖1中的DMA資料傳輸模組33實現。 計算單元304,用於對輸入資料進行相應的計算,得到輸出資料。 此處的計算單元304可以由圖1中的專用計算模組34實現。 寫入單元305,用於將計算單元304計算的輸出資料寫入設備記憶體。 獲取單元306,用於獲取輸出資料的長度。 搬移單元303,還用於根據DMA控制資訊以及獲取單元306獲取的輸出資料的長度,將輸出資料從設備記憶體搬移至DMA控制塊。 可選地,上述DMA控制資訊可以包括輸出資料的偏移位址。 搬移單元303具體可以用於: 根據輸出資料的偏移位址以及輸出資料的長度,將輸出資料從設備記憶體搬移至DMA控制塊。 本說明書上述實施例裝置的各功能模組的功能,可以通過上述方法實施例的各步驟來實現,因此,本說明書一個實施例提供的裝置的具體工作過程,在此不復贅述。 本說明書一個實施例提供的直接記憶體存取裝置,讀取單元301從直接記憶體存取DMA控制塊指標佇列中讀取DMA控制塊指標。判定單元302根據DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊。判定單元302,還用於判定DMA控制資訊和輸入資料的總長度。搬移單元303根據DMA控制塊指標以及總長度,將DMA控制資訊和輸入資料搬移至設備記憶體。計算單元304對輸入資料進行相應的計算,得到輸出資料。寫入單元305將輸出資料寫入設備記憶體。獲取單元306獲取輸出資料的長度。搬移單元303根據DMA控制資訊以及輸出資料的長度,將輸出資料從設備記憶體搬移至DMA控制塊。由此,以提高異構計算的性能。 需要說明的是,本說明書實施例提供的直接記憶體存取裝置可以為圖1中專用計算晶片30中的一個模組或者單元。 本領域技術人員應該可以意識到,在上述一個或多個示例中,本說明書所描述的功能可以用硬體、軟體、韌體或它們的任意組合來實現。當使用軟體實現時,可以將這些功能儲存在電腦可讀媒體中或者作為電腦可讀媒體上的一個或多個指令或代碼進行傳輸。 以上所述的具體實施方式,對本說明書的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本說明書的具體實施方式而已,並不用於限定本說明書的保護範圍,凡在本說明書的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本說明書的保護範圍之內。
10‧‧‧通用CPU 20‧‧‧系統記憶體 30‧‧‧專用計算晶片 31‧‧‧DMA長度暫存器 32‧‧‧DMA控制塊指標佇列 33‧‧‧DMA資料傳輸模組 34‧‧‧專用計算模組 40‧‧‧設備記憶體 210、220、230、240、250、260、270、280‧‧‧步驟 301‧‧‧讀取單元 302‧‧‧判定單元 303‧‧‧搬移單元 304‧‧‧計算單元 305‧‧‧寫入單元 306‧‧‧獲取單元
為了更清楚地說明本說明書實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。 圖1為本說明書提供的異構計算系統結構示意圖; 圖2為本說明書一個實施例提供的直接記憶體存取方法流程圖; 圖3為本說明書一個實施例提供的直接記憶體存取裝置示意圖。

Claims (8)

  1. 一種直接記憶體存取方法,其包括:從直接記憶體存取DMA控制塊指標佇列中讀取DMA控制塊指標;根據所述DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊,所述DMA控制塊的內容包括DMA控制資訊和輸入資料;所述系統記憶體是指用於儲存通用中央處理器CPU使用的資料的儲存空間;判定所述DMA控制資訊和所述輸入資料的總長度;根據所述DMA控制塊指標以及所述總長度,將所述DMA控制資訊和所述輸入資料搬移至設備記憶體;所述設備記憶體是指用於儲存專用計算晶片的資料的儲存空間;對所述輸入資料進行相應的計算,得到輸出資料;將所述輸出資料寫入所述設備記憶體;獲取所述輸出資料的長度;根據所述DMA控制資訊以及所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述DMA控制塊。
  2. 如申請專利範圍第1項所述的方法,其中所述DMA控制資訊包括所述輸出資料的偏移位址;所述根據所述DMA控制資訊以及所述輸出資料的長度,將所述設備記憶體的所述輸出資料搬移到所述DMA控制塊,包括: 根據所述輸出資料的偏移位址以及所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述DMA控制塊。
  3. 如申請專利範圍第1項所述的方法,其中所述DMA控制資訊具有固定長度;所述判定所述DMA控制資訊和所述輸入資料的總長度,包括:從DMA長度暫存器中讀取所述輸入資料的長度;所述輸入資料的長度是由所述通用CPU根據當前所執行的異構計算方法判定的;根據所述固定長度以及所述輸入資料的長度,判定所述總長度。
  4. 一種專用計算晶片,其包括:直接記憶體存取DMA長度暫存器、DMA控制塊指標佇列、DMA資料傳輸模組以及專用計算模組;所述DMA長度暫存器,用於儲存輸入資料的長度以及輸出資料的長度;所述DMA控制塊指標佇列,用於儲存多個DMA控制塊指標;所述DMA控制塊指標指向系統記憶體中的DMA控制塊;所述DMA控制塊的內容包括DMA控制資訊和輸入資料;DMA資料傳輸模組,用於根據所述輸入資料的長度、所述DMA控制資訊的長度以及所述DMA控制塊指標,將 所述DMA控制資訊以及所述輸入資料從系統記憶體搬移至設備記憶體;還用於根據所述DMA控制資訊以及所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述系統記憶體;所述專用計算模組,用於對所述輸入資料進行計算,並得到所述輸出資料;其中所述系統記憶體用於儲存所述通用CPU使用的資料,以及所述設備記憶體用於儲存所述專用計算晶片所使用的資料。
  5. 一種異構計算系統,其包括:通用中央處理器CPU、系統記憶體、如申請專利範圍第4項所述的專用計算晶片和設備記憶體;所述通用CPU,用於調用所述專用計算晶片進行異構計算。
  6. 一種直接記憶體存取裝置,其包括:讀取單元,用於從直接記憶體存取DMA控制塊指標佇列中讀取DMA控制塊指標;判定單元,用於根據所述讀取單元讀取的所述DMA控制塊指標,在系統記憶體中判定對應的DMA控制塊,所述DMA控制塊的內容包括DMA控制資訊和輸入資料;所述系統記憶體是指用於儲存通用中央處理器CPU使用的資料的儲存空間; 所述判定單元,還用於判定所述DMA控制資訊和所述輸入資料的總長度;搬移單元,用於根據所述讀取單元讀取的所述DMA控制塊指標以及所述判定單元判定的所述總長度,將所述DMA控制資訊和所述輸入資料搬移至設備記憶體;所述設備記憶體是指用於儲存專用計算晶片的資料的儲存空間;計算單元,用於對所述輸入資料進行相應的計算,得到輸出資料;寫入單元,用於將所述計算單元計算的所述輸出資料寫入所述設備記憶體;獲取單元,用於獲取所述輸出資料的長度;所述搬移單元,還用於根據所述DMA控制資訊以及所述獲取單元獲取的所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述DMA控制塊。
  7. 如申請專利範圍第6項所述的裝置,其中所述DMA控制資訊包括所述輸出資料的偏移位址;所述搬移單元具體用於:根據所述輸出資料的偏移位址以及所述輸出資料的長度,將所述輸出資料從所述設備記憶體搬移至所述DMA控制塊。
  8. 如申請專利範圍第6項所述的裝置,其中所述DMA控制資訊具有固定長度;所述判定單元具體用於: 從DMA長度暫存器中讀取所述輸入資料的長度;所述輸入資料的長度是由所述通用CPU根據當前所執行的異構計算方法判定的;根據所述固定長度以及所述輸入資料的長度,判定所述總長度。
TW108105818A 2018-05-21 2019-02-21 直接記憶體存取方法、裝置、專用計算晶片及異構計算系統 TWI696949B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810488487.0 2018-05-21
CN201810488487.0A CN110515872B (zh) 2018-05-21 2018-05-21 直接内存存取方法、装置、专用计算芯片及异构计算系统

Publications (2)

Publication Number Publication Date
TW202004494A TW202004494A (zh) 2020-01-16
TWI696949B true TWI696949B (zh) 2020-06-21

Family

ID=68616539

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108105818A TWI696949B (zh) 2018-05-21 2019-02-21 直接記憶體存取方法、裝置、專用計算晶片及異構計算系統

Country Status (3)

Country Link
CN (1) CN110515872B (zh)
TW (1) TWI696949B (zh)
WO (1) WO2019223383A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021052391A1 (zh) 2019-09-18 2021-03-25 华为技术有限公司 一种构建中间表达的方法、编译器和服务器
CN111190842B (zh) * 2019-12-30 2021-07-20 Oppo广东移动通信有限公司 直接存储器访问、处理器、电子设备和数据搬移方法
CN113342721B (zh) * 2021-07-06 2022-09-23 无锡众星微系统技术有限公司 存储控制器dma设计方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US20010018719A1 (en) * 2000-02-29 2001-08-30 Francis Nicholas James Method and apparatus for DMA data transfer
US6904473B1 (en) * 2002-05-24 2005-06-07 Xyratex Technology Limited Direct memory access controller and method of filtering data during data transfer from a source memory to a destination memory
CN104317754A (zh) * 2014-10-15 2015-01-28 中国人民解放军国防科学技术大学 面向异构计算系统的跨步数据传输优化方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1214592C (zh) * 2002-08-06 2005-08-10 华为技术有限公司 多通道数据直接内存访问系统和方法
CN100495373C (zh) * 2003-12-05 2009-06-03 联发科技股份有限公司 虚拟先进先出直接存储器存取装置
US7533198B2 (en) * 2005-10-07 2009-05-12 International Business Machines Corporation Memory controller and method for handling DMA operations during a page copy
CN100395737C (zh) * 2006-06-08 2008-06-18 杭州华三通信技术有限公司 一种在内存和数字信号处理器之间传送数据的方法
US8250252B1 (en) * 2010-06-29 2012-08-21 Qlogic, Corporation System and methods for using a DMA module for a plurality of virtual machines
CN102467473B (zh) * 2010-11-03 2015-02-11 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
US9239796B2 (en) * 2011-05-24 2016-01-19 Ixia Methods, systems, and computer readable media for caching and using scatter list metadata to control direct memory access (DMA) receiving of network protocol data
CN103377170B (zh) * 2012-04-26 2015-12-02 上海宝信软件股份有限公司 异构处理器间spi高速双向对等数据通信系统
CN103500149A (zh) * 2013-09-29 2014-01-08 华为技术有限公司 直接内存访问控制器和直接内存访问控制方法
CN109117095B (zh) * 2015-10-10 2021-06-15 北京忆芯科技有限公司 NVMe协议处理器及其处理方法
CN105512005B (zh) * 2015-12-12 2018-08-03 中国航空工业集团公司西安航空计算技术研究所 控制/远程节点与总线监控节点同步工作的电路及方法
CN105656805B (zh) * 2016-01-20 2018-09-25 中国人民解放军国防科学技术大学 一种基于控制块预分配的分组接收方法和装置
CN106339338B (zh) * 2016-08-31 2019-02-12 天津国芯科技有限公司 一种可提高系统性能的数据传输方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US20010018719A1 (en) * 2000-02-29 2001-08-30 Francis Nicholas James Method and apparatus for DMA data transfer
US6904473B1 (en) * 2002-05-24 2005-06-07 Xyratex Technology Limited Direct memory access controller and method of filtering data during data transfer from a source memory to a destination memory
CN104317754A (zh) * 2014-10-15 2015-01-28 中国人民解放军国防科学技术大学 面向异构计算系统的跨步数据传输优化方法

Also Published As

Publication number Publication date
CN110515872B (zh) 2020-07-31
CN110515872A (zh) 2019-11-29
WO2019223383A1 (zh) 2019-11-28
TW202004494A (zh) 2020-01-16

Similar Documents

Publication Publication Date Title
US9858192B2 (en) Cross-page prefetching method, apparatus, and system
TWI696949B (zh) 直接記憶體存取方法、裝置、專用計算晶片及異構計算系統
TWI512466B (zh) 在複數執行緒處理單元中的效率式記憶體虛擬化
KR101720676B1 (ko) 대용량 저장소 디바이스들을 관리하기 위한 장치 및 방법
US20200159681A1 (en) Information processor with tightly coupled smart memory unit
US11210020B2 (en) Methods and systems for accessing a memory
KR20120123127A (ko) 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치
EP3657337B1 (en) Method, apparatus, device and storage medium for accessing static random access memory
WO2018027839A1 (zh) 一种页表缓存tlb中表项的访问方法,及处理芯片
US20180018095A1 (en) Method of operating storage device and method of operating data processing system including the device
KR102287677B1 (ko) 데이터 액세스 방법, 장치, 기기 및 저장 매체
WO2015176664A1 (zh) 一种数据操作的方法、设备和系统
CN113641596B (zh) 缓存管理方法、缓存管理装置、处理器
TWI453584B (zh) 處理非對準式記憶體存取的設備、系統及方法
JP6679570B2 (ja) データ処理装置
CN117312330B (zh) 基于便签式存储的向量数据聚集方法、装置及计算机设备
WO2022068328A1 (zh) 数据迁移的方法、装置、处理器和计算设备
US20020169900A1 (en) Direct memory access controller, and direct memory access control method
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
US20220156210A1 (en) Processing and storage circuit
KR102400977B1 (ko) 프로세서를 통한 페이지 폴트 처리 방법
CN115033500A (zh) 缓存系统模拟方法、装置、设备和存储介质
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法
WO2014206234A1 (zh) 缓存方法及装置
CN114780466B (zh) 一种基于dma的数据复制延时的优化方法