BR112018004992B1 - ERROR DETECTION AND CORRECTION APPARATUS AND METHOD FOR A BOSE-CHAUDHURI-HOCQUENGHEM CODE, BCH, DOUBLE ERROR CORRECTION AND TRIPLE ERROR DETECTION, DEC-TED, AND, MEMORY - Google Patents

ERROR DETECTION AND CORRECTION APPARATUS AND METHOD FOR A BOSE-CHAUDHURI-HOCQUENGHEM CODE, BCH, DOUBLE ERROR CORRECTION AND TRIPLE ERROR DETECTION, DEC-TED, AND, MEMORY Download PDF

Info

Publication number
BR112018004992B1
BR112018004992B1 BR112018004992-1A BR112018004992A BR112018004992B1 BR 112018004992 B1 BR112018004992 B1 BR 112018004992B1 BR 112018004992 A BR112018004992 A BR 112018004992A BR 112018004992 B1 BR112018004992 B1 BR 112018004992B1
Authority
BR
Brazil
Prior art keywords
output
error
double
decoder
correction
Prior art date
Application number
BR112018004992-1A
Other languages
Portuguese (pt)
Inventor
Seong-Ook Jung
Sara CHOI
Byung Kyu Song
Taehui Na
Jisu Kim
Jung Pill Kim
Sungryul KIM
Taehyun Kim
Seung Hyuk Kang
Original Assignee
Industry-Academic Cooperation Foundation, Yonsei University
Qualcomm Incorporated
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 Industry-Academic Cooperation Foundation, Yonsei University, Qualcomm Incorporated filed Critical Industry-Academic Cooperation Foundation, Yonsei University
Publication of BR112018004992B1 publication Critical patent/BR112018004992B1/en

Links

Abstract

Trata-se de um aparelho de decodificação de detecção e correção de erros que realiza correção de erros únicos-detecção de erro duplo (SEC-DED) ou correção de erros duplos-detecção de erro triplo (DEC-TED) dependendo se a entrada de dados contém um erro de bit único ou um erro de múltiplos bits, para reduzir o consumo de energia e latência no caso de erros de bit único e proporcionar uma correção de erros poderosa no caso de erros de múltiplos bits.It is an error detection and correction decoding device that performs single error correction-double error detection (SEC-DED) or double error correction-triple error detection (DEC-TED) depending on whether the input data contains a single-bit error or a multi-bit error, to reduce power consumption and latency in the case of single-bit errors and provide powerful error correction in the case of multi-bit errors.

Description

CAMPO DA INVENÇÃOFIELD OF INVENTION

[001] Diversas modalidades descritas no presente documento referem-se à correção de erros, e, mais particularmente, à correção de erros de bit único e de múltiplos bits.[001] Various embodiments described herein relate to error correction, and, more particularly, to the correction of single-bit and multi-bit errors.

FUNDAMENTOSFUNDAMENTALS

[002] Desenvolveram-se vários esquemas para detecção e correção de erros em aparelhos e dispositivos digitais, tais como memórias. No âmbito da correção de erros em dispositivos de memória, a detecção de erros e a correção de erros podem ser realizadas separadamente. Por exemplo, desenvolveram-se esquemas como correção de erro único- detecção de erro duplo (SEC-DED) que permitiriam a correção de um erro de bit único se um erro de bit duplo for detectado. Entretanto, no caso de erros de múltiplos bits, esquemas de SEC-DED convencionais podem não ser suficientemente poderosos para mitigar esses erros.[002] Various schemes have been developed for detecting and correcting errors in digital appliances and devices, such as memories. In the scope of error correction in memory devices, error detection and error correction can be performed separately. For example, schemes such as single-error correction-double-error detection (SEC-DED) have been developed that would allow correction of a single-bit error if a double-bit error is detected. However, in the case of multi-bit errors, conventional SEC-DED schemes may not be powerful enough to mitigate these errors.

[003] Desenvolveram-se esquemas de detecção e correção de erros mais poderosos para atribuir o problema de erros de múltiplos bits. Por exemplo, desenvolveram-se esquemas como correção de erros duplos-detecção de erros triplos (DEC-TED) que proporcionariam capacidades de correção de erros mais poderosas do que esquemas de SEC-DED convencionais. No entanto, a área de conjunto de circuitos tipicamente necessária para DEC-TED, seria muito maior que a área necessária para SEC-DED. Ademais, um conjunto de circuitos de DEC-TED convencionas tipicamente consome mais energia e resulta em uma latência mais longa ou retardo de tempo em relação a um conjunto de circuitos de SEC-DED convencional. Por exemplo, quando um conjunto de circuitos de DEC-TED for utilizado para corrigir um erro único, o consumo de energia e retardo de tempo seriam muito maiores que um conjunto de circuitos SEC-DED.[003] More powerful error detection and correction schemes have been developed to address the problem of multi-bit errors. For example, schemes such as double error correction-triple error detection (DEC-TED) have been developed that would provide more powerful error correction capabilities than conventional SEC-DED schemes. However, the circuitry area typically required for DEC-TED would be much larger than the area required for SEC-DED. Furthermore, a conventional DEC-TED circuitry typically consumes more power and results in longer latency or time delay relative to a conventional SEC-DED circuitry. For example, when a DEC-TED circuit set is used to correct a single error, the power consumption and time delay would be much greater than a SEC-DED circuit set.

[004] Adicionalmente, circuitos puramente combinatórios que implementam códigos de correção de erros para correção de erro de bit único ou múltiplos bits podem tipicamente consumir grandes quantidades de energia dinâmica quando a entrada se alterar devido a transições inválidas em decodificação de localização de erro. Deseja-se reduzir essa quantidade de consumo de energia necessária para detecção e correção de erros, especialmente para detecção de correção de erros de múltiplos bits em dispositivos de circuito integrado com baixo consumo de energia, tais como chips de memória com baixo consumo de energia.[004] Additionally, purely combinatorial circuits that implement error correction codes for single-bit or multi-bit error correction can typically consume large amounts of dynamic energy when the input changes due to invalid transitions in error location decoding. It is desired to reduce this amount of power consumption required for error detection and correction, especially for multi-bit error correction detection in low power integrated circuit devices such as low power memory chips.

SUMÁRIOSUMMARY

[005] As modalidades exemplificadoras da revelação se referem a aparelhos e métodos para correção de erro duplo em memórias com consumo de energia reduzido.[005] Exemplary embodiments of the disclosure refer to apparatus and methods for double error correction in memories with reduced energy consumption.

[006] Em uma modalidade, proporciona-se um aparelho de detecção e correção de erros, sendo que o aparelho de detecção e correção de erros compreende: um decodificador de localização de erro único configurado para localizar erros únicos em dados de entrada; um decodificador de localização de erro duplo configurado para localizar erros duplos nos dados de entrada; e um corretor de erros acoplado ao decodificador de localização de erro único e ao decodificador de localização de erro duplo para gerar dados de saída corrigidos.[006] In one embodiment, an error detection and correction apparatus is provided, the error detection and correction apparatus comprising: a single error location decoder configured to locate single errors in input data; a double error localization decoder configured to locate double errors in the input data; and an error corrector coupled to the single error location decoder and the double error location decoder to generate corrected output data.

[007] Em outra modalidade, proporciona-se um aparelho de detecção e correção de erros, sendo que o aparelho de detecção e correção de erros compreende: meios para decodificação de localização de erro único para localizar erros únicos e dados de entrada; meios para decodificação de localização de erro duplo para localizar erros duplos nos dados de entrada; e meios para corrigir erros para gerar dados de saída corrigidos com base nos erros únicos e nos erros duplos.[007] In another embodiment, an error detection and correction apparatus is provided, the error detection and correction apparatus comprising: means for decoding single error location to locate single errors and input data; means for double error location decoding to locate double errors in the input data; and means for correcting errors to generate corrected output data based on single errors and double errors.

[008] Em outra modalidade, proporciona-se um aparelho de detecção e correção de erros, sendo que o aparelho de detecção e correção de erros compreende: uma lógica configurada para localizar erros únicos em dados de entrada; uma lógica configurada para localizar erros duplos nos dados de entrada; e uma lógica configurada para gerar dados de saída corrigidos com base nos erros únicos e nos erros duplos.[008] In another embodiment, an error detection and correction apparatus is provided, wherein the error detection and correction apparatus comprises: logic configured to locate unique errors in input data; a logic configured to find double errors in the input data; and logic configured to generate corrected output data based on single errors and double errors.

[009] Em ainda outra modalidade, proporciona- se uma memória, sendo que a memória compreende: uma célula de memória; e um aparelho de detecção e correção de erros acoplado para receber dados de entrada a partir da célula de memória e transmitir dados de saída corrigidos à célula de memória, sendo que o aparelho de detecção e correção de erros compreende: um decodificador de localização de erro único configurado para localizar erros únicos em dados de entrada; um decodificador de localização de erro duplo configurado para localizar erros duplos nos dados de entrada; e um corretor de erros acoplado ao decodificador de localização de erro único e ao decodificador de localização de erro duplo para gerar dados de saída corrigidos.[009] In yet another embodiment, a memory is provided, the memory comprising: a memory cell; and an error detection and correction apparatus coupled to receive input data from the memory cell and transmit corrected output data to the memory cell, the error detection and correction apparatus comprising: an error location decoder single configured to find single errors in input data; a double error localization decoder configured to locate double errors in the input data; and an error corrector coupled to the single error location decoder and the double error location decoder to generate corrected output data.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0010] Os desenhos anexos são apresentados para auxiliar na descrição das modalidades da revelação e fornecidos exclusivamente para fins ilustrativos das modalidades e sem caráter limitativo.[0010] The attached drawings are presented to assist in describing the modalities of the disclosure and provided exclusively for illustrative purposes of the modalities and without limitation.

[0011] A Figura 1 é um diagrama de blocos que ilustra uma modalidade de um aparelho de detecção e correção de erros.[0011] Figure 1 is a block diagram illustrating an embodiment of an error detection and correction apparatus.

[0012] A Figura 2 é um diagrama de blocos que ilustra outra modalidade de um aparelho de detecção e correção de erros tendo um flip-flop e um controlador de temporização.[0012] Figure 2 is a block diagram illustrating another embodiment of an error detection and correction apparatus having a flip-flop and a timing controller.

[0013] A Figura 3 é um diagrama de blocos que ilustra uma modalidade de uma linha de retardo como um controlador de temporização na modalidade do aparelho de correção e decodificação de erros da Figura 2.[0013] Figure 3 is a block diagram illustrating an embodiment of a delay line as a timing controller in the embodiment of the error correction and decoding apparatus of Figure 2.

[0014] A Figura 4 é um diagrama de blocos que ilustra ainda outra modalidade de um aparelho de detecção e correção de erros tendo flip-flops, um controlador de temporização, decodificadores de localização de erros para correção de erros únicos (SEC) e correção de erros duplos (DEC) separados, um multiplexador e um gerador de flag.[0014] Figure 4 is a block diagram illustrating yet another embodiment of an error detection and correction apparatus having flip-flops, a timing controller, error location decoders for single error correction (SEC) and double error code (DEC), a multiplexer and a flag generator.

[0015] A Figura 5 é um diagrama de blocos que ilustra uma modalidade de um aparelho de detecção e correção de erros com uma lógica configurada para realizar funções de detecção e correção de erros.[0015] Figure 5 is a block diagram illustrating an embodiment of an error detection and correction apparatus with logic configured to perform error detection and correction functions.

[0016] A Figura 6 é um diagrama de blocos que ilustra uma modalidade de um dispositivo de memória no qual o aparelho de detecção e correção de erros pode ser implementado.[0016] Figure 6 is a block diagram illustrating an embodiment of a memory device in which error detection and correction apparatus can be implemented.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0017] Descrevem-se aspectos da revelação na descrição a seguir e desenhos relacionados voltados às modalidades específicas. Podem-se desenvolver modalidades alternativas sem divergir do escopo da revelação. Adicionalmente, elementos notórios não serão descritos em detalhes ou serão omitidos com o intuito de não ocultar os detalhes relevantes da revelação.[0017] Aspects of the disclosure are described in the following description and related drawings focused on specific modalities. Alternative modalities can be developed without deviating from the scope of the disclosure. Additionally, notorious elements will not be described in detail or will be omitted in order not to hide the relevant details of the revelation.

[0018] Conforme o uso em questão, o termo “exemplificador” significa “serve como um exemplo, instância ou ilustração.” Qualquer modalidade descrita no presente documento como “exemplificadora” não é necessariamente construída como preferencial ou vantajosa em relação a outras modalidades. De modo similar, o termo “modalidades” não requer que todas as modalidades incluam o recurso, vantagem ou modo de operação discutidos.[0018] According to the use in question, the term “exemplifier” means “serves as an example, instance or illustration.” Any embodiment described herein as “exemplary” is not necessarily construed as preferential or advantageous over other embodiments. Similarly, the term “modalities” does not require that all embodiments include the discussed feature, advantage or mode of operation.

[0019] A terminologia usada no presente documento serve para o propósito somente de descrever modalidades particulares e não é destinada a limiar as modalidades. Conforme o uso em questão, as formas no singular “um,” “uma,” “o” e “a” são destinadas a incluir também as formas no plural, exceto onde o contexto indicar claramente em contrário. Compreender-se-á que os termos “compreende,” “compreender,” “inclui” ou “incluir,” quando usados no persente documento, especificam a presença de recursos, inteiros, etapas, operações, elementos e/ou componentes declarados, mas não excluem a presença ou adição de um ou mais outros recursos, inteiros, etapas, operações, elementos ou grupos dos mesmos. Ademais, compreende-se que a palavra “ou” tem o mesmo significado que o operador Booleano “OR,” ou seja, abrange as possibilidades de “qualquer” e “ambos” e não se limita a um “ou exclusivo” (“XOR”), exceto onde expressamente declarado em contrário. Compreende-se, também, que o símbolo “/” entre duas palavras adjacentes tem o mesmo significado de “ou” exceto onde expressamente declarado em contrário. Ademais, os termos “conectado a,” “acoplado a” ou “em comunicação com” não se limitam a conexões diretas exceto onde expressamente declarado em contrário.[0019] The terminology used in this document serves the purpose only of describing particular modalities and is not intended to limit modalities. Depending on the usage in question, the singular forms “a,” “a,” “the” and “a” are intended to also include the plural forms, except where the context clearly indicates otherwise. It will be understood that the terms “comprises,” “comprises,” “includes” or “include,” when used in this document, specify the presence of declared resources, integers, steps, operations, elements and/or components, but do not exclude the presence or addition of one or more other resources, integers, steps, operations, elements or groups thereof. Furthermore, it is understood that the word “or” has the same meaning as the Boolean operator “OR,” that is, it covers the possibilities of “any” and “both” and is not limited to an “exclusive or” (“XOR ”), except where expressly stated otherwise. It is also understood that the symbol “/” between two adjacent words has the same meaning as “or” except where expressly stated otherwise. Furthermore, the terms “connected to,” “coupled with” or “in communication with” are not limited to direct connections except where expressly stated otherwise.

[0020] Ademais, muitas modalidades são descritas em termos de sequências de ações a serem realizadas, por exemplo, por elementos de um dispositivo computacional. Reconhece-se que várias ações descritas no presente documento podem ser realizadas por circuitos específicos, por exemplo, unidades de processamento central (CPUs), unidades de processamento gráfico (GPUs), processadores de sinal digital (DSPs), circuitos integrados para aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), ou vários outros tipos de processadores ou circuitos para propósitos gerais ou especiais, por instruções de programa sendo executadas por um ou mais processadores, ou por uma combinação de ambos. Adicionalmente, essa sequência de ações descrita no presente documento pode ser considerada como sendo totalmente incorporada a qualquer forma de mídia de armazenamento legível por computador tendo armazenado um conjunto correspondente de instruções computacionais que, mediante execução, induziriam um processador a realizar a funcionalidade descrita no presente documento. Logo, os vários aspectos da revelação podem ser incorporados em uma série de formas diferentes, sendo que todas foram contempladas no estando no escopo da matéria reivindicada. Além disso, para cada uma das modalidades descritas no presente documento, a forma correspondente de qualquer uma das modalidades pode ser descrita no presente documento como, por exemplo, “lógica configurada para” realizar a ação descrita.[0020] Furthermore, many modalities are described in terms of sequences of actions to be performed, for example, by elements of a computing device. It is recognized that various actions described in this document may be performed by specific circuits, e.g., central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), application-specific integrated circuits ( ASICs), field programmable gate arrays (FPGAs), or various other types of processors or circuits for general or special purposes, by program instructions being executed by one or more processors, or by a combination of both. Additionally, this sequence of actions described herein may be considered to be fully incorporated into any form of computer-readable storage media having stored a corresponding set of computational instructions that, upon execution, would induce a processor to perform the functionality described herein. document. Therefore, the various aspects of the revelation can be incorporated in a series of different forms, all of which have been contemplated within the scope of the claimed matter. Furthermore, for each of the embodiments described herein, the corresponding form of any of the embodiments may be described herein as, for example, “logic configured to” perform the described action.

[0021] A Figura 1 é um diagrama de blocos que ilustra uma modalidade de um aparelho de detecção e correção de erros 100 tendo uma entrada de dados (databit_in) 102, uma entrada de verificação de erros (checkbit_in) 104 e uma saída de dados corrigidos (databit_out) 106. Esse decodificador de código de correção de erros pode ser implementado em vários aparelhos ou dispositivos digitais para corrigir erros de dados, por exemplo, em dispositivos de memória, tais como memórias de acesso aleatório magnéticas transferência de torque por rotação (STT-MRAMs). Avaliar-se- á que o decodificador de código de correção de erros de acordo com as modalidades da revelação também pode ser usado em vários outros aparelhos ou dispositivos por indivíduos versados na técnica. Referindo-se à Figura 1, o aparelho de detecção e correção de erros 100 inclui um gerador de síndrome 108 que é configurado para receber a entrada de dados (databit_in) 102 e a entrada de verificação de erros (checkbit_in) 104. Em uma modalidade, o gerador de síndrome 108 é capaz de gerar uma primeira saída de sinal de vetor (S0), uma segunda saída de sinal de vetor (S1) e uma terceira saída de sinal de vetor (S3) em resposta à entrada de dados (databit_in) 102 e à entrada de verificação de erros (checkbitin) 104.[0021] Figure 1 is a block diagram illustrating an embodiment of an error detection and correction apparatus 100 having a data input (databit_in) 102, an error checking input (checkbit_in) 104 and a data output corrected (databit_out) 106. This error correcting code decoder can be implemented in various appliances or digital devices to correct data errors, for example in memory devices such as rotational torque transfer magnetic random access memories ( STT-MRAMs). It will be appreciated that the error correction code decoder according to the embodiments of the disclosure can also be used in various other apparatus or devices by individuals skilled in the art. Referring to Figure 1, error detection and correction apparatus 100 includes a syndrome generator 108 that is configured to receive data input (databit_in) 102 and error checking input (checkbit_in) 104. In one embodiment , the syndrome generator 108 is capable of generating a first vector signal output (S0), a second vector signal output (S1), and a third vector signal output (S3) in response to data input (databit_in ) 102 and the error checking input (checkbitin) 104.

[0022] Em uma modalidade, o gerador de síndrome 108 compreende um decodificador de matriz de verificação de paridade, e a entrada de verificação de erros (checkbit_in) 104 compreende uma entrada de bits de verificação de paridade. Esse gerador de síndrome 108 pode ser construído utilizando-se um dos muitos códigos de correção de erros (ECCs) conhecidos. Em uma modalidade, o decodificador de matriz de verificação de paridade pode compreender um decodificador de matriz de verificação de paridade baseado em árvore XOR. Por exemplo, o gerador de síndrome 108 pode ser construído implementando-se um ECC, tal como um código Bose-Chaudhuri-Hocquenghem (BCH) de correção de erros duplos-detecção de erros triplos (DEC-TED) onde α é um elemento primitivo no campo de Galois GF(2n): [0022] In one embodiment, the syndrome generator 108 comprises a parity check matrix decoder, and the error check input (checkbit_in) 104 comprises a parity check bit input. This syndrome 108 generator can be constructed using one of many known error correcting codes (ECCs). In one embodiment, the parity check matrix decoder may comprise an XOR tree-based parity check matrix decoder. For example, the syndrome generator 108 can be constructed by implementing an ECC, such as a Bose-Chaudhuri-Hocquenghem (BCH) double error correction-triple error detection (DEC-TED) code where α is a primitive element in the Galois field GF(2n):

[0023] A síndrome gerada pela matriz de verificação de paridade anterior pode ser partes, [0023] The syndrome generated by the previous parity check matrix can be parts,

[0024] Em modalidades alternativa, outros tipos de geradores de síndrome também podem ser implementados para detecção e correção de erros.[0024] In alternative embodiments, other types of syndrome generators can also be implemented for error detection and correction.

[0025] Na modalidade ilustrada na Figura 1, o aparelho de detecção e correção de erros 100 também inclui um controlador 110 que é configurado para receber a primeira saída de sinal de vetor (S0), a segunda saída de sinal de vetor (S1) e a terceira saída de sinal de vetor (S3) a partir do gerador de síndrome 108, e gerar uma saída de correção de erros únicos (SEC_output) e uma saída de correção de erros duplos (DEC_output) com base pelo menos em dois dos três sinais de vetor S0, S1 e S3 a partir do gerador de síndrome 108.[0025] In the embodiment illustrated in Figure 1, the error detection and correction apparatus 100 also includes a controller 110 that is configured to receive the first vector signal output (S0), the second vector signal output (S1) and the third vector signal output (S3) from the syndrome generator 108, and generate a single error correction output (SEC_output) and a double error correction output (DEC_output) based on at least two of the three vector signals S0, S1 and S3 from syndrome generator 108.

[0026] Em uma modalidade, o controlador 110 é implementado para gerar a saída de correção de erros únicos (SEC_output) e a saída de correção de erros duplos (DEC_output), que são transmitidas às entradas de m decodificador de localização de erros de correção de erros únicos (SEC) 118 e um decodificador de localização de erros de correção de erros duplos (DEC) 120, respectivamente. O decodificador de localização de erros de SEC 118 e o decodificador de localização de erros de DEC 120 serão descritos em maiores detalhes mais adiante. Em uma modalidade, deseja-se reduzir o retardo e consumo de energia dinâmico do aparelho de detecção e correção de erros 100 não tendo o decodificador de localização de erros de SEC 118 e o decodificador de localização de erros de DEC 120 ativamente em operação ao mesmo tempo. Por exemplo, se o erro na entrada de dados for um erro único, então, o decodificador de localização de erros de DEC 120 não deve estar ativo. De modo similar, se o erro for um erro duplo, então, o decodificador de localização de erros de SEC 118 não deve estar ativo.[0026] In one embodiment, controller 110 is implemented to generate single error correction output (SEC_output) and double error correction output (DEC_output), which are passed to the inputs of a correction error location decoder single error correction (SEC) 118 and a double error correction (DEC) error localization decoder 120, respectively. The SEC error localization decoder 118 and the DEC error localization decoder 120 will be described in greater detail later. In one embodiment, it is desired to reduce the delay and dynamic power consumption of the error detection and correction apparatus 100 by not having the SEC error localization decoder 118 and the DEC error localization decoder 120 actively in operation at the same time. time. For example, if the data entry error is a single error, then the DEC 120 error location decoder should not be active. Similarly, if the error is a double error, then the SEC 118 error localization decoder should not be active.

[0027] Em uma modalidade, a saída de correção de erros únicos (SEC_output) e a saída de correção de erros duplos (DEC_output) do controlador 110 são ajustadas para satisfazer a condições anteriores. Por exemplo, se a primeira saída de sinal de vetor (S0) a partir do gerador de síndrome 108 for um, significando que se supõe que a entrada de dados tenha um erro único, então, a saída de correção de erros duplos (DEC_output) do controlador 110 é um vetor zero. Em contrapartida, se a primeira saída de sinal de vetor (S0) a partir do gerador de síndrome 108 for zero, significando que se supõe que a entrada de dados tenha um erro duplo, então, a saída de correção de erros únicos (SEC_output) do controlador é um vetor zero.[0027] In one embodiment, the single error correction output (SEC_output) and the double error correction output (DEC_output) of the controller 110 are adjusted to satisfy prior conditions. For example, if the first vector signal output (S0) from the syndrome generator 108 is one, meaning that the data input is assumed to have a single error, then the double error correction output (DEC_output) of controller 110 is a zero vector. In contrast, if the first vector signal output (S0) from the syndrome generator 108 is zero, meaning that the data input is assumed to have a double error, then the single error correction output (SEC_output) of the controller is a zero vector.

[0028] Em uma modalidade, as saídas SEC_output e DEC_output do controlador 110 podem ser geradas pelas equações a seguir com base na primeira saída de sinal de vetor (S0), na segunda saída de sinal de vetor (S1) e na terceira saída de sinal de vetor (S3) a partir do gerador de síndrome 108: onde “~” denota o complemento lógico ou “NOT.” Para um caso de erro triplo, S0 é um, que é igual ao caso de erro único.[0028] In one embodiment, the SEC_output and DEC_output outputs of the controller 110 may be generated by the following equations based on the first vector signal output (S0), the second vector signal output (S1), and the third vector signal output. vector signal (S3) from syndrome generator 108: where “~” denotes the logical complement or “NOT.” For a triple error case, S0 is one, which is the same as the single error case.

[0029] Na modalidade ilustrada na Figura 1, o aparelho de detecção e correção de erros 100 inclui, ainda, um detector de erro duplo 112 que tem entradas acopladas para receber a primeira saída de sinal de vetor (S0), a segunda saída de sinal de vetor (S1) e a terceira saída de sinal de vetor (S3) a partir do gerador de síndrome 108, e uma saída que gera uma saída de detecção de erro duplo (AL_DED) 114 com base nos três sinais de vetor S0, S1 e S3 recebidos a partir do gerador de síndrome 108.[0029] In the embodiment illustrated in Figure 1, the error detection and correction apparatus 100 further includes a dual error detector 112 that has inputs coupled to receive the first vector signal output (S0), the second vector signal output vector signal (S1) and the third vector signal output (S3) from the syndrome generator 108, and an output that generates a double error detection output (AL_DED) 114 based on the three vector signals S0, S1 and S3 received from syndrome generator 108.

[0030] Em uma modalidade, a saída de detecção de erro duplo (AL_DED) 114 a partir do detector de erro duplo 112 pode ser gerada pela equação a seguir com base na segunda saída de sinal de vetor (S1) e na terceira saída de sinal de vetor (S3) a partir do gerador de síndrome 108: [0030] In one embodiment, the dual error detection output (AL_DED) 114 from the dual error detector 112 may be generated by the following equation based on the second vector signal output (S1) and the third vector signal output vector signal (S3) from syndrome generator 108:

[0031] Em uma modalidade adicional, proporciona-se um gerador de flag 116 no aparelho de detecção e correção de erros 100 conforme ilustrado na Figura 1. Em uma modalidade, proporciona-se o gerador de flag 116 para determinar o número de erros a partir do erro zero ao erro triplo. Em uma modalidade, o gerador de flag 116 gera uma variável de dois bits denominada como um flag de erro (error_flag) 122, que é emitido a partir do aparelho de detecção e correção de erros 100 como um indicador de dois bits de erro zero, erro único, erro duplo ou erro triplo.[0031] In a further embodiment, a flag generator 116 is provided in the error detection and correction apparatus 100 as illustrated in Figure 1. In one embodiment, the flag generator 116 is provided for determining the number of errors to be from zero error to triple error. In one embodiment, the flag generator 116 generates a two-bit variable referred to as an error flag (error_flag) 122, which is output from the error detection and correction apparatus 100 as a two-bit zero error indicator. single error, double error or triple error.

[0032] Em uma modalidade, o flag de erro (error_flag) 122 pode ser determinado com base na saída de detecção de erro duplo (AL_DED) 114 a partir do detector de erro duplo 112 e na primeira saída de sinal de vetor (S0) a partir do gerador de síndrome 108: Tabela 1[0032] In one embodiment, the error flag (error_flag) 122 may be determined based on the double error detection output (AL_DED) 114 from the double error detector 112 and the first vector signal output (S0) from the 108 syndrome generator: Table 1

[0033] De acordo com a tabela anterior, a relação entre o flag de erro e S0 pode ser expressa da seguinte forma:[0033] According to the previous table, the relationship between the error flag and S0 can be expressed as follows:

[0034] Bit mais significativo (MSB) de error_flag = AL_DED[0034] Most significant bit (MSB) of error_flag = AL_DED

[0035] Bit menos significativo (LSB) de error_flag = S0[0035] Least significant bit (LSB) of error_flag = S0

[0036] Conforme descrito anteriormente, proporciona-se o decodificador de localização de erros de SEC 118 para localizar erros únicos e o decodificador de localização de erros de DEC 120 é proporcionado para localizar erros duplos. Em uma modalidade, o decodificador de localização de erros de SEC 118 é acoplado para receber a saída de correção de erros únicos (SEC_output) a partir do controlador 110 e emite uma saída de decodificador de localização de erro único output (e_sec) 124 com base em SEC_output a partir do controlador 110. Em uma modalidade, o decodificador de localização de erros de DEC 120 é acoplado para receber a saída de correção de erros duplos (DEC_output) a partir do controlador 110 e emite uma saída de decodificador de localização de erro duplo (e_dec) 126 com base em DEC_output a partir do controlador 110.[0036] As previously described, the SEC error localization decoder 118 is provided for locating single errors and the DEC error localization decoder 120 is provided for locating double errors. In one embodiment, the SEC error localization decoder 118 is coupled to receive the single error correction output (SEC_output) from the controller 110 and outputs a single error localization decoder output (e_sec) output 124 based in SEC_output from controller 110. In one embodiment, the DEC error localization decoder 120 is coupled to receive the double error correction output (DEC_output) from the controller 110 and outputs an error localization decoder output double (e_dec) 126 based on DEC_output from controller 110.

[0037] Em uma modalidade, um multiplexador 128 é proporcionado no aparelho de detecção e correção de erros 100 para gerar uma saída de multiplexador 130. Na modalidade ilustrada na Figura 1, o multiplexador 128 compreende um multiplexador 2:1 tendo uma primeira entrada acoplada à saída de decodificador de localização de erro único (e_sec) 124, uma segunda entrada acoplada à saída de decodificador de localização de erro duplo (e_dec) 126, e uma saída de multiplexador 130 para emitir seja saída de decodificador de localização de erro único (e_sec) ou a saída de decodificador de localização de erro duplo (e_dec) com base em uma entrada de controle 132.[0037] In one embodiment, a multiplexer 128 is provided in the error detection and correction apparatus 100 to generate a multiplexer output 130. In the embodiment illustrated in Figure 1, the multiplexer 128 comprises a 2:1 multiplexer having a first input coupled to the single error location decoder output (e_sec) 124, a second input coupled to the double error location decoder output (e_dec) 126, and a multiplexer output 130 for outputting either single error location decoder output ( e_sec) or the double error localization decoder output (e_dec) based on a control input 132.

[0038] Na modalidade ilustrada na Figura 1, a entrada de controle 132 para o multiplexador 128 é uma entrada que recebe o complemento lógico da saída de detecção de erro duplo (AL_DED) a partir do detector de erro duplo 112. Em uma modalidade, o sinal de controle, que é (~AL_DED), na entrada de controle 132 do multiplexador 128 determina a saída 130 do multiplexador 128 de acordo com as relações a seguir: Tabela 2[0038] In the embodiment illustrated in Figure 1, the control input 132 to the multiplexer 128 is an input that receives the logical complement of the double error detection output (AL_DED) from the double error detector 112. In one embodiment, the control signal, which is (~AL_DED), at the control input 132 of the multiplexer 128 determines the output 130 of the multiplexer 128 according to the following relationships: Table 2

[0039] Nessa modalidade, podem-se corrigir erros de bit a erros duplos na entrada de dados. Embora erros triplos não possam ser corrigíveis nessa modalidade, um flag de erro 122 gerado pelo gerador de flag 116 pode indicar a presença de um erro triplo. Por exemplo, na modalidade descrita em relação à Tabela 1 acima, um flag de erro de dois bits de 11 indica a presença de um erro triplo.[0039] In this modality, bit errors and double errors can be corrected in the data input. Although triple errors may not be correctable in this embodiment, an error flag 122 generated by flag generator 116 may indicate the presence of a triple error. For example, in the embodiment described in relation to Table 1 above, a two-bit 11 error flag indicates the presence of a triple error.

[0040] Na modalidade descrita anteriormente, as relações entre o número de erros, a primeira saída de sinal de vetor (S0) a partir do gerador de síndrome 108, a saída (e_sec) 124 a partir do decodificador de localização de erros de SEC 118, a saída (e_dec) 126 a partir do decodificador de localização de erros de DEC 120, o complemento lógico de AL_DED (~AL_DED)e a saída (e) 130 do multiplexador 128 são resumidas na tabela a seguir: Tabela 3[0040] In the previously described embodiment, the relationships between the number of errors, the first vector signal output (S0) from the syndrome generator 108, the output (e_sec) 124 from the SEC error location decoder 118, the output (e_dec) 126 from the DEC error localization decoder 120, the logical complement of AL_DED (~AL_DED), and the output (e) 130 of the multiplexer 128 are summarized in the following table: Table 3

[0041] Em uma modalidade adicional, proporciona-se um corretor de erros 134 que tem uma entrada de dados acoplada para receber os dados de entrada (databit_in), uma entrada de vetor de erro acoplada à saída de vetor de erro (e) 130 do multiplexador 128, e uma saída 106 que emite dados corrigidos (databit_out).[0041] In a further embodiment, an error corrector 134 is provided that has a data input coupled to receive the input data (databit_in), an error vector input coupled to the error vector output (e) 130 of the multiplexer 128, and an output 106 that outputs corrected data (databit_out).

[0042] A Figura 2 é um diagrama de blocos que ilustra outra modalidade de um aparelho de detecção e correção de erros 200 que inclui um flip-flop e um controlador de temporização, mas não separa decodificadores de localização de erros de SEC e DEC com um multiplexador. Na Figura 2, o aparelho de detecção e correção de erros 200 tem uma entrada de dados (databit_in) 202, uma entrada de verificação de erros (checkbit_in) 204, uma entrada de controle 206, uma saída de dados corrigidos (databit_out) 208, uma saída de detecção de erro único (AL_SED) 210 e uma saída de detecção de erro triplo (AL_TED) 212. Na modalidade ilustrada na Figura 2, o aparelho de detecção e correção de erros 200 inclui um gerador de síndrome 214. Em uma modalidade, o gerador de síndrome 214 na Figura 2 pode ser similar ao gerador de síndrome 108 conforme mostrado na Figura 1 e descrito anteriormente. Por exemplo, o gerador de síndrome 214 na Figura 2 pode compreender um decodificador de matriz de verificação de paridade, tal como um decodificador de matriz de verificação de paridade baseado em árvore XOR usando um código BCH, conforme descrito anteriormente em relação à modalidade mostrada na Figura 1.[0042] Figure 2 is a block diagram illustrating another embodiment of an error detection and correction apparatus 200 that includes a flip-flop and a timing controller, but does not separate SEC and DEC error location decoders with a multiplexer. In Figure 2, the error detection and correction apparatus 200 has a data input (databit_in) 202, an error checking input (checkbit_in) 204, a control input 206, a corrected data output (databit_out) 208, a single error detection output (AL_SED) 210 and a triple error detection output (AL_TED) 212. In the embodiment illustrated in Figure 2, the error detection and correction apparatus 200 includes a syndrome generator 214. In one embodiment , the syndrome generator 214 in Figure 2 may be similar to the syndrome generator 108 as shown in Figure 1 and described previously. For example, the syndrome generator 214 in Figure 2 may comprise a parity check matrix decoder, such as an XOR tree-based parity check matrix decoder using a BCH code, as previously described in relation to the embodiment shown in Figure 1.

[0043] Na modalidade ilustrada na Figura 2, proporciona-se um controlador de temporização 216. Em uma modalidade, o controlador de temporização 216 inclui uma linha de retardo, sendo que uma modalidade da mesma será descrita em maiores detalhes abaixo com referência à Figura 3. Referindo-se à Figura 2, o controlador de temporização 216 é acoplado à entrada de controle 206 e retarda o sinal de entrada a partir da entrada de controle 206 por uma quantidade determinada de tempo antes que o sinal de entrada saia do controlador de temporização 216 em uma saída de controle 218. Em uma modalidade, o aparelho de detecção e correção de erros 200 inclui um flip-flop 220 tendo uma entrada de dados 222 acoplada à saída do gerador de síndrome 214, uma entrada de alternância 224 acoplada à saída de controle 218 do controlador de temporização 216, e uma saída que emite uma saída de síndrome entregue 226 com base na síndrome recebida a partir do gerador de síndrome 214 e a saída de controle 218 do controlador de temporização 216.[0043] In the embodiment illustrated in Figure 2, a timing controller 216 is provided. In one embodiment, the timing controller 216 includes a delay line, one embodiment of which will be described in greater detail below with reference to Figure 3. Referring to Figure 2, timing controller 216 is coupled to control input 206 and delays the input signal from control input 206 for a set amount of time before the input signal leaves the timing controller. timing 216 on a control output 218. In one embodiment, the error detection and correction apparatus 200 includes a flip-flop 220 having a data input 222 coupled to the output of the syndrome generator 214, a toggle input 224 coupled to the control output 218 of the timing controller 216, and an output that outputs a delivered syndrome output 226 based on the syndrome received from the syndrome generator 214 and the control output 218 of the timing controller 216.

[0044] Em uma modalidade, proporciona-se um decodificador de localização de erros 228 no aparelho de detecção e correção de erros 200. Em uma modalidade, o decodificador de localização de erros 228 tem uma entrada acoplada para receber a saída de síndrome entregue 226 a partir do flip-flop 220, uma saída de decodificador de localização de erros 230, uma saída de decodificador de erro único (SED) 232 e uma saída de decodificador de erro duplo (DED) 234. Na modalidade mostrada na Figura 2, proporciona- se um corretor de erros 236 no aparelho de detecção e correção de erros 200. Em uma modalidade, o corretor de erros 236 tem uma primeira entrada acoplada à entrada de dados (databit_in) 202, uma segunda entrada acoplada à saída de decodificador de localização de erros 230, e uma saída que gera a saída de dados corrigidos (databit_out) 208 do aparelho de detecção e correção de erros 200.[0044] In one embodiment, an error localization decoder 228 is provided in the error detection and correction apparatus 200. In one embodiment, the error localization decoder 228 has an input coupled to receive the delivered syndrome output 226 from the flip-flop 220, an error location decoder output 230, a single error decoder (SED) output 232, and a double error decoder (DED) output 234. In the embodiment shown in Figure 2, provides - an error corrector 236 is in the error detection and correction apparatus 200. In one embodiment, the error corrector 236 has a first input coupled to the data input (databit_in) 202, a second input coupled to the location decoder output of errors 230, and an output that generates the corrected data output (databit_out) 208 of the error detection and correction apparatus 200.

[0045] Em uma modalidade, o aparelho de detecção e correção de erros 200 também inclui um detector de erros 238 que gera uma saída de detecção de erro único (AL_SED) 210 e uma saída de detecção de erro triplo (AL_TED) 212. Em uma modalidade, o detector de erros 238 tem uma primeira entrada acoplada para receber a saída de síndrome entregue 226 a partir do flip-flop 220, uma segunda entrada acoplada para receber a saída de decodificador de erro único (SED) 232, e uma terceira entrada acoplada para receber a saída de decodificador de erro duplo (DED) 234 a partir do decodificador de localização de erros 228.[0045] In one embodiment, the error detection and correction apparatus 200 also includes an error detector 238 that generates a single error detection output (AL_SED) 210 and a triple error detection output (AL_TED) 212. In In one embodiment, the error detector 238 has a first input coupled to receive the syndrome output delivered 226 from the flip-flop 220, a second input coupled to receive the single error decoder (SED) output 232, and a third input coupled to receive the output of double error decoder (DED) 234 from the error localization decoder 228.

[0046] Em uma modalidade, o detector de erros 238 inclui uma porta OR 240 tendo uma entrada acoplada para receber a saída de síndrome entregue 226 e uma saída configurada para emitir a saída de detecção de erro único (AL_SED) 210. Em uma modalidade adicional, o detector de erros 238 também inclui uma porta AND 242 tendo uma primeira acoplada à saída da porta OR 240, uma segunda entrada acoplada ao complemento da saída de decodificador de erro único (SED) 232, e uma terceira saída acoplada ao complemento da saída de decodificador de erro duplo (DED) 234. Na modalidade mostrada na Figura 2, a saída da porta AND 242 é a saída de detecção de erro triplo (AL_TED) 212.[0046] In one embodiment, the error detector 238 includes an OR gate 240 having an input coupled to receive the delivered syndrome output 226 and an output configured to output the single error detection (AL_SED) output 210. In one embodiment Additionally, the error detector 238 also includes an AND gate 242 having a first coupled to the output of the OR gate 240, a second input coupled to the complement of the single error decoder (SED) output 232, and a third output coupled to the complement of the double error decoder (DED) output 234. In the embodiment shown in Figure 2, the output of the AND gate 242 is the triple error detection output (AL_TED) 212.

[0047] A Figura 3 é um diagrama de blocos que ilustra uma modalidade do controlador de temporização 216 que compreende uma linha de retardo 300 para gerar um sinal de controle para o flip-flop 220 na modalidade do aparelho de detecção e correção de erros da Figura 2. Em uma modalidade, a entrada de controle 206 recebe um sinal de relógio 302 tendo uma borda dianteira positiva, e a borda dianteira positiva do sinal de relógio 302 é retardada por uma dada quantidade de tempo quando o sinal de relógio 302 sair da saída 218 da linha de retardo 300.[0047] Figure 3 is a block diagram illustrating an embodiment of the timing controller 216 comprising a delay line 300 for generating a control signal for the flip-flop 220 in the embodiment of the error detection and correction apparatus of the Figure 2. In one embodiment, the control input 206 receives a clock signal 302 having a positive leading edge, and the positive leading edge of the clock signal 302 is delayed by a given amount of time when the clock signal 302 exits the output 218 of delay line 300.

[0048] Em uma modalidade, pode-se proporcionar uma pluralidade de portas lógicas ou buffers na linha de retardo 300 para retardar a propagação do sinal de relógio 302. Na modalidade mostrada na Figura 3, a linha de retardo 300 inclui uma ou mais portas AND, tais como portas AND 304a, 304b, 304c e 304d, uma ou mais portas NAND, tal como a porta NAND 306, e um ou mais buffers, tais como os buffers 308a, 308b e 308c, para retardar a propagação do sinal de relógio 302 a partir da entrada 206 até a saída 218 da linha de retardo 300. Outros tipos de portas lógicas, buffers ou linhas de retardo também podem ser implementados no escopo da revelação. Ademais, embora a Figura 3 ilustre um flipflop desencadeado de borda por transição positiva 220, tal como um flip-flop D, outros tipos de flip-flops podem ser implementados em outras modalidades. Por exemplo, ao invés de um desencadeamento de borda por transição positiva, podem- se implementar outros tipos de desencadeamento, como borda por transição negativa.[0048] In one embodiment, a plurality of logic gates or buffers may be provided on delay line 300 to delay propagation of clock signal 302. In the embodiment shown in Figure 3, delay line 300 includes one or more ports AND, such as AND gates 304a, 304b, 304c and 304d, one or more NAND gates, such as NAND gate 306, and one or more buffers, such as buffers 308a, 308b and 308c, to delay propagation of the signal. clock 302 from input 206 to output 218 of delay line 300. Other types of logic gates, buffers, or delay lines may also be implemented within the scope of the disclosure. Furthermore, although Figure 3 illustrates a positive transition edge triggered flipflop 220, such as a D flip-flop, other types of flip-flops can be implemented in other embodiments. For example, instead of edge triggering by positive transition, other types of triggering can be implemented, such as edge by negative transition.

[0049] Em uma modalidade, a linha de retardo 300 e o flip-flop 220 na Figura 3 são implementados para reduzir a probabilidade de transições válidas no decodificador de localização de erros 228 conforme mostrado na Figura 2. Com um grau de retardo de tempo ajustado proporcionado pela linha de retardo 300, o sinal de relógio 302 alcança o flip-flop 220 após a síndrome ser estabelecida, e a síndrome é entregue pelo flip-flop 220 ao decodificador de localização de erros 228 como uma síndrome entregue somente após a síndrome ser estabelecida para evitar transições inválidas. Em uma modalidade, a linha de retardo 300 é proporcionada para imitar o pior retardo da síndrome gerada pelo gerador de síndrome 214. Em uma modalidade, a linha de retardo 300 é criada imitando-se a trajetória crítica do circuito a partir dos dados e entradas de verificação de erros (databit_in) e (checkbit_in) 202 e 204 à saída do gerador de síndrome 214. O pior retardo de tempo dessa trajetória crítica é o tempo máximo (TI-S) necessário para estabelecer as síndromes.[0049] In one embodiment, delay line 300 and flip-flop 220 in Figure 3 are implemented to reduce the probability of valid transitions in error location decoder 228 as shown in Figure 2. With a degree of time delay adjusted provided by the delay line 300, the clock signal 302 reaches the flip-flop 220 after the syndrome is established, and the syndrome is delivered by the flip-flop 220 to the error localization decoder 228 as a syndrome delivered only after the syndrome be established to avoid invalid transitions. In one embodiment, delay line 300 is provided to mimic the worst syndrome delay generated by syndrome generator 214. In one embodiment, delay line 300 is created by mimicking the critical path of the circuit from the data and inputs. error checking (databit_in) and (checkbit_in) 202 and 204 at the output of the syndrome generator 214. The worst time delay of this critical path is the maximum time (TI-S) required to establish the syndromes.

[0050] Em uma modalidade, para garantir uma operação de flip-flop apropriada, a linha de retardo 300 pode ser projetada de modo que o retardo de tempo total produzido pela linha de retardo 300 seja ligeiramente maior que o tempo máximo (TI-S) necessário para estabelecer as síndromes apesar de o retardo geral do aparelho de detecção e correção de erros 200 ser ligeiramente aumentado. Por exemplo, na modalidade mostrada na Figura 3, o número de portas lógicas como portas AND 304a, 304b, 304c e 304d e a porta NAND 306 pode ser implementado para imitar o tempo máximo (TI-S) necessidade para estabelecer as síndromes na trajetória crítica a partir das entradas de síndrome à saída de síndrome, e os buffers, tais como buffers 308a, 308b e 308c podem ser adicionados para produzir um retardo de tempo adicional.[0050] In one embodiment, to ensure proper flip-flop operation, delay line 300 may be designed so that the total time delay produced by delay line 300 is slightly greater than the maximum time (TI-S ) necessary to establish the syndromes although the overall delay of the error detection and correction apparatus 200 is slightly increased. For example, in the embodiment shown in Figure 3, the number of logic gates such as AND gates 304a, 304b, 304c and 304d and NAND gate 306 can be implemented to mimic the maximum time (TI-S) required to establish the syndromes in the trajectory. critical from the syndrome inputs to the syndrome output, and buffers such as buffers 308a, 308b and 308c may be added to produce an additional time delay.

[0051] A Figura 4 é um diagrama de blocos que ilustra ainda outra modalidade de um aparelho de detecção e correção de erros tendo flip-flops, um controlador de temporização, decodificadores de localização de erros separados de correções de erros únicos (SEC) e correção de erros duplos (DEC), um multiplexador, e um gerador de flag. Na modalidade ilustrada na Figura 4, o aparelho de detecção e correção de erros 400 tem uma entrada de dados (databit_in) 402, uma entrada de verificação de erros (checkbit_in) 404 e uma saída de dados corrigidos (databit_out) 406. Nessa modalidade, o aparelho de detecção e correção de erros 400 inclui um gerador de síndrome 408 que é configurado para receber a entrada de dados (databit_in) 402 e a entrada de verificação de erros (checkbit_in) 404.[0051] Figure 4 is a block diagram illustrating yet another embodiment of an error detection and correction apparatus having flip-flops, a timing controller, separate single error correction (SEC) error location decoders, and double error correction (DEC), a multiplexer, and a flag generator. In the embodiment illustrated in Figure 4, the error detection and correction apparatus 400 has a data input (databit_in) 402, an error checking input (checkbit_in) 404, and a corrected data output (databit_out) 406. In this embodiment, The error detection and correction apparatus 400 includes a syndrome generator 408 that is configured to receive data input (databit_in) 402 and error checking input (checkbit_in) 404.

[0052] Em uma modalidade, o gerador de síndrome 408 é capaz de gerar uma primeira saída de sinal de vetor (S0), uma segunda saída de sinal de vetor (S1) e uma terceira saída de sinal de vetor (S3) em resposta à entrada de dados (databit_in) 402 e à entrada de verificação de erros (checkbit_in) 404 de maneira similar ao gerador de síndrome 108 na modalidade mostrada na Figura 1 e descrito anteriormente. Em uma modalidade, o gerador de síndrome 408 compreende um decodificador de matriz de verificação de paridade, e a entrada de verificação de erros (checkbit_in) 404 compreende uma entrada de bits de verificação de paridade. Em uma modalidade, o decodificador de matriz de verificação de paridade pode compreender um decodificador de matriz de verificação de paridade baseado em árvore XOR. Por exemplo, o gerador de síndrome 408 pode ser construído implementando-se qualquer ECC conhecido como o código BCH.[0052] In one embodiment, the syndrome generator 408 is capable of generating a first vector signal output (S0), a second vector signal output (S1), and a third vector signal output (S3) in response to the data input (databit_in) 402 and the error checking input (checkbit_in) 404 in a similar manner to the syndrome generator 108 in the embodiment shown in Figure 1 and described previously. In one embodiment, the syndrome generator 408 comprises a parity check matrix decoder, and the error check input (checkbit_in) 404 comprises a parity check bit input. In one embodiment, the parity check matrix decoder may comprise an XOR tree-based parity check matrix decoder. For example, the 408 syndrome generator can be constructed by implementing any known ECC as the BCH code.

[0053] Na modalidade ilustrada na Figura 4, o aparelho de detecção e correção de erros 400 também inclui um controlador 410 que é configurado para receber a primeira saída de sinal de vetor (S0), a segunda saída de sinal de vetor (S1) e a terceira saída de sinal de vetor (S3) a partir do gerador de síndrome 408, e para gerar uma saída de correção de erros únicos (SEC_output) e uma saída de correção de erros duplos (DEC_output) com base nos três sinais de vetor S0, S1 e S3 a partir do gerador de síndrome 108. Em uma modalidade, a saída de SEC e a saída de DEC podem ser geradas da mesma maneira descrita anteriormente em relação à Figura 1.[0053] In the embodiment illustrated in Figure 4, the error detection and correction apparatus 400 also includes a controller 410 that is configured to receive the first vector signal output (S0), the second vector signal output (S1) and the third vector signal output (S3) from the syndrome generator 408, and to generate a single error correction output (SEC_output) and a double error correction output (DEC_output) based on the three vector signals S0, S1 and S3 from the syndrome generator 108. In one embodiment, the SEC output and the DEC output may be generated in the same manner as previously described in relation to Figure 1.

[0054] Na modalidade ilustrada na Figura 4, o aparelho de detecção e correção de erros 400 inclui, ainda, um detector de erro duplo 412 que tem entradas acopladas para receber a primeira saída de sinal de vetor (S0), a segunda saída de sinal de vetor (S1) e a terceira saída de sinal de vetor (S3) a partir do gerador de síndrome 108, e uma saída que gera uma saída de detecção de erro duplo (AL_DED) 414 com base em pelo menos dois dos três sinais de vetor S0, S1 e S3 a partir do gerador de síndrome 408.[0054] In the embodiment illustrated in Figure 4, the error detection and correction apparatus 400 further includes a dual error detector 412 that has inputs coupled to receive the first vector signal output (S0), the second vector signal output vector signal (S1) and the third vector signal output (S3) from the syndrome generator 108, and an output that generates a double error detection output (AL_DED) 414 based on at least two of the three signals of vector S0, S1 and S3 from the 408 syndrome generator.

[0055] Em uma modalidade, a saída de detecção de erro duplo (AL_DED) 414 a partir do detector de erro duplo 412 pode ser gerada pela mesma equação descrita anteriormente em relação à Figura 1 com base na segunda saída de sinal de vetor (S1) e na terceira saída de sinal de vetor (S3) recebida a partir do gerador de síndrome 108: [0055] In one embodiment, the dual error detection output (AL_DED) 414 from the dual error detector 412 may be generated by the same equation previously described in relation to Figure 1 based on the second vector signal output (S1 ) and at the third vector signal output (S3) received from the syndrome generator 108:

[0056] Em uma modalidade, proporciona-se um gerador de flag 416 no aparelho de detecção e correção de erros 400 conforme ilustrado na Figura 4 de maneira similar à modalidade descrita anteriormente em relação à Figura 1. Referindo-se à Figura 4, o gerador de flag 416 gera um flag de erro de dois bits (error_flag) 422, que é a saída do aparelho de detecção e correção de erros 400 como um indicador de dois bits de erro zero, erro único, erro duplo ou erro triplo. Em uma modalidade, o flag de erro de dois bits (error_flag) 422 pode ser gerado para indicar a presença de zero, único, duplo ou erros triplos de acordo com A Tabela 1 descrita anteriormente em relação à Figura 1.[0056] In one embodiment, a flag generator 416 is provided in the error detection and correction apparatus 400 as illustrated in Figure 4 in a similar manner to the embodiment previously described in relation to Figure 1. Referring to Figure 4, the flag generator 416 generates a two-bit error flag (error_flag) 422, which is output from the error detection and correction apparatus 400 as a two-bit indicator of zero error, single error, double error, or triple error. In one embodiment, the two-bit error flag (error_flag) 422 may be generated to indicate the presence of zero, single, double, or triple errors in accordance with Table 1 described previously in relation to Figure 1.

[0057] Referindo-se à Figura 4, um controlador de temporização 424 tendo uma entrada de controle 426 que recebe um sinal de relógio e uma saída 428 que produz uma saída de relógio de retardo de tempo. Em uma modalidade, o controlador de temporização 424 pode compreender uma linha de retardo como a linha de retardo 300 conforme ilustrado na Figura 3 e descrito anteriormente. Por exemplo, essa linha de retardo pode compreender uma ou mais portas lógicas, como portas AND ou NAND, ou uma ou mais buffers, ou uma combinação de portas de lógica e buffers, conforme mostrado na Figura 3. Referindo-se à Figura 4, a saída de relógio de retardo de tempo a partir da saída 428 do controlador de temporização 424 é proporcionada como entradas de alternância para dois flip-flops 430 e 432.[0057] Referring to Figure 4, a timing controller 424 having a control input 426 that receives a clock signal and an output 428 that produces a time delay clock output. In one embodiment, the timing controller 424 may comprise a delay line such as delay line 300 as illustrated in Figure 3 and described previously. For example, this delay line may comprise one or more logic gates, such as AND or NAND gates, or one or more buffers, or a combination of logic gates and buffers, as shown in Figure 3. Referring to Figure 4, The time delay clock output from the output 428 of the timing controller 424 is provided as toggle inputs to two flip-flops 430 and 432.

[0058] Na modalidade mostrada na Figura 4, proporciona-se um primeiro flip-flop 430 que inclui uma entrada de dados 434 para receber a saída de correção de erros únicos (SEC_output) a partir do controlador 410 e uma entrada de alternância 436 para receber a saída de relógio de retardo de tempo a partir do controlador de temporização 424. Em uma modalidade, o primeiro flip-flop 430 compreende um flip-flop D com desencadeamento de borda por transição positiva. De modo similar, proporciona-se um segundo flipflop 432 que inclui uma entrada de dados 438 para receber a saída de correção de erros duplos (DEC_output) a partir do controlador 410 e uma entrada de alternância 440 para receber a saída de relógio de retardo de tempo a partir do controlador de temporização 424. Em uma modalidade adicional, o segundo flip-flop 432 também pode compreender um flip-flop D com desencadeamento de borda por transição positiva. Em modalidades alternativas, outros tipos de flipflops podem ser implementados, e desencadeamento dos flipflops não precisa ser desencadeamento de borda por transição positiva por sinais de relógio.[0058] In the embodiment shown in Figure 4, a first flip-flop 430 is provided that includes a data input 434 for receiving the single error correction output (SEC_output) from the controller 410 and a toggle input 436 for receiving the time delay clock output from the timing controller 424. In one embodiment, the first flip-flop 430 comprises a D flip-flop with positive transition edge triggering. Similarly, a second flipflop 432 is provided that includes a data input 438 for receiving the double error correction output (DEC_output) from the controller 410 and a toggle input 440 for receiving the delay clock output. time from the timing controller 424. In a further embodiment, the second flip-flop 432 may also comprise a D flip-flop with positive transition edge triggering. In alternative embodiments, other types of flipflops can be implemented, and triggering of the flipflops does not need to be edge triggering by positive transition by clock signals.

[0059] Na modalidade mostrada na Figura 4, o primeiro flip-flop 430 emite uma SEC_output entregue 442 a um decodificador de localização de erros de correção de erros únicos (SEC) 444, enquanto o segundo flip-flop 432 emite uma DEC_output entregue 446 a um decodificador de localização de erros de correção de erros duplos (DEC) 448. A SEC_output e a DEC_output podem ser geradas pelo controlador 410 da mesma maneira conforme descrito anteriormente em relação à Figura 1. O primeiro e segundo flip-flops 430 e 432 são proporcionados na modalidade conforme mostrado na Figura 4 para garantir que a SEC_output e a DEC_output são entregues ao decodificador de localização de erros de SEC 444 e ao decodificador de localização de erros de DEC 448, respectivamente, APÓS A síndrome é estabelecido para evirar transições inválidas.[0059] In the embodiment shown in Figure 4, the first flip-flop 430 outputs a delivered SEC_output 442 to a single error correction (SEC) error location decoder 444, while the second flip-flop 432 outputs a delivered DEC_output 446 to a double error correction (DEC) error localization decoder 448. The SEC_output and the DEC_output may be generated by the controller 410 in the same manner as described previously with respect to Figure 1. The first and second flip-flops 430 and 432 are provided in the embodiment as shown in Figure 4 to ensure that the SEC_output and the DEC_output are delivered to the SEC error localization decoder 444 and the DEC error localization decoder 448, respectively, AFTER the syndrome is established to avoid invalid transitions .

[0060] Em uma modalidade, o decodificador de localização de erros de SEC 444 e o decodificador de localização de erros de DEC 448 na Figura 4 geram uma saída de decodificador de localização de erro único (e_sec) 450 e uma saída de decodificador de localização de erro duplo (e_dec) 452, respectivamente, da mesma maneira que aquele descrita em relação à Figura 1. Referindo-se à Figura 4, um multiplexador 454 tendo uma primeira entrada acoplada para receber a saída de decodificador de localização de erro único (e_sec) 450, a segunda entrada acoplada para receber a saída de decodificador de localização de erro duplo (e_dec) 452, e uma entrada de controle 456. Em uma modalidade, a entrada de controle 456 é acoplada para receber o complemento lógico de AL_DED da mesma maneira descrita anteriormente em relação à Figura 1. Em uma modalidade, a saída (e) 458 do multiplexador 454 é selecionada da mesma maneira descrita anteriormente em relação à Figura 1, de acordo com as relações descritas nas Tabelas 2 e 3, por exemplo.[0060] In one embodiment, the SEC error location decoder 444 and the DEC error location decoder 448 in Figure 4 generate a single error location decoder output (e_sec) 450 and a location decoder output double error location decoder (e_dec) 452, respectively, in the same manner as that described with respect to Figure 1. Referring to Figure 4, a multiplexer 454 having a first input coupled to receive the single error location decoder output (e_sec ) 450, the second input coupled to receive the output of double error location decoder (e_dec) 452, and a control input 456. In one embodiment, the control input 456 is coupled to receive the logic complement of AL_DED thereof. manner previously described with respect to Figure 1. In one embodiment, the output (e) 458 of the multiplexer 454 is selected in the same manner as previously described with respect to Figure 1, in accordance with the relationships described in Tables 2 and 3, for example.

[0061] Em uma modalidade adicional, proporciona-se um corretor de erros 460 no aparelho de detecção e correção de erros 400 da Figura 4. Em uma modalidade, o corretor de erros tem uma entrada de dados acoplada para receber os dados de entrada (databit_in), uma entrada de vetor de erro acoplada à saída de vetor de erro (e) 458 do multiplexador 454, e uma saída 406 que emite dados corrigidos (databit_out).[0061] In a further embodiment, an error corrector 460 is provided in the error detection and correction apparatus 400 of Figure 4. In one embodiment, the error corrector has a data input coupled to receive the input data ( databit_in), an error vector input coupled to the error vector output (e) 458 of the multiplexer 454, and an output 406 that outputs corrected data (databit_out).

[0062] A Figura 5 é um diagrama de blocos simplificado que ilustra uma modalidade de um aparelho de detecção e correção de erros com uma lógica configurada para realizar funções de detecção e correção de erros. Na modalidade ilustrada na Figura 5, o aparelho de detecção e correção de erros 500 inclui uma lógica configurada para localizar erros únicos no bloco 505, a lógica configurada para localizar erros duplos 510, e a lógica configurada para gerar dados de saída corrigidos 515. Cada lógica configurada para localizar erros únicos, lógica configurada para localizar erros duplos, e lógica configurada para gerar dados de saída corrigidos conforme ilustrado nos blocos 505, 510 e 515 pode incluir um ou mais elementos em várias modalidades do aparelho de detecção e correção de erros descrito anteriormente em relação às Figuras 1 a 4.[0062] Figure 5 is a simplified block diagram illustrating an embodiment of an error detection and correction apparatus with logic configured to perform error detection and correction functions. In the embodiment illustrated in Figure 5, error detection and correction apparatus 500 includes logic configured to locate single errors in block 505, logic configured to locate double errors 510, and logic configured to generate corrected output data 515. Each logic configured to locate single errors, logic configured to locate double errors, and logic configured to generate corrected output data as illustrated in blocks 505, 510 and 515 may include one or more elements in various embodiments of the described error detection and correction apparatus. previously in relation to Figures 1 to 4.

[0063] A Figura 6 é um diagrama de blocos que ilustra uma modalidade de um dispositivo de memória no qual o aparelho de detecção e correção de erros pode ser implementado. Na modalidade ilustrada na Figura 6, uma memória 600 inclui células de memória 605 e um aparelho de detecção e correção de erros 610. O aparelho de detecção e correção de erros 610 pode ser integrado no mesmo chip que as células de memória 605, ou ser proporcionado em um chip separado. Conforme mostrado na Figura 6, os dados brutos da célula de memórias podem ser transmitidos ao longo da seta 615 ao aparelho de detecção e correção de erros 610 para detecção e correção de erros, e dados corrigidos a partir do aparelho de detecção e correção de erros 610 podem ser transmitidos ao longo da seta 620 de volta à célula de memórias 605. O aparelho de detecção e correção de erros 610 pode incluir qualquer das várias modalidades descritas anteriormente em relação às Figuras 1 a 4.[0063] Figure 6 is a block diagram illustrating an embodiment of a memory device in which error detection and correction apparatus can be implemented. In the embodiment illustrated in Figure 6, a memory 600 includes memory cells 605 and an error detection and correction apparatus 610. The error detection and correction apparatus 610 may be integrated on the same chip as the memory cells 605, or be provided on a separate chip. As shown in Figure 6, raw data from the memory cell can be transmitted along arrow 615 to error detection and correction apparatus 610 for error detection and correction, and corrected data from the error detection and correction apparatus 610 may be transmitted along arrow 620 back to memory cell 605. Error detection and correction apparatus 610 may include any of the various embodiments described above in connection with Figures 1 to 4.

[0064] Os indivíduos versados na técnica avaliarão que as informações e sinais podem ser representados usando qualquer dentre uma variedade de diferentes tecnologias e técnicas. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos e chips que podem ser referenciados ao longo da descrição anterior podem ser representados por tensões, correntes, ondas eletromagnéticas, campos ou partículas magnéticas, campos ou partículas ópticas, ou qualquer combinação dos mesmos.[0064] Individuals skilled in the art will appreciate that information and signals can be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols and chips that may be referenced throughout the preceding description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

[0065] Ademais, os indivíduos versados na técnica avaliarão que os vários blocos lógicos, módulos, circuitos e etapas de algoritmo ilustrativos descritos em conexão com as modalidades reveladas no presente documento podem ser implementados como hardware eletrônico, software computacional, ou combinações de ambos. Para ilustrar claramente essa intercambiabilidade de hardware e software, vários componentes, blocos, módulos, circuitos, e etapas ilustrativos foram descritos anteriormente em termos gerais de sua funcionalidade. Se essa funcionalidade é implementada como hardware ou software depende as restrições particulares de aplicação e design impostas pelo aparelho geral. Os artesãos versados podem implementar a funcionalidade descrita de várias formas para cada aplicação particular, mas essas decisões de implementação não devem ser interpretadas como o motivo de uma divergência do escopo ad revelação.[0065] Furthermore, those skilled in the art will appreciate that the various illustrative logic blocks, modules, circuits and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computational software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, several illustrative components, blocks, modules, circuits, and steps have been previously described in general terms of their functionality. Whether this functionality is implemented as hardware or software depends on the particular application and design constraints imposed by the overall apparatus. Skilled artisans may implement the described functionality in various ways for each particular application, but these implementation decisions should not be interpreted as the reason for a divergence from the scope ad disclosure.

[0066] Os métodos, sequências ou algoritmos descritos em conexão com as modalidades reveladas no presente documento podem ser incorporados diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação dos dois. Um módulo de software pode residir em memória RAM, memória flash, memória ROM, memória EPROM, memória EEPROM, registradores, disco rígido, um disco removível, um CD-ROM, ou qualquer outra forma de mídia de armazenamento conhecida na técnica. Uma mídia de armazenamento exemplificadora é acoplada ao processador de modo que o mesmo possa ler informações, e gravar informações mídia de armazenamento. Alternativamente, a mídia de armazenamento pode ser integral ao processador.[0066] The methods, sequences or algorithms described in connection with the embodiments disclosed herein can be incorporated directly into hardware, into a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage media known in the art. An exemplary storage medium is coupled to the processor so that it can read information from, and write information to, the storage medium. Alternatively, the storage media may be integral to the processor.

[0067] De modo correspondente, uma modalidade da revelação pode incluir uma mídia legível por computador que incorpora um método para detecção e correção de erros. De modo correspondente, a revelação não é limitada a exemplos ilustrados e quaisquer meios para realizar a funcionalidade descritas no presente documento são incluídos nas modalidades da revelação.[0067] Correspondingly, an embodiment of the disclosure may include a computer-readable medium that incorporates a method for detecting and correcting errors. Correspondingly, the disclosure is not limited to illustrated examples and any means for carrying out the functionality described herein are included in the embodiments of the disclosure.

[0068] Muito embora a revelação anterior mostre modalidades ilustrativas, deve-se notar que várias alterações e modificações podem ser feitas ao presente documento sem divergir do escopo das reivindicações anexas. As funções, etapas ou ações das reivindicações do método de acordo com as modalidades descritas no presente documento não precisam ser realizadas em nenhuma ordem particular exceto onde expressamente declarado em contrário. Adicionalmente, embora os elementos possam ser descritos ou reivindicações no singular, contempla-se o plural exceto que uma limitação ao singular seja explicitamente declarada.[0068] Although the previous disclosure shows illustrative embodiments, it should be noted that various changes and modifications can be made to the present document without diverging from the scope of the attached claims. The functions, steps or actions of the method claims according to the embodiments described herein need not be performed in any particular order except where expressly stated otherwise. Additionally, although elements may be described or claimed in the singular, the plural is contemplated unless a limitation to the singular is explicitly stated.

Claims (9)

1. Aparelho de detecção e correção de erros (100) para um código Bose-Chaudhuri-Hocquenghem, BCH, de correção de erros duplos e detecção de erros triplos, DEC-TED, compreendendo: um gerador de síndrome (108) configurado para receber dados de entrada v (102, 104) e gerar uma síndrome compreendendo uma primeira saída de sinal de vetor S0, uma segunda saída de sinal de vetor S1 e uma terceira saída de sinal de vetor S3 com base nos dados de entrada v em uma matriz de verificação de paridade H do código DEC-TED BCH; um gerador de flag (116) configurado para gerar um flag de erro (122) que é emitido pelo aparelho de detecção e correção de erros; o aparelho de detecção e correção de erros caracterizado pelo fato de que compreende adicionalmente: um decodificador de localização de erro duplo (120) configurado para localizar um erro duplo nos dados de entrada e para emitir uma saída de decodificador de localização de erro duplo, e_dec (126); um detector de erro duplo (112) configurado para receber as primeira, segunda e terceira saídas de sinal de vetor a partir do gerador de síndrome e para gerar uma saída de detecção de erro duplo, AL_DED (114) com base nas primeira, segunda e terceira saídas de sinal de vetor; um controlador (110) configurado para receber as primeira, segunda e terceira saídas de sinal de vetor e para gerar uma saída de correção de erro único, SEC_output, e uma saída de correção de erro duplo, DEC_output, com base nas primeira, segunda e terceira saídas de sinal de vetor; um decodificador de localização de erro único (118) configurado para localizar um erro único nos dados de entrada, em que o decodificador de localização de erro único é configurado para receber a saída de correção de erro único, SEC_output, e para gerar uma saída de decodificador de localização de erro único, e_sec (124); um multiplexador (128) que compreende uma primeira entrada acoplada à saída de decodificador de localização de erro único e uma segunda entrada acoplada à saída de decodificador de localização de erro duplo, em que o multiplexador compreende adicionalmente uma entrada de controle configurada para emitir a saída de decodificador de localização de erro único ou a saída de decodificador de localização de erro duplo com base na entrada de controle; um corretor de erros (134) acoplado ao decodificador de localização de erro único e ao decodificador de localização de erro duplo para gerar dados de saída corrigidos e compreendendo uma entrada configurada para receber os dados de entrada v e a saída do multiplexador, e uma saída (106) configurada para emitir os dados de saída corrigidos com base nos dados de entrada e a saída de decodificador de localização de erro único ou duplo; em que o gerador de flag (116) é adicionalmente configurado para receber a saída de detecção de erro duplo, AL_DED, a partir do detector de erro duplo e a primeira saída de sinal de vetor S0 a partir do gerador de síndrome, e gerar o flag de erro (122) com base na saída de detecção de erro duplo e na primeira saída de sinal de vetor S0, em que o flag de erro gerado indica o número de erros nos dados de entrada v do erro zero aos erros triplos ao indicar erro zero, erro único, erros duplos ou erros triplos; em que o decodificador de localização de erro duplo (120) é adicionalmente configurado para receber a saída de correção de erro duplo, DEC_output, a partir do controlador e para localizar um erro duplo nos dados de entrada com base na saída de correção de erro duplo recebida, DEC_outut, e para emitir uma saída de decodificador de localização de erro duplo; e em que o controlador (110) é adicionalmente configurado para determinar se uma entrada de dados particular é predita para ter um erro único ou um erro duplo, para usar as saídas de correção de erro único ou duplo para selecionar somente um entre o decodificador de localização de erro único e o decodificador de localização de erro duplo para realizar localização de erro na entrada de dados v com base na predição de erro, e desativar o decodificador de localização de erro não-selecionado.1. Error detection and correction apparatus (100) for a Bose-Chaudhuri-Hocquenghem, BCH, double error correction and triple error detection, DEC-TED, code, comprising: a syndrome generator (108) configured to receive input data v(102, 104) and generate a syndrome comprising a first vector signal output S0, a second vector signal output S1 and a third vector signal output S3 based on input data v in a parity check matrix H of the DEC-TED BCH code; a flag generator (116) configured to generate an error flag (122) that is output by the error detection and correction apparatus; the error detection and correction apparatus further comprising: a double error location decoder (120) configured to locate a double error in the input data and to output a double error location decoder output, e_dec (126); a dual error detector (112) configured to receive the first, second and third vector signal outputs from the syndrome generator and to generate a dual error detection output, AL_DED (114) based on the first, second and third vector signal outputs; a controller (110) configured to receive the first, second and third vector signal outputs and to generate a single error correction output, SEC_output, and a double error correction output, DEC_output, based on the first, second and third vector signal outputs; a single error location decoder (118) configured to locate a single error in the input data, wherein the single error location decoder is configured to receive the single error correction output, SEC_output, and to generate an output of single error location decoder, e_sec(124); a multiplexer (128) comprising a first input coupled to the single error location decoder output and a second input coupled to the double error location decoder output, wherein the multiplexer further comprises a control input configured to output the output of single error location decoder or the output of double error location decoder based on the control input; an error corrector (134) coupled to the single error location decoder and the double error location decoder for generating corrected output data and comprising an input configured to receive the input data v and the output of the multiplexer, and an output (106 ) configured to output the corrected output data based on the input data and the single or double error localization decoder output; wherein the flag generator (116) is further configured to receive the double error detection output, AL_DED, from the double error detector and the first vector signal output S0 from the syndrome generator, and generate the error flag (122) based on the double error detection output and the first vector signal output S0, wherein the generated error flag indicates the number of errors in the input data v from zero error to triple errors by indicating zero error, single error, double errors or triple errors; wherein the double error location decoder (120) is further configured to receive the double error correction output, DEC_output, from the controller and to locate a double error in the input data based on the double error correction output. received, DEC_outut, and to output a double error location decoder output; and wherein the controller (110) is further configured to determine whether a particular data input is predicted to have a single error or a double error, to use the single or double error correction outputs to select only one of the single error localization and the double error localization decoder to perform error localization on the input data v based on the error prediction, and disable the unselected error localization decoder. 2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o gerador de síndrome compreende um decodificador de matriz de verificação de paridade.2. The apparatus of claim 1, wherein the syndrome generator comprises a parity check matrix decoder. 3. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o decodificador de matriz de verificação de paridade compreende um decodificador de matriz de verificação de paridade baseado em árvore XOR.3. The apparatus of claim 2, wherein the parity check matrix decoder comprises an XOR tree-based parity check matrix decoder. 4. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: um controlador de temporização (424) tendo uma entrada de controle e uma saída de controle; um primeiro flip-flop (430) que compreende uma entrada acoplada para receber a saída de correção de erro único, uma entrada de alternância acoplada à saída de controle do controlador de temporização, e uma saída configurada para emitir a saída de correção de erro único recebida para o decodificador de localização de erro único; e um segundo flip-flop (432) que compreende uma entrada acoplada para receber a saída de correção de erro duplo, uma entrada de alternância acoplada à saída de controle do controlador de temporização, e uma saída configurada para emitir a saída de correção de erro duplo recebida para o decodificador de localização de erro duplo.4. Apparatus according to claim 1, characterized in that it further comprises: a timing controller (424) having a control input and a control output; a first flip-flop (430) comprising an input coupled to receive the single error correction output, a toggle input coupled to the control output of the timing controller, and an output configured to output the single error correction output received to the single error location decoder; and a second flip-flop (432) comprising an input coupled to receive the double error correction output, a toggle input coupled to the control output of the timing controller, and an output configured to output the error correction output. double received to the double error localization decoder. 5. Aparelho, de acordo com a reivindicação 4, caracterizado pelo fato de que o controlador de temporização compreende uma unidade de retardo.5. Apparatus according to claim 4, characterized in that the timing controller comprises a delay unit. 6. Aparelho, de acordo com a reivindicação 5, caracterizado pelo fato de que a unidade de retardo compreende uma ou mais portas lógicas.6. Apparatus according to claim 5, characterized in that the delay unit comprises one or more logic gates. 7. Aparelho, de acordo com a reivindicação 4, caracterizado pelo fato de que o primeiro flip-flop compreende um primeiro flip-flop desencadeado por borda positiva, e em que o segundo flip-flop compreende um segundo flip-flop desencadeado por borda positiva.7. The apparatus of claim 4, wherein the first flip-flop comprises a first positive edge triggered flip-flop, and wherein the second flip-flop comprises a second positive edge triggered flip-flop . 8. Memória caracterizada pelo fato de que compreende: uma célula de memória; e um aparelho de detecção e correção de erros acoplado para receber dados de entrada a partir da célula de memória e transmitir dados de saída corrigidos à célula de memória, o aparelho de detecção e correção de erros sendo conforme o definido em qualquer uma das reivindicações 1 a 7.8. Memory characterized by the fact that it comprises: a memory cell; and an error detection and correction apparatus coupled for receiving input data from the memory cell and transmitting corrected output data to the memory cell, the error detection and correction apparatus being as defined in any one of claims 1 to 7. 9. Método de detecção e correção de erros para um código Bose-Chaudhuri-Hocquenghem, BCH, de correção de erros duplos e detecção de erros triplos, compreendendo: gerar uma síndrome, em que gerar a síndrome compreende receber dados de entrada v (102, 104) e emitir uma primeira saída de sinal de vetor S0, uma segunda saída de sinal de vetor S1 e uma terceira saída de sinal de vetor S3 com base nos dados de entrada v, em uma matriz de verificação de paridade H do código DEC-TED BCH; o método caracterizado pelo fato de que compreende adicionalmente: gerar uma saída de detecção de erro duplo, AL_DED (114) com base nas primeira, segunda e terceira saídas de sinal de vetor; gerar uma saída de correção de erro único, SEC_output, e uma saída de correção de erro duplo, DEC_output, com base nas primeira, segunda e terceira saídas de sinal de vetor; determinar se é predito que uma entrada de dados particular tenha um erro único ou um erro duplo, em que a determinação compreende gerar uma saída de correção de erro único ou uma saída de correção de erro duplo, em que gerar a saída de correção de erro único ou a saída de correção de erro duplo compreende receber as primeira, segunda e terceira saídas de sinal de vetor, e gerar a saída de correção de erro único ou a saída de correção de erro duplo com base nas primeira, segunda e terceira saídas de sinal de vetor; gerar e emitir um flag de erro (122) com base na saída de detecção de erro duplo, AL_DED (114) e na primeira saída de sinal de vetor; selecionar, pelo uso de SEC_output e DEC_output, somente um entre um decodificador de localização de erro único (118) configurado para localizar um erro único nos dados de entrada v e para gerar uma saída de decodificador de localização de erro único e_sec (124), e um decodificador de localização de erro duplo (120) configurado para localizar um erro duplo nos dados de entrada v e para gerar uma saída de decodificador de localização de erro duplo e_dec (126) para realizar localização de erro nos dados de entrada v com base na determinação; desativar o decodificador de localização de erro não selecionado; multiplexar uma primeira entrada acoplada à saída de decodificador de localização de erro único, uma segunda entrada acoplada à saída de decodificador de localização de erro duplo usando uma entrada de controle configurada para receber a saída de detecção de erro duplo, AL_DED, em que multiplexar compreende emitir a saída de decodificador de localização de erro único, e_sec, ou a saída de decodificador de localização de erro duplo, e_dec, com base na entrada de controle; e corrigir os dados de entrada v recebidos com base na saída da multiplexação e emitir os dados de entrada corrigidos; em que o flag de erro gerado indica o número de erros nos dados de entrada v do erro zero aos erros triplos ao indicar erro zero, erro único, erros duplos ou erros triplos.9. Error detection and correction method for a Bose-Chaudhuri-Hocquenghem, BCH, code of double error correction and triple error detection, comprising: generating a syndrome , wherein generating the syndrome comprises receiving input data v (102, 104) and outputting a first vector signal output S0, a second vector signal output S1 and a third vector signal output S3 based on the input data entry v, in a parity check matrix H of the DEC-TED BCH code; the method further comprising: generating a dual error detection output, AL_DED (114) based on the first, second and third vector signal outputs; generating a single error correction output, SEC_output, and a double error correction output, DEC_output, based on the first, second and third vector signal outputs; determining whether a particular data input is predicted to have a single error or a double error, wherein the determination comprises generating a single error correction output or a double error correction output, wherein generating the error correction output single or double error correction output comprises receiving the first, second and third vector signal outputs, and generating the single error correction output or double error correction output based on the first, second and third vector signal outputs. vector sign; generating and outputting an error flag (122) based on the double error detection output, AL_DED (114) and the first vector signal output; select, by use of SEC_output and DEC_output, only one of a single error location decoder (118) configured to locate a single error in the input data v and to generate an e_sec single error location decoder output (124), and a double error localization decoder (120) configured to locate a double error in the input data v and to generate a double error localization decoder output e_dec (126) to perform error localization in the input data v based on the determination ; disable unselected error localization decoder; multiplexing a first input coupled to the single error location decoder output, a second input coupled to the double error location decoder output using a control input configured to receive the double error detection output, AL_DED, wherein multiplexing comprises output the single error location decoder output, e_sec, or the double error location decoder output, e_dec, based on the control input; and correcting the received input data based on the multiplexing output and outputting the corrected input data; where the generated error flag indicates the number of errors in the input data v from zero error to triple errors by indicating zero error, single error, double errors or triple errors.
BR112018004992-1A 2015-09-14 2016-08-25 ERROR DETECTION AND CORRECTION APPARATUS AND METHOD FOR A BOSE-CHAUDHURI-HOCQUENGHEM CODE, BCH, DOUBLE ERROR CORRECTION AND TRIPLE ERROR DETECTION, DEC-TED, AND, MEMORY BR112018004992B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/852,988 2015-09-14

Publications (1)

Publication Number Publication Date
BR112018004992B1 true BR112018004992B1 (en) 2023-08-01

Family

ID=

Similar Documents

Publication Publication Date Title
JP6884138B2 (en) Low Power Double Error Correction-Triple Error Detection (DEC-TED) Decoder
US11683050B2 (en) Memory controller and method of data bus inversion using an error detection correction code
KR102231294B1 (en) Information processing apparatus and system providing plurality of levels of error correction, and operating method thereof
KR20180080683A (en) Method of correcting error in a memory
Cha et al. Efficient implementation of single error correction and double error detection code with check bit pre-computation for memories
US9911509B2 (en) Counter to locate faulty die in a distributed codeword storage system
US20220107867A1 (en) End-to-end data protection for compute in memory (cim)/compute near memory (cnm)
Manzhosov et al. Revisiting Residue Codes for Modern Memories
Wang et al. Nonlinear multi-error correction codes for reliable MLC NAND flash memories
Namba et al. A single-bit and double-adjacent error correcting parallel decoder for multiple-bit error correcting BCH codes
US8199547B2 (en) Error detection in a content addressable memory (CAM)
US9928135B2 (en) Non-local error detection in processor systems
BR112018004992B1 (en) ERROR DETECTION AND CORRECTION APPARATUS AND METHOD FOR A BOSE-CHAUDHURI-HOCQUENGHEM CODE, BCH, DOUBLE ERROR CORRECTION AND TRIPLE ERROR DETECTION, DEC-TED, AND, MEMORY
Wang et al. Processor design with asymmetric reliability
Mandal et al. A novel method for soft error mitigation in FPGA using modified matrix code
Farheen et al. Error Detection and Correction Using RP SEC-DED
KR20220011641A (en) Error detection and correction technique using integrity check
Han et al. Exploiting unused spare columns and replaced columns to enhance memory ECC
Yang et al. An MPCN-based BCH codec architecture with arbitrary error correcting capability
Lee et al. Review of Memory RAS for Data Centers
Kwon et al. EPA ECC: Error-Pattern-Aligned ECC for HBM2E
JP2005176244A (en) Spotty byte error correction/detection method and apparatus
Siddiqui et al. SEDC‐Based Hardware‐Level Fault Tolerance and Fault Secure Checker Design for Big Data and Cloud Computing
Tabassum et al. Modified DEC for Short BCH Codes for Parallel Correction of 3-Bit Error with High Decoding Efficiency.
Saha et al. A cellular automata based fault tolerant approach in designing test hardware for L1 cache module