片上數(shù)據(jù)劃分讀寫方法、系統(tǒng)及其裝置的制造方法
【專利摘要】本發(fā)明適用于存儲(chǔ)技術(shù)領(lǐng)域,一種片上數(shù)據(jù)劃分讀寫方法,其特征在于,包括:數(shù)據(jù)劃分步驟,根據(jù)數(shù)據(jù)劃分策略將片上數(shù)據(jù)存儲(chǔ)在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì);預(yù)先操作步驟,在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理;數(shù)據(jù)拼接步驟,根據(jù)數(shù)據(jù)拼接策略將所述片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到原始數(shù)據(jù)表示。同時(shí)還提供相應(yīng)的片上數(shù)據(jù)劃分讀寫系統(tǒng)及其裝置。借此,本發(fā)明重復(fù)數(shù)據(jù)高效地進(jìn)行讀寫,從而降低訪存帶寬需求,同時(shí)提供良好的靈活性,從而降低片上存儲(chǔ)開銷。
【專利說明】
片上數(shù)據(jù)劃分讀寫方法、系統(tǒng)及其裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息安全領(lǐng)域及集成電路領(lǐng)域,尤其涉及一種硬件安全設(shè)計(jì),特別是涉及一種根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng)。
【背景技術(shù)】
[0002]隨著電子設(shè)備的廣泛使用,在大數(shù)據(jù)時(shí)代,越來越多的設(shè)備需要對于真實(shí)世界的實(shí)時(shí)輸入進(jìn)行越來越復(fù)雜的處理,如工業(yè)機(jī)器人、自動(dòng)駕駛無人汽車以及移動(dòng)設(shè)備等等。這些任務(wù)大多數(shù)偏向于機(jī)器學(xué)習(xí)領(lǐng)域,其中大部分運(yùn)算為向量運(yùn)算或者矩陣運(yùn)算,具有極高的并行度。相較于傳統(tǒng)通用的GHJ/CPU加速方案,硬件ASIC加速器是目前最受歡迎的加速方案,一方面可以提供極高的并行度可以實(shí)現(xiàn)極高的性能,另外一方面具有極高的能效性。
[0003]然而這其中帶寬成為限制加速器性能的一大瓶頸,常見的解決方案是他通過放置在片上的緩存來平衡帶寬的不均衡性。這些常見的解決方案并沒有對數(shù)據(jù)讀寫進(jìn)行優(yōu)化,從而不能很好的利用數(shù)據(jù)的特性使得片上存儲(chǔ)開銷過大,數(shù)據(jù)讀寫開銷過大。對于目前常見的機(jī)器學(xué)習(xí)類算法,其數(shù)據(jù)大多具有重用性,也即同樣的數(shù)據(jù)會(huì)被多次使用,從而數(shù)據(jù)具有相同部分,如神經(jīng)網(wǎng)絡(luò)中的權(quán)值。
[0004]綜上可知,現(xiàn)有技術(shù)在實(shí)際使用上顯然存在不便與缺陷,所以有必要加以改進(jìn)。
【發(fā)明內(nèi)容】
[0005]針對上述的缺陷,本發(fā)明的目的在于提供一種片上數(shù)據(jù)劃分讀寫系統(tǒng)及其實(shí)現(xiàn)方法,目的在于針對重復(fù)數(shù)據(jù)高效地進(jìn)行讀寫,從而降低訪存帶寬需求,同時(shí)提供良好的靈活性,從而降低片上存儲(chǔ)開銷。
[0006]為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種片上數(shù)據(jù)劃分讀寫方法,包括:
[0007]數(shù)據(jù)劃分步驟,根據(jù)數(shù)據(jù)劃分策略將片上數(shù)據(jù)存儲(chǔ)在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì);
[0008]預(yù)先操作步驟,在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理;
[0009]數(shù)據(jù)拼接步驟,根據(jù)數(shù)據(jù)拼接策略將所述片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到原始數(shù)據(jù)表示。
[0010]根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法,還包括:
[0011 ]數(shù)據(jù)存儲(chǔ)步驟,搬運(yùn)所述片內(nèi)存儲(chǔ)介質(zhì)的所述片內(nèi)存儲(chǔ)數(shù)據(jù)和來自所述片外存儲(chǔ)介質(zhì)的所述片外輸入數(shù)據(jù);
[0012]所述存儲(chǔ)步驟中讀寫端口分離,數(shù)據(jù)的讀出和寫入相互獨(dú)立;
[0013]所述預(yù)先操作步驟還包括:
[0014]運(yùn)算處理所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0015]運(yùn)算處理外部輸入數(shù)據(jù)處理;
[0016]所述外部輸入數(shù)據(jù)包括所述片外輸入數(shù)據(jù)、所述讀寫端口直接讀入的數(shù)據(jù)。
[0017]根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法,所述數(shù)據(jù)存儲(chǔ)步驟還包括:
[0018]根據(jù)片內(nèi)地址索引來索引所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0019]已索引到所述片內(nèi)存儲(chǔ)數(shù)據(jù)的輸出出口;
[0020]將要存儲(chǔ)的數(shù)據(jù)根據(jù)寫入地址寫入相應(yīng)存儲(chǔ)位置。
[0021]根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法,所述數(shù)據(jù)劃分步驟還包括:
[0022]地址空間劃分成為片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間;
[0023]根據(jù)數(shù)據(jù)替換策略在所述片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì)之間進(jìn)行數(shù)據(jù)替換;所述數(shù)據(jù)替換策略包括順序替換、逆序替換以及隨機(jī)替換;
[0024]所述數(shù)據(jù)劃分策略包括定點(diǎn)數(shù)劃分、浮點(diǎn)數(shù)劃分;
[0025]所述數(shù)據(jù)拼接步驟還包括:
[0026]片內(nèi)片外數(shù)據(jù)傳輸?shù)男问綇乃鲈紨?shù)據(jù)表示轉(zhuǎn)為全部或者部分的數(shù)據(jù)索引,拼接全部或者部分的片上的所述數(shù)據(jù)索引的結(jié)果獲得所述原始數(shù)據(jù)表示;
[0027]所述數(shù)據(jù)拼接步驟通過片內(nèi)片外數(shù)據(jù)通路或片內(nèi)數(shù)據(jù)通路進(jìn)行,所述片內(nèi)片外數(shù)據(jù)通路包括PC1、PCIE、HT互聯(lián)技術(shù),所述片內(nèi)數(shù)據(jù)通路包括FAT-TREE、H-TREE互聯(lián)技術(shù),片內(nèi)片外數(shù)據(jù)連接方式包括多芯片互聯(lián)結(jié)構(gòu);
[0028]所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)中的所述數(shù)據(jù)可以被一次或者多次讀寫,所述數(shù)據(jù)可以被讀至一個(gè)或者多個(gè)片上運(yùn)算單元;所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)可以被一次或者多從外部進(jìn)行讀寫,介質(zhì)可以被一次或者多次從內(nèi)部讀寫。
[0029]本發(fā)明提供一種片上數(shù)據(jù)劃分讀寫系統(tǒng),包括:
[0030]數(shù)據(jù)劃分模塊,用于根據(jù)數(shù)據(jù)劃分策略將片內(nèi)存儲(chǔ)數(shù)據(jù)劃分在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì);
[0031]預(yù)先操作模塊,用于在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理;
[0032]數(shù)據(jù)拼接模塊,用于根據(jù)數(shù)據(jù)拼接策略將片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到所述原始數(shù)據(jù)表示。
[0033]根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng),還包括:
[0034]存儲(chǔ)模塊,用于搬運(yùn)所述片內(nèi)存儲(chǔ)介質(zhì)的所述片內(nèi)存儲(chǔ)數(shù)據(jù)和來自所述片外存儲(chǔ)介質(zhì)的所述片外輸入數(shù)據(jù);
[0035]所述存儲(chǔ)模塊采用讀寫端口分離,數(shù)據(jù)的讀出和寫入相互獨(dú)立;
[0036]所述預(yù)先處理模塊還包括:
[0037]片上處理子模塊,用于運(yùn)算處理所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0038]片外處理子模塊,用于運(yùn)算處理外部輸入數(shù)據(jù)處理;
[0039]所述外部輸入數(shù)據(jù)包括所述片外輸入數(shù)據(jù)、所述讀寫端口直接讀入的數(shù)據(jù)。
[0040]根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng),所述存儲(chǔ)模塊還包括:
[0041]地址索引接口,用于根據(jù)片內(nèi)地址索引來索引所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0042]數(shù)據(jù)讀出接口,用于已索引到的所述片內(nèi)存儲(chǔ)數(shù)據(jù)的輸出出口;
[0043]數(shù)據(jù)寫入接口,用于將要存儲(chǔ)的數(shù)據(jù)根據(jù)寫入地址寫入相應(yīng)存儲(chǔ)位置。
[0044]根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng),還包括:
[0045]所述數(shù)據(jù)劃分模塊還包括:
[0046]地址劃分子模塊,用于地址空間劃分成為片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間;
[0047]數(shù)據(jù)替換子模塊,用于根據(jù)數(shù)據(jù)替換策略在所述片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì)之間進(jìn)行數(shù)據(jù)替換;所述數(shù)據(jù)替換策略包括順序替換、逆序替換以及隨機(jī)替換;
[0048]所述數(shù)據(jù)劃分策略包括定點(diǎn)數(shù)劃分、浮點(diǎn)數(shù)劃分;所述數(shù)據(jù)劃分模塊基于芯片中的一個(gè)或多個(gè)片上計(jì)算單元實(shí)現(xiàn),所述片上計(jì)算單元發(fā)起讀寫請求并處理拼接得到的原始數(shù)據(jù);
[0049]所述數(shù)據(jù)拼接模塊還包括:
[0050]索引拼接子模塊,用于片內(nèi)片外數(shù)據(jù)傳輸?shù)男问綇脑紨?shù)據(jù)表示轉(zhuǎn)為全部或者部分的數(shù)據(jù)索引,拼接全部或者部分的片上的所述數(shù)據(jù)索引的結(jié)果獲得所述原始數(shù)據(jù)表示;[0051 ]所述數(shù)據(jù)拼接模塊讀寫通過片內(nèi)片外數(shù)據(jù)通路或片內(nèi)數(shù)據(jù)通路進(jìn)行,所述片內(nèi)片外數(shù)據(jù)通路包括PC1、PCIE、HT互聯(lián)技術(shù),所述片內(nèi)數(shù)據(jù)通路包括FAT-TREE、H-TREE互聯(lián)技術(shù),片內(nèi)片外數(shù)據(jù)連接方式包括多芯片互聯(lián)結(jié)構(gòu);
[0052]所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)中的所述數(shù)據(jù)被一次或者多次讀寫,所述數(shù)據(jù)被讀至一個(gè)或者多個(gè)片上運(yùn)算單元;所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)被一次或者多從外部進(jìn)行讀寫,所述片內(nèi)存儲(chǔ)介質(zhì)被一次或者多次從內(nèi)部讀寫。
[0053]本發(fā)明提供一種片上讀寫裝置,包括根據(jù)上述任一項(xiàng)所述片上數(shù)據(jù)劃分讀寫系統(tǒng)。
[0054]根據(jù)本發(fā)明所述片上讀寫裝置,所述片上讀寫裝置包括靜態(tài)隨機(jī)存儲(chǔ)器、動(dòng)態(tài)隨機(jī)存儲(chǔ)器、增強(qiáng)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、寄存器堆以及非易失存儲(chǔ)器或者3D存儲(chǔ)器件。
[0055]本發(fā)明通過裝置及其相關(guān)使用方法可以有效的提供數(shù)據(jù)的復(fù)用性和其靈活尋址的需求,有效的降低訪存帶寬需求,能夠適用于不同場景,并不僅僅局限于機(jī)器學(xué)習(xí)類加速器。本發(fā)明同時(shí)可以通過合理調(diào)度數(shù)據(jù),縮減片上緩存開銷,從而可以提供更加高效的加速器設(shè)計(jì)支持。
【附圖說明】
[0056]圖1是本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng)的結(jié)構(gòu)示意圖;
[0057]圖2是本發(fā)明優(yōu)選實(shí)施例的所述片上數(shù)據(jù)劃分讀寫系統(tǒng)的結(jié)構(gòu)示意圖;
[0058]圖3A是本發(fā)明所述片上數(shù)據(jù)劃分策略的實(shí)現(xiàn)示意圖之一;
[0059]圖3B是本發(fā)明所述片上數(shù)據(jù)劃分策略的實(shí)現(xiàn)示意圖之二;
[0060]圖4是本發(fā)明根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng)的片上數(shù)據(jù)索引實(shí)施例示意圖;
[0061 ]圖5是本發(fā)明根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法的物理框架示意圖;
[0062]圖6是本發(fā)明根據(jù)本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法一個(gè)實(shí)施例數(shù)據(jù)拼接操作的物理設(shè)計(jì)框架圖;
[0063]圖7是本發(fā)明中所述片上數(shù)據(jù)劃分讀寫方法流程示意圖;
[0064]圖8是本發(fā)明中所述片上數(shù)據(jù)劃分讀寫方法一個(gè)具體實(shí)施例流程示意圖。
【具體實(shí)施方式】
[0065]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0066]現(xiàn)有異構(gòu)平臺(tái),加速器的片上能夠存儲(chǔ)的數(shù)據(jù)十分有限,需要將所有的數(shù)據(jù)劃分成為大小可以存儲(chǔ)在片上的數(shù)據(jù)塊,通過片外大存儲(chǔ)介質(zhì)和片內(nèi)小存儲(chǔ)介質(zhì)上的數(shù)據(jù)交互將所需數(shù)據(jù)塊讀入或者寫出。
[0067]為了實(shí)現(xiàn)上述目的,圖1示出了本發(fā)明提供一種片上數(shù)據(jù)劃分讀寫系統(tǒng)100,包括:
[0068]數(shù)據(jù)劃分模塊10,用于根據(jù)數(shù)據(jù)劃分策略將片內(nèi)存儲(chǔ)數(shù)據(jù)劃分在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì);
[0069]預(yù)先操作模塊20,用于在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理;
[0070]數(shù)據(jù)拼接模塊30,用于根據(jù)數(shù)據(jù)拼接策略將片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到所述原始數(shù)據(jù)表示。
[0071]對于異構(gòu)平臺(tái)來說,加速器的片上能夠存儲(chǔ)的數(shù)據(jù)十分有限,需要將所有的數(shù)據(jù)劃分成為大小可以存儲(chǔ)在片上的數(shù)據(jù)塊,通過片外大存儲(chǔ)介質(zhì)和片內(nèi)小存儲(chǔ)介質(zhì)上的數(shù)據(jù)交互將所需數(shù)據(jù)塊讀入或者寫出。其間,片內(nèi)數(shù)據(jù)地址通過片內(nèi)地址索引按需提供給片上計(jì)算單元,物理框架如圖5所示;圖2和圖3所示的實(shí)施例劃分只為本發(fā)明所涉及的典型情況,本發(fā)明并不局限于特定的數(shù)據(jù)劃分,極端情況如數(shù)據(jù)全部被在片上,或者數(shù)據(jù)全部被劃分在片外,也在本發(fā)明的實(shí)現(xiàn)范圍之內(nèi)。
[0072]進(jìn)一步地,本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng)100,還包括:
[0073]存儲(chǔ)模塊40,用于存儲(chǔ)搬運(yùn)所述片內(nèi)存儲(chǔ)介質(zhì)的所述片內(nèi)存儲(chǔ)數(shù)據(jù)和來自所述片外存儲(chǔ)介質(zhì)的所述片外輸入數(shù)據(jù);
[0074]所述存儲(chǔ)模塊40采用讀寫端口分離,數(shù)據(jù)的讀出和寫入相互獨(dú)立;
[0075]所述預(yù)先處理模塊20還包括:
[0076]片上處理子模塊21,用于運(yùn)算處理所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0077]片外處理子模塊22,用于運(yùn)算處理外部輸入數(shù)據(jù)處理,所述外部輸入數(shù)據(jù)包括所述片外輸入數(shù)據(jù)、所述讀寫端口直接讀入的數(shù)據(jù)。
[0078]進(jìn)一步地,存儲(chǔ)模塊40還包括:
[0079]地址索引接口41,用于根據(jù)片內(nèi)地址索引來索引所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0080]數(shù)據(jù)讀出接口42,用于已索引到所述片內(nèi)存儲(chǔ)數(shù)據(jù)的輸出出口;
[0081]數(shù)據(jù)寫入接口43,用于將要存儲(chǔ)的數(shù)據(jù)根據(jù)寫入地址寫入相應(yīng)存儲(chǔ)位置。
[0082]所述片上數(shù)據(jù)劃分讀寫系統(tǒng)100,優(yōu)選的是數(shù)據(jù)劃分模塊10還包括:
[0083]地址劃分子模塊11,用于地址空間劃分成為片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間;
[0084]數(shù)據(jù)替換子模塊12,用于根據(jù)數(shù)據(jù)替換策略在所述片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì)之間進(jìn)行數(shù)據(jù)替換;所述數(shù)據(jù)替換策略包括順序替換、逆序替換以及隨機(jī)替換;
[0085]所述數(shù)據(jù)劃分策略包括定點(diǎn)數(shù)劃分、浮點(diǎn)數(shù)劃分;作為典型,如圖3A所示即為一個(gè)定點(diǎn)數(shù)實(shí)施例的數(shù)據(jù)劃分,這種劃分將定點(diǎn)數(shù)據(jù)換分成為整數(shù)部分和小數(shù)部分,圖3B所示一個(gè)浮點(diǎn)數(shù)實(shí)施例的數(shù)據(jù)劃分。這種劃分將浮點(diǎn)數(shù)劃分成為指數(shù)部分和小數(shù)部分。圖3A和圖3B所示的實(shí)施例劃分只為本發(fā)明所涉及的典型情況,本發(fā)明并不局限于特定的數(shù)據(jù)劃分,極端情況,如數(shù)據(jù)全部被在片上,或者數(shù)據(jù)全部被劃分在片外,片上的緩存結(jié)構(gòu)包括對輸入數(shù)據(jù)的緩存,也在本發(fā)明的設(shè)計(jì)范圍之內(nèi),地址劃分子模塊11將索引的地址空間劃分對應(yīng)到片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間,有需要的時(shí)候通過數(shù)據(jù)替換子模塊12進(jìn)行交換,將需要加速數(shù)據(jù)處理的轉(zhuǎn)移到片內(nèi)。數(shù)據(jù)劃分模塊10基于芯片中的一個(gè)或多個(gè)片上計(jì)算單元實(shí)現(xiàn),所述片上計(jì)算單元發(fā)起讀寫請求并處理拼接得到的原始數(shù)據(jù)。
[0086]所述數(shù)據(jù)拼接模塊30還包括:
[0087]索引拼接子模塊31,用于片內(nèi)片外數(shù)據(jù)傳輸?shù)男问綇脑紨?shù)據(jù)表示轉(zhuǎn)為全部或者部分的數(shù)據(jù)索引,拼接全部或者部分的片上的所述數(shù)據(jù)索引的結(jié)果獲得所述原始數(shù)據(jù)表示;
[0088]所述數(shù)據(jù)拼接模塊30讀寫通過片內(nèi)片外數(shù)據(jù)通路或片內(nèi)數(shù)據(jù)通路進(jìn)行,所述片內(nèi)片外數(shù)據(jù)通路包括PCI (Peripheral Component Interconnect,外部控制器接口)、PCIE(總線和接口標(biāo)準(zhǔn),Peripheral Component Interface Express )、HT互聯(lián)技術(shù)(HyperTransport,超傳輸,是一種全新的具有可升級性的新型、高速、高性能的端到端集成電路互聯(lián)總線技術(shù)),所述片內(nèi)數(shù)據(jù)通路包括FAT-TREE、H-TREE互聯(lián)技術(shù)(hierarchy tree,層次樹),片內(nèi)片外數(shù)據(jù)連接方式包括多芯片互聯(lián)結(jié)構(gòu);圖1所示的片內(nèi)片外數(shù)據(jù)連接并不局限于PCIE總線連接,也包涵多芯片互聯(lián)結(jié)構(gòu)如片上網(wǎng)絡(luò)。圖1所示的片上計(jì)算單元與片內(nèi)存儲(chǔ)介質(zhì)的數(shù)據(jù)通路不局限于H-TREE,或者FAT-TREE等互聯(lián)技術(shù),通過片內(nèi)片外數(shù)據(jù)通路可以在片外尋址,從而所述片上數(shù)據(jù)劃分讀寫系統(tǒng)100可以對準(zhǔn)確無誤地將各種需要拼接的數(shù)據(jù)還原成原始數(shù)據(jù),可以有效的支持不同的數(shù)據(jù)劃分策略,從而減少片內(nèi)片外數(shù)據(jù)交換。
[0089]所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)中的所述數(shù)據(jù)被一次或者多次讀寫,所述數(shù)據(jù)被讀至一個(gè)或者多個(gè)片上運(yùn)算單元;所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)被一次或者多從外部進(jìn)行讀寫,所述片內(nèi)存儲(chǔ)介質(zhì)被一次或者多次從內(nèi)部讀寫。
[0090]圖4是本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法的一個(gè)具體實(shí)施例的流程圖,其可通過如圖1?2所示的本發(fā)明所述片上數(shù)據(jù)劃分讀寫系統(tǒng)100實(shí)現(xiàn),如圖7,所述片上數(shù)據(jù)劃分讀寫方法包括:
[0091]步驟S701,數(shù)據(jù)劃分步驟,根據(jù)數(shù)據(jù)劃分策略將片上數(shù)據(jù)存儲(chǔ)在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì);
[0092]步驟S702,預(yù)先操作步驟,在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理;
[0093]步驟S703,數(shù)據(jù)拼接步驟,根據(jù)數(shù)據(jù)拼接策略將所述片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到原始數(shù)據(jù)表示。
[0094]分別通過數(shù)據(jù)劃分模塊10、預(yù)先操作模塊20和數(shù)據(jù)拼接模塊30實(shí)現(xiàn),將原始數(shù)據(jù)在片內(nèi)進(jìn)行無損恢復(fù)。
[0095]其中優(yōu)選的,本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法需要實(shí)現(xiàn)對于存儲(chǔ)的管理,實(shí)現(xiàn)拼接過程需要存儲(chǔ)模塊40的支持,所述數(shù)據(jù)劃分讀寫方法還包括:
[0096]數(shù)據(jù)存儲(chǔ)步驟,存儲(chǔ)搬運(yùn)所述片內(nèi)存儲(chǔ)介質(zhì)的所述片內(nèi)存儲(chǔ)數(shù)據(jù)和來自所述片外存儲(chǔ)介質(zhì)的所述片外輸入數(shù)據(jù);所述存儲(chǔ)步驟中讀寫端口分離,數(shù)據(jù)的讀出和寫入相互獨(dú)立;具體地,所述數(shù)據(jù)存儲(chǔ)步驟還包括:
[0097 ]第一、根據(jù)片內(nèi)地址索弓I來索弓I所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0098]第二、將已索引到數(shù)據(jù)的輸出出口;
[0099]第三、將要存儲(chǔ)的數(shù)據(jù)根據(jù)寫入地址寫入相應(yīng)存儲(chǔ)位置;
[0100]讀寫時(shí)分別由地址索引接口41、數(shù)據(jù)讀出接口 42、數(shù)據(jù)寫入接口 43提供支持,與片內(nèi)片外數(shù)據(jù)通路和片內(nèi)數(shù)據(jù)通路配合實(shí)現(xiàn)模塊內(nèi)外的數(shù)據(jù)通信,獨(dú)立的讀寫接口可以實(shí)現(xiàn)同時(shí)讀寫。片上數(shù)據(jù)根據(jù)片內(nèi)地址索引,該片內(nèi)地址索引有可能經(jīng)過預(yù)先操作模塊30—定的操作(如地址偏移計(jì)算),檢索片內(nèi)存儲(chǔ)得到片內(nèi)存儲(chǔ)數(shù)據(jù),結(jié)合外部輸入至片內(nèi)的數(shù)據(jù),經(jīng)過拼接操作,得到最后的完整數(shù)據(jù)。
[0101]在一個(gè)具體實(shí)施例中,優(yōu)選的本發(fā)明所述片上數(shù)據(jù)劃分讀寫方法的一個(gè)優(yōu)選實(shí)施例的流程圖,如圖8所示,所述片上數(shù)據(jù)劃分讀寫方法步驟包括:
[0102]步驟S801,地址空間劃分成為片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間;
[0103]步驟S802,根據(jù)數(shù)據(jù)替換策略在所述片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì)之間進(jìn)行數(shù)據(jù)替換;所述數(shù)據(jù)替換策略包括順序替換、逆序替換以及隨機(jī)替換;所述數(shù)據(jù)劃分策略包括定點(diǎn)數(shù)劃分、浮點(diǎn)數(shù)劃分;
[0104]步驟S803,運(yùn)算處理所述片內(nèi)存儲(chǔ)數(shù)據(jù);
[0105]步驟S804,運(yùn)算處理外部輸入數(shù)據(jù)處理,所述外部輸入數(shù)據(jù)包括所述片外輸入數(shù)據(jù)、所述讀寫端口直接讀入的數(shù)據(jù)。
[0106]步驟S805,片內(nèi)片外數(shù)據(jù)傳輸?shù)男问綇乃鲈紨?shù)據(jù)表示轉(zhuǎn)為全部或者部分的數(shù)據(jù)索引,拼接全部或者部分的片上的所述數(shù)據(jù)索引的結(jié)果獲得所述原始數(shù)據(jù)表示。
[0107]經(jīng)過處理過后的片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接在一起,然后才能交由后續(xù)的模塊進(jìn)行原始數(shù)據(jù)的處理,實(shí)現(xiàn)加速器的功能。
[0108]進(jìn)一步地,為便于理解,下面以圖4?圖6所示的一個(gè)具體實(shí)施例的物理設(shè)計(jì)框架圖進(jìn)行說明。
[0109]對于異構(gòu)平臺(tái)來說,加速器的片上能夠存儲(chǔ)的數(shù)據(jù)十分有限,需要將所有的數(shù)據(jù)劃分成為大小可以存儲(chǔ)在片上的數(shù)據(jù)塊,通過片外大存儲(chǔ)介質(zhì)(即片外存儲(chǔ)介質(zhì))和片內(nèi)小存儲(chǔ)介質(zhì)(即片內(nèi)存儲(chǔ)介質(zhì))上的數(shù)據(jù)交互將所需數(shù)據(jù)塊讀入或者寫出,在數(shù)據(jù)塊大小上有區(qū)分,因而劃分并存儲(chǔ)在不同區(qū)域,根據(jù)容量需求不同增設(shè)所述片外存儲(chǔ)介質(zhì)。其間,片內(nèi)數(shù)據(jù)地址通過片內(nèi)地址索引按需提供給片上計(jì)算單元,如圖6通過片內(nèi)地址索引接口 41獲取索引以及得到索引對應(yīng)的數(shù)據(jù),圖4所示即為一個(gè)實(shí)施例的片上數(shù)據(jù)索引過程,裝置根據(jù)8-bit地址索引256個(gè)存儲(chǔ)位置,得到32-bit的數(shù)據(jù),并不局限于圖示的地址索引位寬和片上數(shù)據(jù)存儲(chǔ)位寬。流程的實(shí)現(xiàn)在硬件上還依賴于片內(nèi)存儲(chǔ)介質(zhì)、片外存儲(chǔ)介質(zhì)、片內(nèi)片外數(shù)據(jù)通路以及片內(nèi)數(shù)據(jù)通路之間的相互通信。
[0110]如圖6所示即為一個(gè)實(shí)施例的數(shù)據(jù)拼接操作過程,片內(nèi)存儲(chǔ)數(shù)據(jù),圖示為32bit位寬,經(jīng)過片上數(shù)據(jù)處理子模塊31處理,圖示為32bit位寬。片上數(shù)據(jù)處理子模塊31并不局限于尋址操作,也包括其他運(yùn)算,如算術(shù)計(jì)算。片外輸入數(shù)據(jù),圖示為32bit位寬,經(jīng)過片外數(shù)據(jù)處理子模塊32處理,圖示為32bit位寬。處理過后的片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接在一起,圖示為64bit位寬,輸送給后續(xù)模塊處理,如片上計(jì)算單元,經(jīng)過處理的片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)并不局限于圖示的位寬,數(shù)據(jù)塊并不局限于特定的數(shù)據(jù)位寬,數(shù)據(jù)處理并不局限于特定的操作,而可能包涵復(fù)雜的操作,不僅是簡單的拼接,而包涵其他操作處理。
[0111]具體地,所述數(shù)據(jù)拼接步驟通過片內(nèi)片外數(shù)據(jù)通路或片內(nèi)數(shù)據(jù)通路進(jìn)行,尤其所述片內(nèi)片外數(shù)據(jù)通路包括PC1、PCIE、HT互聯(lián)技術(shù),實(shí)現(xiàn)內(nèi)部與片外之間的數(shù)據(jù)流,所述片內(nèi)數(shù)據(jù)通路包括FAT-TREE、H-TREE互聯(lián)技術(shù),片內(nèi)片外數(shù)據(jù)連接方式包括多芯片互聯(lián)結(jié)構(gòu),如片上網(wǎng)絡(luò)。
[0112]所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)中的所述數(shù)據(jù)可以被一次或者多次讀寫,所述數(shù)據(jù)可以被讀至一個(gè)或者多個(gè)片上運(yùn)算單元;所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)可以被一次或者多從外部進(jìn)行讀寫,介質(zhì)可以被一次或者多次從內(nèi)部讀寫。
[0113]本發(fā)明提供一種片上讀寫裝置,包括所述片上數(shù)據(jù)劃分讀寫系統(tǒng)100,所述片上讀寫裝置包括片內(nèi)存儲(chǔ)介質(zhì)、片外存儲(chǔ)介質(zhì)、片內(nèi)片外數(shù)據(jù)通路和片內(nèi)數(shù)據(jù)通路,所述片上讀寫裝置優(yōu)選的是,還包括了靜態(tài)隨機(jī)存儲(chǔ)器(Static Random Access Memory,SRAM),動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Dynamic Random Access Memory,DRAM),增強(qiáng)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(EnhancedDynamic Random Access Memory,eDRAM),寄存器堆(Registerf ile,RF)等常見存儲(chǔ)介質(zhì),也可以是新型的存儲(chǔ)器件,如非易失存儲(chǔ)器(Non-Volatile Memory,NVM)或者3D存儲(chǔ)器件等等。
[0114]本發(fā)明將數(shù)據(jù)表示轉(zhuǎn)換到索引,可以高效的進(jìn)行片上地址空間內(nèi)的重復(fù)尋址,也可以進(jìn)行片外地址尋址;異構(gòu)環(huán)境下片上重復(fù)尋址的裝置及其使用策略,不同于直接對數(shù)據(jù)本身緩存進(jìn)行加速,硬件支持需要包含片內(nèi)存儲(chǔ)介質(zhì),片外存儲(chǔ)介質(zhì),地址索引器件,片內(nèi)片外數(shù)據(jù)通路,片內(nèi)數(shù)據(jù)通路。
[0115]最后,本發(fā)明旨在用于不同的數(shù)據(jù)劃分的策略、裝置和方法,根據(jù)不同的劃分策略,數(shù)據(jù)被劃分成為不同的部分,本發(fā)明中的裝置支持不同劃分策略的裝置。
[0116]綜上所述,本發(fā)明的裝置及其相關(guān)使用方法可以有效的提供數(shù)據(jù)的復(fù)用性和其靈活尋址的需求,有效的降低訪存帶寬需求,能夠適用于不同場景,并不僅僅局限于機(jī)器學(xué)習(xí)類加速器。本發(fā)明同時(shí)可以通過合理調(diào)度數(shù)據(jù),縮減片上緩存開銷,從而可以提供更加高效的加速器設(shè)計(jì)支持。
[0117]當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種片上數(shù)據(jù)劃分讀寫方法,其特征在于,包括: 數(shù)據(jù)劃分步驟,根據(jù)數(shù)據(jù)劃分策略將片上數(shù)據(jù)存儲(chǔ)在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì); 預(yù)先操作步驟,在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理; 數(shù)據(jù)拼接步驟,根據(jù)數(shù)據(jù)拼接策略將所述片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到原始數(shù)據(jù)表示。2.根據(jù)權(quán)利要求1所述片上數(shù)據(jù)劃分讀寫方法,其特征在于,還包括: 數(shù)據(jù)存儲(chǔ)步驟,存儲(chǔ)搬運(yùn)所述片內(nèi)存儲(chǔ)介質(zhì)的所述片內(nèi)存儲(chǔ)數(shù)據(jù)和來自所述片外存儲(chǔ)介質(zhì)的所述片外輸入數(shù)據(jù); 所述存儲(chǔ)步驟中讀寫端口分離,數(shù)據(jù)的讀出和寫入相互獨(dú)立; 所述預(yù)先操作步驟還包括: 運(yùn)算處理所述片內(nèi)存儲(chǔ)數(shù)據(jù); 運(yùn)算處理外部輸入數(shù)據(jù)處理; 所述外部輸入數(shù)據(jù)包括所述片外輸入數(shù)據(jù)、所述讀寫端口直接讀入的數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述片上數(shù)據(jù)劃分讀寫方法,其特征在于,所述數(shù)據(jù)存儲(chǔ)步驟還包括: 根據(jù)片內(nèi)地址索引來索引所述片內(nèi)存儲(chǔ)數(shù)據(jù); 已索引到的數(shù)據(jù)的輸出出口; 將要存儲(chǔ)的數(shù)據(jù)根據(jù)寫入地址寫入相應(yīng)存儲(chǔ)位置。4.根據(jù)權(quán)利要求1所述片上數(shù)據(jù)劃分讀寫方法,其特征在于,所述數(shù)據(jù)劃分步驟還包括: 地址空間劃分成為片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間; 根據(jù)數(shù)據(jù)替換策略在所述片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì)之間進(jìn)行數(shù)據(jù)替換;所述數(shù)據(jù)替換策略包括順序替換、逆序替換以及隨機(jī)替換; 所述數(shù)據(jù)劃分策略包括定點(diǎn)數(shù)劃分、浮點(diǎn)數(shù)劃分; 所述數(shù)據(jù)拼接步驟還包括: 片內(nèi)片外數(shù)據(jù)傳輸?shù)男问綇乃鲈紨?shù)據(jù)表示轉(zhuǎn)為全部或者部分的數(shù)據(jù)索引,拼接全部或者部分的片上的所述數(shù)據(jù)索引的結(jié)果獲得所述原始數(shù)據(jù)表示; 所述數(shù)據(jù)拼接步驟通過片內(nèi)片外數(shù)據(jù)通路或片內(nèi)數(shù)據(jù)通路進(jìn)行,所述片內(nèi)片外數(shù)據(jù)通路包括PC1、PCIE、HT互聯(lián)技術(shù),所述片內(nèi)數(shù)據(jù)通路包括FAT-TREE、H-TREE互聯(lián)技術(shù),片內(nèi)片外數(shù)據(jù)連接方式包括多芯片互聯(lián)結(jié)構(gòu); 所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)中的數(shù)據(jù)可以被一次或者多次讀寫,所述數(shù)據(jù)可以被讀至一個(gè)或者多個(gè)片上運(yùn)算單元;所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)可以被一次或者多從外部進(jìn)行讀寫,介質(zhì)可以被一次或者多次從內(nèi)部讀寫。5.一種片上數(shù)據(jù)劃分讀寫系統(tǒng),其特征在于,包括: 數(shù)據(jù)劃分模塊,用于根據(jù)數(shù)據(jù)劃分策略將片內(nèi)存儲(chǔ)數(shù)據(jù)劃分在不同區(qū)域,分別存儲(chǔ)在片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì); 預(yù)先操作模塊,用于在進(jìn)行數(shù)據(jù)拼接時(shí)預(yù)先對片內(nèi)存儲(chǔ)數(shù)據(jù)的片內(nèi)地址索引進(jìn)行操作處理; 數(shù)據(jù)拼接模塊,用于根據(jù)數(shù)據(jù)拼接策略將片內(nèi)存儲(chǔ)數(shù)據(jù)和片外輸入數(shù)據(jù)拼接得到所述原始數(shù)據(jù)表示。6.根據(jù)權(quán)利要求5所述片上數(shù)據(jù)劃分讀寫系統(tǒng),其特征在于,還包括: 存儲(chǔ)模塊,用于存儲(chǔ)搬運(yùn)所述片內(nèi)存儲(chǔ)介質(zhì)的所述片內(nèi)存儲(chǔ)數(shù)據(jù)和來自所述片外存儲(chǔ)介質(zhì)的所述片外輸入數(shù)據(jù); 所述存儲(chǔ)模塊采用讀寫端口分離,數(shù)據(jù)的讀出和寫入相互獨(dú)立; 所述預(yù)先處理模塊還包括: 片上處理子模塊,用于運(yùn)算處理所述片內(nèi)存儲(chǔ)數(shù)據(jù); 片外處理子模塊,用于運(yùn)算處理外部輸入數(shù)據(jù)處理; 所述外部輸入數(shù)據(jù)包括所述片外輸入數(shù)據(jù)、所述讀寫端口直接讀入的數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述片上數(shù)據(jù)劃分讀寫系統(tǒng),其特征在于,所述存儲(chǔ)模塊還包括: 地址索引接口,用于根據(jù)片內(nèi)地址索引來索引所述片內(nèi)存儲(chǔ)數(shù)據(jù); 數(shù)據(jù)讀出接口,用于已索引到的所述片內(nèi)存儲(chǔ)數(shù)據(jù)的輸出出口; 數(shù)據(jù)寫入接口,用于將要存儲(chǔ)的數(shù)據(jù)根據(jù)寫入地址寫入相應(yīng)存儲(chǔ)位置。8.根據(jù)權(quán)利要求5所述片上數(shù)據(jù)劃分讀寫系統(tǒng),其特征在于,所述數(shù)據(jù)劃分模塊還包括: 地址劃分子模塊,用于地址空間劃分成為片外數(shù)據(jù)空間和片內(nèi)數(shù)據(jù)空間; 數(shù)據(jù)替換子模塊,用于根據(jù)數(shù)據(jù)替換策略在所述片內(nèi)存儲(chǔ)介質(zhì)和片外存儲(chǔ)介質(zhì)之間進(jìn)行數(shù)據(jù)替換;所述數(shù)據(jù)替換策略包括順序替換、逆序替換以及隨機(jī)替換; 所述數(shù)據(jù)劃分策略包括定點(diǎn)數(shù)劃分、浮點(diǎn)數(shù)劃分;所述數(shù)據(jù)劃分模塊基于芯片中的一個(gè)或多個(gè)片上計(jì)算單元實(shí)現(xiàn),所述片上計(jì)算單元發(fā)起讀寫請求并處理拼接得到的原始數(shù)據(jù); 所述數(shù)據(jù)拼接模塊還包括: 索引拼接子模塊,用于片內(nèi)片外數(shù)據(jù)傳輸?shù)男问綇脑紨?shù)據(jù)表示轉(zhuǎn)為全部或者部分的數(shù)據(jù)索引,拼接全部或者部分的片上的所述數(shù)據(jù)索引的結(jié)果獲得所述原始數(shù)據(jù)表示; 所述數(shù)據(jù)拼接模塊讀寫通過片內(nèi)片外數(shù)據(jù)通路或片內(nèi)數(shù)據(jù)通路進(jìn)行,所述片內(nèi)片外數(shù)據(jù)通路包括PC1、PCIE、HT互聯(lián)技術(shù),所述片內(nèi)數(shù)據(jù)通路包括FAT-TREE、H-TREE互聯(lián)技術(shù),片內(nèi)片外數(shù)據(jù)連接方式包括多芯片互聯(lián)結(jié)構(gòu); 所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)中的數(shù)據(jù)被一次或者多次讀寫,所述數(shù)據(jù)被讀至一個(gè)或者多個(gè)片上運(yùn)算單元;所述片內(nèi)存儲(chǔ)介質(zhì)或所述片外存儲(chǔ)介質(zhì)被一次或者多從外部進(jìn)行讀寫,所述片內(nèi)存儲(chǔ)介質(zhì)被一次或者多次從內(nèi)部讀寫。9.一種片上讀寫裝置,其特征在于,包括根據(jù)權(quán)利要求5?8任一項(xiàng)所述片上數(shù)據(jù)劃分讀寫系統(tǒng)。10.根據(jù)權(quán)利要求9所述片上讀寫裝置,其特征在于,所述片上讀寫裝置包括靜態(tài)隨機(jī)存儲(chǔ)器、動(dòng)態(tài)隨機(jī)存儲(chǔ)器、增強(qiáng)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、寄存器堆以及非易失存儲(chǔ)器或者3D存儲(chǔ)器件。
【文檔編號】G06F15/78GK105843775SQ201610210082
【公開日】2016年8月10日
【申請日】2016年4月6日
【發(fā)明人】陳天石, 杜子?xùn)|, 郭崎, 陳云霽
【申請人】中國科學(xué)院計(jì)算技術(shù)研究所