CN116540950B - 一种存储器件及其写入数据的控制方法 - Google Patents
一种存储器件及其写入数据的控制方法 Download PDFInfo
- Publication number
- CN116540950B CN116540950B CN202310813893.0A CN202310813893A CN116540950B CN 116540950 B CN116540950 B CN 116540950B CN 202310813893 A CN202310813893 A CN 202310813893A CN 116540950 B CN116540950 B CN 116540950B
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- mapping
- processing unit
- mapping relation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 214
- 238000012545 processing Methods 0.000 claims abstract description 68
- 230000001680 brushing effect Effects 0.000 claims abstract description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/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
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及存储器件领域,提出一种存储器件及其写入数据的控制方法。存储器件包括:快闪存储器,包括多个区块,多个区块用以存放存储数据及其逻辑地址和物理地址的映射关系;以及控制器,与快闪存储器电性连接,控制器用以接收主机的存储数据,控制器包括:缓冲存储单元,用以存放动态缓存映射表,动态缓存映射表用以存放部分映射关系;处理单元,用以比较多个区块中可用区块的数量与预设深度刷表阈值;当可用区块的数量小于深度刷表阈值时,处理单元根据动态缓存映射表中的映射关系,将多个区块上的有效数据个数进行更新;当可用区块的数量大于等于深度刷表阈值时,处理单元将存储数据写入至可用区块上。本发明提升了存储器件写入数据的性能。
Description
技术领域
本发明涉及存储器件领域,特别是涉及一种存储器件及其写入数据的控制方法。
背景技术
以闪存作为存储介质的存储器件存在无法覆写的特点,需要对闪存进行擦除操作后才能写入数据。主机写入指定逻辑地址的数据,不是存放在闪存的固定物理地址上。在现有技术中,在每写入一笔有效数据后,需要进行数据的查询操作。存储器件中的数据通常达到几千条,上述的查询操作步骤导致了产品的使用性能下降,因此存在待改进之处。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种存储器件及其写入数据的控制方法,用于改善现有存储器件在写入数据过程中性能低下的问题。
为实现上述目的及其他相关目的,本发明提供一种存储器件,包括:
快闪存储器,包括多个区块,多个所述区块用以存放存储数据及其逻辑地址和物理地址的映射关系;以及
控制器,与所述快闪存储器电性连接,所述控制器用以接收主机的所述存储数据,所述控制器包括:
缓冲存储单元,用以存放动态缓存映射表,所述动态缓存映射表用以存放部分映射关系;以及
处理单元,用以比较多个所述区块中可用区块的数量与预设深度刷表阈值;
当所述可用区块的数量小于所述深度刷表阈值时,所述处理单元根据所述动态缓存映射表中的映射关系,将多个所述区块上的有效数据个数进行更新;
当所述可用区块的数量大于等于所述深度刷表阈值时,所述处理单元将所述存储数据写入至所述可用区块上。
在本发明的一个实施例中,所述处理单元根据所述动态缓存映射表中的映射关系,在所述动态缓存映射表中,查找与所述映射关系具有相同逻辑地址的第一类物理地址,并将所述第一类物理地址对应多个所述区块上的有效数据个数进行更新。
在本发明的一个实施例中,所述处理单元将所述区块的数据表中的映射关系读取到所述缓冲存储单元中,在所述缓冲存储单元中,查找与所述动态缓存映射表中的映射关系具有相同逻辑地址的第二类物理地址,并将所述第二类物理地址对应多个区块上的有效数据个数的数量进行更新。
在本发明的一个实施例中,在所述动态缓存映射表中的映射关系下拉刷新后,当多个所述区块中的存储数据的逻辑地址及物理地址与所述映射关系中的逻辑地址及物理地址相同时,所述处理单元设定所述存储数据为有效数据;
当多个区块中的存储数据的逻辑地址与所述映射关系中的逻辑地址相同,并且所述存储数据的物理地址和所述映射关系中的物理地址不相同时,所述处理单元设定所述存储数据为无效数据。
在本发明的一个实施例中,所述处理单元设定所述深度刷表阈值小于预设垃圾回收阈值,所述垃圾回收阈值表征所述快闪存储器的存储空间达到上限需要释放资源的数值。
本发明还提出一种存储器件写入数据的处理方法,包括:
通过控制器接收主机写入的存储数据;
通过所述控制器中的处理单元将所述存储数据写入至快闪存储器中的多个区块上,其中,多个所述区块用以存放存储数据及其逻辑地址和物理地址的映射关系;
通过所述控制器中的缓冲存储单元存放动态缓存映射表,所述动态缓存映射表存放部分所述映射关系;
通过所述处理单元比较多个所述区块中可用区块的数量与预设深度刷表阈值;
当所述可用区块的数量小于所述深度刷表阈值时,通过所述处理单元根据所述动态缓存映射表中的映射关系,将多个所述区块上的有效数据个数进行更新;以及
当所述可用区块的数量大于等于所述深度刷表阈值时,通过所述处理单元将所述存储数据写入至所述可用区块上。
在本发明的一个实施例中,所述通过所述控制器中的处理单元将所述存储数据写入至快闪存储器中的多个区块上的步骤,包括:
判断当前区块是否具有存放所述存储数据的存储空间;
在所述当前区块具有存放所述存储数据的存储空间时,将所述存储数据写入至所述当前区块上;
在所述当前区块不具有存放所述存储数据的存储空间时,设定一个可用区块作为新的当前区块,并将所述存储数据写入至新的当前区块上。
在本发明的一个实施例中,在所述设定一个可用区块作为新的当前区块的步骤之后,包括:
将所述可用区块的数量减少一个,并比较所述可用区块的数量与所述深度刷表阈值;
当所述可用区块的数量大于等于所述深度刷表阈值时,将所述存储数据写入至所述当前区块上;
当所述可用区块的数量小于所述深度刷表阈值时,将深度下拉刷新所述动态缓存映射表将其标志位置位,并将多个所述区块上的有效数据个数的数量进行更新。
在本发明的一个实施例中,所述通过所述处理单元将所述存储数据写入至所述可用区块上的步骤之后,包括:
判断所述缓冲存储单元中空白映射单元的个数是否充足;
当缓冲存储单元中空白映射单元的个数充足时,将所述存储数据的映射关系添加至空白映射单元中,将所述映射单元添加至所述动态缓存映射表中;
当缓冲存储单元中空白映射单元的个数不充足时,将下拉刷新所述动态缓存映射表将其标志位置位,将缓冲存储单元中的填充映射单元释放出足够的空白映射单元。
在本发明的一个实施例中,所述将深度下拉刷新所述动态缓存映射表将其标志位置位的步骤,或者所述将下拉刷新所述动态缓存映射表将其标志位置位的步骤,包括:
将所述数据表中的映射关系读取到所述缓冲存储单元中;
将所述动态缓存映射表中的映射关系与所述数据表中的映射关系进行比较;
查找与所述动态缓存映射表中的映射关系具有相同逻辑地址,且具有不同物理地址的所述数据表中的映射关系,并记为无效的映射关系;
将所述无效的映射关系对应多个所述区块上的有效数据个数进行更新。
如上所述,本发明的一种存储器件及其写入数据的控制方法,具有以下有益效果:减少了代码的运行消耗,提升了存储器件写入数据的使用性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1显示为本发明中一种存储器件的结构示意图。
图2显示为本发明中逻辑地址和物理地址之间映射关系的示意图。
图3显示为本发明中一种存储器件写入数据的控制方法的一步骤示意图。
图4显示为本发明图3中步骤S20的步骤示意图。
图5显示为本发明图4中步骤S203的步骤示意图。
图6显示为本发明中一种存储器件写入数据的控制方法的又一步骤示意图。
图7显示为本发明图6中步骤S730的步骤示意图。
图8显示为本发明根据动态缓存映射表更新闪存上有效数据个数的步骤示意图。
图9显示为本发明根据数据表更新闪存上有效数据个数的步骤示意图。
图10显示为本发明中将闪存上有效数据个数更新的步骤示意图。
图11显示为本发明中一种存储器件写入数据的控制方法的又一步骤示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。下列实施例中未注明具体条件的试验方法,通常按照常规条件,或者按照各制造商所建议的条件。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
请参阅图1至图11所示,在本发明的一些实施例中,本发明提出一种存储器件及其写入数据的控制方法,可应用在eMMC(Embedded Multi Media Card,嵌入式多媒体卡)等存储器件领域。例如,应用在Nand Flash(Nand闪存)作为存储介质的存储器件200中。本发明在主机100向存储器件200写入存储数据方面,提高了存储器件200的使用性能。本发明既保证了存储器件200写入存储数据的高使用性能,还保证了快闪存储器400上有效数据的真实性。下面通过具体的实施例进行详细的描述。
请参阅图1所示,在本发明的一些实施例中,本发明提出一种存储器件200,可包括控制器300和快闪存储器400。其中,控制器300可用于接收主机100写入的存储数据。控制器300可包括处理单元320和缓冲存储单元360,处理单元320作为存储器件200的运算和控制核心,是信息处理、程序运行的执行单元。处理单元320通过总线接口310与主机100电性连接,总线接口310用于接收主机100写入的存储数据。缓冲存储单元360是指进行高速数据交换的存储单元。缓冲存储单元360通过快闪存储器接口350与快闪存储器400电性连接,缓冲存储单元360用于存储主机100写入的存储数据。缓冲存储单元360用于将写入的存储数据传输至快闪存储器400中,缓冲存储单元360还用于复制快闪存储器400中的部分数据,即缓冲存储单元360与快闪存储器400之间实现存储数据的传输。
请参阅图1所示,在本发明的一些实施例中,快闪存储器400也简称为闪存,快闪存储器400可为多层单元(Multi Level Cell,MLC)Nand快闪存储器或者单层单元(SingleLevel Cell,SLC)Nand快闪存储器。快闪存储器400可包括多个物理区块(PhysicalBlock),物理区块也简称为区块410,例如区块1、区块2、……、区块N。在快闪存储器400中,区块410为擦除操作的最小单位。每一区块410可包括多个页(Page)420。页420为编程化(Program)的最小单元,也即页420为写入数据或者读取数据的最小单元。本发明中,物理地址是表示快闪存储器的页420。每一页420可包括数据区D和冗余区R。数据区D用于记录使用者的数据。冗余区R用于记录系统的数据,例如CRC(Cyclical Redundancy Check,循环冗余码校验)检查码、错误校正码(Error Correcting code,ECC)等。
请参阅图2所示,在本发明的一些实施例中,主机100向存储器件200写入一个逻辑地址的存储数据,并非存放在快闪存储器400的固定物理地址上。例如在图2中,在区块410上的数据交换前,逻辑地址10对应物理地址100,逻辑地址11对应物理地址101,逻辑地址12对应物理地址102,……,逻辑地址20对应物理地址110。在区块410上的数据交换后,逻辑地址10对应物理地址108,逻辑地址11对应物理地址101,逻辑地址12对应物理地址102,……,逻辑地址18对应物理地址100,逻辑地址19对应物理地址109,逻辑地址20对应物理地址110。在缓冲存储单元360中,可建立动态缓存映射表,动态缓存映射表中存放存储数据关于逻辑地址和物理地址的映射关系。例如,主机100向存储器件200写入存储数据后,处理单元320从缓冲存储单元360中申请一个空白的映射单元,用于记录存储数据的逻辑地址和物理地址之间的映射关系,然后将该映射关系添加到动态缓存映射表中。动态缓存映射表的作用在于,可管理逻辑地址对应的存储数据存放在快闪存储器400上的详细物理地址。多个区块410中的数据表(table block)用于存放存储数据关于逻辑地址和物理地址的映射关系。
请参阅图1所示,在本发明的一些实施例中,在控制器300接收主机100的存储数据后,处理单元320比较多个区块410中可用区块410的数量与预设深度刷表阈值。可用区块410表示多个区块410中可用于存放存储数据的区块410。在当可用区块410的数量大于等于深度刷表阈值时,处理单元320可将存储数据写入至可用区块410上。在当可用区块410的数量小于深度刷表阈值时,处理单元320根据动态缓存映射表中的映射关系,将多个区块410上的有效数据个数进行更新。动态缓存映射表中存放有映射关系,该映射关系表示存储数据的逻辑地址和物理地址的关联性。当区块410上的第一个存储数据的逻辑地址和物理地址与动态缓存映射表中的映射关系表示一致时,将区块410上的第一个存储数据记为有效数据。当区块410上的第二个存储数据的逻辑地址和动态缓存映射表中映射关系的逻辑地址相同,并且第二个存储数据的物理地址和动态缓存映射表中映射关系的物理地址不同时,将区块410上的第二个存储数据记为无效数据。
请参阅图1和图2所示,在本发明的一些实施例中,由于快闪存储器400具有先擦后写的特点,在向存储无效数据的区块410写入新的存储数据之前,需要先把整个区块410进行擦除操作。在快闪存储器400上,将一些区块410上的有效数据转移到其他区块410,而将这些区块410上的无效数据彻底删除的过程称为垃圾回收操作(garbage collection,GC)。为了减少对有效数据的转移次数,可选择存储有效数据最少的区块410作为垃圾回收操作的目标区块410。将一些区块410上的有效数据转移到目标区块410上,达到将有效数据聚集的效果。每个区块410可设置其对应的有效数据个数(valid count,vct),有效数据个数表示一个区块410上有效数据的数量。在一个区块410上,写入一个有效数据后,该区块410的有效数据个数增加一个。在一个区块410上,出现一个有效数据变成无效数据后,该区块410的有效数据个数减少一个。当区块410的有效数据个数为零时,表示该区块410上没有有效数据,可以进行擦除操作。
请参阅图1和图2所示,在本发明的一些实施例中,对于主机100向存储器件200写入新的存储数据,在存储器件200的内部,通过处理单元320将存储数据转移到快闪存储器400上。对于快闪存储器400上的多个区块410,写入新的存储数据都是有效数据,有效数据个数的增加是准确的。但是对于多个区块410,在写入新的存储数据之后,有效数据个数的减少会存在一定的延迟。例如,在写入存储数据的过程中,如果逻辑地址相关联旧的映射关系存放在动态缓存映射表中,那么处理单元320可获取旧的映射关系及对应的旧的物理地址。也即可获取逻辑地址相关联的旧的物理地址,通过将旧的物理地址所在区块410上的有效数据个数减少,以实现区块410上有效数据个数与有效数据的真实个数相等。处理单元320根据动态缓存映射表中的映射关系,在动态缓存映射表中,查找与动态缓存映射表中的映射关系具有相同逻辑地址的物理地址,并记为第一类物理地址。处理单元320将第一类物理地址所在区块410上的有效数据个数减少,以实现区块410上有效数据个数与有效数据的真实个数相等。
请参阅图1和图2所示,在本发明的一些实施例中,在写入存储数据的过程中,如果逻辑地址相关联旧的映射关系存放在区块410的数据表(table block)中,那么处理单元320无法直接获取旧的映射关系及对应的旧的物理地址。需要先将数据表中旧的映射关系读取到缓冲存储单元360中,处理单元320从缓冲存储单元360处查询到旧的映射关系及对应的旧的物理地址。通过将旧的物理地址所在区块410上的有效数据个数减少,以实现区块410上有效数据个数与有效数据的真实个数相等。处理单元320将数据表中的映射关系读取到缓冲存储单元360中,在缓冲存储单元360中,查找与动态缓存映射表中的映射关系具有相同逻辑地址的物理地址,并记为第二类物理地址。处理单元320将第二类物理地址所在区块410上的有效数据个数减少,以实现区块410上有效数据个数与有效数据的真实个数相等。
请参阅图1和图2所示,在本发明的一些实施例中,当可用区块410的数量小于深度刷表阈值时,才会进行多个区块410上的有效数据个数的更新。改善了每写入一笔有效数据后就需要进行数据的查询操作导致存储器件使用性能低下的问题。当区块410的数量大于等于深度刷表阈值,缓存动态映射表中存在相同逻辑地址的有效映射关系和无效映射关系,无效映射关系对应无效数据未被及时减少。即无效数据对应区块410上的有效数据个数与有效数据的真实个数不相等。存在一些区块410上没有有效数据,但是这些区块410上有效数据个数未被及时更新为零的情况,进一步的导致这些区块410没有及时进行擦除操作。当快闪存储器400达到垃圾回收阈值时,会触发垃圾回收操作。为了避免快闪存储器400触发垃圾回收操作,需要在垃圾回收操作之前,将多个区块410上的有效数据个数进行更新,以释放出多个区块410上的存储空间。处理单元320设定深度刷表阈值小于垃圾回收阈值,即在触发垃圾回收操作之前,对快闪存储器400上多个区块410的存储空间进行释放。
请参阅图3所示,本发明提出一种存储器件写入数据的控制方法,可包括以下的步骤。
步骤S10、通过控制器接收主机写入的存储数据。
步骤S20、通过控制器中的处理单元将存储数据写入至快闪存储器中的多个区块上,其中,多个区块用以存放存储数据及其逻辑地址和物理地址间的映射关系。
步骤S30、通过控制器中的缓冲存储单元存放动态缓存映射表,动态缓存映射表存放部分映射关系。
步骤S40、通过处理单元比较多个区块中可用区块的数量与预设深度刷表阈值。
步骤S50、当可用区块的数量小于深度刷表阈值时,通过处理单元根据动态缓存映射表中的映射关系,将多个区块上的有效数据个数进行更新。
步骤S60、当可用区块的数量大于等于深度刷表阈值时,通过处理单元将存储数据写入至可用区块上。
步骤S10、通过控制器接收主机写入的存储数据。
在一些实施例中,控制器300可包括处理单元320和缓冲存储单元360,处理单元320作为存储器件200的运算和控制核心,是信息处理、程序运行的执行单元。处理单元320通过总线接口310与主机100电性连接,总线接口310用于接收主机100写入的存储数据。缓冲存储单元360是指进行高速数据交换的存储单元。缓冲存储单元360通过快闪存储器接口350与快闪存储器400电性连接,缓冲存储单元360用于存储主机100写入的存储数据。
步骤S20、通过控制器中的处理单元将存储数据写入至快闪存储器中的多个区块上,其中,多个区块用以存放存储数据及其逻辑地址和物理地址间的映射关系。
在一些实施例中,快闪存储器400可包括多个区块410,区块410为擦除操作的最小单位。每一区块410可包括多个页420,页420为写入数据或者读取数据的最小单元。多个区块410中的数据表(table block)可用于存放存储数据关于逻辑地址和物理地址的映射关系。
步骤S30、通过控制器中的缓冲存储单元存放动态缓存映射表,动态缓存映射表存放部分映射关系。
在一些实施例中,主机100向存储器件200写入存储数据后,处理单元320从缓冲存储单元360中申请一个空白的映射单元,用于记录存储数据的逻辑地址和物理地址之间的映射关系,然后将该映射关系添加到动态缓存映射表中。动态缓存映射表的作用在于,可管理逻辑地址对应的存储数据存放在快闪存储器400上的详细物理地址。
步骤S40、通过处理单元比较多个区块中可用区块的数量与预设深度刷表阈值。
在一些实施例中,可用区块410表示多个区块410中可用于存放存储数据的区块410,可用区块410可通过有效数据个数为零的区块410进行表示。
步骤S50、当可用区块的数量小于深度刷表阈值时,通过处理单元根据动态缓存映射表中的映射关系,将多个区块上的有效数据个数进行更新。
在一些实施例中,在当可用区块410的数量小于深度刷表阈值时,处理单元320根据动态缓存映射表中的映射关系,将多个区块410上的有效数据个数进行更新。处理单元320可根据动态缓存映射表中的映射关系,在动态缓存映射表中,查找与动态缓存映射表中的映射关系具有相同逻辑地址的物理地址,并记为第一类物理地址。处理单元320将第一类物理地址所在区块410上的有效数据个数减少,以实现区块410上有效数据个数与有效数据的真实个数相等。处理单元320可将数据表中的映射关系读取到缓冲存储单元360中,在缓冲存储单元360中,查找与动态缓存映射表中的映射关系具有相同逻辑地址的物理地址,并记为第二类物理地址。处理单元320将第二类物理地址所在区块410上的有效数据个数减少,以实现区块410上有效数据个数与有效数据的真实个数相等。
步骤S60、当可用区块的数量大于等于深度刷表阈值时,通过处理单元将存储数据写入至可用区块上。
在一些实施例中,在当可用区块410的数量大于等于深度刷表阈值时,处理单元320可将存储数据写入至可用区块410上。
请参阅图4所示,在本发明的一些实施例中,步骤S20可包括步骤S201、步骤S202和步骤S203。其中,步骤S201可表示为判断当前区块410是否具有存放存储数据的存储空间。当前区块410表示为将主机100写入新的存储数据进行存放的区块410。当前区块410具有存放存储数据的存储空间时,步骤S202可表示为将存储数据写入至当前区块410上。当前区块410不具有存放存储数据的存储空间时,步骤S203可表示为设定一个可用区块作为新的当前区块410,并将存储数据写入至新的当前区块410上。
请参阅图5所示,在本发明的一些实施例中,步骤S203可包括步骤S2031、步骤S2032、步骤S2033和步骤S2034。其中,步骤S2031可表示为将可用区块410的数量减少一个。步骤S2032可表示为可用区块410的数量是否大于等于深度刷表阈值。当可用区块410的数量大于等于深度刷表阈值时,步骤S2033可表示为将存储数据写入至当前区块410上。当可用区块410的数量小于深度刷表阈值时,步骤S2034可表示为将深度下拉刷新动态缓存映射表将其标志位置位,并将多个区块410上的有效数据个数的数量进行更新。
请参阅图6所示,在本发明的一些实施例中,步骤S60之后可包括步骤S710、步骤S720和步骤S730。步骤S710可表示为缓冲存储单元360中空白映射单元的个数是否充足。当缓冲存储单元360中空白映射单元的个数充足时,步骤S720可表示为将存储数据的映射关系添加至空白映射单元中,将映射单元添加至动态缓存映射表中。当缓冲存储单元360中空白映射单元的个数不充足时,步骤S730可表示为将下拉刷新动态缓存映射表将其标志位置位,将缓冲存储单元360中的填充映射单元释放出足够的空白映射单元。
请参阅图7所示,在本发明的一些实施例中,对于步骤S2034中的将深度下拉刷新动态缓存映射表将其标志位置位的步骤,以及对于步骤S730中的将下拉刷新动态缓存映射表将其标志位置位的步骤,可包括步骤S731、步骤S732、步骤S733和步骤S734。步骤S731可表示为将数据表中的映射关系读取到缓冲存储单元中。步骤S732可表示为将动态缓存映射表中的映射关系与数据表中的映射关系进行比较。步骤S733可表示为查找与动态缓存映射表中的映射关系具有相同逻辑地址,且具有不同物理地址的数据表中的映射关系,并记为无效的映射关系。步骤S734可表示为将无效的映射关系对应多个区块410上的有效数据个数进行更新。对于深度下刷动态缓存映射表可具有多种方式,可一次性的将所有的动态缓存映射表全部下刷。还可分批次的将所有的动态缓存映射表进行下刷,例如,每写入100MB的数据,就启动一部分映射表的下刷操作,直到所有的映射表下刷一遍为止。
请参阅图8所示,在本发明的一些实施例中,在顺序覆盖写方式下,对有效数据个数的处理,可包括步骤S100、步骤S110、步骤S120、步骤S130和步骤S140。其中,步骤S100可表示为主机100写入新的存储数据。步骤S110可表示为建立逻辑地址和物理地址之间的映射关系。步骤S120可表示为新建物理地址所在的区块410上的有效数据个数增加一个。步骤S130可表示为查询动态缓存映射表中所有存在的相同逻辑地址的映射关系。步骤S140可表示为相同逻辑地址的映射关系被覆写,旧的物理地址上的存储数据变为无效,区块410上有效数据个数减少一个。
请参阅图9所示,在本发明的一些实施例中,在随机写方式下,对有效数据个数的处理,可包括步骤S210、步骤S220、步骤S230、步骤S240、步骤S250和步骤S260。其中,步骤S210可表示为查询动态缓存映射表中存在的相同逻辑地址的映射关系。在步骤S210之后,可进入步骤S220、步骤S250和步骤S260。步骤S220可表示为旧的映射关系存放在缓充存储单元360中的动态缓存映射表中。步骤S250可表示为查找旧的物理地址对应的区块410。步骤S260可表示为将旧的物理地址对应的区块410的有效数据个数减少一个。在步骤S210之后,还可进入步骤S230、步骤S240、步骤S250和步骤S260。步骤S230可表示为旧的映射关系存放在数据表中。步骤S240可表示为需要将数据表中旧的映射关系读取到缓冲存储单元360中。步骤S250可表示为查找旧的物理地址对应的区块410。步骤S260可表示为将旧的物理地址对应的区块410的有效数据个数减少一个。
请参阅图10所示,在本发明的一些实施例中,在下拉刷新动态缓存映射表过程,将旧的映射关系对应有效数据个数更新的处理,可包括步骤S300、步骤S310、步骤S320、步骤S330、步骤S340和步骤S350。其中,步骤S300可表示为动态缓存映射表下刷操作。步骤S310可表示为将数据表中的一组映射关系读取到缓冲存储单元360中。步骤S320可表示为将动态缓存映射表中有效的映射关系填充到该组映射关系中。步骤S330可表示为查询数据表中记录的旧的物理地址对应的区块410。步骤S340可表示为查询到旧的物理地址,将旧的物理地址对应区块410的有效数据个数减少一个。然后,可将动态缓存映射表中有效的映射关系下拉刷新到区块410的数据表中。
请参阅图11所示,在本发明的一些实施例中,关于存储器件写入数据的控制方法的步骤示意图。其中,步骤S400可表示为主机100执行写数据。步骤S410可表示为当前区块410中是否具有足够的空间。当步骤S410的判断结果为当前区块410具有足够的空间时,可进入步骤S460。步骤S460可表示为下刷主机100数据,将主机100写入的存储数据存放到区块410中。当步骤S410的判断结果为当前区块410不具有足够的空间时,可进入步骤S420、步骤S430、步骤S440。其中,步骤S420可表示为申请有效数据个数为零的区块410作为新的数据块。步骤S430可表示为可用区块410的个数减少一个。步骤S440可表示为可用区块410的个数是否小于一定的阈值。当步骤S440的判断结果为可用区块410的个数小于一定的阈值时,将进入步骤S450和步骤S460。步骤S450可表示为将深度下刷动态缓存映射表的标志位置位,即完成区块410上有效数据个数与有效数据的真实个数相等的操作。当步骤S440的判断结果为可用区块410的个数小于一定的阈值时,可进入步骤S460。在步骤S460之后,可进入步骤S470,步骤S470可表示为缓存中空白映射单元个数是否充足。当步骤S470判断缓存中空白映射单元个数充足时,可进入步骤S480和步骤S490。步骤S480可表示为申请空白映射单元填充映射关系并添加到动态缓存映射表。步骤S490可表示为将新的物理地址所在区块410的有效数据个数增加一个。当步骤S470判断缓存中空白映射单元个数不充足时,可进入步骤S4110、步骤S480和步骤S490。步骤S4110可表示为将下刷动态缓存映射表的标志位置位,即完成区块410上有效数据个数与有效数据的真实个数相等的操作,并将动态缓存映射表中释放出充足的空白映射单元。在步骤S490之后,还可进入步骤S400,以进行主机100写入下一批存储数据的操作。
综上所述,本发明提出一种存储器件及其写入数据的控制方法,减少了代码的运行消耗,提升了存储器件写入数据的使用性能,从而提高产品的存储效率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种存储器件,其特征在于,包括:
快闪存储器,包括多个区块,多个所述区块用以存放存储数据及其逻辑地址和物理地址间的映射关系;以及
控制器,与所述快闪存储器电性连接,所述控制器用以接收主机的所述存储数据,所述控制器包括:
缓冲存储单元,用以存放动态缓存映射表,所述动态缓存映射表用以存放部分映射关系;以及
处理单元,用以比较多个所述区块中可用区块的数量与预设深度刷表阈值;
当所述可用区块的数量小于所述深度刷表阈值时,所述处理单元根据所述动态缓存映射表中的映射关系,将多个所述区块上的有效数据个数进行更新;
当所述可用区块的数量大于等于所述深度刷表阈值时,所述处理单元将所述存储数据写入至所述可用区块上。
2.根据权利要求1所述的存储器件,其特征在于,所述处理单元根据所述动态缓存映射表中的映射关系,在所述动态缓存映射表中,查找与所述映射关系具有相同逻辑地址的第一类物理地址,并将所述第一类物理地址对应多个所述区块上的有效数据个数进行更新。
3.根据权利要求1所述的存储器件,其特征在于,所述处理单元将所述区块的数据表中的映射关系读取到所述缓冲存储单元中,在所述缓冲存储单元中,查找与所述动态缓存映射表中的映射关系具有相同逻辑地址的第二类物理地址,并将所述第二类物理地址对应多个区块上的有效数据个数的数量进行更新。
4.根据权利要求1所述的存储器件,其特征在于,在所述动态缓存映射表中的映射关系下拉刷新后,当多个所述区块中的存储数据的逻辑地址及物理地址与所述映射关系中的逻辑地址及物理地址相同时,所述处理单元设定所述存储数据为有效数据;
当多个区块中的存储数据的逻辑地址与所述映射关系中的逻辑地址相同,并且所述存储数据的物理地址和所述映射关系中的物理地址不相同时,所述处理单元设定所述存储数据为无效数据。
5.根据权利要求1所述的存储器件,其特征在于,所述处理单元设定所述深度刷表阈值小于预设垃圾回收阈值,所述垃圾回收阈值表征所述快闪存储器的存储空间达到上限需要释放资源的数值。
6.一种存储器件写入数据的处理方法,其特征在于,包括:
通过控制器接收主机写入的存储数据;
通过所述控制器中的处理单元将所述存储数据写入至快闪存储器中的多个区块上,其中,多个所述区块用以存放存储数据及其逻辑地址和物理地址间的映射关系;
通过所述控制器中的缓冲存储单元存放动态缓存映射表,所述动态缓存映射表存放部分所述映射关系;
通过所述处理单元比较多个所述区块中可用区块的数量与预设深度刷表阈值;
当所述可用区块的数量小于所述深度刷表阈值时,通过所述处理单元根据所述动态缓存映射表中的映射关系,将多个所述区块上的有效数据个数进行更新;以及
当所述可用区块的数量大于等于所述深度刷表阈值时,通过所述处理单元将所述存储数据写入至所述可用区块上。
7.根据权利要求6所述的存储器件写入数据的处理方法,其特征在于,所述通过所述控制器中的处理单元将所述存储数据写入至快闪存储器中的多个区块上的步骤,包括:
判断当前区块是否具有存放所述存储数据的存储空间;
在所述当前区块具有存放所述存储数据的存储空间时,将所述存储数据写入至所述当前区块上;
在所述当前区块不具有存放所述存储数据的存储空间时,设定一个可用区块作为新的当前区块,并将所述存储数据写入至新的当前区块上。
8.根据权利要求7所述的存储器件写入数据的处理方法,其特征在于,在所述设定一个可用区块作为新的当前区块的步骤之后,包括:
将所述可用区块的数量减少一个,并比较所述可用区块的数量与所述深度刷表阈值;
当所述可用区块的数量大于等于所述深度刷表阈值时,将所述存储数据写入至所述当前区块上;
当所述可用区块的数量小于所述深度刷表阈值时,将深度下拉刷新所述动态缓存映射表将其标志位置位,并将多个所述区块上的有效数据个数的数量进行更新。
9.根据权利要求6所述的存储器件写入数据的处理方法,其特征在于,所述通过所述处理单元将所述存储数据写入至所述可用区块上的步骤之后,包括:
判断所述缓冲存储单元中空白映射单元的个数是否充足;
当缓冲存储单元中空白映射单元的个数充足时,将所述存储数据的映射关系添加至空白映射单元中,将所述映射单元添加至所述动态缓存映射表中;
当缓冲存储单元中空白映射单元的个数不充足时,将下拉刷新所述动态缓存映射表将其标志位置位,将缓冲存储单元中的填充映射单元释放出足够的空白映射单元。
10.根据权利要求8所述的存储器件写入数据的处理方法,其特征在于,所述将深度下拉刷新所述动态缓存映射表将其标志位置位的步骤,包括:
将数据表中的映射关系读取到所述缓冲存储单元中;
将所述动态缓存映射表中的映射关系与所述数据表中的映射关系进行比较;
查找与所述动态缓存映射表中的映射关系具有相同逻辑地址,且具有不同物理地址的所述数据表中的映射关系,并记为无效的映射关系;
将所述无效的映射关系对应多个所述区块上的有效数据个数进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310813893.0A CN116540950B (zh) | 2023-07-05 | 2023-07-05 | 一种存储器件及其写入数据的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310813893.0A CN116540950B (zh) | 2023-07-05 | 2023-07-05 | 一种存储器件及其写入数据的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116540950A CN116540950A (zh) | 2023-08-04 |
CN116540950B true CN116540950B (zh) | 2023-09-29 |
Family
ID=87447423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310813893.0A Active CN116540950B (zh) | 2023-07-05 | 2023-07-05 | 一种存储器件及其写入数据的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116540950B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492663B (zh) * | 2023-12-29 | 2024-03-26 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908926A (zh) * | 2018-09-14 | 2020-03-24 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的写入方法 |
CN110928807A (zh) * | 2018-09-20 | 2020-03-27 | 爱思开海力士有限公司 | 用于检查存储器系统中的有效数据的设备和方法 |
CN112882663A (zh) * | 2021-03-25 | 2021-06-01 | 湖南国科微电子股份有限公司 | 一种随机写的方法、电子设备及存储介质 |
US11024366B1 (en) * | 2020-04-24 | 2021-06-01 | Micron Technology, Inc. | Under-memory array process edge mats with sense amplifiers |
JP2021149549A (ja) * | 2020-03-19 | 2021-09-27 | キオクシア株式会社 | ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法 |
CN114968096A (zh) * | 2022-05-12 | 2022-08-30 | 合肥康芯威存储技术有限公司 | 一种存储器的控制方法、存储器与存储系统 |
CN115291815A (zh) * | 2022-10-09 | 2022-11-04 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
CN115407946A (zh) * | 2022-11-02 | 2022-11-29 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与控制系统 |
CN115599578A (zh) * | 2022-10-09 | 2023-01-13 | 合肥康芯威存储技术有限公司(Cn) | 一种存储器及其控制方法与存储系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140025921A1 (en) * | 2012-07-19 | 2014-01-23 | Jmicron Technology Corp. | Memory control method utilizing main memory for address mapping and related memory control circuit |
JPWO2015076354A1 (ja) * | 2013-11-22 | 2017-03-16 | 日本電気株式会社 | ストレージ装置と方法並びにプログラム |
KR102252419B1 (ko) * | 2014-01-09 | 2021-05-14 | 한국전자통신연구원 | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 |
TWI569139B (zh) * | 2015-08-07 | 2017-02-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
JP6785205B2 (ja) * | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
TWI679538B (zh) * | 2018-03-31 | 2019-12-11 | 慧榮科技股份有限公司 | 資料儲存系統之控制單元以及邏輯至物理映射表更新方法 |
CN110955384B (zh) * | 2018-09-26 | 2023-04-18 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
KR20200076946A (ko) * | 2018-12-20 | 2020-06-30 | 삼성전자주식회사 | 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치 |
US10977174B2 (en) * | 2018-12-31 | 2021-04-13 | Micron Technology, Inc. | Using a common pool of blocks for user data and a system data structure |
TWI709854B (zh) * | 2019-01-21 | 2020-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 |
-
2023
- 2023-07-05 CN CN202310813893.0A patent/CN116540950B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908926A (zh) * | 2018-09-14 | 2020-03-24 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的写入方法 |
CN110928807A (zh) * | 2018-09-20 | 2020-03-27 | 爱思开海力士有限公司 | 用于检查存储器系统中的有效数据的设备和方法 |
JP2021149549A (ja) * | 2020-03-19 | 2021-09-27 | キオクシア株式会社 | ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法 |
US11024366B1 (en) * | 2020-04-24 | 2021-06-01 | Micron Technology, Inc. | Under-memory array process edge mats with sense amplifiers |
CN112882663A (zh) * | 2021-03-25 | 2021-06-01 | 湖南国科微电子股份有限公司 | 一种随机写的方法、电子设备及存储介质 |
CN114968096A (zh) * | 2022-05-12 | 2022-08-30 | 合肥康芯威存储技术有限公司 | 一种存储器的控制方法、存储器与存储系统 |
CN115291815A (zh) * | 2022-10-09 | 2022-11-04 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
CN115599578A (zh) * | 2022-10-09 | 2023-01-13 | 合肥康芯威存储技术有限公司(Cn) | 一种存储器及其控制方法与存储系统 |
CN115407946A (zh) * | 2022-11-02 | 2022-11-29 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116540950A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US10761780B2 (en) | Memory system | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
US8180955B2 (en) | Computing systems and methods for managing flash memory device | |
US8219776B2 (en) | Logical-to-physical address translation for solid state disks | |
US7191306B2 (en) | Flash memory, and flash memory access method and apparatus | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
US8174912B2 (en) | Systems and methods for circular buffering control in a memory device | |
US20120239853A1 (en) | Solid state device with allocated flash cache | |
US20100082883A1 (en) | Hybrid density memory system and control method thereof | |
JP6139381B2 (ja) | メモリシステムおよび方法 | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
US20100306447A1 (en) | Data updating and recovering methods for a non-volatile memory array | |
US20230214158A1 (en) | Read performance of memory devices | |
US11809328B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
CN116540950B (zh) | 一种存储器件及其写入数据的控制方法 | |
CN110674056A (zh) | 一种垃圾回收方法及装置 | |
US20150205538A1 (en) | Storage apparatus and method for selecting storage area where data is written | |
US11366751B2 (en) | Storage device and storage control method | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 | |
CN110275678B (zh) | 一种基于stt-mram的固态存储器件随机访问性能提升方法 | |
CN117785071B (zh) | 一种存储器及其性能优化方法 | |
US20230089246A1 (en) | Memory system | |
US20240201888A1 (en) | Opportunistic storage of non-write-boosted data in write booster cache memory |
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 |