WO2010128068A1 - Method for protecting electronic circuits, and device and system implementing the method - Google Patents
Method for protecting electronic circuits, and device and system implementing the method Download PDFInfo
- Publication number
- WO2010128068A1 WO2010128068A1 PCT/EP2010/056072 EP2010056072W WO2010128068A1 WO 2010128068 A1 WO2010128068 A1 WO 2010128068A1 EP 2010056072 W EP2010056072 W EP 2010056072W WO 2010128068 A1 WO2010128068 A1 WO 2010128068A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bits
- data
- errors
- matrix
- words
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Definitions
- the invention relates to a method of protecting electronic circuits, a device and a system implementing the method.
- the invention can be used, for example, in data storage or transmission systems.
- the data also called information
- the data is usually transported and stored as binary values called bits.
- the errors appearing on the data may be transient, permanent or intermittent.
- the transient errors are produced by interference with the environment or are generated by the radioactivity of certain impurities in the material composing said circuit.
- ECC Error Correcting Code
- the data is encoded, for example when writing said data in a memory or before transmission for transmission.
- the encoding operation also called encoding operation, leads to code words containing said data to which are added verification bits obtained according to the calculation rules represented in a matrix constructed for this encoding. This matrix is usually called the parity matrix.
- a verification vector called syndrome is calculated. The latter is used to detect and correct potential errors appearing on codewords. If no error is detected, the coded word is considered correct. If an error that can be corrected is detected, the codeword is corrected. Finally, if an incorrect error is detected, it is reported.
- the Hamming coding makes it possible to correct a single error.
- This correction capacity is called SEC acronym from the English expression "Single Error Correction".
- the extended Hamming coding is a Hamming code to which is added a parity bit on all the bits in order to allow the detection of double DED errors.
- This code is an example code that has a SEC-DED capability.
- the codes of this family are capable of correcting an error and detecting a multiple error impacting two bits of a codeword. A multiple error designates, in the rest of the description, an error on several bits of the same code word.
- Another code example with SEC-DED capability is Hsiao code.
- ECC code allows the correction of a selection of double errors while having the ability to detect other double errors, as described in US Patent US3755779 entitled Error Correction System for single-error correction, related-double -error correction and unrelated-double-error-detection. These pairs of errors are chosen from such that they allow the correction of double errors on adjacent bits.
- ECC codes offer a dynamic correction solution.
- ECC can handle both permanent and / or transient faults. But, usually, when this solution is used to solve a permanent fault, it often loses its ability to correct transient and / or permanent faults appearing thereafter.
- spare resources also called "spare resources” in English.
- the defective physical resources identified are then replaced by said backup resources.
- masking is also used in the following description and refers to the same technique.
- the defective resources are hidden in favor of non-defective backup resources. Unlike ECC codes, this solution is static and only fixes permanent errors.
- An object of the invention is in particular to overcome the aforementioned drawbacks.
- the invention relates to a method for protecting at least one electronic circuit processing digital data.
- An error protection configuration introduced on said data is deduced from a mapping representative of the faults of said circuit, said protection configuration corresponding to the configuration of at least one encoder and a decoder, the encoder generating codewords composed of data bits to which redundancy bits are added, these redundancy bits being generated in such a way that the errors resulting from the defects indicated by said mapping are corrected during the decoding of said codewords.
- the method comprises a step of determining the values that the elements comprising a programmable parity matrix H representative of the protection configuration take, said matrix being used to generate redundancy bits from digital data words, the elements of said matrix being selected so as to achieve correction capability to correct at least the permanent and intermittent errors resulting from electronic circuit failures indicated by the mapping.
- a step determines, for example, whether an ECC type protection of the digital data is implemented, the ECC code being chosen such that its correction capacity is sufficient to correct at least the permanent and intermittent errors resulting from the defects indicated by the mapping.
- the ECC code can be selected from SEC, SEC-DED, DEC-TED type codes, and having the ability to correct a targeted choice of simple and / or multiple errors.
- Part of the elements of the parity matrix H is, for example, not programmable.
- a step of determining an HS matrix of multiple error syndromes includes a step of determining a MapME matrix that maps to each multiple error correction syndrome contained in the multiple error syndrom HS the location of the errors to be corrected.
- the information used for programming the H, MapME and HS matrices can be stored in compressed form and then decompressed before being used.
- the method comprises, for example, a step of updating the stored protection configuration.
- the data words are, for example, encoded to form code words by adding check bits and spare bits to the data bits in accordance with the stored protection pattern.
- the code words can be decoded by detecting and then correcting the errors taking into account the protection configuration that was used during the encoding of said data word.
- the method comprises a step of detecting defects of the circuit to be protected and of determining a fault map, the detection being carried out using one of the following methods: tests and observation of the protected circuit , statistics calculations.
- the invention also relates to an electronic device for configuring and protecting memory areas, a memory area being represented by a matrix of memory cells, a data word that can be stored by line of said matrix, said memory area consisting of at least one main area and one resource area complementary, the main area being for storing the data words and the complementary resource area being for storing redundancy bits associated with the data words.
- the device comprises, for example, means for determining a protection configuration of the data words by using the method as described above from a mapping of the defects of the memory area, a portion of the complementary resource area being allocated to store check bits of one ECC type code and another portion of the supplementary resource area being allocated as backup resources.
- the memory zone is, for example, included in the device.
- the subject of the invention is also a digital interconnection system composed of at least one source module comprising encoding means so as to generate codewords from useful data, of at least one destination module comprising means for decoding said code words, at least one interconnection network composed of electronic links and nodes, a portion of said links and said nodes being called complementary transmission resources and being used for transmitting the redundancy bits of code words, the code words being transmitted from the source modules to the destination modules using said network using transmission paths.
- the means for encoding, decoding and the use of the complementary transmission resources of the interconnection network are, for example, configured according to a given coding mode, a coding mode corresponding to the use of an ECC code and or backup electronic lines, said coding mode using the method as described above.
- the invention has the particular advantage of allowing the configuration or / and reconfiguration of the resources used for the protection of the information stored or transmitted taking into account the specific distribution of faults in a circuit at the time of its production, its test, or during its exploitation.
- FIG. 1 gives an example of a codeword comprising a set of data bits and a set of redundancy bits associated with it in order to reinforce the reliability of the information represented by said data bits;
- FIG. 2 shows an example of a memory zone comprising additional resources intended to add redundancy to the stored data words;
- FIG. 3 illustrates the principle of the method according to the invention;
- FIG. 4 presents an example of an algorithm for allocating complementary resources;
- FIG. 5 gives an example of an electronic storage device implementing the method according to the invention;
- FIG. 6 shows an exemplary encoder structure that can be used to generate the redundancy bits associated with the data words to be stored;
- FIG. 7 gives an example of a configuration of a parity matrix H making it possible to combine both a SEC-DED type coding and the replacement of data columns by backup columns;
- FIG. 8 shows an exemplary decoder that can be used for reading stored and protected data;
- Figures 9 to 12 show a practical example of implementation of the invention for a given fault mapping;
- Figure 13 provides an example of a digital data interconnect system.
- FIG. 1 gives an example of a code word comprising a set of data bits and a set of redundancy bits associated with it.
- a codeword 100 comprises a portion corresponding to the data bits 101 and a portion corresponding to the redundancy bits 102.
- the codeword of FIG. 1 may correspond, for example, to a code word stored in a memory or transmitted on an interconnection system.
- a digital memory circuit makes it possible to store binary data in a memory area that can be represented, for example, by an array of memory cells comprising L words and C columns. At the intersection of each word with each column is a memory cell for storing a bit. In other words, a memory space of dimension LxC will make it possible to store L words of C bits.
- LxC a memory space of dimension LxC will make it possible to store L words of C bits.
- each stored word comprises C data bits D 1 , D 2 ,..., D c and k redundancy bits Ri, R 2 ,..., Rk.
- the redundancy columns correspond either to backup resources or to verification bits.
- the spare resource columns and check bit columns are grouped together without distinction. This grouping makes it possible, when allocating resources, to favor one of these solutions over the other, depending on the need. Indeed the verification columns will be more suitable for a dynamic correction, that is to say to correct transient errors.
- the spare columns are, for their part, better adapted for a static correction. It can also be chosen not to use one of the redundancy columns.
- Figure 2 shows an exemplary memory area including additional resources for adding redundancy to the stored data words.
- said memory area can be represented in the form of a matrix.
- the convention used in this description is to use a matrix in which a line corresponds to a data word and / or a codeword.
- a main memory area 200 is for storing the data and corresponds, in this example, to a matrix comprising L lines (words) 202 and 8 columns 201. As a result, up to 8 bits of data per word can be stored.
- Certain parts of the main memory area include defects symbolized by X 205 and inducing either an inability to store or a storage error for the bit of interest. In the example of the figure, 6 faults are represented.
- the physical architecture of the memory comprises memory resources complementary to those of the main memory area.
- additional resources are additional columns 203 as well as additional words 204 adding to the main memory area.
- the quantity of complementary resources is, for example, fixed and is chosen at the time of the design of the digital circuit.
- the method according to the invention makes it possible, at the time of configuration of the digital memory, to best allocate the use of these additional resources taking into account the distribution of known defects.
- An advantage of the invention is that this protection configuration can be performed at different times in the life of the digital memory and thus take into account the material aging and the increase in the number of defects.
- Some of the additional resources can be used as verification bits to implement ECC code and another part can be used as backup resources.
- the spare resource columns and check bit columns are grouped together without distinction.
- the method according to the invention makes it possible to establish a protection strategy by distributing the additional resources while taking into account the fault distribution of the electronic circuit of which the memory is composed.
- the method makes it possible to reconfigure, automatically or not, the manner in which the complementary memory areas are used.
- the protection strategy will be updated taking into account. For example, when there is no more than one error per word, a simple code with a SEC capability can be selected for corrections. Columns configured as spare columns can be used to replace columns that contain one or more defects, and spare words can be configured to replace words that contain one or more defects.
- an ECC capacity code SEC-DED can not correct anymore.
- multiple word errors may be subject to special correction.
- two pairs of localized errors can be corrected for example using a suitable ECC code.
- the method according to the invention makes it possible to adapt and configure the ECC code according to the errors to be corrected and may choose to configure in addition to spare columns and / or spare words among the additional resources.
- Figure 3 illustrates the principle of the method according to the invention.
- the method according to the invention aims to determine the way in which the additional resources of an electronic memory are allocated taking into account the state of the circuits composing said memory, the aim being to implement a suitable protection strategy.
- the state of the circuits can be represented, for example, using a map 302 indicating the location of the defective memory cells as well as the location of the affected memory cells. This mapping can be determined by an observation, using tests, statistics or other means.
- the method according to the invention also uses configuration data 301 describing the structure of the memory area to be configured, such as, for example, the size of the memory area and the number of words and columns available for redundancy, as well as the test results of the zone that will contain said configuration, because it may also have defects that will force, that is to say freeze, part of the configuration.
- These input data 301, 302 are used by a succession of steps 300 to configure or reconfigure the allocation of additional resources and the correction capability of the ECC code if necessary.
- a protection configuration is thus obtained.
- the additional resources can be used as backup resources or as verification bits added to the data words so as to implement a suitable protection strategy.
- the protection configuration thus obtained corresponds to a set of parameters defining the ECC code 303, the allocation of the backup resources and the way in which they are used 304.
- Figure 4 shows an example of an algorithm for allocating complementary resources.
- the result of the algorithm corresponds to a set of parameters making it possible to select the backup bits and the check bits among the set of redundancy bits.
- the value of the programmable elements of a parity matrix H is obtained.
- mapping of the defects of the area of memory or / and other defects is one of the entries of the algorithm. It can be obtained by observation, tests, statistics or other means.
- a configuration strategy can be, for example, to correct transient errors in addition to permanent and intermittent errors. This strategy was chosen to illustrate the principle of the configuration of additional resources using the example of Figure 4.
- Relief words are used to correct permanent errors. At first it is better to check 401 if a simple solution like the use of backup words is enough to deal with permanent errors. Otherwise, backup words are used to replace memory words with the most errors.
- the programmable elements of the parity matrix H defining the error correction code are then determined 403 so that the resulting ECC code makes it possible to correct said transient errors.
- the bits of the redundancy columns which are not used as verification bits and which are not isolated either, can be used as backup bits.
- a step then makes it possible to check whether the corrections made are sufficient 406.
- a step 408 searches for a parity matrix H using nV check bits in order to be able to correct the remaining permanent errors and, if necessary, transient errors.
- the distribution of the redundancy bits is modified by recursively reducing 413 the number of spare bits. This reduction is made in favor of the check bits until a satisfactory configuration of the matrix H is found 412 or until it is no longer possible to reduce the number of spare columns 410 and therefore to increase the number of check bits, which means that the search for a satisfactory configuration ends on a failure.
- FIG. 5 gives an example of an electronic storage device implementing the method according to the invention.
- the method described above allows the implementation of reconfigurable electronic storage devices.
- the reconfiguration makes it possible to adapt the stored data protection strategy taking into account the state and the quality of the circuits composing the device. This reconfiguration can be performed during device design or later.
- the device 500 is composed, for example, of a memory area 501 comprising a main memory area for storing data words as well as additional resources for protecting said data against possible errors.
- the stored data can be read, and the possible errors corrected by means of a decoding circuit 502.
- New data can also be written in the memory area 501 and protected by the addition of redundancy bits by means of a encoding circuit 503.
- the manner in which the decoder 502 and the encoder 503 are configured depends on the protection strategy as determined by the method according to the invention.
- elements 508 are configured using stored configuration parameters 506, for example, within the device. Said configuration parameters can be updated so as to take account of the physical evolution of the memory zone and in particular the effects of aging on the circuits.
- a module 504 controls the update of the device. It can, for example, perform tests 509 of the memory area 501 or take data input 510 to enable it to generate a map 513 of the defects of said memory area 501. It is also possible to consult the module containing the configuration parameters to verify that there is no error and if there are one or more errors the control module 504 may take this information into consideration in determining the appropriate configuration. This map can then be used by a configuration module 505 to determine in particular the parity matrix H and masking parameters 512, examples of the parity matrix H and these parameters are given later in the description. The matrix H and the rest of the configuration parameters are then stored 506 in a storage module. One or more of the control 504 and configuration 505 modules may be implemented inside or outside 51 1 of the electronic storage device 500.
- FIG. 6 shows an example of an encoder structure that can be used to generate the redundancy bits associated with the data words to be stored.
- nR redundancy bits are associated with a word of nD data bits.
- the number nd of data bits is usually a power of 2.
- a redundancy generation module 600 determines the value of the redundancy bits as a function of the value of the data bits. This operation is performed using a stored H programmable parity matrix 601 whose programmable elements were determined during the configuration or reconfiguration procedure of the memory.
- the value of the nR redundancy bits can be determined, for example, using the following expression: n D-l
- ⁇ represents the exclusive OR operation
- ⁇ represents the logical AND operation
- Ri represents the i ⁇ m ⁇ redundancy bit with 0 ⁇ i ⁇ nR;
- D j represents the j ⁇ m ⁇ data bit with 0 ⁇ j ⁇ nD;
- Hy represents an element of the programmable parity matrix H, said matrix being of dimension nRx (nD + nR).
- the module 601 for storing the programmable parity matrix H comprises, for example, registers in which the elements Hy of the matrix H are stored. These registers can be accessible from outside the memory controller containing the encoder. It is possible to implement these registers in a volatile memory of the RAM type or in a non-volatile memory of types EPROM, EEPROM or Flash, for example.
- the elements of the matrix H and the other configuration elements can also be programmed using other methods, for example using laser beams if only the permanent errors due to the defects appearing during the process are to be corrected. production of a storage or transmission circuit.
- the parity matrix H is used for the implementation of an ECC code.
- some Hy elements may not be freely programmable.
- elements Hy and H mn can be linked by a dependency relation to make it possible to compress the configuration information to be memorized.
- Hy can be equal to the inverse of H mn .
- a module of the encoder is a storage space of the spare words 602.
- Different strategies existing in the state of the art can be implemented, for example that described in the article by SE Schuster entitled Multiple word / bit A redundancy for semiconductor memories, IEEE Journal of Solid-State Circuits, vol. 13, no. 5, pp. 698-703, October 1978.
- the integration and use of this module 602 is optional.
- the choice to use such a module depends on the density of defects and the memory capacity of the protected storage systems.
- This module can be deactivated, for example after a production test, if it is necessary to tolerate transient errors and the density of production defects is low or zero. This decoupling makes it possible to improve the performance of the decoder and to optimize its power consumption.
- An optional multiplexer 603 may be used to select the bitstream presented at the output of the encoder from two inputs. Said output may be the first input 604 of the multiplexer corresponding to the output of the generation module of the redundancy 600. In the case where the detected fault density is zero, the flow of the second input 605 corresponding to the data bits without addition of redundancy is presented as output.
- the width of the second input of the multiplexer 605 is, for example, adjusted to the width of the first input 604 and the output 606 by adding nR fixed bits to any value.
- the configuration parameters may be transferred to the module 601 through the channel used for accessing the data bits 607 or a separate channel 608.
- FIG. 7 gives an exemplary configuration of a parity matrix H making it possible to combine both a SEC-DED type coding and the replacement of the columns of data corresponding to the bits D13, D14 and D15 by spare columns.
- 6 check bits marked RO to R5 correspond to the verification bits of a SEC-DED code and three bits R6, R7 and R8 are used as backup resources. The three bits R6, R7 and R8 are also protected by the SEC-DED code.
- the calculation of the error syndrome uses only the check bits RO to R5.
- the matrix H must be determined, for example, such that the single and multiple correctable error syndromes are all different from each other. In addition, these syndromes must be different from detectable error syndromes to be uniquely identified.
- Figure 8 shows an example of a decoder that can be used for reading stored and protected data.
- This decoder takes as input the data bits D_in stored in the main memory area and the redundancy bits R_in being associated with them and being stored in the complementary memory area.
- the decoder outputs the decoded payload.
- a module 804 of the decoder stores the programmable parity matrix H.
- This module may include the module 601 of the encoder presented previously also having the role of storing the parity matrix. Thus, both modules can share common or partially shared storage resources or have independent storage resources.
- this module In order to be able to decode, this module must also have the ability to store masking information. Indeed, a column can be hidden, that is to say isolated, if it is defective.
- This masking information is for example MaskCol masking bits j (0 ⁇ j ⁇ nD) and MaskLin ⁇ i (0 ⁇ i ⁇ nR). MaskLin ⁇ i is not used to hide a line (or word) from memory.
- Mask ⁇ n ⁇ i refers to the rows of the matrix H.
- MaskCol j takes the value 0 if the j ⁇ data bit is replaced by a redundancy bit
- MaskLin ⁇ i takes the value 1 if the i ⁇ m ⁇ redundancy bit is used as a backup bit to replace a data bit.
- replacing the j ⁇ m ⁇ data bit by the i ⁇ m ⁇ redundancy bit is decided at the time of the configuration or reconfiguration of the digital memory.
- the masking information MaskCol j and MaskLin ⁇ i as well as the values taken by the elements Hy of the parity matrix H are then used. in particular by an emergency column control module 802 and a programmable error correction module 806.
- a module 802 for checking the spare columns takes as input the bits of the words to be read, that is to say, for each word, D_in data bits and R_in redundancy bits. As explained previously in the description, the columns allocated to store the data bits can be replaced by columns belonging to the complementary resources. This module has as output the data bits D_out and can implement any method of using the spare columns, as for example that presented in the M. Horiguchi article entitled Redundancy Techniques for High-Density DRAMs, IEEE Int. Conf. innovative Systems Silicon, 1997, pages 22 to 29.
- Another possible method is to use the stored information 803 of the programmable matrix H and to calculate each bit of data using, for example, the following expression:
- D_iri j and R_affir indicate respectively the j ⁇ m ⁇ bit of data, and the i ⁇ m ⁇ of redundancy, at the input of the control module of the spare columns (0 ⁇ j ⁇ nD, 0 ⁇ i ⁇ nR);
- D_out j represents the j ⁇ m ⁇ bit of data at the output of the control module of the spare columns (0 ⁇ j ⁇ nD);
- MaskCol j represents the masking bit corresponding to the j ⁇ m ⁇ data bit at the input of the control module of the spare columns (0 ⁇ j ⁇ nD);
- MaskLinej represents the masking bit corresponding to the i ⁇ m ⁇ redundancy bit at the input of the control module of the spare columns (0 ⁇ i ⁇ nR).
- the backup word storage module 800 is the same as the backup word storage module 602 presented with the aid of FIG. 6. Its purpose is to store said backup words.
- the integration and use of this module is optional and depends on the density of defects and the memory capacity of the protected storage systems. This module can be disconnected, for example after a production test, if it is necessary to tolerate transient errors and if the density of defects is low or zero. This module is not necessary for the protection of an interconnection system.
- a module 806 of the decoder implements the error correction. Depending on the chosen protection configuration and therefore the stored matrix H, correction of single errors and / or multiple errors can be performed. The detection of multiple uncorrected errors can also be performed by this module.
- a conventional ECC code associates with each correctable and / or detectable error E a syndrome SE defined by nR bits. If E is a single corresponding to j ⁇ m ⁇ data bit error and the syndrome is the same as j ⁇ m ⁇ column of the matrix H. If E is a multiple error affecting multiple bits of data and / or check bits, the syndrome is SE obtained by means of the exclusive OR logic operation between the columns of the parity matrix H corresponding to the bits affected by said multiple error.
- the principle according to the invention of programmable resources dedicated to memory protection requires that the syndromes be memorized. Syndromes corresponding to simple errors do not need additional memory cells. Because the simple error syndromes correspond to the columns of the H parity matrix, only the multiple error SE syndromes require additional registers. The contents of these registers form a distinct matrix HS which is called matrix of multiple error syndromes.
- the matrix HS is of dimension nRxnHS, where nR is the total number of redundancy bits and nHS is a parameter dependent on the number of multiple errors to be corrected.
- the NHS parameter is chosen, for example, when designing the digital memory. By construction, the maximum limit of NHS is nHS ⁇ 2 nR - nR -nD-1. Each column of the matrix HS can thus store the syndrome of a multiple error.
- a syndrome S is calculated from the data bits Diri j (0 ⁇ j ⁇ nD) and redundancy bits Ririj (0 ⁇ i ⁇ nR) arriving at the input of said module , using, for example, the following expression:
- Syndrome S must be compared with the syndromes stored in the columns of matrices H and HS. These comparisons can be made using, for example, the following expressions:
- ⁇ represents the inverted exclusive OR operation
- BitFlip j is a signal which takes the value 1 only if the syndrome S corresponds to the i ⁇ m ⁇ column of H;
- BitFlipk is a signal that takes the value 1 only if the syndrome S corresponds to the k l ⁇ m ⁇ column of HSk.
- ⁇ BitFlipJ I; j 0, nD-1 (6)
- D_iri j represents the j ⁇ m ⁇ bit of data at the input of the module (O ⁇ j ⁇ nD);
- D_out j represents the j ⁇ m ⁇ data bit at the output of the module Y30 (0 ⁇ j ⁇ nD);
- MapSE j is a parameter taking the value 1 only if the simple error whose syndrome is defined by the column jth of the matrix H is likely to affect the bit D_out j (0 ⁇ j ⁇ nD);
- MapME jk is a parameter taking the value 1 only if the multiple error whose syndrome is defined by the k ⁇ m ⁇ column of the matrix HS is likely to affect the bit D_out j (0 ⁇ k ⁇ nHS).
- all the bits of the j ⁇ m ⁇ column of the matrix H may be set to zero.
- a way to avoid the use of the MapSE bits and to make the decoder more robust is to force the BitFlip signals to zero if all the bits of the syndrome obtained by the expression (3) are equal to zero. All bits of the unused columns of the HS matrix can also be set to zero.
- the MapME bits jk (0 ⁇ j ⁇ nD, 0 ⁇ k ⁇ nHS) may require a large storage capacity. Indeed, nDxnHS memory cells are required. This cost can be reduced by hard-coding a subset of the MapME bits jk . The choice of this subset implies that a compromise must be made between the choice of the surface of the circuit and the coverage of faults.
- the information used for programming the H, MapME, HS matrices can be stored in compressed form and then decompressed before being used.
- a first multiplexing module 805 makes it possible to select one or more of the inputs of the correction module 806 from the outputs of the control modules of the spare columns 802, the spare word storage space 800 and the input of the decoder 801. that is, the bits Dj n and R_in.
- a second multiplexing module 807 makes it possible to select the bits transmitted at the output of the decoder out of the bits available at the output of the control modules of the spare columns 802, the storage space of the backup words 800 and the input bits of the 801 decoder.
- Figures 9 to 12 show a practical example of implementation of the invention for a given fault mapping.
- Figure 9 shows an example of distribution of defects in a memory area whose words have a width of 9 + 1 6 bits.
- the lines represent the stored words.
- the stored words comprise 1 6 data bits D0 to D15 associated with 9 redundancy bits RO to R8, this redundancy being able to correspond to backup bits or to verification bits. Only words with defects have been represented.
- the locations of the circuit faults are indicated by 'X'. It appears that two columns 900, 901 are defective, the first being the data column D1 1900 and the second the redundancy column R8 901. For example, it may be decided to use column R7 904 as a backup resource to replace column D1 1.
- 5 words 902 contain 2 additional defects involving double errors, and many other words 903 contain one.
- the five double errors 902 lead to five syndromes SO, S1, S2, S3 and S4 during decoding.
- Figure 10 shows an example of a parity matrix. In the same figure are also represented the masking parameters MaskCol and
- MaskLine takes the value 0 on the first 7 lines indicating that the bits RO to R6 are used for an ECC type correction.
- MaskCol takes the value 0 in the twelfth column. It appears therefore that D1 1 is replaced. 8 ⁇ m ⁇ row of the matrix, that is to say its last line shows that the redundancy bit R7 replaces the data bit D11, that is to say, the column of the area complementary memory corresponding to the redundancy bit R7 is used as backup resource.
- an HS matrix is chosen. Its columns correspond to the syndromes of the multiple errors to correct. This matrix is presented with reference to FIG.
- Figure 11 gives an example of a matrix of multiple error syndromes HS.
- an HS matrix comprising at least five columns is necessary.
- an HS matrix with eight columns is defined.
- the example of FIG. 11 is determined as a function of the parity matrix of FIG.
- the last two rows of the matrix HS are not used and are filled with zeros since only the first seven redundancy bits are used as verification bits according to the configuration of FIG. 10.
- the first five bits of each column of the HS matrix can memorize a multiple error syndrome that it is desired to recognize in order to correct the erroneous bits associated with this multiple error syndrome.
- the multiple error syndrome SO is the XOR between the D3 error syndrome and the D12 error syndrome.
- the multiple error syndrome S1 is the XOR between the error syndrome of D6 and the error syndrome of R4.
- the multiple error syndrome S2 corresponds to the XOR between the R2 error syndrome and the R6 error syndrome.
- the multiple error syndrome S3 corresponds to the XOR between the error syndrome of D3 and the error syndrome of D9.
- the multiple error syndrome S4 corresponds to the XOR between the error syndrome of D1 1 and the error syndrome of D13.
- Figure 12 shows an example of a MapME multi-error correction matrix. For each multiple error correction syndrome contained in the multiple error syndrome matrix HS, then a MapME correction matrix of the associated bits must be configured. Some elements can be fixed in the implementation in order to find the best compromise between flexibility and complexity of implementation. These elements, denoted Z, are fixed hard, for example at 0, and are not programmable. The rest is programmable to 1 or 0. In this matrix, we see for example that the syndrome of multiple SO errors will be associated corrections of D3 and D12.
- the redundancy bits are not corrected in this example, but this can be done in the same way as for the data bits.
- the protection strategy associated with the H, HS and MapME matrices and the MapSE bit vector thus fulfills its performance-enhancing role and provides a SEC-DED capability on all words. It is therefore involved in improving the reliability of the electronic system. There may be multiple possible configurations to respond to multiple error cases.
- the choice of the number of data bits and redundancy is made during the design of the programmable device and can be arbitrary.
- a triple error affecting 3 data bits D1, D2, D3 may be in the form of 3 simple errors or 3 double errors D1, D2; D1, D3; D2, D3 or a triple error D1, D2, D3.
- the number of multiple error syndromes then increases rapidly.
- Programming can also be simplified. Several configuration items can be programmed by one or a few stored bits. This thus makes it possible to compress the configuration data and thus reduce the corresponding corresponding memory area.
- Figure 13 gives an example of a digital data interconnect system.
- two source modules 1300, 1301 generate 8-bit code words.
- These source modules correspond, for example, to modules included in one or more electronic chips, said sources notably comprising encoding means so as to be able to generate code words from the useful data words by adding redundancy to them.
- the codewords may be transmitted to different destination modules 1302, 1303 including decoding means, i.e., means for detecting and correcting errors based on the redundancy information associated with the payload.
- decoding means i.e., means for detecting and correcting errors based on the redundancy information associated with the payload.
- These modules can be positioned in the same chip as that containing one of the sources or in a different chip.
- the code words are transmitted, for example, using an interconnection network internal to said chip, this network being usually designated by the English expression. Saxon "Network on Chip”.
- the code words then take an external interconnection network usually designated by the English expression "Off-Chip Network”.
- the example of the figure shows a case where two source modules 1300, 1301 can transmit code words to two destination modules 1302, 1303 by means of an interconnection network that can be internal or external.
- This interconnection network is composed of different sets of electronic links 1317, 1318, 1319, 1320, 1321 and nodes 1304, 1305 making it possible to configure the path taken by the code words of one or the other source module. 1300, 1301 to reach either destination module 1302, 1303.
- An interconnection system is therefore a system consisting of at least one data source module comprising encoding means, at least one destination module comprising decoding means, and at least one interconnection network composed in particular of electronic links and at least one node, said interconnection system making it possible to transmit codewords generated by one or more source modules to one or more destination modules.
- the electronic links are for example composed of one or more electronic lines, some for transmitting the data bits and others the redundancy bits, the latter being qualified in the following description of additional transmission resources.
- the electronic lines comprising the additional transmission resources may be, depending on the coding mode chosen, either electronic lines associated with the checking bits of an ECC code, or electronic backup lines replacing faulty electronic lines.
- the nodes perform bit routing in ways to route the codewords to the targeted destination module (s).
- the redundancy bits are transmitted using complementary transmission resources implemented within the interconnection network.
- the use of these additional resources is chosen taking into account the errors introduced by the different transmission links and / or the nodes.
- the choice of a coding mode that is to say the choice to use a given ECC code and / or backup electronic lines, is made according to the defects detected in the interconnection system.
- the implementation of the encoding mode chosen makes it possible to correct the errors occurring on the coded word transported in particular because of the electronic links or the nodes which may have defects.
- crossing a path with multiple links and / or nodes implies that the errors accumulate from link to link (or / and nodes to nodes).
- a code word transmitted by the first source module 1300 may take a first path 1314 to reach the first destination module 1302.
- the code word is, for example, transmitted in a first set of links 1317 introducing an error on the eighth bit 1306, then a second set of links 1320 introducing an error on the seventh bit 1309, the two sets being connected by a node 1305.
- the received code word 131 1 by the destination module can thus cumulate two errors on the seventh and / or eighth bits.
- the encoding mode set This path must therefore be configured to at least correct the two simple errors and the double error they are part of.
- Another path 1315 is used by the codewords. This path is composed of three sets of links, the first
- the received codeword 1312 by the second destination module 1303 can be assigned by one of the simple errors or the double error corresponding to the two simple errors.
- the encoding mode implemented for this path must therefore be configured to at least correct the three combinations of errors.
- a path 1316 composed of at least two sets of links is used by the code words, the first set
- the received codeword 1313 by the second destination module 1303 may have one of three simple errors, a double error corresponding to a pair of simple errors or a triple error formed by the three simple errors.
- the mode of coding implemented must therefore take this into account.
- a source module or a destination module may be a memory as described above in the description. It can be implemented, therefore, a double protection, both at the storage of the given words, but also at the level of their transmission.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
The invention relates to a method for protecting at least one electronic circuit processing digital data. A configuration (303, 304) for protecting against errors introduced into said data is deduced (300) from a cartography (302) representing the faults of said circuit, said protection configuration corresponding to the configuration of at least one encoder and one decoder, the encoder generating code words consisting of data bits to which redundancy bits are added, said redundancy bits being generated such that the errors resulting from the faults indicated by said cartography (302) are corrected when decoding said code words. The invention also relates to a device for configuring and protecting memory areas and to a digital interconnection system implementing the method.
Description
Procédé de protection de circuits électroniques, dispositif et système mettant en œuvre le procédé Method of protecting electronic circuits, device and system implementing the method
L'invention concerne un procédé de protection de circuits électroniques, un dispositif et un système mettant en œuvre le procédé.The invention relates to a method of protecting electronic circuits, a device and a system implementing the method.
Elle s'applique notamment aux domaines de l'électronique numérique et des technologies nanométriques. L'invention peut être utilisée, par exemple, dans des systèmes de mémorisation ou de transmission de données.It applies in particular to the fields of digital electronics and nanoscale technologies. The invention can be used, for example, in data storage or transmission systems.
Dans un système numérique, les données, appelées également informations, sont habituellement transportées et enregistrées sous forme de valeurs binaires appelées bits. Dans de tels circuits, les erreurs apparaissant sur les données peuvent être transitoires, permanentes ou intermittentes.In a digital system, the data, also called information, is usually transported and stored as binary values called bits. In such circuits, the errors appearing on the data may be transient, permanent or intermittent.
Les erreurs transitoires sont produites par des interférences avec l'environnement ou sont générées par la radioactivité de certaines impuretés dans le matériau composant ledit circuit.The transient errors are produced by interference with the environment or are generated by the radioactivity of certain impurities in the material composing said circuit.
Dans les systèmes numériques réalisés à l'aide, par exemple, de circuits à base de technologies nanométriques, les erreurs permanentes et intermittentes résultant de défauts matériels représentent un problème important. En effet, si ces erreurs ne sont pas corrigées ou masquées, elles peuvent produire des erreurs de fonctionnement et finalement la défaillance du système. Une densité élevée de défauts matériels dans un circuit se traduit par un nombre important d'erreurs permanentes. En effet, les erreurs permanentes sont habituellement liées à des défauts de la structure physique du circuit survenus lors de la production ou suite au vieillissement. Ces problèmes doivent être pris en compte lors de la conception de tels systèmes et sont soulignés notamment dans la publication de S. Borkar intitulée Designing Reliable Systems from Unreliable Components: The Challenges of Transistor Variability and Dégradation, IEEE Micro 25, No. 6, 2005, pages 10 à 1 6.In digital systems made using, for example, nanoscale-based circuits, permanent and intermittent errors resulting from hardware defects are a significant problem. Indeed, if these errors are not corrected or masked, they can produce operating errors and eventually system failure. A high density of hardware defects in a circuit results in a large number of permanent errors. Indeed, permanent errors are usually related to defects in the physical structure of the circuit that occurred during production or after aging. These problems must be taken into account when designing such systems and are highlighted in particular in S. Borkar's publication Designing Reliable Systems from Unreliable Components: The Challenges of Transistor Variability and Degradation, IEEE Micro 25, No. 6, 2005 pages 10 to 16.
Pour garantir un certain niveau d'intégrité des données mémorisées ou pour augmenter le rendement de production, certains systèmes
électroniques utilisent des codes correcteurs d'erreurs, désignés par l'acronyme ECC venant de l'expression anglo-saxonne « Error Correcting Code ». Des exemples de codes ECC sont donnés dans la publication de CL. Chen et M. Y. Hsiao intitulée Error-correcting codes for semiconductor memory applications: a state of the art review, Reliable Computer Systems - Design and Evaluation, Digital Press, 2èmθ édition, 1992, pages 771 -786, ainsi que dans la publication de P. K. LaIa intitulée Self-Checking and Fault- Tolerant Design, San-Francisco, CA: Morgan Kaufmann, 2001 .To guarantee a certain level of integrity of the stored data or to increase the production efficiency, some systems electronic error correction codes, designated by the acronym ECC from the English expression "Error Correcting Code". Examples of ECC codes are given in the CL publication. Chen Y. Hsiao called Error-correcting codes for semiconductor memory applications: a state of the art review, Reliable Computer Systems - Design and Evaluation, Digital Press, 2 èmθ Edition, 1992, pages 771 -786, and in PK Publication LaIa entitled Self-Checking and Fault- Tolerant Design, San Francisco, CA: Morgan Kaufmann, 2001.
Dans des systèmes numériques mettant en œuvre des codes ECC, les données sont encodées, par exemple lors de l'écriture desdites données dans une mémoire ou avant leur émission pour transmission. L'opération d'encodage, appelée aussi opération de codage, mène à des mots de code contenant lesdites données auxquelles sont ajoutées des bits de vérification obtenus selon les règles de calculs représentées dans une matrice construite pour ce codage. Cette matrice est appelée habituellement matrice de parité.In digital systems implementing ECC codes, the data is encoded, for example when writing said data in a memory or before transmission for transmission. The encoding operation, also called encoding operation, leads to code words containing said data to which are added verification bits obtained according to the calculation rules represented in a matrix constructed for this encoding. This matrix is usually called the parity matrix.
Dans un second temps, par exemple lors de la lecture d'une partie du contenu mémorisé ou lors de la réception de données numériques après transmission, les mots de code sont décodés afin de reproduire les données originelles. Pour cela un vecteur de vérification appelé syndrome est calculé. Ce dernier est utilisé pour détecter et corriger des erreurs potentielles apparaissant sur les mots de code. Si aucune erreur n'est détectée, le mot codé est considéré correct. Si une erreur pouvant être corrigée est détectée, le mot de code est corrigé. Enfin, si une erreur incorrigible est détectée, celle-ci est signalée.In a second step, for example when reading a part of the stored contents or when receiving digital data after transmission, the code words are decoded in order to reproduce the original data. For this, a verification vector called syndrome is calculated. The latter is used to detect and correct potential errors appearing on codewords. If no error is detected, the coded word is considered correct. If an error that can be corrected is detected, the codeword is corrected. Finally, if an incorrect error is detected, it is reported.
Différents types de codes ECC peuvent être mis en œuvre. A titre d'exemple, le codage de Hamming permet de corriger une erreur unique. Cette capacité de correction est qualifiée de SEC acronyme venant de l'expression anglo-saxonne « Single Error Correction ». Le codage de Hamming étendu est un code de Hamming auquel est ajouté un bit de parité sur l'ensemble des bits afin de permettre la détection d'erreurs doubles DED. Ce code est un exemple de code ayant une capacité SEC-DED. Les codes de cette famille sont capables de corriger une erreur et de détecter une erreur multiple impactant deux bits d'un mot de code. Une erreur multiple désigne, dans la suite de la description, une erreur sur
plusieurs bits d'un même mot de code. Un autre exemple de code ayant une capacité SEC-DED est le code d'Hsiao.Different types of ECC codes can be implemented. By way of example, the Hamming coding makes it possible to correct a single error. This correction capacity is called SEC acronym from the English expression "Single Error Correction". The extended Hamming coding is a Hamming code to which is added a parity bit on all the bits in order to allow the detection of double DED errors. This code is an example code that has a SEC-DED capability. The codes of this family are capable of correcting an error and detecting a multiple error impacting two bits of a codeword. A multiple error designates, in the rest of the description, an error on several bits of the same code word. Another code example with SEC-DED capability is Hsiao code.
Il existe également des codes DEC-TED, ces codes permettant la correction d'erreurs doubles ainsi que la détection d'erreurs triples. Les codes permettant la correction d'erreurs multiples sont très coûteux en terme de calcul, et donc en terme de performance, de surface et de consommation. Il est donc difficile en pratique de mettre en œuvre un tel code de manière systématique pour protéger l'ensemble d'une mémoire électronique. II est par contre possible d'utiliser un code de capacité SEC ayant la capacité de corriger certaines erreurs multiples. En effet, la capacité du codage est rarement utilisée à son maximum. Le nombre N de bits de données dans un mot de code stocké dans une mémoire est habituellement une puissance de 2, c'est-à-dire N=2n avec n entier. Dans le cas d'un code SEC, le nombre c de bits de vérification doit remplir la condition : 2C-1 > 2n+c. Si les mots de données à protéger sont de N=32 bits, alors c=6 bits de vérification sont requis. La différence Δ=2c-2n-c-1 =25 correspond aux combinaisons binaires non utilisées par les syndromes permettant la détection d'erreurs simples. Par conséquent, jusqu'à Δ erreurs multiples différentes peuvent être détectées et corrigées. Pour ce qui est des erreurs doubles, pour N+c=38 bits, un total de 37x38/2 erreurs doubles différentes peut apparaître. Pour corriger toutes les erreurs doubles possibles dans un mot de code avec N=32 bits de données, il faut au moins 10 bits de vérification. Cependant, si le nombre de groupes d'erreurs multiples à supporter est inférieur ou égal à Δ, il est possible de les corriger avec seulement dc=6 bits de vérification.There are also DEC-TED codes, which allow the correction of double errors as well as the detection of triple errors. The codes allowing the correction of multiple errors are very expensive in terms of calculation, and therefore in terms of performance, area and consumption. It is therefore difficult in practice to implement such a code systematically to protect the entire electronic memory. On the other hand, it is possible to use an SEC capacity code with the ability to correct some multiple errors. Indeed, the capacity of the coding is rarely used to its maximum. The number N of data bits in a codeword stored in a memory is usually a power of 2, i.e., N = 2 n with n integer. In the case of an SEC code, the number c of verification bits must fulfill the condition: 2 C -1> 2 n + c. If the data words to be protected are N = 32 bits, then c = 6 check bits are required. The difference Δ = 2 c -2 n -c-1 = 25 corresponds to the binary combinations not used by the syndromes allowing the detection of simple errors. Therefore, up to Δ different multiple errors can be detected and corrected. For double errors, for N + c = 38 bits, a total of 37x38 / 2 different double errors may appear. To correct all possible double errors in a code word with N = 32 bits of data, at least 10 check bits are required. However, if the number of multiple error groups to support is less than or equal to Δ, it is possible to correct them with only dc = 6 check bits.
Des codes ECC permettant la correction d'erreurs uniques ainsi que la correction d'un nombre restreint de paires d'erreurs ont fait notamment l'objet du brevet américain US3328759 intitulé Simplified partial double error correction using single error correcting code.ECC codes allowing the correction of single errors as well as the correction of a limited number of error pairs have notably been the subject of US Pat. No. 3,328,859 entitled Simplified partial double error correction using a single error correcting code.
Un autre type de code ECC permet la correction d'une sélection d'erreurs doubles tout en ayant la capacité de détecter d'autres erreurs doubles, comme décrit dans le brevet américain US3755779 intitulé Error correction System for single-error correction, related-double-error correction and unrelated-double-error-detection. Ces paires d'erreurs sont choisies de
telles manières qu'elles permettent la correction d'erreurs doubles sur des bits adjacents.Another type of ECC code allows the correction of a selection of double errors while having the ability to detect other double errors, as described in US Patent US3755779 entitled Error Correction System for single-error correction, related-double -error correction and unrelated-double-error-detection. These pairs of errors are chosen from such that they allow the correction of double errors on adjacent bits.
Les codes ECC offrent une solution de correction dynamique. Le codeECC codes offer a dynamic correction solution. The code
ECC peut ainsi traiter des fautes permanentes et/ou transitoires à la fois. Mais, habituellement, lorsque cette solution est utilisée pour résoudre une faute permanente, elle perd souvent sa capacité à corriger des fautes transitoires et/ou permanentes apparaissant par la suite.ECC can handle both permanent and / or transient faults. But, usually, when this solution is used to solve a permanent fault, it often loses its ability to correct transient and / or permanent faults appearing thereafter.
Une autre technique consiste à utiliser des ressources de secours, appelées aussi « spare ressources » en langue anglaise. Les ressources physiques défectueuses identifiées sont alors remplacées par lesdites ressources de secours. Le terme masquage est aussi utilisé dans la suite de la description et désigne la même technique. Les ressources défectueuses sont masquées au profit de ressources de secours non défectueuses. Au contraire des codes ECC, cette solution est statique et ne permet de corriger que des erreurs permanentes.Another technique is to use spare resources, also called "spare resources" in English. The defective physical resources identified are then replaced by said backup resources. The term masking is also used in the following description and refers to the same technique. The defective resources are hidden in favor of non-defective backup resources. Unlike ECC codes, this solution is static and only fixes permanent errors.
Des approches mixtes combinant l'utilisation des techniques à base de codes ECC avec des techniques à base de ressources de secours existent dans l'état de la technique et permettent de tolérer une grande densité de fautes permanentes, comme décrit notamment dans l'article de C. H. Stapper et Hsing-San Lee intitulé Synergistic Fault-Tolerance for Memory Chips, IEEE Trans. Computers 41 (9), 1992, pages 1078-1087. Cette approche est utilisée lors de la production de mémoires numériques, par exemple. Il est alors possible de connaître la distribution et la fréquence des erreurs permanentes résultant de défauts matériels d'un circuit et de se fixer un objectif en terme de capacité de correction pour le traitement des erreurs transitoires. Ces données permettent alors de déterminer la quantité de ressources de secours nécessaire ainsi que le type de code ECC adaptés à ladite implémentation physique. Ainsi, des ressources physiques complémentaires sont nécessaires pour les bits de vérification d'un code ECC et les ressources de secours. Ces ressources complémentaires sont intégrées dans un système et ont par conséquent un coût en surface et ne sont pas toujours bien adaptés aux erreurs rencontrées. Il y a donc un compromis difficile à trouver entre la surface que l'on est prêt à consacrer à la correction et le gain en rendement
qu'apporte cette correction. De plus, l'approche mixte est limitée quant à sa flexibilité. En effet, le choix de la quantité et de la répartition des ressources physiques complémentaires correspondant aux ressources de secours et aux bits de vérification du ou des codes ECC est effectué lors de la conception du circuit et ne tient pas compte de l'évolution dudit circuit due notamment au vieillissement. En effet, de nouveaux défauts et donc de nouvelles erreurs permanentes peuvent apparaître avec le temps, et la stratégie de protection choisie lors de la conception peut devenir inadaptée au bout d'un certain temps.Mixed approaches combining the use of ECC-based techniques with backup resource-based techniques exist in the state of the art and make it possible to tolerate a high density of permanent faults, as described in particular in the article by CH Stapper and Hsing-San Lee entitled Synergistic Fault-Tolerance for Memory Chips, IEEE Trans. Computers 41 (9), 1992, pages 1078-1087. This approach is used when producing digital memories, for example. It is then possible to know the distribution and the frequency of permanent errors resulting from hardware defects of a circuit and to set a goal in terms of correction capacity for handling transient errors. This data then makes it possible to determine the amount of backup resources needed and the type of ECC code adapted to said physical implementation. Thus, additional physical resources are needed for ECC code checking bits and backup resources. These additional resources are integrated in a system and therefore have a surface cost and are not always well adapted to the errors encountered. There is therefore a compromise difficult to find between the surface that one is ready to devote to the correction and the gain in performance what does this correction bring? In addition, the mixed approach is limited in its flexibility. Indeed, the choice of the quantity and the distribution of the additional physical resources corresponding to the backup resources and the check bits of the ECC code or codes is made during the design of the circuit and does not take into account the evolution of said circuit due in particular to aging. Indeed, new defects and therefore new permanent errors may appear over time, and the protection strategy chosen during the design may become unsuitable after a while.
Un but de l'invention est notamment de pallier les inconvénients précités. A cet effet l'invention a pour objet un procédé de protection d'au moins un circuit électronique traitant des données numériques. Une configuration de protection contre les erreurs introduites sur lesdites données est déduite d'une cartographie représentative des défauts dudit circuit, ladite configuration de protection correspondant à la configuration d'au moins un codeur et un décodeur, le codeur générant des mots de code composés de bits de données auxquels sont ajoutés des bits de redondance, ces bits de redondance étant générés de manière à ce que les erreurs résultant des défauts indiqués par ladite cartographie soient corrigés lors du décodage desdits mots de code. Le procédé comprend une étape de détermination des valeurs que prennent les éléments composant une matrice de parité programmable H représentative de la configuration de protection, ladite matrice étant utilisée pour générer des bits de redondance à partir de mots de données numériques, les éléments de ladite matrice étant choisis de manière à atteindre une capacité de correction permettant de corriger au moins les erreurs permanentes et intermittentes résultant des défauts du circuit électronique indiqués par la cartographie.An object of the invention is in particular to overcome the aforementioned drawbacks. For this purpose the invention relates to a method for protecting at least one electronic circuit processing digital data. An error protection configuration introduced on said data is deduced from a mapping representative of the faults of said circuit, said protection configuration corresponding to the configuration of at least one encoder and a decoder, the encoder generating codewords composed of data bits to which redundancy bits are added, these redundancy bits being generated in such a way that the errors resulting from the defects indicated by said mapping are corrected during the decoding of said codewords. The method comprises a step of determining the values that the elements comprising a programmable parity matrix H representative of the protection configuration take, said matrix being used to generate redundancy bits from digital data words, the elements of said matrix being selected so as to achieve correction capability to correct at least the permanent and intermittent errors resulting from electronic circuit failures indicated by the mapping.
Une étape détermine, par exemple, si une protection de type ECC des données numériques est mise en œuvre, le code ECC étant choisi tel que sa capacité de correction soit suffisante pour corriger au moins les erreurs permanentes et intermittentes résultant des défauts indiqués par la cartographie.
Selon un mode de réalisation, le code ECC peut être choisi parmi les codes de type SEC, SEC-DED, DEC-TED, et ayant la capacité de corriger un choix ciblé d'erreurs simples et/ou multiples.A step determines, for example, whether an ECC type protection of the digital data is implemented, the ECC code being chosen such that its correction capacity is sufficient to correct at least the permanent and intermittent errors resulting from the defects indicated by the mapping. . According to one embodiment, the ECC code can be selected from SEC, SEC-DED, DEC-TED type codes, and having the ability to correct a targeted choice of simple and / or multiple errors.
Une partie des éléments de la matrice de parité H n'est, par exemple, pas programmable.Part of the elements of the parity matrix H is, for example, not programmable.
Selon un aspect de l'invention, une étape de détermination d'une matrice HS de syndromes d'erreurs multiples, les colonnes de ladite matrice correspondant aux syndromes des erreurs multiples résultant des défauts identifiés dans le circuit électronique. Selon un autre aspect de l'invention, le procédé comporte une étape de détermination d'une matrice MapME faisant correspondre à chaque syndrome de correction d'erreurs multiples contenu dans la matrice de syndromes d'erreurs multiples HS la localisation des erreurs à corriger.According to one aspect of the invention, a step of determining an HS matrix of multiple error syndromes, the columns of said matrix corresponding to syndromes of multiple errors resulting from defects identified in the electronic circuit. According to another aspect of the invention, the method includes a step of determining a MapME matrix that maps to each multiple error correction syndrome contained in the multiple error syndrom HS the location of the errors to be corrected.
Les informations utilisées pour la programmation des matrices H, MapME et HS peuvent être mémorisées sous forme compressée puis décompressées avant d'être utilisées.The information used for programming the H, MapME and HS matrices can be stored in compressed form and then decompressed before being used.
Le procédé comporte, par exemple, une étape de mise à jour de la configuration de protection mémorisée.The method comprises, for example, a step of updating the stored protection configuration.
Les mots de données sont, par exemple, encodés de manière à former des mots des code en ajoutant des bits de vérification et des bits de secours aux bits de données en respectant la configuration de protection mémorisée.The data words are, for example, encoded to form code words by adding check bits and spare bits to the data bits in accordance with the stored protection pattern.
Les mots de code peuvent être décodés en détectant puis en corrigeant les erreurs en tenant compte de la configuration de protection ayant été utilisée lors de l'encodage desdits mot de données.The code words can be decoded by detecting and then correcting the errors taking into account the protection configuration that was used during the encoding of said data word.
Selon un aspect de l'invention, le procédé comporte une étape de détection des défauts du circuit à protéger et de détermination d'une cartographie des défauts, la détection étant effectuée en utilisant l'une des méthodes suivantes : tests et observation du circuit protégé, calculs de statistiques.According to one aspect of the invention, the method comprises a step of detecting defects of the circuit to be protected and of determining a fault map, the detection being carried out using one of the following methods: tests and observation of the protected circuit , statistics calculations.
L'invention a aussi pour objet un dispositif électronique de configuration et de protection de zones de mémoire, une zone de mémoire étant représentée par une matrice de cellules mémoires, un mot de données pouvant être mémorisé par ligne de ladite matrice, ladite zone de mémoire étant composée d'au moins une zone principale et une zone de ressources
complémentaires, la zone principale étant destinée à mémoriser les mots de données et la zone de ressources complémentaires étant destinée à mémoriser des bits de redondance associés aux mots de données. Le dispositif comporte, par exemple, des moyens pour déterminer une configuration de protection des mots de données en utilisant le procédé tel que décrit précédemment à partir d'une cartographie des défauts de la zone de mémoire, une portion de la zone de ressources complémentaires étant allouée pour mémoriser des bits de vérification d'un code de type ECC et une autre portion de la zone de ressources complémentaires étant allouée en tant que ressources de secours.The invention also relates to an electronic device for configuring and protecting memory areas, a memory area being represented by a matrix of memory cells, a data word that can be stored by line of said matrix, said memory area consisting of at least one main area and one resource area complementary, the main area being for storing the data words and the complementary resource area being for storing redundancy bits associated with the data words. The device comprises, for example, means for determining a protection configuration of the data words by using the method as described above from a mapping of the defects of the memory area, a portion of the complementary resource area being allocated to store check bits of one ECC type code and another portion of the supplementary resource area being allocated as backup resources.
La zone mémoire est, par exemple, comprise dans le dispositif. L'invention a aussi pour objet un système d'interconnexion numérique composé d'au moins un module source comprenant des moyens d'encodage de manière à générer des mots de code à partir de données utiles, d'au moins un module de destination comprenant des moyens pour décoder lesdits mots de code, d'au moins un réseau d'interconnexion composé de liens électroniques et de nœuds, une portion desdits liens et desdits nœuds étant appelée ressources de transmission complémentaires et étant utilisées afin de transmettre les bits de redondance des mots de code, les mots de code étant transmis des modules sources vers les modules de destination à l'aide dudit réseau en utilisant des chemins de transmission. Les moyens d'encodage, de décodage et l'utilisation des ressources de transmission complémentaires du réseau d'interconnexion sont, par exemple, configurés selon un mode de codage donné, un mode de codage correspondant à l'utilisation d'un code ECC et/ou de lignes électroniques de secours, ledit mode de codage en utilisant le procédé tel que décrit précédemment.The memory zone is, for example, included in the device. The subject of the invention is also a digital interconnection system composed of at least one source module comprising encoding means so as to generate codewords from useful data, of at least one destination module comprising means for decoding said code words, at least one interconnection network composed of electronic links and nodes, a portion of said links and said nodes being called complementary transmission resources and being used for transmitting the redundancy bits of code words, the code words being transmitted from the source modules to the destination modules using said network using transmission paths. The means for encoding, decoding and the use of the complementary transmission resources of the interconnection network are, for example, configured according to a given coding mode, a coding mode corresponding to the use of an ECC code and or backup electronic lines, said coding mode using the method as described above.
L'invention a notamment comme avantage de permettre la configuration ou/et reconfiguration des ressources utilisées pour la protection des informations mémorisées ou transmises en tenant compte de la distribution spécifique des défauts dans un circuit au moment de sa production, de son test, ou durant son exploitation.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit, donnée à titre illustratif et non limitatif, faite en regard des dessins annexés parmi lesquels :The invention has the particular advantage of allowing the configuration or / and reconfiguration of the resources used for the protection of the information stored or transmitted taking into account the specific distribution of faults in a circuit at the time of its production, its test, or during its exploitation. Other features and advantages of the invention will become apparent with the aid of the description which follows, given by way of illustration and without limitation, with reference to the appended drawings in which:
- la figure 1 donne un exemple de mot de code comprenant un ensemble de bits de données et un ensemble de bits de redondance qui lui est associé afin de renforcer la fiabilité de l'information représentée par lesdits bits de données ; la figure 2 présente un exemple de zone de mémoire comprenant des ressources complémentaires destinées à ajouter de la redondance aux mots de données stockés ; la figure 3 illustre le principe du procédé selon l'invention ; la figure 4 présente un exemple d'algorithme d'allocation des ressources complémentaires ; - la figure 5 donne un exemple de dispositif électronique de mémorisation mettant en œuvre le procédé selon l'invention ; la figure 6 présente un exemple de structure d'encodeur pouvant être utilisé afin de générer les bits de redondance associés aux mots de données à mémoriser ; - la figure 7 donne un exemple de configuration d'une matrice de parité H permettant de combiner à la fois un codage de type SEC-DED et le remplacement de colonnes de données par des colonnes de secours ; la figure 8 présente un exemple de décodeur pouvant être utilisé pour la lecture de données mémorisées et protégées ; les figures 9 à 12 présentent un exemple pratique de mise en œuvre de l'invention pour une cartographie de défauts donnée ; la figure 13 donne un exemple de système d'interconnexion de données numériques.FIG. 1 gives an example of a codeword comprising a set of data bits and a set of redundancy bits associated with it in order to reinforce the reliability of the information represented by said data bits; FIG. 2 shows an example of a memory zone comprising additional resources intended to add redundancy to the stored data words; FIG. 3 illustrates the principle of the method according to the invention; FIG. 4 presents an example of an algorithm for allocating complementary resources; FIG. 5 gives an example of an electronic storage device implementing the method according to the invention; FIG. 6 shows an exemplary encoder structure that can be used to generate the redundancy bits associated with the data words to be stored; FIG. 7 gives an example of a configuration of a parity matrix H making it possible to combine both a SEC-DED type coding and the replacement of data columns by backup columns; FIG. 8 shows an exemplary decoder that can be used for reading stored and protected data; Figures 9 to 12 show a practical example of implementation of the invention for a given fault mapping; Figure 13 provides an example of a digital data interconnect system.
La figure 1 donne un exemple de mot de code comprenant un ensemble de bits de données et un ensemble de bits de redondance lui étant associé. Un mot de code 100 comprend une partie correspondant aux bits de données 101 et une partie correspondant aux bits de redondance 102. Le
mot de code de la figure 1 peut correspondre, par exemples, à un mot de code stocké dans une mémoire ou transmis sur un système d'interconnexion.FIG. 1 gives an example of a code word comprising a set of data bits and a set of redundancy bits associated with it. A codeword 100 comprises a portion corresponding to the data bits 101 and a portion corresponding to the redundancy bits 102. The codeword of FIG. 1 may correspond, for example, to a code word stored in a memory or transmitted on an interconnection system.
Un circuit de mémoire numérique permet de mémoriser des données binaires dans une zone de mémoire pouvant être représentée, par exemple, par une matrice de cellules mémoires comportant L mots et C colonnes. A l'intersection de chaque mot avec chaque colonne se trouve une cellule mémoire permettant de stocker un bit. En d'autres termes, un espace mémoire de dimension LxC va permettre de stocker L mots de C bits. Lorsque le but est de mémoriser des mots comportant C bits utiles, il peut être intéressant de rajouter des bits de redondance correspondant à des ressources de secours ou à des bits de vérification si un code ECC est mis en œuvre ou encore aux deux si une approche mixte est choisie. Dans ce cas, chaque mot stocké comporte C bits de données D1, D2, ..., Dc et k bits de redondances R-i, R2, ..., Rk- Dans la matrice représentant la zone de mémoire totale, c'est-à-dire dans laquelle sont mémorisées les données et la redondance, C colonnes sont allouées aux données et k colonnes sont allouées pour la redondance. Il est aussi possible d'utiliser des mots en tant que mots de redondance. La convention utilisée dans cette description est d'utiliser une matrice dans laquelle une ligne correspond à un mot de données et/ou à un mot de code. Néanmoins, une autre convention peut s'appuyer sur une représentation matricielle alternative qui considère qu'un mot de données et/ou à un mot de code est mémorisé par colonne et non par ligne. Ce second exemple de convention n'est pas utilisé dans la suite de la description.A digital memory circuit makes it possible to store binary data in a memory area that can be represented, for example, by an array of memory cells comprising L words and C columns. At the intersection of each word with each column is a memory cell for storing a bit. In other words, a memory space of dimension LxC will make it possible to store L words of C bits. When the goal is to memorize words comprising C useful bits, it may be advantageous to add redundancy bits corresponding to backup resources or check bits if an ECC code is implemented or both if an approach mixed is chosen. In this case, each stored word comprises C data bits D 1 , D 2 ,..., D c and k redundancy bits Ri, R 2 ,..., Rk. In the matrix representing the total memory area, that is, where the data and redundancy are stored, C columns are allocated to the data and k columns are allocated for redundancy. It is also possible to use words as redundancy words. The convention used in this description is to use a matrix in which a line corresponds to a data word and / or a codeword. Nevertheless, another convention can be based on an alternative matrix representation which considers that a data word and / or a code word is stored per column and not per line. This second example of convention is not used in the rest of the description.
Dans le cadre de l'invention, et comme explicité précédemment, les colonnes de redondance correspondent soit à des ressources de secours, soit à des bits de vérification. Les colonnes des ressources de secours et les colonnes des bits de vérifications sont regroupées sans distinction. Ce regroupement permet, lors de l'allocation des ressources, de privilégier l'une de ces solutions par rapport à l'autre en fonction du besoin. En effet les colonnes de vérification seront plus adaptées pour une correction dynamique, c'est-à-dire pour corriger des erreurs transitoires. Les colonnes de secours sont, quant à elles, mieux adaptées pour une correction statique.
II peut également être choisi de ne pas utiliser une des colonnes de redondance.In the context of the invention, and as explained above, the redundancy columns correspond either to backup resources or to verification bits. The spare resource columns and check bit columns are grouped together without distinction. This grouping makes it possible, when allocating resources, to favor one of these solutions over the other, depending on the need. Indeed the verification columns will be more suitable for a dynamic correction, that is to say to correct transient errors. The spare columns are, for their part, better adapted for a static correction. It can also be chosen not to use one of the redundancy columns.
La figure 2 présente un exemple de zone de mémoire comprenant des ressources complémentaires destinées à ajouter de la redondance aux mots de données stockés. Comme explicité précédemment, ladite zone de mémoire peut être représentée sous la forme d'une matrice. La convention utilisée dans cette description est d'utiliser une matrice dans laquelle une ligne correspond à un mot de données et/ou à un mot de code. Une zone de mémoire principale 200 est destinée à mémoriser les données et correspond, dans cet exemple, à une matrice comprenant L lignes (mots) 202 et 8 colonnes 201 . Par conséquent, jusqu'à 8 bits de données par mots peuvent être stockés. Certaines parties de la zone de mémoire principale comprennent des défauts symbolisés par des X 205 et induisant soit une incapacité à stocker, soit une erreur de stockage pour le bit concerné. Sur l'exemple de la figure, 6 défauts sont représentés. Dans le cadre de l'invention, l'architecture physique de la mémoire comprend des ressources mémoires complémentaires à celles de la zone de mémoire principale. Ces ressources complémentaires sont des colonnes supplémentaires 203 ainsi que des mots supplémentaires 204 s'ajoutant à la zone de mémoire principale. La quantité de ressources complémentaires est, par exemple, fixe et est choisie au moment de la conception du circuit numérique. Le procédé selon l'invention permet, au moment de la configuration de la mémoire numérique, d'allouer au mieux l'utilisation de ces ressources complémentaires en tenant compte de la répartition des défauts connus. Un avantage de l'invention est que cette configuration de protection peut être effectuée à différents moments de la vie de la mémoire numérique et ainsi tenir compte du vieillissement matériel et de l'augmentation du nombre des défauts. Une partie des ressources complémentaires peut être utilisée comme bits de vérification afin de mettre en œuvre un code ECC et une autre partie peut être utilisée comme ressources de secours. Les colonnes des ressources de secours et les colonnes des bits de vérifications sont regroupées sans distinction. Ce regroupement permet, lors de l'allocation des ressources, de privilégier l'une de ces solutions par rapport à l'autre en
fonction du besoin. En effet les colonnes de vérification seront mieux adaptées pour une correction dynamique, c'est-à-dire pour corriger des erreurs transitoires. Les colonnes de secours sont, quant à elles, mieux adaptées pour une correction statique. Il peut également être choisi de ne pas utiliser un ou plusieurs colonnes de redondance.Figure 2 shows an exemplary memory area including additional resources for adding redundancy to the stored data words. As explained above, said memory area can be represented in the form of a matrix. The convention used in this description is to use a matrix in which a line corresponds to a data word and / or a codeword. A main memory area 200 is for storing the data and corresponds, in this example, to a matrix comprising L lines (words) 202 and 8 columns 201. As a result, up to 8 bits of data per word can be stored. Certain parts of the main memory area include defects symbolized by X 205 and inducing either an inability to store or a storage error for the bit of interest. In the example of the figure, 6 faults are represented. In the context of the invention, the physical architecture of the memory comprises memory resources complementary to those of the main memory area. These additional resources are additional columns 203 as well as additional words 204 adding to the main memory area. The quantity of complementary resources is, for example, fixed and is chosen at the time of the design of the digital circuit. The method according to the invention makes it possible, at the time of configuration of the digital memory, to best allocate the use of these additional resources taking into account the distribution of known defects. An advantage of the invention is that this protection configuration can be performed at different times in the life of the digital memory and thus take into account the material aging and the increase in the number of defects. Some of the additional resources can be used as verification bits to implement ECC code and another part can be used as backup resources. The spare resource columns and check bit columns are grouped together without distinction. This grouping makes it possible, when allocating resources, to favor one of these solutions over the other. according to the need. Indeed the verification columns will be better adapted for a dynamic correction, that is to say to correct transient errors. The spare columns are, for their part, better adapted for a static correction. It can also be chosen not to use one or more columns of redundancy.
Le procédé selon l'invention permet d'établir une stratégie de protection en répartissant les ressources complémentaires tout en tenant compte de la répartition des défauts du circuit électronique dont est composée la mémoire. D'autre part, le procédé permet de reconfigurer, automatiquement ou non, la manière dont sont utilisées les zones mémoires complémentaires. Ainsi, si la répartition des défauts change, la stratégie de protection sera mise à jour en en tenant compte. A titre d'exemple, lorsqu'il n'y a pas plus d'une erreur par mot, un simple code avec une capacité SEC peut être sélectionné pour les corrections. Des colonnes configurées comme colonnes de secours peuvent être utilisées pour remplacer les colonnes qui contiennent un ou plusieurs défauts et des mots de secours peuvent être configurés pour remplacer les mots qui contiennent un ou plusieurs défauts.The method according to the invention makes it possible to establish a protection strategy by distributing the additional resources while taking into account the fault distribution of the electronic circuit of which the memory is composed. On the other hand, the method makes it possible to reconfigure, automatically or not, the manner in which the complementary memory areas are used. Thus, if the distribution of defects changes, the protection strategy will be updated taking into account. For example, when there is no more than one error per word, a simple code with a SEC capability can be selected for corrections. Columns configured as spare columns can be used to replace columns that contain one or more defects, and spare words can be configured to replace words that contain one or more defects.
Toujours à titre d'exemple, lorsqu'il y a plus d'un défaut par mot un code ECC de capacité SEC-DED ne peut plus corriger. Cependant les erreurs multiples par mot peuvent faire l'objet d'une correction particulière. Ainsi 2 paires d'erreurs localisées peuvent être par exemple corrigées à l'aide d'un code ECC adapté. Le procédé selon l'invention permet d'adapter et de configurer le code ECC en fonction des erreurs à corriger et peut choisir de configurer en plus des colonnes de secours ou/et des mots de secours parmi les ressources complémentaires.Still as an example, when there is more than one defect per word an ECC capacity code SEC-DED can not correct anymore. However, multiple word errors may be subject to special correction. Thus two pairs of localized errors can be corrected for example using a suitable ECC code. The method according to the invention makes it possible to adapt and configure the ECC code according to the errors to be corrected and may choose to configure in addition to spare columns and / or spare words among the additional resources.
La figure 3 illustre le principe du procédé selon l'invention. Le procédé selon l'invention a pour but de déterminer la manière dont sont allouées les ressources complémentaires d'une mémoire électronique en tenant compte de l'état des circuits composant ladite mémoire, le but étant de mettre en œuvre une stratégie de protection adaptée. L'état des circuits peut être représenté, par exemple, à l'aide d'une cartographie 302 indiquant la localisation des cellules mémoires défectueuses ainsi que la localisation des cellules mémoires affectées. Cette cartographie peut être déterminée par
une observation, à l'aide de tests, de statistiques ou d'autres moyens. Le procédé selon l'invention utilise également des données de configuration 301 décrivant la structure de la zone de mémoire à configurer, comme par exemples la taille de la zone de mémoire et le nombre de mots et de colonnes disponibles pour la redondance, ainsi que les résultats de tests de la zone qui contiendra ladite configuration, car celle-ci peut aussi avoir des défauts qui forceront, c'est-à-dire figeront, une partie de la configuration. Ces données d'entrées 301 , 302 sont utilisées par une succession d'étapes 300 visant à configurer ou à reconfigurer l'allocation des ressources complémentaires et la capacité de correction du code ECC le cas échéant. Une configuration de protection est ainsi obtenue. Les ressources complémentaires peuvent être utilisées comme des ressources de secours ou bien comme des bits de vérification ajoutés aux mots de données de manière à mettre en œuvre une stratégie de protection adaptée. La configuration de protection ainsi obtenue correspond à un ensemble de paramètres définissant le code ECC 303, l'allocation des ressources de secours ainsi que la manière dont celles-ci sont utilisées 304.Figure 3 illustrates the principle of the method according to the invention. The method according to the invention aims to determine the way in which the additional resources of an electronic memory are allocated taking into account the state of the circuits composing said memory, the aim being to implement a suitable protection strategy. The state of the circuits can be represented, for example, using a map 302 indicating the location of the defective memory cells as well as the location of the affected memory cells. This mapping can be determined by an observation, using tests, statistics or other means. The method according to the invention also uses configuration data 301 describing the structure of the memory area to be configured, such as, for example, the size of the memory area and the number of words and columns available for redundancy, as well as the test results of the zone that will contain said configuration, because it may also have defects that will force, that is to say freeze, part of the configuration. These input data 301, 302 are used by a succession of steps 300 to configure or reconfigure the allocation of additional resources and the correction capability of the ECC code if necessary. A protection configuration is thus obtained. The additional resources can be used as backup resources or as verification bits added to the data words so as to implement a suitable protection strategy. The protection configuration thus obtained corresponds to a set of parameters defining the ECC code 303, the allocation of the backup resources and the way in which they are used 304.
La figure 4 présente un exemple d'algorithme d'allocation des ressources complémentaires. Le résultat de l'algorithme correspond à un ensemble de paramètres permettant de sélectionner les bits de secours et les bits de vérification parmi l'ensemble des bits de redondance. La valeur des éléments programmables d'une matrice de parité H est obtenue.Figure 4 shows an example of an algorithm for allocating complementary resources. The result of the algorithm corresponds to a set of parameters making it possible to select the backup bits and the check bits among the set of redundancy bits. The value of the programmable elements of a parity matrix H is obtained.
La cartographie des défauts de la zone de mémoire ou/et d'autres défauts est une des entrées de l'algorithme. Elle peut être obtenue par une observation, des tests, des statistiques ou d'autres moyens.The mapping of the defects of the area of memory or / and other defects is one of the entries of the algorithm. It can be obtained by observation, tests, statistics or other means.
L'approche peut être différente en fonction de la stratégie de configuration choisie. Une stratégie de configuration peut être, par exemple, de corriger les erreurs transitoires en plus des erreurs permanentes et intermittentes. Cette stratégie a été choisie afin d'illustrer le principe de la configuration des ressources complémentaires à l'aide de l'exemple de la figure 4. Afin d'avoir la capacité de corriger les erreurs transitoires, il est possible de réserver nV bits de redondance 400 pour qu'ils servent de bits de vérification pour une protection de type SEC ou SEC-DED, par exemples.
Les mots de secours sont, quant à eux, affectés pour corriger des erreurs permanentes. Dans un premier temps il est préférable de vérifier 401 si une solution simple comme l'utilisation de mots de secours est suffisante pour traiter les erreurs permanentes. Sinon, les mots de secours sont utilisés pour remplacer les mots de mémoires ayant le plus d'erreurs.The approach may be different depending on the chosen configuration strategy. A configuration strategy can be, for example, to correct transient errors in addition to permanent and intermittent errors. This strategy was chosen to illustrate the principle of the configuration of additional resources using the example of Figure 4. In order to have the ability to correct transient errors, it is possible to reserve nV bits of redundancy 400 so that they serve as verification bits for SEC or SEC-DED type protection, for example. Relief words are used to correct permanent errors. At first it is better to check 401 if a simple solution like the use of backup words is enough to deal with permanent errors. Otherwise, backup words are used to replace memory words with the most errors.
Il est ensuite vérifié 402 si la capacité de correction des erreurs transitoires a été activée, c'est-à-dire si nV est différent de zéro.It is then verified 402 whether the transient error correction capability has been enabled, i.e., if nV is different from zero.
Si la capacité de correction des erreurs transitoires est activée, des bits de vérification ont déjà été réservés pour la correction des erreurs transitoires. Les éléments programmables de la matrice de parité H qui définissant le code correcteur d'erreurs sont alors déterminés 403 de manière à ce que le code ECC en résultant permette de corriger lesdites erreurs transitoires.If the transient error correction capability is enabled, check bits have already been reserved for transient error correction. The programmable elements of the parity matrix H defining the error correction code are then determined 403 so that the resulting ECC code makes it possible to correct said transient errors.
Une étape 404 permet ensuite de vérifier si les corrections apportées sont suffisantes. Si la configuration trouvée est satisfaisante, la recherche se termine 412, en d'autres termes, la configuration de protection adaptée est trouvée. De plus, si la correction des erreurs transitoires n'est pas souhaitée, c'est-à-dire si nV=0, la correction ECC peut être désactivée. Cette désactivation induit alors un gain en vitesse notamment lors de la lecture des données.A step 404 then makes it possible to check whether the corrections made are sufficient. If the found pattern is satisfactory, the search ends 412, in other words, the appropriate protection pattern is found. In addition, if transient error correction is not desired, i.e., if nV = 0, the ECC correction may be disabled. This deactivation then induces a gain in speed especially during the reading of the data.
Si les corrections apportées ne sont pas suffisantes, les bits des colonnes de redondance qui ne sont pas utilisés en tant que bits de vérification et qui ne sont pas non plus isolés, peuvent être utilisés comme bits de secours. Un mot ou une colonne de redondance sont isolés lorsqu'ils ont des défauts et sont mis de côté. Il est possible d'affecter 405 jusqu'à nS = nR-nl-nV colonnes de secours pour remplacer les bits de données utile défectueux où nR correspond au nombre total de bits de redondance, nV correspond au nombre de bits de vérification présents dans un mot de mémoire, et ni correspond aux nombres de colonnes de redondance isolées. Une étape permet ensuite de vérifier si les corrections apportées sont suffisantes 406.If the corrections made are not sufficient, the bits of the redundancy columns which are not used as verification bits and which are not isolated either, can be used as backup bits. A word or column of redundancy is isolated when it has defects and is set aside. It is possible to assign 405 up to nS = nR-nl-nV spare columns to replace the bad payload bits where nR is the total number of redundancy bits, nV is the number of check bits present in a memory word, and ni corresponds to the numbers of isolated redundancy columns. A step then makes it possible to check whether the corrections made are sufficient 406.
Si la configuration trouvée est satisfaisante, la recherche se termine 412.If the configuration found is satisfactory, the search ends 412.
Dans le cas où la configuration trouvée n'est pas satisfaisante, une étape réalloue une des colonnes de secours 407 afin que celle-ci soit utilisée
comme bit de vérification dans le but de mettre en place ou bien d'augmenter la capacité de correction du codage ECC (nS = nS-1 et nV = nR-nl-nS).In the case where the configuration found is not satisfactory, a step reallocates one of the backup columns 407 so that it is used as a check bit in order to set up or increase the correction capability of the ECC coding (nS = nS-1 and nV = nR-nl-nS).
Suite à l'étape de réallocation 407, une étape 408 recherche une matrice de parité H utilisant nV bits de vérification afin de pouvoir corriger les erreurs permanentes restantes et, si besoin, des erreurs transitoires.Following the reallocation step 407, a step 408 searches for a parity matrix H using nV check bits in order to be able to correct the remaining permanent errors and, if necessary, transient errors.
Il est ensuite vérifié 409 que la configuration trouvée permette une correction satisfaisante. Si c'est le cas, la recherche de la configuration est terminée 412 avec succès.It is then checked 409 that the found configuration allows a satisfactory correction. If so, the search for the configuration is completed 412 successfully.
Dans le cas où la capacité de correction que peut apporter la dernière configuration trouvée n'est pas suffisante, la répartition des bits de redondance est modifiée en réduisant de manière récursive 413 le nombre de bits de secours. Cette réduction est faite au profit des bits de vérification jusqu'à ce qu'une configuration satisfaisante de la matrice H soit trouvée 412 ou bien jusqu'à ce qu'il ne soit plus possible de réduire le nombre de colonnes de secours 410 et donc d'augmenter le nombre de bits de vérification, ce qui signifie alors que la recherche d'une configuration satisfaisante se termine 411 sur un échec.In the case where the correction capacity that the last found configuration can provide is not sufficient, the distribution of the redundancy bits is modified by recursively reducing 413 the number of spare bits. This reduction is made in favor of the check bits until a satisfactory configuration of the matrix H is found 412 or until it is no longer possible to reduce the number of spare columns 410 and therefore to increase the number of check bits, which means that the search for a satisfactory configuration ends on a failure.
La figure 5 donne un exemple de dispositif électronique de mémorisation mettant en œuvre le procédé selon l'invention. Le procédé décrit précédemment permet la mise en œuvre de dispositifs électroniques de mémorisation reconfigurables. La reconfiguration permet d'adapter la stratégie de protection des données mémorisée en tenant compte l'état et de la qualité des circuits composant le dispositif. Cette reconfiguration peut être réalisée pendant la conception du dispositif ou plus tard.FIG. 5 gives an example of an electronic storage device implementing the method according to the invention. The method described above allows the implementation of reconfigurable electronic storage devices. The reconfiguration makes it possible to adapt the stored data protection strategy taking into account the state and the quality of the circuits composing the device. This reconfiguration can be performed during device design or later.
Le dispositif 500 est composé, par exemple, d'une zone de mémoire 501 comprenant une zone de mémoire principale destinée à stocker des mots de données ainsi que des ressources complémentaires destinées à protéger lesdites données contre d'éventuelles erreurs. Les données mémorisées peuvent être lues, et les éventuels erreurs corrigées à l'aide d'un circuit de décodage 502. De nouvelles données peuvent être également écrites dans la zone de mémoire 501 et protégées par l'ajout de bits de redondance grâce à un circuit d'encodage 503. La manière dont sont configurés le décodeur 502 et l'encodeur 503 dépend de la stratégie de protection telle que déterminée par le procédé selon l'invention. Ces deux
éléments sont donc configurés 508 à l'aide de paramètres de configuration 506 mémorisés, par exemple, au sein du dispositif. Lesdits paramètres de configuration peuvent être mis à jour de manière à tenir compte de l'évolution physique de la zone de mémoire et notamment des effets du vieillissement sur les circuits. Pour cela, un module 504 contrôle la mise à jour du dispositif. Celui-ci peut, par exemple, réaliser des tests 509 de la zone de mémoire 501 ou bien prendre en entrée 510 des données lui permettant de générer une cartographie 513 des défauts de ladite zone de mémoire 501. Il est également possible de consulter le module contenant les paramètres de configuration pour vérifier qu'il n'y a pas d'erreur et s'il y a une ou des erreurs le module de contrôle 504 pourra prendre ces informations en considération pour déterminer la configuration appropriée. Cette cartographie peut être ensuite utilisée par un module de configuration 505 afin de déterminer notamment la matrice de parité H et des paramètres de masquage 512, des exemples de la matrice de parité H et ces paramètres étant donnés plus loin dans la description. La matrice H et le reste des paramètres de configuration sont ensuite stockés 506 dans un module de mémorisation. Un ou plusieurs des modules de contrôle 504 et de configuration 505 peuvent être implémentés à l'intérieur ou bien à l'extérieur 51 1 du dispositif électronique de mémorisation 500.The device 500 is composed, for example, of a memory area 501 comprising a main memory area for storing data words as well as additional resources for protecting said data against possible errors. The stored data can be read, and the possible errors corrected by means of a decoding circuit 502. New data can also be written in the memory area 501 and protected by the addition of redundancy bits by means of a encoding circuit 503. The manner in which the decoder 502 and the encoder 503 are configured depends on the protection strategy as determined by the method according to the invention. These two Thus, elements 508 are configured using stored configuration parameters 506, for example, within the device. Said configuration parameters can be updated so as to take account of the physical evolution of the memory zone and in particular the effects of aging on the circuits. For this, a module 504 controls the update of the device. It can, for example, perform tests 509 of the memory area 501 or take data input 510 to enable it to generate a map 513 of the defects of said memory area 501. It is also possible to consult the module containing the configuration parameters to verify that there is no error and if there are one or more errors the control module 504 may take this information into consideration in determining the appropriate configuration. This map can then be used by a configuration module 505 to determine in particular the parity matrix H and masking parameters 512, examples of the parity matrix H and these parameters are given later in the description. The matrix H and the rest of the configuration parameters are then stored 506 in a storage module. One or more of the control 504 and configuration 505 modules may be implemented inside or outside 51 1 of the electronic storage device 500.
La figure 6 présente un exemple de structure d'encodeur pouvant être utilisée afin de générer les bits de redondance associés aux mots de données à mémoriser. nR bits de redondance sont associés à un mot de nD bits de données. Le nombre nD de bits de données est habituellement une puissance de 2.FIG. 6 shows an example of an encoder structure that can be used to generate the redundancy bits associated with the data words to be stored. nR redundancy bits are associated with a word of nD data bits. The number nd of data bits is usually a power of 2.
Un module de génération de redondance 600 détermine la valeur des bits de redondance en fonction de la valeur des bits de données. Cette opération est réalisée en utilisant une matrice de parité programmable H mémorisée 601 dont les éléments programmables ont été déterminés lors de la procédure de configuration ou de reconfiguration de la mémoire. La valeur des nR bits de redondance peut être déterminée, par exemple, en utilisant l'expression suivante :
nD-lA redundancy generation module 600 determines the value of the redundancy bits as a function of the value of the data bits. This operation is performed using a stored H programmable parity matrix 601 whose programmable elements were determined during the configuration or reconfiguration procedure of the memory. The value of the nR redundancy bits can be determined, for example, using the following expression: n D-l
R1 = ® {H Λ D \ i = 0,nR -l (1 )R 1 = ® {H Λ D i = 0, nR-1 (1)
dans laquelle :in which :
Θ représente l'opération de OU exclusif ; Λ représente l'opération de ET logique ;Θ represents the exclusive OR operation; Λ represents the logical AND operation;
Ri représente le iθmθ bit de redondance avec 0 < i < nR ;Ri represents the i θmθ redundancy bit with 0 <i <nR;
Dj représente le jθmθ bit de données avec 0 < j < nD ;D j represents the j θmθ data bit with 0 <j <nD;
Hy représente un élément de la matrice de parité programmable H, ladite matrice étant de dimension nRx(nD+nR).Hy represents an element of the programmable parity matrix H, said matrix being of dimension nRx (nD + nR).
Le module 601 de mémorisation de la matrice de parité programmable H comporte, par exemple, des registres où sont mémorisés les éléments Hy de la matrice H. Ces registres peuvent être accessibles depuis l'extérieur du contrôleur mémoire contenant l'encodeur. Il est possible d'implémenter ces registres dans une mémoire volatile de type RAM ou bien dans une mémoire non-volatile de types EPROM, EEPROM ou Flash, par exemples. Les éléments de la matrice H et les autres éléments de configuration peuvent également être programmés à l'aide d'autres méthodes, comme par exemple à l'aide de faisceaux laser si on veut corriger seulement les erreurs permanents dues aux défauts apparus lors de la production d'un circuit de mémorisation ou de transmission.The module 601 for storing the programmable parity matrix H comprises, for example, registers in which the elements Hy of the matrix H are stored. These registers can be accessible from outside the memory controller containing the encoder. It is possible to implement these registers in a volatile memory of the RAM type or in a non-volatile memory of types EPROM, EEPROM or Flash, for example. The elements of the matrix H and the other configuration elements can also be programmed using other methods, for example using laser beams if only the permanent errors due to the defects appearing during the process are to be corrected. production of a storage or transmission circuit.
La matrice de parité H est utilisée pour l'implémentation d'un code ECC. Pour minimiser la quantité d'information nécessaire à la programmation de la matrice H, certains éléments Hy peuvent ne pas être librement programmables. A titre d'exemple, il est possible de fixer les éléments Hy pour O < i < nR et nD < j < nD+nR, tel que Hy = 1 si i = j-nD et Hy = O si i ≠ j sans que la flexibilité de programmation soit impactée de manière significative. Il est également possible que des éléments Hy et Hmn soient reliés par une relation de dépendance pour permettre de compresser l'information de configuration à mémoriser. Par exemple, Hy peut être égal à l'inverse de Hmn.The parity matrix H is used for the implementation of an ECC code. To minimize the amount of information needed to program the H matrix, some Hy elements may not be freely programmable. By way of example, it is possible to fix the elements Hy for O <i <nR and nD <j <nD + nR, such that Hy = 1 if i = j-nD and Hy = O if i ≠ j without programming flexibility is significantly impacted. It is also possible for elements Hy and H mn to be linked by a dependency relation to make it possible to compress the configuration information to be memorized. For example, Hy can be equal to the inverse of H mn .
Un module de l'encodeur est un espace de stockage des mots de secours 602. Différentes stratégies existantes dans l'état de l'art peuvent être mises en œuvre, comme par exemple celle décrite dans l'article de S. E. Schuster intitulé Multiple word/bit Une redundancy for semiconductor
memories, IEEE Journal of Solid-State Circuits, vol. 13, no. 5, pages 698- 703, Octobre 1978. L'intégration et l'utilisation de ce module 602 est optionnelle. Le choix d'utiliser un tel module dépend de la densité des défauts et de la capacité mémoire des systèmes de stockage protégés. Ce module peut être désactivé, par exemple après un test de production, si on a besoin de tolérer les erreurs transitoires et la densité de défauts de production est faible ou nulle. Ce découplage permet d'améliorer les performances du décodeur et d'optimiser sa consommation en puissance.A module of the encoder is a storage space of the spare words 602. Different strategies existing in the state of the art can be implemented, for example that described in the article by SE Schuster entitled Multiple word / bit A redundancy for semiconductor memories, IEEE Journal of Solid-State Circuits, vol. 13, no. 5, pp. 698-703, October 1978. The integration and use of this module 602 is optional. The choice to use such a module depends on the density of defects and the memory capacity of the protected storage systems. This module can be deactivated, for example after a production test, if it is necessary to tolerate transient errors and the density of production defects is low or zero. This decoupling makes it possible to improve the performance of the decoder and to optimize its power consumption.
Un multiplexeur optionnel 603 peut être utilisé pour choisir le flux binaire présenté en sortie de l'encodeur parmi deux entrées. Ladite sortie peut être la première entrée 604 du multiplexeur correspondant à la sortie du module de génération de la redondance 600. Dans le cas ou la densité de défauts constatée est nulle, le flux de la seconde entrée 605 correspondant aux bits de données sans ajout de redondance est présenté en sortie. La largeur de la deuxième entrée du multiplexeur 605 est, par exemple, ajustée à la largeur de la première entrée 604 et de la sortie 606 en ajoutant nR bits figés à une valeur quelconque.An optional multiplexer 603 may be used to select the bitstream presented at the output of the encoder from two inputs. Said output may be the first input 604 of the multiplexer corresponding to the output of the generation module of the redundancy 600. In the case where the detected fault density is zero, the flow of the second input 605 corresponding to the data bits without addition of redundancy is presented as output. The width of the second input of the multiplexer 605 is, for example, adjusted to the width of the first input 604 and the output 606 by adding nR fixed bits to any value.
Les paramètres de configuration peuvent être transférés au module 601 à travers la voie utilisée pour l'accès des bits de données 607 ou une voie distincte 608.The configuration parameters may be transferred to the module 601 through the channel used for accessing the data bits 607 or a separate channel 608.
La figure 7 donne un exemple de configuration d'une matrice de parité H permettant de combiner à la fois un codage de type SEC-DED et le remplacement des colonnes de données correspondant aux bits D13, D14 et D15 par des colonnes de secours. Dans cet exemple, la matrice H est de dimension nRx(nD+nR) = 9x25. Dans cet exemple, 6 bits de vérification notés RO à R5 correspondent aux bits de vérification d'un code SEC-DED et trois bits R6, R7 et R8 sont utilisés comme ressources de secours. Les trois bits R6, R7 et R8 sont aussi protégés par le code SEC-DED. Lors du décodage, le calcul du syndrome d'erreur n'utilise que les bits de vérification RO à R5. Lors de la configuration de la zone de mémoire et donc de la construction du code, la matrice H doit être déterminée, par exemple, telle que les syndromes d'erreurs simples et multiples corrigeables soient tous
différents entre eux. De plus, ces syndromes doivent être différents des syndromes d'erreurs détectables pour être identifiés de façon unique.FIG. 7 gives an exemplary configuration of a parity matrix H making it possible to combine both a SEC-DED type coding and the replacement of the columns of data corresponding to the bits D13, D14 and D15 by spare columns. In this example, the matrix H is of dimension nRx (nD + nR) = 9x25. In this example, 6 check bits marked RO to R5 correspond to the verification bits of a SEC-DED code and three bits R6, R7 and R8 are used as backup resources. The three bits R6, R7 and R8 are also protected by the SEC-DED code. During decoding, the calculation of the error syndrome uses only the check bits RO to R5. When configuring the memory area and therefore the code construction, the matrix H must be determined, for example, such that the single and multiple correctable error syndromes are all different from each other. In addition, these syndromes must be different from detectable error syndromes to be uniquely identified.
La figure 8 présente un exemple de décodeur pouvant être utilisé pour la lecture de données mémorisées et protégées. Ce décodeur prend en entrée les bits de données D_in mémorisés dans la zone de mémoire principale et les bits de redondance R_in leurs étant associés et étant mémorisés dans la zone de mémoire complémentaire. Le décodeur fournit en sortie les données utiles décodées. Un module 804 du décodeur mémorise la matrice de parité programmable H. Ce module peut inclure le module 601 de l'encodeur présenté précédemment ayant aussi pour rôle la mémorisation de la matrice de parité. Ainsi, les deux modules peuvent partager des ressources de stockage communes ou partiellement communes ou bien avoir des ressources de stockage indépendantes.Figure 8 shows an example of a decoder that can be used for reading stored and protected data. This decoder takes as input the data bits D_in stored in the main memory area and the redundancy bits R_in being associated with them and being stored in the complementary memory area. The decoder outputs the decoded payload. A module 804 of the decoder stores the programmable parity matrix H. This module may include the module 601 of the encoder presented previously also having the role of storing the parity matrix. Thus, both modules can share common or partially shared storage resources or have independent storage resources.
Afin de pouvoir assurer le décodage, ce module doit aussi avoir la capacité de mémoriser des informations de masquage. En effet, une colonne peut être masquée, c'est-à-dire isolée, si celle-ci est défectueuse. Ces informations de masquage sont par exemple des bits de masquage MaskColj (0 < j < nD) et MaskLinβi (0 < i < nR). MaskLinβi ne sert pas à masquer une ligne (ou mot) de la mémoire. Maskϋnβi fait référence aux lignes de la matrice H. Ces bits de masquage peuvent être définis par convention, par exemple, tels que :In order to be able to decode, this module must also have the ability to store masking information. Indeed, a column can be hidden, that is to say isolated, if it is defective. This masking information is for example MaskCol masking bits j (0 <j <nD) and MaskLinβi (0 <i <nR). MaskLinβi is not used to hide a line (or word) from memory. Maskϋnβi refers to the rows of the matrix H. These masking bits can be defined by convention, for example, such that:
MaskColj prend la valeur 0 si le jθmθ bit de donnée est remplacé par un bit de redondance ;MaskCol j takes the value 0 if the j θθ data bit is replaced by a redundancy bit;
MaskLinβi prend la valeur 1 si le iθmθ bit de redondance est utilisé comme bit de secours pour remplacer un bit de donnée.MaskLinβi takes the value 1 if the i θmθ redundancy bit is used as a backup bit to replace a data bit.
Dans le cadre de l'invention, le remplacement du jθmθ bit de données par le iθmθ bit de redondance est décidé au moment de la configuration ou de la reconfiguration de la mémoire numérique. En cas de décision de remplacement, les valeurs sélectionnées sont par conséquent MaskColj = 0, MaskLinβj = 1 et Hy = 1 .In the context of the invention, replacing the j θmθ data bit by the i θmθ redundancy bit is decided at the time of the configuration or reconfiguration of the digital memory. In case of replacement decision, the selected values are therefore MaskCol j = 0, MaskLinβj = 1 and Hy = 1.
Les informations de masquage MaskColj et MaskLinβi ainsi que les valeurs que prennent les éléments Hy de la matrice de parité H sont ensuite utilisés
notamment par un module de contrôle des colonnes de secours 802 et un module programmable de correction d'erreurs 806.The masking information MaskCol j and MaskLinβi as well as the values taken by the elements Hy of the parity matrix H are then used. in particular by an emergency column control module 802 and a programmable error correction module 806.
Les bits de redondance peuvent être également défectueux. Dans ce cas, il est alors possible d'isoler un ou plusieurs bits de redondance, c'est-à- dire une ou plusieurs colonnes appartenant aux ressources complémentaires. Si il est décidé d'isoler un bit i de redondance, c'est-à-dire de ne l'utiliser ni comme bit de vérification ni comme bit de secours, alors les valeurs suivantes peuvent par exemple être choisies : Hy = 0 pour 0 < j < nD+nR-1 et MaskUnei = 1.The redundancy bits may also be defective. In this case, it is then possible to isolate one or more redundancy bits, that is to say one or more columns belonging to the complementary resources. If it is decided to isolate a bit i of redundancy, that is to say not to use it as a verification bit or as a backup bit, then the following values may for example be chosen: Hy = 0 for 0 <j <nD + nR-1 and MaskUnei = 1.
Un module 802 de contrôle des colonnes de secours prend en entrée les bits des mots à lire, c'est-à-dire, pour chaque mot, D_in bits de données et R_in bits de redondance. Comme explicité précédemment dans la description, les colonnes allouées pour mémoriser les bits de données peuvent être remplacées par des colonnes appartenant aux ressources complémentaires. Ce module présente en sortie les bits de données D_out et peut mettre en œuvre n'importe quelle méthode d'utilisation des colonnes de secours, comme par exemple celle présentée dans l'article de M. Horiguchi intitulé Redundancy Techniques for High-Density DRAMs, IEEE Int. Conf. Innovative Systems Silicon, 1997, pages 22 à 29.A module 802 for checking the spare columns takes as input the bits of the words to be read, that is to say, for each word, D_in data bits and R_in redundancy bits. As explained previously in the description, the columns allocated to store the data bits can be replaced by columns belonging to the complementary resources. This module has as output the data bits D_out and can implement any method of using the spare columns, as for example that presented in the M. Horiguchi article entitled Redundancy Techniques for High-Density DRAMs, IEEE Int. Conf. Innovative Systems Silicon, 1997, pages 22 to 29.
Une autre méthode possible est d'utiliser l'information mémorisée 803 de la matrice programmable H et de calculer chaque bit de donnée à l'aide, par exemple, de l'expression suivante :Another possible method is to use the stored information 803 of the programmable matrix H and to calculate each bit of data using, for example, the following expression:
, v VnR-I , , D _out = {D_in A MαskCol Jv v [MaSkLiHe1 Λ R _ In1 A H ) ; j = 0, nD -l (2)V VnR-I, D = {_out D_IN A MαskCol Jv v [MaSkLiHe 1 Λ R _ In 1 AH); j = 0, nD-1 (2)
dans laquelle : v représente l'opération de OU logique ;where: v represents the logical OR operation;
D_irij et R_irii indiquent respectivement le jθmθ bit de donnée, et le iθmθ de redondance, à l'entrée du module de contrôle des colonnes de secours (0 < j < nD, 0 ≤ i < nR) ;D_iri j and R_irii indicate respectively the j θmθ bit of data, and the i θmθ of redundancy, at the input of the control module of the spare columns (0 <j <nD, 0 ≤ i <nR);
D_outj représente le jθmθ bit de données à la sortie du module de contrôle des colonnes de secours (0 < j < nD) ;
MaskColj représente le bit de masquage correspondant au jθmθ bit de donnée à l'entrée du module de contrôle des colonnes de secours (0 < j < nD) ; MaskLinej représente le bit de masquage correspondant au iθmθ bit de redondance à l'entrée du module de contrôle des colonnes de secours (0 < i < nR).D_out j represents the j θmθ bit of data at the output of the control module of the spare columns (0 <j <nD); MaskCol j represents the masking bit corresponding to the j θmθ data bit at the input of the control module of the spare columns (0 <j <nD); MaskLinej represents the masking bit corresponding to the i θmθ redundancy bit at the input of the control module of the spare columns (0 <i <nR).
Le module 800 de stockage des mots de secours est le même que module 602 de stockage des mots de secours présenté à l'aide de la figure 6. Son but est de stocker lesdits mots de secours. L'intégration et l'utilisation de ce module est optionnelle et dépend de la densité des défauts et de la capacité mémoire des systèmes de stockage protégés. Ce module peut être déconnecté, par exemple après un test de production, si on a besoin de tolérer les erreurs transitoires et si la densité de défauts est faible ou nulle. Ce module n'est pas nécessaire pour la protection d'un système d'interconnexion.The backup word storage module 800 is the same as the backup word storage module 602 presented with the aid of FIG. 6. Its purpose is to store said backup words. The integration and use of this module is optional and depends on the density of defects and the memory capacity of the protected storage systems. This module can be disconnected, for example after a production test, if it is necessary to tolerate transient errors and if the density of defects is low or zero. This module is not necessary for the protection of an interconnection system.
Un module 806 du décodeur met en œuvre la correction d'erreur. En fonction de la configuration de protection choisie et donc de la matrice H mémorisée, une correction des erreurs simples ou/et d'erreurs multiples peut être effectuée. La détection d'erreurs multiples non-corrigées peut également être réalisée par ce module.A module 806 of the decoder implements the error correction. Depending on the chosen protection configuration and therefore the stored matrix H, correction of single errors and / or multiple errors can be performed. The detection of multiple uncorrected errors can also be performed by this module.
Un code ECC classique associe à chaque erreur E corrigeable et/ou détectable un syndrome SE défini par nR bits. Si E est une erreur simple correspondant au jθmθ bit de donnée, son syndrome est identique à la jθmθ colonne de la matrice H. Si E est une erreur multiple affectant plusieurs bits de données et/ou bits de vérification, le syndrome SE est obtenu à l'aide de l'opération logique OU exclusif entre les colonnes de la matrice de parité H correspondant aux bits affectés par ladite erreur multiple.A conventional ECC code associates with each correctable and / or detectable error E a syndrome SE defined by nR bits. If E is a single corresponding to j θmθ data bit error and the syndrome is the same as j θmθ column of the matrix H. If E is a multiple error affecting multiple bits of data and / or check bits, the syndrome is SE obtained by means of the exclusive OR logic operation between the columns of the parity matrix H corresponding to the bits affected by said multiple error.
Le principe selon l'invention de ressources programmables dédiées à la protection mémoire nécessite que les syndromes soient mémorisés. Les syndromes correspondant aux erreurs simples n'ont pas besoin de cellules additionnelles de mémoire. Du fait que les syndromes des erreurs simples correspondent aux colonnes de la matrice de parité H, seuls les syndromes SE des erreurs multiples nécessitent des registres additionnels. Le contenu de ces registres forme une matrice distincte HS qui est appelée matrice de
syndromes d'erreurs multiples. La matrice HS est de dimension nRxnHS, nR étant le nombre total de bits de redondance et nHS étant un paramètre dépendant du nombre d'erreurs multiples à corriger. Le paramètre nHS est choisi, par exemple, lors de la conception de la mémoire numérique. Par construction, la limite maximale de nHS est nHS≤2nR-nR-nD-1. Chaque colonne de la matrice HS peut ainsi stocker le syndrome d'une erreur multiple.The principle according to the invention of programmable resources dedicated to memory protection requires that the syndromes be memorized. Syndromes corresponding to simple errors do not need additional memory cells. Because the simple error syndromes correspond to the columns of the H parity matrix, only the multiple error SE syndromes require additional registers. The contents of these registers form a distinct matrix HS which is called matrix of multiple error syndromes. The matrix HS is of dimension nRxnHS, where nR is the total number of redundancy bits and nHS is a parameter dependent on the number of multiple errors to be corrected. The NHS parameter is chosen, for example, when designing the digital memory. By construction, the maximum limit of NHS is nHS≤2 nR - nR -nD-1. Each column of the matrix HS can thus store the syndrome of a multiple error.
Dans le module 806 de correction d'erreurs, un syndrome S est calculé à partir des bits de données Dirij (0 < j < nD) et des bits de redondance Ririj (0 < i < nR) arrivant à l'entrée dudit module, en utilisant, par exemple, l'expression suivante :In the error correction module 806, a syndrome S is calculated from the data bits Diri j (0 <j <nD) and redundancy bits Ririj (0 <i <nR) arriving at the input of said module , using, for example, the following expression:
nD-l FnR+nD-l , /nD-1 FnR + nD-1, /
S, = © K ΛD.inJ ; i = 0, nR -l (3)S, = © K ΛD.inJ; i = 0, nR-1 (3)
Le syndrome S doit être comparé avec les syndromes mémorisés dans les colonnes des matrices H et HS. Ces comparaisons peuvent être réalisées en utilisant, par exemple, les expressions suivantes :Syndrome S must be compared with the syndromes stored in the columns of matrices H and HS. These comparisons can be made using, for example, the following expressions:
BHFHp1 = "A [MaSkLiHe1 v (HI} ©S, )] ; j = 0, nD - l (4) BitFlipk = "A [MaSkLiHe1 v (HSA ©S, )] ; k = 0, nHS - 1 (5)BHFHp 1 = "A [MaSkLiHe 1 v (H I) S S,)]; j = 0, nD - 1 (4) BitFlip k =" A [MaSkLiHe 1 v (HS A S S,)]; k = 0, nHS - 1 (5)
dans lesquelles :in which :
Θ représente l'opération de OU exclusif inversé ;Θ represents the inverted exclusive OR operation;
BitFlipj est un signal qui prend la valeur 1 seulement si le syndrome S correspond à la iθmθ colonne de H ;BitFlip j is a signal which takes the value 1 only if the syndrome S corresponds to the i θmθ column of H;
BitFlipk est un signal qui prend la valeur 1 seulement si le syndrome S correspond à la klθmθ colonne de HSk.BitFlipk is a signal that takes the value 1 only if the syndrome S corresponds to the k lθmθ column of HSk.
Pour optimiser les performances de calcul il faut, par exemple, que les expressions (4) et (5) soient implémentées par des sous-modules dédiés à chacun des signaux BitFlipj et BitFlipk.To optimize the computational performance it is necessary, for example, that the expressions (4) and (5) are implemented by submodules dedicated to each of the signals BitFlip j and BitFlip k .
Les bits de données D_outj (0 < j < nD) présentés en sortie du module de correction 806 peuvent être calculés à l'aide de l'expression suivante :
D_outj =D_inJ θ| ΛBitFlipJ I ; j = 0, nD-l (6)
The data bits D_out j (0 <j <nD) presented at the output of the correction module 806 can be calculated using the following expression: D_out j = D_in J θ | ΛBitFlipJ I; j = 0, nD-1 (6)
Dans laquelle :In which :
D_irij représente le jθmθ bit de données à l'entrée du module (O < j < nD) ; D_outj représente le jθmθ bit de données à la sortie du module Y30 (0 < j < nD) ;D_iri j represents the j θmθ bit of data at the input of the module (O <j <nD); D_out j represents the j θmθ data bit at the output of the module Y30 (0 <j <nD);
MapSEj est un paramètre prenant la valeur 1 seulement si l'erreur simple dont le syndrome est défini par la jθmθ colonne de la matrice H est susceptible d'affecter le bit D_outj (0 < j < nD) ; MapMEjk est un paramètre prenant la valeur 1 seulement si l'erreur multiple dont le syndrome est défini par la kθmθ colonne de la matrice HS est susceptible d'affecter le bit D_outj (0 < k < nHS).MapSE j is a parameter taking the value 1 only if the simple error whose syndrome is defined by the column jth of the matrix H is likely to affect the bit D_out j (0 <j <nD); MapME jk is a parameter taking the value 1 only if the multiple error whose syndrome is defined by the k θmθ column of the matrix HS is likely to affect the bit D_out j (0 <k <nHS).
A titre d'exemple, plusieurs règles peuvent être suivies pour remplir les matrices H et HS :For example, several rules can be followed to fill the matrices H and HS:
- si une colonne k de la matrice HS n'est pas utilisée pour le stockage d'un syndrome correspondant à une erreur multiple, alors tous les bits MapMEjk avec 0 < j < nD sont mis à zéro ;if a column k of the matrix HS is not used for storage of a syndrome corresponding to a multiple error, then all the MapME bits jk with 0 <j <nD are set to zero;
- si une colonne j de la matrice H ne correspond pas à une erreur simple susceptible d'affecter le jθmθ bit de données, alors le bit MapSEj est mis à zéro ;if a column j of the matrix H does not correspond to a simple error likely to affect the data bit, then the MapSE j bit is set to zero;
- si le bit MapSEj est égal à zéro et le jθmθ bit de donnée n'est pas remplacé par un bit de redondance, alors tous les bits de la jθmθ colonne de la matrice H peuvent être mis à zéro. Dans ce cas, un moyen d'éviter l'utilisation des bits MapSE et de rendre le décodeur plus robuste est de forcer les signaux BitFlip à zéro si tous les bits du syndrome obtenus par l'expression (3) sont égaux à zéro. Tous les bits des colonnes non-utilisées de la matrice HS peuvent être aussi être mis à zéro.- if the MapSE j bit is zero and the data bit θmθ j is not replaced by a redundancy bit, then all the bits of the j θmθ column of the matrix H may be set to zero. In this case, a way to avoid the use of the MapSE bits and to make the decoder more robust is to force the BitFlip signals to zero if all the bits of the syndrome obtained by the expression (3) are equal to zero. All bits of the unused columns of the HS matrix can also be set to zero.
Les bits MapMEjk (0 < j < nD, 0 < k < nHS) peuvent nécessiter une capacité de stockage importante. En effet, nDxnHS cellules de mémoire sont requises. Ce coût peut être réduit en encodant en dur un sous-ensemble des bits MapMEjk. Le choix de ce sous-ensemble implique qu'un compromis doit
être fait entre le choix de la surface du circuit et la couverture de fautes. Les informations utilisées pour la programmation des matrices H, MapME, HS peuvent être mémorisées sous forme compressée puis décompressées avant d'être utilisées.The MapME bits jk (0 <j <nD, 0 <k <nHS) may require a large storage capacity. Indeed, nDxnHS memory cells are required. This cost can be reduced by hard-coding a subset of the MapME bits jk . The choice of this subset implies that a compromise must be made between the choice of the surface of the circuit and the coverage of faults. The information used for programming the H, MapME, HS matrices can be stored in compressed form and then decompressed before being used.
Un premier module de multiplexage 805 permet de sélectionner une ou plusieurs des entrées du module de correction 806 parmi les sorties des modules de contrôle des colonnes de secours 802, de l'espace de stockage des mots de secours 800 et l'entrée du décodeur 801 , c'est-à-dire les bits Dj n et R_in.A first multiplexing module 805 makes it possible to select one or more of the inputs of the correction module 806 from the outputs of the control modules of the spare columns 802, the spare word storage space 800 and the input of the decoder 801. that is, the bits Dj n and R_in.
Un second module de multiplexage 807 permet de sélectionner les bits transmis en sortie du décodeur parmi les bits disponibles en sortie des modules de contrôle des colonnes de secours 802, de l'espace de stockage des mots de secours 800 et les bits d'entrée du décodeur 801.A second multiplexing module 807 makes it possible to select the bits transmitted at the output of the decoder out of the bits available at the output of the control modules of the spare columns 802, the storage space of the backup words 800 and the input bits of the 801 decoder.
Les figures 9 à 12 présentent un exemple pratique de mise en œuvre de l'invention pour une cartographie de défauts donnée.Figures 9 to 12 show a practical example of implementation of the invention for a given fault mapping.
La figure 9 présente un exemple de répartition de défauts dans une zone de mémoire dont les mots ont une largeur de 9+1 6 bits. Les lignes représentent les mots mémorisés. Les mots mémorisés comportent 1 6 bits de données DO à D15 auxquels sont associés 9 bits de redondance RO à R8, cette redondance pouvant correspondre à des bits de secours ou bien à des bits de vérification. Seul des mots affectés de défauts ont été représentés. Les localisations des défauts du circuit sont indiquées par des 'X'. Il apparait que deux colonnes 900, 901 sont défectueuses, la première étant la colonne de données D1 1 900 et la seconde la colonne de redondance R8 901 . Il peut être décidé par exemple, d'utiliser la colonne R7 904 comme ressource de secours afin de remplacer la colonne D1 1 . En plus des défauts sur les colonnes R8 et D1 1 , 5 mots 902 contiennent 2 défauts supplémentaires impliquant des erreurs doubles, et de nombreux autres mots 903 en contiennent une. Les cinq erreurs doubles 902 mènent à cinq syndromes SO, S1 , S2, S3 et S4 lors du décodage.Figure 9 shows an example of distribution of defects in a memory area whose words have a width of 9 + 1 6 bits. The lines represent the stored words. The stored words comprise 1 6 data bits D0 to D15 associated with 9 redundancy bits RO to R8, this redundancy being able to correspond to backup bits or to verification bits. Only words with defects have been represented. The locations of the circuit faults are indicated by 'X'. It appears that two columns 900, 901 are defective, the first being the data column D1 1900 and the second the redundancy column R8 901. For example, it may be decided to use column R7 904 as a backup resource to replace column D1 1. In addition to the defects on columns R8 and D1 1, 5 words 902 contain 2 additional defects involving double errors, and many other words 903 contain one. The five double errors 902 lead to five syndromes SO, S1, S2, S3 and S4 during decoding.
Lors du choix de la stratégie de protection permettant de corriger les erreurs induites par les défauts du circuit, il est important de tenir compte du
fait qu'une correction de type SEC n'est pas suffisante pour corriger plus d'une erreur par mot. Concernant la mise en œuvre d'une correction des erreurs doubles, celle-ci nécessite un nombre de bits de vérifications supérieur aux 9 bits de vérification à disposition. De plus, ce type de correction n'est pas suffisant pour traiter les mots mémorisés comprenant plus de 2 erreurs.When choosing the protection strategy to correct errors caused by circuit faults, it is important to take into account the that an SEC correction is not sufficient to correct more than one error per word. Concerning the implementation of a correction of double errors, this requires a number of verification bits greater than the 9 verification bits available. In addition, this type of correction is not sufficient to process the stored words comprising more than 2 errors.
La correction par remplacement des colonnes n'est pas non plus envisageable, car les défauts affectent un grand nombre de colonnes différentes. Pour ce qui est de la correction par remplacement de mots, celle-ci nécessiterait le remplacement de tous les mots affectés de défauts par des mots de secours. Cette solution n'est donc pas non plus envisageable de manière systématique.Column replacement correction is also not feasible because the defects affect a large number of different columns. With regard to word substitution correction, this would require the replacement of all defective words with relief words. This solution can not be envisaged in a systematic way.
Une approche mixte mettant en œuvre plusieurs des techniques cités ci-dessus permet d'optimiser l'efficacité de correction des erreurs.A mixed approach implementing several of the techniques mentioned above makes it possible to optimize the error correction efficiency.
Il apparaît que l'utilisation d'un code SEC-DED avec en plus la capacité de corriger un nombre restreint de d'erreurs multiples est une solution adaptée à la répartition des défauts donnée dans l'exemple de la figure 9. Le choix de ce type de protection peut être fait en utilisant un algorithme du type de celui présenté figure 4. Un exemple de matrice de parité associée à un tel type de code tout en permettant l'utilisation de ressources de secours est exposé en s'appuyant sur la figure 10.It appears that the use of a SEC-DED code with in addition the ability to correct a limited number of multiple errors is a solution adapted to the distribution of defects given in the example of Figure 9. The choice of this type of protection can be done using an algorithm of the type shown in FIG. 4. An example of a parity matrix associated with such a type of code while allowing the use of backup resources is explained by relying on the figure 10.
La figure 10 présente un exemple de matrice de parité. Sur la même figure sont représentées également les paramètres de masquage MaskCol etFigure 10 shows an example of a parity matrix. In the same figure are also represented the masking parameters MaskCol and
MaskLine. Ceux-ci sont déterminés afin de permettre de corriger les cinq erreurs multiples résultant des défauts tels que présentés avec l'exemple de la figure 9.MaskLine. These are determined in order to make it possible to correct the five multiple errors resulting from the defects as presented with the example of FIG. 9.
MaskLine prend la valeur 0 sur les 7 premières lignes indiquant que les bits RO à R6 sont utilisés pour une correction de type ECC.MaskLine takes the value 0 on the first 7 lines indicating that the bits RO to R6 are used for an ECC type correction.
MaskCol prend la valeur 0 au niveau de la douzième colonne. Il apparaît par conséquent que D1 1 est remplacé. La 8θmθ ligne de la matrice, c'est-à-dire son avant dernière ligne, montre que le bit de redondance R7 remplace le bit de donnée D11 , c'est-à-dire que la colonne de la zone
mémoire complémentaire correspondant au bit de redondance R7 est utilisée comme ressource de secours.MaskCol takes the value 0 in the twelfth column. It appears therefore that D1 1 is replaced. 8 θmθ row of the matrix, that is to say its last line shows that the redundancy bit R7 replaces the data bit D11, that is to say, the column of the area complementary memory corresponding to the redundancy bit R7 is used as backup resource.
Sur la 9θmθ ligne de la matrice, c'est-à-dire sa dernière ligne, il apparaît que le bit de redondance défectueux R8 n'a aucune dépendance avec les autres bits du mot de code, il est donc isolé. Il est supposé dans cet exemple qu'aucune ligne de secours n'est disponible.On 9 θmθ row of the matrix, that is to say its last line, it appears that the defective redundancy bit R8 has no dependencies with other bits of the code word, it is isolated. It is assumed in this example that no hotline is available.
Afin de pouvoir corriger des erreurs multiples, une matrice HS est choisie. Ses colonnes correspondent aux syndromes des erreurs multiples à corriger. Cette matrice est présentée en s'appuyant sur la figure 1 1.In order to be able to correct multiple errors, an HS matrix is chosen. Its columns correspond to the syndromes of the multiple errors to correct. This matrix is presented with reference to FIG.
La figure 1 1 donne un exemple de matrice de syndromes d'erreurs multiples HS. Afin de pouvoir corriger les cinq erreurs multiples résultant des défauts tels que présentés avec l'exemple de la figure 9, une matrice HS comportant au minimum cinq colonnes est nécessaire. Pour l'exemple, une matrice HS comportant huit colonnes est définie. L'exemple de la figure 1 1 est déterminé en fonction de la matrice de parité de la figure 10.Figure 11 gives an example of a matrix of multiple error syndromes HS. In order to be able to correct the five multiple errors resulting from the defects as presented with the example of FIG. 9, an HS matrix comprising at least five columns is necessary. For the example, an HS matrix with eight columns is defined. The example of FIG. 11 is determined as a function of the parity matrix of FIG.
Dans cet exemple, les deux dernières lignes de la matrice HS ne sont pas utilisées et sont remplies de zéros puisque seuls les sept premiers bits de redondance sont utilisés en tant que bits de vérification selon la configuration de la figure 10. Ainsi, les cinq premiers bits de chaque colonne de la matrice HS peuvent mémoriser un syndrome d'erreurs multiples que l'on désire reconnaître afin de corriger les bits erronés associés à ce syndrome d'erreurs multiples.In this example, the last two rows of the matrix HS are not used and are filled with zeros since only the first seven redundancy bits are used as verification bits according to the configuration of FIG. 10. Thus, the first five bits of each column of the HS matrix can memorize a multiple error syndrome that it is desired to recognize in order to correct the erroneous bits associated with this multiple error syndrome.
Le syndrome d'erreurs multiples SO correspond au XOR entre le syndrome d'erreur de D3 et le syndrome d'erreur de D12.The multiple error syndrome SO is the XOR between the D3 error syndrome and the D12 error syndrome.
Le syndrome d'erreurs multiples S1 correspond au XOR entre le syndrome d'erreur de D6 et le syndrome d'erreur de R4.The multiple error syndrome S1 is the XOR between the error syndrome of D6 and the error syndrome of R4.
Le syndrome d'erreurs multiples S2 correspond au XOR entre le syndrome d'erreur de R2 et le syndrome d'erreur de R6. Le syndrome d'erreurs multiples S3 correspond au XOR entre le syndrome d'erreur de D3 et le syndrome d'erreur de D9.The multiple error syndrome S2 corresponds to the XOR between the R2 error syndrome and the R6 error syndrome. The multiple error syndrome S3 corresponds to the XOR between the error syndrome of D3 and the error syndrome of D9.
Le syndrome d'erreurs multiples S4 correspond au XOR entre le syndrome d'erreur de D1 1 et le syndrome d'erreur de D13.The multiple error syndrome S4 corresponds to the XOR between the error syndrome of D1 1 and the error syndrome of D13.
Les colonnes S5 à S7 ne sont pas utilisées.
Dans le but de pouvoir corriger les erreurs doubles associées aux syndromes SO, S1 , S2, S3 et S4 précédemment explicités, les cinq premières colonnes 1 100 de la matrice HS correspondent à ces cinq syndromes et les colonnes restantes 1 101 qui sont non utilisées sont remplies de zéros.Columns S5 to S7 are not used. In order to be able to correct the double errors associated with the syndromes SO, S1, S2, S3 and S4 previously explained, the first five columns 1 100 of the matrix HS correspond to these five syndromes and the remaining columns 1 101 which are not used are filled with zeros.
La figure 12 présente un exemple de matrice programmable de correction des erreurs multiples MapME. Pour chaque syndrome de correction d'erreurs multiples contenu dans la matrice de syndromes d'erreurs multiples HS, il faut ensuite configurer une matrice de correction MapME des bits associés. Certains éléments peuvent être figés dans l'implémentation de manière à trouver le meilleur compromis entre flexibilité et complexité d'implémentation. Ces éléments, notés Z, sont figés en dur, par exemple à 0, et ne sont pas programmables. Le reste est programmable à 1 ou 0. Dans cette matrice, nous voyons par exemple qu'au syndrome d'erreurs multiples SO seront associées les corrections de D3 et D12.Figure 12 shows an example of a MapME multi-error correction matrix. For each multiple error correction syndrome contained in the multiple error syndrome matrix HS, then a MapME correction matrix of the associated bits must be configured. Some elements can be fixed in the implementation in order to find the best compromise between flexibility and complexity of implementation. These elements, denoted Z, are fixed hard, for example at 0, and are not programmable. The rest is programmable to 1 or 0. In this matrix, we see for example that the syndrome of multiple SO errors will be associated corrections of D3 and D12.
Les bits de redondance ne sont pas corrigés dans cet exemple, mais ceci peut être réalisé de la même manière que pour les bits de données.The redundancy bits are not corrected in this example, but this can be done in the same way as for the data bits.
De plus, tous les éléments du vecteur de bits MapSE sont mis au niveau 1 logique pour supporter la correction de toutes les erreurs simples.In addition, all elements of the MapSE bit vector are set to logical level 1 to support the correction of all simple errors.
La stratégie de protection à laquelle sont associées les matrices H, HS et MapME et le vecteur de bits MapSE remplit donc son rôle d'amélioration du rendement et offre une capacité SEC-DED sur tous les mots. Elle participe donc à l'amélioration de la fiabilité du système électronique. Il peut exister de multiples configurations possibles pour répondre à de multiples cas d'erreurs. Le choix du nombre de bits de données et de redondance est réalisé lors de la conception du dispositif programmable et peut être quelconque.The protection strategy associated with the H, HS and MapME matrices and the MapSE bit vector thus fulfills its performance-enhancing role and provides a SEC-DED capability on all words. It is therefore involved in improving the reliability of the electronic system. There may be multiple possible configurations to respond to multiple error cases. The choice of the number of data bits and redundancy is made during the design of the programmable device and can be arbitrary.
Il est intéressant de noter que des erreurs peuvent être masquées. Il faut donc dans ce cas traiter les syndromes correspondant à toutes les combinaisons d'erreur de chaque groupe d'erreurs multiples. Par exemple, une erreur triple touchant 3 bits de donnée D1 ,D2,D3 peut se présenter sous la forme de 3 erreurs simples ou de 3 erreurs doubles D1 ,D2 ; D1 , D3 ; D2,D3 ou d'une erreur triple D1 ,D2,D3. Le nombre de syndromes d'erreurs multiples augmente alors rapidement.
La programmation peut également être simplifiée. Plusieurs éléments de configuration peuvent être programmés par un seul ou quelques bits mémorisés. Ceci permet ainsi de compresser les données de configuration et ainsi de réduire la surface de mémoire correspondante nécessaire.It is interesting to note that errors can be hidden. It is therefore necessary in this case to treat the syndromes corresponding to all the error combinations of each group of multiple errors. For example, a triple error affecting 3 data bits D1, D2, D3 may be in the form of 3 simple errors or 3 double errors D1, D2; D1, D3; D2, D3 or a triple error D1, D2, D3. The number of multiple error syndromes then increases rapidly. Programming can also be simplified. Several configuration items can be programmed by one or a few stored bits. This thus makes it possible to compress the configuration data and thus reduce the corresponding corresponding memory area.
La figure 13 donne un exemple de système d'interconnexion de données numériques. Dans cet exemple, deux modules source 1300, 1301 génèrent des mots de code de 8 bits. Ces modules source correspondent, par exemple, à des modules compris dans une ou plusieurs puces électroniques, lesdites sources comprenant notamment des moyens d'encodage de manière à pouvoir générer des mots de code à partir des mots de données utiles en y ajoutant de la redondance. Les mots de codes peuvent être transmis à différents modules de destination 1302, 1303 comprenant des moyens de décodage, c'est-à-dire des moyens pour détecter et corriger des erreurs en s'appuyant sur les informations de redondance associées aux données utiles. Ces modules peuvent être positionnés au sein de la même puce que celle comportant l'une des sources ou bien dans une puce différente. Lorsque les modules source et destination sont implémentés dans une même puce, les mots de code sont transmis, par exemple, à l'aide d'un réseau d'interconnexion interne à ladite puce, ce réseau étant habituellement désigné par l'expression anglo-saxonne « Network on Chip ». Lorsque les modules source et destination sont positionnés dans différentes puces, les mots de code empruntent alors un réseau d'interconnexion externe habituellement désigné par l'expression anglo-saxonne « Off-Chip Network». L'exemple de la figure montre un cas ou deux modules source 1300, 1301 peuvent transmettre des mots de code à deux modules de destination 1302, 1303 à l'aide d'un réseau d'interconnexion pouvant être interne ou externe. Ce réseau d'interconnexion est composé de différents ensembles de liens électroniques 1317, 1318, 1319, 1320, 1321 et de nœuds 1304, 1305 permettant de configurer le chemin qu'empruntent les mots de code de l'un ou l'autre module source 1300, 1301 pour atteindre l'un ou l'autre module de destination 1302, 1303.Figure 13 gives an example of a digital data interconnect system. In this example, two source modules 1300, 1301 generate 8-bit code words. These source modules correspond, for example, to modules included in one or more electronic chips, said sources notably comprising encoding means so as to be able to generate code words from the useful data words by adding redundancy to them. . The codewords may be transmitted to different destination modules 1302, 1303 including decoding means, i.e., means for detecting and correcting errors based on the redundancy information associated with the payload. These modules can be positioned in the same chip as that containing one of the sources or in a different chip. When the source and destination modules are implemented in the same chip, the code words are transmitted, for example, using an interconnection network internal to said chip, this network being usually designated by the English expression. Saxon "Network on Chip". When the source and destination modules are positioned in different chips, the code words then take an external interconnection network usually designated by the English expression "Off-Chip Network". The example of the figure shows a case where two source modules 1300, 1301 can transmit code words to two destination modules 1302, 1303 by means of an interconnection network that can be internal or external. This interconnection network is composed of different sets of electronic links 1317, 1318, 1319, 1320, 1321 and nodes 1304, 1305 making it possible to configure the path taken by the code words of one or the other source module. 1300, 1301 to reach either destination module 1302, 1303.
Un système d'interconnexion est donc un système composé d'au moins un module source de données comprenant des moyens d'encodage, d'au moins un module de destination comprenant des moyens de décodage,
et d'au moins un réseau d'interconnexion composé notamment de liens électroniques et d'au moins un nœud, ledit système d'interconnexion permettant de transmettre des mots de code générés par un ou plusieurs modules sources vers un ou plusieurs modules de destination. Les liens électroniques sont par exemple composés d'une ou plusieurs lignes électroniques, certaines permettant de transmettre les bits de données et d'autres les bits de redondance, ces dernières étant qualifiées dans la suite de la description de ressources de transmission complémentaires. Les lignes électroniques composant les ressources de transmission complémentaires peuvent être, selon le mode de codage choisi, soit des lignes électroniques associées aux bits de vérifications d'un code ECC, soit des lignes électroniques de secours remplaçant des lignes électroniques défectueuses. Les nœuds réalisent un routage des bits de manières à acheminer les mots de codes vers le ou les modules de destination ciblés. Les bits de redondance sont transmis en utilisant des ressources de transmission complémentaires mises en œuvre au sein du réseau d'interconnexion. L'utilisation de ces ressources complémentaires est choisie en tenant compte des erreurs introduites par les différents liens de transmission et/ou les nœuds. Ainsi le choix d'un mode de codage, c'est-à- dire le choix d'utiliser un code ECC donné et/ou des lignes électroniques de secours, est effectué en fonction des défauts détectés dans le système d'interconnexion.An interconnection system is therefore a system consisting of at least one data source module comprising encoding means, at least one destination module comprising decoding means, and at least one interconnection network composed in particular of electronic links and at least one node, said interconnection system making it possible to transmit codewords generated by one or more source modules to one or more destination modules. The electronic links are for example composed of one or more electronic lines, some for transmitting the data bits and others the redundancy bits, the latter being qualified in the following description of additional transmission resources. The electronic lines comprising the additional transmission resources may be, depending on the coding mode chosen, either electronic lines associated with the checking bits of an ECC code, or electronic backup lines replacing faulty electronic lines. The nodes perform bit routing in ways to route the codewords to the targeted destination module (s). The redundancy bits are transmitted using complementary transmission resources implemented within the interconnection network. The use of these additional resources is chosen taking into account the errors introduced by the different transmission links and / or the nodes. Thus the choice of a coding mode, that is to say the choice to use a given ECC code and / or backup electronic lines, is made according to the defects detected in the interconnection system.
La mise en œuvre du mode de codage choisi permet de corriger les erreurs survenant sur le mot codé transporté notamment à cause des liens électroniques ou des nœuds pouvant comporter des défauts. De plus, la traversée d'un chemin comportant plusieurs liens ou/et nœuds implique que les erreurs se cumulent de lien en lien (ou/et de nœuds en nœuds).The implementation of the encoding mode chosen makes it possible to correct the errors occurring on the coded word transported in particular because of the electronic links or the nodes which may have defects. In addition, crossing a path with multiple links and / or nodes implies that the errors accumulate from link to link (or / and nodes to nodes).
Par exemple, un mot de code émis par le premier module source 1300 peut emprunter un premier chemin 1314 pour atteindre le premier module de destination 1302. Pour cela, le mot de code est, par exemple, transmis dans un premier ensemble de liens 1317 introduisant une erreur sur le huitième bit 1306, puis un second ensemble de liens 1320 introduisant une erreur sur le septième bit 1309, les deux ensembles étant reliés par un nœud 1305. Le mot de code reçu 131 1 par le module de destination peut donc cumuler deux erreurs sur les septième et/ou le huitième bits. Le mode de codage mis en
œuvre pour ce chemin devra par conséquent être configuré de manière à au moins corriger les deux erreurs simples et l'erreur double dont elles font partie.For example, a code word transmitted by the first source module 1300 may take a first path 1314 to reach the first destination module 1302. For this, the code word is, for example, transmitted in a first set of links 1317 introducing an error on the eighth bit 1306, then a second set of links 1320 introducing an error on the seventh bit 1309, the two sets being connected by a node 1305. The received code word 131 1 by the destination module can thus cumulate two errors on the seventh and / or eighth bits. The encoding mode set This path must therefore be configured to at least correct the two simple errors and the double error they are part of.
Pour atteindre le deuxième module de destination 1303 en partant du premier module source 1300, un autre chemin 1315 est utilisé par les mots de code. Ce chemin est composé de trois ensembles de liens, le premierTo reach the second destination module 1303 from the first source module 1300, another path 1315 is used by the codewords. This path is composed of three sets of links, the first
1317 introduisant une erreur sur le huitième bit 1306, le second 1319 n'introduisant pas d'erreur 1308 et le troisième 1321 introduisant une erreur sur le troisième bit 1310. Le mot de code reçu 1312 par le second module de destination 1303 peut être affecté par une des erreurs simples ou l'erreur double correspondant aux deux erreurs simples. Le mode de codage mis en œuvre pour ce chemin devra par conséquent être configuré de manière à au moins corriger les trois combinaisons d'erreurs.1317 introducing an error on the eighth bit 1306, the second 1319 not introducing an error 1308 and the third 1321 introducing an error on the third bit 1310. The received codeword 1312 by the second destination module 1303 can be assigned by one of the simple errors or the double error corresponding to the two simple errors. The encoding mode implemented for this path must therefore be configured to at least correct the three combinations of errors.
Un autre exemple de transmission d'un mot de données est illustré. Pour atteindre le deuxième module de destination 1303 en partant du deuxième module source 1301 , un chemin 1316 composé d'au moins deux ensembles de liens est utilisé par les mots de code, le premier ensembleAnother example of transmission of a data word is illustrated. To reach the second destination module 1303 starting from the second source module 1301, a path 1316 composed of at least two sets of links is used by the code words, the first set
1318 pouvant introduire deux erreurs sur les premier et sixième bits du mot 1307, le second ensemble 1321 pouvant introduire une erreur 1310 sur le troisième bit. Le mot de code reçu 1313 par le second module de destination 1303 peut avoir une des trois erreurs simples, une erreur double correspondant à une paire des erreurs simples ou une erreur triple formée par les trois erreurs simples. Le mode de codage mis en œuvre devra par conséquent en tenir compte. En connaissant les chemins, c'est-à-dire les liens empruntés par un mot pour aller d'un module source à un module de destination, et leurs défauts il est possible de déduire quelles sont les erreurs simples et multiples pouvant se produire et donc de choisir le mode de codage le plus approprié et les configurations des encodeurs et décodeurs compris dans les modules source et de destination.1318 can introduce two errors on the first and sixth bits of the word 1307, the second set 1321 can introduce an error 1310 on the third bit. The received codeword 1313 by the second destination module 1303 may have one of three simple errors, a double error corresponding to a pair of simple errors or a triple error formed by the three simple errors. The mode of coding implemented must therefore take this into account. By knowing the paths, that is to say the links borrowed by a word to go from a source module to a destination module, and their faults it is possible to deduce what are the simple and multiple errors that can occur and therefore to choose the most appropriate coding mode and the configurations of the encoders and decoders included in the source and destination modules.
Un module source ou un module de destination peut être une mémoire telle que décrite précédemment dans la description. Il peut être mise en œuvre, par conséquent, une double protection, à la fois au niveau du stockage des mots données, mais aussi au niveau de leur transmission.
A source module or a destination module may be a memory as described above in the description. It can be implemented, therefore, a double protection, both at the storage of the given words, but also at the level of their transmission.
Claims
REVENDICATIONS
1 - Procédé de protection d'au moins un circuit électronique traitant des données numériques caractérisé en ce qu'une configuration de protection (303, 304) contre les erreurs introduites sur lesdites données est déduite (300) d'une cartographie (302) représentative des défauts dudit circuit, ladite configuration de protection correspondant à la configuration d'au moins un codeur et un décodeur, le codeur générant des mots de code composés de bits de données auxquels sont ajoutés des bits de redondance, ces bits de redondance étant générés de manière à ce que les erreurs résultant des défauts indiqués par ladite cartographie (302) soient corrigés lors du décodage desdits mots de code, ledit procédé comprenant une étape de détermination des valeurs que prennent les éléments composant une matrice de parité programmable H représentative de la configuration de protection, ladite matrice étant utilisée pour générer des bits de redondance à partir de mots de données numériques, les éléments de ladite matrice étant choisis de manière à atteindre une capacité de correction permettant de corriger au moins les erreurs permanentes et intermittentes résultant des défauts du circuit électronique indiqués par la cartographie.1 - A method of protecting at least one electronic circuit processing digital data characterized in that a protection configuration (303, 304) against the errors introduced on said data is deduced (300) from a cartography (302) representative faults of said circuit, said protection configuration corresponding to the configuration of at least one encoder and a decoder, the encoder generating codewords composed of data bits to which redundancy bits are added, these redundancy bits being generated from so that the errors resulting from the defects indicated by said map (302) are corrected during the decoding of said code words, said method comprising a step of determining the values that the elements comprising a programmable parity matrix H represent representative of the configuration protection, said matrix being used to generate redundancy bits from digital data words, the elements of said matrix being chosen so as to reach a correction capacity making it possible to correct at least the permanent and intermittent errors resulting from the defects of the electronic circuit indicated by the cartography.
2- Procédé selon la revendication 1 caractérisé en ce qu'une étape détermine si une protection de type ECC des données numériques est mise en œuvre, le code ECC étant choisi tel que sa capacité de correction soit suffisante pour corriger au moins les erreurs permanentes et intermittentes résultant des défauts indiqués par la cartographie.2- Method according to claim 1 characterized in that a step determines whether an ECC type protection of the digital data is implemented, the ECC code being chosen such that its correction capacity is sufficient to correct at least the permanent errors and intermittent resulting from the defects indicated by the map.
3- Procédé selon la revendication 2 caractérisé en ce que le code ECC est choisi parmi les codes de type SEC, SEC-DED, DEC- TED, et ayant la capacité de corriger un choix ciblé d'erreurs simples et/ou multiples.
- Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'une partie des éléments de la matrice de parité H n'est pas programmable. - Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte une étape de détermination d'une matrice HS de syndromes d'erreurs multiples, les colonnes de ladite matrice correspondant aux syndromes des erreurs multiples résultant des défauts identifiés dans le circuit électronique. - Procédé selon la revendication 5 caractérisé en ce qu'il comporte une étape de détermination d'une matrice MapME faisant correspondre à chaque syndrome de correction d'erreurs multiples contenu dans la matrice de syndromes d'erreurs multiples HS la localisation des erreurs à corriger. - Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte une étape de mise à jour de la configuration de protection mémorisée. - Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que les informations utilisées pour la programmation des matrices H, MapME, HS sont mémorisées sous forme compressée, lesdites informations étant décompressées avant d'être utilisées. - Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que les mots de données sont encodés de manière à former des mots des code en ajoutant des bits de vérification et des bits de secours aux bits de données en respectant la configuration de protection mémorisée.
- Procédé selon la revendication 9 caractérisé en ce que les mots de code sont décodés en détectant puis en corrigeant les erreurs en tenant compte de la configuration de protection ayant été utilisée lors de l'encodage desdits mot de données. - Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte une étape de détection des défauts du circuit à protéger et de détermination d'une cartographie des défauts, la détection étant effectuée en utilisant l'une des méthodes suivantes : tests et observation du circuit protégé, calculs de statistiques. - Dispositif électronique de configuration et de protection de zones de mémoire, une zone de mémoire (501 ) étant représentée par une matrice de cellules mémoires, un mot de données pouvant être mémorisé par ligne de ladite matrice, ladite zone de mémoire étant composée d'au moins une zone principale et une zone de ressources complémentaires, la zone principale étant destinée à mémoriser les mots de données et la zone de ressources complémentaires étant destinée à mémoriser des bits de redondance associés aux mots de données, ledit dispositif étant caractérisé en ce qu'il comporte des moyens pour déterminer une configuration de protection des mots de données (505) en utilisant le procédé selon l'une quelconque des revendications 1 à 1 1 à partir d'une cartographie des défauts de la zone de mémoire (513), une portion de la zone de ressources complémentaires étant allouée pour mémoriser des bits de vérification d'un code de type ECC (303) et une autre portion de la zone de ressources complémentaires étant allouée en tant que ressources de secours (304). - Dispositif selon la revendication 12 caractérisé en ce que la zone mémoire (501 ) est comprise dans le dispositif.
Système d'interconnexion numérique composé d'au moins un module source (1300, 1301 ) comprenant des moyens d'encodage de manière à générer des mots de code à partir de données utiles, d'au moins un module de destination (1302, 1303) comprenant des moyens pour décoder lesdits mots de code, d'au moins un réseau d'interconnexion composé de liens électroniques (1317, 1318, 1319, 1320, 1321 ) et de nœuds (1304, 1305), une portion desdits liens et desdits nœuds étant appelée ressources de transmission complémentaires et étant utilisées afin de transmettre les bits de redondance des mots de code, les mots de code étant transmis des modules sources vers les modules de destination à l'aide dudit réseau en utilisant des chemins de transmission, ledit système d'interconnexion étant caractérisé en ce que les moyens d'encodage, de décodage et l'utilisation des ressources de transmission complémentaires du réseau d'interconnexion sont configurés selon un mode de codage donné, un mode de codage correspondant à l'utilisation d'un code ECC et/ou de lignes électroniques de secours, ledit mode de codage en utilisant le procédé selon l'une quelconque des revendications 1 à 1 1.
3- Method according to claim 2 characterized in that the ECC code is selected from SEC, SEC-DED, DECED, type codes and having the ability to correct a targeted choice of simple and / or multiple errors. - Method according to any one of the preceding claims characterized in that a part of the elements of the parity matrix H is not programmable. Method according to any one of the preceding claims, characterized in that it comprises a step of determining an HS matrix of multiple error syndromes, the columns of said matrix corresponding to the syndromes of the multiple errors resulting from the defects identified in FIG. electric circuit. - Method according to claim 5 characterized in that it comprises a step of determining a MapME matrix corresponding to each syndrome of multiple error correction contained in the matrix of multiple error syndromes HS the location of the errors to be corrected . - Method according to any one of the preceding claims characterized in that it comprises a step of updating the stored protection configuration. - Method according to any one of the preceding claims characterized in that the information used for programming the H, MapME, HS matrices are stored in compressed form, said information being decompressed before being used. Method according to one of the preceding claims, characterized in that the data words are encoded to form code words by adding check bits and spare bits to the data bits in accordance with the stored protection pattern. . - Method according to claim 9 characterized in that the codewords are decoded by detecting and then correcting the errors taking into account the protection configuration that was used during the encoding of said data word. - Method according to any one of the preceding claims, characterized in that it comprises a step of detecting defects of the circuit to be protected and of determining a map of the defects, the detection being carried out using one of the following methods: tests and observation of the protected circuit, calculations of statistics. - An electronic device for configuring and protecting memory areas, a memory area (501) being represented by an array of memory cells, a data word that can be stored per line of said matrix, said memory area being composed of at least one main area and one complementary resource area, the main area for storing the data words and the additional resource area for storing redundancy bits associated with the data words, said device being characterized in that it comprises means for determining a protection configuration of the data words (505) by using the method according to any one of claims 1 to 1 1 from a mapping of the defects of the memory area (513), a portion of the complementary resource area being allocated to store check bits of an ECC type code (303) and a another portion of the complementary resource area being allocated as backup resources (304). - Device according to claim 12 characterized in that the memory zone (501) is included in the device. Digital interconnect system consisting of at least one source module (1300, 1301) comprising encoding means for generating code words from payload data, at least one destination module (1302, 1303) ) comprising means for decoding said code words, of at least one interconnection network consisting of electronic links (1317, 1318, 1319, 1320, 1321) and nodes (1304, 1305), a portion of said links and said links nodes being called complementary transmission resources and being used to transmit the redundancy bits of the code words, the code words being transmitted from the source modules to the destination modules using said network using transmission paths, said interconnection system being characterized in that the means for encoding, decoding and the use of the complementary transmission resources of the interconnection network are configured according to a coding mode given, a coding mode corresponding to the use of an ECC code and / or backup electronic lines, said coding mode using the method according to any one of claims 1 to 1 1.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0902225 | 2009-05-07 | ||
FR0902225A FR2945393B1 (en) | 2009-05-07 | 2009-05-07 | METHOD FOR PROTECTING ELECTRONIC CIRCUITS, DEVICE AND SYSTEM IMPLEMENTING THE METHOD |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010128068A1 true WO2010128068A1 (en) | 2010-11-11 |
Family
ID=41625197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2010/056072 WO2010128068A1 (en) | 2009-05-07 | 2010-05-05 | Method for protecting electronic circuits, and device and system implementing the method |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2945393B1 (en) |
WO (1) | WO2010128068A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2466473A1 (en) * | 2010-12-20 | 2012-06-20 | Lsi Corporation | Data manipulation during memory backup |
EP2466464A3 (en) * | 2010-12-20 | 2012-06-27 | Lsi Corporation | Data manipulation at power fail |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037299A1 (en) * | 2001-08-16 | 2003-02-20 | Smith Kenneth Kay | Dynamic variable-length error correction code |
US20050172179A1 (en) * | 2004-01-29 | 2005-08-04 | Brandenberger Sarah M. | System and method for configuring a solid-state storage device with error correction coding |
WO2006013529A1 (en) * | 2004-08-02 | 2006-02-09 | Koninklijke Philips Electronics N.V. | Data storage and replay apparatus |
US20080086677A1 (en) * | 2006-10-10 | 2008-04-10 | Xueshi Yang | Adaptive systems and methods for storing and retrieving data to and from memory cells |
WO2008109586A1 (en) * | 2007-03-08 | 2008-09-12 | Intel Corporation | A method, apparatus, and system for dynamic ecc code rate adjustment |
-
2009
- 2009-05-07 FR FR0902225A patent/FR2945393B1/en not_active Expired - Fee Related
-
2010
- 2010-05-05 WO PCT/EP2010/056072 patent/WO2010128068A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037299A1 (en) * | 2001-08-16 | 2003-02-20 | Smith Kenneth Kay | Dynamic variable-length error correction code |
US20050172179A1 (en) * | 2004-01-29 | 2005-08-04 | Brandenberger Sarah M. | System and method for configuring a solid-state storage device with error correction coding |
WO2006013529A1 (en) * | 2004-08-02 | 2006-02-09 | Koninklijke Philips Electronics N.V. | Data storage and replay apparatus |
US20080086677A1 (en) * | 2006-10-10 | 2008-04-10 | Xueshi Yang | Adaptive systems and methods for storing and retrieving data to and from memory cells |
WO2008109586A1 (en) * | 2007-03-08 | 2008-09-12 | Intel Corporation | A method, apparatus, and system for dynamic ecc code rate adjustment |
Non-Patent Citations (4)
Title |
---|
H. STAPPER; HSING-SAN: "Synergistic Fault-Tolerance for Memory Chips", IEEE TRANS. COMPUTERS, vol. 41, no. 9, 1992, pages 1078 - 1087 |
M. HORIGUCHI: "Redundancy Techniques for High-Density DRAMs", IEEE INT. CONF. INNOVATIVE SYSTEMS SILICON, 1997, pages 22 - 29 |
S. BORKAR: "Designing Reliable Systems from Unreliable Components: The Challenges of Transistor Variability and Degradation", IEEE MICRO, vol. 25, no. 6, 2005, pages 10 - 16 |
S. E. SCHUSTER: "Multiple word/bit line redundancy for semiconductor memories", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 13, no. 5, October 1978 (1978-10-01), pages 698 - 703 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2466473A1 (en) * | 2010-12-20 | 2012-06-20 | Lsi Corporation | Data manipulation during memory backup |
EP2466464A3 (en) * | 2010-12-20 | 2012-06-27 | Lsi Corporation | Data manipulation at power fail |
US8738843B2 (en) | 2010-12-20 | 2014-05-27 | Lsi Corporation | Data manipulation during memory backup |
US9043642B2 (en) | 2010-12-20 | 2015-05-26 | Avago Technologies General IP Singapore) Pte Ltd | Data manipulation on power fail |
Also Published As
Publication number | Publication date |
---|---|
FR2945393B1 (en) | 2015-09-25 |
FR2945393A1 (en) | 2010-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8635508B2 (en) | Systems and methods for performing concatenated error correction | |
US10564866B2 (en) | Bank-level fault management in a memory system | |
FR2512568A1 (en) | SYSTEM FOR TRANSFERRING BINARY DATA BY A PLURALITY OF CHANNELS USING AN ENCODING CODER THROUGH CONVOLUTION | |
EP2264596A1 (en) | Method for detecting a fault-injection attack of a memory device and corresponding memory device | |
EP2394366B1 (en) | Error-correcting encoding method with total parity bits | |
FR2981472A1 (en) | DEVICE AND METHOD FOR PRODUCING A BIT SEQUENCE | |
FR2900294A1 (en) | Low density parity check decoder`s input/channel memory loading method for set top box, involves carrying out memory accesses in page mode for writing binary word streams in respective zones of input/channel memory by controlling module | |
WO2011157568A1 (en) | Method of protecting a configurable memory against permanent and transient errors and related device | |
WO2003038620A2 (en) | Data storage method with error correction | |
WO2010128068A1 (en) | Method for protecting electronic circuits, and device and system implementing the method | |
FR2808904A1 (en) | Memory access system for memory sub-systems, e.g. dual in line memory modules or DIMMS that allows faulty memory modules to be detected and exchanged without loss of data and without switching off the computer | |
WO2015197979A1 (en) | Method for the automated manufacture of an electronic circuit suitable for detecting or masking faults by temporal redundancy, and associated computer programme and electronic circuit | |
FR2891419A1 (en) | Block decoder e.g. channel decoder, for digital satellite television receiver, has decoding unit processing data blocks stored in input memory, and control unit multiplexing blocks as input to decoding unit by recording and reading blocks | |
FR2992504A1 (en) | DEVICE AND METHOD FOR CORRECTING ERRORS IN A CODEWORD | |
FR2914447A1 (en) | ELECTRONIC DATA SHIFTING DEVICE PARTICULARLY FOR ENCODING / DECODING WITH LDPC CODE | |
EP2786497B1 (en) | Method for maximising the decoding capacity of an error correcting code using supplementary syndromes | |
EP1300953A1 (en) | Highly efficient error correction and/or error detection code | |
FR2808903A1 (en) | MEMORY ACCESS SYSTEM | |
EP4089557B1 (en) | Method for executing a binary code by a microprocessor | |
FR2890804A1 (en) | Binary digit block storage device for binary digit block decoding system, has storage elements structured to store block of category or block of another category or several blocks of latter category simultaneously | |
EP4202935A1 (en) | Electroforming method using inversion invariant linear ecc and related device | |
EP2223216B1 (en) | Reliability service device, electronic system and method implementing at least one such device and computer program product making it possible to implement such a method | |
WO2022268726A1 (en) | Method for detecting an error in an electronic memory | |
EP1451688A2 (en) | Circuit architecture protected against perturbations | |
FR2920894A1 (en) | Ill-timed logic hazard i.e. single event upset, detecting and correcting architecture for memory register of e.g. aircraft, has elements storing bits of row and column parts calculated on data bits associated to row and column, respectively |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10716351 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10716351 Country of ref document: EP Kind code of ref document: A1 |