專利名稱:采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器設(shè)計領(lǐng)域,特別是涉及采用可配置的片上存儲裝置實現(xiàn)訪存操 作的系統(tǒng)及方法。
背景技術(shù):
制造工藝的進(jìn)步、應(yīng)用軟件的驅(qū)動以及單核處理器的功耗、散熱問題,都促使了 多核處理器的出現(xiàn),然而,它并沒有解決影響傳統(tǒng)處理器性能的關(guān)鍵問題之一——存儲墻 (Memory Wall)問題。即,處理器的速度每年增長60%,而存儲器存取延遲每年僅改善7%, 導(dǎo)致處理器的計算速度和存儲器的訪問速度差距越來越大。因此,一種更加有效的存儲結(jié) 構(gòu)組織,對于處理器的設(shè)計至關(guān)重要。Cache結(jié)構(gòu)的引入正是為了緩解訪存的壓力,包括多核結(jié)構(gòu)中的私有Cache和共 享Cache。如SUN SPARC T1/T2處理器采用的私有一級Cache和共享二級Cache ;而為了更好 的利用程序訪存的局部性,減少片外訪存,也可以設(shè)置程序員可控的片上存儲(Scratchpad Memory,SPM),如IBM Cell處理器中的SPE Local Stores。但是,單一采用Cache的方式, 雖然可以緩存內(nèi)存中的所有內(nèi)容,卻不可避免會發(fā)生替換,依然帶來了片外訪存的延遲。而 只有程序員可控的片上存儲,無法將更多的內(nèi)容映射到片上,更多的時候還是需要片外訪 存。所以,如果一個存儲裝置對于Cache和SPM的優(yōu)點兼而有之,就是一種比較好的實 現(xiàn)方式。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)及 方法,其能夠更好的發(fā)揮片上存儲的功能,減少片外訪存,降低小核計算部件等待數(shù)據(jù)的時 間,進(jìn)而更好的體現(xiàn)出多核處理器計算能力強(qiáng)的優(yōu)勢,提高程序運行的性能。為實現(xiàn)本發(fā)明的目的而提供的一種可配置的片上存儲裝置,其特征在于,所述片 上存儲能夠根據(jù)應(yīng)用程序的計算特點作為Cache或者SPM使用,所述片上存儲,包括配置模塊,用于根據(jù)不同應(yīng)用程序的計算特點和對SPM或Cache的空間大小的要 求,多模式地配置所述片上存儲。所述配置模塊,包括配置判斷模塊,用于根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲裝置進(jìn) 行配置,若是,則觸發(fā)模式判斷模塊;否則,不對所述片上存儲裝置進(jìn)行配置,而將其作為 Cache使用;模式判斷模塊,用于判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則觸 發(fā)細(xì)粒度配置模塊;否則,觸發(fā)粗粒度配置模塊;粗粒度配置模塊,用于以路為單位對所述片上存儲進(jìn)行配置,每一路對應(yīng)一位標(biāo) 志位,標(biāo)志位為1表示是SPM,標(biāo)志位為0表示是Cache ;
細(xì)粒度配置模塊,用于以緩沖行為單位對所述片上存儲進(jìn)行配置。所述粗粒度配置模塊,將一片4路組相聯(lián)的SRAM中1路,2路或3路配置成SPM使 用,并至少要留一路作為Cache使用。所述粗粒度配置模塊,將MIPS指令集體系結(jié)構(gòu)中保留的21號CPO寄存器作為配 置寄存器,低四位代表標(biāo)志位。所述細(xì)粒度配置模塊,是將一片4路組相聯(lián)的SRAM,每路設(shè)置一個標(biāo)志寄存器,用 低七位來代表本路有多少緩沖行為單位被配置成SPM,同時,也遵循配置空間連續(xù)、從第0 路開始配置的原則。為實現(xiàn)本發(fā)明的目的還提供一種可配置的片上存儲裝置的配置方法,所述配置方 法,包括下列步驟步驟010.根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲進(jìn)行配置,若是, 則執(zhí)行步驟020 ;否則,不對所述片上存儲進(jìn)行配置,而將其作為Cache使用;步驟020.判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則執(zhí)行步驟 030 ;否則,執(zhí)行步驟340 ;步驟030.細(xì)粒度配置以緩沖行為單位對所述片上存儲進(jìn)行配置;步驟040.粗粒度配置以路為單位對所述片上存儲進(jìn)行配置,每一路對應(yīng)一位標(biāo) 志位,標(biāo)志位為1表示是SPM,標(biāo)志位為0表示是Cache。 所述步驟040中,將一片4路組相聯(lián)的SRAM中1路,2路或3路配置成SPM使用, 并至少要留一路作為Cache使用。所述步驟040中,將MIPS指令集體系結(jié)構(gòu)中保留的21號CPO寄存器作為配置寄 存器,低四位代表標(biāo)志位。所述步驟030中,將一片4路組相聯(lián)的SRAM,每路設(shè)置一個標(biāo)志寄存器,用低七位 來代表本路有多少緩沖行為單位被配置成SPM,同時,也遵循配置空間連續(xù)、從第0路開始 配置的原則。所述標(biāo)志位默認(rèn)狀態(tài)下為0000,需要進(jìn)行配置的時候,使用專門寫CPO寄存器的 MTCO指令,將標(biāo)志位置成0001,0011,0111 ;當(dāng)作為SPM使用完后,還需要將標(biāo)志寄存器清 零,再次執(zhí)行MTCO指令,寫入的數(shù)據(jù)為0。為實現(xiàn)本發(fā)明的目的還提供一種采用所述的可配置的片上存儲裝置實現(xiàn)訪存操 作的系統(tǒng),所述系統(tǒng),包括訪存地址生成模塊,接收一個訪存操作,生成相應(yīng)的訪存地址,并判斷地址所屬的 空間,以區(qū)分是本地訪問,還是遠(yuǎn)程訪問,并將所述訪存操作發(fā)送到訪存隊列模塊;訪存隊列模塊,接收所述訪存操作并送入訪存操作隊列,根據(jù)該操作是本地訪問 還是遠(yuǎn)程訪問,將其按序發(fā)出,如果是本地訪問,則發(fā)送到所述片上存儲;如果是遠(yuǎn)程訪問, 則發(fā)送給接口模塊;所述片上存儲,是根據(jù)應(yīng)用程序本身的特點和計算需求進(jìn)行配置,作為Cache或 者SPM使用;選擇模塊,用于將從所述片上存儲中讀出的數(shù)據(jù)進(jìn)行比對、選擇。接口模塊,作為每個處理器核的對外接口,收發(fā)消息,并負(fù)責(zé)對SPM的遠(yuǎn)程讀寫操作。
為實現(xiàn)本發(fā)明的目的還提供一種采用所述可配置的片上存儲裝置實現(xiàn)訪存操作 的方法,所述方法,包括下列步驟步驟100.接收一個訪存操作,生成相應(yīng)的訪存地址,并判斷地址所屬的空間,以 區(qū)分是本地訪問,還是遠(yuǎn)程訪問;步驟200.接收所述訪存操作并送入訪存操作隊列,判斷該操作是本地訪問還是 遠(yuǎn)程訪問,如果是本地訪問,則執(zhí)行步驟300 ;如果是遠(yuǎn)程訪問,則執(zhí)行步驟500 ;步驟300.判斷當(dāng)前片上存儲SRAM是否作為Cache使用,若是,則執(zhí)行步驟400 ; 否則,作為SPM使用,則直接選擇正確的數(shù)據(jù)寫回;步驟400.判斷將從片上存儲SRAM中讀出的數(shù)據(jù)進(jìn)行比對,然后選擇正確的數(shù)據(jù) 寫回;步驟500.封裝要發(fā)出的消息發(fā)送給遠(yuǎn)程處理器核,實現(xiàn)對SPM的遠(yuǎn)程讀寫操作。本發(fā)明的有益效果是解決多核訪存的效率問題,更好的發(fā)揮片上存儲的功能,減 少片外訪存,降低小核計算部件等待數(shù)據(jù)的時間,進(jìn)而更好的體現(xiàn)出多核處理器計算能力 強(qiáng)的優(yōu)勢,提高程序運行的性能。
圖1是本發(fā)明的可配置的片上存儲裝置的結(jié)構(gòu)示意圖;圖2是本發(fā)明的可配置的片上存儲裝置的配置方法的步驟流程圖;圖3是本發(fā)明中對一片4路(way)組相聯(lián)的片上存儲以路(way)為粒度進(jìn)行配置 的示意圖;圖4是本發(fā)明中對一片4路(way)組相聯(lián)的片上存儲以緩沖行(cacheline)為粒 度進(jìn)行配置的示意圖;圖5是本發(fā)明中采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)的結(jié)構(gòu)示意圖;圖6是本發(fā)明的采用所述可配置的片上存儲裝置實現(xiàn)訪存操作的方法的步驟流 程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明的采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)及方法進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng) 當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)及方法,針對應(yīng)用程序 的計算特點,提供了對片上存儲的多種模式的配置方法,在默認(rèn)情況下,存儲器作為Cache 使用,對程序員是透明的;如果應(yīng)用程序會產(chǎn)生大量中間計算結(jié)果,而這些結(jié)果會作為后續(xù) 計算的源數(shù)據(jù),則為了提高程序執(zhí)行的性能,可以通過配置,使其成為一塊可控的空間,顯 示存放這些中間生成的數(shù)據(jù),以能更好的發(fā)揮片上存儲的功能,減少片外訪存,降低小核計 算部件等待數(shù)據(jù)的時間,進(jìn)而更好的體現(xiàn)出多核處理器計算能力強(qiáng)的優(yōu)勢,提高程序運行 的性能。下面結(jié)合上述目標(biāo)詳細(xì)介紹本發(fā)明的可配置的片上存儲裝置,所述片上存儲既可 以作為Cache使用,此時對程序員是透明的;也可以作為SPM使用,此時對程序員是可控的。圖1是本發(fā)明的可配置的片上存儲裝置的結(jié)構(gòu)示意圖,如圖1所示,所述裝置,包括所述片上存儲裝置中包括一配置模塊31,用于根據(jù)不同應(yīng)用程序的計算特點和對 SPM或Cache的空間大小的要求,多模式地配置所述片上存儲;所述配置模塊31,包括配置判斷模塊311,用于根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲進(jìn) 行配置,若是,則觸發(fā)模式判斷模塊312 ;否則,不對所述片上存儲進(jìn)行配置,而將其作為 Cache使用;模式判斷模塊312,用于判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則 觸發(fā)細(xì)粒度配置模塊314 ;否則,觸發(fā)粗粒度配置模塊313 ;粗粒度配置模塊313,用于以路(way)為單位進(jìn)行配置,對于一片4路組相聯(lián)的 SRAM,可以將1路,2路或3路配置成SPM使用,但不能將4路完全配置,因為至少要留一路 作為Cache使用。在這種配置方式中,每一路對應(yīng)一位標(biāo)志位,標(biāo)志位為1表示是SPM,標(biāo)志 位為0表示是Cache,將MIPS指令集體系結(jié)構(gòu)中保留的21號CPO寄存器作為配置寄存器, 低四位代表標(biāo)志位;細(xì)粒度配置模塊314,用于以緩沖行(cacheline)為單位進(jìn)行配置,對于一片4路 (way)組相聯(lián)的SRAM,一路的大小為128x32x8bits,為每路設(shè)置一個標(biāo)志寄存器,用低七位 來代表本路有多少緩沖行(cacheline)被配置成SPM。同時,也遵循配置空間連續(xù)、從第0 路開始配置的原則。因為第3路要保留作為Cache使用,所以,這種情況下,最大可用的SPM 空間仍然為前三路。相應(yīng)于本發(fā)明的可配置的片上存儲裝置,還提供可配置的片上存儲裝置的配置方 法,所述配置方法,是根據(jù)不同應(yīng)用程序的不同計算特點,提供了對片上存儲的多種模式的 配置方法,在默認(rèn)情況下,存儲器作為Cache使用,對程序員是透明的;如果應(yīng)用程序會產(chǎn) 生大量中間計算結(jié)果,而這些結(jié)果會作為后續(xù)計算的源數(shù)據(jù),則為了提高程序執(zhí)行的性能, 可以通過配置,使其成為一塊可控的空間,顯示存放這些中間生成的數(shù)據(jù),以能更好的發(fā)揮 片上存儲的功能,減少片外訪存,降低小核計算部件等待數(shù)據(jù)的時間,進(jìn)而更好的體現(xiàn)出多 核處理器計算能力強(qiáng)的特點,提高程序運行的性能。因為每路Cache大小為4KB,如果按照路來配置的話,只能得到4K,8K或12K的SPM 空間。而按緩沖行(cacheline)來配置的話,則可以得到從0K-12K任意大小的SPM空間。 所以,當(dāng)對SPM或Cache的空間大小的需求比較隨意的情況下,可以采用粗粒度配置;當(dāng)根 據(jù)數(shù)據(jù)量的需求,需要對SPM或Cache的空間作更為細(xì)致的劃分時,則采用細(xì)粒度配置。舉 例來說,我們的SRAM的大小為16Kbytes,4路(way)組相聯(lián),每路4Kbytes。通過粗粒度配 置,我們只能得到4K,8K,或12K的SPM存儲空間。根據(jù)計算需求,如果數(shù)據(jù)存儲需要6K,9K, IlK等大小空間時,雖然我們可以近似后用粗粒度的配置方法,但為了充分利用片上存儲資 源,這時建議程序員通過細(xì)粒度配置。比如矩陣乘運算,根據(jù)計算數(shù)據(jù)量的大小,可以選擇 不同的配置模式。圖2是本發(fā)明的可配置的片上存儲裝置的配置方法的步驟流程圖,圖3是本發(fā)明 中對一片4路(way)組相聯(lián)的片上存儲以路(way)為粒度進(jìn)行配置的示意圖,(其中,陰影 部分表示SPM存儲空間,空白部分表示Cache存儲空間)圖4是本發(fā)明中對一片4路(way) 組相聯(lián)的片上存儲以緩沖行(cacheline)為粒度進(jìn)行配置的示意圖(其中,陰影部分表示SPM存儲空間,空白部分表示Cache存儲空間),如圖2、圖3和圖4所示,根據(jù)不同應(yīng)用程序 的計算特點和對SPM或Cache的空間大小的要求,多模式地配置所述片上存儲,所述配置方 法,包括下列步驟步驟010.根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲進(jìn)行配置,若是, 則執(zhí)行步驟020 ;否則,不對所述片上存儲進(jìn)行配置,而將其作為Cache使用;根據(jù)應(yīng)用程序的計算需求判斷是否對片上SRAM進(jìn)行配置,配置成程序員可控的 SPM存儲空間。SPM空間除了程序員可見外,不同的核之間也可以互相訪問,這樣,當(dāng)有數(shù)據(jù) 交換的時候,一個核直接去另一個核的SPM空間讀取,從而避免了片外訪存,降低了訪存延 遲,提高了效率。正因為有這樣的好處,建議程序員,當(dāng)應(yīng)用程序不同的線程產(chǎn)生中間數(shù)據(jù), 并需要交換的時候,就可以把片上存儲配置成SPM使用。比如LU分解,每個線程算完一部 分?jǐn)?shù)據(jù)后,將跟其它線程交換數(shù)據(jù),這時,為了提交效率,就可以采用SPM存儲中間結(jié)果。步驟020.判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則執(zhí)行步驟 030 ;否則,執(zhí)行步驟340 ;步驟030.細(xì)粒度配置以緩沖行(cacheline)為單位進(jìn)行配置,對于一片4路 (way)組相聯(lián)的SRAM,一路的大小為128x32x8bits,為每路設(shè)置一個標(biāo)志寄存器,用低七位 來代表本路有多少緩沖行(cacheline)被配置成SPM。同時,也遵循配置空間連續(xù)、從第0 路開始配置的原則。因為第3路要保留作為Cache使用,所以,這種情況下,最大可用的SPM 空間仍然為前三路。步驟040.粗粒度配置以路(way)為單位進(jìn)行配置,對于一片4路組相聯(lián)的SRAM, 可以將1路,2路或3路配置成SPM使用,但不能將4路完全配置,因為至少要留一路作為 Cache使用。在這種配置方式中,每一路對應(yīng)一位標(biāo)志位,標(biāo)志位為1表示是SPM,標(biāo)志位為 0表示是Cache,將MIPS指令集體系結(jié)構(gòu)中保留的21號CPO寄存器作為配置寄存器,低四 位代表標(biāo)志位。默認(rèn)情況下,標(biāo)志位為0000,需要進(jìn)行配置的時候,使用專門寫CPO寄存器的MTCO 指令,可以將標(biāo)志位置成0001,0011,0111。當(dāng)作為SPM使用完后,還需要將標(biāo)志寄存器清 零,再次執(zhí)行MTCO指令,寫入的數(shù)據(jù)為0即可。SPM存儲空間主要是用來存放程序運行的中間結(jié)果,用以共享、交換數(shù)據(jù)等,可以 減少片外訪存。如果應(yīng)用程序在執(zhí)行過程中只對數(shù)據(jù)作一次計算,則可以一開始就把數(shù)據(jù) 讀入SPM存儲中,然后直接進(jìn)行計算,這種情況適用于靜態(tài)配置;如果應(yīng)用程序在執(zhí)行過程 中,會對數(shù)據(jù)進(jìn)行多次計算,且計算中會產(chǎn)生中間結(jié)果,中間結(jié)果需要先匯總,再計算的,則 建議在程序的執(zhí)行過程中根據(jù)計算過程進(jìn)行動態(tài)配置。靜態(tài)配置程序運行前進(jìn)行配置。這種配置方法適用于在整個過程中,SPM都要被 用到的情況。動態(tài)配置程序運行過程中進(jìn)行配置。這種配置,在配置前要先寫回Cache的內(nèi) 容。即,一開始,片上存儲是作為Cache使用的,運行到某個時刻,程序需要讀寫SPM空間, 此時,先執(zhí)行刷Cache操作,將Cache中dirty的數(shù)據(jù)寫回到共享Cache,然后寫配置寄存器 進(jìn)行配置。相應(yīng)于本發(fā)明的可配置的片上存儲裝置,還提供采用所述可配置的片上存儲裝置 實現(xiàn)訪存操作的系統(tǒng),圖5是本發(fā)明中采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)的結(jié)構(gòu)示意圖,本發(fā)明的后續(xù)說明均基于圖5給出的系統(tǒng)基本結(jié)構(gòu)。對圖5中各部分簡要描述如下訪存地址生成模塊(Memaddr)I,接收一個訪存操作,生成相應(yīng)的訪存地址,并判斷 地址所屬的空間,以區(qū)分是本地訪問,還是遠(yuǎn)程訪問,并將所述訪存操作發(fā)送到訪存隊列模 塊2;訪存隊列模塊(LSQ) 2,接收所述訪存操作并送入訪存操作隊列,根據(jù)該操作是本 地訪問還是遠(yuǎn)程訪問,將其按序發(fā)出。如果是本地訪問,則發(fā)送到片上存儲SRAM(Cache/SPM)3 ;如果是遠(yuǎn)程訪問,則發(fā) 送給接口模塊(Adapter) 5 ;片上存儲SRAM(Cache/SPM)3,既可以作為Cache使用,此時對程序員是透明的;也 可以作為SPM使用,此時對程序員是可控的。在使用前,要根據(jù)應(yīng)用程序本身的特點和計算需求采用本發(fā)明的多模式的配置方 法對其進(jìn)行配置。當(dāng)對SPM或Cache的空間大小的要求不嚴(yán)格時,往往采用粗粒度配置;當(dāng)對SPM或 Cache的空間大小的要求嚴(yán)格時,要采用細(xì)粒度配置。舉例來說,假設(shè)我們的SRAM的大小為 16Kbytes,4路組相聯(lián),每路4Kbytes。通過粗粒度配置,我們只能得到4K,8K,或12K的SPM 存儲空間。根據(jù)計算需求,如果數(shù)據(jù)存儲需要6K,9K,IlK等大小空間時,雖然我們可以近似 后用粗粒度的配置方法,但為了充分利用片上存儲資源,這時建議程序員通過細(xì)粒度配置。 比如矩陣乘運算,根據(jù)計算數(shù)據(jù)量的大小,可以選擇不同的配置模式。SPM存儲空間主要是用來存放程序運行的中間結(jié)果,用以共享、交換數(shù)據(jù)等,可以 減少片外訪存。如果應(yīng)用程序在執(zhí)行過程中只對數(shù)據(jù)作一次計算,則可以一開始就把數(shù)據(jù) 讀入SPM存儲中,然后直接進(jìn)行計算,這種情況適用于靜態(tài)配置;如果應(yīng)用程序在執(zhí)行過程 中,會對數(shù)據(jù)進(jìn)行多次計算,且計算中會產(chǎn)生中間結(jié)果,中間結(jié)果需要先匯總,再計算的,則 建議在程序的執(zhí)行過程中根據(jù)計算過程進(jìn)行動態(tài)配置。選擇模塊(Dtagcmp)4 將從片上存儲SRAM103中讀出的數(shù)據(jù)進(jìn)行比對、選擇。如果是作為Cache使用,則首先看是否命中,然后選擇正確的數(shù)據(jù)寫回。如果作為 SPM使用,則直接選擇正確的數(shù)據(jù)寫回即可,因為SPM中的數(shù)據(jù)作為系統(tǒng)中的唯一備份,如 果訪問,一定是命中的。接口模塊(Adapter) 5,作為每個處理器核的對外接口,收發(fā)消息。封裝要發(fā)出的消 息,解析收到的消息。并負(fù)責(zé)對SPM的遠(yuǎn)程讀寫操作。相應(yīng)于本發(fā)明的采用所述可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng),還提供一 種采用所述可配置的片上存儲裝置實現(xiàn)訪存操作的方法,圖6是本發(fā)明的采用所述可配置 的片上存儲裝置實現(xiàn)訪存操作的方法的步驟流程圖,如圖6所示,所述方法包括下列步驟步驟100.接收一個訪存操作,生成相應(yīng)的訪存地址,并判斷地址所屬的空間,以 區(qū)分是本地訪問,還是遠(yuǎn)程訪問;步驟200.接收所述訪存操作并送入訪存操作隊列,判斷該操作是本地訪問還是 遠(yuǎn)程訪問,如果是本地訪問,則執(zhí)行步驟300 ;如果是遠(yuǎn)程訪問,則執(zhí)行步驟500 ;步驟300.判斷當(dāng)前片上存儲SRAM是否作為Cache使用,若是,則執(zhí)行步驟400 ; 否則,作為SPM使用,則直接選擇正確的數(shù)據(jù)寫回即可。(因為SPM中的數(shù)據(jù)作為系統(tǒng)中的唯一備份,如果訪問,一定是命中的。)步驟400.判斷將從片上存儲SRAM中讀出的數(shù)據(jù)進(jìn)行比對,然后選擇正確的數(shù)據(jù) 寫回;如果是作為Cache使用,則首先看是否命中,然后選擇正確的數(shù)據(jù)寫回。步驟500.封裝要發(fā)出的消息發(fā)送給遠(yuǎn)程處理器核(也有可能是發(fā)往L2Cache或 同步管理器SyncManager的操作),實現(xiàn)對SPM的遠(yuǎn)程讀寫操作。本發(fā)明的有益效果是解決多核訪存的效率問題,更好的發(fā)揮片上存儲的功能,減 少片外訪存,降低小核計算部件等待數(shù)據(jù)的時間,進(jìn)而更好的體現(xiàn)出多核處理器計算能力 強(qiáng)的優(yōu)勢,提高程序運行的性能。通過結(jié)合附圖對本發(fā)明具體實施例的描述,本發(fā)明的其它方面及特征對本領(lǐng)域的 技術(shù)人員而言是顯而易見的。以上對本發(fā)明的具體實施例進(jìn)行了描述和說明,這些實施例應(yīng)被認(rèn)為其只是示例 性的,并不用于對本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行解釋。
權(quán)利要求
一種可配置的片上存儲裝置,其特征在于,所述片上存儲能夠根據(jù)應(yīng)用程序的計算特點作為Cache或者SPM使用,所述片上存儲,包括配置模塊,用于根據(jù)不同應(yīng)用程序的計算特點和對SPM或Cache的空間大小的要求,多模式地配置所述片上存儲。
2.根據(jù)權(quán)利要求1所述的可配置的片上存儲裝置,其特征在于,所述配置模塊,包括 配置判斷模塊,用于根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲裝置進(jìn)行配置,若是,則觸發(fā)模式判斷模塊;否則,不對所述片上存儲裝置進(jìn)行配置,而將其作為Cache 使用;模式判斷模塊,用于判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則觸發(fā)細(xì) 粒度配置模塊;否則,觸發(fā)粗粒度配置模塊;粗粒度配置模塊,用于以路為單位對所述片上存儲進(jìn)行配置,每一路對應(yīng)一位標(biāo)志位, 標(biāo)志位為1表示是SPM,標(biāo)志位為0表示是Cache ;細(xì)粒度配置模塊,用于以緩沖行為單位對所述片上存儲進(jìn)行配置。
3.根據(jù)權(quán)利要求2所述的可配置的片上存儲裝置,其特征在于,所述粗粒度配置模塊, 將一片4路組相聯(lián)的SRAM中1路,2路或3路配置成SPM使用,并至少要留一路作為Cache 使用。
4.根據(jù)權(quán)利要求2所述的可配置的片上存儲裝置,其特征在于,所述粗粒度配置模塊, 將MIPS指令集體系結(jié)構(gòu)中保留的21號CPO寄存器作為配置寄存器,低四位代表標(biāo)志位。
5.根據(jù)權(quán)利要求2所述的可配置的片上存儲裝置,其特征在于,所述細(xì)粒度配置模塊, 是將一片4路組相聯(lián)的SRAM,每路設(shè)置一個標(biāo)志寄存器,用低七位來代表本路有多少緩沖 行為單位被配置成SPM,同時,也遵循配置空間連續(xù)、從第0路開始配置的原則。
6.一種可配置的片上存儲裝置的配置方法,其特征在于,所述配置方法,包括下列步驟步驟010.根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲進(jìn)行配置,若是,則執(zhí) 行步驟020 ;否則,不對所述片上存儲進(jìn)行配置,而將其作為Cache使用;步驟020.判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則執(zhí)行步驟030 ;否 則,執(zhí)行步驟340;步驟030.細(xì)粒度配置以緩沖行為單位對所述片上存儲進(jìn)行配置; 步驟040.粗粒度配置以路為單位對所述片上存儲進(jìn)行配置,每一路對應(yīng)一位標(biāo)志 位,標(biāo)志位為1表示是SPM,標(biāo)志位為0表示是Cache。
7.根據(jù)權(quán)利要求6所述的可配置的片上存儲裝置的配置方法,其特征在于,所述步驟 040中,將一片4路組相聯(lián)的SRAM中1路,2路或3路配置成SPM使用,并至少要留一路作 為Cache使用。
8.根據(jù)權(quán)利要求6所述的可配置的可配置的片上存儲裝置的配置方法,其特征在于, 所述步驟040中,將MIPS指令集體系結(jié)構(gòu)中保留的21號CPO寄存器作為配置寄存器,低四 位代表標(biāo)志位。
9.根據(jù)權(quán)利要求6所述的可配置的可配置的片上存儲裝置的配置方法,其特征在于, 所述步驟030中,將一片4路組相聯(lián)的SRAM,每路設(shè)置一個標(biāo)志寄存器,用低七位來代表本 路有多少緩沖行為單位被配置成SPM,同時,也遵循配置空間連續(xù)、從第0路開始配置的原則。
10.根據(jù)權(quán)利要求8所述的可配置的可配置的片上存儲裝置的配置方法,其特征在于, 所述標(biāo)志位默認(rèn)狀態(tài)下為0000,需要進(jìn)行配置的時候,使用專門寫CPO寄存器的MTCO指令, 將標(biāo)志位置成0001,0011,0111 ;當(dāng)作為SPM使用完后,還需要將標(biāo)志寄存器清零,再次執(zhí)行 MTCO指令,寫入的數(shù)據(jù)為0。
11.采用權(quán)利要求1所述的可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng),其特征在于, 所述系統(tǒng),包括訪存地址生成模塊,接收一個訪存操作,生成相應(yīng)的訪存地址,并判斷地址所屬的空 間,以區(qū)分是本地訪問,還是遠(yuǎn)程訪問,并將所述訪存操作發(fā)送到訪存隊列模塊;訪存隊列模塊,接收所述訪存操作并送入訪存操作隊列,根據(jù)該操作是本地訪問還是 遠(yuǎn)程訪問,將其按序發(fā)出,如果是本地訪問,則發(fā)送到所述片上存儲;如果是遠(yuǎn)程訪問,則發(fā) 送給接口模塊;所述片上存儲,是根據(jù)應(yīng)用程序本身的特點和計算需求進(jìn)行配置,作為Cache或者SPM 使用;選擇模塊,用于將從所述片上存儲中讀出的數(shù)據(jù)進(jìn)行比對、選擇;接口模塊,作為每個處理器核的對外接口,收發(fā)消息,并負(fù)責(zé)對SPM的遠(yuǎn)程讀寫操作。
12.—種采用所述可配置的片上存儲裝置實現(xiàn)訪存操作的方法,其特征在于,所述方 法,包括下列步驟步驟100.接收一個訪存操作,生成相應(yīng)的訪存地址,并判斷地址所屬的空間,以區(qū)分 是本地訪問,還是遠(yuǎn)程訪問;步驟200.接收所述訪存操作并送入訪存操作隊列,判斷該操作是本地訪問還是遠(yuǎn)程 訪問,如果是本地訪問,則執(zhí)行步驟300 ;如果是遠(yuǎn)程訪問,則執(zhí)行步驟500 ;步驟300.判斷當(dāng)前片上存儲SRAM是否作為Cache使用,若是,則執(zhí)行步驟400 ;否則, 作為SPM使用,則直接選擇正確的數(shù)據(jù)寫回;步驟400.將從片上存儲SRAM中讀出的數(shù)據(jù)進(jìn)行比對,然后選擇正確的數(shù)據(jù)寫回;步驟500.封裝要發(fā)出的消息發(fā)送給遠(yuǎn)程處理器核,實現(xiàn)對SPM的遠(yuǎn)程讀寫操作。
全文摘要
本發(fā)明公開了一種采用可配置的片上存儲裝置實現(xiàn)訪存操作的系統(tǒng)及方法。所述可配置的片上存儲裝置的配置方法,包括下列步驟根據(jù)應(yīng)用程序的計算特點,判斷是否需要對片上存儲進(jìn)行配置,若是,則執(zhí)行步驟020;否則,不對所述片上存儲進(jìn)行配置,而將其作為Cache使用;判斷對SPM或Cache的空間大小的要求是否嚴(yán)格,若是,則細(xì)粒度配置以緩沖行為單位對所述片上存儲進(jìn)行配置;否則,粗粒度配置以路為單位對所述片上存儲進(jìn)行配置,每一路對應(yīng)一位標(biāo)志位,標(biāo)志位為1表示是SPM,標(biāo)志位為0表示是Cache。
文檔編號G06F9/34GK101930357SQ201010256400
公開日2010年12月29日 申請日期2010年8月17日 優(yōu)先權(quán)日2010年8月17日
發(fā)明者張 浩, 林偉, 范東睿, 范靈俊 申請人:中國科學(xué)院計算技術(shù)研究所