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