You are on page 1of 5

International Conference on Communication and Signal Processing, July 28 - 30, 2020, India

Diagonal Hamming Based Multi-Bit Error Detection and Correction Technique


for Memories
G. Manoj Sai, K. Mohan Avinash, L. Sri Ganesh Naidu, M. Shiva Rohith and M.Vinodhini

Abstract—Temporary errors which are classified under soft Analysis of the coding technique and the discussions
errors are created because of fluctuations in the voltage or related to it are described in Section-IV. Finally, the
external radiations. These errors are very common and obvious conclusion is provided in Section-V.
in memories. In this paper, Diagonal Hamming based multi-bit
error detection and correction technique is proposed to identify II. RELATED WORKS
errors to an extent of 8-bit. Rectification of 1, 2, 3, 4, 5 bit errors
are possible. Few combinations of 6 and 7 random bit errors Information in the form of binary digits is stored in a
and burst errors of 8 bit are correctable. By using this method, space called memory. Errors occur in memory due to voltage
high code rate is achieved with less area and delay when in fluctuations, manufacturing process or due to very high radi-
contrast to various techniques. ations. There are many coding techniques for error correction
Index Terms—Diagonal Hamming, Multibit error correction, and detection. These techniques can correct from single
Random bit errors and correction techniques. to multiple bit errors. Coding methods like HVD, HVDD,
HVPDH, DMC, MDMC, 3D parity check with Hamming
I. INTRODUCTION are used to correct bits in memory. The 3 Dimensional
parity check is used for checking and correcting the errors

B INARY information is stored in a storage space called


memory. This binary data is stored within metal-oxide
semiconductor memory cells on a silicon integrated circuit
in message bits and hamming is used for correction of
parity bits [3]. In HVPDH method, number of parity bits are
reduced and hence reliability is increased [1]. HVD method
memory chip. Memory cell is a combination of transistors [5] is used for correction of soft error bits and the power
and capacitors where capacitor charging is considered as 1 consumption is less in this method. In HVD method, the
and discharging considered as 0 and this can store only one parity code uses four different directions in block of data.
bit. Errors which are temporary or permanent are created HVDD methods can be used for correction of bit patterns
in the memory cells and need to be eliminated. Single bit which is in the form of equilateral triangle and any irregular
error correction is most commonly used technique which triangle [6]. This method can’t be used for parallelogram
is capable of correcting upto one bit. Since technology is structure. In DMC method [7], decimal program is used for
increasing rapidly, there are more probabilities of getting identification and correction of errors. The main drawback
multiple errors [1]. Use of Diagonal Hamming method leads in this method is it uses more redundant bits for reliability
to efficient correction of errors in the memories. Memory of memory. In MDMC less redundant bits are used and it
was divided as SRAM, DRAM, ROM, PROM, EPROM, uses re-configurable Array Exclusive OR logic for addition
EEPROM and flash memory [2]. Main advantages of semi- in decimal [8]. If we use pipe-lined MDMC, the time is saved
conductor memory is easy to use, less in cost, and have high since multiple stages of work are done at same time.
bits per square micrometers. Temporary errors are called Similar methods can be used in ON-chip and OFF-chip
transient errors which are caused because of fluctuations networks. Even there, increase in parity bits improves the
in potential level. Permanent errors are caused because of reliability of communication [9-11]. Many schemes used for
defects during manufacturing process or large amount of network communication can also be used for semi-conductor
radiations [3]. For detection and correction of these soft memories.
errors, various methods have been proposed [4].
In this paper, memory bits which are affected by errors III. PROPOSED DIAGONAL HAMMING METHOD
are recognized and rectified using Diagonal Hamming based A. Design of Diagonal Hamming method for memory
multi-bit error detection and correction technique. The aim Proposed design of Diagonal Hamming based multi-bit
of this method is to detect effectively up to 8 bit errors and error detection and correction technique to the memory is
correcting them. shown in Fig. 1. Using this approach of diagonal Hamming
In this paper, Section-II gives overview of other coding bits, the errors in the message can be recognized and can
techniques. The advantages and disadvantages of different be rectified which are saved in the memory. In encoding
coding techniques are discussed. Section-III describes the technique message bits are given as input to the Diagonal
proposed error detection and correction methods. Hamming encoder and the Hamming bits are calculated.
Message and Hamming bits (32+24 bits) are saved in the
G. Manoj Sai, K. Mohan Avinash, L. Sri Ganesh Naidu, M. Shiva Rohith memory after the encoding technique.
and M.Vinodhini are with the Department of Electronics and
Communication Engineering, Amrita School of Engineering, Bengaluru,
Amrita Vishwa Vidyapeetham, India. (email:manojsai891999@gmail.com)

978-1-7281-4988-2/20/$31.00 ©2020 IEEE 0746

Authorized licensed use limited to: Auckland University of Technology. Downloaded on September 12,2020 at 16:53:30 UTC from IEEE Xplore. Restrictions apply.
Fig. 1. Propounded Architecture of Diagonal Hamming method for Memory

Fig. 2. 32-bit message organization (C=8 and R=4). Fig. 4. Positions of the hamming bits in accordance with the grouped
message bits.

Message bits are grouped as shown in the Fig. 3 in the


specified directions. The first diagonal consists of m3[7], m3[5],
m2[6], m1[7], the second diagonal has m3[6], m2[7], m0[1],
m1[0], the third diagonal has m0[0], m0[2], m1[1], m2[0], the
fourth diagonal has m3[4], m2[5], m1[6], m0[7], the fifth
diagonal has m3[3], m2[4], m1[5], m0[6], the sixth diagonal
has m3[2], m2[3], m1[4], m0[5], the seventh diagonal has m3[1],
m2[2], m1[3], m0[4] and the eight diagonal has m3[0], m2[1],
m1[2], m0[3]. Each one of the diagonals has four message bits.
For the respective groups, the hamming bits are calculated as
Fig. 3. Grouping of the message bits to generate hamming bits shown in Fig. 4. The hamming bits are shown as R1, R2, R3,
R4, R5, R6, R7, R8 arrays and these arrays consist of 3 bits.
Errors which are occurring in the message bits, are saved in The hamming bits are calculated as given in equations (1)-
the memory and can be recognized and rectified in the (24) : For the first row:
decoding technique.
B. Design of Diagonal Hamming Encoder R1[1] = m1[7] ⊕ m2[6] ⊕ m3[7]; (1)

For example, message of 32 bits is accounted in the R1[2] = m1[7] ⊕ m3[5] ⊕ m3[7]; (2)
proposed method. The message is represented in the form
R1[3] = m2[6] ⊕ m3[5] ⊕ m3[7]; (3)
m x n matrix. The grouping of the message bits is depicted
in Fig. 2. The encoder generates the hamming bits and the For the second row:
hamming bits are obtained by grouping the message bits and
the hamming bits are calculated with the help of hamming R2[1] = m1[0] ⊕ m0[1] ⊕ m3[6]; (4)
code. The message bits are patterned as shown in Fig. 3.
R2[2] = m1[0] ⊕ m2[7] ⊕ m3[6]; (5)
Eight diagonals are considered in this Diagonal Hamming
method and each diagonal consists of 4 message bits. R2[3] = m0[1] ⊕ m2[7] ⊕ m3[6]; (6)

0747

Authorized licensed use limited to: Auckland University of Technology. Downloaded on September 12,2020 at 16:53:30 UTC from IEEE Xplore. Restrictions apply.
For the third row: S2[3] = R2[3] ⊕ m0[1] ⊕ m2[7] ⊕ m3[6]; (30)
R3[1] = m2[0] ⊕ m1[1] ⊕ m0[0]; (7) For the third row:

R3[2] = m2[0] ⊕ m0[2] ⊕ m0[0]; (8) S3[1] = R3[1] ⊕ m2[0] ⊕ m1[1] ⊕ m0[0]; (31)
R3[3] = m1[1] ⊕ m0[2] ⊕ m0[0]; (9) S3[2] = R3[2] ⊕ m2[0] ⊕ m0[2] ⊕ m0[0]; (32)
For the fourth row:
S3[3] = R3[3] ⊕ m1[1] ⊕ m0[2] ⊕ m0[0]; (33)
R4[1] = m0[7] ⊕ m1[6] ⊕ m3[4]; (10) For the fourth row:
R4[2] = m0[7] ⊕ m2[5] ⊕ m3[4]; (11)
S4[1] = R4[1] ⊕ m0[7] ⊕ m1[6] ⊕ m3[4]; (34)
R4[3] = m1[6] ⊕ m2[5] ⊕ m3[4]; (12)
S4[2] = R4[2] ⊕ m0[7] ⊕ m2[5] ⊕ m3[4]; (35)
For the fifth row:
S4[3] = R4[3] ⊕ m1[6] ⊕ m2[5] ⊕ m3[4]; (36)
R5[1] = m0[6] ⊕ m1[5] ⊕ m3[3]; (13)
For the fifth row:
R5[2] = m0[6] ⊕ m2[4] ⊕ m3[3]; (14)
S5[1] = R5[1] ⊕ m0[6] ⊕ m1[5] ⊕ m3[3]; (37)
R5[3] = m1[5] ⊕ m2[4] ⊕ m3[3]; (15)
For the sixth row: S5[2] = R5[2] ⊕ m0[6] ⊕ m2[4] ⊕ m3[3]; (38)

R6[1] = m0[5] ⊕ m1[4] ⊕ m3[2]; (16) S5[3] = R5[3] ⊕ m1[5] ⊕ m2[4] ⊕ m3[3]; (39)
For the sixth row:
R6[2] = m0[5] ⊕ m2[3] ⊕ m3[2]; (17)
R6[3] = m1[4] ⊕ m2[3] ⊕ m3[2]; (18) S6[1] = R6[1] ⊕ m0[5] ⊕ m1[4] ⊕ m3[2]; (40)

For the seventh row: S6[2] = R6[2] ⊕ m0[5] ⊕ m2[3] ⊕ m3[2]; (41)

R7[1] = m0[4] ⊕ m1[3] ⊕ m3[1]; (19) S6[3] = R6[3] ⊕ m1[4] ⊕ m2[3] ⊕ m3[2]; (42)
R7[2] = m0[4] ⊕ m2[2] ⊕ m3[1]; (20) For the seventh row:

R7[3] = m1[3] ⊕ m2[2] ⊕ m3[1]; (21) S7[1] = R7[1] ⊕ m0[4] ⊕ m1[3] ⊕ m3[1]; (43)
For the eight row:
S7[2] = R7[2] ⊕ m0[4] ⊕ m2[2] ⊕ m3[1]; (44)
R8[1] = m0[3] ⊕ m1[2] ⊕ m3[0]; (22) S7[3] = R7[3] ⊕ m1[3] ⊕ m2[2] ⊕ m3[1]; (45)
R8[2] = m0[3] ⊕ m2[1] ⊕ m3[0]; (23) For the eight row:
R8[3] = m1[2] ⊕ m2[1] ⊕ m3[0]; (24)
S8[1] = R8[1] ⊕ m0[3] ⊕ m1[2] ⊕ m3[0]; (46)
In the encoder, the hamming bits are calculated for mes-
sage. We get 24 hamming bits in total for 32-bit message. S8[2] = R8[2] ⊕ m0[3] ⊕ m2[1] ⊕ m3[0]; (47)

C. Proposed Diagonal Hamming Decoder S8[3] = R8[3] ⊕ m1[2] ⊕ m2[1] ⊕ m3[0]; (48)
The message bits which are encoded and kept in memory If all the syndrome bits are equal to zero, then it represents
as a matrix as shown in Fig. 4, and are given as input to the that the message bits are not corrupted and if anyone of the
decoder. The decoder now segregates message and hamming syndrome bits in non-zero, then it represents the message
bits and it recalculates the hamming bits and evaluates bit(s) are corrupted. These corrupted bits need correction so,
syndrome bits. The syndrome bits are evaluated using the the message bits are sent to the error correction part. In the
equations given in (25)-(48) : For first row correcting of error part, the location of error is identified by
doing the following calculations:
S1[1] = R1[1] ⊕ m1[7] ⊕ m2[6] ⊕ m3[7]; (25) Suppose if the error is in the third row of the message
S1[2] = R1[2] ⊕ m1[7] ⊕ m3[5] ⊕ m3[7]; (26) organization, then the error position is calculated as:
2 1 0
S1[3] = R1[3] ⊕ m2[6] ⊕ m3[5] ⊕ m3[7]; (27) (S3[3] ∗ (2 )) + (S3[2] ∗ (2 )) + (S3[0] ∗ (2 )); (49)
For the second row: After the position is calculated, the error corrector negates
the bit corresponding to that position to correct the data bit.
S2[1] = R2[1] ⊕ m1[0] ⊕ m0[1] ⊕ m3[6]; (28) This process is done till all the corrupted bits are corrected.
S2[2] = R2[2] ⊕ m1[0] ⊕ m2[7] ⊕ m3[6]; (29) Now the output of the decoder will be the form of Fig. 2.

0748

Authorized licensed use limited to: Auckland University of Technology. Downloaded on September 12,2020 at 16:53:30 UTC from IEEE Xplore. Restrictions apply.
Fig. 5. Encoder Waveform

Fig. 6. Decoder Waveform

IV. ANALYSIS AND DISCUSSION


The program for the Diagonal Hamming method is written TABLE I
in Verilog and the simulation is done in Xilinx ISE Design COMPARISON OF VARIOUS ECC
Suite-14.7. This design is synthesized in Cadence RTL
compiler at 45nm Technology for area, power and delay. Data Redundant Maximum Bit Code
The results with this tool for the various corrupted input ECCs Bits Bits Error Overhead Rate
(d) (h) Correction (%) (%)
data were also verified. The proposed Diagonal Hamming
technique can recognize up to errors of 8-bits and can rectify DMC 32 36 5 112.5 47
all 1-bit errors and most combinations of 2, 3, 4, 5, 6, 7-bits
and, a couple of combinations of 8-bit errors. MDMC 32 32 16 100 50
The simulated results of encoder and the decoder are
shown in Fig. 5 and Fig. 6 respectively. For encoder, the
HVPDH 32 28 5 87.5 53.33
message bits are given as input and at the output hamming
bits are also present along with message bits and are arranged Multi
in specific manner. This is stored in memory and in memory -Directional
Parity 32 28 4 87.5 53.33
the error is introduced. The decoder takes input from memory Check
and the output of decoder is rectified message bits. Code
Reliability is checked on basis of parameters like number
HVD 32 38 3 118.5 45.75
of errors that it can correct, bit overhead percentage, and
the code rate. These parameters for Diagonal Hamming
technique and few other state of art methods are compared HVDD 32 19 3 59.37 62.74
and shown in Table I. In the Table I, the method HVDD is 3D Parity
more better than our propounded method, but in this method, Check
if any error occurs in the redundant bits then this method Code 32 35 6 109.37 47.76
with
fails to spot or to rectify the error. Hamming
Comparison of results between our proposed method and Proposed
3-D Parity Check Code is done based on area, delay, and Diagonal 32 24 8 75 57
Hamming
power and is shown in Table II. This comparison proves that Method
the total area occupied is decreased by 91.76 %, the total
power consumed is increased by 54.3 %, the delay is reduced
by 84.18 %, when compared to 3-D Parity Check Code.

0749

Authorized licensed use limited to: Auckland University of Technology. Downloaded on September 12,2020 at 16:53:30 UTC from IEEE Xplore. Restrictions apply.
Therefore, our proposed method outperforms in area and REFERENCES
delay with increase in power. Our method can spot or correct [1] Paromita Raha , M. Vinodhini and N.S Murty,” Horizontal Vertical Parity
any error which has occurred in redundant bits which is also and Diagonal Hamming Based Soft errors Detection and Cor- rection of
possible in 3D parity coding method. But we are able to do Memories," in Proc. Int Conf on Comp Com and Info, 2017.
[2] S.ASAI, “Semi conductor memory trends," in Proc. of IEEE, Vol.74, 1986.
this with less number of redundant bits. [3] Shivani Tambatkar, Siddharth Narayana Menon, Sudarshan.V,
M.Vinodhini and N.S.Murty, “ Error Detection and Correction in
TABLE II Semiconductor Memories using 3D Parity Check Code with Hamming
AREA, POWER, AND, DELAY-COMPARISON Code,” in Proc. International Conf on Comm and Signal Processing, 2017.
[4] Varinder Singh and Narinder Sharma, " A Review on Various Error De-
Proposed 3-D Parity tection and Correction Methods Used in Communication," American
Diagonal Check Percentage International Journal of Research in Science, Technology, Engineering and
Hamming Code Change Mathematics, pp. 252 - 257, 2015.
Method [5] Mostafa Kishani, Hamid R. Zarandi, Hossein Pedram, Alireza Ta- jary,
Mohsen Raji and Behnam Ghavami, “HVD: Horizontal-Vertical- Diagonal
Area(micrometer) 578 7010 91.76% decrease error detecting and correcting code to protect against with soft errors,”
square) Design automation for embedded systems Journal, Vol. 15, no. 3, pp. 289-
310, May 2011.
[6] S. Vijayalakshmi and V. Nagarajan (FEB 2019), “Design and
Power (uW) 363 165.972 54.3% increase Implementation of Low Power High-Efficient Transceiver for Body
Channel Communications”, Springer- Journal of Medical Systems
[7] Md. Shamimur Rahman, Muhammad Sheikh Sadi, Sakib Ahammed and
Delay (ps) 242 1530 84.18% decrease Jan Jurjens, ” Soft Error Tolerance using Horizontal – Vertical Double –
Bit Diagonal Parity Method,” in Proc 2nd IEEE International Conference
on Electrical Engineering and Information and Commu- nication
Technology (ICEEICT) , 21-23 May 2015.
[8] Jing Guo, Liyi Xiao, Zhigang Mao and Qiang Zhao, “Enhanced Memory
Reliability against Multiple Cell Upsets Using Decimal Matrix Code,”
V. CONCLUSION IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol.
22, Issue:1, pp. 127-135, Jan. 2014
Diagonal Hamming coding method is proposed in this [9] Ahilan A. and Deepa P., “Modified Decimal Matrix Codes in FPGA
paper and the main idea behind this work is to reduce Configuration Memory for Multiple Bit Upsets,” in Proc.International
Conference on Computer Communication and Informatics (ICCCI), pp. 1-
maximum errors during transmission of bits in memory. 5, Jan. 2015
Diagonal Hamming method identifies and corrects up to [10] M.Vinodhini and N.S. Murty.,"Relible Low Power NoC Intercon- nect,"
maximum of 8bit errors in a row for 32-bit input. Diagonal Micoprocessor and Microsystems-Embedded Hardware Design, Vol.57,
March 2018.
Hamming method ensures less area and delay by 91.76
[11] U. Sai Himaja, M. Vinodhini, N.S. Murty, "Multi-Bit Low Redundancy
percentage and 84.18 percentage respectively. Huge amount Error control with Parity Sharing for NoC Interconnects," in Proc.
of error correction is possible using this Diagonal Hamming International Conference on Communication and Electronics Systems,
method. Oct. 2018.

0750

Authorized licensed use limited to: Auckland University of Technology. Downloaded on September 12,2020 at 16:53:30 UTC from IEEE Xplore. Restrictions apply.

You might also like