Home | | Embedded Systems | Embedded Systems: Memory Testing

Chapter: Embedded Systems

Embedded Systems: Memory Testing

Unit Structure: Objectives 1. Introduction 2. Memory Testing and its purpose 3. Common Memory Problems 4. A strategy for memory testing 4.1 Data Bus Test 4.2 Address Bus Test 4.3 Device Test



Unit Structure


1. Introduction

2. Memory Testing and its purpose

3. Common Memory Problems

4. A strategy for memory testing

4.1 Data Bus Test

4.2 Address Bus Test

4.3 Device Test




After reading this chapter you will be able to understand:

What is memory testing?

What are the common memory related problems?

What are the different types of test to detect memory related problems and a general idea about the working of these tests


The previous chapter dealt with the different types of memory. This chapter will focus on the concept of testing memory devices, its purpose and different methods available.


The purpose of a memory test is to confirm that each storage location in a memory device is working.

Memory Testing is performed when prototype hardware is ready and the designer needs to verify that address and data lines are correctly wired and memory chips are working properly.

Basic idea implement in testing can be understood by this simple task:

Write some set of Data values to each Address in Memory and Read it back to verify.

Ex. If number ’50’ is stored at a particular Address it is expected to be there unless rewritten or erased.

If all values are verified by reading back then Memory device passes the test.

Only through careful selection of data values can make sure passing result to be meaningful.

Difficulties involved in memory testing:

It can be difficult to detect all memory problems with a simple test.

Many Embedded Systems include Memory Tests only to detect catastrophic memory failures which might not even notice memory chips removal.


Memory Problems rarely occur with the chip itself, but due to a variety of post production tests to check quality this possibility is ruled out.


Catastrophic Failure is a memory problem that occurs due to physical and electrical damage, it is uncommon and easily detectable.


A common source of memory problems is associated with the circuit board. Typical circuit board problems are:


Circuit board wiring between Processor & Memory device.


Missing Memory chip.

Improperly inserted Memory chip.


Circuit board wiring between Processor & Memory device.

These are usually caused by,

An error in design

An error in production of the board

Any damage after manufacture



              Wires that connect the memory are:-

i.            Address line    :-  select the memory location

ii.           Data line   :-     transfer the data

iii.          Control line :-  read or write operation

              Two wiring problems are shown below


Connected to another wire on the board

- May be caused by a bit of solder splash


2. Not connected to anything


- Caused by broken trace


When Address line has a wiring problem o memory locations overlap

o i.e. memory device to see an address different from the one selected by the processor.

Problem is with a data line

several data bits “stuck together”

i.e. two or more bits always contains same value


When the problem is with a Data line o several data bits “stuck together”

o i.e. two or more bits always contains same value o When Control lines is shorted or open


When Control lines is shorted or open

o The operation of many control lines is specific to the processor or memory architecture.


the memory will probably not work at all.


2. Missing Memory chip.


A missing memory chip is clearly a problem that should be detected

o Unfortunately, because of the capacitive nature of unconnected electrical wires, some memory tests will not detect.

For e.g. suppose you decided to use the following test algorithm write the value 1 to the first location in memory, verify the value by reading it back write 2 to the second location, verify the value write 3 to the third location, verify, etc.


o   Because each read occurs immediately after the corresponding write, it is possible that the data read back represents nothing more than the voltage remaining on the data bus from the previous write.


If the data is read back too quickly, it will appear that the data has been correctly stored in memory-even though there is no memory chip at the other end of the bus!


To detect a missing memory chip the previous algorithm for test must be altered.


For example,


write the value 1 to the first location,


2 to the second location,


And 3 to the third location,


Then verify the data at the first location, the second location, etc. If the data values are unique (as they are in the test just described), the missing chip will be detected


Improperly inserted Memory chip.

Caused by pins on the memory chip

o Will either not be connected to the socket at all o Will be connected at the wrong place


Symptoms :-

o System behaves same as though there is a wiring problem or a missing chip.


How to detect :-

Detected by any test





For memory testing the strategy adopted should be effective and efficient. Ideally there should be multiple small tests instead of one large test.


It would be best to have three individual memory tests:

A data bus test: Checks electrical wiring problems

An address bus test: Checks improperly inserted chips

A device test: Checks to detect missing chips and catastrophic failures and problems with the control bus wiring


These tests have to be executed in a proper order which is: data bus test first, followed by the address bus test, and then the device test. That's because the address bus test assumes a working data bus, and the device test results are meaningless unless both the address and data buses are known to be good.


4.1 Data Bus Test


It is used to check data bus wiring.

In this test we need to confirm that the received data is same as the data sent by processor



Here we write all possible data values and verify that the memory device stores each one successfully.


In short to test the bus one bit at a time.


Walking 1's test

This test is used to independently test every bit.

A single data bit is set to 1 and “walked” through the entire data word.


If the data bus is working properly, the function will return 0.


Otherwise it will return the data value for which the test failed.


Because we are testing only the data bus at this point, all of the data values can be written to the same address. Any address within the memory device will do











Figure: Consecutive data values for walking 1's test


4.2 Address Bus Test


Address bus problems lead to overlapping memory locations.


In the Address Bus test we need to confirm that each of the address pins can be set to 0 and 1 without affecting any of the others.


 The smallest set of address that will cover all possible combinations is the set of “power of two” addresses.


After writing one of the addresses, we must check none of the others has been overwritten.



4.3 Device Test


It is used to test if the memory device is working properly. It is necessary to test the integrity of the memory device itself.

The thing to test is that every bit in the device is capable of holding both 0 and 1.

For a thorough and complete device test every memory location has to be visited twice.

A simple test implemented is the Increment test as shown in the table below

The first column represents the memory location

The second column represents the data that is written at the memory location indicated in column 1 in incremental fashion.

The third column represents the data of column 2 in inverted format.

During the first pass the data in column 1 is verified and during second pass the data in column 2 is verified.

Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Embedded Systems : Embedded Systems: Memory Testing |

Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.