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.
- 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