一种存储单元的编程方法技术

技术编号:14146822 阅读:120 留言:0更新日期:2016-12-11 03:35
本发明专利技术公开了一种存储单元的编程方法,该方法包括:根据编程指令对当前编程地址对应的存储单元进行编程操作;对所述存储单元进行编程校验,检验所述存储单元的当前状态是否为已经编程成功,若是,则结束当前编程操作,否则增大编程电压的脉冲宽度,并返回执行所述对当前编程地址对应的存储单元进行的编程操作,直至编程成功。本发明专利技术实施例提供的一种存储单元的编程方法,当一个存储单元经过第一次编程操作没有编程成功时,再对其进行编程时通过随着编程次数的增加不断增大编程电压的脉冲宽度,实现了对存储单元的快速编程,提高了编程速度。

【技术实现步骤摘要】

本专利技术实施例涉及存储
,具体涉及一种存储单元的编程方法
技术介绍
非易失闪存介质(nor flash/nand flash)是一种很常见的存储芯片,兼有随机存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM)的优点,数据掉电不会丢失,是一种可在系统进行电擦写的存储器,同时它的高集成度和低成本使它成为市场主流。Flash芯片是由内部成千上万个存储单元组成的,每个储存单元存储一位数据,多个存储单元构成页,多个页组成块,正是由于该特殊的物理结构,在nor flash/nand flash中是以页为单位进行读/写(编程操作)数据,以块为单位进行擦除数据的。在Flash芯片中,一个存储单元可看作为一个金属氧化物半导体场效晶体管(Metal-Oxide-Semiconductor Field-Effect Transistor,MOSFET)。图1是一种常见的MOSFET结构图,包括栅极20、源极21、漏极22、P型阱23、N型阱25、P型硅半导体衬底26以及隧穿氧化层24,其相互间的连接为:P型硅半导体衬底26扩散出两个N型区,P型阱23上方覆盖一层隧穿氧化层24,最后在N型区上方通过腐蚀的方法做成两个孔,通过金属化的方法分别在绝缘层上及两个孔内做成三个电极:栅极20、源极21和漏极22,源极21和漏极22分别对应两个N型区且栅极20为存储单元的字线,漏极22为存储单元的位线。进一步的,栅极20又包括控制栅极201、多晶硅层间电介质202(Inter-Poly Dielectric,IPD)、浮动栅极203,且浮动栅极203可以存储电荷。当对一个存储单元进行编程操作时,分别给栅极20、源极21以及漏极22施加相应的编程电压,此时,会有电流从漏极22流向源极21,电子从源极21流向漏极22的途中,会有一部分流向浮动栅极203,当浮动栅极203中的电子达到一定数量时,此存储单元就被编程成功,即此存储单元被成功写0。但是,由于Flash芯片制作工艺的问题,会有一些存储单元很难被编程,现有的解决方法是:为了保证编程的正确性,增加编程次数,但是却以牺牲编程速度为代价。因此,有必要设计一种新的存储单元的编程方法,以提高编程速度。
技术实现思路
本专利技术提供一种存储单元的编程方法,以提高编程速度。该方法包括:根据编程指令对当前编程地址对应的存储单元进行编程操作;对所述存储单元进行编程校验,检验所述存储单元的当前状态是否为已经编程成功,若是,则结束当前编程操作,否则增大编程电压的脉冲宽度,并返回执行所述对当前编程地址对应的存储单元进行的编程操作,直至编程成功。进一步地,所述增大编程电压的脉冲宽度,包括:所述编程电压的脉冲宽度依据如下公式进行增大:Ti=T0+(N-1)*Δt其中,Ti表示对所述存储单元进行第i次编程时对应的编程电压的脉冲宽度,T0表示编程电压的初始脉冲宽度,N表示对所述存储单元进行编程的次数,Δt表示脉冲宽度的增加量。进一步地,在增大编程电压的脉冲宽度之前,还包括:通过编程计数器对编程失败的次数进行累计;判断所述编程计数器中的数值是否为设定的最大值,若是,则结束此次编程操作,否则执行增大编程电压的脉冲宽度的操作。优选的,所述设定的最大值为小于或者等于64的正整数。进一步地,所述方法还包括:当检验所述存储单元的当前状态为已经编程成功时,判断所述当前编程地址是否为最后的编程地址,若是则退出编程操作,否则更改所述当前编程地址,继续对其他的存储单元进行编程操作,并进行编程校验,直至所有的存储单元完成编程操作。示例性地,所述编程操作包括:分别向所述存储单元的栅极和漏极施加编程电压。示例性地,向所述存储单元的栅极施加的编程电压范围为7-10V,向所述存储单元的漏极施加的编程电压范围为3-5V。示例性地,所述检验存储单元的当前状态是否为已经编程成功,具体为:检测从存储单元的源极流向漏极的电流值是否小于预设电流值,若是,则所述存储单元的当前状态为已经编程成功。本专利技术实施例提供的一种存储单元的编程方法,首先根据编程指令对当前编程地址对应的存储单元进行编程操作,然后对所述存储单元进行编程校验,检验所述存储单元的当前状态是否为已经编程成功,若是,则结束当前编程操作,否则增大编程电压的脉冲宽度,并返回执行所述对当前编程地址对应的存储单元进行的编程操作,直至编程成功。当一个存储单元经过第一次编程操作没有编程成功时,再对其进行编程时通过随着编程次数的增加不断增大编程电压的脉冲宽度,实现了对存储单元的快速编程,提高了编程速度。附图说明图1是Flash芯片中一种作为存储单元的金属氧化物半导体场效晶体管的结构图;图2是本专利技术实施例一中的一种存储单元的编程方法流程图;图3是本专利技术实施例二中的一种存储单元的编程方法流程图;图4为本专利技术实施例三中的一种存储单元的编程方法流程图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图2为本专利技术实施例一提供的一种存储单元的编程方法流程图,本实施例可适用于对一些很难被编程成功的存储单元进行编程操作。参加图2,本实施例提供的存储单元的编程方法具体包括如下步骤:S110、根据编程指令对当前编程地址对应的存储单元进行编程操作。通过编写程序代码可以控制flash存储器进行三大主要操作,分别是读操作、写操作和擦除操作,其中,写操作又被称作编程操作,即完成对存储单元的写0操作。需要说明的是,对一个存储单元进行编程操作的原理是通过分别给存储单元的栅极以及漏极施加相应的编程电压,会有电流从漏极流向源极,电子从源极流向漏极的途中,会有一部分流向浮动栅极,当浮动栅极中的电子达到一定数量时,此存储单元就被编程成功,即此存储单元被成功写0,具体的存储单元的结构可以参见图1所示的结构示意图。示例性地,所述编程操作具体可以是分别向所述存储单元的栅极和漏极施加编程电压。典型地,向所述存储单元的栅极施加的编程电压可以为7-10V中的任意数值,向所述存储单元的漏极施加的编程电压可以为3-5V中的任意数值。本领域技术人员都知道,施加到存储单元的栅极上的电压范围7-10V以及施加到存储单元的漏极上的电压范围3-5V都是是优选的典型数值范围,并不对其进行限定。S120、对所述存储单元进行编程校验,检验所述存储单元的当前状态是否为已经编程成功,若是,则执行步骤S130结束当前编程操作,否则执行步骤S140、增大编程电压的脉冲宽度,并返回执行所述对当前编程地址对应的存储单元进行的编程操作,直至编程成功。对所述存储单元进行编程校验的实质是对所述存储单元进行一次读操作,更具体地可以理解为检验读出的数值是否为0,如果为0则说明所述存储单元已经编程成功,否则失败,需要再次进行编程操作。当遇到某存储单元编程失败的时候,传统的编程方法是通过增加编程次数来保证该存储单元编程成功,但是却牺牲了编程速度,本实施例的技术方案针对此种情况的做法是,当某存储单元第一次编程失败时,即编程校验不通过,再对该存储单元进行第二次本文档来自技高网
...
一种存储单元的编程方法

【技术保护点】
一种存储单元的编程方法,其特征在于,包括:根据编程指令对当前编程地址对应的存储单元进行编程操作;对所述存储单元进行编程校验,检验所述存储单元的当前状态是否为已经编程成功,若是,则结束当前编程操作,否则增大编程电压的脉冲宽度,并返回执行所述对当前编程地址对应的存储单元进行的编程操作,直至编程成功。

【技术特征摘要】
1.一种存储单元的编程方法,其特征在于,包括:根据编程指令对当前编程地址对应的存储单元进行编程操作;对所述存储单元进行编程校验,检验所述存储单元的当前状态是否为已经编程成功,若是,则结束当前编程操作,否则增大编程电压的脉冲宽度,并返回执行所述对当前编程地址对应的存储单元进行的编程操作,直至编程成功。2.根据权利要求1所述的方法,其特征在于,所述增大编程电压的脉冲宽度,包括:所述编程电压的脉冲宽度依据如下公式进行增大:Ti=T0+(N-1)*Δt其中,Ti表示对所述存储单元进行第i次编程时对应的编程电压的脉冲宽度,T0表示编程电压的初始脉冲宽度,N表示对所述存储单元进行编程的次数,Δt表示脉冲宽度的增加量。3.根据权利要求1所述的方法,其特征在于,在增大编程电压的脉冲宽度之前,还包括:通过编程计数器对编程失败的次数进行累计;判断所述编程计数器中的数值是否为设定的最大值,若是,则结束此次编程操作,否则执行增大编程电压的脉...

【专利技术属性】
技术研发人员:潘荣华薛子恒
申请(专利权)人:北京兆易创新科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1