一种基于星载固态存储系统自适应闪存转换层的映射方法技术方案

技术编号:24455595 阅读:23 留言:0更新日期:2020-06-10 15:27
本发明专利技术属于航空、航天电子数据处理、存储与传输技术领域,具体涉及一种基于星载固态存储系统自适应闪存转换层的映射方法,包括:主控CPU单元根据中断类型发出对应的请求;当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,完成二级映射,获得物理页码PPN和物理块号PBN;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元。

A mapping method of adaptive flash conversion layer based on onboard solid state storage system

【技术实现步骤摘要】
一种基于星载固态存储系统自适应闪存转换层的映射方法
本专利技术属于航天飞行器电子系统、星载固态存储器、航空、航天电子数据处理、存储与传输
,具体涉及一种基于星载固态存储系统自适应闪存转换层的映射方法。
技术介绍
目前,航天器上主流的存储介质为NAND型FLASH。其具有如下突出的优点:数据非易失性,掉电数据不丢失;功耗小,不加电也可以长期保持数据;寿命长,擦写次数可达10万次;密度大,单芯片就能达1GB以上,单个叠装模块容量8GB以上。正是由于这些优点,NAND型FLASH被广泛应用到星载固态存储系统中。星载固态存储系统包括主机、闪存转换层和FLASH芯片;其中,闪存转换层位于主机和FLASH芯片之间,作为中间软件层。星载固态存储系统采用NAND型FLASH作为主存储器介质,现场可编程逻辑阵列(FieldProgrammableGateArray,FPGA)作为FLASH控制器,并配备中央处理器(CentralProcessingUnit,CPU)作为主控CPU单元负责地址管理和系统维护。闪存转换层(FlashTranslationLayer,FTL)作为中间软件层,位于主控CPU单元中,完成地址映射、垃圾回收和负载均衡等功能。地址映射将主控CPU单元中应用的逻辑地址转换为FLASH芯片中的物理地址。垃圾回收为当收到数据写入请求时,FTL寻找一个空页用于写入数据,若不存在空页或空余页余量不足,将会触发垃圾回收并选择一个完整的块作为回收对象。垃圾回收通过擦除过时的数据块来释放存储空间。负载均衡是在FLASH芯片的使用过程中,使其内部块的磨损程度尽可能均衡。页级FTL、块级FTL和页块混合级FTL是目前FTL设计中三种主要映射方案。页级FTL以页为单位将一个逻辑地址映射到一个物理地址,其优点为转换效率高,但存储在RAM中的地址映射表较大。块级FTL以块为单位进行逻辑地址到物理地址的映射,其基本思想是逻辑块中的逻辑页偏移量与物理块中物理页的偏移量相同。相比之下,块级FTL的映射表要比页级FTL映射表小得多,但块级FTL的转换效率较低。页块混合级FTL使用块级映射技术来获得相应的物理块地址,使用页级映射技术来定位可用的物理页,页块混合级FTL在较长时间的极限工况下表现出较好的地址转换效率。目前,现有技术大多针对商用固态存储系统的FTL算法,基于商用固态存储系统设计的FLT算法管理复杂、处理器性能要求高、接口速率存在瓶颈,不适用于航天任务。此外,现有技术中的星载FTL算法大多采用页级地址映射方式和固定分区的文件管理模式,存在着主机占用率高、系统响应时间长以及没有充分考虑FLASH芯片的磨损均衡等问题。
技术实现思路
本专利技术的目的在于,为解决现的闪存转换层算法存在上述缺陷,本专利技术提出了一种基于星载固态存储系统自适应闪存转换层的映射方法,具体涉及一种数据驱动的自适应超级块闪存转换层算法(DASFTL)。该算法采用自适应超级块的分级地址映射方案,其中超级块映射表(SuperblockMappingTable,SMT)作为一级映射,页地址映射表(PageMappingTable,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的获取,具体为:根据公式(5),计算块平均热度其中,Hpage为数据页热度;再根据公式(6),计算块回收权重WRec:其中,Nearse为物理块擦除次数;P为权值系数,取值范围为[0,1];Nthre为块擦除次数阈值;Hmax为目标块最大热度。作为上述技术方案的改进之一,所述页映射表子表PMST的个数S的获取,具体为:根据OOB区的大小和逻辑块数,确定页映射子表的个数S;假设α为FLASH芯片中每个物理块中的物理页数,每个OOB区存储m(0<m≤α)个页映射条目,则每个超级块所含有的页地址映射项为m×α个,则S通过如下公式(1)获得:其中,K为每个超级块中所拥有的逻辑块数,的默认值为300。作为上述技术方案的改进之一,所述根据页映射本文档来自技高网
...

【技术保护点】
1.一种基于星载固态存储系统自适应闪存转换层的映射方法,其特征在于,该方法包括:/n主控CPU单元根据中断类型发出对应的请求;/n当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;/n如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;/n根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;/n将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;/n如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。/n

【技术特征摘要】
1.一种基于星载固态存储系统自适应闪存转换层的映射方法,其特征在于,该方法包括:
主控CPU单元根据中断类型发出对应的请求;
当请求为写地址请求或回放地址请求时,判断空页余量是否满足当前写地址请求或回放地址请求的要求;
如果空页余量满足一个超级块地址的余量要求,则主控CPU单元检索超级块映射表SMT,对应地检索出要分配给写地址请求或回放地址请求的超级块号SBN,完成一级映射;
根据检索出的超级块号SBN,检索到相应的超级块;利用主控CPU单元依次检索页映射表PMT和块分配表BAT,进行二级映射,获得物理页码PPN和物理块号PBN;
将得到的物理块号PBN对应实际FLASH芯片中的物理块地址;将物理页码PPN对应实际FLASH芯片中的物理页地址;将得到的实际FLASH芯片中的物理块地址和物理页地址输入至存储控制单元,存储控制单元根据得到的实际FLASH芯片中的物理块地址和物理页地址,寻找到FLASH阵列中相应的物理地址进行数据的写/回放;
如果空页余量不满足一个超级块地址的余量要求,则生成垃圾回收请求,并将该垃圾回收请求返回至主控CPU单元,供其发送。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
主控CPU单元还发出垃圾回收请求,主控CPU单元检索超级块映射表SMT,并通过检索超级块映射表SMT,对应地检索出要分配给垃圾回收请求的超级块号,并根据该超级块号,获得该超级块号的块回收权重,如果该超级块号的块回收权重是所有超级块中的块回收权重的最大值,则将该超级块内的所有通过物理块号PBN索引的物理块地址对应的物理块进行垃圾回收;
垃圾回收结束后,更新超级块映射表SMT和超级块中的块回收权重WRecy。


3.根据权利要求1所述的方法,其特征在于,所述超级块映射表SMT为一级映射表,由超级块号SBN进行索引,每个超级块映射表项包括:页映射表索引PMTI、逻辑块号LBN和块回收权重WRecy;
页映射表PMT和块分配表BAT共同组成二级映射表;其中,页映射表PMT包括S个页映射表子表PMST,并由页映射表索引PMTI进行索引;根据页映射表索引PMTI,检索页映射表PMT,得到相应的物理页码PPN和页热度Hpage;块分配表BAT包括FLASH阵列中所有的物理块地址,并由逻辑块号LBN进行索引;
存储控制单元,用于根据闪存转换层输出的物理块地址和物理页地址,寻找到FLASH阵列中实际的物理地址,并完成写/回放/擦除操作;
FLASH阵列包括多个FLASH芯片,其中,每个FLASH芯片包括:多个物理块。


4.根据权利要求3所述的方法,其特征在于,所述块回收权重WRecy的获取,具体为:
根据公式(5),计算块平均热度



其中,Hpage为数据页热度;
再根据公式(6),计算块回收权重WRecy:



其中,Nearse为物理块擦除次数;P为权值系数,取值范围为[0,1];Nthre为块擦除次数阈值;Hmax为目标块最大热度。


5.根据权利要求3所述的方法,其特征在于,所述页映射表子表PMST的个数S的获取,具体为:
根据OOB区的大小和逻辑块数,确定页映射子表的个数S;
假设α为FLASH芯片中每个物理块中的物理页数,每个OOB区存储m(0<m≤α)个页映射条目,则每个超级块所含有的页地址映射项为m×α个,则S通过如下公式(1)获得:



其中,K为每个超级块中所拥有的逻辑块数,默认值为300。


6.根据权利要求3所述的方法,其特征在于...

【专利技术属性】
技术研发人员:张伟东董振兴朱岩安军社
申请(专利权)人:中国科学院国家空间科学中心
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1