CN109933545B - 数据储存装置与存储器装置的数据处理方法 - Google Patents
数据储存装置与存储器装置的数据处理方法 Download PDFInfo
- Publication number
- CN109933545B CN109933545B CN201810718490.7A CN201810718490A CN109933545B CN 109933545 B CN109933545 B CN 109933545B CN 201810718490 A CN201810718490 A CN 201810718490A CN 109933545 B CN109933545 B CN 109933545B
- Authority
- CN
- China
- Prior art keywords
- data
- mapping table
- register
- controller
- logical
- 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.)
- Active
Links
Images
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
- 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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- 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
- G11C11/5635—Erasing 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- 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
- 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
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 Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据储存装置与存储器装置的数据处理方法。该数据储存装置包括一存储器装置、一静态随机存取存储器以及一控制器。存储器装置包括用以储存多个连续逻辑页面的数据的一第一缓存器。静态随机存取存储器用以储存一第一映射表格。第一映射表格记录该第一缓存器的各物理页面所储存的数据指向哪个逻辑页面。控制器耦接存储器装置与静态随机存取存储器。当控制器响应一抹除指令对第一缓存器所储存的数据执行抹除操作时,控制器于每完成一既定数量(M)的逻辑页面的抹除操作后,再检查是否自一主机装置接收到一中断信号或一重置指令,其中既定数量(M)为大于1的一正整数。
Description
技术领域
本发明有关于一种适用于快闪存储器装置的数据处理方法,可有效地避免映射表格内容产生不同步的问题。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、内嵌式存储器(embedded MultiMedia Card,缩写为eMMC)以及通用快闪存储器(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,本发明提出一种新的数据处理方法,可有效地避免映射表格内容产生不同步的问题,并提升存储器装置的效能。
发明内容
本发明揭示一种数据储存装置,包括一存储器装置、一静态随机存取存储器以及一控制器。存储器装置包括用以储存多个连续逻辑页面的数据的一第一缓存器。静态随机存取存储器用以储存一第一映射表格,其中第一映射表格记录该第一缓存器的各物理页面所储存的数据指向哪个逻辑页面。控制器耦接存储器装置与静态随机存取存储器,其中当控制器响应一抹除指令对第一缓存器所储存的数据执行抹除操作时,控制器于每完成一既定数量(M)之逻辑页面之抹除操作后,再检查是否自一主机装置接收到一中断信号或一重置指令,其中既定数量(M)为大于1的一正整数。
本发明揭示一种存储器装置的数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置、一静态随机存取存储器与一控制器。存储器装置包括用以储存多个连续逻辑页面的数据的一第一缓存器,静态随机存取存储器储存一第一映射表格。数据处理方法包括:由控制器根据一数据压缩率(R)编辑第一映射表格,其中第一映射表格记录第一缓存器的各物理页面所储存的数据是指向哪个逻辑页面,并且其中部分数据被储存于第一缓存器的逻辑页面的资讯未被记录于第一映射表格;由控制器接收对第一缓存器所储存的数据执行抹除操作的一抹除指令;以及响应抹除指令对第一缓存器所储存的数据执行抹除操作时,由控制器于每完成一既定数量(M)的逻辑页面的抹除操作时,才检查是否自一主机装置接收到一中断信号或一重置指令,其中既定数量(M)为大于1的一正整数,并且其中既定数量与第一映射表格的数据压缩率(R)相关。
附图说明
图1A是显示根据本发明的一实施例所述的电子装置范例方块图。
图1B是显示根据本发明的另一实施例所述的电子装置范例方块图。
图2是显示根据本发明的一实施例所述的数据处理方法流程图。
图3是显示根据本发明的一实施例所述的检查点示意图。
符号说明
100-数据储存装置;
110A、110B-控制器;
111-微处理器;
112、SRAM-静态随机存取存储器;
113、ROM-只读存储器;
114-编码器;
115-扰乱器;
120-存储器装置;
200-主机装置;
117、118-介面;
300A、300B-电子装置。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1A是显示根据本发明的一实施例所述的电子装置方块图。电子装置300A可包括主机装置200与数据储存装置100。电子装置300A可为移动装置,例如智慧型手机、智慧型手表或平板电脑,但不以此为限。
根据本发明的一实施例,数据储存装置100可包括控制器110A与存储器装置120。控制器110A可至少包括一微处理器111、静态随机存取存储器(Static Random AccessMemory,缩写为SRAM)112、只读存储器(ROM)113、一编码器114与一扰乱器115。存储器装置120可包括一或多个非挥发性存储器,例如,快闪存储器。
主机装置200与数据储存装置100可透过一既定介面117相互连接。例如,当数据储存装置100符合通用快闪存储器(Universal Flash Storage,缩写为UFS)的规范时,主机装置200与数据储存装置100可透过UFS介面相互连接。又例如,当数据储存装置100符合内嵌式存储器(embedded Multi Media Card,缩写为eMMC)的规范时,主机装置200与数据储存装置100可透过MMC介面相互连接。此外,控制器110A与存储器装置120可透过另一存储器介面118相互连接。
只读存储器113储存程序码,微处理器111可执行该程序码,以控制存储器装置120的存取运作,并利用静态随机存取存储器112进行所需的缓冲处理,以及透过介面117与主机装置200沟通。编码器114可对数据进行编码、解码,并且可根据欲写入存储器装置120的数据内容产生同位检查(parity check)位元,用以检查及更正错误。扰乱器115可根据随机种子对欲写入存储器装置120的数据进行数据扰乱,以及根据对应的随机种子对自存储器装置120读出的数据进行解扰乱。
图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区块的编程能维持稳定状态,存储器装置120的SLC区块以及部分MLC区块可作用为快取存储器,或称缓存器(buffer),用以暂存数据。待缓存器的使用率达到一定程度时,控制器110A/110B再将缓存器储存的数据写入MLC区块或将作为缓存器的MLC区块更新成数据区块,如此一来,缓存器的存储器空间可被释放并可再度被使用。
本发明应用于使用双缓存器的数据储存装置。根据本发明的一实施例,存储器装置120可包括一第一缓存器Buffer_1与一第二缓存器Buffer_2,其中第一缓存器Buffer_1可包括一或多个多层单元(MLC)区块,第二缓存器Buffer_2可包括一或多个单层单元(SLC)区块。
第一缓存器Buffer_1被设定为用以储存连续或大笔数据,例如,用以储存多连续逻辑页面的数据,而第二缓存器Buffer_2被设定为用以随机或小笔数据。根据本发明的一实施例,控制器110A/110B可根据一笔写入指令中所指示欲被写入的数据的数据量以及欲写入存储器装置120的既定数据DATA的起始主页面(Hostpage,HP)编号,判断将数据写入第一缓存器Buffer_1或第二缓存器Buffer_2。于本发明的实施例中,主页面即为一种逻辑页面。
一般而言,控制器110A/110B自主机装置200接收用以指示将一既定数据DATA写入存储器装置120的一写入指令WCMD。既定数据DATA可包括多个页面(例如,多个逻辑页面或多个主页面)的数据。举例而言,既定数据DATA为主机装置的主页面HP 0~10的数据,其中一个主页面可被设定为主机装置系统一次存取作业的数据单位。例如,当一个物理页面的大小为16K位元组(Byte)时,一个主页面的大小可被设定为4K位元组。
由于执行同一个写入指令WCMD需连续写入一特定数量的主页面(例如,一个写入指令WCMD需连续写入N个主页面,N为大于1的一正整数),因此,根据本发明的一实施例,当写入指令WCMD中起始主页面的编号为N的整数倍(或,除以N所得的余数为0),且既定数据DATA的数据量大于或等于一临界值或者为该临界值的整数倍时,控制器110A/110B可判断将数据写入第一缓存器Buffer_1。反之,控制器110A/110B可判断将数据写入第二缓存器Buffer_2。
根据本发明的一实施例,第一缓存器Buffer_1用以储存至少特定数量(N)个以上连续逻辑页面的数据,其中特定数量N与一逻辑页面大小及一物理页面大小相关。根据本发明的一实施例,所述的临界值可以是一个物理页面大小(例如,16K位元组),且当主页面的大小被设定为4K位元组时,因一物理页面大小相当于4个主页面,特定数量N可以设定为4(一个物理页面与一逻辑页面的比值)。因此,于本发明的一实施例中,一个写入指令WCMD需连续写入4个主页面,且第一缓存器Buffer_1用以储存至少4个以上连续逻辑页面的数据。
根据本发明的一实施例,以特定数量N=4作为范例,当写入指令WCMD中起始主页面的编号为4的整数倍(或,除以4所得的余数为0),且既定数据DATA的数据量为16K位元组的整数倍时,控制器110A/110B可判断将数据写入第一缓存器Buffer_1。反之,控制器110A/110B可判断将数据写入第二缓存器Buffer_2。
举例而言,当欲写入存储器装置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。
根据本发明的一实施例,控制器110A/110B会维护多个映射表格,包含一第一映射表格、一第二映射表格与一第三映射表格。第一映射表格为储存于SRAM 112的一快闪存储器对主机映射(Flash to Host mapping table,缩写为F2H)表格。第一映射表格记录第一缓存器Buffer_1及第二缓存器Buffer_2的各物理页面所储存的数据是指向哪个逻辑页面,例如,第一映射表格中可记录对应的逻辑页面的逻辑区块地址(Logical Block Address,缩写为LBA)。
第二映射表格为储存于存储器装置120的一主机对快闪存储器映射(Host toFlash mapping table,缩写为H2F)表格,用以记录各逻辑页面的数据指向(被储存于)哪个存储器区块的哪个物理页面。一般而言,当第一缓存器Buffer_1被写满时,储存于SRAM 112中第一缓存器Buffer_1所对应的第一映射表格(F2H表格)可用来更新储存于存储器装置120的H2F表格(即,所述的第二映射表格),此时,原先作为缓存器使用的存储器区块(即,对应的第一缓存器Buffer_1)也会被转换为数据区块。
第三映射表格为储存于存储器装置120的一F2H表格,用以记录对应的数据区块的各物理页面所储存的数据指向哪个逻辑页面。同样地,当第一缓存器Buffer_1被写满时,储存于SRAM 112的第一映射表格(F2H表格)会被更新至存储器装置120(即,所述的第三映射表格),因此,第二映射表格与第三映射表格记录的内容通常为相对应的。值得注意的是,于本发明的实施例中,储存于SRAM 112中的第一映射表格(F2H表格)为被压缩过的(以下将有更详细的介绍),储存于存储器装置120的第三映射表格(F2H表格)为未被压缩过的(即,由将第一映射表格展开而得)。
如上述,由于第一缓存器Buffer_1被设定为用以储存连续或大笔数据,例如,用以储存多个连续逻辑页面的数据,且第一映射表格被储存于SRAM 112中,因此,根据本发明的一实施例,当SRAM 112空间有限时,控制器110A/110B可根据一数据压缩率(R)编辑第一缓存器Buffer_1所对应的第一映射表格,以降低SRAM 112的使用率。所述的数据压缩率R代表SRAM 112实际上仅使用(X/R)位元组的数据量来记录X位元组的数据,其中,X与R均为大于1的一正整数。换言之,根据本发明的一实施例,第一缓存器Buffer_1所对应的第一映射表格所记录的资讯为被压缩过,而第二缓存器Buffer_2所对应的第一映射表格所记录的资讯为未被压缩过。
根据本发明的一实施例,第一映射表格根据数据压缩率R记录第一缓存器Buffer_1的各物理页面所储存的数据是指向哪个逻辑页面,因此,部分数据被储存于第一缓存器Buffer_1的逻辑页面所对应的资讯(例如,逻辑区块地址(LBA))不会被记录于第一映射表格中。更具体的说,根据本发明的一实施例,对于每R个数据被储存于第一缓存器Buffer_1的连续逻辑页面,仅其中的一个逻辑页面所对应的资讯(例如,逻辑区块地址(LBA))会被记录于第一映射表格。
根据本发明的一实施例,数据压缩率R与特定数量N相关。举例而言,当特定数量N被设定为4时,数据压缩率R可被设定为特定数量N或特定数量N的整数倍。假设数据压缩率R=4,则根据本发明的一实施例,对于每4个被写入第一缓存器Buffer_1的连续主页面,仅其中的一个主页面所对应的逻辑区块地址(LBA)会被记录于第一映射表格。举例而言,当欲写入存储器装置120的既定数据DATA为主机装置的HP 0~HP3时,第一缓存器Buffer_1所对应的第一映射表格仅记录起始主页面HP 0所对应的逻辑区块地址(LBA)。换言之,于此范例中,若第一缓存器Buffer_1所对应的第一映射表格中,对于某物理页面仅记录了主页面HP0所对应的逻辑区块地址(LBA),代表着该物理页面实际上所储存的数据指向主页面HP0~HP3。如此一来,压缩过的映射表格所需数据量可被减少为未压缩过的映射表格所需的数据量的1/4倍。
由于第一缓存器Buffer_1所对应的第一映射表格是根据数据压缩率R被编辑,使得映射表格数据量可降低为未压缩过的1/R倍,因此,当控制器110A/110B对第一缓存器Buffer_1储存的数据执行抹除操作时,也必须做特殊的处理。
根据本发明的一实施例,于抹除存储器装置120所储存的数据时,控制器110A/110B会将该数据于第二映射表格以及第一映射表格(若该数据所对应的连结亦存在于第一映射表格)中所对应的连结清除。更具体的说,假设欲抹除的数据为包括多个逻辑页面的数据时,控制器110A/110B应依序将每一逻辑页面于第二映射表格以及第一映射表格(若该数据所对应的连结亦存在于第一映射表格)中所对应的连结清除(例如,将对应的数值设成0xFF)。当一逻辑页面于各映射表格中所对应的连结被清除后,控制器110A/110B便无法读取该逻辑页面的数据。
而根据eMMC存储器规范,控制器110A/110B于执行读取、写入或抹除操作时,主机装置200可对数据储存装置100发出中断信号(High Priority Interrupt,缩写为HPI)或重置(Soft reset)指令。中断信号HPI的机制为允许在完成具有低优先权的操作前中断此低优先权的操作,用以执行具有高优先权的操作。当控制器110A/110B接收到HPI中断信号时,就会执行重置(soft reset)。此外,当硬件重置脚位的电压被拉低时,控制器110A/110B,也会执行重置(soft reset)。举例而言,当控制器110A/110B检测到中断信号或重置指令时,必须立刻停止目前的读取、写入或抹除操作(即便操作尚未完成),并且于一既定时间(例如,10ms)内将存储器装置120的控制权交给主机装置200,而主机装置200可于既定时间届满后发出新的指令给数据储存装置100。一般而言,一旦因中断信号或重置指令而中断读取、写入或抹除操作,控制器110A/110B不会再恢复执行被中断的读取、写入或抹除操作。
然而,由于第一缓存器Buffer_1所对应的第一映射表格是根据数据压缩率R被编辑,例如,对于数据被储存于第一缓存器Buffer_1的R个连续主页面HP(r)~HP(r+R),由于仅其中的一个主页面所对应之逻辑区块地址(LBA)会被记录于第一映射表格,因此,当控制器110A/110B于执行用以抹除第一缓存器Buffer_1所储存的数据的抹除操作过程中接收到中断信号或重置指令,则可能发生部分主页面于第二映射表格、第三映射表格以及第一映射表格内的连结不同步的问题。
举例而言,假设除第一缓存器Buffer_1所对应的第一映射表格仅记录主页面HP(r)所对应的逻辑区块地址(LBA)以代表连续主页面HP(r)~HP(r+R)的资讯,其中r为一正整数。当控制器110A/110B清除掉主页面HP(r)于第二映射表格以及第一映射表格的连结后,正好因收到中断信号或重置指令而中断抹除操作,则因第一映射表格为压缩过的表格,于主页面HP(r)的连结被清除掉后,剩余的主页面HP(r+1)~HP(r+R)也会被视为删除。因此,对于剩余的主页面HP(r+1)~HP(r+R),虽其于第一映射表格的连结已相对应地被清除,但由于其于第二映射表格的连结未同步地被清除,则会发生不乐见的读取错误。举例而言,由于主页面HP(r+1)~HP(r+R)于第二映射表格的连结未能同步地被更新,尔后于读取主页面HP(r+1)~HP(r+R)的数据时,控制器110A/110B极可能会回传旧的数据。
此外,当第一映射表格的内容已被更新至存储器装置120内所储存的第二映射表格时,映射表格内的连结的不同步也有可能导致僵尸区块(Zombie block)的产生。举例而言,当缓存器尚未被写满时,但因一些特殊需求,控制器110A/110B亦可提前将目前的第一映射表格的内容更新至存储器装置120内所储存的第二映射表格及/或第三映射表格。例如,主机装置200发出关机通知(Power Off Notification,缩写为PON)指令给控制器110A/110B的时候,或者数据储存装置100经历突然断电回复(Sudden Power Off Recovery,缩写为SPOR)之后,于重建好第一映射表格后也可先将目前的第一映射表格内容更新至存储器装置120的H2F表格(即,所述之第二映射表格)及/或F2H表格(即,所述的第三映射表格)。此时,第二映射表格的内容系指到目前的第一映射表格中储存的主页面(例如,以上范例所述的主页面HP(r)~HP(r+R))的数据的页面的实体地址。又例如,控制器110A/110B执行一写入指令写了一笔连续数据后,发现该写入指令后面是接到了一个读取指令时,可以在执行读取指令之前先把第一映射表格的内容更新到存储器装置120的第二映射表格(H2F表格),这样可以省去读取指令从头扫描第一映射表格的时间。
同样地,当控制器110A/110B因收到中断信号或重置指令而中断抹除操作,可能使得某些主页面于第一映射表格已对应被删除,但于第二映射表格中的连结仍存在,使得这些主页面所储存的数据无法于检测有效页面的过程中被检测出来,也无法被搬走。包含这类主页面的存储器区块则称为僵尸区块。
举例而言,僵尸区块可于下列情境之下产生。假设因上述特殊需求,控制器110A/110B先将目前的第一映射表格的内容更新至存储器装置120内所储存的第二映射表格,因此,若第一缓存器Buffer_1所对应的第一映射表格(F2H表格)记录了主页面HP(r)所对应的逻辑区块地址(LBA)以代表连续主页面HP(r)~HP(r+R)的资讯,则主页面HP(r)~HP(r+R)的资讯同样也被更新至存储器装置120内所储存的H2F表格(即,第二映射表格)。
假设当控制器110A/110B清除掉主页面HP(r)于第一映射表格的连结后,正好因收到中断信号或重置指令而中断抹除操作,则会导致第二映射表格内剩余的主页面HP(r+1)~HP(r+R)的连结未能被更新。尔后,当第一缓存器Buffer_1被写满时,原先作为缓存器使用的存储器区块(即,对应的第一缓存器Buffer_1)会被转换为数据区块,且此时控制器110A/110B会依据第一映射表格(F2H表格)更新存储器装置120内未压缩的F2H表格(即,第三映射表格),其中,存储器装置120内所储存的F2H表格(即,第三映射表格)是用以于尔后控制器110A/110B执行垃圾回收(garbage collection)程序时帮助控制器110A/110B找出有效页面。
由于第一映射表格(F2H表格)中的HP(r)的连结已被删除,所以第三映射表格(F2H表格)的HP(r)~HP(r+R)的连结记录都会是0xFF。之后启动垃圾回收程序时,虽然数据区块的主页面HP(r+1)~HP(r+R)都是有效数据,但是由于第三映射表格的HP(r)~HP(r+R)的连结都是0xFF,所以这些主页面并不会挑出来再去找第二映射表格(H2F表格)中的HP(r+1)~HP(r+R)的实体位置是否对应到数据区块所储存的主页面HP(r+1)~HP(r+R)的实体地址,亦即,虽然主页面HP(r+1)~HP(r+R)是有效数据,结果启动垃圾回收程序时却无法透过第三映射表格检测出来,且主页面HP(r+1)~HP(r+R)所储存的数据也无法搬走,因而产生僵尸区块。根据本发明的一实施例,当控制器110A/110B对第一缓存器Buffer_1储存的数据执行抹除操作时,必须做特殊的处理,以避免因执行抹除操作的过程中,由于中断信号或重置指令所造成映射表格内的连结不同步的问题,进而导致控制器110A/110B错误地回传旧的数据,或僵尸区块的产生。以下将针对所述特殊的处理做更详细的介绍。
根据本发明的一实施例,其中当控制器110A/110B响应一抹除指令对第一缓存器Buffer_1所储存的数据执行抹除操作时,控制器110A/110B可被设计为于每完成一既定数量(M)的逻辑页面的抹除操作后,再检查是否自主机装置200接收到一中断信号或一重置指令,其中既定数量(M)为大于1的一正整数。
根据本发明的一实施例,既定数量M与第一缓存器Buffer_1所对应的第一映射表格的数据压缩率R相关,其中,M可等于R、或者M>R并且M为R的整数倍,或者R>M并且R为M的整数倍。换言之,于本发明的实施例中,不使控制器110A/110B于每完成一个逻辑页面的抹除操作后便立刻检查是否自主机装置200接收到一中断信号或一重置指令,而是将控制器110A/110B设计为每完成既定数量M的逻辑页面的抹除操作后(每隔M个逻辑页面),才检查是否自主机装置200接收到一中断信号或一重置指令。或者,每当控制器110A/110B处理的逻辑页面的编号除以既定数量M的余数为0时,控制器110A/110B才检查是否自主机装置200接收到一中断信号或一重置指令。
如上述,由于主机装置200可于发出中断信号或重置指令后的既定时间届满后发出新的指令给数据储存装置100,因此,既定数量M的设计亦可根据既定时间而调整。举例而言,适当选择既定数量M,使得控制器110A/110B能在既定时间内完成M个逻辑页面的抹除操作,如此一来,即便控制器110A/110B并非于每完成一个逻辑页面的抹除操作后便立刻检查是否自主机装置200接收到一中断信号或一重置指令,仍可来的及于既定时间届满后接收到新的指令,可符合存储器的规范。
值得注意的是,上述的特殊设计适用于当抹除指令欲抹除的数据量大于或等于上述临界值、为上述临界值的整数倍、或者欲抹除的数据为特定数量(N)个连续逻辑页面的数据时的抹除操作。
根据本发明的一实施例,当抹除指令欲抹除的数据量大于或等于上述临界值、为上述临界值的整数倍、或者欲抹除的数据为特定数量(N)个连续逻辑页面的数据,且欲抹除的数据的起始主页面的编号为N的整数倍(或,除以N所得的余数为0)时,控制器110A/110B可被设计为于每完成一既定数量(M)的逻辑页面的抹除操作后,再检查是否自主机装置200接收到一中断信号或一重置指令。于此条件下的抹除操作,控制器110A/110B将清除各逻辑页面于映射表格的连结,而非将逻辑页面的数据改写为0。
根据本发明的一实施例,既定数量M与特定数量N相关,其中,M可等于N、或者M>N并且M为N的整数倍,或者N>M并且N为M的整数倍。
于本发明的一实施例中,N=M=R。因此,于本发明的一实施例中,既定数量M可与一逻辑页面大小及一物理页面大小相关,例如,既定数量M可设计为一个物理页面与一逻辑页面的比值。此外,数据压缩率R亦可与一逻辑页面大小及一物理页面大小相关。例如,数据压缩率R亦可设计为一个物理页面与一逻辑页面的比值。
图2是显示根据本发明的一实施例所述的数据处理方法流程图。首先,根据一数据压缩率(R)编辑第一缓存器Buffer_1所对应的第一映射表格(步骤S202)。如上述,第一映射表格记录第一缓存器Buffer_1的各物理页面所储存的数据是指向哪个逻辑页面,并且于第一映射表格中,一个逻辑页面的资讯可用以代表包含该逻辑页面的R个连续逻辑页面的资讯。
接着,当控制器接收对第一缓存器Buffer_1所储存的数据执行抹除操作的一抹除指令(步骤S204),并且当抹除指令欲抹除的数据量为上述临界值的整数倍(或者欲抹除的数据为特定数量(N)个连续逻辑页面的数据),且欲抹除的数据的起始主页面的编号为N的整数倍(或,除以N所得的余数为0)时,控制器于每完成一既定数量(M)的逻辑页面的抹除操作时,才检查是否自一主机装置接收到一中断信号或一重置指令(步骤S206)。
图3是显示根据本发明的一实施例所述的检查点示意图。于此实施例中,N=M=R=4。假设抹除指令欲抹除第一缓存器Buffer_1中所储存的对应于主页面HP0~HP 11的数据,则控制器110A/110B可于每隔4个逻辑页面检查是否自主机装置200接收到一中断信号或一重置指令。假设主机装置200于控制器110A/110B对主页面HP 5执行抹除操作时发出中断信号HPI,则控制器110A/110B将于对主页面HP 8执行抹除操作之前(或者,于对主页面HP7完成抹除操作之后)检测到此HPI,并且立刻停止目前的抹除操作。因此,响应中断信号HPI的接收,控制器110A/110B将不会继续抹除主页面HP 8~HP 11。此外,由于控制器110A/110B检测到中断信号HPI前,已完成主页面HP 4~HP 7的抹除操作,其中HP 4~HP 7于映射表格内的连结均已同步地被清除,如此一来,可有效避免因映射表格内的连结不同步,进而导致控制器110A/110B错误地回传旧的数据,或僵尸区块的产生等的问题,有效提升存储器装置的效能。
权利要求书中用以修饰元件的"第一"、"第二"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (10)
1.一种数据储存装置,包括:
一存储器装置,包括用以储存多个连续逻辑页面的数据的一第一缓存器;
一静态随机存取存储器,用以储存一第一映射表格,其中该第一映射表格记录该第一缓存器的各物理页面所储存的数据是指向哪个逻辑页面;以及
一控制器,耦接该存储器装置与该静态随机存取存储器,其中当该控制器响应一抹除指令对该第一缓存器所储存的数据执行抹除操作时,该控制器于每完成一既定数量(M)的逻辑页面的抹除操作后,再检查是否自一主机装置接收到一中断信号或一重置指令,其中该既定数量(M)为大于1的一正整数。
2.如权利要求1所述的数据储存装置,其特征在于,该既定数量与该第一映射表格的一数据压缩率(R)相关,并且该数据压缩率(R)为大于1的一正整数。
3.如权利要求2所述的数据储存装置,其特征在于,该控制器根据该数据压缩率(R)编辑该第一映射表格,并且其中部分数据被储存于该第一缓存器的这些逻辑页面的资讯未被记录于该第一映射表格。
4.如权利要求1所述的数据储存装置,其特征在于,对于每R个数据被储存于该第一缓存器的连续逻辑页面,仅其中的一个逻辑页面的资讯会被记录于该第一映射表格,并且其中R为大于1的一正整数。
5.如权利要求1所述的数据储存装置,其特征在于,该既定数量(M)为该第一映射表格的一数据压缩率(R)的一整数倍。
6.如权利要求1所述的数据储存装置,其特征在于,该第一缓存器用以储存一特定数量(N)个连续逻辑页面的数据,并且其中该特定数量(N)与一逻辑页面大小及一物理页面大小相关。
7.一种存储器装置的数据处理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置、一静态随机存取存储器与一控制器,该存储器装置包括用以储存多个连续逻辑页面的数据的一第一缓存器,该静态随机存取存储器储存一第一映射表格,该方法包括:
由该控制器根据一数据压缩率(R)编辑该第一映射表格,其中该第一映射表格记录该第一缓存器的各物理页面所储存之数据指向哪个逻辑页面,并且其中部分数据被储存于该第一缓存器的这些逻辑页面的资讯未被记录于该第一映射表格;
由该控制器接收对该第一缓存器所储存的数据执行抹除操作的抹除指令;以及
响应该抹除指令对该第一缓存器所储存的数据执行抹除操作时,由该控制器于每完成一既定数量(M)的逻辑页面的抹除操作时,才检查是否自一主机装置接收到一中断信号或一重置指令,其中该既定数量(M)为大于1的一正整数,并且其中该既定数量与该第一映射表格的该数据压缩率(R)相关。
8.如权利要求7所述的数据处理方法,其特征在于,该既定数量(M)为该第一映射表格的该数据压缩率(R)的一整数倍。
9.如权利要求7所述的数据处理方法,其特征在于,对于每R个数据被储存于该第一缓存器的连续逻辑页面,仅其中的一个逻辑页面的资讯会被记录于该第一映射表格。
10.如权利要求7所述的数据处理方法,其特征在于,该第一缓存器用以储存一特定数量(N)个连续逻辑页面的数据,并且其中该特定数量(N)与一逻辑页面大小及一物理页面大小相关。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106144391 | 2017-12-18 | ||
TW106144391A TWI662410B (zh) | 2017-12-18 | 2017-12-18 | 資料儲存裝置與記憶體裝置之資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109933545A CN109933545A (zh) | 2019-06-25 |
CN109933545B true CN109933545B (zh) | 2022-09-20 |
Family
ID=66816017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810718490.7A Active CN109933545B (zh) | 2017-12-18 | 2018-07-03 | 数据储存装置与存储器装置的数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10540276B2 (zh) |
CN (1) | CN109933545B (zh) |
TW (1) | TWI662410B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11061600B2 (en) * | 2018-01-12 | 2021-07-13 | Western Digital Technologies, Inc. | Tiered storage data evacuation within solid state devices |
US10922013B2 (en) * | 2018-04-09 | 2021-02-16 | Western Digital Technologies, Inc. | Suspending and resuming a read operation for a non-volatile memory |
US10545701B1 (en) * | 2018-08-17 | 2020-01-28 | Apple Inc. | Memory arbitration techniques based on latency tolerance |
KR102520540B1 (ko) * | 2018-10-23 | 2023-04-12 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
US10949284B2 (en) * | 2018-11-29 | 2021-03-16 | Micron Technology, Inc. | Techniques using nonvolatile memory and volatile memory |
TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI744049B (zh) * | 2020-02-06 | 2021-10-21 | 瑞昱半導體股份有限公司 | 記憶體控制器與資料處理方法 |
CN111597129B (zh) * | 2020-05-21 | 2022-06-07 | 北京泽石科技有限公司 | 缓存管理方法、装置、存储介质和固态非易失存储设备 |
CN111737173B (zh) * | 2020-06-24 | 2022-03-22 | 浪潮(北京)电子信息产业有限公司 | I2c总线通信控制方法、装置、系统及可读存储介质 |
KR20220042649A (ko) * | 2020-09-28 | 2022-04-05 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN114691020A (zh) * | 2020-12-30 | 2022-07-01 | 上海曼卜信息科技有限公司 | 基于zns标准提供数据压缩存储设备及其方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706242B1 (ko) * | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
US8140739B2 (en) * | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
JP2013061799A (ja) * | 2011-09-13 | 2013-04-04 | Toshiba Corp | 記憶装置、記憶装置の制御方法およびコントローラ |
US9329948B2 (en) * | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
US8954694B2 (en) * | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
TWI456393B (zh) * | 2012-12-24 | 2014-10-11 | Phison Electronics Corp | 資料讀取方法、記憶體控制器與記憶體儲存裝置 |
CN103914391B (zh) * | 2013-01-07 | 2016-12-28 | 群联电子股份有限公司 | 数据读取方法、存储器控制器与存储器存储装置 |
TWI515737B (zh) * | 2013-12-09 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其資料抹除方法 |
US20150178188A1 (en) * | 2013-12-20 | 2015-06-25 | Sandisk Technologies Inc. | Storage Module and Method for Re-Enabling Preloading of Data in the Storage Module |
US10825529B2 (en) * | 2014-08-08 | 2020-11-03 | Macronix International Co., Ltd. | Low latency memory erase suspend operation |
US9626112B2 (en) * | 2014-12-08 | 2017-04-18 | Symbol Technologies, Llc | eMMC functionality expander |
CN106157066A (zh) * | 2015-03-23 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 映射关系处理方法、系统及信息处理平台设备 |
US9983820B2 (en) * | 2016-03-29 | 2018-05-29 | Nxp B.V. | Method for performing data updates |
-
2017
- 2017-12-18 TW TW106144391A patent/TWI662410B/zh active
-
2018
- 2018-07-03 CN CN201810718490.7A patent/CN109933545B/zh active Active
- 2018-07-19 US US16/039,787 patent/US10540276B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN109933545A (zh) | 2019-06-25 |
US10540276B2 (en) | 2020-01-21 |
TWI662410B (zh) | 2019-06-11 |
US20190188125A1 (en) | 2019-06-20 |
TW201928685A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933545B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN109582217B (zh) | 数据储存装置与将数据写入存储器装置的方法 | |
US10552311B2 (en) | Recovery for non-volatile memory after power loss | |
US8799562B2 (en) | Storage apparatus and data control method for generating and storing format data and guarantee codes | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
US10838629B2 (en) | Solid state device with fast boot after ungraceful shutdown | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
US10642731B2 (en) | Memory management method and storage controller | |
CN103995784A (zh) | 快闪存储器控制器与存储装置以及快闪存储器控制方法 | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US11176033B2 (en) | Data storage devices and data processing methods | |
CN115016962A (zh) | 改善闪存的读取重试的方法、控制器以及相关存储装置 | |
US10248526B2 (en) | Data storage device and data maintenance method thereof | |
TW201616505A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US7257030B2 (en) | Operating a storage component | |
US10635583B2 (en) | Memory management method and storage controller | |
CN110825653B (zh) | 存储器管理方法以及存储控制器 | |
KR100654344B1 (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
CN111338562A (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 | |
CN110825310A (zh) | 存储器管理方法以及存储控制器 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
US20190243580A1 (en) | Dram-based storage device and associated data processing method | |
CN111966606B (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 |