相關申請的交叉引用
本申請要求于2016年3月28日提交的申請號為10-2016-0036638的韓國專利申請的優先權,其公開內容通過引用整體并入本文。
示例性實施例涉及一種非易失性雙列直插式存儲器系統、存儲器模塊和用于操作存儲器模塊的方法,且更特別地,涉及一種能夠通過控制器獨立地訪問易失性存儲器裝置同時減少連接線(wiringline)的數量的技術。
背景技術:
在多數存儲器系統中,控制器和存儲器裝置之間可能存在一對多的關系。
如圖1a中所示,當控制器100和存儲器裝置110_0之間的控制總線即傳輸命令cmd和地址addr的總線cmd/addr_bus0和數據總線data_bus0以及控制器100和存儲器裝置110_1之間的控制總線cmd/addr_bus1和數據總線data_bus1分離時,控制器100可控制存儲器裝置110_0和存儲器裝置110_1單獨操作。例如,當在存儲器裝置110_0中執行讀取操作時,可在存儲器裝置110_1中執行寫入操作。
如圖1b中所示,當存儲器裝置110_0和110_1共享控制總線cmd/addr_bus和數據總線data_bus時,設置用于傳輸信號cs0和cs1以識別存儲器裝置110_0和110_1的線。也就是說,用于傳輸待通過控制總線cmd/addr_bus傳輸的信號中的一些信號cs0和cs1的線不是共享的,且應針對各自的存儲器裝置110_0和110_1分別設置。在這種情況下,由信號cs0或cs1選擇的在存儲器裝置110_0和110_1之間的存儲器裝置可執行通過控制總線cmd/addr_bus指示的操作,并可通過數據總線data_bus與控制器100交換信號。
隨著與控制器聯接的存儲器裝置的數量增加,需要的連接線的數量也增加,這增加了系統設計的難度并增加了制造費用。
技術實現要素:
各種實施例涉及非易失性雙列直插式存儲器系統、存儲器模塊和用于操作存儲器模塊的方法,其中,當由于主機的電源故障/恢復在非易失性雙列直插式存儲器模塊中執行備份/恢復操作時,通過獨立地訪問易失性存儲器裝置同時減少存儲器模塊中數據總線的連接線的數量執行備份/恢復操作,并且在執行掉電備份操作時,當主機的電源恢復時能夠快速處理很可能接著發生的第二次掉電。
在實施例中,非易失性存儲器模塊可包括:多個易失性存儲器裝置,其共享傳輸數據的數據總線和傳輸命令和地址的控制總線;至少一個非易失性存儲器裝置;以及控制器,其適于根據主機的電源的故障/恢復,將存儲在多個易失性存儲器裝置中的數據備份在非易失性存儲器裝置中或將備份在非易失性存儲器裝置中的數據恢復至多個易失性存儲器裝置,控制器包括掉電中斷邏輯,其中在執行備份操作時,當主機的電源恢復時,掉電中斷邏輯中斷備份操作,掉電中斷邏輯包括:確定在非易失性存儲器裝置中是否存在足夠量的用于數據備份的擦除塊的邏輯,從而為主機的電源故障做準備;當非易失性存儲器裝置中不存在足夠量的擦除塊時擦除新塊的邏輯;以及中斷備份邏輯,當檢測到主機的電源故障或主機指示備份操作時,中斷備份邏輯將具有對應于非易失性存儲器裝置的擦除塊的數據的易失性存儲器裝置備份在非易失性存儲器裝置中。
中斷備份邏輯可將用于識別在共享數據總線和控制總線的多個易失性存儲器裝置中具有對應于擦除塊的數據的易失性存儲器裝置的命令地址延時(cal)設置為第一值,并可將多個易失性存儲器裝置中的剩余易失性存儲器裝置的命令地址延時設置為不同于第一值的第二值。
第二值可大于第一值,且第二值與第一值之差可等于或大于行地址與列地址的延時時間(trcd:ras與cas的延時)。
第二值與第一值之差可小于行預充電時間(trp)。
在通過中斷備份邏輯執行備份之后,控制器可繼續由掉電中斷邏輯中斷的備份操作。
中斷備份邏輯可包括:當編程非易失性存儲器裝置的存儲器頁面時,執行用于使刷新周期均勻分布于多個易失性存儲器裝置的分布式刷新操作的邏輯;當準備并寫入非易失性存儲器裝置的新存儲器頁面時,在功率低于完整操作狀態的功率的低電源模式下操作多個易失性存儲器裝置的邏輯;以及在寫入非易失性存儲器裝置的新存儲器頁面之后,將多個易失性存儲器裝置恢復至完整操作狀態的電源模式的邏輯。
在實施例中,提供用于操作非易失性存儲器模塊的方法,其中非易失性存儲器模塊包括:多個易失性存儲器裝置,其共享傳輸數據的數據總線和傳輸命令和地址的控制總線;非易失性存儲器裝置;以及控制器,其根據主機的電源的故障/恢復將存儲在多個易失性存儲器裝置中的數據備份在非易失性存儲器裝置中或將備份在非易失性存儲器裝置中的數據恢復至多個易失性存儲器裝置,該方法可包括:在執行備份操作時,當主機的電源恢復時中斷備份操作;確定在非易失性存儲器裝置中是否存在足夠量的用于數據備份的擦除塊,從而為可能發生的主機的電源故障做準備;當非易失性存儲器裝置中不存在足夠量的擦除塊時,擦除新塊;以及當檢測到主機的電源故障或主機指示備份操作時,將具有對應于非易失性存儲器裝置的擦除塊的數據的易失性存儲器裝置備份在非易失性存儲器裝置中。
在備份具有對應于非易失性存儲器裝置的擦除塊的數據的易失性存儲器裝置中,可將用于識別在共享數據總線和控制總線的多個易失性存儲器裝置中具有對應于擦除塊的數據的易失性存儲器裝置的命令地址延時(cal)設置為第一值,并可將多個易失性存儲器裝置中的剩余易失性存儲器裝置的命令地址延時設置為不同于第一值的第二值。
第二值可大于第一值,且第二值與第一值之差可等于或大于行地址與列地址的延時時間(trcd:ras與cas的延時)。
第二值與第一值之差可小于行預充電時間(trp)。
在執行備份具有對應于非易失性存儲器裝置的擦除塊的數據的易失性存儲器裝置的中斷備份之后,在執行備份操作時,當主機的電源恢復時,控制器可繼續中斷的備份操作。
備份具有對應于非易失性存儲器裝置的擦除塊的數據的易失性存儲器裝置可包括:當編程非易失性存儲器裝置的存儲器頁面時,執行用于使刷新周期均勻分布于多個易失性存儲器裝置的分布式刷新操作;當準備和寫入非易失性存儲器裝置的新存儲器頁面時,在功率低于完整操作狀態的功率的低電源模式下操作多個易失性存儲器裝置;以及在寫入非易失性存儲器裝置的新存儲器頁面之后,將多個易失性存儲器裝置恢復至完整操作狀態的電源模式。
根據非易失性雙列直插式存儲器系統、存儲器模塊和用于操作存儲器模塊的方法,當由于主機的電源故障/恢復在非易失性雙列直插式存儲器模塊中執行備份/恢復操作時,可以通過獨立地訪問易失性存儲器裝置同時減少存儲器模塊中數據總線的連接線的數量來執行備份/恢復操作,并且在執行掉電備份操作時,當主機的電源恢復時可以快速處理很可能接著發生的第二次掉電。
附圖說明
圖1a和圖1b為說明存儲器系統中控制器和存儲器裝置之間的總線連接的示例的框圖。
圖2為說明在易失性存儲器裝置中在每dram可尋址能力(per-dramaddressability,pda)模式下的模式寄存器設置(moderegisterset,mrs)的操作的時序圖。
圖3為說明易失性存儲器裝置的命令地址延時(cal)的時序圖。
圖4為說明根據實施例的存儲器系統的框圖。
圖5為說明圖4中所示的存儲器系統的操作的流程圖。
圖6為說明圖5的操作512和操作513的時序圖。
圖7a和圖7b為說明圖5的操作521和操作522的時序圖。
圖8為描述當易失性存儲器裝置410_0和410_1的命令地址延時cal的值之差dcal等于或大于trcd并小于trp時的優點的時序圖。
圖9為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)的圖。
圖10為說明根據另一個實施例的非易失性雙列直插式存儲器模塊(nvdimm)的圖。
圖11為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)中的備份操作的流程圖。
圖12為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)中的恢復操作的流程圖。
圖13為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)中的掉電中斷操作的流程圖。
具體實施方式
下面將參照附圖更詳細地描述各種實施例。然而,本發明可以不同的形式呈現,且不應解釋為限于本文陳述的實施例。而是,提供這些實施例使得本公開內容將是徹底和完整的,并將本發明的范圍充分地傳達給本領域技術人員。本公開內容全文中,在本發明的各附圖和實施例中,相同的參考標記指代相同的部件。
本公開內容涉及非易失性雙列直插式存儲器系統,并提供存儲器系統,其中存儲器模塊中的控制器可獨立地訪問易失性存儲器裝置并共享數據總線和控制總線以減少連接線的數量。此后,為了幫助理解根據實施例的非易失性雙列直插式存儲器系統,將從整個系統的詳細配置依次進行描述。
易失性存儲器裝置的每dram可尋址能力(pda)模式
首先,將對易失性存儲器裝置的每dram可尋址能力(pda)模式和命令地址延時(cal)進行描述。
圖2為說明在易失性存儲器裝置中于每dram可尋址能力(pda)模式下的模式寄存器設置(mrs)的操作的時序圖。
pda模式是指控制對每個易失性存儲器裝置執行的獨立的模式寄存器設置操作的模式。當設置pda模式時,根據第零數據焊盤dq0的信號電平可確定所有模式寄存器設置命令的有效性。在被定義為wl=al+cwl的寫入延時wl從模式寄存器設置命令的應用時間經過之后,當第零數據焊盤dq0的信號電平為“0”時,應用的所有模式寄存器設置命令可被確定為有效,其中wl表示寫入延時,al表示附加延時,cwl表示cas寫入延時。此外,當第零數據焊盤dq0的信號電平為“1”時,應用的所有模式寄存器設置命令可被確定為無效,并因此可以被忽略。
參照圖2,在時間點201處,將模式寄存器設置命令mrs應用于易失性存儲器裝置。在時間點202處,當從時間點201經過對應于寫入延時wl的時間時,第零數據焊盤dq0的信號電平轉變為“0”,并保持預定時間,其中wl=al+cwl。因此,在時間點201處應用的模式寄存器設置命令mrs被確定為有效,并且在tmrd_pda期間通過使用與模式寄存器設置命令mrs一同輸入的地址(未示出)執行易失性存儲器裝置的設置操作,其中tmrd_pda即從時間點203開始的模式寄存器設置命令循環時間。
如果在時間點202處第零數據焊盤dq0的信號電平連續地保持為“1”,則在時間點201處應用的模式寄存器設置命令mrs被確定為無效,并因此被忽略。也就是說,不執行易失性存儲器裝置的設置操作。
易失性存儲器裝置的命令地址延時(cal)
圖3為說明易失性存儲器裝置的命令地址延時(cal)的時序圖。
cal表示待通過控制總線(cmd/addr_bus)傳輸的控制信號中作為參考信號的片選信號cs和剩余信號之間的時間性差異。如果設置cal,則易失性存儲器裝置僅識別控制信號為有效的,該控制信號在從片選信號cs的啟用時間經過對應于cal的時間之后被輸入。可通過模式寄存器設置(mrs)設置cal的值。
圖3示出當cal被設置為3(3個時鐘周期)時的操作。在時間點302處,即當在時間點301之后經過3個時鐘時,當片選信號cs啟用低電平時,將命令cmd和地址addr應用于易失性存儲器裝置。然后,易失性存儲器裝置可識別在時間點302處應用的命令cmd和地址addr為有效的。如果在與啟用片選信號cs時的時間點301相同的時間點處或在從啟用片選信號cs時的時間點301經過1個時鐘或2個時鐘的時間點處將命令cmd和地址addr應用于易失性存儲器裝置,則易失性存儲器裝置不識別命令cmd和地址addr為有效的。
由于也在當與cal對應的時間即3個時鐘從啟用片選信號cs時的各自時間點303和時間點305經過時的時間點304和時間點306處應用命令cmd和地址addr,因此在時間點304和時間點306處應用的命令cmd和地址addr可被易失性存儲器裝置識別為有效的。
雙列直插式存儲器模塊(dimm)的基本配置
圖4為說明根據實施例的存儲器系統的框圖。圖4例示了雙列直插式存儲器模塊(dimm)的基本配置。
參照圖4,存儲器系統可包括控制器400、第一易失性存儲器裝置410_0、第二易失性存儲器裝置410_1、控制總線cmd/addr_bus和數據總線data_bus。
通過控制總線cmd/addr_bus將控制信號從控制器400傳輸至易失性存儲器裝置410_0和410_1。控制信號可包括命令cmd、地址addr和時鐘ck。命令cmd可包括多個信號。例如命令cmd可包括激活信號(act)、行地址選通信號(ras)、列地址選通信號(cas)和片選信號(cs)。當片選信號cs是包含于命令cmd中的信號時,片選信號cs分別示于圖中以表示易失性存儲器裝置410_0和410_1共享相同的片選信號cs。地址addr可包括多個地址。例如,地址addr可包括多位存儲庫組(bankgroup)地址、多位存儲庫地址和多位正常地址。可將時鐘ck從控制器400傳輸至易失性存儲器裝置410_0和410_1以用于易失性存儲器裝置410_0和410_1的同步操作。可以包括時鐘(ck_t)和通過反轉時鐘(ck_t)取得的時鐘條(clockbar)(ck_c)的差分法傳輸時鐘ck。
數據總線data_bus可在控制器400與易失性存儲器裝置410_0和410_1之間傳輸多位數據data0-data3。各自的易失性存儲器裝置410_0和410_1設置有與數據總線data_bus的數據線data0-data3聯接的數據焊盤dq0-dq3。具有不同數字的數據線data0和data1可聯接至各自的易失性存儲器裝置410_0和410_1的數據焊盤dq0,其中數據焊盤dq0在數據焊盤dq0-dq3中指定。指定的數據焊盤dq0可以是用于設置延時用于識別控制總線cmd/addr_bus上的控制信號的延時的數據焊盤。
控制器400可通過控制總線cmd/addr_bus控制易失性存儲器裝置410_0和410_1,并可通過數據總線data_bus與易失性存儲器裝置410_0和410_1交換數據。控制器400可設置在雙列直插式存儲器模塊(dimm)中,可設置延時為不同的值以允許易失性存儲器裝置410_0和410_1識別控制總線md/addr_bus上的信號,并且可通過使用延時訪問易失性存儲器裝置410_0和410_1之間所需的易失性存儲器裝置。下面將參照圖5-圖7b對其進行詳細描述。
第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1可共享控制總線cmd/addr_bus和數據總線data_bus。第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1也可共享片選信號cs。第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1可對于待通過控制總線cmd/addr_bus傳輸的控制信號設置有不同延時。延時可能意味著控制總線cmd/addr_bus上的信號中作為延時參考的片選信號cs與剩余信號cmd和addr之間的時間性差異。由于第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1相對于控制總線cmd/addr_bus設置有不同延時的事實,控制器400可獨立地訪問第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1,下面將參照圖5-圖7b對其進行詳細的描述。
如可從圖4中看出,用于識別第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1的信號傳輸線未單獨分配給第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1。然而,控制器400可分別訪問第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1,這將在下面進行描述。
dimm的基本cal設置操作
圖5為說明圖4中所示的存儲器系統的操作的流程圖。
參照圖5,存儲器系統的操作可分為操作510和操作520。操作510用于控制器400對通過第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1的控制總線cmd/addr_bus傳輸的控制信號設置不同延時。操作520用于控制器400分別訪問第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1。
首先,控制器400可控制第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1進入每dram可尋址能力(pda)模式(操作511)。這可通過應用命令cmd為對應于模式寄存器設置命令(mrs)的組合和應用地址addr為對應于進入pda模式的組合來實施。
進入pda模式之后,第一易失性存儲器裝置410_0的對應于控制總線cmd/addr_bus的延時,即第一易失性存儲器(vm)裝置410_0的命令地址延時cal可被設置為“0”(操作512)。這可通過應用命令cmd為對應于模式寄存器設置命令(mrs)的組合、應用地址addr為對應于cal設置為“0”的組合以及在自命令cmd的應用時間經過寫入延時wl(wl=al+cwl)之后應用對應于第一易失性存儲器裝置410_0的第零數據焊盤dq0的第零數據線data0的信號為“0”電平來實施。
參照圖6,在時間點601處應用用于設置cal為“0”的命令/地址cmd/addr,數據線data0在自時間點601經過對應于寫入延時wl的時間時的時間點602處的電平為“0”。由于數據線data1在時間點602處的電平為“1”,因此第二易失性存儲器裝置410_1忽略在時間點601處應用的命令cmd。
再次參照圖5,第二易失性存儲器(vm)裝置410_1的對應于控制總線cmd/addr_bus的延時,即第二易失性存儲器裝置410_1的命令地址延時(cal)可被設置為“3”(操作513)。這可通過應用命令cmd為對應于模式寄存器設置命令(mrs)的組合、應用地址addr為對應于cal設置為“3”的組合以及在自命令cmd的應用時間經過寫入延時wl(wl=al+cwl)之后應用對應于第二易失性存儲器裝置410_1的第零數據焊盤dq0的第一數據線data1的信號為“0”電平來實施。
再次參照圖6,可以確認,在時間點603處應用用于設置cal為“3”的命令/地址cmd/addr,數據線data1在自時間點603經過對應于寫入延時wl的時間時的時間點604處的電平為“0”。由于數據線data0在時間點604處的電平為“1”,因此第一易失性存儲器裝置410_1忽略在時間點603處應用的命令cmd。
再次參照圖5,如果易失性存儲器裝置410_0和410_1的延時設置完成,則可結束pda模式(操作514)。
由于彼此不同地設置第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1的命令地址延時cal,因此通過在片選信號cs的啟用時間應用命令/地址cmd/addr,控制器400可訪問第一易失性存儲器裝置410_0(操作521),或者通過在自片選信號cs的啟用時間開始的3個時鐘之后應用命令/地址cmd/addr,控制器400可訪問第二易失性存儲器裝置410_1(操作522)。圖7a和圖7b為表示圖5的操作521和操作522的時序圖。
參照圖7a和圖7b,在與片選信號cs的啟用時間相同的時間點701、703、705、707、709和711處應用的命令cmd由第一易失性存儲器裝置410_0識別并操作第一易失性存儲器裝置410_0,在自片選信號cs的啟用時間的3個時鐘之后的時間點702、704、706、708、710和712處應用的命令cmd由第二易失性存儲器裝置410_1識別并操作第二易失性存儲器裝置410_1。在附圖中,參考符號nop表示未指示任何操作的非操作狀態。如在時間點701、702、703、704、707、708、709和710處的操作中,僅訪問第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1中的一個易失性存儲器裝置是可能的。如在時間點705、706、711和712處的操作中,通過不僅在片選信號cs的啟用時間處應用有效的命令cmd而且在自片選信號cs的啟用時間的3個時鐘之后應用有效的命令cmd,訪問第一易失性存儲器裝置410_0和第二易失性存儲器裝置410_1兩者是可能的。
根據以上參考圖4-圖7b描述的實施例,易失性存儲器裝置410_0和410_1共享控制總線cmd/addr_bus和數據總線data_bus,但具有相對于控制總線cmd/addr_bus的不同延時。通過改變通過控制總線cmd/addr_bus應用的信號的延時,控制器400可訪問易失性存儲器裝置410_0和410_1之間的期望訪問的易失性存儲器裝置。因此,沒有必要添加任何線以便獨立地控制易失性存儲器裝置410_0和410_1。
雖然在以上實施例中例示了通過控制器400設置易失性存儲器裝置410_0和410_1具有相對于控制總線cmd/addr_bus的不同延時,但這僅用于說明的目的,且應注意的是,易失性存儲器裝置410_0和410_1可被編程為具有永久不同的延時。例如,當制造易失性存儲器裝置410_0和410_1時,易失性存儲器裝置410_0和410_1相對于控制總線cmd/addr_bus的延時可以是固定的。再例如,在制造易失性存儲器裝置410_0和410_1之后,通過永久設置例如使用熔斷電路的設置,易失性存儲器裝置410_0和410_1相對于控制總線cmd/addr_bus的延時可以是固定的。
此外,易失性存儲器裝置410_0和410_1之間的命令地址延時cal的值之差可等于或大于行地址與列地址的延時時間trcd(ras與cas的延時)。此外,易失性存儲器裝置410_0和410_1之間的命令地址延時cal的值之差可小于行預充電時間trp。也就是說,dcal(cal差)≥trcd,且dcal<trp。
圖8為描述當易失性存儲器裝置410_0和410_1的命令地址延時cal的值之差dcal等于或大于trcd并小于trp時的優點的圖。參照圖8,將在假設當第一易失性存儲器裝置410_0的cal=0,第二易失性存儲器裝置410_1的cal=3,trcd=3且trp=4時dcal=3的基礎上進行描述。
參照圖8,片選信號cs可在時間點801處啟用,且可通過命令/地址cmd/addr指示激活操作act。然后,通過識別時間點801處的激活操作act,第一易失性存儲器裝置410_0可執行激活操作。
片選信號cs可在時間點802處啟用,且可通過命令/地址cmd/addr指示讀取操作rd。然后,通過識別時間點802處的讀取操作rd,第一易失性存儲器裝置410_0可執行讀取操作。在當在時間點801處啟用片選信號cs后經過3個時鐘時的時間點802處,第二易失性存儲器裝置410_1可識別來自命令/地址cmd/addr的讀取操作rd。然而,由于第二易失性存儲器裝置410_1中沒有執行激活操作,因此第二易失性存儲器裝置410_1可確定由命令/地址cmd/addr指示的讀取操作rd為非法的,并且可不執行讀取操作。如果dcal小于trcd,則由于第二易失性存儲器裝置410_1識別向第一易失性存儲器裝置410_0指示的激活操作act,因此可能發生誤操作。在dcal≥trcd的情況下可防止這樣的誤操作。另外,在當在時間點802處啟用片選信號cs后經過3個時鐘時的時間點803處,第二易失性存儲器裝置410_1可識別來自命令/地址cmd/addr的讀取操作rd。然而,由于第二易失性存儲器裝置410_1中沒有執行激活操作,因此第二易失性存儲器裝置410_1可確定由命令/地址cmd/addr指示的讀取操作rd為非法的,并且可不執行讀取操作。
片選信號cs可在時間點804處啟用,且可通過命令/地址cmd/addr指示預充電操作pcg。然后,通過識別在時間點804處的預充電操作,第一易失性存儲器裝置410_0可執行預充電操作。在當在時間點804處啟用片選信號cs后經過3個時鐘時的時間點805處,第二易失性存儲器裝置410_1可識別來自命令/地址cmd/addr的預充電操作pcg并且可執行預充電操作。由于預充電操作不考慮是否先前已經執行過激活操作,因此甚至第二易失性存儲器裝置410_1也可執行預充電操作。
片選信號cs可在時間點806處啟用,且可通過命令/地址cmd/addr指示激活操作act。然后,通過識別在時間點806處的激活操作,第一易失性存儲器裝置410_0可執行激活操作。如果將dcal設置為大于trp,則由于第二易失性存儲器裝置410_1識別通過命令/地址cmd/addr指示的來自時間點806的激活操作act并執行激活操作,因此可能發生誤操作。當dcal<trp時可防止這種誤操作。
片選信號cs可在時間點807處啟用,且可通過命令/地址cmd/addr指示寫入操作wt。然后,通過識別時間點807處的寫入操作wt,第一易失性存儲器裝置410_0可執行寫入操作。在當在時間點806處啟用片選信號cs后經過3個時鐘時的時間點807處,第二易失性存儲器裝置410_1可識別來自命令/地址cmd/addr的寫入操作wt。然而,由于第二易失性存儲器裝置410_1中沒有執行激活操作,因此第二易失性存儲器裝置410_1可確定由命令/地址cmd/addr指示的寫入操作wt為非法的,并且可不執行寫入操作。在當在時間點807處啟用片選信號cs后經過3個時鐘時的時間點808處,第二易失性存儲器裝置410_1可識別來自命令/地址cmd/addr的寫入操作wt。然而,由于第二易失性存儲器裝置410_1中沒有執行激活操作,因此第二易失性存儲器裝置410_1可確定由命令/地址cmd/addr指示的寫入操作wt為非法的,并且可不執行寫入操作。
如上文參照圖8所描述的,通過以滿足dcal(cal差)≥trcd且dcal<trp的方式設置易失性存儲器裝置410_0和410_1的命令地址延時cal,防止易失性存儲器裝置410_0和410_1執行誤操作是可能的。
nvdimm的配置和操作
圖9說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)900的圖。圖9中,將對根據實施例的示例進行描述,其中在該示例中不同地設置易失性存儲器裝置的命令地址延時cal并獨立地訪問共享數據總線和控制總線的易失性存儲器裝置的方案應用于nvdimm900。圖9中,一起示出構成nvdimm存儲器系統的主機的存儲器控制器9和輔助電源10。nvdimm900是存儲器模塊,當主機的電源不穩定時,該存儲器模塊通過將易失性存儲器裝置的數據備份在非易失性存儲器裝置中的操作防止數據在發生電源故障時丟失。術語vm表示易失性存儲器,術語nvm表示非易失性存儲器。
參照圖9,nvdimm900可包括多個第一易失性存儲器裝置911-914、多個第二易失性存儲器(vm)裝置921-924、非易失性存儲器(nvm)裝置930、控制器940、寄存器950、電源故障檢測器960、第一數據總線data_bus1、第二數據總線data_bus2、控制總線cmd/addr_bus、多個第三數據總線data_bus3_1-data_bus3_4和多個第四數據總線data_bus4_1-data_bus4_4。
當主機的電源host_vdd和host_vss正常時,寄存器950可緩沖從主機的存儲器控制器9通過主機控制總線host_cmd/addr_bus提供的命令、地址和時鐘,并可通過控制總線cmd/addr_bus將命令、地址和時鐘提供給第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924。當主機的電源host_vdd和host_vss正常時,第一易失性存儲器裝置911-914可通過使用與其分別對應的第三數據總線data_bus3_1-data_bus3_4向主機的存儲器控制器9傳輸數據/從主機的存儲器控制器9接收數據,第二易失性存儲器裝置921-924可通過使用與其分別對應的第四數據總線data_bus4_1-data_bus4_4向主機的存儲器控制器9傳輸數據/從主機的存儲器控制器9接收數據。也就是說,當主機的電源host_vdd和host_vss正常時,第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924可通過使用第三數據總線data_bus3_1-data_bus3_4和第四數據總線data_bus4_1-data_bus4_4中與其對應的獨立的數據總線與主機的存儲器控制器9通信。
當電源故障檢測器960檢測主機的電源host_vdd和host_vss故障時,即形成主機的電源host_vdd和host_vss的電壓的電平變得不穩定時,主機的電源host_vdd和host_vss向nvdimm900的供應被中斷。然后,將輔助電源10的應急電源emg_vdd和emg_vss供應至nvdimm900。輔助電源10可通過使用大容量電容器例如超級電容器實施,并可在將第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924的數據備份在非易失性存儲器裝置930中時供應應急電源emg_vdd和emg_vss。雖然圖9中示出輔助電源10設置在nvdimm900外部,但輔助電源10也可設置在nvdimm900內部。此外,當檢測到主機的電源host_vdd和host_vss故障時,電源故障檢測器960可通知控制器940故障。
當電源故障檢測器960通知主機的電源host_vdd和host_vss故障時,對第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924的控制從主機的存儲器控制器9轉換至nvdimm900的控制器940。寄存器950可緩沖由控制器940而不是主機的存儲器控制器9提供的命令、地址和時鐘,并可通過控制總線cmd/addr_bus將命令、地址和時鐘提供給第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924。第一易失性存儲器裝置911-914可通過使用第一數據總線data_bus1與控制器940交換數據,第二易失性存儲器裝置921-924可通過使用第二數據總線data_bus2與控制器940交換數據。控制器940可通過分別使用控制總線cmd/addr_bus、第一數據總線data_bus1和第二數據總線data_bus2讀取第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924的數據,并可將讀取數據存儲即備份在非易失性存儲器裝置930中。
在主機的電源host_vdd和host_vss中發生故障時備份在非易失性存儲器裝置930中的第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924的數據,在主機的電源host_vdd和host_vss恢復至正常狀態之后,可傳輸至第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924并存儲在第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924中。這樣的恢復操作可根據控制器940的控制執行,在完成恢復之后,對第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924的控制可從nvdimm900的控制器940轉換至主機的存儲器控制器9。
在控制器940和第一易失性存儲器裝置911-914之間,僅存在控制總線cmd/addr_bus和第一數據總線data_bus1。也就是說,所有的第一易失性存儲器裝置911-914在與控制器940通訊時共享相同的控制總線和數據總線。同樣,在控制器940和第二易失性存儲器裝置921-924之間,僅存在控制總線cmd/addr_bus和第二數據總線data_bus2。也就是說,所有的第二易失性存儲器裝置921-924在與控制器940通訊時共享相同的控制總線和數據總線。然而,控制器940可獨立地訪問第一易失性存儲器裝置911-914中的各易失性存儲器裝置,并可獨立地訪問第二易失性存儲器裝置921-924中的各易失性存儲器裝置。在這點上,上文參照圖2-圖8并結合共享控制總線cmd/addr_bus和數據總線data_bus的nvdimm900的配置和操作進行了描述。關于與nvdimm中的數據備份和恢復相關的獨立操作,稍后將參照圖11和圖12進行描述。
第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924可以為動態隨機存取存儲器(dram)或可以不僅為dram還可以為不同種類的易失性存儲器裝置。非易失性存儲器裝置930可以為nand閃存。然而,非易失性存儲器裝置930并不限于此,且可以為任何種類的非易失性存儲器裝置,諸如nor閃存、電阻式隨機存取存儲器(rram)、相變ram(pram)、磁性ram(mram)或自旋轉移力矩mram(stt-mram)。
圖9中所示的nvdimm900中的部件可彼此合并或分離。
例如,控制器940、寄存器950和電源故障檢測器960可被配置為一個芯片或可被配置為多個芯片。此外,nvdimm900中使用的第一易失性存儲器裝置911-914、第二易失性存儲器裝置921-924和非易失性存儲器裝置930的數量可與圖9所示不同。
圖10為說明根據另一個實施例的非易失性雙列直插式存儲器模塊(nvdimm)900的配置圖。
在圖10中,當與圖9比較時,可添加多路復用器1101-1108,并且4個數據焊盤dq0-dq3可被用于第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924中的每一個中。術語vm表示易失性存儲器,術語nvm表示非易失性存儲器。
通過多路復用器1101-1104,當第一易失性存儲器裝置911-914與主機的存儲器控制器9通信時,第一易失性存儲器裝置911-914的數據焊盤dq0-dq3與第三數據總線data_bus3_1-data_bus3_4可被聯接,并且當第一易失性存儲器裝置911-914與控制器940通信時,第一易失性存儲器裝置911-914的數據焊盤dq0-dq3與第一數據總線data_bus1可被聯接。
通過多路復用器1105-1108,當第二易失性存儲器裝置921-924與主機的存儲器控制器9通信時,第二易失性存儲器裝置921-924的數據焊盤dq0-dq3與第四數據總線data_bus4_1-data_bus4_4可被聯接,并且當第二易失性存儲器裝置921-924與控制器940通信時,第二易失性存儲器裝置921-924的數據焊盤dq0-dq3與第二數據總線data_bus2可被聯接。
由于除了添加多路復用器1101-1108和4個數據焊盤dq0-dq3被用于第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924中的每一個中之外,圖10的nvdimm900以與上文參照圖9所述相同的方式操作,因此這里將省略進一步的細節描述。
掉電備份操作
圖11為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)中的備份操作的流程圖。在圖11中,術語vm表示易失性存儲器,術語nvm表示非易失性存儲器。
參照圖11,在圖9中所示的nvdimm900中,第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924在正常時間與主機的存儲器控制器9通信,并且通過主機的存儲器控制器9執行對易失性存儲器裝置911-914和921-924的控制(步驟s1110)。雖然第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924共享相同的控制總線cmd/addr_bus,但針對易失性存儲器裝置911-914和921-924獨立地設置數據總線data_bus3_1-data_bus3_4和data_bus4_1-data_bus4_4。因此,與nvdimm900的控制器940不同,主機的存儲器控制器9可獨立地向易失性存儲器裝置911-914和921-924傳輸不同的數據/獨立地從易失性存儲器裝置911-914和921-924接收不同的數據。
在步驟s1120中,觸發條件可被滿足。如果滿足觸發條件,則過程可繼續進行至步驟s1130。如果不滿足觸發條件,則過程可進行至步驟s1110。觸發條件是用于將第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924的數據備份在非易失性存儲器裝置930中的條件。例如,主機的電源host_vdd和host_vss中檢測到故障可滿足觸發條件。可選地,當通過主機的存儲器控制器9的指示執行備份操作時,主機的存儲器控制器9的備份操作的指示可滿足觸發條件。
在步驟s1130中,對易失性存儲器裝置911-914和921-924的控制可從主機的存儲器控制器9轉換至nvdimm900的控制器940。進一步地,nvdimm900使用的電源從主機的電源host_vdd和host_vss轉換至輔助電源10供應的應急電源emg_vdd和emg_vss。此外,由于控制主體轉換至控制器940,因此第一易失性存儲器裝置911-914使用的數據總線從第三數據總線data_bus3_1-data_bus3_4轉換至第一數據總線data_bus1,并且第二易失性存儲器裝置921-924使用的數據總線從第四數據總線data_bus4_1-data_bus4_4轉換至第二數據總線data_bus2。
在步驟s1140中,控制器940獨立地對共享控制總線cmd/addr_bus和數據總線data_bus1和data_bus2的易失性存儲器裝置911-914和921-924設置命令地址延時cal。
再次參照圖9,各個第一易失性存儲器裝置911-914和各個第二易失性存儲器裝置921-924均包括8個數據焊盤dq0-dq7。在數據焊盤dq0-dq7中,4個數據焊盤dq0-dq3可與第一數據總線data_bus1和第二數據總線data_bus2聯接,4個剩余數據焊盤dq4-dq7可與第三數據總線data_bus3_1-data_bus3_4和第四數據總線data_bus4_1-data_bus4_4聯接。可通過控制器940的指示改變第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924使用的數據總線。第一易失性存儲器裝置911-914的第零數據焊盤dq0可分別與構成第一數據總線data_bus1的數據線中的不同數據線聯接,第二易失性存儲器裝置921-924的第零數據焊盤dq0可分別與構成第二數據總線data_bus2的數據線中的不同數據線聯接。通過這樣,第一易失性存儲器裝置911-914可獨立地進入pda模式,且第二易失性存儲器裝置921-924可獨立地進入pda模式。
例如,這可通過將第一易失性存儲器裝置911和第二易失性存儲器裝置921,以下稱為第一易失性存儲器組,的命令地址延時cal設置為第一值例如0,并通過將剩余的易失性存儲器裝置912-914和922-924,即除第一易失性存儲器組911和921之外的易失性存儲器裝置,的命令地址延時cal設置為不同于第一值的第二值例如3,來實現。
再次參照圖11,在步驟s1150中,通過使用命令地址延時cal的設置,控制器940讀取第一易失性存儲器組911和921。例如,通過在片選信號cs的啟用時間應用命令/地址cmd/addr,控制器400可通過訪問命令地址延時cal被設置為第一值例如0的第一易失性存儲器組911和921讀取第一易失性存儲器組911和921。由于除第一易失性存儲器組911和921之外的剩余易失性存儲器裝置912-914和922-924的命令地址延時cal被設置為第二值例如延時3,因此剩余易失性存儲器裝置912-914和922-924確定來自控制器940的讀取命令為非法的,并且不執行讀取操作。
可從上文參照圖4-圖7b所作的描述理解以下方案,即控制器940在步驟s1140中獨立地對共享控制總線cmd/addr_bus和數據總線data_bus1和data_bus2的易失性存儲器裝置911-914和921-924設置命令地址延時cal,并且在步驟s1150中通過僅訪問易失性存儲器裝置或易失性存儲器組即上述具有特定命令地址延時cal的示例中的第一易失性存儲器組911和921來讀取數據。此外,命令地址延時cal的第一值和第二值之差dcal可以滿足dcal≥trcd且dcal<trp的方式進行設置。
在步驟s1160中,在從易失性存儲器裝置讀取的數據被寫入在非易失性存儲器裝置930中時執行數據的備份。例如,從第一易失性存儲器組911和921讀取的數據可被備份在非易失性存儲器裝置930的存儲器頁面中。
在步驟s1170中,確定非易失性存儲器頁面是否裝滿。如果非易失性存儲器頁面未滿(s1170,否),則過程可回到步驟s1140。
例如,如上所述,如果存儲在第一易失性存儲器組911和921中的數據剩余,則控制器940可通過在步驟s1140中將第一易失性存儲器組911和921的命令地址延時cal設置為第一值例如0并將剩余易失性存儲器裝置912-914和922-924的命令地址延時cal設置為第二值例如3來對存儲在第一易失性存儲器組911和921中的剩余數據執行讀取操作。
再例如,如果存儲在第一易失性存儲器組911和921中的所有數據都被備份,則在步驟s1140中,控制器940可將第一易失性存儲器裝置912和第二易失性存儲器裝置922(以下稱為第二易失性存儲器組)的命令地址延時cal設置為第一值,例如0,并可將剩余的易失性存儲器裝置911、913、914、921、923和924,即除第二易失性存儲器組912和922之外的易失性存儲器裝置,的命令地址延時cal設置為不同于第一值的第二值,例如3。然后,在步驟s1150中,控制器940可通過使用命令地址延時cal的設置讀取第二易失性存儲器組912和922。雖然沒有說明,但通過使用命令地址延時cal的設置選擇性讀取共享控制總線cmd/addr_bus和數據總線data_bus1和data_bus2的易失性存儲器裝置911-914和921-924可通過從第一易失性存儲器組擴展至第n(n為自然數)易失性存儲器組來實施。
當在步驟s1170中確定非易失性存儲器頁面已滿(s1170,是)時,過程繼續進行至步驟s1180,在步驟s1180中編程非易失性存儲器頁面。
當編程非易失性存儲器裝置930的存儲器頁面時,需要檢查沒有從易失性存儲器裝置911-914和921-924讀取的數據是否仍然存在。因此,在編程非易失性存儲器裝置930的存儲器頁面的操作中,控制器940可對易失性存儲器裝置911-914和921-924執行刷新操作。例如,可執行均勻分布刷新周期的分布式刷新操作。分布式刷新是在每個預定時期執行刷新周期使得所有行在迭代任務之前打開,并且當不執行刷新時可讀取或寫入易失性存儲器裝置。
在準備和寫入新的非易失性存儲器頁面時,易失性存儲器裝置911-914和921-924可在功率低于完整操作狀態的功率的低電源模式下操作。在準備和寫入新的非易失性存儲器頁面之后,當備份的數據仍然剩余在易失性存儲器裝置911-914和921-924中以及編程的存儲器頁面存在于非易失性存儲器裝置930中時,易失性存儲器裝置911-914和921-924恢復至完整操作狀態的電源模式使得不連續執行讀取未備份的數據的操作。
在步驟s1190中,確定備份的數據是否剩余在易失性存儲器裝置911-914和921-924中。如果備份的數據不存在,則可完成掉電備份操作,且nvdimm900可關閉。如果備份的數據仍存在,則過程可繼續進行至步驟s1140,并執行剩余數據的備份操作。
上電恢復操作
圖12為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)中的恢復操作的流程圖。在圖12中,術語vm表示易失性存儲器,術語nvm表示非易失性存儲器。
當主機的電源host_vdd和host_vss恢復到正常狀態時或當主機的存儲器控制器9指示恢復操作時,可執行上電恢復操作。由于主機的電源host_vdd和host_vss已恢復到正常狀態,因此可通過使用主機的電源host_vdd和host_vss執行上電恢復操作。
在示例中,在通過執行上文參照圖11所述的掉電備份操作完成備份操作之后nvdimm900被關閉的狀態中,nvdimm900可執行恢復操作。在另一個示例中,當nvdimm900執行備份操作時,即,在備份操作開始之后完成之前,主機的電源host_vdd和host_vss可恢復到正常狀態。在這種情況下,可中斷掉電備份操作,并可執行上電恢復操作。
參照圖12,在任意示例中,nvdimm900的第一易失性存儲器裝置911-914和第二易失性存儲器裝置921-924可處于通過nvdimm900的控制器940控制它們的狀態中(步驟s1210)。
在步驟s1220中,確定是否滿足恢復條件。當滿足恢復條件時(s1220,是),開始將數據從非易失性存儲器裝置930恢復至易失性存儲器裝置911-914和921-924。
在步驟s1230中,控制器940獨立地對共享控制總線cmd/addr_bus和數據總線data_bus1和data_bus2的易失性存儲器裝置911-914和921-924設置命令地址延時cal。如上文參照圖11對備份操作所描述的,第一易失性存儲器裝置911-914可獨立地進入pda模式,且第二易失性存儲器裝置921-924可獨立地進入pda模式。
例如,第一易失性存儲器組911和912的命令地址延時cal可設置為第三值例如0,剩余易失性存儲器裝置912-914和922-924的命令地址延時cal可設置為不同于第三值的第四值例如3。
在步驟s1240中,通過使用命令地址延時cal將從非易失性存儲器裝置930讀取的數據寫入第一易失性存儲器組911和921中,可執行至第一易失性存儲器組911和921的數據恢復。
在步驟s1250中,確定恢復的數據是否剩余在非易失性存儲器裝置930中。當恢復的數據仍存在時,過程可繼續進行至步驟s1230,并且可對剩余的數據執行恢復操作。
例如,當對第一易失性存儲器組911和921的數據恢復完成時,在步驟s1230中,控制器940可將第二易失性存儲器組912和922的命令地址延時cal設置為第三值例如0,并可將剩余易失性存儲器裝置911、913、914、921、923和924的命令地址延時cal設置為不同于第三值的第四值例如3。然后,在步驟s1240中,通過使用命令地址延時cal的設置,控制器940可將從非易失性存儲器裝置930讀取的數據恢復至第二易失性存儲器組912和922。也可通過以下步驟執行對除第一易失性存儲器組911和921以及第二易失性存儲器組912和922之外的剩余易失性存儲器裝置913、914、923和924的數據恢復操作:將第n易失性存儲器組的命令地址延時cal設置為第三值,其中,n為自然數;將剩余易失性存儲器裝置,即除第n易失性存儲器組之外的易失性存儲器裝置,的命令地址延時cal設置為第四值;以及然后恢復從非易失性存儲器裝置930讀取的數據。命令地址延時的cal的第三值和第四值之差dcal可以滿足dcal≥trcd且dcal<trp的方式設置。
當在步驟s1250中確定恢復的數據不存在時,數據恢復操作基本上完成。然而,為了為主機的電源host_vdd和host_vss再次掉電的情況做準備,在對易失性存儲器裝置911-914和921-924的控制被轉換至主機的存儲器控制器9之前,需要確保非易失性存儲器裝置930有足夠的容量,即存儲空間以備份存儲在易失性存儲器裝置911-914和921-924中的數據。
在步驟s1260中,確定非易失性存儲器裝置930中是否存在足夠數據備份的擦除塊。例如,確定非易失性存儲器裝置930中是否存在足夠量的擦除塊以備份易失性存儲器裝置911-914和921-924的整個容量或者易失性存儲器裝置911-914和921-924的存儲數據的使用量或有效范圍。如果非易失性存儲器裝置930中不存在足夠的擦除塊(s1260,否),則擦除非易失性存儲器裝置930中的新塊(步驟s1270)。
如果非易失性存儲器裝置930中存在足夠的擦除塊(s1260,是),則將對易失性存儲器裝置911-914和921-924的控制從nvdimm900的控制器940轉換至主機的存儲器控制器9(步驟s1280),并完成上電恢復操作。
此后,nvdimm900可由主機的存儲器控制器9使用,并且可以與上文參照圖11描述的步驟s1110相同的狀態運行。例如,可將由第一易失性存儲器裝置911-914使用的數據總線從第一數據總線data_bus1轉換至第三數據總線data_bus3_1-data_bus3_4,可將由第二易失性存儲器裝置921-924使用的數據總線從第二數據總線data_bus2轉換至第四數據總線data_bus4_1-data_bus4_4。
掉電中斷操作
圖13為說明根據實施例的非易失性雙列直插式存儲器模塊(nvdimm)中的掉電中斷操作的流程圖。在圖13中,術語vm表示易失性存儲器,術語nvm表示非易失性存儲器。
當電源故障檢測器960檢測主機的電源host_vdd和host_vss中發生故障或主機的存儲器控制器9指示備份操作時,如上文參照圖11所述地執行掉電備份操作。當執行掉電備份操作時,即在備份操作開始之后完成之前,主機的電源host_vdd和host_vss可恢復至正常狀態并可恢復主機的電源。在這種情況下,需要中斷備份操作并盡快允許主機的存儲器控制器9使用nvdimm900的易失性存儲器裝置911-914和921-924。下文中,將對這樣的掉電中斷操作進行描述。
參照圖13,在步驟s1310中,執行上文參照圖11所述的掉電備份操作,即從當滿足觸發條件實際上開始備份任務之后至備份任務完成之前的操作。
在步驟s1320中,確定主機的電源host_vdd和host_vss是否恢復。例如,當主機的電源host_vdd和host_vss恢復至正常狀態并供應給nvdimm900或者從主機的存儲器控制器9接收與其對應的信號時,可確定主機的電源host_vdd和host_vss恢復。
在掉電中斷操作中,由于nvdimm900還沒有完成掉電備份操作,因此nvdimm900處于關閉之前的狀態,易失性存儲器裝置911-914和921-924處于數據仍存儲于其中的狀態。因此,如同在上電恢復操作中,可不需要數據恢復過程。然而,由于在數據備份過程中編程非易失性存儲器裝置930的存儲器頁面,因此可能不能為可能發生的主機的電源host_vdd和host_vss故障做準備。因此,在確保非易失性存儲器裝置930的空間能夠備份nvdimm900的易失性存儲器裝置911-914和921-924之后,將控制轉換至主機的存儲器控制器9可能是必要的。
在步驟s1330中,確定非易失性存儲器裝置930中是否存在足夠數據備份的擦除塊。例如,確定非易失性存儲器裝置930中是否存在足夠量的擦除塊以備份易失性存儲器裝置911-914和921-924的整個容量或者易失性存儲器裝置911-914和921-924的存儲數據的使用量或有效范圍。
當非易失性存儲器裝置930中存在足夠的擦除塊時(s1330,是),將對易失性存儲器裝置911-914和921-924的控制從nvdimm900的控制器940轉換至主機的存儲器控制器9(步驟s1340),并且主機的存儲器控制器9可立即使用nvdimm900。
然而,如果非易失性存儲器裝置930中不存在足夠的擦除塊(s1330,否),則擦除非易失性存儲器裝置930中的新塊,從而為可能發生的主機的電源host_vdd和host_vss故障做準備(步驟s1350)。
這里,從非易失性存儲器裝置930擦除的塊可包括從易失性存儲器裝置911-914和921-924備份的數據。當在掉電中斷操作中再次發生主機的電源host_vdd和host_vss故障時,不再次從開始執行圖11所示的整個掉電備份操作,優先僅備份在擦除塊中備份的數據然后在中斷時間中斷的備份操作的優勢可在于,可快速實施備份任務并且可減少具有有限電量的輔助電源10的應急電源emg_vdd和emg_vss的消耗。
在步驟s1360中,確定是否滿足觸發條件。如上所述,觸發條件可以是檢測到主機的電源host_vdd和host_vss故障或來自主機的存儲器控制器9的備份指示。當不滿足觸發條件時,過程返回至步驟s1330。
當確定滿足觸發條件時(s1360,是),在步驟s1370中,具有與擦除塊中備份的數據相對應的數據的易失性存儲器區域在非易失性存儲器裝置930中備份。
例如,當第一易失性存儲器裝置911或第一易失性存儲器組911和921的數據在非易失性存儲器裝置930的擦除塊中備份時,nvdimm900的控制器940可將第一易失性存儲器裝置911或第一易失性存儲器組911和921的命令地址延時cal設置為第五值,例如0。然后,在將剩余的易失性存儲器裝置的命令地址延時cal設置為第六值例如3之后,可通過使用命令地址延時cal的設置值選擇并讀取具有對應于非易失性存儲器裝置930的擦除塊的數據的易失性存儲器區域。將讀取數據再次備份在非易失性存儲器裝置930中。在完成步驟s1370的選擇性備份操作之后,可恢復在掉電中斷操作開始時中斷的掉電備份操作(步驟s1380)。
如從以上描述中明顯的是,當nvdimm900由于主機的電源host_vdd和host_vss的故障和恢復執行備份操作和恢復操作時,nvdimm900的第一易失性存儲器裝置911-914在與控制器940通信時共享控制總線cmd/addr_bus和第一數據總線data_bus1,nvdimm900的第二易失性存儲器裝置921-924在與控制器940通信時共享控制總線cmd/addr_bus和第二數據總線data_bus2。控制器940可通過將命令地址延時cal設置為不同值而獨立地訪問第一易失性存儲器裝置911-914來備份和恢復數據。同樣,控制器940可通過將命令地址延時cal設置為不同值而獨立地訪問第二易失性存儲器裝置921-924來備份和恢復數據。
在一個或多個示例性實施例中,本文描述的功能可在硬件、軟件、固件或其任意組合中實現。如果在軟件中實現,則功能可作為機器可讀介質上的一個或多個指令或編碼即諸如計算機可讀介質的計算機程序產品被存儲或傳輸。計算機可讀介質包括通信介質,其包括計算機存儲介質和幫助計算機程序從一個地方轉移到另一個地方的任何介質。存儲介質可以是可通過計算機訪問的任何可用的介質。在非限制性示例中,這樣的計算機可讀介質可通過ram、rom、eeprom、cd-rom、光盤存儲器裝置、磁盤存儲器裝置、磁存儲器裝置或計算機訪問,并且可包括可用于攜帶或存儲指令或數據結構形式的所期望的程序編碼的任何介質。本文使用的磁盤和光碟(disc)包括光碟(cd)、激光盤、光盤、數字通用光盤(dvd)、軟盤和藍光光盤,其中磁盤通常通過磁再現數據,而光碟通過光再現數據。因此,其任意組合應包括在計算機可讀介質的范圍內。
雖然為了說明的目的已經描述了各種實施例,但對本領域技術人員將顯而易見的是,在不脫離如權利要求書限定的本發明的精神和范圍的情況下可進行各種改變和修改。