CN116612806A - 数据校验方法、装置、电子设备及存储介质 - Google Patents

数据校验方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116612806A
CN116612806A CN202210117836.4A CN202210117836A CN116612806A CN 116612806 A CN116612806 A CN 116612806A CN 202210117836 A CN202210117836 A CN 202210117836A CN 116612806 A CN116612806 A CN 116612806A
Authority
CN
China
Prior art keywords
data
read
bit
compressed
write
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.)
Pending
Application number
CN202210117836.4A
Other languages
English (en)
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.)
Changxin Memory Technologies Inc
Original Assignee
Changxin Memory Technologies Inc
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 Changxin Memory Technologies Inc filed Critical Changxin Memory Technologies Inc
Priority to CN202210117836.4A priority Critical patent/CN116612806A/zh
Priority to PCT/CN2022/078475 priority patent/WO2023151142A1/zh
Priority to US17/854,138 priority patent/US20230307078A1/en
Publication of CN116612806A publication Critical patent/CN116612806A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1204Bit line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本申请提供一种数据校验方法、装置、电子设备及存储介质。该方法包括:读取存储阵列,获得读取数据,并对读取数据进行压缩,获得第一压缩数据;将第一压缩数据与第二压缩数据进行比较;其中,第二压缩数据为对读取数据对应的写入数据进行压缩所得;若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和预存的原始位数据是否一致,判断读取数据是否准确;若一致,则判定读取数据准确;否则,判定读取数据错误;其中,原始位数据为读取数据对应的写入数据中预定位的数据。本申请通过比较写入数据与读出数据分别对应的压缩数据,以及进一步比较相同位置的原始位数据,提高了对存储阵列所存储的数据的校验准确性。

Description

数据校验方法、装置、电子设备及存储介质
技术领域
本申请涉及存储器技术领域,尤其涉及一种数据校验方法、装置、电子设备及存储介质。
背景技术
动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)是计算机中常用的半导体存储器件。DRAM中的每个存储单元通常包括电容器和晶体管,晶体管的栅极与字线相连、漏极与位线相连、源极与电容器相连,字线上的电压信号能够控制晶体管的打开或关闭,进而通过位线读取存储在电容器中的数据信息,或者通过位线将数据信息写入到电容器中进行存储。每个存储单元通过电容内存储电荷的多少来代表一个二进制比特(bit)是1还是0。
发明内容
本申请提供一种数据校验方法、装置、电子设备及存储介质,用以准确地校验DRAM存储的数据。
根据一些实施例,本申请第一方面提供一种数据校验方法,应用于存储器,包括:读取存储阵列,获得读取数据,并对读取数据进行压缩,获得第一压缩数据;将第一压缩数据与第二压缩数据进行比较;其中,第二压缩数据为对读取数据对应的写入数据进行压缩所得;若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和预存的原始位数据是否一致,判断读取数据是否准确;若一致,则判定读取数据准确;否则,判定读取数据错误;其中,原始位数据为读取数据对应的写入数据中预定位的数据。
一种可行的实施方式中,本申请第一方面提供一种数据校验方法,还包括:对写入数据进行压缩,获得第二压缩数据;提取写入数据中预定位的数据;存储第二压缩数据和写入数据中预定位的数据,并向存储阵列中写入写入数据。
一种可行的实施方式中,本申请第一方面提供一种数据校验方法,还包括:根据样本数据,通过模拟测试确定出错率超过预定阈值的位;将出错率超过预定阈值的位,作为预定位。
一种可行的实施方式中,对写入数据进行压缩,获得第二压缩数据,具体包括:根据第二压缩数据的数据量,将写入数据划分为多份数据;对每份数据中的各位数据进行基于异或运算的压缩处理,获得多份数据的压缩结果,压缩结果包括一位数据;根据多份数据的压缩结果,获得第二压缩数据。
进一步地,对每份数据中的各位数据进行基于异或运算的压缩处理获得多份数据的压缩结果,具体包括:将每份数据划分为多份子数据;其中,每份子数据的数据量等于存储阵列中每一次突发对应的数据量;针对每份子数据,对子数据中的各位数据进行异或运算,获得子数据的中间压缩结果;通过对每份数据的多份子数据的中间压缩结果进行异或运算,获得多份数据的压缩结果。
一种可行的实施方式中,本申请第一方面提供一种数据校验方法中,原始位数据存储在寄存器内。
一种可行的实施方式中,本申请第一方面提供一种数据校验方法中,对读取数据进行压缩,获得第一压缩数据之后,还包括:若第一压缩数据与第二压缩数据不一致,则判定读取错误。
下面为本申请第一方面提供一种数据校验方法所对应的装置、电子设备及存储介质,其效果可参考方法部分。
根据一些实施例,本申请第二方面提供一种数据校验装置,包括:读写模块,用于读取存储阵列,获得读取数据;压缩模块,用于对读取数据进行压缩,获得第一压缩数据;校验模块,用于将第一压缩数据与第二压缩数据进行比较;其中,第二压缩数据为对读取数据对应的写入数据进行压缩所得;校验模块,还用于若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和预存的原始位数据是否一致,判断读取数据是否准确;校验模块,还用于若一致,则判定读取数据准确;否则,判定读取数据错误;其中,原始位数据为读取数据对应的写入数据中预定位的数据。
一种可行的实施方式中,装置还包括:压缩模块,还用于对写入数据进行压缩,获得第二压缩数据;选择模块,用于提取写入数据中预定位的数据;读写模块,还用于存储第二压缩数据和写入数据中预定位的数据,并向存储阵列中写入写入数据。
一种可行的实施方式中,选择模块,还用于根据样本数据,通过模拟测试确定出错率超过预定阈值的位;选择模块,还用于将出错率超过预定阈值的位,作为预定位。
一种可行的实施方式中,压缩模块,具体用于根据第二压缩数据的数据量,将写入数据划分为多份数据;压缩模块,具体还用于对每份数据中的各位数据进行基于异或运算的压缩处理,获得多份数据的压缩结果,压缩结果包括一位数据;根据多份数据的压缩结果,获得第二压缩数据。
一种可行的实施方式中,压缩模块,具体还用于将每份数据划分为多份子数据;其中,每份子数据的数据量等于存储阵列中每一次突发对应的数据量;压缩模块,具体还用于针对每份子数据,对子数据中的各位数据进行异或运算,获得子数据的中间压缩结果;压缩模块,具体还用于通过对每份数据的多份子数据的中间压缩结果进行异或运算,获得多份数据的压缩结果。
一种可行的实施方式中,原始位数据存储在寄存器内。
一种可行的实施方式中,校验模块,还用于在压缩模块对读取数据进行压缩,获得第一压缩数据之后,若第一压缩数据与第二压缩数据不一致,则判定读取错误。
根据一些实施例,本申请第三方面提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现如第一方面的方法。
根据一些实施例,本申请提供第四方面一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面的方法。
本申请实施例提供的数据校验方法、装置、电子设备及存储介质,通过读取存储阵列,获得读取数据,并对读取数据进行压缩,获得第一压缩数据;将第一压缩数据与读取数据对应的写入数据进行压缩所得第二压缩数据进行比较;若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和读取数据对应的写入数据中预定位的数据是否一致,判断读取数据是否准确;若一致,则判定读取数据准确;否则,判定读取数据错误。本申请实施例比较了写入数据与读出数据分别对应的压缩数据,以及抽取了写入数据与读出数据中相同位置的数据并进行比较,提高了对存储阵列所存储的数据的校验准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为示例性的DRAM压缩读取数据的时序图;
图2为本申请实施例提供的一种数据校验方法的流程图;
图3为本申请实施例提供的一种比较逻辑电路的电路图;
图4为本申请实施例提供的一种DRAM压缩读取数据的时序图;
图5为本申请实施例提供的一种获取原始位数据的流程图;
图6为本申请实施例提供的一种数据校验方法在写操作下的流程图;
图7为本申请实施例提供的一种数据校验方法在读操作下的流程图;
图8为本申请实施例提供的一种数据校验装置的结构示意图;
图9为本申请实施例提供的另一种数据校验装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
奇偶校验(Parity Check):是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号。在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就会尝试纠正这些错误。
动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)是计算机中常用的半导体存储器件,DRAM中的每个存储单元通常包括电容器和晶体管,晶体管的栅极与字线相连、漏极与位线相连、源极与电容器相连,字线上的电压信号能够控制晶体管的打开或关闭,进而通过位线读取存储在电容器中的数据信息,或者通过位线将数据信息写入到电容器中进行存储。每个存储单元通过电容内存储电荷的多少来代表一个二进制比特(bit)是1还是0,存储单元排列成矩阵形式,即存储阵列。
在生产过程中,DRAM的电路结构复杂且集成度高,可能会出现如节点接触不良等工艺原因导致的存储单元失效使读取数据错误的情况。因此,在进行生产工艺良率分析时,需要对DRAM中存储数据的进行校验。
在实际应用中,DRAM的晶体管会有漏电的现象,由于存储在存储单元电容器中的电荷随着时间的推移而泄漏,会导致电荷数量不足以正确的体现原本存储的数据,而导致读取数据有误。也就是说,DRAM具有有限的数据保留特性。为了保持信息,必须刷新DRAM的存储单元的内容。为了设定合理的刷新时间,需要对DRAM保留数据的时长进行测试,其中也需要对DRAM中存储数据的进行校验。
一种可行的测试方法是,通过将数据写入DRAM再读取,比较写入数据与读取数据是否一致来判断确定DRAM中存储数据的准确性。若对每个数据均进行对比,则面临着大量的运算工作量,大大降低了检测效率。为了提高测试效率,提出一种压缩测试的方法,该方法通过比较写入数据和读取数据分别对应的压缩数据是否一致来判断确定DRAM中存储数据的准确性。
图1为示例性的DRAM压缩读取数据的时序图。CLK为时钟信号,CMD为指令信号,BA为DRAM中BANK的寻址信号,TDQ为数据信号。图1以存储有256+16位(bit)数据BL=8的BANK为例,采用one bank compression read测试电路,对256+16个数据进行基于异或运算的压缩处理,形成8位EB(Error Bit)数据EB<7:0>,将EB<7:0>并行转串行输出到TDQ信号端口,且采用4拍CLK输出,CLK上升下降沿采样的是不同的压缩数据EB。
然而,发现上述压缩测试的方法无法对读取数据全错的情况进行判定。示例性地,设该256+16位为预先设置的8个数的重复,该预先设置的8个数可以是00000000,即写操作中写入数据全为0,该写入数据基于异或运算后输出的8个EB均为1。之后,进行读操作获得读取数据,当读取数据全为0和全为1的时候,该读取数据基于异或运算输出的8个EB均为1。因此,无法判定此时读取数据是全对还是全错。
基于此,提供一种数据校验方法、装置、电子设备及存储介质,能够准确地校验DRAM中的存储数据。除了比较写入数据与读出数据分别对应的压缩数据外,进一步地抽取了写入数据与读出数据中相同位置的未压缩的数据并进行比较,提高了数据校验的准确性。
下面以具体地实施例对技术方案以及技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对实施例进行描述。
图2为本申请实施例提供的一种数据校验方法的流程图。该方法应用于存储器,其执行主体可以为数据校验装置,也可以为集成了数据校验装置的存储器,下面以执行主体为数据校验装置为例进行说明。如图2所示,该方法可以包括以下步骤:
S100、读取存储阵列,获得读取数据,并对读取数据进行压缩,获得第一压缩数据;
S200、将第一压缩数据与第二压缩数据进行比较;其中,第二压缩数据为对读取数据对应的写入数据进行压缩所得;
S300、若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和预存的原始位数据是否一致,判断读取数据是否准确;
S400、若一致,则判定读取数据准确;否则,判定读取数据错误;其中,原始位数据为读取数据对应的写入数据中预定位的数据。
可选的,在步骤S100中,读取数据可以仅包括数据位。该数据位为进行数据校验的测试数据,该测试数据可以为按照一定规则预先设定的,比如全为0,或者全为1,也可以为随机生成的离散的二进制数据,以及可以是按照一定规律排布0和1的存储阵列。其中,0和1的排布规律可以根据实验目的进行设置,具体来说,可以通过调整0和1的排布规律,使得测试具有处于相对严格或相对宽松的环境。
可选的,在步骤S100中,读取数据可以包含数据位和校验位。校验位是根据数据位计算得来,具体的可以基于奇偶校验法(Parity Check)生成,也可以基于误差校正码(Error Correcting Code,简称ECC)校验法生成,也可以基于循环冗余校验(CyclicRedundancy Check,简称CRC)。
其中,校验位随着数据位同时写入存储阵列中,相应地,读取存储阵列时,校验位也随着数据位同时读出。这里不排除校验位出错的情况,通过增加校验位的数量,可以提高容错能力。在实际应用过程中,ECC相较于Parity Check具有更多的校验位,容错能力更强。另外,读取数据中包含校验位,可以尝试利用校验位对出错数据进行纠正。对检测出的出错位的纠正方法可参照相关技术,在此不作具体介绍。
需要说明的是,在数据传输过程中,在链路上传输的一个或者多个帧可能被破坏,即出现比特差错,0变为1,或者1变为0,从而使得接收方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。前述的奇偶校验法、ECC校验和循环冗余校验等,均通过设置校验位实现上述的差错检查。
具体的,在步骤S200和S300中,第一压缩数据为对读取数据进行压缩所得,第二压缩数据为对读取数据对应的写入数据进行压缩所得。相较于比较写入数据和读取数据的各位原始位数据,通过压缩数据进行校验,降低了进行比较的数据量,大大提高了测试效率。
进一步地,当压缩数据对应一致时,因为基于异或运算的压缩过程中,可能出现错⊕错=对(⊕表示异或运算)的情况,比如全0数据位和全1数据位的压缩结果均为1,所以无法判断全错的情况。因此,需要通过比较写入数据和读取数据中相同位置的原始位数据进一步判断。当所抽取比较的原始位数据不一致时,则表明读取数据错误;否则,表明读取数据正确。相较于仅比较压缩数据,实现了对读取数据全错的情况的判断,提高了数据校验的准确性;相较于比较写入数据和读取数据的各位原始位数据,虽然进行了两步判断,但要处理的数据量也是远远低于原始位数据的,因此也提高了测试效率。
本申请实施例提供的方法还包括:对写入数据进行压缩,获得第二压缩数据;提取写入数据中预定位的数据;存储第二压缩数据和写入数据中预定位的数据,并向存储阵列中写入写入数据。
对存储写入数据对应的第二压缩数据和预定位的数据的时序,可选的,可以在将写入数据写入存储阵列阵列之前,执行对写入数据的压缩,获得第二压缩数据,以及选取出预定位的数据,并将第二压缩数据和预定位的数据存储于寄存器或存储阵列内。也可以在将写入数据写入存储阵列的同时,将写入数据对应的第二压缩数据及预定位的数据存储于寄存器或其他存储阵列内。本申请实施例对写入数据对应的第二压缩数据和预定位的数据的获取和存储的时序不作限定,只要满足在执行步骤S200至S400的比较时可以获取所需数据即可。
存储写入数据对应的第二压缩数据和预定位的数据的位置,可选的,可以存储于DRAM芯片内部的外围电路的寄存器中,提高了数据校验装置的集成度;也可以存储于DRAM芯片外部的寄存器中,允许存储更多的数据;也可以写入DRAM芯片的存储阵列中。
在实际应用中,当DRAM芯片的寄存器和存储阵列的空间均较小时,可选择存储于DRAM芯片外部的寄存器。当DRAM芯片的存储空间充足时,可选择存储于DRAM芯片内部的寄存器中或存储阵列中。本申请实施例对对写入数据对应的第二压缩数据和预定位的数据的存储的位置不作限定。
进一步地,因为要对第一压缩数据和第二压缩数据进行比较,所以对二者的执行的压缩计算方式需要是相同的。其中,对写入数据或读取数据的压缩,可以通过逻辑电路实现,也可以通过程序代码实现。
下面以对写入数据的压缩为例,对压缩过程进行说明。
一个示例中,对写入数据进行压缩,获得第二压缩数据,具体包括:根据第二压缩数据的数据量,将写入数据划分为多份数据;对每份数据中的各位数据进行基于异或运算的压缩处理,获得多份数据的压缩结果,压缩结果包括一位数据;根据多份数据的压缩结果,获得第二压缩数据。
具体的,以位线BL=8的存储BANK为例;写入数据以256+16位数据为例,即包括256位数据位及生成的16位校验位;压缩比以34:1为例,即第二压缩数据的数据量为8位。256+16位写入数据划分为8份,每份数据的数据量可以相同,可以不同。将每份数据进行异或运算得到一位异或结果EB,那么8份数据对应有8个异或结果,记为EB0至EB7,即组成了第二压缩数据。
在实际测试过程中,可根据对测试速度和准确度的要求,自行设定恰当的压缩比,本申请实施例不作限定;可根据待测试的DRAM芯片适应性地设定写入数据的个数,本申请实施例不作限定。
在上述示例的基础上,对每份数据中的各位数据进行基于异或运算的压缩处理获得多份数据的压缩结果,具体包括:将每份数据划分为多份子数据;其中,每份子数据的数据量等于存储阵列中每一次突发对应的数据量;针对每份子数据,对子数据中的各位数据进行异或运算,获得子数据的中间压缩结果;通过对每份数据的多份子数据的中间压缩结果进行异或运算,获得多份数据的压缩结果。
具体的,在上述将256+16位写入数据划分为8份的基础上,将每份数据划分为多份子数据,以BL=8为例,每份子数据包含一次突发对应的数据量,即8bit。那么,每份数据包含的数据量应该为8bit的倍数。将一次突发对应的数据量数据作为一个CP(columnplane),那么256+16位写入数据划分为34份子数据,每份子数据内的各位数据进行异或运算压缩生成一位中间压缩结果,记为CP0至CP33。
进一步地,对CP0至CP3进行异或运算,获得一位第二压缩数据,即EB<0>=CP0⊕CP1⊕CP2⊕CP3(⊕表示异或)。其中,EB对应的CP的个数为整数。
在实际测试过程中,可根据待测试的DRAM芯片的突发长度适应性地设定子数据中包含的数据的个数,本申请实施例不作限定;每个EB对应参与异或计算的CP数量,本申请实施例不作限定。
一个示例中,在步骤S100之后,若第一压缩数据与第二压缩数据不一致,则判定读取错误。容易理解的,当压缩数据不一致时,则表明该压缩数据对应的原始位数据存在部分错误。进一步地,若想定位到出错的位,可以选择一一对比写入和读取的原始位数据;也可通过设定更多数量的压缩数据(较小的压缩比),进一步缩小出错位的范围。上述通过比较压缩数据进行校验,缩短了进行对比的数据量,大大提高了测试速率。
可选的,对于测试数据,可设置为较为简单的数据。例如,当写入数据全为0或1,则比较容易地获知第二压缩数据的EB<7:0>,在实际测试时可以不执行如前述的压缩计算,直接给出第二压缩数据,大大缩短计算时长,提高测试效率。另外,也有利于快速地定位出错的位,假设写入数据全为0,那么读取数据中出现1的位即为出错的位。当然,也不排除出现两次翻转而使错误位不显示的情况,可以通过多次测试提高校验准确性。
在设置测试数据时,要保证读取数据全对和发生部分错误所输出的结果不同。具体的,当读取数据部分有错时,可通过一种比较逻辑电路检测出来。例如,当读取数据全对的时候,比较逻辑电路输出1,表征验证通过;当读取数据部分有错时,比较逻辑电路输出0,表征验证不通过。但是,针对读取数据全错的时候,比较逻辑电路可能会出现一种错误的结果,即读取数据全错时,也输出1。其中,也可以用0表征验证通过,1表征验证不通过。
示例性地,图3为本申请实施例提供的一种比较逻辑电路的电路图,应用于已知写入数据全为0或者全为1的测试场景中。如图3所示的逻辑电路中,异或非电路I5的输入端输入Data<0>和Data<1>;异或非电路I4的输入端输入Data<2>和Data<3>;异或非电路I5的输入端输入Data<0>和Data<3>;异或非电路I2为冗余电路,输出端为1,起到版图对称的作用。对于异或非电路,当输入端数值相同时输出为1,当输入端数值不同时输出为0。异或非电路I5和I4的输出端分别输入与非电路I1,异或非电路I3和I2的输出端分别输入与非电路I0,与非电路I1和I0的输出端分别输入或非电路I6,或非电路I6输出1或0,用于表征读取数据正确或错误。
由图3可知,该逻辑电路被设置为输出1表征验证通过,输出0表征验证不通过。需要说明的是,也可以设置类似的逻辑电路,用输出0表示验证通过,输出1表示验证不通过,本申请实施例不作限定。
分析该逻辑电路可知,当Data<3:0>均为0或均为1时,逻辑电路输出1;否则,逻辑电路输出0。也就是说,当读取数据部分有错时,验证不通过;而当读取数据全对或全错时,均可以通过验证。针对这种情况,需要进一步获知Data<3:0>的任一数据的数值,才能确定是全对还是全错。
当第一压缩数据和第二压缩数据一致时,考虑到压缩过程中的异或运算会影响对全错和全对情况的分析,则进行步骤S300中的预定位的数据的比对。通过对多位未压缩的原始位数据进行验证,只要抓取到不一致的错误数据,就可以说明第一压缩数据EB不满足全对条件。
图4为本申请实施例提供的一种DRAM压缩读取数据的时序图,与图1相比,图4中的TDQ数据信号中在压缩读取8位EB数据EB<7:0>之后,还增加了两位BB(burst bit,突发位)数据BB<1:0>。图4所示的EB数据即为第一压缩数据,BB数据即为预定位的数据,也即原始位数据。它为读取数据中的某几位,也就是说没有经过异或逻辑。通过检测输出的原始位数据来判断存储阵列里数据全错的情况。
当抽取的BB数据数量越少时,由于读取过程中可能出现错误,即便在储存数据全错的情况,读出来的数据依旧有可能是对的。也就是说,需要通过多位原始位数据进行验证。而当抽取的BB数据数量越多,抽取到错误数据的概率越大,测试时间也越增加。本申请实施例对抽取的BB数据的数量不作限定,在实际测试过程中,要综合考虑测试效率和准确率等问题。
为了达到测试时间和测试覆盖率的平衡,可以通过测试模式(Testmode)来选择输出部分数据。
一种可行的实施方式中,随机抽取任一突发的数据作为预定位的数据。此种方式,更为简单便捷。
一种可行的实施方式中,根据样本数据,通过模拟测试确定出错率超过预定阈值的位;将出错率超过预定阈值的位,作为预定位。图5为本申请实施例提供的一种获取原始位数据的流程图。示例性地,在测试模式(Testmode)下,通过数据选择电路,实现自多位原始位数据位中选择出两位原始位数据作为BB数据。具体的,在模拟测试模式下,可以获取过往的数据错误记录,以便于在错误较多的区域进行BB数据的获取并输出。优选出错率高的位获取BB数据,针对性地检测容易出错的位置,更有利于抓取错误数据,有利于提高数据校验准确度,提高检测效率。
对于BB数据的选取,可以在写入数据时便选取出BB数据,而在读取数据时读取同一位置的BB数据进行对比;也可以在读取数据时选取出BB数据,而返回至写入数据中进行调取,此时则可能需要将写入数据事先存储于寄存器中以便于可以随时访问调用;也可能写入数据均设置为全0或者全1等预设的默认数据,不需要实时访问即可获知。
对于抽取的BB数据,可以在写入数据时,同时写入寄存器中;也可以为预设的默认值,比如当写入数据为全0或者全1时,不需要对写入数据执行BB数据的抽取,可简化校验步骤,提高测试效率。
进一步地,原始位数据存储在寄存器内。具体的,一种可行的实施方式中,可以存储在DRAM外部的寄存器内。另一种可行的实施方式中,在DRAM芯片内部的外围电路中增加寄存器,将原始位数据(BB数据)存储于DRAM内部外围电路的寄存器内,进一步将数据校验装置集成于DRAM内部,有利于提高DRAM的数据校验功能。在实际应用中,可以从DRAM的核心尺寸(die size)、存储空间等方面考虑,协调要寄存的原始位数据(BB数据)的数量及存储位置。
图6为本申请实施例提供的一种数据校验方法在写操作下的流程图;在将外部写入的测试数据写入DRAM的存储阵列(Array)中时,将外部写入的测试数据中的一突发长度的数据BB<7:0>写入DRAM的内部寄存器中。图7为本申请实施例提供的一种数据校验方法在读操作下的流程图,在DRAM的存储阵列(Array)中读取数据的同时,读取寄存于DRAM中的BB数据,由比较电路进行比较处理,当不一致时,输出错误信息。本申请实施例除了比较写入数据与读取数据对应的压缩数据以外,还在两个压缩数据表征一致的情况下,进一步抽取写入数据与读书数据中预定位的原始位数据进行比较,进一步确定读取数据是否有误,提高了数据校验准确性。
综上,本申请实施例提供的数据校验方法,通过读取存储阵列,获得读取数据,并对读取数据进行压缩,获得第一压缩数据;将第一压缩数据与读取数据对应的写入数据进行压缩所得第二压缩数据进行比较;若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和读取数据对应的写入数据中预定位的数据是否一致,判断读取数据是否准确;若一致,则判定读取数据准确;否则,判定读取数据错误。本申请实施例比较了写入数据与读出数据分别对应的压缩数据,以及抽取了写入数据与读出数据中相同位置的数据并进行比较,提高了对存储阵列所存储的数据的校验准确性。
下面为本申请实施例提供数据校验方法所对应的装置、电子设备及存储介质,其效果可参考方法部分。
图8为本申请实施例提供的一种数据校验装置的结构示意图,包括:读写模块10,用于读取存储阵列,获得读取数据;压缩模块20,用于对读取数据进行压缩,获得第一压缩数据;校验模块30,用于将第一压缩数据与第二压缩数据进行比较;其中,第二压缩数据为对读取数据对应的写入数据进行压缩所得;校验模块30,还用于若第一压缩数据与第二压缩数据一致,则通过检测读取数据中预定位的数据和预存的原始位数据是否一致,判断读取数据是否准确;校验模块30,还用于若一致,则判定读取数据准确;否则,判定读取数据错误;其中,原始位数据为读取数据对应的写入数据中预定位的数据。
可选的,读取数据可以仅包括数据位。该数据位为进行数据校验的测试数据,该测试数据可以为按照一定规则预先设定的,比如全为0,或者全为1,也可以为随机生成的离散的二进制数据。
可选的,读取数据可以包含数据位和校验位。该数据位为进行数据校验的测试数据,该测试数据可以为按照一定规则预先设定的,比如全为0,或者全为1,也可以为随机生成的离散的二进制数据。校验位是根据数据位计算得来,具体的可以基于奇偶校验法(Parity Check)生成,也可以基于误差校正码(Error Correcting Code,简称ECC)校验法生成,也可以基于循环冗余校验(Cyclic Redundancy Check,简称CRC)。
其中,校验位随着数据位同时写入存储阵列中,相应地,读取存储阵列时,校验位也随着数据位同时读出。这里不排除校验位出错的情况,通过增加校验位的数量,可以提高容错能力。在实际应用过程中,ECC相较于Parity Check具有更多的校验位,容错能力更强。另外,读取数据中包含校验位,可以尝试利用校验位对出错数据进行纠正。对检测出的出错位的纠正方法可参照相关技术,在此不作具体介绍。
需要说明的是,在数据传输过程中,在链路上传输的一个或者多个帧可能被破坏,即出现比特差错,0变为1,或者1变为0,从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。前述的奇偶校验法、ECC校验和循环冗余校验等,均通过设置校验位实现上述的差错检查。
具体的,第一压缩数据为对读取数据进行压缩所得,第二压缩数据为对读取数据对应的写入数据进行压缩所得。相较于比较写入数据和读取数据的各位原始位数据,通过压缩数据进行校验,降低了进行比较的数据量,大大提高了测试效率。
进一步地,当压缩数据对应一致时,因为基于异或运算的压缩过程中,可能出现错⊕错=对(⊕表示异或运算)的情况,比如全0数据位和全1数据位的压缩结果均为1,所以无法判断全错的情况。因此,需要通过比较写入数据和读取数据中相同位置的原始位数据进一步判断。当所抽取比较的原始位数据不一致时,则表明读取数据错误;否则,表明读取数据正确。相较于仅比较压缩数据,实现了对读取数据全错的情况的判断,提高了数据校验的准确性;相较于比较写入数据和读取数据的各位原始位数据,虽然进行了两步判断,但要处理的数据量也是远远低于原始位数据的,因此也提高了测试效率。
图9为本申请实施例提供的另一种数据校验装置的结构示意图。包括:压缩模块20,还用于对写入数据进行压缩,获得第二压缩数据;选择模块30,用于提取写入数据中预定位的数据;读写模块10,还用于存储第二压缩数据和写入数据中预定位的数据,并向存储阵列中写入数据。
写入存储阵列阵列之前,执行对写入数据的压缩,获得第二压缩数据,以及选取出预定位的数据,并将第二压缩数据和预定位的数据存储于寄存器内。也可以在将写入数据写入存储阵列阵列的同时,将写入数据对应的第二压缩数据及预定位的数据存储于寄存器内。本申请实施例对对写入数据对应的第二压缩数据和预定位的数据的获取和存储的时序不作限定。
存储写入数据对应的第二压缩数据和预定位的数据的位置,可选的,可以存储于DRAM芯片内部的外围电路的寄存器中,提高了数据校验装置的集成度;也可以存储于DRAM芯片外部的寄存器中,允许存储更多的数据;也可以写入DRAM芯片的存储阵列中。
在实际应用中,当DRAM芯片的寄存器和存储阵列的空间均较小时,可选择存储于DRAM芯片外部的寄存器。当DRAM芯片的存储空间充足时,可选择存储于DRAM芯片内部的寄存器中或存储阵列中。本申请实施例对对写入数据对应的第二压缩数据和预定位的数据的存储的位置不作限定。
进一步地,因为要对第一压缩数据和第二压缩数据进行比较,所以对二者的执行的压缩计算方式需要是相同的。其中,对写入数据或读取数据的压缩,可以通过逻辑电路实现,也可以通过程序代码实现。
一种可行的实施方式中,压缩模块20,具体用于根据第二压缩数据的数据量,将写入数据划分为多份数据;压缩模块20,具体还用于对每份数据中的各位数据进行基于异或运算的压缩处理,获得多份数据的压缩结果,压缩结果包括一位数据;根据多份数据的压缩结果,获得第二压缩数据。
具体的,以位线BL=8的存储BANK为例;写入数据以256+16位数据为例,即包括256位数据位及生成的16位校验位;压缩比以34:1为例,即第二压缩数据的数据量为8位。256+16位写入数据划分为8份,每份数据的数据量可以相同,可以不同。将每份数据进行异或运算得到一位异或结果EB,那么8份数据对应有8个异或结果,记为EB0至EB7,即组成了第二压缩数据。
在实际测试过程中,可根据对测试速度和准确度的要求,自行设定恰当的压缩比,本申请实施例不作限定;可根据待测试的DRAM芯片适应性地设定写入数据的个数,本申请实施例不作限定。
在上述实施方式的基础上,压缩模块20,具体还用于将每份数据划分为多份子数据;其中,每份子数据的数据量等于存储阵列中每一次突发对应的数据量;压缩模块20,具体还用于针对每份子数据,对子数据中的各位数据进行异或运算,获得子数据的中间压缩结果;压缩模块20,具体还用于通过对每份数据的多份子数据的中间压缩结果进行异或运算,获得多份数据的压缩结果。
具体的,在上述将256+16位写入数据划分为8份的基础上,将每份数据划分为多份子数据,以BL=8为例,每份子数据包含一次突发对应的数据量,即8bit。那么,每份数据包含的数据量应该为8bit的倍数。将一次突发对应的数据量数据作为一个CP(columnplane),那么256+16位写入数据划分为34份子数据,每份子数据内的各位数据进行异或运算压缩生成一位中间压缩结果,记为CP0至CP33。
进一步地,对CP0至CP3进行异或运算,获得一位第二压缩数据,即EB<0>=CP0⊕CP1⊕CP2⊕CP3(⊕表示异或)。其中,EB对应的CP的个数为整数。
在实际测试过程中,可根据待测试的DRAM芯片的突发长度适应性地设定子数据中包含的数据的个数,本申请实施例不作限定;每个EB对应参与异或计算的CP数量,本申请实施例不作限定。
一种可行的实施方式中,校验模块30,还用于在压缩模块对读取数据进行压缩,获得第一压缩数据之后,若第一压缩数据与第二压缩数据不一致,则判定读取错误。容易理解的,当压缩数据不一致时,则表明该压缩数据对应的原始位数据存在部分错误。进一步地,若想定位到出错的位,可以选择一一对比写入和读取的原始位数据;也可通过设定更多数量的压缩数据(较小的压缩比),进一步缩小出错位的范围。上述通过比较压缩数据进行校验,缩短了进行对比的数据量,大大提高了测试速率。
可选的,对于测试数据,可设置为较为简单的数据。例如,当写入数据全为0或1,则比较容易地获知第二压缩数据的EB<7:0>,在实际测试时可以不执行如前述的压缩计算,直接给出第二压缩数据,大大缩短计算时长,提高测试效率。另外,也有利于快速地定位出错的位,假设写入数据全为0,那么读取数据中出现1的位即为出错的位。当然,也不排除出现两次翻转而使错误位不显示的情况,可以通过多次测试提高校验准确性。
在设置测试数据时,要保证读取数据全对和发生部分错误所输出的结果不同。具体的,当读取数据部分有错时,可通过一种比较逻辑电路检测出来。例如,当读取数据全对的时候,比较逻辑电路输出1,表征验证通过;当读取数据部分有错时,比较逻辑电路输出0,表征验证不通过。但是,针对读取数据全错的时候,比较逻辑电路可能会出现出现一种错误的结果,即读取数据全错时,也输出0。其中,也可以用0表征验证通过,0表征验证不通过。
示例性地,图3为本申请实施例提供的一种比较逻辑电路的电路图,应用于已知写入数据全为0或者全为1的测试场景中。如图3所示的逻辑电路中,异或非电路I5的输入端输入Data<0>和Data<1>;异或非电路I4的输入端输入Data<2>和Data<3>;异或非电路I5的输入端输入Data<0>和Data<3>;异或非电路I2为冗余电路,输出端为1,起到版图对称的作用。对于异或非电路,当输入端数值相同时输出为1,当输入端数值不同时输出为0。异或非电路I5和I4的输出端分别输入与非电路I1,异或非电路I3和I2的输出端分别输入与非电路I0,与非电路I1和I0的输出端分别输入或非电路I6,或非电路I6输出1或0,用于表征读取数据正确或错误。
由图3可知,该逻辑电路被设置为输出1表征验证通过,输出0表征验证不通过。需要说明的是,也可以设置类似的逻辑电路,用输出0表示验证通过,输出1表示验证不通过,本申请实施例不作限定。
分析该逻辑电路可知,当Data<3:0>均为0或均为1时,逻辑电路输出1;否则,逻辑电路输出0。也就是说,当读取数据部分有错时,验证不通过;而当读取数据全对或全错时,均可以通过验证。针对这种情况,需要进一步获知Data<3:0>的任一数据的数值,才能确定是全对还是全错。
当第一压缩数据和第二压缩数据一致时,考虑到压缩过程中的异或运算会影响对全错和全对情况的分析,则进行步骤S300中的预定位的数据的比对。通过对多位未压缩的原始位数据进行验证,只要抓取到不一致的错误数据,就可以说明第一压缩数据EB不满足全对条件。
图4为本申请实施例提供的一种DRAM压缩读取数据的时序图,与图1相比,图4中的TDQ数据信号中在压缩读取8位EB数据EB<7:0>之后,还增加了两位BB(burst bit,突发位)数据BB<1:0>。图4所示的EB数据即为第一压缩数据,BB数据即为预定位的数据,也即原始位数据。它为读取数据中的某几位,也就是说没有经过异或逻辑。通过检测输出的原始位数据来判断存储阵列里数据全错的情况。
当抽取的BB数据数量越少时,由于读取过程中可能出现错误,即便在储存数据全错的情况,读出来的数据依旧有可能是对的。也就是说,需要通过多为原始位数据进行验证。而当抽取的BB数据数量越多,抽取到错误数据的概率越大,测试时间也越增加。本申请实施例对抽取的BB数据的数量不作限定,在实际测试过程中,要综合考虑测试效率和准确率等问题。
为了达到测试时间和测试覆盖率的平衡,可以通过测试模式(Testmode)来选择输出部分数据。
一种可行的实施方式中,随机抽取任一突发的数据作为预定位的数据。此种方式,更为简单便捷。
另一种可行的实施方式中,选择模块40,还用于根据样本数据,通过模拟测试确定出错率超过预定阈值的位;选择模块40,还用于将出错率超过预定阈值的位,作为预定位。图5为本申请实施例提供的一种获取原始位数据的流程图。示例性地,在测试模式(Testmode)下,通过数据选择电路,实现自多位原始位数据位中选择出两位原始位数据作为BB数据。具体的,在模拟测试模式下,可以获取过往的数据错误记录,以便于在错误较多的区域进行BB数据的获取并输出。优选出错率高的位获取BB数据,针对性地检测容易出错的位置,更有利于抓取错误数据,有利于提高数据校验准确度,提高检测效率。
对于BB数据的选取,可以在写入数据时便选取出BB数据,而在读取数据时读取同一位置的BB数据进行对比;也可以在读取数据时选取出BB数据,而返回至写入数据中进行调取,此时则可能需要将写入数据事先存储于寄存器中以便于可以随时访问调用;也可能写入数据均设置为全0或者全1等预设的默认数据,不需要实时访问即可获知。
对于抽取的BB数据,可以在写入数据时,同时写入寄存器中;也可以为预设的默认值,比如当写入数据为全0或者全1时,不需要对写入数据执行BB数据的抽取,可简化校验步骤,提高测试效率。
进一步地,原始位数据存储在寄存器内。具体的,一种可行的实施方式中,可以存储在DRAM外部的寄存器内。另一种可行的实施方式中,在DRAM芯片内部的外围电路中增加寄存器,进一步将数据校验装置集成于DRAM内部,有利于提高DRAM的数据校验功能。将原始位数据(BB数据)存储于DRAM内部外围电路的寄存器内。在实际应用中,可以从DRAM的核心尺寸(die size)、存储空间等方面考虑,协调要寄存的原始位数据(BB数据)的数量及存储位置。
图6为本申请实施例提供的一种数据校验方法在写操作下的流程图;在将外部写入的测试数据写入DRAM的存储阵列(Array)中时,将外部写入的测试数据中的一突发长度的数据BB<7:0>写入DRAM的内部寄存器中。图7为本申请实施例提供的一种数据校验方法在读操作下的流程图,在DRAM的存储阵列(Array)中读取数据的同时,读取寄存于DRAM中的BB数据,由比较电路进行比较处理,当不一致时,输出错误信息。
本申请实施例除了比较写入数据与读取数据对应的压缩数据以外,还在两个压缩数据表征一致的情况下,进一步抽取写入数据与读书数据中预定位的原始位数据进行比较,进一步确定读取数据是否有误,提高了数据校验准确性。
图10为本申请实施例提供的一种电子设备的结构示意图,如图10所示,电子设备包括:
处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器292中的逻辑指令,以执行上述实施例的方法。
此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现实施例提供的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (16)

1.一种数据校验方法,应用于存储器,其特征在于,包括:
读取存储阵列,获得读取数据,并对所述读取数据进行压缩,获得第一压缩数据;
将所述第一压缩数据与第二压缩数据进行比较;其中,所述第二压缩数据为对所述读取数据对应的写入数据进行压缩所得;
若所述第一压缩数据与所述第二压缩数据一致,则通过检测所述读取数据中预定位的数据和预存的原始位数据是否一致,判断所述读取数据是否准确;
若一致,则判定所述读取数据准确;否则,判定所述读取数据错误;其中,所述原始位数据为所述读取数据对应的所述写入数据中所述预定位的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述写入数据进行压缩,获得所述第二压缩数据;
提取所述写入数据中所述预定位的数据;
存储所述第二压缩数据和所述写入数据中所述预定位的数据,并向所述存储阵列中写入所述写入数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据样本数据,通过模拟测试确定出错率超过预定阈值的位;
将所述出错率超过预定阈值的位,作为所述预定位。
4.根据权利要求2所述的方法,其特征在于,所述对写入数据进行压缩,获得所述第二压缩数据,包括:
根据所述第二压缩数据的数据量,将所述写入数据划分为多份数据;
对每份数据中的各位数据进行基于异或运算的压缩处理,获得所述多份数据的压缩结果,所述压缩结果包括一位数据;
根据所述多份数据的压缩结果,获得所述第二压缩数据。
5.根据权利要求4所述的方法,其特征在于,所述对每份数据中的各位数据进行基于异或运算的压缩处理获得所述多份数据的压缩结果,包括:
将每份数据划分为多份子数据;其中,每份所述子数据的数据量等于存储阵列中每一次突发对应的数据量;
针对每份子数据,对所述子数据中的各位数据进行异或运算,获得所述子数据的中间压缩结果;
通过对所述每份数据的所述多份子数据的所述中间压缩结果进行异或运算,获得所述多份数据的压缩结果。
6.根据权利要求1所述的方法,其特征在于,所述原始位数据存储在寄存器内。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述对所述读取数据进行压缩,获得第一压缩数据之后,还包括:
若所述第一压缩数据与所述第二压缩数据不一致,则判定读取错误。
8.一种数据校验装置,其特征在于,包括:
读写模块,用于读取存储阵列,获得读取数据;
压缩模块,用于对所述读取数据进行压缩,获得第一压缩数据;
校验模块,用于将所述第一压缩数据与第二压缩数据进行比较;其中,所述第二压缩数据为对所述读取数据对应的写入数据进行压缩所得;
所述校验模块,还用于若所述第一压缩数据与所述第二压缩数据一致,则通过检测所述读取数据中预定位的数据和预存的原始位数据是否一致,判断所述读取数据是否准确;
所述校验模块,还用于若一致,则判定所述读取数据准确;否则,判定所述读取数据错误;其中,所述原始位数据为所述读取数据对应的所述写入数据中所述预定位的数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
所述压缩模块,还用于对所述写入数据进行压缩,获得所述第二压缩数据;
选择模块,用于提取所述写入数据中所述预定位的数据;
所述读写模块,还用于存储所述第二压缩数据和所述写入数据中所述预定位的数据,并向所述存储阵列中写入所述写入数据。
10.根据权利要求9所述的装置,其特征在于,
所述选择模块,还用于根据样本数据,通过模拟测试确定出错率超过预定阈值的位;
所述选择模块,还用于将所述出错率超过预定阈值的位,作为所述预定位。
11.根据权利要求9所述的装置,其特征在于,
所述压缩模块,具体用于根据所述第二压缩数据的数据量,将所述写入数据划分为多份数据;
所述压缩模块,具体还用于对每份数据中的各位数据进行基于异或运算的压缩处理,获得所述多份数据的压缩结果,所述压缩结果包括一位数据;
根据所述多份数据的压缩结果,获得所述第二压缩数据。
12.根据权利要求11所述的装置,其特征在于,
所述压缩模块,具体还用于将每份数据划分为多份子数据;其中,每份所述子数据的数据量等于存储阵列中每一次突发对应的数据量;
所述压缩模块,具体还用于针对每份子数据,对所述子数据中的各位数据进行异或运算,获得所述子数据的中间压缩结果;
所述压缩模块,具体还用于通过对所述每份数据的所述多份子数据的所述中间压缩结果进行异或运算,获得所述多份数据的压缩结果。
13.根据权利要求8所述的装置,其特征在于,所述原始位数据存储在寄存器内。
14.根据权利要求8-13中任一项所述的装置,其特征在于,
所述校验模块,还用于在所述压缩模块对所述读取数据进行压缩,获得第一压缩数据之后,若所述第一压缩数据与所述第二压缩数据不一致,则判定读取错误。
15.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
CN202210117836.4A 2022-02-08 2022-02-08 数据校验方法、装置、电子设备及存储介质 Pending CN116612806A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210117836.4A CN116612806A (zh) 2022-02-08 2022-02-08 数据校验方法、装置、电子设备及存储介质
PCT/CN2022/078475 WO2023151142A1 (zh) 2022-02-08 2022-02-28 数据校验方法、装置、电子设备及存储介质
US17/854,138 US20230307078A1 (en) 2022-02-08 2022-06-30 Method and device for checking data, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210117836.4A CN116612806A (zh) 2022-02-08 2022-02-08 数据校验方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116612806A true CN116612806A (zh) 2023-08-18

Family

ID=87563505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210117836.4A Pending CN116612806A (zh) 2022-02-08 2022-02-08 数据校验方法、装置、电子设备及存储介质

Country Status (3)

Country Link
US (1) US20230307078A1 (zh)
CN (1) CN116612806A (zh)
WO (1) WO2023151142A1 (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930184A (en) * 1997-06-19 1999-07-27 Micron Technology, Inc. Memory device having two or more memory arrays and a testpath connected to one of the memory arrays and not operably connected to another memory array, and a method of operating the testpath
JP2000040035A (ja) * 1998-07-24 2000-02-08 Mitsubishi Electric Corp 半導体記憶装置およびそれを用いたメモリシステム
TW200820261A (en) * 2006-09-08 2008-05-01 Samsung Electronics Co Ltd Fusion memory device and method
KR20110073932A (ko) * 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
CN102122959B (zh) * 2011-03-29 2013-12-04 西安交通大学 提高计算机主存可靠性的数据压缩装置及其方法
WO2015120825A1 (en) * 2014-02-17 2015-08-20 Mediatek Inc. Data access methods and data access devices utilizing the same
KR102468721B1 (ko) * 2017-12-20 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
WO2022100576A1 (zh) * 2020-11-10 2022-05-19 北京灵汐科技有限公司 校验方法、系统、装置、计算芯片、计算机设备及介质
CN112395129A (zh) * 2020-11-10 2021-02-23 北京灵汐科技有限公司 存储校验方法、装置、计算芯片、计算机设备及存储介质
CN112380046B (zh) * 2020-11-10 2023-12-22 北京灵汐科技有限公司 计算结果校验方法、系统、装置、设备及存储介质

Also Published As

Publication number Publication date
US20230307078A1 (en) 2023-09-28
WO2023151142A1 (zh) 2023-08-17

Similar Documents

Publication Publication Date Title
US7506226B2 (en) System and method for more efficiently using error correction codes to facilitate memory device testing
US5392302A (en) Address error detection technique for increasing the reliability of a storage subsystem
TWI382190B (zh) 測試裝置及測試方法
US20090199056A1 (en) Memory diagnosis method
US20010052090A1 (en) Storage device having an error correction function
US7398439B2 (en) Semiconductor device with memory and method for memory test
US7249296B2 (en) Semiconductor integrated circuit
US8122320B2 (en) Integrated circuit including an ECC error counter
US9003251B2 (en) Diagnosis flow for read-only memories
US9183952B2 (en) Apparatuses and methods for compressing data received over multiple memory accesses
CN117413252A (zh) 具有内置错误纠正和检测的存储器的错误率
CN112349341B (zh) Lpddr测试方法、装置、可读存储介质及电子设备
CN115691632B (zh) 测试控制系统和方法
CN116612806A (zh) 数据校验方法、装置、电子设备及存储介质
US11176988B2 (en) Control method for memory and non-transitory computer-readable media
CN112102875B (zh) Lpddr测试方法、装置、可读存储介质及电子设备
CN115938451A (zh) 测试方法及测试系统
CN115910183A (zh) 测试方法及测试系统
US20220138066A1 (en) System and method for error injection in system-on-chip
CN110289040A (zh) 一种系统芯片中bist与ecc结合的存储器检测方法
US11955989B2 (en) Memory device and test method thereof
CN114267402B (zh) 闪存的坏存储单元测试方法、装置、设备及存储介质
US11961578B2 (en) Test device and test method thereof
US20240221854A1 (en) Testing parity and ecc logic using mbist
CN117995253A (zh) 存储器测试方法、测试电路及存储器

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