MMU is used for effective Memory testing and repairing as shown in Figure 2. For memory testing a novel memory testing approach is proposed Improvised March C- (IM March C-) Algorithm. We have used this algorithm over following cases 32*8*1, 64*8*1,256*8*1 for fault detection in a RAID 6. This algorithm is derived from the parent algorithms. These faults are injected randomly without any connection to each other at certain predefined locations.
2.1 RAID 6
We have used three memories cases 32*8*1, 64*8*1 and 256*8*1 array as disk in RAID 6. These memories array are allocated through the memory allocation job manager with run time selection on MUT. RAID 6 is used to increase the performance and reliability of the data storage [20] [21]. It is also known as double parity redundant array of independent drivers. It can continue the operation even if it faces disk failure twice. It provides enhanced fault tolerance capability.
2.2 Memory Testing and Validation
For memory testing and validation, we have proposed an IM-March C- algorithm for fault detection. The proposed algorithm adheres to the feature of its parent algorithm March C-.Difference between March C- and Proposed Improved March C-.
- Proposed Algorithm is designed with Complementary pairs of March C- elements.
- M2’ and M3’ contains all sensitive operators (rd0, wr1, rd1, wr0) which are cable of detecting all coupling CFs [33].
- All linked faults will also detect in the ↑ address order.
- An comparison between March C- and proposed is shown in Table 1.
- M1’, M2’, M3’will also detect the SAF 0/1, TF, Address decoder fault.
- As number of March element are reduced in IM March C- (M4’) by complementary the March C- element (M5’, M2’) and (M4’, M3’).This reduces its testing power as well as its testing time power consumption [34].
Table 1: Faults detected
Algorithm Used
|
SAF0/1
|
TF
|
CFs
|
AF
|
Linked Faults
|
March C-
|
✓ |
✓ |
✓ |
✓ |
---
|
IM March C-
|
✓ |
✓ |
✓ |
✓
|
✓ |
We have injected one Stuck- at-faults at memory location (1, 2) , two transition faults at memory location (0, 0) , (0, 1) ,(2,2) and (2,3) and one coupling faults at memory location (3, 2) and (3, 3) as shown in Figure 3. These faults are randomly selected faults with non-resemblance. Figure 3 shows the 4x4x1 memory size in which faults are injected and memory testing is performed using the proposed Improvised March C- algorithm.
Table 2, shows the proposed IM- March C- algorithm. Algorithm 1 has four March elements. In Step 1, write Zero operation is performed in the first March element in any direction. In step 2 the second March element will read the expected one and write with zero at the last address location with expected read zero and write one in the upwards direction. In Step 3, the third March element read the expected zero and write one at the last address location with read expected one and write zero in a downwards direction. At last in step 4, the March fourth element will read the expected one in any direction. The proposed algorithms are compared with March C- for fault coverage, tracing time and device utilization.
Table 2 IM- March C- algorithms
Algorithm1 IM- March C-
|
Step1: ↕ wr0
|
Step2: ↑rd1, wr0, rd0, wr1
|
Step3: ↓rd0, wr1, rd1, wr0
|
Step 4:↕ rd1
|
2.2.1 Methodologies used in the proposed Improvised March C- test algorithm
Figure 4, shows the state diagram of the proposed algorithm which is adhered to on March C-.The notations used in proposed algorithm are as follows
Qn: March Elements
T: Test signal (1= Test Mode and 0=Normal Mode)
CLR: Clear address to the memory location 0
LA: Last address
DO: Data Out
QnB: Beginning of March elements
Qnr: Read data
Qnw: Write data
States/March elements Q0and Q1 detects the stuck-at-1 faults and transition faults.Q1, Q2, and Q3 detect stuck-at-0 faults, transition faults, and coupling faults. This State diagram is working in two-modes. First, Normal mode (at T=0) with the last address which is rolled over to the last memory location (LA=0) this is when memory is in the idle phase. Second, when memory testing start then it is Test mode (at T=1) with last address which is rolled over to the last memory location (LA=1)
The flow chart of the proposed algorithm is shown in Figure 5.Memories under test are initially working at normal mode and once the testing start then it switches to test mode. In test mode four March elements perform the read and write operation based on defined directions (upward/downward/irrelevant). When memory testing is completed an error fee memory is achieved with the Fault dictionary which is generated at every read operation.
2.2.2 Simulation profile of proposed Improvised March C- test algorithm
Figure 6 shows the RTL top view of the MUT for 32x8x1 memory size. In this MUT an address array is 5 bit(0 to 4),data_in and data_out are 8 bit (0 to 7), and fault bit out is 8 bit (0 to 7). A proposed algorithm is applied to MUT whose RTL top view is shown in Figure 7 using Xilinx ISE suite. In this clock, reset, test, last address, and data out are input signals, and count, clear, data in, write_CMD , up address and first address are output signals.
Figure 8 and 9 show the test bench waveform of MUT 32*8*1 and proposed IM March C- algorithms, in this state change in input-output signals are shown as explained in the state diagram.
2.3 Process to Repair the Faulty Memories (MBISR)
In the memory repairing process, MBISR (Memory build- in self Repair) block is used to repair the faults. In this block a solution of Faulty memories are predicted on the basis of selected memory repair algorithm.