在Nand闪存中生成动态分区信息的方法和装置制造方法及图纸

技术编号:8489744 阅读:242 留言:0更新日期:2013-03-28 09:13
本发明专利技术实施例提供了一种Nand闪存中生成分区信息的方法和装置。方法包括:解析原始分区信息,原始分区信息包括命名的n个分区和每个所述分区的原始块数量,其中n为正整数;根据n个分区的原始块数量和n个分区的第1个分区的原始起始地址,通过顺序检测各分区的块的状态,为n个分区生成动态分区信息,动态分区信息包括n个分区的动态起始地址和动态块数量;将动态分区信息存储到指定区域。对应该方法还包括装置。上述技术方案解决了因存储介质存在坏块随机分布的特性,为归避该问题而为分区预留较多的块而引起的资源浪费问题,也包括未考虑该特性而进行分区导致的可靠性问题,节省了块资源,提高了存储介质的利用率。

【技术实现步骤摘要】

本专利技术实施例涉及计算机领域,更具体地,涉及在Nand闪存中生成动态分区信息的方法和装置
技术介绍
Nand闪存是一种能够进行读写、擦除的存储介质,其容量大、擦写速度快,且具有价格低廉等优势,被广泛应用在机顶盒、数码相机、手机、平板电脑等其他电子产品上,用来存放程序、参数、媒体数据等。而大多数产品采用的操作系统中,通过抽象设备访问层,提供了一种例如MTD (MemoryTechnology Device,内存技术设备)的系统,MTD为该操作系统提供了针对闪存访问的统一、抽象的接口。 对MTD设备的使用过程来说,进行分区是其中一个重要的步骤。所谓分区,就是在闪存上划分多个区域,划分后的区域简称为分区,每一个分区都有固定的物理的起始地址和分区大小,其中分区大小通常由每个分区所包括的块(block)的数量决定,每个块的大小为默认值。分区的起始地址和块数量在本文中也称为分区信息。这些分区信息是系统在启动和运行过程,闪存上读取数据和挂载文件系统等操作的重要参数。尽管Nand闪存容量大、价格便宜,但是本身Nand闪存存在一个固有缺陷出厂时就存在坏块,而且这些坏块随机分布。Nand闪存是以块为单位进行管理的。按照本领域的经验,坏块占整个Nand闪存的块数的比例小于一定值都是可以接收的,该定值例如为2%。因此,很可能在同一分区内会连续出现多个坏块。正是由于这个缺陷,给使用中带来一定的可靠性问题,尤其是对于系统中可能出现的大小较小的分区影响较大。比如用来保存一些参数数据的分区,其大小可能才共占2 4个block,当出现连续多个坏块时,该分区将无法正常写入参数,系统启动时则也无法读出参数。为此,现有技术中通过为Nand闪存的每个分区预留若干块以解决遇到坏块时引起的问题。分区信息的块数量中包括预留的块数量。当该Nand闪存的坏块数量较少时,则预留的块中较多没有用到,而现有技术中分区信息无法更改,造成了资源浪费。
技术实现思路
有鉴于此,本专利技术实施例提供一种在Nand闪存中生成动态分区信息的方法和装置,以解决为规避存储介质存在坏块随机分布的特性而为分区预留较多数量的块而引起的资源浪费的问题。第一方面,提供了一种在Nand闪存中生成动态分区信息的方法,包括解析原始分区信息,原始分区信息包括命名的η个分区和每个分区的原始块数量,其中η为正整数;根据η个分区的原始块数量和η个分区的第I个分区的原始起始地址,通过顺序检测各分区的块的状态,为η个分区生成动态分区信息,动态分区信息包括η个分区的动态起始地址和动态块数量;将动态分区信息存储到指定区域。在第一种可能的实现方式中,将η个分区的第I个分区的原始起始地址作为第I个分区的动态起始地址,从第I个分区开始直到第η个分区为止,依次检测第i个分区中的各个块的状态,其中i e U,n};当检测到当前块的状态为好,则将好块数量加I ;且当检测到当前块的状态为坏,则将坏块数量加I ;且当好块数量>第i个分区的原始块数量时,将好块数量与坏块数量的和作为第i个分区的动态块数量,且通过第i个分区的动态起始地址和第i个分区的动态块数量确定第i+Ι个分区的动态起始地址。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,第i+Ι个分区的动态起始地址=第i个分区的动态起始地址+第i个分区的动态块数量X块大小。结合第一方面或第一方面的上述可能的实现方式,在第三种可能的实现方式中,当检测到当前块的状态为好时,则擦除当前块并写入数据;或当检测到当前块的状态为坏时,则跳过当前块且不写入数据。 结合第一方面或第一方面的上述可能的实现方式,在第四种可能的实现方式中,在解析原始分区信息前,生成原始分区信息。结合第一方面或第一方面的上述可能的实现方式,在第五种可能的实现方式中,在解析原始分区信息前,还在Nand闪存的第一个分区的第一个块中写入引导程序。第二方面,提供了一种在Nand闪存中生成分区信息的装置,包括解析单元、第一生成单元和存储单元解析单元,用于解析原始分区信息并发送到第一生成单元,原始分区信息包括命名的η个分区和每个分区的原始块数量,其中η为正整数;第一生成单元,用于根据解析单元解析的η个分区的原始块数量和η个分区的第I个分区的原始起始地址,通过顺序检测各分区的块的状态,为η个分区生成动态分区信息并发送到存储单元,动态分区信息包括η个分区的动态起始地址和动态块数量;存储单元,用于将第一生成单元生成的动态分区信息存储到指定区域。在第一种可能的实现方式中,第一生成单元包括检测模块、计数模块和确定模块检测模块,用于将η个分区的第I个分区的原始起始地址作为第I个分区的动态起始地址,从第I个分区开始直到第η个分区为止,依次检测第i个分区中的各个块的状态,其中i e {I, η};当检测模块检测到当前块的状态为好,则计数模块将好块数量加I ;且当检测模块检测到当前块的状态为坏,则计数模块将坏块数量加I ;且当好块数量>第i个分区的原始块数量时,确定模块将好块数量与坏块数量的和作为第i个分区的动态块数量,且通过第i个分区的动态起始地址和第i个分区的动态块数量确定第i+Ι个分区的动态起始地址。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,确定模块具体用于下述公式以确定动态起始地址第i+ι个分区的动态起始地址=第i个分区的动态起始地址+第i个分区的动态块数量X块大小。结合第二方面或第二方面的上述可能的实现方式,在第三种可能的实现方式中,装置还包括擦除单元和烧写单元当检测模块检测到当前块的状态为好时,则擦除单元用于擦除当前块且烧写单元在当前块中写入数据;或当检测模块检测到当前块的状态为坏时,则擦除单元用于跳过当前块且烧写单元在当前块不写入数据。结合第二方面或第二方面的上述可能的实现方式,在第四种可能的实现方式中,装置还包括第二生成单元第二生成单元,用于在解析原始分区信息前,生成原始分区信肩、O结合第二方面或第二方面的上述可能的实现方式,在第五种可能的实现方式中,装置还包括烧写单元烧写单元,用于在解析原始分区信息前,在Nand闪存的第一个分区的第一个块中写入引导程序。通过上述技术方案解析原始分区信息,针对每个分区中的每个块进行好坏检测,重新统计每个分区中块的数量以及起始地址,生成动态分区信息,从而可以动态改变分区信息,节省了存储介质的块资源,提高了存储介质的利用率。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有技术中一种在Nand闪存中生成分区信息的方法的示意图。图2是现有技术另一种在Nand闪存中生成分区信息的方法的示意图。图3是现有技术的又一种在Nand闪存中生成分区信息的方法的示意图。图4是本专利技术实施例的在Nand闪存中生成动态分区信息的方法的示意流程图。图5是本专利技术实施例的在Nand闪存中生成动态分区信息的方法的示意流程图。图6是本专利技术实施例的生成分区信息的方法的示意原理图。图7是本专利技术实施例的在Nand闪存中生成动态分区信息的装置的示意框图。图8是本专利技术实施例的在Nan本文档来自技高网
...

【技术保护点】
一种在Nand闪存中生成分区信息的方法,其特征在于,包括:解析原始分区信息,所述原始分区信息包括命名的n个分区和每个所述分区的原始块数量,其中n为正整数;根据所述n个分区的原始块数量和所述n个分区的第1个分区的原始起始地址,通过顺序检测各分区的块的状态,为所述n个分区生成动态分区信息,所述动态分区信息包括所述n个分区的动态起始地址和动态块数量;将所述动态分区信息存储到指定区域。

【技术特征摘要】

【专利技术属性】
技术研发人员:秦绍天
申请(专利权)人:华为终端有限公司
类型:发明
国别省市:

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

1