Explore chapters and articles related to this topic
Soft-Error Mitigation Approaches for High-Performance Processor Memories
Published in Tomasz Wojcicki, Krzysztof Iniewski, VLSI: Circuits for Emerging Applications, 2017
The most commonly used ECC is based on Hsiao codes [37] which add r check bits for every group of k data bits forming a k + r bit code word. A single error correction, double error detection code requires all legal code words to be at least four bit changes apart, that is, they have a Hamming distance of four. Codes capable of correcting multiple bit errors are starting to be used in L2 and L3 caches as they protect not only against MBUs, but also against sporadic bit failures, for example, bits that pass IC testing but become unstable over time. Before the data is written into the memory, the check bits are calculated and subsequently stored with the data. When data is read, the check bits are recalculated and exclusive ORed with the stored check bits to generate a syndrome code that is also r bits in length. If all the syndrome code bits are zero, then no single or double bit error has occurred and the data is assumed to be correct. Note that this may not be true—if enough bits have been upset to transform one legal code word into another, then an SDC has occurred. The syndrome is decoded to point to the incorrect bit, which is inverted. The primary cost of EDAC is that it generally requires a read, modify, and write cycle to insert data into a code word. L2 caches nearly always have such a buffer, but small embedded microprocessors rarely do.
Data Communication
Published in Sunit Kumar Sen, Fieldbus and Networking in Process Automation, 2017
Linear block codes are a form of block codes that are employed for both error detection and correction. For such a linear block code, the XORing of two valid code words would give rise to another valid codeword. Parity check code and Hamming code are some examples of linear block codes. Parity check code is an error-checking code and it has its own drawbacks and is not used in noisy environments. A Hamming code can correct a single error or detect a double error. It can also detect a burst error. A cyclic code is a special type of linear block code in which if a codeword is cyclically shifted, it would result in another codeword. Cyclic redundancy code (CRC) is a type of cyclic code. If automatic repeat request (ARQ) protocol is used in conjunction with CRC code, then it becomes very effective in reducing the BER of a message. A CRC-16 code may attain one undetected error in every 1014 bits.
Computer Engineering
Published in Arun G. Phadke, Handbook of Electrical Engineering Calculations, 2018
Peter Athanas, Yosef Tirat-Gefen
The Hamming code is a self-correcting code that can detect and correct a single error. To accomplish both error detection and error correction, additional redundant data bits are appended to each transmitted word. At the receiver end, the redundant bits are used to determine whether an error has occurred (whether any one of the bits in the received word has flipped). If so, the redundant data can be used to determine which bit is faulty. Once determined, the faulty bit can be corrected and the word restored to its original transmitted state. The first step in this process is referred to as error detection, and the second is referred to as error correction.
Neural network detector with sparse codes for spin transfer torque magnetic random access memory
Published in Cogent Engineering, 2023
Spintronics-based memories have potential errors due to the sensitivity of the spin states to external perturbations. Hamming codes or BCH codes (Jiang et al., 2022; Zhang et al., 2023) are commonly used to correct such errors. Moreover, other error-correcting codes have been researched to enhance the performance of non-volatile memories (K. Cai & Schouhamer Immink, 2017; Everspin Technologies MR4A16B Features, 2021). It has been reported that conventional error-correction codes (ECCs), such as Hamming and BCH codes, offer the same error-correcting capability for both bit-flipping directions (Wen et al., 2013). Modulation codes are already widely used in next-generation data storage systems (C. D. Nguyen, 2020; C. D. Nguyen et al., 2021; Shao et al., 2018). They are regarded as one of the best approaches to overcoming the AWE and unknown offset challenges.
The Los Alamos Computing Facility During the Manhattan Project
Published in Nuclear Technology, 2021
Probably the most important consequence of the Los Alamos computing facility was the experience gained by the staff. Frankel and Nelson formed one of the earliest computer consulting firms in California in 1947 and were heavily involved in starting the small computer industry on the West Coast. Von Neumann was a major figure in starting the large computer industry on the East Coast, defining the von Neumann computer architecture that is still fundamental today. Metropolis led the effort to build a von Neumann machine at Los Alamos, the MANIAC. John Kemeny, one of the SED PCAM operators, was a co-inventor of the BASIC programming language. Richard W. Hamming, who joined Group T-6 in April 1944, went on to Bell Laboratories, where he made many contributions to computing, including the first error-correcting code to fix parity errors.
Implementation of Novel Block and Convolutional Encoding Circuit Using FS-GDI
Published in IETE Journal of Research, 2023
Mohsen A. M. El-Bendary, O. Al-Badry, A. E. Abou-El. Azm
Hamming codes are error control schemes; these codes can correct single-bit errors and detect two errors. It is widely used in various applications such as satellites and computer networks [33]. Hamming codes have been implemented in Ref. [34], using CMOS logic circuit in 250 nm technology node with 3 and 5 parity bits. Tanner EDA tool is utilized for implementing and testing these Hamming codes. Simulation experiments of these presented Hamming codes showed that, codes with check-bits = 3 consumed power 4.75e−4 (W) and 5.17e−3 for 5 parity bits, while the delay was 8.82e−10 (S) for 3 bits and 4.90e−8 (S) for 5 bits.