CN111258924B - 一种基于星载固态存储***自适应闪存转换层的映射方法 - Google Patents
一种基于星载固态存储***自适应闪存转换层的映射方法 Download PDFInfo
- Publication number
- CN111258924B CN111258924B CN202010054128.1A CN202010054128A CN111258924B CN 111258924 B CN111258924 B CN 111258924B CN 202010054128 A CN202010054128 A CN 202010054128A CN 111258924 B CN111258924 B CN 111258924B
- Authority
- CN
- China
- Prior art keywords
- page
- block
- physical
- address
- mapping table
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明属于航空、航天电子数据处理、存储与传输技术领域,具体涉及一种基于星载固态存储***自适应闪存转换层的映射方法,包括:主控CPU单元根据中断类型发出对应的请求;当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,完成二级映射,获得物理页码PPN和物理块号PBN;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元。
Description
技术领域
本发明属于航天飞行器电子***、星载固态存储器、航空、航天电子数据处理、存储与传输技术领域,具体涉及一种基于星载固态存储***自适应闪存转换层的映射方法。
背景技术
目前,航天器上主流的存储介质为NAND型FLASH。其具有如下突出的优点:数据非易失性,掉电数据不丢失;功耗小,不加电也可以长期保持数据;寿命长,擦写次数可达10万次;密度大,单芯片就能达1GB以上,单个叠装模块容量8GB以上。正是由于这些优点,NAND型FLASH被广泛应用到星载固态存储***中。
星载固态存储***包括主机、闪存转换层和FLASH芯片;其中,闪存转换层位于主机和FLASH芯片之间,作为中间软件层。星载固态存储***采用NAND型FLASH作为主存储器介质,现场可编程逻辑阵列(Field Programmable Gate Array,FPGA)作为FLASH控制器,并配备中央处理器(Central Processing Unit,CPU)作为主控CPU单元负责地址管理和***维护。
闪存转换层(Flash Translation Layer,FTL)作为中间软件层,位于主控CPU单元中,完成地址映射、垃圾回收和负载均衡等功能。地址映射将主控CPU单元中应用的逻辑地址转换为FLASH芯片中的物理地址。垃圾回收为当收到数据写入请求时,FTL寻找一个空页用于写入数据,若不存在空页或空余页余量不足,将会触发垃圾回收并选择一个完整的块作为回收对象。垃圾回收通过擦除过时的数据块来释放存储空间。负载均衡是在FLASH芯片的使用过程中,使其内部块的磨损程度尽可能均衡。
页级FTL、块级FTL和页块混合级FTL是目前FTL设计中三种主要映射方案。页级FTL以页为单位将一个逻辑地址映射到一个物理地址,其优点为转换效率高,但存储在RAM中的地址映射表较大。块级FTL以块为单位进行逻辑地址到物理地址的映射,其基本思想是逻辑块中的逻辑页偏移量与物理块中物理页的偏移量相同。相比之下,块级FTL的映射表要比页级FTL映射表小得多,但块级FTL的转换效率较低。页块混合级FTL使用块级映射技术来获得相应的物理块地址,使用页级映射技术来定位可用的物理页,页块混合级FTL在较长时间的极限工况下表现出较好的地址转换效率。
目前,现有技术大多针对商用固态存储***的FTL算法,基于商用固态存储***设计的FLT算法管理复杂、处理器性能要求高、接口速率存在瓶颈,不适用于航天任务。此外,现有技术中的星载FTL算法大多采用页级地址映射方式和固定分区的文件管理模式,存在着主机占用率高、***响应时间长以及没有充分考虑FLASH芯片的磨损均衡等问题。
发明内容
本发明的目的在于,为解决现的闪存转换层算法存在上述缺陷,本发明提出了一种基于星载固态存储***自适应闪存转换层的映射方法,具体涉及一种数据驱动的自适应超级块闪存转换层算法(DASFTL)。该算法采用自适应超级块的分级地址映射方案,其中超级块映射表(Superblock Mapping Table,SMT)作为一级映射,页地址映射表(PageMapping Table,PMT)作为二级映射,以提高***的响应速度;将超级块作为FLASH地址管理的最小单元,以减少星载固态存储***对主机的依赖;引入动态块回收权重WRecy作为超级块分组和目标回收块选择的标准,以均衡FLASH芯片内各物理块的磨损程度,延长其使用寿命。
为了实现上述目的,本发明提出了一种基于星载固态存储***自适应闪存转换层的映射方法,该方法包括:
主控CPU单元根据中断类型发出对应的请求;所述中断类型包括:写地址请求和回放地址请求;
当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;
根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。
作为上述技术方案的改进之一,所述方法还包括:
主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy。
作为上述技术方案的改进之一,所述超级块映射表SMT为一级映射表,由超级块号SBN进行索引,每个超级块映射表项包括:页映射表索引PMTI、逻辑块号LBN和块回收权重WRecy;
页映射表PMT和块分配表BAT共同组成二级映射表;其中,页映射表PMT包括S个页映射表子表PMST,并由页映射表索引PMTI进行索引;根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;块分配表BAT包括FLASH阵列中所有的物理块地址,并由逻辑块号LBN进行索引;
存储控制单元,用于根据闪存转换层输出的物理块地址和物理页地址,寻找到FLASH阵列中实际的物理地址,并完成写/回放/擦除操作;
FLASH阵列包括多个FLASH芯片,其中,每个FLASH芯片包括:多个物理块。
作为上述技术方案的改进之一,所述块回收权重WRecy的获取,具体为:
其中,Hpage为数据页热度;
再根据公式(6),计算块回收权重WRec:
其中,Nearse为物理块擦除次数;P为权值系数,取值范围为[0,1];Nthre为块擦除次数阈值;Hmax为目标块最大热度。
作为上述技术方案的改进之一,所述页映射表子表PMST的个数S的获取,具体为:
根据OOB区的大小和逻辑块数,确定页映射子表的个数S;
假设α为FLASH芯片中每个物理块中的物理页数,每个OOB区存储m(0<m≤α)个页映射条目,则每个超级块所含有的页地址映射项为m×α个,则S通过如下公式(1)获得:
其中,K为每个超级块中所拥有的逻辑块数,的默认值为300。
作为上述技术方案的改进之一,所述根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;具体为:
具体地,页地址映射表PMT包括S个页映射子表(PMST1、PMST2、…、PMSTs),通过页映射表索引PMTI进行索引,获得页映射子表(PMST1、PMST2、…、PMSTs);每个页映射子表的内容包括:物理页码PPN和页热度Hpage;
逻辑块号LBN和页地址映射表偏移量PMToffset的计算公式为:
LBN=LPN÷α, (2)
PMToffset=α×SBO+LPN%α. (3)
其中,LBN为逻辑块号;LPN为逻辑页号;α为每个物理块中的物理页数;SBO为超级块偏移量;PMToffset为页地址映射表偏移量;
逻辑块号LBN通过逻辑页号LPN除以物理页数α计算得到;再查找超级块映射表SMT,得到该逻辑块所在的超级块号SBN和对应的超级块偏移量SBO;
利用公式(2)和(3),计算得到该逻辑页号LPN在所对应的页地址映射表PMT的页地址映射表偏移量PMToffset;
再根据得到的PMToffset,查找页地址映射表PMT,获得每个页映射子表的物理页码PPN和页热度Hpage;
其中,页热度Hpage的获取如下:
其中,f为一段时间内回放次数,fk+1-fk为第k次及第k+1次触发垃圾回收时该页的回放次数;页回放次数越多则该页的热度越大。
本发明还提供了一种基于星载固态存储***自适应闪存转换层的映射***,该***包括:
发送模块,用于主控CPU单元根据中断类型发出对应的请求;所述中断类型包括:写地址请求和回放地址请求;
判断模块,用于根据发送模块发送的请求,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
映射模块,用于根据判断结果,对写地址请求或回放地址请求进行一级映射和二级映射。
作为上述技术方案的改进之一,所述映射模块具体包括:
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;
根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。
作为上述技术方案的改进之一,所述***还包括:
垃圾回收模块,用于根据检索到的块回收权重,进行垃圾回收。
作为上述技术方案的改进之一,所述垃圾回收模块具体包括:
主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy。
本发明与现有技术相比的有益效果是:
本发明综合了基于超级块的FTL算法和数据驱动的动态自适应算法,在***响应时间、主机占用率以及FLASH芯片磨损均衡上都取得了很好的效果。首先,基于超级块的FTL算法相比于页级FTL算法和块级FTL算法在***响应时间和主机占用率上有着很大的优势,但基于超级块的FLT算法存在着颗粒度过高,组合模式不灵活以及物理块磨损过快等问题。数据驱动的动态自适应算法可以在***运行过程中实时更新每一块的权重,有效提升基于超级块的FTL算法的灵活度以及解决物理块磨损过快的问题,能够有效弥补基于超级块FTL算法存在的缺陷。
1.***响应时间短
本发明由于在DASFTL算法中采用分级地址映射策略,其中超级块映射表SMT为一级映射,页地址映射表和块分配表为二级映射。在***收到地址请求时,可以通过在两个较小映射表检索获得地址,避免在一个过大的映射表中进行检索,缩短***的响应时间。此外,由于采用分级地址映射策略,两级映射表可以形成两级流水线模式,交替进行检索,进一步加快***的响应时间。
2.主机占用率低
本发明由于在DASFTL算法中采用基于超级块的地址管理策略,当主机响应地址请求时,会一次将整个超级块下发给存储控制单元,供存储控制单元完成相应的地址操作。其中,每个超级块是由多个不一定连续的逻辑块组合而成。相比于现有技术,主机完成一次地址响应相当于完成了多次地址发放操作,有效减少存储控制单元向主机请求地址的次数,降低主机占用率。
3.FLASH芯片磨损均衡性能好
本发明由于在DASFTL算法中引入块回收权重WRecy,在***的运行过程中,超级块不是由多个连续的逻辑块简单组合而成,而是根据实际***中数据的运行特点组合而成,即将具有相同块回收权重WRecy的逻辑块组合成一个超级块。此外,每完成一次地址请求操作,超级块会实时更新当前块的块回收权重。当***触发垃圾回收时,将优先回收块回收权重WRecy最大的超级块。这会使得各物理块的回收次数趋于均衡,降低FLASH芯片的磨损程度,延长FLASH芯片的使用寿命。
附图说明
图1是本发明的一种基于星载固态存储***自适应闪存转换层的映射方法的流程图;
图2是本发明的一种基于星载固态存储***自适应闪存转换层的映射方法的地址映射流程图。
具体实施方式
现结合附图对本发明作进一步的描述。
本发明提供了一种基于星载固态存储***自适应闪存转换层的映射方法,具体涉及了基于数据驱动的自适应超级块闪存转换层算法(Data-driven Adaptive SuperblockFTL,DASFTL),以提高***响应速度,降低主机占用率以及避免部分物理块过早磨损,提升FLASH芯片的使用寿命。
如图1所示,该方法包括:
主控CPU单元根据中断类型发出对应的请求;所述中断类型包括:写地址请求和回放地址请求;
当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN(Super Block Number,SBN),完成一级映射;
根据检索出的超级块号SBN,检索到相应的超级块;根据检索到的超级块,利用主控CPU单元依次检索页映射表PMT和块分配表BAT(Block Assignment Table,BAT),并进行二级映射,获得物理页码PPN和物理块号PBN;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放(写或回放),完成一次写地址请求或回放地址请求的响应;
其中,如图1所示,超级块映射表SMT为一级映射表,由超级块号SBN进行索引,每个超级块映射表项包括:页映射表索引PMTI、逻辑块号LBN和块回收权重WRecy。
页映射表PMT和块分配表BAT共同组成二级映射表;其中,页映射表PMT包括S个页映射表子表PMST,并由页映射表索引PMTI进行索引;块分配表BAT包括FLASH阵列中所有的物理块地址,并由逻辑块号LBN进行索引。
存储控制单元,用于根据闪存转换层输出的物理块地址和物理页地址,寻找到FLASH阵列中实际的物理地址,并完成写/回放/擦除(写或回访或擦除)操作。
FLASH阵列包括多个FLASH芯片,其中,每个FLASH芯片包括:多个物理块BLOCK。
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。
其中,根据带外数据(Out Of Band,OOB区)的大小和逻辑块数,确定页映射子表的个数S;
假设α为FLASH芯片中每个物理块中的物理页数,每个OOB区存储m(0<m≤α)个页映射条目,则每个超级块所含有的页地址映射项为m×α个,则S通过如下公式获得;
其中,K为每个超级块中所拥有的逻辑块数;K的取值范围从0到存储***中所有有效物理块的个数。这K个逻辑块可以是连续的逻辑块也可以是不连续的。根据块回收权重WRecy,确定一个超级块中逻辑块的个数,具体地,具有相同WRecy值的逻辑块组成一个超级块,K的默认值为300。
根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;
具体地,页地址映射表PMT包括S个页映射子表(PMST1、PMST2、…、PMSTs),通过页映射表索引PMTI进行索引,获得页映射子表(PMST1、PMST2、…、PMSTs);每个页映射子表的内容包括:物理页码PPN和页热度Hpage;
逻辑块号LBN和页地址映射表偏移量PMToffset的计算公式为:
LBN=LPN÷α, (2)
PMToffset=α×SBO+LPN%α. (3)
其中,LBN为逻辑块号;LPN为逻辑页号;α为每个物理块中的物理页数;SBO为超级块偏移量;PMToffset为页地址映射表偏移量;
每个FLASH芯片的物理块中含有的物理页数α是固定的,因此,逻辑块号LBN可以由逻辑页号LPN除以物理页数α计算得到;再查找超级块映射表SMT,得到该逻辑块所在的超级块号SBN和对应的超级块偏移量SBO;
利用公式(2)和(3),计算得到该逻辑页号LPN在所对应的页地址映射表PMT的页地址映射表偏移量PMToffset;
再根据得到的PMToffset,查找页地址映射表PMT,获得每个页映射子表的物理页码PPN和页热度Hpage;
其中,页热度Hpage的获取如下:
其中,f为一段时间内回放次数,fk+1-fk为第k次及第k+1次触发垃圾回收时该页的回放次数;页回放次数越多则该页的热度越大。
根据逻辑块号LBN,检索块分配表BAT,得到物理块号PBN。
所述方法还包括:主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy,则完成一次垃圾回收请求的响应。
如图2所示,为DASFTL算法地址映射流程图。超级块映射表SMT和页地址映射表PMT组成两级映射,其中,通过超级块映射表SMT,实现一级映射;通过页地址映射表PMT和块分配表BAT,实现二级映射。
超级块映射表SMT通过超级块号SBN进行索引,每个超级映射表项由逻辑块号LBN、页映射表索引PMTI和块回收权重WRecy组成。在DASFTL中,超级块不是由几个连续的逻辑块简单组合而成,而是将具有相同块回收权重WRecy的逻辑块进行组合而成。其中,块回收权重WRecy是根据FLASH芯片中物理块的使用热度进行计算得到。
页映射表PMT由S个页映射表子表PMST组成,并由页映射表索引PMTI进行索引。块分配表BAT由FLASH阵列中所有的物理块地址组成,并由逻辑块号LBN进行索引。
其中,页映射子表PMST存储着一个物理块中所有物理页的信息,页映射子表中的每一项对应着该物理页的物理页号PPN和页热度Hpage。每个FLASH芯片由DATA区和OOB区两部分组成,DATA区存储着外部输入的数据,OOB区存储着页映射子表PMST。
在DASFTL中,为兼顾存储***的性能和使用寿命,引入数据页热度Hpage和物理块擦除次数Nearse,作为目标擦除块的选择因素;
其中,P为权值系数,取值范围为[0,1];Nthre为块擦除次数阈值;Hmax为目标块最大热度。
当P为0时,块回收权重只考虑当前物理块的平均热度。随着P不断增大,块平均热度对块回收权重的影响越来越低,块擦除次数Nearse对块回收权重的影响越来越大。当P为1时,块回收权重只与块擦除次数Nearse有关。存储***在工作中,权值系数P可以随着***当前的工作状况进行变化。为平衡存储***的读写性能和FLASH芯片的使用寿命,默认设置P为0.5。
在DASFTL中,块回收权重WRecy将作为超级块组成单位的度量单位。存储***初次使用时,每个逻辑块的初始块回收权重都为0。随着存储***的运行,超级块映射表SMT会计算并保存每个逻辑块的块回收权重。块回收权重WRecy相同的逻辑块将被组合成为一个超级块,即使这些逻辑块所对应的物理块地址是离散的。当超级块映射表SMT中没有足够的空闲块来响应写操作时将触发垃圾回收。
与响应写操作相同,主控CPU单元在响应垃圾回收操作时,将块回收权重最大的整个超级块输入至存储控制单元。存储控制单元会按照顺序依次回收超级块内的逻辑块。在完成一次回收之后,会更新超级块映射表SMT和块回收权重,则更新后的超级块映射表SMT中会生成新的映射索引。
在超级块内部采用页级映射,超级块中每一个页地址映射表项都可以映射至其对应的实际物理页上;页地址映射表PMT包括S个页映射子表(PMST1、PMST2、…、PMSTs),通过页映射表索引PMTI进行索引获得页映射子表(PMST1、PMST2、…、PMSTs);
在DASFTL中,每个页映射子表PMSTs都将在FLASH写操作过程中,写入到最新分配的物理页OOB区。在逻辑页号LPN转换为实际FLASH芯片的物理页地址的过程中,可以通过读取页映射表索引PMTI所指示物理页的OOB区来直接获得PMSTs。这种分级映射方式是通过维护两个短的映射链表来实现地址转换,避免了维护一个很长的地址链表所造成的搜索时间长和RAM占用率高等缺点,从而提高星载固态存储***的响应速度并减少主机的占用,适用于RAM空间有限和实时性强的嵌入式***。
星载固态存储***主要工作在连续回放/写(回放或写)模式下。现有技术大都采用页级FTL映射方案,其中每次回放/写操作都需向主机请求地址,当存储***连续写入数据时会造成存储***大量占用主机资源,并且随着读写请求的不断累积***响应时间将会变长。为此,DASFTL将超级块作为回放/写(回放或写)操作的最小单位,当存储控制单元接收到存入FLASH芯片中的数据,并向主控CPU单元产生写请求时,主控CPU单元会一次性将块回收权重WRecy最小的超级块地址分配给存储控制单元。若当前写请求将整个超级块地址都分配之后,写请求仍未完成,则向主控CPU单元请求新的超级块。若还有部分地址未分配,则该超级块的地址分配信息存储在存储控制单元中,待下次写请求继续使用。
当存储***没有足够的空闲逻辑块来响应写请求时,将会触发垃圾回收。卫星处于地面接收站的范围内时,会将存储***内的数据下传至地面,随后数据就会被标记为“冷数据”。当触发垃圾回收机制时,将优先回收冷数据块。星载存储***中,对于冷数据的回收只执行擦除操作。现有技术的星载存储***大都基于固定分区的文件管理策略,分区内部采用顺序回收机制。由于不同分区的数据热度和输入速率不同,会导致某些物理块的擦写次数不断攀升,直到该块的擦写次数到达上限变为无效块。因此,DASFTL中,不采用分区的文件管理策略,而将所有文件进行动态管理,其中超级块作为擦除的最小单位。在超级块内部,同一分区的逻辑地址是连续的,但是其对应的物理地址不一定是连续的。
本发明还提供了一种基于星载固态存储***自适应闪存转换层的映射***,该***包括:
发送模块,用于主控CPU单元根据中断类型发出对应的请求;所述中断类型包括:写地址请求和回放地址请求;
判断模块,用于根据发送模块发送的请求,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
映射模块,用于根据判断结果,对写地址请求或回放地址请求进行一级映射和二级映射。
所述映射模块具体包括:
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;
根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。
所述***还包括:
垃圾回收模块,用于根据检索到的块回收权重,进行垃圾回收。
所述垃圾回收模块具体包括:
主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种基于星载固态存储***自适应闪存转换层的映射方法,其特征在于,该方法包括:
主控CPU单元根据中断类型发出对应的请求;
当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;
所述超级块映射表SMT为一级映射表,由超级块号SBN进行索引,每个超级块映射表项包括:页映射表索引PMTI、逻辑块号LBN和块回收权重WRecy;
在DASFTL中,超级块不是由几个连续的逻辑块简单组合而成,而是将具有相同块回收权重WRecy的逻辑块进行组合而成; 其中,块回收权重WRecy是根据FLASH芯片中物理块的使用热度进行计算得到;
根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;
页映射表PMT和块分配表BAT共同组成二级映射表;其中,页映射表PMT包括S个页映射表子表PMST,并由页映射表索引PMTI进行索引;根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;块分配表BAT包括FLASH阵列中所有的物理块地址,并由逻辑块号LBN进行索引;
其中,页映射子表PMST存储着一个物理块中所有物理页的信息,页映射子表中的每一项对应着该物理页的物理页号PPN和页热度Hpage; 每个FLASH芯片由DATA区和OOB区两部分组成,DATA区存储着外部输入的数据,OOB区存储着页映射子表PMST;
每个页映射子表PMSTs都将在FLASH写操作过程中,写入到最新分配的物理页OOB区; 在逻辑页号LPN转换为实际FLASH芯片的物理页地址的过程中,可以通过读取页映射表索引PMTI所指示物理页的OOB区来直接获得PMSTs;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy。
3.根据权利要求1所述的方法,其特征在于,
存储控制单元,用于根据闪存转换层输出的物理块地址和物理页地址,寻找到FLASH阵列中实际的物理地址,并完成写/回放/擦除操作;
FLASH阵列包括多个FLASH芯片,其中,每个FLASH芯片包括:多个物理块。
6.根据权利要求3所述的方法,其特征在于,所述根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;具体为:
具体地,页地址映射表PMT包括S个页映射子表(PMST1、PMST2、…、PMSTs),通过页映射表索引PMTI进行索引,获得页映射子表(PMST1、PMST2、…、PMSTs);每个页映射子表的内容包括:物理页码PPN和页热度Hpage;
逻辑块号LBN和页地址映射表偏移量PMToffset的计算公式为:
LBN=LPN÷α, (2)
PMToffset=α×SBO+LPN%α. (3)
其中,LBN为逻辑块号;LPN为逻辑页号;α为每个物理块中的物理页数;SBO为超级块偏移量;PMToffset为页地址映射表偏移量;
逻辑块号LBN通过逻辑页号LPN除以物理页数α计算得到;再查找超级块映射表SMT,得到该逻辑块所在的超级块号SBN和对应的超级块偏移量SBO;
利用公式(2)和(3),计算得到该逻辑页号LPN在所对应的页地址映射表PMT的页地址映射表偏移量PMToffset;
再根据得到的PMToffset,查找页地址映射表PMT,获得每个页映射子表的物理页码PPN和页热度Hpage;
其中,页热度Hpage的获取如下:
其中,f为一段时间内回放次数,fk+1-fk为第k次及第k+1次触发垃圾回收时该页的回放次数;页回放次数越多则该页的热度越大。
7.一种基于星载固态存储***自适应闪存转换层的映射***,其特征在于,该***包括:
发送模块,用于主控CPU单元根据中断类型发出对应的请求;所述中断类型包括:写地址请求和回放地址请求;
判断模块,用于根据发送模块发送的请求,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
映射模块,用于根据判断结果,对写地址请求或回放地址请求进行一级映射和二级映射;所述映射模块具体包括:
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;
所述超级块映射表SMT为一级映射表,由超级块号SBN进行索引,每个超级块映射表项包括:页映射表索引PMTI、逻辑块号LBN和块回收权重WRecy;
在DASFTL中,超级块不是由几个连续的逻辑块简单组合而成,而是将具有相同块回收权重WRecy的逻辑块进行组合而成; 其中,块回收权重WRecy是根据FLASH芯片中物理块的使用热度进行计算得到;
根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;
页映射表PMT和块分配表BAT共同组成二级映射表;其中,页映射表PMT包括S个页映射表子表PMST,并由页映射表索引PMTI进行索引;根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;块分配表BAT包括FLASH阵列中所有的物理块地址,并由逻辑块号LBN进行索引;
其中,页映射子表PMST存储着一个物理块中所有物理页的信息,页映射子表中的每一项对应着该物理页的物理页号PPN和页热度Hpage; 每个FLASH芯片由DATA区和OOB区两部分组成,DATA区存储着外部输入的数据,OOB区存储着页映射子表PMST;
每个页映射子表PMSTs都将在FLASH写操作过程中,写入到最新分配的物理页OOB区; 在逻辑页号LPN转换为实际FLASH芯片的物理页地址的过程中,可以通过读取页映射表索引PMTI所指示物理页的OOB区来直接获得PMSTs;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。
8.根据权利要求7所述的***,其特征在于,所述***还包括:
垃圾回收模块,用于根据检索到的块回收权重,进行垃圾回收。
9.根据权利要求8所述的***,其特征在于,所述垃圾回收模块具体包括:
主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010054128.1A CN111258924B (zh) | 2020-01-17 | 2020-01-17 | 一种基于星载固态存储***自适应闪存转换层的映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010054128.1A CN111258924B (zh) | 2020-01-17 | 2020-01-17 | 一种基于星载固态存储***自适应闪存转换层的映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258924A CN111258924A (zh) | 2020-06-09 |
CN111258924B true CN111258924B (zh) | 2021-06-08 |
Family
ID=70952297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010054128.1A Active CN111258924B (zh) | 2020-01-17 | 2020-01-17 | 一种基于星载固态存储***自适应闪存转换层的映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258924B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419975B (zh) * | 2021-06-11 | 2023-03-17 | 联芸科技(杭州)股份有限公司 | 存储器的控制***及地址映射方法和地址映射装置 |
CN114328508B (zh) * | 2021-11-19 | 2024-04-26 | 北京遥测技术研究所 | 一种星载固态存储器的快速检索方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779096A (zh) * | 2012-07-11 | 2012-11-14 | 山东华芯半导体有限公司 | 一种基于页块面三维的闪存地址映射方法 |
CN102819496A (zh) * | 2012-08-16 | 2012-12-12 | 无锡紫芯集成电路***有限公司 | 闪存ftl的地址转换方法 |
CN103176916A (zh) * | 2013-03-07 | 2013-06-26 | 中国科学院苏州纳米技术与纳米仿生研究所 | 闪存及闪存的地址转换方法 |
CN103365788A (zh) * | 2013-08-06 | 2013-10-23 | 山东大学 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储***的地址映射方法及装置 |
CN106547703A (zh) * | 2016-10-08 | 2017-03-29 | 华中科技大学 | 一种基于块组结构的ftl优化方法 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
CN108108128A (zh) * | 2017-12-19 | 2018-06-01 | 深圳忆联信息***有限公司 | 一种混合ssd的磨损均衡方法及ssd |
CN109582593A (zh) * | 2018-11-05 | 2019-04-05 | 华侨大学 | 一种基于计算的ftl地址映射方法及数据读、写方法 |
CN109783020A (zh) * | 2018-12-28 | 2019-05-21 | 西安交通大学 | 一种基于ssd-smr混合键值存储***的垃圾回收方法 |
CN110389720A (zh) * | 2018-04-23 | 2019-10-29 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN110413537A (zh) * | 2019-07-25 | 2019-11-05 | 杭州电子科技大学 | 一种面向混合固态硬盘的闪存转换层及转换方法 |
CN110543435A (zh) * | 2019-09-05 | 2019-12-06 | 北京兆易创新科技股份有限公司 | 存储单元的混合映射操作方法、装置、设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8891298B2 (en) * | 2011-07-19 | 2014-11-18 | Greenthread, Llc | Lifetime mixed level non-volatile memory system |
CN103853665B (zh) * | 2012-12-03 | 2017-06-06 | 华为技术有限公司 | 存储空间分配方法及设备 |
CN103440206B (zh) * | 2013-07-25 | 2016-06-01 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其混合映射方法 |
US9317446B2 (en) * | 2014-09-23 | 2016-04-19 | Cisco Technology, Inc. | Multi-level paging and address translation in a network environment |
CN105975878B (zh) * | 2016-05-30 | 2019-02-19 | 中国科学院信息工程研究所 | 基于Nand Flash闪存的安全存储方法及*** |
US10394493B2 (en) * | 2017-06-30 | 2019-08-27 | Seagate Technology Llc | Managing shingled magnetic recording (SMR) zones in a hybrid storage device |
CN109800178B (zh) * | 2017-11-17 | 2023-05-16 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器*** |
CN109739780A (zh) * | 2018-11-20 | 2019-05-10 | 北京航空航天大学 | 基于页级映射的动态二级缓存闪存转换层地址映射方法 |
-
2020
- 2020-01-17 CN CN202010054128.1A patent/CN111258924B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779096A (zh) * | 2012-07-11 | 2012-11-14 | 山东华芯半导体有限公司 | 一种基于页块面三维的闪存地址映射方法 |
CN102819496A (zh) * | 2012-08-16 | 2012-12-12 | 无锡紫芯集成电路***有限公司 | 闪存ftl的地址转换方法 |
CN103176916A (zh) * | 2013-03-07 | 2013-06-26 | 中国科学院苏州纳米技术与纳米仿生研究所 | 闪存及闪存的地址转换方法 |
CN103365788A (zh) * | 2013-08-06 | 2013-10-23 | 山东大学 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储***的地址映射方法及装置 |
CN106547703A (zh) * | 2016-10-08 | 2017-03-29 | 华中科技大学 | 一种基于块组结构的ftl优化方法 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
CN108108128A (zh) * | 2017-12-19 | 2018-06-01 | 深圳忆联信息***有限公司 | 一种混合ssd的磨损均衡方法及ssd |
CN110389720A (zh) * | 2018-04-23 | 2019-10-29 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN109582593A (zh) * | 2018-11-05 | 2019-04-05 | 华侨大学 | 一种基于计算的ftl地址映射方法及数据读、写方法 |
CN109783020A (zh) * | 2018-12-28 | 2019-05-21 | 西安交通大学 | 一种基于ssd-smr混合键值存储***的垃圾回收方法 |
CN110413537A (zh) * | 2019-07-25 | 2019-11-05 | 杭州电子科技大学 | 一种面向混合固态硬盘的闪存转换层及转换方法 |
CN110543435A (zh) * | 2019-09-05 | 2019-12-06 | 北京兆易创新科技股份有限公司 | 存储单元的混合映射操作方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Real-Time Flash Translation Layer for NAND Flash Memory Storage Systems;Zhiwei Qin 等;《2012 IEEE 18th Real Time and Embedded Technology and Applications Symposium》;20120517;第35-44页 * |
Superblock FTL: A superblock-based flash translation layer with a hybrid address translation scheme;Dawoon Jung等;《ACM Transactions on Embedded Computing Systems (TECS)》;20100331;第9卷(第4期);第1-41页 * |
针对Flash存储特性的航天器大容量固态存储技术;宋琪 等;《电子工程设计》;20150228;第23卷(第4期);第169-175页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111258924A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11709597B2 (en) | Memory system and method for controlling nonvolatile memory | |
US11347655B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20230259452A1 (en) | Computing system and method for controlling storage device | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
CN101980177B (zh) | 一种操作Flash的方法和装置 | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN103365788B (zh) | 实时闪存转换层使用的自适应局部垃圾回收方法 | |
US20230418739A1 (en) | Memory system and method for controlling nonvolatile memory | |
CN110413537B (zh) | 一种面向混合固态硬盘的闪存转换层及转换方法 | |
WO2017000658A1 (zh) | 存储***、存储管理装置、存储器、混合存储装置及存储管理方法 | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
CN111258924B (zh) | 一种基于星载固态存储***自适应闪存转换层的映射方法 | |
CN109783398B (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
CN102789427A (zh) | 数据储存装置与其操作方法 | |
CN104461393A (zh) | 一种闪存存储器的混合映射方法 | |
CN103136121A (zh) | 一种固态盘的缓存管理方法 | |
CN111796761A (zh) | 存储器件、控制器以及用于操作控制器的方法 | |
CN105718206A (zh) | 能够感知raid的闪存转换层及其实现方法 | |
CN109446117A (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
CN107590084A (zh) | 一种基于分类策略的页级缓冲区改进方法 | |
US20230359380A1 (en) | Memory system and method for controlling nonvolatile memory | |
CN112035061A (zh) | 固态硬盘资源分配方法、装置和存储介质 | |
CN111104045A (zh) | 一种存储控制方法、装置、设备和计算机存储介质 | |
CN116450036A (zh) | 一种面向nand闪存存储器的数据分离放置方法 | |
CN106155919A (zh) | 一种3d闪存的控制方法及控制*** |
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 |