CN109582217A - 数据储存装置与将数据写入存储器装置的方法 - Google Patents
数据储存装置与将数据写入存储器装置的方法 Download PDFInfo
- Publication number
- CN109582217A CN109582217A CN201810494194.3A CN201810494194A CN109582217A CN 109582217 A CN109582217 A CN 109582217A CN 201810494194 A CN201810494194 A CN 201810494194A CN 109582217 A CN109582217 A CN 109582217A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- written
- write
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000013500 data storage Methods 0.000 title abstract description 4
- 239000002356 single layer Substances 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 claims description 175
- 230000003111 delayed effect Effects 0.000 claims description 2
- 239000010410 layer Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 230000001771 impaired effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005138 cryopreservation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种数据储存装置与将数据写入存储器装置的方法,包括一存储器装置以及一控制器。存储器装置包括一第一缓存器、一第二缓存器以及一备份存储器区块。第一缓存器为一多层单元区块,第二缓存器为一单层单元区块。控制器耦接存储器装置,接收用以指示将一既定数据写入存储器装置的一写入指令,并且判断既定数据是否必须被写入不同缓存器。当控制器判断既定数据必须被写入不同缓存器时,控制器将既定数据中已被写入第一缓存器之一或多个既定页面的数据写入备份存储器区块。
Description
技术领域
本发明有关于一种是用于快闪存储器装置的数据处理方法,可有效避免于写入操作中遭遇突然断电(sudden power off)时对存储器装置内数据所产生的损害。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、内嵌式存储器(embedded MultiMedia Card,缩写为eMMC)以及通用快闪存储器(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效的存取控制也变成一个重要的议题。
一般而言,若在编辑快闪存储器时遭遇突然断电,正在写入的数据可能会被破坏。当数据被破坏且无法经由错误更正码修复时,无论其他数据是否仍为正确,都需要放弃对应于同一个写入指令所写入的所有数据,如此大幅降低存储器装置的效能。为了解决此问题,本发明提出一种数据处理方法,可有效避免于写入操作中遭遇突然断电时对存储器装置内数据所产生的损害。
发明内容
本发明提出一种数据储存装置,包括一存储器装置以及一控制器。存储器装置包括一第一缓存器、一第二缓存器以及一备份存储器区块。第一缓存器为一多层单元区块,第二缓存器为一单层单元区块。控制器耦接存储器装置,接收用以指示将一既定数据写入存储器装置的一写入指令,并且判断既定数据是否必须被写入不同缓存器。当控制器判断既定数据必须被写入不同缓存器时,控制器将既定数据中已被写入第一缓存器之一或多个既定页面的数据写入备份存储器区块。
本发明另提出一种数据储存装置,包括一存储器装置以及一控制器。存储器装置包括一第一缓存器、一第二缓存器以及一备份存储器区块。第一缓存器为一多层单元区块,第二缓存器为一单层单元区块。控制器耦接存储器装置,接收用以指示将一既定数据写入存储器装置的一写入指令,并且判断既定数据是否将不连续地被写入第一缓存器。当控制器判断既定数据将不连续地被写入第一缓存器时,控制器将既定数据中已被写入第一缓存器之一或多个既定页面之数据写入备份存储器区块。
本发明另提出一种将数据写入一存储器装置的方法,适用于一数据储存装置,数据储存装置包括一存储器装置与一控制器,存储器装置包括一第一缓存器、一第二缓存器以及一备份存储器区块,其中第一缓存器为一多层单元区块,第二缓存器为一单层单元区块,该方法包括:根据一写入指令执行一写入操作,用以将一既定数据写入该存储器装置,其中根据写入指令执行写入操作的步骤还包括:于执行写入操作的过程中,将既定数据中已被写入第一缓存器之一或多个既定页面的数据写入备份存储器区块。
附图说明
图1A是显示根据本发明的一实施例所述的电子装置范例方块图。
图1B是显示根据本发明的另一实施例所述的电子装置范例方块图。
图2是显示根据本发明的一实施例所述的由控制器根据一写入指令将数据写入缓存器的示意图。
图3是显示根据本发明的一实施例所述的将数据写入一存储器装置的方法流程图。
图4是显示根据本发明的一实施例所述的将数据由受损的存储器区块搬移至另一存储器区块的示意图。
符号说明
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是显示根据本发明的一实施例所述的电子装置方块图。电子装置300A可包括主机装置200与数据储存装置100。电子装置300A可为移动装置,例如智慧型手机、智慧型手表或平板电脑,但不以此为限。
根据本发明的一实施例,数据储存装置100可包括控制器110A与存储器装置120。控制器110A可至少包括一微处理器111、静态随机存取存储器(Static Random AccessMemory,缩写为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为HP 1~HP4时,即便欲被写入的数据的数据量大于或等于临界值,因起始主页面编号并非为4的倍数(1除以4所得的余数并非为0),控制器110A/110B仍会判断将数据写入第二缓存器Buffer_2。此外,当欲写入存储器装置120的既定数据DATA为HP 0~HP2时,由于欲被写入的数据的数据量并小于临界值,控制器110A/110B会判断将数据写入第二缓存器Buffer_2。又或者,当欲写入存储器装置120的既定数据DATA为HP0~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~HP15中的主页面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 poweroff)时对存储器装置内数据所产生的损害。举例而言,当写到第三部分数据的时候遭遇突然断电,第三部分数据中正在被写入的某一页的配对页(其可能属于先前已写入的第一部分数据中)也会对应被损毁。一旦第一部分数据中的配对页被损毁,尔后于上电在做初始化的时候,因控制器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已储存主页面HP 8的数据,因此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 (15)
1.一种数据储存装置,包括:
一存储器装置,包括一第一缓存器、一第二缓存器以及一备份存储器区块,其中该第一缓存器为一多层单元区块,该第二缓存器为一单层单元区块;以及
一控制器,耦接该存储器装置,接收用以指示将一既定数据写入该存储器装置的一写入指令,并且判断该既定数据是否必须被写入不同缓存器;
其中当该控制器判断该既定数据必须被写入不同缓存器时,该控制器将该既定数据中已被写入该第一缓存器之一或多个既定页面的数据写入该备份存储器区块。
2.如权利要求1所述的数据储存装置,其特征在于,该既定数据包括多个页面,该控制器根据该既定数据的数据量以及该第二缓存器是否已储存这些页面的至少一者的数据判断是否该既定数据必须被写入不同缓存器,其中当该既定数据的数据量大于一临界值,并且该第二缓存器已储存这些页面的至少一者的数据时,该控制器判断该既定数据必须被写入不同缓存器。
3.如权利要求1所述的数据储存装置,其特征在于,该控制器根据该写入指令产生多个写入伫列,这些写入伫列包括至少一第一写入伫列、一第二写入伫列以及一第三写入伫列,该第一写入伫列指示出将被写入该第一缓存器的一第一部份数据,该第二写入伫列指示出将被写入该第二缓存器的一第二部份数据,该第三写入伫列指示出将被写入该第一缓存器的一第三部份数据,该控制器依序根据该第一写入伫列、该第二写入伫列与该第三写入伫列执行该写入指令,其中当该控制器根据该第三写入伫列执行对应的写入作业前,将该第一部分数据中已被写入该第一缓存器的该一或多个既定页面的数据写入该备份存储器区块。
4.如权利要求3所述的数据储存装置,其特征在于,该既定页面为该第一缓存器的强分页。
5.一种数据储存装置,包括:
一存储器装置,包括一第一缓存器、一第二缓存器以及一备份存储器区块,其中该第一缓存器为一多层单元区块,该第二缓存器为一单层单元区块;以及
一控制器,耦接该存储器装置,接收用以指示将一既定数据写入该存储器装置的一写入指令,并且判断该既定数据是否将不连续地被写入该第一缓存器;
其中当该控制器判断该既定数据将不连续地被写入该第一缓存器时,该控制器将该既定数据中已被写入该第一缓存器之一或多个既定页面的数据写入该备份存储器区块。
6.如权利要求5所述的数据储存装置,其特征在于,该既定数据包括多个页面,该控制器根据该既定数据的数据量以及该第二缓存器是否已储存这些页面的至少一者的数据判断是否该既定数据将不连续地被写入该第一缓存器,其中当该既定数据的数据量大于一临界值,并且该第二缓存器已储存这些页面的至少一者的数据时,该控制器判断该既定数据将不连续地被写入该第一缓存器。
7.如权利要求5所述的数据储存装置,其特征在于,该控制器根据该写入指令产生多个写入伫列,这些写入伫列包括至少一第一写入伫列、一第二写入伫列以及一第三写入伫列,该第一写入伫列指示出将被写入该第一缓存器的一第一部份数据,该第二写入伫列指示出将被写入该第二缓存器的一第二部份数据,该第三写入伫列指示出将被写入该第一缓存器的一第三部份数据,该控制器依序根据该第一写入伫列、该第二写入伫列与该第三写入伫列执行该写入指令,其中当该控制器根据该第三写入伫列执行对应的写入作业前,将该第一部分数据中已被写入该第一缓存器的该一或多个既定页面的数据写入该备份存储器区块。
8.如权利要求7所述的数据储存装置,其特征在于,该既定页面为该第一缓存器的强分页。
9.一种将数据写入一存储器装置的方法,适用于一数据储存装置,该数据储存装置包括一存储器装置与一控制器,该存储器装置包括一第一缓存器、一第二缓存器以及一备份存储器区块,其中该第一缓存器为一多层单元区块,该第二缓存器为一单层单元区块,该方法包括:
根据一写入指令执行一写入操作,用以将一既定数据写入该存储器装置,其中根据该写入指令执行该写入操作的步骤还包括:
于执行该写入操作的过程中,将该既定数据中已被写入该第一缓存器之一或多个既定页面的数据写入该备份存储器区块。
10.如权利要求9所述的方法,其特征在于,还包括:
判断该既定数据是否必须被写入不同缓存器,其中当判断该既定数据必须被写入不同缓存器时,将该既定数据中已被写入该第一缓存器的该一或多个既定页面的数据写入该备份存储器区块。
11.如权利要求10所述的方法,其特征在于,该既定数据包括多个页面,当该既定数据的数据量大于一临界值,并且该第二缓存器已储存这些页面的至少一者的数据时,判断该既定数据必须被写入不同缓存器。
12.如权利要求9所述的方法,其特征在于,还包括:
判断该既定数据是否将不连续地被写入该第一缓存器,其中当判断该既定数据将不连续地被写入该第一缓存器时,将该既定数据中已被写入该第一缓存器的该一或多个既定页面的数据写入该备份存储器区块。
13.如权利要求12所述的方法,其特征在于,该既定数据包括多个页面,当该既定数据的数据量大于一临界值,并且该第二缓存器已储存这些页面的至少一者的数据时,判断该既定数据将不连续地被写入该第一缓存器。
14.如权利要求9所述的方法,其特征在于,根据该写入指令执行该写入操作的步骤还包括:
根据该写入指令产生多个写入伫列,其中这些写入伫列包括至少一第一写入伫列、一第二写入伫列以及一第三写入伫列,该第一写入伫列指示出将被写入该第一缓存器的一第一部份数据,该第二写入伫列指示出将被写入该第二缓存器的一第二部份数据,该第三写入伫列指示出将被写入该第一缓存器的一第三部份数据;
根据该第一写入伫列与该第二写入伫列执行对应的写入作业;
于该第二写入伫列所对应的写入作业完成后,将该第一部分数据中已被写入该第一缓存器的该一或多个既定页面的数据写入该备份存储器区块;以及
根据该第三写入伫列执行对应的写入作业。
15.如权利要求9所述的方法,其特征在于,该既定页面为该第一缓存器的强分页。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106133362A TWI649759B (zh) | 2017-09-28 | 2017-09-28 | 資料儲存裝置與將資料寫入記憶體裝置之方法 |
TW106133362 | 2017-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582217A true CN109582217A (zh) | 2019-04-05 |
CN109582217B CN109582217B (zh) | 2022-01-25 |
Family
ID=65807620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810494194.3A Active CN109582217B (zh) | 2017-09-28 | 2018-05-22 | 数据储存装置与将数据写入存储器装置的方法 |
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 |
---|---|---|---|---|
CN112084163A (zh) * | 2020-09-04 | 2020-12-15 | 珠海大横琴科技发展有限公司 | 一种数据写入方法、装置及计算机设备 |
CN112445413A (zh) * | 2019-08-29 | 2021-03-05 | 华为技术有限公司 | 一种数据存储的方法、装置及相关设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
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 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI704450B (zh) * | 2019-07-23 | 2020-09-11 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
CN110825662A (zh) * | 2019-11-04 | 2020-02-21 | 深圳芯邦科技股份有限公司 | 一种数据更新方法、***及相关装置 |
US11144452B2 (en) | 2020-02-05 | 2021-10-12 | Micron Technology, Inc. | Temperature-based data storage processing |
US11243711B2 (en) | 2020-02-05 | 2022-02-08 | Micron Technology, Inc. | Controlling firmware storage density based on temperature detection |
TWI791981B (zh) * | 2020-04-30 | 2023-02-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US11461103B2 (en) * | 2020-10-23 | 2022-10-04 | Centaur Technology, Inc. | Dual branch execute and table update with single port |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079010A (zh) * | 2006-05-25 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
CN101354918A (zh) * | 2007-07-25 | 2009-01-28 | 慧荣科技股份有限公司 | 存储装置以及平均使用一快闪式存储器的区块的方法 |
CN101398785A (zh) * | 2007-09-28 | 2009-04-01 | 智多星电子科技有限公司 | 具有多样闪存单元的电子数据闪存卡 |
TW201007449A (en) * | 2008-08-12 | 2010-02-16 | Phison Electronics Corp | Flash memory storage system and data writing method thereof |
CN101676886A (zh) * | 2008-09-17 | 2010-03-24 | 慧国(上海)软件科技有限公司 | 闪存装置及其运作方法 |
US20130254458A1 (en) * | 2012-03-26 | 2013-09-26 | Michael H. Pittelko | Single-level cell and multi-level cell hybrid solid state drive |
US20140119115A1 (en) * | 2012-10-31 | 2014-05-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and method of programming nonvolatile memory device |
CN106708754A (zh) * | 2015-11-13 | 2017-05-24 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN106843762A (zh) * | 2017-01-17 | 2017-06-13 | 北京联想核芯科技有限公司 | 管理存储区域的方法及固态硬盘 |
CN106873912A (zh) * | 2017-02-16 | 2017-06-20 | 郑州云海信息技术有限公司 | Tlc芯片固态硬盘的动态分区存储方法及装置、*** |
US20170177235A1 (en) * | 2015-12-18 | 2017-06-22 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
Family Cites Families (11)
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 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8468292B2 (en) * | 2009-07-13 | 2013-06-18 | Compellent Technologies | Solid state drive data storage system and method |
US9311969B2 (en) * | 2011-07-22 | 2016-04-12 | Sandisk Technologies Inc. | Systems and methods of storing data |
TWI498899B (zh) * | 2013-08-23 | 2015-09-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
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 |
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 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
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 (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079010A (zh) * | 2006-05-25 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现flash芯片数据安全的方法 |
CN101354918A (zh) * | 2007-07-25 | 2009-01-28 | 慧荣科技股份有限公司 | 存储装置以及平均使用一快闪式存储器的区块的方法 |
CN101398785A (zh) * | 2007-09-28 | 2009-04-01 | 智多星电子科技有限公司 | 具有多样闪存单元的电子数据闪存卡 |
TW201007449A (en) * | 2008-08-12 | 2010-02-16 | Phison Electronics Corp | Flash memory storage system and data writing method thereof |
CN101676886A (zh) * | 2008-09-17 | 2010-03-24 | 慧国(上海)软件科技有限公司 | 闪存装置及其运作方法 |
US20130254458A1 (en) * | 2012-03-26 | 2013-09-26 | Michael H. Pittelko | Single-level cell and multi-level cell hybrid solid state drive |
US20140119115A1 (en) * | 2012-10-31 | 2014-05-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and method of programming nonvolatile memory device |
CN106708754A (zh) * | 2015-11-13 | 2017-05-24 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US20170177235A1 (en) * | 2015-12-18 | 2017-06-22 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
CN106843762A (zh) * | 2017-01-17 | 2017-06-13 | 北京联想核芯科技有限公司 | 管理存储区域的方法及固态硬盘 |
CN106873912A (zh) * | 2017-02-16 | 2017-06-20 | 郑州云海信息技术有限公司 | Tlc芯片固态硬盘的动态分区存储方法及装置、*** |
Non-Patent Citations (3)
Title |
---|
JUNSEOK PARK 等: ""Buffer Cache Management for Combined MLC and SLC Flash Memories Using both Volatile and Nonvolatile RAMs"", 《IEEE》 * |
石伟: ""基于闪存特性的存储优化及应用研究"", 《中国博士学位论文全文数据库(信息科技辑)》 * |
谢启友: ""基于非均衡通道的NAND Flash混合存储技术研究"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445413A (zh) * | 2019-08-29 | 2021-03-05 | 华为技术有限公司 | 一种数据存储的方法、装置及相关设备 |
CN112084163A (zh) * | 2020-09-04 | 2020-12-15 | 珠海大横琴科技发展有限公司 | 一种数据写入方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
TW201916018A (zh) | 2019-04-16 |
US20190095321A1 (en) | 2019-03-28 |
US10592410B2 (en) | 2020-03-17 |
CN109582217B (zh) | 2022-01-25 |
TWI649759B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582217A (zh) | 数据储存装置与将数据写入存储器装置的方法 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US7814276B2 (en) | Data cache architecture and cache algorithm used therein | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US20030093610A1 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
TWI662410B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
CN101446926B (zh) | 一种高速缓冲存储器掉电数据保存方法、设备和*** | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US9721669B2 (en) | Data protection method, memory control circuit unit and memory storage apparatus | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
CN114528226A (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
TW201411343A (zh) | 資料儲存裝置與快閃記憶體控制方法 | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI688863B (zh) | 資料儲存裝置與資料處理方法 | |
US9063888B2 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
TW202034178A (zh) | 資料儲存裝置與資料處理方法 | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20160054935A1 (en) | Data storing method and memory controller and memory storage device using the same | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
TWI673716B (zh) | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 | |
CN105224238A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |