CN115543681A - 半导体装置和错误检测方法 - Google Patents
半导体装置和错误检测方法 Download PDFInfo
- Publication number
- CN115543681A CN115543681A CN202210632427.8A CN202210632427A CN115543681A CN 115543681 A CN115543681 A CN 115543681A CN 202210632427 A CN202210632427 A CN 202210632427A CN 115543681 A CN115543681 A CN 115543681A
- Authority
- CN
- China
- Prior art keywords
- address
- error
- bit error
- syndrome
- register
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 86
- 239000004065 semiconductor Substances 0.000 title claims abstract description 62
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 194
- 238000012937 correction Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims 3
- 229910052581 Si3N4 Inorganic materials 0.000 claims 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 claims 1
- 238000004193 electrokinetic chromatography Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 238000003745 diagnosis Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
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/085—Error detection or correction by redundancy in data representation, e.g. by using checking codes using codes with inherent redundancy, e.g. n-out-of-m codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/159—Remainder calculation, e.g. for encoding and syndrome calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种半导体装置,包括:校验子生成电路,被配置为基于数据以及与所述数据相对应的错误校正码来生成校验子码;错误确定电路,被配置为基于所述校验子码来检测所述数据中的1位错误;以及多位错误检测电路,被配置为通过使用被检测为具有1位错误的所述数据的错误地址和被检测为具有1位错误的所述数据的错误校验子码,来确定被检测为具有1位错误的所述数据是否包括多位错误。
Description
相关申请的交叉引用
于2021年6月29日提交的包括说明书、附图和摘要的日本专利申请No.2021-108192的公开内容,通过引用将其全部内容并入本文。
背景技术
本公开涉及一种半导体装置,并且(例如)涉及一种具有检测存储器中的多位错误的错误检测电路的半导体装置。
错误校正码中的一种错误校正码(错误校正码:ECC)是1位错误校正和2位错误检测码(单错误校正-双错误检测码:SEC-DED码)。下面列出了所公开的技术。
[非专利文献1]M.Y.Hsiao,"A Class of Optimal Minimum Odd-weight-columnSECDED Codes",IBM Journal of Research and Development,Volume 14,Issue 4,published by IBM,July 1970
即使使用这样的ECC,也已知不能检测到4位或更多位的所有偶数位错误,并且可能错误地将3位或更多位的奇数位错误识别为1位错误,并且正常位可能被错误地校正(非专利文献1)。
另一方面,日本未经审查的专利申请公开No.2019-109806(专利文献1)公开了一种通过提供用于生成两组ECC的编码器单元来增加多位错误检测概率的技术。
当能够进行1位错误校正和2位错误检测的ECC的错误检测和校正电路用于需要功能安全等的装置时,当检测到1位错误时,必须检测错误不是3位或更多位错误(多位错误)。在这里,需要功能安全支持的装置是,例如是需要功能安全标准(诸如ISO26262)的装置。
发明内容
在专利文件1中公开的技术中,在某些情况下不能检测到多位错误。因此,从功能安全的观点来看,每次检测到错误时,都需要进行软件诊断。每次重复访问包含1位错误的数据地址时,都需要进行软件诊断。结果,软件诊断的负荷增加。
根据本说明书的描述和附图,其他对象和新颖性特征将变得显而易见。
根据本发明的一个方面的半导体装置包括:校验子生成电路,被配置为基于数据以及与该数据相对应的错误校正码来生成校验子码;错误确定电路,被配置为基于校验子码来检测数据中的1位错误;以及多位错误检测电路,被配置为通过使用被检测为具有1位错误的数据的错误地址和被检测为具有1位错误的数据的错误校验子码,来确定被检测为具有1位错误的数据是否包括多位错误。
根据该半导体装置,能够减少软件诊断的负荷。
附图说明
图1是示出实施例中半导体装置的配置的框图。
图2是示出图1所示的多位错误检测电路的配置的示例的框图。
图3是示出第一实施例中半导体装置的配置示例的框图。
图4是用于解释从存储器读取时检测错误的情况的图。
图5是示出第二实施例中半导体装置的配置示例的框图。
图6是示出第三实施例中半导体装置的配置示例的框图。
具体实施方式
下面将参考附图描述实施例和修改的示例。然而,在以下描述中,相同的部件由相同的附图标记表示,并且可以省略其重复描述。
如上所述,当在需要功能安全支持的装置中使用被配置为校正1位错误校正和检测2位错误的ECC错误检测和校正电路时,需要检查检测到的1位错误不是3位或更多位错误。在本公开之前,现有公开已经设想了通过软件诊断真1位错误。然而,当重复访问包括1位错误的数据的地址以读取数据时,每次都需要软件诊断,并且软件诊断的负荷增加。
将参照图1描述用于解决上述问题的实施例。图1是示出实施例中的半导体装置的配置的框图。
根据本实施例的半导体装置中的错误检测和校正电路(ED&C)包括校验子生成电路(SYGN)、错误确定电路(EJDG)和多位错误检测电路(MBED)。这里,校验子生成电路(SYGN)基于从存储器中读取的数据和添加到数据的ECC来生成校验子码(SYC)。ECC可以是能够进行1位错误校正的码,或者可以是能够进行1位错误校正和2位错误检测的码。错误确定电路(EJDG)通过使用校验子码(SYC)来确定1位错误,并且输出指示已经检测到1位错误的1位错误确定信号(1EJ)。多位错误检测电路(MBED)基于1位错误确定信号(1EJ)、在其中检测到位错误的数据的地址(ADR)以及检测到错误时的校验子码(SYC),来确定被检测为1位错误的位错误是否为多位错误。
当在相应地址第一次检测到1位错误时,多位错误检测电路(MBED)将检测结果通知CPU(中央处理单元)。这是为了让CPU使用软件诊断是否错误地将多位错误检测为1位错误。当从存储器中重复读取包括1位错误的数据时,多位错误检测电路(MBED)检查第一次读取的校验子码和当前校验子码在第二次和后续读取中是否彼此一致。如果校验子码不一致,多位错误检测电路(MBED)会通知CPU,作为1位错误的检测结果实际上是多位错误。当校验子码彼此重合时,多位错误检测电路(MBED)不会通知CPU检测结果为1位错误。
接下来,将参考图2描述多位错误检测电路(MBED)。图2是示出图1所示的多位错误检测电路的配置的示例的框图。
多位错误检测电路(MBED)具有第一地址寄存器(ATR)和第二地址寄存器(APR)。第一地址寄存器(ATR)被配置为当检测到位错误时捕获数据的地址(ADR)。多位错误检测电路(MBED)还包括第一校验子码寄存器(STR)和第二校验子码寄存器(SPR)。第一校验子码寄存器(STR)被配置为捕获其中已经检测到位错误的校验子码(SYC)。
多位错误检测电路(MBED)还包括地址比较电路(ACM),地址比较电路(ACM)用于比较第一地址寄存器(ATR)的值和第二地址寄存器(APR)的值。多位错误检测电路(MBED)还包括校验子比较电路(SCM),校验子比较电路(SCM)用于比较第一校验子码寄存器(STR)的值和第二校验子码寄存器(SPR)的值。
多位错误检测电路(MBED)具有多位错误判断电路(MEJD),多位错误判断电路(MEJD)在检测到1位错误时判断第一地址寄存器(ATR)的值和第二地址寄存器(APR)的值是否匹配,以及第一校验子码寄存器(STR)的值和第二校验子码寄存器(SPR)的值是否不匹配。
多位错误检测电路(MBED)包括用于控制第一地址寄存器(ATR)、第二地址寄存器(APR)、第一校验子码寄存器(STR)和第二校验子码寄存器(SPR)的控制电路(CCNT)。
此外,多位错误检测电路(MBED)包括向CPU通知1位和多位错误信息的CPU接口电路(CPU I/F)。CPU接口电路(CPU I/F)接收来自控制电路(CCNT)的地址匹配信息(AMT)、来自多位错误判断电路(MEJD)的多位错误信息(MEJ)、以及指示已经检测到1位错误的信息(1EJ)。
在该实施例中,仅第一次在对应地址检测到1位错误时,CPU才通过使用软件来诊断作为1位错误的检测结果是否实际上是多位错误。然而,当从存储器重复读取包括1位错误的数据时,在第二次和随后读取时,检查第一次读取时的校验子码与当前校验子码是否匹配。因此,不必在第二次和随后读取时执行软件诊断。结果,可以通过软件减少CPU的负载。
此外,与专利文献1不同,在该实施例中不需要具有两组ECC,从而可以可靠地检测多位错误。因为不需要两组ECC,所以不需要使存储器容量变大。
此外,根据该实施例可以执行如专利文献1中所述的2位错误检测功能,而不须要如专利文献1中所示的2位错误检测装置。因此,可以通过减少ECC位的数目来减少存储器容量。
第一实施例
图3是示出第一实施例中的半导体装置的配置示例的框图。
半导体装置100包括CPU 1、存储器2、错误检测和校正电路(ED&C)3以及内部总线4。例如被配置作为微控制器的半导体装置100形成在一个半导体芯片中。存储器2例如是闪存存储器。存储器2存储由CPU 1执行的程序和由程序处理的数据。CPU 1、存储器2、和错误检测和校正电路3可以形成在不同的芯片上。替代地,CPU 1和错误检测和校正电路(ED&C)3可以形成在同一半导体芯片中,而存储器2可以形成在另一半导体芯片中。存储器2和错误检测和校正电路(ED&C)3可以形成在同一半导体芯片中,而CPU 1可以形成在另一半导体芯片中。
错误检测和校正电路(ED&C)3包括ECC编码器(ECCE)5、校验子生成电路(SYGN)6、错误确定电路(EJDG)7和校正电路(SDEC)8。
错误检测和校正电路(ED&C)3包括第一地址寄存器(ATR)9、三个第二地址寄存器(APR)10a、10b和10c、以及三个地址比较电路(ACM)13a、13b和13c。错误检测和校正电路(ED&C)3还包括第一校验子码寄存器(STR)11、三个第二校验子寄存器(SPR)12a、12b和12c、以及三个校验子比较电路(SCM)14a、14b和14c。错误检测和校正电路(ED&C)3还包括多位错误判断电路(MEJD)15和控制电路(CCNT)16。
错误检测和校正电路(ED&C)3还包括错误标志掩码电路17、错误标志寄存器18和中断控制电路(INTC)36。在本实施例中,错误标志掩码电路17、错误标志寄存器18和中断控制电路(INTC)36构成CPU接口电路(CPU I/F)。
ECC编码器(ECCE)5基于从CPU 1或半导体装置100外部写入存储器2中的写入数据(WD),来生成能够进行1位错误校正和2位错误检测的ECC。例如,当写入数据WD是32位时,ECC是7位。ECC编码器(ECCE)5将生成的ECC输出到存储器2。经由写入数据总线19传送的写入数据(WD)和从ECC编码器(ECCE)5输出的ECC被存储在存储器2中。
校验子生成电路(SYGN)6基于从存储器2读取的数据(FRD)和ECC来生成校验子码(SYC)。校验子生成电路(SYGN)6例如从32位数据(FRD)和7位ECC生成7位校验子码(SYC)。校验子生成电路(SYGN)6将生成的校验子码(SYC)输出到错误确定电路(EJDG)7、校正电路(SDEC)8和第一校验子码寄存器(STR)11。
错误确定电路(EJDG)7基于校验子码(SYC)来生成1位错误确定信号(1EJ)和2位错误确定信号(2EJ)。当检测到1位错误时,错误确定电路(EJDG)7激活1位错误确定信号(1EJ),并将其输出到控制电路(CCNT)16和错误标志掩码电路17。当检测到2位错误时,错误确定电路(EJDG)7激活2位错误确定信号(2EJ)并将其输出到错误标志寄存器18。
校正电路(SDEC)8接收数据(FRD),校验子码(SYC)和1位错误确定信号(IEJ)。然后,校正电路(SDEC)8经由读取数据总线39将所读取的数据(RD)输出到CPU 1。当检测到1位错误时,校正电路(SDEC)8校正数据(FRD)中的错误,并输出所校正的数据作为所读取的数据(RD)。当未检测到1位错误时,校正电路(SDEC)8输出数据(FRD)作为所读取的数据(RD)。
控制电路(CCNT)16接收从地址比较电路(ACM)13a、13b和13c输出的1位错误确定信号(IEJ)和地址比较信号(Aca、ACb、ACc)。控制电路(CCNT)16将第一地址控制信号(AT)输出到第一地址寄存器(ATR)9,并将第二地址控制信号(APa、APb、APc)输出到第二地址寄存器(APR)10a、10b和10c。控制电路(CCNT)16将第一校验子控制信号(ST)输出到第一校验子码寄存器(STR)11,并且将第二校验子控制信号(Spa、SPb、SPc)输出到第二校验子寄存器(SPR)12a、12b和12c。控制电路(CCNT)16执行地址比较信号(Aca、ACb、ACc)的逻辑或操作,并将逻辑或结果作为地址匹配信号(AMT)输出到错误标志掩码电路17。
地址比较电路(ACM)13a、13b和13c分别比较存储在第一地址寄存器(ATR)9中的地址和存储在第二地址寄存器(APR)10a、10b和10c中的地址。然后,地址比较电路(ACM)13a、13b、13c将地址比较信号(ACa、ACb、ACc)输出到控制电路(CCNT)16和多位错误判断电路(MEJD)15。当存储在第一地址寄存器(ATR)9中的地址与存储在第二地址寄存器(APR)10a、10b和10c中的任何地址匹配时,地址比较电路(ACM)13a、13b和13c激活相应的地址比较信号(Aca、ACb、ACc)。
校验子比较电路(SCM)14a、14b和14c比较存储在第一校验子码寄存器(STR)11中的校验子码与存储在第二校验子寄存器(SPR)12a、12b和12c中的校验子码。然后,校验子比较电路(SCM)14a、14b和14c将校验子比较信号(SCa、SCb、SCc)输出到多位错误判断电路15。当第一校验子码寄存器(STR)11的校验子码与第二校验子寄存器(SPR)12a、12b和12c的任何校验子码匹配时,校验子比较电路(SCM)14a、14b和14c激活相应的校验子比较信号(SCa、SCb、SCc)。
多位错误判断电路(MEJD)15基于地址比较信号(Aca、ACb、ACc)和校验子比较信号(SCa、SCb、SCc)来生成多位错误确定信号(MEJ)。多位错误确定信号(MEJ)被输出到错误标志寄存器18和中断控制电路(INTC)36。当地址比较信号(Aca、ACb、ACc)中的任何一个有效并且所有校验子比较信号(SCa、SCb、SCc)无效时,多位错误判断电路(MEJD)15激活多位错误确定信号(MEJ)。
错误标记掩码电路17基于1位错误确定信号(1EJ)和地址匹配信号(AMT)来生成1位错误判定信号(1ED)。当1位错误确定信号(1EJ)有效而地址匹配信号(AMT)无效时,错误标志掩码电路17激活1位错误判定信号(1ED)。
向错误标志寄存器18输入1位错误判定信号(1ED)、2位错误确定信号(2EJ)、多位错误确定信号(MEJ)和地址溢出信号(AOF)。当1位错误判定信号(1ED)有效时,设置1位错误标志(1E)。当2位错误确定信号(2EJ)有效时,设置2位错误标志(2E)。当多位错误确定信号(MEJ)有效时,设置多位错误标志(ME)。当地址溢出信号(AOF)有效时,设置溢出标志(OV)。
中断控制电路(INTC)36基于1位错误判定信号(1ED)、2位错误确定信号(2EJ)和多位错误确定信号(MEJ),来生成中断信号(IRQ),并将生成的中断信号(IRQ)输出到CPU 1。当1位错误判定信号(1ED)、2位错误确定信号(2EJ)或多位错误确定信号(MEJ)有效时,中断控制电路(INTC)36激活中断信号(IRQ)。
接下来,半导体装置100的操作将参考图3和图4描述。图4用于说明从存储器读取时检测到错误的情况的示意图。
存储器2存储由CPU 1执行的程序。ECC编码器(ECCE)5基于从半导体装置100的外部提供的程序数据来生成ECC。程序数据与ECC一起被写入存储器2中。
CPU 1经由地址总线24向存储器2发送地址(ADR),以指示存储器2读取与该地址(ADR)相对应的数据(步骤S1)。
存储器2基于地址(ADR)读出所读取的数据(FRD)以及与所读取的数据(FRD)相对应的ECC,并将所读取的数据(FRD)和ECC发送到校验子生成电路(SYGN)6。错误确定电路(EJDG)7基于由校验子生成电路(SYGN)6生成的校验子码(SYC),来执行错误确定操作(步骤S2)。当错误确定电路(EJDG)7检测到1位错误时,错误确定电路(EJDG)7激活1位错误确定信号(1EJ=1)。
当错误确定电路(EJDG)7检测到1位错误时,校正电路(SDEC)8和控制电路(CCNT)16执行以下步骤(步骤S3)。
校正电路(SDEC)8对校验子码(SYC)进行解码以找到1位错误的位位置。然后,校正电路(SDEC)8接收有效的1位错误确定信号(1EJ),并通过基于1位错误的位位置来反转错误位的数据,来校正所读取的数据(FRD)。
控制电路(CCNT)16接收1位错误确定信号(IEJ),并控制第一地址寄存器(ATR)9从地址总线24捕获在其中检测到位错误的数据的地址。并行地,控制电路(CCNT)16控制第一校验子码寄存器(STR)11以从校验子生成电路(SYGN)6捕获在其中检测到位错误的数据的校验子码。在下文中,在其中检测到位错误的数据的地址被称为“错误地址(EAD)”。在下文中,在其中检测到位错误的数据的校验子码被称为“错误校验子码(ESC)”。
地址比较电路(ACM)13a、13b、13c分别比较在第一地址寄存器(ATR)9和第二地址寄存器(APR)10a、10b、10c中捕获的地址(步骤S4)。第二地址寄存器(APR)10a、10b、10c存储与过去在其中检测到1位错误的数据相对应的地址。因此,通过地址比较,确定在第一地址寄存器(ATR)9中捕获的地址是否是与在其中已经检测到1位数据错误的数据相对应的地址。当在第一地址寄存器(ATR)9中捕获的地址与第二地址寄存器(APR)10a、10b、10c的任何地址不匹配时(AC=0),执行情况1的操作。顺便提及,如果还没有在第一地址寄存器(ATR)中捕获错误地址,则在第二地址寄存器(APR)10a、10b、10c中设置不同于存储器2的地址空间的地址。
(1)情况1
情况1是当第一次检测到与从CPU 1发送的地址相对应的数据中的1位错误时。在下文中,将描述情况1的操作。
(1-1)错误检测和校正电路(ED&C)3的操作。地址比较电路(ACM)13a、13b、13c将作为它们的比较结果的地址比较信号(ACa、ACb、ACc)分别发送到控制电路(CCNT)16。在情况1中,第一地址寄存器(ATR)9的地址与在其中第一次检测到1位错误的数据的地址相对应。因此,地址比较信号(ACa、ACb、ACc)指示第一地址寄存器(ATR)9的地址与第二地址寄存器(APR)10a、10b、10c的任何地址不匹配。控制电路(CCNT)16基于地址比较信号(ACa、ACb、ACc),来控制由第一地址寄存器(ATR)9捕获的地址被复制到第二地址寄存器(APR)10a、10b和10c中的任何一个。控制电路(CCNT)16保存指示第二地址寄存器(APR)10a、10b和10c中的哪一个已经捕获错误地址(EAD)的信息。控制电路(CCNT)16控制将第一地址寄存器(ATR)9的错误地址复制到第二地址寄存器(APR)10a、10b和10c中没有捕获错误地址(EAD)的寄存器。
在本实施例中,控制电路(CCNT)16控制第二地址寄存器(APR)10a、10b和10c以此顺序捕获错误地址(EAD)。
当错误地址(EAD)没有在任何第二地址寄存器(APR)10a、10b、10c中被捕获时,控制电路(CCNT)16激活第二地址控制信号(APa)并控制将第一地址寄存器(ATR)9的地址复制到第二地址寄存器(APR)10a。控制电路(CCNT)16通过选择第二地址寄存器(APR)10a来激活第二校验子控制信号(SPa)。存储在第一校验子码寄存器(STR)11中的错误校验子码(ESC)被复制到第二校验子码寄存器(SPR)12a。因此,错误地址(EAD)被存储在第二地址寄存器(APR)10a中,错误校验子码(ESC)被存储在第二校验子码寄存器(SPR)12a中。
如果第二地址寄存器(APR)10a、10b已经捕获了另一错误地址(EAD),则控制电路(CCNT)16激活第二地址控制信号(APc)并控制将第一地址寄存器(ATR)9的地址复制到第二地址寄存器(APR)10c。在这种情况下,控制电路(CCNT)16通过选择第二地址寄存器(APR)10c来激活第二校验子控制信号(SPc),并控制将第一校验子码寄存器(STR)11的内容复制到第二校验子码寄存器(SPR)12c。
如果每个第二地址寄存器(APR)10a、10b、10c已经捕获了错误地址(EAD),则不执行第二地址寄存器(APR)10a、10b、10c的复制操作。类似地,不执行第二校验子码寄存器(SPR)12a、12b、12c的复制操作。然后,控制电路(CCNT)16激活被确定为地址溢出的地址溢出信号(AOF)。
在情况1中,在第一地址寄存器(ATR)9中捕获的地址与第二地址寄存器(APR)10a、10b、10c的任何地址不匹配。也就是说,地址比较信号(ACa、ACb、ACc)中的任何一个都是无效的,指示不匹配。因此,多位错误判断电路(MEJD)15使多位错误确定信号(MEJ)无效。此外,控制电路(CCNT)16使地址匹配信号(AMT)无效,该地址匹配信号(AMT)指示第一地址寄存器(ATR)9的地址是否与第二地址寄存器(APR)10a、10b和10c中的任何一个的地址一致。因此,错误标志掩码电路17激活1位错误判定信号(1ED)。因此,错误标志寄存器18的1位错误标志(1E)被设置。中断控制电路(INTC)36还激活中断信号(IRQ)。
(1-2)软件诊断
当在与由CPU 1给出的地址相对应的数据中第一次检测到1位错误时,即,当检测到1位错误,但是存储在第一地址寄存器(ATR)9中的错误地址(EAD)与存储在第二地址寄存器(APR)10a、10b和10c中的任何地址不一致,并且不发生地址溢出时,将描述CPU 1的操作。
在检测到1位错误之后,CPU 1接收中断信号(IRQ)并读取错误标志寄存器18。因此,CPU 1检查中断因素是1位错误,然后在中断例程中诊断检测到的1位错误是否是真1位错误。
如上所述,存在3位或更多的奇数位的错误被识别为1位错误,并且该位中没有错误的数据可以会被校正。使用错误校正的数据可能导致安全违规,并且如果它是多位错误,则需要将装置转换到安全状态。
它是否是真1位错误,可以由存储器2中存储的软件向存储器2中的数据添加校验和或用于循环冗余校验(CRC)的数据来诊断。将ECC添加到每个字(例如,32位)单元并存储在存储器2中。另一方面,校验和或CRC数据通常从多个字的数据计算,并且针对多个字的每一个存储在存储器2中,以便不增加存储器容量。数据还包含程序的目标码。
因此,当诊断在其中检测到1位错误的数据时,CPU 1读出与地址区域相对应的数据,在该地址区域中包括在其中检测到1位错误的数据的多个字的数据被共同存储。读出多个字的数据,使用每个字的对应ECC执行错误校正。然后,CPU 1从错误校正后的多个字的数据计算校验和或CRC数据,并将其与存储在存储器2中的校验和或CRC数据进行比较。顺便提及,由多个字的所读取的数据计算的校验和或CRC数据可以由专用算术单元计算。因此,可以检查在错误校正之后多个字的所读取的数据中没有错误,并且可以确定1位错误校正是否已经被校正。即,可以检查检测到的1位错误是真1位错误。因此,由于CPU 1用于诊断检测到的1位错误是否是真1位错误,所以当第一次检测到1位错误时,负载被施加到CPU 1。
如果其通过诊断被验证为真1位错误,则CPU 1继续使用错误校正数据进行操作。如果CPU 1确定错误不是真1位错误而是多位错误,则它将装置100转换到安全状态。例如,即使当发生地址溢出时,CPU1也将半导体装置100转换到安全状态。
将描述由第一地址寄存器(ATR)9捕获的地址与由第二地址寄存器(APR)10a、10b和10c中的任何一个捕获的地址匹配的情况,即地址比较信号中的任何一个是有效的(AC=1)。当重复读取在相同地址具有1位错误的数据时,在第二次和随后的读取中检测位错误。
校验子比较电路(SCM)14a、14b和14c将第一校验子码寄存器(STR)11中捕获的校验子码(SYC)与第二校验子码寄存器(SPR)12a、12b和12c中捕获的校验子码(SYC)进行比较(步骤S5)。
当由第一校验子码寄存器(STR)11捕获的校验子码(SYC)与由第二校验子码寄存器(SPR)12a、12b、12c中的任何一个捕获的校验子码匹配时,即校验子比较信号中的任何一个有效的(SC=1),此后执行情况2的操作。
(2)情况2
在情况2中,在第一校验子码寄存器(STR)11中捕获的错误校验子码(ESC)和在第二校验子码寄存器(SPR)12a、12b和12c(ESC)中的任何一个中捕获的错误校验子码(ESC)匹配。换句话说,与在第一校验子码寄存器(STR)11中捕获的校验子码相对应的所读取的数据和与在第二校验子码寄存器(SPR)12a、12b和12c的任何一个中捕获的校验子码(SYC)相对应的所读取的数据匹配。
在情况2中,可以认为新检测到的1位错误类似于先前检测到的1位错误。在情况1中已经由软件诊断检查了与存储在第二校验子码寄存器(SPR)12a、12b或12c中的错误校验子码(ESC)相对应的所读取的数据是真1位错误。因此,用于检查此时检测到的1位错误是真1位错误的软件诊断变得不必要。
基于地址比较信号(ACa、ACb、ACc),控制电路(CCNT)16确定在第一地址寄存器(ATR)中捕获的地址已被存储在第二地址寄存器(APR)10a、10b、10c中的一个第二地址寄存器(APR)中。因此,控制电路(CCNT)16不控制将第一地址寄存器(ATR)中捕获的错误地址(EAD)复制到第二地址寄存器(APR)10c。此外,控制电路(CCNT)16不控制将由第一校验子码寄存器(STR)11捕获的错误校验子码(ESC)复制到第二校验子码寄存器(SPR)12c。
多位错误判断电路(MEJD)15基于校验子比较信号(SCa、SCb、SCc)来输出多位错误确定信号(MEJ),校验子比较信号(SCa、SCb、SCc)是校验子比较电路14a、14b和14c的比较结果,校验子比较电路14a、14b和14c对应于其地址与在第一地址寄存器(ATR)9中捕获的地址匹配的第二地址寄存器(APR)。
例如,当第二地址寄存器(APR)10b的地址与第一地址寄存器(ATR)9的地址匹配时,多位错误判断电路(MEJD)15基于校验子比较信号(SCb)来输出多位错误确定信号(MEJ)。当第一校验子码寄存器(STR)11的校验子码与第二校验子码寄存器(SPR)12b的校验子码匹配时,多位错误判断电路(MEJD)15使多位错误确定信号(MEJ)无效。
如上所述,在情况2中,由第二地址寄存器(APR)10a、10b和10c中的任何一个捕获的错误地址(EAD)与在第一地址寄存器(ATR)9中捕获的、是新检测的1位错误的错误地址(EAD)匹配。因此,地址比较信号ACa、ACb、ACc之一被激活。
因此,控制电路(CCNT)16基于地址比较信号(ACa、ACb、ACc)来激活地址匹配信号(AMT)。因此,错误标志掩码电路17屏蔽1位确定信号(1EJ),并且1位错误判定信号(1ED)变为无效。因此,错误标志寄存器18的1位错误标志(1E)未被设置。中断控制电路(INTC)36还使中断信号(IRQ)无效。因此,由于不发生中断并且错误标志寄存器18的1位错误标志(1E)未被设置,所以CPU 1不执行不必要的软件诊断处理。
(3)情况3
尽管第一地址寄存器(ATR)9的地址与第二地址寄存器(APR)10a、10b、10c中的任何一个的地址匹配,但是如果校验子码寄存器(STR)11的第一校验子码与第二校验子码寄存器(SPR)12a、12b、12c的任何校验子码不匹配,即SC=0,则执行随后的情况3的操作。
在情况3中,它指示新捕获到第一校验子码寄存器(STR)11的错误校验子码(ESC)与捕获到第二校验子码寄存器(SPR)12a、12b、12c的任何错误校验子码(ESC)不一致。这意味着位错误的内容已经改变,即,具有1位错误的数据已经改变为具有多位错误的数据(已经发生3位或更多位的错误),并且可以认为多位错误已被判断为1位错误。
此时,类似于情况2,控制电路(CCNT)16基于地址比较信号(ACa、ACb、ACc)确定在第一地址寄存器(ATR)中新捕获的地址已被存储在第二地址寄存器(APR)10a、10b、10c中的一个第二地址寄存器(APR)中。因此,类似于情况2,控制电路(CCNT)16不控制将在第一地址寄存器(ATR)中新捕获的错误地址(EAD)复制到第二地址寄存器(APR)10c。此外,控制电路(CCNT)16不控制将在第一校验子码寄存器(STR)11中新捕获的错误校验子码(ESC)复制到第二校验子码寄存器(SPR)12c。
然而,由于在第一校验子码寄存器(STR)11中新捕获的错误校验子码(ESC)与在第二校验子寄存器(SPR)12a、12b和12c中捕获的任何错误校验子码(ESC)不匹配,因此任何校验子比较信号(SCa、SCb、SCc)变得无效。因此,多位错误判断电路15激活多位错误确定信号(MEJ)。
如上所述,在情况3中,在第一地址寄存器(ATR)9中新捕获的错误地址(EAD)与在第二地址寄存器(APR)10a、10b和10c的任何一个中捕获的错误地址(EAD)匹配。因此,地址比较信号(ACa、ACb、ACc)之一被激活。
因此,控制电路(CCNT)16激活地址匹配信号(AMT)。因此,基于1位错误确定信号(1EJ)的错误标志寄存器18的1位错误标志(1E)的设置被错误标志掩码电路17屏蔽。然而,由于多位错误确定信号(MEJ)是有效的,因此多位错误标志(ME)被设置。此外,由于多位错误确定信号(MEJ)是有效的,所以中断控制电路(INTC)36将中断信号(IRQ)激活为多位错误,并将中断信号(IRQ)发送到CPU 1。尽管在校正电路(SDEC)8中执行错误校正操作,但是数据没有被正确地校正。
CPU 1接收中断信号(IRQ)并读取中断处理例程中的错误标志寄存器18以检查已经检测到多位错误。在检查已经检测到多位错误之后,CPU 1将半导体装置100转换到安全状态。
(4)情况4
当从存储器2读取的数据中存在2位错误时,错误确定电路(EJDG)7基于由校验子生成电路(SYGN)6生成的校验子码(SYC),来执行错误确定操作(步骤S2)。错误确定电路(EJDG)7检测2位错误并激活2位错误确定信号(2EJ)(2EJ=1)。此后,执行情况4的操作。
在情况4中,中断控制电路(INTC)36接收2位错误确定信号(2EJ)并将中断信号(IRQ)输出到CPU 1。CPU 1响应于中断信号(IRQ)读取错误标志寄存器18。即使CPU 1识别出数据包括2位错误,来自存储器2的所读取的数据也不被校正并且数据是错误的。因此,CPU1将半导体装置100切换到安全状态。
存储器的保持故障通常逐位发生。位故障累积,并且1位错误累积为2位错误,随后累积为3位错误。在本实施例中,当1位错误转变为2位错误时,它由错误确定电路(EJDG)7的2位错误检测功能检测。然而,错误确定电路(EJDG)7不能检测3位错误,但是可能错误地确定为1位错误。在本实施例中,当确定存在1位错误时,可以检查它是否是多位错误。存储器的故障不仅包括位故障,而且还包括导致突然的多位错误的地址解码器的故障。根据本实施例,可以检测这些错误。
如上所述,根据本实施例的半导体装置包括具有1位错误校正和2位错误检测功能的错误检测和校正电路,以及多位错误检测电路。
多位错误检测电路具有以下功能。
(a)用于响应于1位错误确定信号将错误地址(EAD)捕获到第一地址寄存器(ATR),并且同时将错误校验子码(ESC)捕获到第一校验子码寄存器(STR)的功能。
(b)用于比较第一地址寄存器(ATR)的地址和第二地址寄存器(APR)的地址的功能,如果在第二地址寄存器中不存在匹配,则将第一地址寄存器(ATR)的值作为新地址复制到第二地址寄存器(APR),并且将第一校验子寄存器(STR)的值复制到第二校验子寄存器(SPR)。
(c)比较第一地址寄存器(ATR)的地址和第二地址寄存器(APR)的地址的功能,并且如果它们匹配,则比较第一校验子码寄存器(STR)的值和与匹配的第二地址寄存器(APR)相对应的第二校验子码寄存器(SPR)的值。
(d)当在(c)中第一和第二同步寄存器(STR)和第二同步寄存器(SPR)的值匹配时,屏蔽到CPU的、出现1位错误(可校正位错误)的通知的功能。
(e)当在(c)中第一和第二校验子寄存器的值不匹配时,输出中断作为多位错误,并设置多位错误标志的功能。
根据本实施例的半导体装置具有上述功能(d),从而可以防止由于相同地址的相同1位错误而导致的、已被软件诊断检查为不是多位错误的中断操作重复发生。仅当第一次检测到1位错误时,才执行每次检测到1位错误时需要的、是否是真1位错误的软件诊断。因此,降低了CPU的负荷。
根据本实施例的半导体装置具有上述功能(e),使得CPU可以识别多位错误。这使得可以将半导体装置转换到安全状态。
当第一次检测到1位错误时,通过软件诊断检查其是否是多位错误,并且当第二次或更晚检测到相同地址的1位错误时,通过本实施例的功能可以可靠地检测多位错误。
此外,根据本实施例的半导体装置不需要如专利文件1中那样具有两组ECC,并且可以可靠地检测多位错误,并且不会引起第二组ECC的存储容量变大的问题。
第二实施例
图5是示出第二实施例中的半导体装置的配置示例的图。
根据第二实施例的半导体装置100与第一实施例的不同之处在于,错误确定电路(EJDG)7不具有第一实施例的2位错误确定功能、不基于2位错误生成中断、并且错误标志寄存器18不包括2位错误标志。第二实施例中的半导体装置100的其他配置与第一实施例中的相同。
除去不检测2位错误,第二实施例中的半导体装置100的操作与所有第一实施例的半导体装置100的操作相同。
由于1位错误时的校验子码(SYC)和2位错误时的校验子码(SYC)彼此不同,所以多位错误确定信号(MEJ)可以检测2位错误。因此,错误确定电路(EJDG)7不一定需要具有2位错误功能。
当错误确定电路(EJDG)7具有如第一实施例的2位错误检测功能时,即,第一实施例的优点在于,即使2位错误不是由1位错误的累积引起的,也不必执行软件诊断,而且很少同时发生2位的保持故障。另一方面,在第二实施例中,2位错误也被确定为1位错误,因此没有区别。因此,有必要在第一次1位错误检测时通过软件诊断来判断是真1位错误还是两位或更多位的多位错误。
然而,在本实施例的错误检测和校正电路(ED&C)3中,由于假设当在特定地址处检测到第一1位错误时执行软件诊断,所以不必具有如第一实施例的2位错误检测功能。也就是说,由于在第一和第二实施例中,当第一次在地址处检测到1位错误时执行软件诊断,所以第一和第二实施例之间的软件诊断的CPU负载没有太大差别。
另一方面,在由于保持故障的累积导致的2位错误的情况下,在第二实施例中被判断为多位错误,发生中断,并且生成多位错误标志。因此,可以在发生错误之后将装置转换到安全状态而不需要软件诊断。
例如,当数据宽度是32位时,第一实施例中用于1位错误校正和2位错误检测的ECC的位数需要是7位。在本实施例中,由于不提供第一实施例的两位错误检测功能并且执行1位错误校正,所以ECC的位数可以被设置为6位,并且可以减少1位。换句话说,存储器容量可以减少2.56%。
如上所述,第二实施例指示不必提供第一实施例的2位检测功能,使得可以减少ECC的位数,使得可以减少存储器2的存储单元阵列区域的面积。存储器容量越大,影响越大。
第三实施例
图6是示出第三实施例中的半导体装置的配置示例框图。
与第二实施例相比,第三实施例还包括CRC计算电路(FCRC)40和地址选择器(ASLC)41。
CRC计算电路(FCRC)40通过内部总线4连接到CPU 1。然后,将读取总线39上的所读取的数据(RD)输入到CRC计算电路(FCRC)40。然后,CRC计算电路(FCRC)40将CRC诊断地址(CAD)输出到地址选择器(ASLC)41,并将CRC计算完成信号(CCE)输出到CPU 1。
地址选择器(ASLC)41接收地址总线24上的CRC诊断地址(CAD)和地址(ADR)。然后,地址选择器(ASLC)41选择地址(ADR)和CRC诊断地址(CAD)中的任何一个,并将地址(FAD)输出到存储器2。
接下来,将描述第三实施例中的半导体装置的操作。
通常,半导体装置通过复位来初始化,并通过释放复位来开始操作。为了功能安全,强烈建议在半导体装置中复位释放之后立即执行各种电路的诊断测试。
例如,在本实施例中,提供了可以在不使用CPU 1的情况下高速诊断存储器2的整个区域的CRC计算电路40。在复位释放之后,CRC计算电路40连续地读取存储器2的整个区域,并用预定的多项式执行CRC计算。
在复位释放之后的CRC诊断中,地址选择器(ASLC)41选择CRC诊断地址(CAD)作为存储器2的地址(FAD)。然后,CRC计算电路(FCRC)40自动递增存储器2的所有区域的地址,读取存储器2的所有区域的数据,并计算CRC值。在CRC操作期间,存储器2的整个区域中的数据被读取,但是CPU 1被设置为停止状态。所读取的数据被忽略并且CPU 1不工作。在完成对存储器2的所有区域的数据读取并计算CRC值之后,CRC计算电路(FCRC)40激活CRC操作完成信号(CCE)并将CRC计算完成信号(CCE)传输到CPU 1。
CPU 1接收CRC计算完成信号(CCE),从停止状态转换到正常状态,并且经由内部总线4从CRC计算电路(FCRC)40读取计算结果。CPU 1通过读取数据总线39读取存储在存储器2中的CRC值。CPU 1比较从CRC计算电路(FCRC)40和存储器2读取的两个CRC值以检查写入存储器2中的数据是正确的。
当存储器2的整个区域被CRC计算电路(FCRC)40读取时,错误检测和校正电路(ED&C)3也起作用,并且当存在1位错误时校正数据。因此,在存储器2的缺陷仅仅是真1位错误的情况下,错误校正被正确地执行,因此,CRC诊断结果是通过(passing)判断。另一方面,当存在2位或更多位的错误时,不能执行错误校正,从而CRC诊断结果是拒绝(rejection)判断。此外,当执行CRC诊断时,错误检测和校正电路(ED&C)3起作用。因此,当存在1位错误时,如第一实施例所述的执行错误地址(EAD)的捕获和错误校验子码(ESC)的捕获。可以基于软件诊断的结果,将在存储器2的整个区域中具有真1位错误信息的错误地址(EAD)捕获到第二地址寄存器(APR),并且在这种情况下将错误校验子码(ESC)捕获到第二校验子码寄存器(SPR)。
根据这种启动方法,在切断半导体装置的电源的系统中,即使被捕获一次的错误校验子码(ESC)和错误地址(EAD)没有存储在非易失性存储器中,也可以在每次启动半导体装置时再次捕获它们。这大大降低了在正常操作期间必须再次执行第一1位错误检测的概率。这是因为在断电之前作为1位错误捕获的错误地址(EAD)和错误校验子码(ESC)可以在下一次通电之后的CRC诊断周期中被检测。因此,通过添加检查存储器2的整个区域的CRC计算电路,可以进一步减少在正常操作期间由于软件诊断而引起的CPU负载。
在电源关闭后的启动时间存在余量的系统中,CPU 1可以从RAM(未示出)读取指令,并通过软件执行存储器2的整个区域的CRC诊断操作,而不提供由硬件配置的CRC计算电路。这里,用于诊断的软件从存储器2读取并存储在RAM f中。因此,可以获得与提供CRC计算电路相同的效果,并且不限于由硬件配置的CRC计算电路的实施方式。
虽然已经基于实施例和示例具体描述了由公开人员做出的公开,但是本公开不限于上述实施例和示例,并且不用说,在不脱离其要点的情况下可以做出各种修改。
例如,在该实施例中,已经描述了三个第二地址寄存器、三个第二校验子寄存器、三个地址比较电路和三个校验子比较电路的示例,但是可以提供至少一个或多个。
在该实施例中,描述了用于1位错误校正和2位错误检测的错误检测和校正电路,但是本发明不限于此并且本发明可以被应用于错误检测和校正电路,例如1位和2位错误校正和3位错误检测。
Claims (17)
1.一种半导体装置,包括:
校验子生成电路,被配置为基于数据以及与所述数据相对应的错误校正码来生成校验子码;
错误确定电路,被配置为基于所述校验子码来检测所述数据的1位错误,并基于检测结果生成1位错误检测信号;以及
多位错误检测电路,被配置为通过使用检测到具有所述1位错误的所述数据的错误地址和检测到具有所述1位错误的所述数据的错误校验子码,来确定检测到具有所述1位错误的所述数据是否包括多位错误。
2.根据权利要求1所述的半导体装置,
其中所述多位错误检测电路包括:
第一地址寄存器,响应于所述1位错误检测信号而捕获所述错误地址;
第二地址寄存器,存储在所述第一地址寄存器中捕获的所述错误地址的副本;
第一校验子码寄存器,响应于所述1位错误检测信号而捕获所述错误校验子码;
第二校验子码寄存器,存储在所述第一校验子码寄存器中捕获的所述错误校验子码的副本;
地址比较电路,比较所述第一地址寄存器的所述错误地址和所述第二地址寄存器的所述错误地址;
校验子码比较电路,比较第一校验子码寄存器的所述校验子码和所述第二校验子码寄存器的所述校验子码;以及
控制电路,被配置为控制所述第一地址寄存器和所述第二地址寄存器以及所述第一校验子码寄存器和所述第二校验子码寄存器。
3.根据权利要求2所述的半导体装置,
其中所述控制电路被配置为在所述第一地址寄存器的所述错误地址与所述第二地址寄存器的所述错误地址不一致时,将检测到的位错误通知为真1位错误。
4.根据权利要求3所述的半导体装置,
其中当所述位错误检测信号被生成、并且所述第一地址寄存器的所述错误地址与所述第二地址寄存器的所述错误地址不一致时,所述控制电路被配置为控制所述第一地址寄存器和所述第二地址寄存器,以将在所述第一地址寄存器中捕获的所述错误地址复制到所述第二地址寄存器,并且控制所述第一校验子码寄存器和所述第二校验子码寄存器,以将在所述第一校验子码寄存器中捕获的所述错误校验子码复制到所述第二校验子码寄存器。
5.根据权利要求2所述的半导体装置,其中当所述位错误检测信号被生成、所述第一地址寄存器的所述错误地址与所述第二地址寄存器的所述错误地址一致、并且所述第一校验子码寄存器的所述错误校验子码与所述第二校验子码寄存器的所述错误校验子码不一致时,所述多位错误检测电路被配置为确定所述位错误检测信号指示所述多位错误。
6.根据权利要求5所述的半导体装置,
其中所述多位错误检测电路被配置为在确定所述位错误检测信号指示所述多位错误时,不将检测到的位错误通知为所述1位错误。
7.根据权利要求2的半导体装置,
其中所述第二地址寄存器的数目等于所述第二校验子码寄存器的数目,所述地址比较电路的数目等于所述第二地址寄存器的数目,并且所述校验子码比较电路的数目等于所述第二校验子码寄存器的数目。
8.根据权利要求2所述的半导体装置,
其中当所述位错误检测信号被生成、并且所述第一地址寄存器中捕获的所述错误地址与所述第二地址寄存器的所述错误地址不一致时,所述控制电路被配置为将检测到的位错误通知为所述1位错误。
9.根据权利要求2所述的半导体装置,
其中所述第二地址寄存器包括多个所述第二地址寄存器,
其中所述第二校验子码寄存器包括多个所述第二校验子码寄存器,
其中所述控制电路被配置为控制将所述第一地址寄存器的所述错误地址复制到不保存所述错误地址的所述第二地址寄存器中的一个第二地址寄存器,并且将所述第一校验子码寄存器的所述校验子码复制到不保存所述错误校验子码的所述第二校验子码寄存器。
10.根据权利要求1所述的半导体装置,
其中所述错误校正码是用于1位错误校正和2位错误检测的码。
11.根据权利要求1所述的半导体装置,
其中所述错误校正码是用于1位错误校正但不用于2位错误检测的码。
12.根据权利要求1所述的半导体装置,还包括:
中央处理单元CPU;
存储器,具有所述数据以及与所述数据相对应的所述错误校正码;
错误校正电路,被配置为基于所述位错误检测信号和所述校验子码来校正所述数据,以及
CPU接口电路,被配置为向所述CPU通知所述1位错误或所述多位错误。
13.根据权利要求12所述的半导体装置,还包括:
循环冗余检查计算电路,被配置为生成循环冗余检查数据,所述循环冗余检查数据与来自所述错误校正电路的数据相对应。
14.一种错误检测方法,包括:
将数据以及与所述数据相对应的错误校正码读取到存储器;
基于从所述存储器读取的所述数据和所述错误校正码生成校验子码;
基于所述校验子码检测位错误;
基于检测到具有所述位错误的所述数据的地址以及检测到具有所述位错误的所述数据的校验子码,来确定是1位错误还是多位错误,以及
基于确定结果来通知所述1位错误或所述多位错误。
15.一种半导体装置,包括:
中央处理单元CPU;
存储器;
校验子生成电路,被配置为基于从所述存储器读取的数据以及与所读取的数据相对应的错误校正码来生成校验子码;
错误确定电路,被配置为基于所述校验子码来确定所读取的数据是否具有1位错误;
地址寄存器,具有已被确定为具有1位错误的错误数据的错误地址;
校验子码寄存器,具有所述错误数据的错误校验子码,以及
多位错误检测电路,被配置为向所述CPU发送中断请求以用于执行诊断操作,所述诊断操作用于检查由所述错误确定电路检测到的1位错误,
其中当所述错误确定电路确定所读取的数据具有1位错误时,如果所读取的数据的地址与所述错误地址不一致、或者如果所读取的数据的校验子码与所述错误校验子码不一致,则所述多位错误检测电路将所述中断请求发送到所述CPU。
16.根据权利要求15所述的半导体装置,
其中如果所读取的数据的所述地址和所读取的数据的所述校验子码分别与所述错误地址和所述错误校验子码一致,则所述多位错误检测电路不向所述CPU发送所述中断请求。
17.根据权利要求15所述的半导体装置,其中还包括:
错误标志寄存器,具有指示多位错误的发生的多位错误标志信息;
其中即使所读取的数据被确定为具有1位错误,所述多位错误检测电路仍被配置为当所读取的数据的所述校验子码与所述错误校验子码不一致、并且所读取的数据的所述地址与所述错误地址一致时,设置所述多位错误确定信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021108192A JP2023005919A (ja) | 2021-06-29 | 2021-06-29 | 半導体装置および誤り検出方法 |
JP2021-108192 | 2021-06-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543681A true CN115543681A (zh) | 2022-12-30 |
Family
ID=84543421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210632427.8A Pending CN115543681A (zh) | 2021-06-29 | 2022-06-06 | 半导体装置和错误检测方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11831337B2 (zh) |
JP (1) | JP2023005919A (zh) |
CN (1) | CN115543681A (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4523314A (en) * | 1983-02-07 | 1985-06-11 | Sperry Corporation | Read error occurrence detector for error checking and correcting system |
US5745508A (en) * | 1995-11-13 | 1998-04-28 | Tricord Systems, Inc. | Error-detection code |
US7653862B2 (en) * | 2005-06-15 | 2010-01-26 | Hitachi Global Storage Technologies Netherlands B.V. | Error detection and correction for encoded data |
KR102238706B1 (ko) * | 2014-11-28 | 2021-04-09 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US9800271B2 (en) * | 2015-09-14 | 2017-10-24 | Qualcomm Incorporated | Error correction and decoding |
JP2019109806A (ja) | 2017-12-20 | 2019-07-04 | ルネサスエレクトロニクス株式会社 | データ処理装置及びデータ処理方法 |
US11104653B2 (en) * | 2018-05-08 | 2021-08-31 | Colorado State University Research Foundation | Methods for forming aryl carbon-nitrogen bond using light |
US10761927B2 (en) * | 2018-07-16 | 2020-09-01 | Taiwan Semiconductor Manufacturing Co., Ltd. | Detection and correction of data bit errors using error correction codes |
KR102629457B1 (ko) * | 2018-10-24 | 2024-01-26 | 삼성전자주식회사 | 반도체 메모리 장치, 제어 장치, 및 메모리 시스템 |
KR102717146B1 (ko) * | 2018-11-19 | 2024-10-15 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 구비하는 메모리 시스템 |
DE102019113970B4 (de) * | 2019-05-24 | 2022-11-24 | Infineon Technologies Ag | Erkennung von adressfehlern |
KR20200117129A (ko) * | 2019-04-03 | 2020-10-14 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
-
2021
- 2021-06-29 JP JP2021108192A patent/JP2023005919A/ja active Pending
-
2022
- 2022-05-06 US US17/738,542 patent/US11831337B2/en active Active
- 2022-06-06 CN CN202210632427.8A patent/CN115543681A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220416813A1 (en) | 2022-12-29 |
US11831337B2 (en) | 2023-11-28 |
JP2023005919A (ja) | 2023-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169126B2 (en) | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation | |
JP3229070B2 (ja) | 多数決回路及び制御ユニット及び多数決用半導体集積回路 | |
EP1224548B1 (en) | System and method improving fault isolation and diagnosis in computers | |
US8448042B2 (en) | Data processing device and a method for error detection and error correction | |
EP2770507A2 (en) | Memory circuits, method for accessing a memory and method for repairing a memory | |
CN111221675B (zh) | 用于ram错误检测逻辑的自诊断的方法和装置 | |
EP3525210B1 (en) | Data register monitoring | |
JP2009129301A (ja) | 自己診断回路及び自己診断方法 | |
JP2009295252A (ja) | 半導体記憶装置及びそのエラー訂正方法 | |
JP3068009B2 (ja) | 冗長化メモリのエラー訂正機構 | |
EP3882774A1 (en) | Data processing device and data processing method | |
JP2008176828A (ja) | エラー検出訂正回路のテスト回路およびテスト方法 | |
US11831337B2 (en) | Semiconductor device and error detection methods | |
JP6332134B2 (ja) | メモリ診断回路 | |
WO2005124562A1 (ja) | エレベータ電子安全装置用システム | |
JP2818659B2 (ja) | 誤り訂正方式 | |
US11461205B1 (en) | Error management system for system-on-chip | |
JP2006011576A (ja) | 高信頼性制御装置 | |
WO2016042751A1 (ja) | メモリ診断回路 | |
TW202424743A (zh) | 用於ecc錯誤檢測之電路、系統及方法 | |
JP5381151B2 (ja) | 情報処理装置、バス制御回路、バス制御方法及びバス制御プログラム | |
CN115686905A (zh) | 一种内存储器spd信息恢复方法、装置及计算设备 | |
JPH03111953A (ja) | メモリアドレスの障害検出方法 | |
JPS60191350A (ja) | メモリ装置 | |
JPH02285428A (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 |