本發(fā)明涉及存儲(chǔ),尤其涉及一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器。
背景技術(shù):
1、存儲(chǔ)結(jié)構(gòu)是芯片中非常重要的組成部分。摩爾定律發(fā)展的幾十年里,存儲(chǔ)器的速度已經(jīng)遠(yuǎn)遠(yuǎn)低于cpu的運(yùn)算速度。而馮·諾依曼構(gòu)架需要數(shù)據(jù)頻繁交換,由此帶來(lái)帶寬、延遲和功耗問(wèn)題,讓存儲(chǔ)器成為限制算力的一個(gè)瓶頸。
2、目前,隨著人工智能與深度學(xué)習(xí)的發(fā)展,單指令流多數(shù)據(jù)流(single?instructionmultiple?data,simd)處理器的應(yīng)用越發(fā)廣泛,部分讀寫(xiě)將進(jìn)一步帶來(lái)訪(fǎng)存效率的降低。例如,16個(gè)線(xiàn)程并行計(jì)算,只有部分計(jì)算結(jié)果有效,此時(shí)只期望將部分結(jié)果更新至存儲(chǔ)器中。常規(guī)步驟如下:1)將待寫(xiě)地址數(shù)據(jù)讀出;2)將待寫(xiě)有效數(shù)據(jù)與原始數(shù)據(jù)進(jìn)行拼接;3)寫(xiě)回存儲(chǔ)器。這樣,存儲(chǔ)器寫(xiě)入的效率變得更低,導(dǎo)致后續(xù)指令的讀寫(xiě)延時(shí)更大,存儲(chǔ)器的訪(fǎng)問(wèn)沖突也變得更劇烈,存儲(chǔ)訪(fǎng)問(wèn)功耗更大。并且,該方案還不兼容多線(xiàn)程場(chǎng)景。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,用以實(shí)現(xiàn)兼容多線(xiàn)程的數(shù)據(jù)讀寫(xiě),并降低數(shù)據(jù)讀寫(xiě)延時(shí)和存儲(chǔ)訪(fǎng)問(wèn)功耗的目的。
2、本發(fā)明提供一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,包括:
3、存儲(chǔ)模塊,用于存儲(chǔ)歷史數(shù)據(jù);
4、緩存控制模塊,用于響應(yīng)目標(biāo)指令,選擇目標(biāo)地址位,將所述目標(biāo)指令中攜帶的訪(fǎng)問(wèn)地址緩存到所述目標(biāo)地址位,以及維護(hù)每個(gè)地址位中各線(xiàn)程的數(shù)據(jù)狀態(tài)和數(shù)據(jù)存儲(chǔ)年齡;響應(yīng)讀指令,確定待讀取的訪(fǎng)問(wèn)地址;
5、緩存模塊,用于響應(yīng)所述目標(biāo)指令,將所述目標(biāo)指令中攜帶的各目標(biāo)線(xiàn)程的數(shù)據(jù)緩存到所述目標(biāo)地址位;響應(yīng)所述讀指令,從所述待讀取的訪(fǎng)問(wèn)地址對(duì)應(yīng)的地址位讀取數(shù)據(jù);
6、緩存補(bǔ)全邏輯模塊,其分別與所述存儲(chǔ)模塊和所述緩存模塊通信連接,用于在所述存儲(chǔ)模塊的空閑時(shí)刻,基于所述歷史數(shù)據(jù)將所述緩存模塊中待補(bǔ)全的地址位進(jìn)行數(shù)據(jù)補(bǔ)全;
7、緩存寫(xiě)回邏輯模塊,其分別與所述存儲(chǔ)模塊和所述緩存模塊通信連接,用于在所述緩存模塊的容量超過(guò)預(yù)設(shè)值時(shí),將待寫(xiě)回的地址位的數(shù)據(jù)在所述存儲(chǔ)模塊的空閑時(shí)刻按照相應(yīng)的訪(fǎng)問(wèn)地址寫(xiě)回所述存儲(chǔ)模塊。
8、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述數(shù)據(jù)狀態(tài)包括:無(wú)效、數(shù)據(jù)計(jì)算中、有效且一致和有效不一致;其中,所述無(wú)效用于表征地址位中的線(xiàn)程沒(méi)有有效數(shù)據(jù);所述數(shù)據(jù)計(jì)算中用于表征地址位中的線(xiàn)程未來(lái)要寫(xiě)入的數(shù)據(jù)正在計(jì)算流水線(xiàn)中;所述有效且一致用于表征地址位中線(xiàn)程的數(shù)據(jù)與所述存儲(chǔ)模塊中的對(duì)應(yīng)數(shù)據(jù)一致;所述有效不一致用于表征地址位中線(xiàn)程的數(shù)據(jù)與所述存儲(chǔ)模塊中的任一數(shù)據(jù)均不一致。
9、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述緩存控制模塊具體用于:
10、針對(duì)每一地址位,若所述地址位中每個(gè)線(xiàn)程的數(shù)據(jù)狀態(tài)為有效且一致或無(wú)效,則將所述地址位作為候選地址位;
11、若所述候選地址位的數(shù)量為多個(gè),則從多個(gè)所述候選地址位中選取最優(yōu)的所述候選地址位作為所述目標(biāo)地址位;
12、在所述目標(biāo)地址位的各目標(biāo)線(xiàn)程新寫(xiě)入數(shù)據(jù)時(shí),將所述目標(biāo)地址位中各目標(biāo)線(xiàn)程的數(shù)據(jù)狀態(tài)更新為有效不一致。
13、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,最優(yōu)的所述候選地址位為數(shù)據(jù)存儲(chǔ)年齡最大的所述候選地址位或已經(jīng)被讀取數(shù)據(jù)的所述候選地址位。
14、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述緩存補(bǔ)全邏輯模塊具體用于:
15、針對(duì)每一地址位,若所述地址位中部分線(xiàn)程的數(shù)據(jù)狀態(tài)為無(wú)效,則將所述地址位作為所述待補(bǔ)全的地址位進(jìn)行數(shù)據(jù)補(bǔ)全;
16、所述緩存控制模塊具體用于:
17、針對(duì)每個(gè)所述待補(bǔ)全的地址位,在所述待補(bǔ)全的地址位補(bǔ)全數(shù)據(jù)時(shí),將所述待補(bǔ)全的地址位的各線(xiàn)程的數(shù)據(jù)狀態(tài)更新為有效且一致。
18、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述緩存控制模塊具體用于:
19、在所述待寫(xiě)回的地址位的數(shù)據(jù)寫(xiě)回所述存儲(chǔ)模塊時(shí),將所述待寫(xiě)回的地址位的各線(xiàn)程的數(shù)據(jù)狀態(tài)更新為有效且一致。
20、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述待寫(xiě)回的地址位為數(shù)據(jù)存儲(chǔ)年齡最大的地址位或已經(jīng)被讀取數(shù)據(jù)的地址位。
21、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,還包括:前傳邏輯模塊;所述前傳邏輯模塊具體用于:
22、若當(dāng)前指令的讀取數(shù)據(jù)為所述當(dāng)前指令之前的計(jì)算指令的計(jì)算結(jié)果,則確定所述計(jì)算指令對(duì)應(yīng)的線(xiàn)程的數(shù)據(jù)狀態(tài)是否為數(shù)據(jù)計(jì)算中;
23、若所述計(jì)算指令對(duì)應(yīng)的線(xiàn)程的數(shù)據(jù)狀態(tài)為數(shù)據(jù)計(jì)算中,則禁止所述當(dāng)前指令發(fā)射;
24、若到達(dá)所述計(jì)算指令的計(jì)算周期,則輸出所述計(jì)算結(jié)果至訪(fǎng)存寫(xiě)口;
25、當(dāng)所述計(jì)算結(jié)果在所述訪(fǎng)存寫(xiě)口正在被寫(xiě)入時(shí),允許所述當(dāng)前指令發(fā)射,輸出所述讀取數(shù)據(jù)。
26、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述緩存控制模塊具體用于:
27、在所述目標(biāo)指令的計(jì)算結(jié)果正在計(jì)算流水線(xiàn)中時(shí),將所述目標(biāo)地址位的各目標(biāo)線(xiàn)程的數(shù)據(jù)狀態(tài)更新為數(shù)據(jù)計(jì)算中。
28、根據(jù)本發(fā)明提供的一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,所述存儲(chǔ)模塊還用于:
29、若所述待讀取的訪(fǎng)問(wèn)地址對(duì)應(yīng)的地址位存在數(shù)據(jù)狀態(tài)為無(wú)效的線(xiàn)程,則從所述待讀取的訪(fǎng)問(wèn)地址讀取數(shù)據(jù)。
30、本發(fā)明提供的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,包括:存儲(chǔ)模塊、緩存控制模塊、緩存模塊、緩存補(bǔ)全邏輯模塊和緩存寫(xiě)回邏輯模塊。其中,存儲(chǔ)模塊,用于存儲(chǔ)歷史數(shù)據(jù),能夠?qū)崿F(xiàn)大容量存儲(chǔ);緩存控制模塊,用于響應(yīng)目標(biāo)指令,選擇目標(biāo)地址位,將目標(biāo)指令中攜帶的訪(fǎng)問(wèn)地址緩存到目標(biāo)地址位,以及維護(hù)每個(gè)地址位中各線(xiàn)程的數(shù)據(jù)狀態(tài)和數(shù)據(jù)存儲(chǔ)年齡,可以實(shí)現(xiàn)逐線(xiàn)程的維護(hù),能夠兼容多線(xiàn)程場(chǎng)景;響應(yīng)讀指令,確定待讀取的訪(fǎng)問(wèn)地址;緩存模塊,用于響應(yīng)目標(biāo)指令,將目標(biāo)指令中攜帶的各目標(biāo)線(xiàn)程的數(shù)據(jù)緩存到目標(biāo)地址位,能夠?qū)⑿聦?xiě)入的數(shù)據(jù)先緩存到緩存模塊中;響應(yīng)讀指令,從待讀取的訪(fǎng)問(wèn)地址對(duì)應(yīng)的地址位讀取數(shù)據(jù),能夠從緩存模塊中快速讀取到所需數(shù)據(jù),將讀寫(xiě)周期從三個(gè)時(shí)鐘周期縮短至一個(gè)時(shí)鐘周期,從而降低數(shù)據(jù)讀寫(xiě)延時(shí);緩存補(bǔ)全邏輯模塊,其分別與存儲(chǔ)模塊和緩存模塊通信連接,用于在存儲(chǔ)模塊的空閑時(shí)刻,基于歷史數(shù)據(jù)將緩存模塊中待補(bǔ)全的地址位進(jìn)行數(shù)據(jù)補(bǔ)全,使得大部分?jǐn)?shù)據(jù)能夠從補(bǔ)全后的緩存模塊中讀取到,能夠提升數(shù)據(jù)讀寫(xiě)效率,降低數(shù)據(jù)讀寫(xiě)延時(shí);緩存寫(xiě)回邏輯模塊,其分別與存儲(chǔ)模塊和緩存模塊通信連接,用于在緩存模塊的容量超過(guò)預(yù)設(shè)值時(shí),將待寫(xiě)回的地址位的數(shù)據(jù)在存儲(chǔ)模塊的空閑時(shí)刻按照相應(yīng)的訪(fǎng)問(wèn)地址寫(xiě)回存儲(chǔ)模塊,由于大部分?jǐn)?shù)據(jù)能夠從緩存模塊中讀取到,且存儲(chǔ)模塊的寫(xiě)入頻率降低,可以降低訪(fǎng)問(wèn)沖突和存儲(chǔ)訪(fǎng)問(wèn)功耗。因此,本發(fā)明能夠兼容多線(xiàn)程的數(shù)據(jù)讀寫(xiě),并降低數(shù)據(jù)讀寫(xiě)延時(shí)和存儲(chǔ)訪(fǎng)問(wèn)功耗。
1.一種兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述數(shù)據(jù)狀態(tài)包括:無(wú)效、數(shù)據(jù)計(jì)算中、有效且一致和有效不一致;其中,所述無(wú)效用于表征地址位中的線(xiàn)程沒(méi)有有效數(shù)據(jù);所述數(shù)據(jù)計(jì)算中用于表征地址位中的線(xiàn)程未來(lái)要寫(xiě)入的數(shù)據(jù)正在計(jì)算流水線(xiàn)中;所述有效且一致用于表征地址位中線(xiàn)程的數(shù)據(jù)與所述存儲(chǔ)模塊中的對(duì)應(yīng)數(shù)據(jù)一致;所述有效不一致用于表征地址位中線(xiàn)程的數(shù)據(jù)與所述存儲(chǔ)模塊中的任一數(shù)據(jù)均不一致。
3.根據(jù)權(quán)利要求2所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述緩存控制模塊具體用于:
4.根據(jù)權(quán)利要求3所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,最優(yōu)的所述候選地址位為數(shù)據(jù)存儲(chǔ)年齡最大的所述候選地址位或已經(jīng)被讀取數(shù)據(jù)的所述候選地址位。
5.根據(jù)權(quán)利要求2所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述緩存補(bǔ)全邏輯模塊具體用于:
6.根據(jù)權(quán)利要求2所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述緩存控制模塊具體用于:
7.根據(jù)權(quán)利要求6所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述待寫(xiě)回的地址位為數(shù)據(jù)存儲(chǔ)年齡最大的地址位或已經(jīng)被讀取數(shù)據(jù)的地址位。
8.根據(jù)權(quán)利要求2所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,還包括:前傳邏輯模塊;所述前傳邏輯模塊具體用于:
9.根據(jù)權(quán)利要求2所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述緩存控制模塊具體用于:
10.根據(jù)權(quán)利要求2所述的兼容多線(xiàn)程場(chǎng)景的低延遲存儲(chǔ)器,其特征在于,所述存儲(chǔ)模塊還用于: