CN108182125A - 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 - Google Patents
近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 Download PDFInfo
- Publication number
- CN108182125A CN108182125A CN201711446938.6A CN201711446938A CN108182125A CN 108182125 A CN108182125 A CN 108182125A CN 201711446938 A CN201711446938 A CN 201711446938A CN 108182125 A CN108182125 A CN 108182125A
- Authority
- CN
- China
- Prior art keywords
- cache
- sub
- data
- block
- ecc
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种近阈值电压下高速缓存多位硬错误的检测及容错装置与方法,检测及容错装置包括Cache数据存储器、Cache标记存储器、BIST电路、ECC存储器、纠错编码器、纠错解码器、错误映射存储器、压缩映射存储器、空子块探测器、子块压缩器和子块解压器,依据所选用的Cache管理策略,使用单错校正双错检测(SECDED)的ECC纠错码和空子块数据压缩方法对Cache数据存储器中出现的多位硬错误进行检测与容错。本发明实现的微处理器,在微处理器中能够检测高速缓存存储器中由于工艺参数波动等原因导致的多位硬错误并进行容错,可以提高微处理器在使用近阈值电压技术的低功耗环境下的可靠性。
Description
技术领域
本发明涉及一种微处理器高速缓存数据错误的检测及容错装置,尤其涉及一种近阈值电压下微处理器高速缓存多位硬错误的检测与容错装置。本发明还涉及一种近阈值电压下微处理器高速缓存数据错误的检测及容错方法。
背景技术
随着半导体工艺的提高,芯片上可集成更多的晶体管,按照摩尔定律其数量每18个月翻一番。因此,一块芯片理论上能够集成更多的晶体管电路。但是,能量和功耗限制很大程度上阻碍了更多晶体管的正常使用,导致芯片性能难以继续提升。近阈值电压技术将电源电压降低到晶体管阈值电压附近,大幅降低功耗和提高能效,使芯片性能不再受到散热能力的约束,进一步提升了芯片性能。
目前,由于工艺参数波动等原因,近阈值电压技术的应用仍然面临诸多障碍,如性能损失、性能波动和功能故障等。电源电压降低会加剧工艺参数变化,引起晶体管间失配,从而导致大量SRAM单元出现功能故障。这类故障被称为永久性故障,也称为硬错误,是在给定电压下产生的不可恢复故障,具体表现为在存取存储器某些位置中的数据时反复出现错误,可以通过内建自测试程序(build-in self test,BIST)检测确定。在高速缓存等大规模SRAM电路中,SRAM单元功能故障将使对应的位单元不能正确存取数据,大量位单元失效会导致程序出错,甚至系统崩溃。
近年来,近阈值电压下Cache的可靠性问题受到广泛关注。Intel的Chishti等人设计基于拉丁正交方码(OLSC)的MS-ECC策略,占用一半的Cache way存储另一半的校验信息,以保护存储在缓存行中的数据。Intel的Alameldeen等人提出VS-ECC策略,对所有缓存行使用单错校正双错检测(SECDED)技术,同时对部分拥有多比特错误的缓存行使用4EC5ED技术。浙江大学的赵彩等人改进VS-ECC策略,以更低的面积开销实现更高的可靠性和性能,在较低的位错误率下拥有较好效果。康涅狄格大学的Hijaz等人使用简单的纠错码保护缓存行,将无法使用纠错码纠正的缓存行置为失效,使Cache拥有较低的延迟代价,但会造成较大的容量降低。以上策略都是通过纠错码技术,以一定的延迟代价换取较高的可靠性。
伊利诺伊大学香槟分校的Duwe等人将缓存条目中的比特位重映射排列,在保证较好的可靠性的前提下,可使用较简单的纠错码技术进行纠错,但该方法需要较大的面积开销。首都师范大学的王晶等人基于skewed-associative cache结构,牺牲部分Cache Sets,将有错误的缓存条目映射到无错的条目。萨拉戈萨大学的Ferrerón等人提出一种压缩机制Concertina,该机制将数据中的空子块压缩,将非空子块映射到缓存条目内无错误的位置,避免Cache功能故障,较大程度利用了Cache无错部分的容量。这些策略通过使用映射方式保证了一定的可靠性,不过对于Cache的容量有较大的妥协,并且只有在较低的位错误率情况下才能拥有较好的效果。
由于计算机的存储结构天然存在数据冗余,中科院计算所的王颖等人和高丽大学的Jung等人利用数据冗余分别实现了多块具有不同可靠性的Cache区域,将修改过和未修改过的数据分别存入高可靠和低可靠Cache区域中。若存储在低可靠Cache区域中的数据出现错误,则从下一级存储或同级其它位置的Cache中获取正确数据,从而保证可靠性。这类方法能够较好地保证数据可靠性,不过其在性能和功耗方面做了许多牺牲。
此外,还有学者开展了电路级近阈值电压下的Cache可靠性研究。例如弗吉尼亚大学的Calhoun等人提出了近阈值电压下高可靠的10T-STAM结构设计,上海交通大学的杨堃提出了7T-SRAM结构设计在保证低功耗前提下提高可靠性和性能,宁波大学的齐蓓蓓基于绝热电路提出了更低功耗的SRAM结构和外围电路设计,哈尔滨工业大学的于雨情等人提出了8T-SRAM结构设计提高了SRAM的稳定性并降低了读功耗。这些SRAM结构都在不同程度上提高了近阈值电压下位单元可靠性,不过同时都会带来较大的面积开销和延迟增加。
综合所有现有的技术方案,对于缓存条目中超过4位硬错误的多位硬错误缺乏高效可靠的容错方案。
发明内容
本发明的目的在于设计一种近阈值电压下高速缓存多位硬错误的检测及容错装置与方法,能够对近阈值电压下工艺参数波动等原因导致的多位硬错误进行检测与容错。
一种近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于:包括
高速缓存存储器:包括Cache数据存储器和Cache标记存储器,用于存储Cache数据以及Cache标记数据;
BIST电路:用于检测高速缓存和所述装置的存储器中存在的硬错误的位置,并将检测得到的结果存入ECC存储器和错误映射存储器中;
数据纠正模块:用于纠正Cache数据存储器中存在的位错误,提高Cache的可用容量;
数据压缩模块:用于检测和压缩写入Cache的数据块,将压缩后的数据块重新映射到Cache数据存储器中由纠正模块保护的缓存条目(Cache Entry)内。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,所述数据纠正模块包括:
ECC存储器:包括有效状态位(Valid Bits)和多个纠错单元(ECC Unit),ValidBits用于标记每个Unit是否没有硬错误存在,每个ECC Unit用于存储这个Unit使用状态、ECC纠正的缓存子条目位置索引和校验码;
纠错编码器:用于在进行Cache写访问时,将写入Cache的数据块划分成多个数据子块,并对每个数据子块进行ECC编码,生成校验码,最后将所有子块校验码传入ECC存储器;
纠错解码器:用于在进行Cache读访问时,对从高速缓存存储器输出的数据和ECC存储器输出的数据子块校验码进行校验,生成校验错误信息,将错误信息表示的错误位位置的值进行翻转纠正,输出至子块压缩器。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,所述纠错编码器在进行Cache写访问时,将写入Cache的数据块划分成多个数据子块,对每个数据子块使用单错校正双错检测(SECDED)的ECC纠错码技术进行ECC编码,生成校验码,将所有子块校验码传入ECC存储器;数据块划分的数据子块数量由所选择的压缩粒度大小决定。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,所述ECC存储器包括有效状态位(Valid Bits)和多个纠错单元(ECC Unit),Valid Bits用于标记每个Unit是否没有硬错误存在,每个ECCUnit用于存储这个Unit使用状态、ECC纠正的缓存子条目位置索引和校验码。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,所述纠错解码器在进行Cache读访问时,对从高速缓存存储器输出的数据和ECC存储器输出的数据子块校验码进行校验,生成校验错误信息,将错误信息表示的错误位位置的值进行翻转纠正,输出至子块压缩器。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,所述数据压缩模块包括:
错误映射存储器:用于存储高速缓存内每条缓存条目(Cache Entry)中可正确存储数据的缓存子条目位置信息;
压缩映射存储器:用于存储每个数据块的空子块信息;
空子块探测器:用于检测写入高速缓存的数据块中各数据位都为0的空子块的位置,生成表示空子块信息的二进制串,结果写入压缩映射存储器并输出至子块压缩器;
子块压缩器:根据空子块探测器输出的空子块信息和错误映射存储器输出的子条目位置信息进行子块压缩,将输入数据块的非空子块映射到缓存条目中可正确存储数据的缓存子条目中;
子块解压器:根据压缩映射存储器输出的空子块信息和错误映射存储器输出的缓存子条目位置信息进行子块解压,将纠错解码器输出的数据映射回压缩前的各数据子块所在的位置,被压缩的数据子块以0填充,生成的完整数据块传输给处理器。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,缓存条目划分的缓存子条目数量由所选择的压缩粒度大小决定;所述可正确存储数据的缓存子条目包含不存在硬错误的子条目和能够被ECC纠错码纠正的缓存子条目。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错装置,所述Cache标记存储器使用可在近阈值电压下正常工作的可靠的SRAM电路作为存储单元,所述的Cache数据存储器、ECC存储器、压缩映射存储器和错误映射存储器使用6T SRAM电路作为存储单元。
一种近阈值电压下高速缓存多位硬错误的检测及容错方法,采用如下步骤与方法对Cache中的数据进行硬错误检测和处理:
步骤1、初始化错误映射存储器,检测高速缓存存储器中每一缓存条目,如果存在缓存子条目包含硬错误位,错误映射存储器中该子条目对应的状态位置为False,没有硬错误的缓存子条目置为True;
步骤2、初始化ECC存储器,将ECC存储器中所有数据位都写入0,对ECC存储器中每一条目进行检测,存在硬错误的条目更新对应位错误信息为无效;
步骤3、检测高速缓存中各缓存子条目存在的硬错误数量,能够被ECC纠错码纠正的缓存子条目索引存储到ECC存储器未使用的ECC Unit中,检测缓存条目中每一个缓存子条目,直到所有缓存子条目都已检测或ECC存储器中所有ECC Unit都已使用;
步骤4、更新错误映射存储器,检测缓存条目中每个有错的缓存子条目是否被ECC纠错码纠正,若缓存子条目索引已存储在ECC存储器中,置对应缓存子条目状态位为False;
步骤5、在运行过程中进行写访问时,空子块探测器对传入的数据块进行分析,确定其中空子块的位置,生成表示空子块信息的二进制串,将结果输出到压缩映射存储器和子块压缩器;按照Cache管理策略选择可存储数据的缓存条目;子块压缩器结合空子块信息和所选中缓存条目的缓存子条目位置信息对数据块进行压缩,将非空的子块重新映射到缓存条目中可正确存储数据的缓存子条目;纠错编码器依据提出的保护策略对压缩后的数据使用ECC纠错码技术进行编码,生成对应的校验信息存入ECC存储器对应的ECC Unit中,数据存储到对应的缓存条目中;
步骤6、在进行读访问时,高速缓存通过标签信息确定对应数据所在的缓存条目,将对应的数据和ECC校验信息读出;纠错解码器对缓存条目中的数据正确性进行校验,如果数据有错误则进行纠正,输出给子块压缩器,如果数据正确,直接输出给子块解压器;子块解压器通过对应缓存条目的缓存子条目位置信息和空子块信息对数据进行解压,被压缩的缓存子条目位置以0填充,将补全的数据块传输给处理器。
在上述的近阈值电压下高速缓存多位硬错误的检测及容错方法,所述Cache管理策略选择使用二路组相联、四路组相联、八路组相联或更多的多路组相联映射;所述Cache管理策略选择缓存条目时,选出可正确存储数据的缓存条目集合,按照最近最少使用方法选出可存放数据的缓存条目;所述可正确存储数据的缓存条目集合中每一缓存条目包含的可正确存储数据的缓存子条目数量大于等于传入数据的非空子块数量,如果可正确存储数据的缓存条目集合为空,传入数据不存储在高速缓存中,直接写回到下一级高速缓存或内存中。
本发明实现的微处理器,在微处理器中能够检测高速缓存存储器中由于工艺参数波动等原因导致的多位硬错误并进行容错,可以提高微处理器在使用近阈值电压技术的低功耗环境下的可靠性。
附图说明
图1是根据本发明的近阈值电压下高速缓存多位硬错误的检测及容错装置结构图。
图2是根据本发明的近阈值电压下高速缓存多位硬错误的检测及容错装置进行数据块压缩映射到有错缓存条目的过程。
图3是根据本发明的近阈值电压下高速缓存多位硬错误的检测及容错装置设计的ECC存储器结构。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的说明。
附图1是根据本发明的近阈值电压下高速缓存多位硬错误的检测及容错装置结构图。整个装置由高速缓存存储器、BIST电路、数据压缩模块和数据纠正模块四部分组成。其中,BIST电路用于检测高速缓存和所述装置的存储器中存在的硬错误的位置,高速缓存存储器由Cache数据存储器和Cache标记存储器组成,数据纠正模块包括ECC存储器、纠错编码器和纠错解码器,数据压缩模块包括错误映射存储器、压缩映射存储器、空子块探测器、子块压缩器和子块解压器。
图中粗线部分表示高速缓存访存过程的关键路径,即访存过程中最大必要延迟,该路径上的延迟增加会导致访存延迟增加。于是,图中的子块压缩/解压器和纠错编/解码器分别在访存的读写操作时造成额外的延迟开销。
在运行过程中进行写访问时,即有数据要存入末级缓存时,如图1左侧的关键路径所示,整个过程分为以下四步:
(1)空子块探测器对传入的数据块进行分析,确定其中空子块的位置,生成表示空子块信息的二进制串,将结果输出到压缩映射存储器和子块压缩器。
(2)按照选定的Cache管理策略,Cache标记存储器结合空子块信息选择可存储数据的缓存条目,从错误映射存储器中输出对应缓存条目的缓存子条目信息。
(3)子块压缩器结合空子块信息和从错误映射存储器输出的缓存子条目位置信息对数据块进行压缩,将非空的子块重新映射到缓存条目中可正确存储数据的缓存子条目。
(4)纠错编码器依据提出的保护策略对压缩后的数据使用ECC纠错码技术进行编码,生成对应的校验信息存入ECC阵列中,数据存储到对应的缓存条目中。
在进行读访问时,处理过程按如下步骤进行:
(1)高速缓存通过标记信息确定对应数据所在的缓存条目,将对应的数据和ECC校验信息读出。
(2)纠错解码器对缓存条目中的数据正确性进行校验,如果数据有错误则进行纠正,输出给子块压缩器,如果数据正确,直接输出给子块解压器。
(3)子块解压器通过对应缓存条目的缓存子条目位置信息和空子块信息对数据进行解压,被压缩的缓存子条目位置以0填充,将补全的数据块传输给处理器。
实现数据压缩模块和数据纠正模块之前需要先对传入高速缓存的数据块和末级缓存中的缓存条目进行划分,本发明选取一定的数据大小粒度将数据块均匀地划分为多个压缩子块,使其可以任意填入按同样粒度划分的缓存子条目中。本发明的具体实现可选取但不限于1字节、2字节和4字节大小作为划分的粒度,本实施例选取4字节粒度。
错误映射存储器用于存储高速缓存内每条缓存条目中可正确存储数据的缓存子条目位置信息,压缩映射存储器存储每个数据块的空子块信息。错误映射存储器和压缩映射存储器内的条目按照组相联映射方式排列,与缓存条目的位置一一对应。两个存储器都使用一个二进制位表示按一定粒度划分的子块的状态。压缩映射存储器中的每一位表示其对应的数据子块是否可压缩,若数据子块是非空子块则以1填充对应二进制位。错误映射存储器中的每一位都用来表示缓存条目中一个子条目内是否可正确存储数据,可正确存储数据的缓存子条目对应状态位以1填充。本实施例选取4字节粒度,由于高速缓存中存储的数据块大小为64字节,错误映射存储器和压缩映射存储器中每个条目都是长度为16位的二进制串。
数据块到缓存条目的映射关系如附图2所示。压缩映射条目的16位二进制数表示对应的16个数据子块是否为非空数据,图中子母A~I表示数据块中非空的数据子块。错误映射条目同样是16位二进制串,每一位代表缓存条目中每一子条目是否能够正确存储数据子块。数据块通过子块压缩器将非空的数据子块都映射到错误映射条目中值为1的二进制状态位所对应的子条目中,映射后的数据将输出到数据压缩器中作进一步的处理。
在缓存条目中,并不是所有的子条目都存在错误,只有一部分的子条目中存在一个甚至更多的错误单元,因此,本发明使用部分保护策略来保护有错的子条目。对于拥有M个子条目的缓存条目,本发明使用纠错码保护其中k(k<M)个子条目,当子条目保护数k增加时,可以保护并纠正的子条目的数量也随之增加。例如,一个64字节的缓存条目有16个子条目,本实施例选取k=4,那么对应的ECC存储器如图3所示。Valid bits表示用于保护的4个ECC Units中所有的位是否是能正确保存数据。每个ECC Unit由ECC Flag、Location field和ECC bits构成。ECC Flag表示ECC Unit是否已使用并保存数据,Location field表示保护的子条目在缓存条目中的位置,16个子条目的位置索引可以由4个二进制位表示,ECCbits表示纠错码的校验信息,其长度与纠错码保护的子条目大小有关,在基于BCH码的SECDED纠错码技术下,4字节粒度的子条目需要7个二进制位保存相应的校验信息。因此,子条目保护数k=4的ECC存储器需要每个缓存条目使用52个二进制位,若Cache需要纠正k个子条目,则每个缓存条目总计需要13k二进制位保存信息。
近阈值电压下高速缓存多位硬错误的检测及容错装置采用如下步骤与方法对Cache中的数据进行硬错误检测和处理:
(1)初始化错误映射存储器,检测高速缓存存储器中每一缓存条目,如果存在缓存子条目包含硬错误位,错误映射存储器中该子条目对应的状态位置为False,没有硬错误的缓存子条目置为True;
(2)初始化ECC存储器,将ECC存储器中所有数据位都写入0,对ECC存储器中每一条目进行检测,更新存在硬错误的条目对应状态位错误信息为无效;
(3)检测高速缓存中各缓存子条目存在的硬错误数量,能够被ECC纠错码纠正的缓存子条目索引存储到ECC存储器未使用的ECC Unit中,检测缓存条目中每一个缓存子条目,直到所有缓存子条目都已检测或ECC存储器中所有ECC Unit都已使用;
(4)更新错误映射存储器,检测缓存条目中每个有错的缓存子条目是否被ECC纠错码纠正,若缓存子条目索引已存储在ECC存储器中,置对应缓存子条目状态位为False;
传统的Cache中使用的替换策略通常是LRU,但是这种替换策略需要基于一个假设,即存入缓存中的数据长度与缓存条目的长度一致。然而,本发明所采取的空子块数据压缩方法会将传入的数据压缩为一个大小不定的数据块,而同一Cache Set中各缓存条目中可容纳的数据大小也不一致,于是LRU策略的使用将产生大量数据大小和缓存条目容量不匹配的问题。
为了解决该问题,本发明采用一种基于LRU改进的管理策略。该策略在选择缓存条目时,会结合每个缓存条目中有错的子条目数量和传入的数据中空子块的数量进行判断。先找出能够容纳所传入数据的缓存条目,然后从这些符合条件的条目中选出LRU的条目作为最终选择的缓存条目。
在这个过程中,很有可能出现一种情况:传入数据对应的Cache Set中没有能够容纳该数据块的缓存条目。这种情况下,数据无法在高速缓存存储器中正确保存,Cache便直接对该数据块进行写回处理,保存到下一级高速缓存或者内存中,以保证数据的可靠性。
本发明实现的近阈值电压下微处理器高速缓存多位硬错误的检测及容错装置与方法,利用SECDED纠错码技术和空子块数据压缩方法,解决了微处理器高速缓存多位硬错误的检测及容错问题,可以提高微处理器在近阈值电压下或者更低电压下的可靠性。
在不脱离本发明精神的范围内,本发明可以具有多种变形,如:Cache容量变化、压缩粒度大小变化、Cache管理策略的映射规则变化、最优保护数k的变化等,军可在不同的实施中改变。这些变形也包含在本发明所要求保护的范围之内。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (10)
1.一种近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,包括
高速缓存存储器:包括Cache数据存储器和Cache标记存储器,用于存储Cache数据以及Cache标记数据;
BIST电路:用于检测高速缓存和所述装置的存储器中存在的硬错误的位置,并将检测得到的结果存入ECC存储器和错误映射存储器中;
数据纠正模块:用于纠正Cache数据存储器中存在的位错误,提高Cache的可用容量;
数据压缩模块:用于检测和压缩写入Cache的数据块,将压缩后的数据块重新映射到Cache数据存储器中由纠正模块保护的缓存条目(Cache Entry)内。
2.根据权利要求1所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,所述数据纠正模块包括:
ECC存储器:包括有效状态位(Valid Bits)和多个纠错单元(ECC Unit),Valid Bits用于标记每个Unit是否没有硬错误存在,每个ECC Unit用于存储这个Unit使用状态、ECC纠正的缓存子条目位置索引和校验码;
纠错编码器:用于在进行Cache写访问时,将写入Cache的数据块划分成多个数据子块,并对每个数据子块进行ECC编码,生成校验码,最后将所有子块校验码传入ECC存储器;
纠错解码器:用于在进行Cache读访问时,对从高速缓存存储器输出的数据和ECC存储器输出的数据子块校验码进行校验,生成校验错误信息,将错误信息表示的错误位位置的值进行翻转纠正,输出至子块压缩器。
3.根据权利要求2所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,所述纠错编码器在进行Cache写访问时,将写入Cache的数据块划分成多个数据子块,对每个数据子块使用单错校正双错检测(SECDED)的ECC纠错码技术进行ECC编码,生成校验码,将所有子块校验码传入ECC存储器;数据块划分的数据子块数量由所选择的压缩粒度大小决定。
4.根据权利要求2所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,所述ECC存储器包括有效状态位(Valid Bits)和多个纠错单元(ECC Unit),ValidBits用于标记每个Unit是否没有硬错误存在,每个ECC Unit用于存储这个Unit使用状态、ECC纠正的缓存子条目位置索引和校验码。
5.根据权利要求2所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,所述纠错解码器在进行Cache读访问时,对从高速缓存存储器输出的数据和ECC存储器输出的数据子块校验码进行校验,生成校验错误信息,将错误信息表示的错误位位置的值进行翻转纠正,输出至子块压缩器。
6.根据权利要求1所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,所述数据压缩模块包括:
错误映射存储器:用于存储高速缓存内每条缓存条目(Cache Entry)中可正确存储数据的缓存子条目位置信息;
压缩映射存储器:用于存储每个数据块的空子块信息;
空子块探测器:用于检测写入高速缓存的数据块中各数据位都为0的空子块的位置,生成表示空子块信息的二进制串,结果写入压缩映射存储器并输出至子块压缩器;
子块压缩器:根据空子块探测器输出的空子块信息和错误映射存储器输出的子条目位置信息进行子块压缩,将输入数据块的非空子块映射到缓存条目中可正确存储数据的缓存子条目中;
子块解压器:根据压缩映射存储器输出的空子块信息和错误映射存储器输出的缓存子条目位置信息进行子块解压,将纠错解码器输出的数据映射回压缩前的各数据子块所在的位置,被压缩的数据子块以0填充,生成的完整数据块传输给处理器。
7.根据权利要求6所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,缓存条目划分的缓存子条目数量由所选择的压缩粒度大小决定;所述可正确存储数据的缓存子条目包含不存在硬错误的子条目和能够被ECC纠错码纠正的缓存子条目。
8.根据权利要求2或5或7所述的近阈值电压下高速缓存多位硬错误的检测及容错装置,其特征在于,所述Cache标记存储器使用可在近阈值电压下正常工作的可靠的SRAM电路作为存储单元,所述的Cache数据存储器、ECC存储器、压缩映射存储器和错误映射存储器使用6T SRAM电路作为存储单元。
9.一种近阈值电压下高速缓存多位硬错误的检测及容错方法,其特征在于,采用如下步骤与方法对Cache中的数据进行硬错误检测和处理:
步骤1、初始化错误映射存储器,检测高速缓存存储器中每一缓存条目,如果存在缓存子条目包含硬错误位,错误映射存储器中该子条目对应的状态位置为False,没有硬错误的缓存子条目置为True;
步骤2、初始化ECC存储器,将ECC存储器中所有数据位都写入0,对ECC存储器中每一条目进行检测,存在硬错误的条目更新对应位错误信息为无效;
步骤3、检测高速缓存中各缓存子条目存在的硬错误数量,能够被ECC纠错码纠正的缓存子条目索引存储到ECC存储器未使用的ECC Unit中,检测缓存条目中每一个缓存子条目,直到所有缓存子条目都已检测或ECC存储器中所有ECC Unit都已使用;
步骤4、更新错误映射存储器,检测缓存条目中每个有错的缓存子条目是否被ECC纠错码纠正,若缓存子条目索引已存储在ECC存储器中,置对应缓存子条目状态位为False;
步骤5、在运行过程中进行写访问时,空子块探测器对传入的数据块进行分析,确定其中空子块的位置,生成表示空子块信息的二进制串,将结果输出到压缩映射存储器和子块压缩器;按照Cache管理策略选择可存储数据的缓存条目;子块压缩器结合空子块信息和所选中缓存条目的缓存子条目位置信息对数据块进行压缩,将非空的子块重新映射到缓存条目中可正确存储数据的缓存子条目;纠错编码器依据提出的保护策略对压缩后的数据使用ECC纠错码技术进行编码,生成对应的校验信息存入ECC存储器对应的ECC Unit中,数据存储到对应的缓存条目中;
步骤6、在进行读访问时,高速缓存通过标签信息确定对应数据所在的缓存条目,将对应的数据和ECC校验信息读出;纠错解码器对缓存条目中的数据正确性进行校验,如果数据有错误则进行纠正,输出给子块压缩器,如果数据正确,直接输出给子块解压器;子块解压器通过对应缓存条目的缓存子条目位置信息和空子块信息对数据进行解压,被压缩的缓存子条目位置以0填充,将补全的数据块传输给处理器。
10.根据权利要求9所述的近阈值电压下高速缓存多位硬错误的检测及容错方法,其特征在于,所述Cache管理策略选择使用二路组相联、四路组相联、八路组相联或更多的多路组相联映射;所述Cache管理策略选择缓存条目时,选出可正确存储数据的缓存条目集合,按照最近最少使用方法选出可存放数据的缓存条目;所述可正确存储数据的缓存条目集合中每一缓存条目包含的可正确存储数据的缓存子条目数量大于等于传入数据的非空子块数量,如果可正确存储数据的缓存条目集合为空,传入数据不存储在高速缓存中,直接写回到下一级高速缓存或内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711446938.6A CN108182125B (zh) | 2017-12-27 | 2017-12-27 | 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711446938.6A CN108182125B (zh) | 2017-12-27 | 2017-12-27 | 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108182125A true CN108182125A (zh) | 2018-06-19 |
CN108182125B CN108182125B (zh) | 2021-05-18 |
Family
ID=62547865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711446938.6A Active CN108182125B (zh) | 2017-12-27 | 2017-12-27 | 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108182125B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110289040A (zh) * | 2019-06-25 | 2019-09-27 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测方法 |
CN110289041A (zh) * | 2019-06-25 | 2019-09-27 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测装置 |
TWI677876B (zh) * | 2018-10-12 | 2019-11-21 | 慧榮科技股份有限公司 | 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法 |
CN111221775A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 处理器、缓存处理方法及电子设备 |
TWI697906B (zh) * | 2018-10-12 | 2020-07-01 | 慧榮科技股份有限公司 | 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法 |
CN113360314A (zh) * | 2020-03-02 | 2021-09-07 | 芯原微电子(成都)有限公司 | 数据的处理方法、系统、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129873A (zh) * | 2011-03-29 | 2011-07-20 | 西安交通大学 | 提高计算机末级高速缓存可靠性的数据压缩装置及其方法 |
US20130173956A1 (en) * | 2011-12-30 | 2013-07-04 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
CN105022675A (zh) * | 2015-08-19 | 2015-11-04 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
-
2017
- 2017-12-27 CN CN201711446938.6A patent/CN108182125B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129873A (zh) * | 2011-03-29 | 2011-07-20 | 西安交通大学 | 提高计算机末级高速缓存可靠性的数据压缩装置及其方法 |
US20130173956A1 (en) * | 2011-12-30 | 2013-07-04 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
CN105022675A (zh) * | 2015-08-19 | 2015-11-04 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
Non-Patent Citations (3)
Title |
---|
ALEXANDRA FERRERON 等: ""Concertina: Squeezing in Cache Content to Operate at Near-Threshold Voltage"", 《IEEE TRANSACTIONS ON COMPUTERS》 * |
刘伟 等: ""近阈值电压下可容错的末级缓存结构设计"", 《电子与信息学报》 * |
魏志刚: ""近阈值电压下Cache容错性研究"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI677876B (zh) * | 2018-10-12 | 2019-11-21 | 慧榮科技股份有限公司 | 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法 |
TWI697906B (zh) * | 2018-10-12 | 2020-07-01 | 慧榮科技股份有限公司 | 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法 |
US11373723B2 (en) | 2018-10-12 | 2022-06-28 | Silicon Motion, Inc. | Encoder built-in self-test circuit applied in flash memory controller and associated method |
CN111221775A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 处理器、缓存处理方法及电子设备 |
CN111221775B (zh) * | 2018-11-23 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 处理器、缓存处理方法及电子设备 |
CN110289040A (zh) * | 2019-06-25 | 2019-09-27 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测方法 |
CN110289041A (zh) * | 2019-06-25 | 2019-09-27 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测装置 |
CN110289040B (zh) * | 2019-06-25 | 2021-05-11 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测方法 |
CN110289041B (zh) * | 2019-06-25 | 2021-05-18 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测装置 |
CN113360314A (zh) * | 2020-03-02 | 2021-09-07 | 芯原微电子(成都)有限公司 | 数据的处理方法、系统、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108182125B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182125A (zh) | 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 | |
CN104246898B (zh) | 局部错误检测和全局错误纠正 | |
CN102253865B (zh) | 用于在系统中使用高速缓冲存储器的方法和装置 | |
CN105335247B (zh) | 高可靠系统芯片中Cache的容错结构及其容错方法 | |
US20130179749A1 (en) | Method and system of dynamic data storage for error correction in a memory device | |
US6987684B1 (en) | Content addressable memory (CAM) devices having multi-block error detection logic and entry selective error correction logic therein | |
CN107155358A (zh) | 用于非易失性存储器的混合粒度较高级别冗余 | |
WO2012075200A2 (en) | Dynamic higher-level redundancy mode management with independent silicon elements | |
EP2666091A2 (en) | Higher-level redundancy information computation | |
CN103187104A (zh) | 存储器的纠错方法 | |
US7809980B2 (en) | Error detector in a cache memory using configurable way redundancy | |
CN108958963A (zh) | 一种基于ldpc和循环冗余校验码的nand flash差错控制方法 | |
CN110309014B (zh) | 一种全行编解码sram编码器数据读写结构及数据读写方法 | |
US11782807B2 (en) | Memory module with dedicated repair devices | |
CN115729746A (zh) | 一种基于crc和ecc存储数据保护方法 | |
Swami et al. | ECS: Error-correcting strings for lifetime improvements in nonvolatile memories | |
WO2014028183A1 (en) | Fractional redundant array of silicon independent elements | |
CN105022675B (zh) | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 | |
CN102929743A (zh) | 具有软错误容错功能的一级缓存数据存储方法及装置 | |
CN105161137B (zh) | 一种MLC架构中Nand Flash控制器电路实现装置 | |
CN105027084B (zh) | 在移动通信系统中控制存储器的装置和方法 | |
Ahn et al. | Selectively protecting error-correcting code for area-efficient and reliable STT-RAM caches | |
Lee et al. | ECMO: ECC Architecture Reusing Content-Addressable Memories for Obtaining High Reliability in DRAM | |
US8661320B2 (en) | Independent orthogonal error correction and detection | |
CN204833244U (zh) | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 |
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 |