一种机顶盒nor型flash快速存储的方法技术

技术编号:4096386 阅读:282 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种机顶盒nor型flash快速存储的方法,通过采用在flash存储空间中建立有效的分块机制,通过控制数据在不同分块的位置上轮流的存储和读取,来判断flash存储空间中的块的位置中的数据是否有效,进而减少块擦除的频率,提高数据存储读取的速度。

【技术实现步骤摘要】

本专利技术涉及对嵌入式技术,尤其是,特别 是属于机顶盒领域技术。
技术介绍
NOR FLASH是一种非易失性的存储器,它是Intel于1988年首先开发出的NOR flash技术,彻底改变了原先由EPROM和EEPROM—统天下的局面,因具有存储数据容量大, 保存时间长,不易丢失数据等特点。其擦写次数长达10万次以上,数据更新速度也要比 EPROM, EEPROM快很多,更是在断电的情况下也能保存数据,所以常用来保存一些重要的配 置信息。它对于要求程序和数据存储在同一芯片中的主流应用是一种较理想的解决方案。随着数字电视逐步推广,作为数字电视终端的数字电视机顶盒越来越多的被使 用。机顶盒一般需要对一些信息(当前节目,音量,语言等各种系统设置)进行存储,传统机 顶盒上存储单元一般为nor flash (非易失性的存储器)等。传统的数字电视机顶盒对系统 信息都是使用nor flash来保存,由于对nor flash写操作需要进行擦除操作,nor flash 使用块来进行擦除,一般一次需要擦除64K字节的块空间,而且速度很慢,当大量数据读写 时需要大量的等待时间,同时由于写入的数据时需要进行块擦除,需要把同块的其他数据 先保存到其他地方,然后把修改的数据和其他数据一起写入flash存储空间的块中,如此 容易造成数据丢失。而nor flash的块擦除的次数有限制,大量的进行块擦除操作,容易造 成flash空间的损坏。同时flash存储空间的块擦除需要大量的时间,操作存储数据耗时 长的问题。
技术实现思路
本专利技术要解决的技术问题,在于提供,通 过采用在flash存储空间中建立有效的分块机制,通过控制数据在不同分块的位置上轮流 的存储和读取,从而减少块擦除的频率,提高数据存储读取的速度。本专利技术是这样实现的,其特征在于,包 括以下步骤步骤10、设置nor flash部分的flash存储空间来存储数据;步骤20、当机顶盒程序初始化时,将flash存储空间中的所有块进行块擦除操作, 此时,flash存储空间中所有数据为OxfT ;步骤30、在机顶盒内存中建立一个用于储存数据的内存存储空间,把flash存储 空间中的数据读入内存存储空间中;步骤40、当应用程序进行写入存储数据时,先把修改的数据写入内存存储空间中, 然后按照以下步骤进行存储步骤401、定义flash存储空间以存储的数据加上具有有效标志头部的结构进行 存储数据,先判断内存存储空间的数据是否是在擦除块后第一次操作,是则转入步骤402,4否则转入步骤403 ;步骤402、把内存存储空间的数据写入flash存储空间的开始位置,此时的数据即 为所述的存储的数据,紧接着把具有有效标志的头部数据写入,同时从flash存储空间中 的块的最后4个字节写入一个标识符;步骤403、假设flash存储空间中的块大小为自然数n,则从块的最后位置即n-4 位置开始每4个字节读取一次块中的数据;步骤404、判断块中的数据是否是要存储数据对应的标识符,是则转入步骤406, 否则转入步骤405 ;步骤405、判断块中的数据是不是Oxffffffff,如果不是Oxffffffff,则数据块损 坏,并擦除此时读取到的块,再进行步骤402操作,如果是Oxffffffff,则此时读取到的块 是新块,直接进行步骤402操作;步骤406、假设y为读取块的第几次次数,则接着读取n_4y位置的4个字节,如果 4个字节为0x00000000,则继续往前读取4个字节,直到读到的数据位非0数据为止,假设 这时读取的位置为m,判断m的位置上的数据是否是Oxffffffff,是则数据块损坏,并擦除 此时读取到的块,进行步骤402操作,否则转入步骤407 ;步骤407、接着继续往前读4个字节,这时的位置是m-4,判断m-4的位置上数据是 否是OxfTfTfTfT,是则转入步骤408,否则数据块损坏,并擦除此时读取到的块,进行步骤 402操作;步骤408、此时读取到的块中的数据为有效数据,m位置上的数据就是本块从零地 址开始存储有效数据的偏移地址,假设偏移地址值为k,要存储数据大小为s,所述具有有 效标志的头部数据大小为t,判断k+s的位置上的数据,如果读取到的该位置的数据是否是 要存储的具有有效标志的头部数据,是则此时数据有效,转入步骤409,不是则擦除此时读 取到的块,进行步骤402操作;步骤409、接着判断k+s位置后用于存储数据为Oxff的flash存储空间的大小是 否大于s+t的数据大小,是则转入步骤410,否则剩余的数据为OxfT的flash存储空间不足 以用于存储数据,擦除此时读取到的块,进行步骤402操作;步骤410、接着在k+s+t的位置写入要存储的数据,在k+s+t+s的位置写入具有 有效标志的头部数据,在m-4的位置上写入数据k+s+t,同时把m位置上的数据k改写为 0x00000000, k+s位置上的数据改写成0x00000000,即完成了数据的存储。本专利技术具有如下优点本专利技术通过一种平衡策略,有效的减少nor flash的块擦 除的次数,加速数据存储的速度,同时减少了发生数据丢失的几率,更能延长flash空间的 寿命,加速数据存储的速度。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1和图2为本专利技术方法流程示意图。图3为本专利技术flash存储空间中存储的数据的结构示意图。图4A、图4B、图4C为flash存储空间中存储数据所在位置的结构示意图。图5A和图5B为flash存储空间中有效数据所在位置的结构示意图。具体实施方式结合图1至图2所示,本专利技术的,包括以 下步骤步骤10、设置nor flash部分的flash存储空间来存储数据,见图3,flash存储 空间是以存储的数据加上具有有效标志的头部,这样的结构进行存储所需要的数据。其中 存储数据所占用的存储空间不能超过flash存储空间大小的20%,不然会造成效率低下, 如果存储的空间越接近flash存储空间,那么它的效率越低,当两者大小相等时,这是效率 最低,与传统做法效率相同。步骤20、当机顶盒程序初始化时,将flash存储空间中的所有块进行块擦除操作, 此时,flash存储空间中所有数据为OxfT。步骤30、在机顶盒内存中建立一个与要存储数据大小相等的内存存储空间,把 flash存储空间中的数据读入内存存储空间中。步骤40、当应用程序进行写入存储数据时,先把修改的数据写入内存存储空间中, 然后按照以下步骤进行存储步骤401、定义flash存储空间以存储的数据加上具有有效标志头部的结构进行 存储数据如图3所示,先判断内存存储空间的数据是否是在擦除块后第一次操作,是则转 入步骤402,否则转入步骤403。步骤402、把内存存储空间的数据写入flash存储空间的开始位置如图4A所示,此 时的数据即为所述的存储的数据,紧接着把具有有效标志的头部数据写入如图4B所示,此 头部数据如=0x12345678,同时从flash存储空间中的块的最后4个字节写入一个标识符如 0x5050a0a0,其位置如图4C所示。步骤403、假设flash存储空间中的块大小为自然数n(n彡4),则从块的最后位置 如图5A所示,即n-4位置开始每4个字节读取一次块本文档来自技高网...

【技术保护点】
一种机顶盒nor型flash快速存储的方法,其特征在于,包括以下步骤:步骤10、设置nor flash部分的flash存储空间来存储数据;步骤20、当机顶盒程序初始化时,将flash存储空间中的所有块进行块擦除操作,此时,flash存储空间中所有数据为0xff;步骤30、在机顶盒内存中建立一个用于储存数据的内存存储空间,把flash存储空间中的数据读入内存存储空间中;步骤40、当应用程序进行写入存储数据时,先把修改的数据写入内存存储空间中,然后按照以下步骤进行存储:步骤401、定义flash存储空间以存储的数据加上具有有效标志头部的结构进行存储数据,先判断内存存储空间的数据是否是在擦除块后第一次操作,是则转入步骤402,否则转入步骤403;步骤402、把内存存储空间的数据写入flash存储空间的开始位置,此时的数据即为所述的存储的数据,紧接着把具有有效标志的头部数据写入,同时从flash存储空间中的块的最后4个字节写入一个标识符;步骤403、假设flash存储空间中的块大小为自然数n,则从块的最后位置即n-4位置开始每4个字节读取一次块中的数据;步骤404、判断块中的数据是否是要存储数据对应的标识符,是则转入步骤406,否则转入步骤405;步骤405、判断块中的数据是不是0xffffffff,如果不是0xffffffff,则数据块损坏,并擦除此时读取到的块,再进行步骤402操作,如果是0xffffffff,则此时读取到的块是新块,直接进行步骤402操作;步骤406、假设y为读取块的第几次次数,则接着读取n-4y位置的4个字节,如果4个字节为0x00000000,则继续往前读取4个字节,直到读到的数据位非0数据为止,假设这时读取的位置为m,判断m的位置上的数据是否是0xffffffff,是则数据块损坏,并擦除此时读取到的块,进行步骤402操作,否则转入步骤407;步骤407、接着继续往前读4个字节,这时的位置是m-4,判断m-4的位置上数据是否是0xffffffff,是则转入步骤408,否则数据块损坏,并擦除此时读取到的块,进行步骤402操作;步骤408、此时读取到的块中的数据为有效数据,m位置上的数据就是本块从零地址开始存储有效数据的偏移地址,假设偏移地址值为k,要存储数据大小为s,所述具有有效标志的头部数据大小为t,判断k+s的位置上的数据,如果读取到的该位置的数据是否是要存储的具有有效标志的头部数据,是则此...

【技术特征摘要】
一种机顶盒nor型flash快速存储的方法,其特征在于,包括以下步骤步骤10、设置nor flash部分的flash存储空间来存储数据;步骤20、当机顶盒程序初始化时,将flash存储空间中的所有块进行块擦除操作,此时,flash存储空间中所有数据为0xff;步骤30、在机顶盒内存中建立一个用于储存数据的内存存储空间,把flash存储空间中的数据读入内存存储空间中;步骤40、当应用程序进行写入存储数据时,先把修改的数据写入内存存储空间中,然后按照以下步骤进行存储步骤401、定义flash存储空间以存储的数据加上具有有效标志头部的结构进行存储数据,先判断内存存储空间的数据是否是在擦除块后第一次操作,是则转入步骤402,否则转入步骤403;步骤402、把内存存储空间的数据写入flash存储空间的开始位置,此时的数据即为所述的存储的数据,紧接着把具有有效标志的头部数据写入,同时从flash存储空间中的块的最后4个字节写入一个标识符;步骤403、假设flash存储空间中的块大小为自然数n,则从块的最后位置即n 4位置开始每4个字节读取一次块中的数据;步骤404、判断块中的数据是否是要存储数据对应的标识符,是则转入步骤406,否则转入步骤405;步骤405、判断块中的数据是不是0xffffffff,如果不是0xffffffff,则数据块损坏,并擦除此时读取到的块,再进行步骤402操作,如果是0xffffffff,则此时读取到的块是新块,直接进行步骤402操作;步骤406、假设y为读取块的第几次次数,则接着读取n 4y位置的4个字节,如果4个字节为0x00000000,则继续往前读取4个字节,直到读到的数据位非0数据为止,假设这时读取的位置为m,判断m的位置上的数据是否是0xffffffff,是则数据块损坏,并擦除此时读取到的块,进行步骤402操作,否则转入步骤407;步骤407、接着继续往前读4个字节,这时的位置是m 4,判断m 4的位置上数据是否是0xffffffff,是则转入步骤408,否则数据块损坏,并擦除此时读取到的块,进行步骤402操作;步骤408、此时读取到的块中的数据为有效数据,m位置上的数据就是本块从零地址开始存储有效数据的偏移地址,假设偏移地址值为k,要存储数据大小为s,所述具有有效标志的头部数据大小为t,判断k+s的位置上的数据,如果读取到的该位置的数据是否是要存储的具有有效标志的头部数据,是则此时数据有效,转入步骤409,不是则擦除此时读取到的块,进行步骤402操作;步骤409、接着判断k+s位置后用于存储数据为0xff的flash存储空间的大小是否大于s+t的数据大小,是则转入步骤410,否则剩余的数据为0xff的flash存储空间不足以用于存储数据,擦除此时读取到的块,进行步骤402操作;步骤410、接着在k+s+t的位置写入要存储的数据...

【专利技术属性】
技术研发人员:方立
申请(专利权)人:福建新大陆通信科技股份有限公司
类型:发明
国别省市:35[中国|福建]

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

1
相关领域技术
  • 暂无相关专利