[发明专利]用于文件系统向Nand Flash写数据的驱动装置及方法有效
申请号: | 201110164953.8 | 申请日: | 2011-06-17 |
公开(公告)号: | CN102331911A | 公开(公告)日: | 2012-01-25 |
发明(设计)人: | 赵志宇;钱嘉林;李星爽;段琳;张颖 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F12/02;G06F17/30 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 文件系统 nand flash 数据 驱动 装置 方法 | ||
1.一种用于文件系统向Nand Flash写数据的驱动装置,该驱动装置位于文件系统与硬件控制器之间的驱动层,其特征在于,该驱动装置包括:
初始化模块,在初始化时将Nand Flash划分为保留空间和供文件系统使用的访问空间;
索引存储模块,其中存放有坏块索引表,所述坏块索引表中记录了访问空间中的坏块在保留空间中的对应块;
写模块,在被文件系统调用、并且确认能够开始新一次的写后,依据所述坏块索引表对文件系统的当前写的写地址进行坏块过滤、以使当前写的写地址在指向坏块时能够被映射至保留空间中的对应块,以及,备份当前写的写数据,并在启动硬件控制器以坏块过滤后的写地址将当前写的写数据向Nand Flash写入后通知文件系统开始对下一次写进行软件处理;
坏块管理模块,依据硬件控制器上报的Nand Flash的写状态判断当前写成功或失败,如果当前写成功则通知写模块能够开始新一次的写,否则调用读模块和写模块;
读模块,在被坏块管理模块调用后,启动硬件控制器以指向当前写失败的块的读地址从Nand Flash中读取数据;
写模块还在被坏块管理模块调用后,启动硬件控制器以指向保留空间中任一可用块的写地址将读取的数据及所述备份的写数据向Nand Flash写入;
坏块管理模块还在读取的数据及所述备份的写数据写完成后,将当前写失败的块作为坏块、读取的数据及所述备份的写数据所写入的块作为对应块在所述坏块索引表中增加记录,并通知写模块能够开始新一次的写。
2.如权利要求1所述的驱动装置,其特征在于,访问空间中的总块数为Nand Flash的最小合法块数量减1。
3.如权利要求2所述的驱动装置,其特征在于,保留空间中包含有Nand Flash的首块,保留空间中的所述首块用于备份所述坏块索引表、其余块用作访问空间中的坏块在保留空间中的对应块。
4.如权利要求3所述的驱动装置,其特征在于,所述坏块索引表中包含有每一所述其余块对应的表项,每一表项中包含有表示对应的所述其余块是否被使用的标记位、以及映射在对应的所述其余块的坏块标识。
5.如权利要求1至4中任一项所述的驱动装置,其特征在于,坏块管理模块如果在读取的数据及所述备份的写数据的写入过程中,接收到硬件控制器上报的表示写失败的写状态,则进一步重新调用写模块、使写模块重新启动硬件控制器以指向保留空间中另一可用块的写地址将读取的数据及所述备份的写数据向Nand Flash写入。
6.如权利要求1至4中任一项所述的驱动装置,其特征在于,进一步包括第一Buffer和第二Buffer以及第三Buffer,其中:
写模块将当前写的写数据存放至第一Buffer、并在第二Buffer中备份;
读模块在被坏块管理模块调用后所读取的数据存放至第三Buffer;
坏块管理模块进一步在当前写失败时,将第二Buffer中备份的当前写的写数据转移至第三Buffer与读取的数据合并。
7.如权利要求1至4中任一项所述的驱动装置,其特征在于,
读模块进一步在被文件系统调用后,依据所述坏块索引表对文件系统的当前读的读地址进行坏块过滤、以使当前读的读地址在指向坏块时能够被映射至保留空间中的对应块;
以及,该驱动装置进一步包括擦除模块,在被文件系统调用后,依据所述坏块索引表对文件系统的当前擦除的擦除地址进行坏块过滤、以使当前擦除的擦除地址在指向坏块时能够被映射至保留空间中的对应块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110164953.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:脂加氧酶活性降低的大麦
- 下一篇:防摔计时钢笔