CN103838526A - 一种存储芯片数据写入方法及装置 - Google Patents
一种存储芯片数据写入方法及装置 Download PDFInfo
- Publication number
- CN103838526A CN103838526A CN201410129796.0A CN201410129796A CN103838526A CN 103838526 A CN103838526 A CN 103838526A CN 201410129796 A CN201410129796 A CN 201410129796A CN 103838526 A CN103838526 A CN 103838526A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- writing
- memory
- duration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000003860 storage Methods 0.000 claims description 188
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 3
- 230000002035 prolonged effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 238000002360 preparation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000003446 memory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种存储芯片数据写入方法及装置,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命。本发明实施例方法包括:S1:判断是否具备足够写入第一数据的空间,若是,则执行步骤S2,若否,则执行步骤S3;S2:将第一数据写入第一空闲存储区;S3:擦除全部存储区,并将第一数据写入相对应的存储区。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种存储芯片数据写入方法及装置。
背景技术
Flash存储芯片,是嵌入式系统芯片的概念在存储行业的具体应用,在嵌入式系统芯片的存储芯片最主要的就是Flash存储芯片与RAM芯片,然而,由于Flash存储芯片在断电后数据不会丢失的特殊功能,使得Flash存储芯片的应用更加广泛。
然而,如今的Flash存储芯片在改写过程中,擦除操作与写入操作是有次数限制的,如图1所示,当某系统或者在某使用环境下需要经常修改Flash存储芯片中的某一个参数,由于基于Flash存储芯片的特殊性,擦除时是进行页擦除动作,因此当需要对图1中C3数据的改写时,当C3写入次数有100K次时,P1页相对应也进行了100K次的擦除,然而其它参数均始终保持原擦除值,当一直对C3进行写入处理,便导致当擦除到一个最大次数时,该Flash存储芯片在该P1页的擦写寿命也就终止了,同时该P1页的存储/读取功能也丧失了,意味着除了C3,C1、C2及C4的数据也无法获取,因此,在嵌入式系统中,快速运行的系统可能会多次擦写Flash芯片的同一块区域,若此区域擦写次数超过了限制就会导致此区域的存储单元损坏。
针对上述的Flash存储芯片的擦除和写入操作的限制,因此,如何减少在Flash存储芯片中写入和擦除的次数,从而延长Flash存储芯片的寿命,已经成为本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例提供了一种存储芯片数据写入方法及装置,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命。
本发明实施例提供的一种存储芯片数据写入方法,包括:
S1:判断是否具备足够写入第一数据的空间,若是,则执行步骤S2,若否,则执行步骤S3;
S2:将所述第一数据写入第一空闲存储区;
S3:擦除全部存储区,并将所述第一数据写入相对应的存储区。
优选地,
所述步骤S1之前还包括:
将所述第一数据缓存在具备预置缓存时长的缓存区中;
当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
优选地,
当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作具体包括:
监测所述预置时长内是否有第二数据写入,若是,则重置所述缓存区的缓存时间为所述预置缓存时长,并将所述第二数据合并或更新为所述第一数据,若否,则当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
优选地,
所述步骤S3具体包括:
读取所述全部存储区的全部数据,所述全部数据包含有身份标识;
擦除所述全部存储区,并将所述第一数据写入相对应的所述存储区。
优选地,
将所述第一数据写入相对应的所述存储区具体包括:
根据所述第一数据的身份标识提取读取到的所述全部数据中原始的所述第一数据;
将所述第一数据在相对应的所述存储区中与原始的所述第一数据进行替换,并与所述全部数据进行合并;
将合并后的所述全部数据写入相对应的所述存储区。
本发明实施例提供的一种存储芯片数据写入装置,包括:
判断模块,用于判断是否具备足够写入第一数据的空间,若是,则触发第一写入模块,若否,则触发第二写入模块;
所述第一写入模块,用于将所述第一数据写入第一空闲存储区;
所述第二写入模块,用于擦除全部存储区,并将所述第一数据写入相对应的存储区。
优选地,
所述的存储芯片数据写入装置还包括:
缓存模块,用于将所述第一数据缓存在具备预置缓存时长的缓存区中;
计时模块,用于当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
优选地,
所述计时模块具体包括:
监测子模块,用于监测所述预置时长内是否有第二数据写入,若是,则重置所述缓存区的缓存时间为所述预置缓存时长,并将所述第二数据合并或更新为所述第一数据,若否,则当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
优选地,
所述第二写入模块具体包括:
读取子模块,用于读取所述全部存储区的全部数据,所述全部数据包含有身份标识;
擦写子模块,用于擦除所述全部存储区,并将所述第一数据写入相对应的所述存储区。
优选地,
所述擦写子模块具体包括:
擦除单元,用于擦除所述全部存储区;
提取单元,用于根据所述第一数据的身份标识提取读取到的所述全部数据中原始的所述第一数据;
合并单元,用于将所述第一数据在相对应的所述存储区中与原始的所述第一数据进行替换,并与所述全部数据进行合并;
写入单元,用于将合并后的所述全部数据写入相对应的所述存储区。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供的一种存储芯片数据写入方法及装置,其中,方法步骤包括:S1:判断是否具备足够写入第一数据的空间,若是,则执行步骤S2,若否,则执行步骤S3;S2:将第一数据写入第一空闲存储区;S3:擦除全部存储区,并将第一数据写入相对应的存储区。本实施例中,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术的存储芯片数据写入方法参考示意图;
图2为本发明实施例提供的一种存储芯片数据写入方法的一个实施例的流程示意图;
图3为本发明实施例提供的一种存储芯片数据写入方法的另一个实施例的流程示意图;
图4为本发明实施例提供的一种存储芯片数据写入方法的另一个实施例的流程示意图;
图5为本发明实施例提供的一种存储芯片数据写入装置的一个实施例的结构示意图;
图6为本发明实施例提供的一种存储芯片数据写入装置的另一个实施例的结构示意图;
图7为本发明实施例提供的一种存储芯片数据写入装置的另一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种存储芯片数据写入方法及装置,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图2,本发明实施例提供的一种存储芯片数据写入方法的一个实施例包括:
S1:判断是否具备足够写入第一数据的空间,若是,则执行步骤S2,若否,则执行步骤S3;
本实施例中,当使用嵌入式系统需要对Flash存储芯片中的数据进行改写时,首先需要判断是否具备足够写入第一数据的空间,若具备有足够写入第一数据的空间,则执行步骤S2,若不具备有足够写入第一数据的空间,则执行步骤S3。
需要说明的是,前述的第一数据,可以是新的需要改写的数据,该数据的存储结构由数据的身份标识,数据长度及数据串组成,例如ID、LEN及DATA1~DATAn组成,如下表所示:
ID | LEN | DATA1 | DATA2 | …… | DATAn |
必须说明的是,前述的判断不具备有足够写入第一数据的空间例如下表所示,下表为Flash存储芯片P1存储页的U1~U8存储区写满之后的状态,U1~U8存储区分别存储有C1~C4最原始数据以及后续不断改写的新的数据,当需要再写入新数据时。
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | C2 | C4 | C1 | C2 |
当前述的判断该P1存储页不具备足够的存储空间,如下表所示,U1~U8的实际数据,在空间的末尾处可以是存在空闲的存储区,但当需要对相对应的数据进行改写时,前述的步骤S1判断该P1存储页不具备足够的存储空间,例如下表所示末尾所剩余的空间不足以存放所需要的数据,则实施擦除操作,具体此处不做限定。
ID | LEN | DATA1 | DATA2 | …… | ID | LEN | DATA1 | DATA2 | DATA3 |
C1 | 2 | 0x00 | 0xff | …… | C2 | 3 | 0x00 | 0xff | 0x00 |
S2:将第一数据写入第一空闲存储区;
当判断Flash存储芯片中具备有足够写入第一数据的空间之后,将第一数据写入第一空闲存储区,可以理解的是,在前述的Flash存储芯片中,可以是有若干个存储页,每个存储页有若干个存储区,前述的第一数据可以是写入一个存储页,同时,该存储页具备有部分的空闲存储区,则将第一数据写入前述的存储页中的第一空闲存储区。
可以理解的是,例如下表所示为Flash存储芯片的其中一个存储页P1,该P1有8个存储区U1~U8,其中,存储区U1~U4已经写入4个数据分别是C1~C4,当需要写入的第一数据为C2改写后的数据,则将改写后的C2写入进前述的8个存储区U1~U8中的第一空闲存储区,如表所示U5~U8中的U5存储区;
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | 新C2 |
需要说明的是,当数据写入之后,需要读取数据时,可以是从存储页的存储区末端往前查找,根据数据的身份标识进行查找,当找到的第一个身份标识查找要求的数据,就是该数据的最新数据,之后具备该数据身份标识的数据直接忽略,例如上表所示需要对改写后写入的新C2数据进行读取,可以是从存储区U8至U1进行读取当读取到与C2具备相同的身份标识的新C2为所需读取的C2数据。
S3:擦除全部存储区,并将第一数据写入相对应的存储区。
当判断Flash存储芯片中不具备有足够写入第一数据的空间之后,则擦除全部存储区,并将第一数据写入相对应的存储区,可以理解的是,前述的擦除和写入相对应的存储区的过程将在后续实施例中进行详细描述,因此,便不在此处进行赘述。
需要说明的是,前述的全部存储区可以是Flash存储芯片中某一存储页的全部存储区,前述的第一数据可以是一个数据或者多个数据,每个数据都有相对应的存储区。
本实施例中,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低。
上面是对存储芯片数据写入方法的过程进行详细的描述,下面将对判断是否具备足够空间之前的过程进行详细的描述,请参阅图3,本发明实施例提供的一种存储芯片数据写入方法的另一个实施例包括:
301、将第一数据缓存在具备预置缓存时长的缓存区中;
本发明实施例中,当使用嵌入式系统需要对Flash存储芯片中的数据进行改写时,首先,将所需写入Flash存储芯片中的第一数据缓存在具备预置缓存时长的缓存区中,当在预置缓存时间内,写入第一数据后,前述的缓存区只执行缓存动作,并不执行写入操作,该缓存区为预先分配的内存空间,需要说明的是,缓存区的分配为公知技术,因此便不在具体赘述。
302、监测预置时长内是否有第二数据写入,若是,则执行步骤303,若否,则执行步骤304;
当第一数据缓存在具备预置缓存时长的缓存区中时,需要对缓存区进行监测,监测在预置时长内是否有第二数据写入该缓存区中,若在预置时长内是有第二数据写入该缓存区中,则执行步骤303,若在预置时长内没有第二数据写入该缓存区中,则执行步骤304。
需要说明的是,前述的第二数据可以是再次改写后的第一数据,还可以是在Flash存储芯片中的任意需改写数据的新数据。
303、重置缓存区的缓存时间为预置缓存时长,并将第二数据合并或更新为第一数据;
当在预置时长内是有第二数据写入该缓存区中之后,重置该缓存区的缓存时间为预置缓存时长,并将写入的第二数据合并或更新为第一数据,需要说明的是,重置缓存区的缓存时间为预置缓存时长,并将写入的第二数据合并或更新为第一数据之后,需要回到步骤302继续监测预置时长内是否有新的第二数据写入,例如监测到该缓存区中,有新的准备写入进Flash存储芯片中的数据时,则重置缓存区的缓存时间为预先设定好的预置缓存时长,将新的准备写入进Flash存储芯片中的数据与旧的已经缓存在缓存区中的数据进行合并或者是更新,使得合并或者更新后的新的准备写入进Flash存储芯片中的数据进行预置时长的缓存,必须说明的是,前述的第二数据可以为一个或多个,还可以是多个数据在预置缓存时长内以离散时间写入,可以理解的是,当重复步骤302每写入一个第二数据可以是继续执行该步骤重置前述的缓存区的缓存时间为预置缓存时长。
可以理解的是,前述的将写入的第二数据合并或更新为第一数据,为在该缓存区中第二数据若是再次改写后的第一数据,则根据数据的身份标识直接进行替换更新,使得写入的第二数据为新的第一数据,若写入的第二数据与第一数据的身份标识不一致,则对该两个数据进行合并统称为第一数据,该合并后的第一数据可以是数据组。
304、当第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作;
当在预置时长内没有第二数据写入该缓存区中,监测到第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作,需要说明的是,该写入操作可以是将第一数据写入至Flash存储芯片中的操作。
305、判断是否具备足够写入第一数据的空间,若是,则执行步骤306,若否,则执行步骤307;
本实施例中,当前述的步骤303或304中提及的第一数据在缓存区中的缓存时间超过预置的缓存时长之后,可以理解的是,该第一数据可以是步骤303将写入的第二数据合并或更新的第一数据,还可以是步骤304的第一数据,当第一数据进行写入操作时,首先需要判断是否具备足够写入第一数据的空间,若具备有足够写入第一数据的空间,则执行步骤306,若不具备有足够写入第一数据的空间,则执行步骤307。
需要说明的是,前述的第一数据,可以是新的需要改写的数据,该数据的存储结构由数据的身份标识,数据长度及数据串组成,例如ID、LEN及DATA1~DATAn组成,如下表所示:
ID | LEN | DATA1 | DATA2 | …… | DATAn |
必须说明的是,前述的判断不具备有足够写入第一数据的空间例如下表所示,下表为Flash存储芯片P1存储页的U1~U8存储区写满之后的状态,U1~U8存储区分别存储有C1~C4最原始数据以及后续不断改写的新的数据,当需要再写入新数据时。
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | C2 | C4 | C1 | C2 |
当前述的判断该P1存储页不具备足够的存储空间,如下表所示,U1~U8的实际数据,在空间的末尾处可以是存在空闲的存储区,但当需要对相对应的数据进行改写时,前述的步骤S1判断该P1存储页不具备足够的存储空间,例如下表所示末尾所剩余的空间不足以存放所需要的数据,则实施擦除操作,具体此处不做限定。
ID | LEN | DATA1 | DATA2 | …… | ID | LEN | DATA1 | DATA2 | DATA3 |
C1 | 2 | 0x00 | 0xff | …… | C2 | 3 | 0x00 | 0xff | 0x00 |
306、将第一数据写入第一空闲存储区;
当判断Flash存储芯片中具备有足够写入第一数据的空间之后,将第一数据写入第一空闲存储区,可以理解的是,在前述的Flash存储芯片中,可以是有若干个存储页,每个存储页有若干个存储区,前述的第一数据可以是写入一个存储页,同时,该存储页具备有部分的空闲存储区,则将第一数据写入前述的存储页中的第一空闲存储区。
可以理解的是,例如下表所示为Flash存储芯片的其中一个存储页P1,该P1有8个存储区U1~U8,其中,存储区U1~U4已经写入4个数据分别是C1~C4,当需要写入的第一数据为C2改写后的数据,则将改写后的C2写入进前述的8个存储区U1~U8中的第一空闲存储区,如表所示U5~U8中的U5存储区;
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | 新C2 |
需要说明的是,当数据写入之后,需要读取数据时,可以是从存储页的存储区末端往前查找,根据数据的身份标识进行查找,当找到的第一个身份标识查找要求的数据,就是该数据的最新数据,之后具备该数据身份标识的数据直接忽略,例如上表所示需要对改写后写入的新C2数据进行读取,可以是从存储区U8至U1进行读取当读取到与C2具备相同的身份标识的新C2为所需读取的C2数据。
307、擦除全部存储区,并将第一数据写入相对应的存储区。
当判断Flash存储芯片中不具备有足够写入第一数据的空间之后,则擦除全部存储区,并将第一数据写入相对应的存储区,可以理解的是,前述的擦除和写入相对应的存储区的过程将在后续实施例中进行详细描述,因此,便不在此处进行赘述。
需要说明的是,前述的全部存储区可以是Flash存储芯片中某一存储页的全部存储区,前述的第一数据可以是一个数据或者多个数据,每个数据都有相对应的存储区。
本实施例中,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低,同时,先将第一数据缓存在具备预置缓存时长的缓存区中,并当监测到有第二数据写入时,重置缓存时间的设计,解决了当一个或多个数据多次改写之后写入进Flash存储芯片所需要擦写Flash存储芯片多次的技术问题,更进一步延长了Flash存储芯片的工作寿命。
上面是对判断是否具备足够空间之前的过程进行详细的描述,下面将对擦除全部存储区并将第一数据写入相对应的存储区的过程进行详细的描述,请参阅图4,本发明实施例提供的一种存储芯片数据写入方法的另一个实施例包括:
401、将第一数据缓存在具备预置缓存时长的缓存区中;
本发明实施例中,当使用嵌入式系统需要对Flash存储芯片中的数据进行改写时,首先,将所需写入Flash存储芯片中的第一数据缓存在具备预置缓存时长的缓存区中,当在预置缓存时间内,写入第一数据后,前述的缓存区只执行缓存动作,并不执行写入操作,该缓存区为预先分配的内存空间,需要说明的是,缓存区的分配为公知技术,因此便不在具体赘述。
402、监测预置时长内是否有第二数据写入,若是,则执行步骤403,若否,则执行步骤404;
当第一数据缓存在具备预置缓存时长的缓存区中时,需要对缓存区进行监测,监测在预置时长内是否有第二数据写入该缓存区中,若在预置时长内是有第二数据写入该缓存区中,则执行步骤403,若在预置时长内没有第二数据写入该缓存区中,则执行步骤404。
需要说明的是,前述的第二数据可以是再次改写后的第一数据,还可以是在Flash存储芯片中的任意需改写数据的新数据。
403、重置缓存区的缓存时间为预置缓存时长,并将第二数据合并或更新为第一数据;
当在预置时长内是有第二数据写入该缓存区中之后,重置该缓存区的缓存时间为预置缓存时长,并将写入的第二数据合并或更新为第一数据,需要说明的是,重置缓存区的缓存时间为预置缓存时长,并将写入的第二数据合并或更新为第一数据之后,需要回到步骤402继续监测预置时长内是否有新的第二数据写入,例如监测到该缓存区中,有新的准备写入进Flash存储芯片中的数据时,则重置缓存区的缓存时间为预先设定好的预置缓存时长,将新的准备写入进Flash存储芯片中的数据与旧的已经缓存在缓存区中的数据进行合并或者是更新,使得合并或者更新后的新的准备写入进Flash存储芯片中的数据进行预置时长的缓存,必须说明的是,前述的第二数据可以为一个或多个,还可以是多个数据在预置缓存时长内以离散时间写入,可以理解的是,当重复步骤402每写入一个第二数据可以是继续执行该步骤重置前述的缓存区的缓存时间为预置缓存时长。
可以理解的是,前述的将写入的第二数据合并或更新为第一数据,为在该缓存区中第二数据若是再次改写后的第一数据,则根据数据的身份标识直接进行替换更新,使得写入的第二数据为新的第一数据,若写入的第二数据与第一数据的身份标识不一致,则对该两个数据进行合并统称为第一数据,该合并后的第一数据可以是数据组。
404、当第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作;
当在预置时长内没有第二数据写入该缓存区中,监测到第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作,需要说明的是,该写入操作可以是将第一数据写入至Flash存储芯片中的操作。
405、判断是否具备足够写入第一数据的空间,若是,则执行步骤406,若否,则执行步骤407;
本实施例中,当前述的步骤403或404中提及的第一数据在缓存区中的缓存时间超过预置的缓存时长之后,第一数据进行写入操作时,首先需要判断是否具备足够写入第一数据的空间,若具备有足够写入第一数据的空间,则执行步骤406,若不具备有足够写入第一数据的空间,则执行步骤407。
需要说明的是,前述的第一数据,可以是新的需要改写的数据,该数据的存储结构由数据的身份标识,数据长度及数据串组成,例如ID、LEN及DATA1~DATAn组成,如下表所示:
ID | LEN | DATA1 | DATA2 | …… | DATAn |
必须说明的是,前述的判断不具备有足够写入第一数据的空间例如下表所示,下表为Flash存储芯片P1存储页的U1~U8存储区写满之后的状态,U1~U8存储区分别存储有C1~C4最原始数据以及后续不断改写的新的数据,当需要再写入新数据时。
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | C2 | C4 | C1 | C2 |
当前述的判断该P1存储页不具备足够的存储空间,如下表所示,U1~U8的实际数据,在空间的末尾处可以是存在空闲的存储区,但当需要对相对应的数据进行改写时,前述的步骤S1判断该P1存储页不具备足够的存储空间,例如下表所示末尾所剩余的空间不足以存放所需要的数据,则实施擦除操作,具体此处不做限定。
ID | LEN | DATA1 | DATA2 | …… | ID | LEN | DATA1 | DATA2 | DATA3 |
C1 | 2 | 0x00 | 0xff | …… | C2 | 3 | 0x00 | 0xff | 0x00 |
406、将第一数据写入第一空闲存储区;
当判断Flash存储芯片中具备有足够写入第一数据的空间之后,将第一数据写入第一空闲存储区,可以理解的是,在前述的Flash存储芯片中,可以是有若干个存储页,每个存储页有若干个存储区,前述的第一数据可以是写入一个存储页,同时,该存储页具备有部分的空闲存储区,则将第一数据写入前述的存储页中的第一空闲存储区。
可以理解的是,例如下表所示为Flash存储芯片的其中一个存储页P1,该P1有8个存储区U1~U8,其中,存储区U1~U4已经写入4个数据分别是C1~C4,当需要写入的第一数据为C2改写后的数据,则将改写后的C2写入进前述的8个存储区U1~U8中的第一空闲存储区,如表所示U5~U8中的U5存储区;
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | 新C2 |
需要说明的是,当数据写入之后,需要读取数据时,可以是从存储页的存储区末端往前查找,根据数据的身份标识进行查找,当找到的第一个身份标识查找要求的数据,就是该数据的最新数据,之后具备该数据身份标识的数据直接忽略,例如上表所示需要对改写后写入的新C2数据进行读取,可以是从存储区U8至U1进行读取当读取到与C2具备相同的身份标识的新C2为所需读取的C2数据。
407、读取全部存储区的全部数据;
当判断Flash存储芯片中不具备有足够写入第一数据的空间之后,首先需要读取全部存储区的全部数据,该全部存储区可以是Flash存储芯片中某一存储页,该存储页中的存储区有与第一数据身份标识相对应的旧数据,需要说明的是,读取的全部数据为该全部存储区的最新数据,前述的全部数据包含有身份标识。
如下表所示,对Flash存储芯片的P1存储页读取时从U8区至U1区进行读取,所读取的最新数据分别是U8区的C2,U7区的C1,U6区的C4,U3区的C3。
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 | C2 | C4 | C1 | C2 |
408、擦除全部存储区;
当读取了全部存储区的全部数据之后,则对全部存储区进行擦除处理,对如步骤407中的表所示U1~U8存储区的全部数据进行擦除,擦除后如下表所示。
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
需要说明的是,前述的全部存储区可以是Flash存储芯片中某一存储页的全部存储区。
409、根据第一数据的身份标识提取读取到的全部数据中原始的第一数据;
当读取了全部存储区的全部数据之后,还需要根据第一数据的身份标识提取读取到的全部数据中原始的第一数据。
410、将第一数据在相对应的存储区中与原始的第一数据/进行替换,并与全部数据进行合并;
当根据第一数据的身份标识提取读取到的全部数据中原始的第一数据之后,将第一数据在相对应的存储区中与原始的第一数据进行替换,并与全部数据进行合并。
411、将合并后的全部数据写入相对应的存储区。
当写入的第一数据与全部数据进行合并之后,将合并后的全部数据写入相对应的存储区,如下表所示,第一数据为新C1或者是新C1、C2,则写入的数据为合并后的C1、C2、C3及C4。
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
C1 | C2 | C3 | C4 |
必须说明的是,前述的第一数据可以是一个数据或者多个数据,每个数据都有相对应的存储区。
本实施例中,通过先判断是否具备足够的写入新数据的空间,若有,则直接写入新的数据,若否,再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低,同时,先将第一数据缓存在具备预置缓存时长的缓存区中,并当监测到有第二数据写入时,重置缓存时间的设计,解决了当一个或多个数据多次改写之后写入进Flash存储芯片所需要擦写Flash存储芯片多次的技术问题,更进一步延长了Flash存储芯片的工作寿命,与此同时,本实施例中进行擦除操作,将新写入的数据与原有数据进行替换再与全部数据合并再写入的设计,不仅能够存储最新数据,而且再次获取了新的空闲存储区,更进一步地增加了Flash存储芯片的改写次数。
请参阅图5,本发明实施例中提供的一种存储芯片数据写入装置一个实施例包括:
判断模块501,用于判断是否具备足够写入第一数据的空间,若是,则触发第一写入模块502,若否,则触发第二写入模块503;
第一写入模块502,用于将第一数据写入第一空闲存储区;
第二写入模块503,用于擦除全部存储区,并将第一数据写入相对应的存储区。
本实施例中,通过判断模块501先判断是否具备足够的写入新数据的空间,若有,则第一写入模块502直接写入新的数据,若否,第二写入模块503再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低。
上面是对存储芯片数据写入装置的各个模块进行详细的说明,下面将对附加模块进行详细的说明,请参阅图6,本发明实施例中提供的一种存储芯片数据写入装置另一个实施例包括:
缓存模块601,用于将第一数据缓存在具备预置缓存时长的缓存区中;
计时模块602,用于当第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作;
其中,计时模块602还可以进一步包括:
监测子模块6021,用于监测预置时长内是否有第二数据写入,若是,则重置缓存区的缓存时间为预置缓存时长,并将第二数据合并或更新为第一数据,若否,则当第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作。
判断模块603,用于判断是否具备足够写入第一数据的空间,若是,则触发第一写入模块604,若否,则触发第二写入模块605;
第一写入模块604,用于将第一数据写入第一空闲存储区;
第二写入模块605,用于擦除全部存储区,并将第一数据写入相对应的存储区。
本实施例中,通过判断模块603先判断是否具备足够的写入新数据的空间,若有,则第一写入模块604直接写入新的数据,若否,第二写入模块605再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低,同时,缓存模块601先将第一数据缓存在具备预置缓存时长的缓存区中,并当计时模块602的监测子模块6021监测到有第二数据写入时,重置缓存时间的设计,解决了当一个或多个数据多次改写之后写入进Flash存储芯片所需要擦写Flash存储芯片多次的技术问题,更进一步延长了Flash存储芯片的工作寿命。
上面是对附加模块进行详细的说明,下面将对第二写入模块的子模块及其单元进行详细的描述,请参阅图7,本发明实施例中提供的一种存储芯片数据写入装置另一个实施例包括:
缓存模块701,用于将第一数据缓存在具备预置缓存时长的缓存区中;
计时模块702,用于当第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作;
其中,计时模块702还可以进一步包括:
监测子模块7021,用于监测预置时长内是否有第二数据写入,若是,则重置缓存区的缓存时间为预置缓存时长,并将第二数据合并或更新为第一数据,若否,则当第一数据缓存时间超过预置缓存时长时,对第一数据进行写入操作。
判断模块703,用于判断是否具备足够写入第一数据的空间,若是,则触发第一写入模块704,若否,则触发第二写入模块705;
第一写入模块704,用于将第一数据写入第一空闲存储区;
第二写入模块705,用于擦除全部存储区,并将第一数据写入相对应的存储区;
其中,第二写入模块705还可以进一步包括:
读取子模块7051,用于读取全部存储区的全部数据,全部数据包含有身份标识;
擦写子模块7052,用于擦除全部存储区,并将第一数据写入相对应的存储区。
擦写子模块7052还可以进一步包括:
擦除单元70521,用于擦除全部存储区;
提取单元70522,用于根据第一数据的身份标识提取读取到的全部数据中原始的第一数据;
合并单元70523,用于将第一数据在相对应的存储区中与原始的第一数据进行替换,并与全部数据进行合并;
写入单元70524,用于将合并后的全部数据写入相对应的存储区。
本实施例中,通过判断模块703先判断是否具备足够的写入新数据的空间,若有,则第一写入模块704直接写入新的数据,若否,第二写入模块705再进行擦除操作,从而,进一步减少了在Flash存储芯片中写入和擦除的次数,同时,大大地延长了Flash存储芯片的工作寿命,使得数据因Flash存储芯片的损坏而导致数据丢失的概率也有效地得到降低,同时,缓存模块701先将第一数据缓存在具备预置缓存时长的缓存区中,并当计时模块702的监测子模块7021监测到有第二数据写入时,重置缓存时间的设计,解决了当一个或多个数据多次改写之后写入进Flash存储芯片所需要擦写Flash存储芯片多次的技术问题,更进一步延长了Flash存储芯片的工作寿命,与此同时,本实施例中擦写子模块7052进行擦除操作,合并单元70523和写入单元70524将新写入的数据与原有数据进行替换再与全部数据合并再写入的设计,不仅能够存储最新数据,而且再次获取了新的空闲存储区,更进一步地增加了Flash存储芯片的改写次数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种存储芯片数据写入方法,其特征在于,包括:
S1:判断是否具备足够写入第一数据的空间,若是,则执行步骤S2,若否,则执行步骤S3;
S2:将所述第一数据写入第一空闲存储区;
S3:擦除全部存储区,并将所述第一数据写入相对应的存储区。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:
将所述第一数据缓存在具备预置缓存时长的缓存区中;
当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
3.根据权利要求2所述的方法,其特征在于,当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作具体包括:
监测所述预置时长内是否有第二数据写入,若是,则重置所述缓存区的缓存时间为所述预置缓存时长,并将所述第二数据合并或更新为所述第一数据,若否,则当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3具体包括:
读取所述全部存储区的全部数据,所述全部数据包含有身份标识;
擦除所述全部存储区,并将所述第一数据写入相对应的所述存储区。
5.根据权利要求4所述的方法,其特征在于,将所述第一数据写入相对应的所述存储区具体包括:
根据所述第一数据的身份标识提取读取到的所述全部数据中原始的所述第一数据;
将所述第一数据在相对应的所述存储区中与原始的所述第一数据进行替换,并与所述全部数据进行合并;
将合并后的所述全部数据写入相对应的所述存储区。
6.一种存储芯片数据写入装置,其特征在于,包括:
判断模块,用于判断是否具备足够写入第一数据的空间,若是,则触发第一写入模块,若否,则触发第二写入模块;
所述第一写入模块,用于将所述第一数据写入第一空闲存储区;
所述第二写入模块,用于擦除全部存储区,并将所述第一数据写入相对应的存储区。
7.根据权利要求6所述的存储芯片数据写入装置,其特征在于,还包括:
缓存模块,用于将所述第一数据缓存在具备预置缓存时长的缓存区中;
计时模块,用于当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
8.根据权利要求7所述的存储芯片数据写入装置,其特征在于,所述计时模块具体包括:
监测子模块,用于监测所述预置时长内是否有第二数据写入,若是,则重置所述缓存区的缓存时间为所述预置缓存时长,并将所述第二数据合并或更新为所述第一数据,若否,则当所述第一数据缓存时间超过所述预置缓存时长时,对所述第一数据进行写入操作。
9.根据权利要求6所述的存储芯片数据写入装置,其特征在于,所述第二写入模块具体包括:
读取子模块,用于读取所述全部存储区的全部数据,所述全部数据包含有身份标识;
擦写子模块,用于擦除所述全部存储区,并将所述第一数据写入相对应的所述存储区。
10.根据权利要求9所述的存储芯片数据写入装置,其特征在于,所述擦写子模块具体包括:
擦除单元,用于擦除所述全部存储区;
提取单元,用于根据所述第一数据的身份标识提取读取到的所述全部数据中原始的所述第一数据;
合并单元,用于将所述第一数据在相对应的所述存储区中与原始的所述第一数据进行替换,并与所述全部数据进行合并;
写入单元,用于将合并后的所述全部数据写入相对应的所述存储区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410129796.0A CN103838526B (zh) | 2014-03-31 | 2014-03-31 | 一种存储芯片数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410129796.0A CN103838526B (zh) | 2014-03-31 | 2014-03-31 | 一种存储芯片数据写入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838526A true CN103838526A (zh) | 2014-06-04 |
CN103838526B CN103838526B (zh) | 2017-12-01 |
Family
ID=50802080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410129796.0A Expired - Fee Related CN103838526B (zh) | 2014-03-31 | 2014-03-31 | 一种存储芯片数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838526B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108352189A (zh) * | 2015-10-27 | 2018-07-31 | 费森尤斯医疗护理德国有限责任公司 | 可重复使用的可抛弃用品及因此的透析设备 |
CN109558080A (zh) * | 2018-11-20 | 2019-04-02 | 宁波三星医疗电气股份有限公司 | 一种电力采集设备的NandFlash数据管理方法 |
CN110389723A (zh) * | 2019-07-22 | 2019-10-29 | 广东美的制冷设备有限公司 | 数据的存储方法、装置、空调器和存储介质 |
CN111208950A (zh) * | 2020-01-15 | 2020-05-29 | 山西银河电子设备厂 | 一种基于单片机的提升norflash使用周期的方法 |
CN112214426A (zh) * | 2020-09-25 | 2021-01-12 | 湖北三江航天红峰控制有限公司 | 基于vnx的高速数据记录模块、数据记录和分析方法 |
CN114265559A (zh) * | 2021-12-24 | 2022-04-01 | 中电信数智科技有限公司 | 一种存储管理方法、装置、电子设备及存储介质 |
CN115904256A (zh) * | 2023-02-20 | 2023-04-04 | 中电装备山东电子有限公司 | 一种数据存储方法及存储器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189081B1 (en) * | 1996-05-24 | 2001-02-13 | Nec Corporation | Non-volatile semiconductor storage with memory requirement and availability comparison means and method |
CN101216806A (zh) * | 2008-01-17 | 2008-07-09 | 北京中星微电子有限公司 | 一种数据更新的方法和装置 |
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
CN103049394A (zh) * | 2012-11-30 | 2013-04-17 | 记忆科技(深圳)有限公司 | 固态硬盘数据缓存的方法及其系统 |
-
2014
- 2014-03-31 CN CN201410129796.0A patent/CN103838526B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189081B1 (en) * | 1996-05-24 | 2001-02-13 | Nec Corporation | Non-volatile semiconductor storage with memory requirement and availability comparison means and method |
CN101216806A (zh) * | 2008-01-17 | 2008-07-09 | 北京中星微电子有限公司 | 一种数据更新的方法和装置 |
CN102306125A (zh) * | 2011-08-17 | 2012-01-04 | 深圳市共进电子股份有限公司 | 一种flash存储器的数据擦写方法 |
CN103049394A (zh) * | 2012-11-30 | 2013-04-17 | 记忆科技(深圳)有限公司 | 固态硬盘数据缓存的方法及其系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108352189A (zh) * | 2015-10-27 | 2018-07-31 | 费森尤斯医疗护理德国有限责任公司 | 可重复使用的可抛弃用品及因此的透析设备 |
CN109558080A (zh) * | 2018-11-20 | 2019-04-02 | 宁波三星医疗电气股份有限公司 | 一种电力采集设备的NandFlash数据管理方法 |
CN109558080B (zh) * | 2018-11-20 | 2022-04-22 | 宁波三星医疗电气股份有限公司 | 一种电力采集设备的NandFlash数据管理方法 |
CN110389723A (zh) * | 2019-07-22 | 2019-10-29 | 广东美的制冷设备有限公司 | 数据的存储方法、装置、空调器和存储介质 |
CN111208950A (zh) * | 2020-01-15 | 2020-05-29 | 山西银河电子设备厂 | 一种基于单片机的提升norflash使用周期的方法 |
CN112214426A (zh) * | 2020-09-25 | 2021-01-12 | 湖北三江航天红峰控制有限公司 | 基于vnx的高速数据记录模块、数据记录和分析方法 |
CN114265559A (zh) * | 2021-12-24 | 2022-04-01 | 中电信数智科技有限公司 | 一种存储管理方法、装置、电子设备及存储介质 |
CN114265559B (zh) * | 2021-12-24 | 2024-02-09 | 中电信数智科技有限公司 | 一种存储管理方法、装置、电子设备及存储介质 |
CN115904256A (zh) * | 2023-02-20 | 2023-04-04 | 中电装备山东电子有限公司 | 一种数据存储方法及存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN103838526B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838526A (zh) | 一种存储芯片数据写入方法及装置 | |
CN102622309B (zh) | 数据安全擦除方法及装置 | |
CN103154950B (zh) | 重复数据删除方法及装置 | |
CN101840380B (zh) | 保护元数据免受意外断电影响的装置和方法 | |
TWI516922B (zh) | 資料儲存裝置及快閃記憶體零散資料收集方法 | |
US20190155737A1 (en) | Solid-state hard disk and data access method for use with solid-state hard disk | |
CN101354918B (zh) | 存储装置以及平均使用一快闪式存储器的区块的方法 | |
CN101515276B (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
CN104750615A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN104484283B (zh) | 一种降低固态硬盘写放大的方法 | |
CN103597444A (zh) | 按照使用来管理基于闪存的存储上的数据放置 | |
CN100449549C (zh) | 嵌入式系统中NAND Flash存储器上建立文件系统的方法 | |
CN102971698B (zh) | 快照数据处理方法及系统、存储系统、快照代理 | |
CN101216789A (zh) | 数据更新方法、装置及系统 | |
CN111949220B (zh) | 存储设备异常断电恢复方法及存储设备 | |
CN103577336A (zh) | 一种存储数据处理方法及装置 | |
CN103455435A (zh) | 数据写入方法及装置 | |
CN101533670A (zh) | 实现存储设备损耗均衡的方法及存储设备 | |
CN103677653A (zh) | 一种基于ssd的数据处理方法及电子设备 | |
CN103268294A (zh) | 一种存取数据的操作方法和数据处理设备 | |
CN104933051A (zh) | 文件存储空间回收方法和装置 | |
CN104216796A (zh) | 一种数据备份、恢复方法及电子设备 | |
CN103617097A (zh) | 文件恢复方法及装置 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN105404533A (zh) | 程序升级方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |