一种基于FLASH区域地址映射机制的垃圾回收方法技术

技术编号:20425086 阅读:16 留言:0更新日期:2019-02-23 08:28
本发明专利技术属于计算机系统软件专业技术领域,涉及一种基于FLASH区域地址映射机制的垃圾回收方法,该方法用于解决垃圾回收时间开销过大,空间回收效果不明显的问题。一种基于FLASH区域地址映射机制的垃圾回收方法包括以下3个关键方面:1.在文件系统初始化时构建FLASH设备的区域地址映射与垃圾回收预留块结构;2.在文件系统运行中执行FLASH设备的垃圾回收空间压缩;3.在文件系统运行中执行FLASH设备的垃圾回收空间收集。实施本发明专利技术设计的FLASH设备垃圾回收方法后,能够在较小的时间开销内达到理想的空间回收效果。

【技术实现步骤摘要】
一种基于FLASH区域地址映射机制的垃圾回收方法
本专利技术属于计算机系统软件
,具体提出一种基于FLASH区域地址映射机制的垃圾回收方法。
技术介绍
FLASH设备先擦后写的特性导致其使用异地更新机制,一个物理块会同时存在有效页、无效页以及空闲页。显然,无效页虽然存储的数据已经无效但仍占用区域的空间,而垃圾回收会对无效页进行整理与回收,重新增加空闲空间。通常垃圾回收会在文件写操作空间不足时执行,而且涉及数据页的拷贝操作,耗时较长。此外,单次垃圾回收新增的空闲空间较少,文件写操作会反复出现空间不足从而频繁执行垃圾回收,急剧降低文件系统写性能。如何能够在较小的时间开销内达到理想的空间回收效果是需要重点研究的问题。因此提出一种基于FLASH区域地址映射机制的垃圾回收方法。
技术实现思路
本专利技术的目的:为了解决FLASH设备的垃圾回收时间开销过大,空间回收效果不明显的问题,结合区域地址映射机制与空间压缩以提升垃圾回收效果,特提出本专利技术。本专利技术的技术方案:一种基于FLASH区域地址映射机制的垃圾回收方法,其特征在于,包括以下步骤:步骤1、构建FLASH设备的区域地址映射结构:文件系统在初始化时,采用FLASH设备的区域地址映射机制将整个文件系统管理的逻辑地址范围划分为若干个组,每个组映射到FLASH设备一组特定数目的物理块;步骤2、构建垃圾回收预留块结构:文件系统在初始化时,将部分FLASH空闲块保留且不参与区域地址映射,这些块在垃圾回收空间收集时被擦除,作为新产生的空闲块以增加区域可用空间;步骤3、文件系统在运行中,执行垃圾回收空间压缩:文件系统运行中,在无文件读写等操作的空闲时间执行区域的空间压缩,选择最近最后访问的区域执行空间压缩,遍历该区域包含的所有普通逻辑映射块,分别找到包含无效页最多的最脏块与一个包含空闲页的迁移块。如果该区域最脏块不包含任何有效页,则将该最脏块的所有空闲页均标记为无效,使得该最脏块包含的所有页均为无效;如果该区域最脏块包含有效页,则将其包含的有效页依次拷贝到迁移块中,同步更新这些有效页的区域地址映射信息。步骤4:文件系统在运行中,执行垃圾回收空间收集:文件系统运行中,当执行文件写操作时,根据区域地址映射机制,涉及的普通逻辑映射块属于某个区域。当遍历该区域所有普通逻辑映射块均无法找到空闲页时,则该区域空间已满将执行垃圾回收空间收集;遍历空间已满的区域,找到包含无效页最多的最脏块:如果该最脏块包含的所有页均为无效页,则将文件系统的垃圾回收预留块擦除,并将其与最脏块的逻辑地址进行交换,重新在该区域执行垃圾回收空间收集;如果该最脏块包含有效页,则将文件系统的垃圾回收预留块擦除,将最脏块包含的有效页依次拷贝到空闲的垃圾回收预留块,最后将其与最脏块的逻辑地址进行交换,垃圾回收空间收集执行完毕。所述的垃圾回收方法适用于嵌入式实时操作系统。所述的FLASH设备类型为NOR型或NAND型。所述的文件系统应包括异常掉电的数据恢复方法。所述的文件系统为事务型文件系统。本专利技术具有的优点效果:实施本专利技术所述的方法后,可解决FLASH设备的垃圾回收时间开销过大,空间回收效果不明显的问题。附图说明图1为基于区域地址映射机制的垃圾回收示意图。图2为垃圾回收空间压缩示意图。图3为垃圾回收执行流程图。具体实施方式一个FLASH设备由多个物理块组成,其为擦除最小单元;一个物理块由多个物理页组成,其为读写最小单元,一个页只能在擦除之后才能重复写数据。先擦后写的特性导致FLASH设备使用异地更新机制,所以一个物理块会同时存在有效页、无效页以及空闲页,垃圾回收会对无效页进行整理与回收,重新增加空闲空间。为了提升垃圾回收的效率,使用区域地址映射机制与垃圾回收预留块相结合的方法,如图1。参考图1至图3,使用本专利技术所述的一种基于FLASH区域地址映射机制的垃圾回收方法的具体工作步骤:1)采用NAND型FLASH设备,物理块大小为8MB,物理页大小为16KB;文件系统初始化时,配置一个1GB的逻辑分区,该逻辑分区包含128个物理块,针对FLASH设备的区域地址映射中每个区域包含8个块,包含4096个页。2)在文件系统初始化时,将FLASH设备的4个空闲块保留作为垃圾回收预留块,不参与区域地址映射;随着持续的文件读写等操作,4个垃圾回收预留块的物理位置将动态变化。3)文件系统初始化时,将垃圾回收空间压缩操作以一个后台任务的形式启动,该任务优先级低于文件正常读写等任务;文件系统运行中,当没有执行文件读写等操作时将处于空闲状态,此时后台低优先级任务开始执行垃圾回收空间压缩操作。4)对文件系统最近最后访问的地址映射区域执行垃圾回收空间压缩,假设为区域3,则遍历区域3的8个普通逻辑映射块:首先找到包含无效页最多的最脏块,假设为区域3块5;接着找到包含空闲页的迁移块,假设为区域3块2;5)如果区域3块5不包含有效页,则将其剩余所有空闲页(如果存在)均标记为无效状态,使得区域3块5成为一个完全无效块;如果区域3块5包含有效页(假设包含100个有效页),则将100个有效页依次拷贝到区域3块5的空闲页(假设包含200个空闲页)中,同步更新区域3块2新拷贝的100个有效页逻辑地址映射,然后无效区域3块5的100个陈旧有效页。6)文件系统运行中,执行文件写操作时,假设涉及的普通逻辑映射块属于区域3,则会在区域3查找可用空闲页。如果遍历区域3的4096个页无法找到空闲页,则该区域空间已满触发垃圾回收空间收集。7)遍历区域3的8个普通逻辑映射块,找到包含无效页最多的最脏块,假设为区域3块5:如果区域3块5为完全无效块,则选择一个垃圾回收预留块擦除(如果是非空闲块),此时其包含512个空闲页,然后交换垃圾回收预留块与区域3块5的逻辑地址,重新在区域3执行垃圾回收空间收集。8)如果区域3块5包含有效页(假设包含50个有效页),则选择一个垃圾回收预留块擦除(如果是非空闲块),此时其包含512个空闲页,然后将区域3块5的50个有效页依次拷贝到垃圾回收预留块空闲页中,然后交换区域3块5与垃圾回收预留块的逻辑地址,垃圾回收空间收集执行完毕。按照上述工作步骤执行即可实现专利技术所达到的效果。本文档来自技高网...

【技术保护点】
1.一种基于FLASH区域地址映射机制的垃圾回收方法,其特征在于,包括以下步骤:步骤1、构建FLASH设备的区域地址映射结构:文件系统在初始化时,采用FLASH设备的区域地址映射机制将整个文件系统管理的逻辑地址范围划分为若干个组,每个组映射到FLASH设备一组特定数目的物理块;步骤2、构建垃圾回收预留块结构:文件系统在初始化时,将部分FLASH空闲块保留且不参与区域地址映射,这些块在垃圾回收空间收集时被擦除,作为新产生的空闲块以增加区域可用空间;步骤3、文件系统在运行中,执行垃圾回收空间压缩:文件系统运行中,在无文件读写等操作的空闲时间执行区域的空间压缩,选择最近最后访问的区域执行空间压缩,遍历该区域包含的所有普通逻辑映射块,分别找到包含无效页最多的最脏块与一个包含空闲页的迁移块;如果该区域最脏块不包含任何有效页,则将该最脏块的所有空闲页均标记为无效,使得该最脏块包含的所有页均为无效;如果该区域最脏块包含有效页,则将其包含的有效页依次拷贝到迁移块中,同步更新这些有效页的区域地址映射信息;步骤4:文件系统在运行中,执行垃圾回收空间收集:文件系统运行中,当执行文件写操作时,根据区域地址映射机制,涉及的普通逻辑映射块属于某个区域。当遍历该区域所有普通逻辑映射块均无法找到空闲页时,则该区域空间已满将执行垃圾回收空间收集;遍历空间已满的区域,找到包含无效页最多的最脏块:如果该最脏块包含的所有页均为无效页,则将文件系统的垃圾回收预留块擦除,并将其与最脏块的逻辑地址进行交换,重新在该区域执行垃圾回收空间收集;如果该最脏块包含有效页,则将文件系统的垃圾回收预留块擦除,将最脏块包含的有效页依次拷贝到空闲的垃圾回收预留块,最后将其与最脏块的逻辑地址进行交换,垃圾回收空间收集执行完毕。...

【技术特征摘要】
1.一种基于FLASH区域地址映射机制的垃圾回收方法,其特征在于,包括以下步骤:步骤1、构建FLASH设备的区域地址映射结构:文件系统在初始化时,采用FLASH设备的区域地址映射机制将整个文件系统管理的逻辑地址范围划分为若干个组,每个组映射到FLASH设备一组特定数目的物理块;步骤2、构建垃圾回收预留块结构:文件系统在初始化时,将部分FLASH空闲块保留且不参与区域地址映射,这些块在垃圾回收空间收集时被擦除,作为新产生的空闲块以增加区域可用空间;步骤3、文件系统在运行中,执行垃圾回收空间压缩:文件系统运行中,在无文件读写等操作的空闲时间执行区域的空间压缩,选择最近最后访问的区域执行空间压缩,遍历该区域包含的所有普通逻辑映射块,分别找到包含无效页最多的最脏块与一个包含空闲页的迁移块;如果该区域最脏块不包含任何有效页,则将该最脏块的所有空闲页均标记为无效,使得该最脏块包含的所有页均为无效;如果该区域最脏块包含有效页,则将其包含的有效页依次拷贝到迁移块中,同步更新这些有效页的区域地址映射信息;步骤4:文件系统在运行中,执行垃圾回收空间收集:文件系统运行中,当执行文件写操作时,根据区域...

【专利技术属性】
技术研发人员:王冬李运喜杨琼徐晓光
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西,61

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

1