TW202209124A - 於斷電保護備份失敗後支援唯讀模式之固態硬碟 - Google Patents
於斷電保護備份失敗後支援唯讀模式之固態硬碟 Download PDFInfo
- Publication number
- TW202209124A TW202209124A TW110127358A TW110127358A TW202209124A TW 202209124 A TW202209124 A TW 202209124A TW 110127358 A TW110127358 A TW 110127358A TW 110127358 A TW110127358 A TW 110127358A TW 202209124 A TW202209124 A TW 202209124A
- Authority
- TW
- Taiwan
- Prior art keywords
- ssd
- volatile memory
- stored
- data
- directory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種操作固態硬碟(SSD)的方法,包含識別關鍵元資料,該關鍵元資料對應至先前寫入至SSD的資料。因應斷電事件,該方法亦包含將該關鍵元資料儲存於非揮發性記憶體中。進一步地,該方法亦涉及將對應至儲存的該關鍵元資料的第一目錄寫入至該非揮發性記憶體,以及儲存指向該第一目錄的指標。一種固態硬碟(SSD),包含記憶體控制器、非揮發性記憶體以及斷電保護電容器。記憶體控制器被配置以識別關鍵元資料,該關鍵元資料對應至先前寫入至該SSD的資料。該記憶體控制器亦被配置以因應斷電事件,將該關鍵元資料儲存於非揮發性記憶體中,將對應至儲存的該關鍵元資料的第一目錄寫入至該非揮發性記憶體,以及儲存指向該第一目錄的指標。
Description
本發明概括地係關於固態硬碟(Solid State Drive,SSD)實現技術,其被設計以確保SSD在斷電保護(power loss protection,PLP)失敗後可至少進入唯讀模式。
由於SSD的性能優勢,SSD正在超越傳統的旋轉盤硬碟(hard drive)。SSD提供了許多好處,尤其是在降低延遲方面,這使得SSD有利用於資料中心及其他需要大量且快速資料移動的應用。SSD甚至正在取代個人電腦中的傳統旋轉盤硬碟。
為了管理儲存於SSD上的資料,SSD需要記錄某些元資料(metadata),以使其知道儲存於SSD上的資料被進行哪些變更以及資料被儲存於何處。為了減少延遲並保持高處理量,元資料儲存於快速揮發性記憶體中(例如,DRAM),而不是儲存於非揮發性但速度較慢的NAND快閃記憶體中。然而,在發生斷電事件期間,將揮發性記憶體中的元資料及任何其他資料儲存至非揮發性記憶體中是至關重要的(其作為稱作「固化(hardening)」之處理的一部分),以保存資料。
如果元資料遺失,SSD將無法確定哪些資料儲存於何處,因此將不允許對任何資料進行任何存取。此包含喪失對儲存於非揮發性記憶體中的所有資料之存取,即使資料在斷電事件之前已經儲存好。
一些SSD被設計以因應斷電事件固化儲存於揮發性記憶體中的所有資料。該資料不限於使硬碟運作所需的關鍵元資料,更可包含非關鍵元資料及快取資料。非關鍵元資料及緩衝區的資料(雖非永久儲存)可能會遺失而不會完全阻止在電力恢復時對SSD的所有存取。然而,試圖保存所有揮發性資料(包含對SSD運作非至關重要的資料)的結果是,增加用於有效地固化所有資料及指向所有儲存資料之目錄所需的時間量與能量。
在許多傳統SSD中,只有在保存所有資料後才寫入目錄。然而,如果備用電力(例如,由PLP電容器提供的電力)在所有資料保存和目錄寫入之前發生故障,則SSD可能變得完全無法恢復。儘管製造商試圖預測需要多少能量才能完全固化所有揮發性資料,但這並不總是可行的。此外,隨著SSD的老化,某些PLP組件(例如,PLP電容器)可能不再像原本設計的那樣工作。據此,無法保證SSD有足夠的備用電力來完全固化所有揮發性資料並在完全斷電之前建立指向固化資料的目錄。
在一些沒有PLP電容器/備用電力的消費型SSD中看到了一種替代方案,其中元資料日誌在運行時不斷地建立,以便在發生斷電時,SSD韌體可以藉由讀取和重放日誌來重新建立所需的元資料和其他揮發性資料。然而,由於一些原因,這種方案不適合大規模的操作。舉例而言,在運行時不斷地寫入元資料日誌會產生延遲,因為這種寫入會與所有其他對SSD的寫入操作競爭(compete)。此外,設計和維護元資料日誌是一項複雜的任務,不僅會增加開發負擔,還會增加處理負擔,從而降低SSD的效能。
因此,存在一種長期以來未滿足的需求,以建立一種用於在具有PLP保護組件的SSD中保存關鍵元資料的方案,來降低斷電事件使得SSD完全無法運作的風險,但不會降低SSD的效能。
根據本發明之某些實施例,操作SSD涉及識別關鍵元資料,該關鍵元資料對應至先前寫入至該SSD的資料。因應斷電事件,該方法亦包含:將該關鍵元資料儲存於非揮發性記憶體中,將對應至儲存的該關鍵元資料的第一目錄寫入至該非揮發性記憶體,以及儲存指向該第一目錄的指標。
根據本發明之某些實施例,該方法亦包含:將儲存於寫入緩衝區中的資料儲存於該非揮發性記憶體中;以及將非關鍵元資料儲存於該非揮發性記憶體中。根據另一實施例,該方法亦包含:將對應至儲存的該關鍵元資料、儲存的該非關鍵元資料及儲存的該寫入緩衝區的該資料之第二目錄寫入至該非揮發性記憶體;以及更新指標以指向該第二目錄。
根據本發明之其他實施例,該方法亦包含:因應於電力恢復事件,判斷該指標是否指向該第一目錄或對應至儲存的關鍵元資料、儲存的非關鍵元資料及儲存的寫入緩衝區的資料之第二目錄。根據本發明之另外的實施例,該方法亦包含:如果指標指向該第一目錄,則進入唯讀模式;以及如果指標指向該第二目錄,則進入讀寫模式並處理儲存的該寫入緩衝區的該資料。
在本發明之某些其他實施例中,其中,儲存該指標包含將該指標儲存於不同於該非揮發性記憶體的第二非揮發性記憶體中。在本發明之某些實施例中,該第二非揮發性記憶體為SPI-NOR快閃記憶體。
在本發明之若干實施例中,該非揮發性記憶體為NAND快閃記憶體。
在某些其他實施例中,該第一目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。在若干另外的實施例中,該第二目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。
根據本發明之某些實施例,SSD包含記憶體控制器、非揮發性記憶體及斷電保護電容器。記憶體控制器被配置以識別關鍵元資料,該關鍵元資料對應至先前寫入至該SSD的資料,並因應斷電事件,將該關鍵元資料儲存於非揮發性記憶體中,將對應至儲存的該關鍵元資料的第一目錄寫入至該非揮發性記憶體,以及儲存指向該第一目錄的指標。
在若干實施例中,因應斷電事件,該記憶體控制器被配置以將儲存於該寫入緩衝區中的資料儲存於該非揮發性記憶體中,以及將非關鍵元資料儲存於該非揮發性記憶體中。在本發明之若干另外的實施例中,該記憶體控制器亦被配置以將對應至儲存的該關鍵元資料、儲存的該非關鍵元資料及儲存的該寫入緩衝區的該資料之第二目錄寫入至該非揮發性記憶體,以及更新指標以指向該第二目錄。
在本發明之若干其他實施例中,該記憶體控制器亦被配置以因應於電力恢復事件,判斷該指標是否指向該第一目錄或對應至儲存的關鍵元資料、儲存的非關鍵元資料及儲存的寫入緩衝區的資料之第二目錄。在某些另外的實施例中,SSD被配置以如果指標指向該第一目錄,則進入唯讀模式;以及如果指標指向該第二目錄,則進入讀寫模式並處理儲存的該寫入緩衝區的該資料。
在本發明之若干其他實施例中,SSD更包含不同於該非揮發性記憶體的第二非揮發性記憶體,以及該記憶體控制器被配置以將該指標儲存於該第二非揮發性記憶體中。在本發明之更多的實施例中,該第二非揮發性記憶體為SPI-NOR快閃記憶體。
在本發明之某些實施例中,該非揮發性記憶體為NAND快閃記憶體。
在本發明之若干實施例中,該第一目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。根據本發明之某些實施例,該第二目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。
圖1繪示根據本發明之某些實施例的SSD 100,其包含若干不同類型的記憶體。
舉例而言,SSD 100包含主非揮發性記憶體(main non-volatile memory)110。主非揮發性記憶體110作為SSD 100的大量儲存組件運行並被設計以長期儲存資料。在本發明之某些實施例中,主非揮發性記憶體110係為包含複數個NAND晶粒120之NAND快閃記憶體。資料被寫入至各個晶粒120。所屬技術領域中具有通常知識者能理解,在不悖離本發明之精神的情況下,可使用若干其他主揮發性記憶體類型。
SSD 100亦可包含揮發性記憶體160,在不悖離本發明之精神的情況下,該揮發性記憶體可為任意數量之不同類型的揮發性記憶體,諸如SRAM及DRAM。揮發性記憶體160比主非揮發性記憶體110更快速。據此,SSD 100使用揮發性記憶體160來儲存需要快速存取或儲存的資料。
舉例而言,揮發性記憶體160儲存SSD 100的關鍵元資料170。關鍵元資料170儲存關於儲存於主非揮發性記憶體110上之資料的資訊。對於存取主非揮發性記憶體110,關鍵元資料170為不可缺少的。沒有關鍵元資料170,SSD 100無法知道什麼資料儲存於主非揮發性記憶體110上或任何資料儲存於主非揮發性記憶體110中的何處。如果關鍵元資料170遺失,則SSD 100變得無法運作或「被磚化(bricked)」,甚至在關鍵元資料170遺失之前儲存於主非揮發性記憶體110中的資料也無法從SSD 100讀取。關鍵元資料170的遺失可能會阻止SSD成功繼續運作或重新起動(restart)/重新啟動(reboot)(未能成功地運作或重新起動/重新啟動通常被稱作「磚化(bricking)SSD」,因為SSD表現得像磚塊,即完全無反應)。關鍵元資料170可包含邏輯至實體(logical to physical)對映表、超級區塊(superblock)表(table)、超級區塊列表(list)、增長壞塊(grown bad block)表、RAID同位資訊(parity information)、前端使用者配置設定、NAND錯誤及可靠性資訊。然而,所屬技術領域中具有通常知識者能理解,前述僅為範例且構成關鍵元資料170的資訊可在不悖離本發明之精神的情況下有所不同。
揮發性記憶體160亦可儲存非關鍵資料175。非關鍵資料175可包含額外的元資料,例如最近的非完整命令(incomplete command)、未提交的TRIM資訊和除錯日誌。此外,非關鍵資料175可包含緩衝區的資料,諸如寫入緩衝區的資訊。寫入緩衝區的資料被暫時地儲存,直到SSD 100將資料寫入至主非揮發性記憶體110。由於揮發性記憶體160比主非揮發性記憶體110快速,因此將資料儲存為寫入緩衝區的資料會是有利的,以減少系統延遲。所屬技術領域中具有通常知識者能理解,在不悖離本發明之精神的情況下,若干不同類型的資料可為非關鍵資料175的一部分,例如讀取緩衝區中的資料。
如有可能,非關鍵資料175應被固化。舉例而言,固化寫入緩衝區的資料將允許SSD 100回放髒寫入緩衝區並在SSD 100重新獲得電力後相應地儲存寫入資料。
根據本發明之某些實施例,如果非關鍵資料175未被固化,則未能儲存該資料將不會阻止SSD 100運行。在儲存所有非關鍵資料175之前PLP系統發生故障但所有關鍵元資料170都已儲存並可存取的情況下,SSD 100將能夠啟動至唯讀模式並允許存取保存在主非揮發性記憶體110中之先前儲存的資料。
SSD控制器140需要備用電力以便在斷電事件之後固化儲存於揮發性記憶體160中的資料。SSD控制器140可為韌體、硬體、軟體或其組合。在本發明之若干實施例中,PLP電容器130提供上述備用電力。PLP電容器130在正常運行期間充電,並放電直到儲存於揮發性記憶體160中的所有資料都被固化且SSD 100完成完全停止運行(shutdown),或者直到PLP電容器130中的所有備用電力被耗盡為止。儘管圖1繪示PLP電容器130,但所屬技術領域中具有通常知識者能理解,在不悖離本發明之精神的情況下可使用任何數量的其他PLP裝置,諸如電池。
如上所示意,在斷電事件之後(在失去主電力時),SSD控制器140將工作以將儲存於揮發性記憶體160中的資料寫入至主非揮發性記憶體110。然而,由於主非揮發性記憶體110實際上由多個非揮發性記憶體晶粒組成,因此簡單地將資料寫入至主非揮發性記憶體110是不夠的。在沒有額外的資訊的情況下,資料是無序的且幾乎沒有價值,因為在恢復時,SSD控制器140無法確定來自揮發性記憶體160的哪些資料已經儲存於何處。
因此,SSD 100需要儲存可被SSD控制器140所使用以尋找和管理固化資料的目錄或其他資訊。為了定位目錄或關於固化資料的位置和性質的其他資訊,SSD 100可在不同於主非揮發性記憶體110的輔助非揮發性記憶體中儲存指向一個或多個目錄的指標。舉例而言,SSD 100可包含SPI-NOR快閃記憶體150以儲存指向目錄的指標或關於固化資料的其他資訊。使用這種替代的非揮發性記憶體可提供許多優點。首先,該記憶體可比主非揮發性記憶體110更快速且功耗更低。此外,由於SPI-NOR 150不是用於SSD 100的主非揮發性記憶體110,故它可預留給特定任務,且記憶區(memory area)可預先分配並固定。因此,將SPI-NOR 150內之資訊的位置寫死(hardcode)在SSD控制器140的韌體或軟體內是可行的。這將包含指向目錄之指標的位置,使得SSD控制器140可在斷電事件之後要啟動時容易地找到關鍵資訊。儘管圖1論及SPI-NOR 150,但所屬技術領域中具有通常知識者能理解,其他類型的非揮發性記憶體可適用於作為專用的非揮發性記憶體。舉例而言,可預先分配非揮發性記憶體110的一選定部分,使得它位於與在非揮發性記憶體110中儲存使用者資料的超級區塊不同的位置。
然而,傳統SSD只有在所有資料都經過固化後才寫入目錄。事實上,因為這種方案,一些傳統SSD甚至不會記錄揮發性資料的固化順序。據此,如果PLP電容器在SSD完成固化處理之前發生故障,則SSD將無法存取所有先前的揮發性資料。此遺失將包含關鍵元資料,關鍵元資料的遺失將癱瘓SSD。
然而,根據本發明之某些實施例運作的SSD (例如,SSD 100)以顯著降低任何關鍵元資料170遺失之可能性的方式運作,即使PLP電容器130比預期早故障。此將參考圖2及圖3進一步解釋如下。本文所述方案可由SSD控制器140、其他裝置、軟體、韌體或它們的組合來實現。
圖2繪示根據本發明某些實施例之固化資料的處理方法。
當發生斷電事件時,該處理方法從步驟200開始。斷電事件可包含(但不限於)SSD所位於的系統之外部的電力網故障、SSD所位於的系統之內部的電源故障或SSD內部的電源故障。此外,雖然本文所述描述的處理方法係以特定的順序描述,但在某些步驟之間可存在其他步驟,步驟可同時發生,並且某些步驟可在其他步驟開始之前未完全結束。
於步驟210中,SSD通過測量內部電壓及電流的控制器或其他機制來偵測斷電事件。在偵測到斷電事件後,SSD開始固化處理。在不悖離本發明之精神的情況下,控制器、另一元件或多個元件的組合可實現該處理。
於步驟220中,SSD識別儲存於揮發性記憶體中的關鍵元資料。步驟220可在斷電之前執行。舉例而言,韌體可設計以在常規操作期間保存關鍵和非關鍵元資料位址的列表。在SSD的常規操作期間,韌體可在不同的列表中記錄關鍵元資料及非關鍵元資料。此外,所屬技術領域中具有通常知識者能理解,在不悖離本發明之精神的情況下,韌體可用不同的方式(例如,多個表(table))來記錄關鍵和非關鍵元資料。關鍵元資料可為任何SSD所需以啟動SSD並允許對所有使用者資料和查找表進行讀/寫存取所需的資料。非關鍵元資料可為任何有用的資料,但缺少這些資料並不會使SSD無法使用。再者,所屬技術領域中具有通常知識者能理解,構成關鍵元資料或非關鍵元資料的資料可在不悖離本發明之精神的情況下有所不同。
接著,於步驟230中,SSD開始儲存關鍵元資料。不同於許多傳統SSD,本發明某些實施例之SSD優先儲存此必要的資料而不是那些遺失不會「磚化(brick)」SSD的資料。
於步驟240中,SSD寫入對應至關鍵元資料的第一目錄。第一目錄可在儲存所有元資料之後寫入,也可在儲存關鍵元資料時寫入。目錄可儲存於主非揮發性記憶體或其他非揮發性記憶體中,這取決於表的大小、記憶體的可用性及/或其他設計決策/限制。在一些實施例中,目錄為一組條目。在某些實施例中,各條目包含指向資料結構的指標。通常會存在不只一個條目,因為將有多個資料結構作為固化關鍵元資料的一部分被儲存,並且目錄中的各條目將指向儲存關鍵元資料的不同資料結構其中之一。
於步驟250中,SSD儲存指向第一目錄的指標。在本發明的若干實施例中,指標儲存於輔助非揮發性記憶體內的固定位置,例如根據圖1所述的SPI-NOR。所屬技術領域中具有通常知識者能理解,在不悖離本發明之精神的情況下,存在許多不同的可能位置來儲存第一目錄。將指向第一目錄的指標儲存於已知位置能讓SSD在啟動時找到它。SSD使用指標來識別並使用關鍵元資料,以便在斷電事件後提供唯讀存取。
關鍵元資料只是斷電事件之前儲存於揮發性記憶體中的資料的一小部分。據此,儲存關鍵元資料是一個相對快速的處理,不需要像在斷電之前完全固化儲存於揮發性記憶體中的所有資料一樣多的電力。優先儲存關鍵元資料並建立第一目錄而不是等到所有儲存於揮發性記憶體中的資料都被固化,顯著地降低了本發明某些實施例之SSD會「被磚化(bricked)」的可能性,即使SSD的PLP系統比預期早故障。
在步驟260中,SSD開始儲存來自揮發性記憶體的剩餘資料。這可包含(但不限於)非關鍵元資料及寫入緩衝區。在理想情況下,此資料亦會被固化,但如先前所述,如果PLP組件比預期早故障,則此資料的遺失不會阻止對SSD的所有存取。在最壞的情況下,寫入緩衝區中已被主機確認為已成功寫入的資料將會遺失,在此情況下,如果SSD嘗試在後續讀取此資料,則SSD可向主機返回一無法恢復的錯誤狀態,但除此之外,SSD或許能正常讀取及寫入其他資料。所屬技術領域中具有通常知識者能理解,設計選擇可決定此時儲存什麼資料。並非所有非關鍵資料都可能一次儲存,且在決定先固化哪些非關鍵資料時可能會存在一些優先順序的考量。非關鍵資料可在步驟220期間被識別和排序,或者優先順序的考量可發生在處理方法中的另一個時刻。舉例而言,寫入資料傳輸之一部分的小型資料可優先於更大資料傳輸之一部分的資料,因為如果對大資料傳輸僅部分完成固化,則整體資料傳輸一定會被歸類為已失敗。因此,對於給定電量的可用備用電力,最好優先完全固化大多數較小的資料傳輸,而非冒險使用備用電力於因備用電力耗盡無法完全固化的較大傳輸。
於步驟270中,SSD儲存第二目錄於主非揮發性記憶體中。在本發明的某些實施例中,第二目錄被寫入與第一目錄不同的位置,而在其他實施例中,它可被儲存於相同位置或者甚至覆寫第一目錄。第二目錄包含來自第一目錄的所有資訊以及與新固化的非關鍵資料相關的資訊,例如包含指向對應至新固化的資料的額外的資料結構之指標的新條目。
在某些實施例中,在某些非關鍵資料被優先處理的情況下,隨著不同批次的非關鍵資料被固化,可能會有不只一個第二目錄以一批次一批次地建立。
於步驟280中,輔助非揮發性記憶體中的指標被替換為指向第二目錄的指標。然而,在若干實施例中,可將指向第二目錄的指標寫入於輔助非揮發性記憶體內的不同位置中。所屬技術領域中具有通常知識者能理解,可對指向第二目錄的指標的儲存位置做出不同的設計選擇。舉例而言,覆寫第一指標可節省有限的輔助非揮發性儲存器中的空間。另一方面,將指標儲存於不同位置可能有利於判斷在發生完全斷電之前固化處理進行到什麼程度。
一旦指標更新為指向第二目錄,SSD就完成了先前儲存於揮發性記憶體中的所有資料的固化。從斷電事件中恢復後,SSD將能夠重放寫入緩衝區並處理其他非關鍵資料,並返回到假設所有操作都停止而沒有斷電的樣子的地方。
在步驟290,SSD完成停止運行的處理並停止所有活動,直到電力恢復。所屬技術領域中具有通常知識者能理解,可能存在發生完全停止運行之前SSD必須完成的許多不同的處理及任務,且並非所有任務皆按照圖2或本案進行描述。
圖3繪示根據本發明某些實施例之SSD啟動時操作SSD的處理方法。在不悖離本發明之精神的情況下,本文所述的步驟可由控制器、另一組件、軟體及/或其組合來實現。
於步驟300中或之前,SSD恢復供電。
於步驟300中,SSD開始進行初始啟動處理。
在步驟310中,SSD加載其韌體並開始根據韌體進行操作。所屬技術領域中具有通常知識者能理解,韌體表示SSD的初始低階操作指令集,且在不悖離本發明之精神的情況下,可包含軟體及/或硬體的混合。
在若干實施例中,韌體可包含偵測SSD正在從意外斷電事件中恢復的能力。在此實施例中,當從預期的斷電事件(例如,排程停止運行SSD)恢復時,本文所述的步驟可能不會發生。
在步驟320中,SSD判斷是否可找到在斷電事件之前儲存於揮發性記憶體中的資料的任何目錄。在本發明的某些實施例中,這可藉由檢查在輔助非揮發性記憶體(例如,SPI-NOR)內的固定位置處是否可得到指向目錄的任何指標來完成。然而,所屬技術領域中具有通常知識者能理解,可使用若干不同的技術來判斷目錄是否被寫入且是否可存取,例如設定旗標(flag),其指示某個目錄及指向該目錄的指標係在SSD完全斷電或停止運行之前成功保存。此外,所屬技術領域中具有通常知識者能理解,判斷是否存在任何目錄的處理可與判斷存在什麼類型的目錄的處理為同一個處理的一部分。
如果沒有識別出目錄,則處理方法以步驟330結束。於步驟330中,SSD無法啟動,因為它沒有關於先前寫入至主非揮發性記憶體之資訊的關鍵元資料。據此,資料對於SSD是無法使用的,且SSD無法執行進一步的操作。如上所說明,藉由先固化關鍵元資料,並在發生斷電事件時,於固化儲存於揮發性記憶體中的任何其他資料之前儲存對應至關鍵元資料的不同目錄,顯著降低了本發明某些實施例之SSD到達步驟330的可能性。在若干實現中,即使SSD無法啟動並執行正常的讀寫資料操作,它也可能能夠回應來自主機的某些命令以提供錯誤狀態及/或錯誤資料日誌;運行診斷輔助工具或工具以幫助識別啟動失敗的原因,以及在若干其他實現中可提供對儲存於主非揮發性記憶體中的資料的基本存取,以使經適當配置的主機能夠執行資料恢復。
於步驟340中,SSD判斷哪一種目錄被儲存。這可以不同方式來完成,包含藉由在輔助非揮發性記憶體內設定旗標或檢查指標是否儲存於輔助非揮發性記憶體內的預定位置。然而,所屬技術領域中具有通常知識者能理解,在不悖離本發明的精神的情況下,可採用許多不同的方法來判斷指標指向哪個目錄。舉例而言,指標可儲存於包含附加屬性之資料結構中(該附加屬性指示指標指向之目錄的類型),或者指標的位址值可用於指示目錄的類型。
如果僅找到第一目錄及/或指向第一目錄的對應指標,則SSD進入步驟350。於步驟350中,SSD啟動至唯讀模式。在唯讀模式下,先前儲存於主非揮發性記憶體中的資料可被存取,但在斷電事件期間正在寫入至SSD的資料會遺失,且無法將新資料寫入至SSD。儘管此結果不是最佳情況,但它比SSD完全無法存取的情況更好,在某些現有技術方法下,當關鍵元資料已固化但沒有對應的目錄來存取該資料時,SSD完全無法存取的情況可能會發生。
另一方面,如果第二目錄及/或其指標被找到且SSD能夠提取第二目錄,則SSD進行到步驟360。於步驟360中,SSD進入讀寫模式且具有完整的功能。此時,可提取先前儲存的資料,並可將新資料寫入SSD。
另外,在某些實施例中,SSD亦可進入步驟370作為恢復處理的一部分。於步驟370中,SSD處理髒寫入緩衝區的資料,其為停止運行處理期間中所保存的寫入緩衝區的資料,但沒有依照正常的操作程序適當地儲存。寫入緩衝區的資料的處理係藉由依照正常的操作程序儲存資料,有效地完成被PLP事件中斷的資料寫入操作。一旦處理髒寫入緩衝區的資料,SSD就可恢復運行,如同沒有發生斷電事件一樣。
本文所述之某些實施例的各種態樣的其他目的、優點及實施例對於發明所屬技術領域中具有通常知識者將會是明白易懂的且在說明書及隨附的圖式的範圍內。舉例而言,但不作為限制,結構或功能元件可以符合本文所述的某些實施例的方式重新排列。類似地,根據本文所述的某些實施例的原理可應用於其他範例,即使本文沒有具體描述這些範例的細節,但其仍在本文所述的某些實施例的範圍內。
進一步地,所屬技術領域中具有通常知識者能理解,本發明的某些態樣(例如,各種控制器)可被實現為硬體、軟體、韌體或其組合。本文所述的某些實施例中的這些元件的描述並非旨在將這些類型的元件的實現限制至單一實現。所屬技術領域中具有通常知識者能理解,在不悖離本發明本身之精神的情況下,存在多種方式來實現本文所述的某些實施例的某些元件。
此外,在不悖離本發明之精神的情況下,遍及本文所述的某些實施例中所提及的元件可被劃分為某些子元件、被組合或被複製。
100:固態硬碟
110:主非揮發性記憶體
120:NAND晶粒
130:斷電保護電容器
140:SSD控制器
150:SPI-NOR快閃記憶體
160:揮發性記憶體
170:關鍵元資料
175:非關鍵資料
200:步驟
210:步驟
220:步驟
230:步驟
240:步驟
250:步驟
260:步驟
270:步驟
280:步驟
290:步驟
300:步驟
310:步驟
320:步驟
330:步驟
340:步驟
350:步驟
360:步驟
370:步驟
[圖1]繪示根據本發明某些實施例之SSD。
[圖2]繪示根據本發明某些實施例之處理斷電事件的處理方法。
[圖3]繪示根據本發明某些實施例之從斷電事件恢復的處理方法。
Claims (20)
- 一種操作固態硬碟(Solid State Drive,SSD)的方法,該方法包含: 識別關鍵元資料(critical metadata),該關鍵元資料對應至先前寫入至該SSD的資料;以及 因應斷電事件: 將該關鍵元資料儲存於非揮發性記憶體中; 將對應至儲存的該關鍵元資料的第一目錄寫入至該非揮發性記憶體;以及 儲存指向該第一目錄的指標。
- 如請求項1之方法,該方法更包含: 將儲存於寫入緩衝區中的資料儲存於該非揮發性記憶體中;以及 將非關鍵元資料儲存於該非揮發性記憶體中。
- 如請求項2之方法,該方法更包含: 將對應至儲存的該關鍵元資料、儲存的該非關鍵元資料及儲存的該寫入緩衝區的該資料之第二目錄寫入至該非揮發性記憶體;以及 更新該指標以指向該第二目錄。
- 如請求項1之方法,該方法更包含: 因應於電力恢復事件,判斷該指標是否指向該第一目錄或對應至儲存的關鍵元資料、儲存的非關鍵元資料及儲存的寫入緩衝區的資料之第二目錄。
- 如請求項4之方法,該方法更包含: 如果該指標指向該第一目錄,則進入唯讀模式;以及 如果該指標指向該第二目錄,則進入讀寫模式並處理儲存的該寫入緩衝區的該資料。
- 如請求項1之方法,其中,儲存該指標包含將該指標儲存於不同於該非揮發性記憶體的第二非揮發性記憶體中。
- 如請求項6之方法,其中,該第二非揮發性記憶體為SPI-NOR快閃記憶體。
- 如請求項1之方法,其中,該非揮發性記憶體為NAND快閃記憶體。
- 如請求項1之方法,其中,該第一目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。
- 如請求項3之方法,其中,該第二目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。
- 一種固態硬碟(SSD),包含: 記憶體控制器; 非揮發性記憶體;以及 斷電保護電容器;其中,該記憶體控制器被配置以: 識別關鍵元資料,該關鍵元資料對應至先前寫入至該SSD的資料;以及 因應斷電事件: 將該關鍵元資料儲存於非揮發性記憶體中; 將對應至儲存的該關鍵元資料的第一目錄寫入至該非揮發性記憶體;以及 儲存指向該第一目錄的指標。
- 如請求項11之SSD,其中,該SSD更包含寫入緩衝區,以及該記憶體控制器更被配置以因應該斷電事件: 將儲存於該寫入緩衝區中的資料儲存於該非揮發性記憶體中;以及 將非關鍵元資料儲存於該非揮發性記憶體中。
- 如請求項12之SSD,其中,該記憶體控制器更被配置以因應該斷電事件: 將對應至儲存的該關鍵元資料、儲存的該非關鍵元資料及儲存的該寫入緩衝區的該資料之第二目錄寫入至該非揮發性記憶體;以及 更新該指標以指向該第二目錄。
- 如請求項11之SSD,其中,該記憶體控制器更被配置以: 因應於電力恢復事件,判斷該指標是否指向該第一目錄或對應至儲存的關鍵元資料、儲存的非關鍵元資料及儲存的寫入緩衝區的資料之第二目錄。
- 如請求項14之SSD,其中,該SSD更被配置以: 如果該指標指向該第一目錄,則進入唯讀模式;以及 如果該指標指向該第二目錄,則進入讀寫模式並處理儲存的該寫入緩衝區的該資料。
- 如請求項11之SSD,其中,該SSD更包含不同於該非揮發性記憶體的第二非揮發性記憶體,以及該記憶體控制器被配置以將該指標儲存於該第二非揮發性記憶體中。
- 如請求項16之SSD,其中,該第二非揮發性記憶體為SPI-NOR快閃記憶體。
- 如請求項10之SSD,其中,該非揮發性記憶體是NAND快閃記憶體。
- 如請求項10之SSD,其中,該第一目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。
- 如請求項12之SSD,其中,該第二目錄包含複數個條目,各該條目指向複數個資料結構中的不同資料結構。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/944,713 US11379141B2 (en) | 2020-07-31 | 2020-07-31 | SSD supporting read-only mode after PLP backup failure |
US16/944,713 | 2020-07-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202209124A true TW202209124A (zh) | 2022-03-01 |
Family
ID=80003183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110127358A TW202209124A (zh) | 2020-07-31 | 2021-07-26 | 於斷電保護備份失敗後支援唯讀模式之固態硬碟 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11379141B2 (zh) |
CN (1) | CN114063901A (zh) |
TW (1) | TW202209124A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3121766A1 (fr) * | 2021-04-08 | 2022-10-14 | Proton World International N.V. | Procédé de stockage en mémoire |
JP2023136083A (ja) * | 2022-03-16 | 2023-09-29 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909851B2 (en) * | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
US8499121B2 (en) * | 2011-08-31 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to access data in non-volatile memory |
US9753649B2 (en) * | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US9652164B2 (en) * | 2015-05-14 | 2017-05-16 | Toshiba Corporation | Solid-state mass storage device and method for processing forced unit access write commands |
US9836232B1 (en) * | 2015-09-30 | 2017-12-05 | Western Digital Technologies, Inc. | Data storage device and method for using secondary non-volatile memory for temporary metadata storage |
US10346072B1 (en) * | 2016-09-30 | 2019-07-09 | Amazon Technologies, Inc. | Dislocated power loss protection charge storage |
US10223272B2 (en) * | 2017-04-25 | 2019-03-05 | Seagate Technology Llc | Latency sensitive metadata object persistence operation for storage device |
KR102277728B1 (ko) * | 2017-07-31 | 2021-07-14 | 삼성전자주식회사 | 데이터 저장 시스템, 데이터 저장 시스템의 데이터 저장 방법, 및 솔리드 스테이트 드라이브의 제조 방법 |
US10949110B2 (en) * | 2018-06-29 | 2021-03-16 | Seagate Technology Llc | Configurable mapping system in a non-volatile memory |
US11301369B2 (en) * | 2019-01-24 | 2022-04-12 | Western Digital Technologies, Inc. | Logical to physical mapping management using low-latency non-volatile memory |
US11294807B2 (en) * | 2019-06-25 | 2022-04-05 | Western Digital Technologies, Inc. | Delayed write failure logging |
US11586385B1 (en) * | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
-
2020
- 2020-07-31 US US16/944,713 patent/US11379141B2/en active Active
-
2021
- 2021-07-26 TW TW110127358A patent/TW202209124A/zh unknown
- 2021-07-30 CN CN202110870434.7A patent/CN114063901A/zh active Pending
-
2022
- 2022-06-01 US US17/830,254 patent/US11960748B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220291857A1 (en) | 2022-09-15 |
US20220035552A1 (en) | 2022-02-03 |
US11960748B2 (en) | 2024-04-16 |
CN114063901A (zh) | 2022-02-18 |
US11379141B2 (en) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210232326A1 (en) | Memory system storing management information and method of controlling same | |
JP4536785B2 (ja) | 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法 | |
US8255614B2 (en) | Information processing device that accesses memory, processor and memory management method | |
US8225058B2 (en) | Memory system managing a size of logs | |
TWI546818B (zh) | 一種具有綠能資料持續模式的裝置驅動器 | |
JP6465806B2 (ja) | ソリッドステートドライブアーキテクチャ | |
US6807630B2 (en) | Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory | |
US8527730B2 (en) | Data updating method, memory system and memory device | |
US8312314B2 (en) | Storage system and control method of storage system | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
US20130191578A1 (en) | Storing cached data in over-provisioned memory in response to power loss | |
US11960748B2 (en) | SSD supporting read-only mode after PLP backup failure | |
JP2013211056A (ja) | フラッシュメモリシステムの高速起動を容易にする方法およびシステム | |
US10423343B2 (en) | Information processing device and memory controller | |
CN112035294B (zh) | 安全日志文件系统及其实现方法和介质 | |
JP2010186341A (ja) | メモリシステム | |
JP2013222435A (ja) | 半導体記憶装置及びその制御方法 | |
JP7318367B2 (ja) | ストレージ制御装置及びストレージ制御プログラム | |
JP2018028830A (ja) | 電子制御装置およびその情報記憶方法 | |
KR102145358B1 (ko) | 변경된 운영체제 환경에서 디스크의 데이터 무결성을 보호하는 방법 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 | |
KR20210022260A (ko) | 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치 | |
JP2003122644A (ja) | 計算機及びその記憶装置 | |
US20220413757A1 (en) | Write Performance by Relocation During Sequential Reads | |
JP2007133535A (ja) | 記憶装置内のファイルシステム | |
CN116126594A (zh) | 一种片上系统的掉电保护方法及系统 |