一种控制编程性能的方法和装置与流程

文档序号:22744400发布日期:2020-10-31 09:31阅读:122来源:国知局
一种控制编程性能的方法和装置与流程

本发明涉及存储领域,尤其涉及一种控制编程性能的方法和装置。



背景技术:

目前norflash存储器采用沟道载流子热电子注入的方式实现编程操作,研究结果表明温度升高时,热电子活跃度升高,产生的编程的有效电流将会减小,完成编程所需要的时间就会越长。

参照图1,示出了现有norflash存储器编程原理示意图,编程操作是通过热电子注入方式利用高电场加速得到的热电子注入浮栅层,从而改变浮栅层的阈值达到编程的效应,为了形成导电沟道,需要给漏端(d)加一个正压,为了使电子到达浮栅层,需要给栅端(g)加一个正压,源端(s)和衬底接地,研究表明,编程加压的时间增加,电子达到浮栅的数量越理想,编程的成功率越大。

目前编程操作过程中,时钟频率发生器(clk发生器)的频率和编程操作状态机中控制编程加压时间的计数器的最大值,在出厂时是确定好的,然而,随着温度升高,热电子活跃度增高,编程有效电流减小,单次编程加压操作的时间固定,则完成编程操作所执行的编程验证操作和编程加压操作的循环周期也会增大,完成整个编程所需要的时间就会越长,甚至最终无法完成编程任务。



技术实现要素:

本发明提供的一种控制编程性能的方法以及装置,解决了温度升高,编程有效电流减小,单次编程加压操作的时间固定,完成整个编程操作所需要编程加压时间就会越长,甚至最终无法完成编程任务的问题。

为了解决上述技术问题,本发明实施例提供了一种控制编程性能的方法,所述方法应用于norflash存储器,所述norflash存储器包括:温度传感器、编程操作状态机、时钟频率发生器以及编程存储单元,所述编程操作状态机包括:计数器,所述温度传感器与所述时钟频率发生器连接,所述编程操作状态机分别与所述时钟频率发生器和所述编程存储单元连接,所述方法包括:

通过所述编程操作状态机接收编程操作指令和待编程数据,所述待编程数据为所需写入所述编程存储单元的数据;

根据所述编程操作指令和待编程数据,通过所述编程操作状态机执行编程加压操作,所述编程加压操作为对所述编程存储单元持续施加预设电压值的操作,所述持续施加预设电压值的时间为所述计数器的最大值与所述时钟频率发生器的周期的乘积;

其中,通过所述编程操作状态机执行编程加压操作,包括:

所述norflash存储器接收所述温度传感器发送的所述norflash存储器的工作温度;

所述norflash存储器调用所述norflash存储器的工作温度区间与所述时钟频率发生器的产生频率关系表,其中,工作温度越高的工作温度区间对应的时钟频率发生器的产生频率越慢;

所述norflash存储器根据所述工作温度与所述关系表,调整所述时钟频率发生器的产生频率;

根据所述调整后的时钟频率发生器的产生频率,通过所述编程操作状态机调整所述时间;

根据调整后的时间,通过所述编程操作状态机完成所述编程加压操作。

可选地,所述norflash存储器根据所述工作温度与所述关系表,调整所述时钟频率发生器的产生频率,包括:

所述norflash存储器根据所述工作温度,从所述norflash存储器的工作温度区间中确定所述工作温度所属的目标工作温度区间;

所述norflash存储器从所述关系表中查找对应于所述目标工作温度区间的目标频率值;

所述norflash存储器将所述时钟频率发生器的产生频率调整为所述目标频率值。

可选地,根据调整后的时间,通过所述编程操作状态机完成所述编程加压操作,包括:

通过所述编程操作状态机判断所述计数器的计数值是否达到其最大值;

若所述计数器未达到其最大值,通过所述编程操作状态机在调整后的时间内持续执行本次所述编程加压操作;

若所述计数器达到其最大值,通过所述编程操作状态机结束本次所述编程加压操作。

可选地,若所述计数器达到其最大值,通过所述编程操作状态机结束本次所述编程加压操作之后,所述方法还包括:

通过所述编程操作状态机判断所述编程加压操作的循环次数是否达到第一预设值;

若循环次数达到所述第一预设值,通过所述编程操作状态机结束所述编程操作指令对应的编程操作;

若循环次数未达到所述第一预设值,通过所述编程操作状态机执行下一次编程验证操作,所述编程验证操作为验证所述待编程数据是否与所述编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;

若所述验证通过,通过所述编程操作状态机结束所述编程操作指令对应的编程操作;

若所述验证未通过,通过所述编程操作状态机执行下一次所述编程加压操作。

可选地,在根据所述编程操作指令和待编程数据,通过所述编程操作状态机执行编程加压操作之前,所述方法还包括:

通过所述编程操作状态机验证所述待编程数据是否与所述编程存储单元中已存储的数据一致,若一致则所述编程操作状态机结束所述编程操作指令对应的编程操作;

根据所述编程操作指令和待编程数据,通过所述编程操作状态机执行编程加压操作,包括:

若不一致,根据所述编程操作指令和待编程数据,通过所述编程操作状态机执行编程加压操作。

本发明实施例还提供了一种控制编程性能的装置,所述装置应用于norflash存储器,所述norflash存储器包括:温度传感器、编程操作状态机、时钟频率发生器以及编程存储单元,所述编程操作状态机包括:计数器,所述温度传感器与所述时钟频率发生器连接,所述编程操作状态机分别与所述时钟频率发生器和所述编程存储单元连接,所述装置包括:

第一接收模块,用于通过所述编程操作状态机接收编程操作指令和待编程数据,所述待编程数据为所需写入所述编程存储单元的数据;

执行模块,用于根据所述编程操作指令和待编程数据,通过所述编程操作状态机执行编程加压操作,所述编程加压操作为对所述编程存储单元持续施加预设电压值的操作,所述持续施加预设电压值的时间为所述计数器的最大值与所述时钟频率发生器的周期的乘积;

其中,所述执行模块包括:

第二接收模块,用于所述norflash存储器接收所述温度传感器发送的所述norflash存储器的工作温度;

调用关系表模块,用于所述norflash存储器调用所述norflash存储器的工作温度区间与所述时钟频率发生器的产生频率关系表,其中,工作温度越高的工作温度区间对应的时钟频率发生器的产生频率越慢;

调整频率模块,用于所述norflash存储器根据所述工作温度与所述关系表,调整所述时钟频率发生器的产生频率;

调整时间模块,用于根据所述调整后的时钟频率发生器的产生频率,通过所述编程操作状态机调整所述时间;

完成模块,用于根据调整后的时间,通过所述编程操作状态机完成所述编程加压操作。

可选地,所述调整频率模块包括:

确定区间子模块,用于所述norflash存储器根据所述工作温度,从所述norflash存储器的工作温度区间中确定所述工作温度所属的目标工作温度区间;

查找目标子模块,用于所述norflash存储器从所述关系表中查找对应于所述目标工作温度区间的目标频率值;

调整频率子模块,用于所述norflash存储器将所述时钟频率发生器的产生频率调整为所述目标频率值。

可选地,所述完成模块包括:

判断子模块,用于通过所述编程操作状态机判断所述计数器的计数值是否达到其最大值;

继续执行子模块,用于若所述计数器未达到其最大值,通过所述编程操作状态机在调整后的时间内持续执行本次所述编程加压操作;

结束子模块,用于若所述计数器达到其最大值,通过所述编程操作状态机结束本次所述编程加压操作。

可选地,所述装置还包括:

判断次数模块,用于通过所述编程操作状态机判断所述编程加压操作的循环次数是否达到第一预设值;

结束验证模块,用于若循环次数达到所述第一预设值,通过所述编程操作状态机结束所述编程操作指令对应的编程操作;还用于若循环次数未达到所述第一预设值,通过所述编程操作状态机执行下一次编程验证操作,所述编程验证操作为验证所述待编程数据是否与所述编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;

结束编程模块,用于若所述验证通过,通过所述编程操作状态机结束所述编程操作指令对应的编程操作;

执行加压模块,用于若所述验证未通过,通过所述编程操作状态机执行下一次所述编程加压操作。

可选地,所述装置还包括:

验证结束模块,用于通过所述编程操作状态机验证所述待编程数据是否与所述编程存储单元中已存储的数据一致,若一致则所述编程操作状态机结束所述编程操作指令对应的编程操作。

与现有技术相比,本发明提供的一种控制编程性能的方法和装置,在执行编程加压操作时,编程操作状态机根据温度传感器发送的norflash存储器的工作温度,调用工作温度区间与时钟频率发生器的产生频率关系表,根据工作温度与关系表,调整时钟频率发生器的产生频率,以调整时间,达到调整单次编程加压操作的时间,完成编程加压操作,控制编程验证操作和编程加压操作的循环周期,提高norflash存储器的编程性能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是现有norflash存储器编程原理示意图;

图2是本发明实施例的一种控制编程性能方法的流程图;

图3是本发明实施例编程操作状态机执行编程加压操作的具体流程图;

图4是本发明实施例步骤102c的具体流程图;

图5是本发明实施例步骤102d的具体流程图;

图6是本发明实施例步骤102d之后的另一流程图;

图7是本发明实施例的设备示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2示出了本发明实施例的一种控制编程性能方法的流程图。该方法应用于norflash存储器,norflash存储器包括:温度传感器、编程操作状态机、时钟频率发生器以及编程存储单元,编程操作状态机包括:计数器,温度传感器与时钟频率发生器连接,编程操作状态机分别与时钟频率发生器和编程单元连接,控制编程性能的方法包括如下步骤:

步骤101:通过编程操作状态机接收编程操作指令和待编程数据,待编程数据为所需写入编程存储单元的数据。

本发明实施例中,norflash存储器包括:温度传感器、编程操作状态机、时钟频率发生器以及编程存储单元,其中温度传感器的作用是:检测norflash存储器工作温度的传感器,其将工作温度发送给norflash存储器,编程操作状态机为norflash存储器内控制编程状态的元件,其包括:计数器。时钟频率发生器(clk发生器)为norflash存储器中产生时间周期的发生器,计数器为编程操作状态机中计数的元件,两者结合起来,可以控制编程操作状态机的每次编程加压操作的时间,编程存储单元为norflash存储器中存储写入数据的存储单元。

编程操作状态机接收由上位机发送的编程操作指令和待编程数据,其中待编程数据为本次编程操作需要写入存储单元的数据,编程操作指令中可能会包括有编程存储单元的地址,即需要将待编程数据写入指定地址的编程存储单元,编程操作是指从接收编程操作指令和待编程数据之后,到将待编程数据正确写入编程存储单元的整个过程,即norflash存储器完成整个编程操作的过程都是通过编程操作状态机来实现的,而控制编程加压操作的时间是通过clk的频率和计数器的最大值来实现的,其中clk的频率的改变是norflash存储器根据工作温度区间与时钟频率发生器的产生频率关系表,和具体工作温度来实现的。本发明实施例对以上所述不作详细限定,可以根据实际情况进行设置。

步骤102:根据编程操作指令和待编程数据,通过编程操作状态机执行编程加压操作,编程加压操作为对编程存储单元持续施加预设电压值的操作,持续施加预设电压值的时间为计数器的最大值与时钟频率发生器周期的乘积。

本发明实施例中,编程操作状态机接收编程操作指令和待编程数据后,根据编程操作指令和待编程数据,执行编程加压操作,所谓编程加压操作是指:编程操作状态机对编程存储单元持续施加预设电压值的操作,持续施加预设电压值的时间即为本次编程加压操作的时间,其大小为计数器的最大值与clk发生器周期的乘积,假设计数器最大值为100,clk发生器的频率为40赫兹,则clk发生器的周期为0.025秒,那么单次编程加压操作的时间就为0.025*100=2.5秒,计数器的最大值由编程操作状态机设定,其计数规则由clk发生器发出的脉冲信号决定,clk发生器发出的脉冲信号每当上升沿出现时,计数器的计数加1,在100个上升沿后,计数器的计数清零,重新开始计数,预设电压值为norflash存储器在一般情况下,完成编程操作所需对编程存储单元施加的电压值,该值是结合大量仿真测试、实际测试和经验公式计算等方式综合得到。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

可选地,步骤102之前,该方法还包括:

步骤1002:通过编程操作状态机验证待编程数据是否与编程存储单元中已存储的数据一致,若一致则编程操作状态机结束编程操作。

本发明实施例中,编程操作状态机在执行编程加压操作之前,编程操作状态机在接收编程操作指令和待编程数据后,首先进行一个编程验证操作,验证待编程数据是否与编程存储单元中已存储的数据一致,之所以进行编程验证操作,是因为可能存在待编程数据已经在编程存储单元内的情况,若是已经存在,则认为编程成功,编程操作状态机结束本次编程操作。在执行编程加压操作之前,编程操作状态机需要对待编程数据和编程单元已存储数据进行编程验证操作,若是待编程数据和编程单元已存储数据不一致,则验证不通过,才会执行编程加压操作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

可选地,参照图3,编程操作状态机执行编程加压操作具体包括以下步骤:

步骤102a:norflash存储器接收温度传感器发送的norflash存储器的工作温度。

本发明实施例中,温度传感器会实时地将检测到的norflash存储器的工作温度发送给norflash存储器,该温度是随时变化的,一般情况下,norflash存储器开始工作时,温度略高于室温,在工作一段时间后,温度要远高于室温,而在执行编程、擦除或者读取等操作时,随着使用时间越长,温度可能就越高。例如室温20℃,norflash存储器开始工作时工作温度可能为22℃,在工作一段时间后,温度可能上升到40℃,执行编程、擦除或者读取等操作后,温度可能会上升到60℃以上,这个温度差异比较大。在执行编程加压操作过程时,norflash存储器会接收到温度传感器发送的norflash存储器工作温度。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102b:norflash存储器调用norflash存储器的工作温度区间与时钟频率发生器的产生频率关系表,其中,工作温度越高的工作温度区间对应的时钟频率发生器的产生频率越慢。

本发明实施例中,编程操作状态机执行编程加压操作时,norflash存储器会调用norflash存储器的工作温度区间与clk发生器的产生频率的关系表,该表为norflash存储器工作温度区间与clk发生器的产生频率的对应关系表,该对应关系表同样也是结合大量仿真测试、实际测试和经验公式计算等方式综合得到,工作温度越高的工作温度区间对应的clk发生器的产生频率越慢,例如在工作温度0℃~20℃区间,clk发生器的产生频率为50赫兹,在工作温度21℃~40℃区间,clk发生器的产生频率为40赫兹,在工作温度41℃~60℃区间,clk发生器的产生频率为25赫兹,在工作温度61℃~90℃区间,clk发生器的产生频率为20赫兹,在工作温度90℃以上区间,clk发生器的产生频率为5赫兹,需要说明的是,上述数据只是为了更好的解释本发明实施例而列举的数字,并不代表实际应用中的具体数字。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102c:norflash存储器根据工作温度与关系表,调整时钟频率发生器的产生频率。

本发明实施例中,norflash存储器根据工作温度与关系表,来调整clk发生器的产生频率,例如norflash存储器的当前工作温度为23℃,在工作温度21℃~40℃区间,则对应关系表中对应的clk发生器的产生频率为40赫兹,norflash存储器调整clk发生器的产生频率为40赫兹。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

可选地,参照图4,步骤102c具体包括:

步骤102c1:norflash存储器根据工作温度,从norflash存储器的工作温度区间中确定工作温度所属的目标工作温度区间。

本发明实施例中,编程操作状态机在执行编程加压操作时,norflash存储器根据工作温度,从norflash存储器的工作温度区间中确定工作温度所属的目标工作温度区间,例如norflash存储器的当前工作温度为46℃,其所属的目标工作温度区间为工作温度41℃~60℃区间,norflash存储器的当前工作温度为88℃,其所属的目标工作温度区间为工作温度61℃~90℃区间。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102c2:norflash存储器从关系表中查找对应于目标工作温度区间的目标频率值。

本发明实施例中,确定了目标工作温度区间后,norflash存储器从关系表中查找对应于目标工作温度区间的目标频率值,例如目标工作温度41℃~60℃区间,对应clk发生器的产生频率为25赫兹(即目标频率值),目标工作温度61℃~90℃区间,对应clk发生器的产生频率为20赫兹。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102c3:norflash存储器将时钟频率发生器的产生频率调整为目标频率值。

本发明实施例中,确定了clk发生器的产生频率后,norflash存储器会将本次编程加压操作时clk发生器的产生频率调整为目标频率值。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102d:根据调整后的时钟频率发生器的产生频率,通过编程操作状态机调整时间。

本发明实施例中,在norflash存储器调整时钟频率发生器的产生频率后,计数器的最大值不变,则编程加压操作的时间就通过编程操作状态机改变,即通过编程操作状态机调整编程加压操作的时间。

步骤102e:根据调整后的时间,通过编程操作状态机完成编程加压操作。

本发明实施例中,norflash存储器调整clk发生器的产生频率,则单次编程加压操作的时间就会变动,例如计数器的最大值为100,执行第一次编程加压操作时,clk发生器的产生频率为50赫兹,则clk发生器的周期为0.02秒,那么第一次编程加压操作的时间就为2秒;执行第二次编程加压操作时,clk发生器的频率为40赫兹,则clk发生器的周期为0.025秒,那么第二次编程加压操作的时间就为2.5秒,则编程操作状态机根据调整后的时间,完成编程加压操作,即第一次编程加压操作持续加压的时间为2秒,第二次编程加压操作持续加压的时间为2.5秒。

可选地,参照图5,步骤102d具体包括:

102e1:通过编程操作状态机判断计数器的计数值是否达到其最大值。

本发明实施例中,在单次编程加压操作时,编程操作状态机需要判断计数器的当前计数值是否达到其最大值,例如计数器的最大值为100,针对单次编程加压操作,编程操作状态机需要判断本次加压操作过程中,计数器是否达到最大值100。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

102e2:若计数器未达到其最大值,通过编程操作状态机在调整后的时间内持续执行本次编程加压操作。

本发明实施例中,若是编程操作状态机判断本次计数器未达到最大值,假设最大值为100,而计数器此刻计数到60,则编程操作状态机继续执行本次编程加压操作,直到计数器计数到100为止。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

102e3:若计数器达到其最大值,通过编程操作状态机结束本次编程加压操作。

本发明实施例中,在计数器计数达到最大值时,编程操作状态机就会结束本次编程加压操作,执行下一次编程验证操作,验证在本次编程加压操作后,编程存储单元中存储的数据是否和待编程数据一致,若是一致则通过验证,若是不一致则验证不通过,需要再一次执行编程加压操作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

可选地,参照图6,若计数器达到其最大值,通过编程操作状态机结束本次编程加压操作之后,步骤102e还包括:

步骤102e4:通过编程操作状态机判断编程加压操作的循环次数是否达到第一预设值;

本发明实施例中,编程操作状态机结束本次编程加压操作之后,下一步需要执行编程验证操作,在执行编程验证操作之前,编程操作状态机判断编程加压操作的循环次数是否达到第一预设值,编程操作状态机接收编程操作指令后,首先执行编程验证操作,若是验证不通过,则执行第一次编程加压操作,第一次编程加压操作结束时,即为第一次编程循环,编程循环是指:编程操作状态机执行第一次编程验证操作,若是验证不通过,则执行第一次编程加压操作,该次编程加压操作结束时,即为第一次编程循环,其中完成上述两个步骤,执行第一次编程验证操作,则编程验证操作循环次数为1,执行第一次编程加压操作,则编程加压操作循环次数为1,在第一次编程加压操作结束后,编程操作状态机就执行第二次编程验证操作,若是验证不通过,则执行第二次编程加压操作,第二次编程加压操作结束时,即为第二次编程循环,执行第二次编程验证操作,则编程验证操作循环次数为2,执行第二次编程加压操作,则编程加压操作循环次数为2,在第二次编程加压操作结束后,编程操作状态机就执行第三次编程验证操作,若是验证不通过,则执行第三次编程加压操作,第三次编程加压操作结束时,即为第三次编程循环,执行第三次编程验证操作,则编程验证操作循环次数为3,执行第三次编程加压操作,则编程加压操作循环次数为3,依次类推,在每次执行编程验证操作之前,编程操作状态机需要判断编程加压操作的循环次数是否达到第一预设值,第一预设值为人为设定的一个上限值,设定该值是为了使得norflash存储器更高效率的工作,假设一次编程操作,因为各方面的原因,导致待编程数据无法写入编程存储单元,若是没有循环次数上限,那么编程操作状态机需要无休止地执行编程加压操作,则norflash存储器就会永远处于编程操作状态,相当于死机,无法处理其他任何工作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102e5:若循环次数达到第一预设值,通过编程操作状态机结束编程操作指令对应的编程操作;

本发明实施例中,若是循环次数达到第一预设值,例如第一预设值为十万次,则执行编程验证和编程加压操作的循环次数最高为十万次,当达到该数值后,则编程操作状态机不会再执行编程验证操作,假如第十万次循环过程中编程验证操作通过,待编程数据和编程存储单元中已存储的数据一致,则本次编程操作成功,假如第十万次循环过程中编程验证操作未通过,待编程数据和编程存储单元中已存储的数据不一致,则编程操作状态机执行第十万次循环过程中编程加压操作,本次编程加压操作之后,本次编程操作结束,此后不再执行编程验证操作,此时若是待编程数据和编程存储单元中已存储的数据一致,则本次编程操作成功,若是待编程数据和编程存储单元中已存储的数据不一致,则本次编程操作失败。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102e6:若循环次数未达到第一预设值,通过编程操作状态机执行下一次编程验证操作,编程验证操作为验证待编程数据是否与编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;

本发明实施例中,在循环次数未达到最大值,编程操作状态机就会执行下一次编程验证操作,验证在本次编程加压操作后,编程存储单元中存储的数据是否和待编程数据一致,若是一致则通过验证,若是不一致则验证不通过,需要再一次执行编程加压操作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102e7:若验证通过,通过编程操作状态机结束编程操作指令对应的编程操作;

本发明实施例中,编程操作状态机执行编程验证操作的结果是验证通过,编程操作状态机结束编程操作指令对应的编程操作,即编程存储单元中存储的数据和待编程数据一致。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤102e8:若验证未通过,通过编程操作状态机执行下一次编程加压操作。

本发明实施例中,编程操作状态机执行编程验证操作的结果是验证未通过,即编程存储单元中存储的数据和待编程数据不一致,则编程操作状态机执行下一次编程加压操作。本发明实施例对此不作详细限定,可以根据实际情况进行设置。

参照图7,示出了本发明实施例的设备示意图,norflash存储器包括:温度传感器、编程操作状态机、时钟频率发生器和编程存储单元,编程操作状态机包括:计数器,温度传感器与时钟频率发生器连接,编程操作状态机分别与编程存储单元和clk发生器连接,编程操作状态机接收上位机发送的编程操作指令和待编程数据,该编程操作指令中可能会包括有编程存储单元的地址,即需要将待编程数据写入指定地址的编程存储单元,编程操作状态机首先执行编程验证操作,验证对应地址的编程存储单元中存储的数据是否与待编程数据一致,若一致,则本次编程操作结束,本次编程操作成功;若不一致,则编程操作状态机将执行编程加压操作。

假设以3.2v电压执行本次编程操作,计数器最大值100,norflash存储器的工作温度为28℃,执行第一次编程验证操作,但编程验证操作未通过,则编程操作状态机将执行第一次编程加压操作,norflash存储器接收到温度传感器发送的norflash存储器工作温度为28℃,调用关系表,确定工作温度28℃在工作温度区间表中的所属为工作温度21℃~40℃区间,其对应的clk发生器的产生频率为40赫兹,则norflash存储器调整第一次编程加压操作clk发生器的产生频率为40赫兹,则clk发生器的周期为0.025秒,那么第一次编程加压操作的时间就为2.5秒,即编程操作状态机持续以3.2v电压加压2.5秒将待编程数据写入对应地址的编程存储单元,此时编程加压操作的循环次数为1,编程验证操作的循环次数为1,之后将执行第二次编程验证操作。

在执行第二次编程验证操作之前,编程操作状态机首先判断编程加压操作的循环次数是否达到上限值,若未达到上限值,则执行第二次编程验证操作。如果第二次编程验证操作验证未通过,此时需要执行第二次编程加压操作,norflash存储器接收到温度传感器发送的norflash存储器工作温度为32℃,调用关系表,确定工作温度32℃在工作温度区间表中的所属为工作温度41℃~60℃区间,其对应的clk发生器的产生频率为25赫兹,则norflash存储器调整第二次编程加压操作clk发生器的产生频率为25赫兹(即从40赫兹调整到25赫兹),则clk发生器的周期为0.04秒,那么第二次编程加压操作的时间就为4秒,即编程操作状态机持续以3.2v电压加压4秒将待编程数据写入对应地址的编程存储单元,此时编程加压操作的循环次数为2,编程验证操作的循环次数为2,之后将执行第三次编程验证操作。

在执行第三次编程验证操作之前,编程操作状态机首先判断编程加压操作的循环次数是否达到上限值,若未达到上限值,则执行第三次编程验证操作。如果第三次编程验证操作验证未通过,此时需要执行第三次编程加压操作,norflash存储器接收到温度传感器发送的norflash存储器工作温度为96℃,调用关系表,确定工作温度96℃在工作温度区间表中的所属为工作温度90℃以上区间,其对应的clk发生器的产生频率为5赫兹,则norflash存储器调整第三次编程加压操作clk发生器的产生频率为5赫兹(即从25赫兹调整到5赫兹),则clk发生器的周期为0.2秒,那么第三次编程加压操作的时间就为20秒,即编程操作状态机持续以3.2v电压加压20秒将待编程数据写入对应地址的编程存储单元,此时编程加压操作的循环次数为3,编程验证操作的循环次数为3,之后执行第四次编程验证操作,此时编程加压操作的循环次数为3。

在执行第四次编程验证操作之前,编程操作状态机首先判断编程加压操作的循环次数是否达到上限值,若未达到上限值,则执行第四次编程验证操作。如果第四次编程验证操作,验证通过,即对应地址的编程存储单元内存储的数据和待编程数据一致,则本次编程操作结束,并且编程成功。

假如上述过程中,编程加压操作的循环次数上限为4次,编程操作状态机首先判断编程加压操作的循环次数达到上限值,编程操作状态机将结束本次编程操作,而在第4次编程验证操作时,若对应地址的编程存储单元内存储的数据和待编程数据一致,则本次编程操作成功;若对应地址的编程存储单元内存储的数据和待编程数据不一致,则执行第4次编程加压操作,执行第4次编程加压操作后,结束本次编程操作。此时若对应地址的编程存储单元内存储的数据和待编程数据一致,则本次编程操作成功;若对应地址的编程存储单元内存储的数据和待编程数据不一致,则本次编程操作失败。

本发明实施例一种控制编程性能装置的框图,该装置应用于norflash存储器,norflash存储器包括:温度传感器、编程操作状态机、时钟频率发生器以及编程存储单元,编程操作状态机包括:计数器,温度传感器与时钟频率发生器连接,编程操作状态机分别与时钟频率发生器和编程存储单元连接,控制编程性能的装置包括:

第一接收模块,用于通过编程操作状态机接收编程操作指令和待编程数据,待编程数据为所需写入编程存储单元的数据;

执行模块,用于根据编程操作指令和待编程数据,通过编程操作状态机执行编程加压操作,编程加压操作为对编程存储单元持续施加预设电压值的操作,持续施加预设电压值的时间为计数器的最大值与时钟频率发生器的周期的乘积;

其中,执行模块包括:

第二接收模块,用于norflash存储器接收温度传感器发送的norflash存储器的工作温度;

调用关系表模块,用于norflash存储器调用norflash存储器的工作温度区间与时钟频率发生器的产生频率关系表,其中,工作温度越高的工作温度区间对应的时钟频率发生器的产生频率越慢;

调整频率模块,用于norflash存储器根据工作温度与关系表,调整时钟频率发生器的产生频率,以调整时间;

调整时间模块,用于根据调整后的时钟频率发生器的产生频率,通过编程操作状态机调整时间;

完成模块,用于根据调整后的时间,通过编程操作状态机完成编程加压操作。

可选地,调整频率模块包括:

确定区间子模块,用于norflash存储器根据工作温度,从norflash存储器的工作温度区间中确定工作温度所属的目标工作温度区间;

查找目标子模块,用于norflash存储器从关系表中查找对应于目标工作温度区间的目标频率值;

调整频率子模块,用于norflash存储器将时钟频率发生器的产生频率调整为目标频率值;

可选地,完成模块包括:

判断子模块,用于通过编程操作状态机判断计数器的计数值是否达到其最大值;

继续执行子模块,用于若计数器未达到其最大值,通过编程操作状态机在调整后的时间内持续执行本次编程加压操作;

结束子模块,用于若计数器达到其最大值,通过编程操作状态机结束本次编程加压操作。

可选地,控制编程性能的装置还包括:

判断次数模块,用于通过编程操作状态机判断编程加压操作的循环次数是否达到第一预设值;

结束验证模块,用于若循环次数达到第一预设值,通过编程操作状态机结束编程操作指令对应的编程操作;还用于若循环次数未达到第一预设值,通过编程操作状态机执行下一次编程验证操作,编程验证操作为验证待编程数据是否与编程存储单元中已存储数据一致的操作,若一致则验证通过,若不一致则验证不通过;

结束编程模块,用于若验证通过,通过编程操作状态机结束编程操作指令对应的编程操作;

执行加压模块,用于若验证未通过,通过编程操作状态机执行下一次编程加压操作。

可选地,控制编程性能的装置还包括:

验证结束模块,用于通过编程操作状态机验证待编程数据是否与编程存储单元中已存储的数据一致,若一致则编程操作状态机结束编程操作指令对应的编程操作。

通过上述实施例,本发明在编程操作时,首先执行编程验证操作,判断待编程数据和编程存储单元中存储的数据是否一致,若编程存储单元阈值电压大于验证电压,则直接结束编程操作;在不一致时,编程操作状态机执行编程加压操作,编程操作状态机根据温度传感器发送的工作温度,查找对应的工作温度区间,利用关系表,确定单次编程加压操作clk发生器的产生频率,根据clk发生器的产生频率来确定编程加压时间,编程加压操作结束后,执行下一次编程验证操作,执行下一次编程验证操作需要根据验证结果和循环次数,决定编程操作结束还是再一次执行编程验证操作,达到控制编程验证操作和编程加压操作的循环周期,提高norflash存储器的编程性能。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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