CN110286853A - 一种数据写入方法和装置、计算机可读存储介质 - Google Patents
一种数据写入方法和装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN110286853A CN110286853A CN201910493272.2A CN201910493272A CN110286853A CN 110286853 A CN110286853 A CN 110286853A CN 201910493272 A CN201910493272 A CN 201910493272A CN 110286853 A CN110286853 A CN 110286853A
- Authority
- CN
- China
- Prior art keywords
- data
- erasing
- written
- write operation
- back check
- 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 61
- 238000003860 storage Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 14
- 230000008901 benefit Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 10
- 238000005299 abrasion Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 5
- 230000032683 aging Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种数据写入方法和装置、计算机可读存储介质,所述方法包括接收数据写入请求;检测预设大小的存储空间的数据是否是擦除后的数据;如果是擦除后的数据,则不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;如果不是擦除后的数据,则执行擦除操作和硬件写操作。本申请通过检测预设大小的存储空间的数据是否是擦除后的数据,如果是擦除后的数据,则不执行擦除操作并直接将预设大小的待写入数据写入所述存储空间,减少了不必要的擦除操作,延长了存储设备的擦写寿命,节省了操作时间。
Description
技术领域
本申请涉及但不限于计算机技术领域,尤其涉及一种数据写入方法和装置、计算机可读存储介质。
背景技术
由于工艺的演进,闪存(Flash)已经替代带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM),成为片上系统(System on Chip,SOC)中主要的嵌入式存储器。然而,由于结构的差异,Flash存储器的寿命要远远低于EEPROM。为此,需要进行一系列的设计,以尽可能地改善Flash存储的可靠性。
发明内容
本申请提供了一种数据写入方法和装置、计算机可读存储介质,能够延长存储设备的擦写寿命。
本发明实施例提供了一种数据写入方法,包括:
接收数据写入请求;
检测预设大小的存储空间的数据是否是擦除后的数据;
如果是擦除后的数据,则不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;
如果不是擦除后的数据,则执行擦除操作和硬件写操作。
在一种示例性实施例中,所述执行擦除操作和硬件写操作,包括:
检测所述待写入数据的大小是否是所述存储空间的整页数据;
如果是所述存储空间的整页数据,则对所述存储空间进行页面擦除操作,并将所述待写入数据写入所述存储空间中已擦除的页面。
在一种示例性实施例中,所述方法还包括:
如果不是所述存储空间的整页数据,则读出所述存储空间与所述待写入数据对应的页面的有效数据到缓存,将所述待写入数据更新到缓存的有效数据中,对所述存储空间进行页面擦除操作,并将缓存的已更新的有效数据写入所述存储空间。
在一种示例性实施例中,在执行硬件写操作时,所述方法还包括:
检测所述待写入数据是否与所述擦除后的数据相同;
如果所述待写入数据与所述擦除后的数据相同,则不执行硬件写操作;
如果所述待写入数据与所述擦除后的数据不相同,则执行硬件写操作。
在一种示例性实施例中,在所述硬件写操作执行完成后,所述方法还包括:
接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作而直接再执行一次硬件写操作,并返回所述接收回读校验的步骤。
本发明实施例还提供了一种数据写入方法,包括:
在硬件写操作执行完成后,接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作并直接再执行一次硬件写操作,返回所述接收回读校验的步骤。
在一种示例性实施例中,在执行所述硬件写操作时,所述方法还包括:
检测待写入数据是否与擦除后的数据相同;
如果待写入数据与擦除后的数据相同,则不执行硬件写操作;
如果待写入数据与擦除后的数据不相同,则执行硬件写操作。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的数据写入方法的步骤。
本发明实施例还提供了一种数据写入装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的数据写入方法的步骤。
本发明实施例还提供了一种数据写入装置,包括接收单元、检测单元和处理单元,其中:
接收单元,用于接收数据写入请求,通知检测单元;
检测单元,用于接收到接收单元的通知,检测预设大小的存储空间的数据是否是擦除后的数据;如果是擦除后的数据,发送第一通知至处理单元;如果不是擦除后的数据,发送第二通知至处理单元;
处理单元,用于接收到检测单元的第一通知,不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;接收到检测单元的第二通知,执行擦除操作和硬件写操作。
本发明实施例还提供了一种数据写入装置,包括回读校验单元和写入判断单元,其中:
回读校验单元,用于在硬件写操作执行完成后,接收回读校验,并检测回读校验是否正确,如果回读校验正确,则发送第一通知至写入判断单元;如果回读校验不正确,则发送第二通知至写入判断单元;
写入判断单元,用于接收到回读校验单元的第一通知,确定数据写入成功;接收到回读校验单元的第二通知,检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;如果执行次数小于或等于N,则不执行擦除操作并直接再执行一次硬件写操作,通知回读校验单元硬件写操作执行完成。
本申请的数据写入方法和装置、计算机可读存储介质,通过检测预设大小的存储空间的数据是否是擦除后的数据,如果是擦除后的数据,则不执行擦除操作并直接将预设大小的待写入数据写入所述存储空间,减少了不必要的擦除操作,延长了存储设备的擦写寿命,节省了操作时间;
进一步地,通过检测待写入数据是否与擦除后的数据相同,如果待写入数据与擦除后的数据相同,则不执行硬件写操作,减少了对物理器件的磨损;
进一步地,通过在写入过程中,执行N次硬件写操作,提高了存储设备的数据可靠性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明实施例的第一种数据写入方法的流程示意图;
图2为本发明实施例的第二种数据写入方法的流程示意图;;
图3为本发明实施例的第三种数据写入方法的流程示意图;;
图4为本发明实施例的第四种数据写入方法的流程示意图;;
图5为本发明实施例的第一种数据写入装置的结构示意图;
图6为本发明实施例的第二种数据写入装置的结构示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
本申请主要进行了如下设计:
1)存储空间数据检查:如果为擦除后的数据,则可直接进行硬件写操作,减少不必要的擦除操作,节省时间;
2)待写入数据检查:如果待写入数据与存储空间擦除后的数据相同,则不启动真正的硬件写操作,减少对物理器件的磨损。
3)在数据写入过程中加入多次写入机制,提高数据的可靠性。
实施例一 数据写入方法一
如图1所示,本发明实施例提供了一种数据写入方法,包括如下步骤:
步骤101:接收数据写入请求;
步骤102:检测预设大小的存储空间的数据是否是擦除后的数据;
在一种示例性实施例中,所述存储空间可以为Flash、EEPROM或其它任意类型的存储器。
在一种示例性实施例中,所述预设大小的存储空间大小可配置,最小为一个编程操作字数。
所述步骤102可以由硬件实现。软件在进行数据编程前,可启用硬件自动检查规定大小的存储空间的数据,每次最大检查空间可配,最小为一个编程操作字数。之所以使用硬件检测,是因为现在系统中通常带有数据加解密安全性设计,软件看到的数据是解密后的,因此,需要在硬件层面完成数据的检查。
步骤103:如果是擦除后的数据,则不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;
硬件通过自动读和判断检查数据,并将最终结果通知给软件。如果是擦除后的数据,则软件可以直接进行编程操作,无需进行擦除操作。
在一种示例性实施例中,在执行硬件写操作时,所述方法还包括:
检测所述待写入数据是否与所述擦除后的数据相同;
如果所述待写入数据与所述擦除后的数据相同,则不执行硬件写操作;
如果所述待写入数据与所述擦除后的数据不相同,则执行硬件写操作。
在一种示例性实施例中,如图2所示,CPU将待写入数据传递给Flash控制器;Flash控制器检测待写入数据是否与存储空间擦除后的数据相同,如果待写入数据与擦除后的数据相同,则不启动真正的编程操作(即数据写入操作);如果待写入数据与擦除后的数据不同,则按照流程启动真正的编程操作(即数据写入操作)。系统只需对待写入数据进行判断,然后确认是否启动真正编程操作即可。
在一种示例性实施例中,在所述硬件写操作执行完成后,所述方法还包括:
接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作而直接再执行一次硬件写操作,并返回所述接收回读校验的步骤。
在一种示例性实施例中,所述N为3次。
如图3所示,软件在启动一个编程操作后,硬件将数据写入到存储空间中,然后等待一段时间进行回读校验,如果回读校验正确,则返回编程正确信息给软件;如果回读校验错误,硬件则自动再进行一次编程操作和回读校验,如果回读校验正确,同样返回编程正确信息给软件;如果回读校验错误,则再启动一次编程操作和回读校验,如果回读校验正确,则返回编程正确信息给软件,如果回读校验错误,则返回编程失败信息给软件。整个过程没有擦除操作,如此可解决由于器件老化或磨损带来的编程不可靠问题,提高数据的可靠性。此方案对于EEPROM产品也适用。该方案的核心为编程操作在需要时可以进行多次且中间没有擦除操作,确保数据编程的可靠性。该方案可以以硬件、软件、软硬结合等方式实现。
步骤104:如果不是擦除后的数据,则擦除操作和硬件写操作。
在一种示例性实施例中,如图4所示,所述执行擦除操作和硬件写操作,包括:
检测所述待写入数据的大小是否是所述存储空间的整页数据;
如果是所述存储空间的整页数据,则对所述存储空间进行页面擦除操作,并将所述待写入数据写入所述存储空间中已擦除的页面。
在一种示例性实施例中,如图4所示,所述方法还包括:
如果不是所述存储空间的整页数据,则读出所述存储空间与所述待写入数据对应的页面的有效数据到缓存,将所述待写入数据更新到缓存的有效数据中,对所述存储空间进行页面擦除操作,并将缓存的已更新的有效数据写入所述存储空间。
Flash存储器是一种快速的电可擦除、电可编程(写入)的存储器。在用户编程模式下,对Flash存储区域进行擦除操作是整体擦除或者整页擦除(某一起始地址开始的一页),也就是说,不能仅擦除某一字节或一次擦除小于一页。一页可以配置为256字节、512字节、1024字节、2K字节等大小。在对Flash存储区域进行写入操作时,需要先将待写入数据放入随机存取存储器(Random Access Memory,RAM),然后擦除Flash存储器的相应区域并进行写入,可以按字节或字写入。
实施例二 数据写入方法二
本发明实施例还提供了一种数据写入方法,包括如下步骤:
在硬件写操作执行完成后,接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作并直接再执行一次硬件写操作,并返回所述接收回读校验的步骤。
在一种示例性实施例中,所述N为3次。
如图3所示,软件在启动一个编程操作后,硬件将数据写入到存储空间中,然后等待一段时间进行回读校验,如果回读校验正确,则返回编程正确信息给软件;如果回读校验错误,硬件则自动再进行一次编程操作和回读校验,如果回读校验正确,同样返回编程正确信息给软件;如果回读校验错误,则再启动一次编程操作和回读校验,如果回读校验正确,则返回编程正确信息给软件,如果回读校验错误,则返回编程失败信息给软件。整个过程没有擦除操作,如此可解决由于器件老化或磨损带来的编程不可靠问题,提高数据的可靠性。此方案对于EEPROM产品也适用。该方案的核心为编程操作在需要时可以进行多次且中间没有擦除操作,确保数据编程的可靠性。该方案可以以硬件、软件、软硬结合等方式实现。
在一种示例性实施例中,在执行所述硬件写操作时,所述方法还包括:
检测待写入数据是否与擦除后的数据相同;
如果待写入数据与擦除后的数据相同,则不执行硬件写操作;
如果待写入数据与擦除后的数据不相同,则执行硬件写操作。
实施例三 计算机可读存储介质
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的数据写入方法的步骤。
实施例四 数据写入装置一
本发明实施例还提供了一种数据写入装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的数据写入方法的步骤。
实施例五 数据写入装置二
如图5所示,本发明实施例还提供了一种数据写入装置,包括接收单元501、检测单元502和处理单元503,其中:
接收单元501,用于接收数据写入请求,通知检测单元502;
检测单元502,用于接收到接收单元501的通知,检测预设大小的存储空间的数据是否是擦除后的数据;如果是擦除后的数据,发送第一通知至处理单元503;如果不是擦除后的数据,发送第二通知至处理单元503;
处理单元503,用于接收到检测单元502的第一通知,不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;接收到检测单元502的第二通知,执行擦除操作和硬件写操作。
在一种示例性实施例中,所述存储空间可以为Flash、EEPROM或其它任意类型的存储器。
在一种示例性实施例中,所述预设大小的存储空间大小可配置,最小为一个编程操作字数。
所述检测单元502可以由硬件实现。软件在进行数据编程前,可启用硬件自动检查规定大小的存储空间的数据,每次最大检查空间可配,最小为一个编程操作字数。之所以使用硬件检测,是因为现在系统中通常带有数据加解密安全性设计,软件看到的数据是解密后的,因此,需要在硬件层面完成数据的检查。硬件通过自动读和判断检查数据,并将最终结果通知给软件。如果是擦除后的数据,则软件可以直接进行编程操作,无需进行擦除操作。
在一种示例性实施例中,在执行硬件写操作时,所述处理单元503还用于:
检测所述待写入数据是否与所述擦除后的数据相同;
如果所述待写入数据与所述擦除后的数据相同,则不执行硬件写操作;
如果所述待写入数据与所述擦除后的数据不相同,则执行硬件写操作。
在一种示例性实施例中,如图2所示,CPU将待写入数据传递给Flash控制器;Flash控制器检测待写入数据是否与存储空间擦除后的数据相同,如果待写入数据与擦除后的数据相同,则不启动真正的编程操作(即数据写入操作);如果待写入数据与擦除后的数据不同,则按照流程启动真正的编程操作(即数据写入操作)。系统只需对待写入数据进行判断,然后确认是否启动真正编程操作即可。
在一种示例性实施例中,在所述硬件写操作执行完成后,所述处理单元503还用于:
接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作而直接再执行一次硬件写操作,并返回所述接收回读校验的步骤。
在一种示例性实施例中,所述N为3次。
如图3所示,软件在启动一个编程操作后,硬件将数据写入到存储空间中,然后等待一段时间进行回读校验,如果回读校验正确,则返回编程正确信息给软件;如果回读校验错误,硬件则自动再进行一次编程操作和回读校验,如果回读校验正确,同样返回编程正确信息给软件;如果回读校验错误,则再启动一次编程操作和回读校验,如果回读校验正确,则返回编程正确信息给软件,如果回读校验错误,则返回编程失败信息给软件。整个过程没有擦除操作,如此可解决由于器件老化或磨损带来的编程不可靠问题,提高数据的可靠性。此方案对于EEPROM产品也适用。该方案的核心为编程操作在需要时可以进行多次且中间没有擦除操作,确保数据编程的可靠性。该方案可以以硬件、软件、软硬结合等方式实现。
在一种示例性实施例中,如图4所示,所述处理单元503的执行擦除操作和硬件写操作,包括:
检测所述待写入数据的大小是否是所述存储空间的整页数据;
如果是所述存储空间的整页数据,则对所述存储空间进行页面擦除操作,并将所述待写入数据写入所述存储空间中已擦除的页面。
在一种示例性实施例中,如图4所示,所述处理单元503的执行擦除操作和硬件写操作,还包括:
如果不是所述存储空间的整页数据,则读出所述存储空间与所述待写入数据对应的页面的有效数据到缓存,将所述待写入数据更新到缓存的有效数据中,对所述存储空间进行页面擦除操作,并将缓存的已更新的有效数据写入所述存储空间。
Flash存储器是一种快速的电可擦除、电可编程(写入)的存储器。在用户编程模式下,对Flash存储区域进行擦除操作是整体擦除或者整页擦除(某一起始地址开始的一页),也就是说,不能仅擦除某一字节或一次擦除小于一页。一页可以配置为256字节、512字节、1024字节、2K字节等大小。在对Flash存储区域进行写入操作时,需要先将待写入数据放入随机存取存储器(Random Access Memory,RAM),然后擦除Flash存储器的相应区域并进行写入,可以按字节或字写入。
实施例六 数据写入装置三
如图6所示,本发明实施例还提供了一种数据写入装置,包括回读校验单元601和写入判断单元602,其中:
回读校验单元601,用于在硬件写操作执行完成后,接收回读校验,并检测回读校验是否正确,如果回读校验正确,则发送第一通知至写入判断单元602;如果回读校验不正确,则发送第二通知至写入判断单元602;
写入判断单元602,用于接收到回读校验单元601的第一通知,确定数据写入成功;接收到回读校验单元601的第二通知,检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;如果执行次数小于或等于N,则不执行擦除操作并直接再执行一次硬件写操作,通知回读校验单元601硬件写操作执行完成。
在一种示例性实施例中,所述N为3次。
如图3所示,软件在启动一个编程操作后,硬件将数据写入到存储空间中,然后等待一段时间进行回读校验,如果回读校验正确,则返回编程正确信息给软件;如果回读校验错误,硬件则自动再进行一次编程操作和回读校验,如果回读校验正确,同样返回编程正确信息给软件;如果回读校验错误,则再启动一次编程操作和回读校验,如果回读校验正确,则返回编程正确信息给软件,如果回读校验错误,则返回编程失败信息给软件。整个过程没有擦除操作,如此可解决由于器件老化或磨损带来的编程不可靠问题,提高数据的可靠性。此方案对于EEPROM产品也适用。该方案的核心为编程操作在需要时可以进行多次且中间没有擦除操作,确保数据编程的可靠性。该方案可以以硬件、软件、软硬结合等方式实现。
在一种示例性实施例中,在执行所述硬件写操作时,所述写入判断单元602还用于:
检测待写入数据是否与擦除后的数据相同;
如果待写入数据与擦除后的数据相同,则不执行硬件写操作;
如果待写入数据与擦除后的数据不相同,则执行硬件写操作。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (11)
1.一种数据写入方法,其特征在于,包括:
接收数据写入请求;
检测预设大小的存储空间的数据是否是擦除后的数据;
如果是擦除后的数据,则不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;
如果不是擦除后的数据,则执行擦除操作和硬件写操作。
2.根据权利要求1所述的方法,其特征在于,所述执行擦除操作和硬件写操作,包括:
检测所述待写入数据的大小是否是所述存储空间的整页数据;
如果是所述存储空间的整页数据,则对所述存储空间进行页面擦除操作,并将所述待写入数据写入所述存储空间中已擦除的页面。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果不是所述存储空间的整页数据,则读出所述存储空间与所述待写入数据对应的页面的有效数据到缓存,将所述待写入数据更新到缓存的有效数据中,对所述存储空间进行页面擦除操作,并将缓存的已更新的有效数据写入所述存储空间。
4.根据权利要求1至3任一所述的方法,其特征在于,在执行硬件写操作时,所述方法还包括:
检测所述待写入数据是否与所述擦除后的数据相同;
如果所述待写入数据与所述擦除后的数据相同,则不执行硬件写操作;
如果所述待写入数据与所述擦除后的数据不相同,则执行硬件写操作。
5.根据权利要求1至3任一所述的方法,其特征在于,在所述硬件写操作执行完成后,所述方法还包括:
接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作而直接再执行一次硬件写操作,并返回所述接收回读校验的步骤。
6.一种数据写入方法,其特征在于,包括:
在硬件写操作执行完成后,接收回读校验,并检测回读校验是否正确;
如果回读校验正确,则确定数据写入成功;
如果回读校验不正确,则检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;
如果执行次数小于或等于N,则不执行擦除操作并直接再执行一次硬件写操作,返回所述接收回读校验的步骤。
7.根据权利要求6所述的方法,其特征在于,在执行所述硬件写操作时,所述方法还包括:
检测待写入数据是否与擦除后的数据相同;
如果待写入数据与擦除后的数据相同,则不执行硬件写操作;
如果待写入数据与擦除后的数据不相同,则执行硬件写操作。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至权利要求7中任一项所述的数据写入方法的步骤。
9.一种数据写入装置,其特征在于,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如权利要求1至权利要求7中任一项所述的数据写入方法的步骤。
10.一种数据写入装置,其特征在于,包括接收单元、检测单元和处理单元,其中:
接收单元,用于接收数据写入请求,通知检测单元;
检测单元,用于接收到接收单元的通知,检测预设大小的存储空间的数据是否是擦除后的数据;如果是擦除后的数据,发送第一通知至处理单元;如果不是擦除后的数据,发送第二通知至处理单元;
处理单元,用于接收到检测单元的第一通知,不执行擦除操作而直接执行硬件写操作,所述硬件写操作包括将待写入数据写入所述预设大小的存储空间;接收到检测单元的第二通知,执行擦除操作和硬件写操作。
11.一种数据写入装置,其特征在于,包括回读校验单元和写入判断单元,其中:
回读校验单元,用于在硬件写操作执行完成后,接收回读校验,并检测回读校验是否正确,如果回读校验正确,则发送第一通知至写入判断单元;如果回读校验不正确,则发送第二通知至写入判断单元;
写入判断单元,用于接收到回读校验单元的第一通知,确定数据写入成功;接收到回读校验单元的第二通知,检测所述硬件写操作的执行次数,如果执行次数大于N,则确定数据写入失败,其中,N为大于或等于2的自然数;如果执行次数小于或等于N,则不执行擦除操作并直接再执行一次硬件写操作,通知回读校验单元硬件写操作执行完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493272.2A CN110286853B (zh) | 2019-06-06 | 2019-06-06 | 一种数据写入方法和装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493272.2A CN110286853B (zh) | 2019-06-06 | 2019-06-06 | 一种数据写入方法和装置、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110286853A true CN110286853A (zh) | 2019-09-27 |
CN110286853B CN110286853B (zh) | 2024-02-06 |
Family
ID=68003677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910493272.2A Active CN110286853B (zh) | 2019-06-06 | 2019-06-06 | 一种数据写入方法和装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110286853B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826114A (zh) * | 2019-10-28 | 2020-02-21 | 深圳忆联信息系统有限公司 | 基于ssd安全擦除后的用户数据测试方法和装置 |
CN112256203A (zh) * | 2020-10-26 | 2021-01-22 | 山东盖特航空科技有限公司 | Flash存储器的写入方法、装置、设备、介质及系统 |
CN112540729A (zh) * | 2020-12-11 | 2021-03-23 | 捷德(中国)科技有限公司 | 数据下载的方法、装置、智能卡及存储介质 |
CN112579000A (zh) * | 2019-09-30 | 2021-03-30 | 国际商业机器公司 | 数据集覆盖保护 |
CN113409881A (zh) * | 2021-06-28 | 2021-09-17 | 芯天下技术股份有限公司 | 闪存擦除中断恢复测试方法、装置、电子设备及存储介质 |
CN113467698A (zh) * | 2020-03-30 | 2021-10-01 | 珠海全志科技股份有限公司 | 基于文件系统的写方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363125A (en) * | 1979-12-26 | 1982-12-07 | International Business Machines Corporation | Memory readback check method and apparatus |
US6185134B1 (en) * | 1998-12-10 | 2001-02-06 | Kabushiki Kaisha Toshiba | Flash memory control method, flash memory system using the control method and flash memory device using the control method |
CN106021122A (zh) * | 2016-05-12 | 2016-10-12 | 青岛海信宽带多媒体技术有限公司 | 光模块中闪存数据的写入方法及装置 |
CN106571163A (zh) * | 2016-11-04 | 2017-04-19 | 上海华虹集成电路有限责任公司 | 非易失性存储器编程方法 |
CN107291639A (zh) * | 2017-06-22 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种提高总线读写稳定性的方法和装置 |
-
2019
- 2019-06-06 CN CN201910493272.2A patent/CN110286853B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363125A (en) * | 1979-12-26 | 1982-12-07 | International Business Machines Corporation | Memory readback check method and apparatus |
US6185134B1 (en) * | 1998-12-10 | 2001-02-06 | Kabushiki Kaisha Toshiba | Flash memory control method, flash memory system using the control method and flash memory device using the control method |
CN106021122A (zh) * | 2016-05-12 | 2016-10-12 | 青岛海信宽带多媒体技术有限公司 | 光模块中闪存数据的写入方法及装置 |
CN106571163A (zh) * | 2016-11-04 | 2017-04-19 | 上海华虹集成电路有限责任公司 | 非易失性存储器编程方法 |
CN107291639A (zh) * | 2017-06-22 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种提高总线读写稳定性的方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579000A (zh) * | 2019-09-30 | 2021-03-30 | 国际商业机器公司 | 数据集覆盖保护 |
CN110826114A (zh) * | 2019-10-28 | 2020-02-21 | 深圳忆联信息系统有限公司 | 基于ssd安全擦除后的用户数据测试方法和装置 |
CN113467698A (zh) * | 2020-03-30 | 2021-10-01 | 珠海全志科技股份有限公司 | 基于文件系统的写方法、装置、计算机设备和存储介质 |
CN112256203A (zh) * | 2020-10-26 | 2021-01-22 | 山东盖特航空科技有限公司 | Flash存储器的写入方法、装置、设备、介质及系统 |
CN112256203B (zh) * | 2020-10-26 | 2023-04-28 | 山东盖特航空科技有限公司 | Flash存储器的写入方法、装置、设备、介质及系统 |
CN112540729A (zh) * | 2020-12-11 | 2021-03-23 | 捷德(中国)科技有限公司 | 数据下载的方法、装置、智能卡及存储介质 |
CN113409881A (zh) * | 2021-06-28 | 2021-09-17 | 芯天下技术股份有限公司 | 闪存擦除中断恢复测试方法、装置、电子设备及存储介质 |
CN113409881B (zh) * | 2021-06-28 | 2023-07-04 | 芯天下技术股份有限公司 | 闪存擦除中断恢复测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110286853B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110286853A (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN112596672B (zh) | 主控芯片的存储处理方法及装置、处理器和电子设备 | |
CN106340312A (zh) | 磁盘装置及磁盘装置的控制方法 | |
US9665448B2 (en) | Semiconductor integrated circuit | |
CN112542199B (zh) | 检测flash存储出错的方法、电路、存储介质和终端 | |
CN111785315B (zh) | 降低擦除干扰和擦除时间的方法、系统、存储介质及终端 | |
CN113348110B (zh) | 电子控制装置、电子控制装置的安全验证方法 | |
US7334170B2 (en) | Method for resolving parameters of DRAM | |
US7725806B2 (en) | Method and infrastructure for recognition of the resources of a defective hardware unit | |
CN108985402B (zh) | 一种raid卡信息获取方法及相关装置 | |
CN111221681A (zh) | 一种存储器的修复方法及装置 | |
CA3002704C (en) | A method performed by an electronic device capable of communicating with a reader with improved self-testing | |
US10922023B2 (en) | Method for accessing code SRAM and electronic device | |
CN108231134B (zh) | Ram良率补救方法及装置 | |
CN108595123B (zh) | 移动终端的数据存储方法及装置 | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
CN108874318A (zh) | 固态硬盘的数据恢复方法以及固态硬盘 | |
CN110647455A (zh) | 一种存储设备重启记录方法和系统 | |
CN114385379B (zh) | 板载信息刷写检测方法、系统、终端及存储介质 | |
CN117112322A (zh) | 服务器的硬盘的vroc适配性检测方法、装置及存储介质 | |
CN117744061A (zh) | 内存条的处理方法及装置、存储介质及电子设备 | |
CN115827345A (zh) | 一种应用于SSD的PCIe Reset测试方法、系统及存储介质 | |
CN117408196A (zh) | 一种芯片仿真的方法及仿真器 | |
CN113448769A (zh) | 参数备份方法及其装置、参数恢复方法及其装置 | |
CN114237961A (zh) | 硬件故障隔离方法、装置及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |