1.一種基于一致性總線擴(kuò)展非易失內(nèi)存的系統(tǒng),其特征在于,其結(jié)構(gòu)包括若干通過(guò)cache一致性高速互連總線互連的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)內(nèi)均配置有處理器、DRAM內(nèi)存和NVM內(nèi)存組成的混合內(nèi)存,其中在處理器與NVM內(nèi)存之間配置有NVM內(nèi)存控制器,在處理器與DRAM內(nèi)存之間配置有DRAM內(nèi)存控制器,其中處理器與NVM內(nèi)存、DRAM內(nèi)存之間均通過(guò)cache一致性高速互連總線互連,且對(duì)DRAM內(nèi)存和NVM內(nèi)存統(tǒng)一編址實(shí)現(xiàn)異構(gòu)混合內(nèi)存系統(tǒng)的全局cache一致性。
2.根據(jù)權(quán)利要求1所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的系統(tǒng),其特征在于,所述NVM內(nèi)存控制器采用內(nèi)存代理的方式管理非易失內(nèi)存NVM內(nèi)存,其結(jié)構(gòu)包括內(nèi)存代理模塊、cache一致性目錄管理模塊、CCB高速傳輸模塊、請(qǐng)求管理模塊、NVM內(nèi)存接口模塊、NVMe接口模塊及CCB接口模塊,其中,
內(nèi)存代理模塊負(fù)責(zé)在各個(gè)攜帶高速緩存Cache的處理器之間維護(hù)系統(tǒng)的數(shù)據(jù)一致性;
cache一致性目錄管理模塊負(fù)責(zé)目錄cache查找及管理、目錄維護(hù);
請(qǐng)求管理模塊負(fù)責(zé)數(shù)據(jù)緩存的管理,請(qǐng)求隊(duì)列、完成隊(duì)列的管理,和NVM內(nèi)存接口模塊、NVMe接口模塊連接,把處理完成的請(qǐng)求結(jié)果保存在數(shù)據(jù)緩存,維護(hù)數(shù)據(jù)緩存和NVM內(nèi)存的一致性;
CCB高速傳輸模塊負(fù)責(zé)數(shù)據(jù)的高速傳輸、串并轉(zhuǎn)換、錯(cuò)誤檢驗(yàn)、數(shù)據(jù)重傳及流量控制。
3.根據(jù)權(quán)利要求2所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的系統(tǒng),其特征在于,處理器作為訪問(wèn)NVM內(nèi)存請(qǐng)求的發(fā)起者,內(nèi)存代理模塊則作為訪存請(qǐng)求的接受者,它代理了它所掛載的NVM內(nèi)存空間。
4.根據(jù)權(quán)利要求2所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的系統(tǒng),其特征在于,所述內(nèi)存代理模塊包含一致性協(xié)議流水線單元、協(xié)議狀態(tài)管理單元、協(xié)議轉(zhuǎn)換表,首先請(qǐng)求隊(duì)列進(jìn)入一致性流水線單元進(jìn)行處理,協(xié)同協(xié)議狀態(tài)管理單元、協(xié)議轉(zhuǎn)換表處理完成后,內(nèi)存代理模塊把該請(qǐng)求結(jié)果放入完成隊(duì)列。
5.根據(jù)權(quán)利要求2所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的系統(tǒng),其特征在于,cache一致性目錄管理模塊中,每個(gè)目錄項(xiàng)對(duì)應(yīng)一個(gè)緩存行Cacheline大小的數(shù)據(jù)塊,目錄由多個(gè)目錄項(xiàng)組成;目錄項(xiàng)由兩部分構(gòu)成,一部分是狀態(tài)信息,另一部分是共享信息,目錄的狀態(tài)信息用于表示目錄當(dāng)前所處的狀態(tài),該狀態(tài)信息位是固定的,每個(gè)目錄項(xiàng)使用2bit數(shù)據(jù)對(duì)目錄狀態(tài)進(jìn)行記錄。
6.根據(jù)權(quán)利要求5所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的系統(tǒng),其特征在于,所述目錄狀態(tài)包括:
A:最高權(quán)限,標(biāo)記系統(tǒng)中的某個(gè)處理器有可能對(duì)數(shù)據(jù)有獨(dú)占副本;
S:次高權(quán)限,標(biāo)記系統(tǒng)中的某一個(gè)或若干處理器可能對(duì)數(shù)據(jù)有共享副本;
I:最低權(quán)限,標(biāo)記系統(tǒng)中沒(méi)有任何處理器對(duì)數(shù)據(jù)有副本。
7.一種基于一致性總線擴(kuò)展非易失內(nèi)存的方法,基于上述系統(tǒng),該系統(tǒng)配置有處理器、DRAM內(nèi)存和NVM內(nèi)存組成的混合內(nèi)存,其特征在于,非易失內(nèi)存的擴(kuò)展過(guò)程為:
處理器與NVM內(nèi)存、DRAM內(nèi)存之間均通過(guò)cache一致性高速互連總線互連,且對(duì)DRAM內(nèi)存和NVM內(nèi)存統(tǒng)一編址實(shí)現(xiàn)異構(gòu)混合內(nèi)存系統(tǒng)的全局cache一致性,即處理器通過(guò)cache一致性高速互連總線連接NVM內(nèi)存控制器,該NVM內(nèi)存控制器擴(kuò)展連接若干NVM內(nèi)存;處理器通過(guò)cache一致性高速互連總線連接DRAM內(nèi)存控制器,該DRAM內(nèi)存控制器擴(kuò)展連接若干DRAM內(nèi)存。
8.根據(jù)權(quán)利要求7所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的方法,其特征在于,所述NVM內(nèi)存地址空間由兩個(gè)部分構(gòu)成:PCM區(qū)域和NVMe區(qū)域,用戶程序按需請(qǐng)求不同區(qū)域的頁(yè)面;即,
所述異構(gòu)混合內(nèi)存系統(tǒng),可以是一個(gè)由三種存儲(chǔ)介質(zhì)構(gòu)成的統(tǒng)一內(nèi)存空間,也可以是一個(gè)只有PCM和Flash構(gòu)成的非易失內(nèi)存空間,或者處于二者之間。
9.根據(jù)權(quán)利要求8所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的方法,其特征在于,所述異構(gòu)混合內(nèi)存系統(tǒng)對(duì)DRAM內(nèi)存和非易失存儲(chǔ)內(nèi)存統(tǒng)一編址、統(tǒng)一管理,其地址的范圍為0~n,即將其視作為一個(gè)整體的內(nèi)存,非易失存儲(chǔ)內(nèi)存部分的地址為統(tǒng)一編址的一部分,該部分地址固定不變;DRAM內(nèi)存的地址為統(tǒng)一編址的另一部分,該部分動(dòng)態(tài)變化;Cache占用DRAM內(nèi)存的地址范圍A為0~X,X為DRAM內(nèi)存的最大地址,地址范圍A根據(jù)需求而調(diào)整。
10.根據(jù)權(quán)利要求8或9所述的一種基于一致性總線擴(kuò)展非易失內(nèi)存的方法,其特征在于,當(dāng)處理器訪問(wèn)NVM內(nèi)存時(shí),其具體實(shí)現(xiàn)過(guò)程為:
首先將從高速串行總線接收的命令及其數(shù)據(jù)存放在請(qǐng)求隊(duì)列中;
然后從請(qǐng)求隊(duì)列中讀取命令;
當(dāng)為讀命令時(shí),由緩存管理確定所請(qǐng)求數(shù)據(jù)是否在NVM內(nèi)存的緩存中命中,若在NVM內(nèi)存的緩存中命中則讀取數(shù)據(jù),發(fā)送到完成隊(duì)列中,通過(guò)高速串行總線返回;若未在NVM內(nèi)存的緩存中命中,讀命令地址在PCM內(nèi)存區(qū)域內(nèi)時(shí),由地址映射模塊執(zhí)行轉(zhuǎn)換獲得物理地址,隨后將物理地址發(fā)送給PCM接口,從PCM區(qū)域讀取的數(shù)據(jù)將送入NVM內(nèi)存緩存,發(fā)送到完成隊(duì)列中,通過(guò)高速串行總線返回;若未在NVM內(nèi)存緩存中命中,讀命令地址在NVMe內(nèi)存區(qū)域內(nèi)時(shí),命令將發(fā)送給NVMe接口,從NVMe區(qū)域讀取的將送入NVM內(nèi)存緩存,發(fā)送到完成隊(duì)列中,通過(guò)高速串行總線返回;
當(dāng)為寫命令時(shí),數(shù)據(jù)將送入NVM內(nèi)存緩存中,將確認(rèn)信息發(fā)送到完成隊(duì)列中;當(dāng)NVM內(nèi)存緩存的數(shù)據(jù)塊需寫回PCM區(qū)域時(shí),由地址映射模塊執(zhí)行轉(zhuǎn)換獲得物理地址,隨后將地址和數(shù)據(jù)發(fā)送給PCM接口;當(dāng)NVM內(nèi)存緩存的數(shù)據(jù)塊需寫回NVMe區(qū)域時(shí),地址和數(shù)據(jù)將發(fā)送給NVMe接口。