CN111863096B - 一种NOR flash存储器读数据的方法和装置 - Google Patents
一种NOR flash存储器读数据的方法和装置 Download PDFInfo
- Publication number
- CN111863096B CN111863096B CN201910356966.1A CN201910356966A CN111863096B CN 111863096 B CN111863096 B CN 111863096B CN 201910356966 A CN201910356966 A CN 201910356966A CN 111863096 B CN111863096 B CN 111863096B
- Authority
- CN
- China
- Prior art keywords
- erasing
- instruction
- address
- memory cell
- programming
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
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)
Abstract
本发明提供了一种NOR flash存储器读数据的方法和装置。所述方法包括:接收暂停编程指令,暂时停止编程操作,根据接收的擦除操作指令执行擦除操作,接收暂停擦除指令,暂时停止擦除操作,在编程操作和擦除操作同时暂时停止期间,接收到读操作指令,若所需执行读操作的存储单元的地址未处于编程操作对应的存储单元的地址范围加擦除操作对应的存储单元的地址范围内,对所需执行读操作的存储单元执行读操作。本发明实现了NOR flash存储器支持在编程操作的过程中暂时停止编程操作去进行擦除操作,并在擦除操作过程中暂时停止擦除操作去进行读操作,丰富了NOR flash存储器的功能,提高了NOR flash存储器使用的灵活性,有利于NOR flash存储器的技术发展和推广,提升了用户使用感。
Description
技术领域
本发明涉及存储领域,尤其涉及一种NOR flash存储器读数据的方法和装置。
背景技术
目前NOR flash存储器的应用的领域越来越广泛,NOR flash存储器的特点是芯片内执行,这样应用程序可以直接在NOR flash存储器内运行,不必再把代码读到系统RAM中,NOR flash存储器的传输效率很高,在1~4MB的小容量时具有很高的成本效益。
目前针对NOR flash存储器,一些简单的应用例如编程、擦除、读取已经不能满足NOR flash存储器技术发展的需求,需要为NOR flash存储器提供更多的更复杂的应用,以使得NOR flash存储器可以运用到更广的范围。
目前NOR flash存储器支持在编程操作的过程中暂时停止编程操作,去进行读取操作,方法是在编程操作进行的过程中,发送编程暂停指令,之后再发送读操作指令,就可以实现在编程操作的过程中进行读操作的功能。但目前NOR flash存储器对一些更复杂的操作并不支持,这限制了NOR flash存储器的功能,不利于NOR flash存储器的技术发展和推广,用户的使用感也不好。
发明内容
本发明提供的一种NOR flash存储器读数据的方法和装置,解决了目前NOR flash存储器对一些更复杂的操作并不支持的问题。
为了解决上述技术问题,本发明实施例提供了一种NOR flash存储器读数据的方法,所述方法应用于NOR flash存储器,所述NOR flash存储器包括:存储单元和控制单元,所述方法包括:
接收暂停编程指令;
根据所述暂停编程指令,暂时停止编程操作的进程,并通过所述控制单元记录所述编程操作对应的存储单元的地址;
在所述编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作;
在执行所述擦除操作的过程中,若接收到暂停擦除指令,则根据所述暂停擦除指令,暂时停止擦除操作的进程,并通过所述控制单元记录所述擦除操作对应的存储单元的地址;
在所述编程操作和所述擦除操作的进程同时暂时停止期间,若接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内,其中,所述读操作指令包括:所需执行读操作的存储单元的地址;
若所述所需执行读操作的存储单元的地址未处于所述编程操作对应的存储单元的地址范围内,且未处于所述擦除操作对应的存储单元的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
可选地,暂时停止编程操作的进程,并通过所述控制单元记录所述编程操作对应的存储单元的地址,包括:
暂时停止编程操作的进程,并通过所述控制单元记录编程现场,所述编程现场为暂停所述NOR flash存储器编程操作时编程进行的状态,所述编程现场包括:
编程操作对应的存储单元的地址、待编程的数据以及编程循环次数。
可选地,暂时停止擦除操作的进程,并通过所述控制单元记录所述擦除操作对应的存储单元的地址,包括:
暂时停止擦除操作的进程,并通过所述控制单元记录擦除现场,所述擦除现场为暂停所述NOR flash存储器擦除操作时擦除进行的状态,所述擦除现场包括:
擦除操作对应的存储单元的地址和擦除循环次数。
可选地,在判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内之后,所述方法还包括:
若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
可选地,在不对所述所需执行读操作的存储单元执行所述读操作后,所述方法还包括:
若接收到恢复擦除指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令;
根据所述恢复擦除指令和擦除现场,恢复所述擦除操作指令对应的擦除操作,所述擦除现场为暂停所述NOR flash存储器擦除操作时擦除进行的状态。
可选地,若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址范围内,在对所述所需执行读操作的存储单元执行所述读操作后,所述方法还包括:
若未接收到恢复擦除指令,则继续执行所述暂停擦除指令,等待下一操作指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令。
可选地,在所述编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作,包括:
在所述编程操作的进程暂时停止期间,接收擦除操作指令,所述擦除操作指令包括:所需执行擦除操作的存储单元的地址;
判断所述所需执行擦除操作的存储单元的地址是否包含所述编程操作对应的存储单元的地址;
若所述所需执行擦除操作的存储单元的地址不包含所述编程操作对应的存储单元的地址,则对所述所需执行擦除操作的存储单元执行所述擦除操作。
本发明实施例还提供了一种NOR flash存储器读数据的装置,所述装置应用于NORflash存储器,所述NOR flash存储器包括:存储单元和控制单元,所述装置包括:
第一接收模块,用于接收暂停编程指令;
暂停编程记录模块,用于根据所述暂停编程指令,暂时停止编程操作的进程,并通过所述控制单元记录所述编程操作对应的存储单元的地址;
执行擦除模块,用于在所述编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作;
暂停擦除记录模块,用于在执行所述擦除操作的过程中,若接收到暂停擦除指令,则根据所述暂停擦除指令,暂时停止擦除操作的进程,并通过所述控制单元记录所述擦除操作对应的存储单元的地址;
判断模块,用于在所述编程操作和所述擦除操作的进程同时暂时停止期间,若接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内,其中,所述读操作指令包括:所需执行读操作的存储单元的地址;
执行读模块,用于若所述所需执行读操作的存储单元的地址未处于所述编程操作对应的存储单元的地址范围内,且未处于所述擦除操作对应的存储单元的地址的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
可选地,所述执行读模块还用于:
若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
可选地,所述装置还包括:
第二接收模块,用于若接收到恢复擦除指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令;
恢复模块,用于根据所述恢复擦除指令和擦除现场,恢复所述擦除操作指令对应的擦除操作,所述擦除现场为暂停所述NOR flash存储器擦除操作时擦除进行的状态;
继续等待模块,用于若未接收到恢复擦除指令,则继续执行所述暂停擦除指令,等待下一操作指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令。
与现有技术相比,本发明提供的一种NOR flash存储器读数据的方法和装置,在编程操作过程中,接收暂停编程指令,暂时停止编程操作的进程并记录编程操作对应的存储单元的地址,之后再接收擦除操作指令,在擦除操作的过程中,接收到暂停擦除指令,暂时停止擦除操作的进程并记录擦除操作对应的存储单元的地址,在编程操作和擦除操作的进程同时暂时停止期间,接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于擦除操作对应的存储单元的地址范围内,若所需执行读操作的存储单元的地址未处于编程操作对应的存储单元的地址范围内,且未处于擦除操作对应的存储单元的地址的地址范围内,则对所需执行读操作的存储单元执行读操作。本发明实现了NOR flash存储器支持在编程操作的过程中暂时停止编程操作,去进行擦除操作,并且在擦除操作过程中暂时停止擦除操作,去进行读操作这样的嵌套操作,极大丰富了NOR flash存储器的功能,提高了NOR flash存储器使用的灵活性,有利于NOR flash存储器的技术发展和推广,提升了用户使用感。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种NOR flash存储器读数据的方法的流程图;
图2是本发明实施例在步骤106之后,读数据的方法的另一流程图;
图3是本发明实施例的设备示意图;
图4是本发明实施例一种NOR flash存储器读数据的装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前NOR flash存储器在使用过程中,需要NOR flash存储器可以实现包括但不限于纯粹的编程、读取、擦除等操作的功能,例如用户在对NOR flash存储器编程时,可能因为各种因素,需要紧急去执行其它操作,但是由于NOR flash存储器自身的特性,NOR flash存储器只能进行一项操作,所以就需要等待整个编程操作结束后,才可以去进行下一个操作,而完成编程操作需要的时间根据需要写入数量的大小来决定,如果一次编程操作需要写入的数据量较大的话,那么完成编程操作的时间就较长,则需要紧急去执行其它操作时就只能等待编程操作完成之后再进行,这样就可能需要等待很长时间。假如NOR flash存储器在编程操作的过程中需要暂停编程操作去进行擦除操作,擦除操作只能等待整个编程操作完成之后再去进行,而假如在暂停编程操作期间进行擦除操作时,又需要去进行读操作,那么又得等待擦除操作结束后,才可以进行读操作,而一般完成擦除操作需要的时间更长,这极大的限制了NOR flash存储器的技术发展和推广,并且NOR flash存储器的用户使用感也不好。为了解决了上述问题,本申请提出了一种NOR flash存储器编程暂停过程中,嵌套擦除暂停进行读操作的方法,以下对该方法进行解释和说明。
图1示出了本发明实施例的一种NOR flash存储器读数据方法的流程图。该方法应用于NOR flash存储器,NOR flash存储器包括:存储单元和控制单元,读数据的方法包括如下步骤:
步骤101:接收暂停编程指令。
本发明实施例中,NOR flash存储器包括:存储单元和控制单元,其中控制单元为NOR flash存储器中用于记录编程暂停时编程进行的状态和记录擦除暂停时擦除进行的状态。当需要暂时停止编程操作时,首先需要上位机发送一个暂停编程的指令,NOR flash存储器会接收到该暂停编程的指令。
步骤102:根据暂停编程指令,暂时停止编程操作的进程,并通过控制单元记录编程操作对应的存储单元的地址。
本发明实施例中,NOR flash存储器接收到暂停编程的指令之后,会执行该指令,暂时停止编程操作的进程。需要说明的是,假设NOR flash存储器在进行编程操作的过程中,只有暂停编程的指令可以暂时停止编程操作,而若是NOR flash存储器在进行编程操作的过程中,NOR flash存储器接收到其他任何指令,例如擦除操作指令、读操作指令等,都不会暂时停止或者直接停止编程操作,而是会继续进行编程操作。
可选地,暂时停止编程操作的进程,并通过控制单元记录编程操作对应的存储单元的地址具体步骤为:
暂时停止编程操作的进程,并通过控制单元记录编程现场,编程现场为暂停NORflash存储器编程操作时编程进行的状态,编程现场包括:
编程操作对应的存储单元的地址、待编程的数据以及编程循环次数。本发明实施例中,NOR flash存储器暂时停止编程操作的进程后,通过控制单元记录NOR flash存储器暂停编程操作时编程进行的状态,该编程现场包括:编程操作对应的存储单元的地址、待编程的数据以及编程循环次数,其中编程操作对应的存储单元的地址是根据NOR flash存储器自身的规则来记录的,例如NOR flash存储器暂时停止编程操作时,可能会记录该次编程操作所需写入数据的所有存储单元的起始地址和最终地址,也可能只单独记录该次编程操作所需写入数据的所有存储单元的起始地址,或者单独记录最终地址,也可能是记录的该次编程操作在暂时停止时最后写入数据的存储单元的地址,本发明实施例对此不做具体限定。
待编程的数据是编程操作需要写入存储单元的数据,NOR flash存储器暂时停止编程操作时,会记录待写入存储单元的数据,以待后续编程操作再次恢复时,继续将待写入存储单元的数据写入对应的存储单元。编程循环次数是NOR flash存储器完成整个编程操作需要执行编程验证操作和编程加压操作的循环次数。记录编程现场的原因是在后续恢复编程操作时,可以根据编程现场的数据,正确的恢复被暂时停止的编程操作。
步骤103:在编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作。
本发明实施例中,在编程操作的进程暂时停止期间,在控制单元记录好编程现场之后,NOR flash存储器接收到擦除操作指令,而擦除操作的指令包括:所需执行擦除操作的存储单元的地址。NOR flash存储器中擦除操作是以块为单位进行擦除操作,而编程操作是以页为单位进行编程操作,一个块包括多个页,所需执行擦除操作的存储单元的地址即是一个块的地址,包括该块的起始地址到最终地址。NOR flash存储器根据擦除操作指令执行擦除操作。
可选地,步骤103具体包括:
步骤103a:在编程操作的进程暂时停止期间,接收擦除操作指令,擦除操作指令包括:所需执行擦除操作的存储单元的地址。
本发明实施例中,NOR flash存储器在编程操作的进程暂时停止期间,接收到擦除操作指令,而擦除操作的指令包括:所需执行擦除操作的存储单元的地址。NOR flash存储器中擦除操作是以块为单位进行擦除操作,而编程操作是以页为单位进行编程操作,一个块包括多个页,所需执行擦除操作的存储单元的地址即是一个块的地址,包括该块的起始地址到最终地址。
步骤103b:判断所需执行擦除操作的存储单元的地址是否包含编程操作对应的存储单元的地址。
本发明实施例中,NOR flash存储器接收到擦除操作的指令之后,需要判断所需执行擦除操作的存储单元的地址是否包含编程操作对应的存储单元的地址。因为进行擦除操作对应的存储单元的地址范围大于编程操作对应的存储单元的地址,所以编程操作对应的存储单元的地址可能会落入所需执行擦除操作的存储单元的地址范围内,或者编程操作对应的存储单元的地址可能不会落入所需执行擦除操作的存储单元的地址范围内。需要说明的是,若是NOR flash存储器并不是在暂停编程的过程中接收到擦除指令的话,那么NORflash存储器会继续进行编程操作,不会响应擦除操作指令。
步骤103c:若所需执行擦除操作的存储单元的地址不包含编程操作对应的存储单元的地址,则对所需执行擦除操作的存储单元执行擦除操作。
本发明实施例中,若判断结果是:所需执行擦除操作的存储单元的地址不包含编程操作对应的存储单元的地址,例如:所需执行擦除操作的存储单元的地址是:0000H~0FFFH,而编程操作对应的存储单元的地址不在0000H~0FFFH这个地址范围内,则对所需执行擦除操作的存储单元执行擦除操作,即对地址0000H~0FFFH的存储单元执行擦除操作。若判断结果是:所需执行擦除操作的存储单元的地址包含编程操作对应的存储单元的地址,例如:所需执行擦除操作的存储单元的地址是:0000H~0FFFH,而编程操作对应的存储单元的地址在0000H~0FFFH这个地址范围内,则不执行擦除操作的指令对应的擦除操作,即不对地址0000H~0FFFH的存储单元执行擦除操作。
通过上述方案就实现了在编程操作的进程暂时停止期间,进行擦除操作。
步骤104:在执行擦除操作的过程中,若接收到暂停擦除指令,则根据暂停擦除指令,暂时停止擦除操作的进程,并通过控制单元记录擦除操作对应的存储单元的地址。
本发明实施例中,在NOR flash存储器执行擦除操作的过程中,再接收到暂停擦除的指令,则根据暂停擦除的指令,暂时停止擦除操作的进程,即此时NOR flash存储器同时处于编程暂停过程和擦除暂停过程,之后NORflash存储器通过控制单元记录擦除操作对应的存储单元的地址。
可选地,暂时停止擦除操作的进程,并通过控制单元记录擦除操作对应的存储单元的地址具体步骤为:
暂时停止擦除操作的进程,并通过控制单元记录擦除现场,擦除现场为暂停NORflash存储器擦除操作时擦除进行的状态,擦除现场包括:
擦除操作对应的存储单元的地址和擦除循环次数。本发明实施例中,NOR flash存储器暂时停止擦除操作的进程后,通过控制单元记录NOR flash存储器暂停擦除操作时编程进行的状态,该编程现场包括:擦除操作对应的存储单元的地址和擦除循环次数,其中擦除操作对应的存储单元的地址是根据NOR flash存储器自身的规则来记录的,因为擦除操作是以块为单位进行的,因此擦除操作对应的存储单元的地址就为进行擦除操作对应的存储单元所属的块的地址。擦除循环次数是NOR flash存储器完成整个擦除操作需要执行擦除验证操作和擦除加压操作的循环次数。同样的,记录擦除现场的原因是在后续恢复擦除操作时,可以根据擦除现场的数据,正确的恢复被暂时停止的擦除操作。
步骤105:在编程操作和擦除操作的进程同时暂时停止期间,若接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于擦除操作对应的存储单元的地址范围内,其中,读操作指令包括:所需执行读操作的存储单元的地址。
本发明实施例中,当NOR flash存储器处在编程操作和擦除操作的进程同时暂时停止期间,若接收到读操作指令,读操作的指令包括:所需执行读操作的存储单元的地址,NOR flash存储器需要同时判断所需执行读操作的存储单元的地址是否处于编程操作对应的存储单元的地址范围内,并且是否处于擦除操作对应的存储单元的地址范围内。因为在编程暂停的过程中可以进行擦除操作,那么擦除操作对应的存储单元的地址范围肯定与编程操作对应的存储单元的地址范围不存在包含的情况,而所需执行读操作的存储单元的地址可能不会处于编程操作对应的存储单元的地址范围内加上擦除操作对应的存储单元的地址范围内,或者所需执行读操作的存储单元的地址可能会处于编程操作对应的存储单元的地址范围加上擦除操作对应的存储单元的地址范围内。
步骤106:若所需执行读操作的存储单元的地址未处于编程操作对应的存储单元的地址范围内,且未处于擦除操作对应的存储单元的地址的地址范围内,则对所需执行读操作的存储单元执行读操作。
本发明实施例中,若判断结果是:所需执行读操作的存储单元的地址未处于编程操作对应的存储单元的地址范围内,且未处于擦除操作对应的存储单元的地址的地址范围内,例如:所需执行擦除操作的存储单元的地址范围是:0000H~0FFFH,编程操作对应的存储单元的地址范围是:1000H~1100H,而所需执行读操作的存储单元的地址是:1101H,则对所需执行读操作的存储单元执行读操作,即对地址1101H的存储单元执行读操作,并且读取的地址1101H的存储单元中数据是正确的。若判断结果是:所需执行读操作的存储单元的地址处于编程操作对应的存储单元的地址范围内,或者所需执行读操作的存储单元的地址处于擦除操作对应的存储单元的地址的地址范围内,例如:所需执行擦除操作的存储单元的地址范围是:0000H~0FFFH,编程操作对应的存储单元的地址在范围是:1000H~1100H,而所需执行读操作的存储单元的地址是:1011H,处于编程操作对应的存储单元的地址在范围内,则依然对所需执行读操作的存储单元执行读操作,即对地址1011H的存储单元执行读操作;若所需执行读操作的存储单元的地址是:0011H,处于擦除操作对应的存储单元的地址在范围内,也也对所需执行读操作的存储单元执行读操作,即对地址0011H的存储单元执行读操作。但对1011H或者0011H的存储单元执行读操作读出的数据的正确性不能保证。
可选地,参照图2,在不对所需执行读操作的存储单元执行读操作后,读数据的方法还包括:
步骤107:若接收到恢复擦除指令,恢复擦除指令为针对暂停擦除指令恢复擦除操作的指令。
本发明实施例中,NOR flash存储器若接收到恢复擦除指令,则需要恢复擦除操作的指令对应的擦除操作,因恢复擦除指令是针对暂停擦除指令,当NOR flash存储器接收到恢复擦除指令后,就需要恢复暂停的擦除操作,继续进行擦除操作。
步骤108:根据恢复擦除指令和擦除现场,恢复擦除操作指令对应的擦除操作,擦除现场为暂停NOR flash存储器擦除操作时擦除进行的状态。
本发明实施例中,恢复擦除操作的指令对应的擦除操作需要根据恢复擦除指令和擦除现场,因为擦除现场记录了NOR flash存储器暂停擦除操作时擦除操作对应的存储单元的地址和擦除循环次数,再次恢复擦除操作时,需要根据这些记录,就可以正确的继续进行未完的擦除操作。
步骤109:若未接收到恢复擦除指令,则继续执行暂停擦除指令,等待下一操作指令,恢复擦除指令为针对暂停擦除指令恢复擦除操作的指令。
本发明实施例中,NOR flash存储器在执行读操作的指令对应的读操作之后,若未接收到恢复擦除指令,则继续执行暂停擦除指令,即继续维持暂停擦除操作的状态,等待下一操作指令,若下一个操作指令依然为读操作指令,则再重复步骤105、步骤106。当然NORflash存储器继续维持暂停擦除操作的状态时,接收到了恢复擦除指令,则按照步骤107、步骤108去执行。
在正确完成擦除操作之后,若是接收到恢复编程指令,恢复编程指令为针对暂停编程指令恢复编程操作的指令。恢复编程操作的指令对应的编程操作需要根据恢复编程指令和编程现场,因为编程现场记录了NOR flash存储器暂停编程操作时编程操作对应的存储单元的地址、待编程的数据以及编程循环次数,再次恢复编程操作时,需要根据这些记录,就可以正确的继续进行未完的编程操作。
参照图3,示出了本发明实施例的设备示意图,NOR flash存储器包括:存储单元和控制单元。上位机与NOR flash存储器连接,用于向NOR flash存储器发送各种指令。
在对NOR flash存储器进行编程操作的过程中,若是需要进行擦除操作,首先通过上位机向NOR flash存储器发送暂停编程的指令,NOR flash存储器接收到暂停编程的指令之后,会执行该指令,暂时停止编程操作的进程。通过控制单元记录编程现场,包括:编程操作需要写入数据的存储单元的地址范围:0000H~0666H;待写入存储单元的待编程的数据以及编程循环次数8。
通过上位机向NOR flash存储器发送擦除操作的指令,擦除操作的指令包括:所需执行擦除操作的存储单元的地址:1000H~1FFFH,NOR flash存储器接收到擦除操作的指令后,对地址范围1000H~1FFFH的存储单元进行擦除操作,在擦除操作的过程中,又需要进行读操作,则通过上位机向NORflash存储器发送暂停擦除的指令,NOR flash存储器接收到暂停擦除的指令之后,会执行该指令,暂时停止擦除操作的进程。通过控制单元记录擦除现场,包括:擦除操作需要擦除数据的存储单元的地址范围:1000H~1FFFH;擦除循环次数6。
通过上位机向NOR flash存储器发送读操作的指令,读操作的指令包括的所需读取数据的存储单元地址为:2019H,判断所需执行读操作的存储单元的地址2019H未处于编程操作对应的存储单元的地址范围:0000H~0666H,也未处于擦除操作对应的存储单元的地址范围:1000H~1FFFH,则对地址2019H的存储单元执行读操作,并且读取出的数据是正确的。
若暂时停止编程操作的进程和擦除操作时,通过上位机向NOR flash存储器发送读操作的指令,读操作的指令包括:所需执行读操作的存储单元的地址:1002H,NOR flash存储器接收到读操作的指令后,判断所需执行读操作的存储单元的地址1002H处于擦除操作对应的存储单元的地址范围:1000H~1FFFH,则仍然对地址1002H的存储单元执行读操作,但读取出的数据可能是错误的,不能保证数据读取的正确性。之后若NOR flash存储器接收到恢复擦除指令,则根据:擦除操作需要擦除数据的存储单元的地址范围:1000H~1FFFH和擦除循环次数6,继续执行未完的擦除操作。
参照图4,本发明实施例还提供了一种NOR flash存储器读数据的装置,该装置应用于NOR flash存储器,NOR flash存储器包括:存储单元和控制单元,读数据的装置包括:
第一接收模块310,用于接收暂停编程指令;
暂停编程记录模块320,用于根据暂停编程指令,暂时停止编程操作的进程,并通过控制单元记录编程操作对应的存储单元的地址;
执行擦除模块330,用于在编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作;
暂停擦除记录模块340,用于在执行擦除操作的过程中,若接收到暂停擦除指令,则根据暂停擦除指令,暂时停止擦除操作的进程,并通过控制单元记录擦除操作对应的存储单元的地址;
判断模块350,用于在所述编程操作和所述擦除操作的进程同时暂时停止期间,若接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内,其中,所述读操作指令包括:所需执行读操作的存储单元的地址;
执行读模块360,用于若所述所需执行读操作的存储单元的地址未处于所述编程操作对应的存储单元的地址范围内,且未处于所述擦除操作对应的存储单元的地址的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
可选地,执行读模块360还用于:
若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
可选地,读数据的装置还包括:
第二接收模块370,用于若接收到恢复擦除指令,恢复擦除指令为针对暂停擦除指令恢复擦除操作的指令;
恢复模块380,用于根据恢复擦除指令和擦除现场,恢复擦除操作指令对应的擦除操作,擦除现场为暂停NOR flash存储器擦除操作时擦除进行的状态;
继续等待模块390,用于若未接收到恢复擦除指令,则继续执行暂停擦除指令,等待下一操作指令,恢复擦除指令为针对暂停擦除指令恢复擦除操作的指令。
通过上述实施例,本发明在编程操作过程中,接收暂停编程指令,暂时停止编程操作的进程并记录编程操作对应的存储单元的地址、待编程的数据以及编程循环次数,再接收擦除操作指令,进行擦除操作,之后接收暂停擦除指令,暂时停止擦除操作的进程并记录擦除操作对应的存储单元的地址和擦除循环次数,再接收读操作指令,判断所需执行读操作的存储单元的地址是否处于编程操作对应的存储单元的地址范围加上擦除操作对应的存储单元的地址范围之内,若所需执行读操作的存储单元的地址未处于编程操作对应的存储单元的地址范围加上擦除操作对应的存储单元的地址范围之内,则对所需执行读操作的存储单元执行读操作,若所需执行读操作的存储单元的地址处于编程操作对应的存储单元的地址范围加上擦除操作对应的存储单元的地址范围之内,则依然执行读操作的指令对应的读操作,但读取出的数据可能是错误的。之后,NOR flash存储器若接收到恢复擦除指令,则根据恢复擦除指令和擦除现场,恢复擦除操作指令对应的擦除操作,或者继续执行暂停擦除指令,等待下一读操作指令。本发明实现了NOR flash存储器支持在编程操作的过程中暂时停止编程操作,去进行擦除操作,并且在擦除操作的过程中暂时停止擦除操作,去进行读操作。极大的丰富了NOR flash存储器的功能,提高了NOR flash存储器使用的灵活性,有利于NOR flash存储器的技术发展和推广,提升了用户使用感。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种NOR flash存储器读数据的方法,其特征在于,所述方法应用于NOR flash存储器,所述NOR flash存储器包括:存储单元和控制单元,所述方法包括:
接收暂停编程指令;
根据所述暂停编程指令,暂时停止编程操作的进程,并通过所述控制单元记录所述编程操作对应的存储单元的地址;
在所述编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作;
在执行所述擦除操作的过程中,若接收到暂停擦除指令,则根据所述暂停擦除指令,暂时停止擦除操作的进程,并通过所述控制单元记录所述擦除操作对应的存储单元的地址;
在所述编程操作和所述擦除操作的进程同时暂时停止期间,若接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内,其中,所述读操作指令包括:所需执行读操作的存储单元的地址;
若所述所需执行读操作的存储单元的地址未处于所述编程操作对应的存储单元的地址范围内,且未处于所述擦除操作对应的存储单元的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
2.根据权利要求1所述的方法,其特征在于,暂时停止编程操作的进程,并通过所述控制单元记录所述编程操作对应的存储单元的地址,包括:
暂时停止编程操作的进程,并通过所述控制单元记录编程现场,所述编程现场为暂停所述NOR flash存储器编程操作时编程进行的状态,所述编程现场包括:
编程操作对应的存储单元的地址、待编程的数据以及编程循环次数。
3.根据权利要求1所述的方法,其特征在于,暂时停止擦除操作的进程,并通过所述控制单元记录所述擦除操作对应的存储单元的地址,包括:
暂时停止擦除操作的进程,并通过所述控制单元记录擦除现场,所述擦除现场为暂停所述NOR flash存储器擦除操作时擦除进行的状态,所述擦除现场包括:
擦除操作对应的存储单元的地址和擦除循环次数。
4.根据权利要求1所述的方法,其特征在于,在判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内之后,所述方法还包括:
若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
5.根据权利要求4所述的方法,其特征在于,若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址范围内,在对所述所需执行读操作的存储单元执行所述读操作后,所述方法还包括:
若接收到恢复擦除指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令;
根据所述恢复擦除指令和擦除现场,恢复所述擦除操作指令对应的擦除操作,所述擦除现场为暂停所述NOR flash存储器擦除操作时擦除进行的状态。
6.根据权利要求4所述的方法,其特征在于,若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址范围内,在对所述所需执行读操作的存储单元执行所述读操作后,所述方法还包括:
若未接收到恢复擦除指令,则继续执行所述暂停擦除指令,等待下一操作指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令。
7.根据权利要求1所述的方法,其特征在于,在所述编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作,包括:
在所述编程操作的进程暂时停止期间,接收擦除操作指令,所述擦除操作指令包括:所需执行擦除操作的存储单元的地址;
判断所述所需执行擦除操作的存储单元的地址是否包含所述编程操作对应的存储单元的地址;
若所述所需执行擦除操作的存储单元的地址不包含所述编程操作对应的存储单元的地址,则对所述所需执行擦除操作的存储单元执行所述擦除操作。
8.一种NOR flash存储器读数据的装置,其特征在于,所述装置应用于NOR flash存储器,所述NOR flash存储器包括:存储单元和控制单元,所述装置包括:
第一接收模块,用于接收暂停编程指令;
暂停编程记录模块,用于根据所述暂停编程指令,暂时停止编程操作的进程,并通过所述控制单元记录所述编程操作对应的存储单元的地址;
执行擦除模块,用于在所述编程操作的进程暂时停止期间,根据接收到的擦除操作指令,执行擦除操作;
暂停擦除记录模块,用于在执行所述擦除操作的过程中,若接收到暂停擦除指令,则根据所述暂停擦除指令,暂时停止擦除操作的进程,并通过所述控制单元记录所述擦除操作对应的存储单元的地址;
判断模块,用于在所述编程操作和所述擦除操作的进程同时暂时停止期间,若接收到读操作指令,判断所需执行读操作的存储单元的地址是否处于所述编程操作对应的存储单元的地址范围内,同时判断所需执行读操作的存储单元的地址是否处于所述擦除操作对应的存储单元的地址范围内,其中,所述读操作指令包括:所需执行读操作的存储单元的地址;
执行读模块,用于若所述所需执行读操作的存储单元的地址未处于所述编程操作对应的存储单元的地址范围内,且未处于所述擦除操作对应的存储单元的地址的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
9.根据权利要求8所述的装置,其特征在于,所述执行读模块还用于:
若所述所需执行读操作的存储单元的地址处于所述编程操作对应的存储单元的地址范围内,或处于所述擦除操作对应的存储单元的地址的地址范围内,则对所述所需执行读操作的存储单元执行所述读操作。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于若接收到恢复擦除指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令;
恢复模块,用于根据所述恢复擦除指令和擦除现场,恢复所述擦除操作指令对应的擦除操作,所述擦除现场为暂停所述NOR flash存储器擦除操作时擦除进行的状态;
继续等待模块,用于若未接收到恢复擦除指令,则继续执行所述暂停擦除指令,等待下一操作指令,所述恢复擦除指令为针对所述暂停擦除指令恢复所述擦除操作的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356966.1A CN111863096B (zh) | 2019-04-29 | 2019-04-29 | 一种NOR flash存储器读数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910356966.1A CN111863096B (zh) | 2019-04-29 | 2019-04-29 | 一种NOR flash存储器读数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111863096A CN111863096A (zh) | 2020-10-30 |
CN111863096B true CN111863096B (zh) | 2022-08-30 |
Family
ID=72966379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910356966.1A Active CN111863096B (zh) | 2019-04-29 | 2019-04-29 | 一种NOR flash存储器读数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111863096B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010236B (zh) * | 2021-02-26 | 2024-01-19 | 山东英信计算机技术有限公司 | 一种程序执行方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1238049A (zh) * | 1996-09-20 | 1999-12-08 | 英特尔公司 | 带程序暂停命令的非易失性可写存储器 |
CN103247341A (zh) * | 2004-05-07 | 2013-08-14 | 三星电子株式会社 | 非易失性半导体存储器件 |
CN108074614A (zh) * | 2016-11-11 | 2018-05-25 | 北京兆易创新科技股份有限公司 | 一种提高nor型flash稳定性的方法及装置 |
CN109407991A (zh) * | 2018-10-22 | 2019-03-01 | 湖南国科微电子股份有限公司 | 一种非易失性闪存执行命令的暂停及恢复方法、非易失性闪存及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6940759B2 (en) * | 2003-10-14 | 2005-09-06 | Atmel Corporation | Group erasing system for flash array with multiple sectors |
-
2019
- 2019-04-29 CN CN201910356966.1A patent/CN111863096B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1238049A (zh) * | 1996-09-20 | 1999-12-08 | 英特尔公司 | 带程序暂停命令的非易失性可写存储器 |
CN103247341A (zh) * | 2004-05-07 | 2013-08-14 | 三星电子株式会社 | 非易失性半导体存储器件 |
CN108074614A (zh) * | 2016-11-11 | 2018-05-25 | 北京兆易创新科技股份有限公司 | 一种提高nor型flash稳定性的方法及装置 |
CN109407991A (zh) * | 2018-10-22 | 2019-03-01 | 湖南国科微电子股份有限公司 | 一种非易失性闪存执行命令的暂停及恢复方法、非易失性闪存及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111863096A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI628542B (zh) | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 | |
CN103425597B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
CN101271379B (zh) | 混合密度存储体储存装置及其控制方法 | |
CN102135927B (zh) | 一种基于nand flash的系统引导方法和装置 | |
CN1645516B (zh) | 用于闪速存储器的数据恢复设备和方法 | |
CN106547574A (zh) | 一种dsp程序和fpga程序的外部下载系统及方法 | |
CN110618892B (zh) | 一种固态硬盘的bug定位方法、装置、电子设备及介质 | |
CN101634960A (zh) | 一种修改bios参数及重新生成校验和的方法 | |
CN110058799A (zh) | 存储器装置及操作存储器装置的方法 | |
US20120278544A1 (en) | Flash memory controller | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
CN106293623A (zh) | 微指令序列执行方法及其装置 | |
CN101770404B (zh) | 可保存状态的看门狗电路及其保存重启状态方法 | |
CN111863096B (zh) | 一种NOR flash存储器读数据的方法和装置 | |
CN103514101A (zh) | 存取闪存的方法以及相关的记忆装置 | |
CN103019969A (zh) | 闪存储存装置及其不良储存区域的判定方法 | |
CN101452393A (zh) | 基于pci总线的dsp2812程序在线升级方法 | |
CN106649137B (zh) | 一种Nand Flash坏块管理方法、装置及存储器 | |
CN104142959A (zh) | 基于专家知识数据库的自动化测试装置及方法 | |
CN107452427B (zh) | 一种存储设备数据完整性的测试方法及系统 | |
CN100576187C (zh) | 一种应用程序的开发调试方法及系统 | |
CN111863095B (zh) | 一种NOR flash存储器擦除的方法和装置 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN107885523B (zh) | 一种快速稳定的串口升级软件方法 | |
JP4594944B2 (ja) | メモリ制御装置 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Patentee after: HEFEI GEYI INTEGRATED CIRCUIT Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. Patentee before: HEFEI GEYI INTEGRATED CIRCUIT Co.,Ltd. |