存储器的控制方法及装置与流程

文档序号:12464284阅读:199来源:国知局
存储器的控制方法及装置与流程

本发明涉及存储器技术领域,具体涉及一种存储器的控制方法及装置。



背景技术:

电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM),是一种掉电后数据不丢失的存储芯片。

在实际应用中,向EEPROM中写入数据时,若待存储的数据长度超过1页,每次按页或小于页的长度进行数据更新。也就是说,当待存储的数据长度超过1页时,需要通过多次的写入操作才能完成对全部数据的存储。

其中,在每次写入操作中,通常先对目标存储区进行擦除操作,再对擦除后的目标存储区执行编程操作,即可完成该页数据的写入。具体地,如图1所示,在对目标存储区执行擦除操作时,目标存储区内的数据状态先由有效状态(即完整状态)转变为不定状态(即不完整状态),再由不定状态转变为擦除状态,届时擦除操作完成。在对目标存储区执行编程操作时,目标存储区内的数据状态先由擦除状态转变为不定状态,再由不定状态转变为有效状态,届时该次编程操作完成。当更好该目标存储区后,以新的地址作为目标存储区,重复上面的操作,实现对另一个目标存储区的数据更新操作。

然而,在数据的写入过程中,当目标存储区的数据状态处于不定状态或擦除状态时,若写入操作中断,则会导致数据丢失的情况出现。

为了避免数据丢失的情况出现,目前通常采用备份存储的方法进行数据写入,即:将同一待写入的数据先后分别写入目标存储区和备份存储区,并使得二者中的数据状态无论何时至少一个为有效状态。也就是说,对于同一待写入的数据,先对目标存储区执行擦除及编程操作,再对备份存储区执行擦除及编程操作,并保证二者中的数据状态在任意时刻至少一个为有效状态。

在上述数据存储的过程中,当数据长度为N页时,需要分别进行2N次擦除操作和2N次编程操作,才能完成对全部数据的存储,擦写次数过多以及 擦写时间过长导致EEPROM的使用寿命缩短。并且,由于每页数据均设置有目标存储区和备份存储区,因此当数据长度为N页时,需要占用2N页的存储空间,使得EEPROM的面积增大,成本增加。



技术实现要素:

本发明解决的技术问题是如何延长存储器的使用寿命并减小存储器的面积。

为解决上述技术问题,本发明实施例提供一种存储器的控制方法,所述存储器由多个存储单元组成,其中包括第一存储单元,所述第一存储单元中数据的初始状态为擦除状态,每个存储单元的数据存储容量为一页,所述方法包括:

接收并读取待写入的数据,获取所述待写入的数据的目标地址信息;

读取所述存储器中各个存储单元内数据;

根据所述目标地址信息,判断所述目标地址对应的存储单元中数据的状态是否为有效状态;

当所述目标地址对应的存储单元中数据的状态为有效状态时,对所述第一存储单元执行编程操作,将所述待写入的数据写入至所述第一存储单元;

将所述待写入的数据写入至所述第一存储单元后,对所述目标地址对应的存储单元执行擦除操作,以进行下一次的数据写入。

可选地,所述方法还包括:

当读取到所述存储器中不存在数据为擦除状态的存储单元,但存在数据为不定状态的存储单元时,对所述数据为不定状态的存储单元执行擦除操作,将所述数据为不定状态的存储单元转变为数据为擦除状态的存储单元。

可选地,所述待写入的数据包括:数据信息、目标地址信息以及所述数据的标识信息。

可选地,所述方法还包括:

当所述存储器中不存在数据为擦除状态的存储单元,但存在具有相同目 标地址信息且均处于有效状态的数据的存储单元时,分别获取每份数据中的标识信息;

根据所述标识信息判断所述数据对应的存储单元是否有效;

对无效的存储单元执行擦除操作。

可选地,所述待写入的数据还包括:校验信息。

可选地,所述根据所述目标地址信息,判断所述目标地址对应的存储单元中数据的状态是否为有效状态,包括:

根据所述目标地址信息,获取所述目标地址对应的存储单元中数据的校验信息,并根据所述校验信息判断所述目标地址对应的存储单元中数据的状态是否为有效状态。

本发明实施例还提供了一种存储器的控制装置,所述存储器由多个存储单元组成,其中包括第一存储单元,所述第一存储单元中数据的初始状态为擦除状态,每个存储单元的数据存储容量为一页,所述控制装置包括:

第一获取单元,适于接收并读取待写入的数据,获取所述待写入的数据的目标地址信息;

读取单元,适于读取所述存储器中各个存储单元内数据;

第一判断单元,适于根据所述目标地址信息,判断所述目标地址对应的存储单元内数据的状态是否为有效状态;

编程单元,适于当读取到所述目标地址对应的存储单元中数据的状态为有效状态时,对所述第一存储单元执行编程操作,将所述待写入的数据写入至所述第一存储单元;

擦除单元,适于将所述目标地址对应的存储单元中数据写入至所述第一存储单元后,对所述目标地址对应的存储单元执行擦除操作,以进行下一次的数据写入。

可选地,所述擦除单元,还适于当读取到所述存储器中不存在数据为擦除状态的存储单元,但存在数据为不定状态的存储单元时,对所述数据为不定状态的存储单元执行擦除操作,将所述数据为不定状态的存储单元转变为 数据为擦除状态的存储单元。

可选地,所述第一获取单元接收到的待写入的数据包括:数据信息、目标地址信息以及所述数据的标识信息。

可选地,还包括:

第二获取单元,适于当所述存储器中不存在数据为擦除状态的存储单元,但存在具有相同目标地址信息且均处于有效状态的数据的存储单元时,分别获取每份数据中的标识信息;

第二判断单元,适于根据所述标识信息判断所述数据对应的存储单元是否有效;

所述擦除单元,还适于对无效的存储单元执行擦除操作。

可选地,所述第一获取单元接收到的待写入的数据还包括:校验信息。

可选地,所述第一判断单元适于根据所述目标地址信息,获取所述目标地址对应的存储单元中数据的校验信息,并根据所述校验信息判断所述目标地址对应的存储单元中数据的状态是否为有效状态。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

当接收到待写入的数据时,通过获取所述待写入的数据的目标地址信息,进而可以根据所述目标地址信息,判断所述目标地址对应的存储单元中数据的状态是否为有效状态,并在所述目标地址对应的存储单元中数据的状态为有效状态时,先将所述待写入的数据写入至第一存储单元,再对所述目标地址对应的存储单元执行擦除操作,以实现数据的安全写入。应用所述方法向存储器中写入数据时,在保证数据安全的前提下,每页数据的写入仅需要1次编程操作以及1次写入操作,大大降低对存储器的擦写次数,提高存储器的使用寿命。并且,当数据长度为N页时,仅需要占用N+1页的存储空间,从而使得存储器的面积减小。

附图说明

图1是现有技术中一种存储器的数据写入示意图;

图2是现有技术中另一种存储器的数据写入示意图;

图3是现有技术中又一种存储器的数据写入示意图;

图4是本发明实施例中一种存储器的控制方法流程图;

图5是本发明实施例中一种存储器的数据写入示意图;

图6是本发明实施例中另一种存储器的数据写入示意图;

图7是本发明实施例中一种存储器的控制装置结构示意图。

具体实施方式

目前,在向存储器中写入数据时,为了避免因操作中断而导致的数据丢失的情况出现,通常采用备份存储的方法进行数据的写入。下面分别以待存储的数据为单页数据以及两页数据为例,对上述写入过程进行说明:

如图2所示,当待存储的数据为单页数据时,初始状态时,目标存储区内的数据与备份存储区内的数据相同。当向存储器中写入数据时,可以先对目标存储区执行擦除操作,使得目标存储区内的数据状态由有效状态转变为不定状态,再由不定状态转变为擦除状态。当数据擦除后,向目标存储区内写入待存储的数据。自对目标存储区执行擦除操作时起,至向目标存储区内写入待存储的数据止,备份存储区内的数据状态一直为有效状态,由此可以保证在向目标存储区写入待存储的数据的过程中,无论操作何时中断,目标存储区原有数据均不会丢失。

当向目标存储区内写入待存储的数据后,先对备份存储区内的数据先执行擦除操作,再写入新的数据。此时,目标存储区内的数据状态一直为有效状态,由此可以保证在向备份存储区写入待存储的数据的过程中,无论操作何时中断,向目标存储区写入的所述待存储的数据均不会丢失。

如图3所示,当待存储的数据为两页数据时,所述目标存储区包括第一目标存储区以及第二目标存储区,所述备份存储区包括第一备份存储区及第二备份存储区。具体地,先对第一目标存储区执行擦除操作,再向所述第一目标存储区执行编程操作,以写入所述待存储的数据中的一页数据。接着,对第一备份存储区执行擦除操作,再向所述第一备份存储区执行编程操作。当向第一目标存储区及第一备份存储区内写入数据后,分别参照对所述第一 目标存储区及第一备份存储区内写入数据的过程,再依次向第二目标存储区,以及第二目标存储区对应的第二备份存储区内写入数据。在上述数据写入的过程中,在任意时刻,第一目标存储区或第一备份存储区内数据的状态为有效状态,或者,第二目标存储区或第二备份存储区内数据的状态为有效状态。因此,无论上述操作何时中断,存储器中至少保留一个有效数据,实现数据的安全写入。

由图2及图3可以看出,采用上述方法向存储器中写入数据时,虽然可以实现数据的安全写入,但每页数据的写入需要分别执行2次编程操作及2次擦除操作。当待存储的数据长度为N页时,就需要分别执行2N次编程操作及2N次擦除操作,导致对存储器的擦写次数过多,影响存储器的使用寿命。并且,当待存储的数据长度为N页时,目标存储区及备份存储区共占有2N页的存储空间,导致存储器的面积增大。

针对上述问题,本发明实施例提供了一种存储器的控制方法,应用所述方法,当接收到待写入的数据时,通过获取所述待写入的数据的目标地址信息,进而可以根据所述目标地址信息,判断所述目标地址对应的存储单元中数据的状态是否为有效状态,并在所述目标地址对应的存储单元中数据的状态为有效状态时,先将所述待写入的数据写入至第一存储单元,再对所述目标地址对应的存储单元执行擦除操作。

在向所述第一存储单元写入数据的过程中,由于所述目标地址对应的存储单元内数据的状态保持有效状态,因此,无论写入操作何时中断,存储器中至少保留一个有效数据,由此可以实现数据的安全写入。在保证数据安全的前提下,应用所述方法向存储器中写入数据时,每页数据的写入仅需要1次编程操作以及1次擦除操作,大大降低对存储器的擦写次数,提高存储器的使用寿命。并且,当数据长度为N页时,仅需要占用N+1页的存储空间,从而使得存储器的面积减小。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细地说明。

如图4所示,本发明实施例提供了一种存储器的控制方法。

需要说明的是,在向存储器内写入待写入的数据前,所述存储器由多个存储单元组成,所述多个存储单元中至少存在一个数据初始状态为擦除状态的存储单元,即至少存在一个第一存储单元,所述存储单元内可以存储的数据长度为1页。也就是说,当待存储的数据长度为N页时,所述存储器的存储空间至少为N+1页,所述N+1页中至少1页为第一存储单元。

其中,所谓初始状态,即每次向所述存储器中写入数据前所述存储单元内数据的状态。当待存储的数据需要多次写入操作才能完成存储时,每次写入操作前存在至少一个第一存储单元即可。当然,所述存储器中还可以存在多个第一存储单元,所述第一存储单元的数量不受限制,只要每次写入操作前存在至少一个第一存储单元即可。

所述方法可以包括以下步骤:

步骤41,接收并读取待写入的数据,获取所述待写入数据的目标地址信息。

在具体实施中,由于向存储器中写入数据时,每次所写入的数据的长度受页数据寄存器长度限制,使得每次写入的数据长度不能超过1页。当待存储的数据长度小于等于1页时,通过1次写入操作即可完成全部数据的存储。当待存储的数据长度为多页时,需要通过多次的写入操作才能完成对全部数据的存储。也就是说,所述待存储的数据可以包括多份待写入的数据,且每份待写入的数据长度小于等于1页。

在具体实施中,每份待写入的数据中不仅包括数据本身,还包括所述待写入的数据对应的目标地址信息,以及所述待写入的数据的标识信息。其中,所述目标地址信息即所述待写入的数据在所述存储器中的存储地址,通常为目标逻辑地址信息。所述标识信息可以采用序号的形式进行标识,根据所述标识信息及目标地址信息可以唯一确定所述待写入的数据。

需要说明的是,在本发明的实施例中,所述存储器为具有数据保存功能的设备,通过所述设备可以读取和写入数据,比如,所述存储器可以为电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)。所述存储器可以是一台独立的设备,也可以同时提供其他服务, 比如可以在其他设备上开辟一块专用的数据存储区,以提供数据保存服务。当然,不论是采用哪种方式的存储器,都可以用于读取和写入数据。

步骤42,读取所述存储器中各个存储单元内数据。

通过读取所述存储器中各个存储单元内的数据,可以获知各个存储单元内数据的状态。

通常情况下,存储单元内数据的状态可以包括以下几种:擦除状态、不定状态以及有效状态。其中,所述擦除状态即存储单元内的数据已擦除,此时可以直接写入新的数据。所述不定状态即存储单元内的数据不完整,所述数据不完整可以是因对所述存储单元执行的擦除操作被中断所导致的,也可以是因对所述存储单元执行的编程操作被中断所操作的,此时无法直接写入新的数据。所述有效状态即所述存储单元内的数据完整,此时可以直接读取存储单元内的数据。

需要说明的是,步骤42与步骤41没有执行顺序的限制,既可以在执行步骤41后再执行步骤42,也可以在执行步骤41前先执行步骤42,还可以在执行步骤41的同时,执行步骤42。

步骤43,根据所述目标地址信息,判断所述目标地址对应的存储单元中数据的状态是否为有效状态。

在具体实施中,获取到所述待写入的数据前,根据所述目标地址信息,可以读取所述存储器中与所述目标地址对应的存储单元内的数据。若能够从与所述目标地址对应的存储单元内读取到数据,则所述存储单元内数据的状态要么为有效状态,要么为不定状态。若未能够从与所述目标地址对应的存储单元内读取到数据,则所述存储单元内数据的状态为擦除状态,对应地,与所述目标地址对应的存储单元为第一存储单元。

在具体实施中,当从与所述目标地址对应的存储单元内读取到数据时,通过对所读取的数据进行校验,可以判定所读取的数据的状态。

具体可以采用多种方式校验所读取的数据,在本发明的一实施例中,可以在写入的数据中设置校验信息,此时,所写入的数据不仅包括数据本身、目标地址信息以及标识信息,还包括校验信息,进而可以在读取存储单元中 的数据时,通过所述校验信息来验证所读取的数据是否完整,从而可以根据验证结果判断所述存储单元内数据的状态。其中,在通过所述校验信息来验证所读取的数据是否完整时,可以采用奇偶校验等方式进行验证。

当判定所述目标地址对应的存储单元中数据的状态为有效状态时,执行步骤44。当判定所述目标地址对应的存储单元中数据的状态为不定状态时,执行步骤46。当判定所述目标地址对应的存储单元中数据的状态为擦除状态时,执行步骤47。

步骤44,对所述第一存储单元执行编程操作,将所述待写入的数据写入至所述第一存储单元。

步骤45,将所述待写入的数据写入至所述第一存储单元后,对所述目标地址对应的存储单元执行擦除操作,以进行下一次的数据写入。

下面以所述待存储的数据为X,且X的数据长度为2页为例,对步骤44及45的具体实施进行详细说明:

如图5及图6所示,所述存储器中包括:存储单元A1,存储单元A2以及存储单元A3。在向存储器中写入数据前,存储单元A1,存储单元A2内数据状态均为有效状态,所存储的数据分别为L1及L2。存储单元A3内数据状态为擦除状态,所存储的数据为L3。此时存储单元A3为所述第一存储单元。

所述待存储的数据为X包括数据X1及X2,X1及X2的数据长度分别为1页,写入顺序如下:先向存储器中写入数据X1,再向存储器中写入数据X2。数据X1的目标地址为存储单元A1,数据X2的目标地址为存储单元A2。

具体地,向存储器中写入数据X1时,由于存储单元A1内数据L1为有效状态,因此,对存储单元A3执行编程操作,将所述数据X1写入第一存储单元A3,然后对存储单元A1内的数据L1执行擦除操作。

在对存储单元A1内的数据L1执行擦除操作后,向存储器中写入数据X2前,由于存储单元A1为所述第一存储单元,因此可以在向存储器中写入数据X2时,先对存储单元A1执行编程操作,将数据X2写入存储单元A1,再对存储单元A2内的数据L2执行擦除操作。

从图5及图6可以看出,在任意时刻,存储单元A1、A2及A3内至少一个数据状态为有效状态,因此,无论何时中断写入操作,存储器内至少存储一个完整数据。并且,当待存储的数据长度为N页时,写入过程中仅需要N次编程操作以及N次擦除操作,存储器的读写次数减少1倍。另外,当待存储的数据长度为N页时,仅需要N+1页的存储空间即可完成整个数据的写入,而无须2N页的存储空间,有效减小了存储器的面积。

在具体实施中,若写入操作在执行步骤44后、执行步骤45前中断,下次向存储器中写入数据时,存储器中可能不存在数据为擦除状态的存储单元,但存在具有相同目标地址信息且均处于有效状态的数据的存储单元。此时可以先分别获取每份数据中的标识信息,进而通过所述标识信息区分所述数据的写入顺序,然后根据预先设置的所述数据写入顺序与区域有效性的对应关系,判断出有效的存储单元。

比如,在向存储器中写入数据时,可以依次增加待写入数据中的序号值,这样,在存在具有相同目标地址信息且均处于有效状态的数据时,序号值较大的数据为后写入的数据,序号值较小的数据为先写入的数据。相应地,序号值较大的数据所在的存储单元为有效存储单元,序号值较小的数据所在的存储单元为无效存储单元。

对无效的存储单元执行擦除操作,即将所述无效的存储单元转变为第一存储单元,以继续执行步骤44。此时,所述有效的存储单元即与所述目标地址对应的存储单元,因此,在执行步骤45时,直接对所述有效的存储单元执行擦除操作即可。

步骤46,对所述数据为不定状态的存储单元执行擦除操作,将所述数据为不定状态的存储单元转变为数据为擦除状态的存储单元。

在具体实施中,读取所述存储器中各个存储单元内数据后,若所述存储器中不存在数据为擦除状态的存储单元,即不存在第一存储单元,但存在数据为不定状态的存储单元时,对所述数据为不定状态的存储单元执行擦除操作,将所述数据为不定状态的存储单元转变为数据为擦除状态的存储单元,也就是将所述数据为不定状态的存储单元转变为第一存储单元,由此可以使 得所述存储器在每次写入数据前存在至少一个第一存储单元。

将所述数据为不定状态的存储单元转变为第一存储单元后,继续执行步骤44。

步骤47,将所述待写入的数据写入所述目标地址对应的存储单元。

也就是说,当判定所述目标地址对应的存储单元中数据的状态为擦除状态时,直接将所述待写入的数据写入所述目标地址对应的存储单元。当下一次向存储器中写入数据时,再按照步骤41至47执行。

由上述内容可以看出,应用本发明实施例中的方法,在判断待写入数据的目标地址对应的存储单元中数据的状态为有效状态时,先将所述待写入的数据写入至第一存储单元,再对所述目标地址对应的存储单元执行擦除操作,以实现数据的安全写入。并且,应用所述方法向存储器中写入数据时,在保证数据安全的前提下,每页数据的写入仅需要1次编程操作以及1次写入操作,大大降低对存储器的擦写次数,提高存储器的使用寿命。并且,当数据长度为N页时,仅需要占用N+1页的存储空间,从而使得存储器的面积减小。

为了使本领域技术人员更好地理解和实现本发明,以下对上述存储器的控制方法对应的装置进行详细描述。

如图7所示,本发明实施例提供了一种存储器的控制装置。其中,所述存储器由多个存储单元组成,其中包括第一存储单元,所述第一存储单元中数据的初始状态为擦除状态,每个存储单元的数据存储容量为一页,。

所述装置可以包括:第一获取单元71,读取单元72,第一判断单元73,编程单元74以及擦除单元75。其中:

所述第一获取单元71适于接收并读取待写入的数据,获取所述待写入的数据的目标地址信息。所述读取单元72适于读取所述存储器中各个存储单元内数据。所述第一判断单元73适于根据所述目标地址信息,判断所述目标地址对应的存储单元内数据的状态是否为有效状态。所述编程单元74适于当读取到所述目标地址对应的存储单元中数据的状态为有效状态时,对所述第一存储单元执行编程操作,将所述待写入的数据写入至所述第一存储单元。所述擦除单元75适于将所述目标地址对应的存储单元中数据写入至所述第一存 储单元后,对所述目标地址对应的存储单元执行擦除操作,以进行下一次的数据写入。

在具体实施中,所述擦除单元75还适于当读取到所述存储器中不存在数据为擦除状态的存储单元,但存在数据为不定状态的存储单元时,对所述数据为不定状态的存储单元执行擦除操作,将所述数据为不定状态的存储单元转变为数据为擦除状态的存储单元。

在具体实施中,所述第一获取单元71接收到的待写入的数据包括:数据信息、目标地址信息以及所述数据的标识信息。

在具体实施中,所述装置还包括:第二获取单元及第二判断单元(未示出)。其中,所述第二获取单元适于当所述存储器中不存在数据为擦除状态的存储单元,但存在具有相同目标地址信息且均处于有效状态的数据的存储单元时,分别获取每份数据中的标识信息。所述第二判断单元适于根据所述标识信息判断所述数据对应的存储单元是否有效。此时,所述擦除单元75还适于对无效的存储单元执行擦除操作。

在具体实施中,所述第一获取单元71接收到的待写入的数据还包括:校验信息。所述第一判断单元73适于根据所述目标地址信息,获取所述目标地址对应的存储单元中数据的校验信息,并根据所述校验信息判断所述目标地址对应的存储单元中数据的状态是否为有效状态。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1