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

用于可變矩陣的DMA快速轉(zhuǎn)置方法及裝置與流程

文檔序號(hào):12824669閱讀:398來源:國(guó)知局
用于可變矩陣的DMA快速轉(zhuǎn)置方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)信號(hào)處理領(lǐng)域,尤其涉及一種用于可變矩陣的dma快速轉(zhuǎn)置方法及裝置。



背景技術(shù):

dma(directionalmemoryaccess,直接內(nèi)存訪問)是數(shù)字信號(hào)處理器中用于快速數(shù)據(jù)交換的重要技術(shù),一般數(shù)字信號(hào)處理經(jīng)常需要對(duì)矩陣進(jìn)行轉(zhuǎn)置處理,矩陣轉(zhuǎn)置的性能影響到最終的計(jì)算性能。相關(guān)技術(shù),一般采用dma乒乓流水的方式以進(jìn)行矩陣轉(zhuǎn)置,具體地,根據(jù)固定的行列將矩陣分成固定大小的小矩陣以實(shí)現(xiàn)矩陣轉(zhuǎn)置。但是,這樣不能適用于不同類型的矩陣轉(zhuǎn)置,同時(shí)也不能提高矩陣轉(zhuǎn)置效率。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的旨在至少在一定程度上解決上述的技術(shù)問題之一。

為此,本發(fā)明的一個(gè)目的在于提出一種用于可變矩陣的dma快速轉(zhuǎn)置方法,該方法適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置的效率。

本發(fā)明的第二個(gè)目的在于提出一種用于可變矩陣的dma快速轉(zhuǎn)置裝置。

為達(dá)上述目的,本發(fā)明第一方面實(shí)施例提出了一種用于可變矩陣的dma快速轉(zhuǎn)置方法,包括以下步驟:獲取待轉(zhuǎn)置矩陣大小,并根據(jù)預(yù)先設(shè)定的配置需求將所述待轉(zhuǎn)置矩陣分解成多個(gè)待轉(zhuǎn)置小矩陣,并獲取每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,其中,所述矩陣信息包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大?。换谥苯哟鎯?chǔ)器訪問dma,根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息對(duì)dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,并通過對(duì)應(yīng)大小的sram塊依次對(duì)所述每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置;當(dāng)所述每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后,所述待轉(zhuǎn)置矩陣完成轉(zhuǎn)置。

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法,根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解成多個(gè)待轉(zhuǎn)置小矩陣,并獲取每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,基于直接存儲(chǔ)器訪問dma,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息對(duì)dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,再通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置,當(dāng)每個(gè)待轉(zhuǎn)置小矩陣依次轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置,該方法適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置 的效率。

在本發(fā)明的一個(gè)實(shí)施例中,所述根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息分別對(duì)所述dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,并通過所述對(duì)應(yīng)大小的sram塊依次對(duì)所述每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置,包括:根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息分別讀取所述每個(gè)待轉(zhuǎn)置的小矩陣中每行所對(duì)應(yīng)的數(shù)據(jù);根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息分配多個(gè)sram(staticrandomaccessmemory,靜態(tài)隨機(jī)存取存儲(chǔ)器)塊,并生成寫入sram塊的地址,并根據(jù)所述寫入sram塊的地址依次將所述每行所對(duì)應(yīng)的數(shù)據(jù)寫入至對(duì)應(yīng)的sram塊,其中,所述sram塊的個(gè)數(shù)與所述每個(gè)待轉(zhuǎn)置小矩陣的行數(shù)一致;當(dāng)所述每個(gè)待轉(zhuǎn)置小矩陣中的所有數(shù)據(jù)全部寫入至對(duì)應(yīng)的sram塊時(shí),根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息生成多個(gè)讀取sram塊地址;根據(jù)所述多個(gè)讀取sram塊地址依次同時(shí)讀取所述多個(gè)sram塊,并依次將同時(shí)讀取到的數(shù)據(jù)組成目標(biāo)矩陣的一行,以完成所述每個(gè)待轉(zhuǎn)置小矩陣的轉(zhuǎn)置。

在本發(fā)明的一個(gè)實(shí)施例中,所述的用于可變矩陣的dma快速轉(zhuǎn)置方法,每個(gè)所述sram塊的大小根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息確定。

在本發(fā)明的一個(gè)實(shí)施例中,所述的用于可變矩陣的dma快速轉(zhuǎn)置方法,其中,所述預(yù)先設(shè)定的配置需求包括每個(gè)待轉(zhuǎn)置小矩陣的矩陣參數(shù),所述矩陣參數(shù)包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小,通過以下參數(shù)確定所述預(yù)先設(shè)定的配置需求:所述dma的多種矩陣轉(zhuǎn)置性能、所述待轉(zhuǎn)置矩陣的類型、和/或所述dma中sram的容量限制。

為達(dá)上述目的,本發(fā)明第二方面實(shí)施例提出了一種用于可變矩陣的dma快速轉(zhuǎn)置裝置,包括:分解模塊,用于獲取待轉(zhuǎn)置矩陣大小,并根據(jù)預(yù)先設(shè)定的配置需求將所述待轉(zhuǎn)置矩陣分解成多個(gè)待轉(zhuǎn)置小矩陣,并獲取所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,其中,所述矩陣信息包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大?。晦D(zhuǎn)置模塊,用于基于直接存儲(chǔ)器訪問dma,根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息對(duì)dma內(nèi)部sram分成對(duì)應(yīng)大小的sram塊,并通過所述對(duì)應(yīng)大小的sram塊依次對(duì)所述每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置,在所述每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后,所述待轉(zhuǎn)置矩陣完成轉(zhuǎn)置。

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置,分解模塊根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解為待轉(zhuǎn)置小矩陣,轉(zhuǎn)置模塊基于直接存儲(chǔ)器訪問dma,根據(jù)預(yù)先設(shè)定的配置需求中的每個(gè)待轉(zhuǎn)置的小矩陣的矩陣信息對(duì)dma內(nèi)部sram分成對(duì)應(yīng)大小的sram塊,通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置的小矩陣進(jìn)行轉(zhuǎn)置,在每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置,該裝置適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置的效率。

在本發(fā)明的一個(gè)實(shí)施例中,所述轉(zhuǎn)置模塊包括:axi(advancedextensibleinterfac,總線協(xié)議)總線控制單元,用于根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣參數(shù)發(fā)出對(duì)應(yīng)的axi讀寫 信號(hào),以分別讀取所述每個(gè)待轉(zhuǎn)置小矩陣中每行所對(duì)應(yīng)的數(shù)據(jù);矩陣控制單元,用于根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息分配多個(gè)sram塊,并生成寫入sram塊的地址,并根據(jù)所述寫入sram塊的地址依次將所述每行所對(duì)應(yīng)的數(shù)據(jù)寫入至對(duì)應(yīng)的sram塊,其中,所述sram塊的個(gè)數(shù)與所述每個(gè)待轉(zhuǎn)置小矩陣的行數(shù)一致;所述矩陣控制單元還用于:在所述每個(gè)待轉(zhuǎn)置小矩陣中的所有數(shù)據(jù)全部寫入至對(duì)應(yīng)的sram塊時(shí),根據(jù)所述每個(gè)待轉(zhuǎn)置的小矩陣的矩陣信息生成多個(gè)讀取sram塊地址;所述axi總線控制單元還用于:根據(jù)所述多個(gè)讀取sram塊地址依次同時(shí)讀取所述多個(gè)sram塊,并依次將同時(shí)讀取到的數(shù)據(jù)組成目標(biāo)矩陣的一行,以完成所述每個(gè)待轉(zhuǎn)置小矩陣的轉(zhuǎn)置。

在本發(fā)明的一個(gè)實(shí)施例中,所述的用于可變矩陣的dma快速轉(zhuǎn)置裝置,每個(gè)所述sram塊的大小根據(jù)所述每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息確定。

在本發(fā)明的一個(gè)實(shí)施例中,如權(quán)利要求5所述的用于可變矩陣的dma快速轉(zhuǎn)置裝置,其中,所述預(yù)先設(shè)定的配置需求包括每個(gè)待轉(zhuǎn)置小矩陣的矩陣參數(shù),所述矩陣參數(shù)包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小,所述分解模塊通過以下參數(shù)確定所述預(yù)先設(shè)定的配置需求:所述dma的多種矩陣轉(zhuǎn)置性能、所述待轉(zhuǎn)置矩陣的類型、和/或所述dma中sram的容量限制。

本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。

附圖說明

本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中,

圖1為根據(jù)本發(fā)明一個(gè)實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法的流程圖;

圖2為根據(jù)本發(fā)明一個(gè)實(shí)施例的待轉(zhuǎn)置的小矩陣進(jìn)行轉(zhuǎn)置的流程圖;

圖3根據(jù)本發(fā)明一個(gè)具體實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法的流程圖;

圖4為根據(jù)本發(fā)明一個(gè)實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置的結(jié)構(gòu)示意圖;

圖5為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。

下面參考附圖描述本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法及裝置。

圖1為根據(jù)本發(fā)明一個(gè)實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法的流程圖。

如圖1所示,該用于可變矩陣的dma快速轉(zhuǎn)置方法可以包括:

s11,獲取待轉(zhuǎn)置矩陣大小,并根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解成多個(gè)待轉(zhuǎn)置小矩陣,并獲取每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,其中,矩陣信息包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小。

需要說明的是,矩陣信息包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小等,可以理解,這3個(gè)參數(shù)都是可變參數(shù),可以根據(jù)需要對(duì)矩陣的行數(shù)、矩陣的列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小進(jìn)行設(shè)定,需要進(jìn)行再次設(shè)定時(shí),可以同時(shí)對(duì)3個(gè)矩陣參數(shù)進(jìn)行設(shè)定也可以選其中一個(gè)到3個(gè)不等根據(jù)需求進(jìn)行設(shè)定。舉例而言,一次轉(zhuǎn)置的最小矩陣m行*n列*abyte(字節(jié)),m、n、a都是可配置的,其中m,n的值可以為但不限于4、8、16、32等,a可以為但不限于1、2、4、8等。

其中,通過以下參數(shù)可確定預(yù)先設(shè)定的配置需求:dma的多種矩陣轉(zhuǎn)置性能、待轉(zhuǎn)置矩陣的類型、和/或dma中sram的容量限制。

s12,基于直接存儲(chǔ)器訪問dma,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息參數(shù)分別對(duì)dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,并通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置的小矩陣進(jìn)行轉(zhuǎn)置,當(dāng)每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置。

具體而言,如圖2所示,步驟s12可包括如下步驟:

s121,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息分別讀取每個(gè)待轉(zhuǎn)置小矩陣中每行所對(duì)應(yīng)的數(shù)據(jù)。

s122,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息生成多個(gè)sram塊,并生成寫入sram塊的地址,并根據(jù)寫入sram塊的地址依次將每行所對(duì)應(yīng)的數(shù)據(jù)寫入至對(duì)應(yīng)的sram塊,其中,sram塊的個(gè)數(shù)與每個(gè)待轉(zhuǎn)置小矩陣的行數(shù)一致。

也就是說,根據(jù)可變矩陣信息產(chǎn)生的axi讀取數(shù)據(jù)大小對(duì)應(yīng)小矩陣的一行,并且對(duì)應(yīng)sram塊的大小。

s123,當(dāng)每個(gè)待轉(zhuǎn)置小矩陣中的所有數(shù)據(jù)全部寫入至對(duì)應(yīng)的sram塊時(shí),根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息生成多個(gè)讀取sram塊地址。

s124,根據(jù)多個(gè)讀取sram塊地址依次同時(shí)讀取多個(gè)sram塊,并依次將同時(shí)讀取到的數(shù)據(jù)組成目標(biāo)矩陣的一行,以完成每個(gè)待轉(zhuǎn)置小矩陣的轉(zhuǎn)置。

需要說明的是,不同的小矩陣對(duì)應(yīng)的sram塊組成方式是不同的,根據(jù)可變矩陣信息產(chǎn)生的讀取的sram地址具有多個(gè),每次讀取多個(gè)不同的sram小塊。綜上,本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法可以根據(jù)矩陣信息的不同,寫入sram的地址是不同的,sram的組成方式是不同的,針對(duì)不同矩陣,對(duì)axi總線的讀寫請(qǐng)求不同。由此,在控制面 積,功耗的同時(shí)更加有針對(duì)性的提高了性能和效率。

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法,根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解成多個(gè)待轉(zhuǎn)置小矩陣,并獲取每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,基于直接存儲(chǔ)器訪問dma,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息對(duì)dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,再通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置,當(dāng)每個(gè)待轉(zhuǎn)置小矩陣依次轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置,該方法適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置的效率。

為了使得本領(lǐng)域技術(shù)人員能夠更加清楚地了解本發(fā)明,下面將結(jié)合圖3進(jìn)行詳細(xì)描述。

舉例而言,如圖3所示,首先,根據(jù)預(yù)先設(shè)定的配置需求配置小矩陣的傳輸參數(shù),如小矩陣的矩陣信息(如矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小等)(步驟s301)。之后,可根據(jù)小矩陣的傳輸參數(shù)配置大矩陣(即待轉(zhuǎn)置矩陣),并啟動(dòng)dma(步驟s302)。之后,基于dma讀取已配置的小矩陣的每一行,其中,根據(jù)矩陣信息的不同,一次讀取小矩陣的一行大小不同(步驟s303)。同時(shí),可計(jì)算寫入sram的地址,其中,根據(jù)矩陣信息的不同,寫入sram的地址不同(步驟s304)。之后,dma中的axi總線可根據(jù)計(jì)算的寫入sram的地址將讀取已配置的小矩陣的每一行的數(shù)據(jù)寫入對(duì)應(yīng)的sram塊中(步驟s305)。當(dāng)判斷該小矩陣讀完(步驟s306)之后,可計(jì)算讀取sram的地址(步驟s307)。dma根據(jù)讀取sram的地址同時(shí)讀取多個(gè)sram塊,并將每次讀取到的數(shù)據(jù)寫到目的小矩陣的一行,即將每次讀取到的數(shù)據(jù)作為目的小矩陣的行數(shù)據(jù)(步驟s308)。當(dāng)判斷小矩陣寫完(步驟s309)之后,繼續(xù)寫下一個(gè)小矩陣(步驟s310),當(dāng)檢測(cè)所有小矩陣寫出完畢(步驟s311)時(shí),可判斷dma矩陣轉(zhuǎn)置完成(步驟s312)。也就是說,在小矩陣全部寫入sram后,矩陣轉(zhuǎn)置時(shí),同時(shí)讀取多個(gè)sram小塊,拼成一行目的的小矩陣的數(shù)據(jù),通過總線寫出。

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置方法,根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解成多個(gè)待轉(zhuǎn)置小矩陣,并獲取每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,基于直接存儲(chǔ)器訪問dma,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息對(duì)dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,再通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置,當(dāng)每個(gè)待轉(zhuǎn)置小矩陣依次轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置,該方法適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置的效率。

與上述幾種實(shí)施例提供的用于可變矩陣的dma快速轉(zhuǎn)置方法相對(duì)應(yīng),本發(fā)明的一種實(shí)施例還提供一種用于可變矩陣的dma快速轉(zhuǎn)置裝置,由于本發(fā)明實(shí)施例提供的用于可變矩陣的dma快速轉(zhuǎn)置裝置與上述實(shí)施例提供的用于可變矩陣的dma快速轉(zhuǎn)置方法相對(duì)應(yīng),因此在前述用于可變矩陣的dma快速轉(zhuǎn)置方法的實(shí)施方式也適用于本實(shí)施例提供的用于可變矩陣的dma快速轉(zhuǎn)置裝置,在本實(shí)施例中不再詳細(xì)描述。圖4為根據(jù)本發(fā)明一個(gè)實(shí)施例的 用于可變矩陣的dma快速轉(zhuǎn)置裝置的結(jié)構(gòu)示意圖。如圖4所示,該裝置包括:分解模塊10、轉(zhuǎn)置模塊20。

其中,分解模塊10用于獲取待轉(zhuǎn)置矩陣大小,并根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解為待轉(zhuǎn)置小矩陣,并獲取每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息,其中,矩陣信息包括矩陣行數(shù)、矩陣列數(shù)以及矩陣中每個(gè)元素的字節(jié)大小,轉(zhuǎn)置模塊20用于基于直接存儲(chǔ)器訪問dma,根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息對(duì)dma內(nèi)部的sram分成對(duì)應(yīng)大小的sram塊,并通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置小矩陣進(jìn)行轉(zhuǎn)置,sram模塊,用于在小矩陣轉(zhuǎn)置時(shí),根據(jù)參數(shù)分成相應(yīng)大小的多個(gè)sram塊,每個(gè)sram塊保存小矩陣的一行。不同參數(shù)的sram塊大小是不同的,在小矩陣寫出時(shí),多個(gè)sram塊同時(shí)輸出數(shù)據(jù),拼成寫出小矩陣的一行,在每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后,待轉(zhuǎn)置矩陣完成轉(zhuǎn)置。

具體而言,轉(zhuǎn)置模塊20包括:axi總線控制單元201用于根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息發(fā)出對(duì)應(yīng)的axi讀寫信號(hào),以分別讀取每個(gè)待轉(zhuǎn)置小矩陣中每行所對(duì)應(yīng)的數(shù)據(jù),矩陣控制單元202用于根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息分配多個(gè)sram塊,并生成寫入sram塊的地址,并根據(jù)所述寫入sram塊的地址依次將每行所對(duì)應(yīng)的數(shù)據(jù)寫入至對(duì)應(yīng)的sram塊,其中,sram塊的個(gè)數(shù)與每個(gè)待轉(zhuǎn)置小矩陣的行數(shù)一致,矩陣控制單元202還用于在每個(gè)待轉(zhuǎn)置小矩陣中的所有數(shù)據(jù)全部寫入至對(duì)應(yīng)的sram塊時(shí),根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息生成多個(gè)讀取sram塊地址,axi總線控制單元201還用于根據(jù)多個(gè)讀取sram塊地址依次同時(shí)讀取多個(gè)sram塊,并依次將同時(shí)讀取到的數(shù)據(jù)組成目標(biāo)矩陣的一行,以完成每個(gè)待轉(zhuǎn)置小矩陣的轉(zhuǎn)置。

在本發(fā)明的一個(gè)實(shí)施例中,每個(gè)sram塊的大小根據(jù)每個(gè)待轉(zhuǎn)置小矩陣的矩陣信息確定。

在本發(fā)明的一個(gè)實(shí)施例中,分解模塊10通過以下參數(shù)確定預(yù)先設(shè)定的配置需求:dma的多種矩陣轉(zhuǎn)置性能、待轉(zhuǎn)置矩陣的類型、和/或dma中sram的容量限制。

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置,分解模塊根據(jù)預(yù)先設(shè)定的配置需求將待轉(zhuǎn)置矩陣分解為待轉(zhuǎn)置小矩陣,轉(zhuǎn)置模塊基于直接存儲(chǔ)器訪問dma,根據(jù)預(yù)先設(shè)定的配置需求中的每個(gè)待轉(zhuǎn)置的小矩陣的矩陣信息對(duì)dma內(nèi)部sram分成對(duì)應(yīng)大小的sram塊,通過對(duì)應(yīng)大小的sram塊依次對(duì)每個(gè)待轉(zhuǎn)置的小矩陣進(jìn)行轉(zhuǎn)置,在每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置,該裝置適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置的效率。

圖5為根據(jù)本發(fā)明一個(gè)具體實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置的結(jié)構(gòu)示意圖。

其中,有標(biāo)準(zhǔn)axi3協(xié)議的總線接口,axi總線控制模塊501用來根據(jù)矩陣信息發(fā)出對(duì)應(yīng)大小的axi讀寫信號(hào),一組臨時(shí)存放矩陣數(shù)據(jù)的sram,一組矩陣控制寄存器502用來 根據(jù)矩陣信息計(jì)算寫入sram的矩陣地址,和讀出sram的矩陣地址,在通用dma中增加了矩陣轉(zhuǎn)置功能,使用矩陣轉(zhuǎn)置計(jì)算單元,將大矩陣分解為多個(gè)小矩陣的轉(zhuǎn)置,每次根據(jù)一次轉(zhuǎn)置的最小矩陣m行*n列,矩陣的點(diǎn)數(shù)大小abyte,這3個(gè)可變的參數(shù),使用標(biāo)準(zhǔn)的axi3總線讀取對(duì)應(yīng)大小的數(shù)據(jù),產(chǎn)生寫入sram的地址,根據(jù)可變參數(shù)靈活組織多個(gè)sram塊,將m行寫入sram的不同塊中。小矩陣全部讀入完成后,再根據(jù)可變參數(shù)產(chǎn)生讀sram的地址,每次同時(shí)讀取多個(gè)sram塊,組成目的矩陣的一行,最終通過總線寫出小矩陣,完成小矩陣的轉(zhuǎn)置,在每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后待轉(zhuǎn)置矩陣完成轉(zhuǎn)置,該裝置適用于多種類型矩陣的dma轉(zhuǎn)置,提高了dma轉(zhuǎn)置的效率

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置,將大矩陣分解為多個(gè)小矩陣的轉(zhuǎn)置,使用標(biāo)準(zhǔn)的axi3總線讀取對(duì)應(yīng)大小的數(shù)據(jù),產(chǎn)生寫入sram的地址,根據(jù)可變參數(shù)靈活組織多個(gè)sram塊,將m行寫入sram的不同塊中。小矩陣全部讀入完成后,再根據(jù)可變參數(shù)產(chǎn)生讀sram的地址,每次同時(shí)讀取多個(gè)sram塊,組成目的矩陣的一行,最終通過總線寫出小矩陣,完成小矩陣的轉(zhuǎn)置,在每個(gè)待轉(zhuǎn)置小矩陣依次被轉(zhuǎn)置后,待轉(zhuǎn)置矩陣完成轉(zhuǎn)置。

根據(jù)本發(fā)明實(shí)施例的用于可變矩陣的dma快速轉(zhuǎn)置裝置,同樣可應(yīng)用乒乓流水進(jìn)行矩陣轉(zhuǎn)置,乒乓流水是指如果sram的面積大小允許,使用兩組相同大小的sram,一組sram在小矩陣通過axi總線寫出的時(shí)候,使用相同方法對(duì)另外一組sram分配對(duì)應(yīng)大小的sram塊,進(jìn)行sram讀寫地址計(jì)算,同時(shí)讀取axi總線數(shù)據(jù)寫入另外一組sram。當(dāng)另外一組sram完成寫入數(shù)據(jù)時(shí),這組sram完成寫出數(shù)據(jù),兩組功能互換,這組sram進(jìn)行下一個(gè)小矩陣數(shù)據(jù)的寫入,另外一組進(jìn)行其中小矩陣數(shù)據(jù)的寫出。

在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個(gè)該特征。在本發(fā)明的描述中,“多個(gè)”的含義是至少兩個(gè),例如兩個(gè),三個(gè)等,除非另有明確具體的限定。

在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對(duì)上述術(shù)語的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。

盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1