CN107430540A - 用于硬件验证的运行时间ecc错误注入方案 - Google Patents
用于硬件验证的运行时间ecc错误注入方案 Download PDFInfo
- Publication number
- CN107430540A CN107430540A CN201680018816.4A CN201680018816A CN107430540A CN 107430540 A CN107430540 A CN 107430540A CN 201680018816 A CN201680018816 A CN 201680018816A CN 107430540 A CN107430540 A CN 107430540A
- Authority
- CN
- China
- Prior art keywords
- data
- logic
- write
- peripheral unit
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2215—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
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 Hardware Design (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明揭示用于硬件验证的运行时间错误校正码“ECC”的错误注入方案的系统及方法。所述系统及方法包含:配置读取路径来内部转发读取数据;及经由读取失效注入逻辑而将至少一个失效位注入到所述转发读取数据中。所述系统及方法还可包含:配置写入路径来内部转发写入数据;及经由写入失效注入逻辑而将至少一个失效位注入到所述转发写入数据中。
Description
相关申请案的交叉参考
本申请案主张2015年4月2日申请的第62/142,019号共同拥有的美国临时专利申请案的优先权,出于所有目的,所述临时专利申请案以引用的方式并入本文中。
技术领域
本发明涉及微控制器中的外围装置,特定来说,本发明涉及用于硬件验证的运行时间ECC错误注入方案。
背景技术
一些微控制器装置并入错误校正码(“ECC”)特征,其检测及校正错误从而导致快闪存储器寿命延长。可将ECC实施于128位宽的快闪字或四个32位指令字群组中。因此,当将快闪存储器编程于其中采用ECC的装置上时,编程操作可以最少四个指令字或以在四个指令字的群组。
需要安全关键系统的运行时间检查及故障注入来提供功能安全。以一些安全等级处置两个同时故障的要求还需要偶尔使用故障注入来测试故障逻辑本身。
发明内容
本发明揭示用于硬件验证的运行时间错误校正码(“ECC”)错误注入方案的系统及方法。所述系统及方法包含:配置读取路径来内部转发读取数据;及经由读取故障注入逻辑而将至少一个故障位注入到所述所转发读取数据中。所述系统及方法还可包含:配置写入路径来内部转发写入数据;及经由写入故障注入逻辑而将至少一个故障位注入到所述转发写入数据中。
根据各种实施例,一种具有运行时间自测能力的集成外围装置可包含:读取路径,其经配置以内部转发读取数据;及读取故障注入逻辑,其经配置以在程控下将至少一个故障位注入到所述所转发读取数据中。在其它实施例中,所述集成外围装置还可包含:写入路径,其经配置以内部转发写入数据;及写入故障注入逻辑,其经配置以在程控下将至少一个故障位注入到所述转发写入数据中。
在一些实施例中,所述外围装置是微控制器中的错误校正码模块。在一些配置中,所述至少一个故障位包括故障奇偶校验位。
在一些实施例中,当用户已启用注入时且当读取地址与用户指定的存储器位置匹配时,所述读取故障注入逻辑进一步经配置以将所述至少一个故障位注入到所述所转发读取数据中。替代地或另外,当用户已启用注入时且当写入地址与用户指定的存储器位置匹配时,所述写入故障注入逻辑进一步经配置以将所述至少一个故障位注入到所述转发写入数据中。
在一些实施例中,所述外围装置可包含错误检测逻辑,其经配置以在程控下至少基于所述所转发读取数据中的所述至少一个故障位而向ECC系统通知错误存在。
根据各种实施例,本发明揭示一种具有运行时间自测能力的集成外围装置。所述集成外围装置可包含:写入路径,其经配置以内部转发写入数据;及写入故障注入逻辑,其经配置以在程控下将至少一个故障位注入到所述转发写入数据中。
根据各种实施例,本发明揭示一种用于实施用于硬件验证的运行时间ECC错误注入方案的方法。所述方法可包含:配置读取路径来内部转发读取数据;及经由读取故障注入逻辑而将至少一个故障位注入到所述所转发读取数据中。在相同或替代实施例中,所述方法还可包含:配置写入路径来内部转发写入数据;及经由写入故障注入逻辑而将至少一个故障位注入到所述转发写入数据中。
附图说明
图1说明根据本发明的某些实施例的用于将单位或双位故障注入到用于硬件验证的ECC模块的读取路径中的实例ECC读取路径故障注入逻辑框图;
图2说明根据本发明的某些实施例的用于读取路径的运行时间ECC错误注入方案的实例ECC模块框图;
图3说明根据本发明的某些实施例的用于将单位或双位故障注入到用于硬件验证的ECC模块的写入路径中的实例ECC写入路径故障注入逻辑框图;
图4说明根据本发明的某些实施例的用于读取路径的运行时间ECC错误注入方案的实例ECC模块框图;及
图5说明根据本发明的某些实施例的ECC故障注入系统的实例寄存器汇总。
具体实施方式
一些现有微控制器装置并入错误校正码(“ECC”)特征,其检测及校正错误从而导致快闪存储器寿命延长。可以128位宽的快闪字或四个32位指令字群组中实施ECC。因此,当将快闪存储器编程于其中采用ECC的装置上时,编程操作可以最少四个指令字或以四个指令字的群组。这是四字编程命令存在的原因且一系列编程总是编程四个字的倍数的原因。对于给定软件应用程序,可一直启用ECC,可一直停用ECC,或可使用专用控制寄存器来动态地启用ECC。当一直启用ECC时,专用单字编程命令不起作用,且四元字是可被编程的存储器的最小单元。当动态地停用或启用ECC时,单字及四字两者的编程NVMOP命令是起作用的且所使用的编程方法确定如何处置ECC。就动态ECC来说,如果使用单字命令来编程存储器,那么ECC会因所述字而停用,且当读取存储器时,不执行错误校正。如果使用四字编程或行编程命令来编程存储器,那么写入ECC数据且在读取ECC数据时测试其错误(且根据需要校正错误)。可从相应参考手册(例如购自申请人的“PIC 32参考手册(PIC 32ReferenceManual)”,特定来说,参考手册“章节52,支持实时更新的快闪存储器(Section 52.FlashMemory with Support for Live Update)”,其以引用方式并入本文中)检索与ECC及快闪编程有关的更多信息。
需要安全关键系统的运行时间检查及故障注入来提供功能安全。以一些安全等级处置两个同时故障的要求还需要偶尔使用故障注入来测试故障逻辑本身。举例来说,如果通信模块具有内建循环冗余校验(“CRC”),但所述通信模块的用户或程序员无权使用CRC结果值及用于产生CRC结果值的任何数据,那么所述用户或程序员无法及/或不愿使用CRC特征。
根据各种实施例,可对ECC模块提供故障注入方案以将错误有意注入到数据中,从而允许安全地测试所述ECC模块的工作。另外,根据各种实施例,通过允许对ECC模块进行快速且全面的功能测试而简化到所述ECC模块的生产测试接口。此外,可通过绕过快闪存储器且测试输入数据及奇偶校验位的任何组合而使功能测试相对较快且更全面。
图1说明根据本发明的某些实施例的用于将单位或双位故障注入到用于硬件验证的ECC模块的读取路径中的实例ECC读取路径故障注入逻辑框图100。在一些实施例中,实例逻辑框图100可包含多个位指针解码器102、104、或门106、与门108、110、位序解码器112及异或门114、116、118。
在一些实施例中,实例逻辑框图100可包含多个位指针解码器102、104。图1的说明性实例中说明两个位指针解码器102、104,但可在不背离本发明的范围的情况下使用更多、更少及/或不同解码器。在一些实施例中,解码器102、104可为可经操作以解码位指针字符串的任何适当电子组件(其包含逻辑组件)、软件模块(其包含存储于非易失性存储器上且可由处理器执行的程序指令)等等。举例来说,解码器102、104可将8位指针字符串解码成独热(one-hot)信号以便选择数据的高达136个位中的特定位。可在不背离本发明的范围的情况下使其它解码器配置包含于任何给定配置中。
在一些实施例中,每一解码器102、104可经操作以接收故障注入指针字符串。举例来说,解码器102可经操作以接收第一故障注入指针字符串(例如“flt_inj_1_ptr[7:0]”),且解码器104可经操作以接收第二故障注入指针字符串(例如“flt_inj_2_ptr[7:0]”)。此外,每一解码器102、104可经操作以传送解码指针字符串(例如选择数据集(例如136位数据集)中的特定位的独热信号)。举例来说,解码器102可经操作以传送第一解码故障注入指针字符串(例如“flt_inj_ptr1_onehot[136:0]”),且解码器104可经操作以传送第二解码故障注入指针字符串(例如“flt_inj_ptr2_onehot[136:0]”)。
在一些实施例中,可将多个解码故障注入指针字符串传送到或门106。或门106可为经操作以对多个传入信号执行逻辑或运算的任何适当电子组件及/或组件集合。在一些实施例中,或门106可经操作以对多个解码故障注入指针字符串执行或运算。
在一些实施例中,实例逻辑框图100还可包含与门108。在一些实施例中,与门108可为经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门108可经操作以对以下两个传入信号执行与运算:故障注入启用信号(例如“flt_inj_en”)及地址匹配指示信号(例如“flt_inj_addr_equal”)。在一些实施例中,入射到与门108的信号与ECC模块的用户及/或程序员希望在将错误注入到ECC系统中之前强加的条件相关联。举例来说,ECC模块可经设置以仅在满足以下条件时注入错误:(1)ECC模块的用户已主动启用故障注入(例如,设置故障注入启用信号);及(2)读取地址与用户指定的存储器位置匹配(例如,地址匹配指示信号在逻辑上适合于匹配)。这可确保:故障注入仅发生于由用户选择的点处,从而允许适当处置所得错误中断。
在一些实施例中,实例逻辑框图100还可包含与门110。在一些实施例中,与门110可为可经操作以对多个传入信号执行按位逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门110可经操作以对以下两个传入信号执行按位与运算:与门108的传送输出及或门106的传送输出。接着,可将此按位输出传送到解码器112。
在一些实施例中,解码器112可为任何适当电子组件(其包含逻辑组件)、软件模块(其包含存储于非易失性存储器上且可由处理器执行的程序指令)等等,其经操作以解码与门110的输出以便将故障注入指针ECC位序提供到多个输出。
在说明性实例中,解码器112将输出提供到三个额外逻辑组件,但可在不背离本发明的范围的情况下使用更多、更少及/或不同组件。在所说明的配置中,将解码器112的输出传送到异或门114、116及118。
在一些实施例中,异或门114可为经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门114可经操作以对以下两个传入信号执行异或运算:解码器112的传送输出及对应数据位(例如“data_in[127:0]”)。接着,可将相关联输出(例如“flt_inj_data_in[127:0]”)传送到ECC模块,如下文将参考图2来更详细描述。在一些实施例中,异或门114的输出可与已被注入到数据位(其是待测试的数据集的部分)中的故障相关联。
在一些实施例中,异或门116可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门116可经操作以对以下两个传入信号执行异或运算:解码器112的传送输出及对应奇偶校验位(例如“sec_parity_in[7:0]”)。接着,可将相关联输出(例如“flt_inj_sec_parity_in[7:0]”)传送到ECC模块,如下文将参考图2来更详细描述。在一些实施例中,异或门116的输出可与已被注入到与待测试的数据集相关联的奇偶校验位中的故障相关联。
在一些实施例中,异或门118可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门118可经操作以对以下两个传入信号执行异或运算:解码器112的传送输出及对应奇偶校验位(例如“ded_parity_in[7:0]”)。接着,可将相关联输出(例如“flt_inj_ded_parity_in[7:0]”)传送到ECC模块,如下文将参考图2来更详细描述。在一些实施例中,异或门118的输出可与已被注入到与待测试的数据集相关联的奇偶校验位中的故障相关联。
尽管已说明某些逻辑模块及配置来辅助本发明,但可在不背离本发明的范围的情况下取得更多、更少及/或不同配置。
图2说明根据本发明的某些实施例的用于读取路径的运行时间ECC错误注入方案的实例ECC模块框图200。在一些实施例中,实例框图200可包含计算向量位序202、异或树204、与门206、208、210、212、异或门214、216、218、220、或门222、错误解码器224、症状解码器226、位匹配228及按位异或阵列230。
在一些实施例中,计算向量位序202可为可经操作以使传入到ECC模块的计算向量位排序的任何适当电子组件及/或组件集合。举例来说,计算向量位序202可从实例逻辑框图100接收一或多个输入。这些输入可包含(例如)故障注入数据输出(例如flt_inj_data_in[127:0])。计算向量位序202还可接收包含(例如)多个奇偶校验位输入(例如sec[7:0]、ded)的多个其它输入。接着,可将计算向量位序202的输出传送到异或树204及/或位匹配228。
在一些实施例中,异或树204可包含各自与数据集的部分相关联的多个异或树。在说明性实例中,异或树204包含九个子树。每一子树可包含多个异或门,其可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。到异或树204的输入包含计算向量位序202的输出。
在一些实施例中,实例框图200还可包含与门206。与门206可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门206对实例逻辑框图100的输出中的一者(例如flt_inj_sec_parity_in[7:0])及ECC启用信号(例如“cfg_ecc_en”)执行逻辑与运算。这可允许将奇偶校验故障信号引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含与门208。与门208可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门208对实例逻辑框图100的输出中的一者(例如flt_inj_ded_parity_in)及ECC启用信号(例如“cfg_ecc_en”)执行逻辑与运算。这可允许将奇偶校验故障信号引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含与门210。与门210可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门210对异或树204的输出中的一者及ECC启用信号(例如“cfg_ecc_en”)执行逻辑与运算。这可允许将数据故障信号引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含与门212。与门212可为可经操作以对多个传入信号执行按位逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门212对异或树204的多个输出及ECC启用信号(例如“cfg_ecc_en”)执行按位逻辑与运算。这可允许将数据故障按位引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含异或门214。异或门214可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门214对与门212的输出中的一者及与门210的输出执行逻辑异或运算。这可允许将奇偶校验信号输出到ECC逻辑中。异或门214可将还原功能提供到传入信号。
在一些实施例中,实例框图200还可包含异或门216。异或门216可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门216对与门206的输出中的一者及与门210的输出执行逻辑异或运算。这可允许将奇偶校验信号输出到例如错误解码器224的另一ECC逻辑中。异或门214可将还原功能提供到传入信号。
在一些实施例中,实例框图200还可包含异或门218。异或门218可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门218对与门208的输出中的一者及异或门216的输出执行逻辑异或运算。这可允许将奇偶校验信号输出到例如错误解码器224的ECC逻辑中。
在一些实施例中,实例框图200还可包含异或门220。异或门220可为可经操作以对多个传入信号执行按位逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门220对与门206的输出中的一者及与门212的输出执行按位逻辑异或运算。这可允许将奇偶校验信号输出到例如错误解码器224的ECC逻辑中。
在一些实施例中,实例框图200还可包含或门222。或门222可为可经操作以对多个传入信号执行逻辑或运算的任何适当电子组件及/或组件集合。在说明性实例中,或门222对异或门220的按位输出中的一者执行逻辑或运算。这可允许将奇偶校验信号输出到例如错误解码器224的ECC逻辑中。
在一些实施例中,实例框图200还可包含错误解码器224。错误解码器224可为可经操作以解码多个输入来提供多个检测错误输出的任何适当电子组件及/或组件组合。举例来说,错误解码器224可经操作以接收异或门218及或门222的输出。错误解码器224可通过解码这些信号而提供对应于呈现给多个奇偶校验位(例如“ecc_derr”及“ecc_serr”)的多个错误的输出。接着,可将这些奇偶校验输出输出到ECC模块的用户以用于进一步测试。
在一些实施例中,实例框图200还可包含症状解码器226。在一些实施例中,症状检测器226可为可经操作以解码一或多个奇偶校验错误输出的任何适当组合及/或组件组合。举例来说,症状检测器226可经操作以将异或门220的输出解码成数据集所关注的奇偶校验位的独热识别符。
在一些实施例中,实例框图200还可包含位匹配228。位匹配228可为可经操作以使传入位数与计算向量序匹配的任何适当电子组件及/或组件组合。在一些实施例中,位匹配228可从计算向量位序202以及症状检测器226接收输出。在使从这些两个模块输出的位匹配之后,位匹配226可将匹配位输出到按位异或阵列230。按位异或阵列230可为可经操作以对多个输入执行按位逻辑异或运算的任何适当电子组件及/或组件组合。在说明性实例中,按位异或阵列230可经操作以对匹配位数及计算向量位序执行异或运算,使得按位异或阵列230可输出可包含故障注入(例如“data_out[127:0]”)的数据集。
此配置可允许功能安全以允许检测具有高达两个同时硬件故障的系统的方式定制关键故障检查特征的自测。此外,此配置可允许产生将发生于真ECC故障上的相同软件中断/陷阱。尽管已说明某些逻辑模块及配置来辅助本发明,但可在不背离本发明的范围的情况下取得更多、更少及/或不同配置。
图3说明根据本发明的某些实施例的用于将单位或双位故障注入到用于硬件验证的ECC模块的写入路径中的实例ECC写入路径故障注入逻辑框图300。在一些实施例中,实例逻辑框图300可包含多个位指针解码器302、304、或门306、与门308、330、位序解码器312及异或门314、316、318。
在一些实施例中,实例逻辑框图300可包含多个位指针解码器302、304。图3的说明性实例中说明两个位指针解码器302、304,但可在不背离本发明的范围的情况下使用更多、更少及/或不同解码器。在一些实施例中,解码器302、304可为可经操作以解码位指针字符串的任何适当电子组件(其包含逻辑组件)、软件模块(其包含存储于非易失性存储器上且可由处理器执行的程序指令)等等。举例来说,解码器302、304可将8位指针字符串解码成独热信号以便选择数据的高达316个位中的特定位。可在不背离本发明的范围的情况下使其它解码器配置包含于任何给定配置中。
在一些实施例中,每一解码器302、304可经操作以接收故障注入指针字符串。举例来说,解码器302可经操作以接收第一故障注入指针字符串(例如“flt_inj_1_ptr[7:0]”)且解码器304可经操作以接收第二故障注入指针字符串(例如“flt_inj_2_ptr[7:0]”)。此外,每一解码器302、304可经操作以传送解码指针字符串(例如选择数据集(例如316位数据集)中的特定位的独热信号)。举例来说,解码器302可经操作以传送第一解码故障注入指针字符串(例如“flt_inj_ptr1_onehot[136:0]”)且解码器304可经操作以传送第二解码故障注入指针字符串(例如“flt_inj_ptr2_onehot[136:0]”)。
在一些实施例中,可将多个解码故障注入指针字符串传送到或门306。或门306可为可经操作以对多个传入信号执行逻辑或运算的任何适当电子组件及/或组件集合。在一些实施例中,或门306可经操作以对多个解码故障注入指针字符串执行或运算。
在一些实施例中,实例逻辑框图300还可包含与门308。在一些实施例中,与门308可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门308可经操作以对以下两个传入信号执行与运算:故障注入启用信号(例如“flt_inj_en”)及地址匹配指示信号(例如“flt_inj_addr_equal”)。在一些实施例中,入射到与门308的信号与ECC模块的用户及/或程序员希望在将错误注入到ECC系统中之前强加的条件相关联。举例来说,ECC模块可经设置以仅在满足以下条件时注入错误:(1)ECC模块的用户已主动启用故障注入(例如,设置故障注入启用信号);及(2)写入地址与用户指定的存储器位置匹配(例如,地址匹配指示信号在逻辑上适合于匹配)。这可确保:故障注入仅发生于由用户选择的点处,从而允许适当处置所得错误中断。
在一些实施例中,实例逻辑框图300还可包含与门310。在一些实施例中,与门310可为可经操作以对多个传入信号执行按位逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门310可经操作以对以下两个传入信号执行按位与运算:与门308的传送输出及或门306的传送输出。接着,可将此按位输出传送到解码器312。
在一些实施例中,解码器312可为任何适当电子组件(其包含逻辑组件)、软件模块(其包含存储于非易失性存储器上且可由处理器执行的程序指令)等等,其可经操作以解码与门310的输出以便将故障注入指针ECC位序提供到多个输出。
在说明性实例中,解码器312将输出提供到三个额外逻辑组件,但可在不背离本发明的范围的情况下使用更多、更少及/或不同组件。在所说明的配置中,将解码器312的输出传送到异或门314、316及318。
在一些实施例中,异或门314可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门314可经操作以对以下两个传入信号执行异或运算:解码器312的传送输出及对应数据位(例如“data_in[127:0]”)。接着,可将相关联输出(例如“data_out[127:0]”)传送到ECC模块,如下文将参考图2来更详细描述。在一些实施例中,异或门314的输出可与已被注入到数据位(其是待测试的数据集的部分)中的故障相关联。
在一些实施例中,异或门316可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门316可经操作以对以下两个传入信号执行异或运算:解码器312的传送输出及对应奇偶校验位(例如“raw_sec_parity_out[7:0]”)。接着,可将相关联输出(例如“sec_parity_out[7:0]”)传送到ECC模块,如下文将参考图2来更详细描述。在一些实施例中,异或门316的输出可与已被注入到与待测试的数据集相关联的奇偶校验位中的故障相关联。
在一些实施例中,异或门318可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门318可经操作以对以下两个传入信号执行异或运算:解码器312的传送输出及对应奇偶校验位(例如“raw_ded_parity_out[7:0]”)。接着,可将相关联输出(例如“ded_parity_out[7:0]”)传送到ECC模块,如下文将参考图2来更详细描述。在一些实施例中,异或门318的输出可与已被注入到与待测试的数据集相关联的奇偶校验位中的故障相关联。
尽管已说明某些逻辑模块及配置来辅助本发明,但可在不背离本发明的范围的情况下取得更多、更少及/或不同配置。
图4说明根据本发明的某些实施例的用于读取路径的运行时间ECC错误注入方案的实例ECC模块框图200。在一些实施例中,实例框图200可包含计算向量位序402、异或树404、与门406、408、410、412、异或门414、416、418、420、或门422、错误解码器424、症状解码器426、位匹配428及按位异或阵列430。
在一些实施例中,计算向量位序402可为可经操作以使传入到ECC模块的计算向量位排序的任何适当电子组件及/或组件集合。举例来说,计算向量位序402可从实例逻辑框图100接收一或多个输入。这些输入可包含(例如)故障注入数据输出(例如data_in[127:0])。计算向量位序402还可接收包含(例如)多个奇偶校验位输入(例如sec[7:0]、ded)的多个其它输入。接着,可将计算向量位序402的输出传送到异或树404及/或位匹配428。
在一些实施例中,异或树404可包含各自与数据集的部分相关联的多个异或树。在说明性实例中,异或树404包含九个子树。每一子树可包含多个异或门,其可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。到异或树404的输入可包含计算向量位序402的输出。
在一些实施例中,实例框图200还可包含与门406。与门406可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门406对实例逻辑框图100的输出中的一者(例如sec_parity_in[7:0])及ECC启用信号(例如“cfg_ecc_en”)执行逻辑与运算。这可允许将奇偶校验故障信号引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含与门408。与门408可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门408对实例逻辑框图100的输出中的一者(例如ded_parity_in)及ECC启用信号(例如“cfg_ecc_en”)执行逻辑与运算。这可允许将奇偶校验故障信号引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含与门410。与门410可为可经操作以对多个传入信号执行逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门410对异或树404的输出中的一者及ECC启用信号(例如“cfg_ecc_en”)执行逻辑与运算。这可允许将数据故障信号引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含与门412。与门412可为可经操作以对多个传入信号执行按位逻辑与运算的任何适当电子组件及/或组件集合。在说明性实例中,与门412对异或树404的多个输出及ECC启用信号(例如“cfg_ecc_en”)执行按位逻辑与运算。这可允许将数据故障按位引入到经适当启用的ECC逻辑中。
在一些实施例中,实例框图200还可包含异或门414。异或门414可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门414对与门412的输出中的一者及与门410的输出执行逻辑异或运算。这可允许将奇偶校验信号输出到ECC逻辑中。异或门414可将还原功能提供到传入信号。
在一些实施例中,实例框图200还可包含异或门416。异或门416可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门416对与门406的输出中的一者及与门410的输出执行逻辑异或运算。这可允许将奇偶校验信号输出到例如错误解码器424的另一ECC逻辑中。异或门414可将还原功能提供到传入信号。
在一些实施例中,实例框图200还可包含异或门418。异或门418可为可经操作以对多个传入信号执行逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门418对与门408的输出中的一者及异或门416的输出执行逻辑异或运算。这可允许将奇偶校验信号输出到例如错误解码器424的ECC逻辑中。
在一些实施例中,实例框图200还可包含异或门420。异或门420可为可经操作以对多个传入信号执行按位逻辑异或运算的任何适当电子组件及/或组件集合。在说明性实例中,异或门420对与门406的输出中的一者及与门412的输出执行按位逻辑异或运算。这可允许将奇偶校验信号输出到例如错误解码器424的ECC逻辑中。
在一些实施例中,实例框图200还可包含或门422。或门422可为可经操作以对多个传入信号执行逻辑或运算的任何适当电子组件及/或组件集合。在说明性实例中,或门422对异或门420的按位输出中的一者执行逻辑或运算。这可允许将奇偶校验信号输出到例如错误解码器424的ECC逻辑中。
在一些实施例中,实例框图200还可包含错误解码器424。错误解码器424可为可经操作以解码多个输入来提供多个检测错误输出的任何适当电子组件及/或组件组合。举例来说,错误解码器424可经操作以接收异或门418及或门422的输出。错误解码器424可通过解码这些信号而提供对应于呈现给多个奇偶校验位(例如“ecc_derr”及“ecc_serr”)的多个错误的输出。接着,可将这些奇偶校验输出输出到ECC模块的用户以用于进一步测试。
在一些实施例中,实例框图200还可包含症状解码器426。在一些实施例中,症状检测器426可为可经操作以解码一或多个奇偶校验错误输出的任何适当组合及/或组件组合。举例来说,症状检测器426可经操作以将异或门420的输出解码成数据集所关注的奇偶校验位的独热识别。
在一些实施例中,实例框图200还可包含位匹配428。位匹配428可为可经操作以使传入位数与计算向量序匹配的任何适当电子组件及/或组件组合。在一些实施例中,位匹配428可从计算向量位序402及症状检测器426接收输出。在使从这两个模块输出的位匹配之后,位匹配426可将匹配位输出到按位异或阵列430。按位异或阵列430可为可经操作以对多个输入执行按位逻辑异或运算的任何适当电子组件及/或组件组合。在说明性实例中,按位异或阵列430可经操作以对匹配位数及计算向量位序执行异或运算,使得按位异或阵列430可输出可包含数据的校正版本的数据集(例如“raw_data_out[127:0]”)。无法在经由写入路径故障注入而有意注入故障时使用此信号。
此配置可允许功能安全以允许检测具有高达两个同时硬件故障的系统的方式定制关键故障检查特征的自测。此外,此配置可允许产生将发生于真ECC故障上的相同软件中断/陷阱。尽管已说明某些逻辑模块及配置来辅助本发明,但可在不背离本发明的范围的情况下取得更多、更少及/或不同配置。
图5说明根据本发明的某些实施例的ECC故障注入系统的实例寄存器汇总500。仅为了促进理解,实例寄存器汇总500提供可如何将上文参考图1到4来更详细描述的相关信号存储于宏寄存器中的实例。根据本发明的某些实施例,此配置可允许ECC模块的用户更容易地存取ECC故障信息以便区分注入故障与实际故障。
根据各种实施例,所述各种实施例具有使本发明更实用的若干特征(其包含:(1)将单位或双位错误注入数据或奇偶校验中的任何位位置处的能力;(2)将错误注入特定地址处的能力;及(3)将错误注入数据路径的读取侧或写入侧上的能力),从而对许多不同用户测试算法提供较容易软件实施方案。
Claims (20)
1.一种具有运行时间自测能力的集成外围装置,其包括:
读取路径,其经配置以内部转发读取数据;
读取故障注入逻辑,其经配置以在程控下将至少一个故障位注入到所述所转发读取数据中;及
错误指示逻辑,其经配置以在程控下于故障注入发生时,将错误指示提供到处理器。
2.根据权利要求1所述的集成外围装置,其进一步包括:
写入路径,其经配置以内部转发写入数据;
写入故障注入逻辑,其经配置以在程控下将至少一个故障位注入到所述转发写入数据中;及
错误指示逻辑,其经配置以在程控下于存取与所述故障注入相关联的位置时,将错误指示提供到处理器。
3.根据权利要求1或权利要求2所述的集成外围装置,其中所述外围装置是微控制器中的错误校正码模块。
4.根据前述权利要求中任一权利要求所述的集成外围装置,其中所述读取路径具有136个位的宽度。
5.根据前述权利要求中任一权利要求所述的集成外围装置,其中所述至少一个故障位包括故障奇偶校验位。
6.根据前述权利要求中任一权利要求所述的集成外围装置,其中所述至少一个故障位包括故障奇偶校验位。
7.根据前述权利要求中任一权利要求所述的集成外围装置,其中所述读取故障注入逻辑进一步经配置以:当用户已启用所述注入时且当读取地址与用户指定的存储器位置匹配时,将所述至少一个故障位注入到所述所转发读取数据中。
8.根据前述权利要求中任一权利要求所述的集成外围装置,其中所述写入故障注入逻辑进一步经配置以:当用户已启用所述注入时且当写入地址与用户指定的存储器位置匹配时,将所述至少一个故障位注入到所述转发写入数据中。
9.根据前述权利要求中任一权利要求所述的集成外围装置,其进一步包括错误检测逻辑,所述错误检测逻辑经配置以在程控下至少基于所述所转发读取数据中的所述至少一个故障位而向ECC系统通知错误存在。
10.根据前述权利要求中任一权利要求所述的集成外围装置,其进一步包括错误检测逻辑,所述错误检测逻辑经配置以在程控下至少基于所述转发写入数据中的所述至少一个故障位而向ECC系统通知错误存在。
11.一种具有运行时间自测能力的集成外围装置,其包括:
写入路径,其经配置以内部转发写入数据;
写入故障注入逻辑,其经配置以在程控下将至少一个故障位注入到所述转发写入数据中。
12.根据权利要求11所述的集成外围装置,其中所述外围装置是微控制器中的错误校正码模块。
13.根据权利要求11或权利要求12所述的集成外围装置,其中所述读取路径具有136个位的宽度。
14.根据权利要求11到13中任一权利要求所述的集成外围装置,其中所述至少一个故障位包括故障奇偶校验位。
15.根据权利要求11到14中任一权利要求所述的集成外围装置,其中所述写入故障注入逻辑进一步经配置以:当用户已启用所述注入时且当写入地址与用户指定的存储器位置匹配时,将所述至少一个故障位注入到所述转发写入数据中。
16.根据权利要求11到15中任一权利要求所述的集成外围装置,其进一步包括错误检测逻辑,所述错误检测逻辑经配置以在程控下至少基于所述转发写入数据中的所述至少一个故障位而向ECC系统通知错误存在。
17.一种用于实施用于硬件验证的运行时间ECC错误注入方案的方法,所述方法包括:
配置读取路径来内部转发读取数据;以及
经由读取故障注入逻辑而将至少一个故障位注入到所述所转发读取数据中。
18.根据权利要求17所述的方法,其进一步包括:
配置写入路径来内部转发写入数据;以及
经由写入故障注入逻辑而将至少一个故障位注入到所述转发写入数据中。
19.根据权利要求17或权利要求18所述的方法,其中所述外围装置是微控制器中的错误校正码模块。
20.根据权利要求17到19中任一权利要求所述的方法,其中所述至少一个故障位包括故障奇偶校验位。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562142019P | 2015-04-02 | 2015-04-02 | |
US62/142,019 | 2015-04-02 | ||
US15/089,352 US10248521B2 (en) | 2015-04-02 | 2016-04-01 | Run time ECC error injection scheme for hardware validation |
US15/089,352 | 2016-04-01 | ||
PCT/US2016/025799 WO2016161409A1 (en) | 2015-04-02 | 2016-04-03 | Run time ecc error injection scheme for hardware validation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430540A true CN107430540A (zh) | 2017-12-01 |
CN107430540B CN107430540B (zh) | 2021-07-20 |
Family
ID=55861157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680018816.4A Active CN107430540B (zh) | 2015-04-02 | 2016-04-03 | 用于硬件验证的运行时间ecc错误注入方案 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10248521B2 (zh) |
EP (1) | EP3278226A1 (zh) |
JP (1) | JP2018511888A (zh) |
KR (1) | KR20170134378A (zh) |
CN (1) | CN107430540B (zh) |
TW (1) | TW201702875A (zh) |
WO (1) | WO2016161409A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109541444A (zh) * | 2018-10-18 | 2019-03-29 | 天津大学 | 基于混合粒度奇偶校验的集成电路故障注入检测方法 |
US11579969B2 (en) | 2021-03-04 | 2023-02-14 | Realtek Semiconductor Corp. | Verifying method for ECC circuit of SRAM |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160105625A (ko) * | 2015-02-27 | 2016-09-07 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6542148B2 (ja) * | 2016-03-18 | 2019-07-10 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
US10389379B2 (en) * | 2017-05-12 | 2019-08-20 | Qualcomm Incorporated | Error correcting code testing |
US11048602B2 (en) * | 2017-10-17 | 2021-06-29 | SK Hynix Inc. | Electronic devices |
US10625752B2 (en) | 2017-12-12 | 2020-04-21 | Qualcomm Incorporated | System and method for online functional testing for error-correcting code function |
US10985765B2 (en) | 2018-08-07 | 2021-04-20 | Samsung Electronics Co., Ltd. | Apparatus including safety logic |
US10977109B2 (en) | 2018-08-07 | 2021-04-13 | Samsung Electronics Co., Ltd. | Apparatus including safety logic |
EP3617723B1 (en) | 2018-08-29 | 2023-03-22 | Nxp B.V. | Integrated circuit device with integrated fault monitoring system |
US10922203B1 (en) | 2018-09-21 | 2021-02-16 | Nvidia Corporation | Fault injection architecture for resilient GPU computing |
KR20210072969A (ko) | 2019-12-10 | 2021-06-18 | 주식회사 인아쓰리디 | 3d프린팅 물품의 후가공방법 및 그를 위한 후가공장치 |
US11550681B2 (en) | 2020-11-02 | 2023-01-10 | Nxp Usa, Inc. | System and method for error injection in system-on-chip |
KR20220144129A (ko) * | 2021-04-19 | 2022-10-26 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것을 포함하는 반도체 시스템 |
US11461205B1 (en) | 2021-08-24 | 2022-10-04 | Nxp B.V. | Error management system for system-on-chip |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040243887A1 (en) * | 2000-05-01 | 2004-12-02 | Sharma Debendra Das | Method and apparatus for verifying error correcting codes |
CN101042938A (zh) * | 2006-03-24 | 2007-09-26 | 富士通株式会社 | 以纠错码存储器构成的具有冗余功能的半导体存储器设备 |
CN102630318A (zh) * | 2009-11-30 | 2012-08-08 | 国际商业机器公司 | 并行访问多个闪存/相变存储级存储器的固态存储系统 |
US20120266033A1 (en) * | 2011-04-15 | 2012-10-18 | Advanced Micro Devices, Inc. | Providing test coverage of integrated ecc logic en embedded memory |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627163B2 (en) | 2008-03-25 | 2014-01-07 | Micron Technology, Inc. | Error-correction forced mode with M-sequence |
US8707104B1 (en) * | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
EP2677429A1 (en) | 2012-06-18 | 2013-12-25 | Renesas Electronics Europe Limited | Error correction |
JP2015141539A (ja) * | 2014-01-28 | 2015-08-03 | 株式会社東芝 | 故障注入プログラム |
KR102097988B1 (ko) * | 2014-04-09 | 2020-05-29 | 한국전자통신연구원 | 에러 시뮬레이션 장치 및 그 방법 |
-
2016
- 2016-04-01 US US15/089,352 patent/US10248521B2/en active Active
- 2016-04-03 EP EP16719591.6A patent/EP3278226A1/en active Pending
- 2016-04-03 CN CN201680018816.4A patent/CN107430540B/zh active Active
- 2016-04-03 KR KR1020177025981A patent/KR20170134378A/ko unknown
- 2016-04-03 JP JP2017551278A patent/JP2018511888A/ja active Pending
- 2016-04-03 WO PCT/US2016/025799 patent/WO2016161409A1/en unknown
- 2016-04-06 TW TW105110793A patent/TW201702875A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040243887A1 (en) * | 2000-05-01 | 2004-12-02 | Sharma Debendra Das | Method and apparatus for verifying error correcting codes |
CN101042938A (zh) * | 2006-03-24 | 2007-09-26 | 富士通株式会社 | 以纠错码存储器构成的具有冗余功能的半导体存储器设备 |
CN102630318A (zh) * | 2009-11-30 | 2012-08-08 | 国际商业机器公司 | 并行访问多个闪存/相变存储级存储器的固态存储系统 |
US20120266033A1 (en) * | 2011-04-15 | 2012-10-18 | Advanced Micro Devices, Inc. | Providing test coverage of integrated ecc logic en embedded memory |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109541444A (zh) * | 2018-10-18 | 2019-03-29 | 天津大学 | 基于混合粒度奇偶校验的集成电路故障注入检测方法 |
US11579969B2 (en) | 2021-03-04 | 2023-02-14 | Realtek Semiconductor Corp. | Verifying method for ECC circuit of SRAM |
Also Published As
Publication number | Publication date |
---|---|
US10248521B2 (en) | 2019-04-02 |
WO2016161409A1 (en) | 2016-10-06 |
JP2018511888A (ja) | 2018-04-26 |
US20160292059A1 (en) | 2016-10-06 |
TW201702875A (zh) | 2017-01-16 |
EP3278226A1 (en) | 2018-02-07 |
KR20170134378A (ko) | 2017-12-06 |
CN107430540B (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430540A (zh) | 用于硬件验证的运行时间ecc错误注入方案 | |
US6799287B1 (en) | Method and apparatus for verifying error correcting codes | |
US9148176B2 (en) | Circuits, apparatuses, and methods for correcting data errors | |
US9760434B2 (en) | ECC method for double pattern flash memory | |
US8918707B2 (en) | Codeword error injection via checkbit modification | |
CN102356383B (zh) | 用于确定集成电路中的容错性的方法和系统 | |
CN104579313B (zh) | 一种基于配置帧的在轨sram型fpga故障检测与修复方法 | |
US20140173361A1 (en) | System and method to inject a bit error on a bus lane | |
US20110219266A1 (en) | System and Method of Testing an Error Correction Module | |
US10372535B2 (en) | Encoding method and a memory storage apparatus using the same | |
CN107678879A (zh) | 一种用于总线及存储单元数据块实时校验的装置与方法 | |
US10353681B2 (en) | Systems and methods for using error correction and pipelining techniques for an access triggered computer architecture | |
US11126500B2 (en) | Error detection and correction with integrity checking | |
CN106571914B (zh) | 一种基于otp器件的密钥管理装置 | |
TWI696962B (zh) | 訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 | |
CN104637542B (zh) | 储存对应于数据的错误更正码的存储器装置及其操作方法 | |
WO2022058010A1 (en) | Fault resistant memory access | |
JPH01119997A (ja) | 半導体記憶装置 |
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 |