本發(fā)明涉及存儲,具體涉及一種支持多種數(shù)據(jù)位寬的高并發(fā)存儲陣列。
背景技術(shù):
1、hc3020是國內(nèi)自主研制的一款高性能智能處理器,該處理器采用了通用核結(jié)合專用核的異構(gòu)處理架構(gòu)。其中,通用核為嵌入式cpu核,主要用于全芯片的管理、調(diào)度和運(yùn)算量較小的離散運(yùn)算;專用核為算法加速核,即spu核,是作為芯片的主處理核,實(shí)現(xiàn)高密集信號處理算法和復(fù)雜人工智能算法的高并行硬件加速處理。hc3020還包括axi總線、通用dma、片上存儲、ddr4、pcie、srio、以太網(wǎng)等功能部件和接口,滿足進(jìn)行高吞吐率運(yùn)算時,處理器對數(shù)據(jù)存儲和傳輸?shù)男枨蟆?/p>
2、spu核具有高并行、高算力、高效能特點(diǎn),內(nèi)部集成眾多運(yùn)算部件,實(shí)現(xiàn)對復(fù)雜算法的硬件加速,為了確保spu核的運(yùn)算性能,處理器內(nèi)集成了高并發(fā)的大容量存儲陣列,滿足spu核內(nèi)部運(yùn)算部件供數(shù)以及運(yùn)算結(jié)果緩存帶寬的需求。
3、hc3020典型應(yīng)用場景為實(shí)時圖像智能識別處理,主要包括成像算法和識別算法,其中成像算法為fft、向量運(yùn)算、矩陣運(yùn)算、插值運(yùn)算等信號處理類算法;識別算法為人工智能算法,采用一個多層卷積神經(jīng)網(wǎng)絡(luò),包括卷積、池化、全連接和softmax等層。
4、傳感器經(jīng)a/d實(shí)時采樣處理所需的原始數(shù)據(jù),數(shù)據(jù)通過處理器的pcie或srio高速接口存入處理器外掛的ddr4存儲后,cpu核啟動dma通過axi總線將原始數(shù)據(jù)寫入存儲陣列,供spu核讀取。原始數(shù)據(jù)為16位整型(int16)復(fù)數(shù)格式,復(fù)數(shù)格式包括實(shí)部和虛部,單個原始數(shù)據(jù)數(shù)據(jù)位寬為32位。spu核首先將原始數(shù)據(jù)經(jīng)過定點(diǎn)浮點(diǎn)轉(zhuǎn)換,實(shí)部和虛部分別轉(zhuǎn)換為單精度浮點(diǎn)(fp32),然后進(jìn)行成像算法處理流程,在成像過程中,為了保證成像精度,矩陣運(yùn)算時實(shí)部和虛部采用了雙精度浮點(diǎn)(fp64)格式處理,其余均為單精度數(shù)據(jù)格式,最后形成8位整型(int8)實(shí)數(shù)格式的圖像數(shù)據(jù)。隨后spu核對圖像數(shù)據(jù)進(jìn)行識別算法處理流程,卷積層和池化層均采用16位整型格式處理,為了保證識別精度,全連接層采用了32位整型格式處理,最后經(jīng)過softmax層,形成8位整型的實(shí)數(shù)格式的識別結(jié)果。cpu核啟動dma通過axi總線將識別結(jié)果讀出存儲陣列,并且存入處理器外掛的ddr4存儲,啟動處理器的高速接口發(fā)送至顯示單元。
5、在實(shí)時圖像智能識別處理過程中,成像算法為fp32/fp64復(fù)數(shù)格式混合精度處理,識別算法為int8/int16/int32實(shí)數(shù)格式混合精度處理,并且受限于spu核內(nèi)部的存儲空間,算法流程的中間結(jié)果均需存入存儲陣列。為了滿足高算力的spu核供數(shù)和緩存要求,存儲陣列容量需要具有不少于2mb總?cè)萘亢?4個高并發(fā)接口,支持流水讀寫,同時需要支持混合精度處理帶來的多種數(shù)據(jù)位寬,存儲陣列需支持8/16/32/64/128/256?bit位寬數(shù)據(jù)讀寫。
6、hc3020處理器的存儲陣列由64個bank存儲庫組成,每個bank對外提供一組獨(dú)立的2-port型接口,深度1024、位寬256bit,共計(jì)32kb的訪存空間,且需支持8/16/32/64/128/256?bit多種位寬數(shù)據(jù)讀寫。然而,芯片工藝廠商提供的2-port型sram進(jìn)行讀寫數(shù)據(jù)時數(shù)據(jù)位寬固定,sram是靜態(tài)隨機(jī)存取存儲器,它只提供了字節(jié)掩碼,無法直接進(jìn)行8/16/32/64/128/256?bit多種位寬數(shù)據(jù)讀寫。
7、針對上述問題,傳統(tǒng)的技術(shù)方式是采用支持最小8bit位寬數(shù)據(jù)讀寫的方式,使用控制邏輯將大于8bit位寬的寫數(shù)據(jù)拆分為多個8bit數(shù)據(jù)進(jìn)行寫入,將大于8bit位寬的讀請求拆分為多個8bit讀請求,并將多次讀數(shù)據(jù)進(jìn)行拼接,從而兼容大于8bit位寬數(shù)據(jù)讀寫。然而,該方式至少存在以下問題:
8、1)支持的數(shù)據(jù)位寬太少,讀操作與寫操作最大只支持8bit,無法做到多種數(shù)據(jù)位寬的流水讀寫;
9、2)對數(shù)據(jù)處理的過程效率低下,同時數(shù)據(jù)處理的過程中可能會引起讀寫沖突。
技術(shù)實(shí)現(xiàn)思路
1、針對上述兩個問題,本發(fā)明旨在提出一種支持多種數(shù)據(jù)位寬的高并發(fā)存儲陣列,在bank中增加了讀寫模式配置字信號,再結(jié)合讀邏輯控制模塊和寫邏輯控制模塊,能夠支持多種數(shù)據(jù)位寬的流水讀寫;此外,還重新定義了讀映射邏輯和寫映射邏輯,可以高效且準(zhǔn)確的進(jìn)行讀寫操作,降低讀寫沖突的概率,有效提升處理效率。通過以下技術(shù)方案實(shí)現(xiàn)的:
2、一種支持多種數(shù)據(jù)位寬的高并發(fā)存儲陣列,采用多個相同的bank,在任意一個bank中:內(nèi)置有sram模塊、讀控制邏輯模塊和寫控制邏輯模塊;sram模塊由4個sram拼接而成,sram模塊的第一端通過多組2-port型讀寫接口與讀控制邏輯模塊進(jìn)行數(shù)據(jù)交互,sram模塊的第二端通過多組2-port型讀寫接口與寫控制邏輯模塊進(jìn)行數(shù)據(jù)交互;讀控制邏輯模塊用于控制bank接收讀操作相關(guān)的信號或用于向bank外發(fā)送讀出數(shù)據(jù)信號,讀操作相關(guān)的信號包括讀模式配置字信號、讀寫信號和讀地址信號,讀模式配置字信號用于指示讀操作的數(shù)據(jù)位寬,讀寫信號用于指示進(jìn)行讀操作或指示進(jìn)行寫操作,讀地址信號用于指示讀地址;寫控制邏輯模塊用于控制bank接收寫操作相關(guān)的信號或接收寫入數(shù)據(jù)信號,寫操作相關(guān)的信號包括寫模式配置字信號、讀寫信號和寫地址信號,寫模式配置字信號用于指示寫操作的數(shù)據(jù)位寬,寫地址信號用于指示寫地址;在bank接收到外部的片選信號有效時,sram模塊結(jié)合讀控制邏輯模塊按照讀映射邏輯進(jìn)行讀操作或sram模塊結(jié)合寫控制邏輯模塊按照寫映射邏輯進(jìn)行寫操作;其中,讀映射邏輯包括:根據(jù)讀地址信號[4:3]數(shù)值控制sram模塊發(fā)出re讀使能信號,在sram模塊接收到re讀使能信號后,從讀地址信號中獲取讀地址,同時讀控制邏輯模塊根據(jù)讀模式配置字信號和讀地址信號[4:0]數(shù)值,獲取sram模塊中讀地址對應(yīng)的讀出數(shù)據(jù),再將讀出數(shù)據(jù)作為讀出數(shù)據(jù)信號對外輸出;寫映射邏輯包括:根據(jù)寫地址信號[4:3]數(shù)值控制sram模塊發(fā)出寫使能信號,寫控制邏輯模塊在接收到寫使能信號后,從寫地址信號中獲取寫地址,同時根據(jù)寫模式配置字信號和寫地址信號中低3位的數(shù)值從寫入數(shù)據(jù)信號中獲取sram模塊所需的寫入數(shù)據(jù),再將寫入數(shù)據(jù)寫入到寫地址。
3、通過讀寫控制邏輯模塊和讀寫模式配置字信號,可以實(shí)時解析數(shù)據(jù)位寬,結(jié)合拼接而成的sram模塊,可以有效支持多種數(shù)據(jù)位寬的流水讀寫;同時,還自定義了讀寫映射邏輯,可以高效且準(zhǔn)確的進(jìn)行讀寫操作,有效提升處理效率。
4、優(yōu)選地,在任意一個bank中,sram模塊中的4個sram采用堆疊連接或并行連接進(jìn)行拼接。將4個sram進(jìn)行拼接,使得sram模塊可以同時支持讀寫操作并提升了支持處理的數(shù)據(jù)位寬。
5、優(yōu)選地,在任意一個bank中,sram模塊、讀控制邏輯模塊和寫控制邏輯模塊采用相同的時鐘信號,同時,寫控制邏輯模塊和讀控制邏輯模塊均采用時序邏輯設(shè)計(jì)。采用相同的時鐘信號且兩個模塊均采用時序邏輯設(shè)計(jì),可以有效進(jìn)行同步操作,提高數(shù)據(jù)傳輸效率。
6、優(yōu)選地,寫控制邏輯模塊支持流水寫入,讀控制邏輯模塊支持流水讀取。流水寫入和流水讀取可以使讀寫操作更高效。
7、優(yōu)選地,任意一個bank在進(jìn)行讀操作時的運(yùn)行方法包括如下步驟:s1、讀控制邏輯模塊接收bank外的片選信號和讀寫信號,在片選信號有效的情況下,依據(jù)讀寫信號的指示內(nèi)容進(jìn)行讀操作;s2、利用步驟s1中的讀控制邏輯模塊接收讀模式字信號和讀地址信號,從讀模式字信號中獲取讀操作對應(yīng)數(shù)據(jù)的數(shù)據(jù)位寬,從讀地址信號中獲取讀操作對應(yīng)數(shù)據(jù)的讀地址,讀地址的形式為字節(jié)地址;s3、讀控制邏輯模塊依據(jù)步驟s2中的讀地址控制sram模塊發(fā)出re讀使能信號,同時,sram模塊將讀地址的形式從字節(jié)地址轉(zhuǎn)換為字地址;s4、sram模塊依據(jù)步驟s3中轉(zhuǎn)換為字地址形式的讀地址進(jìn)行數(shù)據(jù)讀取,讀控制邏輯模塊根據(jù)轉(zhuǎn)換為字地址形式的讀地址和步驟s2中的數(shù)據(jù)位寬,從sram模塊讀取的數(shù)據(jù)中獲得讀出數(shù)據(jù),將讀出數(shù)據(jù)作為讀出數(shù)據(jù)信號對bank外進(jìn)行輸出。在進(jìn)行讀操作時,有效利用對應(yīng)的信號進(jìn)行傳輸,保證讀操作的準(zhǔn)確性和穩(wěn)定性。
8、優(yōu)選地,任意一個bank在進(jìn)行寫操作時的運(yùn)行方法包括如下步驟:s1、寫控制邏輯模塊接收bank外的片選信號和讀寫信號,在片選信號有效的情況下,依據(jù)讀寫信號的指示內(nèi)容進(jìn)行寫操作;s2、利用步驟s1中的寫控制邏輯模塊接收寫模式配置字信號、寫入數(shù)據(jù)信號和寫地址信號,從寫模式字信號中獲取寫操作對應(yīng)數(shù)據(jù)的數(shù)據(jù)位寬,從寫入數(shù)據(jù)信號中獲取寫入數(shù)據(jù),從寫地址信號中獲取寫操作對應(yīng)數(shù)據(jù)的寫地址,寫地址的形式為字節(jié)地址;s3、利用寫控制邏輯模塊控制sram模塊發(fā)出寫使能信號,同時將步驟s2中寫地址的形式從字節(jié)地址轉(zhuǎn)換為字地址;再依據(jù)字地址形式的寫地址和步驟s2中的數(shù)據(jù)位寬,利用寫控制邏輯模塊將步驟s2中的寫入數(shù)據(jù)寫入sram模塊。在進(jìn)行寫操作時,有效利用對應(yīng)的信號進(jìn)行傳輸,保證寫操作的準(zhǔn)確性和穩(wěn)定性。
9、優(yōu)選地,每個bank以并聯(lián)的方式進(jìn)行連接,每個bank均具備獨(dú)立的數(shù)據(jù)總線用于獨(dú)立進(jìn)行讀操作或?qū)懖僮?,同時,每個bank共享axi總線。多個bank能夠?qū)崿F(xiàn)高并行的讀寫操作。
10、本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果是:
11、本發(fā)明的技術(shù)方案,在每個bank中增加了讀寫模式配置字信號,再結(jié)合讀寫邏輯控制模塊,能夠支持多種數(shù)據(jù)位寬的流水讀寫;同時,還重新定義了讀映射邏輯和寫映射邏輯,可以高效且準(zhǔn)確的進(jìn)行讀寫操作,有效提升處理效率。