CN117133347A - 一种多级存储器系统 - Google Patents

一种多级存储器系统 Download PDF

Info

Publication number
CN117133347A
CN117133347A CN202210547198.XA CN202210547198A CN117133347A CN 117133347 A CN117133347 A CN 117133347A CN 202210547198 A CN202210547198 A CN 202210547198A CN 117133347 A CN117133347 A CN 117133347A
Authority
CN
China
Prior art keywords
memory
circuit
controller
verification
data
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
CN202210547198.XA
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210547198.XA priority Critical patent/CN117133347A/zh
Publication of CN117133347A publication Critical patent/CN117133347A/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
    • 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

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请的实施例提供了一种多级存储器系统,涉及存储技术领域,能够对存储器的校验电路的工作状态进行按需配置,降低功耗。多级存储器系统包括控制器、多个校验电路以及多级存储器;多个校验电路包括第一校验电路以及至少一个第二校验电路;第一校验电路被配置为在对多级存储器中末级的存储器存储的数据进行错误检查;第二校验电路被配置为在工作状态对多级存储器中,除末级的存储器之外的一个或多个存储器存储的数据进行错误检查;控制器用于配置第二校验电路的状态,包括工作状态与非工作状态,在将第二校验电路配置为非工作状态时,可以降低多级存储器系统整体的功耗。

Description

一种多级存储器系统
技术领域
本申请涉及存储器技术领域,尤其涉及一种多级存储器系统。
背景技术
存储器通过存储电荷、磁性等不同的极化状态来存储数据,但由于存储器可能会受到电磁环境或者空间环境中其他因素的影响,存储电荷、磁性等不同的极化状态可能会发生翻转,这样会导致存储的数据发生改变,因此需要对存储器存储的数据进行校验,判断存储的数据是否发生改变(错误)。
存储器的校验方式有多种,例如奇偶校验(parity check)与错误校验码(errorcorrecting code,ECC)校验等,在存储数据之前根据存储的数据成校验码或者校验位,在对存储器存储的数据进行校验时,判断存储的数据与校验码或者校验位是否匹配,以此来判断存储的数据是否发生错误。
对于多级存储而言,不管存储的数据是否发生修改,数据每一次写入存储器都需要生成校验码,每一次从存储器中读出都需要对数据进行错误检查与纠正,这样会导致多级存储器系统的校验电路功耗较大。
另一种校验方式是仅仅在向第一级存储器写入数据时生成校验码,在读取最后一级存储器的数据时进行错误检查与纠正,而对于中间级的存储器,仅进行错误检查,不进行错误纠正,这样能够在一定程度上降低功耗,然而对于存储在不同存储器中未修改的数据而言,发生错误的几率较小,对中间级存储器每一次读取的数据都进行错误检查,仍然存在较高的功耗。
发明内容
本申请的实施例提供了一种多级存储器系统,可以在对存储的数据进行校验时,按照预设条件配置校验电路的工作状态,降低整体功耗。
为实现上述目的,本申请实施例采用以下技术方案:
本申请的实施例提供了一种多级存储器系统,多级存储器系统包括控制器、多个校验电路以及多级存储器;多个校验电路包括第一校验电路以及至少一个第二校验电路;第一校验电路被配置为对多级存储器中末级的存储器存储的数据进行错误检查;第二校验电路被配置为:在工作状态时,对多级存储器中,除末级的存储器之外的一个或多个存储器存储的数据进行错误检查;控制器用于配置第二校验电路的状态,这里的状态包括非工作状态和工作状态,由于在多级存储过程中,如果末级的存储器存储的数据未发生错误的情况下,一般而言前级的存储器存储的数据也不会发生错误,这样在对多级存储器系统存储的数据进行校验时,对于非末级的存储器,利用第二校验电路对其存储的数据进行校验,同时利用控制器对第二校验电路的状态进行配置,根据预设条件配置第二校验电路为工作状态或非工作状态,例如在末级的存储器的数据检测出错误时将第二校验电路配置为工作状态,或者在存储器因为自身原因或者环境因素等容易出现错误时将第二校验电路配置为工作状态,在其他的情况将第二校验电路配置为非工作状态,减少校验电路的冗余工作,在将第二校验电路配置为非工作状态时,可以降低系统整体的功耗。
在一种可能的实现方式中,控制器被配置为在确定满足预设条件时配置第二校验电路为工作状态,这样可以对各个存储器的存储器进行校验,检查各个存储器存储的数据是否发生错误;控制器还被配置为在确定不满足预设条件时配置第二校验电路为非工作状态,可以降低多级存储器系统的校验功耗。
在一种可能的实现方式中,满足预设条件包括第一校验电路检查到末级的存储器存储的数据发生错误;控制器具体被配置为当第一校验电路检查到末级的存储器存储的数据发生错误时,配置第二校验电路为工作状态,当第一校验电路未检查到末级的存储器存储的数据发生错误时,配置第二校验电路为非工作状态,由于在末级的存储器存储的数据发生错误时,无法确定错误是在哪一级存储器出现的,将第二校验电路配置为工作状态,对存储器存储的数据进行校验,能够确定错误发生在哪一级存储器,而在未检测到末级存储器存储的数据发送错误的情况下,将第二校验电路配置为非工作状态,可以减少第二校验电路的工作时长,降低功耗。
在一种可能的实现方式中,满足预设条件包括存储器的退化程参数大于阈值;在存储器的退化程度参数大于阈值的情况下,控制器配置第二校验电路为工作状态,其中多级存储器系统包括退化检测电路,退化检测电路包括用于检测存储器的退化程度的元器件,退化检测电路被配置为生成存储器的退化程度参数,退化程度参数用于指示存储器的退化程度;退化检测电路与控制器连接,控制器具体被配置为获得存储器的退化程度参数,当退化程度参数大于阈值时,存储器发生错误的可能性较高,控制器配置第二校验电路为工作状态,对存储器存储的数据进行错误检查,当退化程度参数小于或等于阈值时,控制器配置第二校验电路为非工作状态,这样在存储器未发生退化或者退化的程度较轻的情况下,第二校验电路为非工作状态,可以降低功耗,在退化程度参数大于阈值的情况下,第二校验电路被配置为工作状态,能够及时发现出现错误的中间级存储器。
在一种可能的实现方式中,元器件包括第一晶体管、第二晶体管、第一模数转换电路、第二模数转换电路以及比较电路;第一晶体管的第一端连接电源,第一晶体管的第二端与第一模数转换电路的输入端连接;第二晶体管的第一端连接电源,第二晶体管的第二端与第二模数转换电路的输入端连接;其中第一晶体管处于导通状态,第二晶体管处于截止状态;比较电路与第一模数转换电路的输出端、第二模数转换电路的输出端连接,比较电路还与控制器连接,比较电路用于对第一模数转换电路输出的信号、第二模数转换电路输出的信号求取差值得到退化程度参数,利用第一晶体管与第二晶体管,分别模拟最优(即不工作)及最恶劣(即一直处于工作状态)的工况,通过第一晶体管与第二晶体管的差异,确定存储器可能产生的退化程度,由于第一晶体管一直处于导通状态,因此存储器的晶体管的退化程度不会超过第一晶体管,因此利用第一晶体管与第二晶体管作为参考可以确定存储器的退化程度。
在一种可能的实现方式中,满足预设条件包括接收用户的校验指令,控制器被配置为接收到用户的校验指令时配置第二校验电路为工作状态,控制器还被配置为未接收到校验指令时配置第二校验电路为非工作状态。
在一种可能的实现方式中,多级存储器系统包括寄存器,寄存器被配置为获取用户的校验指令;控制器具体被配置为周期性的读取寄存器,以获得校验指令。
在一种可能的实现方式中,满足预设条件包括存储器的运行参数中的任意一项达到运行参数对应的健康阈值;控制器具体被配置为获得存储器的运行参数,当存储器的运行参数中的任意一项达到运行参数对应的健康阈值时,控制器配置第二校验电路为工作状态,当存储器的所有运行参数均未达到对应的健康阈值时,控制器配置第二校验电路为非工作状态,对于存储器而言,在其整个使用寿命中,各项运行参数达到健康阈值仅仅占小部分,而所有运行参数均未达到对应的健康阈值占大部分,在这期间第二校验电路被配置为非工作状态,可以降低整体的功耗。
在一种可能的实现方式中,运行参数包括温度、电压、电流、湿度与压力。
在一种可能的实现方式中,第一校验电路包括错误检查电路或者错误检查与纠正电路;第二校验电路包括错误检查电路。
在一种可能的实现方式中,不同的存储器存储有相同的数据,多个校验电路被配置为对相同的数据进行错误检查。
在一种可能的实现方式中,校验电路包括错误校验码ECC校验电路、奇偶校验电路、循环冗余CRC校验电路中的至少一种。
附图说明
图1为本申请实施例提供的一种存储单元的结构示意图;
图2为本申请实施例提供的另一种存储单元的结构示意图;
图3为本申请实施例提供的一种多级存储器的校验示意图;
图4为错误检查与纠正电路的示意图;
图5为本申请实施例提供的另一种多级存储器的校验示意图;
图6为本申请实施例提供的一种多级存储器系统的示意图;
图7为本申请实施例提供的一种运行参数检测电路与控制器的连接示意图;
图8为本申请实施例提供的另一种运行参数检测电路与控制器的连接示意图;
图9为本申请实施例提供的退化检测电路与控制器的连接示意图;
图10为本申请实施例提供的一种退化检测电路的示意图;
图11为本申请实施例提供的另一种多级存储器系统飞示意图;
图12为本申请实施例提供的另一种存储器的校验示意图。
具体实施方式
存储器是用来存储程序和各种数据信息的记忆部件,是计算机的重要组成部分。存储器包括只读存储器(read-only memory,ROM)和随机存取存储器(random-accessmemory,RAM)。其中只读存储器只能读,不能写,所存数据一般是预先写好的,在存储器工作过程中只能读出,而不像RAM那样能快速地、方便地加以改写。随机存取存储器(random-access memory,RAM)是一种可以进行读写的存储器,由于其存储的数据在系统断电后会丢失,因此也被称为易失性存储器。常见的随机存取存储器包括动态随机存取存储器(dynamic random-access memory,DRAM)、静态随机存取存储器(static random-accessmemory,SRAM)、铁电随机存取存储器(ferroelectric random-access memory,FeRAM)、磁随机存取存储器(magnetoresistive random-access memory,MRAM)等等。
其中SRAM是一种简单的半导体存储器设备,是大多数超大规模集成电路(verylarge scale integration,VLSI)设计中最常见的存储类型,SRAM以静态形式保存数据,在不断电的情况下,SRAM存储的数据会一直保留。
存储器的最小单位称为存储单元(cell),存储单元通过存储电荷或者磁性等不同的极化状态来存储数据。以SRAM为例,常见的SARM的存储单元结构为6晶体管(transistor,T)结构,6T结构的存储单元包括一对弱交叉耦合的反相器和一对用于读取和写入存储状态的存取晶体管(access transistors)。
在本申请的实施例中,晶体管可以采用金属-氧化物半导体场效应晶体管(metal-oxide-semiconductor field effect transistor,MOSFET),晶体管分为N(negative,负)型晶体管和P(positive,正)型晶体管两种类型。晶体管包括源极(source)、漏极(drain)以及栅极(gate),通过控制输入晶体管栅极的电平可以控制晶体管的导通或关断。晶体管在导通时,源极和漏极导通,产生导通电流,并且,在晶体管的栅极电平不同时,源极与漏极之间产生的导通电流的大小也不同;晶体管在关断时,源极和漏极不会导通,不会产生电流。在本申请的实施例中,晶体管的栅极也被称为控制端,源极被称为第一端,漏极被称为第二端;或者,栅极被称为控制端,漏极被称为第一端,源极被称为第二端。此外,N型晶体管在控制端的电平为高电平时导通,第一端和第二端导通,第一端和第二端之间产生导通电流;N型晶体管在控制端的电平为低电平时关断,第一端和第二端不导通,不产生电流。P型晶体管在控制端的电平为低电平时导通,第一端和第二端导通,产生导通电流;P型晶体管在控制端的电平为高电平时关断,第一端和第二端不导通,不产生电流,本申请的实施例所提及的晶体管可以是P型晶体管,也可以是N型晶体管。
图1示出了6T结构的SRAM存储单元的示意图。存储单元包括晶体管T1~晶体管T6,其中晶体管T1的第一端、晶体管T2的第一端连接电源VDD,晶体管T1的第二端连接晶体管T3的第一端,晶体管T2的第二端连接晶体管T4的第一端,晶体管T3的第二端、晶体管T4的第二端接地,晶体管T5的控制端、晶体管T6的控制端连接字线(word line,WL),晶体管T5的第一端连接第一位线(bit line,BL),晶体管T5的第二端与晶体管T1的第二端连接,还与晶体管T2、晶体管T4的控制端连接;晶体管T6的第一端连接第二位线BL!,晶体管T6的第二端连接晶体管T2的第二端,晶体管T6的第二端还与晶体管T1、晶体管T3的控制端连接,其中,第一位线BL与第二位线BL!的电平状态互补,当第一位线BL的电平状态为高电平时,第二位线BL!的电平状态为低电平,当第一位线BL的电平状态为高电平时,第二位线BL!的电平状态为低电平。
晶体管T1与晶体管T3构成一个反相器,晶体管T2与晶体管T4构成一个反相器,这两个反相器交叉连接形成锁存电路,节点P为晶体管T1与晶体管T3的连接点,节点Q为晶体管T2与晶体管T4的连接点,利用这两个节点存储数据或者信息。晶体管T5、晶体管T6用于进行读写控制,通过字线WL来控制开关,其中晶体管T5用于控制位线BL与节点P的连通或断开,晶体管T6用于控制位线BL!与节点Q的连通或断开,通过对字线WL的电压和位线BL、BL!电压的合理配置,即可利用6T结构的存储单元实现读数据、写数据以及保持数据这三种操作。
以写数据为例,写数据是指将数据写入存储单元,假设节点P的原始状态为“0”,节点Q的原始状态为“1”,待写入节点P的数据是“1”,首先,写数据为“1”,位线BL和BL!各自被置为高电平和低电平,开启字线WL,控制晶体管T5和晶体管T6导通,节点Q的高电平会经过晶体管T6向位线BL!放电,当节点Q的电压越过反相器翻转电压时,根据耦合反相器的反馈作用,节点P的电压就拉高为“1”,节点Q的电压也迅速降低为“0”,这样节点P实现了从“0”到“1”的转变,数据成功写入,此时就可以关断字线WL。
保持数据即存储单元在不掉电情况下维持存储数据保持不变的状态。在该操作下字线WL被置为低电平,导致相应的存取晶体管T5和T6均截止,节点P、节点Q与位线之间的电路连通均被打断,在存储器供电正常的情况下,交叉耦合的反相器形成双稳态电路就可以维持节点电压不变。但若是这6个晶体管中的任意一个因为晶体管自身的因素或者环境因素发生改变,会导致存储的数据发生改变。
DRAM的存储单元通常由晶体管与电容构成,如果含有两个晶体管(transistor)与两个电容(capacitor)则称为2T2C;如果含有两个晶体管与一个电容则称为2T1C;如果含有一个晶体管与一个电容则称为1T1C。以1T1C的结构为例,图2示出了DRAM的一个存储单元的结构示意图,包括晶体管T7与储存电容C,晶体管T7的第一端连接位线BL,晶体管T7的第二端连接至储存电容C的第一端,晶体管T7的控制端连接字线WL,储存电容C的第二端连接到源极线(source line,SL),可以通过源极线SL连接到特定的电压(例如地电压)。储存电容C用于存储数据,例如储存电容C的第一端的电压为高电平、第二端的电压为低电平时储存1,第一端的电压为低电平、第二端的电压为高点平时储存0,但如果储存电容C或者晶体管T7因为自身的因素或者环境因素发生状态改变,也同样会导致存储的数据发生改变。
除SRAM、DRAM之外,其他的随机存取存储器例如FeRAM、MRAM等也容易出现存储的数据发生改变的情况,其中FeRAM的存储单元利用铁电材料能发生自发极化,且极化状态能够保持的特性来存储数据;MRAM的存储单元利用磁性隧道结的磁化状态不同来存储数据,这些存储器都可能会受到电磁环境或者空间环境中其他因素的影响,存储电荷、磁化等不同的极化状态可能会发生翻转,这样会导致存储的数据发生改变,因此需要对存储器存储的数据进行校验,判断存储的数据是否发生改变(错误)。
常见的存储器的校验机制包括奇偶校验(parity check)与错误校验码(errorcorrecting code,ECC)校验、循环冗余(cyclic redundancy check,CRC)校验等。
其中,奇偶校验码,根据存储的一组二进制代码(一般是8位)的数位中“1”的个数是奇数或偶数来进行校验,用来检测数据存储过程中是否发生错误,是众多校验码中比较简单的一种。顾名思义,奇偶校验包括两种校验方法:奇校验与偶校验。采用奇数的称为奇校验,反之,称为偶校验。其中,奇校验是指在原始二进制代码的基础上,增加一个校验位,这样使二进制代码中总共有奇数个“1”,当读取这组代码时,校验“1”的个数是否为奇数,从而确定读取代码的正确性。
同理,偶校验是指在原始二进制代码的基础上,增加一个校验位,这样使二进制代码中总共有偶数个“1”,当读取这组代码时,校验“1”的个数是否为偶数,从而确定读取代码的正确性。
奇偶校验仅仅能够检测出奇数个错误,偶数个错误无法检出,例如,以奇校验为例,假定正确的二进制代码为11000001,有奇数个1,若发生1位错误,例如,变成11000011,变成了偶数个1,能够检测出错误;若发生2位错误,例如,变成11000010,变成了奇数个1,这样检测不出错误;若发生3位错误,例如,变成11001010,变成了偶数个1,能检测出错误。
奇偶校验通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加奇偶校验用来检查错误的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,在数据量非常大的情况下,数据出错的几率也就越大,奇偶校验的局限性也越高。
错误校验码(error correcting code,ECC)校验,同样也是在数据位上额外的位存储一个用于校验的代码,但与奇偶校验增加校验位的方式不同,这也就导致了二者的主要功能不同。ECC校验与奇偶校验不同之处在于如果数据位是8位,则需要增加5个校验位来进行错误检查和纠正,数据位每增加一倍,ECC只增加一位校验位,也就是说当数据位为16位时ECC位为6位,数据位为32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。
ECC校验的一个作用是检查错误,将数据区内的数据按一定规则生成校验码,并将校验码存放在冗余空间中,当系统在读取一个数据区的数据时,将数据区的数据和冗余区的校验码(记为A)一并读出,再将数据区内的数据按生成校验信息时的规则再从新运算生成校验码B,如果B和A相同,则表明存储在数据区内的数据没有出现错误,如果B和A出现不一致,则表明数据区内的数据出现了翻转或错误。
ECC校验的另一个作用是纠错,当发现数据位出现翻转以后,可以根据ECC存储在冗余区内的校验码将数据区内出现的位翻转纠正回来,但同样,ECC校验的纠错能力同样是有限的,一般可以单bit纠错,双bit检错(single error correction double errordetection,SECDED)。
多级存储可以解决存储器的速度、容量与成本之间的矛盾,例如,对于计算机系统而言,一般采用多级存储系统,将各种不同存储容量、读写速度和成本的存储器按照层次结构组成多级存储器,并通过管理软件和辅助硬件有机的组合成为一个整体,使所存放的程序和数据按照层次分布在各种存储器中。目前,在计算机系统中通常采用三级层次结构来构成存储系统,主要是由高速缓冲存储器cache,主存储器,和辅助存储器组成。一个较大的存储系统是由各种不同类型的存储设备构成的,是一个具有多级层次结构的存储系统。该系统既有与中央处理器相接近的速度,又有极大的容量,而且成本较低。其中高速缓存解决了存储系统的速度问题,辅助存储器则解决了系统的容量问题。采用多级层次结构的存储器可以有效的解决存储器的速度,容量,价格之间的矛盾。
多级存储除了上述的系统级应用场景之外,还存在一些微观应用,例如,芯片内部的多级数据的传递需要临时缓存,也会设置多级存储器。
无论是对于系统级应用的多级存储器,或是微观的、芯片内部的多级存储器,均需要对存储的数据进行校验,图3示出了一种多级存储器的数据校验方式,以ECC校验为例,数据每次写入存储器都需要生成ECC,每一次从存储器中读出都需要重新校验ECC,来检查存储的数据是否发生错误。
结合图3,图3示出的多级存储器包括存储器M1、存储器M2、存储器M3与存储器M4,存储器M1、存储器M2、存储器M3与存储器M4可能存储相同的数据,也可能存储不同的数据。这里的存储器M1~存储器M4仅仅是示例,并不代表多级存储器仅仅包括4个存储器,还可以是更多或更少数量的多级存储器。对应每一个存储器,分别设置错误校验码生成电路(error correcting code bits generator,ECCG)与错误检查与纠正电路(ECC detectionand correction,ECCC)。
例如,对于第一级存储器,即存储器M1而言,在写入数据时,利用错误校验码生成电路生成校验码,然后将数据存储,在读取存储器M1的数据时,错误检查与纠正电路对读取的数据进行错误检查,在检查到错误的情况下进行错误纠正。
对于后级的存储器M2、存储器M3与存储器M4,重复上述校验过程,这样确保各级存储器存储的数据的正确性。
参阅图4,图4示出了一种错误检查与纠正电路的示意图,包括一个伴随式生成电路、一个伴随式译码电路、一个纠正电路及一个检错电路,伴随式生成电路的输入是k个信息位(或者称为数据位)和r个校验位,其输出为r个伴随式位,伴随式译码电路的输出为表示每一个错误的k个错误图样(或者称为错误矩阵),纠正电路可以根据错误图样产生正确的数据,检错电路的输出为表示错误类型的错误信号。
对每一级存储器都进行错误检查与纠正,这样的校验方式能够保障各个存储器存储的数据的正确性,提高各个存储器的可靠性,但数据每一次写入存储器时都需要生成校验码,在每一次从存储器读取数据时都需要进行错误检查与纠正,功耗较高。
在另一种情况下,若数据在写入多级存储器的过程中没有修改,在多级存储器中存储的是相同的数据,那么在这种情况下,可以对多级存储的校验方式进行简化,只在最末级的存储器读出时进行错误检查与纠正,对于处末级存储器之外的存储器,读出数据时只进行错误检查。
图5示出了另一种多级存储器的数据校验方式,只在向第一级存储器写入数据时生成校验码,从最后一级存储器读取数据时进行错误检查与纠正,对于中间级的存储器,只进行错误检查,不进行错误纠正。结合图5,图5示出的多级存储器包括存储器M1、存储器M2、存储器M3与存储器M4,存储器M1、存储器M2、存储器M3与存储器M4存储相同的数据,其中存储器M1为多级存储器中的第一级存储器,存储器M4为多级存储器中的末级存储器,存储器M2、存储器M3为中间级存储器。
对于第一级存储器,即存储器M1,设置一个错误校验码生成电路(errorcorrecting code bits generator,ECCG),用于在向存储器M1写入数据时,生成校验码,这样数据以及校验码可以依次存储至存储器M1~存储器M4,即存储器M1~存储器M4可以存储相同的数据及相同的校验码。
对于末级存储器,即存储器M4,设置错误检查与纠正电路(error correctingcode detection and correction,ECCC),用于在从最后以及存储器读出数据时校验数据的正确性,在检测出错误时对错误的数据进行纠正。
图5示出的多级存储器,仅在末级存储器读出数据时进行错误检查与纠正,对于其他的存储器,如存储器M1、存储器M2、存储器M3,分别对应设置一个错误检查电路(errorcorrecting code detection,ECCD),用于对存储器M1、存储器M2、存储器M3存储的相同的数据及校验码进行错误检查,这样可以检测存储器M1、存储器M2、存储器M3等非末级存储器存储的数据是否发生错误。而在读出末级存储器存储的数据时进行错误检查与错误纠正,可以从多级存储器中读取的数据的正确性,一旦数据发生了错误,还可以利用多个错误检查电路定位发生错误的存储器位置。
图5示出的多级存储器,相比于图3示出的存储器,减少了中间级存储器写入数据时生成校验码的功耗和读取数据时进行错误纠正的功耗,但在读出每一级存储器的数据时仍然需要进行错误检查,功耗依旧较高。
为了改善上述多级存储器的校验功耗较高的问题,本申请实施例提供了一种多级存储器系统,参照图6,多级存储器系统包括控制器11、多级存储器以及多个校验电路,多个校验电路包括第一校验电路12以及至少一个第二校验电路13。
其中,第一校验电路12被配置为在工作状态对多级存储器中末级的存储器存储的数据进行错误检查;第二校验电路13被配置为在工作状态对多级存储器中,除末级的存储器之外的一个或多个存储器存储的数据进行错误检查,控制器11被配置为根据预设条件配置第二校验电路13为工作状态或非工作状态,例如,控制器11被配置为在确定满足预设条件时配置第二校验电路13为工作状态;控制器11还被配置为在确定不满足预设条件时配置第二校验电路13为非工作状态,这样来减少校验电路的冗余工作,降低功耗。
多级存储器系统包括多级存储器,例如,存储器M1、存储器M2……存储器Mn-1、存储器Mn,上一级(或者前一级)的存储器存储的数据会存储至下一级(或者后一级)存储器,不同的存储器存储有相同的数据,多个校验电路被配置为对不同的存储器存储的相同的数据进行错误检查。结合图6,多级存储器系统还包括错误校验码生成电路14,错误校验码生成电路14用于在数据存储至多级存储器系统中的第一级存储器时,根据存储的数据生成校验码,这样第一级存储器以及后级的存储器将数据与校验码同时存储,在读取各个存储器存储的数据时,利用校验电路根据数据以及校验码对数据进行错误检查。其中第一校验电路12对末级的存储器(例如,图6中的存储器Mn)存储的数据进行错误检查,第二校验电路13用于对一个或多个非末级的存储器(例如,图6中的存储器M1~存储器Mn-1)进行错误检查,例如,可以是除末级的存储器之外的每一个存储器对应设置一个第二校验电路13,用于在读取该存储器存储的数据时进行错误检查,还可以是除末级的存储器之外的多个存储器对应设置一个第二校验电路13,用于在读取这些存储器的存储的数据时进行错误检查。
在多级存储过程中,数据依次存储至第一级存储器(例如,图6中的存储器M1)、第二级存储器(例如,图6中的存储器Mn)直至存储至末级存储器(例如,图6中的存储器Mn),若数据在写入过程中未被修改,那么多级存储器中不同的存储器存储的数据是相同的,本申请实施例提供的校验电路(第一校验电路12、第二校验电路13)用于对这一部分相同或者未修改的数据进行错误检查。
此外,由于数据是依次存储至不同的存储器中的,那么在末级存储器未检测到存储的数据发生错误的情况下,可以认为前级的存储器同样未发生错误,在这样的情况下,无须对除末级的存储器之外的存储器进行错误检查,控制器11将第一校验电路12的状态配置为非工作状态,以降低多级存储器系统的校验功耗,但另一方面,还需要保障多级存储器存储的数据的正确性,因此本申请的实施例利用控制器11根据预设条件对第二校验电路13的状态进行配置,在满足预设条件的情况下配置第二校验电路13为工作状态,对存储器存储的数据进行错误检查,在不满足预设条件的情况下配置第二校验电路13为非工作状态,降低多级存储器的功耗。
例如,在本申请的一种实现方式中,满足预设条件包括:第一校验电路12检查到末级的存储器存储的数据发生错误。控制器11具体被配置为当第一校验电路12检查到末级的存储器存储的数据发生错误时,配置第二校验电路13为工作状态。
在第一校验电路12检查到末级的存储器存储的数据发生错误的情况下,可能在除末级存储器之外的存储器(例如,图6中的存储器M1~存储器Mn-1)中均未出现该错误,而是在存储至末级的存储器(例如,图6中的存储器Mn)时发生错误;或者还可能是在存储至第一级存储器时就出现了错误,以至在向第一级存储器之后的存储器存储数据时,将该错误保留,或者还能是在某一个中间级的存储器出现了错误,该中间级存储器之后的存储器将该错误保留。因此在第一校验电路12检查到末级的存储器存储的数据发生错误时,需要将第二校验电路13配置为工作状态,以定位该错误发生的位置。
示例性的,控制器11包括多个输入输出(input and output,IO)端口,例如,结合图6所示,端口IO0~端口IOn,其中第一校验电路12包括错误信号输出端P1,错误信号输出端P1与控制器11的端口IO0连接,第一校验电路12用于在检测到末级的存储器存储的数据错误时,通过错误信号输出端P1发送错误信号至控制器11。每一个校验电路(包括第一校验电路12与第二校验电路13)均包括使能端EN,每一个校验电路的使能端与一个控制器11的IO端口连接,控制器11可以通过IO端口输出控制信号配置校验电路的工作状态。例如,当第二校验电路13的使能端使能时,第二校验电路13被配置为工作状态,当第二校验电路13的使能端未使能时,第二校验电路13被配置为非工作状态。其中,使能信号可以为高电平信号或者低电平信号,同理,第一校验电路12包括使能端,第一校验电路12的使能端与控制器11的IO端口连接,以接收控制器11发出的使能信号,配置第一校验电路12的工作状态,当第一校验电路12的使能端使能时,第一校验电路12被配置为工作状态,当第一校验电路12的使能端未使能时,第一校验电路12被配置为非工作状态。其中,使能信号可以为高电平信号或者低电平信号。
在本申请的实施例中,由于第一校验电路12被配置为在工作状态对末级的存储器的数据进行错误检查,为了确保能够检查出多级存储器系统中存储的数据是否发生错误,第一校验电路12被配置为一直处于工作状态,对多级存储器系统中的末级的存储器存储的数据进行错误检查。而第二校验电路13被配置为在工作状态对多级存储器中,除末级的存储器之外的一个或多个存储器存储的数据进行错误检查,因此控制器11可以在满足预设条件的情况下配置第二校验电路13为工作状态,例如,在第一校验电路12检查末级的存储器存储的数据发生错误;在不满足预设条件的情况下配置第二校验电路13为非工作状态,以降低整体的功耗。
可以理解到,存储器包括多个存储单元,存储单元的状态可能会因为环境因素发生改变,导致存储器存储的数据发生错误,尤其是在存储器的健康状态较为恶劣的情况下,发生错误的机率会增大。存储器的健康状态可以利用运行参数来衡量,例如温度、电压、电流等运行参数。在存储器正常工作的情况下,每一个运行参数应该都在一个健康或者合理的范围内,以温度为例,存储器长期工作在高温情况下,可能会导致存储的数据丢失,例如若存储器的温度在-10℃~75℃这一范围内能够正常工作,存储器在温度超过75℃时容易发生错误,那么即可将75℃作为温度的健康阈值,同理,当存储器的运行的电压超出额定的电压、运行的电流超出额定的电流,都容易出现故障,导致存储的数据发生错误,除了温度、电流、电压之外,存储器工作环境的湿度、压力等运行参数也存在一个相应的健康阈值,湿度过大、压力过大均可能导致存储器存储的数据发生错误,不同类型的存储器,其各项运行参数对应的健康阈值可能不同,当运行参数超出对应的健康阈值的情况下,存储器存储的数据发生错误的机率比较大,需要将第二校验电路13配置为工作状态,对存储器存储的数据进行错误检查。
示例性的,上述的满足预设条件包括存储器的运行参数中的任意一项达到运行参数对应的健康阈值;控制器11具体被配置为获得存储器的运行参数,当存储器的运行参数中的任意一项达到运行参数对应的健康阈值时,控制器11配置第二校验电路13为工作状态。这里的存储器可以是多级存储器系统中的任意一级存储器,其中,运行参数包括温度、电压、电流、湿度与压力等,但不限于此,还可以包括其他的运行参数。
在本申请实施例的一些实施方式中,多级存储器系统可以设置有多个具有不同功能的运行参数检测电路,以检测上述的存储器的运行参数,如电压、电流、温度、湿度与压力等。如图7所示,这些检测电路可以与控制器11连接,将检测的运行参数发送至控制器11;或者,多级存储器系统还包括寄存器,如图8所示,这些检测电路还可以将检测的运行参数存储至寄存器,控制器11可以周期性的访问寄存器,以获得存储器的运行参数;并且,在任意一项运行参数达到其对应的健康阈值的情况下,控制器11配置第二校验电路13为工作状态。
除环境因素的影响之外,存储器存储的数据还有可能因为存储器的自身因素发生错误,例如,在存储器老化(或者称为退化)之后,发生错误的机率会增大。存储器的读写次数是有限的,或者说存储器的使用寿命是有限的,频繁读写数据会加快存储器的退化,这里的退化是指存储器的存储单元性能退化,以SRAM为例,其每一个存储单元包括6个晶体管,晶体管的性能退化,可能使其在截止状态下依然有较大的电流,这样会导致存储的数据发生改变;或者以MRAM为例,其存储单元以磁性隧道结的磁化方向不同来存储数据,磁性隧道结性能退化,可能会导致磁化状态无法保持,导致存储的数据发生改变,因此在存储器发生退化,或者退化程度较为恶劣的情况下,发生错误的机率增大,即使第一校验电路12未检查出末级存储器存储的数据发生错误,也需要配置第二校验电路13为工作状态,对存储器存储的数据进行错误检查。
示例性的,上述的满足预设条件包括存储器的退化程参数大于阈值,多级存储器系统包括退化检测电路,退化检测电路被配置为生成存储器的退化程度参数,退化程度参数用于指示存储器的退化程度;如图9所示,退化检测电路与控制器11连接,控制器11具体被配置为获得存储器的退化程度参数,当退化程度参数大于阈值时,控制器11配置第二校验电路13为工作状态。
以SRAM为例,其存储单元的构成为6个晶体管,那么晶体管的退化程度参数可以作为存储器的退化程度参数,退化检测电路可以用于检测晶体管的退化程度参数,
示例性的,参阅图10,退化检测电路包括第一晶体管Q1、第二晶体管Q2、第一模数转换电路、第二模数转换电路以及比较电路。第一晶体管Q1的第一端、第二晶体管Q2的第一端连接电源,第一晶体管Q1的第二端与第一模数转换电路的输入端连接;利用第一模数转换电路将第一晶体管Q1第二端的电压转换成数字信号,第二晶体管Q2的第二端与第二模数转换电路的输入端连接,利用第二模数转换电路将第二晶体管Q2第二端的电压转换成数字信号。设置退化检测电路用于检测晶体管的退化程度参数,对于晶体管而言,发生性能退化之后,其输出的电压会发生变化,本申请实施例设置第一晶体管Q1与第二晶体管Q2作为参考晶体管,其中一个晶体管一直处于工作状态,会随着电路生命周期加长出现退化,另一个晶体管一直处于非工作状态,不会随着电路生命周期加长出现退化,向将第一晶体管Q1的控制端施加信号,使第一晶体管Q1维持在导通状态、向第二晶体管Q2的控制端施加信号,第二晶体管Q2维持在截止状态。这样将二者的输出电压的差值作为退化程度参数,可以用于指示晶体管的退化程度。
比较电路与第一模数转换电路的输出端、第二模数转换电路的输出端连接,比较电路还与控制器11连接,对第一模数转换电路输出的数字信号以及第二模数转换电路输出的数字信号求取差值,将差值作为退化程度参数发送至控制器11。
控制器11确定退化程度参数是否满足预设条件,在满足预设条件的情况下,控制第二校验电路13工作,例如,当退化程度参数大于阈值时,控制器11用于配置第二校验电路13为工作状态。
在另一种实现方式中,退化检测电路还可以将退化程度参数发送至寄存器,由寄存器存储该退化程度参数,控制器11周期性的访问寄存器,以获得该退化程度参数。
上述实施方式中,以SRAM的退化检测电路进行了举例说明,SRAM的存储介质为晶体管,因此可以利用上述的退化检测电路生成退化程度参数,对于其他类型的存储器而言,可以将退化检测电路做相应的调整,例如,还可以利用传感器对其进行退化检测,例如还可以对电容进行退化检测,或者还可以对其他的存储介质进行退化检测。
此外,除了在满足上述的错误检查、退化程度、健康状态条件之外,本申请的实施例提供的多级存储器系统还可以依据用户的校验指令启动校验。
示例性的,上述满足预设条件还包括接收用户的校验指令,控制器11具体被配置为获得用户的校验指令时配置第二校验电路13为工作状态。
上述的校验指令,可以是用户通过输入输出设备向控制器11发送的校验指令,当然还可以是预先配置在寄存器中的校验指令,例如,参阅图11,多级存储器系统包括寄存器,寄存器被配置为获取用户的校验指令;控制器11具体被配置为周期性的读取寄存器,以获得校验指令。上述的校验指令可以包括启动校验的时间、启动校验的第二校验电路13的标识,或者还可以包括启动校验的其他条件等等。
在一些可能的实现方式中,除末级存储器之外的每一个存储器对应设置一个第二校验电路13,控制器11可以建立IO端口-第二校验电路13的标识-存储器的对应关系,这样在校验指令中包括启动校验的第二校验电路13的标识时,控制器11可以依据第二校验电路13的标识配置与之匹配的第二校验电路13的工作状态。
此外,校验指令还可以包括与不同的运行参数对应的健康阈值,退化程度参数的阈值等等,也即是说,用户还可以通过校验指令对第二校验电路13的启动条件进行配置。
为了降低多级存储器系统的校验能耗,其中第一校验电路12可以为错误检查电路,对末级存储器存储的数据进行错误检查,当然,第一校验电路12还可以为错误检查与纠正电路,除检查错误之外,还可以对检查的错误进行纠正。第二校验电路13采用错误检查电路,只进行检错,不进行纠错,并根据预设的条件配置工作状态,以此来降低多级存储器系统的校验功耗。
此外,上述的第一校验电路12、第二校验电路13可以采用ECC校验电路、奇偶校验电路或者CRC校验电路,或者还可以是其他的校验电路。
前述实施方式中,以数据在多级存储中未进行修改为例,对多级存储器系统的校验进行了说明,在一些其他可能的实现方式中,若数据在多级存储中存在被修改的情况,若被修改的数据占比较小,那么可以通过将被修改的数据与未被修改的数据分开进行校验的方式,其中,未被修改的数据按照本申请前述实施例提供的几种情况配置其对应的校验电路的工作状态,以此来降低系统整体的功耗。
例如,如图12所示,图12示出了一个中间级的存储器的校验示意图,数据在存储至该存储器时,部分数据发生了修改,这样在对这一级的存储器进行数据校验时,可以将修改的数据和未被修改的数据分开进行错误检查。其中,未修改的数据利用第二校验电路13进行错误检查,利用控制器11按照预设的条件对第二校验电路13的工作状态进行配置,这样依然可以降低整体的功耗。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种多级存储器系统,其特征在于,所述多级存储器系统包括控制器、多个校验电路以及多级存储器;
多个所述校验电路包括第一校验电路以及至少一个第二校验电路;
所述第一校验电路被配置为对多级所述存储器中处于末级的存储器存储的数据进行错误检查;
所述第二校验电路被配置为:在工作状态时,对多级所述存储器中,除末级的所述存储器之外的一个或多个存储器存储的数据进行错误检查;
所述控制器用于配置所述第二校验电路的状态,所述状态包括非工作状态和所述工作状态。
2.根据权利要求1所述的多级存储器系统,其特征在于,所述控制器被配置为在确定满足所述预设条件时配置所述第二校验电路为工作状态;所述控制器还被配置为在确定不满足所述预设条件时配置所述第二校验电路为非工作状态。
3.根据权利要求2所述的多级存储器系统,其特征在于,所述满足预设条件包括所述第一校验电路检查到末级的所述存储器存储的所述数据发生错误;
所述控制器具体被配置为当所述第一校验电路检查到末级的所述存储器存储的所述数据发生错误时,配置所述第二校验电路为工作状态;
所述控制器具体被配置为当所述第一校验电路未检查到末级的所述存储器存储的所述数据发生错误时,配置所述第二校验电路为非工作状态。
4.根据权利要求2所述的多级存储器系统,其特征在于,所述满足预设条件包括所述存储器的退化程参数大于阈值;
所述多级存储器系统包括退化检测电路,所述退化检测电路包括用于检测所述存储器的退化程度的元器件,所述退化检测电路被配置为生成所述存储器的退化程度参数,所述退化程度参数用于指示所述存储器的退化程度;
所述退化检测电路与所述控制器连接,所述控制器具体被配置为获得所述存储器的退化程度参数,当所述退化程度参数大于阈值时,所述控制器配置所述第二校验电路为工作状态;当所述退化程度参数小于或等于所述阈值时,所述控制器配置所述第二校验电路为非工作状态。
5.根据权利要求4所述的多级存储器系统,其特征在于,所述元器件包括第一晶体管、第二晶体管、第一模数转换电路、第二模数转换电路以及比较电路;
所述第一晶体管的第一端连接电源,所述第一晶体管的第二端与所述第一模数转换电路的输入端连接;所述第二晶体管的第一端连接电源,所述第二晶体管的第二端与所述第二模数转换电路的输入端连接;其中所述第一晶体管处于导通状态,所述第二晶体管处于截止状态;
所述比较电路与所述第一模数转换电路的输出端、所述第二模数转换电路的输出端连接,所述比较电路还与所述控制器连接,所述比较电路用于对所述第一模数转换电路输出的信号、所述第二模数转换电路输出的信号求取差值得到所述退化程度参数。
6.根据权利要求2所述的多级存储器系统,其特征在于,所述满足预设条件包括接收用户的校验指令,所述控制器被配置为接收到用户的所述校验指令时配置所述第二校验电路为工作状态;所述控制器还被配置为未接收到所述校验指令时配置所述第二校验电路为非工作状态。
7.根据权利要求6所述的多级存储器系统,其特征在于,所述多级存储器系统包括寄存器,所述寄存器被配置为获取用户的所述校验指令;
所述控制器具体被配置为周期性的读取所述寄存器,以获得所述校验指令。
8.根据权利要求2所述的多级存储器系统,其特征在于,所述满足预设条件包括存储器的运行参数中的任意一项达到所述运行参数对应的健康阈值;
所述控制器具体被配置为获得所述存储器的运行参数,当所述存储器的运行参数中的任意一项达到所述运行参数对应的健康阈值时,所述控制器配置所述第二校验电路为工作状态;当所述存储器的所有运行参数均未达到对应的所述健康阈值时,所述控制器配置所述第二校验电路为非工作状态。
9.根据权利要求8所述的多级存储器系统,其特征在于,所述运行参数包括温度、电压、电流、湿度与压力。
10.根据权利要求1~8任意一项所述的多级存储器系统,其特征在于,所述第一校验电路包括错误检查电路或者错误检查与纠正电路;所述第二校验电路包括错误检查电路。
11.根据权利要求1所述的多级存储器系统,其特征在于,不同的所述存储器存储有相同的数据,多个所述校验电路被配置为对相同的所述数据进行错误检查。
CN202210547198.XA 2022-05-19 2022-05-19 一种多级存储器系统 Pending CN117133347A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210547198.XA CN117133347A (zh) 2022-05-19 2022-05-19 一种多级存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210547198.XA CN117133347A (zh) 2022-05-19 2022-05-19 一种多级存储器系统

Publications (1)

Publication Number Publication Date
CN117133347A true CN117133347A (zh) 2023-11-28

Family

ID=88855099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210547198.XA Pending CN117133347A (zh) 2022-05-19 2022-05-19 一种多级存储器系统

Country Status (1)

Country Link
CN (1) CN117133347A (zh)

Similar Documents

Publication Publication Date Title
US6700827B2 (en) Cam circuit with error correction
US10567001B2 (en) Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding
US8560931B2 (en) Low power retention random access memory with error correction on wake-up
US7107508B2 (en) Manufacturing test for a fault tolerant magnetoresistive solid-state storage device
JP2003115197A (ja) 固体記憶装置における誤り訂正符号化および復号化
US20080184065A1 (en) Methods and apparatus for employing redundant arrays to configure non-volatile memory
US10885972B2 (en) SRAM with error correction in retention mode
US11599417B2 (en) Error correction system
US10191801B2 (en) Error correction code management of write-once memory codes
JP3184738B2 (ja) エラー訂正可能なメモリ・デバイス
US7231582B2 (en) Method and system to encode and decode wide data words
US11010243B2 (en) Memory apparatus with error bit correction in data reading period
CN114765050A (zh) 检测错误位的存储器装置及其方法
JPH0745096A (ja) ビットエラー訂正機能付き半導体メモリ
Nguyen On the design of 7/9-rate sparse code for spin-torque transfer magnetic random access memory
US20030172339A1 (en) Method for error correction decoding in a magnetoresistive solid-state storage device
TW201740388A (zh) 在數據儲存裝置中的選擇性錯誤更正
Das et al. Online correction of hard errors and soft errors via one-step decodable OLS codes for emerging last level caches
CN117133347A (zh) 一种多级存储器系统
Polianskikh et al. Design and implementation of error detection and correction circuitry for multilevel memory protection
US10795767B2 (en) Error correcting system shared by multiple memory devices
CN114121085A (zh) 存储装置、数据校验方法以及装置、存储介质
CN115938436A (zh) 一种存储电路以及存储阵列
CN118351923A (zh) 存储器及其测试方法、存储器系统
CN114765055A (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