本技術(shù)涉及內(nèi)存,特別涉及一種內(nèi)存系統(tǒng)。
背景技術(shù):
1、近內(nèi)存計(jì)算(near?memory?processing,nmp)技術(shù)是近年來興起的一項(xiàng)技術(shù)。近內(nèi)存計(jì)算技術(shù)通過在內(nèi)存中集成近內(nèi)存計(jì)算單元(near?memory?processing?processingelement,nmp?pe),能夠直接在內(nèi)存中對(duì)從內(nèi)存中獲取的數(shù)據(jù)執(zhí)行計(jì)算操作,而不需要將數(shù)據(jù)從內(nèi)存中讀取到中央處理器(central?processing?unit,cpu)中進(jìn)行處理,極大地降低了數(shù)據(jù)在cpu和內(nèi)存之間的傳輸開銷。
2、內(nèi)存具有n級(jí)內(nèi)存集合。目前,通常為每個(gè)最高一級(jí)的內(nèi)存集合配置近內(nèi)存計(jì)算單元,該內(nèi)存集合的近內(nèi)存計(jì)算單元負(fù)責(zé)該內(nèi)存集合及其包括的所有內(nèi)存集合中存儲(chǔ)的數(shù)據(jù)的計(jì)算。多個(gè)最高一級(jí)的內(nèi)存集合配置近內(nèi)存計(jì)算單元能夠并行執(zhí)行計(jì)算操作。
3、但是,由于內(nèi)存中最高一級(jí)的內(nèi)存集合的數(shù)量有限,這種配置近內(nèi)存計(jì)算單元的方式對(duì)內(nèi)存的計(jì)算性能的提升十分有限。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種內(nèi)存系統(tǒng)。本技術(shù)有助于進(jìn)一步提升內(nèi)存的計(jì)算性能。本技術(shù)提供的技術(shù)方案如下:
2、第一方面,本技術(shù)提供了一種內(nèi)存系統(tǒng)。內(nèi)存系統(tǒng)包括:內(nèi)存控制器和內(nèi)存;內(nèi)存控制器用于對(duì)內(nèi)存進(jìn)行管理;內(nèi)存具有n級(jí)內(nèi)存集合,每個(gè)內(nèi)存集合包括多個(gè)內(nèi)存塊,n級(jí)內(nèi)存集合中的第i+1級(jí)內(nèi)存集合包括多個(gè)第i級(jí)內(nèi)存集合,在n級(jí)內(nèi)存集合中,每個(gè)第n級(jí)內(nèi)存集合配置有計(jì)算單元,第一至n-1級(jí)內(nèi)存集合中的部分級(jí)或全部級(jí)中的部分內(nèi)存集合配置有計(jì)算單元,計(jì)算單元用于基于內(nèi)存集合中存儲(chǔ)的數(shù)據(jù)執(zhí)行計(jì)算操作,n和i為正整數(shù)。
3、這樣一來,在該內(nèi)存系統(tǒng)中,不僅每個(gè)第n級(jí)內(nèi)存集合配置有計(jì)算單元,第一至n-1級(jí)內(nèi)存集合中的部分級(jí)或全部級(jí)中的部分內(nèi)存集合也配置有所述計(jì)算單元,增加了在內(nèi)存中配置的計(jì)算單元的總數(shù),有助于進(jìn)一步提升內(nèi)存的計(jì)算性能。
4、其中,部分第一級(jí)內(nèi)存集合配置有計(jì)算單元。多個(gè)內(nèi)存子集的并行性能夠保障為該多個(gè)內(nèi)存子集配置的計(jì)算單元的計(jì)算并行性。但是,考慮到計(jì)算所需的數(shù)據(jù)的特性,如不同數(shù)據(jù)的訪問頻率不同,若為所有第一級(jí)內(nèi)存集合均配置計(jì)算單元,會(huì)出現(xiàn)負(fù)載均衡不均和計(jì)算資源利用率低的問題,且會(huì)帶來較大的芯片面積和功耗開銷,因此,通過為部分第一級(jí)內(nèi)存集合配置計(jì)算單元,能夠兼顧計(jì)算的并行性、計(jì)算的負(fù)載均衡、計(jì)算資源利用率、芯片面積和功耗開銷。
5、在一種實(shí)現(xiàn)方式中,在第二至n-1級(jí)內(nèi)存集合中,配置有計(jì)算單元的任一級(jí)內(nèi)存集合包括的至少部分內(nèi)存集合未配置有計(jì)算單元。這樣一來,可以利用第二級(jí)內(nèi)存集合配置的計(jì)算單元,處理其包括的未配置有計(jì)算單元的第一級(jí)內(nèi)存集合中存儲(chǔ)的數(shù)據(jù)的計(jì)算操作,而配置有計(jì)算單元的第一級(jí)內(nèi)存集合存儲(chǔ)的數(shù)據(jù)的計(jì)算操作由該第一級(jí)內(nèi)存集合的計(jì)算單元執(zhí)行,從而保證內(nèi)存集合中存儲(chǔ)的數(shù)據(jù)的計(jì)算操作均能夠利用內(nèi)存配置的計(jì)算單元執(zhí)行,且能夠避免出現(xiàn)由于為每個(gè)內(nèi)存集合配置計(jì)算單元導(dǎo)致的芯片面積和功耗開銷大的問題。
6、在本技術(shù)的內(nèi)存系統(tǒng)中,內(nèi)存控制器具體用于向計(jì)算單元提供計(jì)算指令;計(jì)算單元具體用于基于計(jì)算指令,從計(jì)算單元所屬的內(nèi)存集合中獲取計(jì)算所需的數(shù)據(jù),基于數(shù)據(jù)執(zhí)行計(jì)算。
7、在一種實(shí)現(xiàn)方式中,配置有計(jì)算單元的第i級(jí)內(nèi)存集合中存儲(chǔ)的數(shù)據(jù)對(duì)計(jì)算并行度的要求,高于未配置有計(jì)算單元的第i級(jí)內(nèi)存集合中存儲(chǔ)的數(shù)據(jù)對(duì)計(jì)算并行度的要求,計(jì)算并行度基于以下一種或多種得到:數(shù)據(jù)的訪問頻率、數(shù)據(jù)所屬數(shù)據(jù)集合的大小、計(jì)算單元每個(gè)計(jì)算批次處理的額定數(shù)據(jù)量、n級(jí)內(nèi)存集合的額定容量和額定帶寬。
8、可選地,第i+1級(jí)內(nèi)存集合的計(jì)算單元具體用于:在計(jì)算指令指示的計(jì)算任務(wù)不屬于第i+1級(jí)內(nèi)存集合的計(jì)算單元時(shí),向第i+1級(jí)內(nèi)存集合包括的第i級(jí)內(nèi)存集合的計(jì)算單元提供計(jì)算指令;在計(jì)算指令指示的計(jì)算任務(wù)屬于第i+1級(jí)內(nèi)存集合的計(jì)算單元時(shí),執(zhí)行計(jì)算指令指示的計(jì)算任務(wù)。
9、需要說明的是,在一些計(jì)算邏輯中,在計(jì)算指令指示的計(jì)算任務(wù)不屬于第i+1級(jí)內(nèi)存集合的計(jì)算單元時(shí),第i+1級(jí)內(nèi)存集合的計(jì)算單元具體還用于:在計(jì)算指令指示的計(jì)算任務(wù)不屬于第i+1級(jí)內(nèi)存集合的計(jì)算單元時(shí),接收第i+1級(jí)內(nèi)存集合包括的第i級(jí)內(nèi)存集合的計(jì)算單元提供計(jì)算結(jié)果,對(duì)計(jì)算結(jié)果進(jìn)行處理并輸出處理后的計(jì)算結(jié)果。
10、由于第n級(jí)內(nèi)存集合為內(nèi)存中最高級(jí)別的內(nèi)存集合,內(nèi)存同一時(shí)刻的輸出有限,因此當(dāng)內(nèi)存具有多個(gè)第n級(jí)內(nèi)存集合時(shí),內(nèi)存還包括:輸出處理單元,用于對(duì)多個(gè)第n級(jí)內(nèi)存集合的計(jì)算單元的計(jì)算結(jié)果進(jìn)行處理,并輸出處理后的計(jì)算結(jié)果。
11、此時(shí),內(nèi)存控制器具體用于向輸出處理單元發(fā)送計(jì)算指令;輸出處理單元具體用于向用于處理計(jì)算指令的計(jì)算單元所屬的第n級(jí)內(nèi)存集合發(fā)送計(jì)算指令。
12、在一種實(shí)現(xiàn)方式中,內(nèi)存集合包括多個(gè)內(nèi)存子集、多個(gè)局部緩沖區(qū)、多個(gè)控制子單元和一個(gè)全局緩沖區(qū),多個(gè)內(nèi)存子集與多個(gè)局部緩沖區(qū)對(duì)應(yīng),多個(gè)內(nèi)存子集與多個(gè)控制子單元對(duì)應(yīng),內(nèi)存子集包括陣列排布的多個(gè)內(nèi)存塊。任一內(nèi)存子集對(duì)應(yīng)的控制子單元用于基于計(jì)算所需數(shù)據(jù)的地址,在任一內(nèi)存子集包括的多個(gè)第一內(nèi)存單位中選擇目標(biāo)第一內(nèi)存單位,確定目標(biāo)第一內(nèi)存單位對(duì)全局緩沖區(qū)的使用權(quán)限,并在目標(biāo)第一內(nèi)存單位包括的多個(gè)第二內(nèi)存單位中選擇目標(biāo)第二內(nèi)存單位,第一內(nèi)存單位和第二內(nèi)存單位中一個(gè)為行,另一個(gè)為列。任一內(nèi)存子集對(duì)應(yīng)的局部緩沖區(qū)用于緩存目標(biāo)第一內(nèi)存單位中內(nèi)存塊存儲(chǔ)的數(shù)據(jù)。全局緩沖區(qū)用于緩存具有全局緩沖區(qū)的使用權(quán)限的目標(biāo)第二內(nèi)存單位中內(nèi)存塊存儲(chǔ)的目標(biāo)數(shù)據(jù)。計(jì)算單元包括計(jì)算子單元,計(jì)算子單元用于目標(biāo)數(shù)據(jù),基于目標(biāo)數(shù)據(jù)執(zhí)行計(jì)算操作。
13、其中,內(nèi)存集合中多個(gè)控制子單元在確定目標(biāo)第一內(nèi)存單位對(duì)全局緩沖區(qū)的使用權(quán)限時(shí),該多個(gè)控制子單元需要保證同一時(shí)刻有一個(gè)目標(biāo)第一內(nèi)存單位對(duì)全局緩沖區(qū)具有使用權(quán)限,以避免出現(xiàn)數(shù)據(jù)傳輸沖突,保證全局緩沖區(qū)中存儲(chǔ)的數(shù)據(jù)的正確傳輸。
14、本技術(shù)提供的控制子單元的實(shí)現(xiàn)方式,使得內(nèi)存集合中的多個(gè)內(nèi)存子集能夠同時(shí)激活一個(gè)目標(biāo)第一內(nèi)存單位,并將選擇的目標(biāo)第一內(nèi)存單位緩存在內(nèi)存子集對(duì)應(yīng)的局部緩沖區(qū)中,在目標(biāo)第一內(nèi)存單位具有全局緩沖區(qū)的使用權(quán)限時(shí)緩存到全局緩沖區(qū),并向計(jì)算子單元提供全局緩沖區(qū)中存儲(chǔ)的目標(biāo)第二內(nèi)存單位,使得選擇的目標(biāo)第一內(nèi)存單位并不一定被傳輸給計(jì)算子單元,實(shí)現(xiàn)了數(shù)據(jù)激活和數(shù)據(jù)傳送的分離。
15、第二方面,本技術(shù)提供了一種計(jì)算設(shè)備,包括存儲(chǔ)器和處理器,存儲(chǔ)器存儲(chǔ)有程序指令,處理器運(yùn)行程序指令以執(zhí)行本技術(shù)第一方面以及其任一種可能的實(shí)現(xiàn)方式中提供的內(nèi)存系統(tǒng)。
16、第三方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)為非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括程序指令,當(dāng)程序指令在計(jì)算設(shè)備上運(yùn)行時(shí),使得計(jì)算設(shè)備執(zhí)行本技術(shù)第一方面以及其任一種可能的實(shí)現(xiàn)方式中提供的內(nèi)存系統(tǒng)。
17、第四方面,本技術(shù)提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行本技術(shù)第一方面以及其任一種可能的實(shí)現(xiàn)方式中提供的內(nèi)存系統(tǒng)。