CN110727395B - 闪存控制器、方法及存储装置 - Google Patents
闪存控制器、方法及存储装置 Download PDFInfo
- Publication number
- CN110727395B CN110727395B CN201910197688.XA CN201910197688A CN110727395B CN 110727395 B CN110727395 B CN 110727395B CN 201910197688 A CN201910197688 A CN 201910197688A CN 110727395 B CN110727395 B CN 110727395B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- space
- blocks
- memory device
- pages
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/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/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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种被耦接于闪存装置与主机装置之间的闪存控制器的方法,所述闪存装置具有多个区块,每一区块具有多个页,以及所述方法包括:从所述主机装置接收一修剪/擦除命令;从所述修剪/擦除命令,得到要被擦除的存储空间;比较所述存储空间的空间大小及一临界值,来决定所述空间大小是否大于所述临界值;以及当所述空间大小大于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值。本申请的所述闪存控制器及所述方法被用来对所述闪存装置执行一相应的修剪/擦除操作,可快速地产生或更新有效页数目对照表的内容,尽量省去更多的计算,从而达到较大的效能改进。
Description
技术领域
本申请涉及存储装置机制,特别有关于一种能够快速产生或更新一有效页数目对照表的内容的方法、闪存控制器及存储装置。
背景技术
一般而言,当传统的闪存控制器被安排用来对于一闪存装置执行一修剪/擦除操作(trim/erase/unmap operation)时,所述传统的闪存控制器需要大幅地更新一H2F对照表(host-to-flash table)以及一有效页数目对照表(valid page count table,VPCtable),而对于记录了有效页个数(亦即每一区块的有效页数目的值)的所述有效页数目对照表,所述传统的闪存控制器必需依序地以一页接着一页的方式,对一修剪/擦除命令所要擦除的一存储空间所相应的每一区块的一有效页数目的值,逐次进行减一的计算(decrement),而通常所述修剪/擦除操作会是用来抹除一个较大的存储空间,如此不幸的是传统的闪存控制器必需等待一个较长的时间才能完成所述有效页数目对照表的更新计算,并且传统的闪存控制器也要花费较多的计算资源来更新所述有效页数目对照表的内容,降低本身的效能。
发明内容
因此本申请的目的之一在于公开一种能够快速产生或更新一有效页数目对照表的内容的方法、闪存控制器以及存储装置,以解决上述的问题。
根据本申请实施例,公开一种闪存控制器,所述闪存控制器被安排耦接于一闪存装置以及一主机装置之间,所述闪存装置具有多个区块,每一区块具有多个页,所述闪存控制器包含一处理电路,所述处理电路用来:从所述主机装置接收一修剪/擦除命令;从所述修剪/擦除命令,得到要被擦除的一存储空间;比较所述存储空间的一空间大小与一临界值,来决定所述空间大小是否大于所述临界值;以及,当所述空间大小大于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值。
根据本申请实施例,另公开一存储装置,所述存储装置包含所述闪存装置、所述闪存控制器以及一存储电路,所述存储电路耦接于所述闪存控制器并用来存储一有效页数目对照表的信息,所述有效页数目对照表记录了所述多个区块的所述多个有效页数目的值。
根据本申请实施例,另公开一闪存控制器,所述闪存控制器被耦接于一主机装置与一闪存装置,所述闪存装置具有多个区块,每一区块具有多个页,所述闪存控制器包含一处理电路,所述处理电路用来:从所述主机装置接收一第一修剪/擦除命令;从所述第一修剪/擦除命令,得到要被擦除的一第一存储空间;执行一第一修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;从所述主机装置接收一第二修剪/擦除命令;从所述第二修剪/擦除命令,得到要被擦除的一第二存储空间;以及执行一第二修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;其中所述第二存储空间的一空间大小大于所述第一存储空间的一空间大小,当所述第一修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的一等候时间较短于当所述第二修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的一等候时间。
根据本申请实施例,另公开一闪存控制器的方法,所述闪存控制器被耦接于一闪存装置与一主机装置之间,所述闪存装置具有多个区块,每一区块具有多个页,以及所述方法包含:从所述主机装置接收一修剪/擦除命令;从所述修剪/擦除命令,得到要被擦除的一存储空间;比较所述存储空间的一空间大小与一临界值,来决定所述空间大小是否大于所述临界值;以及,当所述空间大小大于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值。
根据本申请实施例,另公开一闪存控制器的方法,所述闪存控制器被耦接于一主机装置与一闪存装置,所述闪存装置具有多个区块,每一区块具有多个页,所述方法包含:从所述主机装置接收一第一修剪/擦除命令;从所述第一修剪/擦除命令,得到要被擦除的一第一存储空间;执行一第一修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;从所述主机装置接收一第二修剪/擦除命令;从所述第二修剪/擦除命令,得到要被擦除的一第二存储空间;以及执行一第二修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;其中所述第二存储空间的一空间大小大于所述第一存储空间的一空间大小,当所述第一修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的一等候时间较短于当所述第二修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的一等候时间。
根据本申请实施例,另公开一闪存控制器,所述闪存控制器被耦接于一闪存装置与一主机装置之间,所述闪存装置具有多个区块,每一区块具有多个页,所述闪存控制器包含一处理电路,所述处理电路用来:从所述主机装置接收一修剪/擦除命令;从所述修剪/擦除命令,得到没有要被擦除的一存储空间;比较所述存储空间的一空间大小与一临界值,来决定所述空间大小是否小于所述临界值;以及,当所述空间大小小于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值。
根据本申请实施例,另公开一闪存控制器的方法,所述闪存控制器被耦接于一闪存装置与一主机装置之间,所述闪存装置具有多个区块,每一区块具有多个页,所述方法包含:从所述主机装置接收一修剪/擦除命令;从所述修剪/擦除命令,得到没有要被擦除的一存储空间;比较所述存储空间的一空间大小与一临界值,来决定所述空间大小是否小于所述临界值;以及,当所述空间大小小于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值。
根据本申请实施例,当所述闪存控制器接收所述修剪/擦除命令时,本申请的所述闪存控制器及所述方法被用来对所述闪存装置执行一相应的修剪/擦除操作,并且可快速地产生或更新有效页数目对照表的内容,以尽量省去更多的计算,从而达到较大的效能改进。
附图说明
图1是本申请一实施例的应用于一闪存控制器的方法流程图。
图2是根据图1所示的流程实施例的耦接于主机装置与闪存装置之间的一闪存控制器的方块示意图。
图3是当分别接收到不同修剪/擦除命令以抹除具有不同空间大小的存储空间时闪存控制器的效能示意图。
图4是本申请第二实施例的应用于闪存控制器的方法流程图。
图5是本申请第三实施例的应用于闪存控制器的方法流程图。
其中,附图标记说明如下:
200 闪存控制器
201 主机装置
202 闪存装置
203 固态硬盘装置
2005 存储电路
2010 处理电路
具体实施方式
请参照图1,图1是本申请实施例的应用于一闪存控制器的方法流程图,所述方法当接收到来自于一主机装置所传送的一修剪/擦除命令(trim/erase/unmap command)时能够快速地产生多个有效页数目(valid page count,VPC)的信息或内容;所述闪存控制器例如是被耦接于所述主机装置及一闪存装置(例如一电路芯片)之间。此外,所述闪存控制器与所述闪存装置可以是被包括于一固态硬盘装置内。所述闪存控制器通常采用或使用一H2F对照表(host-to-flash table)及一有效页数目对照表(VPC table),分别对于所述闪存装置中的每一区块来记录所使用的多个逻辑地址与一或多个有效页的个数。当所述闪存控制器接收到所述修剪/擦除命令,所述闪存控制器被安排用来对所述闪存装置执行一相应的修剪/擦除操作(trim/erase/unmap operation),而所述闪存控制器需要去更新H2F对照表的内容及有效页数目对照表的内容,而本申请的方法可令所述闪存控制器快速地产生或更新有效页数目对照表的内容,使得可尽可能地节省过多的计算,从而达到大幅的效能改进。
假若在不妨碍本申请的实施并大体上达到相同结果之前提下,图1所示的流程图的步骤不需依照所示的确切顺序进行,所述这些步骤也不需连续进行,也就是说,其他步骤可穿插其中。详细步骤如下:
步骤105:开始;
步骤110:存取有效页数目对照表的信息;
步骤115:接收来自于所述主机装置的一修剪/擦除命令(trim/erase/unmapcommand);
步骤120:从所述修剪/擦除命令,得到要被擦除的一存储空间(例如要被擦除的一逻辑存储空间);
步骤125:比较所述存储空间的一空间大小与一临界值TH,决定所述空间大小是否大于所述临界值;如果所述空间大小大于所述临界值TH,则流程进行步骤130A,反之,流程进行步骤130B;
步骤130A:重置所述闪存装置的多个区块的多个有效页数目的值是零,以及重建不被所述修剪/擦除命令所擦除的一另一存储空间的多个有效页数目的值;
步骤130B:根据要被擦除的所述存储空间的逻辑地址,逐次减少(decrement)至少一个区块的至少一个有效页数目的值;以及
步骤135:结束。
图2是根据图1所示的流程实施例的耦接于主机装置201与闪存装置202之间的一闪存控制器200的方块示意图。闪存装置202例如是一闪存芯片,所述芯片包含多个区块,每一区块包含多个页,例如,闪存装置202可以是NAND闪存芯片(但并非限制)。此外,闪存控制器200与闪存装置202可以被包括于一存储装置203内部,存储装置203例如是一固态硬盘装置、一SD卡、一USB随身碟或一嵌入式存储装置(但不限定)。闪存控制器200包含一存储电路2005以及一处理电路2010,存储电路2005例如是一随机存取内存(但不限定)并被用来存储有效页数目对照表的信息或内容,闪存装置202具有多个区块(存储区块),而每一区块具有多个页,有效页数目对照表的多个相应的字段或项目被分别用来记录闪存装置202的所有区块的多个有效页数目的值。
实作上,在本实施例,存储电路2005可被用来存储有效页数目对照表的信息或内容以及存储H2F对照表的信息或内容,但这并不是本申请的限制,在另一实施例,上述两个对照表或上述的其中一个对照表均可被存储于外部耦接于闪存控制器200的一另一不同的内存装置。
处理电路2010在步骤110被安排用来存取有效页数目对照表的信息,有效页数目对照表记录所述多个区块的多个有效页数目的值,所述多个区块例如是闪存装置202的所有区块,处理电路2010在步骤115从主机装置201(例如一计算器)接收所述修剪/擦除命令,举例来说,如果闪存控制器200支持一修剪/擦除命令的功能,主机装置201可通过发送所述修剪/擦除命令至闪存控制器200来要求闪存控制器200抹除一特别的存储空间。
实作上,闪存控制器200的处理电路2010被安排用来于每次当初始化一数据程序化(写入)操作时,程序化(写入)一页数据至闪存装置202的一区块的一页。此外,闪存控制器200的处理电路2010被安排用来于每次当初始化一数据抹除操作时抹除闪存装置202的一区块的所有页的内容,亦即,闪存控制器200每次写入或程序化一页,以及每次抹除一个区块。
闪存控制器200包括H2F对照表(或称是逻辑地址-实体地址对照表(logical-to-physical(L2P)table),闪存控制器200的处理电路2010可依序地指派不同的逻辑地址给不同笔的页数据。而对于写入一页数据,H2F对照表的一个项目(item)可被用来记录哪一个实体区块的哪一个实体页被用来存储所述页数据,实作上,所述H2F对照表包含一定个数的项目,分别相应于闪存装置202的所有实体区块的所有实体页,当闪存控制器200写入一页数据至一区块的一页时,闪存控制器200的处理电路2010被安排用来将所述页数据所使用的一逻辑地址记录于所述H2F对照表中与所述区块的所述页有关的一相应的项目,当写入一不同页数据至一不同页时,闪存控制器200的处理电路2010被安排用来将所述另一页数据所使用的一相应逻辑地址记录于所述H2F对照表中与所述另一页有关的一相应的项目,如此,当后续存取闪存装置202来获取某一页数据时,闪存控制器200基于所述某一页数据的逻辑地址来对H2F对照表进行查表,即可得知哪一个实体存储区块的哪一个实体页被用来存储所述页数据,并接着正确地取得或读出所述页数据。
闪存控制器200包括所述有效页数目对照表,所述有效页数目对照表包含一定个数的项目,其中每一项目用来存储一相应区块的一或多个有效页的总数的值,基本上,在所述有效页数目对照表中的多个项目的个数相同于在闪存装置202中的区块的个数,然而这并非是本申请的限制。对于一特定区块来说,当闪存控制器200写入一页数据至所述特定区块的一空的页及记录一特别的逻辑地址于所述H2F对照表中与所述空的页有关的一相应的项目时,所述特定区块的一或多个有效页的个数,亦即所述特定区块的一有效页数目的值,会被闪存控制器200的处理电路2010增加一。而如果所述相同的逻辑地址在先前已经被其他页数据所使用,则当所述逻辑地址已经记录于所述H2F对照表中与所述不同区块的一页有关的一项目,另一不同区块的一有效页数目的值会被闪存控制器200的处理电路2010减少一。
此外,闪存装置202被设计包含一用户数据存储区与一保留存储区(例如一系统区与一保留区),所述用户数据存储区用来存储用户数据并经常或几乎大于闪存装置202的总存储空间/容量的一半,所述保留存储区用来存储重要档案的信息,例如系统档案、操作系统开机程序等,例如,总存储空间的百分的十可被用来作为所述保留存储区,而总存储空间的其他部分可用来作为所述用户数据存储区,然而,这并非是本申请的限制。
主机装置201可发送所述修剪/擦除命令至闪存控制器200以抹除闪存装置200中除了所述保留存储区以外的其他所有的区块,例如,当如果闪存装置202被第一次使用时或者已经变脏时(dirty)而决定去清除或抹除区块的内容,主机装置201可以发送修剪/擦除命令至闪存控制器200,应注意的是从一主机端接收所述修剪/擦除命令的时间点并非是本申请的限制,闪存控制器200可在任何可能的情况下接收这样的命令。
实作上,当闪存控制器200接收所述修剪/擦除命令且所述修剪/擦除命令指示出抹除所述用户数据存储区的区块而非所述保留存储区时,闪存控制器200的处理电路2010被安排用来将闪存装置202的所有区块的所有有效页数目的值均重置为零,也就是,闪存控制器200会将所有区块(包含所述保留存储区的所有区块)的所有有效页数目的值均重置为零,接着,闪存控制器200的处理电路2010会重建所述保留存储区的所有区块的有效页数目,而由于所述保留存储区的空间较小于所述用户数据存储区的空间,重建所述保留存储区的所有区块的有效页数目的值所需要花费的计算时间远短于直接对所述用户数据存储区的所有区块的有效页数目每次减一所需要花费的计算时间,如此,闪存控制器200可达到快速产生有效页数目对照表的信息/内容的效果。
举例来说,执行重建一区块的一有效页数目的操作可通过一个页接着一个页的方式来计算及逐次累加(每次加一)所述区块的一或多个有效页的个数来进行,而这样的操作不同于直接通过一个页接着一个页的方式来逐次减少(每次减一)一个区块的一或多个有效页的个数的操作,以下为了简化描述这些操作,例如假设一闪存装置包括了四个区块BLK1、BLK2、BLK3及BLK4,每一个区块具有四个页(总共十六个页),以及总共存在有十个逻辑地址LBA0至LBA9;然而,这并非是本申请的限制。
例如闪存控制器200可依序地使用所述这些逻辑地址LBA0至LBA9来写入不同笔的数据单元(不同的页数据)至闪存装置的区块的页,例如,如果是十笔数据单元被依序地写入至闪存装置,则在以下H2F对照表中,处理电路2010会把相应于区块BLK1的四个字段上的项目记录为LBA0、LBA1、LBA2及LBA3,并且将相应于区块BLK2的四个字段上的项目记录为LBA4、LBA5、LBA6及LBA7,同样地,处理电路2010会把相应于区块BLK3的两个字段上的项目记录为LBA8及LBA9,而剩下两个字段上的项目为空的,并且相应于区块BLK4的四个字段上的项目也是空的,因此,在有效页数目对照表中,区块BLK1、BLK2、BLK3及BLK4的四个有效页数目分别会记录为4、4、2、0;所述H2F对照表及有效页数目对照表的例子可显示如下:
之后,处理电路2010写入另一个数据单元至所述闪存装置,而在H2F对照表中处理电路2010被安排将相应于区块BLK3的第三个字段的项目记录为LBA0,相应于区块BLK1的第一个字段的项目先前所记录的LBA0变成是无效的,亦即一个无效页,闪存控制器200的处理电路2010会根据目前的有效页,将区块BLK1的有效页数目的值减去一,并且将区块BLK3的有效页数目的值增加一,如此,在有效页数目对照表中,区块BLK1、BLK2、BLK3及BLK4的四个有效页数目分别会记录为3、4、3、0;所述H2F对照表及有效页数目对照表的例子可显示如下:
于此情况下,如果主机装置201发送一修剪/擦除命令至闪存控制器200,并且所述修剪/擦除命令指示了要修剪(trim)或抹除(erase)具有逻辑地址从LBA1至LBA9的一存储空间,则闪存控制器200的处理电路2010会被安排得到没有要被所述修剪/擦除命令修剪或抹除的另一不同存储空间的一或多个逻辑地址,例如,如果所述修剪/擦除命令被安排要抹除一用户数据存储区的一存储空间,则没有要被所述修剪/擦除命令修剪或抹除的所述另一不同存储空间可以是一保留存储区。而在这个例子中(修剪或抹除逻辑地址从LBA1至LBA9的存储空间),闪存控制器200会得到没有要被擦除的逻辑地址LBA0。
闪存控制器200的处理电路2010会清空/重置记录于H2F对照表中所述存储空间从逻辑地址LBA1至LBA9的项目,并且也会清空或重置有效页数目对照表中所有区块的所有有效页数目的值为零,接着闪存控制器200被安排用来根据所得到的没有要被擦除的存储空间的至少一个逻辑地址,来计算并累加所有有效页的个数来重建有效页数目对照表中的一或多个有效页数个的值。处理电路2010被安排用来以一个页接着一个页的方式逐次检查是否相应于没有要被擦除的存储空间的页是有效页或是无效页,等效上,处理电路2010会被安排逐次累加相应于没有要被擦除的存储空间的某些一或多个区块的一或多个有效页数目的值。举例来说,在上述例子中,闪存控制器200只要在所有有效页数目的值均被重置并零之后将区块BLK3的有效页数目的值加一(从零变为1),就可快速地重建有效页数目对照表的正确信息;所述H2F对照表及有效页数目对照表的例子可显示如下:
重置有效页数目对照表:
重建有效页数目对照表:
相较来说,由于传统现有的机制需要依顺序检查相应于逻辑地址从LBA1至LBA9的九个页并按一个页接着一个页的方式来计算多个有效页数目的值,所以,根据要被擦除的逻辑地址LBA1至LBA9,现有机制需要将相应的多个区块的多个有效页数目的值逐次减一并执行九次,才能够得到有效页数目对照表的正确信息。而在本申请的实施例,闪存控制器200通过先将所有的有效页数目的值重置为零、接着再根据没有要被擦除的存储空间来计算一或多个有效页数目的值并逐次累加,就可以快速地产生有效页数目对照表的正确信息。再者,应注意的是上述所提到的实施例中的对照表范例仅是用以解释本申请的技术精神,而并非是本申请的限制。
此外,本申请的操作特别有用于当修剪/擦除命令用来抹除大于一特别存储空间(例如整个存储空间)的一半的一存储空间时,也就是特别有用于例如当要被抹除的存储空间大于所述闪存装置的整个实体存储空间的一半时,或是特别有用于当要被抹除的存储空间大于用户数据区的一半时;然此均并非是本申请的限制。在另一实施例,闪存控制器200的处理电路2010会被安排用来决定要被一修剪/擦除命令所擦除的一存储空间的大小是否大于一特定临界值TH,特定临界值TH例如是整个实体存储空间的一半或是用户数据区的一半。如果要被擦除的存储空间的大小大于特定临界值TH,则处理电路2010会被安排用来重置所有的有效页数目的值,并接着根据没有要被擦除的其他不同存储空间来逐次累加一或多个有效页数目的值,反之,如果要被擦除的存储空间的大小小于特定临界值TH,则处理电路2010会被安排用来直接根据要被擦除的存储空间来对一或多个有效页数目的值逐次减一,以产生有效页数目对照表的信息或内容。
请参照图3,图3是当分别接收到不同修剪/擦除命令以抹除具有不同空间大小的存储空间时闪存控制器200的效能示意图,如图3所示,水平轴表示要被擦除的存储空间(或实体存储空间)的不同空间大小,垂直轴表示当接收到修剪/擦除命令以抹除水平轴所定义的一存储空间大小时完成计算有效页数目对照表的内容的相应等待时间。
举例来说,在第一个例子中,处理电路2010从主机装置201接收到一第一修剪/擦除命令,并接着被安排用来对闪存装置202执行一第一修剪/擦除操作,闪存控制器200的处理电路2010从所述第一修剪/擦除命令得到要被擦除的一第一存储空间,在本例子中所述第一存储空间的大小LS1小于特定临界值TH(例如整个存储空间的一半),闪存控制器200的处理电路2010被安排用来清空在所述H2F对照表中记录有第一存储空间的多个逻辑地址的多个项目,并直接对于所述第一存储空间所包括的多个逻辑地址所相应的多个有效页数目的值进行逐次减一的计算,以产生或更新所述有效页数目对照表的信息/内容,完成所述第一修剪/擦除操作需要等待一时间T1。另外,在第二个例子中,闪存控制器200的处理电路2010从主机装置201接收到一第二修剪/擦除命令,并接着被安排用来对闪存装置202执行一第二修剪/擦除操作(trim/erase/unmap operation),闪存控制器200的处理电路2010从所述第二修剪/擦除命令得到要被擦除的一第二存储空间,在本例子中所述第二存储空间的大小LS2大于特定临界值TH(例如整个存储空间的一半),闪存控制器200的处理电路2010被安排用来清空在所述H2F对照表中记录有第二存储空间的多个逻辑地址的多个项目、重置所述有效页数目对照表中所有区块的所有的有效页数目的值、以及通过对于不包括第二存储空间的其他多个逻辑地址所相应的多个有效页数目的值逐次进行加一的计算来重建相应于不包括第二存储空间的所述其他多个逻辑地址的有效页数目的值,完成所述第二修剪/擦除操作仅需要等待一时间T2,其较短于时间T1。
相较于传统的机制,如果传统机制需要等待时间T1来完成对于要被擦除的存储空间大小LS1的有效页数目对照表的计算,则所述传统机制必然需要等待更长的时间来完成对于要被擦除的存储空间大小LS2的有效页数目对照表的计算,而对于传统机制来说,这样更长的等待时间通常是等同于时间T1再乘上一个T1除以T2的倍数。而在本申请实施例中,即使闪存控制器200在第二个例子中被安排用来抹除一个具有较多逻辑地址的较大存储空间LS2,然而,通过上述重置及重建的步骤,闪存控制器200可省去较多的数据计算,并且所花费的时间T2较短于时间T1。
再者,在另一实施例,临界值TH的值为可调整的并且可以被用户所决定。再者,图2的存储电路2005可被设置为不包括于闪存控制器200内,而是外部连接至闪存控制器200。
另外,在其他实施例,可假设从主机装置201所发送的一修剪/擦除命令可以是预设用来抹除一个较大的逻辑/实体空间,其大小大于整个实体存储空间的一半。一旦接收到所述修剪/擦除命令,闪存控制器200的处理电路2010可对于所述有效页数目对照表执行上述的重置与重建步骤,也就是,处理电路2010可被用来决定一个要被擦除的存储空间的大小是否大于临界值TH。图4显示了所述设计变型实施例的流程图,为简化说明书的内容,其详细说明不再赘述。
再者,在其他实施例,当接收到所述修剪/擦除命令且所述修剪/擦除命令指示出要被擦除的另一存储空间时,处理电路2010可等效上得到没有要被擦除的一存储空间,例如,对于地址LBA0至LBA9所相应的空间而言,如果所述修剪/擦除命令被安排用来抹除与地址LBA1至LBA9相关连的空间,则处理电路2010可得到一个相应的没有要被擦除的空间,亦即相应于地址LBA0的空间,当得到没有要被擦除的所述存储空间时,处理电路2010被安排用来比较没有要被擦除的所述存储空间的一空间大小与一临界值(例如上述的临界值TH),以决定所述空间大小是否小于所述临界值,而接着当所述空间大小小于所述临界值时,重置闪存装置202的多个区块的多个有效页数目的值。图5是本申请第三实施例的应用于一闪存控制器200的方法流程图,所述方法当接收到来自于主机装置201所传送的一修剪/擦除命令(trim/erase/unmap command)时能够快速地产生多个有效页数目的信息或内容。假若在不妨碍本申请的实施并大体上达到相同结果之前提下,图5所示的流程图的步骤不需依照所示的确切顺序进行,所述这些步骤也不需连续进行,也就是说,其他步骤可穿插其中。详细步骤如下:
步骤505:开始;
步骤510:存取有效页数目对照表的信息;
步骤515:接收来自于所述主机装置的一修剪/擦除命令;
步骤520:从所述修剪/擦除命令,得到没有要被擦除的一存储空间;
步骤525:比较没有要被擦除的所述存储空间的一空间大小与一临界值TH,决定所述空间大小是否小于所述临界值TH;如果所述空间大小小于所述临界值TH,则流程进行步骤530A,反之,流程进行步骤530B;
步骤530A:重置所述闪存装置的多个区块的多个有效页数目的值为零,以及重建不被所述修剪/擦除命令所擦除的一另一存储空间的多个有效页数目的值;
步骤530B:根据要被擦除的所述存储空间的逻辑地址,对至少一个区块的至少一个有效页数目的值逐次地减一;以及
步骤535:结束。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (23)
1.一种被耦接于闪存装置与主机装置之间的闪存控制器,所述闪存装置具有多个区块,每一区块具有多个页,以及所述闪存控制器包括:
一处理电路,用来:
从所述主机装置接收修剪/擦除命令;
从所述修剪/擦除命令,得到要被擦除的第一存储空间;
比较所述第一存储空间的空间大小及临界值,来决定所述空间大小是否大于所述临界值;以及
当要被擦除的所述第一存储空间的所述空间大小大于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值,以及接着根据没有要被擦除的第二存储空间的逻辑地址通过增加所述第二存储空间的区块的有效页数目的值来重建所述第二存储空间的多个有效页数目的信息,所述第一存储空间的所述空间大小小于所述多个区块所相应的空间大小;
其中所述第二存储空间的所述区块的所述有效页数目的所述值是等于不同零的特定值,当所述第一存储空间的所述空间大小大于所述临界值时所述区块的所述有效页数目的所述值会被重置为零,以及接着会通过增加所述第二存储空间的所述区块的所述有效页数目的所述值来从零被重建为所述特定值。
2.如权利要求1所述的闪存控制器,其特征在于,当所述空间大小大于所述临界值时,所述处理电路被安排用来将所述多个有效页数目的值重置为零,以及重建与一没有要被擦除的特定存储空间有关的多个有效页数目的值。
3.如权利要求1所述的闪存控制器,其特征在于,所述闪存控制器另包括:一存储电路,用来存储有效页数目对照表的信息,所述有效页数目对照表用来记录所述多个区块的所述多个有效页数目的值。
4.如权利要求1所述的闪存控制器,其特征在于,所述临界值为所述闪存装置的容量空间的一半。
5.如权利要求1所述的闪存控制器,其特征在于,所述闪存装置的容量空间包含数据区及系统区,以及所述临界值为所述数据区的一半。
6.如权利要求1所述的闪存控制器,其特征在于,当所述空间大小小于所述临界值,所述处理电路被安排用来根据要被擦除的所述存储空间的逻辑地址,减少区块的有效页数目的值。
7.如权利要求1所述的闪存控制器,其特征在于,当所述空间大小大于所述临界值,所述处理电路被安排用来将所述闪存装置中所有区块的所有多个有效页数目重置为零。
8.如权利要求7所述的闪存控制器,其特征在于,所述闪存装置的所述所有区块包含部份区块,所述部份区块相应于记录操作系统开机程序或系统档案的保留区。
9.如权利要求1所述的闪存控制器,其特征在于,所述闪存装置的容量包含用户数据存储区及系统区;要被擦除的所述存储空间包含所述用户数据存储区的部份,以及没有要被擦除的所述存储空间包含所述系统区。
10.一种存储装置,包含:
一闪存装置,具有多个区块,每一区块具有多个页;
如权利要求1所述的所述闪存控制器;以及
一存储电路,耦接至所述闪存控制器,用来存储有效页数目对照表的信息,所述有效页数目对照表记录所述多个区块的所述多个有效页数目。
11.一种耦接于主机装置与闪存装置之间的闪存控制器,所述闪存装置具有多个区块,每一个区块具有多个页,以及所述闪存控制器包含:
一处理电路,用来:
从所述主机装置接收第一修剪/擦除命令;
从所述第一修剪/擦除命令,得到要被擦除的第一存储空间;
执行第一修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;
从所述主机装置接收第二修剪/擦除命令;
从所述第二修剪/擦除命令,得到要被擦除的第二存储空间;以及
执行第二修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;
其中所述第二存储空间的空间大小大于所述第一存储空间的空间大小,当所述第一修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的等候时间较短于当所述第二修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的等候时间。
12.一种被耦接于闪存装置与主机装置之间的闪存控制器的方法,所述闪存装置具有多个区块,每一区块具有多个页,以及所述方法包含:
从所述主机装置接收修剪/擦除命令;
从所述修剪/擦除命令,得到要被擦除的第一存储空间;
比较所述第一存储空间的空间大小及临界值,来决定所述空间大小是否大于所述临界值;以及
当要被擦除的所述第一存储空间的所述空间大小大于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值,以及接着根据没有要被擦除的第二存储空间的逻辑地址通过增加所述第二存储空间的区块的有效页数目的值来重建所述第二存储空间的多个有效页数目的信息,所述第一存储空间的所述空间大小小于所述多个区块所相应的空间大小;
其中所述第二存储空间的所述区块的所述有效页数目的所述值是等于不同零的特定值,当所述第一存储空间的所述空间大小大于所述临界值时所述区块的所述有效页数目的所述值会被重置为零,以及接着会通过增加所述第二存储空间的所述区块的所述有效页数目的所述值来从零被重建为所述特定值。
13.如权利要求12所述的方法,其特征在于,另包含:
当所述空间大小大于所述临界值时,将所述多个有效页数目的值重置为零,以及重建与没有要被擦除的特定存储空间有关的多个有效页数目的值。
14.如权利要求12所述的方法,其特征在于,另包含:
使用存储电路来存储有效页数目对照表的信息,所述有效页数目对照表用来记录所述多个区块的所述多个有效页数目的值。
15.如权利要求12所述的方法,其特征在于,所述临界值是所述闪存装置的容量空间的一半。
16.如权利要求12所述的方法,其特征在于,所述闪存装置的容量空间包含数据区及系统区,以及所述临界值为所述数据区的一半。
17.如权利要求12所述的方法,其特征在于,另包含:
当所述空间大小小于所述临界值,根据要被擦除的所述存储空间的逻辑地址,减少区块的有效页数目的值。
18.如权利要求12所述的方法,其特征在于,所述重置步骤包含:
当所述空间大小大于所述临界值,将所述闪存装置中所有区块的所有多个有效页数目重置为零。
19.如权利要求18所述的方法,其特征在于,所述闪存装置的所述所有区块包含部份区块,所述部份区块相应于记录操作系统开机程序或系统档案的保留区。
20.如权利要求12所述的方法,其特征在于,所述闪存装置的容量包含用户数据存储区及系统区;要被擦除的所述存储空间包含所述用户数据存储区的部份,以及没有要被擦除的所述存储空间包含所述系统区。
21.一种被耦接于闪存装置与主机装置之间的闪存控制器的方法,所述闪存装置具有多个区块,每一区块具有多个页,以及所述方法包含:
从所述主机装置接收第一修剪/擦除命令;
从所述第一修剪/擦除命令,得到要被擦除的第一存储空间;
执行第一修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;
从所述主机装置接收第二修剪/擦除命令;
从所述第二修剪/擦除命令,得到要被擦除的第二存储空间;以及
执行第二修剪/擦除操作及更新所述闪存装置的所述多个区块的多个有效页数目的信息;
其中所述第二存储空间的空间大小大于所述第一存储空间的空间大小,当所述第一修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的等候时间较短于当所述第二修剪/擦除操作执行时用于更新所述闪存装置的所述多个区块的多个有效页数目的所述信息的等候时间。
22.一种被耦接于闪存装置与主机装置之间的闪存控制器,所述闪存装置具有多个区块,每一个区块具有多个页,以及所述闪存控制器包含:
一处理电路,用来:
从所述主机装置接收修剪/擦除命令;
从所述修剪/擦除命令,得到没有要被擦除的第一存储空间;
比较所述第一存储空间的空间大小及临界值,来决定所述空间大小是否小于所述临界值;以及
当没有要被擦除的所述第一存储空间的所述空间大小小于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值,以及接着根据没有要被擦除的第二存储空间的逻辑地址通过增加所述第二存储空间的区块的有效页数目的值来重建所述第二存储空间的多个有效页数目的信息,所述第一存储空间的所述空间大小小于所述多个区块所相应的空间大小;
其中所述第二存储空间的所述区块的所述有效页数目的所述值是等于不同零的特定值,当所述第一存储空间的所述空间大小大于所述临界值时所述区块的所述有效页数目的所述值会被重置为零,以及接着会通过增加所述第二存储空间的所述区块的所述有效页数目的所述值来从零被重建为所述特定值。
23.一种被耦接于闪存装置与主机装置之间的闪存控制器的方法,所述闪存装置具有多个区块,每一区块具有多个页,以及所述方法包含:
从所述主机装置接收修剪/擦除命令;
从所述修剪/擦除命令,得到没有要被擦除的第一存储空间;
比较所述第一存储空间的空间大小及临界值,来决定所述空间大小是否小于所述临界值;以及
当没有要被擦除的所述第一存储空间的所述空间大小小于所述临界值时,重置所述闪存装置的所述多个区块的多个有效页数目的值,以及接着根据没有要被擦除的第二存储空间的逻辑地址通过增加所述第二存储空间的区块的有效页数目的值来重建所述第二存储空间的多个有效页数目的信息,所述第一存储空间的所述空间大小小于所述多个区块所相应的空间大小;
其中所述第二存储空间的所述区块的所述有效页数目的所述值是等于不同零的特定值,当所述第一存储空间的所述空间大小大于所述临界值时所述区块的所述有效页数目的所述值会被重置为零,以及接着会通过增加所述第二存储空间的所述区块的所述有效页数目的所述值来从零被重建为所述特定值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/036,954 | 2018-07-17 | ||
US16/036,954 US10936199B2 (en) | 2018-07-17 | 2018-07-17 | Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727395A CN110727395A (zh) | 2020-01-24 |
CN110727395B true CN110727395B (zh) | 2023-08-08 |
Family
ID=69162418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910197688.XA Active CN110727395B (zh) | 2018-07-17 | 2019-03-15 | 闪存控制器、方法及存储装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10936199B2 (zh) |
CN (1) | CN110727395B (zh) |
TW (2) | TWI690803B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200033625A (ko) * | 2018-09-20 | 2020-03-30 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 체크 방법 및 장치 |
JP2020135134A (ja) * | 2019-02-14 | 2020-08-31 | 株式会社日立製作所 | ストレージシステム及び圧縮方法 |
CN111625187B (zh) * | 2020-05-15 | 2023-09-29 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
US11733895B2 (en) | 2021-03-31 | 2023-08-22 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US11748011B2 (en) * | 2021-03-31 | 2023-09-05 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US20230043338A1 (en) * | 2021-08-06 | 2023-02-09 | Micron Technology, Inc. | Techniques for memory zone size adjustment |
CN116931812A (zh) * | 2022-03-31 | 2023-10-24 | 慧荣科技股份有限公司 | 因应主机丢弃命令的数据存取方法和存储介质和装置 |
CN116880777B (zh) * | 2023-09-07 | 2023-12-01 | 合肥康芯威存储技术有限公司 | 一种内嵌式存储器及闪存恢复方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571832A (zh) * | 2008-04-29 | 2009-11-04 | 群联电子股份有限公司 | 数据写入方法及使用该方法的快闪存储系统与其控制器 |
CN102262594A (zh) * | 2010-05-24 | 2011-11-30 | 慧荣科技股份有限公司 | 以动态门槛进行区块管理的方法及存储装置及控制器 |
WO2013069859A1 (ko) * | 2011-11-09 | 2013-05-16 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2763080B2 (ja) * | 1992-03-18 | 1998-06-11 | 富士通株式会社 | 光ディスク装置 |
US5361228A (en) * | 1992-04-30 | 1994-11-01 | Fuji Photo Film Co., Ltd. | IC memory card system having a common data and address bus |
US5682499A (en) * | 1995-06-06 | 1997-10-28 | International Business Machines Corporation | Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD) |
US6175906B1 (en) * | 1996-12-06 | 2001-01-16 | Advanced Micro Devices, Inc. | Mechanism for fast revalidation of virtual tags |
US7984303B1 (en) * | 2000-01-06 | 2011-07-19 | Super Talent Electronics, Inc. | Flash memory devices with security features |
US6839873B1 (en) * | 2000-06-23 | 2005-01-04 | Cypress Semiconductor Corporation | Method and apparatus for programmable logic device (PLD) built-in-self-test (BIST) |
US7322029B2 (en) * | 2003-05-08 | 2008-01-22 | American Megatrends, Inc. | Method and system for recovering program code in a computer system |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
KR101087906B1 (ko) * | 2003-11-18 | 2011-11-30 | 파나소닉 주식회사 | 파일기록장치 |
JP2006039966A (ja) * | 2004-07-27 | 2006-02-09 | Toshiba Corp | メモリカードおよびメモリカードに搭載されるカード用コントローラ並びにメモリカードの処理装置 |
JP4192129B2 (ja) * | 2004-09-13 | 2008-12-03 | 株式会社東芝 | メモリ管理装置 |
JP4956922B2 (ja) * | 2004-10-27 | 2012-06-20 | ソニー株式会社 | 記憶装置 |
KR100626391B1 (ko) * | 2005-04-01 | 2006-09-20 | 삼성전자주식회사 | 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템 |
US9286198B2 (en) * | 2005-04-21 | 2016-03-15 | Violin Memory | Method and system for storage of data in non-volatile media |
KR100708128B1 (ko) * | 2005-04-30 | 2007-04-17 | 삼성전자주식회사 | 낸드 플래시 메모리 제어 장치 및 방법 |
US20070083697A1 (en) * | 2005-10-07 | 2007-04-12 | Microsoft Corporation | Flash memory management |
JP5145720B2 (ja) * | 2007-01-31 | 2013-02-20 | 富士通セミコンダクター株式会社 | チャージロス修復方法及び半導体記憶装置 |
KR100869675B1 (ko) * | 2007-02-05 | 2008-11-21 | 지인정보기술 주식회사 | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 |
US9396103B2 (en) | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
US8397011B2 (en) * | 2007-10-05 | 2013-03-12 | Joseph Ashwood | Scalable mass data storage device |
JP5143601B2 (ja) * | 2008-03-24 | 2013-02-13 | 株式会社日立製作所 | 情報処理装置と情報処理方法およびストレージシステム |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US8285970B2 (en) * | 2008-11-06 | 2012-10-09 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
US8612718B2 (en) * | 2009-08-19 | 2013-12-17 | Seagate Technology Llc | Mapping alignment |
US9223514B2 (en) * | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US8327092B2 (en) * | 2009-09-21 | 2012-12-04 | Freescale Semiconductor, Inc. | Memory device configurable as interleaved or non-interleaved memory |
US20110161560A1 (en) * | 2009-12-31 | 2011-06-30 | Hutchison Neil D | Erase command caching to improve erase performance on flash memory |
US9134918B2 (en) * | 2009-12-31 | 2015-09-15 | Sandisk Technologies Inc. | Physical compression of data with flat or systematic pattern |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
US8812816B2 (en) * | 2010-03-23 | 2014-08-19 | Apple Inc. | Garbage collection schemes for index block |
US8843731B2 (en) * | 2010-12-30 | 2014-09-23 | Micron Technology, Inc. | Memory device using extended interface commands |
TWI436212B (zh) | 2011-07-21 | 2014-05-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
TWI448892B (zh) | 2011-09-06 | 2014-08-11 | Phison Electronics Corp | 資料搬移方法、記憶體控制器與記憶體儲存裝置 |
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
US8799561B2 (en) * | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
KR20140026758A (ko) * | 2012-08-23 | 2014-03-06 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 이를 포함하는 비휘발성 메모리 시스템 |
US9336090B2 (en) * | 2012-10-10 | 2016-05-10 | Hitachi, Ltd. | Storage apparatus comprising snapshot function, and storage control method |
FR3006804A1 (fr) * | 2013-06-05 | 2014-12-12 | St Microelectronics Rousset | Procede d’effacement par bloc d’une memoire de type eeprom effacable par page |
US9298608B2 (en) * | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
KR20150075886A (ko) * | 2013-12-26 | 2015-07-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US9423970B2 (en) * | 2013-12-30 | 2016-08-23 | Sandisk Technologies Llc | Method and system for predicting block failure in a non-volatile memory |
US9329797B2 (en) * | 2013-12-30 | 2016-05-03 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
US20160232088A1 (en) * | 2014-07-17 | 2016-08-11 | Sandisk Enterprise Ip Llc | Garbage Collection in Storage System with Distributed Processors |
TWI604307B (zh) | 2014-10-31 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US9627072B2 (en) | 2014-11-25 | 2017-04-18 | Macronix International Co., Ltd. | Variant operation sequences for multibit memory |
US9490017B2 (en) * | 2015-03-10 | 2016-11-08 | Macronix International Co., Ltd. | Forced-bias method in sub-block erase |
KR102371916B1 (ko) * | 2015-07-22 | 2022-03-07 | 삼성전자주식회사 | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 |
KR20180039785A (ko) * | 2016-10-10 | 2018-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
IT201700020134A1 (it) * | 2017-02-22 | 2018-08-22 | St Microelectronics Srl | Procedimento per gestire memorie a semiconduttore, interfaccia, memoria e dispositivo corrispondenti |
US20180285562A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Computing system with protection against memory wear out attacks |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20190012012A (ko) * | 2017-07-26 | 2019-02-08 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것의 동작 방법 |
US20190035445A1 (en) * | 2017-07-31 | 2019-01-31 | CNEX Labs, Inc. a Delaware Corporation | Method and Apparatus for Providing Low Latency Solid State Memory Access |
TWI633428B (zh) * | 2017-09-28 | 2018-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
KR102578191B1 (ko) * | 2018-04-09 | 2023-09-14 | 에스케이하이닉스 주식회사 | 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
US11100011B2 (en) * | 2018-12-13 | 2021-08-24 | Sony Semiconductor Israel Ltd. | Flash translation layer with hierarchical security |
-
2018
- 2018-07-17 US US16/036,954 patent/US10936199B2/en active Active
-
2019
- 2019-02-13 TW TW108104772A patent/TWI690803B/zh active
- 2019-02-13 TW TW109107258A patent/TWI759699B/zh active
- 2019-03-15 CN CN201910197688.XA patent/CN110727395B/zh active Active
-
2021
- 2021-01-20 US US17/152,812 patent/US11630580B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571832A (zh) * | 2008-04-29 | 2009-11-04 | 群联电子股份有限公司 | 数据写入方法及使用该方法的快闪存储系统与其控制器 |
CN102262594A (zh) * | 2010-05-24 | 2011-11-30 | 慧荣科技股份有限公司 | 以动态门槛进行区块管理的方法及存储装置及控制器 |
WO2013069859A1 (ko) * | 2011-11-09 | 2013-05-16 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
TW202006552A (zh) | 2020-02-01 |
US10936199B2 (en) | 2021-03-02 |
US20200026436A1 (en) | 2020-01-23 |
TW202026887A (zh) | 2020-07-16 |
TWI759699B (zh) | 2022-04-01 |
CN110727395A (zh) | 2020-01-24 |
TWI690803B (zh) | 2020-04-11 |
US20210141537A1 (en) | 2021-05-13 |
US11630580B2 (en) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727395B (zh) | 闪存控制器、方法及存储装置 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
US10437737B2 (en) | Data storage device | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
EP1548599A2 (en) | Faster write operations to nonvolatile memory by manipulation of frequently accessed sectors | |
CN109697027B (zh) | 包括共享存储器区域和专用存储器区域的数据存储设备 | |
US11157399B2 (en) | Data storage devices and data processing methods with dynamic programming scheme | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
CN107797934B (zh) | 处理去分配命令的方法与存储设备 | |
US9600209B2 (en) | Flash storage devices and methods for organizing address mapping tables in flash storage devices | |
US10606744B2 (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
US20170123705A1 (en) | Convertible Leaf Memory Mapping | |
US20120131264A1 (en) | Storage device | |
US10007601B2 (en) | Data storage device and operating method for flash memory | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
TWI808011B (zh) | 資料處理方法及對應之資料儲存裝置 | |
US20240103732A1 (en) | Data processing method for improving continuity of data corresponding to continuous logical addresses as well as avoiding excessively consuming service life of memory blocks and the associated data storage device | |
US20240103733A1 (en) | Data processing method for efficiently processing data stored in the memory device by splitting data flow and the associated data storage device |
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 |