写入数据的方法及装置制造方法及图纸

技术编号:4382368 阅读:176 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种写入数据方法及装置,涉及数据存储领域,解决了现有技术中存储器中某些存储块容易出现受损较严重的问题。在本发明专利技术中接收到写入新数据的指令;定位需要修改的数据所在的数据存储块;从所有的空存储块中随机选出一个空存储块;将所述需要修改的数据与新数据结合为更新数据,将所述更新数据写入所述随机选出的空存储块中;将定位到的数据存储块擦除为空存储块。本发明专利技术的实施例主要应用在向存储器执行各种操作时的场景。

【技术实现步骤摘要】

本专利技术涉及数据存储领域,尤其涉及一种写入数据的方法及装置
技术介绍
闪存属于存储器类型的一种,因为其具有可移动性、及保存在闪存上的数据即便是在断电情况下仍不会丢失的优点而得到迅速的发展。在闪存中,写Flash 操作只能把Flash中数据从T变到"0" (Bit);擦除操作可以把"0"变为"1", 但是擦除操作只能针对整个"存储块"为单位进行的。例如 一个存储块的大 小一般为256字节到1024字节。用户在需要修改存储器中某个存储块的数据时, 一般是在空存储块中写入 需要修改的数据。在现有技术中,通常采用按照一定的顺序在一些空存储块中 找出 一个空存储块的方法,然后再将修改后的数据写入到该空存储块中并擦除 修改前的数据存储块里的数据。但是每一个存储块可以被写入和擦除的次数都 是有限的,特别是当用户频繁的修改某些数据或者当空存储块个数不多时,很 容易出现对序号排在顺序较前的空存储块频繁地执行写入或者擦除操作的情 况,久而久之就会使这些空存储块的受损程度增加,使用寿命降低,甚至可能 因此无法再次使用该存储块,导致整个存储器的失效。
技术实现思路
本专利技术的实施例提供一种写入数据的方法及装置。以便提高该存储器中存 储块能够使用的次数。为达到上述目的,本专利技术的实施例采用如下技术方案 一种写入^t据的方法,包括 接收到写入新数据的指令; 定位需要修改的数据所在的数据存储块; 从所有的空存储块中随机选出 一个空存储块;将所述需要修改的数据与新数据结合生成更新数据,将所述更新数据写入所述随机选出的空存储块中; 将定位到的数据存储块擦除为空存储块。 一种写入数据的装置,包括 接收模块,用于接收写入新数据的指令; 定位模块,用于定位需要修改的数据所在的数据存储块; 选出模块,用于从所有的空存储块中随机选出一个空存储块; 写入模块,用于将所述需要修改的数据与新数椐结合生成更新数据,将所 述更新数据写入所述随机选出的空存储块中; 擦除模块,用于将定位到的数据存储块擦除为空存储块。 本专利技术提供的写入数据的方法及装置具有如下有点或有益效果通过采用 在空存储块中随机选择空存储块的技术方案,解决了现有技术中因为是按顺序 进行选择空存储块所造成的容易出现对序号排在顺序较前的空存储块频繁地执 行写入或者擦除操作的技术问题,进而取得了平衡存储器中各个存储块受损程 度,增加存储块使用次数的有益效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1为本专利技术实施例1写入数据的方法的流程图2为本专利技术实施例2写入数据的装置的框图3为本专利技术实施例3写入数据的方法的流程图4为本专利技术实施例4写入数据的方法的框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是 全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1本实施例公开一种写入数据的方法,如图1所示,该方法包括如下步骤 101,接收到上层(如计算机操作系统)发来的向存储块中写入新数据的指令。102,在存储器的所有数据存储块中查找出需要修改的数据所在的数据存储块。103,在存储器所有的空存储块中随机的选出一个空存储块,并将该空存储 块作为选出的空存储块。104, 将数据中需要修改部分进行修改,并将修改后的新数据与数据相结合 成为更新数据,并将该更新数据写入上述选出的空存储块中。105, 将101步骤中定位到的数据存储块里的数据擦除,使该数据存储块成 为一个空存储块。。本实施例提供的写入数据的方法,通过采用将要写入的数据写入在随机选 出的空存储块中的技术方案,取得了可实现均匀的对各个存储块执行写入操作 的有益效果。进一步的,又因为每个存储块被执行的写入操作的次数可是均匀 的数值,所以克服了某些个别的存储块因为被执行的写入操作的次数过多,导 致的受损程度较严重,甚至无法再次使用的技术问题,同时也提高了存储块可 以使用的次数。实施例2本实施例公开一种写入数据的装置,如图2所示,该装置包括接收模块 21,定位模块22,选出模块23,写入模块24,擦除模块25。接收模块21用于接收写入新数据的指令;定位模块22用于定位需要修改 的数据所在的数据存储块;选出模块23用于从所有的空存储块中随机选出一个空存储块;写入模块24用于将所述数据与新数据结合后为更新数据,并将所述 更新数据写入所述随机选出的空存储块中;擦除模块25用于将定位到的数据存 储块擦除为空存储块。本实施例提供的写入数据的装置便于写入数据的方法的实现,同时也可提 高例如闪存等,存储块容易受损的存储器的使用寿命。实施例3本实施例结合对存储块中的数据进行修改时的场景,具体描述写入数据的 方法,如图3所示,该方法包括如下步骤为了阐述方^f更,假i殳在本实施例中闪存存储区的物理地址为从0x0000000 到0x00007800,设每个存储块为0x100个字节,则共有0x78个存储块。相应地, 各存储块的物理块号为0x00到0x77。在每个存储块的首字节用来标记该存储块 逻辑块号,文件可以看做是多个存储块的集合并且文件中的存储块是根据各个 存储块的逻辑块号联结起来的。根据存储块逻辑块号的不同,在本实施例中存储块分为了两种类型空存储块,指逻辑块号是0xFF的存储块。空数据区指空存储块中首字节(即 逻辑块号)以外的字节所组成的区域,则如果空数据区的所有字节都是OxFF, 该空存储块随时可以写入数据;否则,该空存储块为不能直接写入数据的空存 储块,需对该空存储块进行擦除操作,即使该空存储块所有字节变为0xFF, 则空存储块就成为随时可以写入数据的空存储块。特别地,把不能直接写入数 据的空存储块称为"有记录的空存储块"。数据存储块,指逻辑块号在0x01到0x78范围内的存储块。数据区数据指 数据存储块中首字节(即逻辑块号)以外的字节所存储的数据。数据区数据被 认为是有效的文件数据。301,在存储器通电后,统计存储器中空存储块的总数,并生成一个不大于该总数的随机数。在本实施例中具体为在内存开辟一个变量N-O,设置指针P指向闪存存 储区物理首地址,即P二0x00000000,指针P从0x00000000开始,到0x00007800 结束,P的步长是0x100,即P-P+0x100,则P总是指向存储块逻辑块号。判断 P所指向的存储块逻辑块号是否为OxFF。如果是OxFF,使N=N+1,当 P=0x00007800时,N的值就是空存储块的总数。根据得到的空存储块的总数N 生成一个随机数M。随积Jt的M的范围是K-lVK-N。 M可以是通过相关的一 个函数f(M)产生的,也可以单纯的选出K-NK-N之间的整数。这两种方法 都可以用于生成本实施例中的随^L数。302,判断空存储块的总数是否与生成的随机数相同,如果空存储块的总数 与生成的随机数相同,则执行步骤303本文档来自技高网...

【技术保护点】
一种写入数据的方法,其特征在于,包括: 接收到写入新数据的指令; 定位需要修改的数据所在的数据存储块; 从所有的空存储块中随机选出一个空存储块; 将所述需要修改的数据与新数据结合为更新数据,将所述更新数据写入所述随机 选出的空存储块中; 将定位到的数据存储块擦除为空存储块。

【技术特征摘要】

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:北京飞天诚信科技有限公司
类型:发明
国别省市:11[中国|北京]

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

1