What Is a Memory Diagnostic?
The memory test refers to the multiple tests that the memory undergoes during the production process. These tests include: soldering test, PCB appearance test, function test, and overall appearance test.
- As an indispensable part of the computer, the performance of the memory has a very important impact on the entire computer system. With the continuous innovation of electronic technology, the performance of the computer CPU, the bus bandwidth and the main frequency continue to increase, and the data required by the CPU It is obtained directly from the memory. In order to match the operating speed of the CPU and prevent the CPU from waiting for a long time, which causes waste of hardware resources, the memory needs to be continuously updated to continuously increase the working speed and storage capacity.
- With the continuous upgrading of memory modules, high-performance memory has become the mainstream of memory development. However, with the increase of the memory particle capacity, the unit density increases, the manufacturing process is more and more complicated, and the yield of the produced memory products is obvious. decline. Therefore, it is necessary to perform fault detection on the memory module, and the significance of the test: on the one hand, determine the quality of the DDR2 and DDR3 SDRAM memory modules; on the other hand, it is also critical to the design of the computer memory system. To the stability and reliability of the memory system. Only a high-performance DDR2 SDRAM or DDR3 SDRAM memory module can make various high-speed systems such as servers and PCs work properly. It can be seen that fault testing of DDR2 and DDR3 SDRAM memory is extremely important.
- With the widespread application of DDR2 and DDR3 SDRAM, the convenient and fast detection of memory systems has become an industry requirement. Memory has undergone many inspections during the production process. These inspections include: solder inspection, PCB appearance inspection, function inspection, and overall appearance inspection. Welding inspection is to detect the solder balls of WLCSP (wafer-level chip package) or BGA (ball-shaped array structure) packaged memory particles using X-rays when the memory is basically formed; PCB appearance inspection is performed manually under a magnifying glass; function The test content tested includes capacity, data access, SPD information, etc .; overall
Memory testing research background for embedded software memory testing
- Software memory testing [2] is an important means to improve software quality. According to statistics, 40% of the workload of foreign software development agencies is spent on software testing, and nearly half of the software development costs are used for software testing. For some software that requires high reliability and safety, such as nuclear reaction monitoring software and aerospace software, the test cost may be equivalent to 3-5 times the total cost of other software engineering costs.
- Compared with general application software testing, embedded software has its own characteristics (especially for embedded application software without an operating system):
- 1) Embedded software is software that can be run only in a specific hardware environment. Therefore, the most important purpose of embedded software testing is to ensure that embedded software can run more reliably under its specific hardware environment.
- 2) In addition to ensuring the high reliability of embedded software running in a specific hardware environment, embedded software testing must also ensure the real-time nature of the embedded software. For example, in industrial control, if the embedded software in some specific environments does not have the ability to respond in real time, it may cause huge losses.
- 3) In order to meet the requirements of high reliability, embedded software products are not allowed to leak memory during operation. Therefore, embedded software testing requires performance testing, GUI testing, and coverage analysis testing in addition to software. Memory for testing.
- Memory testing needs to test out-of-bounds memory access and memory resource leaks in the software. Out-of-bounds memory mainly includes array out-of-bounds reading and writing, "wild pointer operations", and stack overflow. There are many types of memory resource leaks, such as the allocated memory is not released, the open file is not closed, the socket is not closed, and the Windows window handle is not closed. Memory out-of-bounds and memory resource leakage are common and serious problems. It can be said that if the problems of memory out-of-bounds and memory resource leakage are solved, more than half of the bugs in the software will be eliminated.
- The memory test also needs to test the software's maximum memory usage and other resources to prevent the software from using resources that exceed the system's limits. At the same time, it is also necessary to test the software behavior of system resources in extreme cases, such as the situation after the program runs for a long time when the system memory resources are consumed by other applications.
Memory testing traditional software memory testing technology limitations
- Traditional software memory testing technology is divided into static testing and dynamic testing.
- Static testing can check the programming specifications of software code, analyze the static structure of the program, and measure the quality of the software (such as Testbed, etc.). With the help of static testing technology, the code can be more standardized and the structure more clear, but the relationship between various variables cannot be analyzed. When the program runs dynamically, possible runtime errors cannot be detected. Therefore, static testing and dynamic testing should be combined in traditional testing. However, dynamic testing has too many human factors, making dynamic testing impossible to achieve full testing, only to the extent that test cases are covered, and ensuring that the input of tested cases does not cause problems. At the same time, the problems found in dynamic testing are limited to phenomena. After the tester submits the bug, the developer needs to reproduce the bug and use the debugging tool to locate the bug. This takes a certain amount of time. Especially for occasional problems, more time is needed to debug and locate.
PolySpace Memory test PolySpace's semantic analysis technology
- PolySpace uses the latest semantic analysis technology, which relies on the rules provided by a large number of mathematical theorems to analyze the dynamic behavior of software. Semantic analysis technology does not use a simple exhaustive method, but has the ability to express the state of the program in a more general mode, and also provides rules to deal with it cleverly. When the application detects errors at runtime, the semantic analysis technology performs a detailed analysis of all dangerous operations and finds runtime errors in them as early as possible.
- The semantic analysis check includes the following aspects:
- 1) Type check. If the operator operates on an incompatible operand, the compiler must report an error message.
- 2) Control flow inspection. Control flow statements must transfer control to a legal place. For example, in C, a break statement takes control away from the smallest while, for, or switch statement that includes the statement. If there is no such statement including it, an error should be reported.
- 3) Consistency check. In many cases, objects are required to be defined only once.
- 4) Related name check. Sometimes, the same name must appear two or more times, and you must check that the names used in these places are the same.
- 5) Scope analysis. Analyze the scope of the elements to ensure that there is no problem with the use of the elements.