System for providing real-time code coverage

Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S045000, C703S028000, C717S152000

Reexamination Certificate

active

06314529

ABSTRACT:

TECHNICAL FIELD
The present invention relates to the field of computer diagnostic and test systems, and more particularly, to a system for providing real-time code coverage data on a monitored memory bank.
BACKGROUND OF THE INVENTION
In today's digital world, where virtually any application may be implemented via digital electronic circuits, it is imperative to be able to efficiently design, test and diagnose software code prior to commercial implementation. It is also important to be able to efficiently diagnose and debug existing systems which are malfunctioning. Accordingly, it is known to monitor program code loaded in memory as it is being accessed and executed. This is preferably done by monitoring the signals present on the address lines (i.e., bus) or data lines connected to the memory being monitored. The data collected from monitoring the memory accesses can be grouped into two main categories:
1.) trace data; and
2.) code coverage data.
Trace data relates to information regarding the actual data present on the address lines and/or control lines, and/or data lines at any given point of program code access and execution. Trace data allows a “snap shot” of the signals present on the buses of the monitored system at any given point in time. By examining the trace data, the developer or tester may determine whether the system is providing the right signals on the buses at any given time.
Code coverage data relates to information summarizing the accesses to the monitored memory during program execution. Code coverage data allows developers and testers to determine which sections and locations of the memory (e.g., Read Only Memory, “ROM”) are being accessed during program execution.
Known systems for obtaining trace data or code coverage data do not allow for the real-time collection of test data that provides information on test program execution paths. For example, see U.S. Pat. No. 5,321,828 which describes an in-circuit emulator designed to detect function calls to create a histogram and code coverage profile from that data. See U.S. Pat. No. 4,674,089 which describes a silicon based debugging system. Additionally, many of the code coverage methods are software based, often requiring special software “branch analysis” coding. For example, see U.S. Pat. No. 4,914,659 where the test code itself is specially coded with branch analysis code for the purpose of obtaining test data. These systems do not allow for the real-time collection of code coverage and trace data that allows use of user-defined, multi-bit, code coverage data.
Known diagnostic systems have, for example, been implemented with emulation circuits for testing program code loaded in an emulated ROM memory. Such ROM emulators have particular applicability in embedded controller systems (e.g., a microwave controller) where program code is loaded in ROM memory. When these embedded systems malfunction, they may be diagnosed by placing an emulated ROM chip into the ROM socket of the embedded “target” system and running tests through the emulated ROM. The emulated ROM, usually random access memory (RAM), may be loaded with program (test) data from a host computer system. Trace data and code coverage may be obtained from the running of the test program to determine problems in the target system. The efficiency of these emulation/diagnosis systems greatly reduce the cost of producing program code, hardware systems, and diagnosing malfunctioning existing systems. Although code coverage, per se, is not a new innovation, real-time code coverage, where memory access data is collected in a memory chip in real-time and where the code coverage data provides rich execution path information, would be an advancement in the art. The present invention allows the tracing of code execution paths by storing a user-defined, multi-bit pattern into a “code coverage” memory. The code coverage data is collected in real-time and stored for further analysis and processing. By using multiple bit code coverage data, the user may vary the bit patterns of the code coverage data for different test runs to “paint” different execution paths in the code coverage memory.
The present invention also provides for real-time trace of a monitored memory (e.g., an emulated memory) for analyzing bus activity. In the preferred embodiment of the present invention, the address lines of the emulation circuit are used as inputs to both the code coverage memory and trace memory.
Another feature of the present invention is that the code coverage memory (i.e., memory used to store code coverage data) may alternatively be used for fine trace control. In other words, in the “fine trace mode”, fine trace data stored in the code coverage memory is read (as opposed to being written as in the “code coverage mode”) upon which a fine trace control circuit processes the retrieved fine trace data to control tracing functions.
Accordingly, the present invention provides a versatile diagnostic system that, unlike known systems:
1.) allows for real-time code coverage (i.e., information regarding memory accesses);
2.) allows for the use of a separate code coverage memory where code coverage data is stored in real-time;
3.) allows for the tracing of execution paths of tested programs by storing user defined, multiple-bit patterns into the code coverage memory;
4.) allows for real-time trace;
5.) allows for fine trace control using the code coverage memory;
6.) performs all of the above functions in conjunction with an emulated circuit, where an emulated ROM is monitored according to the present invention;
7.) allows for code coverage read and trace data dump for further processing by a host computer; and
8.) allows for the collection of informative code coverage and trace data in real-time for efficient design, testing, and diagnosis of digital systems and program code.
SUMMARY OF THE INVENTION
The present system allows for the collection of real-time code coverage data on a memory monitored by the system, the code coverage data providing information regarding accesses to the monitored memory, the monitored memory being connected to address lines and data lines, the system comprising: a code coverage memory, the code coverage memory having address inputs and data inputs, wherein signals on the address lines connected to the monitored memory are received at the address inputs of the code coverage memory; and a code coverage control circuit for providing predetermined code coverage data to the data inputs of the code coverage memory. In a preferred embodiment, the code coverage memory is comprised of multiple locations, each of the locations having a predetermined width, and where the code coverage control circuit is adapted to provide predetermined code coverage data in real-time concurrently with the accesses to the monitored memory. The code coverage data is comprised of predetermined bit patterns providing information on the accesses to the monitored memory, where the predetermined bit patterns may be varied for different tests run through the monitored memory.
Additionally, in a preferred embodiment, the system is further comprised of: a trace memory, where the trace memory has address inputs and data inputs, and wherein signals on the address lines connected to the monitored memory are received at the data inputs of the trace memory for storage in the trace memory; and a trace control circuit in electrical communication with the address inputs of the trace memory, wherein the trace control circuit is adapted to output signals to the address inputs of the trace memory to change the location in the trace memory to which the signals on the address lines connected to the monitored memory are stored. In an alternative embodiment, trace data may be collected on the data lines of the monitored memory and/or other external data signals of a target system (e.g. RAM access, control signals).
In addition to the features mentioned above, objects and advantages of the present invention will be readily apparent upon a reading of the following description.


REFERENCES:
patent: 4435

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System for providing real-time code coverage does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System for providing real-time code coverage, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for providing real-time code coverage will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2602879

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.