欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理器系統(tǒng)及其多通道內(nèi)存拷貝dma加速器和方法

文檔序號(hào):6441978閱讀:350來(lái)源:國(guó)知局
專利名稱:處理器系統(tǒng)及其多通道內(nèi)存拷貝dma加速器和方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)硬件體系結(jié)構(gòu)和處理器設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及一種支持異步訪存、內(nèi)存讀寫并行的基于處理器內(nèi)嵌多通道直接內(nèi)存訪問(wèn)(Direct Memory Access,DMA)的處理器系統(tǒng)及其多通道內(nèi)存拷貝DMA加速器和方法。
背景技術(shù)
在現(xiàn)有計(jì)算機(jī)系統(tǒng)中,內(nèi)存拷貝(Memory Copy)是一種在內(nèi)存不同位置之間傳輸數(shù)據(jù)的重要操作。其廣泛存在于操作系統(tǒng)和各類應(yīng)用程序當(dāng)中,相關(guān)研究發(fā)現(xiàn)內(nèi)存拷貝操作在TCP/IP協(xié)議處理中可以占到總時(shí)間開(kāi)銷的20%-40%。在操作系統(tǒng)中,內(nèi)存拷貝操作通過(guò)系統(tǒng)內(nèi)核定義的標(biāo)準(zhǔn)系統(tǒng)函數(shù)memcpy、bcopy等實(shí)現(xiàn)其功能。針對(duì)不同的計(jì)算機(jī)體系結(jié)構(gòu),操作系統(tǒng)對(duì)該組函數(shù)的具體實(shí)現(xiàn)也不同。在用戶程序中,C語(yǔ)言標(biāo)準(zhǔn)庫(kù)(ANSIC)也對(duì)內(nèi)存拷貝操作提供了函數(shù)實(shí)現(xiàn)。如

圖1所示,為現(xiàn)有的內(nèi)存拷貝處理器系統(tǒng)結(jié)構(gòu),包括處理器核(CPU)l、二級(jí)緩存(Cache)模塊2、內(nèi)存3,其中,處理器核包括控制單元11、運(yùn)算部件12、寄存器堆13、譯碼和訪存單元14、一級(jí)緩存(Cache)模塊15等。典型的內(nèi)存拷貝操作,在微觀上可以將其分解為對(duì)內(nèi)存的一系列交替的讀寫操作。處理器核先對(duì)A地址發(fā)出一個(gè)讀操作,當(dāng)其完成后,發(fā)出一個(gè)寫操作將讀回的值V(A)寫入地址B;之后向A+1發(fā)出讀請(qǐng)求,將讀回結(jié)果V(A+1)寫入B+1 ;反復(fù)執(zhí)行這一過(guò)程直到整個(gè)內(nèi)存拷貝操作完成?,F(xiàn)有的一種內(nèi)存拷貝加速方法是進(jìn)行指令重排優(yōu)化的內(nèi)存拷貝方法,該方法根據(jù)特定體系結(jié)構(gòu)處理器的流水線特點(diǎn),對(duì)內(nèi)存拷貝操作程序指令進(jìn)行重新排列,以獲得連續(xù)不斷的訪存流并提高訪存效率并降低延遲。其在操作系統(tǒng)內(nèi)核內(nèi)存拷貝函數(shù)中內(nèi)嵌相應(yīng)匯編指令代碼替換原有通用C代碼來(lái)提高程序執(zhí)行效率。并根據(jù)特定體系結(jié)構(gòu)的特點(diǎn)重排匯編訪存指令,以減少處理器執(zhí)行指令時(shí)的流水線停頓,如MIPS體系結(jié)構(gòu)下內(nèi)存拷貝函數(shù)將load和store指令四四分組排列?,F(xiàn)有的一種內(nèi)存拷貝加速方法是內(nèi)存拷貝與訪問(wèn)同步優(yōu)化的內(nèi)存拷貝方法,該方法通過(guò)增加額外的硬件模塊來(lái)記錄分析內(nèi)存拷貝操作和內(nèi)存訪問(wèn)操作的地址,從而不阻塞處理器來(lái)提高指令執(zhí)行效率。并在操作系統(tǒng)中提供優(yōu)化的拷貝操作原語(yǔ),以實(shí)現(xiàn)拷貝過(guò)程與其他內(nèi)存訪問(wèn)過(guò)程的同步?,F(xiàn)有的內(nèi)存拷貝加速方法具有以下缺點(diǎn)(一 )系統(tǒng)效率低?,F(xiàn)有技術(shù)進(jìn)行內(nèi)存拷貝時(shí)仍需要處理器執(zhí)行相關(guān)訪存和控制指令,導(dǎo)致整個(gè)拷貝過(guò)程中處理器無(wú)法進(jìn)行其他操作,其本質(zhì)上屬于處理器控制的串行同步內(nèi)存拷貝。(二)拷貝速度慢?,F(xiàn)有技術(shù)的處理器內(nèi)部一般集成1-2個(gè)訪存部件,只有當(dāng)前訪存指令完成后才能執(zhí)行后面的訪存指令,因此現(xiàn)有內(nèi)存拷貝方法在微觀上只是對(duì)內(nèi)存的串行訪問(wèn),無(wú)法同時(shí)進(jìn)行不相關(guān)的內(nèi)存讀寫操作,導(dǎo)致拷貝速度慢。(三)不具有通用兼容性。該方法與處理器結(jié)構(gòu)和程序指令集緊密相關(guān),不同體系結(jié)構(gòu)下優(yōu)化后的內(nèi)存拷貝程序不能相互兼容。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種處理器系統(tǒng)及其多通道內(nèi)存拷貝DMA加速器和方法,其具有高帶寬、低延遲,高并行度,可重配置化,平臺(tái)無(wú)關(guān)性的優(yōu)點(diǎn)。為實(shí)現(xiàn)本發(fā)明目的而提供的一種處理器系統(tǒng),包括處理器核,以及內(nèi)存,還包括通過(guò)數(shù)據(jù)總線連接在處理器核及內(nèi)存之間的多通道DMA加速器;所述多通道DMA加速器,用于在處理器核發(fā)出內(nèi)存拷貝命令產(chǎn)生數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,完成數(shù)據(jù)讀寫。較優(yōu)地,所述的處理器系統(tǒng),還包括連接在內(nèi)存及多通道DMA加速器之間的緩存模塊,用于緩存在內(nèi)存和多通道DMA加速器之間傳輸?shù)臄?shù)據(jù)。較優(yōu)地,所述多通道DMA加速器包括至少一 DMA引擎模塊和兩個(gè)接口 ;所述DMA引擎模塊,用于根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求;所述至少兩個(gè)接口,為至少一個(gè)數(shù)據(jù)接口和一個(gè)控制與通信接口 ;所述數(shù)據(jù)接口,用于,傳輸所述內(nèi)存拷貝命令的數(shù)據(jù)讀寫請(qǐng)求所需要讀寫的數(shù)據(jù);所述控制與通信接口,用于與所述處理器核和內(nèi)存進(jìn)行通信,接收處理器核配置數(shù)據(jù),并根據(jù)所述配置數(shù)據(jù)配置并存儲(chǔ)至所述讀寫通道的配置寄存器。較優(yōu)地,所述DMA引擎模塊包括多個(gè)讀寫通道及其相應(yīng)的標(biāo)記位,連接所述處理器核和所述內(nèi)存的兩個(gè)流控單元及數(shù)據(jù)緩沖區(qū);所述多個(gè)讀寫通道至少包括一讀通道和一寫通道;所述讀通道,用于在所述流控單元的控制下,從內(nèi)存中讀取數(shù)據(jù)到所述處理器核;所述寫通道,用于在所述流控單元的控制下,將處理器核發(fā)送來(lái)的數(shù)據(jù)寫入到內(nèi)存;所述流控單元,用于根據(jù)配置寄存器中的配置數(shù)據(jù)和讀寫通道的標(biāo)記位的值,以及初始化時(shí)設(shè)置的值統(tǒng)計(jì)各讀寫通道使用數(shù)據(jù)總線的情況,將數(shù)據(jù)總線分配給優(yōu)先級(jí)最高的讀寫通道使用,對(duì)每條讀寫通道的頻率和優(yōu)先級(jí)進(jìn)行控制,控制不同的通道啟動(dòng)不同的數(shù)據(jù)傳輸任務(wù),并與所述控制單元交互讀寫通道的工作狀態(tài);所述數(shù)據(jù)緩沖區(qū),用于緩存讀寫通道中的數(shù)據(jù);每一所述讀寫通道包括一配置寄存器,用于接收并存儲(chǔ)處理器核發(fā)送來(lái)的、供讀寫通道讀寫的配置數(shù)據(jù);每個(gè)標(biāo)記位標(biāo)記所述讀寫通道每次讀寫請(qǐng)求所讀寫的數(shù)據(jù)量。
較優(yōu)地,所述處理器核的控制單元,包括初始化子單元和配置子單元,其中所述初始化子單元,用于在處理器核進(jìn)行初始化時(shí),對(duì)所述流控單元進(jìn)行初始化,設(shè)置其初始工作狀態(tài),并啟動(dòng)通道的數(shù)據(jù)傳輸任務(wù);所述配置子單元,用于通過(guò)所述控制與通信接口,向每條讀寫通道發(fā)送配置數(shù)據(jù)到所述讀寫通道的配置寄存器,設(shè)置每條讀寫通道的相應(yīng)的配置寄存器的值。為實(shí)現(xiàn)本發(fā)明目的還提供一種多通道內(nèi)存拷貝DMA加速器,用于在接收到處理器核向內(nèi)存發(fā)出拷貝數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,完成數(shù)據(jù)讀寫。為實(shí)現(xiàn)本發(fā)明目的更提供一種內(nèi)存拷貝加速方法,包括如下步驟步驟S101,處理器核的控制單元向多通道DMA加速器發(fā)出內(nèi)存拷貝命令;步驟S102,多通道內(nèi)存拷貝DMA加速器在接收到處理器核向內(nèi)存發(fā)出的內(nèi)存拷貝數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,并行數(shù)據(jù)讀寫,直至完成所有讀寫操作。較優(yōu)地,所述步驟S102中,所述判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,包括如下步驟多通道內(nèi)存拷貝DMA加速器根據(jù)所述任務(wù)信息判斷,當(dāng)拷貝數(shù)據(jù)總長(zhǎng)度大于所述多通道DMA加速器的單個(gè)通道的總線位寬時(shí),則對(duì)所述內(nèi)存拷貝命令的任務(wù)信息進(jìn)行分解,根據(jù)分解后的內(nèi)存拷貝命令的任務(wù)信息,由多通道DMA加速器通過(guò)多個(gè)通道向內(nèi)存發(fā)出多次讀寫請(qǐng)求;否則,多通道內(nèi)存拷貝DMA加速器隨機(jī)選擇一通道向內(nèi)存發(fā)出數(shù)據(jù)讀寫請(qǐng)求。較優(yōu)地,所述并行數(shù)據(jù)讀寫,包括如下步驟步驟S1021,所述緩存模塊連接在內(nèi)存及多通道DMA加速器之間,緩存在內(nèi)存和多通道DMA加速器之間傳輸?shù)臄?shù)據(jù);所述緩存模塊接收到多通道DMA加速器的數(shù)據(jù)讀寫請(qǐng)求后,判斷所述數(shù)據(jù)讀寫請(qǐng)求中的被訪問(wèn)數(shù)據(jù)是否在緩存模塊中是否具有相應(yīng)備份;步驟S1022,如果所述數(shù)據(jù)讀寫請(qǐng)求的被訪問(wèn)數(shù)據(jù)在緩存模塊中具有相應(yīng)備份,執(zhí)行步驟S1023 ;否則執(zhí)行步驟S1024 ;步驟S1023,根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求在緩存模塊中讀寫相應(yīng)的被訪問(wèn)數(shù)據(jù),即內(nèi)存訪問(wèn)緩存命中,返回讀操作所需的被訪問(wèn)數(shù)據(jù),或更新寫操作對(duì)應(yīng)緩存塊的被訪問(wèn)數(shù)據(jù);步驟S1024,所述數(shù)據(jù)讀寫請(qǐng)求無(wú)法從緩存模塊的相應(yīng)備份中讀取被訪問(wèn)數(shù)據(jù),即內(nèi)存訪問(wèn)緩存缺失,則引發(fā)緩存替換操作,將待被訪問(wèn)數(shù)據(jù)由外部?jī)?nèi)存中換入到緩存模塊中,并返回讀操作所需的被訪問(wèn)數(shù)據(jù),或?qū)τ趯懖僮鞲孪鄳?yīng)被訪問(wèn)數(shù)據(jù)在緩存中的備份。較優(yōu)地,所述步驟S102還包括如下步驟步驟S201,處理器核設(shè)置多通道DMA加速器的每條通道的配置寄存器,并初始化s-tag的值;
步驟S202,所述多通道DMA模塊的各條通道根據(jù)步驟S201中配置寄存器的值啟動(dòng)相應(yīng)的數(shù)據(jù)傳輸任務(wù);步驟S203,在每個(gè)時(shí)鐘周期,各通道根據(jù)自身的工作狀態(tài)設(shè)置p-tag的值,同時(shí)檢測(cè) s-tag 的 tagO tag7 ;如果通道完成步驟S201初始化時(shí)s-tag的標(biāo)記位代表的數(shù)據(jù)量,則暫時(shí)停止工作,并向處理器核發(fā)出中斷請(qǐng)求,然后執(zhí)行步驟S204 ;否則返回繼續(xù)執(zhí)行步驟S202 ;步驟S204,處理器核檢測(cè)s-tag的值并查詢?chǔ)?tag的值,根據(jù)s-tag和ρ-tag的值判斷數(shù)據(jù)傳輸是否完成;如果是,則結(jié)束整個(gè)傳輸任務(wù);否則,開(kāi)始下一個(gè)標(biāo)記位代表的數(shù)據(jù)傳輸。較優(yōu)地,所述緩存模塊為二級(jí)緩存模塊。本發(fā)明的處理器系統(tǒng)及其多通道內(nèi)存拷貝加速器和方法,具有以下有益效果(一)高帶寬,低延遲本發(fā)明通過(guò)在處理器內(nèi)加入多通道直接內(nèi)存訪問(wèn)(DMA)加速器,通過(guò)多條通道的流水化處理,能夠獲得很高的帶寬和很低的延遲;( 二 )高并行度本發(fā)明通過(guò)在多通道DMA加速器的每條通道設(shè)置一組標(biāo)記位標(biāo)記通道的工作狀態(tài),使得在處理器核計(jì)算與直接內(nèi)存訪問(wèn)(Direct Memory Access,DMA)的數(shù)據(jù)傳輸之間實(shí)現(xiàn)了一種更細(xì)粒度的并行工作機(jī)制;(三)可重配置化本發(fā)明通過(guò)控制和通信接口實(shí)現(xiàn)CPU對(duì)直接內(nèi)存訪問(wèn)(DMA)模塊的實(shí)時(shí)可重配置化的數(shù)據(jù)傳輸過(guò)程;(四)平臺(tái)無(wú)關(guān)性本發(fā)明可以有效避免軟件平臺(tái)的依賴,具有很好的可移植性。說(shuō)明書(shū)附1為現(xiàn)有進(jìn)行內(nèi)存拷貝的處理器系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例的進(jìn)行內(nèi)存拷貝的處理器系統(tǒng)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例圖2中多通道DMA加速器結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例圖2中控制單元結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例在一次內(nèi)存拷貝操作中處理器核(CPU)與多通道DMA加速器及緩存模塊的交互示意圖;圖6為本發(fā)明使用本發(fā)明處理器多通道內(nèi)存拷貝方法的并行內(nèi)存拷貝函數(shù)memcpyO的工作過(guò)程示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明的處理器系統(tǒng)及其多通道內(nèi)存拷貝DMA加速器和方法進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實(shí)施例一如圖2所示,為本發(fā)明實(shí)施例處理器系統(tǒng),包括處理器核1,以及內(nèi)存3,以及通過(guò)數(shù)據(jù)總線連接在處理器核1及內(nèi)存3之間的多通道DMA (Direct Memory Access,直接內(nèi)存訪問(wèn))加速器4;所述多通道DMA加速器4,用于在處理器核1發(fā)出內(nèi)存拷貝命令的數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存3發(fā)出多次讀寫請(qǐng)求,完成數(shù)據(jù)讀寫。較佳地,作為一種可實(shí)施方式,本發(fā)明實(shí)施例的處理器系統(tǒng),還包括連接在內(nèi)存3及多通道DMA加速器4之間的緩存模塊2,用于緩存在內(nèi)存3和多通道DMA加速器4之間傳輸?shù)臄?shù)據(jù)。作為一種可實(shí)施方式,如圖2所示,所述處理器核1包括控制單元11、運(yùn)算部件12、寄存器堆13、譯碼訪存單元14和一級(jí)緩存(Cache)模塊15等,將所述控制單元11、運(yùn)算部件12、寄存器堆13、譯碼訪存單元14和一級(jí)緩存(Cache)模塊15作為一個(gè)硬件模塊封裝整體為處理器核1,所述多通道DMA加速器4通過(guò)數(shù)據(jù)總線連接在處理器核的控制單元11和內(nèi)存3之間。本發(fā)明實(shí)施例處理器系統(tǒng),通過(guò)集成多通道DMA加速器4,消除內(nèi)存拷貝過(guò)程中處理器核的干預(yù),通過(guò)處理器系統(tǒng)內(nèi)部集成的多通道DMA加速器4和利用現(xiàn)有緩存(Cache)模塊2最大程度減少DMA讀寫內(nèi)存的延遲時(shí)間,并在保持結(jié)構(gòu)獨(dú)立性的同時(shí)減少對(duì)內(nèi)存子系統(tǒng)的影響,并可實(shí)現(xiàn)運(yùn)算部件計(jì)算過(guò)程與異步DMA引擎內(nèi)存拷貝操作的并行操作。作為一種可實(shí)施方式,所述本發(fā)明實(shí)施例的多通道DMA加速器4設(shè)置于處理器系統(tǒng)內(nèi)部,連接在處理器核1的控制單元11和內(nèi)存3之間,在處理器核1與內(nèi)存3之間開(kāi)辟了一條直接的數(shù)據(jù)通路。作為一種可實(shí)施方式,如圖3所示,本發(fā)明實(shí)施例的多通道DMA加速器4包括至少一 DMA引擎模塊41和兩個(gè)接口 42、43 ;所述DMA引擎模塊41,用于根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,通過(guò)多個(gè)通道向內(nèi)存3發(fā)出多次讀寫請(qǐng)求。較佳地,如圖3所示,本發(fā)明實(shí)施例的DMA引擎模塊41包括多個(gè)讀寫通道及其相應(yīng)的標(biāo)記位412,兩個(gè)流控單元411及數(shù)據(jù)緩沖區(qū)413。所述多個(gè)讀寫通道412至少包括一讀通道和一寫通道。所述讀通道,用于在所述流控單元的控制下,從內(nèi)存3中讀取數(shù)據(jù)到所述處理器核;所述寫通道,用于在所述流控單元的控制下,將處理器核發(fā)送來(lái)的數(shù)據(jù)寫入到內(nèi)存3。所述流控單元411,用于根據(jù)處理器核發(fā)來(lái)的配置數(shù)據(jù)和讀寫通道的標(biāo)記位的值,以及初始化時(shí)設(shè)置的值統(tǒng)計(jì)各讀寫通道使用數(shù)據(jù)總線的情況,將數(shù)據(jù)總線分配給優(yōu)先級(jí)最高的讀寫通道使用,對(duì)每條讀寫通道的頻率和優(yōu)先級(jí)進(jìn)行控制,控制不同的通道啟動(dòng)不同的數(shù)據(jù)傳輸任務(wù),并與所述控制單元11交互讀寫通道的工作狀態(tài)。作為一種可實(shí)施方式,流控單元411中利用一組寄存器來(lái)分別保存當(dāng)前各條DMA通道所發(fā)出的訪存請(qǐng)求個(gè)數(shù)(某條通道發(fā)出一次請(qǐng)求,相應(yīng)寄存器值加1),根據(jù)公平調(diào)度原則在多條通道同時(shí)發(fā)出訪存請(qǐng)求時(shí),對(duì)應(yīng)寄存器值最小的通道獲得最高優(yōu)先級(jí)。所述數(shù)據(jù)緩沖區(qū)413,用于緩存讀寫通道中的數(shù)據(jù)。每一所述讀寫通道412包括一配置寄存器4121,用于接收并存儲(chǔ)處理器核發(fā)送來(lái)CN 102567256 A
的、供讀寫通道讀寫的配置數(shù)據(jù)。每個(gè)標(biāo)記位標(biāo)記所述讀寫通道每次讀寫請(qǐng)求所讀寫的數(shù)據(jù)量。如圖3所示,本發(fā)明實(shí)施例中的多通道DMA加速器4的所述至少兩個(gè)接口,為至少一個(gè)數(shù)據(jù)接口 43和一個(gè)控制與通信接口 42。所述數(shù)據(jù)接口 43,用于傳輸所述內(nèi)存拷貝命令的數(shù)據(jù)讀寫請(qǐng)求所需要讀寫的數(shù)據(jù);所述控制與通信接口 42,用于與所述處理器核1和內(nèi)存3進(jìn)行通信,接收處理器核配置數(shù)據(jù),并根據(jù)所述配置數(shù)據(jù)配置并存儲(chǔ)至所述讀寫通道的配置寄存器4121。較佳地,作為一種可實(shí)施方式,所述接口為基于1 位的AXI (Advancedextensible Interface)總線的接口,通過(guò)該數(shù)據(jù)總線完成內(nèi)存單元的讀寫操作;所述緩存模塊2為二級(jí)緩存模塊。相應(yīng)地,作為一種可實(shí)施方式,如圖4所示,所述處理器核的控制單元11,包括初始化子單元111和配置子單元112,其中所述初始化子單元111,用于在處理器核進(jìn)行初始化時(shí),對(duì)所述流控單元411進(jìn)行初始化,設(shè)置其初始工作狀態(tài),并啟動(dòng)通道的數(shù)據(jù)傳輸任務(wù)。所述配置子單元112,用于通過(guò)所述控制與通信接口 42,向每條讀寫通道發(fā)送配置數(shù)據(jù)到所述讀寫通道的配置寄存器4121,設(shè)置每條讀寫通道的相應(yīng)的配置寄存器的值。較佳地,所述配置數(shù)據(jù)包括源地址、目的地址、數(shù)據(jù)段長(zhǎng)度等的信息。所述處理器核1可以通過(guò)所述控制與通信接口 42設(shè)置每條讀寫通道的相應(yīng)配置寄存器4121的值,從而使得流控單元能夠根據(jù)置數(shù)據(jù)啟動(dòng)不同的數(shù)據(jù)傳輸任務(wù)。作為本發(fā)明實(shí)施例的核心部件,DMA引擎模塊41能減少處理器核執(zhí)行的指令條數(shù),能夠支持連續(xù)步長(zhǎng)的內(nèi)存拷貝操作、緩存(Cache) —致性和程序的局部性,提高內(nèi)存拷貝過(guò)程中計(jì)算與數(shù)據(jù)傳輸之間的并行度,從而獲得很高的程序運(yùn)行效率,以及很低的功率和面積開(kāi)銷。作為一種可實(shí)施方式,本發(fā)明實(shí)施例的DMA引擎模塊41,如圖3所示,包括三條讀通道和一條寫通道;每條通道都有自己獨(dú)立的配置寄存器和標(biāo)記位(tag)。其中一條讀寫通道在啟動(dòng)時(shí)其它讀寫通道可以進(jìn)行其數(shù)據(jù)傳輸,即四條讀寫通道可以并行處理數(shù)據(jù),其有效減少了通道的啟動(dòng)、轉(zhuǎn)換、暫停與重啟開(kāi)銷,此外,因?yàn)槎鄺l通道可以并行工作,這就極大地增加了數(shù)據(jù)傳輸?shù)膸?。處理器?的控制單元11的配置子單元112通過(guò)所述控制和通信接口 42設(shè)置每條通道配置寄存器4121的值,較佳地,所述通道配置寄存器4121的值包括源地址、目的地址、數(shù)據(jù)段長(zhǎng)度等的值;同時(shí)控制單元的初始化子單元完成流控單元的初始化工作,并啟動(dòng)通道的數(shù)據(jù)傳輸任務(wù)。在數(shù)據(jù)傳輸過(guò)程中,讀寫通道中的流控單元411通過(guò)所述控制和通信接口 4121將各自的標(biāo)記位(tag)反饋給處理器核的控制單元11,處理器核的控制單元11標(biāo)志所述通道的各自的工作狀態(tài)。作為一種可實(shí)施方式,本發(fā)明實(shí)施例中,所述數(shù)據(jù)緩沖區(qū)采用先進(jìn)先出(FIFO)的工作模式,容納I字節(jié)的數(shù)據(jù),讀通道讀回來(lái)的數(shù)據(jù)先暫存在數(shù)據(jù)緩沖區(qū)再由寫通道寫回內(nèi)存。
10
流控單元411根據(jù)初始化時(shí)設(shè)置的值統(tǒng)計(jì)各通道使用總線的情況,將總線分配給優(yōu)先級(jí)最高的通道使用,實(shí)現(xiàn)對(duì)每條通道的頻率和優(yōu)先級(jí)控制。為了減少控制和交互的延遲時(shí)間。在本發(fā)明實(shí)施例中,所述的多通道DMA加速器4在每條讀寫通道中都設(shè)置了一組標(biāo)記位(tag),并由流控單元控制所述標(biāo)記位使用。具體地說(shuō),每一組標(biāo)記位(tag)都包括一個(gè)8比特位的s-tag (tag0_tag7)和一個(gè)8 比特位的 p-tag(tag0_tag7)。其中,s-tag 表示控制標(biāo)記,p-tag 表示狀態(tài)標(biāo)記。其中s-tag是為了通過(guò)CPU預(yù)先設(shè)定好DMA通道的工作條件,從而實(shí)現(xiàn)在DMA開(kāi)始工作后的控制。作為一種可實(shí)施方式,本發(fā)明實(shí)施例中,s-tag有8位0-7位,將整個(gè)DMA傳輸過(guò)程分為8段(1/8遞增)。舉例來(lái)說(shuō)如預(yù)先將s-tag的位1、5設(shè)為1,則DMA分別在傳輸完成了設(shè)定數(shù)據(jù)總長(zhǎng)度的2/8,和6/8時(shí)暫停(stall).具體來(lái)說(shuō)就是如果預(yù)先打算通過(guò)DMA傳輸80個(gè)字節(jié)的數(shù)據(jù),則通過(guò)設(shè)置s-tagl、5位后,當(dāng)傳輸完成20個(gè)字節(jié),和60個(gè)字節(jié)(這個(gè)統(tǒng)計(jì)和比較通過(guò)流控單元中的傳輸統(tǒng)計(jì)功能即計(jì)數(shù)寄存器實(shí)現(xiàn))的時(shí)候DMA會(huì)自動(dòng)進(jìn)入暫停狀態(tài),暫停后通過(guò)CPU發(fā)命令來(lái)人為恢復(fù)傳輸。其中,p-tag是反映當(dāng)前DMA傳輸完成的情況。拿上例來(lái)說(shuō),設(shè)DMA完成不間斷的傳輸80個(gè)字節(jié),則p-tag依次在DMA完成大于10、20. . . 80個(gè)字節(jié)時(shí),其0_7位置1。該標(biāo)記主要為了方便CPU查詢當(dāng)前DMA的傳輸工作情況。S-tag與P-tag在工作上沒(méi)有任何交互。舉例來(lái)說(shuō),可以不對(duì)s_tag進(jìn)行任何設(shè)置(即無(wú)間斷傳輸),P-tag依舊會(huì)根據(jù)DMA傳輸情況發(fā)生變化。二者間s-tag比較重要,是實(shí)現(xiàn)DMA預(yù)先控制(無(wú)干預(yù))的設(shè)置,p-tag是CPU方便交互用。8位s-tag、p-tag不是將通道分為8段,而是將傳輸任務(wù)分為8段,在每完成一次基本傳輸請(qǐng)求后就要檢查(通過(guò)查詢比較流控單元中的計(jì)數(shù)寄存器)當(dāng)前已傳輸數(shù)據(jù)是否已經(jīng)大于等于s-tag的要求(1/8,2/8... 8/8)。P_tag代表的傳輸數(shù)據(jù)階段也同s-tag,每位分別對(duì)應(yīng)(1/8,2/8. ..8/8)。s-tag、p-tag的變化是根據(jù)所述CPU設(shè)置和DMA數(shù)據(jù)傳輸量變化,流控單元本身并不對(duì)其進(jìn)行控制。只是對(duì)標(biāo)記位的讀寫是由CPU發(fā)出后由流控單元進(jìn)行接受并返回相應(yīng)狀態(tài)。標(biāo)記位每一位代表的數(shù)據(jù)量是根據(jù)任務(wù)的總數(shù)據(jù)量來(lái)決定的,即不同任務(wù)可能不同,但是都1/8,2/8...例如80字節(jié)任務(wù),tag的每一位代表10字節(jié)800字節(jié)任務(wù),tag的每一位代表100字節(jié)作為一種可實(shí)施方式,在初始化子單元初始化時(shí),將s-tag和p-tag的每一比特位標(biāo)記為0 ;從LSB (Least Significant Bit,最低有效位)開(kāi)始,流控單元對(duì)s_tag的每個(gè)比特位置1,當(dāng)完成標(biāo)記位所代表的數(shù)據(jù)傳輸任務(wù)時(shí),即當(dāng)每一數(shù)據(jù)傳輸請(qǐng)求從所述讀寫通道讀寫完成相應(yīng)的數(shù)據(jù)量后,相應(yīng)的讀寫通道將暫停工作,然后,讀寫通道則會(huì)將P-tag中的相應(yīng)比特位置1。在一個(gè)具體的實(shí)施例方式中,讀通道1的s-tag和p-tag的每個(gè)標(biāo)記位都代表1/8的數(shù)據(jù)傳輸任務(wù)。流控單元接收到內(nèi)存拷貝命令中的數(shù)據(jù)讀寫請(qǐng)求后,根據(jù)數(shù)據(jù)讀寫請(qǐng)求中的任務(wù)信息進(jìn)行判斷根據(jù)預(yù)先設(shè)置的分解方法進(jìn)行分解,然后將分解后的數(shù)據(jù)讀寫請(qǐng)求分解為多個(gè)讀寫請(qǐng)求,根據(jù)配置寄存器中的配置數(shù)據(jù),以及各個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及標(biāo)記位的值,并行啟動(dòng)多個(gè)讀寫通道,數(shù)據(jù)讀寫。讀通道1讀完1/8的數(shù)據(jù)任務(wù)后,則暫時(shí)停止工作,并向處理器核(CPU)發(fā)出中斷請(qǐng)求;處理器核(CPU)的控制單元收到中斷請(qǐng)求后,由流控單元檢測(cè)s-tag和p-tag的值,從而獲知讀通道1已經(jīng)將1/8的數(shù)據(jù)段寫入數(shù)據(jù)緩沖區(qū)。下面給出一個(gè)1280(160X8)字節(jié)內(nèi)存拷貝(由地址A拷貝至地址B)的例子,如圖5所示,進(jìn)一步說(shuō)明本發(fā)明實(shí)施例的處理器系統(tǒng)的多通道DMA加速器4。首先進(jìn)行內(nèi)存拷貝方法設(shè)置;(11)設(shè)置利用一個(gè)讀通道r和一個(gè)寫通道w同時(shí)工作來(lái)完成(最簡(jiǎn)單情況,同類型多通道間仲裁時(shí)可以認(rèn)為工作中通道具有最高優(yōu)先級(jí),讀寫之間是并行的不需要仲裁)。(12)設(shè)置標(biāo)記位策略(這里只用到s-tag)。在讀通道每完成160個(gè)字節(jié)后暫停;CPU此時(shí)啟動(dòng)寫通道將已經(jīng)讀回的160字節(jié)寫入目標(biāo)地址,同時(shí)并行的恢復(fù)剛才的讀通道工作,同樣寫通道和讀通道在完成160字節(jié)傳輸后暫停。循環(huán)8次至1280字節(jié)數(shù)據(jù)完成內(nèi)存拷貝。然后,配置DMA通道和標(biāo)記位;(21)配置讀通道和寫通道的源地址(A)、目的地址(B)、和長(zhǎng)度(1觀0)(22)此時(shí)只先配置讀通道r的s-tag,將其0-7位置1,啟動(dòng)DMA的讀通道r工作。其后,進(jìn)行第一次讀通道r暫停;(31)當(dāng)讀通道r完成160字節(jié)讀取后(1/8),s-tag位0的判斷條件被觸發(fā)(位0對(duì)應(yīng)1/8),讀通道r暫停并發(fā)出中斷信號(hào)通知CPU。 (32) CPU收到中斷后,配置寫通道w的標(biāo)記位0-7置1,并啟動(dòng)寫通道w工作(開(kāi)始將之前讀完成的120字節(jié)寫入目的地址);同時(shí)恢復(fù)讀通道r工作,將讀通道s-tag的位置0 (如果不置0會(huì)反復(fù)發(fā)中斷-對(duì)大于1/8同時(shí)小于2/8的情況)。最后,進(jìn)行剩余過(guò)程;(41)此時(shí)當(dāng)讀通道r完成320字節(jié)(2/8)傳輸后再次發(fā)出中斷,此時(shí)通過(guò)判斷寫通道w的p-tag,檢查寫通道w是否已經(jīng)完成160字節(jié)的寫(1/8);如果已經(jīng)完成則恢復(fù)讀通道r和寫通道w,同時(shí)清除對(duì)應(yīng)的s-tag位(原因同3. 2),否則繼續(xù)輪詢寫通道w的p_tag(42)反復(fù)執(zhí)行4. 1直到1280字節(jié)拷貝完成從整個(gè)過(guò)程可以看出s-tag起了至關(guān)重要的作用,CPU根據(jù)本發(fā)明實(shí)施例在以1/8(160字節(jié))數(shù)據(jù)量傳輸完成后中斷處理中與s-tag,p-tag進(jìn)行交互。交互的方法要視具體設(shè)置而定。整個(gè)過(guò)程除了讀通道!·的第一個(gè)1/8過(guò)程和寫通道的最后一個(gè)1/8外,其他過(guò)程都是讀寫通道并行工作的。假設(shè)串行拷貝1280字節(jié)過(guò)程需要16個(gè)單位時(shí)間(讀160,寫160,再讀160...寫最后160字節(jié)),基于本發(fā)明實(shí)施例的實(shí)現(xiàn)只需10個(gè)單位時(shí)間(讀160,寫160+讀下一個(gè)160...寫最后一個(gè)160)。其間只需要在中斷后(共8次)更改s-tag和查詢p-tag的值,開(kāi)銷很小。實(shí)施例二
相應(yīng)地,本發(fā)明實(shí)施例提供一種內(nèi)存拷貝加速方法,包括如下步驟步驟S101,處理器核的控制單元向多通道DMA加速器發(fā)出內(nèi)存拷貝命令;步驟S102,多通道DMA加速器在接收到處理器核向內(nèi)存發(fā)出的內(nèi)存拷貝命令的數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,并行數(shù)據(jù)讀寫,直至完成所有讀寫操作;較佳地,所述步驟S102中,所述判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,包括如下步驟多通道DMA加速器根據(jù)所述任務(wù)信息判斷,當(dāng)拷貝數(shù)據(jù)總長(zhǎng)度大于所述多通道DMA加速器的單個(gè)通道的總線位寬時(shí),則對(duì)所述內(nèi)存拷貝命令的任務(wù)信息進(jìn)行分解,根據(jù)分解后的內(nèi)存拷貝命令的任務(wù)信息,由多通道DMA加速器通過(guò)多個(gè)通道向內(nèi)存發(fā)出多次讀寫請(qǐng)求;否則,多通道DMA加速器隨機(jī)選擇一通道向內(nèi)存發(fā)出數(shù)據(jù)讀寫請(qǐng)求;較佳地,所述步驟S102中,所述并行數(shù)據(jù)讀寫,包括如下步驟步驟S1021,所述緩存模塊連接在內(nèi)存及多通道DMA加速器之間,緩存在內(nèi)存和多通道DMA加速器之間傳輸?shù)臄?shù)據(jù);所述緩存模塊接收到多通道DMA加速器的數(shù)據(jù)讀寫請(qǐng)求后,判斷所述數(shù)據(jù)讀寫請(qǐng)求中的被訪問(wèn)數(shù)據(jù)是否在緩存模塊中具有相應(yīng)備份;步驟S1022,如果所述數(shù)據(jù)讀寫請(qǐng)求的被訪問(wèn)數(shù)據(jù)在緩存(Cache)模塊中具有相應(yīng)備份,執(zhí)行步驟S1023 ;否則執(zhí)行步驟S1024 ;步驟S1023,根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求在緩存模塊中讀寫相應(yīng)的被訪問(wèn)數(shù)據(jù),即內(nèi)存訪問(wèn)緩存(Cache)命中,返回讀操作所需的被訪問(wèn)數(shù)據(jù),或更新寫操作對(duì)應(yīng)緩存(Cache)塊的被訪問(wèn)數(shù)據(jù);步驟S1024,所述數(shù)據(jù)讀寫請(qǐng)求無(wú)法從緩存模塊的相應(yīng)備份中讀取被訪問(wèn)數(shù)據(jù),即內(nèi)存訪問(wèn)緩存(Cache)缺失,則引發(fā)緩存(Cache)替換操作(Cache Evict),將待被訪問(wèn)數(shù)據(jù)由外部?jī)?nèi)存中換入到緩存模塊中,并返回讀操作所需的被訪問(wèn)數(shù)據(jù),或?qū)τ趯懖僮鞲孪鄳?yīng)被訪問(wèn)數(shù)據(jù)在緩存(Cache)中的備份。所述緩存(Cache)替換操作(Cache Evict)是一種現(xiàn)有技術(shù),因此,在本發(fā)明實(shí)施例中,不再一一詳細(xì)描述。作為一種可實(shí)施方式,較佳地,本發(fā)明實(shí)施例的內(nèi)存拷貝加速方法,所述步驟102還包括如下步驟步驟S201,處理器核(CPU)設(shè)置多通道DMA加速器的每條通道的配置寄存器,并初始化s-tag的值;步驟S202,所述多通道DMA模塊的各條通道根據(jù)步驟S201中配置寄存器的值啟動(dòng)相應(yīng)的數(shù)據(jù)傳輸任務(wù);步驟S203,在每個(gè)時(shí)鐘周期,各通道根據(jù)自身的工作狀態(tài)設(shè)置p-tag的值,同時(shí)檢測(cè) s-tag 的 tagO tag7 ;如果通道完成步驟S201初始化時(shí)s-tag的標(biāo)記位代表的數(shù)據(jù)量,則暫時(shí)停止工作,并向處理器核(CPU)發(fā)出中斷請(qǐng)求,然后執(zhí)行步驟S204;否則返回繼續(xù)執(zhí)行步驟S202。步驟S204,處理器核(CPU)檢測(cè)s_tag的值并查詢?chǔ)?tag的值,根據(jù)s-tag和p-tag的值判斷數(shù)據(jù)傳輸是否完成;如果是,則結(jié)束整個(gè)傳輸任務(wù);否則,開(kāi)始下一個(gè)標(biāo)記位代表的數(shù)據(jù)傳輸。下面舉例說(shuō)明本發(fā)明實(shí)施例的處理器系統(tǒng)及其多通道內(nèi)存拷貝加速器和方法。在一個(gè)具體實(shí)施例子中,一種使用本發(fā)明處理器系統(tǒng)及其多通道內(nèi)存拷貝加速器和方法的并行內(nèi)存拷貝函數(shù)memcpyO的工作過(guò)程,如圖6所示。在函數(shù)memCpy(SrC,dst, len)中,src表示待拷貝數(shù)據(jù)段的源地址,dst表示拷貝的目的地址,Ien表示數(shù)據(jù)段的長(zhǎng)度。load (src)表示所述多通道DMA加速器的讀通道從源地址讀取數(shù)據(jù);store (dst)表示所述多通道DMA加速器的寫通道將數(shù)據(jù)寫入目的地址。如圖6所示,基于讀寫通道的標(biāo)記位(tag),該實(shí)施例中內(nèi)存拷貝過(guò)程的讀寫操作可以實(shí)現(xiàn)一種流水化的處理讀通道先從源地址讀取tagO代表的數(shù)據(jù)量,然后向CPU發(fā)出中斷請(qǐng)求。CPU如果判斷這部分?jǐn)?shù)據(jù)已準(zhǔn)備好則開(kāi)始寫通道的數(shù)據(jù)傳輸任務(wù),將已讀取的數(shù)據(jù)寫回內(nèi)存的目的地址。此時(shí),讀通道繼續(xù)讀取tagl代表的數(shù)據(jù)量,這樣寫通道就可以與讀通道并行工作。通過(guò)這種流水化的處理,寫通道的啟動(dòng)和讀寫通道之間的轉(zhuǎn)換、暫停與重啟等開(kāi)銷都被隱藏起來(lái),減少了處理器的開(kāi)銷,同時(shí)也獲得了很高的帶寬利用率。最后應(yīng)當(dāng)說(shuō)明的是,很顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型。
權(quán)利要求
1.一種處理器系統(tǒng),包括處理器核,以及內(nèi)存,其特征在于,還包括通過(guò)數(shù)據(jù)總線連接在處理器核及內(nèi)存之間的多通道DMA加速器;所述多通道DMA加速器,用于在處理器核發(fā)出內(nèi)存拷貝命令產(chǎn)生數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,完成數(shù)據(jù)讀寫。
2.根據(jù)權(quán)利要求1所述的處理器系統(tǒng),其特征在于,還包括連接在內(nèi)存及多通道DMA加速器之間的緩存模塊,用于緩存在內(nèi)存和多通道DMA加速器之間傳輸?shù)臄?shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的處理器系統(tǒng),其特征在于,所述多通道DMA加速器包括至少一DMA引擎模塊和兩個(gè)接口 ;所述DMA引擎模塊,用于根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求;所述至少兩個(gè)接口,為至少一個(gè)數(shù)據(jù)接口和一個(gè)控制與通信接口 ;所述數(shù)據(jù)接口,用于傳輸所述內(nèi)存拷貝命令的數(shù)據(jù)讀寫請(qǐng)求所需要讀寫的數(shù)據(jù);所述控制與通信接口,用于與所述處理器核和內(nèi)存進(jìn)行通信,接收處理器核配置數(shù)據(jù),并根據(jù)所述配置數(shù)據(jù)配置并存儲(chǔ)至所述讀寫通道的配置寄存器。
4.根據(jù)權(quán)利要求3所述的處理器系統(tǒng),其特征在于,所述接口為基于1 位的總線的接口,通過(guò)該數(shù)據(jù)總線完成內(nèi)存單元的讀寫操作;所述緩存模塊為二級(jí)緩存模塊。
5.根據(jù)權(quán)利要求3所述的處理器系統(tǒng),其特征在于,所述DMA引擎模塊包括多個(gè)讀寫通道及其相應(yīng)的標(biāo)記位,連接所述處理器核和所述內(nèi)存的兩個(gè)流控單元及數(shù)據(jù)緩沖區(qū);所述多個(gè)讀寫通道至少包括一讀通道和一寫通道;所述讀通道,用于在所述流控單元的控制下,從所述內(nèi)存中讀取數(shù)據(jù)到所述處理器核;所述寫通道,用于在所述流控單元的控制下,將處理器核發(fā)送來(lái)的數(shù)據(jù)寫入到內(nèi)存;所述流控單元,用于根據(jù)配置寄存器中的配置數(shù)據(jù)和讀寫通道的標(biāo)記位的值,以及初始化時(shí)設(shè)置的值統(tǒng)計(jì)各讀寫通道使用數(shù)據(jù)總線的情況,將數(shù)據(jù)總線分配給優(yōu)先級(jí)最高的讀寫通道使用,對(duì)每條讀寫通道的頻率和優(yōu)先級(jí)進(jìn)行控制,控制不同的通道啟動(dòng)不同的數(shù)據(jù)傳輸任務(wù),并與處理器核的控制單元交互讀寫通道的工作狀態(tài);所述數(shù)據(jù)緩沖區(qū),用于緩存讀寫通道中的數(shù)據(jù);每一所述讀寫通道包括一配置寄存器,用于接收并存儲(chǔ)處理器核發(fā)送來(lái)的、供讀寫通道讀寫的配置數(shù)據(jù);每個(gè)標(biāo)記位標(biāo)記所述讀寫通道每次讀寫請(qǐng)求所讀寫的數(shù)據(jù)量。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的處理器系統(tǒng),其特征在于,所述處理器核的控制單元,包括初始化子單元和配置子單元,其中所述初始化子單元,用于在處理器核進(jìn)行初始化時(shí),對(duì)所述流控單元進(jìn)行初始化,設(shè)置其初始工作狀態(tài),并啟動(dòng)通道的數(shù)據(jù)傳輸任務(wù);所述配置子單元,用于通過(guò)所述控制與通信接口,向每條讀寫通道發(fā)送配置數(shù)據(jù)到所述讀寫通道的配置寄存器,設(shè)置每條讀寫通道的相應(yīng)的配置寄存器的值。
7.根據(jù)權(quán)利要求6所述的處理器系統(tǒng),其特征在于,所述配置數(shù)據(jù)包括源地址、目的地址、數(shù)據(jù)段長(zhǎng)度。
8.根據(jù)權(quán)利要求5所述的處理器系統(tǒng),其特征在于,所述多條讀寫通道包括三條讀通道和一條寫通道,每條通道都有自己獨(dú)立的配置寄存器和標(biāo)記位,其中一條讀寫通道在啟動(dòng)時(shí)其它讀寫通道可以進(jìn)行其數(shù)據(jù)傳輸,即四條讀寫通道可以并行處理數(shù)據(jù)。
9.一種多通道內(nèi)存拷貝DMA加速器,其特征在于,用于在接收到處理器核向內(nèi)存發(fā)出拷貝數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,完成數(shù)據(jù)讀寫。
10.根據(jù)權(quán)利要求9所述的多通道內(nèi)存拷貝DMA加速器,其特征在于,所述多通道DMA加速器包括至少一 DMA引擎模塊和兩個(gè)接口 ;所述DMA引擎模塊,用于根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求;所述至少兩個(gè)接口,為至少一個(gè)數(shù)據(jù)接口和一個(gè)控制與通信接口 ;所述數(shù)據(jù)接口,用于傳輸所述內(nèi)存拷貝命令的數(shù)據(jù)讀寫請(qǐng)求所需要讀寫的數(shù)據(jù);所述控制與通信接口,用于與所述處理器核和內(nèi)存進(jìn)行通信,接收處理器核配置數(shù)據(jù),并根據(jù)所述配置數(shù)據(jù)配置并存儲(chǔ)至所述讀寫通道的配置寄存器。
11.根據(jù)權(quán)利要求9或10所述的多通道內(nèi)存拷貝DMA加速器,其特征在于,所述DMA引擎模塊包括多個(gè)讀寫通道及其相應(yīng)的標(biāo)記位,連接所述處理器核和所述內(nèi)存的兩個(gè)流控單元及數(shù)據(jù)緩沖區(qū);所述多個(gè)讀寫通道至少包括一讀通道和一寫通道;所述讀通道,用于在所述流控單元的控制下,從內(nèi)存中讀取數(shù)據(jù)到所述處理器核;所述寫通道,用于在所述流控單元的控制下,將處理器核發(fā)送來(lái)的數(shù)據(jù)寫入到內(nèi)存;所述流控單元,用于根據(jù)配置寄存器中的配置數(shù)據(jù)和讀寫通道的標(biāo)記位的值,以及初始化時(shí)設(shè)置的值統(tǒng)計(jì)各讀寫通道使用數(shù)據(jù)總線的情況,將數(shù)據(jù)總線分配給優(yōu)先級(jí)最高的讀寫通道使用,對(duì)每條讀寫通道的頻率和優(yōu)先級(jí)進(jìn)行控制,控制不同的通道啟動(dòng)不同的數(shù)據(jù)傳輸任務(wù),并與所述處理器的控制單元交互讀寫通道的工作狀態(tài);所述數(shù)據(jù)緩沖區(qū),用于緩存讀寫通道中的數(shù)據(jù);每一所述讀寫通道包括一配置寄存器,用于接收并存儲(chǔ)處理器核發(fā)送來(lái)的、供讀寫通道讀寫的配置數(shù)據(jù);每個(gè)標(biāo)記位標(biāo)記所述讀寫通道每次讀寫請(qǐng)求所讀寫的數(shù)據(jù)量。
12.—種內(nèi)存拷貝加速方法,其特征在于,包括如下步驟步驟S101,處理器核的控制單元向多通道DMA加速器發(fā)出內(nèi)存拷貝命令;步驟S102,多通道內(nèi)存拷貝DMA加速器在接收到處理器核向內(nèi)存發(fā)出的內(nèi)存拷貝數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,并行數(shù)據(jù)讀寫,直至完成所有讀寫操作。
13.根據(jù)權(quán)利要求12所述的內(nèi)存拷貝加速方法,其特征在于,所述步驟S102中,所述判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,包括如下步驟多通道內(nèi)存拷貝DMA加速器根據(jù)所述任務(wù)信息判斷,當(dāng)拷貝數(shù)據(jù)總長(zhǎng)度大于所述多通道DMA加速器的單個(gè)通道的總線位寬時(shí),則對(duì)所述內(nèi)存拷貝命令的任務(wù)信息進(jìn)行分解,根據(jù)分解后的內(nèi)存拷貝命令的任務(wù)信息,由多通道DMA加速器通過(guò)多個(gè)通道向內(nèi)存發(fā)出多次讀寫請(qǐng)求;否則,多通道內(nèi)存拷貝DMA加速器隨機(jī)選擇一通道向內(nèi)存發(fā)出數(shù)據(jù)讀寫請(qǐng)求。
14.根據(jù)權(quán)利要求12所述的內(nèi)存拷貝加速方法,其特征在于,所述并行數(shù)據(jù)讀寫,包括如下步驟步驟S1021,所述緩存模塊連接在內(nèi)存及多通道DMA加速器之間,緩存在內(nèi)存和多通道DMA加速器之間傳輸?shù)臄?shù)據(jù);所述緩存模塊接收到多通道DMA加速器的數(shù)據(jù)讀寫請(qǐng)求后,判斷所述數(shù)據(jù)讀寫請(qǐng)求中的被訪問(wèn)數(shù)據(jù)是否在緩存模塊中是否具有相應(yīng)備份;步驟S1022,如果所述數(shù)據(jù)讀寫請(qǐng)求的被訪問(wèn)數(shù)據(jù)在緩存模塊中具有相應(yīng)備份,執(zhí)行步驟S1023 ;否則執(zhí)行步驟S1024 ;步驟S1023,根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求在緩存模塊中讀寫相應(yīng)的被訪問(wèn)數(shù)據(jù),即內(nèi)存訪問(wèn)緩存命中,返回讀操作所需的被訪問(wèn)數(shù)據(jù),或更新寫操作對(duì)應(yīng)緩存塊的被訪問(wèn)數(shù)據(jù);步驟S1024,所述數(shù)據(jù)讀寫請(qǐng)求無(wú)法從緩存模塊的相應(yīng)備份中讀取被訪問(wèn)數(shù)據(jù),即內(nèi)存訪問(wèn)緩存缺失,則引發(fā)緩存替換操作,將待被訪問(wèn)數(shù)據(jù)由外部?jī)?nèi)存中換入到緩存模塊中,并返回讀操作所需的被訪問(wèn)數(shù)據(jù),或?qū)τ趯懖僮鞲孪鄳?yīng)被訪問(wèn)數(shù)據(jù)在緩存中的備份。
15.根據(jù)權(quán)利要求14所述的內(nèi)存拷貝加速方法,其特征在于,所述步驟S102還包括如下步驟步驟S201,處理器核設(shè)置多通道DMA加速器的每條通道的配置寄存器,并初始化s-tag的值;步驟S202,所述多通道DMA模塊的各條通道根據(jù)步驟S201中配置寄存器的值啟動(dòng)相應(yīng)的數(shù)據(jù)傳輸任務(wù);步驟S203,在每個(gè)時(shí)鐘周期,各通道根據(jù)自身的工作狀態(tài)設(shè)置p-tag的值,同時(shí)檢測(cè)s-tag ^tJ tagO tag7 ;如果通道完成步驟S201初始化時(shí)s-tag的標(biāo)記位代表的數(shù)據(jù)量,則暫時(shí)停止工作,并向處理器核發(fā)出中斷請(qǐng)求,然后執(zhí)行步驟S204 ;否則返回繼續(xù)執(zhí)行步驟S202 ;步驟S204,處理器核檢測(cè)s-tag的值并查詢p-tag的值,根據(jù)s-tag和ρ-tag的值判斷數(shù)據(jù)傳輸是否完成;如果是,則結(jié)束整個(gè)傳輸任務(wù);否則,開(kāi)始下一個(gè)標(biāo)記位代表的數(shù)據(jù)傳輸。
16.根據(jù)權(quán)利要求14所述的內(nèi)存拷貝加速方法,其特征在于,所述緩存模塊為二級(jí)緩存模塊。
全文摘要
本發(fā)明提供一種處理器系統(tǒng)及其多通道內(nèi)存拷貝DMA加速器和方法。該處理器系統(tǒng),包括通過(guò)數(shù)據(jù)總線連接在處理器核及內(nèi)存之間的多通道直接內(nèi)存訪問(wèn)DMA加速器,用于在處理器核發(fā)出內(nèi)存拷貝命令產(chǎn)生數(shù)據(jù)讀寫請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息判斷并分解所述數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,并根據(jù)分解后的數(shù)據(jù)讀寫請(qǐng)求的任務(wù)信息,以及其中多個(gè)讀寫通道的讀寫頻率和優(yōu)先級(jí),以及所述讀寫通道的標(biāo)記位的值,控制多個(gè)讀寫通道并行向內(nèi)存發(fā)出多次讀寫請(qǐng)求,完成數(shù)據(jù)讀寫。其具有高帶寬、低延遲,高并行度,可重配置化,平臺(tái)無(wú)關(guān)性的優(yōu)點(diǎn)。
文檔編號(hào)G06F13/28GK102567256SQ201110425530
公開(kāi)日2012年7月11日 申請(qǐng)日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者蘇孟豪, 蘇文 申請(qǐng)人:龍芯中科技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鲁山县| 玉环县| 武穴市| 泸定县| 百色市| 循化| 平阳县| 阳西县| 大余县| 车致| 博客| 永平县| 扎赉特旗| 沙湾县| 阿城市| 南阳市| 连州市| 林周县| 江门市| 临洮县| 渭源县| 巴彦淖尔市| 尤溪县| 金坛市| 大荔县| 弋阳县| 邢台市| 遵义县| 石城县| 丹棱县| 盐源县| 铁岭市| 高密市| 铜鼓县| 永兴县| 应城市| 利川市| 怀集县| 宜川县| 连云港市| 溆浦县|