CN111324307B - 一种星载nand flash型固态存储器及分配存储空间的方法 - Google Patents
一种星载nand flash型固态存储器及分配存储空间的方法 Download PDFInfo
- Publication number
- CN111324307B CN111324307B CN202010095054.6A CN202010095054A CN111324307B CN 111324307 B CN111324307 B CN 111324307B CN 202010095054 A CN202010095054 A CN 202010095054A CN 111324307 B CN111324307 B CN 111324307B
- Authority
- CN
- China
- Prior art keywords
- cluster
- module
- queue
- nand flash
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/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]
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)
- Read Only Memory (AREA)
Abstract
本发明公开了一种星载NAND FLASH型固态存储器,包括写控制模块、读控制模块、存储模块、可用簇队列模块和垃圾回收模块;写控制模块和读控制模块均与簇队列模块关联,垃圾回收模块与存储阵列模块相关联;可用簇队列模块为链表结构,队列头部磨损加权值最小,尾部磨损加权值最大,当需要使用可用空间时,从队列头部指针处获取簇;垃圾回收模块,用于在簇回收时,根据簇的地址的历史使用属性,计算该簇的磨损加权值,并将该簇地址插入至可用簇队列模块相应的位置中去。还公开了基于其分配存储空间的方法,通过更新簇的写入次数、回读次数和擦除次数,最终使所有簇磨损加权值基本相近,使固态存储器中的存储空间均衡使用,从而大大增加存储器的使用寿命。
Description
技术领域
本发明属于电子信息技术领域,具体公开了一种星载NAND FLASH型固态存储器及分配存储空间的方法
背景技术
对地遥感卫星(EOS)以获取飞经地区的地面遥感信息并传输给地面用户加以利用为目的。我国卫星用户的地面数据接收站一般都位于我国境内,为了得到境外的地面遥感信息,就必须将卫星飞行在境外时获取的地面信息暂时保存在星上大容量存储器中,等卫星飞回国内时再通过天线传输给地面数据接收站。由于数据存储量及回放码速率的飙升和载荷数量的多样化,使得星载固态存储器必须具有对数据智能检索和存储空间随机操作的能力,而存储空间的随机化操作,势必会造成存储空间的碎片化和存储空间的不均衡使用。
国内外绝大多数的大容量星载固态存储器使用NAND FLASH存储器作为存储介质。NAND FLASH存储器具有容量大、以块为单位擦除、以页为单位读写、有写入擦除次数限制、需先擦后写、出厂有固定坏块等特点。根据NAND FLASH存储器的特点,其使用寿命主要为其写入擦除次数,而卫星应用中对NAND FLASH存储空间的不均衡使用,导致了其使用寿命的下降。
为了使星载存储器满足卫星使用要求,通常在设计时要求使用的NAND FLASH器件需满足10万次写入/擦除次数。随着电子技术的发展,NAND FLASH器件在存储容量越来越大的同时,其写入/擦除次数却越来越小,最新TLC型NAND FALSH的写入/擦除仅为300次,这与卫星对存储容量和寿命越来越高的需求相矛盾。
发明内容
本发明的目的在于提供一种星载NAND FLASH型固态存储器及分配存储空间的方法,使固态存储器中的存储空间均衡使用,从而大大增加存储器的使用寿命,降低单位存储成本。
本发明是通过以下技术方案来实现:
一种星载NAND FLASH型固态存储器,包括写控制模块、读控制模块、存储阵列模块、可用簇队列模块和垃圾回收模块;
存储阵列模块,用于存储数据;
写控制模块与存储阵列模块连接,用于给存储阵列模块写入数据;
读控制模块与存储阵列模块连接,用于读取存储阵列模块的数据;
写控制模块和读控制模块均与簇队列模块关联,垃圾回收模块与存储阵列模块相关联;
可用簇队列模块为链表结构,包含头部指针、尾部指针和队列长度,根据各个簇的磨损加权值进行排序,队列头部磨损加权值最小,尾部磨损加权值最大,队列长度为剩余可用容量;当需要使用可用空间时,从队列头部指针处获取簇;
垃圾回收模块,用于在簇回收时,根据簇的地址的历史使用属性,计算该簇的磨损加权值,并将该簇地址插入至可用簇队列模块相应的位置中去。
进一步,磨损加权值的大小用于反映该簇的使用情况。
进一步,存储空间按照NAND FLASH存储阵列组织结构分割为若干个以簇为基本单位的子空间。
进一步,簇最小为单个NAND FLASH块,最大为8个NAND FLASH块。
进一步,地址映射表和簇信息表服务于可用簇队列模块,簇信息表包含所有簇的基本信息。
进一步,簇的基本信息包含簇标识、物理地址、记录时间、前一簇号、后一簇号、写入次数、回读次数、擦除次数及磨损加权值。
进一步,所述簇的地址的历史使用属性包括写入次数、回读次数和擦除次数。
本发明还公开了所述星载NAND FLASH型固态存储器的分配存储空间的方法,包括以下步骤:
(1)当需要分配新的存储空间时,调用可用簇队列模块,从队列头部获取簇地址;在存储空间动态地址的地址映射表中,使用簇地址获取实际的物理地址;若对簇进行写操作,则该簇的属性中的写入次数值“加1”;若对簇进行回读操作,则该簇的属性中的回读次数值“加1”;若对簇进行擦除操作,则该簇的属性中的擦除次数值“加1”;
(2)调用垃圾回收模块,计算回收簇的磨损加权值,根据计算出的磨损加权值的大小,将该簇插入至可用簇地址队列中,使簇地址队列始终按磨损加权值由小到大排列。
进一步,磨损加权值的基本计算公式为:
磨损加权值=写入权值×写入次数+回读权值×回读次数+擦除权值×擦除次数。
进一步,步骤(2)中,具体使用二元查找法将该簇插入至可用簇地址队列中。
与现有技术相比,本发明具有以下有益的技术效果:
本发明公开的星载NAND FLASH型固态存储器,增设了可用簇队列模块和垃圾回收模块;可用簇队列模块为链表结构,队列头部磨损加权值最小,尾部磨损加权值最大,当需要使用可用空间时,从队列头部指针处获取簇,从而保证磨损度低的簇优先使用;垃圾回收模块用于在簇回收时,根据簇的地址的历史使用属性,计算该簇的磨损加权值,并将该簇地址插入至可用簇队列模块相应的位置中去,保证簇地址队列始终按磨损加权值由小到大排列。通过这两个模块的配合,最终使所有簇磨损加权值基本相近,从而有效的延长了固态存储器的使用寿命。
进一步,簇最小为单个NAND FLASH块,最大最好不超过8个NAND FLASH块。最大不超过8个是因为包含的块数量越大,管理越粗,虽然需要保存的表大小会变小,内存需求减少,但是每个簇的寿命会根据块中寿命最少的确定,使得原本的延长存储器寿命的目的打折扣。因此,大多数情况下簇大小均为单个块,少数存储器由于内存限制,簇大小会定为多个块。
进一步,地址映射表和簇信息表服务于可用簇队列模块,如果某簇包含FLASH坏块,则将该簇剔除出队列,即队列中不含坏块,避免坏块的使用,因此具有地址映射和坏块管理功能。
本发明公开的星载NAND FLASH型固态存储器分配存储空间的方法,在记录过程中,优先使用可用簇队列中磨损加权值最小的簇,每记录完成一个簇时,更新簇的写入次数;在回放过程中,每回放完成一个簇时,更新簇的回读次数;在擦除过程中,每擦除一个簇,更新簇的擦除次数,计算该簇的磨损加权值,然后将该簇插入至可用簇地址队列中。最终使所有簇磨损加权值基本相近,从而有效的延长了固态存储器的使用寿命。在使用磨损均衡加权算法后,可最大限度的延长闪存首个磨穿块的出现时间,使得所有闪存块其发挥最大性能。
附图说明
图1为簇队列模块和垃圾回收模块在存储系统中所处位置;
图2为簇队列所包含的内容;
图3为应用磨损均衡加权算法后固态存储器的擦除分布图。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
如图1所示,本发明的一种星载NAND FLASH型固态存储器,包括写控制模块、读控制模块、存储阵列模块、可用簇队列模块和垃圾回收模块。
存储阵列模块,用于存储数据;
写控制模块与存储阵列模块连接,用于给存储阵列模块写入数据;
读控制模块与存储阵列模块连接,用于读取存储阵列模块的数据;
写控制模块和读控制模块均与簇队列模块关联,垃圾回收模块与存储阵列模块相关联。
可用簇队列模块:该队列为链表结构,包含头部指针、尾部指针、队列长度等属性,根据各个簇的磨损加权值进行排序,。队列头部磨损加权值最小,尾部磨损加权值最大,队列长度即为剩余可用容量。当需要使用可用空间时,永远从队列头部指针处获取簇,从而保证磨损度低的簇优先使用。该模块同时可根据处理器访问的簇地址,映射至实际的物理地址。地址映射表和簇信息表服务于可用簇队列模块,簇信息表包含所有簇的基本信息,如果某簇包含FLASH坏块,则将该簇剔除出队列,即队列中不含坏块,避免坏块的使用,因此具有地址映射和坏块管理功能。
垃圾回收模块:该模块可在簇回收时,根据簇的写入次数、回读次数和擦除次数等该地址的历史使用属性,计算该簇的磨损加权值,并使用二元查找法将该簇地址插入至可用簇队列相应的位置中去。
二元查找法实际是应用二元选择排序法,二元选择排序,每一趟排序选出最大值和最小值,只需要进行n/2躺的排序,需要查找次数期望比较小,属于一种经典的排序法。
磨损加权值的基本计算公式为:磨损加权值=写入权值×写入次数+回读权值×回读次数+擦除权值×擦除次数。
磨损加权值的大小可反映该簇的使用情况,磨损加权值越大则说明该簇使用越频繁,磨损度越高。
在具体实现上,采用可用簇队列模块和垃圾回收模块的固态存储器,存储空间按照NAND FLASH存储阵列组织结构分割为若干个以簇为基本单位的子空间。簇最小为单个NAND FLASH块,最大最好不超过8个NAND FLASH块。如图2所示,每个簇的基本信息均包含:簇标识、物理地址、记录时间、前一簇号、后一簇号、写入次数、回读次数、擦除次数、磨损加权值等属性。存储空间使用按照簇的磨损加权值进行自动分配,其具体处理过程如下:
a.固态存储器在记录或闭环自检等工作模式下,需要分配新的存储空间时,调用可用簇地址队列模块,从队列头部获取簇地址;在存储空间动态地址的映射模块中,使用簇地址获取实际的物理地址;若对簇进行写操作,则该簇的属性中的写入次数值“加1”;若对簇进行回读操作,则该簇的属性中的回读次数值“加1”;
固态存储器在擦除模式下,需对指定空间进行释放,即对指令的簇进行空间释放;在对指定簇进行擦除操作后,簇的属性中的擦除次数值“加1”。
b.调用垃圾回收模块,计算回收簇的磨损加权值,根据计算出的磨损加权值的大小,将该簇插入至簇队列中,保证簇地址队列始终按磨损加权值由小到大排列。
将可用簇队列模块和垃圾回收模块应用在一个容量为8Tb的高速大容量固态存储器。对固态存储器的存储空间进行格式化,将8Tb容量分为4096个簇,每个簇大小为一个并行超级块,大小为2Gb。试验中我们进行4000组文件记录和文件擦除操作,记录每个块的写入/擦除次数,记录的文件大小由2Gb到8000Gb均匀分布,以次模拟卫星对固存的操作。该实验在固态存储器中进行模拟,为了节省时间,模拟中取消了文件的记录和擦除的时间,且不对存储器任何实际操作。
磨损均衡加权算法的固态存储器管理软件参照图1,在写控制模块和读控制模块均与可用簇队列模块关联,垃圾回收模块与存储模块相关联。如图3所示,根据试验结果可知,在使用磨损均衡加权算法后,固态存储器中簇的最大擦除次数和最小擦除次数之差为1,结果非常理想。
应用试验表明,在使用磨损均衡加权算法后,针对星载固态存储器的典型应用,可最大限度的延长闪存首个磨穿块的出现时间,使得所有闪存块其发挥最大性能。
本发明特别涉及到在没有操作系统(软件)支持的星载大容量固态存储器中对存储空间进行动态调配利用,采用该方法可以大大提高卫星中NAND FLASH型固态存储器的使用寿命。
应用本发明研制的大容量固态存储器已应用于高分七号卫星,固态存储器在地面测试阶段工作正常。
Claims (10)
1.一种星载NAND FLASH型固态存储器,其特征在于,包括写控制模块、读控制模块、存储阵列模块、可用簇队列模块和垃圾回收模块;
存储阵列模块,用于存储数据;
写控制模块与存储阵列模块连接,用于给存储阵列模块写入数据;
读控制模块与存储阵列模块连接,用于读取存储阵列模块的数据;
写控制模块和读控制模块均与簇队列模块关联,垃圾回收模块与存储阵列模块相关联;
可用簇队列模块为链表结构,包含头部指针、尾部指针和队列长度,根据各个簇的磨损加权值进行排序,队列头部磨损加权值最小,尾部磨损加权值最大,队列长度为剩余可用容量;当需要使用可用空间时,从队列头部指针处获取簇;
垃圾回收模块,用于在簇回收时,根据簇的地址的历史使用属性,计算该簇的磨损加权值,并将该簇地址插入至可用簇队列模块相应的位置中去。
2.根据权利要求1所述的星载NAND FLASH型固态存储器,其特征在于,磨损加权值的大小用于反映该簇的使用情况。
3.根据权利要求1所述的星载NAND FLASH型固态存储器,其特征在于,存储空间按照NAND FLASH存储阵列组织结构分割为若干个以簇为基本单位的子空间。
4.根据权利要求3所述的星载NAND FLASH型固态存储器,其特征在于,簇最小为单个NAND FLASH块,最大为8个NAND FLASH块。
5.根据权利要求1所述的星载NAND FLASH型固态存储器,其特征在于,地址映射表和簇信息表服务于可用簇队列模块,簇信息表包含所有簇的基本信息。
6.根据权利要求5所述的星载NAND FLASH型固态存储器,其特征在于,簇的基本信息包含簇标识、物理地址、记录时间、前一簇号、后一簇号、写入次数、回读次数、擦除次数及磨损加权值。
7.根据权利要求1所述的星载NAND FLASH型固态存储器,其特征在于,所述簇的地址的历史使用属性包括写入次数、回读次数和擦除次数。
8.权利要求1~7任意一项所述星载NAND FLASH型固态存储器的分配存储空间的方法,其特征在于,包括以下步骤:
(1)当需要分配新的存储空间时,调用可用簇队列模块,从队列头部获取簇地址;在存储空间动态地址的地址映射表中,使用簇地址获取实际的物理地址;若对簇进行写操作,则该簇的属性中的写入次数值“加1”;若对簇进行回读操作,则该簇的属性中的回读次数值“加1”;若对簇进行擦除操作,则该簇的属性中的擦除次数值“加1”;
(2)调用垃圾回收模块,计算回收簇的磨损加权值,根据计算出的磨损加权值的大小,将该簇插入至可用簇地址队列中,使簇地址队列始终按磨损加权值由小到大排列。
9.根据权利要求8所述星载NAND FLASH型固态存储器的分配存储空间的方法,其特征在于,磨损加权值的基本计算公式为:
磨损加权值=写入权值×写入次数+回读权值×回读次数+擦除权值×擦除次数。
10.根据权利要求8所述星载NAND FLASH型固态存储器的分配存储空间的方法,其特征在于,步骤(2)中,具体使用二元查找法将该簇插入至可用簇地址队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010095054.6A CN111324307B (zh) | 2020-02-13 | 2020-02-13 | 一种星载nand flash型固态存储器及分配存储空间的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010095054.6A CN111324307B (zh) | 2020-02-13 | 2020-02-13 | 一种星载nand flash型固态存储器及分配存储空间的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324307A CN111324307A (zh) | 2020-06-23 |
CN111324307B true CN111324307B (zh) | 2023-02-21 |
Family
ID=71172706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010095054.6A Active CN111324307B (zh) | 2020-02-13 | 2020-02-13 | 一种星载nand flash型固态存储器及分配存储空间的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324307B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547589B2 (en) * | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive |
JP5010723B2 (ja) * | 2010-09-22 | 2012-08-29 | 株式会社東芝 | 半導体記憶制御装置 |
US9507719B2 (en) * | 2013-08-20 | 2016-11-29 | Seagate Technology Llc | Garbage collection in hybrid memory system |
JP2018156137A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社東芝 | 読出制御装置、ストレージコントローラ、およびプログラム |
CN110515859B (zh) * | 2019-07-09 | 2021-07-20 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
-
2020
- 2020-02-13 CN CN202010095054.6A patent/CN111324307B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111324307A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100789406B1 (ko) | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 | |
US6675281B1 (en) | Distributed mapping scheme for mass storage system | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
CN100492322C (zh) | 非易失性存储系统中的损耗平衡 | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US6742078B1 (en) | Management, data link structure and calculating method for flash memory | |
US20050015557A1 (en) | Nonvolatile memory unit with specific cache | |
CN101515276B (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
US20100169542A1 (en) | Dynamic mapping of logical ranges to write blocks | |
CN110781096A (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN101382918A (zh) | 一种基于数据交换区的NAND Flash闪存优化管理方法 | |
CN110347613B (zh) | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 | |
CN106775436B (zh) | 数据存取方法、存储器控制电路单元与存储器 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN113190180A (zh) | 一种基于混合介质的存储装置及分布式存储系统 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN105205008A (zh) | 降低混合映射算法中日志块映射表内存资源占用的方法 | |
CN102736981A (zh) | 提高nor flash擦写寿命的方法 | |
CN106648443B (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 |