CN114121085B - 存储装置、数据校验方法以及装置、存储介质 - Google Patents

存储装置、数据校验方法以及装置、存储介质 Download PDF

Info

Publication number
CN114121085B
CN114121085B CN202111423751.0A CN202111423751A CN114121085B CN 114121085 B CN114121085 B CN 114121085B CN 202111423751 A CN202111423751 A CN 202111423751A CN 114121085 B CN114121085 B CN 114121085B
Authority
CN
China
Prior art keywords
data
verification
storage
pair
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111423751.0A
Other languages
English (en)
Other versions
CN114121085A (zh
Inventor
黄瑞锋
杨昌楷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111423751.0A priority Critical patent/CN114121085B/zh
Publication of CN114121085A publication Critical patent/CN114121085A/zh
Application granted granted Critical
Publication of CN114121085B publication Critical patent/CN114121085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Static Random-Access Memory (AREA)

Abstract

一种存储装置、数据校验方法及装置、非暂时性存储介质。存储装置包括存储阵列以及检测电路,检测电路被配置为可检测第n对输入线的第一输入线和第二输入线之间的电压差,以用于输出存储数据,以及被配置为可检测第n对输入线的第二输入线以及第n+1对输入线的第一输入线之间的电压差,以用于输出校验数据,进而基于多个校验数据对多个存储数据进行校验。该存储装置以及数据校验方法可以在不增加冗余存储,以及不增大存储装置面积的情况下,实现对存储装置中所有存储单元读出的存储数据进行有效侦测和校验。

Description

存储装置、数据校验方法以及装置、存储介质
技术领域
本公开的实施例涉及一种存储装置、数据校验方法以及装置、存储介质。
背景技术
静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。“静态”是指这种存储器只要保持通电,存储的数据就可以恒常保持。通常静态随机存储器用来存储关键数据,减少延时,提高芯片的性能。例如,静态随机存储器可以作为CPU(central processing unit,中央处理器)或GPU(graphics processing unit,图形处理器)中的高速缓存(Cache)、数据通路上的数据缓存(Data Buffer)以及先进先出队列(First Input First Output,简称FIFO)等。静态随机存储器具有延时小,速度快的特点,而且不需要刷新,因此有利于提升芯片的性能和减少访问数据的功耗。
发明内容
本公开至少一实施例提供一种存储装置,包括存储阵列以及检测电路,其中,所述存储阵列包括G对输出端口;其中,每对输出端口包括第一输出端口和第二输出端口;以及排列为多行多列的多个存储单元,其中,每行存储单元划分为G组,所述G组存储单元与所述G对输出端口一一对应;每行存储单元具有相同的字线,每列存储单元具有相同的一对位线,所述一对位线包括第一位线和第二位线;每个存储单元包括第一读出端口和第二读出端口,并且,每个存储单元的第一读出端口和第二读出端口,通过对应的一对位线的第一位线和第二位线,与对应的一对输出端口的第一输出端口和第二输出端口分别耦接;以及所述检测电路包括G对输入线,其中,所述G对输入线与所述G对输出端口一一对应,每对输入线包括第一输入线以及第二输入线,且每对输入线的第一输入线以及第二输入线与对应的一对输出端口的第一输出端口和第二输出端口分别电连接;其中,所述检测电路被配置为可检测第n对输入线的第一输入线和第二输入线之间的电压差,以用于输出存储数据,以及被配置为可检测第n对输入线的第二输入线以及第n+1对输入线的第一输入线之间的电压差,以用于输出校验数据,其中,G、n为正整数,且n小于G。
例如,在本公开一些实施例提供的存储装置中,所述检测电路包括多个第一子检测电路和多个第二子检测电路,所述多个第一子检测电路与所述G对输入线一一对应;第n个第一子检测电路与第n对位线电连接,且被配置为检测所述第n对位线的第一位线和第二位线之间的电压差,以用于输出所述存储数据;第n个第二子检测电路与所述第n对位线的第二位线以及第n+1对位线的第一位线电连接,且被配置为检测所述第n对位线的第二位线以及第n+1对位线的第一位线之间的电压差,以用于输出所述校验数据。
例如,在本公开一些实施例提供的存储装置中,所述第一子检测电路包括第一灵敏放大器,所述第二子检测电路包括第二灵敏放大器。
例如,在本公开一些实施例提供的存储装置中,所述第二灵敏放大器的对于电压差检测的灵敏度大于所述第一灵敏放大器的对于电压差检测的灵敏度。
例如,在本公开一些实施例提供的存储装置中,所述存储阵列包括开关切换电路,所述开关切换电路与所述存储阵列的多对位线电连接,每组存储单元包括位于H列中的H个存储单元,H为大于等于2的整数,所述开关切换电路被配置为,根据选择信号,在每组存储单元中选择一个存储单元通过对应的一对位线与对应的一对输出端口对应电连接。
例如,在本公开一些实施例提供的存储装置中,所述开关切换电路包括G个开关切换电路单元,所述G个开关切换电路单元与所述G组存储单元一一对应,以及与所述G对输出端口一一对应,每个开关切换电路单元包括H选一子开关电路,用于根据所述选择信号执行H选一的操作。
例如,在本公开一些实施例提供的存储装置中,所述第一子检测电路包括第一灵敏放大器,所述第二子检测电路包括第二灵敏放大器。
例如,在本公开一些实施例提供的存储装置中,所述第二灵敏放大器的对于电压差检测的灵敏度大于所述第一灵敏放大器的对于电压差检测的灵敏度。
例如,在本公开一些实施例提供的存储装置中,所述存储单元包括用于存储数据的锁存器,所述锁存器具有彼此反相的第一节点和第二节点,所述第一节点与所述第一读出端口耦接,所述第二节点与所述第二读出端口耦接。
例如,本公开一些实施例提供的存储装置还可以包括输出电路,所述输出电路与所述检测电路连接,用于输出所述存储数据和所述校验数据。
本公开至少一实施例还提供一种数据校验方法,应用于如上述任一项所述的存储装置,所述数据校验的方法包括:通过所述检测电路获取一行存储单元中存储的多个存储数据;通过所述检测电路获取所述一行存储单元中存储的多个存储数据对应的多个校验数据;基于所述多个校验数据对所述多个存储数据进行校验。
例如,在本公开一些实施例提供的数据校验方法中,所述基于所述多个校验数据对所述多个存储数据进行校验,包括:对于所述相邻两对输出端口输出的两个存储数据相同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据无错误;或者所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据之一有错误。
例如,在本公开一些实施例提供的数据校验方法中,所述基于所述多个校验数据对所述多个存储数据进行校验,包括:对于所述相邻两对输出端口输出的两个存储数据不同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据之一有错误;或者所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据无错误。
例如,本公开一些实施例提供的数据校验方法还可以包括:在所述存储装置中执行所述数据校验的方法,或者,通过所述输出电路输出所述多个第一子检测电路检测的多个存储数据和所述多个第二子检测电路检测的多个校验数据,在所述存储装置外执行所述数据校验的方法。
本公开至少一实施例还提供一种数据校验装置,应用于如上述任一项所述的存储装置,所述数据校验装置包括:
获取模块,被配置为通过所述检测电路获取一行存储单元中存储的多个存储数据,以及通过所述检测电路获取所述一行存储单元中存储的多个存储数据对应的多个校验数据;
校验模块,被配置为基于所述多个校验数据对所述多个存储数据进行校验。
例如,在本公开一些实施例提供的数据校验装置中,所述基于所述多个校验数据对所述多个存储数据进行校验,包括:对于所述相邻两对输出端口输出的两个存储数据相同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据无错误;或者所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据之一有错误。
例如,在本公开一些实施例提供的数据校验装置中,所述基于所述多个校验数据对所述多个存储数据进行校验,包括:对于所述相邻两对输出端口输出的两个存储数据不同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据之一有错误;或者所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据无错误。
本公开至少一实施例还提供一种电子装置,包括如上述任一项所述的存储装置。
例如,本公开一些实施例提供的电子装置还可以包括如上述任一项所述的数据校验装置。
本公开至少一实施例还提供一种数据校验装置,该装置包括:存储器,用于非暂时性存储计算机可执行指令;以及处理器,用于运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时,执行本公开任一实施例提供的数据校验方法。
本公开至少一实施例还提供一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由计算机执行时,执行本公开任一实施例提供的数据校验方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了静态随机存储器中检测到软错误后的处理流程;
图2A-图2C为静态随机存储器的存储结构示意图;
图3为一种存储装置的结构框图;
图4为一种6T型SRAM存储单元结构示意图;
图5为图4所示的6T型SRAM存储单元进行读操作时的电压波形示意图;
图6A为图3所示的存储装置的一种示例性结构图;
图6B为图3所示的存储装置的另一种示例性结构图;
图7A为本公开一实施例提供的存储装置的结构框图;
图7B为图7A中的存储单元与检测电路中的灵敏放大器连接的示例性结构电路图;
图7C为图7B中的灵敏放大器在不同电压差情况下的电压波形示意图;
图8为本公开一实施例提供的一种数据校验装置的示意性框图;
图9为本公开一实施例提供的一种相邻两组存储单元与第一子检测电路和第二子检测电路连接的结构框图;
图10为本公开一实施例提供的一种数据校验方法流程图;
图11为本公开一实施例提供的一种第一灵敏放大器和第二灵敏放大器在正常工作状态下输出的存储数据和校验数据示意图;
图12为本公开一实施例提供的一种第一灵敏放大器在放大错误的情况下输出的存储数据的示意图;
图13为本公开一实施例提供的一种相邻两组存储单元与第一灵敏放大器和第二灵敏放大器连接的结构示意图;
图14为本公开一实施例提供的一种数据校验装置的示意性框图;
图15为本公开一实施例提供的一种电子设备的示意性框图;
图16为本公开一实施例提供的另一种数据校验装置的示意性框图;
图17为本公开一些实施例提供的一种非暂时性存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
由于各种原因,静态随机存储器可能出现数据的错误,即同一地址读出的数据与之前写入的数据不相等。静态随机存储器的错误主要分为两类:第一类是硬错误,即静态随机存储器内部部分存储阵列的电路受到永久性的损坏,导致该部分数据出现不可逆的错误。第二类是软错误,这类错误不是永久性的,对同一地址写入新的数据后原来的错误就会消失。
引起软错误的主要原因包括两种:一是放射性粒子的穿透引起静态随机存储器的存储单元的反转,二是读写数据时动态电压噪声引起存储单元的反转。随着晶体管尺寸的缩小,静态随机存储器的工作电压越来越低,静态随机存储器中相邻的存储单元的距离也越来越近,这导致静态随机存储器的软错误变得越来越普遍。由于软错误是动态错误,即可能发生在芯片正常工作时的任意时刻、任意位置的数据读写中,且无法像硬错误一样提前检测避免,因此必须对软错误进行动态的处理。
软错误的检测通常发生在数据读取时。一种对静态随机存储器中软错误的处理流程可以如图1所示。
参考图1,具体来说,当检测到静态随机存储器中的软错误时,首先判断是否可以直接校正数据,如果错误可以校正,直接返回校正后的数据。例如出现1比特错误时,可以使用SECDED(single-error correction and double-error detection,单错校正双错检测)电路进行校正。如果错误无法校正,例如只使用了奇偶校验电路,没有使用校正电路,则先判断是否有备份数据:如果有备份数据,读取备份数据并返回,例如,可以通过读取动态随机存储器得到正确的数据,如果备份数据也检测到软错误,上述步骤可能重复执行,直到得到正确的数据或者没有备份数据为止;如果没有备份数据,则产生中断并上报CPU,让软件进行应用层面的数据恢复,软件一般根据错误的严重等级会采取不同的操作,例如对于一般数据的错误,只需要进行软件层面的重传即可,如果出现严重的系统错误,可能需要复位整个芯片系统,甚至引起系统宕机。
目前芯片设计中对静态随机存储器的软错误处理主要分为两大类,第一类是只检测错误不进行校正,第二类是使用ECC算法进行错误检测和校正,下面具体说明两种方案的实现方式和存在的问题。
对于第一类,利用奇偶校验(Parity Check)方法来校验数据读出和传输过程中的正确性。即在静态随机存储器中加入奇偶校验位,这种方案的静态随机存储器存储结构示意图如图2A所示。
静态随机存储器中存储数据的最小的单位是比特(bit),也叫数据“位”。“位”只有两种状态分别以二进制代码“1”和“0”来表示,“1”和“0”表示数据高、低电平信号。奇偶校验是根据被读出和传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验,即奇偶校验有两种类型:奇校验和偶校验。若用奇校验,则当接收端收到这组代码时,校验“1”的个数为奇数,确定传输代码正确,否则传输代码错误。若用偶校验,则当接收端收到这组代码时,校验“1”的个数为偶数,则确定传输代码正确,否则传输代码错误。
例如,每8个连续的比特叫做一个字节(byte)。通常存储器中每个字节只有8位,如果其中某一位存储了错误的数据,就会导致其存储的一组数据发生变化,进而导致应用程序发生错误。而奇偶校验位就是在每一字节(8位)之外又增加的错误检测位。例如,假设存储的一个字节中存储了一组数据:(1、1、1、0、0、1、0、1),那么把每位中的数据进行相加(1+1+1+0+0+1+0+1=5),结果是奇数5。如果采用奇校验(即一个字节(8位)加上奇偶校验位共9位对应数据的和为奇数),那么奇偶校验位就应该是0(5+0=5才是奇数),如果采用偶校验(即一个字节(8位)加上奇偶校验位共9位对应数据的和为偶数)那么奇偶校验位就应该是1(5+1=6才是偶数)。即对于奇校验,奇偶校验位就定义为0,对于偶校验,奇偶校验位就定义为1。当CPU读取存储器中存储的一组数据时,会再次把前8位存储的数据相加,将计算结果与奇偶校验位定义的数值比较,如果一致(都为奇或都为偶)则确定读取的这组数据未发生错误,如果不一致,则确定读取的这组数据发生错误。
然而,奇偶校验方法的优点是硬件开销最小,例如,奇偶校验位需要一些异或门就能够实现,但是缺点是仅能实现对软错误的检测但无法进行数据校正。例如,只能检测出读取的一组数据中发生错误而无法确定哪一位出错,也不能对发生错误的数据进行校正,当读取的数据发生错误时必须扔掉全部的数据,然后从头开始传输数据。同时,虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误。
对于第二类,根据前述的产生软错误的原因可知,一般静态随机存储器出现中软错误的概率比较小,通常只有1到2比特,因此比较典型的解决方案是在静态随机存储器中加入SECDED校验位,如图2B所示。该方案的优点是可以在读取静态随机存储器的数据后直接进行错误数据校正,没有额外的延时带来的性能影响。但是该方案的缺点是只能校正1个错误位。一些芯片也采用DECTED(double-error correction and triple-error-detection,双错校正三错检测)方法进行软错误校正,如图2C所示。该方法虽然能够校正2位软错误,但是所需的存储开销更大,并且硬件实现更加复杂,也引入了额外的延时和功耗消耗。
因此,目前静态随机存储器设计中,为了保证静态随机存储器写入、读出数据的正确性,除了运算所需要使用到的存储单元之外,会增加冗余存储单元来记录存储数据的特点,新增加的存储单元中存储的数据(奇偶校验位或纠错码ECC)可用于识别甚至纠正读出数据的错误。例如,由于奇偶校验是通过在原来的数据位上增加一个奇偶校验位来检查数据位正确性,但随着数据位的增加,奇偶校验位也成倍增加。例如,八位数据位需要一位校验位,十六位数据位需要两位校验位。纠错码(ECC)也是在原来的数据位上外加校验位来实现的。ECC与奇偶校验不同的是如果数据位是8位,则需要增加5位校验位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当原来数据位为16位时ECC增加6位检验位,32位时ECC位为7位,原来数据位为64位时ECC增加8位检验位,以此类推,数据位每增加一倍,ECC只增加一位检验位。ECC有更多位数的校验位,容错能力更强,所以,ECC虽然能纠错,但是对存储资源的浪费是非常大的。总之,第一类和第二类方法都需要付出较大的冗余存储代价。
图3为一种存储装置的结构框图。如图3所示,该存储装置包括存储阵列11、输出电路13。存储阵列包括排列为多行多列的多个存储单元,还包括对应于每一行的字线以及对应于每一列的位线,这些字线和位线用于对于存储单元进行定位和操作。存储阵列11与输出电路13耦接。该输出电路13对应于通道IO(n)(例如对应于一列或多列存储单元,这里n为自然数),且配置为对于每一行中被选中的存储单元通过对应的位线以及读取通道进行读取操作。该存储装置还包括写入电路(未示出),该写入电路对应于通道IO(n),且配置为对于每一行中被选中的存储单元通过对应的位线进行写入操作。例如,存储阵列的存储单元可以为6晶体管(6T)型随机静态存储器存储单元。
对于图3中存储单元,图4示出常见的6晶体管(6T)型随机静态存储器存储单元。该6T存储单元包括6个晶体管用于存储数据和读写操作,例如PU晶体管、PD晶体管、PU_X晶体管、PD_X晶体管、PG晶体管、PG_X晶体管。这种结构具有字线(WL,Word line)以及一对用于写入数据的位线(BL/BLB,Bit Line)。数据从读端口读出,数据从写端口写入,写入时BL和BLB互为取反。PU晶体管和PD晶体管,PU_X晶体管和PD_X晶体管构成了首尾相接的两个反相器,即一个反相器输出接到另一个反相器的输入,反之亦然。由于两个反相器的首尾相接,构成了一个锁存器,没有外部影响时,Q存储节点和QB存储节点可以非常稳定的存储数据,两者互补,例如Q=0时,QB=1(即存储的数值为“0”)。假设Q=0,读操作之前,WL=0,BL=BLB=Float 1(就是说充电到1之后,关断充电电路,使其悬浮在1)。读操作时,字线WL加高电平(WL=1)控制PG晶体管和PG_X晶体管都处于导通状态,Q=0会通过PG晶体管将BL=Float 1拉低,将数据读出。
例如,图5示出6T型存储单元的实际读操作中的波形图,Q=0会通过PG晶体管将位线BL的电平下拉,QB=1不会改变位线BLB的电平,由此使位线BL和位线BLB之间产生了一个电压差(Delta V),该电压差通过灵敏放大器电路,使得数据放大读出。在写数据时,写入电路会在位线BL和位线BLB形成一对互补的信号,当WL加高电平(WL=1)控制PG晶体管和PG_X晶体管都处于导通状态时,如果Q和QB存储的数据和想写入的数据不一样,则位线BL和位线BLB上的信号会强行驱动、改变、翻转Q和QB存储的数据。例如,在写入数据“1”(即需要将Q的电平设置为1)时,假设写操作之前,QB=1,Q=0,而BLB=Float 0,BL=Float 1,在写操作时,出现位线BLB=0和QB=1不一致的情况,BLB的0必须要强行驱动、改变、翻转QB=1以能保证数据“1”的写入,同理,位线BL=1和Q=0不一致,BL的1必须要强行驱动、改变、翻转Q=0以能保证数据的写入。
为了对图4所示的6T型SRAM存储单元进行读写,例如,对于每列存储单元提供输出电路,该检测电路可以包括灵敏放大器。
图6A为图3所示的存储装置的一种示例性结构图,具体而言,图6A为图4中的6T型SRAM存储单元与灵敏放大器连接的示例性结构电路图。在读操作之前,节点Q和节点QB充电到VDD。读操作后,关断充电电路1201。当WL为高电平时,在节点Q和QB上存储的数据在第一位线BL和第二位线BLB上输出信号,且在控制线YMUX上施加开启信号之后,第一位线BL输出的信号通过晶体管PMX0输入至灵敏放大器的SAT线路,到达TI晶体管以及Q节点。继续下拉至0V,此时灵敏放大器会将线路SATI和线路SACI的电第二位线BLB输出的信号通过晶体管PMX1输入至灵敏放大器的SAC线路,到达T2晶体管以及QB节点。当SAEN启动后(SAEN从0变到1),打开T3晶体管,并关断T1晶体管和T2晶体管。当SAEN为1时,P_VSS被下拉到0,此时电路1202构成一个锁存器,锁存器会将被部分下拉的Q节点(例如VDD=1V,Q节点此时为0.8V)压差放大到GND和VDD,即0和1,并通过输出电路(一般为RS Latch)将数据输出。也就是说,当第一位线BL和第二位线BLB之间产生电压差时,SAT线路和SAC线路之间也产生相同的电压差,那么控制灵敏放大器的开关SAEN打开之后,灵敏放大器将第一位线BL和第二位线BLB输出的信号放大。例如,灵敏放大器的工作时状态波形如图6A右侧示意图所示。将线路SATI(图6A右侧图形中的SAT_INT)、线路SACI图6A右侧图形中的(SAC_INT)上的信号达到1和0,得益于线路SATI和线路SACI自身的电压差以及(T4+T6)和(T5+T7)这两组输入、输出互为相接的锁存结构(假设SAEN=1,T3导通)。
发明人注意到,在实际工作中,当T3晶体管导通的时候,线路SATI和线路SACI之间即使只有很微弱的电压差,都会使得线路SATI、线路SACI的其中一条线路很快翻转到GND,另一条翻转到VDD,灵敏度较高。甚至由于蒙特卡洛的原因,当电压差较小(例如电压差<30mv)时还会使灵敏放大器出现错误的翻转。因此,需要对于存储阵列的数据读出进行错误检测和校正。
虽然在图6A中,每个通道包括单列存储单元,然而在图3所示的存储装置中,每个通道IO(n)还可以包括多列存储单元,在此情况下,存储阵列还可以包括开关切换电路10,该开关切换电路10配置为每个通道中位于一行中并列的多个存储单元例如以分时的方式与输出电路(或写入电路)进行电连接,由此进行数据读取(或数据写入)操作。
图6B为图3所示的存储装置的另一种示例性结构图。例如,图6B示出了每个通道IO包括两列存储单元的情形,在示例中,对于每个通道,在同一行中具有相邻两个存储单元,该相邻两个存储单元借助与灵敏放大器的连接电路图。如图6B所示,通道IO[0]和通道IO[1]彼此相邻,这两个通道对应的两组存储单元每个均包含相邻两个6T型存储单元。如图3所示,对于每个通道,开关切换电路10包括两个二选一子开关电路,PMX0[1:0]和PMX1[1:0],其中,PMX0[1:0]用于相邻两个存储单元的第一位线BL,PMX1[1:0]用于相邻两个存储单元的第二位线BLB。通过该两个二选一子开关电路,可以实现根据选择信号,将相邻两个存储单元分时与输出电路13(或写入电路)电连接,从而进行分别进行数据读取(或数据写入)操作。在图6B所示的存储装置,同样存在上述错误的翻转。因此,需要对于存储阵列的数据读出进行错误检测和校正。
本公开至少一实施例提供一种存储装置,包括存储阵列以及检测电路,其中,存储阵列包括G对输出端口,其中,每对输出端口包括第一输出端口和第二输出端口;以及排列为多行多列的多个存储单元,其中,每行存储单元划分为G组,G组存储单元与G对输出端口一一对应;每行存储单元具有相同的字线,每列存储单元具有相同的一对位线,该一对位线包括第一位线和第二位线;每个存储单元包括第一读出端口和第二读出端口,并且,每个存储单元的第一读出端口和第二读出端口,通过对应的一对位线的第一位线和第二位线,与对应的一对输出端口的第一输出端口和第二输出端口分别耦接;以及检测电路包括:G对输入线,其中,G对输入线与G对输出端口一一对应,每对输入线包括第一输入线以及第二输入线,且每对输入线的第一输入线以及第二输入线与对应的一对输出端口的第一输出端口和第二输出端口分别电连接;其中,检测电路被配置为可检测第n对输入线的第一输入线和第二输入线之间的电压差,以用于输出存储数据,以及被配置为可检测第n对输入线的第二输入线以及第n+1对输入线的第一输入线之间的电压差,以用于输出校验数据,其中,G、n为正整数,且n小于G。
本公开的一些实施例还提供一种数据校验方法,应用于如上述存储装置,该数据校验的方法包括:通过检测电路获取一行存储单元中存储的多个存储数据;通过检测电路获取一行存储单元中存储的多个存储数据对应的多个校验数据;基于多个校验数据对多个存储数据进行校验。
本公开的一些实施例还提供对应于数据校验方法的数据校验装置,该数据校验装置包括:获取模块,被配置为通过检测电路获取一行存储单元中存储的多个存储数据,以及通过检测电路获取一行存储单元中存储的多个存储数据对应的多个校验数据;校验模块,被配置为基于多个校验数据对多个存储数据进行校验。
本公开的一些实施例还提供一种电子装置包括如上述存储装置以及如上述数据校验装置。
本公开的一些实施例还提供对应于上述数据校验方法的非暂时性存储介质,该存储介质非暂时性地存储计算机可读指令,其中,当计算机可读指令由计算机执行时,执行上述本公开的实施例提供的数据校验方法。
本公开的上述实施例提供的存储装置和数据校验装置可以在不增加冗余存储,以及不增大存储装置面积的情况下,实现对存储装置中所有存储单元读出的存储数据进行有效侦测和校验。
下面结合附图对本公开的一些实施例及其示例进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图7A为本公开一些实施例提供的一种存储装置的结构框图。
如图7A所示,该存储装置包括存储阵列110、检测电路120、输出电路130。存储阵列包括排列为多行多列的多个存储单元以及G对输出端口,每对输出端口包括第一输出端口和第二输出端口,每对输出端口对应于一个通道IO。每一行存储单元划分为G组,G组存储单元与G对输出端口一一对应。检测电路120包括G对输入线,G对输入线与G对输出端口一一对应,且每对输入线的第一输入线以及第二输入线与对应的一对输出端口的第一输出端口和第二输出端口分别电连接。这里G为正整数。
输出电路130与检测电路120连接。G组存储单元用于从G对输出端口输出存储数据至检测电路120,检测电路120用于对G组存储单元输出的存储数据进行校验,输出电路130用于输出存储数据和对应的校验数据。
例如,每行存储单元具有相同的字线(WL),每列存储单元具有相同的一对位线(BL和BLB),该一对位线包括第一位线和第二位线,其中,第一位线可以为BL,第二位线为BLB(或者第一位线为BLB,第二位线为BL,本公开实施例对此不作限制)。每个存储单元包括第一读出端口和第二读出端口,并且,每个存储单元的第一读出端口和第二读出端口,通过对应的一对位线的第一位线和第二位线,与该存储单元所在组对应的一对输出端口的第一输出端口和第二输出端口分别耦接。该存储单元包括用于存储数据的锁存器,锁存器具有彼此反相的第一节点(Q)和第二节点(QB),第一节点(Q)与第一读出端口耦接,第二节点(QB)与第二读出端口耦接。
例如,检测电路120包括多个第一子检测电路和多个第二子检测电路,多个第一子检测电路与G对输入线一一对应;第n个第一子检测电路与第n对位线电连接,且被配置为检测第n对位线的第一位线和第二位线之间的电压差,以用于输出存储数据;第n个第二子检测电路与第n对位线的第二位线以及第n+1对位线的第一位线电连接,且被配置为检测第n对位线的第二位线以及第n+1对位线的第一位线之间的电压差,以用于输出校验数据。
例如,第一子检测电路包括第一灵敏放大器,第二子检测电路包括第二灵敏放大器。进一步地,例如,第一灵敏放大器和第二灵敏放大器具有相同的结构,但第二灵敏放大器的对于电压差检测的灵敏度大于第一灵敏放大器的对于电压差检测的灵敏度。本公开的实施例对于灵敏放大器的具体结构没有限制,例如,可以参考图6A所示的灵敏放大器以及相关的操作,这里不再赘述。
例如,存储单元包括用于存储数据的锁存器,该锁存器具有彼此反相的第一节点和第二节点,第一节点与第一读出端口耦接,第二节点与第二读出端口耦接。例如,该存储单元可以包括6T型SRAM存储单元,对于该6T型SRAM存储单元的描述以及基本操作可以参考图4和图5的描述,这里不再赘述。例如,每组存储单元包括一列或多列存储单元。在每组存储单元包括一列存储单元的情形,因此该单列存储单元的两条位线可以直接与输出单元连接;另一方面,每组存储单元包括多列存储单元时,在这些列中的存储单元共用输出电路,那么还需要另外提供开关切换电路,以使得这些列中的存储单元可以分时复用输出电路。
例如,每组存储单元包括位于H列中的H个存储单元,H为大于等于2的整数。例如,开关切换电路100包括G个开关切换电路单元101,G个开关切换电路单元与G组存储单元一一对应,以及与G对输出端口一一对应,每个开关切换电路单元包括H选一子开关电路,用于根据选择信号执行H选一的操作。
图7B示出了图7A所示的存储装置一种示例;在图7B示出的示例中,存储装置包括6T型SRAM存储单元以及包括开关切换电路。
例如,如图7B所示,每组存储单元包括在同一行中2个存储单元(H=2),例如该2个存储单元彼此相邻设置。具体而言,第n组存储单元IO[n](通道IO[n])中包括位于2列中2个存储单元,这里n为正整数且n小于G。第n组存储单元IO[n]对应于第一输出端口115和第二输出端口116。第一个存储单元包括第一读出端口111和第二读出端口112,分别与第一位线BL[0]和第二位线BLB[0]连接;第二个存储单元包括第一读出端口113和第二读出端口114,分别与第一位线BL[1]和第二位线BLB[1]连接。
如图7A和图7B所示,存储阵列还包括开关切换电路,开关切换电路与存储阵列的多对位线电连接,例如用于实现检测电路和读出电路对于每组存储单元内多个存储单元的分时复用。
例如,参考上述实施例,如图7A和7B所示(也可以参考后面描述的图13),开关切换电路100包括与第n组存储单元对应的第n个开关切换电路单元101,该开关切换电路单元101与第一输出端口115和第二输出端口116对应电连接。开关切换电路单元101中包括两个二选一子开关电路即PMX0[1:0]和PMX1[1:0],其中,PMX0[1:0]用于根据线路YMUX[1:0]接收的选择信号选择第一个存储单元的第一位线BL[0]或第二个存储单元的第一位线BL[1],以与第一输入线1211电连接,PMX1[1:0]用于根据线路YMUX[1:0]接收的选择信号选择第一个存储单元的第二位线BLB[0]或第二个存储单元的第二位线BLB[1],以与第二输入线1212电连接。
被开关切换电路100选中的存储单元将通过第一输入线1211和第二输入线1212和检测电路120连接,由此可以被检测。如上所述,检测电路120被配置为可检测第n对输入线的第一输入线1211和第二输入线1212之间的电压差,以用于输出存储数据,以及被配置为可检测第n对输入线的第二输入线1212以及第n+1对输入线的第一输入线(图中未示出)之间的电压差,以用于输出校验数据。
例如,对于图7B所示的存储装置,在采用与图6A所示相同的灵敏放大器进行读取的情形,然而相对于图6A的情形,本公开实施例可以减小用于读出存储数据的灵敏放大器对于电压差的检测灵敏度,配合用于获得校验数据的灵敏放大器,可以实现更准确的数据读取。例如,在至少一个示例中,对于灵敏放大器,减小T5晶体管、T4晶体管、T3晶体管的宽度尺寸并且调大深度,就能使得线路SATI、线路SACI之间必须要有足够大的电压差(例如,电压差>100mv)才能使得线路SATI、线路SACI翻转到GND和VDD。相反的,如果线路SATI、线路SACI之间电压差不够大,则线路SATI、线路SACI不会有任何一个会下拉到GND。
图7C示出了上述被改进以一定程度降低检测灵敏度后的灵敏放大器在不同电压差情况下的电压波形示意图。左图是当线路SAT和线路SAC(即灵敏放大器中的线路SATI和线路SACI)之间的电压差过小时,线路SATI或者线路SACI始终没有被下拉到GND,也就不能触发灵敏放大器的输出信号(此时标注为Diff信号,图6A中为Do信号)为1,只能输出为0。右图是当线路SAT和线路SAC(即灵敏放大器中的线路SATI和线路SACI)之间的电压差足够大,通过减小T5晶体管、T4晶体管、T3晶体管的宽度尺寸并且调大深度,也能使线路SATI或者线路SAC中的某一条线路下拉到GND,触发灵敏放大器输出Diff信号为1。Diff信号能够表征相邻两个存储单元中存储的值是否一致(将在后面具体描述,后续描述中Diff信号即ECC信号)。灵敏放大器在每次工作前,Diff信号会被重置到0。由此,检测电路120输出的信号将被用于更可靠的数据读出。
图8为本公开一些实施例提供的一种数据校验装置的示意图,存储装置和数据校验装置彼此连接,数据校验装置可以和存储装置一体形成(例如在同一芯片内),由此实现存储装置内校验,或者数据校验装置可以独立于存储装置提供,由此实现存储装置外校验。
图9为本公开一些实施例提供的一种相邻两组存储单元与检测电路连接的结构框图。图10为本公开一些实施例提供的一种数据校验方法的流程图。
首先结合图8和图10介绍本实施例提供的数据校验方法。例如,可以在存储装置中执行该数据校验的方法,或者,通过输出电路输出多个存储数据和多个校验数据,在存储装置外执行该数据校验的方法。
如图10所示,该数据校验方法包括以下步骤S100至步骤S200。
步骤S100:通过检测电路获取一行存储单元中存储的多个存储数据以及多个存储数据对应的多个校验数据。
步骤S200:基于多个校验数据对多个存储数据进行校验。
如图8所示,基于图7A所示的存储装置1的输出端连接数据校验装置20。数据校验装置20用于通过检测电路获取一行存储单元中存储的多个存储数据以及多个存储数据对应的多个校验数据,并基于多个校验数据对多个存储数据进行校验。
例如,参看图7A,且下面参考如图9所示,以存储装置1中包括相邻两组存储单元为例进行进一步说明。相邻两组存储单元包括第n组存储单元IO[n]和第n+1组存储单元IO[n+1],检测电路120包括多个第一子检测电路121和多个第二子检测电路122。多个第一子检测电路121与G对输入线一一对应,第n个第一子检测电路121与第n对位线电连接,且被配置为检测第n对位线的第一位线和第二位线之间的电压差,以用于通过输出电路130输出存储数据。第n个第二子检测电路122与第n对位线的第二位线以及第n+1对位线的第一位线电连接,且被配置为检测第n对位线的第二位线以及第n+1对位线的第一位线之间的电压差,以用于通过输出电路130输出校验数据。即,相对于图6A和图6B所示的情形,在相邻两组存储单元的输出端新增加一个子检测电路(第二子检测电路)来检测左侧一组存储单元的第二位线和右侧一组存储单元的第一位线之间的电压差,输出校验数据。
需要指出的是,图9中,第n个第一子检测电路121要检测的是第一位线为BL1、第二位线为BLB1上输出的电压差;第n+1个第一子检测电路121要检测的是第一位线为BL2、第二位线为BLB2上输出的电压差;第n个第二子检测电路122要检测的是第n对位线中的第二位线为BLB1和第n+1对位线中第一位线BL1上输出的电压差。图9仅示例出两组存储单元、以及对应的第一子检测电路121和第二子检测电路122之间的连接关系,多组存储单元和对应的第一子检测电路和第二子检测电路之间的连接关系参考图7A的实施例,这里不再赘述。
例如,检测电路120可以包括灵敏放大器。第一子检测电路121包括第一灵敏放大器,第二子检测电路122包括第二灵敏放大器。例如,第一灵敏放大器和第二灵敏放大器具有相同的结构。为了更好地检测,第二灵敏放大器的对于电压差检测的灵敏度大于第一灵敏放大器的对于电压差检测的灵敏度,这样避免由于第一灵敏度过高导致的数据读出错误,而具有较高的校验灵敏度。例如,第二灵敏放大器可以在检测的电压差大于第一阈值为50mV的情况下正常工作,第一灵敏放大器只有在检测的电压差大于第二阈值为100mV的情况下正常工作。第一阈值和第二阈值可以根据实际情况进行设置,第二阈值大于第一阈值。为了使得第二灵敏放大器的对于电压差检测的灵敏度大于第一灵敏放大器的对于电压差检测的灵敏度,可以在第一灵敏放大器中,通过减小T5晶体管、T4晶体管、T3晶体管的宽度尺寸并且调大深度。
一种示例中,基于多个校验数据对多个存储数据进行校验的具体过程如下步骤201~步骤202。
步骤S201:对于相邻两对输出端口输出的两个存储数据相同的情况,响应于相邻两对输出端口对应的校验数据为指示两个存储数据彼此相同的第一值,确定两个存储数据无错误;或者相邻两对输出端口对应的校验数据为指示两个存储数据彼此不同的第二值,确定两个存储数据之一有错误。
步骤S202:对于相邻两对输出端口输出的两个存储数据不同的情况,响应于相邻两对输出端口对应的校验数据为指示两个存储数据彼此相同的第一值,确定两个存储数据之一有错误;或者相邻两对输出端口对应的校验数据为指示两个存储数据彼此不同的第二值,确定两个存储数据无错误。
例如,图11示出多个第一灵敏放大器SA1和多个第二灵敏放大器SA2与对应分组存储单元连接的结构输出存储数据和校验数据的示意图。假设6组存储单元IO[0]~IO[5]的每组存储单元中只包含一个存储单元,6个第一灵敏放大器SA1分别与6组存储单元对应连接,用于检测对应组存储单元的第一位线BL和第二位线BLB之间的电压差,通过输出端口DO[n]输出存储数据。5个第二灵敏放大器SA2分别与相邻两个存储单元对应连接,例如,用于检测相邻两组存储单元中的左侧存储单元的第二位线和右侧存储单元的第一位线之间的电压差,通过输出端口ECC[n]输出校验数据。
例如,假设电压差为100mV时能够使得第一灵敏放大器SA1和第二灵敏放大器SA2都能够正常工作。在图11的示例中,6个存储单元位于同一行中且对应于6个通道,该6个存储单元中当前存储数据分别为0/0/1/0/1/1。因此,当该一行存储单元被选中时,可以通过6个第一灵敏放大器读出其中存储的数据,第一位线对应于节点Q而第二位线对应于节点QB。对应于所存储的数据,IO[0]、IO[1]、IO[3]中第一位线电压为0.9V,第二位线电压为1V,由于BL=0.9小于BLB=1V,电压差为100mV,第一灵敏放大器SA1输出0,读出其中存储的数据0。IO[2]、IO[4]、IO[5]中第一位线电压为1V,第二位线电压为0.9V,由于BL=1大于BLB=0.9V,电压差为100mV,第一灵敏放大器SA1输出1,读出其中存储的数据1。因此,多组存储单元IO[0]~IO[5]的第一位线和第二位线上输出的信号(电压差)经过各自对应的第一灵敏放大器SA1之后,通过输出电路DO[0]~DO[5]输出数据为001011。
另一方面,IO[0]和IO[1]之间的SA2的两个输入端,一个输入端的电压为IO[0]的第二位线的电压即BLB=1V,另一输入端的电压为IO[1]的第一位线的电压即BL=0.9V,电压差为100mV,第二灵敏放大器SA2输出1。IO[1]和IO[2]之间的SA2的两个输入端,一个输入端的电压为IO[1]的第二位线的电压即BLB=1V,另一输入端的电压为IO[2]的第一位线的电压即BL=1V,电压差为0mV,第二灵敏放大器SA2输出0。以此类推,因此多组存储单元IO[0]~IO[5]的第一位线和第二位线上输出的信号经过间隔设置的第二灵敏放大器SA2之后,通过输出电路ECC[0]~ECC[4]输出数据为10001。在该存储装置正常工作状态下,ECC[0]表示相邻两组存储单元输出的存储数据相同,均为0或1,ECC[1]表示相邻两组存储单元输出的存储数据不同,一个输出为0,另一输出为1。因此,图11所示的情形中,输出数据与校验数据彼此对应,因此校验通过,读出的数据被认为是正确的。
例如,图12示出另一种多个第一灵敏放大器SA1和多个第二灵敏放大器SA2与对应分组存储单元连接的结构输出存储数据和校验数据的示意图。
图12所示的6个存储单元所存储的数据以及连接关系与图11所示的情形相同,这里假设IO[2]对应的存储单元由于工艺等原因,导致下拉能力比较弱,这导致其第二位线BLB无法下拉至0.9V而只被下拉到0.95V,第一位线BL和第二位线BLB之间的电压差为50mV。由于工艺漂移、蒙特卡洛等原因,导致IO[2]对应连接的第一灵敏放大器SA1[2]输出存储数据发生错误,将本来应该输出的1变成了0,即正常状态下DO[2]=1,发生错误时DO[2]=0。因此,此时存储器输出的存储数据为000011。
然而,此时,由于第二灵敏放大器SA2[1]检测的两条位线的电压都是1V,即电压差基本为0,所以ECC[1]=0。因此,此时存储器输出的校验数据为10001。输出数据与校验数据不完全对应,因此校验不通过,读出的数据被认为存在错误。
更具体而言,参考图11的实施例,正常状态下,ECC[1]=0表示DO[1]和DO[2]输出数据是相反的,DO输出发生变化,但是本实施例中ECC[1]=0时,DO[1]和DO[2]输出数据是相同的,DO输出并未发生变化,与正确状态下的结果并不符合,因此,说明DO[2]和DO[1]之中有一个有错误。进一步判断DO[2]和DO[1]之中哪个有错误,需要结合上一列的检测结果得到DO[1]=0正确,DO[2]=0错误,或者DO[1]=0错误,DO[2]=0正确。
表1列出所有相邻组存储单元输出的信号经过SA1放大后通过DO输出的第一值,和经过SA1放大后通过DO输出的第二值在正确状态下的情况,和错误状态下的情况。即正常状态下ECC[n]=0时候,DO输出的存储数据发生翻转,ECC[n]=1时候,DO输出的存储数据保持不变。
表1
例如,图13示出相邻两组存储单元与第一灵敏放大器和第二灵敏放大器的连接电路图的一种示例。
如图13所示,第一组存储单元IO[0]和第二组存储单元IO[1],这两组存储单元中均包含两个6T型存储单元。第一组存储单元IO[0]中,开关切换电路单元101中包括两个二选一子开关电路(MUX=2),即PMX0[1:0]和PMX1[1:0],第一组存储单元IO[0]根据线路YMUX[1:0]]接收的选择信号控制PMX1[1:0]选择第一个存储单元中的第二位线BLB[0],控制PMX0[1:0]选择第一个存储单元中的第一位线BL[0],BLB[0]输出信号至第一灵敏放大器的线路SAC,进而进入线路SACI,以及进入第二灵敏放大器中的线路SATI(如图13中左侧的箭头所示)。同时,第二组存储单元IO[1]中开关切换电路单元101中包括两个二选一子开关电路即PMX0[1:0]和PMX1[1:0],第二组存储单元IO[1]根据线路YMUX[1:0]接收的选择信号控制PMX0[1:0]选择第一个存储单元的第一位线BL[0],控制PMX1[1:0]选择第一个存储单元的第二位线BLB[0],BL[0]输出信号至第一灵敏放大器的SAT线路中进而进入线路SACT,并进入第二灵敏放大器中的线路SATI(如图13中右侧的箭头所示)。最后,第一组存储单元对应连接的第一灵敏放大器SAEN打开后,线路SATI的信号和线路SACI的信号形成电压差,放大输出DO[0];相应地,第二组存储单元对应连接的第一灵敏放大器SAEN打开后,线路SATI的信号和线路SACI的信号形成电压差,放大输出DO[1];第二灵敏放大器中的线路SATI的电压是从第一组存储单元中输出的电压,线路SACI的电压是从第二组存储单元中输出的电压,二者形成电压差,被放大输出ECC[0]。
需要指出的是,每组存储单元中还可以包括更多个存储单元,例如3个、4个等,例如,对应地开关切换电路的开关切换电路单元101可以为MUX=3、MUX=4等,由此可以分时选择任意一个存储单元的第一位线和第二位线,来利用第一灵敏放大器和第二灵敏放大器检测电压差。实现了在不增加存储装置的面积的情况下,不浪费任何面积。
例如,可以选择将数据校验装置设置在存储装置中来执行上述实施例所述的数据校验的方法,或者,选择将数据校验装置设置在存储装置之外,在存储装置外通过输出电路输出多个第一子检测电路检测的多个存储数据和多个第二子检测电路检测的多个校验数据来执行数据校验的方法,实施例不做具体限定。
图14为本公开一些实施例提供的一种数据校验装置20,应用于如上述任一项的存储装置10。数据校验装置20包括获取模块210和校验模块220。获取模块210被配置为通过检测电路获取一行存储单元中存储的多个存储数据,以及通过检测电路获取一行存储单元中存储的多个存储数据对应的多个校验数据。校验模块220被配置为基于多个校验数据对多个存储数据进行校验。
例如,在本公开一些实施例提供的数据校验装置中,校验模块220可以包括第一校验单元和第二校验单元。例如,该第一校验单元和第二校验单元可以一体提供。
第一校验单元,被配置为,对于相邻两对输出端口输出的两个存储数据相同的情况,响应于相邻两对输出端口对应的校验数据为指示两个存储数据彼此相同的第一值,确定两个存储数据无错误;或者相邻两对输出端口对应的校验数据为指示两个存储数据彼此不同的第二值,确定两个存储数据之一有错误。
第二校验单元,被配置为,对于相邻两对输出端口输出的两个存储数据不同的情况,响应于相邻两对输出端口对应的校验数据为指示两个存储数据彼此相同的第一值,确定两个存储数据之一有错误;或者相邻两对输出端口对应的校验数据为指示两个存储数据彼此不同的第二值,确定两个存储数据无错误。
图15为本公开一些实施例提供的一种电子装置,包括如上述任一项的存储装置10和数据校验装置20。
图16为本公开一些实施例提供的另一种数据校验装置的示意性框图。
例如,如图16所示,该数据校验装置500包括存储单元510和处理单元520。例如,存储单元510用于非暂时性存储计算机可执行指令,处理单元520用于运行该计算机可执行指令,该计算机可执行指令被处理单元520运行时执行本公开任一实施例提供的数据校验方法。
例如,存储单元510和处理单元520之间可以直接或间接地互相通信。例如,在一些示例中,如图16所示,该数据校验装置500还可以包括系统总线530,存储单元510和处理单元520之间可以通过系统总线530互相通信,例如,处理单元520可以通过系统总线1006访问存储单元510。例如,在另一些示例中,存储单元510和处理单元520等组件之间可以通过片上网络(NOC)连接进行通信。
例如,处理单元520可以控制数据校验装置中的其它组件以执行期望的功能。处理单元520可以是中央处理单元(CPU)、张量处理单元(TPU)、网络处理单元(NP)或者图形处理单元(GPU)等具有数据处理能力和/或程序执行能力的器件,还可以是数字信号处理单元(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
例如,存储单元510可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储单元和/或非易失性存储单元。易失性存储单元例如可以包括随机存取存储单元(RAM)和/或高速缓冲存储单元(cache)等。非易失性存储单元例如可以包括只读存储单元(ROM)、硬盘、可擦除可编程只读存储单元(EPROM)、便携式紧致盘只读存储单元(CD-ROM)、USB存储单元、闪存等。
例如,在存储单元510上可以存储一个或多个计算机指令,处理单元520可以运行计算机指令,以实现各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如指令处理代码以及应用程序使用和/或产生的各种数据等。
例如,存储单元510存储的一些计算机指令被处理单元520执行时可以执行根据上文的数据校验方法中的一个或多个步骤。
例如,如图16所示,数据校验装置500还可以包括允许外部设备与数据校验装置500进行通信的输入接口540。例如,输入接口540可被用于从外部计算机设备、从用户等处接收指令。数据校验装置500还可以包括使数据校验装置500和一个或多个外部设备相互连接的输出接口550。例如,数据校验装置500可以通过输出接口550等。
例如,关于数据校验方法的处理过程的详细说明可以参考上述数据校验方法的实施例中的相关描述,重复之处不再赘述。
需要说明的是,本公开的实施例提供的数据校验装置是示例性的,而非限制性的,根据实际应用需要,该数据校验装置还可以包括其他常规部件或结构,例如,为实现数据校验装置的必要功能,本领域技术人员可以根据具体应用场景设置其他的常规部件或结构,本公开的实施例对此不作限制。
本公开至少一些实施例还提供一种存储器,包括多个存储单元的存储阵列以及如前述任一项实施例的数据校验装置,该存储阵列包括多行多列。例如,该存储器可以为SRAM(静态随机存取存储器)等。
本公开至少一些实施例还提供一种非暂时性存储介质。图17为本公开一些实施例提供的一种非暂时性存储介质的示意图。
例如,如图17所示,该存储介质600非暂时性地存储计算机可执行指令610,当非暂时性计算机可执行指令610由计算机(包括处理器)执行时可以执行本公开任一实施例提供的数据校验方法。
例如,在存储介质600上可以存储一个或多个计算机指令。存储介质600上存储的一些计算机指令可以是例如用于实现上述数据校验方法中的一个或多个步骤的指令。
例如,存储介质可以包括平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、光盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。例如,存储介质600可以包括前述数据校验装置500中的存储单元510。
本公开的实施例提供的存储介质的技术效果可以参考上述实施例中关于数据校验方法的相应描述,在此不再赘述。
对于本公开,有以下几点需要说明:
(1)本公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开同一实施例及不同实施例中的特征可以相互组合。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (19)

1.一种存储装置,包括存储阵列以及检测电路,其中,
所述存储阵列包括:
G对输出端口,其中,每对输出端口包括第一输出端口和第二输出端口;以及
排列为多行多列的多个存储单元,其中,
每行存储单元划分为G组,所述G组存储单元与所述G对输出端口一一对应;
每行存储单元具有相同的字线,每列存储单元具有相同的一对位线,所述一对位线包括第一位线和第二位线;
每个存储单元包括第一读出端口和第二读出端口,并且,每个存储单元的第一读出端口和第二读出端口,通过对应的一对位线的第一位线和第二位线,与对应的一对输出端口的第一输出端口和第二输出端口分别耦接;以及
所述检测电路包括:
G对输入线,其中,所述G对输入线与所述G对输出端口一一对应,每对输入线包括第一输入线以及第二输入线,且每对输入线的第一输入线以及第二输入线与对应的一对输出端口的第一输出端口和第二输出端口分别电连接;
其中,所述检测电路被配置为可检测第n对输入线的第一输入线和第二输入线之间的电压差,以用于输出存储数据,以及被配置为可检测第n对输入线的第二输入线以及第n+1对输入线的第一输入线之间的电压差,以用于输出校验数据,
其中,G、n为正整数,且n小于G。
2.根据权利要求1所述的存储装置,所述检测电路包括多个第一子检测电路和多个第二子检测电路,所述多个第一子检测电路与所述G对输入线一一对应;
第n个第一子检测电路与第n对位线电连接,且被配置为检测所述第n对位线的第一位线和第二位线之间的电压差,以用于输出所述存储数据;
第n个第二子检测电路与所述第n对位线的第二位线以及第n+1对位线的第一位线电连接,且被配置为检测所述第n对位线的第二位线以及第n+1对位线的第一位线之间的电压差,以用于输出所述校验数据。
3.根据权利要求2所述的存储装置,其中,所述第一子检测电路包括第一灵敏放大器,所述第二子检测电路包括第二灵敏放大器。
4.根据权利要求3所述的存储装置,其中,所述第二灵敏放大器的对于电压差检测的灵敏度大于所述第一灵敏放大器的对于电压差检测的灵敏度。
5.根据权利要求1所述的存储装置,其中,所述存储阵列包括开关切换电路,所述开关切换电路与所述存储阵列的多对位线电连接,
每组存储单元包括位于H列中的H个存储单元,H为大于等于2的整数,
所述开关切换电路被配置为,根据选择信号,在每组存储单元中选择一个存储单元通过对应的一对位线与对应的一对输出端口对应电连接。
6.根据权利要求5所述的存储装置,其中,所述开关切换电路包括G个开关切换电路单元,
所述G个开关切换电路单元与所述G组存储单元一一对应,以及与所述G对输出端口一一对应,
每个开关切换电路单元包括H选一子开关电路,用于根据所述选择信号执行H选一的操作。
7.根据权利要求1所述的存储装置,其中,所述存储单元包括用于存储数据的锁存器,所述锁存器具有彼此反相的第一节点和第二节点,所述第一节点与所述第一读出端口耦接,所述第二节点与所述第二读出端口耦接。
8.根据权利要求1所述的存储装置,还包括输出电路,其中,所述输出电路与所述检测电路连接,用于输出所述存储数据和所述校验数据。
9.一种数据校验方法,应用于如权利要求1~8任一项所述的存储装置,所述数据校验的方法包括:
通过所述检测电路获取一行存储单元中存储的多个存储数据;
通过所述检测电路获取所述一行存储单元中存储的多个存储数据对应的多个校验数据;
基于所述多个校验数据对所述多个存储数据进行校验。
10.根据权利要求9所述的方法,其中,所述基于所述多个校验数据对所述多个存储数据进行校验,包括:
对于所述相邻两对输出端口输出的两个存储数据相同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据无错误;或者
所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据之一有错误。
11.根据权利要求10所述的方法,其中,所述基于所述多个校验数据对所述多个存储数据进行校验,包括:
对于所述相邻两对输出端口输出的两个存储数据不同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据之一有错误;或者
所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据无错误。
12.根据权利要求9所述的方法,还包括:
在所述存储装置中执行所述数据校验的方法,或者,
通过所述输出电路输出所述多个第一子检测电路检测的多个存储数据和所述多个第二子检测电路检测的多个校验数据,在所述存储装置外执行所述数据校验的方法。
13.一种数据校验装置,应用于如权利要求1~8任一项所述的存储装置,所述装置包括:
获取模块,被配置为通过所述检测电路获取一行存储单元中存储的多个存储数据,以及通过所述检测电路获取所述一行存储单元中存储的多个存储数据对应的多个校验数据;
校验模块,被配置为基于所述多个校验数据对所述多个存储数据进行校验。
14.根据权利要求13所述的数据校验装置,其中,所述校验模块包括:
第一校验单元,被配置为,对于所述相邻两对输出端口输出的两个存储数据相同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据无错误;或者所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据之一有错误。
15.根据权利要求14所述的数据校验装置,其中,所述校验模块还包括:
第二校验单元,被配置为,对于所述相邻两对输出端口输出的两个存储数据不同的情况,响应于所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此相同的第一值,确定所述两个存储数据之一有错误;或者所述相邻两对输出端口对应的校验数据为指示所述两个存储数据彼此不同的第二值,确定所述两个存储数据无错误。
16.一种电子装置,其中,包括如权利要求1~8任一项所述的存储装置。
17.根据权利要求16所述的电子装置,还包括数据校验装置,其中,所述数据校验装置包括:
获取模块,被配置为通过所述检测电路获取一行存储单元中存储的多个存储数据,以及通过所述检测电路获取所述一行存储单元中存储的所述多个存储数据对应的多个校验数据;
校验模块,被配置为基于所述多个校验数据对所述多个存储数据进行校验。
18.一种数据校验装置,包括:
存储器,用于非暂时性存储计算机可执行指令;以及
处理器,用于运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时执行根据权利要求9-12任一项所述的数据校验方法。
19.一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由计算机执行时,执行根据权利要求9-12任一项所述的数据校验方法。
CN202111423751.0A 2021-11-26 2021-11-26 存储装置、数据校验方法以及装置、存储介质 Active CN114121085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111423751.0A CN114121085B (zh) 2021-11-26 2021-11-26 存储装置、数据校验方法以及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111423751.0A CN114121085B (zh) 2021-11-26 2021-11-26 存储装置、数据校验方法以及装置、存储介质

Publications (2)

Publication Number Publication Date
CN114121085A CN114121085A (zh) 2022-03-01
CN114121085B true CN114121085B (zh) 2024-05-10

Family

ID=80370273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111423751.0A Active CN114121085B (zh) 2021-11-26 2021-11-26 存储装置、数据校验方法以及装置、存储介质

Country Status (1)

Country Link
CN (1) CN114121085B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819817A (zh) * 2009-02-26 2010-09-01 索尼公司 存储设备及其操作方法
CN102332295A (zh) * 2011-07-15 2012-01-25 北京兆易创新科技有限公司 存储器电路及应用所述存储器电路读取数据的方法
CN111161785A (zh) * 2019-12-31 2020-05-15 展讯通信(上海)有限公司 静态随机存储器及其故障检测电路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102246342B1 (ko) * 2014-06-26 2021-05-03 삼성전자주식회사 멀티 스택 칩 패키지를 갖는 데이터 저장 장치 및 그것의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819817A (zh) * 2009-02-26 2010-09-01 索尼公司 存储设备及其操作方法
CN102332295A (zh) * 2011-07-15 2012-01-25 北京兆易创新科技有限公司 存储器电路及应用所述存储器电路读取数据的方法
CN111161785A (zh) * 2019-12-31 2020-05-15 展讯通信(上海)有限公司 静态随机存储器及其故障检测电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
可嵌入RFID标签的低功耗单栅非易失性存储器;杨亚楠;杨晓龙;陈力颖;;半导体技术;20160103(第01期);全文 *
基于FPGA的NAND Flash ECC校验系统设计与实现;王轩;常亮;李杰;;电子设计工程;20180920(第18期);全文 *

Also Published As

Publication number Publication date
CN114121085A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US10880103B2 (en) SRAM-based authentication circuit
US10614907B2 (en) Short detection and inversion
US4748627A (en) Semiconductor memory device with an error correction function
US6785169B1 (en) Memory cell error recovery
US8639992B2 (en) Soft error rate detector
US7779333B2 (en) Semiconductor memory having embedded microcomputer with ECC function
JPS6255180B2 (zh)
US9891976B2 (en) Error detection circuitry for use with memory
JP2010045610A (ja) 半導体集積回路
US4103823A (en) Parity checking scheme for detecting word line failure in multiple byte arrays
US20220223220A1 (en) Memory device and methof for error detection
CN114121085B (zh) 存储装置、数据校验方法以及装置、存储介质
US4905242A (en) Pipelined error detection and correction apparatus with programmable address trap
KR20200038418A (ko) 메모리 테스트 기술
JPH0740440B2 (ja) 半導体記憶装置
TWI617944B (zh) 抑制記憶體器件中電紋特徵之系統及方法
KR20150119789A (ko) 멀티 포트 메모리들에서의 기록 방해 검출
US9312028B2 (en) Method for detecting permanent faults of an address decoder of an electronic memory device
CN114121084B (zh) 存储装置、侦测方法以及装置、存储介质
JP2002251898A (ja) シングルイベントアップセット補償回路
CN117133347A (zh) 一种多级存储器系统
JPH06259997A (ja) 半導体記憶装置
JPH08314812A (ja) パリティ検査回路
JP2011229051A (ja) 誤り検出回路及び集積回路
KR20120068071A (ko) 패스/페일 체크 회로

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant