專利名稱:數(shù)據(jù)搬運(yùn)處理的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)搬運(yùn)處理的方法和裝置。
背景技術(shù):
直接內(nèi)存訪問(wèn)(Direct Memory Access, DMA)是一種完全由硬件執(zhí)行it據(jù) 搬移的工作模式,在DMA模式下,DMA控制器通過(guò)一個(gè)獨(dú)立于處理器的總線主控 制器執(zhí)行數(shù)據(jù)搬移操作,CPU只需向DMA控制器下達(dá)指令,讓DMA控制器來(lái)處理數(shù) 據(jù)的傳送,不需要經(jīng)過(guò)CPU,數(shù)據(jù)就可以直接在存儲(chǔ)器之間,外設(shè)之間以及內(nèi)存 和I/0設(shè)備之間進(jìn)行搬移,數(shù)據(jù)傳送完畢再把信息反饋給CPU。
在進(jìn)行音頻或視頻的編解碼時(shí),經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行大批量搬運(yùn),通常, 采用DMA形式對(duì)音視頻數(shù)據(jù)進(jìn)行搬運(yùn)。
由于視頻原始數(shù)據(jù)在內(nèi)存中的放置對(duì)數(shù)據(jù)的處理十分不便,因此,需要將 原始數(shù)據(jù)重新排列才能方便處理。如圖l所示,左邊數(shù)據(jù)是從視頻輸入端口獲取 的視頻原始數(shù)據(jù),是按照獲取的順序存放在存儲(chǔ)器中,但是在處理數(shù)據(jù)時(shí),需 要將Rx、 Gx、 Bx數(shù)據(jù)重新排列成右邊的順序。有n個(gè)Rx數(shù)據(jù),因此采用現(xiàn)有的DMA 技術(shù)進(jìn)行數(shù)據(jù)搬移,CPU必須對(duì)DMA進(jìn)行n次配置才能將所有的Rx搬移到右邊的位 置。要將所有的R、 G、 B數(shù)據(jù)重排列為右邊的順序,CPU就必須對(duì)DMA進(jìn)行3n次配 置,這將大大降低主CPU系統(tǒng)的性能;或者在DMA內(nèi)部再嵌入一個(gè)小型的微處理 器,通過(guò)對(duì)小型微處理器進(jìn)行編程的方式完成數(shù)據(jù)搬運(yùn)。
音頻數(shù)據(jù)通過(guò)數(shù)字鏈路(如I2S)傳輸時(shí),它可能包含幾個(gè)通道。這些通道必 須復(fù)用在一個(gè)數(shù)據(jù)線內(nèi),通過(guò)同一個(gè)串行端口傳輸。此時(shí),DMA可以用對(duì)復(fù)用的 數(shù)據(jù)進(jìn)行去交織(interleaving)處理,以便讓每個(gè)通道數(shù)據(jù)在存儲(chǔ)器上直線排 列。如圖2中,左邊是處理完的左右聲道的音頻數(shù)據(jù),是分開左聲道和右聲道泉放置的。但是通過(guò)I2S總線發(fā)送左右聲道的數(shù)據(jù)時(shí),需要將左右聲道的數(shù)據(jù)交織 在一起發(fā)送。如果是使用DMA搬運(yùn),在沒(méi)有優(yōu)化音頻數(shù)據(jù)搬移的情況下,每搬移 一個(gè)聲道數(shù)據(jù)都需要CPU去配置一遍DMA,搬運(yùn)n個(gè)數(shù)據(jù)則需配置2n次DMA;或者 在DMA內(nèi)部再嵌入一個(gè)小型的微處理器,通過(guò)對(duì)小型微處理器進(jìn)行編程的方式完 成數(shù)據(jù)搬運(yùn)。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題 在對(duì)音頻或視頻數(shù)據(jù)采用DMA模式進(jìn)行數(shù)據(jù)的重排列時(shí),在搬運(yùn)每個(gè)數(shù)據(jù)之
前,CPU需要進(jìn)行一次DMA配置,這樣會(huì)大大占用CPU資源,降低系統(tǒng)的效率。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種數(shù)據(jù)搬運(yùn)處理的方法和裝置,能夠減少系統(tǒng)的資 源的占用,提高數(shù)據(jù)搬運(yùn)的效率。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案 一種數(shù)據(jù)搬運(yùn)處理的方法,包括 接收控制模式指示;
根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù); 根據(jù)所述參數(shù)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址; 將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。 一種數(shù)據(jù)搬運(yùn)處理的裝置,包括 接收模塊,用于接收控制模式指示;
獲取模塊,用于根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù);
搬運(yùn)模塊,用于將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。 本發(fā)明實(shí)施例提供的數(shù)據(jù)搬運(yùn)處理的方法和裝置,在數(shù)據(jù)搬運(yùn)之前,不需要對(duì)每個(gè)待搬運(yùn)的數(shù)據(jù)的源地址和目的地址都進(jìn)行設(shè)置,而只需要接收一次控 制模式指示,根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù),即可根據(jù)所述 參數(shù)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址,進(jìn)而將所述待搬運(yùn)的數(shù)據(jù)從 所述源地址搬運(yùn)到所述目的地址。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例減少了因多 次設(shè)置而帶來(lái)的系統(tǒng)的資源占用,提高了數(shù)據(jù)搬運(yùn)的效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施 例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述 中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付 出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖l為視頻數(shù)據(jù)搬運(yùn)處理流程示意圖; 圖2為音頻數(shù)據(jù)搬運(yùn)處理流程示意圖; 圖3為本發(fā)明實(shí)施例一提供的數(shù)據(jù)搬運(yùn)處理的方法流程圖; 圖4為本發(fā)明實(shí)施例二提供的數(shù)據(jù)搬運(yùn)處理的方法流程圖; 圖5為本發(fā)明實(shí)施例三提供的數(shù)據(jù)搬運(yùn)處理的方法流程圖; 圖6為本發(fā)明實(shí)施例四提供的數(shù)據(jù)搬運(yùn)處理的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清 楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是 全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造 性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的實(shí)施例提供一種數(shù)據(jù)搬運(yùn)處理的方法和裝置。
為使本發(fā)明技術(shù)方案的優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作詳細(xì)說(shuō)明。
本發(fā)明的實(shí)施例提供一種數(shù)據(jù)搬運(yùn)處理的方法,該方法能夠減少系統(tǒng)的資 源占用,提高數(shù)據(jù)搬運(yùn)的效率。 實(shí)施例一
如圖3所示,所述數(shù)據(jù)搬運(yùn)處理的方法包括 S301、 DMA控制器接收控制模式指示。
其中,所述控制模式指示可以通過(guò)操作碼的方式來(lái)實(shí)現(xiàn),不同的操作碼對(duì) 應(yīng)不同的數(shù)據(jù)搬運(yùn)處理方式。下面給出幾種不同的操作碼及其對(duì)應(yīng)的搬運(yùn)處理 方式
000000:直接數(shù)據(jù)搬運(yùn),不作任何處理; 000001:音頻數(shù)據(jù)重排列; 000010:視頻數(shù)據(jù)重排列;
000011:對(duì)待4般運(yùn)的數(shù)據(jù)添加CRC (Cyclical Redundancy Check,循環(huán)冗 余校驗(yàn)碼);
000100:對(duì)待搬運(yùn)的數(shù)據(jù)進(jìn)行CRC檢查;
000101:對(duì)待搬運(yùn)的數(shù)據(jù)進(jìn)行大端到小端模式的變換;
000101:對(duì)待搬運(yùn)的數(shù)據(jù)進(jìn)行小端到大端模式的變換。
當(dāng)然,所述操作碼不限于上述所列舉的幾種,也可以為其它的操作碼;所 述操作碼的編碼方式,不限于上述列舉的編碼方式,每一種數(shù)據(jù)搬運(yùn)處理方式 對(duì)應(yīng)的操作碼,也可以按照其它的編碼方式進(jìn)行編排。
當(dāng)然,所述控制^f莫式指示不限于操作碼形式,也可以為任何DMA控制器能夠 識(shí)別的形式。
S 3 0 2 、根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù)。其中,所述參數(shù)包括所述待搬運(yùn)數(shù)據(jù)的首數(shù)據(jù)的源地址和目的地址,所述 待搬運(yùn)數(shù)據(jù)的每個(gè)數(shù)據(jù)塊的大小,以及所述待搬運(yùn)數(shù)據(jù)中的每?jī)蓚€(gè)相鄰數(shù)據(jù)的 偏移地址。
DMA控制器根據(jù)接收到的控制模式指示,去獲取計(jì)算所有待搬運(yùn)的數(shù)據(jù)的源 地址和目的地址所需的參數(shù),例如所述控制模式指示為操作碼形式,該操作 碼為OOOOIO,該操作碼對(duì)應(yīng)的數(shù)據(jù)搬運(yùn)處理方式為視頻數(shù)據(jù)重排列,則所述相 關(guān)參數(shù)包括所有待搬運(yùn)的數(shù)據(jù)的大小、相鄰兩個(gè)待搬運(yùn)的數(shù)據(jù)的偏移地址、待 搬運(yùn)的首個(gè)數(shù)據(jù)的源地址和目的地址。
5303、 根據(jù)所述參數(shù)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址。 根據(jù)所獲取的參數(shù),DMA控制器能夠計(jì)算出所有待搬運(yùn)的數(shù)據(jù)的源地址和目
的地址。與現(xiàn)有技術(shù)相比,DMA控制器不需要在每搬運(yùn)一個(gè)數(shù)據(jù)之前,都要對(duì)該 數(shù)據(jù)的源地址和目的地址進(jìn)行設(shè)置,減少了多次設(shè)置帶來(lái)的系統(tǒng)的資源占用。
5304、 將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。 本發(fā)明實(shí)施例提供的數(shù)據(jù)搬運(yùn)處理的方法,在數(shù)據(jù)搬運(yùn)之前,不需要對(duì)每
個(gè)待搬運(yùn)的數(shù)據(jù)的源地址和目的地址都進(jìn)行設(shè)置,而只需要接收一次控制模式 指示,根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù),即可根據(jù)所述參數(shù)獲 得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址,進(jìn)而將所述待搬運(yùn)的數(shù)據(jù)從所述源 地址搬運(yùn)到所述目的地址。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例減少了因多次設(shè)置 而帶來(lái)的系統(tǒng)的資源占用,提高了數(shù)據(jù)搬運(yùn)的效率。 實(shí)施例二
在本實(shí)施例中,DMA控制器接收的控制模式指示為視頻數(shù)據(jù)重排列。如圖l 所示,左邊的數(shù)據(jù)是從視頻輸入端口獲取的視頻原始數(shù)據(jù),其中,R類、G類和B 類數(shù)據(jù)間隔放置,其中,R類數(shù)據(jù)包括RO至Rn,可以簡(jiǎn)稱為Rx,表示第X個(gè)待搬運(yùn)的數(shù)據(jù)中的R類數(shù)據(jù);G類數(shù)據(jù)包括GO至Gn,可以簡(jiǎn)稱為Gx,表示第X個(gè)待搬運(yùn) 的數(shù)據(jù)中的G類數(shù)據(jù);B類數(shù)據(jù)包括BO至Bn,可以簡(jiǎn)稱為Bx,表示第X個(gè)待搬運(yùn)的 數(shù)據(jù)中的B類數(shù)據(jù)。
任意兩個(gè)相鄰的R類之間的偏移地址相同,任意兩個(gè)相鄰的G類之間的偏移 地址相同,任意兩個(gè)相鄰的B類之間的偏移地址相同。由于所述視頻原始數(shù)據(jù)在 內(nèi)存中的放置對(duì)數(shù)據(jù)的處理十分不便,因此,需要將所述視頻原始數(shù)據(jù)進(jìn)行重 排列至右邊所示的順序,使R類、G類和B類,按類分開,并且每一類中的數(shù)據(jù)按 順序放置。
如圖4所示,所述數(shù)據(jù)搬運(yùn)處理的方法包括
5401、 國(guó)A控制器接收控制模式指示,所述控制模式指示為視頻數(shù)據(jù)重排列。
5402、 根據(jù)所述控制模式指示獲取待搬運(yùn)的各數(shù)據(jù)塊Rx的相關(guān)參數(shù),根據(jù) 所述參數(shù),能夠計(jì)算出所有待搬運(yùn)的各數(shù)據(jù)塊Rx的源地址和目的地址。
這里,所述參數(shù)包括待搬運(yùn)的首個(gè)數(shù)據(jù)塊RO的源地址PO、目的地址QO, 以及待搬運(yùn)的各數(shù)據(jù)塊Rx的大小Lx、相鄰兩個(gè)待搬運(yùn)的數(shù)據(jù)塊Rx之間的偏移地 址。其中,所述x可以取O至n中的任意值,所述任意相鄰兩個(gè)數(shù)據(jù)塊Rx之間的偏 移地址相同,均為dl。
5403、 根據(jù)上述參數(shù),DMA控制器計(jì)算出所有待搬運(yùn)的數(shù)據(jù)塊Rx的源地址Px 和目的地址Qx。
其中,所述數(shù)據(jù)塊Rx的源地址Px等于數(shù)據(jù)塊R(x-l)的源地址P(x-l)加上相 鄰兩個(gè)數(shù)據(jù)塊之間的偏移地址dl,數(shù)據(jù)塊Rx的目的地址Qx等于數(shù)據(jù)塊R (x-l)的 目的地址Q(x-l)加上數(shù)據(jù)塊R(x-l)的大小L(x-1),其中,所述x可以取l至n中的 任意值。
5404、 將所有待搬運(yùn)的數(shù)據(jù)塊Rx依次從所述源地址搬運(yùn)到所述目的地址。同樣,采用與S402-S404類似的方法,對(duì)所有的數(shù)據(jù)Gx進(jìn)行搬運(yùn)處理,實(shí)現(xiàn) 所有的數(shù)據(jù)塊Gx的重排列。
S402a、根據(jù)所述控制模式指示獲取待搬運(yùn)的各數(shù)據(jù)塊Gx的相關(guān)參數(shù),根據(jù) 所述參數(shù),能夠計(jì)算出所有待搬運(yùn)的各數(shù)據(jù)塊Gx的源地址和目的地址。
這里,所述參數(shù)包括待搬運(yùn)的首個(gè)數(shù)據(jù)塊GO的源地址MO、目的地址MO, 以及待搬運(yùn)的各數(shù)據(jù)塊Gx的大小Kx、相鄰兩個(gè)待搬運(yùn)的數(shù)據(jù)塊Gx之間的偏移地 址。其中,所述x可以取O至n中的任意值,所述任意相鄰兩個(gè)數(shù)據(jù)塊Gx之間的偏 移地址相同,均為d2。
S403a、根據(jù)上述參數(shù),DMA控制器計(jì)算出所有待搬運(yùn)的數(shù)據(jù)塊Gx的源地址 Mx和目的i也址Nx。
其中,所述數(shù)據(jù)塊Gx的源地址Mx等于數(shù)據(jù)塊G(x-l)的源地址M(x-l)加上相 鄰兩個(gè)數(shù)據(jù)塊之間的偏移地址d2,數(shù)據(jù)塊Gx的目的地址Nx等于數(shù)據(jù)塊G (x-l)的 目的地址N(x-l)加上數(shù)據(jù)塊G(x-l)的大小K(x-l),其中,所述x可以取l至n中的 任意值。
S404a、將所有待搬運(yùn)的數(shù)據(jù)塊Gx依次從所述源地址搬運(yùn)到所述目的地址。 同樣,采用與S402-S404類似的方法,對(duì)所有的數(shù)據(jù)塊Bx進(jìn)行重排列。 S402b、根據(jù)所述控制模式指示獲取待搬運(yùn)的各數(shù)據(jù)塊Bx的相關(guān)參數(shù),根據(jù)
所述參數(shù),能夠計(jì)算出所有待搬運(yùn)的各數(shù)據(jù)塊Bx的源地址和目的地址。
這里,所述參lt包括待4般運(yùn)的首個(gè)數(shù)據(jù)塊B0的源地址U0、目的地址VO,
以及待搬運(yùn)的各數(shù)據(jù)塊Bx的大小Tx、相鄰兩個(gè)待搬運(yùn)的數(shù)據(jù)塊Bx之間的偏移地
址。其中,所述x可以取O至n中的任意值,所述任意相鄰兩個(gè)數(shù)據(jù)塊Bx之間的偏
移地址相同,均為d3。
S403b、根據(jù)上述參數(shù),DMA控制器計(jì)算出所有待搬運(yùn)的數(shù)據(jù)塊Bx的源地址
iiUx和目的地址Vx。
其中,所述數(shù)據(jù)塊Bx的源地址Ux等于數(shù)據(jù)塊B (x-1)的源地址U (x-l)加上相 鄰兩個(gè)數(shù)據(jù)塊之間的偏移地址d3,數(shù)據(jù)塊Bx的目的地址Vx等于數(shù)據(jù)塊B (x-1)的 目的地址V(x-l)加上數(shù)據(jù)塊B(x-l)的大小T(x-1),其中,所述x可以取l至n中的 任意值。
S404b、將所有待搬運(yùn)的數(shù)據(jù)塊Bx依次從所述源地址搬運(yùn)到所述目的地址。 此時(shí),所有的數(shù)據(jù)塊Rx、 Gx、 Bx分別為順序排列,在此過(guò)程中,DMA控制器 只需要接收一次控制模式指示,根據(jù)所述控制模式指示分別獲取待搬運(yùn)的數(shù)據(jù) Rx、 Gx、 Bx的相關(guān)參數(shù),即可根據(jù)所述參數(shù)計(jì)算出所有待搬運(yùn)的數(shù)據(jù)Rx、 Gx、 Bx的源地址和目的地址,進(jìn)而將所有待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目 的地址。從而避免了每搬運(yùn)一個(gè)數(shù)據(jù)之前,都要對(duì)該數(shù)據(jù)的源地址和目的地址 進(jìn)行設(shè)置,減少了多次設(shè)置帶來(lái)的系統(tǒng)的資源占用,提高了數(shù)據(jù)搬運(yùn)的效率。 實(shí)施例三
在本實(shí)施例中,DMA控制器接收的控制模式指示為音頻數(shù)據(jù)重排列。如圖2 所示,左邊的音頻數(shù)據(jù)為分開左右聲道放置的,所有的左聲道數(shù)據(jù)L類和右聲道 數(shù)據(jù)R類分別為順序放置,其中,L類數(shù)據(jù)包括LO至Ln,可以簡(jiǎn)稱為L(zhǎng)x,表示第X 個(gè)待搬運(yùn)的數(shù)據(jù)中的L類數(shù)據(jù);R類數(shù)據(jù)包括RO至Rn,可以簡(jiǎn)稱為Rx,表示第X個(gè) 待搬運(yùn)數(shù)據(jù)中的R類數(shù)據(jù)。所有的Lx與Rx存在——對(duì)應(yīng)的關(guān)系。在通過(guò)123總線發(fā) 送左右聲道數(shù)據(jù)時(shí),需要將左右聲道的數(shù)據(jù)交織在一起發(fā)送,因此,需要將所 述音頻數(shù)據(jù)進(jìn)行重排列至右邊所示的順序,使所有的Lx間隔放置,所有的Rx間 隔放置。
如圖5所示,所述數(shù)據(jù)搬運(yùn)處理的方法包括
S501、 DMA控制器接收控制模式指示,所述控制模式指示為音頻數(shù)據(jù)重排列。
125502、 根據(jù)所述控制模式指示獲取待搬運(yùn)的L類數(shù)據(jù)塊和R類數(shù)據(jù)塊的相關(guān) 參數(shù),根據(jù)所述參數(shù),能夠計(jì)算出所有待搬運(yùn)的L類數(shù)據(jù)塊和R類數(shù)據(jù)塊的源地
址和目的:l也址。
這里,所述參數(shù)包括待搬運(yùn)的首個(gè)數(shù)據(jù)塊LO的源地址PO、目的地址QO, 以及待搬運(yùn)的各L類數(shù)據(jù)塊Lx的大小Ux、待搬運(yùn)的各R類數(shù)據(jù)塊Rx的大小Vx、對(duì) 應(yīng)兩個(gè)待搬運(yùn)的L類數(shù)據(jù)塊Lx和R類數(shù)據(jù)塊Rx的偏移地址。其中,所述x可以取0 至n中的任意值,所述任意對(duì)應(yīng)兩個(gè)Lx與Rx之間的偏移地址相同,均為d。
5503、 根據(jù)上述參數(shù),DMA控制器計(jì)算出所有待搬運(yùn)的數(shù)據(jù)塊Lx的源地址Px 和目的地址Qx,以及所有待搬運(yùn)的數(shù)據(jù)塊Rx的源地址Mx和目的地址Nx。
其中,數(shù)據(jù)塊RO的源地址等于數(shù)據(jù)塊LO的源地址PO加上偏移地址d,數(shù)據(jù)塊 RO的目的地址等于數(shù)據(jù)塊LO的目的地址QO加上數(shù)據(jù)塊LO的大小UO,所述數(shù)據(jù)塊 Lx的源地址Px等于數(shù)據(jù)塊L(x-l)的源地址P(x-l)加上數(shù)據(jù)塊L (x-l)的大小 U (x-1),目的地址Qx等于數(shù)據(jù)塊R (x-l)的目的地址N (x-l)加上數(shù)據(jù)塊R (x-1)的 大小V(x-l),所述數(shù)據(jù)塊Rx的源地址Mx等于數(shù)據(jù)塊Lx的源地址Px加上偏移地址 d,目的地址Nx等于凝:據(jù)塊Lx的目的地址Qx加上凝:據(jù)塊Lx的大小Ux,其中,所述 x可以取l至n中的任意值。
5504、 將所有待搬運(yùn)的數(shù)據(jù)塊Lx和Rx依次從所述源地址搬運(yùn)到所述目的地址。
此時(shí),所有的數(shù)據(jù)塊Lx、 Rx分別為間隔放置,在此過(guò)程中,DMA控制器只需 要接收一次控制模式指示,根據(jù)所述控制模式指示分別獲取待搬運(yùn)的數(shù)據(jù)Lx、 Rx的相關(guān)參數(shù),即可根據(jù)所述參數(shù)計(jì)算出所有待搬運(yùn)的數(shù)據(jù)Lx、 Rx的源地址和 目的地址,進(jìn)而將所有待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。從而 避免了每搬運(yùn)一個(gè)數(shù)據(jù)之前,都要對(duì)該數(shù)據(jù)的源地址和目的地址進(jìn)行設(shè)置,減少了多次設(shè)置帶來(lái)的系統(tǒng)的資源占用,提高了數(shù)據(jù)搬運(yùn)的效率。
若所述控制模式指示為對(duì)待搬運(yùn)的數(shù)據(jù)添加循環(huán)冗余校驗(yàn)碼,則在所述依
次將所有待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址的步驟之前,還包括:
在所述待搬運(yùn)的數(shù)據(jù)的字符尾部添加循環(huán)冗余校驗(yàn)碼。
若所述控制模式指示為對(duì)待搬運(yùn)的數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)碼檢查,則在所 述依次將所有待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址的步驟之前,還 包括
對(duì)所有待搬運(yùn)的數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)碼檢查,若通過(guò)檢查,則進(jìn)行搬運(yùn); 若沒(méi)有通過(guò)檢查,則不進(jìn)行搬運(yùn)。
若所述控制模式指示為大端到小端模式的變換,則在所述依次將所有待搬 運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址的步驟之后,還包括
對(duì)所述已搬運(yùn)至目的地址的每個(gè)數(shù)據(jù)的每個(gè)字進(jìn)行大端到小端模式的變換。
若所述控制模式指示為小端到大端模式的變換,則在所述依次將所有待搬 運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址的步驟之后,還包括
對(duì)所述已搬運(yùn)至目的地址的每個(gè)數(shù)據(jù)的每個(gè)字進(jìn)行小端到大端模式的變換。
因而,利用本發(fā)明實(shí)施例提供的數(shù)據(jù)搬運(yùn)處理的方法,能夠減少系統(tǒng)的資 源占用,提高數(shù)據(jù)搬運(yùn)的效率。
本發(fā)明的實(shí)施例還提供一種數(shù)據(jù)搬運(yùn)處理的裝置,能夠減少系統(tǒng)的資源占 用,提高數(shù)據(jù)搬運(yùn)的效率。
實(shí)施例四
如圖6所示,所述數(shù)據(jù)搬運(yùn)處理的裝置包括接收模塊601,用于接收控制模式指示。
獲取模塊602,用于根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù)。 其中,所述參數(shù)包括所述待搬運(yùn)數(shù)據(jù)的首數(shù)據(jù)的源地址和目的地址,所述
待搬運(yùn)數(shù)據(jù)的每個(gè)數(shù)據(jù)塊的大小,以及所述待搬運(yùn)數(shù)據(jù)中的每?jī)蓚€(gè)相鄰數(shù)據(jù)的
偏移地址。
獲取模塊602根據(jù)接收到的控制模式指示,去獲取計(jì)算所有待搬運(yùn)的數(shù)據(jù)的 源地址和目的地址所需的參數(shù),例如所述控制模式指示為操作碼形式,該操 作碼為OOOOIO,該操作碼對(duì)應(yīng)的數(shù)據(jù)搬運(yùn)處理方式為視頻數(shù)據(jù)重排列,則所述 相關(guān)參數(shù)包括所有待搬運(yùn)的數(shù)據(jù)的大小、相鄰兩個(gè)待搬運(yùn)的數(shù)據(jù)的偏移地址、 待搬運(yùn)的首個(gè)數(shù)據(jù)的源地址和目的地址。
計(jì)算模塊603,用于根據(jù)所述參數(shù)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址。
其中,所述待搬運(yùn)的數(shù)據(jù)包括音頻數(shù)據(jù)或視頻數(shù)據(jù),所述計(jì)算模塊603按照 音頻數(shù)據(jù)重排列或視頻數(shù)據(jù)重排列來(lái)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地 址。
根據(jù)所獲取的參數(shù),計(jì)算模塊603能夠計(jì)算出所有待搬運(yùn)的數(shù)據(jù)的源地址和 目的地址。與現(xiàn)有技術(shù)相比,不需要在每搬運(yùn)一個(gè)數(shù)據(jù)之前,都要對(duì)該數(shù)據(jù)的 源地址和目的地址進(jìn)行設(shè)置,減少了多次設(shè)置帶來(lái)的系統(tǒng)的資源占用。
搬運(yùn)模塊604,用于將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。
本發(fā)明實(shí)施例提供的數(shù)據(jù)搬運(yùn)處理的裝置,在數(shù)據(jù)搬運(yùn)之前,不需要對(duì)每 個(gè)待搬運(yùn)的數(shù)據(jù)的源地址和目的地址都進(jìn)行設(shè)置,而只需要接收一次控制模式 指示,根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù),即可根據(jù)所述參數(shù)獲得所述待擁t運(yùn)的數(shù)據(jù)的源地址和目的地址,進(jìn)而將所述待4般運(yùn)的數(shù)據(jù)從所述源 地址搬運(yùn)到所述目的地址。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例減少了因多次設(shè)置 而帶來(lái)的系統(tǒng)的資源占用,提高了數(shù)據(jù)搬運(yùn)的效率。
是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算 機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。
其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。
以上所述,僅為本發(fā)明實(shí)施例的具體實(shí)施方式
,但本發(fā)明實(shí)施例的保護(hù)范 圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi), 可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明 實(shí)施例的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,包括接收控制模式指示;根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù);根據(jù)所述參數(shù)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址;將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。
2、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述控制模式為視頻數(shù)據(jù)重排列,所述參數(shù)包括待搬運(yùn)的首個(gè)數(shù)據(jù)的RO、 G0和B0的源地址和目的地址、祠—般運(yùn)的各lt據(jù)的Rx、 Gx和Bx的大小,以及相鄰兩個(gè)待纟般運(yùn)的數(shù)據(jù)的Rx、 Gx和Bx的偏移地址,其中,所述x為l至n中的值,Rx表示第X個(gè)待搬運(yùn)的數(shù)據(jù)中的R類數(shù)據(jù),Gx表示第X個(gè)待搬運(yùn)的數(shù)據(jù)中的G類數(shù)據(jù),Bx表示第X個(gè)待搬運(yùn)的數(shù)據(jù)中的B類數(shù)據(jù)。
3、 根據(jù)權(quán)利要求2所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述根據(jù)所述參數(shù)獲得所述待搬運(yùn)數(shù)據(jù)的源地址和目的地址的步驟包括所述首個(gè)數(shù)據(jù)RO、 GO和BO的源地址和目的地址由所述參數(shù)得出;所述其它數(shù)據(jù)的Rx、 Gx和Bx的源地址為上一個(gè)數(shù)據(jù)的R(x-l)、 G(x-l)和B(x-1)的源地址加上相鄰兩個(gè)待搬移數(shù)據(jù)的Rx、 Gx和Bx之間的偏移地址;所述其它數(shù)據(jù)的Rx、 Gx和Bx的目的地址為上一個(gè)數(shù)據(jù)的R(x-l)、 G(x-l)和B (x-l)的目的地址加上上一個(gè)數(shù)據(jù)R (x-1) 、 G (x-1)和B (x-l)的大小。
4、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述控制模式為音頻數(shù)據(jù)重排列,所述參數(shù)包括待搬運(yùn)的首個(gè)數(shù)據(jù)的LO的源地址和目的地址、待搬運(yùn)的數(shù)據(jù)Lx和Rx的大小,以及對(duì)應(yīng)兩個(gè)待搬運(yùn)的數(shù)據(jù)Lx和Rx的偏移地址,其中,所述x為l至n中的值,Lx表示第X個(gè)待搬運(yùn)的數(shù)據(jù)中的L類數(shù)據(jù),Rx表示第X個(gè)待搬運(yùn)數(shù)據(jù)中的R類數(shù)據(jù)。
5、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述根據(jù)所 述參數(shù)獲得所述待搬運(yùn)數(shù)據(jù)的源地址和目的地址包括所述首個(gè)數(shù)據(jù)的LO的源地址和目的地址由所述參凝:得出;所述首個(gè)數(shù)據(jù)的R 0的源地址為首個(gè)數(shù)據(jù)的L 0的源地址加上對(duì)應(yīng)兩個(gè)待搬運(yùn)的數(shù)據(jù)的Lx和Rx的偏移地址;所述首個(gè)數(shù)據(jù)的RO的目的地址為首個(gè)數(shù)據(jù)的LO的目的地址加上首個(gè)數(shù)據(jù)的LO的大??;所述其它數(shù)據(jù)的Lx的源地址為上一個(gè)數(shù)據(jù)的L (x-l)的源地址加上數(shù)據(jù)的 L(x-l)的大小;所述其它數(shù)據(jù)的Lx的目的地址為數(shù)據(jù)的R(x-l)的目的地址加上數(shù)據(jù)的 R(x-l)的大小;所述其它數(shù)據(jù)的Rx的源地址為數(shù)據(jù)的Lx的源地址加上對(duì)應(yīng)兩個(gè)待搬運(yùn)的數(shù) 據(jù)的Lx和Rx的偏移地址;所述其它數(shù)據(jù)的Rx的目的地址為數(shù)據(jù)的Lx的目的地址加上數(shù)據(jù)的Lx的大小。
6、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述控制模 式指示為對(duì)待搬運(yùn)的數(shù)據(jù)添加循環(huán)冗余校驗(yàn)碼;則在所述將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址的步驟之 前,還包括在所述待搬運(yùn)的數(shù)據(jù)的字符尾部添加循環(huán)冗余校驗(yàn)碼。
7、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述控制模 式指示為對(duì)待搬運(yùn)的數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)碼檢查;則在所述依次將所有待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址的步驟之前,還包括對(duì)所有待搬運(yùn)的數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)碼檢查,若通過(guò)檢查,則進(jìn)行搬運(yùn);若沒(méi)有通過(guò)檢查,則不進(jìn)行搬運(yùn)。
8、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)搬運(yùn)處理的方法,其特征在于,所述參數(shù)包括所述待搬運(yùn)數(shù)據(jù)的首數(shù)據(jù)的源地址和目的地址,所述待搬運(yùn)數(shù)據(jù)的每個(gè)數(shù)據(jù)塊的大小,以及所述待搬運(yùn)數(shù)據(jù)中的每?jī)蓚€(gè)相鄰數(shù)據(jù)的偏移地址。
9、 一種數(shù)據(jù)搬運(yùn)處理的裝置,其特征在于,包括接收模塊,用于接收控制模式指示;獲取模塊,用于根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù);搬運(yùn)模塊,用于將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。
10、 根據(jù)權(quán)利要求9所述的數(shù)據(jù)搬運(yùn)處理的裝置,其特征在于,所述參數(shù)包括所述待搬運(yùn)數(shù)據(jù)的首數(shù)據(jù)的源地址和目的地址,所述待搬運(yùn)數(shù)據(jù)的每個(gè)數(shù)據(jù)塊的大小,以及所述待搬運(yùn)數(shù)據(jù)中的每?jī)蓚€(gè)相鄰數(shù)據(jù)的偏移地址。
11、 根據(jù)權(quán)利要求9所述的數(shù)據(jù)搬運(yùn)處理的裝置,其特征在于,所述待搬運(yùn)的數(shù)據(jù)包括音頻數(shù)據(jù)或視頻數(shù)據(jù),所述計(jì)算模塊按照音頻數(shù)據(jù)重排列或視頻數(shù)據(jù)重排列來(lái)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址。
全文摘要
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)搬運(yùn)處理的方法,為解決現(xiàn)有技術(shù)中數(shù)據(jù)搬運(yùn)處理時(shí)占用系統(tǒng)資源過(guò)多的問(wèn)題而發(fā)明。所述數(shù)據(jù)搬運(yùn)處理的方法,包括接收控制模式指示;根據(jù)所述控制模式指示獲取待搬運(yùn)的數(shù)據(jù)的參數(shù);根據(jù)所述參數(shù)獲得所述待搬運(yùn)的數(shù)據(jù)的源地址和目的地址;將所述待搬運(yùn)的數(shù)據(jù)從所述源地址搬運(yùn)到所述目的地址。本發(fā)明實(shí)施例還提供一種數(shù)據(jù)搬運(yùn)處理的裝置,本發(fā)明適用于對(duì)數(shù)據(jù)進(jìn)行搬運(yùn)處理。
文檔編號(hào)G06F13/20GK101510183SQ20091012847
公開日2009年8月19日 申請(qǐng)日期2009年3月23日 優(yōu)先權(quán)日2009年3月23日
發(fā)明者周昔平 申請(qǐng)人:華為技術(shù)有限公司