一種存儲裝置制造方法
【專利摘要】本發(fā)明公開了一種存儲裝置,其包括與外部控制器電性相連的存儲器接口、通過第二總線與所述存儲控制器相連的易失性存儲器、通過第三總線與所述存儲控制器相連的非易失性存儲器。所述易失性存儲器包括有非易失映射區(qū),所述非易失性存儲器包括與所述易失性映射區(qū)具有對應(yīng)關(guān)系的非易失備份區(qū),在所述存儲控制器的控制下,該非易失備份區(qū)對所述非易失映射區(qū)內(nèi)的數(shù)據(jù)進行備份。對于計算機系統(tǒng)來說,所述存儲裝置由兩部分形成,一部分是作為易失性內(nèi)存使用的易失性存儲區(qū),另一部分為作為非易失性內(nèi)存使用的非易失映射區(qū),這樣可以使得部分內(nèi)存中的數(shù)據(jù)可以實現(xiàn)掉電保護,提高了數(shù)據(jù)安全性。
【專利說明】一種存儲裝置
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及計算機、存儲領(lǐng)域,具體涉及一種非易失性隨機存取的存儲裝置?!尽颈尘凹夹g(shù)】】
[0002]NVDIMM(Non-Volatile Dual In-line Memory Module,非易失性雙列直插式存儲模塊)是在DIMM(Dual Inline Memory Modules,即雙列直插式存儲模塊)的基礎(chǔ)上演化而來的,其屬于一種集成了 DRAM (Dynamic Random Access Memory,S卩動態(tài)隨機存取存儲器)和非易失性內(nèi)存芯片的內(nèi)存條規(guī)格。NVDIMM作為一種能夠兼具傳統(tǒng)內(nèi)存的高速訪問帶寬,同時能夠在掉電時保存數(shù)據(jù)兩種特性的新型存儲設(shè)備,正逐漸受到云計算、數(shù)據(jù)中心以及高性能服務(wù)器等應(yīng)用領(lǐng)域的重視。但目前的NVDIMM方案均采用NAND Flash (NAND閃存)作為非易失存儲介質(zhì),但NAND Flash的種類較多,需要配備糾錯引擎,以及接口界面沒有統(tǒng)一標(biāo)準(zhǔn),使得其可靠性和通用性較差。因此,在NVDIMM上應(yīng)用NAND Flash作為非易失存儲介質(zhì)還存在兼容性、可靠性以及可維護性等方面的問題。
[0003]因此,本發(fā)明希望提出一種改進的技術(shù)方案來克服上述技術(shù)問題。
【
【發(fā)明內(nèi)容】
】
[0004]本發(fā)明的目的在于提供一種非易失性隨機存取的存儲裝置,用于為計算機系統(tǒng)提供非易失性內(nèi)存。
[0005]為了解決上述問題,本發(fā)明提供了一種存儲裝置,其包括存儲器接口,其與外部控制器電性相連;存儲控制器,其通過第一總線與所述存儲器接口相連;易失性存儲器,其通過第二總線與所述存儲控制器相連,所述易失性存儲器包括有非易失映射區(qū);和非易失性存儲器,其通過第三總線與所述存儲控制器相連,所述非易失性存儲器包括與所述易失性映射區(qū)具有對應(yīng)關(guān)系的非易失備份區(qū),在所述存儲控制器的控制下,該非易失備份區(qū)對所述非易失映射區(qū)內(nèi)的數(shù)據(jù)進行備份。
[0006]進一步的,所述非易失性存儲單元的接口滿足如下接口標(biāo)準(zhǔn)中的一個:SD卡接口標(biāo)準(zhǔn)、MMC卡接口標(biāo)準(zhǔn)、CF卡接口標(biāo)準(zhǔn)和UFS接口標(biāo)準(zhǔn),所述易失性存儲單元為動態(tài)隨機存取存儲器或靜態(tài)隨機存取存儲器,所述第一總線為DIMM總線,所述存儲器接口為DIMM接口,第二總線為易失性存儲器總線,第三總線為非易失性存儲器總線,所述DMM接口插入DIMM插槽中以與所述外部控制器相連。
[0007]進一步的,所述易失性存儲器包括多個易失性存儲單元,每個易失性存儲單元具有獨立的數(shù)據(jù)總線、地址總線、控制總線和時鐘總線,各個易失性存儲單元的數(shù)據(jù)總線、地址總線、控制總線和時鐘總線匯集形成第二總線,所述非易失性存儲器包括多個所述非易失性存儲單元,每個非易失性存儲單元具有獨立的數(shù)據(jù)總線、命令總線和時鐘總線,各個非易失性存儲單元的數(shù)據(jù)總線、命令總線和時鐘總線匯集形成第三總線。
[0008]進一步的,所述存儲裝置中包括位掩碼表,所述位掩碼表包括有多個位,其中的部分或全部位中的每個位對應(yīng)所述非易失映射區(qū)中的一個存儲區(qū)塊,對應(yīng)所述非易失映射區(qū)的一個位為有效時,則表示其對應(yīng)的存儲區(qū)塊中有待備份數(shù)據(jù),在該位為無效時,則表示其對應(yīng)的存儲區(qū)塊中無待備份數(shù)據(jù),所述存儲控制器基于所述位掩碼表將外部數(shù)據(jù)寫入所述非易失映射區(qū)的存儲區(qū)塊中,并將所述位掩碼表中的對應(yīng)位設(shè)置為有效;基于所述位掩碼表將所述非易失映射區(qū)中的存儲區(qū)塊內(nèi)的待備份數(shù)據(jù)備份至所述非易失備份區(qū)中,并將所述位掩碼表中的相應(yīng)位設(shè)置為無效。
[0009]進一步的,所述存儲控制器包括存儲處理模塊、易失性存儲器控制模塊以及非易失性存儲器控制模塊,所述存儲處理模塊接收第一總線的命令,接收或發(fā)送第一總線的數(shù)據(jù),同時向易失性存儲器控制模塊或非易失性存儲器控制模塊發(fā)送相應(yīng)控制指令,以及收發(fā)相應(yīng)數(shù)據(jù),所述易失性存儲器控制模塊對所述易失性存儲器進行讀寫操作,所述非易失性存儲器控制模塊對所述非易失性存儲器進行讀寫操作。
[0010]進一步的,所述存儲處理模塊在檢測到第一總線空閑時,查詢所述位掩碼表以確定所述非易失映射區(qū)是否還有待備份數(shù)據(jù),如果有,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中,并將所述位掩碼表中的相應(yīng)位設(shè)置為無效。
[0011]進一步的,所述存儲處理模塊檢測查詢所述位掩碼表以確定所述非易失映射區(qū)中的待備份數(shù)據(jù)是否超過閾值,如果是,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中,并將所述位掩碼表中的相應(yīng)位設(shè)置為無效。
[0012]進一步的,存儲處理模塊檢測到第一總線上發(fā)來的關(guān)機命令時,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中。
[0013]進一步的,存儲處理模塊檢測到電壓下降到閾值以下時,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表中的信息將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中。
[0014]進一步的,所述存儲裝置包括臨時后備電源,所述臨時后備電源包括電池或超級電容。
[0015]進一步的,所述易失性存儲器還包括易失性存儲區(qū)和直接訪問非易失區(qū),外部控制器寫訪問該直接訪問非易失區(qū)時,所述存儲控制器會將第一總線上的寫命令轉(zhuǎn)換為非易失性存儲器的數(shù)據(jù)寫命令,并把數(shù)據(jù)直接寫入直接訪問非易失存儲區(qū)的相應(yīng)地址,外部控制器讀訪問該直接訪問非易失區(qū)時,所述存儲控制器會將第一總線上的讀命令轉(zhuǎn)換為非易失性存儲器的數(shù)據(jù)讀命令,并從直接訪問非易失存儲區(qū)的相應(yīng)地址讀出數(shù)據(jù)。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明中的非易失性動態(tài)隨機存取的存儲裝置采用了標(biāo)準(zhǔn)接口的非易失性存儲器,提高了該存儲裝置的可靠性、通用性以及可維護性。
[0017]關(guān)于本發(fā)明的其他目的,特征以及優(yōu)點,下面將結(jié)合附圖在【具體實施方式】中詳細描述。
【【專利附圖】
【附圖說明】】
[0018]結(jié)合參考附圖及接下來的詳細描述,本發(fā)明將更容易理解,其中同樣的附圖標(biāo)記對應(yīng)同樣的結(jié)構(gòu)部件,其中:
[0019]圖1為本發(fā)明中的非易失性動態(tài)隨機存取的存儲裝置在一個實施例中的結(jié)構(gòu)框圖;
[0020]圖2為圖1中的非易失性動態(tài)隨機存取的存儲裝置中的易失性存儲器在一個實施例中的結(jié)構(gòu)框圖;
[0021]圖3為圖1中的非易失性動態(tài)隨機存取的存儲裝置中的非易失性存儲器在一個實施例中的結(jié)構(gòu)框圖;
[0022]圖4為圖3中的非易失性動態(tài)隨機存取的存儲裝置中的非易失性存儲單元在一個實施例中的結(jié)構(gòu)框圖;
[0023]圖5為圖1中的非易失性動態(tài)隨機存取的存儲控制器在一個實施例中的結(jié)構(gòu)框圖;
[0024]圖6為本發(fā)明中的易失性存儲器及非易失性存儲器在一個實施例中的結(jié)構(gòu)原理圖;
[0025]圖7為本發(fā)明中的易失性存儲器及非易失性存儲器在另一個實施例中的結(jié)果原理圖;
[0026]圖8為本發(fā)明中的易失性存儲器及非易失性存儲器在再一個實施例中的結(jié)果原理圖;
[0027]圖9為圖5中的存儲處理模塊在一個實施例中的結(jié)構(gòu)框圖
[0028]圖10為地址映射表的示例圖。
【【具體實施方式】】
[0029]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0030]本發(fā)明的詳細描述主要通過程序、步驟、邏輯塊、過程或其他象征性的描述來呈現(xiàn),其直接或間接地模擬本發(fā)明中的技術(shù)方案的運作。所屬領(lǐng)域內(nèi)的技術(shù)人員使用此處的這些描述和陳述向所屬領(lǐng)域內(nèi)的其他技術(shù)人員有效的介紹他們的工作本質(zhì)。
[0031]此處所稱的“一個實施例”或“實施例”是指與所述實施例相關(guān)的特定特征、結(jié)構(gòu)或特性至少可包含于本發(fā)明至少一個實現(xiàn)方式中。在本說明書中不同地方出現(xiàn)的“在一個實施例中”并非必須都指同一個實施例,也不必須是與其他實施例互相排斥的單獨或選擇實施例。此外,表示一個或多個實施例的方法、流程圖或功能框圖中的模塊順序并非固定的指代任何特定順序,也不構(gòu)成對本發(fā)明的限制。
[0032]如圖1所示的,其示出了本發(fā)明中的非易失性動態(tài)隨機存取的存儲裝置的一個實施例,所述存儲裝置1包括存儲器接口 10、存儲控制器12、易失性存儲器14和非易失性存儲器16。所述存儲器接口 10與外部控制器21電性相連。所述存儲控制器12通過第一總線11與所述存儲器接口 10相連。所述易失性存儲器14通過第二總線13與所述存儲控制器12相連。所述非易失性存儲器通過第三總線15與所述存儲控制器12相連。
[0033]在一個實施例中,所述第一總線11可以為DIMM總線,所述存儲器接口 10為可以DIMM接口,又可以稱為DIMM金手指,第二總線為易失性存儲器總線13,第三總線15為非易失性存儲器總線,所述存儲控制器12為DIMM存儲控制器,所述存儲裝置1可以被稱為DIMM存儲裝置,該DIMM存儲裝置的DIMM接口 10插入外部的存儲裝置插槽20中,該存儲裝置插槽可以為DIMM插槽,所述存儲裝置插槽20與所述外部控制器21相連。所述外部控制器21位于計算機系統(tǒng)的主板或CPU (Central Processing Unit)中,該存儲裝置1為該計算機系統(tǒng)提供系統(tǒng)易失性存儲區(qū)以及固態(tài)非易失性存儲區(qū)(比如固態(tài)硬盤)。在其他的實施例中,所述DIMM接口也可以由其他接口標(biāo)準(zhǔn)來替代,本發(fā)明對此并不限制。
[0034]圖2為圖1中的易失性存儲器14在一個實施例中的結(jié)構(gòu)框圖。如圖2所示,所述易失性存儲器14包括有多個易失性存儲單元,每個易失性存儲單元是由易失性存儲介質(zhì)形成的。所述易失性存儲單元可以為DRAM (動態(tài)隨機存取存儲器),也可以為SRAM (StaticRandom Access Memory,即靜態(tài)隨機存取存儲器)。如圖2所示,其是以易失性存儲單元為DRAM為例進行介紹,多個易失性存儲單元分別為DRAM141、DRAM142、DRAM143、DRAM144,其形成了 4行1列的陣列。每個DRAM有其獨立的時鐘總線clock、控制總線control、地址總線address以及數(shù)據(jù)總線data,各個DRAM的總線匯集在一起,構(gòu)成易失性存儲器總線13。在另一些實施例中,也可以形成3行2列,10行3列的陣列。此外,在一些應(yīng)用中,所述易失性存儲單元也可以被稱為內(nèi)存單元,所述易失性存儲器14也可以被稱之為內(nèi)存陣列。
[0035]圖3為圖1中的非易失性存儲器16在一個實施例中的結(jié)構(gòu)框圖。如圖3所示,所述非易失性存儲器16包括有多個非易失性存儲單元,每個非易失性存儲單元是由非易失性存儲介質(zhì)形成的。在一個實施例中,所述非易失性存儲器可以為NAND閃存,也可以為NOR閃存,本發(fā)明對此并不做特別的限制。如圖3所示,多個非易失性存儲單元分別為eMMC (Embedded Multi Media Card,嵌入式多媒體卡)161、eMMC162、eMMC163、eMMC164、eMMC165、eMMC166、eMMC167和eMMC168,其形成了 4行2列的陣列。每個eMMC有其獨立的數(shù)據(jù)線DATA、命令總線CMD和時鐘總線CLK,所述數(shù)據(jù)總線、命令總線和時鐘總線匯集在一起,構(gòu)成非易失性存儲器總線15。在另一些實施例中,也可以形成3行2列,10行3列的陣列。
[0036]圖4為圖3中的一個eMMC161在一個實施例中的結(jié)構(gòu)框圖。所述eMMC161包括與第三總線相連的eMMC主控制器1611以及與所述eMMC主控制器1611相連的NAND閃存1610。所述eMMC主控制器1611通過非易失性存儲器總線15與存儲控制器12通訊,并將數(shù)據(jù)寫入到NAND Flash 1610,或?qū)?shù)據(jù)從NAND Flash 1610讀出。
[0037]在圖3和圖4的實施例中,以eMMC為非易失性存儲單元為例進行了介紹。在其他實施例中,所述非易失性存儲單元還可以是SD (Security Digital)卡,CF (Compact Flash)卡、其他MMC卡、UFS (Universal Flash Storage,通用閃存)卡。換句話說,所述非易失性存儲單元的接口可以是接口標(biāo)準(zhǔn)中的一個:SD卡接口標(biāo)準(zhǔn)、MMC卡接口標(biāo)準(zhǔn)、CF卡接口標(biāo)準(zhǔn)和UFS接口標(biāo)準(zhǔn)。當(dāng)然,還可以是其他統(tǒng)一的接口標(biāo)準(zhǔn)。
[0038]圖5為圖1中的存儲控制器12在一個實施例中的結(jié)構(gòu)框圖。所述存儲控制器12包括存儲處理模塊121、易失性存儲器控制模塊122,以及非易失性存儲器控制模塊123。所述存儲處理模塊121接收第一總線的命令,接收或發(fā)送第一總線的數(shù)據(jù),同時向易失性存儲器控制模塊122或非易失性存儲器控制模塊123發(fā)送相應(yīng)控制指令,以及收發(fā)相應(yīng)數(shù)據(jù)。所述易失性存儲器控制模塊122對所述易失性存儲器14進行讀寫操作,所述非易失性存儲器控制模塊123對所述非易失性存儲器16進行讀寫操作。具體的,非易失性存儲器控制模塊123通過非易失性存儲器控制模塊總線126與存儲處理模塊121相連,所述易失性存儲器控制模塊122通過易失性存儲器控制模塊總線125與存儲處理模塊121相連。所述存儲控制器12還包括有數(shù)據(jù)緩沖器124,用于在易失性存儲器14與非易失性存儲器16進行數(shù)據(jù)交換時進行數(shù)據(jù)緩沖。
[0039]綜上所述,由于采用非易失性存儲器中的非易失性存儲單元的接口滿足一定的標(biāo)準(zhǔn),從而提高了可靠性、通用性和可維護性。假如某些非易失性存儲單元壞掉,則更換該非易失性存儲單元非常容易,便于維護。
[0040]如圖6所示,本發(fā)明中的易失性存儲器及非易失性存儲器在一個實施例中的結(jié)構(gòu)原理圖。如圖6所示,所述易失性存儲器14包括易失性存儲區(qū)1450和非易失映射區(qū)1460。所述非易失性存儲器16包括非易失備份區(qū)1650。
[0041]易失性存儲器14的易失性存儲區(qū)1450可以獨立被應(yīng)用。所述易失性存儲器14的易失性內(nèi)存區(qū)1450在功能上與普通的內(nèi)存相同,因此又可以稱為內(nèi)存區(qū)。當(dāng)外部控制器21發(fā)出的訪問命令落在該易失性存儲區(qū)1450時,存儲控制器12直接將命令旁路給易失性存儲器14,這樣計算機系統(tǒng)相當(dāng)于直接訪問易失性存儲器,可實現(xiàn)與普通內(nèi)存一樣的讀寫性能。這樣的讀寫訪問速度很快,不影響任何訪問速度。
[0042]如圖6所示,易失性存儲器14的非易失映射區(qū)1460與非易失性存儲器16的非易失備份區(qū)1650相對應(yīng),兩者共同構(gòu)成存儲裝置1的映射非易失區(qū)。當(dāng)外部控制器21發(fā)出的訪問命令落在該非易失映射區(qū)1460時,存儲控制器12直接將命令旁路給易失性存儲器14,這樣計算機也相當(dāng)于直接訪問易失性存儲器14,可實現(xiàn)與普通內(nèi)存一樣的讀寫性能。此夕卜,在所述存儲控制器12的控制下,該非易失備份區(qū)1650對所述非易失映射區(qū)1460內(nèi)的數(shù)據(jù)進行備份。這樣,在所述存儲裝置1掉電后恢復(fù)供電時,可以將所述非易失映射區(qū)1460內(nèi)的數(shù)據(jù)復(fù)制到所述非易失映射區(qū)1460中,這樣非易失映射區(qū)1460就恢復(fù)了上次掉電時的數(shù)據(jù),從而具有非易失存儲特性。
[0043]如圖9所示,所述存儲處理模塊121中還可以包括有位掩碼表,當(dāng)然在其他實施例中,所述位掩碼表也可以存儲在非易失性存儲器16中。所述位掩碼表1213包括有多個位(一個比特位),其中的部分位中的每個位對應(yīng)所述非易失映射區(qū)1460中的一個存儲區(qū)塊。需要知道的是,所述位掩碼表1213中的另一些位還可以對應(yīng)其他區(qū)的存儲區(qū)塊。所述位掩碼表1213中對應(yīng)所述非易失映射區(qū)1460的一個位為有效時,比如1時,則表示其對應(yīng)的存儲區(qū)塊中有待備份數(shù)據(jù),即還未備份到非易失備份區(qū)1650內(nèi)的數(shù)據(jù),在該位為無效時,比如0時,則表示其對應(yīng)的存儲區(qū)塊中無待備份數(shù)據(jù),比如該對應(yīng)的存儲區(qū)塊根本就沒有寫入數(shù)據(jù),或者被寫入的數(shù)據(jù)已經(jīng)備份至非易失備份區(qū)1650內(nèi)。所述存儲控制器12通過所述易失性存儲器控制器122將外部數(shù)據(jù)寫入所述非易失映射區(qū)1460的存儲區(qū)塊中,所述存儲控制器12基于所述位掩碼表1213將所述非易失映射區(qū)1460中的存儲區(qū)塊內(nèi)的待備份數(shù)據(jù)備份至所述非易失備份區(qū)1650中,同時將所述位掩碼表1213中的相應(yīng)位置為無效。
[0044]在第一個實施例中,所述存儲處理模塊121在檢測到第一總線11空閑時,查詢所述位掩碼表1213以確定所述非易失映射區(qū)1460是否還有待備份數(shù)據(jù),如果有,則向易失性存儲器控制模塊122和非易失性存儲器控制模塊123發(fā)出相應(yīng)指令,以根據(jù)位掩碼表1213中的信息將易失性存儲器14的非易失映射區(qū)1460中的待備份數(shù)據(jù)分批次備份到非易失性存儲器16的非易失備份區(qū)1650中,并將所述位掩碼表1213中的相應(yīng)位置為無效。
[0045]在第二個實施例中,存儲處理模塊121檢測查詢所述位掩碼表1213以確定所述非易失映射區(qū)1460中的待備份數(shù)據(jù)是否超過閾值,如果是,則向易失性存儲器控制模塊122和非易失性存儲器控制模塊123發(fā)出相應(yīng)指令,以根據(jù)位掩碼表1213中的信息將易失性存儲器14的非易失映射區(qū)1460中的待備份數(shù)據(jù)分批次備份到非易失性存儲器16的非易失備份區(qū)1650中,并將所述位掩碼表1213中的相應(yīng)位置為無效。
[0046]在第三個實施例中,存儲處理模塊121檢測到第一總線11上發(fā)來的關(guān)機命令時,則向易失性存儲器控制模塊122和非易失性存儲器控制模塊123發(fā)出相應(yīng)指令,以根據(jù)位掩碼表1213中的信息將易失性存儲器14的非易失映射區(qū)1460中的待備份數(shù)據(jù)備份到非易失性存儲器16的非易失備份區(qū)1650中。此次備份是一次性的,這樣可以保證關(guān)機后,所有數(shù)據(jù)都被備份成功。
[0047]在第四實施例中,存儲處理模塊121檢測到電壓下降到閾值以下時,則向易失性存儲器控制模塊122和非易失性存儲器控制模塊123發(fā)出相應(yīng)指令,以根據(jù)位掩碼表1213中的信息將易失性存儲器14的非易失映射區(qū)1460中的待備份數(shù)據(jù)備份到非易失性存儲器16的非易失備份區(qū)1650中。此實施例為異常斷電備份,為實現(xiàn)可靠的數(shù)據(jù)備份,需要在DIMM存儲裝置1上增加臨時后備電源,如電池,超級電容等,這樣可以使得在異常斷電后,該后備電源能夠給所述DIMM存儲裝置1提供一定的電能,保證數(shù)據(jù)都被備份成功。
[0048]在此實施例中,對于計算機系統(tǒng)來說,所述存儲裝置1由兩部分形成,一部分是作為易失性內(nèi)存使用的易失性存儲區(qū)1450,另一部分為作為非易失性內(nèi)存使用的非易失映射區(qū)1460,這樣可以使得部分內(nèi)存中的數(shù)據(jù)可以實現(xiàn)掉電保護,提高了數(shù)據(jù)安全性。
[0049]如圖7所示,本發(fā)明中的易失性存儲器及非易失性存儲器在另一個實施例中的結(jié)構(gòu)原理圖。如圖7所示,所述易失性存儲器14包括易失性存儲區(qū)1450和非易失映射區(qū)1460。所述非易失性存儲器16包括非易失備份區(qū)1650和直接訪問非易失區(qū)1670。其中,非易失備份區(qū)1650和非易失映射區(qū)1460的運作原理與圖6中的相同,這里不再重復(fù)。
[0050]外部控制器21能夠通過存儲控制器12直接訪問非易失性存儲器16的直接訪問非易失區(qū)1670。在外部控制器21寫訪問該直接訪問非易失區(qū)1670時,所述存儲控制器12會將第一總線上的寫命令轉(zhuǎn)換為非易失性存儲器16的數(shù)據(jù)寫命令,并把數(shù)據(jù)直接寫入直接訪問非易失存儲區(qū)1670的相應(yīng)地址,外部控制器21讀訪問該直接訪問非易失區(qū)1670時,所述存儲控制器12會將第一總線上的讀命令轉(zhuǎn)換為非易失性存儲器16的數(shù)據(jù)讀命令,并從直接訪問非易失存儲區(qū)1670的相應(yīng)地址讀出數(shù)據(jù)。這一存儲區(qū)的功能是為計算機系統(tǒng)提供最可靠的非易失存儲空間。數(shù)據(jù)在整個寫入過程中沒有在非易失存儲器中暫存,因此無須采用任何保護機制既可保證寫入數(shù)據(jù)的可靠性,因此能夠提供最高可靠級別的非易失存儲特性。
[0051]在此實施例中,對于計算機系統(tǒng)來說,所述存儲裝置1由兩部分形成,一部分是作為內(nèi)存使用的易失性存儲區(qū)1450,另一部分為作為固態(tài)硬盤(solid state disk,SSD)使用的直接訪問非易失性存儲區(qū)1670,它們通過同一個存儲器接口訪問,通過同一個存儲控制器管理,這種方式更為有效,管理更為簡便。
[0052]如圖8所示,本發(fā)明中的存儲裝置的易失性存儲器及非易失性存儲器的結(jié)構(gòu)原理圖。如圖8所示,所述易失性存儲器14包括易失性存儲區(qū)1450和數(shù)據(jù)緩存區(qū)1470。所述非易失性存儲器16包括非易失性存儲區(qū)1660。
[0053]易失性存儲器14的數(shù)據(jù)緩存區(qū)1470與非易失性存儲器16的非易失性存儲區(qū)1660相對應(yīng),兩者共同構(gòu)成存儲裝置1的非易失性存儲區(qū)。所述外部控制器21能夠通過存儲控制器12訪問非易失性存儲器16的非易失性存儲區(qū)1660。然而,為了保證數(shù)據(jù)的寫入速度,被寫入的數(shù)據(jù)需要先緩存至所述易失性存儲器14的數(shù)據(jù)緩存區(qū)1470中,之后再由所述數(shù)據(jù)緩存區(qū)1470中被拷貝至所述非易失性存儲器16中的非易失性存儲區(qū)。所述非易失性存儲區(qū)1660的存儲空間要大于數(shù)據(jù)緩存區(qū)1470的存儲空間。這樣,該存儲區(qū)可以為計算機系統(tǒng)提供具有超大容量(可高達TB級)并且具有較高訪問速度的非易失存儲空間。
[0054]所述易失性存儲區(qū)1450在功能上為類內(nèi)存區(qū),所述類內(nèi)存區(qū)是指該區(qū)域存儲的數(shù)據(jù)在掉電后消失,在功能上與普通的內(nèi)存相當(dāng)。所述非易失性存儲區(qū)1660在功能上為類硬盤區(qū),該類硬盤區(qū)則可在掉電后保存數(shù)據(jù),并在重新上電后再次正確讀取。
[0055]可以看出,本發(fā)明中的存儲裝置1兼具了現(xiàn)有計算機系統(tǒng)的內(nèi)存和硬盤的特點,即有易失性存儲區(qū)1450,也有非易失性存儲區(qū)1660,他們通過同一個存儲器接口訪問,通過同一個存儲控制器管理。換句話說,對于計算機系統(tǒng)來說,所述存儲裝置1由兩部分形成,一部分是作為內(nèi)存使用的易失性存儲區(qū)1450,另一部分為作為固態(tài)硬盤(solid statedisk, SSD)使用的多個非易失性存儲區(qū)1660。本發(fā)明中的給計算機系統(tǒng)提供存儲裝置1的方式較現(xiàn)有的內(nèi)存加硬盤的方式,更為有效,管理更為簡便。
[0056]圖8都僅僅示意出了一個數(shù)據(jù)緩存區(qū)和一個非易失性存儲區(qū),實際應(yīng)用中,可以為多個數(shù)據(jù)緩存區(qū)1470和多個易失性存儲區(qū)1660。
[0057]圖9為圖5中的存儲處理模塊121在一個實施例中的結(jié)構(gòu)框圖。除了位掩碼表1213,所述存儲處理模塊121還包括執(zhí)行狀態(tài)機1211、執(zhí)行隊列1212、以及地址映射表1214。圖10為地址映射表1214的一個示例。在一個實施例中,所述位掩碼表1213以及地址映射表1214可以存儲在所述易失性存儲器14或所述非易失性存儲器16中,所述存儲處理模塊121在需要時可以調(diào)用位掩碼表1213以及地址映射表1214。
[0058]所述位掩碼表1213中包括有多個位(比特位),其中部分中的每個位對應(yīng)所述數(shù)據(jù)緩存區(qū)中的一個存儲區(qū)塊,所述位掩碼表1213中對應(yīng)所述數(shù)據(jù)緩存區(qū)1470的一個位為有效時,比如1時,則表示其對應(yīng)的存儲區(qū)塊中有待轉(zhuǎn)存數(shù)據(jù),即還未轉(zhuǎn)存到非易性存儲區(qū)1660內(nèi)的數(shù)據(jù),在該位為無效時,比如0時,則表示其對應(yīng)的存儲區(qū)塊中無待轉(zhuǎn)存數(shù)據(jù),即該存儲區(qū)塊中的數(shù)據(jù)已經(jīng)被轉(zhuǎn)存到非易失性存儲區(qū)1660內(nèi),或者無新數(shù)據(jù)。所述地址映射表1214用來記錄有多條地址映射記錄,每條地址映射記錄包括待寫入的數(shù)據(jù)在數(shù)據(jù)緩存區(qū)中的臨時源地址以及其在非易失性存儲區(qū)的目標(biāo)地址。
[0059]下面介紹一下寫入數(shù)據(jù)到所述非易失性存儲區(qū)1660內(nèi)的目標(biāo)地址的過程。
[0060]步驟710,所述存儲處理模塊121接收到寫入數(shù)據(jù)到所述非易失性存儲區(qū)1660內(nèi)的命令;
[0061]步驟720,執(zhí)行狀態(tài)機1211在位掩碼表1213中查找所述數(shù)據(jù)緩存區(qū)中的空閑的存儲區(qū)塊。即在位掩碼表1213查找對應(yīng)所述數(shù)據(jù)緩存區(qū)1470的無效位。
[0062]步驟730,當(dāng)找到空閑的存儲區(qū)塊后,執(zhí)行狀態(tài)機1211在地址映射表1214建立一條地址映射記錄,該地址映射記錄中包括待寫入的數(shù)據(jù)在數(shù)據(jù)緩存區(qū)1470的臨時源地址以及在非易失性存儲區(qū)1660內(nèi)的目標(biāo)地址。
[0063]步驟740,將數(shù)據(jù)寫入數(shù)據(jù)緩存區(qū)1470的臨時源地址對應(yīng)的空閑存儲區(qū)塊,并將所述位掩碼表1213的對應(yīng)位置為有效;
[0064]步驟750,執(zhí)行狀態(tài)機1212生成一條寫命令,將寫入到數(shù)據(jù)緩存區(qū)1470的臨時源地址內(nèi)的數(shù)據(jù)轉(zhuǎn)存到非易失性存儲區(qū)1660的目的地址中,并將命令壓入執(zhí)行隊列。
[0065]步驟760,執(zhí)行隊列中的命令則由執(zhí)行狀態(tài)機1211依次執(zhí)行,每執(zhí)行完一條命令,則將地址映射表1214中的對應(yīng)地址映射記錄刪除,還將位掩碼表1213中的對應(yīng)位(該命令對應(yīng)的易失性存儲器14的數(shù)據(jù)緩存區(qū)1470的存儲區(qū)塊對應(yīng)的位)設(shè)置為無效。
[0066]這樣,通過數(shù)據(jù)緩存區(qū)1470的緩存,將數(shù)據(jù)寫入了非易失性存儲區(qū)1660。
[0067]當(dāng)?shù)谝豢偩€收到讀所述非易失性存儲區(qū)1660的訪問命令時,執(zhí)行狀態(tài)機1211根據(jù)訪問命令的目標(biāo)地址,查詢地址映射表1214,若地址映射表1214中存在目標(biāo)地址,則表明要讀取的數(shù)據(jù)尚未寫入非易失性存儲區(qū)1660,而是還保存在數(shù)據(jù)緩存區(qū)1470中,因此基于地址映射表1214從數(shù)據(jù)緩存區(qū)1470的對應(yīng)存儲區(qū)塊中讀取數(shù)據(jù)。若地址映射表1214中不存在該目標(biāo)地址,則表明數(shù)據(jù)已經(jīng)寫入所述非易失性存儲區(qū)1660,因此直接從非易失性存儲區(qū)1660的目標(biāo)地址讀取數(shù)據(jù)。
[0068]根據(jù)上述說明,計算機系統(tǒng)對于非易失性存儲區(qū)1660的讀寫訪問會首先經(jīng)過數(shù)據(jù)緩存區(qū)1470,然后再寫入非易失性存儲區(qū)1660的目標(biāo)地址。這樣可以在一定程度上大幅提高非易失性存儲區(qū)的讀寫性能。但由于數(shù)據(jù)緩存區(qū)1470的存在,使得一部有效數(shù)據(jù)仍然保存在非易失存儲器中,因此在系統(tǒng)關(guān)機或者異常掉電時,DIMM存儲控制器12會將數(shù)據(jù)緩存區(qū)1470中的有效數(shù)據(jù)一次性寫入非易失性存儲區(qū)1660的對應(yīng)地址。
[0069]舉例來講,所述非易失性存儲器14可以具有4G的空間,其中3G作為易失性存儲區(qū)1450,1G作為數(shù)據(jù)緩存區(qū)1470,所述非易失性存儲器16可以具有100G的空間。計算機系統(tǒng)的外部控制器21可以高速的訪問到3G的易失性存儲區(qū)1450,就像訪問現(xiàn)有內(nèi)存一樣,高速快捷。另外,外部控制器21還可以訪問到100G的非易失性存儲區(qū)1660,這部分具有較高訪問速度,且同時具有非易失性,其讀的速度可能較慢。
[0070]在一個實施例中,所述易失性存儲器14中可以只包括數(shù)據(jù)緩存區(qū)1470,而不設(shè)置易失性存儲區(qū)。
[0071]上文對本發(fā)明進行了足夠詳細的具有一定特殊性的描述。所屬領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該理解,實施例中的描述僅僅是示例性的,在不偏離本發(fā)明的真實精神和范圍的前提下做出所有改變都應(yīng)該屬于本發(fā)明的保護范圍。本發(fā)明所要求保護的范圍是由所述的權(quán)利要求書進行限定的,而不是由實施例中的上述描述來限定的。
【權(quán)利要求】
1.一種存儲裝置,其特征在于,其包括: 存儲器接口,其與外部控制器電性相連; 存儲控制器,其通過第一總線與所述存儲器接口相連; 易失性存儲器,其通過第二總線與所述存儲控制器相連,所述易失性存儲器包括有非易失映射區(qū);和 非易失性存儲器,其通過第三總線與所述存儲控制器相連,所述非易失性存儲器包括與所述易失性映射區(qū)具有對應(yīng)關(guān)系的非易失備份區(qū),在所述存儲控制器的控制下,該非易失備份區(qū)對所述非易失映射區(qū)內(nèi)的數(shù)據(jù)進行備份。
2.根據(jù)權(quán)利要求1所述的存儲裝置,其特征在于,所述非易失性存儲單元的接口滿足如下接口標(biāo)準(zhǔn)中的一個卡接口標(biāo)準(zhǔn)、110卡接口標(biāo)準(zhǔn)、0?卡接口標(biāo)準(zhǔn)和接口標(biāo)準(zhǔn),所述易失性存儲單元為動態(tài)隨機存取存儲器或靜態(tài)隨機存取存儲器,所述第一總線為01麗總線,所述存儲器接口為01麗接口,第二總線為易失性存儲器總線,第三總線為非易失性存儲器總線,所述0111接口插入0111插槽中以與所述外部控制器相連。
3.根據(jù)權(quán)利要求1所述的存儲裝置,其特征在于,所述易失性存儲器包括多個易失性存儲單元,每個易失性存儲單元具有獨立的數(shù)據(jù)總線、地址總線、控制總線和時鐘總線,各個易失性存儲單元的數(shù)據(jù)總線、地址總線、控制總線和時鐘總線匯集形成第二總線, 所述非易失性存儲器包括多個所述非易失性存儲單元,每個非易失性存儲單元具有獨立的數(shù)據(jù)總線、命令總線和時鐘總線,各個非易失性存儲單元的數(shù)據(jù)總線、命令總線和時鐘總線匯集形成第三總線。
4.根據(jù)權(quán)利要求1所述的存儲裝置,其特征在于, 所述存儲裝置中包括位掩碼表,所述位掩碼表包括有多個位, 其中的部分或全部位中的每個位對應(yīng)所述非易失映射區(qū)中的一個存儲區(qū)塊,對應(yīng)所述非易失映射區(qū)的一個位為有效時,則表示其對應(yīng)的存儲區(qū)塊中有待備份數(shù)據(jù),在該位為無效時,則表示其對應(yīng)的存儲區(qū)塊中無待備份數(shù)據(jù), 所述存儲控制器基于所述位掩碼表將外部數(shù)據(jù)寫入所述非易失映射區(qū)的存儲區(qū)塊中,并將所述位掩碼表中的對應(yīng)位設(shè)置為有效;基于所述位掩碼表將所述非易失映射區(qū)中的存儲區(qū)塊內(nèi)的待備份數(shù)據(jù)備份至所述非易失備份區(qū)中,并將所述位掩碼表中的相應(yīng)位設(shè)置為無效。
5.根據(jù)權(quán)利要求4所述的存儲裝置,其特征在于,所述存儲控制器包括存儲處理模塊、易失性存儲器控制模塊以及非易失性存儲器控制模塊, 所述存儲處理模塊接收第一總線的命令,接收或發(fā)送第一總線的數(shù)據(jù),同時向易失性存儲器控制模塊或非易失性存儲器控制模塊發(fā)送相應(yīng)控制指令,以及收發(fā)相應(yīng)數(shù)據(jù), 所述易失性存儲器控制模塊對所述易失性存儲器進行讀寫操作, 所述非易失性存儲器控制模塊對所述非易失性存儲器進行讀寫操作。
6.根據(jù)權(quán)利要求5所述的存儲裝置,其特征在于,所述存儲處理模塊在檢測到第一總線空閑時,查詢所述位掩碼表以確定所述非易失映射區(qū)是否還有待備份數(shù)據(jù),如果有,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中,并將所述位掩碼表中的相應(yīng)位設(shè)置為無效。
7.根據(jù)權(quán)利要求5所述的存儲裝置,其特征在于,所述存儲處理模塊檢測查詢所述位掩碼表以確定所述非易失映射區(qū)中的待備份數(shù)據(jù)是否超過閾值,如果是,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中,并將所述位掩碼表中的相應(yīng)位設(shè)置為無效。
8.根據(jù)權(quán)利要求5所述的存儲裝置,其特征在于,存儲處理模塊檢測到第一總線上發(fā)來的關(guān)機命令時,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中。
9.根據(jù)權(quán)利要求5所述的存儲裝置,其特征在于,存儲處理模塊檢測到電壓下降到閾值以下時,則向易失性存儲器控制模塊和非易失性存儲器控制模塊發(fā)出相應(yīng)指令,以根據(jù)位掩碼表中的信息將易失性存儲器的非易失映射區(qū)中的待備份數(shù)據(jù)備份到非易失性存儲器的非易失備份區(qū)中。
10.根據(jù)權(quán)利要求9所述的存儲裝置,其特征在于,所述存儲裝置包括臨時后備電源,所述臨時后備電源包括電池或超級電容。
11.根據(jù)權(quán)利要求1所述的存儲裝置,其特征在于,所述易失性存儲器還包括易失性存儲區(qū)。
12.根據(jù)權(quán)利要求1所述的存儲裝置,其特征在于,所述易失性存儲器還包括直接訪問非易失區(qū), 外部控制器寫訪問該直接訪問非易失區(qū)時,所述存儲控制器會將第一總線上的寫命令轉(zhuǎn)換為非易失性存儲器的數(shù)據(jù)寫命令,并把數(shù)據(jù)直接寫入直接訪問非易失存儲區(qū)的相應(yīng)地址, 外部控制器讀訪問該直接訪問非易失區(qū)時,所述存儲控制器會將第一總線上的讀命令轉(zhuǎn)換為非易失性存儲器的數(shù)據(jù)讀命令,并從直接訪問非易失存儲區(qū)的相應(yīng)地址讀出數(shù)據(jù)。
13.根據(jù)權(quán)利要求1所述的存儲裝置,其特征在于,所述易失性存儲器包括有數(shù)據(jù)緩存區(qū),所述非易失性存儲器包括與所述數(shù)據(jù)緩存區(qū)具有對應(yīng)關(guān)系的非易失性存儲區(qū),所述外部控制器能夠訪問所述非易失性存儲區(qū),在所述外部控制器寫入數(shù)據(jù)到所述非易失性存儲區(qū)時,被寫入的數(shù)據(jù)先緩存至所述數(shù)據(jù)緩存區(qū)中,之后再由所述數(shù)據(jù)緩存區(qū)中被拷貝至所述非易失性存儲器中的非易失性存儲區(qū)。
14.根據(jù)權(quán)利要求13所述的存儲裝置,其特征在于,所述存儲控制器中包括執(zhí)行狀態(tài)機、執(zhí)行隊列,所述存儲裝置中還包括位掩碼表以及地址映射表, 所述位掩碼表包括有多個位,每個位對應(yīng)所述數(shù)據(jù)緩存區(qū)中的一個存儲區(qū)塊,所述位掩碼表中對應(yīng)所述數(shù)據(jù)緩存區(qū)的一個位為有效時,則表示其對應(yīng)的存儲區(qū)塊中有待轉(zhuǎn)存數(shù)據(jù),在該位為無效時,則表示其對應(yīng)的存儲區(qū)塊中無待轉(zhuǎn)存數(shù)據(jù), 所述地址映射表用來記錄有多條地址映射記錄,每條地址映射記錄包括待寫入的數(shù)據(jù)在數(shù)據(jù)緩存區(qū)中的臨時源地址以及其在所述非易失性存儲區(qū)的目標(biāo)地址。
15.根據(jù)權(quán)利要求14所述的存儲裝置,其特征在于, 所述存儲控制器接收到寫入數(shù)據(jù)到所述非易失性存儲區(qū)內(nèi)的命令; 執(zhí)行狀態(tài)機在位掩碼表中查找所述數(shù)據(jù)緩存區(qū)中的無待轉(zhuǎn)存數(shù)據(jù)的存儲區(qū)塊; 當(dāng)找到無待轉(zhuǎn)存數(shù)據(jù)的存儲區(qū)塊后,執(zhí)行狀態(tài)機在地址映射表建立一條地址映射記錄,該地址映射記錄中包括待寫入的數(shù)據(jù)在數(shù)據(jù)緩存區(qū)的臨時源地址以及在非易失性存儲區(qū)內(nèi)的目標(biāo)地址; 將數(shù)據(jù)寫入數(shù)據(jù)緩存區(qū)的臨時源地址對應(yīng)的存儲區(qū)塊,并將所述位掩碼表的對應(yīng)位置為有效; 執(zhí)行狀態(tài)機生成一條寫命令,將寫入到數(shù)據(jù)緩存區(qū)的臨時源地址內(nèi)的數(shù)據(jù)轉(zhuǎn)存到非易失性存儲區(qū)的目的地址中,并將命令壓入執(zhí)行隊列; 執(zhí)行隊列中的命令則由執(zhí)行狀態(tài)機依次執(zhí)行。
16.根據(jù)權(quán)利要求15所述的存儲裝置,其特征在于, 所述執(zhí)行狀態(tài)機每執(zhí)行完一條命令,則將地址映射表中的對應(yīng)地址映射記錄刪除,還將位掩碼表中的對應(yīng)位設(shè)置為無效, 當(dāng)?shù)谝豢偩€收到讀所述非易失性存儲區(qū)的訪問命令時,執(zhí)行狀態(tài)機根據(jù)訪問命令的目標(biāo)地址,查詢地址映射表,若地址映射表中存在目標(biāo)地址,則基于地址映射表從數(shù)據(jù)緩存區(qū)的對應(yīng)存儲區(qū)塊中讀取數(shù)據(jù); 若地址映射表中不存在該目標(biāo)地址,則直接從非易失性存儲區(qū)的目標(biāo)地址讀取數(shù)據(jù)。
17.根據(jù)權(quán)利要求15所述的存儲裝置,其特征在于,在關(guān)機或者異常掉電時,存儲控制器會將數(shù)據(jù)緩存區(qū)中的有效數(shù)據(jù)一次性寫入非易失性存儲區(qū)的對應(yīng)地址。
【文檔編號】G06F11/14GK104461964SQ201410766201
【公開日】2015年3月25日 申請日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】駱建軍, 王時 申請人:杭州華瀾微科技有限公司