NAND Flash页面自适应的方法及装置制造方法及图纸

技术编号:10114282 阅读:142 留言:0更新日期:2014-06-04 18:33
本发明专利技术适用于存储技术领域,提供了一种NAND Flash页面自适应的方法及装置,所述方法包括如下步骤:当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第一数值和第二数值时,对所述NAND Flash页面起始位置的第三数值的空间进行读写操作;所述第三数值小于第一数值和第二数值;当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第三数值时,对所述NAND Flash的全部空间进行读写操作。本发明专利技术提出的方法及装置可适应不同页面大小的NAND Flash的读写操作。

【技术实现步骤摘要】
【专利摘要】本专利技术适用于存储
,提供了一种NAND?Flash页面自适应的方法及装置,所述方法包括如下步骤:当进行NAND?Flash页面读写操作,且所述NAND?Flash的页面大小为第一数值和第二数值时,对所述NAND?Flash页面起始位置的第三数值的空间进行读写操作;所述第三数值小于第一数值和第二数值;当进行NAND?Flash页面读写操作,且所述NAND?Flash的页面大小为第三数值时,对所述NAND?Flash的全部空间进行读写操作。本专利技术提出的方法及装置可适应不同页面大小的NAND?Flash的读写操作。【专利说明】NAND Flash页面自适应的方法及装置
本专利技术属于存储
,尤其涉及一种NAND Flash页面自适应的方法及装置。
技术介绍
随着嵌入式技术的飞速发展,各种应用对存储设备的要求也随之提高。嵌入式设备由于受成本、体积等因素的影响通常需要使用较大容量的非易失性的存储设备。NANDFlash存储器由于其具有存储容量大、价格便宜、掉电数据不丢失等优点,目前被广泛用于移动电话、数码相机、电视机顶盒等电子产品中。NAND Flash设备的结构分为多个存储块(Block),每个Block由多个页(Page)组成。Block是NAND Flash的最小可擦除的单位,Block的基本组成单位Page是NANDFlash的最小可编程单位。Page进一步划分为主数据区(main data)和剩余数据区(sparedata)ο NAND Flash常见的页面大小有512B、2KB和4KB这3种类型。512B的页实际大小是528字节,它的主数据区大小是512B,其他数据区占16B (其中Spare User Data_5bytes,ECC-lObytes, Reserved-1byte)0而2KB和4KB页分别由4个和8个528字节的数据区组成,每个528字节的数据区的主数据区大小都是512字节。512B与2KB页面结构的对比如图1、图2所示。EFS是高通设计的基于NAND Flash的文件系统,文件系统与Flash页的结构密切相关,EFS文件系统分为5层,最底层是硬件层,NAND Flash硬件处于硬件层;第二层是NAND Controller层,该层的作用的提供访问NAND Flash设备的接口给上层;第三层是NAND Flash驱动层,该层的功能是提供基本的Flash读写擦出等操作接口给上层;第四层是文件系统层,提供文件操作API给应用层;最上层是应用层。由于不同大小页面的结构不同,因此NAND Flash的读写访问时需要针对不同的页面做不同的处理。传统的做法是对于不同的页面编写不同的驱动代码,然后生成各自的bin文件烧写到对应的NAND Flash中,这种做法的缺点是会带来软件维护方面的麻烦。另一种常见的做法是编写2套不同的文件系统代码来适应小页面(512B)和大页面(2KB和4KB),例如Linux系统下流行的yaffs文件系统用于小页面,而yaffs2文件系统用于大页面。这种做法的好处是能够自适应不同的页面,缺点是需要使用2套不同的文件系统代码接口,在软件的设计上比较麻烦。
技术实现思路
本专利技术实施例的目的在于提供一种NAND Flash页面自适应的方法及装置,旨在解决现有的NAND Flash在访问时因不同页面大小需要不同的代码造成维护困难的问题。本专利技术实施例是这样实现的,一种NAND Flash页面自适应的方法,所述方法包括如下步骤:当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第一数值和第二数值时,对所述NAND Flash页面起始位置的第三数值的空间进行读写操作;所述第三数值小于第一数值和第二数值;当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第三数值时,对所述NAND Flash的全部空间进行读写操作。进一步地,所述对NAND Flash页面起始位置的第三数值的空间进行读写操作进一步为:通过写页面函数写入所述NAND Flash页面起始位置的第三数值的空间;通过读页面函数读取所述NAND Flash页面起始位置的第三数值的空间。进一步地,所述通过写页面函数写入NAND Flash页面起始位置的第三数值的空间包括:申请一个大小为第三数值的第一 Buffer ;将待写入的数据拷贝至所述申请的第一 Buffer ;调用write_page函数将所述第一 Buffer中的数据写入所述NAND Flash的某一页面起始位置的第三数值的空间。进一步地,在执行所述调用write_page函数将第一 Buffer中的数据写入NANDFlash的某一页面起始位置的第三数值的空间之后,还包括:调用read_page函数读取所述NAND Flash页面起始位置的第三数值的数据至Verify_buffer ;比较所述Verify_buffer前第三数值的数据与第一 Buffer的数据,相同则写成功,否则失败。进一步地,所述通过读页面函数读取NAND Flash页面起始位置的第三数值的空间包括:申请一个大小为第三数值的第二 Buffer ;通过read_page函数读取所述NAND Flash页面起始位置的第三数值的数据至所述第二 Buffer ;将所述第二 Buffer的数据拷贝至指定的存储空间。本专利技术还提出一种NAND Flash页面自适应的装置,所述装置包括:大页面读写模块,用于当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第一数值和第二数值时,对所述NAND Flash页面起始位置的第三数值的空间进行读写操作;所述第三数值小于第一数值和第二数值;小页面读写模块,用于当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第三数值时,对所述NAND Flash的全部空间进行读写操作。进一步地,所述大页面读写模块包括:写单元,用于通过写页面函数写入所述NAND Flash页面起始位置的第三数值的空间;读单元,用于通过读页面函数读取所述NAND Flash页面起始位置的第三数值的空间。进一步地,所述写单元包括:申请第一子单元,用于申请一个大小为第三数值的第一 Buffer ;缓冲子单元,用于将待写入的数据拷贝至所述申请的第一 Buffer ;调用子单元,用于调用Write_page函数将所述第一 Buffer中的数据写入所述NAND Flash的某一页面起始位置的第三数值的空间。进一步地,所述写单元还包括:检验子单元,用于调用通过read_page函数读取所述NAND Flash页面起始位置的第三数值的数据至Verify_buffer ;以及比较所述Verify_buffer前第三数值的数据与第-Buffer的数据,相同则写成功,否则失败。进一步地,所述读单元包括:申请第二子单元,用于申请一个大小为第三数值的第二 Buffer ;读取子单元,用于通过read_page函数读取所述NAND Flash页面的起始位置的第三数值的数据至所述第二 Buffer ;拷贝子单元,用于将所述第二 Buffer的数据拷贝至指定的存储空间。本专利技术实施例考虑到本文档来自技高网
...

【技术保护点】
一种NAND Flash页面自适应的方法,其特征在于,所述方法包括如下步骤:当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第一数值和第二数值时,对所述NAND Flash页面起始位置的第三数值的空间进行读写操作;所述第三数值小于第一数值和第二数值;当进行NAND Flash页面读写操作,且所述NAND Flash的页面大小为第三数值时,对所述NAND Flash的全部空间进行读写操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐凯
申请(专利权)人:深圳市中兴物联科技有限公司
类型:发明
国别省市:广东;44

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

1