Dependable Memory - Laboratoire Interface Capteurs ...
Dependable Memory - Laboratoire Interface Capteurs ...
Dependable Memory - Laboratoire Interface Capteurs ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.1. ERROR DETECTION 35<br />
2.1.3 Information Redundancy<br />
The basic idea behind an information scheme is to add redundant information to the data being<br />
transmitted or stored or processed to determine if errors have been introduced [IK03]. It is the way of<br />
protecting data through mathematical encoding, which can be reuse after decode the original data (as<br />
in figure 2.5). The encoding and decoding circuitry adds additional delays, which make them slower<br />
than DMR, but the area overhead is much lower than DMR. In coding, the consideration is given to<br />
the information stored or maybe to the functionality of the circuit but no consideration given to the<br />
structure of the circuit. Typically, information redundancy is used to protect storage elements (like<br />
memory, caches, register files, etc) [HCTS10] e.g. in Power 6 and 7 [KMSK09]. These codes are<br />
classified based on their ability of detection and correction, code efficiency and complexity. In this<br />
section, we will discuss only error detection codes.<br />
Data Encode<br />
Add<br />
Redundancy<br />
Noise<br />
Transmit<br />
or<br />
Store<br />
Decode Data<br />
Check<br />
Redundancy<br />
Figure 2.5: Information redundancy principle<br />
The error detecting codes (EDC) have less hardware overhead than the error correcting codes.<br />
There are different EDCs e.g. parity, Borden, Berger and Bose codes. We will not go in much details<br />
but will compare their salient features will be discussed.<br />
The parity-coding strategies is simplest and it has lowest HW overhead [ARM + 11]. It is based on<br />
calculation of even or odd parity for data of word length N. The parity can be calculated with XOR<br />
operation among the data bit. A parity code has a distance of 2 and can detect all odd-bit errors.<br />
Input<br />
Parity<br />
Generator<br />
P<br />
Data<br />
Data<br />
Received data<br />
comparator<br />
Figure 2.6: Parity coder in data storage<br />
Error<br />
Signal<br />
Output<br />
Before storing data in the register, the parity generator is used to compute the parity bit required<br />
(as shown in the figure 2.6). Then both the computed parity and the original data are stored in register.