Qualitas Logo
Divider

Avoid Being Bitten by a Bad Byte

Divider

Few components in your PC are as crucial to its operation as memory and the hardware that manages memory. Defective memory can cause data loss, prevent your monitor from displaying properly or even cause your hard disk to crash. Every element in your system depends on RAM (random access memory). Unfortunately, RAM fails and when it does, lost work is an inevitable result.

In the case of RAM failure, prevention is the only medicine. This document was created to help you understand the role that RAM plays, why it fails and how to take the steps necessary to prevent the loss of work that usually accompanies a RAM failure.

Contents

  1. What is Memory?
  2. Why Memory Fails?
  3. What is RAMexam?
  4. Ways to Use RAMexam
  5. DOS Memory Testing
  6. A Note for OS/2 Users
  7. How to Avoid Memory Errors
  8. Conclusion

What is Memory?

The words "computer memory" are ambiguous. They are often used to describe fixed and floppy disk storage, system and adapter "read only memory" (ROM), video adapter "random access memory" (RAM) and so on. For the purpose of this document, the term "computer memory" (or just "memory") refers to the row or rows of system RAM chips that exist somewhere in your PC. This is the memory in which your software runs.

The capacity of PC memory to store information is measured in bytes. A typical PC today comes standard with several megabytes of RAM. A megabyte equals one million bytes (actually 1,048,576) - approximately the amount of memory needed to hold the text for a 600 page paperback novel. Each byte on an IBM compatible system contains eight bits. This means that the average PC with four megabytes of RAM has over 33 million bits -- each one ready and waiting for your valuable information.

Let's take a look at just one bit of memory. Each bit "holds" one of two values -- 0 or 1 -- depending on its electrical state. All the information in your PC amounts to nothing more than a series of bits. For example, the word "memory" has six characters, each represented as a byte in memory, for a total of 48 bits of information:

01101101 01100101 01101101 01101111 01110010 01111001

Each bit is significant. What would happen if the last bit was stored in a defective memory chip and was stuck as zero? The new word would be " memorx". And if your software program got loaded into the defective bit then there is a very good chance your system would crash. Your PC operates on the assumption that each bit (all 33 million in the above example) functions perfectly every time you use your PC.

Why Memory Fails

People expect most machines to break eventually. We look at all the moving parts -- think about hard drives spinning rapidly for hours on end, car engines running for thousands of miles -- and we know that eventually the machine will stop working. We see it happen every day.

Why, then, should we be so surprised to learn that system memory fails also? RAM itself may not spin, chug or move, but it is acted upon in countless ways -- ways that, given RAM's fragile nature, can have devastating effects.

In addition to faulty RAM, errors may occur due to faults in the memory subsystem - the hardware that manages the RAM. Unfortunately, there is no way for software to determine the difference between defective RAM and a defective memory subsystem. The causes for failure, though, are the same.

Here are some of the most common (though by no means all) causes of system memory failure:

Static Electricity
If you have opened your personal computer then you know that under the metal case are relatively vulnerable electronics. Brushing against system RAM while carrying even the slightest static charge can destroy the chip by subjecting the chips to momentary discharges of excessive electricity.
Power Surges (large and small)
We all know about the devastating effect lightning can have on a PC. While a $20 surge protector may reduce risk, it does not eliminate it. In fact, power brown-outs -- where power levels dip momentarily (because somebody upstairs just started their blow dryer) -- are not handled by most surge protectors and can be just as damaging over time as surges. Actually, your PC is hit with a power surge every time it is turned on and electricity rushes into the cold system. Even when these brown-outs and surges do not cause immediate problems, they can stress the semiconductor chips, which has a cumulative damaging effect.
Dust, Smoke and Pet Hair
Did you ever wonder why the television is usually the dustiest spot in the house? Dust and other air impurities are attracted by the electrical charge inside appliances like your TV and PC where they settle. Over time, these materials can build up enough to carry electrical charges and "short" the PC's circuitry. The dust also forms a blanket, diminishing the electronics' ability to release heat and stay cool. This results in heat stress and additional potential damage.
Changes in Temperature
Put your hand on the back of a PC that has been running for several hours. It is very warm. As with all things, PC components expand when their temperatures increase. Components of different materials (like the metal RAM prongs and the plastic material it is attached to) expand and contract at different rates. Listen closely to your PC creak when turned off after hours of use. This expansion and contraction can, over time, stress the system RAM as well as the connections between the RAM and the other components.

Though we can take precautions, there are no guaranteed methods for eliminating all chances of memory error. What we can do, though, is minimize our chances of losing work because of defective memory by using RAMexam to test for it regularly.

What is RAMexam?

RAMexam is a sophisticated, yet easy to use, memory diagnostic utility that tests system RAM and identifies defective memory before it leads to lost work and data.

While the causes of memory failure are many, the types of RAM failure are few. RAMexam operates using the knowledge of these limited (but not singular) ways that memory fails. Currently available, general-purpose diagnostic software usually implement less sophisticated algorithms that can miss errors, including situations where bits are unreliable only when other bits hold specific values. Under such circumstances there is no assurance that memory errors will be detected:

"Traditional tests include many well-known tests such as GALPAT, checkerboard, sliding diagonal, etc. (Breuer, 1976). These tests were not based on a fault model (such as the stuck-at, coupling, or pattern sensitive fault models); consequently, their quality, in terms of fault coverage, cannot be proved."

Additionally, "The RAM test algorithms [of the types implemented in RAMexam] are more effective than the traditional tests (such as Zero-One) which are still often used. The new algorithms are superior in terms of the required execution time as well as the degree of fault coverage... Zero-One and Checkerboard [tests] have a very questionable fault coverage".

RAMexam uses an underlying consistent fault model to detect RAM errors efficiently even in complex, multiple fault situations. Using sophisticated strategies of writing and reading bit patterns in memory -- where each strategy targets a specific type of failure -- RAMexam provides faster and more effective testing.

Here is a description of the categories of failures for which RAMexam tests:

Stuck-At Fault
One or more bits retains the value that exists in the memory when the system boots, regardless of attempts to write new values into the memory.
Transition Fault
Once changed, the value in the defective bit becomes stuck-at.
Unlinked Inversion
A bit changes spontaneously and erroneously as the result of change to a bit elsewhere in memory.
Linked Inversion
A bit changes spontaneously and erroneously as the result of changes to two or more bits elsewhere in memory.
Unlinked Idempotent
A bit becomes stuck-at as the result of a change to a bit elsewhere in memory.
Linked Idempotent
A bit becomes stuck-at as the result of changes to two or more bits elsewhere in memory.

RAMexam detects singular and multiple (coupled) occurrences of the above errors.

Ways to use RAMexam

RAMexam may be used several ways:

You can run RAMexam every time you boot your system by including RAMexam in your AUTOEXEC.BAT. When running RAMexam this way, you should use the command line switch for a "Quick" test. Running RAMexam at system start-up will add between a few seconds and a few minutes to the time it takes to boot your system, depending on how much memory you have and the speed of your system. RAMexam includes RSetup, a utility that can configure your system testing automatically.

You can run RAMexam as often as you like from the DOS prompt. RAMexam's interactive interface and on-line help make it easy to choose the appropriate test.

RAMexam can test only available memory (you wouldn't want a memory tester to write through existing data in memory). You can use RAMexam for more extensive testing by running it on a "clean" system without resident software such as disk caches, RAM disks and memory managers active. Running RAMexam with no other software active is the most effective way to test your system. The MAKEBOOT program, which is included with RAMexam, will create a bootable diskette for this purpose. This provides an easy way to test your system memory fully.

A Word About Windows & Memory Testing

When Microsoft Windows starts up one of the first things it does is to grab almost every available byte of system memory. Conventional memory, high DOS memory (UMBs) andextended memory are all allocated.

Windows users should be especially zealous about doing periodic RAM testing because Windows is one of the few applications to use the multiple megabytes of RAM on most systems. Frequently, a system will run without incident until Windows loads -- at which point Windows accesses a byte of defective RAM that previously had never been used. RAM testing is an effective pre-treatment because it allows you to find the defective RAM before Windows trips on it.

DOS Memory Testing

Microsoft recently acknowledged the need to test system memory regularly. The extended memory provider (HIMEM.SYS) that is included in MS-DOS 6.2 and later includes a basic memory test. Unfortunately, DOS's memory test has the following limitations:

The inclusion of the test within the operating system, though, supports the premise that RAM does fail and the only way to avoid lost work is to take preventive steps, including RAM testing.

A Note for OS/2 Users

RAMexam can test the memory on systems that run OS/2 -- in fact RAMexam will test RAM on any Intel 386, 486, or Pentium compatible microprocessor regardless of the operating system. The user will need access to a system running DOS so that they can first install RAMexam on that system and use MAKEBOOT.COM to create a bootable test diskette. (MAKEBOOT will not run in an OS/2 DOS session because OS/2 does not support the necessary DOS SYS.COM command.) Once created, the diskette can be used to test any Intel 386 compatible or above based system.

How to Avoid Memory Errors

As with most of life, a byte of prevention is worth a megabyte of cure. Maintaining a proper environment for your PC can significantly reduce the chance of memory failure. Here are some tips:

Even with these precautions, there is no guarantee that RAM will not fail. RAM testing, though, will significantly reduce the risk of losing work to defective RAM.

Conclusion

Trusting your documents to a personal computer can be risky. Hard disks crash, viruses strike and RAM fails. The risk of suffering serious setbacks, though, scan be substantially reduced by taking easy precautions. Just as you would back-up your hard disk and run an anti-virus utility, you should periodically test your system RAM.

When you use RAMexam, you benefit from the years of memory management experience that only the makers of Qualitas MAX 8 and C.Y.A. can bring. RAMexam is unique in that it is the only dedicated RAM testing utility available. Unlike system diagnostic utilities that are designed to identify problems after you experience symptoms, RAMexam is designed to detect problems before you suffer their consequences.

divider
Green Ball Download RAMexam demo (demo tests first 640 KB)
Green Ball RAMexam at a Glance
Divider
van de Goor, A.J. Testing Semiconductor Memories: Theory and Practice, pp. 7-8.
van de Goor, A.J. Testing Semiconductor Memories: Theory and Practice, p. 164.

Additional Reading:

Abadir, Magdy S. and Reghbati, Hassan K. Sept. 1983. "Functional Testing of Semiconductor Random Access Memories", ACM Computing Surveys, pp. 175-198.

van de Goor, A.J. March, 1990. "An Overview of Deterministic Functional RAM Chip Testing", ACM Computing Surveys, pp. 5-33.

van de Goor, A.J. 1991. Testing Semiconductor Memories: Theory and Practice. John Wiley & Sons, West Sussex, England

[Products] [Orders] [Technical Support] [Registration] [Downloads]

Home Page About Qualitas  Return to Home Page

© Qualitas, Inc. 1987-2008, 5012 Kearneysville Pike, P.O. Box 3299, Shepherdstown, WV 25443-3299
Qualitas is a registered trademark and Qualitas MAX 8, Qualitas C.Y.A., Q.E.D., and RAMexam are trademarks of Qualitas, Inc.
All other product names are trademarks of their respective owners.

Comments or suggestions? Send them to .