20121002

Error Correcting Code..


 Error Correcting Code


The Application of computer software began to expand in several businesses and daily life, and that software requires significant components in order to get sufficient computer application. A memory is a one of those significant components. This mini-project comes to show how memory errors happened, how to detect these errors and how to correct them?. The mini-project idea is to explain function of Error Correcting Code (ECC). The main tasks of this mini-project will be done in four parts. The first part is showing memory system in computing machine, and then classifying memories. The second part is showing memory errors. The third part is explaining ways of errors detection in the ECC. The fourth part is going through errors correction in the ECC.


Chapter 1: Introduction
Memories are important hardware in any computing machine. It is used to hold data and instructions. Sometimes, errors occur in the data on the memory as a software problem. The solution of this problem must be software which can fix these errors. The software, which is required, is a code.

1.1  Computer Software
Software is a collection of computer programs that perform different tasks on a computer system. Computer software consists of a machine language that consists of groups of binary values, which specify processor instructions*.There are different types of computer software. The major types are:

1.      Programming Software: is one of the most commonly known and popularly used forms of computer software.
2.      System Software:  is a collection of operating systems; devise drivers, servers, windowing systems and utilities.
3.      Application Software: It enables the users to do specific tasks.
4.      Utility Software: helps in the management of computer hardware and application software.
5.      Data Backup and Recovery Software: preserve the original data and allow an easy retrieval of the backed up data.


Computer software are widely popular today and hence we cannot imagine a world of computers without them.
1.2  Objective of This Report
The objective of this reportis to highlight memory errors, errors detection and errors correction and also, to present functionality of errors correcting code (ECC). 

1.3  Why and where this project is useful
The errors correcting code (ECC) is a method used to detect and correct errors introduced during storage or transmission of data. Certain kinds of RAM chips inside a computer implement this technique to correct data errors and are known as ECC Memory. 

1.4  Report Structure
This report contains four chapters including the introduction. Each one of these chapters will be described in the following.Chapter two talks about the memory system, types of memories and memories errors. Chapter three talks about memory errors detection, correction and errors correcting code (ECC). Chapter four talks about ECC memory vs. non- ECC memory.

Chapter 2: Memory system
Memory system is the system where the computer holds the instructions that the processor executes and the data that those instructions work with. It consists of three main types of memories.


2.1  Memory types
Memory is one of main components on the computing machine. There are three types of memories. The first one is a read only memory (ROM) which can retain stored data when not powered. The second is a random access memory (RAM) which cannot retain stored data when not powered. The third is a special type of RAM is called cache memory.
2.1   Memory Errors
Memory is an electronic storage device, and all electronic storage devices have the potential to incorrectly return data different than what was originally stored. The data that is stored in the memory is bits and each bit ether a zero or a one.
There are two kinds of errors that can occur in a memory system. The first is called a hard error. It occurs when a piece of hardware is broken or is lost. During this error, computer system cannot work. Actually, the hard error is detected by the basic input/output system (BIOS) during boot process. The BIOS can detect the hard error but, it cannot fix it. The common message, which display on the computer monitor if there is a hard error, is shown in figure below.    

The second memory error is called a soft error. This occurs when a bit returns the wrong value. It occurs during storage processes. The soft errors are caucused by memory that is physically bad, poor quality of motherboards and memory system or other similar problems that are not related to the memory directly. In addition, the radioactivity that is come from materials used in PC systems can cause the soft error. This kind of error can be detected and fix it. Next chapters show that.

Chapter 3: Memory Errors Detection & Correction
Errors detection & correction are methods that are used to detect positions of wrong bits and to correct the detected wrong bits. Actually, the detection and correction are parts of a special code which is called Error Correcting Code (ECC).

3.1 Memory Errors Detection
There are many methods that are used for detecting. Parity checking is a simple method of detecting errors between data being written to computer memory and read back again. Parity checking examines each byte of data and sets a ninth bit, is known as a parity bit, to one if the number of ones is odd and zero if the number of ones is even. This means that a correct byte will always have an odd number of ones and if it does not, when the data is read back from memory, an error is reported. 



  1. 3.2 Memory Errors Correction



It is a method that is used to correct the reported errors. Hamming Code is the method of error detection and correction. It is used for correcting. It manages error correction on their own instead of going back and requesting the data source to resend the original data. These codes can correct single bit errors occurring in data. Multi-bit errors are very rare and hence do not pose much of a threat to memory systems. 

3.3 Error Correcting Code (ECC)
An error-correcting code is an algorithm of adding redundant data, or parity data, to data, such that it can be read back even when a number of errors occur, during the process of storage. The figure below shows simply how ECC work.
Chapter 4: ECC Memory vs. non- ECC Memory
Parity memory modules have an extra chip on them to check for errors. Therefore, non-parity memory should have an even number of chips on the module and parity memory should have an odd number. Typically, there will be 8 chips on a non-ECC module and 9 chips on an ECC module.

However, some parity SIMMs can have 12, 18, 24 or 36 chips. Therefore, a sure-fire way to determine of a memory module is parity or non-parity is to divide the number of chips on the module by three. If the number is evenly divisible by 3, it is a parity, or ECC module. If the number of chips is not divisible by three, the module is non-parity, or non-ECC.





 Conclusion:



At the end of this report, i thought the objectives are archieved. The computer memory is one of the important components of computer. There are two types of memory errors; hard error occurs when a piece of hardware is broken or is lost. There is a technical solution for this problem. Soft error is a second type, occurs when a bit returns the wrong value. It can be solved by using ECC.

References:
http://searchwindowsserver.techtarget.com/news/1073867/Error-correcting-code-memory-and-parity

















ليست هناك تعليقات:

إرسال تعليق