状态寄存器及其写操作方法、芯片、装置
技术领域
本发明涉及半导体存储
技术领域
,尤其涉及一种状态寄存器及其写操作方法、芯片、装置。背景技术
一般情况下,芯片内部会有一些独立的小存储区域,例如状态寄存器,状态存储器一般包括多个存储单元、多根字线和多根位线,现有的状态存储器的所有存储单元一般是设置在同一根字线不同的位线上。例如图4所示的状态存储器,其中的存储单元有两个(cell0和cell1,此处仅为示例,存储单元不限于是两个),两个存储单元设置在同一根字线WL_0上(图中的横线WL为字线,竖线bl为位线)。这种状态存储器在进行写操作时的流程包括至少一次擦除和擦除验证、编程、编程验证、更新状态寄存器的数据至逻辑控制模块,其中,在执行编程操作和擦除操作时,通过字线向存储单元的栅极施加电压,而由于所有存储单元共用一根字线,因此会同时向所有存储单元的栅极施加电压,从而对其中不需要操作的存储单元造成压力,使存储单元的电学特性变差。
发明内容
鉴于上述现有技术的不足之处,本申请实施例的目的在于提供一种状态寄存器及其写操作方法、芯片、装置,可避免在进行编程操作或擦除操作时对不需要操作的存储单元造成压力。
第一方面,本申请实施例提供一种状态寄存器,包括多个存储单元、多根字线和多根位线;所述多个存储单元的漏极连接在不同的位线上;所述多个存储单元的栅极连接在不同的字线上 。
申请实施例的状态寄存器,由于各存储单元的栅极连接在不同的字线上,当只需要对部分存储单元进行编程或擦除时,只向需要操作的存储单元的字线施加相应的电压,不向其它存储单元的字线施加该电压,从而无需操作的存储单元不会受到额外的压力,避免由于这些额外的压力影响存储单元的电学特性。
在一些实施方式中,该状态寄存器,包括16根所述字线和16根所述位线。
在另一些实施方式中,该状态寄存器,包括22根所述字线和22根所述位线。
第二方面,本申请实施例提供一种芯片,包括所述的状态寄存器。
第三方面,本申请实施例提供一种状态寄存器的写操作方法,基于所述的状态寄存器,包括步骤:
获取写指令;
擦除判断:判断是否需要进行擦除操作,若需要则跳转至擦除步骤,否则跳转至编程判断步骤;
擦除:只向需要被擦除且其值为0的存储单元对应的字线施加第一负电压,使对应的存储单元的值由0变为1;
擦除验证:检测是否所有需要被擦除的存储单元的值均为1,若是则通过验证,否则跳回至擦除步骤;
编程判断:判断是否需要进行编程操作,若需要则跳转至编程步骤,否则跳转至数据更新步骤;
编程:根据所述写指令向需要被编程的存储单元对应的字线施加第一正电压,使对应的存储单元的值由1变为0;
编程验证:检测需要被编程的单元的值是否全部为0,若是则通过验证,否则跳回至编程步骤;
数据更新:更新状态寄存器的数据至逻辑控制模块。
优选地,擦除验证的步骤包括:
在所有需要被擦除的存储单元对应的字线上施加读电压,并在所有需要被擦除的存储单元对应的位线上施加对应的漏极电压;
获取各需要被擦除的存储单元的漏极电流以检测各需要被擦除的存储单元的值是否为1。
优选地,编程验证的步骤包括:
在需要被编程的存储单元对应的字线上施加读电压,并在需要被编程的存储单元对应的位线上施加对应的漏极电压;
获取各个需要被编程的存储单元的漏极电流以检测各个需要被编程的存储单元的值是否为0。
第四方面,本申请实施例提供一种状态寄存器的写操作装置,用于对所述的状态寄存器进行写操作,包括:
获取模块,用于获取写指令;
擦除判断模块,用于判断是否需要进行擦除操作;
擦除模块,用于在需要进行擦除操作的时候执行擦除操作:只向需要被擦除且其值为0的存储单元对应的字线施加第一负电压,使对应的存储单元的值由0变为1;
擦除验证模块,用于执行擦除验证操作:检测是否所有需要被擦除的存储单元的值均为1,若是则通过验证,否则跳回至擦除步骤;
编程判断模块,用于判断是否需要进行编程操作;
编程模块,用于在需要进行编程操作的时候执行编程操作:根据所述写指令向需要被编程的存储单元对应的字线施加第一正电压,使对应的存储单元的值由1变为0;
编程验证模块,用于执行编程验证操作:检测需要被编程的单元的值是否全部为0,若是则通过验证,否则跳回至编程步骤;
更新模块,用于更新状态寄存器的数据至逻辑控制模块。
优选地,擦除验证模块在执行擦除验证操作的时候:
在所有需要被擦除的存储单元对应的字线上施加读电压,并在所有需要被擦除的存储单元对应的位线上施加对应的漏极电压;
获取各需要被擦除的存储单元的漏极电流以检测各需要被擦除的存储单元的值是否为1。
优选地,编程验证模块在执行编程验证操作的时候:
在需要被编程的存储单元对应的字线上施加读电压,并在需要被编程的存储单元对应的位线上施加对应的漏极电压;
获取各个需要被编程的存储单元的漏极电流以检测各个需要被编程的存储单元的值是否为0。
有益效果:
本申请实施例提供的状态寄存器及其写操作方法、芯片、装置,由于各存储单元的栅极连接在不同的字线上,当只需要对部分存储单元进行编程或擦除时,只向需要操作的存储单元的字线施加相应的电压,不向其它存储单元的字线施加该电压,从而无需操作的存储单元不会受到额外的压力,避免由于这些额外的压力影响存储单元的电学特性。
附图说明
图1为本申请实施例提供的状态寄存器的结构示意图。
图2为本申请实施例提供的状态寄存器的写操作方法的流程图。
图3为本申请实施例提供的状态寄存器的写操作装置的结构示意图。
图4为现有的状态寄存器的结构示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
下文的公开提供的实施方式或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术佩戴人员可以意识到其他工艺的应用和/或其他材料的使用。
请参阅图1,本申请实施例提供的一种状态寄存器,包括多个存储单元1、多根字线2(图1中的横线WL)和多根位线3(图1中的竖线bl);所述多个存储单元1的漏极连接在不同的位线3上;所述多个存储单元1的栅极连接在不同的字线2上。
从而,状态寄存器中,不同的存储单元1所连接的字线2和位线3均不相同,各存储单元1在一定程度上相互独立。由于各存储单元1的栅极连接在不同的字线2上,当只需要对部分存储单元1进行编程或擦除时,只向需要操作的存储单元1的字线2施加相应的电压,不向其它存储单元1的字线2施加该电压,从而无需操作的存储单元1不会受到额外的压力,避免由于这些额外的压力影响存储单元1的电学特性。
在实际应用中,存储单元1的数量不超过字线2数量和位线3数量中的最小值,即:假设字线2数量为n1,位线3数量为n2,存储单元1的数量为n3,则n3≤min(n1,n2)。从而可保证各存储单元1所连接的字线2和位线3均不相同。虽然图1中画出了有两个存储单元1的情况,但不限于此。
在实际应用中,常用的状态寄存器的规格为16X16(即有16根字线2和16根位线3)和22X22(即有22根字线2和22根位线3)。因此,在一些实施方式中,该状态寄存器,包括16根所述字线和16根所述位线。在另一些实施方式中,该状态寄存器,包括22根所述字线和22根所述位线。从而该状态寄存器的兼容性较高。
此外,本申请实施例还提供一种芯片,包括所述的状态寄存器。
参见图2,本申请实施例还提供一种状态寄存器的写操作方法,基于前述的状态寄存器,包括步骤:
获取写指令;
擦除判断:判断是否需要进行擦除操作,若需要则跳转至擦除步骤,否则跳转至编程判断步骤;
擦除:只向需要被擦除且其值为0的存储单元对应的字线施加第一负电压,使对应的存储单元的值由0变为1;
擦除验证:检测是否所有需要被擦除的存储单元的值均为1,若是则通过验证,否则跳回至擦除步骤;
编程判断:判断是否需要进行编程操作,若需要则跳转至编程步骤,否则跳转至数据更新步骤;
编程:根据所述写指令向需要被编程的存储单元对应的字线施加第一正电压,使对应的存储单元的值由1变为0;
编程验证:检测需要被编程的单元的值是否全部为0,若是则通过验证,否则跳回至编程步骤;
数据更新:更新状态寄存器的数据至逻辑控制模块。
由于各存储单元1的栅极连接在不同的字线2上,当只需要对部分存储单元1进行编程或擦除时,只向需要操作的存储单元1的字线2施加相应的电压,不向其它存储单元1的字线2施加该电压,从而无需操作的存储单元1不会受到额外的压力,避免由于这些额外的压力影响存储单元1的电学特性。
其中,第一正电压、第一负电压的电压值可根据实际需要设置,例如第一正电压为9V,第一负电压为-9V。
在一些优选实施方式中,擦除判断的步骤包括:
检测是否所有需要被擦除的存储单元的值均为1;
若是,则判定不需要进行擦除操作,否则判定需要进行擦除操作。
具体地,检测是否所有需要被擦除的存储单元的值均为1的时候:
在所有需要被擦除的存储单元对应的字线上施加读电压,并在所有需要被擦除的存储单元对应的位线上施加对应的漏极电压;
获取各需要被擦除的存储单元的漏极电流以检测各需要被擦除的存储单元的值是否为1。
其中,读电压和漏极电压的电压值可根据实际需要设置,例如读电压为4V,漏极电压为1V。
在一些优选实施方式中,擦除验证的步骤包括:
若验证不通过,则第一验证次数+1;该第一验证次数的初始值为0;
判断所述第一验证次数是否达到预设的第一阈值;
若是,则结束写操作过程,并发出表示擦除失败的信号。
从而避免由于一直无法擦除成功而陷入死循环。
进一步地,擦除验证的步骤包括:
在所有需要被擦除的存储单元对应的字线上施加读电压,并在所有需要被擦除的存储单元对应的位线上施加对应的漏极电压;
获取各需要被擦除的存储单元的漏极电流以检测各需要被擦除的存储单元的值是否为1。
其中,读电压和漏极电压的电压值可根据实际需要设置,例如读电压为4V,漏极电压为1V。
在一些优选实施方式中,编程判断的步骤包括:
检测是否所有需要被编程的存储单元的值均为0;
若是,则判定不需要进行编程操作,否则判定需要进行编程操作。
具体地,检测是否所有需要被编程的存储单元的值均为0的时候:
在所有需要被编程的存储单元对应的字线上施加读电压,并在所有需要被编程的存储单元对应的位线上施加对应的漏极电压;
获取各需要被编程的存储单元的漏极电流以检测各需要被编程的存储单元的值是否为0。
其中,读电压和漏极电压的电压值可根据实际需要设置,例如读电压为4V,漏极电压为1V。
在一些优选实施方式中,编程验证的步骤包括:
若验证不通过,则第二验证次数+1;该第二验证次数的初始值为0;
判断所述第二验证次数是否达到预设的第二阈值;
若是,则结束写操作过程,并发出表示编程失败的信号。
从而避免由于一直无法编程成功而陷入死循环。
进一步地,编程验证的步骤包括:
在需要被编程的存储单元对应的字线上施加读电压,并在需要被编程的存储单元对应的位线上施加对应的漏极电压;
获取各个需要被编程的存储单元的漏极电流以检测各个需要被编程的存储单元的值是否为0。
参见图3,本申请实施例还提供一种状态寄存器的写操作装置,用于对前述的状态寄存器进行写操作,包括:
获取模块100,用于获取写指令;
擦除判断模块200,用于判断是否需要进行擦除操作;
擦除模块300,用于在需要进行擦除操作的时候执行擦除操作:只向需要被擦除且其值为0的存储单元对应的字线施加第一负电压,使对应的存储单元的值由0变为1;
擦除验证模块400,用于执行擦除验证操作:检测是否所有需要被擦除的存储单元的值均为1,若是则通过验证,否则跳回至擦除步骤;
编程判断模块500,用于判断是否需要进行编程操作;
编程模块600,用于在需要进行编程操作的时候执行编程操作:根据所述写指令向需要被编程的存储单元对应的字线施加第一正电压,使对应的存储单元的值由1变为0;
编程验证模块700,用于执行编程验证操作:检测需要被编程的单元的值是否全部为0,若是则通过验证,否则跳回至编程步骤;
更新模块800,用于更新状态寄存器的数据至逻辑控制模块。
由于各存储单元1的栅极连接在不同的字线2上,当只需要对部分存储单元1进行编程或擦除时,只向需要操作的存储单元1的字线2施加相应的电压,不向其它存储单元1的字线2施加该电压,从而无需操作的存储单元1不会受到额外的压力,避免由于这些额外的压力影响存储单元1的电学特性。
其中,第一正电压、第一负电压的电压值可根据实际需要设置,例如第一正电压为9V,第一负电压为-9V。
在一些优选实施方式中,擦除判断模块200在判断是否需要进行擦除操作的时候:
检测是否所有需要被擦除的存储单元的值均为1;
若是,则判定不需要进行擦除操作,否则判定需要进行擦除操作。
具体地,检测是否所有需要被擦除的存储单元的值均为1的时候:
在所有需要被擦除的存储单元对应的字线上施加读电压,并在所有需要被擦除的存储单元对应的位线上施加对应的漏极电压;
获取各需要被擦除的存储单元的漏极电流以检测各需要被擦除的存储单元的值是否为1。
其中,读电压和漏极电压的电压值可根据实际需要设置,例如读电压为4V,漏极电压为1V。
在一些优选实施方式中,擦除验证模块400在执行擦除验证操作的时候:
若验证不通过,则第一验证次数+1;该第一验证次数的初始值为0;
判断所述第一验证次数是否达到预设的第一阈值;
若是,则结束写操作过程,并发出表示擦除失败的信号。
从而避免由于一直无法擦除成功而陷入死循环。
进一步地,擦除验证模块400在执行擦除验证操作的时候:
在所有需要被擦除的存储单元对应的字线上施加读电压,并在所有需要被擦除的存储单元对应的位线上施加对应的漏极电压;
获取各需要被擦除的存储单元的漏极电流以检测各需要被擦除的存储单元的值是否为1。
其中,读电压和漏极电压的电压值可根据实际需要设置,例如读电压为4V,漏极电压为1V。
在一些优选实施方式中,编程判断模块500在判断是否需要进行编程操作的时候:
检测是否所有需要被编程的存储单元的值均为0;
若是,则判定不需要进行编程操作,否则判定需要进行编程操作。
具体地,检测是否所有需要被编程的存储单元的值均为0的时候:
在所有需要被编程的存储单元对应的字线上施加读电压,并在所有需要被编程的存储单元对应的位线上施加对应的漏极电压;
获取各需要被编程的存储单元的漏极电流以检测各需要被编程的存储单元的值是否为0。
其中,读电压和漏极电压的电压值可根据实际需要设置,例如读电压为4V,漏极电压为1V。
在一些优选实施方式中,编程验证模块700在执行编程验证操作的时候:
若验证不通过,则第二验证次数+1;该第二验证次数的初始值为0;
判断所述第二验证次数是否达到预设的第二阈值;
若是,则结束写操作过程,并发出表示编程失败的信号。
从而避免由于一直无法编程成功而陷入死循环。
进一步地,编程验证模块700在执行编程验证操作的时候:
在需要被编程的存储单元对应的字线上施加读电压,并在需要被编程的存储单元对应的位线上施加对应的漏极电压;
获取各个需要被编程的存储单元的漏极电流以检测各个需要被编程的存储单元的值是否为0。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术佩戴人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,其方案与本发明实质上相同。