專利名稱:Dma傳輸裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及DMA (Direct Memory Access)傳輸裝置,尤其涉及在DMAC (Direct Memory Access Controller)進(jìn)行DMA傳輸時(shí)通過先行讀取傳輸源的數(shù)據(jù)使DMA傳輸高速 化的技術(shù)。
背景技術(shù):
如圖1所示,DMA傳輸裝置101由DMAC102及資源103構(gòu)成,DMAC102對資源103 上的DMA傳輸源區(qū)域進(jìn)行讀取,將讀取出的數(shù)據(jù)向資源103上的DMA傳輸目標(biāo)區(qū)域?qū)懭耄瑥?而進(jìn)行DMA傳輸。以下,利用圖2說明使DMA傳輸高速化的現(xiàn)有先行讀取技術(shù)。DMA傳輸裝置201具備DMAC202、先行讀取處理部203、資源204。DMAC202進(jìn)行DMA 傳輸經(jīng)由先行讀取處理部203讀取資源204上的DMA傳輸源區(qū)域的數(shù)據(jù),并輸出至資源 204上的DMA傳輸目標(biāo)區(qū)域。另外,先行讀取處理部203具備先行地址寄存器205、控制器206、先行數(shù)據(jù)存儲(chǔ) 緩沖器207、加法運(yùn)算電路208、選擇器209、210。在先行地址寄存器205中存儲(chǔ)了 DMAC202 向預(yù)定讀取的DMA傳輸源區(qū)域的讀地址。選擇器209選擇先行地址寄存器205所存儲(chǔ)的讀 地址和DMAC202輸出的讀地址中的其中一個(gè),并向資源204輸出。在先行數(shù)據(jù)存儲(chǔ)緩沖器 207中存儲(chǔ)了從資源204先行讀取的數(shù)據(jù)。選擇器210在將先行數(shù)據(jù)存儲(chǔ)緩沖器207所存 儲(chǔ)的數(shù)據(jù)返回至DMAC202、和將從資源204讀取出的數(shù)據(jù)直接返回至DMAC202之間進(jìn)行切 換??刂破?06控制選擇器209、210的切換。當(dāng)自DMAC202接受到讀地址時(shí),先行讀取處理部203對于所接受到的讀地址和先 行地址寄存器205所存儲(chǔ)的讀地址進(jìn)行比較。當(dāng)兩者一致時(shí),由于讀地址指定的資源204上的數(shù)據(jù)已經(jīng)被存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ) 緩沖器207,所以將先行數(shù)據(jù)存儲(chǔ)緩沖器207所存儲(chǔ)的數(shù)據(jù)返回至DMAC202,進(jìn)而通過加法 運(yùn)算電路208使先行地址寄存器205所存儲(chǔ)的讀地址進(jìn)行增量,對該增量后的讀地址指定 的資源204上的數(shù)據(jù)進(jìn)行讀取,并存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ)緩沖器207。另一方面,當(dāng)兩者不一致時(shí),由于讀地址指定的資源204上的數(shù)據(jù)沒有被存儲(chǔ)在 先行數(shù)據(jù)存儲(chǔ)緩沖器207,所以將自DMAC202接受到的讀地址輸出至資源204,將讀取出的 數(shù)據(jù)直接返回至DMAC202。此外,通過加法運(yùn)算電路208使讀地址增量并存儲(chǔ)至先行地址寄 存器205,對先行地址寄存器205指定的資源204上的數(shù)據(jù)進(jìn)行讀取并存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ) 緩沖器207。通過這些動(dòng)作,從而進(jìn)行DMA傳輸源區(qū)域的先行讀取,使DMA傳輸高速化(例 如,參照專利文獻(xiàn)1)。專利文獻(xiàn)1 日本特開平2-110646號公報(bào)當(dāng)DMAC202通過DMA傳輸來讀取DMA傳輸源區(qū)域連續(xù)的地址空間時(shí),現(xiàn)有的先行 讀取處理部203,如果DMAC202輸出第一次讀地址,則取而代之自資源204讀取數(shù)據(jù)并返回 至DMAC202,并且使接受到的讀地址增量來由DMAC202求出下一讀取的讀地址,并對該讀地 址指定的資源204上的數(shù)據(jù)進(jìn)行先行讀取。并且,如果DMAC202輸出下一讀地址,則通過將
5已經(jīng)先行讀取出的數(shù)據(jù)返回至DMAC202,來使DMAC202的DMA傳輸源數(shù)據(jù)讀取高速化。但 是,在這些以往的先行讀取處理部203中,在向DMA傳輸源區(qū)域讀取的過程中無法實(shí)現(xiàn)第一 次讀取的高速化。此外,一般的DMAC,直至控制DMAC的主控制器對DMAC進(jìn)行的寄存器設(shè)定(傳輸源 地址、傳輸目標(biāo)地址、傳輸方法等)完成為止,DMAC無法開始DMA傳輸。即,在現(xiàn)有的先行 讀取處理部中,從主控制器開始對DMAC設(shè)定起至DMA傳輸源區(qū)域的第一次讀完成為止的周 期在高速化的對象外,在想要立刻起動(dòng)DMA的系統(tǒng)中成為問題。
發(fā)明內(nèi)容
本發(fā)明鑒于上述問題而實(shí)現(xiàn),其目的在于使DMA傳輸高速化。為了解決上述課題,在本發(fā)明中,從主控制器對DMAC進(jìn)行的多次寄存器設(shè)定之中 DMA傳輸源區(qū)域的傳輸開始地址設(shè)定中,取得DMA傳輸源地址,對DMA傳輸源地址指定的資 源上的數(shù)據(jù)進(jìn)行先行讀取。為此,本發(fā)明的DMA傳輸裝置具有從主控制器對DMAC進(jìn)行的多次寄存器設(shè)定中 取得DMA傳輸源地址的傳輸源地址設(shè)定檢測單元、和對DMA傳輸源地址指定的資源上的數(shù) 據(jù)進(jìn)行先行讀取的先行讀取單元。先行讀取單元具有對DMA傳輸源地址進(jìn)行存儲(chǔ)的先行 地址寄存器、和將先行地址寄存器所存儲(chǔ)的傳輸源地址發(fā)布至資源并對讀取出的數(shù)據(jù)進(jìn)行 存儲(chǔ)的先行數(shù)據(jù)存儲(chǔ)緩沖器。(發(fā)明效果)在本發(fā)明中,從主控制器對DMAC進(jìn)行的多次寄存器設(shè)定之中DMA傳輸源區(qū)域的傳 輸開始地址設(shè)定中,取得DMA傳輸源地址。響應(yīng)于此,先行讀取單元不等待DMAC的DMA傳 輸開始,而對上述DMA傳輸源地址指定的數(shù)據(jù)進(jìn)行先行讀取。DMAC從先行讀取單元先行讀 取出的數(shù)據(jù)進(jìn)行DMA傳輸源的讀取。由此,能夠使DMA傳輸?shù)牡谝淮巫x取高速化。此外,通過在主控制器對DMAC進(jìn)行的多個(gè)寄存器設(shè)定之中最先設(shè)定DMA傳輸源區(qū) 域的傳輸開始地址設(shè)定,來開始先行讀取,從而能夠使其以后的寄存器設(shè)定周期隱蔽。另外,具備DMAC利用的高速緩沖存儲(chǔ)器,通過將先行讀取出的數(shù)據(jù)存儲(chǔ)至高速緩 沖存儲(chǔ)器,將存儲(chǔ)的先行讀取數(shù)據(jù)向高速緩沖存儲(chǔ)器上的DMA傳輸目標(biāo)傳輸,從而也能夠 使DMA傳輸?shù)膶懭敫咚倩?br>
圖1是表示一般的DMA傳輸裝置的示意結(jié)構(gòu)的圖。圖2是表示通過先行讀取使DMA傳輸高速化的現(xiàn)有的DMA傳輸裝置的示意結(jié)構(gòu)的 圖。圖3是表示實(shí)施方式1 3中的DMA傳輸裝置的整體結(jié)構(gòu)的圖。圖4是表示實(shí)施方式1中的先行讀取處理部的內(nèi)部結(jié)構(gòu)的圖。圖5是表示實(shí)施方式2中的先行讀取處理部的內(nèi)部結(jié)構(gòu)的圖。圖6是表示實(shí)施方式3中的先行讀取處理部的內(nèi)部結(jié)構(gòu)的圖。圖7是表示實(shí)施方式4中的DMA傳輸裝置的整體結(jié)構(gòu)的圖。圖8是表示實(shí)施方式5中的DMA傳輸裝置的整體結(jié)構(gòu)的圖。
圖9是表示實(shí)施方式5中的先行讀取處理部和高速緩沖存儲(chǔ)器的內(nèi)部結(jié)構(gòu)的圖。圖10是表示實(shí)施方式6中的DMA傳輸裝置的整體結(jié)構(gòu)的圖。圖11是表示實(shí)施方式6中的先行讀取處理部和共用高速緩沖存儲(chǔ)器的內(nèi)部結(jié)構(gòu) 的圖。圖12是表示圖11所示的高速緩沖存儲(chǔ)器的內(nèi)部結(jié)構(gòu)的圖。圖13(a)是表示存儲(chǔ)器部的初始狀態(tài)的圖。(b)是填充(refill)后的存儲(chǔ)器部的 狀態(tài)的圖。圖14是表示地址的例子的圖。圖15(a)是表示存儲(chǔ)器部的初始狀態(tài)的圖。(b)將存儲(chǔ)在高速緩沖存儲(chǔ)器上的DMA 傳輸源區(qū)域的1行(8字)向高速緩沖存儲(chǔ)器上的DMA傳輸目標(biāo)區(qū)域傳輸后的存儲(chǔ)器部的 狀態(tài)的圖。圖16是表示地址的例子的圖。圖17是表示實(shí)施方式7中的高速緩沖存儲(chǔ)器的內(nèi)部結(jié)構(gòu)的圖。圖18(a)是表示存儲(chǔ)器部的初始狀態(tài)的圖。(b)是表示填充后的存儲(chǔ)器部的狀態(tài) 的圖。圖19是表示地址的例子的圖。圖20(a)是表示存儲(chǔ)器部的初始狀態(tài)的圖。(b)是表示將高速緩沖存儲(chǔ)器的1行 (8字)DMA傳輸后的存儲(chǔ)器部的狀態(tài)的圖。圖21是表示地址的例子的圖。圖22是表示實(shí)施方式8中的高速緩沖存儲(chǔ)器的內(nèi)部結(jié)構(gòu)的圖。圖23是表示實(shí)施方式9中的DMA傳輸裝置的整體結(jié)構(gòu)的圖。符號說明101、201、306、701、808、1008、2308-DMA 傳輸裝置;102、202、302、703、802、1002、2302-DMAC ;103、204、304、706、804、1004、2304-資源;203、303、705、806、1006、2306-先行讀取處理部;205、403、503、603、905、1105-先行地址寄存器;206、908、1108-控制器;207、506、606-先行數(shù)據(jù)存儲(chǔ)緩沖器;208、402、502、602、904-加法運(yùn)算電路;209、210-選擇器;301、702、801、2301_ 主控制器;305、704、902、1102_傳輸源地址設(shè)定檢測部;405、707、712、714_ 地址選擇部;406,713-先行數(shù)據(jù)存儲(chǔ)緩沖器;407-先行讀取無效寄存器;408-先行讀取結(jié)束地址保持部;409、716-數(shù)據(jù)選擇部;507-連續(xù)先行讀取次數(shù)計(jì)測部;
7
508-總傳輸次數(shù)計(jì)測部;509-總傳輸數(shù)保持部;510-連續(xù)先行讀取數(shù)保持部;607-X方向傳輸數(shù)計(jì)測部;608-Y方向傳輸數(shù)計(jì)測部;609-X方向傳輸數(shù)保持部;610-Y方向傳輸數(shù)保持部;611-不連續(xù)大小保持部;708-DMA傳輸控制部;709、710、711_ 先行讀取通道;715-仲裁部;717-DMA傳輸區(qū)域候補(bǔ)保持部;718-先行讀取指定部;803-高速緩沖存儲(chǔ)器;903、1103-DMA傳輸大小設(shè)定檢測部;906、1106-先行讀取結(jié)束大小保持部;909、1109-高速緩沖存儲(chǔ)器;1003、2303_共用高速緩沖存儲(chǔ)器;1202、1702-標(biāo)記寫入部;1203-Valid bit 寫入部;1204、1705-標(biāo)記區(qū)域;1205-Valid 比特區(qū)域;1206、1706-數(shù)據(jù)區(qū)域;1207、1708-字譯碼器;1208-地址譯碼器;1210、1707-命中判定部;1211,1709-字選擇器;1217、1703-存儲(chǔ)器部;1710-屬性指定部;1711-屬性區(qū)域;2202-高速緩沖存儲(chǔ)器控制部;2203-地址控制部;2204-寫數(shù)據(jù)控制部;2205-高速緩沖存儲(chǔ)器A ;2206-高速緩沖存儲(chǔ)器B ;2207-標(biāo)記參照結(jié)果控制部;2208-讀數(shù)據(jù)控制部;2209-DMA傳輸區(qū)域保持部。
8
具體實(shí)施例方式以下,基于附圖對本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)說明。圖3是表示本發(fā)明的實(shí)施方式1 3中的DMA傳輸裝置的整體結(jié)構(gòu)的圖。DMA傳 輸裝置306具備DMAC302、控制DMAC302的主控制器301、先行讀取處理部303、傳輸源地址 設(shè)定檢測部305。傳輸源地址設(shè)定檢測部305,根據(jù)主控制器301對DMAC302進(jìn)行的多次寄存器設(shè)定 之中的DMA傳輸源區(qū)域的傳輸開始地址設(shè)定,取得DMA傳輸源地址。先行讀取處理部303 對由傳輸源地址設(shè)定檢測部305取得的DMA傳輸源地址指定的資源304上的數(shù)據(jù)進(jìn)行先行 讀取。當(dāng)由主控制器301進(jìn)行的DMAC302的寄存器設(shè)定結(jié)束時(shí),DMAC302開始DMA傳輸, 對由先行讀取處理部303所先行讀取的資源304上的DMA傳輸源區(qū)域的數(shù)據(jù)進(jìn)行讀取,并 向資源304上的DMA傳輸目標(biāo)區(qū)域傳輸。(實(shí)施方式1)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖3所示,本實(shí)施方式中的先行讀取 處理部303采取圖4所示的構(gòu)成。如圖4所示,先行讀取處理部303具備加法運(yùn)算電路402、先行地址寄存器403、 地址選擇部405、先行數(shù)據(jù)存儲(chǔ)緩沖器406、先行讀取無效寄存器407、先行讀取結(jié)束地址 保持部408、數(shù)據(jù)選擇部409。先行地址寄存器403保持地址。地址選擇部405選擇先行 地址寄存器403所存儲(chǔ)的地址和從DMAC302接受到的讀地址中的其中一個(gè),并輸出至資源 304。在先行數(shù)據(jù)存儲(chǔ)緩沖器406中存儲(chǔ)從資源304讀取出的數(shù)據(jù)。數(shù)據(jù)選擇部409選擇 先行數(shù)據(jù)存儲(chǔ)緩沖器406所存儲(chǔ)的數(shù)據(jù)和從資源304接受到的數(shù)據(jù)中的其中一個(gè),并輸出 至 DMAC302。接著,對本實(shí)施方式中的DMA傳輸裝置306的動(dòng)作進(jìn)行說明。如果自傳輸源地址設(shè)定檢測部305接受到DMA傳輸源地址,則先行讀取處理部303 將該地址存儲(chǔ)至先行地址寄存器403。進(jìn)而,先行讀取處理部303控制地址選擇部405,向 先行地址寄存器403保持的資源304上的地址進(jìn)行單個(gè)讀請求,先行讀取1字?jǐn)?shù)據(jù),并將該 先行讀取出的1字?jǐn)?shù)據(jù)存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ)緩沖器406。如果自DMAC302接受到讀地址,則先行讀取處理部303通過數(shù)據(jù)選擇部409選擇 已經(jīng)被存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ)緩沖器406的數(shù)據(jù)、即該讀地址指定的資源304上的數(shù)據(jù),并返 回至DMAC302,并且通過加法運(yùn)算電路402使先行地址寄存器403所保持的地址增加1字 份,準(zhǔn)備下一次DMA傳輸而進(jìn)行先行讀取。通過反復(fù)執(zhí)行該處理,從而能夠先行讀取資源 (從設(shè)備)304上的DMA傳輸源區(qū)域。此外,先行讀取無效寄存器407控制為地址選擇部405將自DMAC302接受到的讀 地址直接輸出至資源(從設(shè)備)304,由數(shù)據(jù)選擇部409選擇從資源(從設(shè)備)304讀取出的 數(shù)據(jù),并直接返回至主控制器301。由此,能夠使先行讀取功能起動(dòng)·停止。此外,先行讀取結(jié)束地址保持部408保持DMA傳輸源區(qū)域的結(jié)束地址。如果先行 地址寄存器403的地址達(dá)到先行讀取結(jié)束地址保持部408保持的結(jié)束地址,則通過控制為 不進(jìn)行進(jìn)一步的先行讀取,從而只要結(jié)束了所有的DMA傳輸源區(qū)域的先行讀取就能夠停止 先行讀取。
另外,通過主控制器301的寄存器設(shè)定,能夠設(shè)定并變更先行讀取無效寄存器407 和先行讀取結(jié)束地址保持部408保持的值。(實(shí)施方式2)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖3所示,本實(shí)施方式中的先行讀取 處理部303采取圖5所示的構(gòu)成。如圖5所示,先行讀取處理部303具備加法運(yùn)算電路502、先行地址寄存器503、 能存儲(chǔ)多個(gè)字的先行數(shù)據(jù)存儲(chǔ)緩沖器506、連續(xù)先行讀取次數(shù)計(jì)測部507、總傳輸次數(shù)計(jì)測 部508、總傳輸數(shù)保持部509、連續(xù)先行讀取數(shù)保持部501。接著,對本實(shí)施方式中的DMA傳輸裝置306的動(dòng)作進(jìn)行說明。如果自傳輸源地址設(shè)定檢測部305接受到DMA傳輸源地址,則先行讀取處理部303 將該地址存儲(chǔ)至先行地址寄存器503。進(jìn)而,先行讀取處理部303向先行地址寄存器503保 持的資源304上的地址進(jìn)行成組讀請求(8字連續(xù)讀取請求),先行讀取8字?jǐn)?shù)據(jù),并將該先 行讀取出的8字?jǐn)?shù)據(jù)存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ)緩沖器506。如果自DMAC302接受到讀地址,則先行讀取處理部303將已經(jīng)被存儲(chǔ)至先行數(shù)據(jù) 存儲(chǔ)緩沖器506的數(shù)據(jù)、即該讀地址指定的資源304上的數(shù)據(jù)返回至DMAC302。當(dāng)先行數(shù) 據(jù)存儲(chǔ)緩沖器506有空出時(shí),準(zhǔn)備下一 DMA傳輸而由加法運(yùn)算電路502將先行地址寄存器 503保持的地址增加8字份,進(jìn)行成組讀請求,進(jìn)而先行讀取下一 8字。通過反復(fù)執(zhí)行該操作,能夠以成組傳輸方式先行讀取資源(從設(shè)備)304上的DMA 傳輸源區(qū)域。此外,關(guān)于連續(xù)先行讀取次數(shù)計(jì)測部507,當(dāng)向先行地址寄存器503保持的資源 304上的讀地址進(jìn)行讀請求時(shí)進(jìn)行向上計(jì)數(shù),當(dāng)DMAC302讀取先行數(shù)據(jù)存儲(chǔ)緩沖器506所存 儲(chǔ)的先行讀取數(shù)據(jù)時(shí)進(jìn)行向下計(jì)數(shù)。連續(xù)先行讀取數(shù)保持部510指定連續(xù)先行讀取次數(shù)計(jì) 測部507的計(jì)數(shù)數(shù)值的上限。當(dāng)連續(xù)先行讀取次數(shù)計(jì)測部507的計(jì)數(shù)值超過連續(xù)先行讀取 數(shù)保持部510所設(shè)定的上限時(shí),暫時(shí)停止讀地址的發(fā)布,當(dāng)?shù)陀谏舷迺r(shí)再次進(jìn)行,從而能夠 控制為不進(jìn)行超過了先行數(shù)據(jù)存儲(chǔ)緩沖器506的容量的先行讀取。此外,總傳輸次數(shù)計(jì)測部508對向先行地址寄存器503保持的資源304上的讀地 址進(jìn)行讀請求的次數(shù)進(jìn)行計(jì)數(shù)??倐鬏敂?shù)保持部509指定總傳輸次數(shù)計(jì)測部508的計(jì)數(shù)數(shù) 值的上限。直至由總傳輸次數(shù)計(jì)測部508所計(jì)測出的讀請求數(shù)達(dá)到總傳輸數(shù)保持部509所 設(shè)定的數(shù)為止進(jìn)行先行讀取,從而能夠進(jìn)行所有的DMA傳輸源區(qū)域的先行讀取。另外,通過主控制器301的寄存器設(shè)定,能夠設(shè)定并變更連續(xù)先行讀取數(shù)保持部 510、總傳輸數(shù)保持部509保持的值。(實(shí)施方式3)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖3所示,本實(shí)施方式中的先行讀取 處理部303采用圖6所示的構(gòu)成。如圖6所示,先行讀取處理部303具備加法運(yùn)算電路602、先行地址寄存器603、 先行數(shù)據(jù)存儲(chǔ)緩沖器606、X方向傳輸數(shù)計(jì)測部607、Y方向傳輸數(shù)計(jì)測部608、X方向傳輸 數(shù)保持部609、Y方向傳輸數(shù)保持部610、不連續(xù)大小保持部611。先行地址寄存器603進(jìn)行讀請求。先行數(shù)據(jù)存儲(chǔ)緩沖器606保持讀取出的數(shù)據(jù)。 X方向傳輸數(shù)計(jì)測部607對讀請求數(shù)進(jìn)行計(jì)數(shù)。X方向傳輸數(shù)保持部609保持X方向傳輸
10數(shù)計(jì)測部607的計(jì)數(shù)數(shù)值的上限。如果X方向傳輸數(shù)計(jì)測部607的計(jì)數(shù)值到達(dá)X方向傳輸 數(shù)保持部609所設(shè)定的上限,則不連續(xù)大小保持部611保持施加在先行地址寄存器603上 的偏移值。Y方向傳輸數(shù)計(jì)測部608保持施加了偏移的次數(shù)。Y方向傳輸數(shù)保持部610保 持Y方向傳輸數(shù)計(jì)測部608的計(jì)數(shù)數(shù)值的上限。接著,對本實(shí)施方式中的DMA傳輸裝置306的動(dòng)作進(jìn)行說明。如果自傳輸源地址設(shè)定檢測部305接受到DMA傳輸源地址,則先行讀取處理部303 將該地址存儲(chǔ)至先行地址寄存器603。進(jìn)而,先行讀取處理部303向先行地址寄存器603保 持的資源304上的地址進(jìn)行單個(gè)讀請求,先行讀取1字?jǐn)?shù)據(jù),并將該先行讀取出的1字?jǐn)?shù)據(jù) 存儲(chǔ)至先行數(shù)據(jù)存儲(chǔ)緩沖器606。如果自DMAC302接受到讀地址時(shí),先行讀取處理部303將已經(jīng)被存儲(chǔ)至先行數(shù)據(jù) 存儲(chǔ)緩沖器606的數(shù)據(jù)、即該讀地址指定的資源304上的數(shù)據(jù)返回至DMAC302,并且通過加 法運(yùn)算電路602使先行地址寄存器603所保持的地址增加1字份,準(zhǔn)備下一次DMA傳輸而 進(jìn)行先行讀取。另外,通過X方向傳輸數(shù)計(jì)測部607對從先行地址寄存器603向資源304發(fā)布讀 請求的數(shù)量進(jìn)行計(jì)數(shù)。當(dāng)X方向傳輸數(shù)計(jì)測部607的計(jì)數(shù)值超過X方向傳輸數(shù)保持部609 中設(shè)定的值時(shí),將不連續(xù)大小保持部611保持的偏移值相加在先行地址寄存器603保持的 地址上,進(jìn)而使Y方向傳輸數(shù)計(jì)測部608向上計(jì)數(shù)1,使X方向傳輸數(shù)計(jì)測部607的計(jì)數(shù)數(shù) 值從0開始重新計(jì)數(shù)。并且,通過按照反復(fù)執(zhí)行先行讀取直至Y方向傳輸數(shù)計(jì)測部608的 計(jì)數(shù)值達(dá)到Y(jié)方向傳輸數(shù)保持部610所保持的上限為止的方式進(jìn)行控制,從而能夠?qū)崿F(xiàn)矩 形傳輸?shù)南刃凶x取。另外,能夠通過主控制器301的寄存器設(shè)定,來設(shè)定X方向傳輸數(shù)保持部609、Y方 向傳輸數(shù)保持部610、不連續(xù)大小保持部611所保持的值。(實(shí)施方式4)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖7所示。該DMA傳輸裝置701具備 具有多個(gè)傳輸通道的DMAC703、控制DMAC703的主控制器702、傳輸源地址設(shè)定檢測部704、 先行讀取處理部705、資源706、先行讀取指定部718。DMAC703具備地址選擇部714,其用于對多個(gè)傳輸通道所輸出的讀地址進(jìn)行仲裁 并輸出。先行讀取處理部705具備地址選擇部707、DMA傳輸控制部708、先行讀取通道 709 711、地址選擇部712、先行數(shù)據(jù)存儲(chǔ)緩沖器713、仲裁部715、數(shù)據(jù)選擇部716、DMA傳 輸區(qū)域候補(bǔ)保持部717。先行讀取通道709 711保持地址。地址選擇部712從先行讀取 通道709 711所存儲(chǔ)的地址和自DMAC703接受到的讀地址之中選擇一個(gè),并輸出至資源 706。先行數(shù)據(jù)存儲(chǔ)緩沖器713由多個(gè)數(shù)據(jù)部和標(biāo)記部的對構(gòu)成,存儲(chǔ)自資源706讀取出的 數(shù)據(jù)。數(shù)據(jù)選擇部716選擇先行數(shù)據(jù)存儲(chǔ)緩沖器713所存儲(chǔ)的數(shù)據(jù)或者資源706輸出的數(shù) 據(jù),并向DMAC703輸出。DMA傳輸區(qū)域候補(bǔ)保持部717保持通過先行讀取通道709 711先 行讀取的DMA傳輸源區(qū)域的地址范圍。傳輸源地址設(shè)定檢測部704,從為了使DMAC703的1個(gè)傳輸通道開始傳輸而由主控 制器702進(jìn)行的寄存器設(shè)定之中DMA傳輸源區(qū)域的傳輸開始地址設(shè)定中,取得DMA傳輸源 地址。地址選擇部707根據(jù)先行讀取通道709 711調(diào)查通道使用狀態(tài),在空出的1個(gè)先
11行讀取通道存儲(chǔ)DMA傳輸源地址。進(jìn)而,在為了使DMAC703的其他傳輸通道開始傳輸而主 控制器702對DMAC703進(jìn)行了寄存器設(shè)定時(shí),傳輸源地址設(shè)定檢測部704再次取得DMA傳 輸目標(biāo)地址,地址選擇部707根據(jù)先行讀取通道709 711調(diào)查通道使用狀態(tài),在空出的1 個(gè)先行讀取通道存儲(chǔ)DMA傳輸源地址。地址選擇部712調(diào)查先行讀取通道709 711的通道使用狀況,在存在存儲(chǔ)有DMA 傳輸?shù)刂返南刃凶x取通道時(shí),選擇一個(gè)存儲(chǔ)有該DMA傳輸?shù)刂返南刃凶x取通道,對選擇出 的先行讀取通道所存儲(chǔ)的地址指定的資源706上的數(shù)據(jù)進(jìn)行先行讀取,并存儲(chǔ)至先行數(shù)據(jù) 存儲(chǔ)緩沖器713的數(shù)據(jù)部。此時(shí),為了區(qū)分先行數(shù)據(jù)存儲(chǔ)緩沖器713所存儲(chǔ)的數(shù)據(jù)是讀取 哪個(gè)地址的結(jié)果,所以在存儲(chǔ)有數(shù)據(jù)的數(shù)據(jù)部所對應(yīng)的標(biāo)記部中存儲(chǔ)資源706所輸出的地 址。當(dāng)傳輸通道的寄存器設(shè)定完成時(shí),DMAC703自寄存器設(shè)定完成的傳輸通道開始 DMA傳輸,為了讀取DMA傳輸源區(qū)域,而向先行數(shù)據(jù)存儲(chǔ)緩沖器713發(fā)布讀地址。先行讀取 處理部705調(diào)查自DMAC703接受到的讀地址是否在DMA傳輸區(qū)域保持部717保持的DMA傳 輸范圍內(nèi)。在范圍內(nèi)的情況下,由于該讀地址的數(shù)據(jù)已經(jīng)被先行讀取至先行數(shù)據(jù)存儲(chǔ)緩沖 器713中,所以比較先行數(shù)據(jù)存儲(chǔ)緩沖器713的標(biāo)記部和該讀地址,將一致的標(biāo)記部所對應(yīng) 的數(shù)據(jù)返回至DMAC703。另一方面,不在范圍內(nèi)的情況下,由于該讀地址的數(shù)據(jù)沒有被先行 讀取至先行數(shù)據(jù)存儲(chǔ)緩沖器713,所以由地址選擇部712將該讀地址直接向資源706發(fā)布, 由數(shù)據(jù)選擇部716選擇讀取出的數(shù)據(jù),并直接向DMAC703返回。以上,通過先行讀取資源(從設(shè)備)706上的DMA傳輸源區(qū)域,從而能夠使具有多 個(gè)傳輸通道的DMAC703的DMA傳輸高速化。另外,在自DMAC703接受到在DMA傳輸區(qū)域保持部717保持的DMA傳輸源區(qū)域的 地址范圍以外的讀地址的情況下,通過按照由地址選擇部712選擇自DMAC703接受到的讀 地址并向資源706輸出、由數(shù)據(jù)選擇部716選擇讀取出的數(shù)據(jù)并直接返回至DMAC703的方 式進(jìn)行控制,從而還能夠控制為在所有的先行讀取通道709 711處于使用中時(shí),不通過 先行讀取通道709 711開始對主控制器702進(jìn)一步開始的傳輸通道的DMA傳輸進(jìn)行先行 讀取。此外,仲裁部715按下述方式進(jìn)行仲裁,即由地址選擇部712依次選擇多個(gè)先行 讀取通道709 711所存儲(chǔ)的DMA傳輸源地址,并向資源706發(fā)送讀請求。由此,能夠以分 時(shí)的方式先行讀取多個(gè)DMA傳輸通道的傳輸源區(qū)域。另外,DMA傳輸控制部708監(jiān)控先行讀取通道709 711的動(dòng)作狀沉,如果全部處 于使用中,則向主控制器702發(fā)送DMA傳輸控制請求,以使不開始這些以上的DMAC703的新 的傳輸通道。由此,能夠防止主控制器702開始超過先行讀取處理部705的能力的量的傳 輸通道。另外,先行讀取指定部718按照下述方式進(jìn)行限定,即使傳輸源地址設(shè)定檢測部 704只取得DMAC703的特定通道的DMA傳輸源地址。由此,能夠控制為僅僅先行讀取想要 先行讀取的DMAC703的傳輸通道的DMA傳輸。(實(shí)施方式5)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖8所示。該DMA傳輸裝置808具 備DMAC802、控制DMAC802的主控制器801、高速緩沖存儲(chǔ)器803、資源804、先行讀取處理部806。高速緩沖存儲(chǔ)器803設(shè)置有DMAC802利用的資源804上的數(shù)據(jù)的高速緩沖存儲(chǔ)器, DMAC802經(jīng)由先行讀取處理部806和高速緩沖存儲(chǔ)器803在資源804上進(jìn)行DMA傳輸。先行讀取處理部806,從為了開始DMA傳輸而由主控制器801對DMAC802進(jìn)行的寄 存器設(shè)定之中DMA傳輸源區(qū)域的開始地址設(shè)定,取得DMA傳輸源地址,進(jìn)而當(dāng)自指定進(jìn)行幾 個(gè)字DMA傳輸?shù)腄MA傳輸大小設(shè)定而取得DMA傳輸大小時(shí),向高速緩沖存儲(chǔ)器803進(jìn)行填 充請求,以使對DMA傳輸源地址指定的資源804上的數(shù)據(jù)的高速緩沖存儲(chǔ)器進(jìn)行存儲(chǔ)。當(dāng) 高速緩沖存儲(chǔ)器803接受到填充完成時(shí)輸出的填充完成通知時(shí),先行讀取處理部806還對 下一地址進(jìn)行填充請求。反復(fù)執(zhí)行該操作,控制為將從DMA傳輸源地址至DMA傳輸大小為 止的所有的DMA傳輸源區(qū)域存儲(chǔ)至高速緩沖存儲(chǔ)器803。另外,當(dāng)由主控制器801進(jìn)行的 DMAC802的寄存器設(shè)定完成時(shí),DMAC802開始DMA傳輸、讀取存儲(chǔ)在高速緩沖存儲(chǔ)器803上 的DMA傳輸源區(qū)域的數(shù)據(jù)、向資源804上的DMA傳輸源傳輸。接著,對先行讀取處理部806、高速緩沖存儲(chǔ)器803的構(gòu)成和動(dòng)作進(jìn)行說明。如圖 9所示,先行讀取處理部806具備傳輸源地址設(shè)定檢測部902、DMA傳輸大小設(shè)定檢測部 903、加法運(yùn)算電路904、先行地址寄存器905、先行讀取結(jié)束大小保持部906,并且高速緩沖 存儲(chǔ)器907具備控制器908和高速緩沖存儲(chǔ)器909。先行讀取處理部806通過傳輸源地址設(shè)定檢測部902取得在DMAC802進(jìn)行的寄存 器設(shè)定中的DMA傳輸源地址,并存儲(chǔ)至先行地址寄存器905。另外,先行讀取處理部806由 DMA傳輸大小設(shè)定檢測部903取得DMA傳輸大小,并存儲(chǔ)至先行讀取結(jié)束大小保持部906。 當(dāng)兩方存儲(chǔ)結(jié)束時(shí),先行讀取處理部806向高速緩沖存儲(chǔ)器803的先行地址寄存器905保 持的地址發(fā)布填充請求。當(dāng)自先行讀取處理部806接受到填充請求時(shí),高速緩沖存儲(chǔ)器803的控制器908 為了確認(rèn)該填充請求包含的地址指定的1字是否在高速緩沖存儲(chǔ)器909上,而向高速緩沖 存儲(chǔ)器909發(fā)布地址。響應(yīng)于此,如果有數(shù)據(jù),則高速緩沖存儲(chǔ)器909向控制器908返回表 示數(shù)據(jù)命中(hit)的控制信號,如果沒有數(shù)據(jù),則高速緩沖存儲(chǔ)器909向控制器908返回表 示錯(cuò)誤的控制信號。當(dāng)接受到表示錯(cuò)誤的控制信號時(shí),控制器908進(jìn)行將上述填充請求含 有的地址指定的資源804上的1字?jǐn)?shù)據(jù)讀出并存儲(chǔ)至高速緩沖存儲(chǔ)器909的高速緩沖存儲(chǔ) 器填充動(dòng)作。另外,當(dāng)自高速緩沖存儲(chǔ)器909接受到表示命中的控制信號或者上述高速緩 沖存儲(chǔ)器填充動(dòng)作結(jié)束時(shí),控制器908將填充完成通知發(fā)布至先行讀取處理部806。當(dāng)接受到填充完成通知時(shí),先行讀取處理部806通過加法運(yùn)算電路904使先行地 址寄存器905所存儲(chǔ)的地址增加1字份,并再次向高速緩沖存儲(chǔ)器803發(fā)布填充請求,以填 充下一 DMA傳輸源區(qū)域。通過反復(fù)執(zhí)行該操作至DMA傳輸大小指示的想要DMA傳輸?shù)淖址荩?從而能夠?qū)①Y源804上的所有的DMA傳輸源區(qū)域先行讀取至高速緩沖存儲(chǔ)器909上。(實(shí)施方式6)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖10所示。該DMA傳輸裝置1008具 備DMAC1002、控制DMAC1002的主控制器1001、共用高速緩沖存儲(chǔ)器1003、資源1004、先行 讀取處理部1006。共用高速緩沖存儲(chǔ)器1003配置有主控制器1001和DMAC1002利用的資 源1004上的數(shù)據(jù)的高速緩沖存儲(chǔ)器,DMAC1002經(jīng)由先行讀取處理部1006和共用高速緩沖 存儲(chǔ)器1003在資源1004上進(jìn)行DMA傳輸。先行讀取處理部1006,監(jiān)視為了開始DMA傳輸而由主控制器1001對DMAC1002進(jìn)
13行的寄存器設(shè)定,自其中的DMA傳輸源區(qū)域的開始地址設(shè)定中取得DMA傳輸源地址,進(jìn)而自 指定進(jìn)行幾個(gè)字DMA傳輸?shù)腄MA傳輸大小設(shè)定而取得DMA傳輸大小,將取得的DMA傳輸源 地址和DMA傳輸大小發(fā)布至共用高速緩沖存儲(chǔ)器1003。共用高速緩沖存儲(chǔ)器1003進(jìn)行下述填充動(dòng)作,從資源1004中讀取從接受到的DMA 傳輸源地址至DMA傳輸大小的DMA傳輸源區(qū)域,并將副本存儲(chǔ)至共用高速緩沖存儲(chǔ)器1003 上。此外,當(dāng)DMA傳輸源區(qū)域所有的填充完成時(shí),共用高速緩沖存儲(chǔ)器1003將填充完成通 知發(fā)布至DMAC1002。DMAC1002通過填充完成通知,來識別完成了資源1004上的DMA傳輸源區(qū)域的高速 緩沖存儲(chǔ)器向共用高速緩沖存儲(chǔ)器1003的存儲(chǔ)。DMAC1002為了將存儲(chǔ)的DMA傳輸源數(shù)據(jù) 輸出至DMA傳輸目標(biāo),而將DMA傳輸源區(qū)域的開頭地址、即DMA傳輸目標(biāo)地址發(fā)布至共用高 速緩沖存儲(chǔ)器1003。當(dāng)接受到DMA傳輸目標(biāo)地址時(shí),共用高速緩沖存儲(chǔ)器1003將先行讀 取處理部1006指定的共用高速緩沖存儲(chǔ)器1003上的從DMA傳輸源地址至DMA傳輸大小的 DMA傳輸源區(qū)域,向共用高速緩沖存儲(chǔ)器1003上的從DMA傳輸目標(biāo)地址至DMA傳輸大小的 傳輸目標(biāo)空間傳輸。接著,對先行讀取處理部1006、共用高速緩沖存儲(chǔ)器1003的詳細(xì)構(gòu)成和動(dòng)作進(jìn)行 說明。如圖11所示,先行讀取處理部1006具備傳輸源地址設(shè)定檢測部1102、DMA傳輸大 小設(shè)定檢測部1103、先行地址寄存器1105、先行讀取結(jié)束大小保持部1106,并且共用高速 緩沖存儲(chǔ)器1003具備控制器1108和高速緩沖存儲(chǔ)器1109。先行讀取處理部1006通過傳輸源地址設(shè)定檢測部1102取得DMAC1002進(jìn)行的寄 存器設(shè)定之中的DMA傳輸源地址,并存儲(chǔ)至先行地址寄存器1105。另外,先行讀取處理部 1006通過DMA傳輸大小檢測部1103取得DMAC1002進(jìn)行的寄存器設(shè)定中的DMA傳輸大小, 并存儲(chǔ)至先行讀取結(jié)束大小保持部1106。當(dāng)兩方存儲(chǔ)結(jié)束時(shí),從先行地址寄存器1105和先 行讀取結(jié)束大小保持部1106向共用高速緩沖存儲(chǔ)器1003發(fā)布DMA傳輸源地址和DMA傳輸 大小。當(dāng)接受到DMA傳輸源地址和DMA傳輸大小時(shí),共用高速緩沖存儲(chǔ)器1003的控制器 1108將接受到的DMA傳輸源地址發(fā)布至高速緩沖存儲(chǔ)器1109。如果存在由該DMA傳輸源地 址指定的地址的數(shù)據(jù),則高速緩沖存儲(chǔ)器1109將表示命中的控制信號返回至控制器1108, 如果沒有,則將表示錯(cuò)誤的控制信號返回至控制器1108。當(dāng)接受到表示錯(cuò)誤的控制信號時(shí), 控制器1108進(jìn)行將DMA傳輸源地址指定的資源1004上的數(shù)據(jù)讀取并存儲(chǔ)至高速緩沖存儲(chǔ) 器1109的高速緩沖存儲(chǔ)器填充動(dòng)作。通過對從DMA傳輸源地址至DMA傳輸大小的區(qū)域反 復(fù)執(zhí)行該操作,從而能夠?qū)⑺械腄MA傳輸源區(qū)域存儲(chǔ)至高速緩沖存儲(chǔ)器。此外,當(dāng)所有的 填充動(dòng)作完成時(shí),為了通知填充完成,控制器1108將填充完成通知發(fā)布至DMAC1002。在自DMAC1002接受到DMA傳輸目標(biāo)地址時(shí),共用高速緩沖存儲(chǔ)器1003的控制器 1108讀取DMA傳輸源地址指定的高速緩沖存儲(chǔ)器1109上的1行(8字),向DMA傳輸目標(biāo)地 址指定的高速緩沖存儲(chǔ)器1109上的1行(8字)寫入。通過反復(fù)執(zhí)行該操作,將從DMA傳 輸源地址至DMA傳輸大小的所有的DMA傳輸源區(qū)域向從DMA傳輸目標(biāo)地址至DMA傳輸大小 的所有的DMA傳輸目標(biāo)區(qū)域存儲(chǔ),從而能夠?qū)⒐灿酶咚倬彌_存儲(chǔ)器1003所先行讀取的DMA 傳輸源區(qū)域的數(shù)據(jù)直接向共用高速緩沖存儲(chǔ)器1003上的DMA傳輸目標(biāo)區(qū)域傳輸。下面,說明圖11的高速緩沖存儲(chǔ)器1109為圖12的構(gòu)成、存儲(chǔ)器部1217的初始狀態(tài)為圖13(a)時(shí)、接受到將圖14的地址1、地址2指定的資源1004上的數(shù)據(jù)的高速緩沖存 儲(chǔ)器存儲(chǔ)至存儲(chǔ)器部1217的填充請求時(shí)的動(dòng)作和構(gòu)成。首先,說明高速緩沖存儲(chǔ)器1109的構(gòu)成。高速緩沖存儲(chǔ)器1109是組相聯(lián)方式的高 速緩沖存儲(chǔ)器。存儲(chǔ)器部1217由多個(gè)行(行0 3)構(gòu)成,各行具備標(biāo)記區(qū)域1204、valid 比特區(qū)域1205、數(shù)據(jù)區(qū)域1206。數(shù)據(jù)區(qū)域1206具備對資源1004上的數(shù)據(jù)的副本進(jìn)行存儲(chǔ) 的8字區(qū)域。為了區(qū)分?jǐn)?shù)據(jù)區(qū)域1206所存儲(chǔ)的數(shù)據(jù)是哪個(gè)地址的數(shù)據(jù),而在標(biāo)記區(qū)域1204 中存儲(chǔ)了地址的一部分(幀地址)。另外,高速緩沖存儲(chǔ)器1109接受到的地址包括幀地 址;為了選擇使用行0 3中的哪一行而使用的由0 3的地址范圍構(gòu)成的入口地址;用于 從由8字構(gòu)成的數(shù)據(jù)區(qū)域1206中選擇1字而使用的由0 7的地址范圍構(gòu)成的字地址。接著,對動(dòng)作進(jìn)行說明??刂破?108為了確認(rèn)地址1的數(shù)據(jù)已經(jīng)被存儲(chǔ)至存儲(chǔ)器 部1217,而將地址1(參照圖14)輸出至高速緩沖存儲(chǔ)器1109。當(dāng)接受到地址1時(shí),高速 緩沖存儲(chǔ)器1109的地址譯碼器1208對地址1的入口地址0進(jìn)行譯碼,選擇存儲(chǔ)器部1217 的第0行(參照圖13(a))。接著,命中判定部1210調(diào)查第0行的標(biāo)記區(qū)域1204 (參照圖 13(a))和地址1的幀地址(參照圖14)是否一致且第0行上的valid比特區(qū)域1205是否 有效。在此,由于滿足了所有條件,故判斷在第0行上存在目的數(shù)據(jù),命中判定部1210為了 通知在高速緩沖存儲(chǔ)器1109上有數(shù)據(jù),而向控制器1108通知命中信息。接著,如果接受到地址2 (參照圖14),則地址譯碼器1208對地址2的入口地址1 進(jìn)行譯碼,選擇存儲(chǔ)器部1217的第1行。接著,命中判定部1210調(diào)查第1行的標(biāo)記區(qū)域 1204和地址2的幀地址2是否一致且第1行上的valid比特區(qū)域1205是否有效。在此,由 于未滿足條件,所以判斷在第1行上沒有數(shù)據(jù),命中判定部1210為了通知高速緩沖存儲(chǔ)器 1109上沒有數(shù)據(jù),而向控制器1108通知錯(cuò)誤信息。當(dāng)接受到錯(cuò)誤信息時(shí),控制器1108讀取 資源1004上的地址2的字地址0 7的地址范圍的8字,控制高速緩沖存儲(chǔ)器1109的字 譯碼器1207,依次寫入到第1行上的數(shù)據(jù)區(qū)域1206的字0 7區(qū)域。此外,通過標(biāo)記寫入 部1202在第1行的標(biāo)記區(qū)域1204存儲(chǔ)地址2的幀地址2,通過valid bit寫入部1203將 第1行的valid比特區(qū)域1205設(shè)定為有效。通過以上的動(dòng)作,能夠向高速緩沖存儲(chǔ)器1109 填充資源1004上的DMA傳輸源的數(shù)據(jù),填充后的存儲(chǔ)器部1217處于圖13(b)所示的狀態(tài)。接著,說明圖11的高速緩沖存儲(chǔ)器1109為圖12的構(gòu)成、存儲(chǔ)器部1217的初始狀 態(tài)為圖15(a)時(shí)、由控制器1108接受圖16所示的地址3和地址4并讀取地址3指定的存 儲(chǔ)器部1217上的DMA傳輸源區(qū)域1行(8字)、向地址4指定的存儲(chǔ)器部1217上的DMA傳 輸目標(biāo)區(qū)域1行(8字)存儲(chǔ)時(shí)的高速緩沖存儲(chǔ)器動(dòng)作。高速緩沖存儲(chǔ)器1109當(dāng)接收到地址3 (參照圖16)時(shí),用地址譯碼器1208對地址 3的入口地址1進(jìn)行譯碼、選擇存儲(chǔ)器部1217的第1行。接著,命中判定部1210調(diào)查第1 行上的標(biāo)記區(qū)域1204和地址3的幀地址2是否一致且第1行的valid比特區(qū)域1205是否 有效。在此,由于滿足了所有條件,所以命中判定部1210向控制器1108發(fā)送命中信息。另 外,字選擇器1211依次讀取第1行上的數(shù)據(jù)區(qū)域1206的8字,并發(fā)送至控制器1108。接著,控制器1108為了向DMA傳輸目標(biāo)寫入,而將地址4 (參照圖16)和剛剛讀取 出的DMA傳輸源數(shù)據(jù)8字向高速緩沖存儲(chǔ)器1109輸出。高速緩沖存儲(chǔ)器1109通過地址譯 碼器1208對地址4的入口地址3進(jìn)行譯碼,選擇存儲(chǔ)器部1217的第3行。接著,通過標(biāo)記 寫入部1202在第3行上的標(biāo)記區(qū)域1204存儲(chǔ)地址4的幀地址4,進(jìn)而通過valid bit寫入部1203將第3行的valid比特區(qū)域1205設(shè)定為有效,通過字譯碼器1207將接受到的數(shù)據(jù) 依次存儲(chǔ)至第3行的數(shù)據(jù)區(qū)域1206的字0 7區(qū)域。通過以上的動(dòng)作,能夠?qū)⒋鎯?chǔ)在高速緩沖存儲(chǔ)器1109上的DMA傳輸源區(qū)域的1行 (8字)向高速緩沖存儲(chǔ)器1109上的DMA傳輸目標(biāo)區(qū)域傳輸,傳輸后的存儲(chǔ)器部1217處于 圖15(b)所示的狀態(tài)。此外,通過在讀取高速緩沖存儲(chǔ)器1109所存儲(chǔ)的DMA傳輸源區(qū)域的數(shù)據(jù),并存儲(chǔ) 到了高速緩沖存儲(chǔ)器1109上的DMA傳輸目標(biāo)區(qū)域時(shí),由valid bit寫入部1203將讀取后 的行的valid比特區(qū)域1205替換為無效,從高速緩沖存儲(chǔ)器上刪除傳輸完成的DMA傳輸源 的數(shù)據(jù),從而能夠謀求高速緩沖存儲(chǔ)器的有效利用。(實(shí)施方式7)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖10所示,本實(shí)施方式中的共用高速 緩沖存儲(chǔ)器1003、先行讀取處理部1006采取圖11的構(gòu)成。另外,關(guān)于各自的構(gòu)成及其動(dòng)作 如在實(shí)施方式6中說明過的那樣,但高速緩沖存儲(chǔ)器1109的構(gòu)成不同。說明高速緩沖存儲(chǔ)器1109為圖17的構(gòu)成、存儲(chǔ)器部1703的初始狀態(tài)為圖18(a) 時(shí)、接受到將圖19的地址1、地址2指定的資源1004上的數(shù)據(jù)的高速緩沖存儲(chǔ)器存儲(chǔ)至存 儲(chǔ)器部1703的填充請求時(shí)的動(dòng)作和構(gòu)成。首先,說明高速緩沖存儲(chǔ)器1109的構(gòu)成。高速緩沖存儲(chǔ)器1109為全相聯(lián)方式的 高速緩沖存儲(chǔ)器,存儲(chǔ)器部1703由多個(gè)行(行0 3)構(gòu)成,各行具備標(biāo)記區(qū)域1705、數(shù)據(jù) 區(qū)域1706。數(shù)據(jù)區(qū)域1706具備對資源1004上的數(shù)據(jù)的副本進(jìn)行存儲(chǔ)的8字區(qū)域。為了區(qū) 分?jǐn)?shù)據(jù)區(qū)域1706所存儲(chǔ)的數(shù)據(jù)是哪個(gè)地址的數(shù)據(jù),而在標(biāo)記區(qū)域1705中存儲(chǔ)地址的一部 分(幀地址)。另外,高速緩沖存儲(chǔ)器1109接受的地址包括幀地址和字地址。為了從由8 字構(gòu)成的數(shù)據(jù)區(qū)域1706中選擇1字,而字地址由0 7的地址范圍構(gòu)成。接著,對動(dòng)作進(jìn)行說明??刂破?108為了確認(rèn)地址1的數(shù)據(jù)是否已經(jīng)被存儲(chǔ)至存 儲(chǔ)器部1703,而將地址1(參照圖19)輸出至高速緩沖存儲(chǔ)器1109。當(dāng)接受到地址1時(shí),高 速緩沖存儲(chǔ)器1109的命中判定部1707比較地址1的幀地址100和存儲(chǔ)器部1703的所有 行的標(biāo)記區(qū)域1705。在此,由于第0行一致,所以判斷出在高速緩沖存儲(chǔ)器1109上的第0 行有數(shù)據(jù),命中判定部1707向控制器1108通知命中信息。接著,當(dāng)接受到地址2(參照圖 19)時(shí),比較地址2的幀地址101和存儲(chǔ)器部1703的所有行的標(biāo)記區(qū)域1705。在此,由于 一個(gè)都不一致,所以判斷出在高速緩沖存儲(chǔ)器1109的所有行沒有數(shù)據(jù),命中判定部1707向 控制器1108通知錯(cuò)誤信息。當(dāng)接受到錯(cuò)誤信息時(shí),控制器1108自資源1004上的地址2的 字地址0 7的范圍讀取8字,控制字譯碼器1708,向命中判定部1707選擇的空出的第1 行的數(shù)據(jù)區(qū)域1706的字0 7區(qū)域依次寫入。進(jìn)而,通過標(biāo)記寫入部1702在第1行上的 標(biāo)記區(qū)域1705存儲(chǔ)地址2的幀地址101。通過以上的動(dòng)作,能夠?qū)①Y源1004上的DMA傳輸 源的數(shù)據(jù)向高速緩沖存儲(chǔ)器1109填充,填充后的存儲(chǔ)器部1703處于圖18(b)所示的狀態(tài)。接著,說明圖11的高速緩沖存儲(chǔ)器1109為圖17的構(gòu)成、存儲(chǔ)器部1703的初始狀 態(tài)為圖20時(shí)、由控制器1108接受圖21的地址3和地址4、讀取地址3指定的存儲(chǔ)器部1703 上的DMA傳輸源區(qū)域1行(8字)并存儲(chǔ)到地址4指定的存儲(chǔ)器1703上的DMA傳輸目標(biāo)區(qū) 域1行(8字)時(shí)的高速緩沖存儲(chǔ)器動(dòng)作。當(dāng)高速緩沖存儲(chǔ)器1109接受到地址3 (參照圖21)時(shí),通過命中判定部1707比較
16地址3的幀地址101和存儲(chǔ)器部1703的所有行的標(biāo)記區(qū)域1705。在此,由于第1行一致, 所以命中判定部1707選擇一致的第1行,進(jìn)而為了通知在高速緩沖存儲(chǔ)器1109上有數(shù)據(jù), 向控制器1108發(fā)送命中信息。接著,當(dāng)高速緩沖存儲(chǔ)器1109接受到地址4時(shí),將由命中判 定部1701剛剛選擇出的第1行的標(biāo)記區(qū)域1705由標(biāo)記寫入部1702替換為地址4 (參照圖 21)的幀地址201。由此,能夠?qū)Ω咚倬彌_存儲(chǔ)器1109的1行(8字)進(jìn)行DMA傳輸。另外, 傳輸后的存儲(chǔ)器部1703處于圖20(b)所示的狀態(tài)。此外,在將高速緩沖存儲(chǔ)器1109上的DMA傳輸源區(qū)域的標(biāo)記變更為DMA傳輸目標(biāo) 區(qū)域的標(biāo)記時(shí),屬性指定部1710指定將該數(shù)據(jù)保持在高速緩沖存儲(chǔ)器的回寫屬性(WB)、或 雖然保持在高速緩沖存儲(chǔ)器但也寫入到資源1004的直寫屬性(WT)、或不保持在高速緩沖 存儲(chǔ)器的非緩沖器、廠Wm )屬性。屬性指定部1710指定的高速緩沖存儲(chǔ)器 屬性被保持在存儲(chǔ)器部1703的屬性區(qū)域1711。由此,能夠指定可以將被傳輸至高速緩沖存 儲(chǔ)器1109的DMA傳輸目標(biāo)區(qū)域的數(shù)據(jù)保持在高速緩沖存儲(chǔ)器1109,或者必須寫入至資源 1004。(實(shí)施方式8)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖10所示,本實(shí)施方式中的共用高速 緩沖存儲(chǔ)器1003、先行讀取處理部1006采用圖11的構(gòu)成。另外,關(guān)于各自的構(gòu)成及其動(dòng)作 如在實(shí)施方式6中已經(jīng)說明過的,但高速緩沖存儲(chǔ)器1109的構(gòu)成不同。圖22示出本實(shí)施方式中的高速緩沖存儲(chǔ)器1109的構(gòu)成。該高速緩沖存儲(chǔ)器1109 具備對DMA傳輸用的數(shù)據(jù)進(jìn)行存儲(chǔ)的高速緩沖存儲(chǔ)器B2206 ;以及對除此之外的數(shù)據(jù)進(jìn)行 存儲(chǔ)的高速緩沖存儲(chǔ)器A2205。當(dāng)高速緩沖存儲(chǔ)器1109中被輸入讀地址及寫地址時(shí),高速緩沖存儲(chǔ)器控制部 2202比較DMA傳輸區(qū)域保持部2209保持的DMA傳輸范圍地址,如果是范圍內(nèi)的地址,則判 斷為DMA傳輸,并選擇高速緩沖存儲(chǔ)器B2206,如果是除此之外的地址,則選擇高速緩沖存 儲(chǔ)器A2205。另外,通過地址控制部2203控制該地址,并向高速緩沖存儲(chǔ)器控制部2202選 擇的高速緩沖存儲(chǔ)器2205或2206輸入。另外,如果有輸入到高速緩沖存儲(chǔ)器1109的數(shù)據(jù), 則由寫數(shù)據(jù)控制部2204進(jìn)行控制,向高速緩沖存儲(chǔ)器控制部2202選擇的高速緩沖存儲(chǔ)器 2205或2206輸入。另外,由標(biāo)記參照結(jié)果控制部2207選擇高速緩沖存儲(chǔ)器控制部2202選 擇出的高速緩沖存儲(chǔ)器2205或2206輸出的命中、錯(cuò)誤的信息,并輸出至控制器1108。另外, 如果有高速緩沖存儲(chǔ)器控制部2202選擇出的高速緩沖存儲(chǔ)器2205或2206輸出的數(shù)據(jù),則 由讀數(shù)據(jù)控制部2208進(jìn)行選擇并輸出至控制器1108。通過以上的動(dòng)作,能夠?qū)MAC1002 在DMA傳輸中使用的高速緩沖存儲(chǔ)器和主控制器1001使用的高速緩沖存儲(chǔ)器分開。(實(shí)施方式9)本實(shí)施方式中的DMA傳輸裝置的整體結(jié)構(gòu)如圖23所示。該DMA傳輸裝置2308具 備DMAC2302、控制DMAC2302的主控制器2301、共用高速緩沖存儲(chǔ)器2303、資源2304、先行 讀取處理部2306。共用高速緩沖存儲(chǔ)器2303被主控制器2301和DMAC2302共用,并設(shè)置有 資源2304上的數(shù)據(jù)的高速緩沖存儲(chǔ)器。DMAC2302經(jīng)由先行讀取處理部2306和共用高速緩 沖存儲(chǔ)器2303在資源2304上進(jìn)行DMA傳輸。接著,說明各自的動(dòng)作。共用高速緩沖存儲(chǔ)器2303先行讀取從先行讀取處理部 2306接受到的DMA傳輸源地址指定的資源2304上的數(shù)據(jù)。另外,當(dāng)由主控制器2301進(jìn)行的寄存器設(shè)定結(jié)束時(shí),DMAC2302開始DMA傳輸,將資源2304上的DMA傳輸目標(biāo)區(qū)域的開頭 地址、即DMA傳輸目標(biāo)地址發(fā)布至共用高速緩沖存儲(chǔ)器2303。當(dāng)接受到DMA傳輸目標(biāo)地址 時(shí),共用高速緩沖存儲(chǔ)器2303將先行讀取出的數(shù)據(jù)向共用高速緩沖存儲(chǔ)器2303上的DMA 傳輸目標(biāo)地址指定的區(qū)域存儲(chǔ)。此外,共用高速緩沖存儲(chǔ)器2303分別使DMA傳輸源地址和DMA傳輸目標(biāo)地址進(jìn)行 增量,將DMA傳輸源地址指定的資源2304上的數(shù)據(jù)向共用高速緩沖存儲(chǔ)器2303的DMA傳輸 目標(biāo)地址區(qū)域存儲(chǔ),通過反復(fù)執(zhí)行該處理直至DMA傳輸大小,從而能夠?qū)⑺械馁Y源2304 上的DMA傳輸源區(qū)域的高速緩沖存儲(chǔ)器向共用高速緩沖存儲(chǔ)器2303上的DMA傳輸目標(biāo)區(qū) 域存儲(chǔ)。另外,先行讀取處理部2306進(jìn)行與在實(shí)施方式6中說明過的先行讀取處理部 1006 (圖10)同樣的動(dòng)作。(產(chǎn)業(yè)上的可用性)本發(fā)明在瞬間開始傳輸?shù)腄MA傳輸、或請求高速DMA傳輸?shù)陌雽?dǎo)體裝置中有用。
18
權(quán)利要求
一種DMA傳輸裝置,其特征在于,具備DMAC(Direct Memory Access Controller);對所述DMAC進(jìn)行控制的主控制器;以DMA(Direct Memory Access)傳輸?shù)姆绞奖辉L問的至少一個(gè)資源;傳輸源地址設(shè)定檢測單元,其從為了開始DMA傳輸而由所述主控制器對所述DMAC進(jìn)行的寄存器設(shè)定之中DMA傳輸源區(qū)域的傳輸開始地址設(shè)定中,取得DMA傳輸源地址;以及先行讀取單元,其向所述傳輸源地址設(shè)定檢測單元檢測出的所述資源上的DMA傳輸源地址進(jìn)行讀請求。
2.—種DMA傳輸裝置,其特征在于,具備具有多個(gè)傳輸通道的 DMAC(Direct Memory Access Controller); 對所述DMAC(Direct Memory Access Controller)進(jìn)行控制的主控制器; 以DMA傳輸?shù)姆绞奖辉L問的至少一個(gè)資源;傳輸源地址設(shè)定檢測單元,其從為了開始各DMA傳輸而由所述主控制器對所述DMAC的 各所述傳輸通道進(jìn)行的寄存器設(shè)定之中DMA傳輸源區(qū)域的傳輸開始地址設(shè)定中,取得各自 的DMA傳輸源地址;以及 先行讀取單元;所述先行讀取單元具備一個(gè)以上的先行讀取通道,所述先行讀取通道保持所述傳輸源 地址設(shè)定檢測單元檢測出的DMA傳輸源地址;所述先行讀取單元向各所述先行讀取通道保持的所述資源上的各DMA傳輸源地址進(jìn) 行讀請求。
3.根據(jù)權(quán)利要求2所述的DMA傳輸裝置,其特征在于,還具備DMA傳輸控制單元,在所有的所述先行讀取通道處于使用中時(shí),該DMA傳輸控制 單元向所述主控制器請求不開始這些以上的DMA傳輸。
4.根據(jù)權(quán)利要求2所述的DMA傳輸裝置,其特征在于,在所有的所述先行讀取通道處于使用中時(shí),所述主控制器進(jìn)一步開始的新的所述傳輸 通道的DMA傳輸不將DMA傳輸源地址存儲(chǔ)至所述先行讀取通道。
5.根據(jù)權(quán)利要求2所述的DMA傳輸裝置,其特征在于,除特定的所述傳輸通道所進(jìn)行的DMA傳輸以外的DMA傳輸,不將DMA傳輸源地址存儲(chǔ) 至所述先行讀取通道。
6.根據(jù)權(quán)利要求2所述的DMA傳輸裝置,其特征在于,還具備對多個(gè)先行讀取通道分別輸出的讀請求進(jìn)行仲裁的仲裁單元。
7.根據(jù)權(quán)利要求1 6中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,還具備先行數(shù)據(jù)存儲(chǔ)緩沖器,用于存儲(chǔ)根據(jù)由所述先行讀取單元輸出的讀請求而先行 讀取出的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1 6中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,還具備高速緩沖存儲(chǔ)器,用于存儲(chǔ)根據(jù)由所述先行讀取單元輸出的讀請求而先行讀取 出的數(shù)據(jù)。
9.根據(jù)權(quán)利要求1 6中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,還具備共用高速緩沖存儲(chǔ)器,用于存儲(chǔ)根據(jù)由所述先行讀取單元輸出的讀請求而先行讀取出的數(shù)據(jù),并被所述DMAC和一個(gè)以上的總線主控制器共用。
10.根據(jù)權(quán)利要求9所述的DMA傳輸裝置,其特征在于,所述共用高速緩沖存儲(chǔ)器包括多個(gè)高速緩沖存儲(chǔ)器;所述DMAC專用所述多個(gè)高速緩沖存儲(chǔ)器中的至少一個(gè);將根據(jù)所述先行讀取單元輸出的讀請求而先行讀取出的數(shù)據(jù)存儲(chǔ)至所述DMAC專用的 高速緩沖存儲(chǔ)器。
11.根據(jù)權(quán)利要求8 10中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,通過將先行讀取出的數(shù)據(jù)存儲(chǔ)至所述高速緩沖存儲(chǔ)器或所述共用高速緩沖存儲(chǔ)器上 的DMA傳輸源地址區(qū)域,進(jìn)而將該數(shù)據(jù)的副本向所述高速緩沖存儲(chǔ)器或所述共用高速緩沖 存儲(chǔ)器上的DMA傳輸目標(biāo)地址區(qū)域存儲(chǔ),來進(jìn)行向DMA傳輸目標(biāo)的寫入。
12.根據(jù)權(quán)利要求11所述的DMA傳輸裝置,其特征在于,使副本完成的所述高速緩沖存儲(chǔ)器或所述共用高速緩沖存儲(chǔ)器上的DMA傳輸源地址 區(qū)域無效。
13.根據(jù)權(quán)利要求8 10中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,通過將先行讀取出的數(shù)據(jù)存儲(chǔ)至所述高速緩沖存儲(chǔ)器或所述共用高速緩沖存儲(chǔ)器上 的DMA傳輸源地址區(qū)域,進(jìn)而將所述高速緩沖存儲(chǔ)器或所述共用高速緩沖存儲(chǔ)器上的DMA 傳輸源地址區(qū)域的標(biāo)記變更為DMA傳輸目標(biāo)地址區(qū)域的標(biāo)記,來進(jìn)行向DMA傳輸目標(biāo)的寫 入。
14.根據(jù)權(quán)利要求8 10中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,將先行讀取出的數(shù)據(jù)存儲(chǔ)至所述高速緩沖存儲(chǔ)器或所述共用高速緩沖存儲(chǔ)器上的DMA 傳輸目標(biāo)地址區(qū)域。
15.根據(jù)權(quán)利要求11 14中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,還具備在將先行讀取出的數(shù)據(jù)向所述高速緩沖存儲(chǔ)器或所述共用高速緩沖存儲(chǔ)器上 的傳輸目標(biāo)地址區(qū)域?qū)懭霑r(shí),向所述高速緩沖存儲(chǔ)器的標(biāo)記區(qū)域?qū)懭敫咚倬彌_存儲(chǔ)器屬性 的屬性指定單元。
16.根據(jù)權(quán)利要求1 15中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,在所述先行讀取單元進(jìn)行了讀請求之后,使所述先行讀取單元保持的DMA傳輸源地址 增量來進(jìn)一步進(jìn)行讀請求。
17.根據(jù)權(quán)利要求16所述的DMA傳輸裝置,其特征在于,還具備先行讀取結(jié)束地址保持單元;當(dāng)DMA傳輸源地址達(dá)到所述先行讀取結(jié)束地址保持單元保持的地址時(shí)停止增量,結(jié)束 先行讀取。
18.根據(jù)權(quán)利要求16所述的DMA傳輸裝置,其特征在于,還具備總傳輸次數(shù)計(jì)測單元,其計(jì)測所述先行讀取單元進(jìn)行了讀請求的次數(shù);以及總傳輸數(shù)保持單元,其保持所述總傳輸次數(shù)計(jì)測單元能計(jì)測的上限;當(dāng)所述總傳輸次數(shù)計(jì)測單元計(jì)測出的值達(dá)到了所述總傳輸數(shù)保持單元保持的上限時(shí), 結(jié)束先行讀取。
19.根據(jù)權(quán)利要求16 18中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,還具備連續(xù)先行讀取次數(shù)計(jì)測單元,其計(jì)測在所述DMAC進(jìn)行的讀請求之前由所述先行讀取單元先行進(jìn)行讀請求的數(shù);以及連續(xù)讀取數(shù)保持單元,其保持所述連續(xù)先行讀取次數(shù)計(jì)測單元能計(jì)測的上限次數(shù); 當(dāng)所述連續(xù)先行讀取次數(shù)計(jì)測單元計(jì)測出的值達(dá)到了所述連續(xù)讀取數(shù)保持單元保持 的上限時(shí),停止先行讀取。
20.根據(jù)權(quán)利要求1 19中任一項(xiàng)所述的DMA傳輸裝置,其特征在于, 以單個(gè)傳輸?shù)姆绞竭M(jìn)行先行讀取。
21.根據(jù)權(quán)利要求1 19中任一項(xiàng)所述的DMA傳輸裝置,其特征在于, 以成組傳輸?shù)姆绞竭M(jìn)行先行讀取。
22.根據(jù)權(quán)利要求1 19中任一項(xiàng)所述的DMA傳輸裝置,其特征在于, 在矩形傳輸時(shí)進(jìn)行先行讀取。
23.根據(jù)權(quán)利要求1 22中任一項(xiàng)所述的DMA傳輸裝置,其特征在于, 能控制先行讀取單元的起動(dòng)及停止。
24.根據(jù)權(quán)利要求1 23中任一項(xiàng)所述的DMA傳輸裝置,其特征在于,還具備DMA傳輸大小檢測單元,其從為了開始DMA傳輸而由所述主控制器對所述DMAC 進(jìn)行的寄存器設(shè)定之中指示進(jìn)行幾個(gè)字DMA傳輸?shù)腄MA傳輸大小設(shè)定中,取得DMA傳輸大 小。
全文摘要
本發(fā)明提供一種DMA傳輸裝置。傳輸源地址設(shè)定檢測部(305)從主控制器(301)對DMAC(302)進(jìn)行的多次寄存器設(shè)定之中DMA傳輸源區(qū)域的傳輸開始地址設(shè)定中,取得DMA傳輸源地址。先行讀取處理部(303)在DMAC(302)開始DMA傳輸之前,先行讀取DMA傳輸源地址指定的資源(304)上的數(shù)據(jù),進(jìn)而使DMA傳輸源地址進(jìn)行增量并反復(fù)執(zhí)行先行讀取。如果由主控制器(301)進(jìn)行的寄存器設(shè)定結(jié)束,則DMAC(302)開始DMA傳輸,讀取已經(jīng)先行讀取到先行讀取處理部(303)上的DMA傳輸源區(qū)域的數(shù)據(jù),并傳輸至資源(304)上的DMA傳輸目標(biāo)區(qū)域。
文檔編號G06F13/28GK101960437SQ20098010735
公開日2011年1月26日 申請日期2009年1月22日 優(yōu)先權(quán)日2008年3月3日
發(fā)明者前田剛志, 山本大介 申請人:松下電器產(chǎn)業(yè)株式會(huì)社