一种机顶盒数据存储方法及装置制造方法及图纸

技术编号:9434532 阅读:69 留言:0更新日期:2013-12-12 00:35
本发明专利技术适用于数据存储技术领域,提供了一种机顶盒数据存储方法及装置,所述方法包括:在Flash中划分出数据存储容量相等的第一存储区和第二存储区;分别对所述第一存储区和第二存储区的数据存储容量进行划分,划分出多个与数据类型大小相同的数据块;在写入机顶盒数据时,确定第一存储区的当前数据块和第二存储区的当前数据块;对第一存储区的当前数据块和第二存储区的当前数据块交替进行写入。本发明专利技术通过将两个存储区进行分为数据块,将数据进行交替写入不同存储区的数据块,解决了现有技术存在的,Flash空间浪费、Flash频繁擦写容易损坏和在擦写Flash时断电丢失数据的问题。

【技术实现步骤摘要】
一种机顶盒数据存储方法及装置
本专利技术属于数据存储
,尤其涉及一种机顶盒数据存储方法及装置。
技术介绍
机顶盒在运行过程中,需要动态更新一些数据,并且存储到闪存(英文:Flash)中,例如动态更新、系统的加密密钥(英文:Key)、用户的设置数据等。传统的方法是将这些数据以一定的数据类型(一般为自定义)存储到Flash中的某个固定的地址,并且用特定的接口对这个地址进行读写访问。Flash是有一定的寿命的,当超出某个擦除和写入的次数后,Flash就会坏掉,所以持续的对某个固定的地址进行读写访问,会增大该区域损坏的概率,在某种程度上会减少机顶盒的使用寿命。Flash的擦除一般是以块(英文:Block)为单位的,这样,不同类型的数据就不能放到同一个Block上。否则,在更新一种数据时,需要首先备份另一种数据,这样会增加操作的难度和出错的概率。而对于不同数据类型占用不同的Block块,每种类型的数据总的大小又比Block小很多,这样就造成了Flash空间的严重浪费。另外,如果擦除Flash的过程中断电,那么所有的数据就会丢失。有些数据是机顶盒正常运行必须的,如果丢失就会影响机顶盒的正常工作甚至不能工作。
技术实现思路
本专利技术的目的在于提供一种机顶盒数据存储方法及装置,以解决现有技术存在的,Flash空间浪费、Flash因为频繁擦写容易损坏和在擦写时断电丢失数据导致机顶盒工作不正常的问题。本专利技术是这样实现的,一种机顶盒数据存储方法,所述方法包括以下步骤:在闪存Flash中划分出数据存储容量相等的第一存储区和第二存储区;根据需要存储的机顶盒数据的数据类型大小,分别对所述第一存储区和第二存储区的数据存储容量进行划分,划分出多个与数据类型大小相同的数据块;在写入需要存储的机顶盒数据时,确定第一存储区的当前数据块和第二存储区的当前数据块;对第一存储区当前数据块和第二存储区当前数据块交替进行写入。本专利技术的另一目的在于提供一种机顶盒数据存储装置,所述装置包括:第一分区单元,用于在闪存Flash中划分出数据存储容量相等的第一存储区和第二存储区;第二分区单元,用于根据需要存储的机顶盒数据的数据类型大小,分别对所述第一存储区和第二存储区的数据存储容量进行划分,划分出多个与数据类型大小相同的数据块;确定单元,用于在写入需要存储的机顶盒数据时,确定第一存储区的当前数据块和第二存储区的当前数据块;存储单元,用于对第一存储区当前数据块和第二存储区当前数据块交替进行写入。本专利技术通过将两个存储区进行分为数据块,将数据进行交替写入不同存储区的数据块,解决了现有技术存在的,Flash空间浪费、Flash因为频繁擦写容易损坏和在擦写Flash时断电丢失数据导致机顶盒工作不正常的问题,提高了Flash使用寿命和Flash利用率,并且即使擦写Flash时断电也不会丢失数据而影响机顶盒工作。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例提供的机顶盒数据存储方法的实现流程图;图2是本专利技术一实施例提供的机顶盒中块数据结构图;图3是本专利技术另一实施例提供的机顶盒数据读取方法的实现流程图;图4是本专利技术另一实施例提供的机顶盒数据存储装置的模块结构图;图5是本专利技术另一实施例提供的机顶盒数据读取装置的模块结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术一实施例提供了机顶盒数据存储方法,所述方法如图1所示,具体步骤包括:在步骤S101中,在Flash中划分出数据存储容量相等的第一存储区和第二存储区。在本实施例中,第一存储区和第二存储区都是Block,当然第一存储区和第二存储区根据不同的使用场合,也可以是其它的存储形式。在步骤S102中,根据需要存储的机顶盒数据的数据类型大小,分别对所述第一存储区和第二存储区的数据存储容量进行划分,划分出多个与数据类型大小相同的数据块。需要说明的是,数据类型大小是指数据类型需要的最小存储空间大小,不同的数据类型对数据块的数据存储容量需求不一样,根据数据类型大小对第一存储区和第二存储区的数据存储容量依次进行划分,可以划分出多个与数据类型大小相同的数据块。若第一存储区和第二存储区的数据存储容量是数据类型大小的整数倍则可完全划分,否则最后一块数据块与数据类型大小不同,则舍弃。例如,假定第一存储区和第二存储区的数据存储容量都是64K,若数据类型大小为8K,那么第一存储区和第二存储区分别被完整划分成8个8K的数据块;但是若数据类型对应数据块的数据存储容量为9K,也就是数据类型大小为9K,那么第一存储区和第二存储区分别被划分成7个9K的数据块和1个1K的数据块,该1K的数据块将不用于存储数据。在步骤S103中,在写入需要存储的机顶盒数据时,确定第一存储区的当前数据块和第二存储区的当前数据块。需要说明的是,当前数据块是指已经存储数据的数据块的后一数据块,以第一存储区为例,假定第一存储区被划分为7个9K和1个1K的数据块,如果前3个9K的数据块都已经存储了数据,但是第4个9K的数据块没有存储数据,那么第4个数据块就是第一存储区的当前数据块,如果7个9K的数据块都已经存储了数据,而1个1K的数据块不能存储该类型的数据,那么第一存储区就没有当前数据块,或者表述为第一存储区都被写满,没有写入空间。具体地,实现确定第一存储区的当前数据块方法为:从第一存储区的起始地址,根据从左到右的顺序读取数据块的数据;对所述数据块的数据进行每个字节遍历校验;校验得到第一个全是0xff的数据块为当前数据块。需要说明的是,以第一存储区为例进行说明,假定第一存储区从左到右有A、B、C、D、E共5个数据块,首先读取数据块A的数据,进行遍历校验,如果数据块A的数据存在不是0xff的数据,说明数据块A中写有有效数据,继续读取数据块B中的数据进行遍历校验,如果数据块B的数据存在不是0xff的数据,说明数据块B写有有效数据,继续读取数据块C中的数据进行遍历校验,如果数据块C的数据不存在不是0xff的数据,那么说明数据块C就是当前数据块。在步骤S104中,对第一存储区的当前数据块和第二存储区的当前数据块交替进行写入。具体地,实现步骤S104的方法具体为:根据控制数据(英文:ControlData)中的奇偶标志(英文:Index),将需要存储的机顶盒数据写入奇偶Index对应的存储区的当前数据块;在所述奇偶Index对应的存储区写入所述机顶盒数据时,为所述机顶盒数据添加包头(英文:Head),所述Head包括序列号(英文:Identity,简称:ID)、版本(英文:Version)和所述机顶盒数据的循环冗余校验(英文:CyclicRedundancyCheck,简称:CRC),所述Version与ControlData中的奇偶Index相等;将ControlData中的奇偶Index加1。需要说明的是本文档来自技高网...
一种机顶盒数据存储方法及装置

【技术保护点】
一种机顶盒数据存储方法,其特征在于,所述方法包括:在闪存Flash中划分出数据存储容量相等的第一存储区和第二存储区;根据需要存储的机顶盒数据的数据类型大小,分别对所述第一存储区和第二存储区的数据存储容量进行划分,划分出多个与数据类型大小相同的数据块;在写入需要存储的机顶盒数据时,确定第一存储区的当前数据块和第二存储区的当前数据块;对第一存储区的当前数据块和第二存储区的当前数据块交替进行写入。

【技术特征摘要】
1.一种机顶盒数据存储方法,其特征在于,所述方法包括:在闪存Flash中划分出数据存储容量相等的第一存储区和第二存储区;根据需要存储的机顶盒数据的数据类型大小,分别对所述第一存储区和第二存储区的数据存储容量进行划分,划分出多个与数据类型大小相同的数据块;在写入需要存储的机顶盒数据时,确定第一存储区的当前数据块和第二存储区的当前数据块;对第一存储区的当前数据块和第二存储区的当前数据块交替进行写入;所述对第一存储区的当前数据块和第二存储区的当前数据块交替进行写入之后还包括:当机顶盒重新启动时,分别从第一存储区和第二存储区读取所有数据块;将第一存储区和第二存储区中的数据块分别从右到左查找有效数据块;将有效数据块中的Version进行比较,Version值最大的为最有效数据块;将最有效数据块中的机顶盒数据读入内存;根据所述最有效数据块中的机顶盒数据的Head中的Version重置控制数据ControlData中的奇偶Index;擦除所述奇偶Index对应的存储区,将所述最有效数据块中的机顶盒数据复制到所述奇偶Index对应的存储区的起始数据块;将所述奇偶Index加1后,将所述奇偶Index对应的存储区擦除;所述对第一存储区的当前数据块和第二存储区的当前数据块交替进行写入具体为:根据所述控制数据ControlData中的奇偶标志Index,将需要存储的机顶盒数据写入所述奇偶Index对应的存储区的当前数据块;在所述奇偶Index对应的存储区写入所述机顶盒数据时,为所述机顶盒数据添加包头Head,所述Head包括序列号ID、版本Version和所述机顶盒数据的循环冗余校验CRC,所述Version与所述控制数据ControlData中的奇偶Index相等;将所述控制数据ControlData中的奇偶Index加1。2.如权利要求1所述的方法,其特征在于,所述在写入需要存储的机顶盒数据时,确定第一存储区的当前数据块具体为:从第一存储区的起始地址,根据从左到右的顺序读取数据块的数据;对所述数据块的数据进行每个字节遍历校验;校验得到第一个全...

【专利技术属性】
技术研发人员:张迎伟
申请(专利权)人:深圳市九洲电器有限公司
类型:发明
国别省市:

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

1