CN117789798A - 一种Flash状态转换时间可调的方法 - Google Patents

一种Flash状态转换时间可调的方法 Download PDF

Info

Publication number
CN117789798A
CN117789798A CN202311829593.8A CN202311829593A CN117789798A CN 117789798 A CN117789798 A CN 117789798A CN 202311829593 A CN202311829593 A CN 202311829593A CN 117789798 A CN117789798 A CN 117789798A
Authority
CN
China
Prior art keywords
state
flash
programming
clock
erasure
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
Application number
CN202311829593.8A
Other languages
English (en)
Other versions
CN117789798B (zh
Inventor
黄思齐
刘杨
谭振平
张锋
黄嵩人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Jinxin Electronic Technology Co ltd
Original Assignee
Hunan Jinxin Electronic Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Jinxin Electronic Technology Co ltd filed Critical Hunan Jinxin Electronic Technology Co ltd
Priority to CN202311829593.8A priority Critical patent/CN117789798B/zh
Publication of CN117789798A publication Critical patent/CN117789798A/zh
Application granted granted Critical
Publication of CN117789798B publication Critical patent/CN117789798B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Read Only Memory (AREA)

Abstract

本发明公开了一种Flash状态转换时间可调的方法,涉及了闪存技术领域,在芯片中设置CPU模块、档位寄存器、Flash状态机控制模块、Flash时序控制模块、Flash存储体和电荷泵;在档位寄存器设置若干时钟有效值;获取目标程序,运行目标程序,配置芯片的系统时钟,依次获取时钟有效值,根据时钟有效值控制可调时钟电路输出时钟频率;通过CPU模块、Flash状态机控制模块、Flash时序控制模块和电荷泵对Flash存储体执行擦除操作,生成擦除键值;同理,对Flash存储体执行编程操作,并生成编程键值;根据擦除键值和编程键值获取时钟最优值,将时钟最优值存储至Flash存储体中;CPU模块从Flash存储体读取时钟最优值,将时钟最优值覆盖原有的时钟有效值。

Description

一种Flash状态转换时间可调的方法
技术领域
本发明涉及闪存技术领域,具体是一种Flash状态转换时间可调的方法。
背景技术
在嵌入式系统中,Flash是一种常用的非易失性存储器,通常用来作为程序空间和数据空间,能够多次擦除编程,简化代码开发。Flash存储器在擦除、编程与验证(verify)过程中通常需要较高的电压,而电荷泵被广泛用于升压以提供所需的高压。Flash存储器在擦除、编程与验证过程中,既要构造合适的擦除、编程和验证的时序,同时也要使得电荷泵输出合适的电压,满足擦除、编程与验证所需要的高压。
现有技术在擦除、编程和验证之间的状态转换时间的控制方面与电荷泵输出合适的高压难做到平衡;既需要擦除、编程和验证之间的状态转换时间最短,同时电荷泵输出合适的高压,还需要在非擦除编程时关闭电荷泵降低功耗,存在一定的难度,需要适当的控制信号来实现。通常采用固定的频率调节电荷泵输出合适的电压,但导致擦除编程的速度不是最理想的。因此,需要在现有技术的基础上进行改进,提出一种能够更准确地调节电荷泵输出电压并控制擦除、编程与读之间状态转换时间的解决方案,以进一步提高Flash存储器擦除编程的速度和效率。
发明内容
为了解决上述问题,本发明的目的在于提供一种Flash状态转换时间可调的方法。
本发明的目的可以通过以下技术方案实现:一种Flash状态转换时间可调的方法,包括以下步骤:
步骤S1:在芯片中设置CPU模块、档位寄存器、Flash状态机控制模块、Flash时序控制模块、Flash存储体和电荷泵;
步骤S2:在档位寄存器设置若干时钟有效值;
步骤S3:获取目标程序,运行目标程序,通过CPU模块配置芯片的系统时钟,依次获取时钟有效值,根据时钟有效值控制可调时钟电路输出时钟频率;
步骤S4:通过CPU模块、Flash状态机控制模块、Flash时序控制模块和电荷泵对Flash存储体执行擦除操作,并依次记录不同时钟频率下,执行擦除操作的时间,生成擦除键值,同理,对Flash存储体执行编程操作,并生成编程键值;
步骤S5:根据擦除键值和编程键值获取时钟最优值,将时钟最优值存储至Flash存储体中;
步骤S6:CPU模块从Flash存储体读取时钟最优值,将时钟最优值写入档位寄存器,并使用时钟最优值覆盖原有的若干时钟有效值,使芯片在后续上电复位释放后,可调时钟电路可根据时钟最优值自动输出最优时钟频率。
进一步的,CPU模块由CPU构成,可调时钟电路由振荡器构成,Flash状态机控制模块由一组计数器、时钟输入端、复位端和输出端构成,Flash时序控制模块由Flash状态机、控制寄存器、状态机转换和时序计数器以及状态寄存器构成,Flash存储体由非易失性存储器构成;
所述振荡器用于输出不同的时钟频率;
所述时钟输入端用于可调时钟电路输入时钟频率,复位端由Flash时序控制模块控制,输出端用于控制Flash状态机的工作状态和电荷泵的工作状态,所述工作状态包括开始工作和停止工作;
所述复位端包括高电平和低电平,输出端包括状态“0”和状态“1”;
当复位端为低电平时,则输出端为状态“0”,使得Flash状态机停止工作,同时关闭电荷泵,停止给Flash存储体供电;
设置计数器的最大值为满值;
当复位端为高电平时,计数器开始计数,当计数的数值等于满值时,输出端为状态“1”,使得Flash状态机开始工作,同时打开电荷泵,输出高压给Flash存储体供电;
通过调节可调时钟电路输出的时钟频率,控制Flash状态机转变工作状态的时间;
所述控制寄存器用于控制Flash状态机,CPU模块通过配置控制寄存器输出控制信号控制Flash状态机的Flash状态;
所述Flash状态包括开始工作状态、停止工作状态、空闲状态、擦除前读状态、擦除状态、擦除后验证状态、擦除结束状态、编程前读状态、编程状态、编程后验证状态以及编程结束状态;
Flash状态机根据Flash状态生成相应的状态信号,将状态信号递交至控制寄存器,由控制寄存器根据状态信号加载计数值,并将计数值递交至状态机转换和时序计数器;
当状态机转换和时序计数器计数至计数值后,状态机转换和时序计数器输出转换信号至Flash状态机,Flash状态机根据接收到的转换信号转变Flash状态。
进一步的,在档位寄存器设置若干时钟有效值的过程包括:
通过CPU模块对档位寄存器写入不同的值,作为档位寄存器的时钟有效值。
进一步的,Flash存储体执行擦除操作的过程包括:
Flash状态机控制模块通过输出端将Flash状态机和电荷泵的工作状态调整为开始工作;
通过CPU模块向控制寄存器发送擦除指令,控制寄存器根据擦除指令生成相应的控制信号,将控制信号发送至Flash状态机,由Flash状态机根据控制信号执行擦除操作;
设置测试次数;
Flash状态机的初始状态为空闲状态,Flash在接收到控制信号后跳转至擦除前读状态,读取Flash存储体中需要擦除的扇区地址的数据,判断读取的数据内容是否均为“F”,若读取的数据内容均为“F”,则该扇区不需要执行擦除操作,跳转至空闲状态,结束本次擦除操作;当读取扇区存在地址的数据内容为非“F”,则跳转至擦除状态,生成擦除时序,将擦除时序递交至Flash存储体,Flash存储体根据擦除时序完成擦除操作后,跳转至擦除后验证状态,生成验证时序,向Flash存储体递交验证时序,进行验证操作,若验证读取该扇区的数据内容均为“F”,则擦除次数加1,跳转至擦除结束状态;若验证读取该扇区的数据内容存在非“F”,则跳转至擦除状态继续执行擦除操作,且擦除次数加1,直至验证读取该扇区的数据内容均为“F”或者擦除次数大于测试次数,跳转至擦除结束状态;通过输出端将Flash状态机和电荷泵的工作状态调整为结束工作;当Flash状态机处于擦除结束状态时,若擦除次数大于测试次数,则擦除失败,生成擦除失败信号,若擦除次数小于或等于测试次数,则擦除成功,生成擦除成功信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,Flash状态机跳转至空闲状态,完成擦除操作。
进一步的,生成擦除键值的过程包括:
获取CPU发送擦除指令的时间,记作开始时间;
获取Flash存储器执行擦除操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
获取CPU读取状态寄存器的位置位时间,记作结束时间;
根据开始时间、结束时间和实际时钟频率生成擦除键值<实际时钟频率,结束时间-开始时间>,其中,“实际时钟频率”为主键,“结束时间-开始时间”为辅键;
通过CPU读取状态寄存器的位置位判断擦除是否成功,若擦除成功,则不对擦除键值进行任何操作,若擦除失败,则将辅键记作NULL。
进一步的,对Flash存储体执行编程操作的过程包括:
Flash状态机控制模块通过输出端将Flash状态机和电荷泵的工作状态调整为开始工作;
通过CPU模块向控制寄存器发送编程指令,控制寄存器根据编程指令生成相应的控制信号,将控制信号发送至Flash状态机,由Flash状态机根据控制信号执行编程操作;
设置测试次数;
Flash状态机的初始状态为空闲状态,Flash在接收到控制信号后跳转至编程前读状态,读取Flash存储体中需要编程的地址的数据,根据数据内容判断该地址是否可以进行编程,若该地址不可以进行编程,则跳转至空闲状态,结束本次编程操作;若该地址可以进行编程,则跳转至编程状态,生成编程时序,将编程时序递交至Flash存储体,Flash存储体根据编程时序完成编程操作后,Flash状态机跳转至编程后验证状态,生成验证时序,向Flash存储体递交验证时序,进行验证操作,若验证读取该地址的数据内容是编程的数据,则编程次数加1,跳转至编程结束状态;若验证读取该地址的数据内容不是编程的数据,则跳转至编程状态继续执行编程操作,且编程次数加1,直至验证读取该地址的数据内容为编程的数据或者编程次数大于测试次数,跳转至编程结束状态;通过输出端将Flash状态机和电荷泵的工作状态调整为结束工作;当Flash状态机处于编程结束状态时,若编程次数大于测试次数,则编程失败,生成编程失败信号,若编程次数小于或等于测试次数,则编程成功,生成编程成功信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,Flash状态机跳转至空闲状态,完成编程操作。
进一步的,生成编程键值的过程包括:
获取CPU发送编程指令的时间,记作开始时间;
获取Flash存储器执行编程操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
获取CPU读取状态寄存器的位置位时间,记作结束时间;
根据开始时间、结束时间和实际时钟频率生成编程键值<实际时钟频率,结束时间-开始时间>。
进一步的,根据擦除键值和编程键值获取时钟最优值的过程包括:
根据主键将擦除键值和编程键值的辅键一一对应,生成预备键值<实际时钟频率,擦除键值辅键,编程键值辅键>;
设置擦除系数和编程系数;
根据擦除键值辅键和编程键值辅键获取实际时钟频率的权值;
获取权值最小的预备键值,将其实际时钟频率记作时钟最优值。
与现有技术相比,本发明的有益效果是:
通过配置档位寄存器控制可调时钟电路输出不同频率的时钟调控Flash擦除、编程与验证之间状态转换的时间,获取时钟频率的最优值,通过时钟频率的最优值实现在擦除、编程与验证之间的状态转换时间的控制方面与电荷泵输出合适的高压做到平衡,既实现合适的高压下擦除编程保证存储器数据的可靠性和稳定性,又实现以最快的速度完成擦除编程,提高擦除编程的效率。
附图说明
图1为本发明的流程图。
具体实施方式
如图1所示,一种Flash状态转换时间可调的方法,包括以下步骤:
步骤S1:在芯片中设置CPU模块、档位寄存器、Flash状态机控制模块、Flash时序控制模块、Flash存储体和电荷泵;
步骤S2:在档位寄存器设置若干时钟有效值;
步骤S3:获取目标程序,运行目标程序,通过CPU模块配置芯片的系统时钟,依次获取时钟有效值,根据时钟有效值控制可调时钟电路输出时钟频率;
步骤S4:通过CPU模块、Flash状态机控制模块、Flash时序控制模块和电荷泵对Flash存储体执行擦除操作,并依次记录不同时钟频率下,执行擦除操作的时间,生成擦除键值;同理,对Flash存储体执行编程操作,并生成编程键值;
步骤S5:根据擦除键值和编程键值获取时钟最优值,将时钟最优值存储至Flash存储体中;
步骤S6:CPU模块从Flash存储体读取时钟最优值,将时钟最优值写入档位寄存器,并使用时钟最优值覆盖原有的若干时钟有效值,使芯片在后续上电复位释放后,可调时钟电路可根据时钟最优值自动输出最优时钟频率。
其中,CPU模块由CPU构成,可调时钟电路由振荡器构成,Flash状态机控制模块由一组计数器、时钟输入端、复位端和输出端构成,Flash时序控制模块由Flash状态机、控制寄存器、状态机转换和时序计数器、状态寄存器构成,Flash存储体由非易失性存储器构成;
所述振荡器用于输出不同的时钟频率;
所述时钟输入端用于可调时钟电路输入时钟频率,复位端由Flash时序控制模块控制,输出端用于控制Flash状态机的工作状态和电荷泵的工作状态,所述工作状态包括开始工作和停止工作;
所述复位端包括高电平和低电平,输出端包括状态“0”和状态“1”;
当复位端为低电平时,则输出端为状态“0”,使得Flash状态机停止工作,同时关闭电荷泵,停止给Flash存储体供电;
设置计数器的最大值为满值;
当复位端为高电平时,计数器开始计数,当计数的数值等于满值时,输出端为状态“1”,使得Flash状态机开始工作,同时打开电荷泵,输出高压给Flash存储体供电;
需要注意的是,计数器的计数时间由可调时钟电路输入的时钟频率控制;时钟频率越低,计数时间越长,则输出端由状态“0”更变到状态“1”的时间越久,同时,使Flash状态机转变工作状态的速度就越慢;相反,时钟频率越高,则Flash状态机转变工作状态的速度就越快;因此,可以通过调节可调时钟电路输出的时钟频率,控制Flash状态机转变工作状态的时间;
所述控制寄存器用于控制Flash状态机,CPU模块通过配置控制寄存器输出控制信号控制Flash状态机的Flash状态;
所述Flash状态包括开始工作状态、停止工作状态、空闲状态、擦除前读状态、擦除状态、擦除后验证状态、擦除结束状态、编程前读状态、编程状态、编程后验证状态以及编程结束状态;
Flash状态机根据Flash状态生成相应的状态信号,将状态信号递交至控制寄存器,由控制寄存器根据状态信号加载计数值,并将计数值递交至状态机转换和时序计数器;
当状态机转换和时序计数器计数至计数值后,状态机转换和时序计数器输出转换信号至Flash状态机,Flash状态机根据接收到的转换信号转变Flash状态;
Flash状态机通过控制寄存器开始工作,生成擦除、编程和验证的时序,并将时序递交至Flash存储体;Flash状态机通过读取Flash存储体中的数据验证擦除和编程的正确性,当擦除的次数小于或等于测试次数,则擦除成功,Flash状态机生成擦除成功信号;当擦除的次数大于测试次数,则擦除失败,Flash状态机生成擦除失败信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位;当编程的次数小于或等于测试次数,则编程成功,Flash状态机生成编程成功信号;当编程的次数大于测试次数,则编程失败,Flash状态机生成编程失败信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位;
CPU模块通过读取状态寄存器的位置位判断擦除和编程是否成功;
需要进一步说明的是,目标程序由相关技术人员提供,本方法中的目标程序不特指某一程序;
具体的,在档位寄存器设置若干时钟有效值的过程包括:
通过CPU模块对档位寄存器写入不同的值,作为档位寄存器的时钟有效值;
可通过档位寄存器向可调时钟电路输入不同的时钟有效值,使得可调时钟电路输出不同频率的时钟;
若CPU模块向档位寄存器写入8组不同的时钟有效值,则档位寄存器可控制可调时钟电路可输出8组不同频率的时钟;
具体的,通过CPU模块、Flash状态机控制模块、Flash时序控制模块和电荷泵对Flash存储体执行擦除操作的过程包括:
将Flash状态机控制模块通过输出端将Flash时序控制模块中的Flash状态机和电荷泵的工作状态调整为开始工作;
通过CPU模块向控制寄存器发送擦除指令,控制寄存器根据擦除指令生成相应的控制信号,将控制信号发送至Flash状态机,由Flash状态机根据控制信号执行擦除操作;
设置测试次数;
Flash状态机的初始状态为空闲状态,Flash在接收到控制信号后跳转至擦除前读状态,读取Flash存储体中需要擦除的扇区地址的数据,判断读取的数据内容是否均为“F”,若读取的数据内容均为“F”,则该扇区不需要执行擦除操作,Flash状态机跳转至空闲状态,并结束本次擦除操作;当读取扇区存在地址的数据内容为非“F”,则Flash状态机跳转至擦除状态,生成擦除时序,并将擦除时序递交至Flash存储体,Flash存储体根据擦除时序完成擦除操作后,Flash状态机跳转至擦除后验证状态,生成验证时序,Flash状态机向Flash存储体递交验证时序,进行验证操作,若验证读取该扇区的数据内容均为“F”,则擦除次数加1,Flash状态机跳转至擦除结束状态;若验证读取该扇区的数据内容存在非“F”,则Flash状态机跳转至擦除状态继续执行擦除操作,且擦除次数加1,直至验证读取该扇区的数据内容均为“F”或者擦除次数大于测试次数,跳转至擦除结束状态;
通过输出端将Flash状态机和电荷泵的工作状态调整为结束工作;
当Flash状态机处于擦除结束状态时,若擦除次数大于测试次数,则擦除失败,Flash状态机生成擦除失败信号,将擦除失败信号递交至状态寄存器,若擦除次数小于或等于测试次数,则擦除成功,Flash状态机生成擦除成功信号,将擦除成功信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,Flash状态机跳转至空闲状态,完成擦除操作;
具体的,生成擦除键值的过程包括:
获取CPU发送擦除指令的时间,记作开始时间;
获取Flash存储器执行擦除操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
获取CPU读取状态寄存器的位置位时间,记作结束时间;
根据开始时间、结束时间和实际时钟频率生成擦除键值<实际时钟频率,结束时间-开始时间>,其中,“实际时钟频率”为主键,“结束时间-开始时间”为辅键;
通过CPU读取状态寄存器的位置位判断擦除是否成功,若擦除成功,则不对擦除键值进行任何操作,若擦除失败,则将辅键记作NULL;
具体的,通过CPU模块、Flash状态机控制模块、Flash时序控制模块和电荷泵对Flash存储体执行编程操作的过程包括:
通过Flash状态机控制模块的输出端将Flash时序控制模块中的Flash状态机和电荷泵的工作状态调整为开始工作;
通过CPU模块向控制寄存器发送编程指令,控制寄存器根据编程指令生成相应的控制信号,将控制信号发送至Flash状态机,由Flash状态机根据控制信号执行编程操作;
设置测试次数;
Flash状态机的初始状态为空闲状态,Flash在接收到控制信号后跳转至编程前读状态,读取Flash存储体中需要编程的地址的数据,根据数据内容判断该地址是否可以进行编程,若该地址不可以进行编程,则Flash状态机跳转至空闲状态,并结束本次编程操作;若该地址可以进行编程,则Flash状态机跳转至编程状态,生成编程时序,并将编程时序递交至Flash存储体,Flash存储体根据编程时序完成编程操作后,Flash状态机跳转至编程后验证状态,生成验证时序,Flash状态机向Flash存储体递交验证时序,进行验证操作,若验证读取该地址的数据内容是编程的数据,则编程次数加1,Flash状态机跳转至编程结束状态;若验证读取该地址的数据内容不是编程的数据,则Flash状态机跳转至编程状态继续执行编程操作,且编程次数加1,直至验证读取该地址的数据内容为编程的数据或者编程次数大于测试次数,跳转至编程结束状态;
通过输出端将Flash状态机和电荷泵的工作状态调整为结束工作;
当Flash状态机处于编程结束状态时,若编程次数大于测试次数,则编程失败,Flash状态机生成编程失败信号,将编程失败信号递交至状态寄存器,若编程次数小于或等于测试次数,则编程成功,Flash状态机生成编程成功信号,将编程成功信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,Flash状态机跳转至空闲状态,完成编程操作;
具体的,生成编程键值的过程包括:
获取CPU发送编程指令的时间,记作开始时间;
获取Flash存储器执行编程操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
获取CPU读取状态寄存器的位置位时间,记作结束时间;
根据开始时间、结束时间和实际时钟频率生成编程键值<实际时钟频率,结束时间-开始时间>,其中,“实际时钟频率”为主键,“结束时间-开始时间”为辅键;
通过CPU读取状态寄存器的位置位判断编程是否成功,若编程成功,则不对编程键值进行任何操作,若编程失败,则将辅键记作NULL;
具体的,根据擦除键值和编程键值获取时钟最优值的过程包括:
根据主键,将擦除键值和编程键值的辅键一一对应,生成预备键值<实际时钟频率,擦除键值辅键,编程键值辅键>;
设置擦除系数k和编程系数w;
根据擦除键值辅键和编程键值辅键获取实际时钟频率的权值U=擦除键值辅键×k+编程键值辅键×w;
若存在擦除键值辅键或编程键值辅键为NULL,则将该辅键记作正无穷+∞;
获取权值最小的预备键值,将其标记为最优键值,并将最优键值的实际时钟频率记作时钟最优值;
以上实施例仅用以说明本发明的技术方法而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方法进行修改或等同替换,而不脱离本发明技术方法精神和范围。

Claims (8)

1.一种Flash状态转换时间可调的方法,其特征在于,包括以下步骤:
步骤S1:在芯片中设置CPU模块、档位寄存器、Flash状态机控制模块、Flash时序控制模块、Flash存储体和电荷泵;
步骤S2:在档位寄存器设置若干时钟有效值;
步骤S3:获取目标程序,运行目标程序,通过CPU模块配置芯片的系统时钟,依次获取时钟有效值,根据时钟有效值控制可调时钟电路输出时钟频率;
步骤S4:通过CPU模块、Flash状态机控制模块、Flash时序控制模块和电荷泵对Flash存储体执行擦除操作,并依次记录不同时钟频率下,执行擦除操作的时间,生成擦除键值,同理,对Flash存储体执行编程操作,并生成编程键值;
步骤S5:根据擦除键值和编程键值获取时钟最优值,将时钟最优值存储至Flash存储体中;
步骤S6:CPU模块从Flash存储体读取时钟最优值,将时钟最优值写入档位寄存器,并使用时钟最优值覆盖原有的若干时钟有效值,使芯片在后续上电复位释放后,可调时钟电路可根据时钟最优值自动输出最优时钟频率。
2.根据权利要求1所述的一种Flash状态转换时间可调的方法,其特征在于,CPU模块由CPU构成,可调时钟电路由振荡器构成,Flash状态机控制模块由一组计数器、时钟输入端、复位端和输出端构成,Flash时序控制模块由Flash状态机、控制寄存器、状态机转换和时序计数器以及状态寄存器构成,Flash存储体由非易失性存储器构成;
所述振荡器用于输出不同的时钟频率;
所述时钟输入端用于可调时钟电路输入时钟频率,复位端由Flash时序控制模块控制,输出端用于控制Flash状态机的工作状态和电荷泵的工作状态,所述工作状态包括开始工作和停止工作;
所述复位端包括高电平和低电平,输出端包括状态“0”和状态“1”;
当复位端为低电平时,则输出端为状态“0”,使得Flash状态机停止工作,同时关闭电荷泵,停止给Flash存储体供电;
设置计数器的最大值为满值;
当复位端为高电平时,计数器开始计数,当计数的数值等于满值时,输出端为状态“1”,使得Flash状态机开始工作,同时打开电荷泵,输出高压给Flash存储体供电;
通过调节可调时钟电路输出的时钟频率,控制Flash状态机转变工作状态的时间;
所述控制寄存器用于控制Flash状态机,CPU模块通过配置控制寄存器输出控制信号控制Flash状态机的Flash状态;
所述Flash状态包括开始工作状态、停止工作状态、空闲状态、擦除前读状态、擦除状态、擦除后验证状态、擦除结束状态、编程前读状态、编程状态、编程后验证状态以及编程结束状态;
Flash状态机根据Flash状态生成相应的状态信号,将状态信号递交至控制寄存器,由控制寄存器根据状态信号加载计数值,并将计数值递交至状态机转换和时序计数器;
当状态机转换和时序计数器计数至计数值后,状态机转换和时序计数器输出转换信号至Flash状态机,Flash状态机根据接收到的转换信号转变Flash状态。
3.根据权利要求2所述的一种Flash状态转换时间可调的方法,其特征在于,在档位寄存器设置若干时钟有效值的过程包括:
通过CPU模块对档位寄存器写入不同的值,作为档位寄存器的时钟有效值。
4.根据权利要求3所述的一种Flash状态转换时间可调的方法,其特征在于,Flash存储体执行擦除操作的过程包括:
Flash状态机控制模块通过输出端将Flash状态机和电荷泵的工作状态调整为开始工作;
通过CPU模块向控制寄存器发送擦除指令,控制寄存器根据擦除指令生成相应的控制信号,将控制信号发送至Flash状态机,由Flash状态机根据控制信号执行擦除操作;
设置测试次数;
Flash状态机的初始状态为空闲状态,Flash在接收到控制信号后跳转至擦除前读状态,读取Flash存储体中需要擦除的扇区地址的数据,判断读取的数据内容是否均为“F”,若读取的数据内容均为“F”,则该扇区不需要执行擦除操作,跳转至空闲状态,结束本次擦除操作;当读取扇区存在地址的数据内容为非“F”,则跳转至擦除状态,生成擦除时序,将擦除时序递交至Flash存储体,Flash存储体根据擦除时序完成擦除操作后,跳转至擦除后验证状态,生成验证时序,向Flash存储体递交验证时序,进行验证操作,若验证读取该扇区的数据内容均为“F”,则擦除次数加1,跳转至擦除结束状态;若验证读取该扇区的数据内容存在非“F”,则跳转至擦除状态继续执行擦除操作,且擦除次数加1,直至验证读取该扇区的数据内容均为“F”或者擦除次数大于测试次数,跳转至擦除结束状态;通过输出端将Flash状态机和电荷泵的工作状态调整为结束工作;当Flash状态机处于擦除结束状态时,若擦除次数大于测试次数,则擦除失败,生成擦除失败信号,若擦除次数小于或等于测试次数,则擦除成功,生成擦除成功信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,Flash状态机跳转至空闲状态,完成擦除操作。
5.根据权利要求4所述的一种Flash状态转换时间可调的方法,其特征在于,生成擦除键值的过程包括:
获取CPU发送擦除指令的时间,记作开始时间;
获取Flash存储器执行擦除操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
获取CPU读取状态寄存器的位置位时间,记作结束时间;
根据开始时间、结束时间和实际时钟频率生成擦除键值<实际时钟频率,结束时间-开始时间>,其中,“实际时钟频率”为主键,“结束时间-开始时间”为辅键;
通过CPU读取状态寄存器的位置位判断擦除是否成功,若擦除成功,则不对擦除键值进行任何操作,若擦除失败,则将辅键记作NULL。
6.根据权利要求5所述的一种Flash状态转换时间可调的方法,其特征在于,对Flash存储体执行编程操作的过程包括:
Flash状态机控制模块通过输出端将Flash状态机和电荷泵的工作状态调整为开始工作;
通过CPU模块向控制寄存器发送编程指令,控制寄存器根据编程指令生成相应的控制信号,将控制信号发送至Flash状态机,由Flash状态机根据控制信号执行编程操作;
设置测试次数;
Flash状态机的初始状态为空闲状态,Flash在接收到控制信号后跳转至编程前读状态,读取Flash存储体中需要编程的地址的数据,根据数据内容判断该地址是否可以进行编程,若该地址不可以进行编程,则跳转至空闲状态,结束本次编程操作;若该地址可以进行编程,则跳转至编程状态,生成编程时序,将编程时序递交至Flash存储体,Flash存储体根据编程时序完成编程操作后,Flash状态机跳转至编程后验证状态,生成验证时序,向Flash存储体递交验证时序,进行验证操作,若验证读取该地址的数据内容是编程的数据,则编程次数加1,跳转至编程结束状态;若验证读取该地址的数据内容不是编程的数据,则跳转至编程状态继续执行编程操作,且编程次数加1,直至验证读取该地址的数据内容为编程的数据或者编程次数大于测试次数,跳转至编程结束状态;通过输出端将Flash状态机和电荷泵的工作状态调整为结束工作;当Flash状态机处于编程结束状态时,若编程次数大于测试次数,则编程失败,生成编程失败信号,若编程次数小于或等于测试次数,则编程成功,生成编程成功信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,Flash状态机跳转至空闲状态,完成编程操作。
7.根据权利要求6所述的一种Flash状态转换时间可调的方法,其特征在于,生成编程键值的过程包括:
获取CPU发送编程指令的时间,记作开始时间;
获取Flash存储器执行编程操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
获取CPU读取状态寄存器的位置位时间,记作结束时间;
根据开始时间、结束时间和实际时钟频率生成编程键值<实际时钟频率,结束时间-开始时间>。
8.根据权利要求7所述的一种Flash状态转换时间可调的方法,其特征在于,根据擦除键值和编程键值获取时钟最优值的过程包括:
根据主键将擦除键值和编程键值的辅键一一对应,生成预备键值<实际时钟频率,擦除键值辅键,编程键值辅键>;
设置擦除系数和编程系数;
根据擦除键值辅键和编程键值辅键获取实际时钟频率的权值;
获取权值最小的预备键值,将其实际时钟频率记作时钟最优值。
CN202311829593.8A 2023-12-28 2023-12-28 一种Flash状态转换时间可调的方法 Active CN117789798B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311829593.8A CN117789798B (zh) 2023-12-28 2023-12-28 一种Flash状态转换时间可调的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311829593.8A CN117789798B (zh) 2023-12-28 2023-12-28 一种Flash状态转换时间可调的方法

Publications (2)

Publication Number Publication Date
CN117789798A true CN117789798A (zh) 2024-03-29
CN117789798B CN117789798B (zh) 2024-05-28

Family

ID=90396116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311829593.8A Active CN117789798B (zh) 2023-12-28 2023-12-28 一种Flash状态转换时间可调的方法

Country Status (1)

Country Link
CN (1) CN117789798B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369647A (en) * 1991-12-16 1994-11-29 Intel Corporation Circuitry and method for testing a write state machine
JPH09180481A (ja) * 1995-12-11 1997-07-11 Samsung Electron Co Ltd 不揮発性半導体メモリにおける高電圧発生方法と高電圧レベルの最適化回路及び最適化方法
US6421757B1 (en) * 1998-09-30 2002-07-16 Conexant Systems, Inc Method and apparatus for controlling the programming and erasing of flash memory
US20030151972A1 (en) * 2002-02-13 2003-08-14 Hiroshi Kiso Semiconductor memory device and electronic information device using the same
CN101315812A (zh) * 2008-03-20 2008-12-03 上海交通大学 基于并口的flash存储器在线编程方法
CN101675409A (zh) * 2007-05-03 2010-03-17 密克罗奇普技术公司 使用外部时钟源时的功率优化
CN104112473A (zh) * 2014-04-28 2014-10-22 北京时代民芯科技有限公司 一种低功耗快速升压flash电荷泵控制电路
CN107615249A (zh) * 2015-05-14 2018-01-19 爱德斯托科技有限公司 存储器装置中的并发的读取操作和重新配置的写入操作
CN109036493A (zh) * 2018-06-11 2018-12-18 西北工业大学 一种具有检错纠错机制的NAND Flash控制器
CN109669888A (zh) * 2018-11-06 2019-04-23 电子科技大学 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法
US20190122741A1 (en) * 2017-10-25 2019-04-25 Western Digital Technologies, Inc. Adaptive erase fail bit criteria
CN111192615A (zh) * 2019-12-31 2020-05-22 杭州士兰微电子股份有限公司 可编程存储单元、非易失性存储系统及其控制方法
CN111863094A (zh) * 2019-04-29 2020-10-30 北京兆易创新科技股份有限公司 一种控制擦除性能的方法以及装置
CN112951304A (zh) * 2019-12-10 2021-06-11 北京兆易创新科技股份有限公司 一种存储设备及其控制装置和控制方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369647A (en) * 1991-12-16 1994-11-29 Intel Corporation Circuitry and method for testing a write state machine
JPH09180481A (ja) * 1995-12-11 1997-07-11 Samsung Electron Co Ltd 不揮発性半導体メモリにおける高電圧発生方法と高電圧レベルの最適化回路及び最適化方法
US6421757B1 (en) * 1998-09-30 2002-07-16 Conexant Systems, Inc Method and apparatus for controlling the programming and erasing of flash memory
US20030151972A1 (en) * 2002-02-13 2003-08-14 Hiroshi Kiso Semiconductor memory device and electronic information device using the same
CN101675409A (zh) * 2007-05-03 2010-03-17 密克罗奇普技术公司 使用外部时钟源时的功率优化
CN101315812A (zh) * 2008-03-20 2008-12-03 上海交通大学 基于并口的flash存储器在线编程方法
CN104112473A (zh) * 2014-04-28 2014-10-22 北京时代民芯科技有限公司 一种低功耗快速升压flash电荷泵控制电路
CN107615249A (zh) * 2015-05-14 2018-01-19 爱德斯托科技有限公司 存储器装置中的并发的读取操作和重新配置的写入操作
US20190122741A1 (en) * 2017-10-25 2019-04-25 Western Digital Technologies, Inc. Adaptive erase fail bit criteria
CN109036493A (zh) * 2018-06-11 2018-12-18 西北工业大学 一种具有检错纠错机制的NAND Flash控制器
CN109669888A (zh) * 2018-11-06 2019-04-23 电子科技大学 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法
CN111863094A (zh) * 2019-04-29 2020-10-30 北京兆易创新科技股份有限公司 一种控制擦除性能的方法以及装置
CN112951304A (zh) * 2019-12-10 2021-06-11 北京兆易创新科技股份有限公司 一种存储设备及其控制装置和控制方法
CN111192615A (zh) * 2019-12-31 2020-05-22 杭州士兰微电子股份有限公司 可编程存储单元、非易失性存储系统及其控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
伍冬;潘立阳;段志刚;朱钧;: "基于共享技术的电荷泵电路", 清华大学学报(自然科学版), no. 04, 25 April 2006 (2006-04-25) *

Also Published As

Publication number Publication date
CN117789798B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
JP5378326B2 (ja) 不揮発性半導体記憶装置とその制御方法
US7290109B2 (en) Memory system and memory card
US7164610B2 (en) Microcomputer having a flush memory that can be temporarily interrupted during an erase process
US7551487B2 (en) Nonvolatile memory device and related programming method
KR101146059B1 (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법
US7072221B2 (en) Flash memory device and method for driving the same
US20130294173A1 (en) Method and apparatus for the erase suspend operation
JP2006331615A (ja) フラッシュメモリ装置のプログラム方法
KR20200052562A (ko) 스토리지 장치
JP5264047B2 (ja) 半導体メモリ装置の制御情報をプログラムするための方法と装置
US6788588B2 (en) Asynchronous semiconductor memory device
JP2006024347A (ja) ビットスキャニングプログラムを実行する不揮発性メモリ装置
CN117789798B (zh) 一种Flash状态转换时间可调的方法
KR100769771B1 (ko) 플래시 메모리 장치 및 그 소거 방법
KR100861378B1 (ko) 플래시 메모리소자의 프로그램 방법
US20090031080A1 (en) Flash memory device and program method thereof
JPH08227585A (ja) メモリ装置
KR20200051926A (ko) 비휘발성 메모리 장치 및 그 구동 방법
JP3544935B2 (ja) 不揮発性半導体記憶装置及びそのオートプログラムの実行方法
JPH1186569A (ja) 不揮発性メモリ、不揮発性メモリの書込パルスのパルス幅決定方法、不揮発性メモリの消去パルスのパルス幅決定方法及び不揮発性メモリ内蔵マイコン
CN106910520B (zh) 存储装置的写入方法、存储装置、存储控制器和存储系统
EP1308964B1 (en) Fast programming method for nonvolatile memories, in particular flash memories, and related memory architecture
TW202143451A (zh) 3d nand快閃記憶體的控制方法和控制器
CN118072799A (zh) 执行编程操作的半导体装置及其操作方法
CN118038942A (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