一种计数电路、半导体存储器以及计数方法与流程

文档序号:31898960发布日期:2022-10-22 03:18阅读:49来源:国知局
一种计数电路、半导体存储器以及计数方法与流程

1.本公开涉及集成电路技术领域,尤其涉及一种计数电路、半导体存储器以及计数方法。


背景技术:

2.随着半导体技术的不断发展,人们在制造和使用计算机等设备时,对数据的传输速度提出了越来越高的要求。为了获得更快的数据传输速度,应运而生了一系列数据可以双倍速率(double data rate,ddr)传输的存储器等器件。
3.以动态随机存取存储器(dynamic random access memory,dram)为例,需要在至少每24小时对dram进行一次完整的错误检查与清除并且记录有多少错误数。然而,相关技术中的错误计数器(error counter,ec)存在较多的连接线和逻辑器件,导致电路面积大,而且实现的复杂度高。


技术实现要素:

4.本公开实施例提供了一种计数电路、半导体存储器以及计数方法。
5.第一方面,本公开实施例提供了一种计数电路,包括第一译码模块和第一计数模块,且第一译码模块与第一计数模块连接,其中:第一译码模块,用于接收第一模式信号,对第一模式信号进行译码处理,生成译码信号;第一计数模块包括至少一个子计数模块,用于根据译码信号从至少一个子计数模块中确定被选择的目标计数模块,以及接收计数信号,通过目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号。
6.在一些实施例中,第一模式信号表征计数阈值。
7.在一些实施例中,译码信号包括n位子译码信号,n为大于0的整数;第一译码模块,还用于在生成译码信号的过程中,若第i位子译码信号的电平值为第一值,则确定除第i位子译码信号之外的其他位子译码信号的电平值均为第二值;其中,第一值与第二值不同,而且i的不同取值对应不同的译码信号,不同的译码信号表征不同的计数阈值,i为大于0且小于或等于n的整数。
8.在一些实施例中,至少一个子计数模块的数量为n个,且至少一个子计数模块为级联关系,第i个子计数模块与第i位子译码信号之间具有对应关系;其中,第一计数模块,用于在第i位子译码信号的电平值为第一值时,将第i个子计数模块至第n个子计数模块确定为目标计数模块;以及通过第i个子计数模块至第n个子计数模块对计数信号进行计数,输出第一计数脉冲信号。
9.在一些实施例中,每一个子计数模块包括第一输入端、第二输入端和输出端;其中,每一个子计数模块的第一输入端均与计数信号连接;第1个子计数模块的第二输入端与第一电源信号连接,第j个子计数模块的第二输入端与第j-1个子计数模块的输出端连接,
第n个子计数模块的输出端用于输出第一计数脉冲信号,j为大于1且小于或等于n的整数。
10.在一些实施例中,第i个子计数模块包括第i个选择单元和第i个计数单元,且第i个选择单元的第一输入端作为第i个子计数模块的第一输入端用于接收计数信号,第i个选择单元的第二输入端作为第i个子计数模块的第二输入端用于接收第一输入信号,第i个选择单元的输出端与第i个计数单元的时钟端连接,第i个计数单元的输出端作为第i个子计数模块的输出端用于输出第i中间信号;其中,第i个选择单元,用于接收第i个子译码信号,根据第i个子译码信号在计数信号和第一输入信号中选择输出第i选择信号;第i个计数单元,用于接收第i选择信号并进行计数,输出第i中间信号;其中,当i等于1时,第一输入信号为第一电源信号;当i大于1且小于或等于n时,第一输入信号为第i-1个计数单元输出的第i-1中间信号;以及,当i等于n时,第n中间信号为第一计数脉冲信号。
11.在一些实施例中,第i个计数单元为异步二进制计数器;其中,异步二进制计数器包括若干个依次级联的第一触发器,每一级第一触发器的输入端(d)与其自身的第二输出端(q非)连接,且每一级第一触发器的第二输出端(q非)与下一级第一触发器的时钟端(clk)连接,第一级第一触发器的时钟端与第i个选择单元的输出端连接,最后一级第一触发器的第二输出端(q非)作为第i个计数单元的输出端用于输出第i中间信号。
12.在一些实施例中,计数电路还包括计数信号生成模块,用于接收第二模式信号,响应于第二模式信号生成计数信号,第二模式信号指示执行的目标计数模式。
13.在一些实施例中,计数电路在执行错误检查与清除ecs操作时,其中:若第二模式信号的电平值为第一值,则确定目标计数模式为码字计数模式,计数信号为第一计数信号;或者,若在第二模式信号的电平值为第二值,则确定目标计数模式为行计数模式,计数信号为第二计数信号。
14.在一些实施例中,计数信号生成模块包括错误检测模块和模式选择模块;其中,错误检测模块,用于根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块;以及根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块;模式选择模块,与错误检测模块连接,用于接收第二模式选择信号、第一检测信号和第二检测信号,以及响应于第二模式信号的控制,根据第一检测信号生成第一计数信号,或者,根据第二检测信号生成第二计数信号。
15.在一些实施例中,计数信号生成模块包括错误检测模块和模式选择模块;其中,错误检测模块,用于接收所述第二模式选择信号;响应于所述第二模式选择信号,在码字计数模式下检测码字错误,根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块;或者,在行计数模式下检测存在码字错误的行,根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块;模式选择模块,与错误检测模块连接,用于接收第一检测信号或第二检测信号,并根据第一检测信号生成第一计数信号,或者,根据第二检测信号生成第二计数信号。
16.在一些实施例中,译码信号的位数为个;其中,x表示第一模式信号的位数。
17.第二方面,本公开实施例提供了一种半导体存储器,包括阈值计数电路、存储密度计数电路和目标计数电路,且阈值计数电路为第一方面所述的计数电路;其中:阈值计数电路,用于接收计数信号,并通过内部的目标计数模块对计数信号进行
计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号;存储密度计数电路,用于对第一计数脉冲信号进行计数,每当第一计数脉冲信号对应的计数值达到预设存储密度的整数倍时,输出第二计数脉冲信号;目标计数电路,用于对第二计数脉冲信号进行计数,输出目标计数信号。
18.在一些实施例中,存储密度计数电路为异步二进制计数器;其中,异步二进制计数器包括若干个依次级联的第二触发器,每一级第二触发器的输入端(d)与其自身的第二输出端(q非)连接,且每一级第二触发器的第二输出端(q非)与下一级第二触发器的时钟端(clk)连接,第一级第二触发器的时钟端与阈值计数电路的输出端连接,最后一级第二触发器的第二输出端(q非)作为存储密度计数电路的输出端与目标计数电路的时钟端(clk)连接。
19.在一些实施例中,第二触发器的数量与预设存储密度之间具有关联关系;其中,预设存储密度为,y表示第二触发器的数量。
20.在一些实施例中,目标计数电路为异步二进制计数器;其中,异步二进制计数器包括若干个依次级联的第三触发器,每一级第三触发器的输入端(d)与其自身的第二输出端(q非)连接,且每一级第三触发器的第二输出端(q非)与下一级第三触发器的时钟端(clk)连接,第一级第三触发器的时钟端与存储密度计数电路的输出端连接。
21.在一些实施例中,第三触发器的数量为m个,且目标计数信号是由第0位至第m-1位目标计数子信号组成的二进制数;其中,第k+1级第三触发器的第一输出端(q)用于输出第k位目标计数子信号,k为大于或等于0且小于m的整数。
22.在一些实施例中,半导体存储器还包括第二译码模块,用于根据接收到的ecs结束信号,对目标计数信号进行译码并存储到预设模式寄存器中。
23.在一些实施例中,预设模式寄存器至少包括m位,且每一位对应一个预设计数范围;其中,第二译码模块,还用于在目标计数结果满足第k预设计数范围时,将预设模式寄存器中第k位存储的数值设置为第一值,除第k位之外的其他位存储的数值设置为第二值。
24.在一些实施例中,目标计数结果为目标计数信号表征的计数值与预设值的乘积,预设值为计数阈值与预设存储密度的乘积值;其中,第k预设计数范围的最小值设置为预设值与的乘积;第k预设计数范围的最大值设置为预设值与的乘积和1之间的差值。
25.第三方面,本公开实施例提供了一种计数方法,应用于如第二方面所述的半导体存储器,该方法包括:接收计数信号,通过阈值计数电路内部的目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号;通过密度计数电路对第一计数脉冲信号进行计数,每当第一计数脉冲信号对应的计数值达到预设存储密度的整数倍时,输出第二计数脉冲信号;通过目标计数电路对第二计数脉冲信号进行计数,输出目标计数信号。
26.本公开实施例提供了一种计数电路、半导体存储器以及计数方法,该计数电路包括第一译码模块和第一计数模块,且第一译码模块与第一计数模块连接;第一译码模块,用于接收第一模式信号,对第一模式信号进行译码处理,生成译码信号;第一计数模块包括至少一个子计数模块,用于根据译码信号从至少一个子计数模块中确定被选择的目标计数模
块,以及接收计数信号,通过目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号。这样,根据第一模式信号可以生成译码信号,而不同的译码信号可以表征不同的计数阈值等级,且根据不同的译码信号还能够选择不同的目标计数模块,从而能够满足不同计数阈值等级的计数统计;另外,根据译码信号的不同来自适应选择目标计数模块,还可以避免相关技术中使用大量的逻辑器件而导致连接线过多的问题,从而还能够减小电路面积和连接线数量,同时降低电路复杂度,进而改善存储器的性能。
附图说明
27.图1为一种错误计数器的组成结构示意图;图2为一种错误计数器的逻辑电路结构示意图;图3为本公开实施例提供的一种计数电路的组成结构示意图一;图4为本公开实施例提供的一种计数电路的组成结构示意图二;图5为本公开实施例提供的一种计数电路的组成结构示意图三;图6为本公开实施例提供的一种计数单元的组成结构示意图;图7为本公开实施例提供的一种计数电路的组成结构示意图四;图8为本公开实施例提供的一种计数电路的组成结构示意图五;图9为本公开实施例提供的一种计数电路的组成结构示意图六;图10为本公开实施例提供的一种半导体存储器的组成结构示意图;图11为本公开实施例提供的一种计数统计电路的组成结构示意图一;图12为本公开实施例提供的一种存储密度计数电路的组成结构示意图;图13为本公开实施例提供的一种目标计数电路的组成结构示意图;图14为本公开实施例提供的一种计数统计电路的组成结构示意图二;图15为本公开实施例提供的一种计数统计电路的详细结构示意图;图16为本公开实施例提供的一种计数方法的流程示意图。
具体实施方式
28.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
29.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
30.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
31.需要指出,本公开实施例所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以
外的顺序实施。
32.对本公开实施例进行进一步详细说明之前,先对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:动态随机存取存储器(dynamic random access memory,dram);同步动态随机存取存储器(synchronous dynamic random access memory,sdram);双倍速率(double data rate,ddr);第5代ddr标准(ddr5 specification,ddr5 spec);保留供将来使用(reserved for future usage,rfu)多用途指令(multi-purpose command,mpc);多路选择器(multiplexer,mux);模式寄存器(mode register,mr);模式寄存器设置(mode register set,mrs);错误检查与清除(error check and scrub,ecs);错误检查与纠正(error checking and correcting,ecc)。
33.在本公开实施例中,ecs模式可以分为自动ecs操作模式和手动ecs操作模式。其中,在手动ecs操作模式下,利用内存控制器(controller)发送的mpc命令来产生ecs命令信号;在自动ecs操作模式下,可以利用刷新(refresh)或自刷新(self-refresh)来产生ecs命令信号;其中,ecs命令信号用于执行ecs操作。这里,需要至少在24小时内对dram进行一次完整的ecs操作。
34.可以理解地,以ddr5 dram为例,错误计数器(error counter,ec)通过模式寄存器mr14 op[5]选择哪一种模式。其中,当op[5]=0时,表示选择行计数模式(默认情况),该行计数模式用来计数有多少行至少有一个错误;当op[5]=1时,表示选择码字计数模式,该码字计数模式用来计数有多少码字错误。在所有ecs操作全部完成一次时,ec结果将根据阈值滤波器(threshold filter)加载到模式寄存器中,ec结果在被转移到模式寄存器后会被重置。在这里,阈值滤波器用于掩盖小于阈值滤波器设定阈值的错误计数,具体可以使用模式寄存器mr15 op[2:0]来设置,默认的设置是256/内存单元,op[2:0]=011b。当执行完所有ecs操作后,ec最终记录的结果将会加载到模式寄存器mr20中,mr20 op[7:0]对应的错误计数结果ec[7:0]表示在一定预设计数范围内的错误计数。例如,如果错误计数结果ec[0]的最小值大于阈值滤波器设定的错误计数阈值(error threshold count,etc),且ec[0]的最大值小于或等于2*etc*存储密度(density,单位为gb)-1,那么ec[0]的值为1。在这里,ec[7:1]的最小值被定义为ec[

]min=etc*density*2^

,ec[7:1]的最大值被定义为ec[

]max=2*(etc*density*2^

)-1,即若ec[7:0]的值满足对应的预设计数范围,则mr20 op[7:0]对应的位会被设置为1,否则被设置为0。其中,

=0, 1, 2,
ꢀ…
, 7。
[0035]
示例性地,参见表1,其示出了mr15设定的每内存单元(gb)对应的错误计数阈值(etc)示意。在默认情况下,该错误计数阈值可以设定为256。
[0036]
表1
参见表2,其示出了mr20中每个颗粒(dram die)对应的码字数值或者行数值的存储示意。
[0037]
表2以码字计数模式为例,错误计数器可以用来计数有多少错误的码字。图1示出了一种错误计数器的组成结构示意图。在图1中,ecc_error信号表示检测到错误码字信息时产生的脉冲信号,当每一次读取有ecc错误时,错误计数器将会递增。在dram完成一次完整的ecs操作之后,最终的错误计数结果会根据mr15译码出来的code《n:0》来选择错误计数阈值(etc)和预设存储密度(ngb),然后将符合当前计数标准的值加载到mr20中。
[0038]
其中,根据mr15译码出来的code《n:0》,可以决定当前的etc,同时乘以芯片的预设存储密度(ngb),能够得到需要设定的阈值etcd。以etcd=64为例,这时候需要选择连接到mr20中最低位mr20[0]中的值应该时ec64;但如果etcd=128,那么需要选择连接到mr20中最低位mr20[0]中的值应该时ec128,其他mr20[1:7]同理倍增选取。如此所设计的错误计数器,就会出现ec*信号和etcd*信号非常多的连接线和逻辑电路(这里,“*”可以表示64、128、

、1024、2048等),具体如图2所示。在图2中,这里除了mr20译码模块之外,还需要很多个逻辑器件(例如mux0、mux1、...、mux7等),而且每一个逻辑器件周围还存在很多个接口,分别与ec64、ec128、

、ec1024、...、etcd64、etcd128、

、etcd1024等等很多个信号连接。这种计数方法的实现电路和连接线较多,不仅增大电路面积,而且复杂度高。因此,如何更好的设计一种计数电路是本公开所需解决的问题。
[0039]
下面将结合附图对本公开各实施例进行详细说明。
[0040]
本公开的一实施例中,参见图3,其示出了本公开实施例提供的一种计数电路30的组成结构示意图。如图3所示,该计数电路30可以包括第一译码模块301和第一计数模块302,且第一译码模块301与第一计数模块302连接,其中:第一译码模块301,用于接收第一模式信号,对第一模式信号进行译码处理,生成译码信号;第一计数模块302包括至少一个子计数模块,用于根据译码信号从至少一个子计数模块中确定被选择的目标计数模块,以及接收计数信号,通过目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号。
[0041]
需要说明的是,在本公开实施例中,该计数电路30可以应用于半导体存储器,具体可以是dram ddrr芯片中。更具体地,该计数电路30可以应用于执行ecs操作中错误计数的
相关电路,但是并不局限于此,这里也可以适用于其他通过计数并且记录结果的电路。
[0042]
还需要说明的是,在本公开实施例中,第一计数脉冲信号表征计数信号对应的计数值与计数阈值之间的倍数关系。示例性地,以计数阈值设置为4为例,当计数信号累计4个脉冲时,输出的第一计数脉冲信号包括1个脉冲;计数信号累计8个脉冲时,输出的第一计数脉冲信号包括2个脉冲;也就是说,在计数信号的第4、8、12、16、

个脉冲时,输出的第一计数脉冲信号会对应出现一个脉冲。简言之,第一计数脉冲信号表征的是计数信号对应的计数值为计数阈值的多少倍数。
[0043]
还需要说明的是,在本公开实施例中,第一模式信号可以表征计数阈值。具体地,对于ecs操作过程中的错误计数,这里的计数阈值也可称为错误计数阈值。以前述的表1为例,第一模式信号可以用mr15 op[2:0]表示。其中,如果第一模式信号为000,那么计数阈值可以为4;如果第一模式信号为001,那么计数阈值可以为16;如果第一模式信号为011,那么计数阈值可以为256等等。也就是说,不同的第一模式信号可以对应不同的计数阈值。
[0044]
这样,通过第一译码模块301对第一模式信号进行译码处理之后,可以得到译码信号;根据译码信号能够从第一计数模块302中选择出对应的目标计数模块。如此,由于不同的第一模式信号对应不同的计数阈值,并且不同的第一模式信号经过译码得到的不同的译码信号,因而不同的译码信号可以表征不同的计数阈值等级,根据不同的译码信号还能够自适应选择目标计数模块,从而能够满足不同计数阈值等级的计数统计。
[0045]
在本公开实施例中,具体参见图3,第一译码模块301接收第一模式信号,对第一模式信号进行译码以生成译码信号,该译码信号可以包括n位子译码信号,如图3中的子译码信号1、子译码信号2、

、子译码信号n。第一计数模块302包括至少一个子计数模块,这至少一个子计数模块的数量也为n个,如图3所示的子计数模块1、子计数模块2、

、子计数模块n,而且这至少一个子计数模块为级联关系。其中,n为大于0的整数。
[0046]
进一步地,在本公开实施例中,无论是译码信号还是第一模式信号,其并非代表一个信号,这里的译码信号和第一模式信号均是多位信号,而且译码信号的位数与第一模式信号的位数之间具有关联关系。在一些实施例中,译码信号的位数为个;其中,x表示第一模式信号的位数。
[0047]
需要说明的是,译码信号可以是多位子译码信号。在这里,子译码信号的数量等于译码信号的位数,而且子译码信号的数量还等于子计数模块的数量;每一个子译码信号与对应的子计数模块连接。
[0048]
示例性地,假定第一模式信号包括三位,那么译码信号可以包括八位,即译码信号可以是八位子译码信号组成。因此,在本公开实施例中,第一译码模块301也可以称为三八译码器。
[0049]
在一些实施例中,译码信号可以包括n位子译码信号,n为大于0的整数;第一译码模块301,还用于在生成译码信号的过程中,若第i位子译码信号的电平值为第一值,则确定除第i位子译码信号之外的其他位子译码信号的电平值均为第二值;其中,第一值与第二值不同,i为大于0且小于或等于n的整数。
[0050]
需要说明的是,在本公开实施例中,i的取值与计数阈值具有关联关系。其中,这n位子译码信号中仅其中一位子译码信号的电平值为第一值,根据这一位子译码信号的位置
变化(即i的取值变化),使得译码信号发生变化;而不同的译码信号对应不同的计数阈值,简言之,i的不同取值对应不同的译码信号,不同的译码信号表征不同的计数阈值。
[0051]
还需要说明的是,在本公开实施例中,第一值可以为指示高电平的逻辑1,第二值可以为指示低电平的逻辑0;或者,第一值可以为指示低电平的逻辑0,第二值可以为指示高电平的逻辑1,对此并不作任何限定。
[0052]
示例性地,假定第一值设置为逻辑1,第二值设置为逻辑0,以译码信号包括八位子译码信号为例,译码信号可以为0000 0001、0000 0010、0000 0100、0000 1000,也可以为0001 0000、0010 0000、0100 0000、1000 0000等。结合前述的表1,如果第一模式信号为000,那么对应的译码信号为0000 0001,此时的计数阈值可以为4;如果第一模式信号为001,那么对应的译码信号为0000 0010,此时的计数阈值可以为16;如果第一模式信号为010,那么对应的译码信号为0000 0100,此时的计数阈值可以为64;如果第一模式信号为011,那么对应的译码信号为0000 1000,此时的计数阈值可以为256等等。也就是说,不同的第一模式信号可以对应不同的译码信号。而且在这些不同的译码信号中,每一个译码信号中只有一位子译码信号的电平值等于1;根据电平值等于1的位置不同,可以对应不同的译码信号,不同的译码信号又可以表征不同的计数阈值。
[0053]
在一些实施例中,在第一计数模块302中,这至少一个子计数模块的数量为n个,而且第i个子计数模块与第i位子译码信号之间具有对应关系,其中:第一计数模块302,用于在第i位子译码信号的电平值为第一值时,将第i个子计数模块至第n个子计数模块确定为目标计数模块;以及通过第i个子计数模块至第n个子计数模块对计数信号进行计数,输出第一计数脉冲信号。
[0054]
需要说明的是,在本公开实施例中,这n个子计数模块为级联关系,而且每一个子计数模块分别与对应的子译码信号连接。这样,在第i位子译码信号的电平值为第一值时,这时候计数信号作为第i个子计数模块的时钟输入,并且将第i个子计数模块及其之后的子计数模块(即第i个至第n个的子计数模块)作为目标计数模块,也即根据第i个子计数模块及其之后的子计数模块对计数信号进行计数。
[0055]
对于第一计数模块302而言,参见图4,这里的n个子计数模块依次为:子计数模块1、子计数模块2、

、子计数模块n。其中,子计数模块i表示第i个子计数模块,i为大于0且小于或等于n的整数。
[0056]
需要说明的是,在本公开实施例中,每一个子计数模块均可以包括第一输入端、第二输入端和输出端,其中,每一个子计数模块的第一输入端均与计数信号连接;以及第1个子计数模块的第二输入端与第一电源信号连接,第j个子计数模块的第二输入端与第j-1个子计数模块的输出端连接,第n个子计数模块的输出端用于输出第一计数脉冲信号,j为大于1且小于或等于n的整数。
[0057]
在这里,第一电源信号可以是由第一电源提供的电源信号。其中,第一电源可以为一个恒定电源。例如,第一电源可以为vss电源,用于提供恒定的低电平信号,故第一电源信号也可称为地信号。
[0058]
还需要说明的是,在本公开实施例中,每一个子计数模块还可以包括控制端,用于接收对应的子译码信号。这样,根据接收到的子译码信号,可以从这n个子计数模块中确定出所需的目标计数模块。
[0059]
具体来讲,当n等于1时,第一计数模块302只包括一个子计数模块,相应地,译码信号也可仅包括一个子译码信号,该子计数模块即为目标计数模块。这时候,该子计数模块的第一输入端与计数信号连接,该子计数模块的第二输入端与第一电源信号连接,同时该子计数模块的控制端用于接收唯一的子译码信号,该子计数模块的输出端用于输出第一计数脉冲信号。
[0060]
在本公开实施例中,当n等于1时,实际上是只有一种目标计数模块的实现方式,无法满足多种计数阈值等级的需求。因此,在本公开实施例中,n通常大于1,也就是说,该计数电路30可以应用多种不同的计数阈值等级场景下,根据第一模式信号译码可以确定具体的计数阈值,然后选择相应数量的子计数模块作为目标计数模块,能够适用于不同计数阈值等级的计数场景(例如错误计数场景、其他计数场景等),灵活性和适配性更强。
[0061]
示例性地,如图4所示,在n大于1时,每一个子计数模块的第一输入端均用于接收计数信号,每一个子计数模块的控制端均用于接收对应的子译码信号;以及第1个子计数模块(即子计数模块1)的第二输入端与第一电源(vss)连接,第1个至第n-1个子计数模块的输出端与下一个子计数模块的第二输入端连接,最后一个(第n个)子计数模块(即子计数模块n)的输出端用于输出第一计数脉冲信号。
[0062]
进一步地,在一些实施例中,在图4所示计数电路30的基础上,参见图5,第i个子计数模块可以包括第i个选择单元和第i个计数单元,且第i个选择单元的第一输入端作为第i个子计数模块的第一输入端用于接收计数信号,第i个选择单元的第二输入端作为第i个子计数模块的第二输入端用于接收第一输入信号,第i个选择单元的输出端与第i个计数单元的时钟端连接,第i个计数单元的输出端作为第i个子计数模块的输出端用于输出第i中间信号,其中:第i个选择单元,用于接收第i个子译码信号,根据第i个子译码信号在计数信号和第一输入信号中选择输出第i选择信号;第i个计数单元,用于接收第i选择信号并进行计数,输出第i中间信号。
[0063]
在这里,当i等于1时,第一输入信号为第一电源信号;当i大于1且小于或等于n时,第一输入信号为第i-1个计数单元输出的第i-1中间信号;以及,当i等于n时,第n中间信号为第一计数脉冲信号。
[0064]
需要说明的是,在本公开实施例中,如图5所示,每一个子计数模块均是由一个选择单元和一个计数单元组成,即:子计数模块1(第1个子计数模块)是由选择单元1(第1个选择单元)和计数单元1(第1个计数单元)组成,子计数模块2(第2个子计数模块)是由选择单元2(第2个选择单元)和计数单元2(第2个计数单元)组成,

,子计数模块n(第n个子计数模块)是由选择单元n(第n个选择单元)和计数单元n(第n个计数单元)组成。
[0065]
在每一个子计数模块中,选择单元用于接收对应的子译码信号,即:选择单元1用于接收子译码信号1(第1个子译码信号),选择单元2用于接收子译码信号2(第2个子译码信号),

,选择单元n用于接收子译码信号n(第n个子译码信号)。
[0066]
每一个选择单元可以包括第一输入端、第二输入端、控制端和输出端。其中,第i个选择单元的第一输入端即为第i个子计数模块的第一输入端,第i个选择单元的第二输入端即为第i个子计数模块的第二输入端,第i个选择单元的控制端即为第i个子计数模块的控制端,第i个选择单元的输出端与第i个计数单元的时钟端连接,第i个计数单元的输出端即
为第i个子计数模块的输出端。
[0067]
具体来讲,如图5所示,在子计数模块1中,选择单元1的输出端可以是从计数信号和第一电源信号中选择一者作为第1选择信号进行输出,计数单元1的时钟端用于接收第1选择信号,计数单元1的输出端用于输出第1中间信号;在子计数模块2中,选择单元2的输出端可以是从计数信号和第1中间信号中选择一者作为第2选择信号进行输出,计数单元2的时钟端用于接收第2选择信号,计数单元2的输出端用于输出第2中间信号;以此类推,在子计数模块n中,选择单元n的输出端可以是从计数信号和第n-1中间信号中选择一者作为第n选择信号进行输出,计数单元n的时钟端用于接收第n选择信号,计数单元n的输出端用于输出第n中间信号(即最终的第一计数脉冲信号)。
[0068]
这样,根据n位子译码信号,如果第1位子译码信号(子译码信号1)的电平值为第一值,那么选择单元1将会输出计数信号作为第1选择信号,此时级联的子计数模块1至子计数模块n作为目标计数模块;如果第2位子译码信号(子译码信号2)的电平值为第一值,那么选择单元2将会输出计数信号作为第2选择信号,此时级联的子计数模块2至子计数模块n作为目标计数模块;以此类推,如果第n位子译码信号(子译码信号n)的电平值为第一值,那么选择单元n将会输出计数信号作为第n选择信号,此时仅有子计数模块n作为目标计数模块;如此,能够实现根据这n位子译码信号自适应选择目标计数模块,进而满足不同计数阈值等级的计数统计。
[0069]
进一步地,对于第j个计数单元而言,在一些实施例中,第i个计数单元为异步二进制计数器,其中:异步二进制计数器可以包括若干个依次级联的第一触发器,每一级第一触发器的输入端(d)与其自身的第二输出端(q非)连接,且每一级第一触发器的第二输出端(q非)与下一级第一触发器的时钟端(clk)连接,第一级第一触发器的时钟端与第i个选择单元的输出端连接,最后一级第一触发器的第二输出端(q非)作为第i个计数单元的输出端用于输出第i中间信号。
[0070]
在本公开实施例中,对于计数单元i而言,以图6所示的异步二进制计数器为例,该计数单元i可以包括两个第一触发器。在这里,第一触发器可以为d型触发器,d型触发器(data flip-flop或delay flip-flop,dff)是一个具有记忆功能的、具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。d型触发器具有两个稳定状态,即“0”和“1”,在该触发器的时钟端所接收的信号触发沿触发下,可以从一个稳定状态翻转到另一个稳定状态。
[0071]
对于图6中的第一触发器(dff11或dff12)而言,第一触发器包括输入端(d)、时钟端(clk)、第一输出端(q)和第二输出端(q非,用/q表示)。在这里,每一级第一触发器的输入端(d)与自身的第二输出端(/q)连接,而且每一级第一触发器的第二输出端(/q)还与下一级第一触发器的时钟端(clk)连接;另外,第一级第一触发器(即dff11)的时钟端(clk)与第i选择信号连接,最后一级第一触发器(即dff12)的第二输出端(/q)用于输出第i中间信号。
[0072]
还需要说明的是,假定译码信号包括八位子译码信号,第一计数模块302包括八个子计数模块,每一个子计数模块中的计数单元均包括两个级联的第一触发器;这时候,若第1位子译码信号(子译码信号1)的电平值为第一值,则目标计数模块是由子计数模块1至子计数模块8级联得到,此时目标计数模块中包括级联的16个第一触发器;或者,若第7位子译
码信号(子译码信号7)的电平值为第一值,则目标计数模块是由子计数模块7至子计数模块8级联得到,此时目标计数模块中包括级联的4个第一触发器;或者,若第8位子译码信号(子译码信号8)的电平值为第一值,则目标计数模块仅包括子计数模块8,此时目标计数模块中包括级联的2个第一触发器。
[0073]
这样,第一译码模块301对第一模式信号译码得到八位子译码信号之后,根据这八位子译码信号不仅可以确定计数阈值等级,而且还可以选择将计数信号作为某一个计数单元(具体是指某一级第一触发器)的时钟输入,从而能够整体控制第一计数模块302的等级,以实现满足不同计数阈值等级的计数统计。
[0074]
在一些实施例中,在图3所示计数电路30的基础上,参见图7,该计数电路30还可以包括计数信号生成模块303,其中:计数信号生成模块303,用于接收第二模式信号,响应于所述第二模式信号生成所述计数信号,所述第二模式信号指示执行的目标计数模式。
[0075]
需要说明的是,在本公开实施例中,第一模式信号和第二模式信号不同。其中,第一模式信号可以是模式寄存器mr15中的用于设定计数阈值的模式信号,第二模式信号可以是模式寄存器mr14中的用于设定计数模式的模式信号。
[0076]
还需要说明的是,在本公开实施例中,这里的计数模式可以存在两种:码字计数模式和行计数模式。其中,码字计数模式用于计数有多少错误的码字数,行计数模式用于计数有多少至少有一个错误码字的行数。因此,在一些实施例中,计数电路30在执行ecs操作时,其中:若第二模式信号的电平值为第一值,则确定目标计数模式为码字计数模式,计数信号为第一计数信号;或者,若在第二模式信号的电平值为第二值,则确定目标计数模式为行计数模式,计数信号为第二计数信号。
[0077]
在本公开实施例中,第一计数信号也可以称为码字错误计数信号,第二计数信号也可以称为码字错误行计数信号。
[0078]
在本公开实施例中,第一值可以为指示高电平的逻辑1,第二值可以为指示低电平的逻辑0;或者,第一值可以为指示低电平的逻辑0,第二值可以为指示高电平的逻辑1,对此并不作任何限定。
[0079]
示例性地,如果第一值为逻辑1,第二值为逻辑0,那么在第二模式信号等于逻辑1时,这时候为码字计数模式,对应的计数信号为第一计数信号(即码字错误计数信号);在第二模式信号等于逻辑0时,这时候为行计数模式,对应的计数信号为第二计数信号(即码字错误行计数信号)。这样,在计数电路30中,通过第二模式信号可以选择是执行行计数模式还是执行码字计数模式。
[0080]
在一些实施例中,在图7所示计数电路30的基础上,参见图8,该计数信号生成模块303可以包括错误检测模块3031和模式选择模块3032,其中:错误检测模块3031,用于根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块3032;以及根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块3032;模式选择模块3032,与错误检测模块3031连接,用于接收第二模式选择信号、第一
检测信号和第二检测信号,以及响应于第二模式信号的控制,根据第一检测信号生成第一计数信号,或者,根据第二检测信号生成第二计数信号。
[0081]
在本公开实施例中,错误检测模块3031既可以检测到码字错误,以生成第一检测信号,同时又可以检测到存在码字错误的行,以生成第二检测信号;然后将第一检测信号和第二检测信号同时发送给模式选择模块3032;此时在模式选择模块3032中,根据接收到的第二模式选择信号来确定是码字计数模式还是行计数模式;然后如果是码字计数模式,那么可以根据第一检测信号来生成第一计数信号;或者,如果是行计数模式,那么可以根据第二检测信号来生成第二计数信号。
[0082]
在一些实施例中,在图7所示计数电路30的基础上,参见图9,该计数信号生成模块303可以包括错误检测模块3033和模式选择模块3034,其中:错误检测模块3033,用于接收第二模式选择信号;响应于第二模式选择信号,在码字计数模式下检测码字错误,根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块3034;或者,在行计数模式下检测存在码字错误的行,根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块3034;模式选择模块3034,与错误检测模块3033连接,用于接收第一检测信号或第二检测信号,并根据第一检测信号生成第一计数信号,或者,根据第二检测信号生成第二计数信号。
[0083]
在本公开实施例中,错误检测模块3033在接收到第二模式选择信号之后,可以用来确定是码字计数模式还是行计数模式;然后如果是码字计数模式,那么根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块3034;或者,如果是行计数模式,那么根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块3034;然后根据第一检测信号或第二检测信号来对应生成第一计数信号或第二计数信号。
[0084]
还需要说明的是,在本公开实施例中,不同计数模式对应不同的检测信号;不同的检测信号对应不同的计数信号(如码字错误计数信号或者码字错误行计数信号)。在这里,不同的计数信号可以表征至少有一个码字错误的行数或者总共有多少码字错误数,从而根据计数电路30可以确定该计数信号表征的计数值与计数阈值之间的倍数关系,换言之,该计数值中包括多少倍的计数阈值。
[0085]
示例性地,以码字计数模式为例,每检测到一个错误码字,就会对应产生一个脉冲,以此能够生成具有多个脉冲的计数信号。对于计数电路30而言,第一模式信号可以表征预设的计数阈值,而根据第一模式信号可以译码出至少一位子译码信号,这至少一位子译码信号可以确定出该计数阈值对应的目标计数模块;如此,通过该目标计数模块对计数信号进行计数,可以在每计数到计数阈值时会输出一个脉冲,以此生成第一计数脉冲信号。也就是说,第一计数脉冲信号表征计数信号对应的计数值与计数阈值之间的倍数关系。
[0086]
本公开实施例提供了一种计数电路,不同的译码信号可以表征不同的计数阈值等级,且根据不同的译码信号还能够自适应选择不同的目标计数模块,从而不仅能够满足不同计数阈值等级的计数统计,而且还可以避免相关技术中使用大量的逻辑器件而导致连接线过多的问题,降低了电路复杂度,进而改善存储器的性能。
[0087]
本公开的另一实施例中,参见图10,其示出了本公开实施例提供的一种半导体存
储器的组成结构示意图。如图10所示,该半导体存储器100可以包括计数统计电路80。
[0088]
在一些实施例中,图11示出了一种计数统计电路80的组成结构示意图。如图11所示,该计数统计电路80可以包括阈值计数电路801、存储密度计数电路802和目标计数电路803,其中:阈值计数电路801,用于接收计数信号,并通过内部的目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号;存储密度计数电路802,用于对第一计数脉冲信号进行计数,每当第一计数脉冲信号对应的计数值达到预设存储密度的整数倍时,输出第二计数脉冲信号;目标计数电路803,用于对第二计数脉冲信号进行计数,输出目标计数信号。
[0089]
需要说明的是,在本公开实施例中,阈值计数电路801可以为前述实施例任一项的计数电路30。
[0090]
还需要说明的是,在本公开实施例中,第一计数脉冲信号可以表征计数信号对应的计数值与计数阈值之间的倍数关系,第二计数脉冲信号可以表征第一计数脉冲信号对应的计数值与预设存储密度之间的倍数关系,目标计数信号表征第二计数脉冲信号对应的计数值,而目标计数结果为目标计数信号表征的计数值、计数阈值和预设存储密度的乘积,这里的目标计数结果能够表示计数统计电路80针对当前错误数据总共统计出多少个错误数。如此,在得到目标计数结果之后,根据该目标计数结果可以进一步确定其对应的预设计数范围,以便将其加载到预设模式寄存器中。
[0091]
还需要说明的是,在本公开实施例中,阈值计数电路801可以得到第一计数值,存储密度计数电路802可以得到第二计数值,目标计数电路803可以得到第三计数值。其中,第一计数值指示第一计数脉冲信号包括多少倍的计数阈值,第二计数值指示第二计数脉冲信号包括多少倍的预设存储密度,第三计数值即为目标计数信号表征的计数值。如此,目标计数结果可以是根据计数阈值、预设存储密度和第三计数值确定的,更具体地,假定预设值为计数阈值与预设存储密度的乘积值,那么目标计数结果为第三计数值与预设值的乘积。
[0092]
在一些实施例中,对于存储密度计数电路802而言,存储密度计数电路802可以为异步二进制计数器,其中:异步二进制计数器包括若干个依次级联的第二触发器,每一级第二触发器的输入端(d)与其自身的第二输出端(/q)连接,且每一级第二触发器的第二输出端(/q)与下一级第二触发器的时钟端(clk)连接,第一级第二触发器的时钟端与阈值计数电路801的输出端连接,最后一级第二触发器的第二输出端(/q)作为存储密度计数电路的输出端与目标计数电路803的时钟端(clk)连接。
[0093]
需要说明的是,在本公开实施例中,预设存储密度表征dram的内存为多个gb,例如8gb、16gb、32gb等。在实际应用中,预设存储密度可以根据实际情况进行具体设定,这里不作任何限定。
[0094]
还需要说明的是,在本公开实施例中,第二触发器的数量与预设存储密度之间具有关联关系;其中,预设存储密度为d,第二触发器的数量为y,且。
[0095]
对于存储密度计数电路802而言,以图12所示的异步二进制计数器为例,假定预设存储密度为16gb,那么该异步二进制计数器包括四个第二触发器。在这里,第二触发器可以
为d型触发器,这四个第二触发器分别为:dff21、dff22、dff23和dff24,而且dff1、dff22、dff23和dff24为级联关系。
[0096]
对于图12中的每一级第二触发器而言,第二触发器包括输入端(d)、时钟端(clk)、第一输出端(q)和第二输出端(/q)。在这里,每一级第二触发器的输入端(d)与自身的第二输出端(/q)连接,而且每一级第二触发器的第二输出端(/q)还与下一级第二触发器的时钟端(clk)连接;而且第一级第二触发器(即dff21)的时钟端(clk)用于接收第一计数脉冲信号,最后一级第一触发器(即dff24)的第二输出端(/q)用于输出第二计数脉冲信号。其中,第二计数脉冲信号可以表征第一计数脉冲信号对应的计数值与预设存储密度之间的倍数关系,也可以是当前错误数据与(计数阈值*预设存储密度)之间的倍数关系。
[0097]
在一些实施例中,对于目标计数电路803而言,目标计数电路803可以为异步二进制计数器,其中:异步二进制计数器包括若干个依次级联的第三触发器,每一级第三触发器的输入端(d)与其自身的第二输出端(/q)连接,且每一级第三触发器的第二输出端(/q)与下一级第三触发器的时钟端(clk)连接,第一级第三触发器的时钟端与存储密度计数电路802的输出端连接。
[0098]
在一些实施例中,目标计数信号可以是由第0位至第m-1位目标计数子信号组成的二进制数;相应地,第三触发器的数量为m个,其中:第k+1级第三触发器的第一输出端(q)用于输出第k位目标计数子信号,k为大于或等于0且小于m的整数,且m为大于零的整数。
[0099]
需要说明的是,对于目标计数电路803而言,以图13所示的异步二进制计数器为例,假定m等于8,那么该异步二进制计数器包括八个第三触发器。在这里,第三触发器可以为d型触发器,这八个第三触发器分别为:dff31、dff32、dff33、dff34、dff35、dff36、dff37和dff38,而且dff31、dff32、dff33、dff34、dff35、dff36、dff37和dff38为级联关系。
[0100]
对于图13中的每一级第三触发器而言,第三触发器包括输入端(d)、时钟端(clk)、第一输出端(q)和第二输出端(/q)。在这里,第一级第三触发器(即dff31)的时钟端(clk)用于接收第二计数脉冲信号,每一级第三触发器的输入端(d)与自身的第二输出端(/q)连接,而且每一级第三触发器的第二输出端(/q)还与下一级第二触发器的时钟端(clk)连接,每一级第三触发器的第一输出端(q)用于输出一位目标计数子信号。在图13中,这里会输出八位目标计数子信号,即:mr20《0》_pre、mr20《1》_pre、

、mr20《7》_pre;这八位目标计数子信号可以指示第三计数值,而根据计数阈值、预设存储密度和第三计数值能够确定最终的目标计数结果。
[0101]
进一步地,在一些实施例中,在图11所示计数统计电路80的基础上,参见图14,计数统计电路80还可以包括第二译码模块804和预设模式寄存器805,其中:第二译码模块804,用于根据接收到的ecs结束信号,对目标计数信号进行译码并存储到预设模式寄存器805中。
[0102]
需要说明的是,在本公开实施例中,预设模式寄存器805可以是mr20。在一些实施例中,该预设模式寄存器805至少包括m位,且每一位对应一个预设计数范围,且预设计数范围之间不重叠,其中:第二译码模块804,还用于在目标计数结果满足第k预设计数范围时,将预设模式
寄存器中第k位存储的数值设置为第一值,除第k位之外的其他位存储的数值设置为第二值。
[0103]
在这里,第一值可以为指示高电平的逻辑1,第二值可以为指示低电平的逻辑0;或者,第一值可以为指示低电平的逻辑0,第二值可以为指示高电平的逻辑1,对此并不作任何限定。
[0104]
在这里,目标计数结果可以为目标计数信号表征的计数值与预设值的乘积,该预设值则为计数阈值与预设存储密度的乘积值。如此,第k预设计数范围的最小值设置为预设值与的乘积;第k预设计数范围的最大值设置为预设值与的乘积和1之间的差值。
[0105]
还需要说明的是,在本公开实施例中,假定计数阈值用etc表示,预设存储密度用density(gb)表示,第k预设计数范围的最小值可以用ec[k]min表示,第k预设计数范围的最大值用ec[k]max表示,具体计算公式如下:ec[k]min=etc*density(gb)*
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1);ec[k]max=2*(etc*density(gb)*)-1=etc*density(gb)*-1
ꢀꢀꢀꢀ
(2)。
[0106]
其中,k为大于或等于0且小于m的整数,m表示预设模式寄存器805所包括的位数,且m为正整数。
[0107]
可以理解地,以错误计数为例,在接收到ecs结束信号之后,意味着本次ecs操作的错误计数完成。在m等于8的情况下,通过对目标计数信号进行译码处理,可以得到错误计数译码信号,用ec[7:0]表示;根据错误计数译码信号ec[7:0]来将模式寄存器mr20中对应位存储的数值设置为第一值。
[0108]
具体来讲,错误计数译码信号ec[7:0]可以表示在一定计数范围内的错误计数。其中,ec[7:0]可以包括:ec[0]、ec[1]、ec[2]、ec[3]、ec[4]、ec[5]、ec[6]和ec[7];这里,在第一值为逻辑1,第二值为逻辑0时,ec[0]=1对应第0预设计数范围,ec[1]=1对应第1预设计数范围,ec[2]=1对应第2预设计数范围,

,ec[7]=1对应第7预设计数范围。示例性地,表3示出了八种预设计数范围的示意数据范围。
[0109]
表3在这里,在得到最终的目标计数结果之后,如果目标计数结果为125,该目标计数结果处于第0预设计数范围,此时ec[0]=1,那么模式寄存器mr20中第0位(即mr20 op[0])被
设置为1;如果目标计数结果为456,该目标计数结果处于第2预设计数范围,此时ec[2]=1,那么模式寄存器mr20中第2位(即mr20 op[2])被设置为1;如果目标计数结果为3000,该目标计数结果处于第5预设计数范围,此时ec[5]=1,那么模式寄存器mr20中第5位(即mr20 op[5])被设置为1等等。也就是说,在目标计数结果满足对应的预设计数范围时,模式寄存器mr20中对应的位被设置为1。
[0110]
在另一些实施例中,第二译码模块804,还用于在目标计数信号表征的计数值满足第k预设计数范围时,将预设模式寄存器中第k位存储的数值设置为第一值,除第k位之外的其他位存储的数值设置为第二值。
[0111]
在这里,第k预设计数范围的最小值可以用ec[k]min表示,第k预设计数范围的最大值用ec[k]max表示,具体计算公式如下:ec[k]min=
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3);ec[k]max=-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)。
[0112]
其中,k为大于或等于0且小于m的整数。示例性地,在m等于8时,表4示出了八种预设计数范围的示意数据范围。
[0113]
表4在这里,在确定出目标计数信号表征的计数值(即为第三计数值)之后,如果第三计数值为1,即第三计数值处于第0预设计数范围,此时ec[0]=1,那么模式寄存器mr20中第0位(即mr20 op[0])被设置为1;如果第三计数值为3,即第三计数值处于第1预设计数范围,此时ec[1]=1,那么模式寄存器mr20中第1位(即mr20 op[1])被设置为1;如果第三计数值为45,第三计数值处于第5预设计数范围,此时ec[5]=1,那么模式寄存器mr20中第5位(即mr20 op[5])被设置为1等等。也就是说,在第三计数值满足对应的预设计数范围时,模式寄存器mr20中对应的位被设置为1。需要注意的是,第三计数值与目标计数结果不同,第三计数值是目标计数信号表征的计数值,具体是目标计数电路803针对第二计数脉冲信号的计数值;而目标计数结果并非是第二计数脉冲信号的计数值,其是针对计数信号的计数值(即计数信号所包括的脉冲个数),目标计数结果与第三计数值之间的关系是:目标计数结果是第三计数值、计数阈值与预设存储密度的三者乘积。
[0114]
简单来说,在完成一次完整的ecs操作后,目标计数结果将会加载到模式寄存器mr20中。其中,mr20 op[7:0]能够表示在一定范围内的错误计数,当输出ec[7:0]为1的最高
位时,mr20 op[7:0]对应的位会被设置为1。由于模式寄存器mr20中记录最终的目标计数结果,所以当目标计数结果的最高位为1时,对应的位才会被设置为1,同时加载到模式寄存器mr20中。另外,需要注意的是,当其他较低位为1时,也会在前一时刻设置为1,一旦出现比前一时刻高的位变为1,此时较低位就会变为0,同时较高位会被设置为1。
[0115]
综上可知,error counter可以通过模式寄存器mr14 op[5]进行选择执行码字计数模式或者行计数模式。在dram完成完整的ecs操作后,ec计数的值会根据模式寄存器mr15[2:0]设定的计数阈值,将目标计数结果加载到模式寄存器mr20中。其中,如何更好地设计阈值计数电路来满足mr15[2:0]设定的计数阈值是本公开需要解决的问题。另外,模式寄存器mr20 op[7:0]对应的ec[7:0]可以表示在一定范围内的计数统计。当目标计数结果满足对应的预设计数范围时,模式寄存器mr20 op[7:0]对应的位被设置为1,否则被设置为0。因此,如何将ec[7:0]的值按照要求加载到模式寄存器mr20中也是本公开需要解决的问题。
[0116]
在本公开实施例中,该计数统计电路可以适用于所有计数并将结果加载到寄存器的操作。根据所得到的目标计数结果,确定出目标计数结果满足的预设计数范围,可以将预设模式寄存器中对应的位设置为第一值,解决了相关技术中如何将ec[7:0]的值按照要求加载到模式寄存器中的技术问题,从而能够准确地将错误计数结果按照需求加载到模式寄存器中。
[0117]
在一种具体的实施例中,图15示出了一种计数统计电路80的详细结构示意图。如图15所示,该计数统计电路80可以包括:错误检测模块121、模式选择模块122、第一译码模块123、阈值计数模块124、密度计数模块125、错误计数模块126和第二译码模块127。其中,第一译码模块123和阈值计数模块124即为前述实施例所述的阈值计数电路,密度计数模块125即为前述实施例所述的存储密度计数电路,错误计数模块126即为前述实施例所述的目标计数电路。
[0118]
在图15中,错误检测模块121可以是对存储阵列(dram array)进行ecs操作时的错误检查,根据检查到的错误来生成ecc_error信号。模式选择模块122在接收到第二模式信号mr14 op[5]之后,若mr14 op[5]=1,则为码字计数模式;若mr14 op[5]=0,则为行计数模式;无论是码字计数模式还是行计数模式,根据ecc_error信号可以生成计数信号err_clk,err_clk信号作为阈值计数模块124的时钟输入。对于第一译码模块123而言,可以是三八译码器;在这里,第一译码模块123接收第一模式信号mr15 op[2:0]后,译码输出译码信号code《7:0》,具体包括八位子译码信号,即:code《0》、

、code《6》、code《7》。而对于阈值计数模块124而言,这里可以包括八个子计数模块,每一个子计数模块均包括一个选择单元和一个计数单元,这里的选择单元(multiplexer,mux)可以根据自身控制端的信号将其中任意一路输入信号选择输出,而每一个选择单元的控制端与对应的子译码信号连接;每一个计数单元是由2个第一触发器级联形成的异步计数器,最后一级第一触发器的第二输出端(q非)与密度计数模块125的时钟端连接;密度计数模块125可以是由多个第二触发器级联形成的异步计数器,最后一级第二触发器的第二输出端(q非)与错误计数模块126的时钟端连接;错误计数模块126可以是由八个第三触发器级联形成的异步计数器,这八个第三触发器的第一输出端(q)分别用于输出mr20《0》_pre、mr20《1》_pre、

、mr20《7》_pre,而mr20《0》_pre、mr20《1》_pre、

、mr20《7》_pre这八位目标计数子信号可以表征最终的目标计数结果(具体为错误计数结果)。这样,在接收到ecs结束信号ecs_end之后,表示本次ecs操作完成,
这时候第二译码模块127可以对接收到的这八位目标计数子信号进行译码,并且将最终的错误计数结果存储到模式寄存器mr20 op[7:0]中。具体地,在错误计数结果满足某预设计数范围时,将mr20 op[7:0]中对应的位设置为1,否则为0。
[0119]
需要说明的是,在本公开实施例中,计数统计电路80可以应用于ecs操作中的错误计数,故这里还提出了一种错误计数器(ec),其具体是由第一译码模块123、阈值计数模块124、密度计数模块125、错误计数模块126和第二译码模块127共同组成的。对于该错误计数器而言,通过采用选择err_clk的方式,根据mr15译码出来的etc值,选择将err_clk作为第几级子计数模块的时钟输入,从而控制整体计数器的等级,来实现满足不同threshold等级的错误计数。此整体计数器最终输出的八位目标计数子信号(加载到mr20,且能够反映最终的错误计数结果)会随着插入整体的触发器数量变化而变化,如此不再需要大量的mux来改变加载到mr20的信号来实现,同时由于信号数量的减少,绕线也大大减少,同时还能够使得电路逻辑面积大大减小。
[0120]
在图15中,err_clk作为阈值计数模块124的输入时钟信号,mr15译码出信号code《7:0》决定计数阈值的大小,可以选择err_clk接入子计数模块的级数。示例性地,当选择第一级mux的1输入时代表计数阈值设置为最大值,有最多的触发器接入的错误计数;当选择第二级mux时,则第一级mux输入vss信号,计数阈值就相对较少,当code《0》为1时,这时候的计数阈值等于4,因此只有两个触发器接入。由于技术规格定义:ec[k]min= etc*density(gb)*,所以之后再加入密度计数模块125的部分,以16gb容量为例,这里会再插入4个触发器;最后的错误计数模块126包括有8个触发器,分别用来产生mr20《7:0》_pre。这样,mr20 op[7:0]对应的ec[7:0]可以表示在一定范围内的错误计数。当错误计数结果满足对应的预设计数范围时,模式寄存器mr20 op[7:0]对应的位被设置为1,否则被设置为0;从而能够实现将错误计数结果加载到模式寄存器mr20中。
[0121]
需要说明的是,在本公开实施例中,半导体存储器100可以包括dram。其中,对于dram来说,不仅可以符合ddr、ddr2、ddr3、ddr4、ddr5等内存规格,还可以符合lpddr、lpddr2、lpddr3、lpddr4、lpddr5等内存规格,这里不作任何限定。
[0122]
还需要说明的是,在本公开实施例中,这里主要涉及集成电路设计中错误检查与清除中的error counter的相关电路设计,尤其涉及dram ddr5芯片中,它需要在至少每24小时对dram进行一次完整的ecs操作并且记录有多少错误数。具体地,这里是采用计数器记录至少有一个错误的行数或者记录有多少码字错误数,并且在执行完所有ecs操作之后,需要将记录的目标计数结果(具体为错误计数结果)加载到预设模式寄存器中。换句话说,本技术方案可以应用于dram ddr5芯片中错误检查与清除中的error counter的相关电路,但不局限于此范围,其他通过计数并且记录结果的相关电路也适用于本技术方案。本公开的再一实施例中,参见图16,其示出了本公开实施例提供的一种计数方法的流程示意图。如图16所示,该方法可以包括:s1401:接收计数信号,通过阈值计数电路内部的目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号。
[0123]
s1402:通过密度计数电路对第一计数脉冲信号进行计数,每当第一计数脉冲信号对应的计数值达到预设存储密度的整数倍时,输出第二计数脉冲信号。
[0124]
s1403:通过目标计数电路对第二计数脉冲信号进行计数,输出目标计数信号。
[0125]
需要说明的是,本公开实施例的计数方法应用于前述实施例所述的计数统计电路或者集成有该计数统计电路的半导体存储器,具体应用于ddr5 error counter的电路设计中。也就是说,该计数方法具体涉及dram ddr5芯片中错误检查与清除中的error counter的相关电路设计,它需要在至少每24小时对dram进行一次完整的ecs操作并且记录有多少错误数。
[0126]
还需要说明的是,在本公开实施例中,计数统计电路可以包括阈值计数电路、密度计数电路和目标计数电路。其中,阈值计数电路可以为前述实施例中任一项所述的计数电路30。
[0127]
可以理解地,在一些实施例中,阈值计数电路包括第一译码模块和第一计数模块。相应地,该方法还可以包括:通过第一译码模块接收第一模式信号,对第一模式信号进行译码处理,生成译码信号;根据译码信号,从第一计数模块中的至少一个子计数模块中确定被选择的目标计数模块,以及接收计数信号,通过目标计数模块对计数信号进行计数,每当计数信号对应的计数值达到计数阈值的整数倍时,输出第一计数脉冲信号。
[0128]
在本公开实施例中,译码信号的位数为个;其中,x表示第一模式信号的位数。另外,这里的第一模式信号表征计数阈值。
[0129]
在本公开实施例中,译码信号包括n位子译码信号,n为大于0的整数。相应地,对于第一译码模块而言,在一些实施例中,该方法还可以包括:在生成译码信号的过程中,若第i位子译码信号的电平值为第一值,则确定除第i位子译码信号之外的其他位子译码信号的电平值均为第二值;其中,第一值与第二值不同,而且i的不同取值对应不同的译码信号,不同的译码信号表征不同的计数阈值,i为大于0且小于或等于n的整数。
[0130]
在本公开实施例中,至少一个子计数模块的数量为n个,且至少一个子计数模块为级联关系,第i个子计数模块与第i位子译码信号之间具有对应关系。相应地,对于第一计数模块而言,在一些实施例中,该方法还可以包括:在第i位子译码信号的电平值为第一值时,将第i个子计数模块至第n个子计数模块确定为目标计数模块;以及通过第i个子计数模块至第n个子计数模块对计数信号进行计数,输出第一计数脉冲信号。
[0131]
在一些实施例中,每一个子计数模块包括第一输入端、第二输入端和输出端。其中,每一个子计数模块的第一输入端均与计数信号连接;第1个子计数模块的第二输入端与第一电源信号连接,第j个子计数模块的第二输入端与第j-1个子计数模块的输出端连接,第n个子计数模块的输出端用于输出第一计数脉冲信号,j为大于1且小于或等于n的整数。
[0132]
进一步地,在一些实施例中,第i个子计数模块包括第i个选择单元和第i个计数单元,且第i个选择单元的第一输入端作为第i个子计数模块的第一输入端用于接收计数信号,第i个选择单元的第二输入端作为第i个子计数模块的第二输入端用于接收第一输入信号,第i个选择单元的输出端与第i个计数单元的时钟端连接,第i个计数单元的输出端作为
第i个子计数模块的输出端用于输出第i中间信号。相应地,该方法还可以包括:通过第i个选择单元接收第i个子译码信号,根据第i个子译码信号在计数信号和第一输入信号中选择输出第i选择信号;通过第i个计数单元接收第i选择信号并进行计数,输出第i中间信号。
[0133]
在这里,当i等于1时,第一输入信号为第一电源信号;当i大于1且小于或等于n时,第一输入信号为第i-1个计数单元输出的第i-1中间信号;以及,当i等于n时,第n中间信号为第一计数脉冲信号。
[0134]
进一步地,在一些实施例中,第i个计数单元可以为异步二进制计数器。其中,异步二进制计数器包括若干个依次级联的第一触发器,每一级第一触发器的输入端与其自身的第二输出端连接,且每一级第一触发器的第二输出端与下一级第一触发器的时钟端连接,第一级第一触发器的时钟端与第i个选择单元的输出端连接,最后一级第一触发器的第二输出端作为第i个计数单元的输出端用于输出第i中间信号。
[0135]
进一步地,在一些实施例中,该方法还可以包括:通过计数信号生成模块接收第二模式信号,响应于第二模式信号生成计数信号,第二模式信号指示执行的目标计数模式。
[0136]
在本公开实施例中,阈值计数电路在执行ecs操作时,该方法还可以包括:若第二模式信号的电平值为第一值,则确定目标计数模式为码字计数模式,计数信号为第一计数信号;或者,若在第二模式信号的电平值为第二值,则确定目标计数模式为行计数模式,计数信号为第二计数信号。
[0137]
进一步地,在本公开实施例中,计数信号生成模块可以包括错误检测模块和模式选择模块。相应地,在一些实施例中,该方法还可以包括:基于错误检测模块,根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块;以及根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块;通过模式选择模块接收第二模式选择信号、第一检测信号和第二检测信号,以及响应于第二模式信号的控制,根据第一检测信号生成第一计数信号,或者,根据第二检测信号生成第二计数信号。
[0138]
在另一些实施例中,该方法还可以包括:通过错误检测模块接收第二模式选择信号;响应于第二模式选择信号,在码字计数模式下检测码字错误,根据检测到的码字错误生成第一检测信号,并将第一检测信号发送给模式选择模块;或者,在行计数模式下检测存在码字错误的行,根据检测到的存在码字错误的行生成第二检测信号,并将第二检测信号发送给模式选择模块;通过模式选择模块接收第一检测信号或第二检测信号,并根据第一检测信号生成第一计数信号,或者,根据第二检测信号生成第二计数信号。
[0139]
还可以理解地,在一些实施例中,存储密度计数电路可以为异步二进制计数器。其中,异步二进制计数器包括若干个依次级联的第二触发器,每一级第二触发器的输入端与其自身的第二输出端连接,且每一级第二触发器的第二输出端与下一级第二触发器的时钟端连接,第一级第二触发器的时钟端与阈值计数电路的输出端连接,最后一级第二触发器的第二输出端作为存储密度计数电路的输出端与目标计数电路的时钟端连接。
[0140]
在本公开实施例中,第二触发器的数量与预设存储密度之间具有关联关系;其中,预设存储密度为d,第二触发器的数量为y,且。
[0141]
还可以理解地,在一些实施例中,目标计数电路可以为异步二进制计数器。其中,异步二进制计数器包括若干个依次级联的第三触发器,每一级第三触发器的输入端与其自身的第二输出端连接,且每一级第三触发器的第二输出端与下一级第三触发器的时钟端连接,第一级第三触发器的时钟端与存储密度计数电路的输出端连接。
[0142]
在本公开实施例中,第三触发器的数量为m个,且目标计数信号是由第0位至第m-1位目标计数子信号组成的二进制数;其中,第k+1级第三触发器的第一输出端用于输出第k位目标计数子信号,k为大于或等于0且小于m的整数。
[0143]
进一步地,在一些实施例中,该方法还可以包括:根据接收到的ecs结束信号,通过第二译码模块对目标计数信号进行译码并存储到预设模式寄存器中。
[0144]
进一步地,在一些实施例中,预设模式寄存器至少包括m位,且每一位对应一个预设计数范围。相应地,对于第二译码模块而言,该方法还可以包括:在目标计数结果满足第k预设计数范围时,将预设模式寄存器中第k位存储的数值设置为第一值,除第k位之外的其他位存储的数值设置为第二值;其中,目标计数结果为目标计数信号表征的计数值与预设值的乘积,预设值为计数阈值与预设存储密度的乘积值。
[0145]
在本公开实施例中,第k预设计数范围的最小值设置为预设值与的乘积;第k预设计数范围的最大值设置为预设值与的乘积和1之间的差值。
[0146]
本公开实施例提供了一种计数方法,应用于前述实施例所述的半导体存储器。在该半导体存储器中,不同的译码信号可以表征不同的计数阈值等级,而且根据不同的译码信号还能够选择不同的目标计数模块,从而能够满足不同计数阈值等级的错误计数统计;根据译码信号的不同来自适应选择目标计数模块,还可以避免相关技术中使用大量的逻辑器件而导致连接线过多的问题,从而还能够减小电路面积和连接线数量,同时降低电路复杂度;另外,根据最终的错误计数结果满足的预设计数范围,可以将预设模式寄存器中对应的位设置为1,从而能够将错误计数结果按照需求加载到预设模式寄存器中,进而改善存储器的性能。
[0147]
以上所述,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。
[0148]
需要说明的是,在本公开中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0149]
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0150]
本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0151]
本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0152]
本公开所提供的几个方法或电路实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0153]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1