TWI649759B - 資料儲存裝置與將資料寫入記憶體裝置之方法 - Google Patents
資料儲存裝置與將資料寫入記憶體裝置之方法 Download PDFInfo
- Publication number
- TWI649759B TWI649759B TW106133362A TW106133362A TWI649759B TW I649759 B TWI649759 B TW I649759B TW 106133362 A TW106133362 A TW 106133362A TW 106133362 A TW106133362 A TW 106133362A TW I649759 B TWI649759 B TW I649759B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- buffer
- write
- written
- predetermined
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/061—Improving I/O performance
-
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- 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/068—Hybrid storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/72—Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
Abstract
一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括一第一緩存器、一第二緩存器以及一備份記憶體區塊。第一緩存器為一多層單元區塊,第二緩存器為一單層單元區塊。控制器耦接記憶體裝置,接收用以指示將一既定資料寫入記憶體裝置之一寫入指令,並且判斷既定資料是否必須被寫入不同緩存器。當控制器判斷既定資料必須被寫入不同緩存器時,控制器將既定資料中已被寫入第一緩存器之一或多個既定頁面之資料寫入備份記憶體區塊。
Description
本發明係關於一種是用於快閃記憶體裝置之資料處理方法,可有效避免於寫入操作中遭遇突然斷電(sudden power off)時對記憶體裝置內資料所產生的損害。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效的存取控制也變成一個重要的議題。
一般而言,若在編輯快閃記憶體時遭遇突然斷電,正在寫入的資料可能會被破壞。當資料被破壞且無法經由錯誤更正碼修復時,無論其他資料是否仍為正確,都需要放棄對應於同一個寫入指令所寫入的所有資料,如此大幅降低記憶體裝置的效能。為了解決此問題,本發明提出一種資料處理方法,可有效避免於寫入操作中遭遇突然斷電時對記憶體裝置內資料所產生的損害。
本發明提出一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括一第一緩存器、一第二緩存器以及一備份記憶體區塊。第一緩存器為一多層單元區塊,第二緩存器為一單層單元區塊。控制器耦接記憶體裝置,接收用以指示將一既定資料寫入記憶體裝置之一寫入指令,並且判斷既定資料是否必須被寫入不同緩存器。當控制器判斷既定資料必須被寫入不同緩存器時,控制器將既定資料中已被寫入第一緩存器之一或多個既定頁面之資料寫入備份記憶體區塊。
本發明另提出一種資料儲存裝置,包括一記憶體裝置以及一控制器。記憶體裝置包括一第一緩存器、一第二緩存器以及一備份記憶體區塊。第一緩存器為一多層單元區塊,第二緩存器為一單層單元區塊。控制器耦接記憶體裝置,接收用以指示將一既定資料寫入記憶體裝置之一寫入指令,並且判斷既定資料是否將不連續地被寫入第一緩存器。當控制器判斷既定資料將不連續地被寫入第一緩存器時,控制器將既定資料中已被寫入第一緩存器之一或多個既定頁面之資料寫入備份記憶體區塊。
本發明另提出一種將資料寫入一記憶體裝置之方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置與一控制器,記憶體裝置包括一第一緩存器、一第二緩存器以及一備份記憶體區塊,其中第一緩存器為一多層單元區塊,第二緩存器為一單層單元區塊,該方法包括:根據一寫入指令執行一寫入操作,用以將一既定資料寫入該記憶體裝置,其中根據寫入指令執行寫入操作之步驟更包括:於執行寫入操作之過
程中,將既定資料中已被寫入第一緩存器之一或多個既定頁面之資料寫入備份記憶體區塊。
100‧‧‧資料儲存裝置
110A、110B‧‧‧控制器
111‧‧‧微處理器
112、SRAM‧‧‧靜態隨機存取記憶體
113、ROM‧‧‧唯讀記憶體
114‧‧‧ECC引擎
120‧‧‧記憶體裝置
200‧‧‧主機裝置
210‧‧‧介面
300A、300B‧‧‧電子裝置
Backup_Blk‧‧‧備份記憶體區塊
Buffer_1、Buffer_2、Buffer_3‧‧‧緩存器
WQ[0]、WQ[1]、WQ[2]、WQ[3]‧‧‧寫入佇列
第1A圖係顯示根據本發明之一實施例所述之電子裝置範例方塊圖。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置範例方塊圖。
第2圖係顯示根據本發明之一實施例所述之由控制器根據一寫入指令將資料寫入緩存器之示意圖。
第3圖係顯示根據本發明之一實施例所述之將資料寫入一記憶體裝置之方法流程圖。
第4圖係顯示根據本發明之一實施例所述之將資料由受損的記憶體區塊搬移至另一記憶體區塊之示意圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1A圖係顯示根據本發明之一實施例所述之電子裝置方塊圖。電子裝置300A可包括主機裝置200與資料儲存裝置100。電子裝置300A可為行動裝置,例如智慧型手機、智慧型手錶或平板電腦,但不以此為限。
根據本發明之一實施例,資料儲存裝置100可包括控制器110A與記憶體裝置120。控制器110A可至少包括一微處理器111、靜態隨機存取記憶體(Static Random Access Memory,縮寫為SRAM)112、唯讀記憶體(ROM)113與一錯誤更正碼(Error Correction Code,縮寫為ECC)引擎114。記憶體裝置120可包括一或多個非揮發性記憶體,例如,快閃記憶體。
微處理器111可執行運算,並且控制控制器110A內之電路與裝置的運作。靜態隨機存取記憶體112與唯讀記憶體113用以儲存系統資料。ECC引擎114可根據欲寫入記憶體裝置之資料內容產生同位檢查(parity check)位元。
主機裝置200與資料儲存裝置100可透過一既定介面210相互連接。例如,當資料儲存裝置100符合通用快閃記憶體(Universal Flash Storage,縮寫為UFS)之規範時,介面210可為UFS介面,且資料儲存裝置100可透過介面210與主機裝置200連接。又例如,當資料儲存裝置100符合內嵌式記憶體(embedded Multi Media Card,縮寫為eMMC)之規範時,介面210可為MMC介面,且資料儲存裝置100可透過介面210與主機裝置200連接。
第1B圖係顯示根據本發明之另一實施例所述之電子裝置300B範例方塊圖。於此實施例中,SRAM 112被配置於控制器110B外部,並且耦接至控制器110B。
值得注意的是,為簡化說明,第1A圖與第1B圖僅顯示與本發明相關之元件,並且第1A圖與第1B圖僅顯示多種可應用本發明之架構的其中兩種。然而,本發明之實施並不僅
限於第1A圖與第1B圖所示之元件與架構。
根據本發明之一實施例,記憶體裝置120包括複數記憶體區塊。記憶體區塊可進一步被區分為複數單層單元(Single Level Cell,縮寫為SLC)區塊與複數多層單元區塊(Multiple Level Cell,縮寫為MLC)區塊。SLC區塊的每個記憶體單元中儲存一個位元資料,MLC區塊的每個記憶體單元中儲存多個位元資料。例如,根據本發明之一實施例,MLC區塊的每個記憶體單元中儲存兩個位元資料。
各記憶體區塊可包括複數頁面,通常在快閃記憶體中,一個頁面為一個寫入作業的最小資料塊單位。一個物理頁面的大小為固定的,而一個邏輯頁面的大小則可根據韌體編程需求彈性地被設計。
一般而言,為了使MLC區塊的編程能維持穩定狀態,每次編程需寫入多個頁面的資料(諸如二個物理頁面的資料)至MLC區塊,因此記憶體裝置120之SLC區塊以及部分MLC區塊可作用為快取記憶體,或稱緩存器(buffer),用以暫存資料。待緩存器的使用率達到一定程度時,控制器110A/110B再將緩存器儲存的資料寫入另一MLC區塊或將作為緩存器之MLC區塊更新成資料區塊,如此一來,緩存器的記憶體空間可被釋放並可再度被使用。
本發明係應用於使用雙緩存器之資料儲存裝置。根據本發明之一實施例,記憶體裝置120可包括一第一緩存器Buffer_1與一第二緩存器Buffer_2,其中第一緩存器Buffer_1可包括一或多個多層單元(MLC)區塊,第二緩存器Buffer_2可
包括一或多個單層單元(SLC)區塊。記憶體裝置120可更包括一備份記憶體區塊Backup_Blk,備份記憶體區塊Backup_Blk可為一SLC區塊,用以備份第一緩存器Buffer_1之一或多個既定頁面之資料。於其他實施例中,備份記憶體區塊Backup_Blk可為一MLC區塊,本發明不以此為限。
第一緩存器Buffer_1被設定為用以儲存連續或大筆資料,例如,用以儲存複數個連續邏輯頁面之資料,第二緩存器Buffer_2被設定為用以隨機或小筆資料。根據本發明之一實施例,控制器110A/110B可根據一筆寫入指令中所指示欲被寫入之資料的資料量,判斷將資料寫入第一緩存器Buffer_1或第二緩存器Buffer_2。舉例而言,當欲被寫入之資料的資料量大於或等於一臨界值(例如,16K位元組,或者一個物理頁面大小)或者為該臨界值之整數倍時,控制器110A/110B可判斷將資料(或部分之資料)寫入第一緩存器Buffer_1。反之,當欲被寫入之資料的資料量小於臨界值時,控制器110A/110B可判斷將資料寫入第二緩存器Buffer_2。
此外,根據本發明之一實施例,控制器110A/110B自主機裝置200接收用以指示將一既定資料DATA寫入記憶體裝置120之一寫入指令WCMD。既定資料DATA可包括複數頁面(例如,複數邏輯頁面)之資料。舉例而言,既定資料DATA為主機裝置200之主頁面(Host page,HP)0~10的資料,其中一個主頁面可被設定為主機裝置200一次存取作業的資料單位。例如,當一個物理頁面的大小為16K位元組(Byte)時,一個主頁面的大小可被設定為4K位元組。因此,於此實施例中,由於既定資
料DATA的資料量大於或等於臨界值(例如,16K位元組),因此,控制器110A/110B可判斷將既定資料DATA(或部分之既定資料DATA)寫入第一緩存器Buffer_1。
根據本發明之另一實施例,除了依資料量判斷之外,控制器110A/110B可更根據欲寫入記憶體裝置120之既定資料DATA之起始主頁面編號,判斷將資料寫入第一緩存器Buffer_1或第二緩存器Buffer_2。於本發明之一實施例中,由於執行同一個寫入指令WCMD需連續寫入一特定數量(N)的主頁面,因此,當起始主頁面編號為一特定數量(N)的倍數或除以特定數量(N)所得之餘數為0,且既定資料DATA的資料量大於或等於上述臨界值(例如一個物理頁面大小)並且為上述臨界值的整數倍時,控制器110A/110B可判斷將資料寫入第一緩存器Buffer_1。反之,控制器110A/110B可判斷將資料寫入第二緩存器Buffer_2。
根據本發明之一實施例,N為一正整數,並且特定數量N與一邏輯頁面大小及一物理頁面大小相關。根據本發明之一實施例,當臨界值被設定為一個物理頁面大小,且主頁面的大小被設定為4K位元組時,因一物理頁面大小相當於4個主頁面,特定數量N可以設定為4(即,一個物理頁面與一邏輯頁面之比值)。
舉例而言,當欲寫入記憶體裝置120之既定資料DATA為HP 0~HP3時,由於起始主頁面編號0除以4所得之餘數為0,且既定資料DATA的資料量為一個物理頁面大小(即,4個主頁面大小),控制器110A/110B可判斷將資料寫入第一緩存器
Buffer_1。當欲寫入記憶體裝置120之既定資料DATA為HP1~HP4時,即便欲被寫入之資料的資料量大於或等於臨界值,因起始主頁面編號並非為4的倍數(1除以4所得之餘數並非為0),控制器110A/110B仍會判斷將資料寫入第二緩存器Buffer_2。此外,當欲寫入記憶體裝置120之既定資料DATA為HP 0~HP2時,由於欲被寫入之資料的資料量並小於臨界值,控制器110A/110B會判斷將資料寫入第二緩存器Buffer_2。又或者,當欲寫入記憶體裝置120之既定資料DATA為HP 0~HP5時,控制器110A/110B會判斷將資料HP0~HP3寫入第一緩存器Buffer_1,並將資料HP4~HP5寫入第二緩存器Buffer_2。
在使用雙緩存器之資料儲存裝置中,必須為緩存器設定優先權,才能於當兩個緩存器都儲存指向相同邏輯頁面的資料時,判斷出哪個緩存器所儲存之資料為有效。根據本發明之一實施例,第二緩存器Buffer_2的優先權被設定為高於第一緩存器Buffer_1的優先權。如此一來,當兩個緩存器都儲存指向相同邏輯頁面的資料時,控制器110A/110B會判斷第二緩存器Buffer_2所儲存的資料才是有效的資料。
基於上述的優先權設定,控制器110A/110B在執行寫入指令WCMD時,除了根據欲被寫入之既定資料DATA的資料量及/或起始主頁面之編號判斷將資料寫入哪個緩存器之外,還須進一步判斷第二緩存器Buffer_2是否已儲存既定資料DATA之一或多個頁面(即,邏輯頁面,例如,上述之主頁面)之資料。若第二緩存器Buffer_2已儲存既定資料DATA之一或多個頁面之資料,由於第二緩存器Buffer_2具有較高之優先權,
即便控制器110A/110B先根據既定資料DATA的資料量,或進一步根據起始主頁面之編號判斷將既定資料DATA寫入第一緩存器Buffer_1,該一或多個頁面的資料實際上仍需被寫入第二緩存器Buffer_2。
舉例而言,假設第二緩存器Buffer_2已儲存既定資料DATA之主頁面HP 0~HP 15中的主頁面HP 8之資料時,控制器110A/110B判斷將主頁面HP 0~7寫入第一緩存器Buffer_1,主頁面HP 8~11寫入第二緩存器Buffer_2,再將主頁面HP 12~15寫入第一緩存器Buffer_1。於此實施例中,雖主頁面HP 8~11起始主頁面編號8除以4所得之餘數為0,且既定資料DATA的資料量為一個物理頁面大小,但由於第二緩存器Buffer_2已儲存主頁面HP 8之資料,控制器110A/110B仍會判斷將主頁面HP 8~11寫入第二緩存器Buffer_2。
值得注意的是,於此實施例中,由於執行同一個寫入指令WCMD需連續寫入一特定數量的主頁面(例如,一個寫入指令WCMD需連續寫入四個主頁面),因此,當第二緩存器Buffer_2已儲存主頁面HP 8之資料時,包含主頁面HP 8之連續四個主頁面(即,上述之HP 8~11)會被寫入第二緩存器Buffer_2。
根據本發明之一實施例,控制器110A/110B可查詢一既定表格判斷第二緩存器Buffer_2是否已儲存既定資料DATA之一或多個頁面之資料。既定表格可用以紀錄第一緩存器Buffer_1與第二緩存器Buffer_2之各物理頁面所儲存之資料係指向哪個邏輯頁面(例如,上述之主頁面)的位址,因此,控
制器110A/110B可根據既定表格判斷第二緩存器Buffer_2之各物理頁面所儲存之資料是否有指向既定資料DATA之主頁面HP 0~HP 15的位址,若有,則表示第二緩存器Buffer_2已儲存既定資料DATA之至少一個頁面之資料。
根據本發明之一實施例,當既定資料DATA之資料量大於一臨界值,並且第二緩存器Buffer_2已儲存既定資料DATA之複數頁面之至少一者之資料時,控制器110A/110B判斷既定資料DATA必須被寫入不同緩存器。換言之,當既定資料DATA之資料量大於一臨界值,並且第二緩存器Buffer_2已儲存既定資料DATA之複數頁面之至少一者之資料時,控制器110A/110B判斷既定資料DATA將不連續地被寫入第一緩存器Buffer_1,這是因為其中的部分資料要被寫入第二緩存器Buffer_2,因此於執行同一個寫入指令WCMD的過程中,並不會連續地將既定資料DATA的頁面寫入第一緩存器Buffer_1。
根據本發明之另一實施例,當控制器110A/110B根據既定資料DATA之資料量判斷既定資料DATA之至少一部份需被第一緩存器Buffer_1,然而第二緩存器Buffer_2已儲存既定資料DATA之剩餘部分之至少一頁面之資料時,控制器110A/110B判斷既定資料DATA必須被寫入不同緩存器。換言之,當既定資料DATA之資料量大於一臨界值,使得既定資料DATA之至少一部份的連續頁面(所述的連續頁面包含起始主頁面編號為特定數量(N)的倍數或除以特定數量(N)所得之餘數為0的N個連續頁面)會被第一緩存器Buffer_1,而由於第二緩存器Buffer_2已儲存既定資料DATA之剩餘其他頁面之至少一者之
資料而導致其他頁面之至少一者須被寫入第二緩存器Buffer_2時,控制器110A/110B判斷既定資料DATA將不連續地被寫入第一緩存器Buffer_1。這是因為其中的部分資料要被寫入第二緩存器Buffer_2,因此於執行同一個寫入指令WCMD的過程中,並不會連續地將既定資料DATA的頁面寫入第一緩存器Buffer_1。
根據本發明之一實施例,當控制器110A/110B判斷既定資料DATA必須被寫入不同緩存器,或者判斷既定資料DATA將不連續地被寫入第一緩存器Buffer_1時,控制器將既定資料DATA中已被寫入第一緩存器Buffer_1之一或多個既定頁面之資料寫入備份記憶體區塊Backup_Blk。
舉例而言,於本發明之一實施例中,當控制器110A/110B判斷執行同一個寫入指令WCMD所欲寫入的既定資料DATA必須被寫入不同緩存器的時候(例如,先將第一部分資料寫入第一緩存器Buffer_1,再將第二部分資料寫入第二緩存器Buffer_2,接著又跳回來將第三部分資料寫入第一緩存器Buffer_1),於控制器110A/110B寫入第三部分資料時,需要備分第三部分資料的配對頁(pair page)的資料。因此,控制器110A/110B將已被寫入第一緩存器Buffer_1中屬於第三部分資料的一或多個配對頁(pair page)的資料寫入備份記憶體區塊Backup_Blk。
將既定資料DATA中已被寫入第一緩存器Buffer_1之一或多個既定頁面之資料寫入備份記憶體區塊Backup_Blk的目的為避免於寫入操作中遭遇突然斷電(sudden power off)
時對記憶體裝置內資料所產生的損害。舉例而言,當寫到第三部分資料的時候遭遇突然斷電,第三部分資料中正在被寫入的某一頁的配對頁(其可能屬於先前已寫入的第一部分資料中)也會對應被損毀。一旦第一部分資料中的配對頁被損毀,爾後於上電在做初始化的時候,因控制器110A/110B會掃描緩存器以確認資料是否發生損毀,當發現第一部分資料中的某一頁發生無法被ECC引擎114更正修復的錯誤時,就會把這頁以下的資料都捨棄。在此情況下,因為既定資料DATA仍有一部分被儲存於第二緩存器Buffer_2,還是維持有效資料的狀態,因而會產生有效資料控管錯誤的問題。
因此,為了避免上述問題,當控制器110A/110B判斷既定資料DATA必須被寫入不同緩存器,或者判斷既定資料DATA將不連續地被寫入第一緩存器Buffer_1時,控制器將既定資料DATA中已被寫入第一緩存器Buffer_1之一或多個既定頁面之資料寫入備份記憶體區塊Backup_Blk,使得被損毀的資料仍然可被恢復。如上述,於本發明之一實施例中,當控制器110A/110B判斷執行同一個寫入指令WCMD所欲寫入的既定資料DATA必須被寫入不同緩存器的情況主要包括,例如,先將第一部分資料寫入第一緩存器Buffer_1,再將第二部分資料寫入第二緩存器Buffer_2,接著又跳回來將第三部分資料寫入第一緩存器Buffer_1。以下段落將有更詳細的說明。
第2圖係顯示根據本發明之一實施例所述之由控制器根據一寫入指令將資料寫入緩存器之示意圖。根據本發明之一實施例,控制器110A/110B根據寫入指令WCMD將既定資
料DATA排入寫入佇列中,以產生複數寫入佇列(Write Queue,縮寫為WQ),例如圖中所示之WQ[0]~WQ[3]。各寫入佇列指示出將被寫入的資料。舉例而言,控制器110A/110B將既定資料DATA的主頁面HP 0~HP 3排入寫入佇列WQ[0],將主頁面HP 4~HP 7排入寫入佇列WQ[1],將主頁面HP 8~HP 11排入寫入佇列WQ[2],將主頁面HP 12~HP 15排入寫入佇列WQ[3]。
值得注意的是,第2圖中標示的寫入佇列WQ可對應於一或多個分頁的寫入作業,取決於排入寫入佇列WQ的資料量。因此,第2圖僅為寫入操作示意圖,用以顯示控制器110A/110B執行寫入操作的順序,以及各寫入操作所對應的緩存器。
根據本發明之一實施例,控制器110A/110B於產生寫入佇列時,可根據上述既定表格內容建立起一資料結構,用以紀錄各寫入佇列所處理之資料的邏輯頁面位址(或,邏輯區塊位址,Logical Block Address,LBA),以及資料須被寫入哪個緩存器等資訊。
控制器110A/110B將依照寫入佇列順序,根據對應之寫入佇列執行對應之寫入作業,以完成寫入指令WCMD之作業。舉例而言,控制器110A/110B將依照順序執行寫入佇列WQ[0]、WQ[1]、WQ[2]、WQ[3]所對應之寫入作業。延續先前範例,由於控制器110A/110B經由查詢上述既定表格時得知第二緩存器Buffer_2已儲存主頁面HP8之資料,因此WQ[2]必須被寫入第二緩存器Buffer_2而非第一緩存器Buffer_1。
因此,控制器110A/110B於根據寫入佇列WQ[0]、
WQ[1]、WQ[2]、WQ[3]執行對應之寫入作業時,會依序將對應之資料寫入第一緩存器Buffer_1、第一緩存器Buffer_1、第二緩存器Buffer_2及第一緩存器Buffer_1,以完成對應之寫入作業。
根據本發明之一實施例,當控制器110A/110B完成寫入佇列WQ[2]對應之寫入作業時,會先進行一備份的動作,用以將已被寫入第一緩存器Buffer_1之一或多個既定頁面之資料寫入備份記憶體區塊Backup_Blk。
由於控制器110A/110B在根據寫入佇列WQ[2]將資料寫入第二緩存器Buffer_2後,會再根據寫入佇列WQ[3]將資料寫入第一緩存器Buffer_1,為了避免控制器110A/110B在後續根據寫入佇列WQ[3]編程第一緩存器Buffer_1的過程中遭遇突然斷電的情形,進而影響到先前根據寫入佇列WQ[0]或WQ[1]已完成寫入之資料,控制器110A/110B將先前已被寫入第一緩存器Buffer_1之既定頁面資料備份。如此一來,當資料因遭遇突然斷電而發生損害時,可利用備份之資料進行回復作業。
如上述,根據本發明之一實施例,所述之既定頁面為寫入佇列WQ[3]中要被寫入之物理頁面的配對頁(pair page)。
一般而言,多層單元快閃記憶體的一個記憶單元儲存兩個資料位元,而此兩個資料位元分別屬於一組相對應的強分頁(strong page)與弱分頁(weak page)。所謂強分頁,係指該分頁被寫入資料時的編程忙碌時間(program busy time)較短。反之,所謂弱分頁,係指該分頁被寫入資料時所需的編程忙碌
時間較長。一般而言,控制器在將資料寫入快閃記憶體時,是逐次寫入快閃記憶體的各頁。因此,當多層單元快閃記憶體的一組相對應的強分頁與弱分頁先後被寫入資料時,後續被寫入資料的弱分頁可能會影響先前被寫入資料的強分頁的資料儲存。
根據本發明之一實施例,控制器110A/110B可判斷第一緩存器Buffer_1中最後要被寫入資料的一頁面(例如,物理頁面)是否為弱分頁(或稱,上分頁)。若該頁面為弱分頁,控制器110A/110B可自該頁面往回或往上尋找一既定範圍,挑選出對應該弱分頁的強分頁(或稱,下分頁),並將既定資料DATA中先前已被寫入該強分頁的部分資料寫入備份記憶體區塊Backup_Blk。一般而言,記憶體區塊的強分頁與弱分頁的配對關係可以是製造記憶體裝置時就可得知的,或者可以是經由特定的計算而得知的。
根據本發明之一實施例,挑選出的強分頁可以是第一緩存器Buffer_1中已被寫入此(尚未執行完畢之)寫入指令WCMD所對應之既定資料DATA之一部分的資料的所有強分頁,或者可以是第一緩存器Buffer_1中預計於此寫入指令WCMD所對應之後續(尚未執行之)寫入作業中被編程之一或多個分頁所對應之強分頁。例如,預計於根據寫入佇列WQ[3]將資料寫入第一緩存器Buffer_1之寫入作業中被編程之一或多個分頁所對應之強分頁。
如上述,一般而言,一配對分頁(pair page)之弱分頁所受的損害容易連帶影響到強分頁所儲存之資料。為了避免
於執行同一寫入指令WCMD的後續寫入操作中,在編程某一分頁時因遭遇突然斷電,使得該分頁遭受到攻擊受損害,進而損害到該分頁所對應之強分頁,而造成已寫入完成之資料無法回復的問題,於本發明之實施例中,預先將已經被寫入第一緩存器Buffer_1之一或多個強頁面之資料寫入備份記憶體區塊Backup_Blk。當資料因遭受突然斷電的攻擊而發生無法更正的錯誤時,便可利用備份記憶體區塊Backup_Blk所儲存之資料進行資料修復。
更具體的說,根據本發明之一實施例,當控制器110A/110B完成寫入佇列WQ[2]所對應之寫入作業時,會先進行一備份的動作,用以將先前已根據寫入佇列WQ[0]及/或WQ[1]被寫入第一緩存器Buffer_1之一或多個強頁面之資料寫入備份記憶體區塊Backup_Blk。根據本發明之另一實施例,當控制器110A/110B完成寫入佇列WQ[2]所對應之寫入作業時,會先進行一備份的動作,用以把第一緩存器Buffer_1中,預計根據寫入佇列WQ[3]編程之一或多個分頁所對應之強頁面之資料寫入備份記憶體區塊Backup_Blk。
舉例而言,假設寫入佇列WQ[3]預計將資料寫入第一緩存器Buffer_1之第5分頁,其為一弱分頁,而第5分頁之配對頁為第3分頁,其為一強分頁,則控制器110A/110B可於完成寫入佇列WQ[2]對應之寫入作業後,將第3分頁的資料寫入備份記憶體區塊Backup_Blk。
在備份資料後,控制器110A/110B會繼續根據尚未完成的寫入佇列WQ[3]執行對應的寫入作業,以完成寫入指令
WCMD所對應的寫入作業。
第3圖係顯示根據本發明之一實施例所述之將資料寫入一記憶體裝置之方法流程圖。首先,接收一寫入指令,用以將一既定資料寫入記憶體裝置(步驟S302)。接著,於判斷既定資料是否必須被寫入不同緩存器或是否將不連續地被寫入第一緩存器(步驟S304)。若否,則直接根據寫入指令執行寫入操作,用以將既定資料寫入記憶體裝置(步驟S306)。若是,則根據寫入指令執行寫入操作,用以將既定資料寫入記憶體裝置,並且於寫入操作的過程中,將既定資料中已被寫入第一緩存器之一或多個既定頁面之資料寫入備份記憶體區塊(步驟S308)。以下段落將進一步介紹備份資料的使用方式。
當資料儲存裝置發生過突然斷電後,系統於重新上電時,會執行一突然斷電回復(Sudden Power Off Recovery,SPOR)程序,以檢查錯誤並且重新建立表格與資料區塊連結。因此,於執行SPOR程序時,控制器110A/110B會檢查緩存器內所儲存之資料是否有錯,當資料未有錯誤,或者錯誤可由ECC引擎114更正修復時,便可根據資料內容重新建立表格與資料區塊連結。然而,當控制器110A/110B發現資料發生無法更正的錯誤時,就會將對應之記憶體區塊判斷為受損的記憶體區塊。此時,必須將記憶體區塊中有效的資料搬移到另一個記憶體區塊,以避免後續寫入的資料再度受到損害。
於本發明之實施例中,由於控制器110A/110B已於執行寫入操作中,將最有可能受損害的強分頁資料進行備份,因此,根據本發明之一實施例,並不需要因部份資料受損害,
而把寫入指令WCMD所對應的既定資料DATA的其他部份都捨棄,而是可利用備份資料,順利地將既定資料DATA重整並搬移到另一個記憶體區塊。
第4圖係顯示根據本發明之一實施例所述之將資料由受損的記憶體區塊搬移至另一記憶體區塊之示意圖。假設第一緩存器Buffer_1的第二分頁發生無法更正的錯誤時,控制器110A/110B會將第一緩存器Buffer_1對應之記憶體區塊判斷為受損的記憶體區塊,並且決定將第一緩存器Buffer_1所儲存之資料搬移到另一個記憶體區塊,例如,緩存器Buffer_3,以避免後續寫入的資料再度受到損害。
於資料搬移的過程,由於第一緩存器Buffer_1的第二分頁已受損害,因此,控制器110A/110B自備份記憶體區塊Backup_Blk讀取該分頁所對應之備份資料,並且將資料儲存於緩存器Buffer_3中。如此一來,無須因為部分資料受損,而捨棄整筆既定資料DATA。
綜上所述,於本發明之實施例中,預先將已經被寫入第一緩存器Buffer_1之一或多個強分頁之資料寫入備份記憶體區塊Backup_Blk。如此一來,可避免於執行同一寫入指令WCMD的後續寫入操作中,在編程某一分頁時因遭遇突然斷電,使得該分頁遭受到攻擊受損害,進而損害到該分頁所對應之強分頁,而造成已寫入完成之資料無法回復的問題。當資料因遭受突然斷電的攻擊而發生無法更正的錯誤時,便可利用備份記憶體區塊Backup_Blk所儲存之資料進行資料修復。如此一來,無須因為部分資料受損,而捨棄整筆既定資料DATA,進而避
免因捨棄資料而減損記憶體裝置的存取效能。
本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (13)
- 一種資料儲存裝置,包括:一記憶體裝置,包括一第一緩存器、一第二緩存器以及一備份記憶體區塊,其中該第一緩存器為一多層單元區塊,該第二緩存器為一單層單元區塊;以及一控制器,耦接該記憶體裝置,接收用以指示將一既定資料寫入該記憶體裝置之一寫入指令,並且判斷該既定資料是否必須被寫入不同緩存器;其中當該控制器判斷該既定資料必須被寫入不同緩存器時,該控制器將該既定資料中已被寫入該第一緩存器之一或多個既定頁面之資料寫入該備份記憶體區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該既定資料包括複數頁面,該控制器根據該既定資料之資料量以及該第二緩存器是否已儲存該等頁面之至少一者之資料判斷是否該既定資料必須被寫入不同緩存器,其中當該既定資料之資料量大於一臨界值,並且該第二緩存器已儲存該等頁面之至少一者之資料時,該控制器判斷該既定資料必須被寫入不同緩存器。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器根據該寫入指令產生複數寫入佇列,該等寫入佇列包括至少一第一寫入佇列、一第二寫入佇列以及一第三寫入佇列,該第一寫入佇列指示出將被寫入該第一緩存器之一第一部份資料,該第二寫入佇列指示出將被寫入該第二緩存器之一第二部份資料,該第三寫入佇列指示出將被寫入該第一緩存器之一第三部份資料,該控制器依序根據該第一寫入佇列、該第二寫入佇列與該第三寫入佇列執行該寫入指令,其中當該控制器根據該第三寫入佇列執行對應之寫入作業前,將該第一部分資料中已被寫入該第一緩存器之該一或多個既定頁面之資料寫入該備份記憶體區塊。
- 如申請專利範圍第3項所述之資料儲存裝置,其中該既定頁面為該第一緩存器之強分頁。
- 一種資料儲存裝置,包括:一記憶體裝置,包括一第一緩存器、一第二緩存器以及一備份記憶體區塊,其中該第一緩存器為一多層單元區塊,該第二緩存器為一單層單元區塊;以及一控制器,耦接該記憶體裝置,接收用以指示將一既定資料寫入該記憶體裝置之一寫入指令,並且判斷該既定資料是否將不連續地被寫入該第一緩存器;其中當該控制器判斷該既定資料將不連續地被寫入該第一緩存器時,該控制器將該既定資料中已被寫入該第一緩存器之一或多個既定頁面之資料寫入該備份記憶體區塊。
- 如申請專利範圍第5項所述之資料儲存裝置,其中該既定資料包括複數頁面,該控制器根據該既定資料之資料量以及該第二緩存器是否已儲存該等頁面之至少一者之資料判斷是否該既定資料將不連續地被寫入該第一緩存器,其中當該既定資料之資料量大於一臨界值,並且該第二緩存器已儲存該等頁面之至少一者之資料時,該控制器判斷該既定資料將不連續地被寫入該第一緩存器。
- 如申請專利範圍第5項所述之資料儲存裝置,其中該控制器根據該寫入指令產生複數寫入佇列,該等寫入佇列包括至少一第一寫入佇列、一第二寫入佇列以及一第三寫入佇列,該第一寫入佇列指示出將被寫入該第一緩存器之一第一部份資料,該第二寫入佇列指示出將被寫入該第二緩存器之一第二部份資料,該第三寫入佇列指示出將被寫入該第一緩存器之一第三部份資料,該控制器依序根據該第一寫入佇列、該第二寫入佇列與該第三寫入佇列執行該寫入指令,其中當該控制器根據該第三寫入佇列執行對應之寫入作業前,將該第一部分資料中已被寫入該第一緩存器之該一或多個既定頁面之資料寫入該備份記憶體區塊。
- 如申請專利範圍第7項所述之資料儲存裝置,其中該既定頁面為該第一緩存器之強分頁。
- 一種將資料寫入一記憶體裝置之方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一控制器,該記憶體裝置包括一第一緩存器、一第二緩存器以及一備份記憶體區塊,其中該第一緩存器為一多層單元區塊,該第二緩存器為一單層單元區塊,該方法包括:根據一寫入指令執行一寫入操作,用以將一既定資料寫入該記憶體裝置,該既定資料包括複數頁面,其中根據該寫入指令執行該寫入操作之步驟更包括:判斷該既定資料之該等頁面是否必須被寫入不同緩存器或者該既定資料之該等頁面是否將不連續地被寫入該第一緩存器;以及當判斷該既定資料之該等頁面必須被寫入不同緩存器或者該既定資料之該等頁面將不連續地被寫入該第一緩存器時,於執行該寫入操作之過程中,將該既定資料中已被寫入該第一緩存器之一或多個既定頁面之資料寫入該備份記憶體區塊。
- 如申請專利範圍第9項所述之方法,其中當該既定資料之資料量大於一臨界值,並且該第二緩存器已儲存該等頁面之至少一者之資料時,判斷該既定資料之該等頁面必須被寫入不同緩存器。
- 如申請專利範圍第9項所述之方法,其中當該既定資料之資料量大於一臨界值,並且該第二緩存器已儲存該等頁面之至少一者之資料時,判斷該既定資料之該等頁面將不連續地被寫入該第一緩存器。
- 如申請專利範圍第9項所述之方法,其中根據該寫入指令執行該寫入操作之步驟更包括:根據該寫入指令產生複數寫入佇列,其中該等寫入佇列包括至少一第一寫入佇列、一第二寫入佇列以及一第三寫入佇列,該第一寫入佇列指示出將被寫入該第一緩存器之一第一部份資料,該第二寫入佇列指示出將被寫入該第二緩存器之一第二部份資料,該第三寫入佇列指示出將被寫入該第一緩存器之一第三部份資料;根據該第一寫入佇列與該第二寫入佇列執行對應之寫入作業;於該第二寫入佇列所對應之寫入作業完成後,將該第一部分資料中已被寫入該第一緩存器之該一或多個既定頁面之資料寫入該備份記憶體區塊;以及根據該第三寫入佇列執行對應之寫入作業。
- 如申請專利範圍第9項所述之方法,其中該既定頁面為該第一緩存器之強分頁。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106133362A TWI649759B (zh) | 2017-09-28 | 2017-09-28 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
CN201810494194.3A CN109582217B (zh) | 2017-09-28 | 2018-05-22 | 数据储存装置与将数据写入存储器装置的方法 |
US16/039,740 US10592410B2 (en) | 2017-09-28 | 2018-07-19 | Backup mechanism of writing sequential data to single-level cell buffer and multi-level cell buffer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106133362A TWI649759B (zh) | 2017-09-28 | 2017-09-28 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI649759B true TWI649759B (zh) | 2019-02-01 |
TW201916018A TW201916018A (zh) | 2019-04-16 |
Family
ID=65807620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106133362A TWI649759B (zh) | 2017-09-28 | 2017-09-28 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10592410B2 (zh) |
CN (1) | CN109582217B (zh) |
TW (1) | TWI649759B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI704450B (zh) * | 2019-07-23 | 2020-09-11 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
TWI773391B (zh) * | 2020-10-23 | 2022-08-01 | 美商聖圖爾科技公司 | 微處理器和分支處理方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
JP2019179455A (ja) * | 2018-03-30 | 2019-10-17 | 東芝メモリ株式会社 | 記憶装置及びコンピュータシステム |
US10969965B2 (en) * | 2018-12-24 | 2021-04-06 | Western Digital Technologies, Inc. | Dynamic performance density tuning for data storage device |
US11194473B1 (en) * | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11150844B2 (en) * | 2019-02-21 | 2021-10-19 | Micron Technology, Inc. | Reflow endurance improvements in triple-level cell NAND flash |
TWI698749B (zh) * | 2019-03-13 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
CN112445413A (zh) * | 2019-08-29 | 2021-03-05 | 华为技术有限公司 | 一种数据存储的方法、装置及相关设备 |
CN110825662A (zh) * | 2019-11-04 | 2020-02-21 | 深圳芯邦科技股份有限公司 | 一种数据更新方法、系统及相关装置 |
US11243711B2 (en) | 2020-02-05 | 2022-02-08 | Micron Technology, Inc. | Controlling firmware storage density based on temperature detection |
US11144452B2 (en) | 2020-02-05 | 2021-10-12 | Micron Technology, Inc. | Temperature-based data storage processing |
TWI791981B (zh) * | 2020-04-30 | 2023-02-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN112084163B (zh) * | 2020-09-04 | 2022-05-31 | 珠海大横琴科技发展有限公司 | 一种数据写入方法、装置及计算机设备 |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566504B2 (en) * | 2007-09-28 | 2013-10-22 | Sandisk Technologies Inc. | Dynamic metablocks |
US8966155B1 (en) * | 2008-04-01 | 2015-02-24 | Daniel P. Mulligan | System and method for implementing a high performance data storage system |
US9032269B2 (en) * | 2011-07-22 | 2015-05-12 | Sandisk Technologies Inc. | Systems and methods of storing data |
US9036283B1 (en) * | 2014-01-22 | 2015-05-19 | Western Digital Technologies, Inc. | Data storage device with selective write to a first storage media or a second storage media |
US9619380B2 (en) * | 2013-08-23 | 2017-04-11 | Phison Electronics Corp. | Data writing method, memory control circuit unit and memory storage apparatus |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100543706C (zh) * | 2006-05-25 | 2009-09-23 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
US7908423B2 (en) * | 2007-07-25 | 2011-03-15 | Silicon Motion, Inc. | Memory apparatus, and method of averagely using blocks of a flash memory |
TW200915339A (en) * | 2007-09-28 | 2009-04-01 | Super Talent Electronics Inc | Electronic data flash card with various flash memory cells |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
TWI385516B (zh) * | 2008-08-12 | 2013-02-11 | Phison Electronics Corp | 快閃記憶體儲存系統及其資料寫入方法 |
TWI485563B (zh) * | 2008-09-17 | 2015-05-21 | Silicon Motion Inc | 快閃記憶裝置及其運作方法 |
US8468292B2 (en) * | 2009-07-13 | 2013-06-18 | Compellent Technologies | Solid state drive data storage system and method |
US9146851B2 (en) * | 2012-03-26 | 2015-09-29 | Compellent Technologies | Single-level cell and multi-level cell hybrid solid state drive |
KR102025251B1 (ko) * | 2012-10-31 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 프로그램 방법 |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
KR102295208B1 (ko) * | 2014-12-19 | 2021-09-01 | 삼성전자주식회사 | 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법 |
US9697134B2 (en) * | 2015-06-10 | 2017-07-04 | Micron Technology, Inc. | Memory having a static cache and a dynamic cache |
KR102356523B1 (ko) * | 2015-08-04 | 2022-02-03 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN106708754B (zh) * | 2015-11-13 | 2020-04-07 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
CN106843762B (zh) * | 2017-01-17 | 2019-11-12 | 深圳忆联信息系统有限公司 | 管理存储区域的方法及固态硬盘 |
CN106873912B (zh) * | 2017-02-16 | 2020-02-07 | 苏州浪潮智能科技有限公司 | Tlc芯片固态硬盘的动态分区存储方法及装置、系统 |
-
2017
- 2017-09-28 TW TW106133362A patent/TWI649759B/zh active
-
2018
- 2018-05-22 CN CN201810494194.3A patent/CN109582217B/zh active Active
- 2018-07-19 US US16/039,740 patent/US10592410B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566504B2 (en) * | 2007-09-28 | 2013-10-22 | Sandisk Technologies Inc. | Dynamic metablocks |
US8966155B1 (en) * | 2008-04-01 | 2015-02-24 | Daniel P. Mulligan | System and method for implementing a high performance data storage system |
US9032269B2 (en) * | 2011-07-22 | 2015-05-12 | Sandisk Technologies Inc. | Systems and methods of storing data |
US9619380B2 (en) * | 2013-08-23 | 2017-04-11 | Phison Electronics Corp. | Data writing method, memory control circuit unit and memory storage apparatus |
US9036283B1 (en) * | 2014-01-22 | 2015-05-19 | Western Digital Technologies, Inc. | Data storage device with selective write to a first storage media or a second storage media |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI704450B (zh) * | 2019-07-23 | 2020-09-11 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
TWI773391B (zh) * | 2020-10-23 | 2022-08-01 | 美商聖圖爾科技公司 | 微處理器和分支處理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109582217A (zh) | 2019-04-05 |
US10592410B2 (en) | 2020-03-17 |
TW201916018A (zh) | 2019-04-16 |
US20190095321A1 (en) | 2019-03-28 |
CN109582217B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI649759B (zh) | 資料儲存裝置與將資料寫入記憶體裝置之方法 | |
TWI662410B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
CN107665722B (zh) | 存储装置、包括存储装置的系统以及操作存储装置的方法 | |
TWI389122B (zh) | 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器 | |
US20030093610A1 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
US20090193058A1 (en) | System and method for providing copyback data integrity in a non-volatile memory system | |
TWI446350B (zh) | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 | |
JP2010529557A (ja) | 新たな不良ブロック検出 | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
US11068177B2 (en) | Data storage devices and data processing methods for shortening time required for a host device to wait for initialization of the data storage device | |
TWI693518B (zh) | 資料儲存裝置及避免韌體失效之方法 | |
TWI447579B (zh) | 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN111984462A (zh) | 无预警断电复原管理方法、记忆装置、控制器及电子装置 | |
TWI533128B (zh) | 儲存裝置、電子裝置,以及燒錄記憶體的方法 | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN110134322B (zh) | 运用dram的储存装置及其相关数据处理方法 | |
TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
TWI811130B (zh) | 用以存取一快閃記憶體模組的方法、快閃記憶體控制器以及電子裝置 | |
TWI805449B (zh) | 藉助於多階段垃圾收集管理以進行記憶體裝置的存取控制的方法、用於記憶體裝置的控制器、以及記憶體裝置 |