CN115629719A - 一种存储装置及其控制方法 - Google Patents

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

Info

Publication number
CN115629719A
CN115629719A CN202211629183.4A CN202211629183A CN115629719A CN 115629719 A CN115629719 A CN 115629719A CN 202211629183 A CN202211629183 A CN 202211629183A CN 115629719 A CN115629719 A CN 115629719A
Authority
CN
China
Prior art keywords
storage
data
block
risk
blank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211629183.4A
Other languages
English (en)
Other versions
CN115629719B (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 CN202211629183.4A priority Critical patent/CN115629719B/zh
Publication of CN115629719A publication Critical patent/CN115629719A/zh
Application granted granted Critical
Publication of CN115629719B publication Critical patent/CN115629719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0608Saving storage space on 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
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种存储装置及其控制方法,存储装置至少包括:闪存芯片,闪存芯片包括数据存储块、风险存储块和空白存储块,其中,数据存储块中存储有常规数据,风险存储块中存储有风险数据;以及控制模块,连接于闪存芯片,当闪存芯片的存储余量不足,控制模块将部分常规数据转移至空白存储块中,且常规数据被转移后存储在空白存储块的多层存储单元中;其中,当风险存储块的数量超过闪存芯片的风险占用阈值,控制模块将风险数据转移至多个空白存储块中,且风险数据被转移后存储在空白存储块的单层存储单元中。本发明提供了一种存储装置及其控制方法,提升了存储装置数据存储的效率和稳定性。

Description

一种存储装置及其控制方法
技术领域
本发明涉及存储技术领域,特别涉及一种存储装置及其控制方法。
背景技术
闪存的数据读写进程中,当闪存的空余存储块(block)不足时,需要对闪重新整理闪存中各个存储块的数据分布,从而整理出新的空余存储块,以保证闪存正常进行数据存储。
当闪存在重新整理存储块的数据分布时,若出现异常掉电,整理出来的存储块不仅不稳定,在连续断上电的情况下,空余存储块还会被一直耗用,反而导致闪存的存储空间不足,并且还可能导致数据丢失。
发明内容
本发明的目的在于提供一种存储装置及其控制方法,提升存储装置数据存储的效率和稳定性。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供了一种存储装置,至少包括:
闪存芯片,所述闪存芯片包括数据存储块、风险存储块和空白存储块,其中,所述数据存储块中存储有常规数据,所述风险存储块中存储有风险数据;以及
控制模块,连接于所述闪存芯片,当所述闪存芯片的存储余量不足,所述控制模块将部分所述常规数据转移至所述空白存储块中,且所述常规数据被转移后存储在所述空白存储块的多层存储单元中;
其中,当所述风险存储块的数量超过所述闪存芯片的风险占用阈值,所述控制模块将所述风险数据转移至多个所述空白存储块中,且所述风险数据被转移后存储在所述空白存储块的单层存储单元中。
在本发明一实施例中,部分所述数据存储块被所述控制模块标记为源存储块,所述源存储块中存储有回收数据,且所述源存储块的有效数据个数小于所述数据存储块的有效数据个数。
在本发明一实施例中,部分所述空白存储块所述控制模块标记为目标存储块,所述目标存储块连接于所述源存储块,且所述目标存储块中存储有被转移回收数据。
在本发明一实施例中,部分所述目标存储块被所述控制模块标记为所述风险存储块,且所述风险数据包括在所述存储装置发生异常状态时的所述被转移回收数据。
在本发明一实施例中,所述被转移回收数据存储在所述目标存储块的多层存储单元中。
在本发明一实施例中,部分所述空白存储块被所述控制模块标记为回收存储块,所述回收存储块的单层存储单元中存储有转移后的所述风险数据。
在本发明一实施例中,部分所述空白存储块被所述控制模块标记为集合存储块,所述集合存储块中存储有集合风险数据,所述集合风险数据包括多个所述回收存储块的数据。
在本发明一实施例中,所述集合风险数据存储在所述集合存储块的多层存储单元中。
本发明提供了一种存储装置的控制方法,包括以下步骤:
提供一存储装置,所述存储装置包括闪存芯片和控制模块,所述控制模块连接于所述闪存芯片;
在所述闪存芯片中划分出多个存储区,且多个所述存储区分别放置有数据存储块、风险存储块和空白存储块,其中,所述数据存储块中存储有常规数据,所述风险存储块中存储有风险数据;
当所述闪存芯片的存储余量不足,所述控制模块将所述常规数据转移至所述空白存储块中,且所述常规数据被转移后存储在所述空白存储块的多层存储单元中;以及
当所述风险存储块的数量超过所述闪存芯片的风险占用阈值,所述控制模块将所述风险数据转移至多个所述空白存储块中,并将数据转移后的所述风险存储块更新为所述空白存储块,且所述风险数据被转移后存储在所述空白存储块的单层存储单元中。
在本发明一实施例中,转移所述常规数据的步骤包括:
当所述空白存储块的数量小于所述闪存芯片的空白块阈值,所述控制模块将部分数据存储块标记为源存储块,并将部分所述空白存储块标记为目标存储块;
所述控制模块将所述源存储块的数据转移至所述目标存储块中;以及
所述控制模块将数据转移后的所述源存储块更新为所述空白存储块。
在本发明一实施例中,在将所述常规数据从所述源存储块转移至所述目标存储块中时,当所述存储装置发生异常状态,所述控制模块将所述目标存储块标记为风险存储块。
在本发明一实施例中,转移所述风险数据的步骤包括:
在所述存储装置重新上电时,所述控制模块将部分空白存储块标记为回收存储块;
将所述风险数据转移至所述回收存储块中,并将数据转移后的所述风险存储块更新为所述空白存储块,直到所述风险存储块的数量小于等于所述闪存芯片的风险占用阈值;
所述控制模块将部分所述空白存储块标记为集合存储块,且所述控制模块将多个所述回收存储块的数据集中转移至所述集合存储块中,直到清空所述回收存储块中的数据;以及
将被清空数据的所述回收存储块更新为所述空白存储块。
如上所述,本发明提供了一种存储装置及其控制方法,能够在存储装置的存储余量不足时,快速且安全地处理存储装置中的无效数据,整理出空白存储块,以提升存储装置的存储余量,存储效率高。并且,当存储装置遇到连续断上电的情况时,能够避免空白存储块被不断占用而导致存储装置的存储余量不足。并且,即便是在存储装置连续断上电的情况下,仍能保持低风险地进行数据转移,快速且稳定地处理具有电子逃逸风险的存储块,提升了存储装置的存储可靠性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中存储装置的结构示意图。
图2为本发明一实施例中存储块的分布结构示意图。
图3为本发明一实施例中多种存储单元的数据类型示意图。
图4为本发明一实施例中风险存储单元的示意图。
图5为本发明一实施例中数据转移固件的运行示意图。
图6为本发明一实施例中风险存储块的示意图。
图7为本发明一实施例中控制模块的结构示意图。
图8为本发明一实施例中块调度单元的结构示意图。
图9为本发明一实施例中第一次上电后数据转移固件的运行示意图。
图10为本发明一实施例中第二次上电时存储块的分布示意图。
图11为本发明一实施例中第二次上电后数据转移固件的运行示意图。
图12为本发明一实施例中第二上电后存储块的分布示意图。
图13为本发明一实施例中风险第二转移固件的运行示意图。
图14为本发明一实施例中再次上电后风险第二转移固件的运行示意图。
图15为本发明一实施例中再次上电后存储块的分布示意图。
图16为本发明另一实施例中回收存储块的数据整合过程示意图。
图17为本发明另一实施例中形成集合存储块后的存储块分布示意图。
图18为本发明一实施例中所述存储装置的控制方法流程图。
图中:1、存储装置;10、闪存芯片;101、存储阵列;20、主控制器;30、存储模块;301、空白存储区;302、风险存储区;303、源存储区;304、数据存储区;40、固件模块;50、控制模块;501、空白余量计算单元;502、源块获取单元;503、块调度单元;5031、空白块阈值比较固件;5032、风险占用阈值比较固件;5033、数据转移固件;5034、风险块第一转移固件;5035、风险块第二转移固件;504、块标记单元;505、风险占用计算单元;60、通讯模块;100、存储块;1001、风险存储块;1002、源存储块;1003、回收存储块;1004、集合存储块;200、存储单元;201、单层存储单元;202、双层存储单元;203、三层存储单元;204、多层存储单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明所提供的存储装置1可以是快闪存储器或以快闪存储器作为存储介质的存储设备。以快闪存储器(flash MeMory)作为存储介质的存储设备相较于传统的磁盘来讲,不具有重复覆写的特点。在本实施例中,存储装置1的存储介质可以是NAND闪存。在本实施例中,如图1所示,本发明提供的存储装置1包括闪存芯片10和主控制器20,其中闪存芯片10和主控制器20电性连接。当主控制器20接收到主机信号后,主控制器20可以控制闪存芯片10进行数据读写纠错等操作。其中,闪存芯片10包括存储模块30和固件模块40。存储模块30用于数据存储。固件模块40中存储有功能固件,功能固件根据存储装置1所需功能设计。主控制器20包括控制模块50和通讯模块60。通讯模块60可以接收主机信号,以完成用户数据的传输。控制模块50可以从固件模块40中读出功能固件,并操控存储模块30执行功能固件对应的操作。在本实施例中,存储装置1可以是嵌入式存储器(eMbeddedMulti Media Card,eMMC)。在本发明的其他实施例中,主控制器20也可以由计算机主机代替,由计算机主机直接控制闪存芯片10的读写、擦除和纠错等操作。
请参阅图1和图2所示,在本发明一实施例中,闪存芯片10包括多个存储阵列101,存储阵列101包括多个存储块100。其中存储块100可以是NAND闪存的物理区块(block),且存储块100具有唯一的器件编码。存储块100包括多个存储单元200。在本实施例中,存储单元200可以是单层存储单元201,可以是双层存储单元202,可以是三层存储单元203,也可以是四层存储单元204。其中,单层存储单元201可以存储例如1比特的数据。双层存储单元202可以存储例如2比特的数据。三层存储单元203可以存储例如3比特的数据。四层存储单元204可以存储例如4比特的数据。每一比特的数据对应着一个存储页,且存储页可以是NAND闪存中的物理页面(page)。在本实施例中,存储块100例如包括15个存储页(page)。如图3所示,单层存储单元201可以存储例如数据1或数据0。双层存储单元202可以存储例如数据00、数据01、数据10或数据11,以此类推。需要说明的是,在闪存芯片10中,将数据写入闪存芯片10中的最小单位为存储页,将数据从闪存芯片10中擦除的最小单位为存储块100。在本实施例中,根据设计需求也可以将闪存芯片10划分为多个逻辑模块,每个逻辑模块对应不同的逻辑地址。例如,可以将多个存储阵列101划分存储模块30和固件模块40。
请参阅图2至图5所示,在本发明一实施例中,在存储装置1出现异常掉电时,闪存芯片10中的存储信息不会丢失,但是当前写入的进程会终止。在本实施例中,对存储块100写入数据时,按照存储单元200的编码顺序将数据写入存储单元200中。在存储单元200中,按照存储页的顺序将数据写入存储页中。以三层存储单元203为例,三层存储单元203可以存储3比特的数据,若是数据仅写完三层存储单元203的部分存储页,存储装置1就发生异常掉电,此时三层存储单元203的存储进程被终止,并不稳定。在存储装置1中,数据存储较久的情况下电子容易发生游离,导致比特翻转。而对于这种存储进程被强行终止的存储单元200,多次掉电更容易发生电子的逃逸,因此掉电后的存储单元200极其不稳定,存储风险较大。在本实施例中,将异常掉电发生时未被写完的存储单元200标记为风险存储单元,将风险存储单元所在的存储块100标记为风险存储块1001。如图5所示,在将存储块S中的存储数据转移至存储块L中时,若是存储装置1发生断电,部分存储单元200被标记为风险存储单元,则将存储块L也标记为风险存储块1001。
请参阅图1、图5和图6所示,在本发明一实施例中,存储模块30包括空白存储区301、风险存储区302、源存储区303和数据存储区304。其中,空白存储区301包括多个空白的存储块100,如图5所示的存储块a、存储块b、存储块c、存储块d、存储块M和存储块N。风险存储区302包括风险存储块1001。源存储区303包括源存储块1002。数据存储区304包括多个数据存储块,以用于存储用户数据,如图5所示的存储块f、存储块g和存储块h。具体的,初始向闪存芯片10写入数据时,从空白存储区301中调出存储块100或是从数据存储区304中调出存储块100,向存储块100写入数据。写完数据的存储块100被放置在数据存储区304中。当空白存储区301中空白的存储块100数量不足时,通过主控制器20从数据存储区304挑出存储块100,并将挑出的存储块100标记为源存储块1002。主控制器20从空白存储区301中挑出存储块100,作为第一目标存储块。将源存储块1002的数据转移至第一目标存储块中。在数据转移的过程中,当存储装置1发生异常掉电,则主控制器20在再次上电后,将第一目标存储块标记为风险存储块1001,且将风险存储块1001放置在风险存储区302中。
请参阅图1、图5和图6所示,在本发明一实施例中,主控制器20转移源存储块1002的数据时,可以先对源存储块1002中的有效数据进行数据转移,再对源存储块1002中的无效数据进行擦除。在新的存储块100中,将转移后的存储数据按照存储单元200的编码顺序重新排序。如图5所示,将存储块S设置为源存储块1002,存储块S中的部分存储单元200被转移至存储块L中。为便于区分,图5中以数字区分不同的存储单元。在图5中,数字标注的存储单元中,可以表示有效数据,空白的存储单元位置可以表示存储块100中的无效数据。在本实施例中,风险存储块1001中,数字所在的存储单元可以是三层存储单元203,且存储了例如3个比特数据。在转移存储块S的数据时,例如仅转移了标号1、标号2和标号3的存储单元数据,存储装置1发生断电,此时未被转移完数据的存储块L被主控制器20标记为风险存储块1001。因此,将存储块L转移至风险存储区302中,将存储块S放置在源存储区303中。在本实施例中,数据存储区304中的数据可以存在存储块100的单层存储单元201中,也可以存储在多层存储单元中,例如存储在三层存储单元203中。
请参阅图1、图5至图7所示,在本发明一实施例中,控制模块50包括空白余量计算单元501、源块获取单元502、块调度单元503、块标记单元504和风险占用计算单元505。在本实施例中,空白余量计算单元501用于获取空白存储区301中存储块100的数量。空白余量计算单元501中预设有空白块阈值,空白块阈值可以是存储块100的数量数值,也可以是存储块100的大小数值。在本实施例中,在空白余量计算单元501获得空白存储区301中存储块100的数量后,块调度单元503比较空白的存储块100的数量和空白块阈值。若是空白的存储块100的数量大于等于空白块阈值,则闪存芯片10的存储余量足够,块调度单元503不对存储块100进行调度。当空白存储区301中存储块100的数量小于空白块阈值,则通过块调度单元503对存储块100的存储数据进行调度。在存储装置1重新上电后,若源存储块1002的数据已被完全转移,则块标记单元504将上次转移时的第一目标存储块标记为风险存储块1001。
请参阅图1、图5至图8所示,在本发明一实施例中,块调度单元503包括空白块阈值比较固件5031、风险占用阈值比较固件5032、数据转移固件5033、风险块第一转移固件5034和风险块第二转移固件5035。空白块阈值比较固件5031比较空白存储区301中存储块100的数量和空白块阈值。当空白存储区301中存储块100的数量小于空白块阈值,数据转移固件5033将源存储块1002的数据转移至目标存储块中,直到释放源存储块1002,数据转移固件5033将源存储块1002转移至空白存储区301中。风险占用计算单元505用于计算风险存储区302中风险存储块1001的数量。风险占用阈值比较固件5032中存储有风险占用阈值,且风险占用阈值比较固件5032用于比较风险存储块1001的数量和风险占用阈值。当风险存储块1001的数量大于风险占用阈值,则将风险存储块1001的数据转移至新的存储块100中,以降低存储装置1的存储风险。
请参阅图1、图5至图8所示,在本发明一实施例中,通过源块获取单元502获取每个存储块100的有效数据个数(Valid cnt),并将有效数据个数最少的存储块100作为源存储块1002。通过块调度单元503从空白存储区301调出一个空白的存储块100,作为第一目标存储块。通过块调度单元503将源存储块1002的数据转移至第一目标存储块中。在本实施例中,源存储块1002的数据被转移和/或擦除结束后,源存储块1002的数据为空,因此将数据释放后的源存储块1002放置到空白存储区301中。块调度单元503将完成数据转移的第一目标存储块转移至数据存储区304中。在完成一次源存储块1002的数据释放后,若是空白存储区301中存储块100的数量仍旧小于空白块阈值。源块获取单元502获取源存储块1002,并继续上述数据转移步骤,直到空白存储区301中存储块100的数量大于等于空白块阈值。
请参阅图1、图5至图8所示,在本发明一实施例中,在存储装置1重新上电后,继续转移源存储块1002的数据。具体的,通过块调度单元503从空白存储区301调取空白的的存储块100,例如存储块M。通过块标记单元504将新调取的存储块100标记为第二目标存储块。并将源存储块1002的数据转移至第二目标存储块中。如图8所示,将存储块S中标号4和标号5的存储单元数据转移至存储块M中。若是源存储块1002的数据被全部转移至第二目标存储块中,则源存储块1002中的数据已完全释放,将源存储块1002转移至空白存储区301中,以提升空白存储区301的数量。在本实施例中,在将源存储块1002的数据转移至目标存储块中时,可以将源存储块1002的数据转移至目标存储块的多层存储单元中,以将多个源存储块1002的数据整理到同一个目标存储块中,并释放出多个空白的存储块100。其中,源存储块1002的数据可以存储在单层存储单元201中。
请参阅图1、图5至图11所示,在本发明一实施例中,当块调度单元503将源存储块1002的数据转移至第二目标存储块中时,存储装置1发生断电。则存储装置1再次上电后,通过块标记单元504将第二目标存储块标记为风险存储块1001,并将第二目标存储块转移至风险存储区302中。对于存储装置1发生连续断上电的情况,在存储装置1再次上电后,通过块调度单元503调出空白存储区301中的存储块100,例如存储块N。通过块标记单元504将新调出的存储块100标记为第三目标存储块。再继续将源存储块1002的数据转移至第三目标存储块中。具体的,将存储块S的数据转移至存储块N中。在对源存储块1002进行转移的进程中,若存储装置1发生连续的断电再上电,则设置多个目标存储块,以降低对风险存储单元继续写入数据的风险性。在本实施例中,通过设置例如3个目标存储块,即存储块L、存储块M和存储块N,将源存储块1002,即存储块S的数据完全转移。本发明不限定数据转移的次数。在完成源存储块1002的数据转移后,将源存储块1002转移至空白存储区301中。其中,在一个源存储块1002中的数据被完全转移后,若是空白的存储块100的个数仍旧小于空白块阈值,则继续从数据存储区304中调取存储块100并将调取的存储块100用作源存储块1002,继续上述的数据转移过程。其中,在进行最后一个目标存储块的数据转移时,例如全部源存储块1002的数据已被转移至存储块N中,此时若是存储装置1未发生断电,则存储块N可以被转移至数据存储区304中。若是存储装置1后续又接着发生断电,则如上所述将存储块N标记为风险存储块1001。
请参阅图1、图5至图12所示,在本发明一实施例中,在完成源存储块1002的数据转移后,将空白存储区301中存储块100的数量设为Z1,将风险存储区302中存储块100的数量设为Z2。将空白块阈值设置为X,将风险占比阈值设置为Y。当Z1<X时,通过数据转移固件5033将源存储块1002的数据转移至目标存储块中,直到Z1≥X。每当存储装置1重新上电,块标记单元504标记风险存储块1001,风险块第一转移固件5034将风险存储块1001转移至风险存储区302中。每当存储装置1重新上电,空白块阈值比较固件5031和风险占用阈值比较固件5032对存储块100的占用数量进行比较。当Z1≤X且Z2≥Y时,风险块第二转移固件5035将风险存储块1001的数据转移至新的空白的存储块100中。
请参阅图1、图3、图5至图8和图13所示,在本发明一实施例中,块调度单元503从空白存储区301中调出空白的存储块100,例如存储块a。块调度单元503从风险存储区302中调出风险存储块1001。其中,调取空白存储块100的过程可以是随机调取,调取风险存储块1001的过程可以按照设置目标存储块的顺序进行。例如,先调取第n目标存储块,再调取第n-1目标存储块,直到调取第一目标存储块。也可以优先调取创建时间更早的风险存储块1001,以避免风险存储块1001的数据存储不够稳定,从而导致数据丢失或错乱。将风险存储块1001的数据转移至新的空白存储块100中。在本实施例中,可以通过块标记单元504将新的空白存储块100标记为回收存储块1003。具体的,在风险块第二转移固件5035的转移步骤中,将风险存储块1001的数据转移至回收存储块1003中,例如将存储块N的数据转移至存储块a中。其中,存储块N的存储数据例如存储在三层存储单元203中。在本实施例中,主机设备向闪存芯片10写入数据时,优先使用存储块100中的单层存储单元201。具体的,调整主控制器20的控制方案,使三层存储单元203每个存储页(page)只存入例如1个比特数据,从而达到单层存储单元201的存储速度和存储可靠度。而回收存储块1003中的数据存储在单层存储单元201中,以快速且可靠地将风险存储块1001中的数据转移出风险存储区302,并在短期内频繁上断电的情况下,在每次上电的时候,仍旧能继续使用回收存储块1003。
请参阅图1和图3、图7和图8以及图13和图14所示,在本发明一实施例中,在将风险存储块1001中的数据写入回收存储块1003中时,按照存储单元200的排序将数据转移至回收存储块1003中。其中,存储块N例如在一次上电过程中完成了数据转移,则存储块N被释放为空白的存储块100。因此,将存储块N转移至空白存储区301中。在释放了存储块N后,若仍旧有Z1≤X且Z2≥Y,则接着转移另一风险存储块1001中的数据,直到Z1>X或Z2<Y,从而使闪存芯片10具有足够的存储余量和较高的存储可靠性。其中,在将数据从风险存储块1001的数据转移至回收存储块1003中时,即风险块第二转移固件5035的转移进程中,若是存储装置1发生异常断电,在存储装置1再次上电后,不更换回收存储块1003,继续将风险存储块1001的数据转移至回收存储块1003中,直到回收存储块1003被写满。并重新调取空白的存储块100作为回收存储块1003,继续进行数据转移。例如,在将存储块M的数据转移至存储块a的过程中,仅转移了例如1个存储单元,存储块a被写满,则将回收存储块1003放入数据存储区304中。接着,调取存储块b作为新的回收存储块1003,将数字5对应的存储单元中的数据转移至存储块b中。完成数据转移后,将存储块M释放为空白的存储块100。其中,即便是存储装置1发生频繁的断上电,也不会影响风险块第二转移固件5035的运行进程。以此类推,直到Z1>X或Z2<Y。即便是在存储装置1的连续断上电过程中,仍旧能够快速且安全地释放出空白的存储块100,提升存储装置1的存储余量。
请参阅图1和图3、图7和图8以及图13至图15所示,在本发明一实施例中,在存储装置1出现连续断上电的存储过程中,风险块第一转移固件5034和风险块第二转移固件5035的工作进程是相互独立的,互不影响。并且风险块第二转移固件5035的转移速度要高于风险块第一转移固件5034的转移速度。因此,在存储装置1出现连续断上电的情况时,风险存储区302中增加存储块100的速度会低于风险存储区302中减少存储块100的速度,既能降低风险存储块1001的数量,为闪存芯片10提供足够的存储余量,又能避免风险存储块1001红的数据存储时间过长,导致风险存储块1001中的数据丢失或错乱。并且,在风险块第二转移固件5035的运行进程中,主机设备也仍旧能将数据写入回收存储块1003,且将数据写入回收存储块1003的单层存储单元201中。具体的,如图13和图14所示,存储块a被写满,将存储块a作为正常的存储块100放入数据存储区304中。将存储块L的数据也转移完成后,存储块b中被占据了例如12个存储页,存储了例如12个比特数据。此时,若风险存储块1001的个数已经小于风险存储阈值,则将存储块b放入数据存储区304中,作为正常的存储块100。如图15所示,在完成数据转移后,空白存储区301中此时例如有存储块M、存储块N、存储块S、存储块L、存储块c和存储块d。数据存储区304此时例如有存储块a、存储块b、存储块f、存储块g和存储块h。主机设备对闪存芯片10写入数据时,可优先调取未被写满的回收存储块1003,在写满回收存储块1003后,再调取空白的存储块100,并且数据写入空白的存储块100的单层存储单元201中。
请参阅图1和图3、图7和图8以及图14至图17所示,在本发明一实施例中,完成风险存储块1001的数据转移后,若此时风险存储块1001的数量低于风险占用阈值,而空白存储区301中存储块100的数量仍旧小于空白块阈值,则将多个回收存储块1003的数据转移至集合存储块1004的多层存储单元中。具体的,可以通过块调度单元503从空白存储区301中调出空白的存储块100,例如存储块L,作为集合存储块1004。其中,集合存储块1004的数据存储在三层存储单元203或四层存储单元204中。集合存储块1004的单个存储单元200可以存储更多比特的数据,因此可以将多个存储单元200的数据存储在集合存储块1004中。例如,将存储块a和存储块b的数据转移至存储块L中,从而释放存储块a、存储块b。在本发明的其他实施例中,为提升集合存储块1004的使用效率,可以将数据存储区304中的存储块100调取出,并和多个回收存储块1003集合一起转移至集合存储块1004中。例如,将存储块a、存储块b和存储块f的数据一起转移至存储块L中。以此类推,至填满存储块L。若是在这个过程中也发生了连续断上电,则可通过块调度单元503继续对存储块100进行调度。在短期内的频繁断上电,根据本发明的存储装置1,能快速稳定地完成数据转移,且释放出多个空白的存储块100。如图17所示,在本发明的示例中,释放出了例如2个空白的存储块100。在本实施例中,结束数据转移后,将存储块L放置在数据存储区304中。通过本发明提供的存储装置1,当存储装置1遇到连续断上电的情况,不会出现空白存储块100的不断减少和占用,还能够在快速处理存储装置1中无效数据的同时,增加空白存储块100的数量,以提升闪存芯片10的存储余量。并且,数据转移的风险低,本发明的存储装置1能够快速且稳定地处理具有电子逃逸风险的存储块100。
请参阅图1至图18所示,本发明提供了一种存储装置的控制方法,包括步骤S10,提供一存储装置1,存储装置1包括闪存芯片10和控制模块50,控制模块50连接于闪存芯片10。其中,闪存芯片10包括存储模块30和固件模块40。其中,存储装置1包括主控制器20,主控制器20包括控制模块50和通讯模块60。控制模块50可以调取并运行固件模块40中的固件,以实现多种存储操作。
请参阅图1至图5所示,在发明一实施例中,存储装置1的控制方法包括步骤S20,在闪存芯片10中划分出多个存储区,且多个存储区分别放置有数据存储块、风险存储块1001和空白的存储块100。其中,数据存储块中存储有常规数据,风险存储块1001中存储有风险数据。其中常规数据和风险数据可以是用户数据和/或运行数据。在本实施例中,存储模块30被划分出空白存储区301、风险存储区302、源存储区303和数据存储区304。其中,空白存储区301用于存储空白存储块,风险存储区302用于存储风险存储块1001,源存储区303用于存储源存储块1002,数据存储区304用于存储数据存储块。
请参阅图1至图5以及图18所示,在发明一实施例中,存储装置1的控制方法包括步骤S30,当闪存芯片10的存储余量不足,控制模块50将常规数据转移至空白存储块中,且常规数据被转移后存储在空白的存储块100的多层存储单元中。在本实施例中,用空白存储块的数量衡量闪存芯片10的存储余量。具体的,当空白存储块的数量小于空白块阈值,控制模块50将部分空白存储块标记为目标存储块,将部分数据存储块标记为源存储块1002。控制模块50将源存储块1002中的数据标记为回收数据,并将回收数据转移至目标存储块中。在回收数据的转移进程中,若存储装置1发生异常状态,例如出现断电,则将正处在回收数据转移进程中的目标存储块标记为风险存储块1001。其中,空白块阈值为预设数值,可以被设置在固件模块40的固件中,也可以被设置在控制模块50中的控制固件中,例如空白块阈值比较固件5031。
请参阅图1至图5以及图18所示,在发明一实施例中,存储装置1的控制方法包括步骤S40,当风险存储块1001的数量超过闪存芯片10的风险占用阈值,控制模块50将风险数据转移至多个空白存储块中,并将数据转移后的风险存储块1001更新为空白存储块,且风险数据被转移后存储在空白的存储块100的单层存储单元201中。其中,风险占用阈值为预设数值,可以被设置在固件模块40的固件中,也可以被设置在控制模块50中的控制固件中,例如风险占用阈值比较固件5032。在本实施例中,将部分空白存储块标记为回收存储块1003,部分空白存储块标记为集合存储块1004。将多个风险存储块1001的风险数据转移至不同的回收存储块1003中,转移完毕后,将多个回收存储块1003的数据集合转移至集合存储块1004中,形成集合风险数据。本发明提供的存储装置1的控制方法可以在每次存储装置1重新上电时进行,且由源存储块1002至目标存储块的数据转移进程、由风险存储块1001至回收存储块1003的数据转移进程、由回收存储块1003至集合存储块1004的数据转移进程相互独立,互不干扰。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (12)

1.一种存储装置,其特征在于,至少包括:
闪存芯片,所述闪存芯片包括数据存储块、风险存储块和空白存储块,其中,所述数据存储块中存储有常规数据,所述风险存储块中存储有风险数据;以及
控制模块,连接于所述闪存芯片,当所述闪存芯片的存储余量不足,所述控制模块将部分所述常规数据转移至所述空白存储块中,且所述常规数据被转移后存储在所述空白存储块的多层存储单元中;
其中,当所述风险存储块的数量超过所述闪存芯片的风险占用阈值,所述控制模块将所述风险数据转移至多个所述空白存储块中,且所述风险数据被转移后存储在所述空白存储块的单层存储单元中。
2.根据权利要求1所述的一种存储装置,其特征在于,部分所述数据存储块被所述控制模块标记为源存储块,所述源存储块中存储有回收数据,且所述源存储块的有效数据个数小于所述数据存储块的有效数据个数。
3.根据权利要求2所述的一种存储装置,其特征在于,部分所述空白存储块所述控制模块标记为目标存储块,所述目标存储块连接于所述源存储块,且所述目标存储块中存储有被转移回收数据。
4.根据权利要求3所述的一种存储装置,其特征在于,部分所述目标存储块被所述控制模块标记为所述风险存储块,且所述风险数据包括在所述存储装置发生异常状态时的所述被转移回收数据。
5.根据权利要求4所述的一种存储装置,其特征在于,所述被转移回收数据存储在所述目标存储块的多层存储单元中。
6.根据权利要求1所述的一种存储装置,其特征在于,部分所述空白存储块被所述控制模块标记为回收存储块,所述回收存储块的单层存储单元中存储有转移后的所述风险数据。
7.根据权利要求6所述的一种存储装置,其特征在于,部分所述空白存储块被所述控制模块标记为集合存储块,所述集合存储块中存储有集合风险数据,所述集合风险数据包括多个所述回收存储块的数据。
8.根据权利要求7所述的一种存储装置,其特征在于,所述集合风险数据存储在所述集合存储块的多层存储单元中。
9.一种存储装置的控制方法,其特征在于,包括以下步骤:
提供一存储装置,所述存储装置包括闪存芯片和控制模块,所述控制模块连接于所述闪存芯片;
在所述闪存芯片中划分出多个存储区,且多个所述存储区分别放置有数据存储块、风险存储块和空白存储块,其中,所述数据存储块中存储有常规数据,所述风险存储块中存储有风险数据;
当所述闪存芯片的存储余量不足,所述控制模块将所述常规数据转移至所述空白存储块中,且所述常规数据被转移后存储在所述空白存储块的多层存储单元中;以及
当所述风险存储块的数量超过所述闪存芯片的风险占用阈值,所述控制模块将所述风险数据转移至多个所述空白存储块中,并将数据转移后的所述风险存储块更新为所述空白存储块,且所述风险数据被转移后存储在所述空白存储块的单层存储单元中。
10.根据权利要求9所述的一种存储装置的控制方法,其特征在于,转移所述常规数据的步骤包括:
当所述空白存储块的数量小于所述闪存芯片的空白块阈值,所述控制模块将部分数据存储块标记为源存储块,并将部分所述空白存储块标记为目标存储块;
所述控制模块将所述源存储块的数据转移至所述目标存储块中;以及
所述控制模块将数据转移后的所述源存储块更新为所述空白存储块。
11.根据权利要求10所述的一种存储装置的控制方法,其特征在于,在将所述常规数据从所述源存储块转移至所述目标存储块中时,当所述存储装置发生异常状态,所述控制模块将所述目标存储块标记为风险存储块。
12.根据权利要求9所述的一种存储装置的控制方法,其特征在于,转移所述风险数据的步骤包括:
在所述存储装置重新上电时,所述控制模块将部分空白存储块标记为回收存储块;
将所述风险数据转移至所述回收存储块中,并将数据转移后的所述风险存储块更新为所述空白存储块,直到所述风险存储块的数量小于等于所述闪存芯片的风险占用阈值;
所述控制模块将部分所述空白存储块标记为集合存储块,且所述控制模块将多个所述回收存储块的数据集中转移至所述集合存储块中,直到清空所述回收存储块中的数据;以及
将被清空数据的所述回收存储块更新为所述空白存储块。
CN202211629183.4A 2022-12-19 2022-12-19 一种存储装置及其控制方法 Active CN115629719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211629183.4A CN115629719B (zh) 2022-12-19 2022-12-19 一种存储装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211629183.4A CN115629719B (zh) 2022-12-19 2022-12-19 一种存储装置及其控制方法

Publications (2)

Publication Number Publication Date
CN115629719A true CN115629719A (zh) 2023-01-20
CN115629719B CN115629719B (zh) 2023-04-14

Family

ID=84909793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211629183.4A Active CN115629719B (zh) 2022-12-19 2022-12-19 一种存储装置及其控制方法

Country Status (1)

Country Link
CN (1) CN115629719B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303118A (zh) * 2023-05-18 2023-06-23 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN117742619A (zh) * 2024-02-21 2024-03-22 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317527A (zh) * 2014-09-29 2015-01-28 清华大学深圳研究生院 一种基于块状态表的磨损均衡方法及装置
CN105718530A (zh) * 2016-01-15 2016-06-29 上海磁宇信息科技有限公司 文件存储系统及其文件存储控制方法
CN109445715A (zh) * 2018-11-09 2019-03-08 郑州云海信息技术有限公司 一种组合块的坏块处理方法及装置
US20190095123A1 (en) * 2017-09-22 2019-03-28 Silicon Motion, Inc. Methods for internal data movements of a flash memory device and apparatuses using the same
CN112684976A (zh) * 2019-10-18 2021-04-20 爱思开海力士有限公司 用于执行迁移操作的存储器系统及其操作方法
CN114203252A (zh) * 2021-11-22 2022-03-18 深圳市德明利技术股份有限公司 非易失存储器的坏块检测方法、装置、设备及存储介质
CN114579041A (zh) * 2020-11-30 2022-06-03 爱思开海力士有限公司 存储器系统及其操作方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317527A (zh) * 2014-09-29 2015-01-28 清华大学深圳研究生院 一种基于块状态表的磨损均衡方法及装置
CN105718530A (zh) * 2016-01-15 2016-06-29 上海磁宇信息科技有限公司 文件存储系统及其文件存储控制方法
US20190095123A1 (en) * 2017-09-22 2019-03-28 Silicon Motion, Inc. Methods for internal data movements of a flash memory device and apparatuses using the same
CN109445715A (zh) * 2018-11-09 2019-03-08 郑州云海信息技术有限公司 一种组合块的坏块处理方法及装置
CN112684976A (zh) * 2019-10-18 2021-04-20 爱思开海力士有限公司 用于执行迁移操作的存储器系统及其操作方法
CN114579041A (zh) * 2020-11-30 2022-06-03 爱思开海力士有限公司 存储器系统及其操作方法
CN114203252A (zh) * 2021-11-22 2022-03-18 深圳市德明利技术股份有限公司 非易失存储器的坏块检测方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303118A (zh) * 2023-05-18 2023-06-23 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN116303118B (zh) * 2023-05-18 2023-09-05 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN117742619A (zh) * 2024-02-21 2024-03-22 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法
CN117742619B (zh) * 2024-02-21 2024-04-19 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法

Also Published As

Publication number Publication date
CN115629719B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
CN115629719B (zh) 一种存储装置及其控制方法
CN101483067B (zh) 快闪存储器数据写入方法及其快闪存储器控制器
US8122184B2 (en) Methods for managing blocks in flash memories
US8176236B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
CN108804024B (zh) 数据储存装置及其操作方法
CN106469122B (zh) 有效数据合并方法、存储器控制器与存储器储存装置
US20150193340A1 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN101923448A (zh) 一种nand闪存的转换层读写方法
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存系统
CN104765568A (zh) 数据存储方法、存储器控制电路单元与存储器存储装置
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN101567220A (zh) 闪存的损坏区块辨识方法、储存系统及其控制器
CN110874184A (zh) 快闪记忆体控制器及相关电子装置
CN102866861B (zh) 闪存储存系统、闪存控制器与数据写入方法
US20020181285A1 (en) Nonvolatile storage system
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN103473182B (zh) 非挥发性存储器存取方法及非挥发性存储器控制器
CN102800357B (zh) 程序码载入与存取方法、存储器控制器与存储器储存装置
CN102012788B (zh) 下达读取指令与数据读取方法、闪存控制器与储存系统
CN106354651B (zh) 平均磨损方法、存储器控制电路单元及存储器储存装置
CN104166558B (zh) 固件码载入方法、存储器控制器与存储器存储装置
US11714565B2 (en) Block budget enhancement mechanisms for memory
CN106648443A (zh) 有效数据合并方法、存储器控制器与存储器存储装置
CN115185468A (zh) 存储器管理方法、存储器控制器及存储器存储装置
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus

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