CSCI 4717/5717 Computer Architecture

Slides:



Advertisements
Similar presentations
Computer Engineering II
Advertisements

Computer Organization and Architecture
Computer Organization and Architecture
ECE 3110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices XOR, Parity Circuits, Comparators.
+ CS 325: CS Hardware and Software Organization and Architecture Internal Memory.
Combinational Logic and Verilog. XORs and XNORs XOR.
Parity Generator and Checker
Parity. 2 Datasheets TTL:  CMOS: 
Quantum Error Correction SOURCES: Michele Mosca Daniel Gottesman Richard Spillman Andrew Landahl.
Error Detection / Correction
Computer Organization and Architecture
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Hao Ji.
Error Detection/Correction Section 1.7 Section 3.9 Bonus Material: Hamming Code.
Hamming It Up with Hamming Codes CSE 461 Section Week 3.
Error Detection and Correction
Digital Components and Combinational Circuits Sachin Kharady.
Chapter 5 Internal Memory. Semiconductor Memory Types.
Internal Memory.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Copyright © Curt Hill Error detection and correction Techniques to Increase the Reliability.
Memory Cell Operation.
Implicit-Storing and Redundant- Encoding-of-Attribute Information in Error-Correction-Codes Yiannakis Sazeides 1, Emre Ozer 2, Danny Kershaw 3, Panagiota.
VLSI AND INTELLIGENT SYTEMS LABORATORY 12 Bit Hamming Code Error Detector/Corrector December 2nd, 2003 Department of Electrical and Computer Engineering.
ERROR DETECTING AND CORRECTING CODES -BY R.W. HAMMING PRESENTED BY- BALAKRISHNA DHARMANA.
1 © Unitec New Zealand CRC calculation and Hammings code.
Errors!. Where do errors occur? Anywhere data is transferred, processed, stored, etc. Input user error Storage magnetic hard drive errors physical tampering.
Error Detection and Correction – Hamming Code
Data Communications and Networking
Error-Detecting and Error-Correcting Codes
Digital Circuits Introduction Memory information storage a collection of cells store binary information RAM – Random-Access Memory read operation.
ECE 101 An Introduction to Information Technology Information Coding.
Computer Architecture Error Correcting Codes Ralph Grishman Oct (Text pp and B-65-67) NYU.
1 Product Codes An extension of the concept of parity to a large number of words of data 0110… … … … … … …101.
Gunjeet Kaur Dronacharya Group of Institutions. Outline I Random-Access Memory Memory Decoding Error Detection and Correction Read-Only Memory Programmable.
Combinational Logic Design
Chapter 5 - Internal Memory 5.1 Semiconductor Main Memory 5.2 Error Correction 5.3 Advanced DRAM Organization.
Memory and Programmable Logic
2.8 Error Detection and Correction
William Stallings Computer Organization and Architecture 7th Edition
Hamming Code In 1950s: invented by Richard Hamming
Cyclic Redundancy Check (CRC)
Character coding schemes
Error detection and correction
ERROR DETECTION AND CORRECTION
Error Correcting Code.
Error Detection and Correction
Even/odd parity (1) Computers can sometimes make errors when they transmit data. Even/odd parity: is basic method for detecting if an odd number of bits.
William Stallings Computer Organization and Architecture 7th Edition
Coding Theory Dan Siewiorek June 2012.
Dhanushiya. R I YEAR BSc COMPUTER TECHNOLOGY.  Error is a condition when the output information does not match with the input information. During transmission,
William Stallings Computer Organization and Architecture 8th Edition
William Stallings Computer Organization and Architecture 7th Edition
Sequential circuits and Digital System Reliability
William Stallings Computer Organization and Architecture 8th Edition
BIC 10503: COMPUTER ARCHITECTURE
Error Detection / Correction
William Stallings Computer Organization and Architecture 8th Edition
Reliability and Channel Coding
parity bit is 1: data should have an odd number of 1's
Error Detection and Correction
2.8 Error Detection and Correction
Presentation transcript:

CSCI 4717/5717 Computer Architecture Topic: Error Detection & Correction Reading: Stallings, Section 5.2

Error Correction in Memory Types of errors: hard or soft Hard Failure – Permanent defect caused by Harsh environmental abuse (including static electricity) Manufacturing defect Wear such as trace erosion Soft Error Random, non-destructive Caused by electrical or EM/radioactive glitches No permanent damage to memory

Error Detection & Correction Additional information must be stored to detect these errors When M bits of data are stored, they are run through function f where a K bit code is created M+K bits are then stored in memory When data is read out, it is once again run through function f and the resulting K bits of code are compared with the stored K bits of code In some cases, the code can be corrected (error correcting codes) In all cases, and error code is generated

Error Correcting Code Function

Hamming Error Correction Code One way to detect specific bit errors is to use multiple parity bits, each bit responsible for the parity of a smaller, overlapping portion of the data A flipped bit in the data would show up as a parity error in the overlapping groups of which it was a member and not in the other groups This would handle single-bit corrections

4-bit Hamming Code Below is an example of a 4-bit word broken into 3 groups; each group has a parity bit to generate even parity. Dn represent data bits while Pn represent parity bits D3=1 D2=0 D1=1 D0=1 P0 P1 P2 Group A 1 Group B Group C

4-bit Hamming Code (continued) Can be represented graphically using three intersecting circles.

4-bit Hamming Code (continued) Areas are defined as: A and B, but not C A and C, but not B B and C, but not A A and B and C Each non-intersecting area contains a parity bit to make it and the three intersecting areas in a single circle have even parity. A change in only one area will make parity odd in 2 or all 3 of the circles indicating which intersection changed.

General Single-Bit Error Correction The mechanics of the typical error correction/detection system are created with XOR gates Odd number of ones input to an XOR  1 output Even number of ones input to an XOR  0 output Upon data retrieval, two K-bit values are generated: The stored K-bit value The K-bit value generated from the stored data A bit-by-bit comparison is performed on these two values generating a K-bit result 0’s in bit positions where there is no error 1’s in bit positions where two bits disagree K-bit result is called a syndrome word

Generation of Syndrome Word

Syndrome Word All zeros means that the data was successfully retrieved For data with M bits and K code bits, then there are M+K possible single bit errors, i.e., there could be an error in the data OR the K-bit code For a K bit syndrome word, there are 2K-1 (minus one for the no error case) possible values to represent single-bit errors Therefore, for the system to uniquely identify bit errors, 2K-1 > M+K

Single Error Correcting (SEC) Code Example Assume M=8 First, how big does K have to be? K=3: 23-1 > 8+3? (7 is not > 11) K=4: 24-1 > 8+4? (15 is > 12)

SEC Code Example (continued) Next, decide what the values of the syndrome word represent 0 = no errors in syndrome word or data Only one bit of syndrome word set to one (1000, 0100, 0010, or 0001) = error was in syndrome word and data needs no correction Multiple bits of syndrome word set to one = digit represented by syndrome word identifies which bit of data was flipped and needs to be corrected

SEC Code Example (continued) The table below is used to identify which bits of the M+K bits of the combined data and syndrome word are associated with which possible values of the syndrome word. M+K Bit position 12 11 10 9 8 7 6 5 4 3 2 1 Position number 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Data bits D8 D7 D6 D5 D4 D3 D2 D1 Code bits C8 C4 C2 C1

SEC Code Example (continued) We need a system such that the XOR-ing of the stored code or check bits with the code or check bits calculated identifies the position number from the table above. This means that when a bit changes in the data, then ones need to appear in the digits identifying that position. Each code bit C8, C4, C2, and C1 is calculated by XOR-ing all of the bits in that position that have a 1.

SEC Code Example (continued) C8 = D8  D7  D6  D5 C4 = D8  D4  D3  D2 C2 = D7  D6  D4  D3  D1 C1 = D7  D5  D4  D2  D1

Single Error Correcting, Double Error Detecting (SEC-DED) Code Double error detection will not correct double errors, but it will see if a double error has occurred. Adds additional bit for even parity to the M+K bits of the data and check code If one bit changed, the change caused parity to go from even to odd. Changing it back will restore parity If two bits changed, parity stayed even and a correction will force parity to go to odd indicating a double error.

SEC-DED Example