一种Flash状态转换时间可调的方法与流程
- 国知局
- 2024-07-31 19:47:13
本发明涉及闪存,具体是一种flash状态转换时间可调的方法。
背景技术:
1、在嵌入式系统中,flash是一种常用的非易失性存储器,通常用来作为程序空间和数据空间,能够多次擦除编程,简化代码开发。flash存储器在擦除、编程与验证(verify)过程中通常需要较高的电压,而电荷泵被广泛用于升压以提供所需的高压。flash存储器在擦除、编程与验证过程中,既要构造合适的擦除、编程和验证的时序,同时也要使得电荷泵输出合适的电压,满足擦除、编程与验证所需要的高压。
2、现有技术在擦除、编程和验证之间的状态转换时间的控制方面与电荷泵输出合适的高压难做到平衡;既需要擦除、编程和验证之间的状态转换时间最短,同时电荷泵输出合适的高压,还需要在非擦除编程时关闭电荷泵降低功耗,存在一定的难度,需要适当的控制信号来实现。通常采用固定的频率调节电荷泵输出合适的电压,但导致擦除编程的速度不是最理想的。因此,需要在现有技术的基础上进行改进,提出一种能够更准确地调节电荷泵输出电压并控制擦除、编程与读之间状态转换时间的解决方案,以进一步提高flash存储器擦除编程的速度和效率。
技术实现思路
1、为了解决上述问题,本发明的目的在于提供一种flash状态转换时间可调的方法。
2、本发明的目的可以通过以下技术方案实现:一种flash状态转换时间可调的方法,包括以下步骤:
3、步骤s1:在芯片中设置cpu模块、档位寄存器、flash状态机控制模块、flash时序控制模块、flash存储体和电荷泵;
4、步骤s2:在档位寄存器设置若干时钟有效值;
5、步骤s3:获取目标程序,运行目标程序,通过cpu模块配置芯片的系统时钟,依次获取时钟有效值,根据时钟有效值控制可调时钟电路输出时钟频率;
6、步骤s4:通过cpu模块、flash状态机控制模块、flash时序控制模块和电荷泵对flash存储体执行擦除操作,并依次记录不同时钟频率下,执行擦除操作的时间,生成擦除键值,同理,对flash存储体执行编程操作,并生成编程键值;
7、步骤s5:根据擦除键值和编程键值获取时钟最优值,将时钟最优值存储至flash存储体中;
8、步骤s6:cpu模块从flash存储体读取时钟最优值,将时钟最优值写入档位寄存器,并使用时钟最优值覆盖原有的若干时钟有效值,使芯片在后续上电复位释放后,可调时钟电路可根据时钟最优值自动输出最优时钟频率。
9、进一步的,cpu模块由cpu构成,可调时钟电路由振荡器构成,flash状态机控制模块由一组计数器、时钟输入端、复位端和输出端构成,flash时序控制模块由flash状态机、控制寄存器、状态机转换和时序计数器以及状态寄存器构成,flash存储体由非易失性存储器构成;
10、所述振荡器用于输出不同的时钟频率;
11、所述时钟输入端用于可调时钟电路输入时钟频率,复位端由flash时序控制模块控制,输出端用于控制flash状态机的工作状态和电荷泵的工作状态,所述工作状态包括开始工作和停止工作;
12、所述复位端包括高电平和低电平,输出端包括状态“0”和状态“1”;
13、当复位端为低电平时,则输出端为状态“0”,使得flash状态机停止工作,同时关闭电荷泵,停止给flash存储体供电;
14、设置计数器的最大值为满值;
15、当复位端为高电平时,计数器开始计数,当计数的数值等于满值时,输出端为状态“1”,使得flash状态机开始工作,同时打开电荷泵,输出高压给flash存储体供电;
16、通过调节可调时钟电路输出的时钟频率,控制flash状态机转变工作状态的时间;
17、所述控制寄存器用于控制flash状态机,cpu模块通过配置控制寄存器输出控制信号控制flash状态机的flash状态;
18、所述flash状态包括开始工作状态、停止工作状态、空闲状态、擦除前读状态、擦除状态、擦除后验证状态、擦除结束状态、编程前读状态、编程状态、编程后验证状态以及编程结束状态;
19、flash状态机根据flash状态生成相应的状态信号,将状态信号递交至控制寄存器,由控制寄存器根据状态信号加载计数值,并将计数值递交至状态机转换和时序计数器;
20、当状态机转换和时序计数器计数至计数值后,状态机转换和时序计数器输出转换信号至flash状态机,flash状态机根据接收到的转换信号转变flash状态。
21、进一步的,在档位寄存器设置若干时钟有效值的过程包括:
22、通过cpu模块对档位寄存器写入不同的值,作为档位寄存器的时钟有效值。
23、进一步的,flash存储体执行擦除操作的过程包括:
24、flash状态机控制模块通过输出端将flash状态机和电荷泵的工作状态调整为开始工作;
25、通过cpu模块向控制寄存器发送擦除指令,控制寄存器根据擦除指令生成相应的控制信号,将控制信号发送至flash状态机,由flash状态机根据控制信号执行擦除操作;
26、设置测试次数;
27、flash状态机的初始状态为空闲状态,flash在接收到控制信号后跳转至擦除前读状态,读取flash存储体中需要擦除的扇区地址的数据,判断读取的数据内容是否均为“f”,若读取的数据内容均为“f”,则该扇区不需要执行擦除操作,跳转至空闲状态,结束本次擦除操作;当读取扇区存在地址的数据内容为非“f”,则跳转至擦除状态,生成擦除时序,将擦除时序递交至flash存储体,flash存储体根据擦除时序完成擦除操作后,跳转至擦除后验证状态,生成验证时序,向flash存储体递交验证时序,进行验证操作,若验证读取该扇区的数据内容均为“f”,则擦除次数加1,跳转至擦除结束状态;若验证读取该扇区的数据内容存在非“f”,则跳转至擦除状态继续执行擦除操作,且擦除次数加1,直至验证读取该扇区的数据内容均为“f”或者擦除次数大于测试次数,跳转至擦除结束状态;通过输出端将flash状态机和电荷泵的工作状态调整为结束工作;当flash状态机处于擦除结束状态时,若擦除次数大于测试次数,则擦除失败,生成擦除失败信号,若擦除次数小于或等于测试次数,则擦除成功,生成擦除成功信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,flash状态机跳转至空闲状态,完成擦除操作。
28、进一步的,生成擦除键值的过程包括:
29、获取cpu发送擦除指令的时间,记作开始时间;
30、获取flash存储器执行擦除操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
31、获取cpu读取状态寄存器的位置位时间,记作结束时间;
32、根据开始时间、结束时间和实际时钟频率生成擦除键值<实际时钟频率,结束时间-开始时间>,其中,“实际时钟频率”为主键,“结束时间-开始时间”为辅键;
33、通过cpu读取状态寄存器的位置位判断擦除是否成功,若擦除成功,则不对擦除键值进行任何操作,若擦除失败,则将辅键记作null。
34、进一步的,对flash存储体执行编程操作的过程包括:
35、flash状态机控制模块通过输出端将flash状态机和电荷泵的工作状态调整为开始工作;
36、通过cpu模块向控制寄存器发送编程指令,控制寄存器根据编程指令生成相应的控制信号,将控制信号发送至flash状态机,由flash状态机根据控制信号执行编程操作;
37、设置测试次数;
38、flash状态机的初始状态为空闲状态,flash在接收到控制信号后跳转至编程前读状态,读取flash存储体中需要编程的地址的数据,根据数据内容判断该地址是否可以进行编程,若该地址不可以进行编程,则跳转至空闲状态,结束本次编程操作;若该地址可以进行编程,则跳转至编程状态,生成编程时序,将编程时序递交至flash存储体,flash存储体根据编程时序完成编程操作后,flash状态机跳转至编程后验证状态,生成验证时序,向flash存储体递交验证时序,进行验证操作,若验证读取该地址的数据内容是编程的数据,则编程次数加1,跳转至编程结束状态;若验证读取该地址的数据内容不是编程的数据,则跳转至编程状态继续执行编程操作,且编程次数加1,直至验证读取该地址的数据内容为编程的数据或者编程次数大于测试次数,跳转至编程结束状态;通过输出端将flash状态机和电荷泵的工作状态调整为结束工作;当flash状态机处于编程结束状态时,若编程次数大于测试次数,则编程失败,生成编程失败信号,若编程次数小于或等于测试次数,则编程成功,生成编程成功信号;将信号递交至状态寄存器,状态寄存器根据接收到的信号生成相应的位置位,flash状态机跳转至空闲状态,完成编程操作。
39、进一步的,生成编程键值的过程包括:
40、获取cpu发送编程指令的时间,记作开始时间;
41、获取flash存储器执行编程操作时可调时钟电路输出的时钟频率,记作实际时钟频率;
42、获取cpu读取状态寄存器的位置位时间,记作结束时间;
43、根据开始时间、结束时间和实际时钟频率生成编程键值<实际时钟频率,结束时间-开始时间>。
44、进一步的,根据擦除键值和编程键值获取时钟最优值的过程包括:
45、根据主键将擦除键值和编程键值的辅键一一对应,生成预备键值<实际时钟频率,擦除键值辅键,编程键值辅键>;
46、设置擦除系数和编程系数;
47、根据擦除键值辅键和编程键值辅键获取实际时钟频率的权值;
48、获取权值最小的预备键值,将其实际时钟频率记作时钟最优值。
49、与现有技术相比,本发明的有益效果是:
50、通过配置档位寄存器控制可调时钟电路输出不同频率的时钟调控flash擦除、编程与验证之间状态转换的时间,获取时钟频率的最优值,通过时钟频率的最优值实现在擦除、编程与验证之间的状态转换时间的控制方面与电荷泵输出合适的高压做到平衡,既实现合适的高压下擦除编程保证存储器数据的可靠性和稳定性,又实现以最快的速度完成擦除编程,提高擦除编程的效率。
本文地址:https://www.jishuxx.com/zhuanli/20240731/184039.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。