專利名稱:直接存儲(chǔ)器存取傳送控制方法和控制裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及DMA(直接存儲(chǔ)器存取)傳送的控制方法和控制裝置,更詳細(xì)的說,是涉及存儲(chǔ)器對(duì)存儲(chǔ)器(memory-to-memory)的DMA傳送的控制方法和控制裝置。
背景技術(shù):
圖9(a)、(b)、(c)、(d)表示在主存儲(chǔ)器的存儲(chǔ)器區(qū)域之間進(jìn)行的存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送的概要。圖9的數(shù)據(jù)處理系統(tǒng)中,CPU(中央處理單元)70、高速緩沖存儲(chǔ)器單元72、主存儲(chǔ)器90、DMA控制器82連接到系統(tǒng)總線80。
高速緩沖存儲(chǔ)器單元72連接在CPU70和系統(tǒng)總線80之間,包括標(biāo)識(shí)符74和高速緩沖存儲(chǔ)器76。高速緩沖存儲(chǔ)器76是存儲(chǔ)一部分主存儲(chǔ)器90中存儲(chǔ)的數(shù)據(jù)的存儲(chǔ)器,標(biāo)識(shí)符74是存儲(chǔ)高速緩沖存儲(chǔ)器76中存儲(chǔ)的數(shù)據(jù)的地址的存儲(chǔ)器。CPU70在高速緩沖存儲(chǔ)器76內(nèi)如有要存取的數(shù)據(jù)時(shí),訪問高速緩沖存儲(chǔ)器76,在高速緩沖存儲(chǔ)器76內(nèi)如沒有要存取的數(shù)據(jù)時(shí),訪問主存儲(chǔ)器90。
主存儲(chǔ)器90是DRAM(dynamic random access memory)等的半導(dǎo)體存儲(chǔ)器,DMA控制器82不通過CPU70,在主存儲(chǔ)器90的存儲(chǔ)器區(qū)域內(nèi)進(jìn)行存儲(chǔ)器對(duì)存儲(chǔ)器的數(shù)據(jù)傳送。存儲(chǔ)器區(qū)域間的數(shù)據(jù)傳送如圖9(a)、(b)、(c)、(d)所示,意為主存儲(chǔ)器90內(nèi)的傳送始端到傳送終端的數(shù)據(jù)傳送。通過DMA控制器82的數(shù)據(jù)傳送(以下稱為DMA數(shù)據(jù)傳送)可以和CPU70的處理并行執(zhí)行。DMA數(shù)據(jù)傳送當(dāng)然是數(shù)據(jù)的移動(dòng),包含數(shù)據(jù)的復(fù)制。
例如多個(gè)命令或命令群使用同一個(gè)數(shù)據(jù)時(shí),不能直接使用原始數(shù)據(jù),多為在主存儲(chǔ)器90內(nèi)將該數(shù)據(jù)復(fù)制使用。DMA傳送以數(shù)據(jù)塊為單位進(jìn)行。圖10(a)表示數(shù)據(jù)塊的一個(gè)例子,數(shù)據(jù)塊DB包括主存儲(chǔ)器90的傳送始端的地址AD1’、AD2’、AD3’、AD4’、AD5’、AD6’、AD7’、AD8’的數(shù)據(jù)DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7、DATA8。各數(shù)據(jù)DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7、DATA8被復(fù)制到主存儲(chǔ)器90的發(fā)送終端的地址AD1、AD2、AD3、AD4、AD5、AD6、AD7、AD8。
DMA控制器82如圖9(a)所示,包括存儲(chǔ)DMA未傳送完的數(shù)據(jù)的寄存器84(以下稱為傳送計(jì)數(shù)器84)和存儲(chǔ)傳送中的數(shù)據(jù)的地址的寄存器86(以下稱為傳送地址86)。在圖10(a)的數(shù)據(jù)塊DB的情況下,傳送計(jì)數(shù)器84中存儲(chǔ)作為初始值的數(shù)據(jù)總數(shù)“8”。每次數(shù)據(jù)的DMA傳送完成,DMA控制器82就使傳送計(jì)數(shù)器84的值減1。
傳送地址86中存儲(chǔ)DMA傳送中數(shù)據(jù)的傳送始端地址和傳送終端地址。在圖10(a)的數(shù)據(jù)塊DB的情況下,作為初始值存儲(chǔ)傳送始端地址AD1’和傳送終端地址AD1。每次數(shù)據(jù)的DMA傳送完成,DMA控制器82就更新傳送始端地址和傳送終端地址。
圖10(b)中表示數(shù)據(jù)塊DB的DMA數(shù)據(jù)傳送的概況。每次數(shù)據(jù)傳送都更新傳送計(jì)數(shù)器84和傳送地址86,依次傳送DATA1~DATA8。如DATA8的DMA傳送完成,傳送計(jì)數(shù)器置“0”(未圖示),數(shù)據(jù)塊DB的DMA傳送結(jié)束。在此,圖中的“AD1’→AD1”表示傳送始端地址是AD1’,傳送終端地址是AD1。
DMA傳送未完成的數(shù)據(jù),在DMA傳送完成前不能存取。圖11表示CPU70存取DMA傳送始端的數(shù)據(jù)的順序的一例。如圖9(b)所示,數(shù)據(jù)塊DB的DMA傳送開始(S160)以后,即使CPU70產(chǎn)生存取DMA傳送終端的數(shù)據(jù)的要求(S162),DMA傳送仍維持原樣繼續(xù)進(jìn)行(S163)。如數(shù)據(jù)塊DB的DMA傳送完成(S164),如圖9(c)所示,DMA控制器82通知CPU70DMA傳送完成(中斷信號(hào)INT)(S166)。由于數(shù)據(jù)塊DB的DMA傳送完成,如圖9(d)所示,CPU70存取DMA傳送后的數(shù)據(jù)(S168)。
例如,如圖12所示,DATA1的傳送完成(S180)以后,在CPU70產(chǎn)生存取DATA7的要求(S162)情況下,DATA2~DATA8的DMA傳送完成(S182,S184,S186,S188,S190,S192,S194)以后,CPU70存取DATA7(S168)。DATA2~DATA8的DMA傳送正進(jìn)行時(shí),CPU70不能存取DATA7,產(chǎn)生等待時(shí)間。當(dāng)然,也可以在CPU70中進(jìn)行與DMA傳送并行的其他的處理。但是在DMA傳送時(shí),在CPU70中并非一定存在可能分配的其他的處理。
發(fā)明內(nèi)容
本發(fā)明的目的是在DMA傳送中可對(duì)數(shù)據(jù)進(jìn)行存取,使DMA傳送中的CPU等待時(shí)間減少。
本發(fā)明的存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送控制方法,包括檢測步驟,檢測出CPU發(fā)出的對(duì)DMA傳送中的數(shù)據(jù)塊中包含的數(shù)據(jù)的存取要求;傳送控制步驟,使CPU比運(yùn)行中的DMA傳送更優(yōu)先地對(duì)所述被檢測出有存取要求的數(shù)據(jù)進(jìn)行存取。
本發(fā)明的DMA傳送控制裝置包括檢測部件,檢測出CPU發(fā)出的對(duì)DMA傳送中的數(shù)據(jù)塊中包含的數(shù)據(jù)的存取要求;傳送控制部件,使CPU比運(yùn)行中的DMA傳送更優(yōu)先地對(duì)所述被檢測出有存取要求的數(shù)據(jù)進(jìn)行存取。通過檢測部件檢測出CPU對(duì)DMA傳送中的數(shù)據(jù)塊包含的數(shù)據(jù)的存取,通過傳送控制部件可將該數(shù)據(jù)優(yōu)先進(jìn)行DMA傳送,因此CPU可用較少的等待時(shí)間存取DMA傳送中的數(shù)據(jù)。
圖1是表示本發(fā)明的主存儲(chǔ)器的存儲(chǔ)器區(qū)域間的DMA傳送控制的一個(gè)實(shí)施例的圖,(a)是表示一個(gè)結(jié)構(gòu)例的圖,(b)是表示DMA傳送狀態(tài)的圖,(c)是表示CPU產(chǎn)生數(shù)據(jù)存取要求的狀態(tài)的圖,(d)是表示檢測出DMA命中(hit),進(jìn)行CPU存儲(chǔ)的數(shù)據(jù)的DMA傳送的狀態(tài)的圖。
圖2(a)是表示DMA控制器將圖1(d)所示的DMA傳送完成后的數(shù)據(jù)送到CPU的狀態(tài)的圖,(b)是表示未檢測出DMA命中,CPU訪問高速緩沖存儲(chǔ)器或主存儲(chǔ)器的狀態(tài)的圖。
圖3是表示圖1(a)所示的DMA控制器的DMA傳送控制順序一例的圖。
圖4是表示圖1(a)所示的DMA控制器的數(shù)據(jù)塊DB的DMA傳送控制順序的一例的圖。
圖5是表示本發(fā)明的存儲(chǔ)器區(qū)域間的DMA傳送控制的其他實(shí)施例的圖,(a)是表示一個(gè)結(jié)構(gòu)例的圖,(b)是表示DMA傳送中CPU產(chǎn)生數(shù)據(jù)存取要求的狀態(tài)的圖,(c)是表示測出DMA命中,向DMA控制器發(fā)送CPU存取的數(shù)據(jù)地址的狀態(tài)的圖,(d)是表示DMA控制器向CPU要求再嘗試數(shù)據(jù)存取的狀態(tài)的圖。
圖6(a)是表示根據(jù)圖5(d)所示的再嘗試要求,CPU在暫時(shí)中斷數(shù)據(jù)存取時(shí),由DMA控制器進(jìn)行DMA傳送的狀態(tài)的圖,(b)是表示DMA控制器將在(a)所示的DMA傳送完成后的數(shù)據(jù)發(fā)送到CPU的狀態(tài)的圖,(c)是表示未檢測出DMA命中,CPU訪問高速緩沖存儲(chǔ)器或主存儲(chǔ)器的狀態(tài)的圖。
圖7是表示圖5(a)所示的DMA控制器的DMA傳送控制順序的一例的圖。
圖8是表示本發(fā)明的存儲(chǔ)器區(qū)域間的DMA傳送控制的其他實(shí)施例的圖,(a)是表示一個(gè)結(jié)構(gòu)例的圖,(b)是表示DMA控制器將DMA傳送完成后的數(shù)據(jù)發(fā)送到緩沖器的狀態(tài)的圖,(c)是表示DMA命中檢測器將(b)中所示的緩沖器的數(shù)據(jù)發(fā)送到CPU的狀態(tài)的圖。
圖9是表示現(xiàn)有的DMA傳送控制的一個(gè)實(shí)施例的圖,(a)是表示一個(gè)結(jié)構(gòu)例的圖,(b)是表示DMA傳送狀態(tài)的圖,(c)是DMA控制器向CPU通知DMA傳送完成的狀態(tài)的圖(d)是表示CPU訪問高速緩沖存儲(chǔ)器或主存儲(chǔ)器的狀態(tài)的圖。
圖10(a)是表示進(jìn)行DMA傳送的單位的數(shù)據(jù)塊的一個(gè)結(jié)構(gòu)例的圖,(b)是表示DMA控制器的傳送計(jì)數(shù)器和傳送地址的值和各數(shù)據(jù)的DMA傳送狀態(tài)的圖。
圖11是表示圖9(a)所示的DMA控制器的DMA傳送控制順序的一例的圖。
圖12是表示圖9(a)所示的DMA控制器的數(shù)據(jù)塊DB的DMA傳送順序的一例的圖。
具體實(shí)施例方式
下面根據(jù)附圖對(duì)本發(fā)明的存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送控制方法和控制裝置的實(shí)施例進(jìn)行詳細(xì)說明。在該例中,假定在主存儲(chǔ)器的存儲(chǔ)器區(qū)域間進(jìn)行存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送。在例示的數(shù)據(jù)處理系統(tǒng)中,CPU70,高速緩沖存儲(chǔ)器單元72、系統(tǒng)總線80、主存儲(chǔ)器90和現(xiàn)有的(圖9(a))相同。而且,DMA傳送的數(shù)據(jù)塊DB和現(xiàn)有的(10(a))相同。
圖1所示的本發(fā)明的存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送控制裝置(DMA控制器)10,包括DMA命中檢測器12,檢測CPU70對(duì)DMA傳送中的數(shù)據(jù)塊內(nèi)包含的數(shù)據(jù)的存取要求。DMA控制器10具有使CPU70比運(yùn)行中的DMA傳送更優(yōu)先地對(duì)在DMA命中檢測器12中被檢測出有存取要求的數(shù)據(jù)進(jìn)行存取的部件的功能。DMA命中檢測器12包括的DMA控制器10,連接在CPU70和系統(tǒng)總線80之間。
DMA命中檢測器12檢測CPU70是否要求存取DMA傳送未完成的數(shù)據(jù)。DMA控制器10最優(yōu)先進(jìn)行時(shí)DMA命中檢測器12檢測出的DMA傳送未完成的數(shù)據(jù)的DMA傳送,將DMA傳送以后的該數(shù)據(jù)發(fā)送到CPU70。
DMA控制器10與現(xiàn)有情況相同包括傳送計(jì)數(shù)器84和傳送地址86,DMA命中檢測器12通過訪問傳送計(jì)數(shù)器84和傳送地址86,可知道DMA傳送未完成的數(shù)據(jù)的地址。CPU70存取數(shù)據(jù)的地址發(fā)送到高速緩沖存儲(chǔ)器單元72和DMA控制器10。DMA命中檢測器12檢測CPU70要求存取的數(shù)據(jù)(以下稱為要求數(shù)據(jù))的地址和DMA傳送未完成的數(shù)據(jù)的地址的一致性。下面,將要求數(shù)據(jù)的DMA傳送未完成的情況稱為“DMA命中”。
在檢測出DMA命中的情況下,要求數(shù)據(jù)的DMA傳送沒有完成。DMA控制器10中斷運(yùn)行中的數(shù)據(jù)塊的DMA傳送,首先進(jìn)行要求數(shù)據(jù)的DMA傳送。如要求數(shù)據(jù)的DMA傳送結(jié)束,DMA控制器10將要求數(shù)據(jù)發(fā)送到MPU70。然后參照傳送計(jì)數(shù)器84和傳送地址86,再次開通中斷的數(shù)據(jù)塊的DMA傳送。
在沒有檢測出DMA命中的情況下,要求數(shù)據(jù)的DMA傳送已經(jīng)完成。在這種情況下,CPU70即使在數(shù)據(jù)塊的DMA傳送沒有結(jié)束時(shí)也可以對(duì)正確的數(shù)據(jù)進(jìn)行存取。CPU70通過高速緩沖存儲(chǔ)器單元72,訪問高速緩沖存儲(chǔ)器76或主存儲(chǔ)器90,存取要求數(shù)據(jù)。
接下來,對(duì)使用這樣的DMA控制器10的DMA傳送控制說明其作用。
圖3表示DMA傳送控制順序的一個(gè)例子。假設(shè)在如圖1(b)所示的DMA控制器10在開始數(shù)據(jù)塊的DMA傳送(S160)以后,CPU70產(chǎn)生存取數(shù)據(jù)的要求(S162)。如圖1(c)所示,CPU70發(fā)出的要求數(shù)據(jù)DATAn的地址ADn被發(fā)送到DMA控制器10和高速緩沖存儲(chǔ)器單元72。DMA控制器10在DMA命中檢測器12中進(jìn)行DMA命中的檢測(S110)。
在檢測出DMA命中的情況下,DMA控制器10中斷運(yùn)行中的數(shù)據(jù)塊的DMA傳送(S112),如圖1(d)所示進(jìn)行要求數(shù)據(jù)的DMA傳送(S114)。在檢測出DMA命中的情況下,DMA控制器10優(yōu)先使用系統(tǒng)總線。如DMA傳送結(jié)束,則如圖2(a)所示,DMA控制器10將要求數(shù)據(jù)(DATAn)從主存儲(chǔ)器90發(fā)送到CPU70(S116)。然后,再次開通中斷的數(shù)據(jù)塊的DMA傳送(S124)。
在沒有檢測出DMA命中的情況下,DMA控制器10中斷運(yùn)行中的數(shù)據(jù)塊的DMA傳送(S112)。如圖2(b)所示,CPU70通過高速緩沖存儲(chǔ)器單元72訪問高速緩沖存儲(chǔ)器76或者主存儲(chǔ)器90(S118)。如CPU70對(duì)要求數(shù)據(jù)的存取結(jié)束,則DMA控制器10再次開通中斷的數(shù)據(jù)塊的DMA傳送(S124)。
如數(shù)據(jù)塊的數(shù)據(jù)全部DMA傳送(S164),DMA控制器10則通知CPU70DMA傳送完成(S166)。
例如,如圖4所示,DMA傳送開始(S160)DATA1的DMA傳送結(jié)束(S180)以后,如產(chǎn)生CPU70對(duì)DATA7的存取要求(S162),DMA控制器10使中斷運(yùn)行中的數(shù)據(jù)塊DB的DMA傳送(S112),首先進(jìn)行DATA7的DMA傳送(S120)。保持在DMA傳送中斷時(shí)傳送計(jì)數(shù)器84內(nèi)的“7”,傳送地址86內(nèi)的“AD2’→AD2”。
如DATA7的DMA傳送完成,DMA控制器10將DATA7發(fā)送到CPU(S122),之后再次開通中斷的數(shù)據(jù)塊DB的DMA傳送(S124)。DATA2~DATA8的DMA傳送完成(S182,S184,S186,S188,S190,S192,S194)以后,DMA控制器10通知CPU70DMA傳送完成(S166)。
與DATA2~DATA8的DMA傳送同時(shí)進(jìn)行,CPU70可運(yùn)行使用DATA7的處理。在圖4所示的例中,DATA7雖被再次DMA傳送(S192),但因?yàn)镃PU70不僅參照DATA7,所以DATA7再次被DMA傳送也沒有問題。圖1(a)中所示的結(jié)構(gòu),是可以在CPU70、高速緩沖存儲(chǔ)器單元72、和DMA控制器10等集成的單處理器中應(yīng)用的結(jié)構(gòu)。
以上說明了本發(fā)明的一個(gè)實(shí)施例,本發(fā)明也可以以其他的方式實(shí)施。例如,如圖5(a)所示,DMA命中檢測器22連接在CPU70和系統(tǒng)總線80之間,DMA控制器20也可以通過系統(tǒng)總線80連接在CPU70和主存儲(chǔ)器90之間。DMA命中檢測器22參照DMA控制器20的傳送計(jì)數(shù)器84和傳送地址86檢測DMA命中。
DMA控制器20如檢測出DMA命中,則使CPU70再次嘗試對(duì)要求數(shù)據(jù)的存取。DMA控制器20在CPU70從暫時(shí)停止對(duì)要求數(shù)據(jù)的存取到再次存取的期間,中斷運(yùn)行中的數(shù)據(jù)塊的DMA傳送,DMA傳送要求數(shù)據(jù)。CPU70在存取DMA傳送完成了的要求數(shù)據(jù)后,DMA控制器20再次開通中斷的數(shù)據(jù)塊的DMA傳送。
圖7表示DMA傳送控制順序的一例。假設(shè)如圖5(b)所示的DMA控制器20在開始數(shù)據(jù)塊的DMA傳送(S160)后產(chǎn)生CPU70對(duì)數(shù)據(jù)存取的要求。從CPU70發(fā)出的要求數(shù)據(jù)DATAn的地址ADn被發(fā)送到DMA命中檢測器22和高速緩沖存儲(chǔ)器單元72,DMA命中檢測器22參照DMA控制器20的傳送計(jì)數(shù)器84和傳送地址86,進(jìn)行DMA命中的檢測。
在檢測出DMA命中時(shí),DMA命中檢測器22如圖5(c)所示,將要求數(shù)據(jù)的地址ADn通過系統(tǒng)總線80發(fā)送到DMA控制器20(S130)。這時(shí)的要求數(shù)據(jù)是DMA傳送未完成的無效數(shù)據(jù)。從DMA命中檢測器22接收地址ADn的DMA控制器20,如圖5(d)所示,要求CPU70再次嘗試(ReTRY)對(duì)要求數(shù)據(jù)的存取(S132)。被要求ReTRY的CPU70,暫時(shí)終止對(duì)要求數(shù)據(jù)的存取,經(jīng)過規(guī)定的時(shí)間后,再次對(duì)要求數(shù)據(jù)進(jìn)行存取。DMA控制器20在CPU70暫時(shí)終止數(shù)據(jù)存取期間,如圖6(a)所示,中斷運(yùn)行中的數(shù)據(jù)塊的DMA傳送(S112),進(jìn)行要求數(shù)據(jù)DATAn的DMA傳送(S134)。
在CPU70再次對(duì)要求數(shù)據(jù)存取時(shí),要求數(shù)據(jù)已被更新為DMA傳送完成后的有效數(shù)據(jù)。如圖6(b)所示,CPU70在存取DATAn后(S136),DMA控制器20再次開通中斷的數(shù)據(jù)塊的DMA傳送(S124)。如數(shù)據(jù)塊的數(shù)據(jù)全部被DMA傳送(S164),DMA控制器20通知CPU70DMA傳送完成(S166)。
在圖7中,在沒有檢測出DMA命中時(shí),如圖6(c)所示,CPU70通過高速緩沖存儲(chǔ)器單元72訪問高速緩沖存儲(chǔ)器76或者主存儲(chǔ)器90。這時(shí),DMA控制器20中斷運(yùn)行中的數(shù)據(jù)塊的DMA傳送(S112),如CPU70結(jié)束對(duì)要求數(shù)據(jù)的存取(S118),再次開通中斷的數(shù)據(jù)塊的DMA傳送。
與圖4相同,DMA傳送開始(S160)DATA1的DMA傳送結(jié)束(S180)以后,即使產(chǎn)生CPU70發(fā)出的對(duì)DATA7的存取要求(S162),也可以先進(jìn)行DATA7的DMA傳送(S120)。與DATA2~DATA8的DMA傳送同時(shí)進(jìn)行,CPU70可運(yùn)行使用DATA7的處理。圖5(a)中所示的結(jié)構(gòu),是可以在CPU70、高速緩沖存儲(chǔ)器單元72、和DMA命中檢測器22等集成的多處理器中應(yīng)用的結(jié)構(gòu)。
如圖8(a)所示,也可以將緩沖器34連接到DMA命中檢測器32。如圖8(b)所示,DMA命中檢測出的數(shù)據(jù)或數(shù)據(jù)塊暫時(shí)存儲(chǔ)在緩沖器34中,對(duì)緩沖器34的數(shù)據(jù)存儲(chǔ),在CPU對(duì)要求數(shù)據(jù)的存取以后進(jìn)行。在CPU70再次存取存儲(chǔ)在緩沖器34中的數(shù)據(jù)時(shí),DMA命中檢測器32將存儲(chǔ)在緩沖器34中的數(shù)據(jù)發(fā)送到CPU70。通過配置緩沖器34,可減少在嘗試要求(ReTRY)的次數(shù)。
以上對(duì)本發(fā)明的特定實(shí)施例進(jìn)行了說明,但本發(fā)明并非限定于此。例如,本說明書中雖然說明了主存儲(chǔ)器的存儲(chǔ)器區(qū)域間的存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送,但本發(fā)明也可以應(yīng)用于連接在系統(tǒng)總線的任意的高速存儲(chǔ)器間的存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送。本發(fā)明在不脫離宗旨的范圍內(nèi),可以以根據(jù)本技術(shù)領(lǐng)域的從業(yè)者的知識(shí)進(jìn)行各種改進(jìn),修正,變形后的形態(tài)來實(shí)施。在產(chǎn)生相同作用或效果的范圍內(nèi),可以以其他技術(shù)替換任意發(fā)明特定事項(xiàng)的形態(tài)來實(shí)施。以由多個(gè)要素構(gòu)成的整體構(gòu)成的發(fā)明特定事項(xiàng)的形態(tài),或整體構(gòu)成由多個(gè)要素構(gòu)成的發(fā)明特定事項(xiàng)的形態(tài)都可以實(shí)施。
根據(jù)本發(fā)明,如CPU要求存取DMA傳送未完成的數(shù)據(jù),首先將該數(shù)據(jù)DMA傳送使CPU可以存取,所以可以減少DMA傳送中的CPU等待時(shí)間。
權(quán)利要求
1.一種DMA傳送控制方法,是在具有通過系統(tǒng)總線連接到CPU(中央處理裝置)的主存儲(chǔ)器的數(shù)據(jù)處理系統(tǒng)中,進(jìn)行存儲(chǔ)器對(duì)存儲(chǔ)器的DMA(直接存儲(chǔ)器存取)傳送的DMA控制器的控制方法,包括以下步驟檢測步驟,檢測CPU發(fā)出的對(duì)包含在DMA傳送中的數(shù)據(jù)塊中的數(shù)據(jù)的存取要求;傳送控制步驟,使CPU比運(yùn)行中的DMA傳送更優(yōu)先地對(duì)被檢測出有所述存取要求的數(shù)據(jù)進(jìn)行存取。
2.如權(quán)利要求1所述的DMA傳送控制方法,其特征在于所述檢測步驟包含判定被檢測出有所述存取要求的數(shù)據(jù)的DMA傳送的結(jié)束/未結(jié)束的步驟;所述傳送控制步驟包括第1步驟,如被檢測出有所述存取要求的數(shù)據(jù)的DMA傳送結(jié)束,使CPU存取所述數(shù)據(jù);第2步驟,如被檢測出有所述存取要求的數(shù)據(jù)的DMA傳送未結(jié)束,則最優(yōu)先DMA傳送該數(shù)據(jù),使CPU存取DMA傳送結(jié)束的所述數(shù)據(jù)。
3.如權(quán)利要求2所述的DMA傳送控制方法,其特征在于所述DMA控制器包括存儲(chǔ)DMA傳送未結(jié)束的數(shù)據(jù)的第1寄存器和存儲(chǔ)DMA傳送中的數(shù)據(jù)的地址的第2寄存器;以及所述檢測步驟,包括檢測被檢測出有所述存取要求的數(shù)據(jù)的地址和由所述第1寄存器和第2寄存器求出的DMA傳送未結(jié)束的數(shù)據(jù)的地址的一致的步驟。
4.如權(quán)利要求2或3所述的DMA傳送控制方法,其特征在于所述DMA控制器連接在CPU和系統(tǒng)總線間,所述第2步驟包括以下步驟中斷運(yùn)行中的DMA傳送;DMA傳送所述DMA傳送未結(jié)束的數(shù)據(jù);使CPU存取DMA傳送結(jié)束的所述數(shù)據(jù);再次開通所述中斷的DMA傳送。
5.如權(quán)利要求2或3所述的DMA傳送控制方法,其特征在于所述DMA控制器通過系統(tǒng)總線與CPU和主存儲(chǔ)器連接,所述第2步驟包括以下步驟要求CPU對(duì)所述DMA傳送未結(jié)束的數(shù)據(jù)再次嘗試存??;CPU在暫時(shí)終止所述數(shù)據(jù)的存儲(chǔ)到再次存取期間,中斷運(yùn)行中的DMA傳送,DMA傳送所述數(shù)據(jù);CPU存取DMA傳送結(jié)束的所述數(shù)據(jù)后,再次開通所述中斷的DMA傳送。
6.一種DMA傳送控制裝置,是在具有通過系統(tǒng)總線連接到CPU的主存儲(chǔ)器的數(shù)據(jù)處理系統(tǒng)中,控制存儲(chǔ)器對(duì)存儲(chǔ)器的DMA傳送的裝置,包括檢測部件,檢測CPU發(fā)出的對(duì)包含在DMA傳送中的數(shù)據(jù)塊中的數(shù)據(jù)的存取要求;傳送控制部件,使CPU比運(yùn)行中的DMA傳送更優(yōu)先地對(duì)被檢測出有所述存取要求的數(shù)據(jù)進(jìn)行存取。
7.如權(quán)利要求6所述的DMA傳送控制裝置,其特征在于所述檢測步驟包含判定被檢測出有所述存取要求的數(shù)據(jù)的DMA傳送未結(jié)束的部件;所述傳送控制部件包括最優(yōu)先DMA傳送所述要求存取的數(shù)據(jù)的部件;使CPU存取DMA傳送結(jié)束的所述數(shù)據(jù)的部件。
8.如權(quán)利要求7所述的DMA傳送控制裝置,其特征在于所述DMA傳送控制裝置包括存儲(chǔ)DMA傳送未結(jié)束的數(shù)據(jù)數(shù)的第1寄存器和存儲(chǔ)DMA傳送中的數(shù)據(jù)的地址的第2寄存器;以及所述檢測部件,包括檢測被檢測出有所述存取要求的數(shù)據(jù)的地址和由所述第1寄存器和第2寄存器求出的DMA傳送未結(jié)束的數(shù)據(jù)的地址的一致的部件。
9.如權(quán)利要求6至8的任意一個(gè)DMA傳送控制裝置,其特征在于所述檢測部件和傳送控制部件連接在CPU和系統(tǒng)總線之間。
10.如權(quán)利要求6至8的任意一個(gè)DMA傳送控制裝置,其特征在于所述檢測部件連接在CPU和系統(tǒng)總線之間,所述傳送控制部件通過系統(tǒng)總線與CPU和主存儲(chǔ)器連接。
11.如權(quán)利要求10的DMA傳送控制裝置,其特征在于所述檢測部件包括暫時(shí)存儲(chǔ)被檢測出所述DMA傳送未結(jié)束的數(shù)據(jù)的緩沖存儲(chǔ)器。
12.如權(quán)利要求6至11的任意一個(gè)DMA傳送控制裝置,其特征在于高速緩沖存儲(chǔ)器連接到CPU和系統(tǒng)總線之間。
全文摘要
本發(fā)明提供一種DMA傳送控制方法及裝置。可以參照DMA傳送中的數(shù)據(jù),使DMA傳送中的CPU等待時(shí)間減少。包括檢測CPU(70)發(fā)出的對(duì)DMA傳送對(duì)象的數(shù)據(jù)的參照要求的檢測部件(12),使用DMA傳送控制裝置(10),使CPU(70)比運(yùn)行中的DMA傳送優(yōu)先參照被檢測出有所述參照要求的數(shù)據(jù)。
文檔編號(hào)G06F12/00GK1494684SQ0280605
公開日2004年5月5日 申請(qǐng)日期2002年2月25日 優(yōu)先權(quán)日2001年3月9日
發(fā)明者上田真 申請(qǐng)人:國際商業(yè)機(jī)器公司