本发明专利技术公开了一种将2048字节页的Nand Flash模拟成硬盘的方法和装置。该方法包括:接收磁盘文件系统对磁盘扇区的读操作或写操作;根据NandFlash中512字节页的OOB信息,获取与所述磁盘扇区对应的512字节页,并对所述获取的512字节页进行读操作、或块内页的顺序写操作;其中,所述512字节页由每一个2048字节页预先划分得到;所述OOB信息包括所述512字节页对应的逻辑单元、状态、逻辑扇区以及所在块的替换块。本发明专利技术中通过将2048字节页的Nand Flash中每个块的每一页划分为4个512字节页,并根据Nand Flash中512字节页的OOB信息实现了将2048字节页的NandFlash模拟成硬盘,从而可以在大页Nand Flash上运行磁盘文件系统。
【技术实现步骤摘要】
本专利技术涉及通信
,尤其涉及一种将2048字节页的Nand Flash模 拟成硬盘的方法和装置。
技术介绍
嵌入式系统中广泛的采用Flash (闪存)来存储程序和数据。Flash具有系 统掉电后仍可保留内部信息及可擦写等功能特点。目前广泛使用的Flash主要 有Nor Flash和Nand Flash两种。与Nor Flash相比,Nand Flash具有很好的性 价比,更适合于在嵌入式系统中存储数据。目前,Flash文件系统的种类主要包才舌JFFS2( Joumaling Flash File System, 日志闪存文件系统版本2)和YAFFS ( Yet Another Flash File System, —种专 为Nand Flash设计的日志文件系统)等Flash文件系统。^f旦是,某些应用需要 在Nand Flash上运行传统的磁盘文件系统,如FAT16 ( FAT16/32是 DOS/Windows操作系统上的一种磁盘文件系统)、FAT32、 EXT2 (EXT2/3是 Linux操作系统上的磁盘文件系统)和EXT3等。Nand Flash的内部存储单元的结构是块页结构, 一般情况下每个块 (Block)由64个页(Page)组成,Nand Flash以块为单位进行擦除,以页为 单位进行读写。根据页大小的不同,Nand Flash又分为两种,即512字节页和 2048字节页;2048字节页的NandFlash又称大页Nand Flash,由于具备存Y渚 量大等特点因此将逐渐成为使用趋势。512字节页与2048字节页的Nand Flash相比最大的不同点在于,512字 节页的Nand Flash支持对块内的页随机写,而2048字节页的Nand Flash在块 内只能对页进行顺序的写操作。例如,设Block 0为空闲块,现有PageO和Page 1 需要写入,对于512字节页的Nand Flash,对PageO和Pagel的写顺序没有要 求;而对于2048字节页的Nand Flash来说,必须先写入Page0,再写入Pagel 。其次,尽管Nand Flash上的每Bit只允许写一次,但是512字节页的Nand Flash 可以将同一页分成多个部分进行写操作,而目前2048字节页的Nand Flash最 多只允许对同 一 页进行8次写操作。目前,Flash文件系统(如YAFFS和JFFS2 ) 很好的支持2048字节页的Nand Flash这个特点,而传统》兹盘文件系统只支持 对扇区进行随机写。由于512字节页Nand Flash支持对块内页的随机写,所 以目前大部分的系统都支持将512字节页的Nand Flash模拟为硬盘,如Linux 操作系统中MTD( Memory Technology Device,存储技术设备)子系统的NFTL (Nand Flash Translation Layer, Nand Flash转换层)模块。现有技术中,由于 2048字节页的Nand Flash不支持块内页的随机写,同时页大小也与磁盘文件 系统的扇区大小512字节不相等,所以目前还没有系统能够将2048字节页的 Nand Flash模拟为硬盘。
技术实现思路
本专利技术提供一种将2048字节页的Nand Flash模拟成硬盘的方法和装置, 用于实现将2048字节页的Nand Flash才莫拟成石更盘。本专利技术提供一种将2048字节页的Nand Flash模拟成硬盘的方法,包括 接收磁盘文件系统对磁盘扇区的读操作或写操作;根据Nand Flash中512字节页的OOB信息,获取与所述-兹盘扇区对应的 512字节页,并对所述获取的512字节页进行读操作、或块内页的顺序写操作;其中,所述512字节页由每一个2048字节页预先划分得到;所述OOB 信息包括所述512字节页对应的逻辑单元、状态、逻辑扇区以及所在块的替 换块。其中,所述512字节页由每一个2048字节页预先划分得到包括将2048字节页的Nand Flash中每个块的每一页划分为4个512字节页,且在每一个512字节页后面存储所述512字节页对应的OOB信息;或将2048字节页的Nand Flash中每个块的每一页划分为4个512字节页,且4个512字节页连续放置,所述4个512字节页之前或之后存储依次存储每一个512字节页对应的OQB信息。其中,所述每个512字节页的OOB信息包括 所述512字节页中512字节数据的校验码; 所述512字节页的状态为空闲Free或被占用Used; 所述512字节页对应的逻辑单元Unit; 所述512字节页所在块的替换块;所述512字节页对应的逻辑单元Unit中的逻辑扇区Sector。其中,所述获取与所述磁盘扇区对应的512字节页,并对所述获取的512字节页进行读操作具体包括接收磁盘文件系统发送的参数,所述参数包括》兹盘扇区号和緩存区; 根据磁盘扇区号,计算得到所述磁盘扇区对应的逻辑单元号和在逻辑单元中的偏移;冲艮据逻辑单元号查找所述逻辑单元号对应的块链,不存在对应的块链时, 向緩存区返回全0;存在对应的块链时,根据所述逻辑单元号对应的块链、以 及所述磁盘扇区在逻辑单元中的偏移,查找到保存所述扇区最新数据的512 字节页,将所述512字节页的数据拷贝到緩存区。其中,所述存在对应的块链时,根据该逻辑单元号对应的块链、以及该 磁盘扇区在逻辑单元中的偏移,查找到保存所述扇区最新数据的512字节页 包括对所述逻辑单元号对应的块链中的块依次进行查找,查找到某块上512 字节页的OOB Sector等于该磁盘扇区在逻辑单元中的偏移、且所述块的替换 块不存在或所述块上的替换块上不存在OOB Sector等于所述》兹盘扇区在逻辑 单元中的偏移的512字节页;则所述查找到的块上的512字节页即为保存所 述磁盘扇区最新数据的512字节页。其中,所述获取与所述;f兹盘扇区对应的512字节页,并对所述获取的512 字节页进行块内页的顺序写操作包括接收磁盘文件系统发送的参数,该参数包括磁盘扇区号和緩存区;根据所述^f兹盘扇区号,计算得到所述^ 兹盘扇区对应的逻辑单元号和在逻 辑单元中的偏移;根据所述逻辑单元号查找该逻辑单元号对应的块链,不存在对应的块链时获取一空闲块加入块链,将逻辑单元信息写入所述空闲块第0页的OOB, 在所述空闲块的第一个空闲页中写入上述緩冲区中的数据,在所述空闲页的 OOB的Sector中写入偏移的值,并将该空闲页的OOB的状态设置为已使用; 否则继续;存在对应的块链时,根据所述逻辑单元号对应的块链、以及所述磁盘扇 区在逻辑单元中的偏移,判断对应的块链首块上是否有512字节页保存了所 述石兹盘扇区的数据,没有则在所述首块的第一个空闲页中写入上述緩沖区中 的数据;否则继续;获取上次保存所迷磁盘扇区数据的512字节页所在的块,并判断上次保 存所述磁盘扇区数据的块的替换块是否存在,存在则在所述替换块的第一个 空闲页中写入上述緩冲区中的数据,在所述空闲页的OOB的Sector中写入偏 移的值,并将该空闲页的OOB的状态设置为已使用;否则继续;获取一空闲块加入块链,将逻辑单元信息写入所述空闲块第0页的OOB, 将所述本文档来自技高网...
【技术保护点】
一种将2048字节页的Nand Flash模拟成硬盘的方法,其特征在于,包括: 接收磁盘文件系统对磁盘扇区的读操作或写操作; 根据Nand Flash中512字节页的OOB信息,获取与所述磁盘扇区对应的512字节页,并对所述获取的512字节页进行读操作、或块内页的顺序写操作; 其中,所述512字节页由每一个2048字节页预先划分得到;所述OOB信息包括所述512字节页对应的逻辑单元、状态、逻辑扇区以及所在块的替换块。
【技术特征摘要】
【专利技术属性】
技术研发人员:王永钊,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:86[中国|杭州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。