CN116909493B - 一种存储器及其控制方法 - Google Patents

一种存储器及其控制方法 Download PDF

Info

Publication number
CN116909493B
CN116909493B CN202311169615.2A CN202311169615A CN116909493B CN 116909493 B CN116909493 B CN 116909493B CN 202311169615 A CN202311169615 A CN 202311169615A CN 116909493 B CN116909493 B CN 116909493B
Authority
CN
China
Prior art keywords
mapping information
area
host
data
memory
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
Application number
CN202311169615.2A
Other languages
English (en)
Other versions
CN116909493A (zh
Inventor
李钢
苏忠益
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Kangxinwei Storage Technology Co Ltd
Original Assignee
Hefei Kangxinwei Storage Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei Kangxinwei Storage Technology Co Ltd filed Critical Hefei Kangxinwei Storage Technology Co Ltd
Priority to CN202311169615.2A priority Critical patent/CN116909493B/zh
Publication of CN116909493A publication Critical patent/CN116909493A/zh
Application granted granted Critical
Publication of CN116909493B publication Critical patent/CN116909493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种存储器及其控制方法,包括:闪存区,闪存区的存储数据具有地址映射信息,其中根据地址映射信息的稳定性,地址映射信息被划分为一类映射信息和二类映射信息;一级缓存区,包括多个存储单元,多个存储单元被划分为主机区域和回收区域,其中主机区域存储主机映射信息,回收区域存储回收映射信息,其中主机映射信息为通过数据写入形成的地址映射信息,回收映射信息为通过垃圾回收形成的地址映射信息,其中一类映射信息存储在一级缓存区;以及二级缓存区,输入端电性连接于一级缓存区,且二级缓存区的输出端电性连接于闪存区,二类映射信息存储在二级缓存区;其中,当主机区域或回收区域被写满,一类映射信息转换为二类映射信息。

Description

一种存储器及其控制方法
技术领域
本发明涉及存储技术领域,特别涉及一种存储器及其控制方法。
背景技术
闪存具有非易失性,即便发生异常掉电,也能保证存储的数据不发生丢失。因此闪存主要用于计算机和其他数字产品之间的通用数据存储和数据交换。其中,闪存的单个存储单元可以存储多个比特的数据,因此在存储单元未存满的情况下出现掉电、数据更新操作,以及其他操作,当前存储单元的存储性能是不稳定的。
当主机的写入为可靠写时,要求存储器具有较高的存储安全性,这种不稳定性会影响到数据存储的可靠性,且导致存储器不能真正地做到掉电不易失。
发明内容
本发明的目的在于提供一种存储器及其控制方法,能够提升存储可靠性。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供了一种存储器,包括:
闪存区,所述闪存区的存储数据具有地址映射信息,其中根据所述地址映射信息的稳定性,所述地址映射信息被划分为一类映射信息和二类映射信息;
一级缓存区,包括多个存储单元,多个所述存储单元被划分为主机区域和回收区域,其中所述主机区域存储主机映射信息,所述回收区域存储回收映射信息,其中所述主机映射信息为通过数据写入形成的所述地址映射信息,所述回收映射信息为通过垃圾回收形成的所述地址映射信息,其中所述一类映射信息存储在所述一级缓存区;以及
二级缓存区,输入端电性连接于所述一级缓存区,且所述二级缓存区的输出端电性连接于所述闪存区,所述二类映射信息存储在所述二级缓存区;
其中,当所述主机区域或所述回收区域被写满,所述一类映射信息转换为所述二类映射信息。
在本发明一实施例中,所述主机区域和所述回收区域具有写入指针,所述写入指针指向待写的所述存储单元,且在所述待写的所述存储单元完成数据写入后,所述写入指针指向下一所述存储单元。
在本发明一实施例中,所述闪存区包括地址查询单元,在存储所述主机映射信息前,所述地址查询单元接收主机触发信号,所述地址查询单元遍历查询所述回收区域,当所述回收映射信息和所述主机映射信息的逻辑地址相同,所述地址查询单元输出第一逻辑结果。
在本发明一实施例中,所述闪存区包括第一下刷单元,所述第一下刷单元电性连接于所述地址查询单元并接收所述第一逻辑结果,所述第一下刷单元将逻辑地址与所述主机映射信息相同的回收映射信息转移至所述二级缓存区。
本发明提供了一种存储器的控制方法,基于如上所述的一种存储器,包括以下步骤:
对闪存区写入数据,并根据数据的地址映射信息形成主机映射信息,其中所述主机映射信息存储在主机区域;
在垃圾回收步骤后,根据所述闪存区中有效数据的地址映射信息,形成回收映射信息,并将所述回收映射信息存储在回收区域;
将所述主机映射信息和所述回收映射信息设置为一类映射信息;以及
当所述主机区域或所述回收区域被写满,将所述一类映射信息转换为二类映射信息,并将所述二类映射信息存储在二级缓存区。
在本发明一实施例中,在存储所述主机映射信息前,当待写的存储单元被占用,将被占用的所述存储单元的数据转移至所述二级缓存区,并对所述待写的存储单元写入数据。
在本发明一实施例中,所述主机区域和所述回收区域具有写入指针,当待写的所述存储单元被写入数据,将所述写入指针移动至下一个所述存储单元。
在本发明一实施例中,在存储所述主机映射信息前,遍历查询所述回收区域,当待写入的所述主机映射信息与所述回收映射信息的逻辑地址相同,填充所述回收区域并将所述回收区域的数据转移至所述二级缓存区。
在本发明一实施例中,在所述存储器执行可靠写时或当所述存储器面临掉电时或当填充所述回收区域时,对所述主机区域和/或所述回收区域写入辅助数据,直至写满所述主机区域和/或所述回收区域。
在本发明一实施例中,所述存储器的控制方法还包括第三数据下刷步骤,当所述二级缓存区被填满或达到闪存下刷周期,将所述二级缓存区的数据转移至闪存区。
如上所述,本发明提供了一种存储器及其控制方法,能够避免不稳定的数据结构,导致闪存的数据存储出现错误,从而提升了存储器的存储稳定性和存储可靠性。根据本发明提供的存储器及其控制方法,能够提升兼顾数据写入和数据的垃圾回收,避免在数据更新的时候出现旧的数据覆写新的数据,因此在提升存储器稳定性的同时也兼顾了存储的准确性,避免发生重大存储错误,提升了用户的存储安全性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中存储器的结构示意图。
图2为本发明一实施例中主机区域和回收区域的结构示意图。
图3为本发明一实施例中闪存区的结构示意图。
图4为本发明一实施例中垃圾回收模块的结构示意图。
图5为本发明一实施例中对未被占用的存储单元写入数据的示意图。
图6为本发明一实施例中对被占用的存储单元写入数据的示意图。
图7为本发明一实施例中第一数据下刷模块的结构示意图。
图8为本发明一实施例中第二数据下刷模块的结构示意图。
图9为本发明一实施例中存储器的控制方法的流程图。
图10为本发明一实施例中步骤S10的流程图。
图11为本发明一实施例中步骤S30的流程图。
图12为本发明一实施例中步骤S40的流程图。
图13为本发明一实施例中辅助数据的填充示意图。
图中:100、存储器;200、一级缓存区;201、存储单元;202、主机区域;203、回收区域;300、二级缓存区;400、闪存区;401、垃圾回收模块;4011、第一判断单元;4012、目标选取单元;4013、数据回收单元;4014、信息生成单元;402、映射表生成模块;403、第一数据下刷模块;4031、地址查询单元;4032、第二判断单元;4033、第一下刷单元;404、第二数据下刷模块;405、第三数据下刷模块;406、辅助数据补充模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供的存储器为闪存或包括闪存的存储设备,例如SM闪存卡、CF卡、多媒体卡(Multi Media Card,MMC)、安全数码卡(Secure Digital Card,SD卡)、记忆棒和微硬盘等等。在本实施例中,闪存的存储单元可以是单层存储单元(Single Level Cell,SLC)、多层存储单元(Multi Level Cell,MLC)、三层存储单元(Triple Level Cell)和四层存储单元(Quad-level cells,QLC)。其中,单层存储单元可以存储例如1bit的数据,多层存储单元可以存储例如2bit的数据,三层存储单元可以存储例如3bit的数据,四层存储单元可以存储例如4bit的数据。单层存储单元存储的数据为稳定数据。而多层存储单元、三层存储单元和四层存储单元若是未能存储满,则对应存储单元中的数据存储结构是不稳定的。而本发明提供的存储器在运用多层存储单元、三层存储单元和四层存储单元等等的情况下,仍旧能够保持数据存储的稳定性。
请参阅图1和图2所示,本发明提供了存储器100,存储器100包括一级缓存区200、二级缓存区300和闪存区400。其中一级缓存区200包括多个存储单元201,且根据存储单元201的数据存储类型,多个存储单元201被划分为主机区域202和回收区域203。在本实施例中,存储单元201的大小为例如4kB,且一个物理存储页(page)的大小为例如16kB。其中存储单元201可以存储一条地址映射关系,如图2所示,在主机区域202中,存储单元201存储了例如1个物理存储页的地址映射信息。其中Lai表示逻辑地址,Pai表示物理地址,逻辑地址和对应的物理地址间建立地址地址映射关系,并存储在存储单元201中。在本实施例中,主机区域202和回收区域203的地址映射信息不同。在本实施例中,当主机区域202和回收区域203的数据结构稳定,则将对应存储单元201的数据转移至二级缓存区300中。当达到闪存区400的下刷条件,则将二级缓存区300的数据转移至闪存区400中。在对本实施例中,对于不同型号的存储器100,达到稳定数据结构所用的数据大小不同。本发明不限定达到稳定数据结构的具体数据大小。本实施例中,例如当写入数据达到6个物理存储页,则写入数据达到稳定数据结构。在本实施例中,闪存区400包括多个存储块,其中存储块为NAND闪存的物理区块(block)。
请参阅图1至图3所示,在本发明一实施例中,闪存区400包括垃圾回收模块401、映射表生成模块402、第一数据下刷模块403、第二数据下刷模块404、第三数据下刷模块405和辅助数据补充模块406。其中,垃圾回收模块401具体为垃圾回收固件。通过垃圾回收模块401能够实现对闪存区400的垃圾回收步骤。通过第一数据下刷模块403能够实现第一数据下刷步骤。通过第二数据下刷模块404能够实现第二数据下刷步骤。通过第三数据下刷模块405能够实现第三数据下刷步骤。通过辅助数据补充模块406能够实现辅助数据补充步骤。
请参阅图1至图4所示,在本发明一实施例中,垃圾回收模块401包括第一判断单元4011、目标选取单元4012、数据回收单元4013和信息生成单元4014。其中,第一判断单元4011包括存储容量阈值,且第一判断单元4011监控闪存区400的空白存储块的数量。目标选取单元4012电性连接于第一判断单元4011,当空白存储块的数量小于存储容量阈值,目标选取单元4012启动。其中目标选取单元4012能够获取存储块的擦除次数和写入次数等等。目标选取单元4012选取有效数据个数最少的存储块作为源块,并选取擦除次数最少的存储块作为目标块。数据回收单元4013将源块的有效数据转移至目标块中,直到将源块的有效数据清空。接着将源块中的数据擦除,从而将源块转移为空白存储块。在转移有效数据和清除无效数据后,目标块的地址映射信息发生改变,信息生成单元4014更新有效数据的地址映射信息,生成回收映射信息。
请参阅图1和图2,以及图5和图6所示,在本发明一实施例中,主机区域202和回收区域203包括写入指针,其中写入指针的工作方式相同。在本实施例中,写入指针可以指向任一存储单元201,且写入指针指向的存储单元201为当前地址映射信息写入的存储单元201。在本实施例中,根据地址映射信息的写入时序,写入指针按照存储单元201的器件排列顺序移动。如图5和图6所示,在写入新的地址映射信息后,写入指针移动并指向下一存储单元201。其中,写入指针指向的存储单元201可以是空白的存储单元201,也可以是写有数据的存储单元201。当写入指针指向的为空白的存储单元201,写入主机映射信息或回收映射信息时,直接写入对应的存储单元201,如图5所示。当写入指针指向的为写有数据的存储单元201,则认为存储单元201被占用。在本实施例中,将被占用的存储单元201中的地址映射信息转移至二级缓存区300中,如图6所示。清空被占用的存储单元201后,再对存储单元201写入地址映射信息。当地址映射信息完成写入后,将写入指针移动到下一存储单元201。在本实施例中,地址映射信息存储在地址映射表中,其中地址映射表具体可以是哈希链表。
请参阅图1至图3、图10和图11所示,在本发明一实施例中,第一数据下刷模块403包括地址查询单元4031、第二判断单元4032和第一下刷单元4033。其中地址查询单元4031与回收区域203和主机电性连接。在对主机区域202写入主机映射信息时,地址查询单元4031获取主机映射信息的逻辑地址,并在回收区域203中查询是否具备相同的主机映射信息。第二判断单元4032接收地址查询单元4031的查询信息,其中第二判断单元4032的判断条件为主机映射信息的逻辑地址是否与回收区域203的已记录信息重复。根据判断条件,第二判断单元4032生成判断结果。根据不同的判断结果,第二判断单元4032可以对第一下刷单元4033发送不同的信号。例如,当判断为是,则第二判断单元4032的判断结果输出高电平信号。当判断为否,则第二判断单元4032的判断结果输出低电平信号。本发明对判断结果的形式不做限定。当回收区域203中具有与主机映射信息相同的逻辑地址。第二判断单元4032对辅助数据补充模块406和第一下刷单元4033输出判断结果。辅助数据补充模块406对回收区域203进行数据补充,使回收区域203达到稳定数据结构。接着通过第一下刷单元4033将回收区域203的数据全部转移至二级缓存区300中。接着继续写入主机映射信息。
请参阅图1至图3、图8和图12所示,在本发明一实施例中,第二数据下刷模块404包括地址获取单元4041、第三判断单元4042、第四判断单元4043、第一数据转移单元4044和第二数据转移单元4045。地址获取单元4041用于获取主机映射信息和回收映射信息。第三判断单元4042的判断条件为写入指针指向的存储单元201是否被占用。第四判断单元4043的判断条件为主机区域202或回收区域203是否被写满。第三判断单元4042的输出结果为是或否。当输出结果为是,通过第一数据转移单元4044将当前的存储单元201的地址映射信息转移至二级缓存区300。当输出结果为否,通过第一数据转移单元4044将待写地址映射信息存储在当前的存储单元201中。第四判断单元4043的输出结果为是或否。当输出结果为是,通过第二数据转移单元4045将主机区域202或回收区域203的全部地址映射信息转移至二级缓存区300。
请参阅图1至图3、图5和图6,以及图9至图13所示,本发明提供了存储器100的控制方法,能够提升存储器100存储数据的稳定性。当主机进行可靠写或是存储器100面临掉电问题时,可以存储器100中存储数据的稳定性,避免数据丢失。其中存储器100的控制方法包括步骤S10。步骤S10为垃圾回收步骤。具体的,当闪存区400的空白存储块数量小于存储容量阈值时,启动垃圾回收步骤。其中步骤S10包括步骤S11至步骤S14。
步骤S11、判断闪存区中空白存储块的数量是否充足。
步骤S12、当闪存区中空白存储块的数量不足,在闪存区的存储块中选出源块和目标块。
步骤S13、将源块的有效数据转移至目标块中,直至将源块释放为空白存储块。
步骤S14、更新有效数据的地址映射信息,形成回收映射信息。
请参阅图1至图3、图5和图6,以及图9和图10所示,在本发明一实施例中,在步骤S11中,第一判断单元4011比较空白存储块的剩余数量和存储容量阈值,在空白存储块的剩余数量小于存储容量阈值时,执行步骤S12。在步骤S12中,目标选取单元4012根据存储块的使用次数,在闪存区400的存储块中选出源块和目标块,接着执行步骤S13。在步骤S13中,将源块的有效数据转移至目标块中。具体的,源块的有效数据首先被转移至二级缓存区300中,接着从二级缓存区300被转移目标块中。其中被转移的有效数据的地址映射信息发生改变,因此执行步骤S14。在步骤S14中,更新有效数据的地址映射信息,形成回收映射信息。
请参阅图1至图3、图5和图6,以及图9和图11所示,在本发明一实施例中,存储器100的控制方法包括步骤S20,映射信息存储步骤。具体的,将主机映射信息存储在主机区域202,将回收映射信息存储在回收区域203,其中主机映射信息为主机数据的地址映射关系,回收映射信息为参与垃圾回收的有效数据的地址映射关系。在步骤S20中,将步骤S14生成的回收映射信息存储至回收区域203中。在步骤S20中,在主机对闪存区400写入数据时,形成主机映射信息。其中主机映射信息存储至主机区域202中。其中回收映射信息存储在回收区域203中。在本实施例中,存储主机映射信息时,当回收映射信息中具有和主机映射信息相同的逻辑地址,执行步骤S30。在本实施例中,在存储主机映射信息或回收映射信息时,若存储单元201已被占用,则执行步骤S40。其中,步骤S40和步骤S30没有严格的先后顺序,达到对应的阶段和判断条件,则执行对应的操作。其中,步骤S30包括步骤S31至步骤S34。
步骤S31、获取主机映射信息的逻辑地址和物理地址。
步骤S32、判断在回收区域中是否具有相同的逻辑地址。
步骤S33、若在回收区域中具有相同的逻辑地址,对回收区域执行辅助数据填充步骤。
步骤S34、将回收区域的回收映射信息全部转移至二级缓存区。
请参阅图1至图3、图5和图6,以及图9和图11所示,在本发明一实施例中,在写入主机映射信息前,执行步骤S30。具体的,在步骤S31中,通过地址查询单元4031获取主机映射信息的逻辑地址Lai和物理地址Pai。例如获得逻辑地址Lai3和物理地址Lai3。接着执行步骤S32,通过地址查询单元4031和第二判断单元4032判断回收区域203中是否有逻辑地址Lai3。若是已有Lai3,则执行步骤S33。若是没有Lai3,则将主机映射信息写入主机区域202中。在步骤S33中,对回收区域203执行辅助数据填充步骤,使回收区域203形成稳定数据结构。接着执行步骤S34,将回收区域203的回收映射信息全部转移至二级缓存区300。此时回收区域203清空。在本实施例中,回收映射信息和新写入的主机映射信息记录的为同一数据的地址映射关系,而相对于新写入的主机映射信息,回收映射信息为更旧的信息。因此根据第一数据下刷步骤,和能够执行第一数据下刷步骤的第一数据下刷模块403,能够避免旧信息对新信息进行覆盖,导致数据出错,地址映射信息更新的准确率高。完成数据下刷后,更新存储器100的地址映射表。
请参阅图1至图3,以及图9和图12所示在本发明一实施例中,在主机映射信息的逻辑地址唯一的情况下,将主机映射信息写入主机区域202中。根据主机映射信息的写入情况,执行步骤S40,第二数据下刷步骤。在第二数据下刷步骤中,当主机区域202或回收区域203的数据结构稳定,将存储单元201的映射信息转移至二级缓存区300。在本实施例中,步骤S40包括步骤S41至步骤S410。
步骤S41、获取地址映射信息。
步骤S42、根据写入指针获取当前待写的存储单元。
步骤S43、判断当前的存储单元是否被占用。
步骤S44、若当前的存储单元未被占用,将主机映射信息和回收映射信息存储至当前存储单元。
步骤S45、若当前的存储单元被占用,将当前存储单元的地址映射信息转移至二级缓存区。
步骤S46、清空当前存储单元,并将地址映射信息存储在当前存储单元中。
步骤S47、写入指针指向下一存储单元。
步骤S48、判断主机区域或回收区域是否被写满。
步骤S49、若主机区域或回收区域被写满,关闭主机区域或回收区域,若主机区域或回收区域未被写满,返回步骤S41。
步骤S410、将主机区域或回收区域的地址映射信息转移至二级缓存区。
请参阅图1至图3、图5和图6,以及图9和图12所示在步骤S41中,获取待写入的地址映射信息,其中待写地址映射信息可以是主机映射信息,也可以是回收映射信息。在步骤S42中,获取写入指针指向的存储单元201,作为当前待写的存储单元201。在步骤S43中,判断当前的存储单元201是否被占用。如当前的存储单元201中无数据,则当前的存储单元201是未被占用,执行步骤S44。在步骤S44中,将地址映射信息存储至当前的存储单元201。若当前的存储单元201中已存储了数据,则当前的存储单元201被占用,执行步骤S45。在步骤S45中,将当前存储单元201的地址映射信息转移至二级缓存区300中。此时待写的存储单元201被清空。接着执行步骤S46,将待写地址映射信息存储在当前存储单元201中。在步骤S44和步骤S46后,执行步骤S47。在步骤S47中,移动写入指针,使写入指针指向下一存储单元201。在每次写完地址映射信息后,执行步骤S48,判断主机区域202或回收区域203是否被写满。在步骤S49中,主机区域202或回收区域203被写满,关闭主机区域202或回收区域203,并接着执行步骤S410。在步骤S410中,将主机区域202或回收区域203的地址映射信息转移至二级缓存区300。在本实施例中,转移地址映射信息至二级缓存区300的步骤中,依次对主机区域202或回收区域203中的存储单元201进行信息转移,直到遍历主机区域202或回收区域203。需要说明的是,对主机区域202和回收区域203的判断和操作互不影响。
请参阅图1至图3、图5和图6,以及图9和图13所示,在本发明一实施例中,在步骤S50中,辅助数据为无效的空白数据。辅助数据占用存储空间,但不能被主机读出。在本实施例中,在主机执行可靠写时,通过辅助数据补充模块406对主机区域202写入辅助数据,直到填满主机区域202。如图13所示,在主机区域202或回收区域203中,每个方格代表存储单元201。其中标号1、标号2和标号3代表写入的地址映射信息,标号×代表辅助数据。当存储器100面临掉电时,执行步骤S50,对主机区域202和回收区域203写入辅助数据,直到填满主机区域202和回收区域203。接着将主机区域202和回收区域203的数据转移至二级缓存区300。
请参阅图1至图3、图5和图6,以及图9至图13所示,在本发明一实施例中,本发明所述控制方法包括步骤S60,第三数据下刷步骤。在本实施例中,通过第三数据下刷模块405完成第三数据下刷步骤。在步骤S60中,当二级缓存区300被填满或达到闪存区400的下刷周期,将二级缓存区300的数据转移至闪存区400。需要说明的是,第一数据下刷步骤和第二数据下刷步骤的优先级高于第三数据下刷步骤。
本发明提供了一种存储器及其控制方法,本实施例的存储器包括闪存区、一级缓存区和二级缓存区。其中,闪存区的存储数据具有地址映射信息,其中根据地址映射信息的稳定性,地址映射信息被划分为一类映射信息和二类映射信息。一级缓存区包括多个存储单元,多个存储单元被划分为主机区域和回收区域,其中主机区域存储主机映射信息,回收区域存储回收映射信息,其中主机映射信息为通过数据写入形成的地址映射信息,回收映射信息为通过垃圾回收形成的地址映射信息。其中,一类映射信息存储在一级缓存区,二类映射信息存储在二级缓存区,当主机区域或回收区域被写满,一类映射信息转换为二类映射信息。本发明提供了一种存储器及其控制方法,能够避免不稳定的数据结构,导致闪存的数据存储出现错误,从而提升了存储器的存储稳定性和存储可靠性。根据本发明提供的存储器及其控制方法,能够提升兼顾数据写入和数据的垃圾回收,避免在数据更新的时候出现旧的数据覆写新的数据,因此在提升存储器稳定性的同时也兼顾了存储的准确性,避免发生重大存储错误,提升了用户的存储安全性。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (9)

1.一种存储器,其特征在于,包括:
闪存区,所述闪存区的存储数据具有地址映射信息,其中根据所述地址映射信息的稳定性,所述地址映射信息被划分为一类映射信息和二类映射信息;
一级缓存区,包括多个存储单元,多个所述存储单元被划分为主机区域和回收区域,其中所述主机区域存储主机映射信息,所述回收区域存储回收映射信息,其中所述主机映射信息为通过数据写入形成的所述地址映射信息,所述回收映射信息为通过垃圾回收形成的所述地址映射信息,其中所述一类映射信息存储在所述一级缓存区,其中所述一类映射信息为所述主机映射信息和所述回收映射信息;
二级缓存区,输入端电性连接于所述一级缓存区,且所述二级缓存区的输出端电性连接于所述闪存区,所述二类映射信息存储在所述二级缓存区;以及
辅助数据补充模块,设置在所述闪存区,所述辅助数据补充模块在所述存储器执行可靠写时或当所述存储器面临掉电时或当填充所述回收区域时,对所述主机区域和/或所述回收区域写入辅助数据,直至写满所述主机区域和/或所述回收区域;
其中,当所述主机区域或所述回收区域被写满,所述一类映射信息转换为所述二类映射信息。
2.根据权利要求1所述的一种存储器,其特征在于,所述主机区域和所述回收区域具有写入指针,所述写入指针指向待写的所述存储单元,且在所述待写的所述存储单元完成数据写入后,所述写入指针指向下一所述存储单元。
3.根据权利要求1所述的一种存储器,其特征在于,所述闪存区包括地址查询单元,在存储所述主机映射信息前,所述地址查询单元接收主机触发信号,所述地址查询单元遍历查询所述回收区域,当所述回收映射信息和所述主机映射信息的逻辑地址相同,所述地址查询单元输出第一逻辑结果。
4.根据权利要求3所述的一种存储器,其特征在于,所述闪存区包括第一下刷单元,所述第一下刷单元电性连接于所述地址查询单元并接收所述第一逻辑结果,所述第一下刷单元将逻辑地址与所述主机映射信息相同的回收映射信息转移至所述二级缓存区。
5.一种存储器的控制方法,基于如权利要求1所述的一种存储器,其特征在于,包括以下步骤:
对闪存区写入数据,并根据数据的地址映射信息形成主机映射信息,其中所述主机映射信息存储在主机区域;
在垃圾回收步骤后,根据所述闪存区中有效数据的地址映射信息,形成回收映射信息,并将所述回收映射信息存储在回收区域;
将所述主机映射信息和所述回收映射信息设置为一类映射信息;
在所述存储器执行可靠写时或当所述存储器面临掉电时或当填充所述回收区域时,对所述主机区域和/或所述回收区域写入辅助数据,直至写满所述主机区域和/或所述回收区域;以及
当所述主机区域或所述回收区域被写满,将所述一类映射信息转换为二类映射信息,并将所述二类映射信息存储在二级缓存区。
6.根据权利要求5所述的一种存储器的控制方法,其特征在于,在存储所述主机映射信息前,当待写的存储单元被占用,将被占用的所述存储单元的数据转移至所述二级缓存区,并对所述待写的存储单元写入数据。
7.根据权利要求6所述的一种存储器的控制方法,其特征在于,所述主机区域和所述回收区域具有写入指针,当待写的所述存储单元被写入数据,将所述写入指针移动至下一个所述存储单元。
8.根据权利要求5所述的一种存储器的控制方法,其特征在于,在存储所述主机映射信息前,遍历查询所述回收区域,当待写入的所述主机映射信息与所述回收映射信息的逻辑地址相同,填充所述回收区域并将所述回收区域的数据转移至所述二级缓存区。
9.根据权利要求5所述的一种存储器的控制方法,其特征在于,所述存储器的控制方法还包括第三数据下刷步骤,当所述二级缓存区被填满或达到闪存下刷周期,将所述二级缓存区的数据转移至闪存区。
CN202311169615.2A 2023-09-12 2023-09-12 一种存储器及其控制方法 Active CN116909493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311169615.2A CN116909493B (zh) 2023-09-12 2023-09-12 一种存储器及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311169615.2A CN116909493B (zh) 2023-09-12 2023-09-12 一种存储器及其控制方法

Publications (2)

Publication Number Publication Date
CN116909493A CN116909493A (zh) 2023-10-20
CN116909493B true CN116909493B (zh) 2023-11-17

Family

ID=88351456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311169615.2A Active CN116909493B (zh) 2023-09-12 2023-09-12 一种存储器及其控制方法

Country Status (1)

Country Link
CN (1) CN116909493B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018059361A1 (zh) * 2016-09-29 2018-04-05 华为技术有限公司 一种存储系统掉电保护方法、存储控制器及电子设备
CN107918523A (zh) * 2016-10-11 2018-04-17 慧荣科技股份有限公司 数据储存装置及其数据写入方法
CN107992431A (zh) * 2017-12-21 2018-05-04 珠海亿智电子科技有限公司 一种nand闪存无效数据回收的掉电保护方法
CN112463656A (zh) * 2020-11-25 2021-03-09 至誉科技(武汉)有限公司 固态硬盘异常掉电恢复方法、系统及存储介质
CN114968096A (zh) * 2022-05-12 2022-08-30 合肥康芯威存储技术有限公司 一种存储器的控制方法、存储器与存储系统
CN116204126A (zh) * 2023-02-23 2023-06-02 合肥大唐存储科技有限公司 固态硬盘的数据读写方法及装置、固态硬盘、存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150212744A1 (en) * 2014-01-26 2015-07-30 Haim Helman Method and system of eviction stage population of a flash memory cache of a multilayer cache system
US10572388B2 (en) * 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
KR20210143387A (ko) * 2020-05-20 2021-11-29 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR102157570B1 (ko) * 2020-07-01 2020-09-18 주식회사 파두 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018059361A1 (zh) * 2016-09-29 2018-04-05 华为技术有限公司 一种存储系统掉电保护方法、存储控制器及电子设备
CN107918523A (zh) * 2016-10-11 2018-04-17 慧荣科技股份有限公司 数据储存装置及其数据写入方法
CN107992431A (zh) * 2017-12-21 2018-05-04 珠海亿智电子科技有限公司 一种nand闪存无效数据回收的掉电保护方法
CN112463656A (zh) * 2020-11-25 2021-03-09 至誉科技(武汉)有限公司 固态硬盘异常掉电恢复方法、系统及存储介质
CN114968096A (zh) * 2022-05-12 2022-08-30 合肥康芯威存储技术有限公司 一种存储器的控制方法、存储器与存储系统
CN116204126A (zh) * 2023-02-23 2023-06-02 合肥大唐存储科技有限公司 固态硬盘的数据读写方法及装置、固态硬盘、存储介质

Also Published As

Publication number Publication date
CN116909493A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN111475427B (zh) 使用低延迟非易失性存储器进行逻辑至物理映射管理
CN113168408B (zh) 利用压缩的键值存储树数据块溢出
US8219776B2 (en) Logical-to-physical address translation for solid state disks
KR100389867B1 (ko) 플래시 메모리 관리방법
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US9329995B2 (en) Memory device and operating method thereof
EP2605142B1 (en) Lba bitmap usage
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
CN109977034B (zh) 数据储存装置以及非挥发式存储器操作方法
CN101980177B (zh) 一种操作Flash的方法和装置
CN102662856B (zh) 一种固态硬盘及其存取方法
CN109710541B (zh) 针对NAND Flash主控芯片Greedy垃圾回收的优化方法
US11520696B2 (en) Segregating map data among different die sets in a non-volatile memory
US20190303019A1 (en) Memory device and computer system for improving read performance and reliability
CN114968096A (zh) 一种存储器的控制方法、存储器与存储系统
CN116540950B (zh) 一种存储器件及其写入数据的控制方法
CN116909493B (zh) 一种存储器及其控制方法
CN102004697B (zh) 一种Flash的回收方法和装置
CN110825310A (zh) 存储器管理方法以及存储控制器
US11144249B2 (en) Storage system including nonvolatile memory module for converting random logical addresses to sequential logical addresses and operating method of the nonvolatile memory module
CN110825653A (zh) 存储器管理方法以及存储控制器
CN105353979A (zh) SSD内部数据文件系统eblock链接结构、管理系统及方法
CN102012869B (zh) 闪存储存系统的数据刻录方法
Moon et al. Crash recovery in FAST FTL
CN112306376B (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