專利名稱:直接存儲訪問控制器的制作方法
技術領域:
本發(fā)明涉及一種控制器,尤其涉及一種直接存儲訪問控制器(DirectMemory Access Controller,DMAC)。
背景技術:
直接存儲訪問(Direct Memory Access,DMA)通道,是指在沒有主處理器干預的設備間直接交換數據的通道。對DMA通道的控制,一般由DMA控制器完成。
目前,對DMA通道的控制,一般需要主處理器對每個連續(xù)的地址重新配置一次,而且不同的DMA通道之間的直接切換,需要CPU來參與,這對于CPU資源有限、多個DMA通道任務間頻繁切換,且每個DMA通道所要傳輸的地址不連續(xù)的設備而言,是很難實現的。因此,能否提出一種DMA控制器,只需占用少量的CPU資源就可以實現多個DMA通道任務間的頻繁切換,已經成為業(yè)界亟待解決的問題。
發(fā)明內容
本發(fā)明所要解決的技術問題在于提供一種直接存儲訪問控制器,只需占用少量的CPU資源就可以實現多個DMA通道任務間的頻繁切換。
為解決上述問題,本發(fā)明提供一種直接存儲訪問控制器,在CPU對節(jié)點設備提出的直接存儲訪問通道中斷請求進行初始化配置后,控制節(jié)點設備與非易失型存儲器之間直接交換數據,該直接存儲訪問控制器包括中斷控制器、分割單元、寄存器組、邏輯地址暫存器接口、節(jié)點設備接口、主控制器,其中,主控制器,用于控制和協調各模塊的工作,并在直接存儲訪問通道結束傳輸后發(fā)出傳輸結束信號給CPU;寄存器組,用于提供一個與CPU通信的接口,存儲有處理器發(fā)出的命令以及配置的參數,包括通道中斷請求的優(yōu)先級;節(jié)點設備接口,用于提供與節(jié)點設備之間的通信協議,包括接收來自節(jié)點設備的直接存儲訪問通道中斷請求,在主控制器的控制下給出該直接存儲訪問通道被服務的信號,并從該節(jié)點設備讀出或寫入數據;中斷控制器,與主控制器、寄存器組、節(jié)點設備相連,用于根據節(jié)點設備發(fā)出的直接存儲訪問通道的中斷請求優(yōu)先級參數,與自身的中斷響應策略來確定向主控制器提出中斷請求的時間;分割單元,與主控制器、節(jié)點設備接口、邏輯地址暫存器接口、非易失型存儲器接口相連,用于在主控制器的控制下,根據所述寄存器組中存儲的參數,將長的直接存儲訪問傳輸分割成多個短的直接存儲訪問傳輸,分割的原則是非易失型存儲器接口每次訪問非易失型存儲器時,地址空間必須連續(xù)、塊對齊且最大的塊數在預設的最大允許傳輸塊數之內,分割后獲得本次傳輸的首邏輯塊地址和傳輸塊數參數;邏輯地址暫存器接口,用于在分割模塊的控制下,從邏輯地址暫存器中讀出本次直接存儲訪問通道傳輸的數據存儲在非易失型存儲器中的簇鏈結構信息;非易失型存儲器接口,用于提供與非易失型存儲器通信的協議,在主控制器的控制下,根據分割單元獲得的本次傳輸的參數,從非易失型存儲器中讀出或寫入數據。
利用本發(fā)明所述的DMA控制器,多個DMA通道任務間的切換工作可以自主完成,僅需少量的CPU資源,可以將長的不連續(xù)的傳輸地址自動切割為連續(xù)的,因此允許每個DMA通道所要傳輸的地址不連續(xù)。同時,DMA通道初始化配置簡單,只需要配置通道優(yōu)先級、簇鏈結構起始地址、首字節(jié)相對第一簇的偏移量、傳輸長度和傳輸方向等基本參數即可。而且,DMA通道傳輸的是基于塊的方式,塊的長度是可配置的。本發(fā)明還支持自動長度分割功能,將一個長文件傳輸分割成多個短的DMA通道傳輸。同時,本發(fā)明支持以多通道按塊時分復用的方式共享總線帶寬,支持多種帶寬分配方案,支持多塊傳輸。
圖1為根據本發(fā)明實施例所述的DMA控制器應用系統(tǒng)示意圖;圖2為根據本發(fā)明實施例所述的DMA控制器結構示意圖;圖3為根據本發(fā)明實施例所述的DMA控制器中的主控制器的狀態(tài)機示意圖。
具體實施例方式
如圖1所示,應用本發(fā)明的系統(tǒng)可以由處理器16,A類節(jié)點設備20、22,B類節(jié)點設備24、26,邏輯地址暫存器14、包括非易失型存儲器接口的DMAC控制器10、非易失型存儲器12構成。
處理器16的主要功能是對每次DMA傳輸進行初始化配置和過程中的異常進行處理。
節(jié)點分為兩類,A類節(jié)點和B類節(jié)點。A類節(jié)點是指節(jié)點本身需要提供訪問非易失型存儲器的邏輯地址及傳輸長度,對該類節(jié)點的每次DMA傳輸,其數據存儲在非易失型存儲器上必須是邏輯地址連續(xù)的一段數據。B類節(jié)點是指節(jié)點本身不直接提供非易失型存儲器的邏輯地址,其邏輯地址存儲在邏輯地址暫存器中,B類節(jié)點每次進行DMAC傳輸時,處理器通知DMAC控制器該節(jié)點準備訪問的邏輯地址存儲在地址暫存器中的位置。在多音頻處理器中,FAT加速器屬于A類節(jié)點,其它設備,例如各種音頻播放器都屬于B類節(jié)點。若節(jié)點需要進行DMA傳輸,該節(jié)點提出DMA請求給主處理器或DMAC控制器。
邏輯地址暫存器14,給每個將要進行DMA傳輸的B類節(jié)點分配一個連續(xù)的空間,用于存儲其訪問非易失型存儲器的邏輯地址簇鏈結構。
DMAC控制器10的主要功能是控制節(jié)點與非易失型存儲設備12之間交換數據。
其中,非易失型存儲器接口的主要功能是將DMAC控制器10的DMA傳輸控制命令轉化為訪問非易失型存儲器的具體的時序。
圖2所示為根據本發(fā)明實施例所述的DMAC控制器的結構框圖,由主控制器108、中斷控制器106、寄存器組112、A類型節(jié)點接口102、B類型節(jié)點接口100、分割單元110、邏輯地址暫存器接口104和非易失型存儲器接口114構成。
其中,中斷控制器106的主要功能是根據通道提出的帶優(yōu)先級的傳輸中斷請求和中斷響應策略來確定哪個通道被服務,并決定何時向主控制器提出中斷請求。其中斷策略是1)不同優(yōu)先級同時請求高優(yōu)先級先服務;2)同一優(yōu)先級的中斷請求采用輪詢的方法復用,輪詢的方法分為兩種,一種是每一塊傳輸結束開始服務下一個同優(yōu)先級的DMA通道傳輸,另一種是DMA通道傳輸任務結束后,服務下一個同優(yōu)先級的DMA通道傳輸。
3)低優(yōu)先級的服務被高優(yōu)先級的服務中斷。
其中各中斷的優(yōu)先級由主處理器在在該DMA傳輸初始化時配置。中斷源可以是來之于節(jié)點的硬中斷,也可以是來之于主處理器的軟中斷。每個DMA的中斷是否允許響應既該各中斷的使能信號也是在DMA傳輸初始化時配置。
分割單元110的主要功能是將長的DMA傳輸分割成多個短DMA傳輸。分割的原則是非易失型存儲器接口每次訪問非易失型存儲器時地址空間必須連續(xù)、塊對齊且最大的塊數受限制。
每次分割由以下條件決定該DMA通道需要傳輸的長度、每次傳輸的最大允許的塊數、分割后的每次DMA傳輸的邏輯地址必須連續(xù)。每個DMA通道最大允許的傳輸塊數可以在該DMA傳輸初始化時配置。
對于A類節(jié)點的DMA傳輸分割方法如下如果A類節(jié)點提出要求傳輸的數據跨過的塊數大于最大允許傳輸塊數,則將這次的DMA傳輸長度設為最大允許傳輸塊數。
如果A類節(jié)點提出要求傳輸的數據跨過的塊數不大于最大允許傳輸塊數,則將這次的DMA傳輸長度設為數據跨過的塊數。
對于B類節(jié)點的DMA傳輸分割方法如下主控制器給出該DMA通道的這次DMA傳輸的傳輸長度、邏輯地址暫存器的地址以及這次DMA傳輸的首邏輯塊地址相對于該地址暫存器的地址的內容的偏移量。
該分割后得到兩個參數,一個是這次DMA傳輸的首邏輯塊地址和傳輸塊數。
首邏輯塊地址按以下原則得到1)根據地址暫存器的地址從地址暫存器中將對應項(“項”是指簇鏈結構中儲存連續(xù)的段)讀出,該項包括首邏輯塊地址以及數據存儲連續(xù)長度。
2)若數據存儲的連續(xù)長度大于偏移量,則首邏輯塊地址就是首地址所在的邏輯塊的地址。若數據存儲的連續(xù)長度小于偏移量,則將地址偏移量減去連續(xù)長度,地址暫存器地址跳到下一項重復。
其中,本發(fā)明實施例中所述偏移量的概念,是因為在實際的應用中,如MP3播放,可能需要從某一個字節(jié)開始到另一個以字節(jié)為單位的地址結束。因此,有時需要引入第一個簇的偏移量和傳輸長度的參數。例如地址指示緩沖區(qū)內的數據表示為,起始扇區(qū)2,結束扇區(qū)為3,如果按照512字節(jié)/扇區(qū)的計算,那么就是1024個字節(jié)。但是所需的數據位于2和3扇區(qū)之間的第500-700字節(jié),那么就需要在第一簇的偏移量設置為500,傳輸長度為200,獲得這之間的數據,而非扇區(qū)2和3的全部數據。
當找到首邏輯塊地址后,按以下原則確定傳輸塊數1)如果DMA要求傳輸的數據跨過的塊數大于最大傳輸塊數,且最大傳輸塊的地址在當前項的所表示的地址空間內,則傳輸塊數就是當前DMA的最大傳輸塊數。
2)如果DMA要求傳輸的數據跨過的塊數大于最大傳輸塊數,且最大傳輸塊的地址超出當前項的所表示的地址空間內,則傳輸塊數就是首邏輯塊當前項的所表示的地址空間內最大的塊所跨越的塊數。
3)如果DMA要求傳輸的數據跨過的塊數不大于最大傳輸塊數,且最大傳輸塊的地址在當前項的所表示的地址空間內,則傳輸塊數就是當前DMA要求傳輸的數據跨過的塊數。
4)如果DMA要求傳輸的數據跨過的塊數不大于最大傳輸塊數,且最大傳輸塊的地址超出當前項的所表示的地址空間內,則傳輸塊數就是首邏輯塊當前項的所表示的地址空間內最大的塊所跨越的塊數。
寄存器組112的主要功能是提供一個與主處理器通信的軟件接口。寄存器組可以分為命令寄存器、狀態(tài)寄存器、參數寄存器。命令寄存器的主要功能是存儲住處理器發(fā)出的命令。狀態(tài)寄存器的主要是存儲一些狀態(tài)變量,主處理器通過讀出這些變量可以知道DMA控制狀態(tài)。參數寄存器主要存儲DMA通道一些參數,如地址暫存器中起始地址、首字節(jié)偏移量、傳輸長度和傳輸方向等。
邏輯地址暫存器接口104的主要功能是在分割單元110的控制下從邏輯地址暫存器中讀出該DMA通道的簇鏈結構。
A類節(jié)點接口102的主要功能是處理與A類節(jié)點間通信的協議,包括接收某一節(jié)點的DMA通道請求、邏輯地址和傳輸長度。在主控制器的控制下給出該DMA通道被服務信號,并從該設備讀出或向該設備寫入數據。
B類節(jié)點接口100的主要功能是處理與B類節(jié)點間通信的協議,包括接收某一節(jié)點的DMA通道請求,在主控制器的控制下給出該DMA通道被服務信號,并從該設備讀出或向該設備寫入數據。
非易失型存儲器接口114的主要功能是處理與非易失型存儲器進行通信的協議,包括向非易失型存儲器發(fā)出讀或寫請求,并從非易失型存儲器讀出或向非易失型存儲器接口寫入數據。
主控制器108的主要功能是控制和協調各模塊工作,并產生中斷或指示信號。
其中,主控制108的狀態(tài)機如圖3所示,由IDLE、LOAD、Pr_RD、RD、RD_J、RD_WT、RD_E、Pr_WR、WR1、WR2、WR_J、WR_WT和WR_E狀態(tài)構成IDLE該狀態(tài)表示處于空閑狀態(tài)。當從中斷控制器接收一個中斷時,進行LOAD狀態(tài)。
LOAD在LOAD狀態(tài),對給DMA進行分割,在分割的過程中可能修改偏移量。如果是讀,下一狀態(tài)是Pr_RD,如果是寫,則下一個狀態(tài)是Pr WR。
Pr_RD向非易失型存儲器接口提出讀請求。當非易失型存儲器接口給出讀請求響應信號是進入RD。
RD主要的功能從控制非易失型存儲器接口向節(jié)點設備接口傳輸數據。但該塊傳輸結束,進入RD_J。
RD_J主要功能是判斷下一個這次DMA請求是否結束。如果是,則進入RD_E,否則進入RD_WT。
RD_WT主要功能是等待非易失型存儲器接口數據有效信號和節(jié)點設備緩沖區(qū)有效信號。當這兩各設備同時有效時,進入RD。
RD_E完成一些結束操作,如更新狀態(tài)寄存器。
Pr_WR.向非易失型存儲器接口提出寫請求。當非易失型存儲器接口給出寫請求響應信號是進入WR1。
WR1主要的功能控制非易失型存儲器接口接收節(jié)點設備接口傳輸來的數據。但該塊傳輸結束,進入WR2。
WR2在該狀態(tài)時非易失型存儲器接口將剛接收的數據寫入存儲介質,當數據寫完時,進行WR_J。
WR_J主要功能是判斷下一個這次DMA請求是否結束。如果是,則進入WR_E,否則進入WR_WT。
WR_WT主要功能是等待非易失型存儲器接口緩沖區(qū)有效信號和節(jié)點設備數據有效信號。當這兩各設備同時有效時,進入WR1。
WR_E完成一些結束操作,如更新狀態(tài)寄存器其中,關于中斷響應的時序為對較高優(yōu)先級的中斷,需立即執(zhí)行的,當狀態(tài)機處于讀操作的任意一個狀態(tài)時,則下一狀態(tài)是RD_E,當狀態(tài)機處于寫操作的任意一個狀態(tài)時,則下一狀態(tài)是WR_E。
對與同優(yōu)先級的中斷,需按塊時分共享總線帶寬時,當狀態(tài)機處于讀操作,當RD_J時,下一狀態(tài)是RD_E,當狀態(tài)機處于寫操作,當WR_J時,下一狀態(tài)是WR_E。
對于低優(yōu)先級的中斷,只能在IDLE狀態(tài)下仲裁決定。
在利用本發(fā)明的DMAC控制器控制進行數據交換時,可以執(zhí)行如下步驟步驟1主處理器對DMA通道進行初始化,初始化的參數包括DMAC控制器向非易失型存儲器接口提出傳輸請求時每次最大傳輸塊數、中斷優(yōu)先級和傳輸方向(即是讀請求還是寫請求),對于B類節(jié)點的DMA,還需配置邏輯地址暫存器地址、偏移量和傳輸長度。
步驟2DMAC控制器接收到該DMA通道中斷請求,該中斷可以是來自于節(jié)點的硬中斷,也可以是來之與處理器的軟中斷。
步驟3中斷控制器根據中斷響應策略決定何時響應該中斷。當DMAC控制器決定為該DMA通道服務時,進入步驟4。
步驟4首先按分割原則對該DMA通道傳輸進行分割,確定分割后的DMA傳輸的傳輸長度,然后完成這次DMA數據傳輸。當這次短的DMA傳輸結束后,判斷該節(jié)點的DMA通道傳輸是否結束,如果結束給出DMA傳輸結束中斷或指示信號給主處理器,如果沒有結束,則由DMAC更新這次該節(jié)點DMA通道的參數,如邏輯地址暫存器地址和偏移量,再次傳輸。
下面結合圖3中的狀態(tài)機翻轉示意,說明DMAC控制非易失性存儲器與節(jié)點播放器間數據傳輸的流程,包括了讀、寫兩類操作。
其中讀操作的流程包括以下步驟(請同時參照圖4的狀態(tài)變化)步驟100,DMAC在空閑狀態(tài)(IDEL),等待命令輸入;步驟110,DMAC接收到讀取指令和相關參數后,轉入初始化(LOAD)狀態(tài),獲取此次操作的源、目標設備和扇區(qū)形式表示的讀寫地址,并且可以將其中一部分參數寫入到參數寄存器,如地址與長度參數;
步驟120,DMAC判斷是讀操作指令還是寫操作指令,如果是讀操作指令,轉為“準備讀數據”(Pr_RD)狀態(tài),執(zhí)行步驟130,否則,轉為“準備寫數據”(Pr_WR)狀態(tài),執(zhí)行步驟180;步驟130,DMAC向作為源設備的非易失性存儲器的存儲器控制器提出讀請求,指示當前要讀取的扇區(qū)號,該存儲器控制器將指定扇區(qū)的數據讀入內部RAM,向DMAC返回響應信號,若目標播放器準備好接收數據的信號同時有效,轉入“讀數據”(RD)狀態(tài);步驟140,在DMAC控制下,所述存儲器控制器將內部RAM中的數據通過DMA總線直接傳輸到目標播放器的FIFO緩存器中,在一個扇區(qū)數據傳輸完成后,DMAC轉入“讀數據結束”(RD_J)狀態(tài);在一次傳輸過程中,可以由DMAC做一個發(fā)起,由這兩個設備自動完成數據在DMA總線上的傳輸,播放器會從FIFO緩存器中不斷讀出數據,并給出緩存器是否可寫入數據的有效信號。也可以由DMAC控制器來統(tǒng)一協調兩個設備間數據的傳輸。
步驟150,DMAC判斷此次操作要讀取的數據是否均已傳輸完畢,如果沒有,執(zhí)行步驟160,否則,執(zhí)行步驟170;步驟160,DMAC轉入讀數據-等待狀態(tài)回應(RD_WT)狀態(tài),取出下一要讀取的扇區(qū)號并通知所述存儲器控制器,等待存儲器控制器完成當前扇區(qū)數據讀出的響應信號和播放器準備好接收數據的信號,如這兩個信號同時有效,轉入“讀數據”(RD)狀態(tài),返回步驟140;步驟170,DMAC轉入“讀數據更新“(RD_E)狀態(tài),更新狀態(tài)寄存器組中的狀態(tài)變量并在參數寄存器組中寫入需要返回的參數,向主處理器發(fā)出中斷信號,完成一次從非易失性存儲器讀取數據傳送到播放器的操作,返回步驟110;步驟180,DMAC先向目標非易失性存儲器的存儲器控制器提出寫請求,指示當前數據要寫入的扇區(qū)號,存儲器控制器準備好后,給出響應信號,如播放器也已給出數據已準備好的指示信號,則轉入“寫數據1”(WR1)狀態(tài);
步驟190,在DMAC的控制下,將作為源設備的播放器緩存器中的數據讀出,經DMA總線寫入到存儲器控制器的內部RAM,內部RAM已寫滿或數據已傳輸完成后,轉為“寫數據2”(WR2)狀態(tài);步驟200,存儲器控制器將內部RAM中的數據寫入非易失性存儲器當前指定的扇區(qū),數據寫完后轉為“寫數據結束”(WR_J)狀態(tài);步驟210,DMAC判斷此次操作要寫入的數據是否已寫完,如果沒有,執(zhí)行步驟220,否則,執(zhí)行步驟230;步驟220,DMAC轉入寫數據-等待狀態(tài)回應(WR_WT)狀態(tài),取出下一要寫入的扇區(qū)號并通知所述存儲器控制器,等待存儲器控制器和播放器已準備好的信號,如這個信號同時有效,返回步驟190;步驟230,DMAC轉為“寫數據更新”(WR_E)狀態(tài),更新狀態(tài)寄存器組中的狀態(tài)變量并在參數寄存器寫入需要返回的參數,向主處理器發(fā)出中斷信號,完成一次從播放器讀取數據傳送到非易失性存儲器的操作,返回步驟110。
權利要求
1.一種直接存儲訪問控制器,在處理器對節(jié)點設備提出的直接存儲訪問通道中斷請求進行初始化配置后,控制節(jié)點設備與非易失型存儲器之間直接交換數據,其特征在于,包括中斷控制器、分割單元、寄存器組、邏輯地址暫存器接口、節(jié)點設備接口、主控制器,其中,主控制器,用于控制和協調各模塊的工作,并在直接存儲訪問通道結束傳輸后發(fā)出傳輸結束信號給處理器;寄存器組,用于提供一個與處理器通信的接口,存儲有處理器發(fā)出的命令以及配置的參數,包括每次最大傳輸塊數、通道中斷請求的優(yōu)先級;節(jié)點設備接口,用于提供與節(jié)點設備之間的通信協議,包括接收來自節(jié)點設備的直接存儲訪問通道中斷請求,在主控制器的控制下給出該直接存儲訪問通道被服務的信號,并從該節(jié)點設備讀出或寫入數據;中斷控制器,與主控制器、寄存器組、節(jié)點設備相連,用于根據節(jié)點設備發(fā)出的直接存儲訪問通道的中斷請求優(yōu)先級參數,與自身的中斷響應策略來確定向主控制器提出中斷請求的時間;分割單元,與主控制器、節(jié)點設備接口、邏輯地址暫存器接口、非易失型存儲器接口相連,用于在主控制器的控制下,根據所述寄存器組中存儲的參數,將長的直接存儲訪問傳輸分割成多個短的直接存儲訪問傳輸,分割的原則是非易失型存儲器接口每次訪問非易失型存儲器時,地址空間必須連續(xù)、塊對齊且最大的塊數在預設的最大允許傳輸塊數之內,分割后獲得本次傳輸的首邏輯塊地址和傳輸塊數參數;邏輯地址暫存器接口,用于在分割模塊的控制下,從邏輯地址暫存器中讀出本次直接存儲訪問通道傳輸的數據存儲在非易失型存儲器中的簇鏈結構信息;非易失型存儲器接口,用于提供與非易失型存儲器通信的協議,在主控制器的控制下,根據分割單元獲得的本次傳輸的參數,從非易失型存儲器中讀出或寫入數據。
2.如權利要求1所述的控制器,其特征在于,所述的主控制器在直接存儲訪問通道結束傳輸后發(fā)出的傳輸結束信號,為中斷信號。
3.如權利要求1所述的控制器,其特征在于,所述的主控制器在直接存儲訪問通道結束傳輸后發(fā)出的傳輸結束信號,為指示信號。
4.如權利要求1所述的控制器,其特征在于,所述的寄存器組包括命令寄存器,用于存儲處理器發(fā)出的命令;狀態(tài)寄存器,用于存儲狀態(tài)變量,處理器通過讀取這些變量獲知直接存儲訪問控制狀態(tài);參數寄存器,用于存儲處理器對傳輸中斷請求初始化配置的參數,包括每次最大傳輸塊數、中斷請求優(yōu)先級、傳輸方向、邏輯地址暫存器中的起始地址、首字節(jié)偏移量、傳輸長度。
5.如權利要求1所述的控制器,其特征在于,所述節(jié)點設備接口為A類節(jié)點設備接口,其中,A類節(jié)點設備是指節(jié)點本身需要提供訪問非易失型存儲器的邏輯地址及傳輸長度。
6.如權利要求1所述的控制器,其特征在于,所述節(jié)點設備接口為B類節(jié)點設備接口,其中,B類節(jié)點設備是指節(jié)點本身不直接提供非易失型存儲器的邏輯地址,其邏輯地址存儲在邏輯地址暫存器中,B類節(jié)點設備每次進行直接存儲訪問傳輸時,由處理器指示該節(jié)點準備訪問的邏輯地址存儲在邏輯地址暫存器中的位置。
7.如權利要求1所述的控制器,其特征在于,所述中斷控制器的中斷策略包括1)不同優(yōu)先級同時請求時,高優(yōu)先級的中斷先服務;2)同一優(yōu)先級的中斷請求采用輪詢的方式復用;3)低優(yōu)先級的服務被高優(yōu)先級的服務中斷。
全文摘要
本發(fā)明公開了一種直接存儲訪問控制器,由中斷控制器、分割單元、寄存器組、邏輯地址暫存器接口、節(jié)點設備接口、主控制器組成,其中,中斷控制器根據中斷響應策略決定何時向主控制器發(fā)送該DMA通道傳輸請求中斷,當DMAC控制器決定為該DMA通道服務時,首先對該DMA通道傳輸進行分割,確定分割后的DMA傳輸的傳輸長度,然后完成這次DMA數據傳輸。當這次短的DMA傳輸結束后,判斷該節(jié)點的DMA通道傳輸是否結束,如果結束給出DMA傳輸結束中斷或指示信號給主處理器,如果沒有結束,則更新這次該節(jié)點DMA通道的參數,再次傳輸。本發(fā)明僅占用少量的CPU資源即實現了多個DMA通道任務間頻繁切換的問題。
文檔編號G06F13/20GK1804823SQ20051013222
公開日2006年7月19日 申請日期2005年12月22日 優(yōu)先權日2005年12月22日
發(fā)明者王軍, 金傳恩 申請人:北京中星微電子有限公司