亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

優(yōu)先級可調(diào)多通道dma控制器的制作方法

文檔序號:6436219閱讀:444來源:國知局
專利名稱:優(yōu)先級可調(diào)多通道dma控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于一種DMA控制器,具體涉及一種優(yōu)先級可調(diào)多通道DMA控制器。
背景技術(shù)
在以微處理器(microprocessor unit,MPU)為主控設(shè)備的數(shù)據(jù)處理系統(tǒng)和SoC芯片中,數(shù)據(jù)的傳輸通常采用3種方式。I)輪詢方式MPU周期性檢測從設(shè)備的狀態(tài),在適當(dāng)?shù)臅r(shí)間從源設(shè)備中取出數(shù)據(jù)并寫入目的設(shè)備。采用這種方式時(shí),將占用大量的處理器時(shí)間,且數(shù)據(jù)傳輸速度受指令執(zhí)行時(shí)間的限制。2)中斷方式當(dāng)從設(shè)備需要進(jìn)行數(shù)據(jù)傳輸時(shí),向MPU發(fā)出中斷請求,MPU響應(yīng)后執(zhí)行數(shù)據(jù)傳輸任務(wù)。采用這種方式時(shí),MPU不必主動(dòng)查詢從設(shè)備狀態(tài),節(jié)省了部分處理器時(shí)間,但傳輸過程仍受MPU控制,并未提高數(shù)據(jù)傳輸速度。3)直接存儲器存取(direct memory access, DMA)方式DMA是一種快速傳送數(shù)據(jù)的機(jī)制,由DMA控制器實(shí)現(xiàn).DMA的應(yīng)用能夠有效減輕處理器的負(fù)擔(dān),可以大大提高數(shù)據(jù)傳輸?shù)男?,從而提聞系統(tǒng)性能。DMA作為一種快速傳送數(shù)據(jù)的機(jī)制很好解決了外設(shè)與存儲器之間的數(shù)據(jù)傳遞,但是在以微處理器(microprocessor unit,MPU)為主控設(shè)備DMA通道數(shù)量往往非常有限。對于高速多通道數(shù)據(jù)采集系統(tǒng)很難為每一個(gè)數(shù)據(jù)通道分配一個(gè)DMA通道用于存儲數(shù)據(jù)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種優(yōu)先級可調(diào)多通道DMA控制器,該DMA控制器可以實(shí)現(xiàn)多數(shù)據(jù)輸入通道共享一個(gè)DMA數(shù)據(jù)通道。實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案一種優(yōu)先級可調(diào)多通道DMA控制器,它包括多個(gè)數(shù)據(jù)輸入通道,每個(gè)數(shù)據(jù)輸入通道的輸入端對應(yīng)一個(gè)通道控制寄存器組,每個(gè)數(shù)據(jù)輸入通道的輸出端對應(yīng)一個(gè)數(shù)據(jù)緩沖存儲及其控制模塊,數(shù)據(jù)緩沖存儲及其控制模塊的輸出端與多路復(fù)用模塊通信,多路復(fù)用模塊的輸出端與DMA引擎通信;數(shù)據(jù)緩沖存儲及其控制模塊用于緩沖數(shù)據(jù)輸入通道實(shí)時(shí)傳輸來的數(shù)據(jù),并對傳輸來的數(shù)據(jù)進(jìn)行數(shù)據(jù)傳輸及數(shù)據(jù)流控制;控制寄存器組與所述數(shù)據(jù)緩沖存儲及其控制模塊通信,用于根據(jù)所述控制寄存器中預(yù)配置的數(shù)據(jù)對所述數(shù)據(jù)緩沖存儲及其控制模塊的數(shù)據(jù)傳輸進(jìn)行控制;多路復(fù)用模塊與所述數(shù)據(jù)緩沖存儲及其控制模塊通信,用于把所述數(shù)據(jù)緩沖存儲及其控制模塊中的信號和數(shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎;DMA引擎根據(jù)各數(shù)據(jù)輸入通道所配置的工作模式及預(yù)設(shè)優(yōu)先級完成各種數(shù)據(jù)傳輸任務(wù)。所述的通道控制寄存器組與DMA引擎之間直接通過通道仲裁模塊通信,通道仲裁模塊根據(jù)數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ?,直接傳輸?shù)紻MA引擎。所述的通道控制寄存器組與多路復(fù)用模塊之間通過通道仲裁模塊通信,通道仲裁模塊根據(jù)數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ?,該通道的?shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎。所述的通道仲裁模塊采用優(yōu)先級和輪轉(zhuǎn)相結(jié)合的仲裁機(jī)制,通道仲裁模塊將多個(gè)數(shù)據(jù)通道分為若干個(gè)組,每組有兩個(gè)通道,每組中的兩個(gè)通道輪流傳輸。所述的多路復(fù)用模塊內(nèi)含有第二緩沖存儲模塊,第二緩沖存儲模塊用于存儲DMA數(shù)據(jù)傳輸中的數(shù)據(jù),避免DMA數(shù)據(jù)溢出。所述的DMA引擎緩沖器中存儲有鏈表描述符,鏈表中的每個(gè)描述符定義待傳輸數(shù)據(jù)中貞的格式和控制信息,配合DMA控制器完成數(shù)據(jù)傳輸任務(wù);同時(shí),鏈表描述符在傳輸過程中對數(shù)據(jù)幀和緩沖區(qū)大小進(jìn)行動(dòng)態(tài)調(diào)整,減少M(fèi)PU對DMA傳輸過程的參與。所述的DMA引擎上設(shè)有兩個(gè)主設(shè)備接口,每個(gè)主設(shè)備接口上各設(shè)有一組硬件握手信號,每組硬件握手信號包含2個(gè)信號即DMA請求信號和DMA應(yīng)答信號;當(dāng)從設(shè)備需要發(fā)起DMA傳輸時(shí),相應(yīng)主設(shè)備接口的DMA請求信號有效,DMA控制器響應(yīng)請求后啟動(dòng)DMA引擎,當(dāng)一個(gè)數(shù)據(jù)幀傳輸完畢后,DMA控制器發(fā)出應(yīng)答信號,從設(shè)備收到應(yīng)答后令請求信號復(fù)位,完成一次DMA傳輸任務(wù)。本發(fā)明的有益技術(shù)效果該DMA控制器可以實(shí)現(xiàn)多數(shù)據(jù)輸入通道共享一個(gè)DMA數(shù)據(jù)通道。每個(gè)DMA通道模塊分別包括和數(shù)據(jù)輸入通道數(shù)相等的數(shù)據(jù)緩沖存儲及其控制模塊和一組控制寄存器,控制寄存器可以控制通道傳輸?shù)膬?yōu)先級。數(shù)據(jù)輸入通道輸入數(shù)據(jù)先存于緩沖區(qū)中,根據(jù)控制寄存器設(shè)定的優(yōu)先級分時(shí)占用DMA數(shù)據(jù)通道進(jìn)行數(shù)據(jù)傳輸。本發(fā)明通過對通道配置寄存器和通道仲裁模塊的設(shè)置,可以實(shí)現(xiàn)固定優(yōu)先級、不同服務(wù)分配比的輪轉(zhuǎn)優(yōu)先級等多種優(yōu)先級仲裁算法,增強(qiáng)了 DMA控制器的通用性。


圖1為本發(fā)明所提供的一種優(yōu)先級可調(diào)多通道DMA控制器的系統(tǒng)組成框圖;圖2為本發(fā)明所提供的一種利用地址掩碼器產(chǎn)生環(huán)形緩沖的示意圖;圖3為本發(fā)明所提供的一種FIFO環(huán)形緩沖區(qū)的示意圖;圖4為本發(fā)明所提供的一種鏈表描述符結(jié)構(gòu)的示意圖。圖中1.寄存器堆,101.第一通道寄存器組,102.第二通道寄存器組,103.第三通道寄存器組,104.第四通道寄存器組,105.第五通道寄存器組,106.第六通道寄存器組,107.第七通道寄存器組,108.第八通道寄存器組;2.數(shù)據(jù)輸入通道,201.第一數(shù)據(jù)輸入通道,202.第二數(shù)據(jù)輸入通道,203.第三數(shù)據(jù)輸入通道,204.第四數(shù)據(jù)輸入通道,205.第五數(shù)據(jù)輸入通道,206.第六數(shù)據(jù)輸入通道,207.第七數(shù)據(jù)輸入通道,208.第八數(shù)據(jù)輸入通道;3.第一數(shù)據(jù)緩沖存儲及控制模塊,301.第一通道數(shù)據(jù)緩沖存儲及控制模塊,302.第二通道數(shù)據(jù)緩沖存儲及控制模塊,303.第三通道數(shù)據(jù)緩沖存儲及控制模塊,304.第四通道數(shù)據(jù)緩沖存儲及控制模塊,305.第五通道數(shù)據(jù)緩沖存儲及控制模塊,306.第六通道數(shù)據(jù)緩沖存儲及控制模塊,307.第七通道數(shù)據(jù)緩沖存儲及控制模塊,308.第八通道數(shù)據(jù)緩沖存儲及控制模塊;4.多路復(fù)用模塊,401.第二數(shù)據(jù)緩沖存儲模塊;5.第二主設(shè)備接口,6. DMA引擎,7.第一主設(shè)備接口,8.通道仲裁模塊。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明所提供的一種優(yōu)先級可調(diào)多通道DMA控制器的系統(tǒng)組成框圖如圖1所示。MPU可通過指令設(shè)置與內(nèi)存統(tǒng)一編址的寄存器組,完成對可調(diào)多通道DMA控制器的動(dòng)態(tài)配置。如圖1所示寄存器堆I包括八個(gè)寄存器組即包括第一通道寄存器組101、第二通道寄存器組102、第三通道寄存器組103、第四通道寄存器組104、第五通道寄存器組105、第六通道寄存器組106、第七通道寄存器組107、第八通道寄存器組108。數(shù)據(jù)輸入通道2包括八個(gè)數(shù)據(jù)通道第一數(shù)據(jù)輸入通道201、第二數(shù)據(jù)輸入通道202、第三數(shù)據(jù)輸入通道203、第四數(shù)據(jù)輸入通道204、第五數(shù)據(jù)輸入通道205、第六數(shù)據(jù)輸入通道206、第七數(shù)據(jù)輸入通道207、第八數(shù)據(jù)輸入通道208。寄存器堆I中的八個(gè)寄存器組分別與數(shù)據(jù)輸入通道2中的一個(gè)通道通信,即 第一通道寄存器組101與第一數(shù)據(jù)輸入通道201通信,第二通道寄存器組102與第二數(shù)據(jù)輸入通道202通信,第三通道寄存器組103與第三數(shù)據(jù)輸入通道203通信,第四通道寄存器組104與第四數(shù)據(jù)輸入通道204通信,第五通道寄存器組105與第五數(shù)據(jù)輸入通道205通信,第六通道寄存器組106與第六數(shù)據(jù)輸入通·道206通信,第七通道寄存器組107與第七數(shù)據(jù)輸入通道207通信,第八通道寄存器組108與第八數(shù)據(jù)輸入通道208。第一數(shù)據(jù)緩沖存儲及控制模塊3包括八個(gè)數(shù)據(jù)緩沖存儲及控制模塊第一通道數(shù)據(jù)緩沖存儲及控制模塊301、第二通道數(shù)據(jù)緩沖存儲及控制模塊302、第三通道數(shù)據(jù)緩沖存儲及控制模塊303、第四通道數(shù)據(jù)緩沖存儲及控制模塊304、第五通道數(shù)據(jù)緩沖存儲及控制模塊305、第六通道數(shù)據(jù)緩沖存儲及控制模塊306、第七通道數(shù)據(jù)緩沖存儲及控制模塊307、第八通道數(shù)據(jù)緩沖存儲及控制模塊308。第一數(shù)據(jù)緩沖存儲及控制模塊3的八個(gè)模塊均采用FIFO存儲緩沖器。數(shù)據(jù)輸入通道2的每個(gè)通道分別與第一數(shù)據(jù)緩沖存儲及控制模塊3中的一個(gè)模塊通信,即第一數(shù)據(jù)輸入通道201與第一通道數(shù)據(jù)緩沖存儲及控制模塊301通信,第二數(shù)據(jù)輸入通道202與第二通道數(shù)據(jù)緩沖存儲及控制模塊302通信,第三數(shù)據(jù)輸入通道203與第三通道數(shù)據(jù)緩沖存儲及控制模塊303通信,第四數(shù)據(jù)輸入通道204與第四通道數(shù)據(jù)緩沖存儲及控制模塊304通信,第五數(shù)據(jù)輸入通道205與第五通道數(shù)據(jù)緩沖存儲及控制模塊305通信,第六數(shù)據(jù)輸入通道206與第六通道數(shù)據(jù)緩沖存儲及控制模塊306通信,第七數(shù)據(jù)輸入通道207與第七通道數(shù)據(jù)緩沖存儲及控制模塊307通信,第八數(shù)據(jù)輸入通道208與第八通道數(shù)據(jù)緩沖存儲及控制模塊308通信。第一數(shù)據(jù)緩沖存儲及控制模塊3的八個(gè)模塊均與一個(gè)多路復(fù)用模塊4通信,多路復(fù)用模塊4中包括一個(gè)第二數(shù)據(jù)緩沖存儲模塊401,第一數(shù)據(jù)緩沖存儲及控制模塊3的八個(gè)模塊均與第二數(shù)據(jù)緩沖存儲模塊401通信。多路復(fù)用模塊4采用多路復(fù)用器。第二數(shù)據(jù)緩沖存儲模塊401采用環(huán)形FIFO緩沖存儲器。多路復(fù)用模塊4與DMA引擎6通信。DMA引擎6的兩個(gè)總線接口分別與第二主設(shè)備接口 5、第一主設(shè)備接口 7連接。寄存器堆I與DMA引擎6之間還直接通過通道仲裁模塊8通信。寄存器堆I與多路復(fù)用模塊4之間還直接通過通道仲裁模塊8通信。通道仲裁模塊8采用仲裁狀態(tài)寄存器。主要模塊的功能如下(I)寄存器堆1:寄存器堆I通過數(shù)據(jù)輸入通道2與第一數(shù)據(jù)緩沖存儲及控制模塊3通信,寄存器堆I用于根據(jù)寄存器中預(yù)配置的數(shù)據(jù)對第一數(shù)據(jù)緩沖存儲及控制模塊3的DMA數(shù)據(jù)傳輸進(jìn)行控制。本發(fā)明提供了 8個(gè)DMA數(shù)據(jù)輸入通道201、202. . . 203,每個(gè)數(shù)據(jù)輸入通道有一個(gè)獨(dú)立的寄存器組,多個(gè)寄存器組構(gòu)成一個(gè)寄存器堆I。寄存器組包括控制狀態(tài)寄存器、源/目的地址寄存器、源/目的地址指針寄存器、源/目的地址掩碼寄存器、傳輸長度寄存器、鏈表描述符指針寄存器。數(shù)據(jù)元素的傳輸過程如下①從源地址指向的存儲空間讀取數(shù)據(jù)將此數(shù)據(jù)寫入目的地址指向的存儲空間.每個(gè)通道的數(shù)據(jù)傳輸過程是數(shù)據(jù)元素傳輸過程的重復(fù),當(dāng)此過程的重復(fù)次數(shù)達(dá)到傳輸長度寄存器中的值后,即完成了一個(gè)完整的DMA數(shù)據(jù)幀傳輸過程。可以通過寫寄存器完成對各通道源地址、目的地址、傳輸數(shù)據(jù)幀大小、工作模式以及優(yōu)先級的設(shè)置。(2)多個(gè)數(shù)據(jù)輸入通道2 可以通過寄存器堆I設(shè)定通道模塊的優(yōu)先級。未進(jìn)行傳輸?shù)耐ǖ垒斎氲臄?shù)據(jù)先存入第一數(shù)據(jù)緩沖存儲及控制模塊3,根據(jù)寄存器堆I可以控制數(shù)據(jù)輸入通道2傳輸?shù)膬?yōu)先級進(jìn)行數(shù)據(jù)傳輸。(3)第一數(shù)據(jù)緩沖存儲及控制模塊3 用于緩沖實(shí)時(shí)輸入的數(shù)據(jù),等待DMA控制器進(jìn)行數(shù)據(jù)傳輸。它包括多路緩沖存儲模塊和緩沖存儲控制模塊多路緩沖存儲模塊用于數(shù)據(jù)輸入通道的數(shù)據(jù)存儲;緩沖存儲控制模塊用于控制把來自外部DMA請求模塊的數(shù)據(jù)寫入第一數(shù)據(jù)緩沖存儲及控制模塊3,并在第一數(shù)據(jù)緩沖存儲及控制模塊3中的數(shù)據(jù)達(dá)到一定容量時(shí),產(chǎn)生寫請求信號,并把寫請求信號經(jīng)多路復(fù)用模塊4傳輸?shù)紻MA引擎6的總線接口 ;也用于控制把第一數(shù)據(jù)緩沖存儲及控制模塊3中的數(shù)據(jù)讀出后送到DMA請求模塊,并在第一數(shù)據(jù)緩沖存儲及控制模塊3中的數(shù)據(jù)達(dá)到一定容量時(shí),產(chǎn)生讀請求信號,并把讀請求信號經(jīng)所述多路復(fù)用模塊4傳送到DMA引擎6的總線接口。第一緩沖存儲模塊3采用FIFO存儲緩沖器,當(dāng)數(shù)據(jù)輸入通道不間斷的向DMA模塊同時(shí)輸入數(shù)據(jù)時(shí)將數(shù)據(jù)存入FIFO存儲緩沖器當(dāng)中。當(dāng)輸入數(shù)據(jù)到達(dá)一定數(shù)量時(shí)申請DMA傳輸,通過通道仲裁模塊8的優(yōu)先級仲裁決定數(shù)據(jù)傳輸?shù)南群箜樞颉?4)多路復(fù)用模塊4 多路復(fù)用模塊4與第一數(shù)據(jù)緩沖存儲及控制模塊3的所有模塊都通信,用于把多個(gè)通道數(shù)據(jù)緩沖存儲及控制模塊的信號和數(shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎6的總線接□。(5)第二緩沖存儲模塊401 多路復(fù)用模塊4內(nèi)部的第二緩沖存儲模塊401與第一數(shù)據(jù)緩沖存儲及控制模塊3的所有模塊都通信。第二緩沖存儲模塊401采用環(huán)形FIFO存儲器,用于存儲DMA數(shù)據(jù)傳輸中的數(shù)據(jù),避免DMA數(shù)據(jù)溢出。為使DMA控制器運(yùn)行時(shí)地址不超出DMA緩沖區(qū)存儲空間范圍,在本發(fā)明中利用地址掩碼器產(chǎn)生環(huán)形緩沖,如圖2所示源地址或目的地址寄存器可設(shè)置為“不變”、自動(dòng)“加1”、“減I”或“加索引值”,修正后的地址進(jìn)入選擇器,只有地址掩碼寄存器對應(yīng)位為I的地址位可以進(jìn)行修改,其它位保持不變,修改后的地址將回寫入地址寄存器。例如,緩沖區(qū)起始地址為0x80,地址掩碼寄存器設(shè)置為0x7f,則緩沖區(qū)地址范圍為0x80至Oxff.通過這種方法實(shí)現(xiàn)了 DMA環(huán)形緩沖區(qū)和無開銷循環(huán),簡化了驅(qū)動(dòng)程序和硬件的設(shè)計(jì),但緩沖區(qū)的容量限制為2的η方。圖3為DMA控制器所對應(yīng)的FIFO型環(huán)形緩沖區(qū)示意圖。在設(shè)計(jì)DMA緩沖區(qū)時(shí),需綜合考慮對MPU負(fù)載的影響和數(shù)據(jù)傳輸延時(shí)緩沖區(qū)過大將導(dǎo)致傳輸延時(shí)增大;緩沖區(qū)過小將使中斷過于頻繁,導(dǎo)致MPU效率降低.對于同樣大小的緩沖區(qū),劃分的子緩沖區(qū)數(shù)過少將增大傳輸延時(shí),子緩沖區(qū)數(shù)過多則會降低緩沖區(qū)使用效率.實(shí)際應(yīng)用時(shí),需根據(jù)具體情況作出權(quán)衡。(5)DMA 引擎 6:DMA引擎6是DMA的核心模塊,可根據(jù)各數(shù)據(jù)輸入通道2所配置的工作模式及預(yù)設(shè)優(yōu)先級完成各種數(shù)據(jù)傳輸任務(wù)。優(yōu)先級可調(diào)多通道DMA控制器鏈表描述符存儲于DMA引擎6的緩沖器中,可在傳輸過程中對數(shù)據(jù)幀和緩沖區(qū)大小進(jìn)行動(dòng)態(tài)調(diào)整,減少M(fèi)PU對DMA傳輸過程的參與。鏈表中的每個(gè)描述符定義待傳輸數(shù)據(jù)巾貞的格式和控制信息,配合DMA控制器完成數(shù)據(jù)傳輸任務(wù)。鏈表描述符結(jié)構(gòu)見圖4 :描述符由4個(gè)32位的字組成,分別包含控制位/傳輸長度、源地址、目的地址、指向下一個(gè)描述符的指針.控制位包括模式選擇位和設(shè)備接口選擇位.描述符中指針將各個(gè)描述符構(gòu)成 單向鏈表,鏈表頭節(jié)點(diǎn)由鏈表描述符指針寄存器決定,尾節(jié)點(diǎn)由描述符中的鏈表結(jié)束位(EOL)決定.當(dāng)采用鏈表描述符方式傳輸數(shù)據(jù)時(shí),首先需對傳輸通道的鏈表描述符指針寄存器賦值,設(shè)置控制寄存器中的描述符使能位有效,并啟動(dòng)DMA引擎6。DMA引擎6將從鏈表描述符的指針指向的緩沖器地址中取出描述符,描述符中的數(shù)據(jù)分別裝入控制寄存器、源地址寄存器、目的地址寄存器和鏈表描述符指針寄存器.此后,DMA引擎將開始數(shù)據(jù)的傳輸過程。當(dāng)完成一個(gè)數(shù)據(jù)幀的傳輸任務(wù)后,DMA將根據(jù)鏈表描述符指針寄存器中的值,自動(dòng)從緩沖器相應(yīng)的地址中取出下一個(gè)描述符。若描述符中的EOL位為1,則DMA引擎停止工作,并向MPU發(fā)出中斷請求信號.在某些應(yīng)用領(lǐng)域中,數(shù)據(jù)傳輸并非完全按照鏈表順序進(jìn)行。例如,在發(fā)生擁塞的以太網(wǎng)節(jié)點(diǎn)中,若幾個(gè)IP分組同時(shí)到達(dá)路由器,并期望經(jīng)同一個(gè)輸出端口轉(zhuǎn)發(fā),如果此情況持續(xù)一段時(shí)間,緩存被耗盡,路由器只有丟棄優(yōu)先級低的分組。此時(shí),當(dāng)MAC模塊向DMA控制器發(fā)出進(jìn)行數(shù)據(jù)傳輸?shù)恼埱髸r(shí),應(yīng)放棄對當(dāng)前描述符的處理,強(qiáng)制取出鏈表中的下一個(gè)描述符。通過在DMA控制器中增加輸入信號在硬件握手模式中實(shí)現(xiàn)了這一功能,若信號有效并持續(xù)2時(shí)鐘周期,當(dāng)前描述符將失效。DMA引擎完成當(dāng)前數(shù)據(jù)幀的傳輸后,鏈表中下一個(gè)描述符將被強(qiáng)制取出,其中的數(shù)據(jù)被寫入相應(yīng)寄存器。數(shù)據(jù)傳輸過程中,需保護(hù)內(nèi)存中一塊特定區(qū)域的數(shù)據(jù)不被覆蓋而又不知該區(qū)域大小時(shí),此功能也有實(shí)際用途。(6)通道仲裁模塊8
由于多通道201、202. . . 208可能在同一時(shí)間發(fā)起請求,當(dāng)多個(gè)數(shù)據(jù)輸入通道同時(shí)發(fā)起DMA請求時(shí),需要進(jìn)行通道仲裁。通道仲裁模塊8可以根據(jù)數(shù)據(jù)輸入通道2中各數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ?。?dāng)寄存器堆I與DMA引擎6之間直接通過通道仲裁模塊8通信時(shí),通道仲裁模塊8根據(jù)數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ溃苯觽鬏數(shù)紻MA引擎6。當(dāng)寄存器堆I與多路復(fù)用模塊4之間通過通道仲裁模塊8通信時(shí),通道仲裁模塊8根據(jù)數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ?,該通道的?shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎6。通道仲裁模塊8采用了優(yōu)先級和輪轉(zhuǎn)相結(jié)合的仲裁機(jī)制。通道仲裁模塊8將八個(gè)通道分為4個(gè)組(1、I1、II1、IV),每組有2個(gè)通道,含有哪2個(gè)通道可通過24位的通道組配置寄存器進(jìn)行配置。通道組具有4種優(yōu)先級順序(A、B、C、D)。通道仲裁模塊8將系統(tǒng)分為10個(gè)仲裁狀態(tài),每個(gè)狀態(tài)對應(yīng)一種優(yōu)先級順序,可通過20位的仲裁狀態(tài)寄存器進(jìn)行設(shè)置。每組中的2個(gè)通道則輪流傳輸,假設(shè)I組包含通道I和通道4,如果本次I組獲得授權(quán)時(shí)通道I進(jìn)行傳輸,則下次I組獲得授權(quán)時(shí)將優(yōu)先傳輸通道4。(7)總線接口,即設(shè)備接口 提供DMA控制器與存儲器和IO設(shè)備之間的接口,采用符合AMBA2. O總線規(guī)范的設(shè)計(jì)。DMA控制器具有2個(gè)主設(shè)備接口,即第二主設(shè)備接口 5、第一主設(shè)備接口 7,用于在2個(gè)存儲單元或IO設(shè)備間交換數(shù)據(jù);一個(gè)從設(shè)備接口,提供MPU訪問寄存器堆的數(shù)據(jù)通路。DMA控制器處于工作狀態(tài)時(shí),通過主設(shè)備接口 5、7讀出緩沖區(qū)中的數(shù)據(jù)或把數(shù)據(jù)寫入第二緩沖存儲模塊401的環(huán)形緩沖區(qū)。為實(shí)現(xiàn)處理器和DMA控制器對緩沖區(qū)的并行操作,一般可采用多緩沖機(jī)制,將緩沖區(qū)劃分為若干個(gè)子緩沖區(qū)。為使從緩沖區(qū)中讀出的數(shù)據(jù)為有效數(shù)據(jù),或?qū)懭刖彌_區(qū)中的數(shù)據(jù)不覆蓋處理器未處理的數(shù)據(jù),可在處理器每次對一個(gè)子緩沖區(qū)進(jìn)行讀(寫)操作后,對DMA控制器的目的(源)地址寄存器和傳輸長度寄存器重新賦值。使驅(qū)動(dòng)程序的設(shè)計(jì)更加靈活,DMA制器通過設(shè)置地址指針寄存器在緩沖區(qū)中實(shí)現(xiàn)環(huán)形隊(duì)列。DMA地址寄存器中的值每次更新后與地址指針寄存器中的值進(jìn)行比較,如相等則DMA引擎停止工作,處理器完成一個(gè)數(shù)據(jù)幀的讀寫后更新地址指針寄存器中的值,此時(shí)DMA引擎才能重新啟動(dòng)。優(yōu)先級可調(diào)多通道DMA控制器硬件握手模式在DMA控制器的2個(gè)主設(shè)備接口 5、7中各設(shè)計(jì)了一組硬件握手信號,每組包含2個(gè)信號,即DMA請求和DMA應(yīng)答。當(dāng)從設(shè)備需要發(fā)起DMA傳輸時(shí),相應(yīng)主設(shè)備接口的DMA請求信號有效,DMA控制器響應(yīng)請求后啟動(dòng)DMA引擎6,當(dāng)一個(gè)數(shù)據(jù)幀(大小由MPU預(yù)設(shè)或由鏈表描述符決定)傳輸完畢后,DMA控制器發(fā)出應(yīng)答信號,從設(shè)備收到應(yīng)答后令請求信號復(fù)位,完成一次DMA傳輸任務(wù)。硬件握手模式對于在進(jìn)行DMA傳輸?shù)膹脑O(shè)備中存在慢速設(shè)備時(shí)尤其有用。優(yōu)先級可調(diào)多通道DMA控制器二級流水線DMA控制器的2個(gè)主設(shè)備接口 5、7各對應(yīng)一組數(shù)據(jù)地址總線,數(shù)據(jù)傳輸可在一組總線上進(jìn)行,也可以在2組總線間進(jìn)行。當(dāng)在一組總線上傳輸時(shí),數(shù)據(jù)需進(jìn)行緩存,總線采用時(shí)分復(fù)用策略,即在地址路徑中,源地址和目的地址間隔一個(gè)周期在地址總線上交替出現(xiàn)在數(shù)據(jù)傳輸路徑中,DMA數(shù)據(jù)總線為雙向總線,它從該DMA控制器中讀入數(shù)據(jù)放入臨時(shí)寄存器,在下一周期將此數(shù)據(jù)通過同一總線寫入該該DMA控制器中。因此,利用一組總線傳輸數(shù)據(jù),每傳一個(gè)數(shù)據(jù)將至少占用兩個(gè)時(shí)鐘周期。當(dāng)DMA控制器在兩組總線間傳輸數(shù)據(jù)時(shí),為提高數(shù)據(jù)傳輸速度,數(shù)據(jù)在傳輸過程中可不經(jīng)過緩存直接到達(dá)目的地址。DMA引擎6通過讀總線和寫總線對該DMA控制器進(jìn)行讀寫操作,讀寫動(dòng)作可同時(shí)進(jìn)行,因而構(gòu)成了一個(gè)二級流水線.本發(fā)明所提供的一種優(yōu)先級可調(diào)多通道DMA控制器的數(shù)據(jù)輸入通道2不僅局限于上述實(shí)施例所描述的八個(gè)通道201、202. . . 208,數(shù)據(jù)輸入通道2可以為任意多個(gè)通道,每個(gè)數(shù)據(jù)輸入通道分別對應(yīng)一個(gè)數(shù)據(jù)緩沖存儲及其控制模塊和一組控制寄存器組,多數(shù)據(jù)輸入通道共享一個(gè)DMA引擎。上面結(jié)合附圖和實(shí)施例對本發(fā)明作了詳細(xì)說明,但是本發(fā)明并不限于上述實(shí)施例,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下作出各種變化。本發(fā)明未作詳細(xì)描述的內(nèi)容均可以采用現(xiàn)有技術(shù)。
權(quán)利要求
1.一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于它包括 多個(gè)數(shù)據(jù)輸入通道,每個(gè)數(shù)據(jù)輸入通道的輸入端對應(yīng)一個(gè)通道控制寄存器組,每個(gè)數(shù)據(jù)輸入通道的輸出端對應(yīng)一個(gè)數(shù)據(jù)緩沖存儲及其控制模塊,數(shù)據(jù)緩沖存儲及其控制模塊的輸出端與多路復(fù)用模塊(4)通信,多路復(fù)用模塊的輸出端與DMA引擎(6)通信; 數(shù)據(jù)緩沖存儲及其控制模塊用于緩沖數(shù)據(jù)輸入通道實(shí)時(shí)傳輸來的數(shù)據(jù),并對傳輸來的數(shù)據(jù)進(jìn)行數(shù)據(jù)傳輸及數(shù)據(jù)流控制; 控制寄存器組與所述數(shù)據(jù)緩沖存儲及其控制模塊通信,用于根據(jù)所述控制寄存器中預(yù)配置的數(shù)據(jù)對所述數(shù)據(jù)緩沖存儲及其控制模塊的數(shù)據(jù)傳輸進(jìn)行控制; 多路復(fù)用模塊(4)與所述數(shù)據(jù)緩沖存儲及其控制模塊通信,用于把所述數(shù)據(jù)緩沖存儲及其控制模塊中的信號和數(shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎(6); DMA引擎(6)根據(jù)各數(shù)據(jù)輸入通道所配置的工作模式及預(yù)設(shè)優(yōu)先級完成各種數(shù)據(jù)傳輸任務(wù)。
2.根據(jù)權(quán)利要求1所述的一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于所述的通道控制寄存器組與DMA引擎(6)之間直接通過通道仲裁模塊(8)通信,通道仲裁模塊(8)根據(jù)數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ?,直接傳輸?shù)紻MA引擎(6)。
3.根據(jù)權(quán)利要求1所述的一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于所述的通道控制寄存器組與多路復(fù)用模塊(4)之間通過通道仲裁模塊(8)通信,通道仲裁模塊(8)根據(jù)數(shù)據(jù)輸入通的優(yōu)先級選擇下一個(gè)進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ溃撏ǖ赖臄?shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎(6) ο
4.根據(jù)權(quán)利要求2或3所述的一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于所述的通道仲裁模塊(8)采用優(yōu)先級和輪轉(zhuǎn)相結(jié)合的仲裁機(jī)制,通道仲裁模塊(8)將多個(gè)數(shù)據(jù)通道分為若干個(gè)組,每組有兩個(gè)通道,每組中的兩個(gè)通道輪流傳輸。
5.根據(jù)權(quán)利要求1所述的一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于所述的多路復(fù)用模塊(4)內(nèi)含有第二緩沖存儲模塊(401),第二緩沖存儲模塊(401)用于存儲DMA數(shù)據(jù)傳輸中的數(shù)據(jù),避免DMA數(shù)據(jù)溢出。
6.根據(jù)權(quán)利要求1所述的一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于所述的DMA引擎(6)緩沖器中存儲有鏈表描述符,鏈表中的每個(gè)描述符定義待傳輸數(shù)據(jù)幀的格式和控制信息,配合DMA控制器完成數(shù)據(jù)傳輸任務(wù);同時(shí),鏈表描述符在傳輸過程中對數(shù)據(jù)巾貞和緩沖區(qū)大小進(jìn)行動(dòng)態(tài)調(diào)整,減少M(fèi)PU對DMA傳輸過程的參與。
7.根據(jù)權(quán)利要求1所述的一種優(yōu)先級可調(diào)多通道DMA控制器,其特征在于所述的DMA引擎(6)上設(shè)有兩個(gè)主設(shè)備接口,每個(gè)主設(shè)備接口上各設(shè)有一組硬件握手信號,每組硬件握手信號包含2個(gè)信號即DMA請求信號和DMA應(yīng)答信號;當(dāng)從設(shè)備需要發(fā)起DMA傳輸時(shí),相應(yīng)主設(shè)備接口的DMA請求信號有效,DMA控制器響應(yīng)請求后啟動(dòng)DMA引擎¢),當(dāng)一個(gè)數(shù)據(jù)幀傳輸完畢后,DMA控制器發(fā)出應(yīng)答信號,從設(shè)備收到應(yīng)答后令請求信號復(fù)位,完成一次DMA傳輸任務(wù)。
全文摘要
本發(fā)明屬于一種DMA控制器,具體公開一種優(yōu)先級可調(diào)多通道DMA控制器,包括數(shù)據(jù)輸入通道數(shù)相等的數(shù)據(jù)緩沖存儲及其控制模塊和一組控制寄存器;用于所述數(shù)據(jù)緩沖存儲及其控制模塊通信的多路復(fù)用模塊,該模塊用于把數(shù)據(jù)緩沖存儲及其控制模塊中的信號和數(shù)據(jù)進(jìn)行多路復(fù)用后傳輸?shù)紻MA引擎;DMA引擎根據(jù)各數(shù)據(jù)輸入通道所配置的工作模式及預(yù)設(shè)優(yōu)先級完成各種數(shù)據(jù)傳輸任務(wù)。該DMA控制器可以實(shí)現(xiàn)多數(shù)據(jù)輸入通道共享一個(gè)DMA數(shù)據(jù)通道。
文檔編號G06F13/30GK103064808SQ20111032457
公開日2013年4月24日 申請日期2011年10月24日 優(yōu)先權(quán)日2011年10月24日
發(fā)明者房遠(yuǎn)勇, 呂俊, 宋慧, 于宏偉, 袁怡諍, 葉重林, 丁竹生 申請人:北京強(qiáng)度環(huán)境研究所, 北京航天斯達(dá)新技術(shù)裝備公司, 天津航天斯達(dá)新技術(shù)裝備有限公司, 中國運(yùn)載火箭技術(shù)研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1