EDMA控制器由以下部分組成:
事件和中斷處理寄存器
事件編碼器
參數(shù)RAM
硬件地址產(chǎn)生器
事件寄存器完成對(duì)EDMA事件的捕獲、控制。若有多個(gè)事件同時(shí)發(fā)生,由事件編碼器對(duì)它們進(jìn)行處理(將同時(shí)發(fā)生的事件進(jìn)行排隊(duì))。
參數(shù)RAM存放與事件相關(guān)(各通道)的傳輸參數(shù);這些參數(shù)送入硬件地址發(fā)生器以產(chǎn)生對(duì)EMIF/外設(shè)的存取地址。
1 、事件與事件控制寄存器
EDMA有64個(gè)通道.每1個(gè)通道都有1個(gè)事件與之關(guān)聯(lián).由這些事件觸發(fā)相應(yīng)通道的傳輸。
2、 傳輸參數(shù)與參數(shù)RAM
EDMA控制器與DMA控制器在結(jié)構(gòu)上有所區(qū)別。C64x的.EDMA控制器是基于RAM結(jié)構(gòu)。參數(shù).RAM(Parameter RAM。PaRAM)的容量是2KB,總共可以存放85組EDMA傳輸控制參數(shù)。多組參數(shù)還可以彼此連接起來(lái),從而實(shí)現(xiàn)某些負(fù)責(zé)數(shù)據(jù)流的傳輸.例如循環(huán)緩存和數(shù)據(jù)排序等。參數(shù)RAM中保存的內(nèi)容包括:
64個(gè)EDMA通道對(duì)應(yīng)的入口傳輸參數(shù).每組參數(shù)包括6個(gè)字;
用于重加載,鏈接的傳輸參數(shù)組。每組參數(shù)包括24字節(jié);
8字節(jié)空余的RAM可以作為“草稿區(qū)”(scratchpad area)。
一旦捕獲到某個(gè)事件.控制器將從PaRAM頂部的64組入口參數(shù)中讀取數(shù)據(jù)對(duì)應(yīng)的控制參數(shù)送往地址發(fā)生器硬件。
表1給出1組EDMA傳輸參數(shù)的內(nèi)部結(jié)構(gòu),總共6個(gè)字.192bit?梢酝ㄟ^(guò)32bit的外設(shè)總線(xiàn)對(duì)EDMA的參數(shù).RAM進(jìn)行訪問(wèn)。
可選參數(shù)(Option Parameter),32bit,用戶(hù)可以根據(jù)情況選擇設(shè)置該參數(shù)。
SRC/DST地址.32bit,用于存放EDMA訪問(wèn)起始的源地址和目的地址,可以通過(guò)可選參數(shù)中的SUM/DUM位設(shè)定對(duì)SRC/DST地址的修改方式。
數(shù)據(jù)單元計(jì)數(shù)(Element Count),16bit無(wú)符號(hào)數(shù).存放l幀(1一D傳輸)或1個(gè)陣列(2一D傳輸)中的數(shù)據(jù)單元數(shù)。
幀/陣列計(jì)數(shù)(Frame/Array Count),16bit無(wú)符號(hào)數(shù).存放的是1-D數(shù)據(jù)傳輸中的幀計(jì)數(shù),或是2一D數(shù)據(jù)傳輸中的陣列計(jì)數(shù)。
數(shù)據(jù)單元,幀,陣列索引(Element/Frame/ArrayIndex).16bit無(wú)符號(hào)數(shù),作為地址修改的索引值。數(shù)據(jù)單元索引只應(yīng)用于1-D傳輸,為下一數(shù)據(jù)單元的地址偏移值(2一D傳輸不允許數(shù)據(jù)單元間隔存放)。幀,陣列索引用于控制下一幀,陣列的地址索引。