本說明書涉及計算機應(yīng)用,具體地說,涉及計算機應(yīng)用下的內(nèi)存訪問技術(shù),更具體地說,涉及一種內(nèi)存交織方法及相關(guān)裝置。
背景技術(shù):
1、在片上系統(tǒng)中,以ddr(double?data?rate,雙倍速率)等類型的存儲器為例,對于同一塊ddr,兩個訪存操作之間需要一些時間間隔,這個時間間隔包括:cl(column?addressstrobe?latency,列地址選通脈沖時延)、trcd(row?address?strobe?to?column?addressstrobe?delay,列地址選通脈沖到行地址選通脈沖時延)和trp(precharge?time,預(yù)充電有效周期)等。為了提高ddr的訪存速度,可以使用多通道(channel)技術(shù),如果數(shù)據(jù)存儲在不同通道的內(nèi)存條上,內(nèi)存控制器就可以通過不同的通道并行地讀取這些數(shù)據(jù),如此,ddr的總帶寬=單個內(nèi)存條帶寬×通道數(shù),但由于程序的局限性,一個程序并不會把數(shù)據(jù)放到各個地方,從而落入另一個ddr里,往往程序和數(shù)據(jù)都在同一個ddr中,加上處理器的緩存(cache)本身就會把數(shù)據(jù)預(yù)先緩存出來,這個多通道技術(shù)對于訪存速度的提升并不明顯。
2、為了充分發(fā)揮多通道技術(shù)的優(yōu)勢,提高訪存速度,出現(xiàn)了內(nèi)存交織(memoryinterleaving)技術(shù),內(nèi)存交織按照不同的交織深度(行交織、塊交織和頁交織等),將連續(xù)的物理地址空間進行分割,然后交錯地分布到不同的ddr或者不同的通道上,使得在連續(xù)的內(nèi)存訪問請求中,可以并行地從不同的內(nèi)存模塊或通道對ddr進行訪問,從而充分利用多通道內(nèi)存系統(tǒng)的帶寬。
3、內(nèi)存交織的交織深度越深,帶來的帶寬提升收益越高,但同時由于需要更加復(fù)雜的處理邏輯來重新排列和解交織數(shù)據(jù),導(dǎo)致訪存請求的時延越大,因此,需要通過一些手段平衡內(nèi)存交織深度帶來的帶寬提升收益與時延,相關(guān)技術(shù)中,多通過對應(yīng)用場景進行仿真分析和理論計算分析來確定內(nèi)存交織策略,但由于仿真和理論計算與實際使用場景存在差異,導(dǎo)致通過這種方式得到的內(nèi)存交織策略不能得到預(yù)期收益,且仿真和理論計算需要投入大量的時間成本和人力成本。
技術(shù)實現(xiàn)思路
1、本說明書實施例提供了一種內(nèi)存交織方法及相關(guān)裝置,以實現(xiàn)制定符合實際應(yīng)用場景的內(nèi)存交織策略,從而改善內(nèi)存交織策略提升訪存速度的效果的目的。
2、為實現(xiàn)上述技術(shù)目的,本說明書實施例提供了如下技術(shù)方案:
3、第一方面,本說明書的一個實施方式提供一種內(nèi)存交織方法,應(yīng)用于片上系統(tǒng)的處理器核,所述片上系統(tǒng)還包括:總線監(jiān)聽模塊、第一存儲模塊和片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊、所述第一存儲模塊和所述處理器核接入所述片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊用于從所述片上網(wǎng)絡(luò)中獲取目標數(shù)據(jù),所述目標數(shù)據(jù)包括針對所述第一存儲模塊的目標地址的訪問數(shù)據(jù);所述內(nèi)存交織方法包括:
4、響應(yīng)于所述總線監(jiān)聽模塊返回所述目標數(shù)據(jù),基于所述目標數(shù)據(jù)確定針對所述目標地址的目標內(nèi)存交織信息,所述目標內(nèi)存交織信息用于設(shè)置針對所述目標地址的內(nèi)存交織策略,所述內(nèi)存交織策略包括內(nèi)存交織深度。
5、第二方面,本說明書的一個實施方式提供一種內(nèi)存交織方法,應(yīng)用于片上系統(tǒng)的總線監(jiān)聽模塊,所述片上系統(tǒng)還包括:處理器核、第一存儲模塊和片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊、所述第一存儲模塊和所述處理器核接入所述片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊用于從所述片上網(wǎng)絡(luò)中獲取目標數(shù)據(jù),所述目標數(shù)據(jù)包括針對所述第一存儲模塊的目標地址的訪問數(shù)據(jù);所述內(nèi)存交織方法包括:
6、獲取所述目標數(shù)據(jù),并向所述處理器核返回所述目標數(shù)據(jù),所述目標數(shù)據(jù)用于指示所述處理器核響應(yīng)于所述總線監(jiān)聽模塊返回所述目標數(shù)據(jù),基于所述目標數(shù)據(jù)確定針對所述目標地址的目標內(nèi)存交織信息,所述目標內(nèi)存交織信息用于設(shè)置針對所述目標地址的內(nèi)存交織策略,所述內(nèi)存交織策略包括內(nèi)存交織深度。
7、第三方面,本說明書實施方式還提供了一種片上系統(tǒng),包括:處理器核、總線監(jiān)聽模塊、第一存儲模塊和片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊、所述第一存儲模塊和所述處理器核接入所述片上網(wǎng)絡(luò);其中,
8、所述總線監(jiān)聽模塊,用于從所述片上網(wǎng)絡(luò)中獲取目標數(shù)據(jù),所述目標數(shù)據(jù)包括針對所述第一存儲模塊的目標地址的訪問數(shù)據(jù);
9、所述處理器核,用于響應(yīng)于所述總線監(jiān)聽模塊返回所述目標數(shù)據(jù),基于所述目標數(shù)據(jù)確定針對所述目標地址的目標內(nèi)存交織信息,所述目標內(nèi)存交織信息用于設(shè)置針對所述目標地址的內(nèi)存交織策略,所述內(nèi)存交織策略包括內(nèi)存交織深度。
10、第四方面,本說明書的一個實施方式還提供了一種計算設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上所述的內(nèi)存交織方法。
11、第五方面,本說明書的一個實施方式還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的內(nèi)存交織方法。
12、第六方面,本說明書實施例提供了一種計算機程序產(chǎn)品或計算機程序,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序存儲在計算機可讀存儲介質(zhì)中;所述計算機設(shè)備的處理器從所述計算機可讀存儲介質(zhì)讀取所述計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述的內(nèi)存交織方法的步驟。
13、從上述技術(shù)方案可以看出,本說明書實施例提供的內(nèi)存交織方法基于包括處理器核、總線監(jiān)聽模塊、第一存儲模塊和片上網(wǎng)絡(luò)的片上系統(tǒng)實現(xiàn),其中,總線監(jiān)聽模塊接入片上網(wǎng)絡(luò),用于通過片上網(wǎng)絡(luò)中獲取目標數(shù)據(jù);在所述內(nèi)存交織方法實施時,處理器核可以接收總線監(jiān)聽模塊返回的包括針對第一存儲模塊的目標地址的訪問數(shù)據(jù)的目標數(shù)據(jù),并基于目標數(shù)據(jù)確定針對目標地址的目標內(nèi)存交織信息,該目標內(nèi)存交織信息用于設(shè)置針對所述目標地址的內(nèi)存交織策略,所述內(nèi)存交織策略包括內(nèi)存交織深度。如此,在整個內(nèi)存交織方法中,通過總線監(jiān)聽模塊監(jiān)聽實際使用場景下的訪問數(shù)據(jù)得到目標數(shù)據(jù),并基于該目標數(shù)據(jù)得到目標內(nèi)存交織信息,使得該目標內(nèi)存交織信息中的內(nèi)存交織策略更加貼近實際使用場景下的內(nèi)存交織需求,有利于改善內(nèi)存交織策略對于訪存速率的提升效果,并且整個內(nèi)存交織方法無需人為仿真和理論計算得到訪存策略,有利于降低整個方法所需付出的人力成本和時間成本,降低整個方法的整體成本。
1.一種內(nèi)存交織方法,其特征在于,應(yīng)用于片上系統(tǒng)的處理器核,所述片上系統(tǒng)還包括:總線監(jiān)聽模塊、第一存儲模塊和片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊、所述第一存儲模塊和所述處理器核接入所述片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊用于從所述片上網(wǎng)絡(luò)中獲取目標數(shù)據(jù),所述目標數(shù)據(jù)包括針對所述第一存儲模塊的目標地址的訪問數(shù)據(jù);所述內(nèi)存交織方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述響應(yīng)于所述總線監(jiān)聽模塊返回所述目標數(shù)據(jù)之前,還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述目標數(shù)據(jù)包括在監(jiān)聽時間內(nèi),針對所述目標地址的訪問次數(shù);
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一存儲模塊包括多個目標地址,至少兩個所述目標地址對應(yīng)不同的使用場景;對應(yīng)不同使用場景的所述目標地址對應(yīng)的帶寬閾值不同;
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述響應(yīng)于所述總線監(jiān)聽模塊返回所述目標數(shù)據(jù)之前,還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述目標數(shù)據(jù)還包括:目標時長,所述目標時長用于表征所述總線監(jiān)聽模塊監(jiān)聽所述第一存儲模塊執(zhí)行目標任務(wù)的時長;
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述目標時長由所述總線監(jiān)聽模塊在所述目標地址的帶寬利用率低于帶寬閾值時計時,在所述目標地址的帶寬利用率高于所述帶寬閾值時結(jié)束計時。
8.一種內(nèi)存交織方法,其特征在于,應(yīng)用于片上系統(tǒng)的總線監(jiān)聽模塊,所述片上系統(tǒng)還包括:處理器核、第一存儲模塊和片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊、所述第一存儲模塊和所述處理器核接入所述片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊用于從所述片上網(wǎng)絡(luò)中獲取目標數(shù)據(jù),所述目標數(shù)據(jù)包括針對所述第一存儲模塊的目標地址的訪問數(shù)據(jù);所述內(nèi)存交織方法包括:
9.根據(jù)權(quán)利要8所述的方法,其特征在于,所述獲取所述目標數(shù)據(jù)包括:
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在所述目標事件為檢測到所述第一存儲模塊的帶寬利用率小于帶寬閾值時,所述針對所述第一存儲模塊的目標地址進行監(jiān)聽,以獲得所述目標數(shù)據(jù)包括:
11.一種片上系統(tǒng),其特征在于,包括:處理器核、總線監(jiān)聽模塊、第一存儲模塊和片上網(wǎng)絡(luò),所述總線監(jiān)聽模塊、所述第一存儲模塊和所述處理器核接入所述片上網(wǎng)絡(luò);其中,
12.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1~9任一項所述的內(nèi)存交織方法。