一种闪存快速读写方法和装置制造方法及图纸

技术编号:5138471 阅读:232 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种闪存快速读写方法和装置,所述方法包括:对闪存内部的每个扇区划分条目,每个条目用于承载数据,根据所述条目的长度划分待写入数据进行存储;在写入数据时,查询当前扇区内的未使用的条目,对所述未使用的条目写入数据;当查询到仅存在一个扇区未使用时,如果检测到其他扇区存在保存有无效数据的条目,则回收所述条目所占用的空间;否则直接对所述未使用的扇区写入数据。本发明专利技术采用了将数据按照固定格式的条目的形式组织存储。修改数据时,并不是修改原有的条目,而是将原有条目置为无效并写入新的条目的办法,减少了擦写次数,加快了平均的写入速度,保证FLASH不同存储单元的均衡访问。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统
,尤其涉及一种适用于需要采用简单的方式实现 NOR FLASH的均衡读写的方法和装置。
技术介绍
在嵌入式系统中常常使用FLASH(闪存)作为存储器,一方面每次FLASH的写操作 都需要将对应的位置擦除;另一方面FLASH的擦除和写操作所需的时间要远远大于读取的 时间。因此,按照通常的习惯读写FLASH会在擦除和写操作上浪费大量的时间,并因不同空 间擦写次数不均衡而导致FLASH的使用寿命缩短。对FLASH的访问已经有比较成熟的方法,但是都使用了复杂的算法,实现起来需 要占用更多的程序存储空间和CPU的运行时间。对于使用性能不高CPU的情况,上述方法 并不适用,需要找到一种相对简单快速的方法满足实际的需求。
技术实现思路
本专利技术要解决的技术问题是提供一种FLASH快速读写方法和装置,在不需要大量 运算的情况下实现FLASH的简单、均衡和快速读写,满足CPU性能不高的嵌入式系统的应用。本专利技术的目的还提供一种闪存快速读写方法,包括对闪存内部的每个扇区划分条目,每个条目用于承载数据,根据所述条目的长度 划分待写入数据进行存储;在写入数据时,查询当前扇区内的未使用的条目,对所述未使用的条目写入数据; 当查询到仅存在一个扇区未使用时,如果检测到其他扇区存在保存有无效数据的条目,则 回收所述条目所占用的空间;否则直接对所述未使用的扇区写入数据。本专利技术的目的还提供一种快速读写的装置,包括配置模块、写入模块、回收模块 和查询检测模块;所述配置模块,用于对闪存内部的每个扇区划分若干用于承载数据的条目,并将 所述条目的长度通知所述写入模块;所述查询检测模块,用于查询当前扇区内的未使用的条目,并通知所述写入模块; 还用于当检测到仅存在一个未使用的扇区且其他扇区不存在保存有无效数据的条目时,将 所述未使用扇区通知所述写入模块,当检测到仅存在一个扇区未使用且其他扇区存在保存 有无效数据的条目时通知所述回收模块;所述写入模块,用于根据所述条目的长度划分待写入数据并将划分后的所述待写 入数据写入所通知的未使用的条目;所述回收模块,用于回收所述其他扇区存在保存有无效数据的条目所占用的空 间。采用了将数据按照固定格式的条目的形式组织存储。修改数据时,并不是修改原 有的条目,而是将原有条目置为无效并写入新的条目的办法,减少了擦写次数,加快了平均 的写入速度,保证的FLASH不同存储单元的均衡访问。附图说明图1为本专利技术实施例中条目的数据格式的示意图。图2为本专利技术实施例中FLASH读写操作的流程图。图3为本专利技术实施例中装置的结构图。具体实施例方式本专利技术的核心在于将数据按照固定格式的条目的形式组织保存在FLASH中,读 写擦除及空间整理都是基于条目进行的。FLASH的内部一般被划分为η (η彡2)个扇区,每个扇区的大小为2m字节,扇区是 FLASH的最小擦写单位。每个扇区内还逻辑划分有大小为2」字节的条目,每个扇区可以保 存2k个这样的条目,由此j+k = m。所述条目中保存的数据,包括使用标识、有效标识、条目名标识以及数据信息。据此,可以将待读写的数据进行合理划分,与所述使用标识、有效标识和条目名标 识构成长度为2」字节的数据块。本专利技术的FLASH读写方法将数据按照固定格式的条目的形式组织保存在FLASH 中,条目的格式如图1所示。其中,使用标识,说明该条目是否已经被使用,保存该使用标识的存储单元处于初 始状态,则说明该条目未使用,可以写入数据;如果保存该使用标识的存储单元由初始状态 被改写,即置于已使用状态。有效标识,说明该条目的数据是否有效,对于未使用的条目,保存该有效标识的存 储单元处于初始状态,则说明该条目的数据有效;如果该条目保存有效标识的存储单元由 初始状态被改写,即置于无效状态,说明该条目的数据无效;注意,有效标识不能从无效置为有效,初始状态即为有效,被置为无效后只能在回 收、擦除时,恢复为初始状态。条目名标识是用于区别条目的标识,各条目的条目名标识各不相同,条目名标识 再写入时随数据信息一起写入。条目剩下的空间用于保存数据信息,本方法对数据信息不做任何限定。写数据操作有数据需要写入时,按照事先规定好的条目长度,找到待写入条目的起始地址,首 先将使用标识由擦除后的初始状态置为已使用状态,有效标识保持初始状态不变,说明该 条目内的数据有效,然后写入条目名标识和数据信息;如果写入过程中出现错误,则将该条 目置为无效。写数据时,下一条目的写入紧挨着上一条目的尾端,直到该扇区没有未使用条目 为止。如果写入的条目为该扇区的第一个条目,则要保证该扇区内的数据已被擦除;如果该 扇区已经没有未使用条目,则需要找到下一个未使用的扇区继续写入。资源回收操作如果只剩下最后一个扇区未使用,则首先找到包含无效条目最多的扇区,将该扇 区内的有效条目置为无效并将这些有效条目内的数据拷贝到最后一个未使用扇区,这样就 得到其内全部条目均为无效的扇区,然后将该扇区擦除,待用,并将使用标识和有效标识置 为初始状态。如果之后有写操作发生,再继续对上述未使用的最后一个扇区进行如上的写 数据操作;请注意,当上述最后一个扇区已经作为最后一个待使用扇区处理过后,其不存在 顺序的下一个未使用的扇区,这时上述被擦除待用的扇区会成为最后一个未使用的扇区;如果只剩下最后一个扇区未使用,又未找到其他包含无效条目的扇区,则在最后 一个扇区进行写数据操作;如果最后一个扇区也没有无效数据可用,则认为FLASH的存储 空间已满。修改数据操作当要修改已写入FLASH的条目的数据时,首先根据待修改条目的条目名标识查询 原条目,如果存在原条目,则将原条目的有效标识置为无效,将修改的数据与上述条目名标 识一同写入新的条目。如果在修改数据操作发生时,根据待修改条目的条目名标识未查询到原条目名, 则直接执行写入操作的过程;写数据的过程如前所述。读取数据操作读取数据时,以条目名标识为关键字搜索所有条目,找到包含相符的条目名标识, 读出数据;读取数据时,如果未找到所要读取的条目名标识,则返回错误。结合图2,说明本专利技术的具体FLASH读写步骤如下步骤101 所有待使用的扇区在使用之前都需要进行擦除操作,以保证其所有数 据保存单元都为可预知、可改变的初始状态;其中,所有所有待使用条目的使用标识和有效标识均为初始状态;步骤102 每次操作首先判断是读取操作还是写入操作,如果是读取操作,则执行 步骤103,如果是写入操作,则执行步骤106 ;步骤103 执行读取操作,首先根据带读取的条目名标识查找要读取的条目;步骤104 如果找到该条目,则读出该条目中的数据信息;步骤105 如果未找到该条目,则读取操作失败,返回错误指示;步骤106 执行写入操作,判断当前活动扇区是否有未使用的条目,如果有,则执 行步骤113,将数据写入条目;如果没有,则执行步骤107 ;步骤107 没有未使用条目,说明当前活动扇区已满,则查找其他待使用扇区;步骤108 如果没有待使用扇区,则说明FLASH的存储空间已满,返回写入操作失 败;步骤109 如果有待使用扇区,则判读该扇区是否为最后一个待使用扇区,如果不 是,则执行步骤112 ;如果是,则执行步骤110 ;步骤110 如果是最后一个待使用扇区,则查本文档来自技高网...

【技术保护点】
一种闪存快速读写方法,其特征在于,包括:对闪存内部的每个扇区划分条目,每个条目用于承载数据,根据所述条目的长度划分待写入数据进行存储;在写入数据时,查询当前扇区内的未使用的条目,对所述未使用的条目写入数据;当查询到仅存在一个扇区未使用时,如果检测到其他扇区存在保存有无效数据的条目,则回收所述条目所占用的空间;否则直接对所述未使用的扇区写入数据。

【技术特征摘要】
1.一种闪存快速读写方法,其特征在于,包括对闪存内部的每个扇区划分条目,每个条目用于承载数据,根据所述条目的长度划分 待写入数据进行存储;在写入数据时,查询当前扇区内的未使用的条目,对所述未使用的条目写入数据;当查 询到仅存在一个扇区未使用时,如果检测到其他扇区存在保存有无效数据的条目,则回收 所述条目所占用的空间;否则直接对所述未使用的扇区写入数据。2.如权利要求1所述的方法,其特征在于,所述条目中保存有有效标识,当所述有效标识处于初始状态时,所述条目的数据有效; 当所述有效标识由初始状态置为无效状态时,所述条目的数据无效;所述条目中还保存有条目名标识,用于区分各条目。3.如权利要求2所述的方法,其特征在于,所述回收所述条目所占用的空间,进一步包括当仅存在一个扇区未使用时,首先找到包含无效状态条目最多的扇区,将该扇区内有 效状态条目的数据拷贝到所述未使用扇区并将所述有效状态条目置为无效状态,擦除所述 无效状态条目最多的扇区。4.如权利要求2所述的方法,其特征在于,还包括根据当前待写入数据的条目名标识搜索原条目,如果搜索到原条目,则将所述原条目 的有效标识置为无效,将当前待写入的数据与其条目名标识一起写入所述未使用的条目; 如果未搜索到原条目,则直接将当前待写入的数据与其条目名标识一起写入所述未使用的 条目。5.如权利要求1所述的方法,其特征在于,每个扇区的条目按排列顺序写入数据;通过查询所述扇区内的第一个条目是否已使用,来判定所述扇区是否为未使用扇区。6.一种快速读写的装置,其特征在于,包括配置模块、写入模块、回收模块和查询检 测模块;所述配置模块,用于对闪存内部的每个扇区划分若干用于承载数据的条目,并将所述 条目的长度通知所述写入模块;所述查询检测模块,用于查询当前扇区内的未...

【专利技术属性】
技术研发人员:付忠鑫徐运张恺
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94

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

1