Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
2000-12-15
2004-08-10
Beausoliel, Robert (Department: 2113)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C712S227000
Reexamination Certificate
active
06775793
ABSTRACT:
TECHNICAL FIELD OF THE INVENTION
The present invention relates to software and hardware data exchange systems, and, more particularly, to exchanging data between a plurality of processors.
BACKGROUND OF THE INVENTION
Digital signal processing refers to the electronic processing of signals, or any application that involves rapid numeric processing. The software development for applications on digital signal processors is an iterative process. A compiler translates source code into an assembly language source code. An assembler translates the assembly language source code files into machine language object files. Source files may contain instructions, assembly directives, and macro directives. A linker combines the object files into a single executable object module or program. As the linker creates the executable module, it performs symbolic relocation and resolves external references. The linker accepts object files created by the assembler as input. The linker also accepts archive or library members and output modules created previously. The objective of this development process is to produce an executable module that may be stored and executed on a device or processor.
Debugging tools are available to test processors and the linked, executable code. Application software development requires a level of simulation, observability and controllability of the software within the hardware system being developed. Tools for debugging software in a system context include simulators and emulators.
An emulator is a software development tool that allows software under development to be executed, controlled, and viewed in a real hardware environment. An emulator may be hardware, software or both. An emulator allows a user to perform software and hardware development, and to integrate the software and hardware with the target processor.
The most desirable form of emulator allows software development to occur in the real product hardware environment. To allow this form of emulation, the target processor provides an emulation interface that accesses its internal state. An emulation interface provides control and access to every memory location and register of the target processor, and extends the target processor architecture as an attached processor. The emulator can start or stop execution of the target processor program. When the target is stopped, the emulator has the capability to load, inspect, and modify all processor registers. Program data and program memory may be upgraded or downloaded.
In current emulators, when the target processor is running, only a subset of these operations are available. The registers of a running processor are changing too rapidly to make sporadic readouts meaningful. For this reason, a current practice is to:
1. Add additional peripherals to the product hardware to export meaningful diagnostic data.
2. Add additional signals to the product hardware that can be monitored by expensive test equipment, which are usually referred to as logic analyzers.
3. Build interim versions of the product hardware for testing, then switch to the real product and hope the software still works properly.
As more hardware functionality is combined into single-chip products, it becomes increasingly difficult to employ logic analyzer solutions, and increasingly expensive to add temporary diagnostic peripherals.
Traditional emulation provides start and stop control of a target system, and the ability for the user to inspect the stopped system. There is an increasing need to interact with and diagnose the running system. As systems become more complex, it is difficult for a human user to monitor each system, every time it is tested. Testing occurs throughout the development and manufacturing cycle. A means of automating such interactions is desired. Such capability also has value to the product in the field. It allows configuration for a particular use, diagnosis for repair, or accumulation of operating information.
SUMMARY OF THE INVENTION
From the foregoing it may be appreciated that a need has arisen for exchanging data between processors while emulating software applications. In accordance with one embodiment of the present invention, a data exchange system and method for processors are provided that substantially eliminates and reduces the disadvantages and problems associated with conventional processors and software development emulation systems.
A data exchange system that exchanges data between processors is provided in accordance with one embodiment. The system includes a host processor and a target processor. Data is exchanged by forming a data pipeline between the target processor and the host processor. The data pipeline includes a data unit on the target processor, an emulator, and a device driver on the host processor. The data exchange system sends data through the data pipeline by transferring the data from a target memory on the target processor with the data unit to the emulator. The data exchange system transfers the data from the emulator to the first device driver. The data may be accessed by a client coupled to the host computer or a server on the host computer. The data exchange system also sends data back through the data pipeline by matching a request from the target processor to data from the host computer.
The present invention in accordance with one embodiment includes Real-Time Data exchange (RTDX™). RTDX enables data to be transferred between a digital signal processor (“DSP”) and a host computer without interfering with the running of the DSP software application. RTDX provides system developers real-time, continuous visibility as the DSP applications execute. Developers are able to monitor the DSP applications as they operate in the real world, and, thus, providing them with a means to monitor or analyze their DSP systems.
According to one embodiment the present invention, the traditional emulation capability is augmented with a real-time data transport mechanism. This mechanism enables emulation to be used with a running target processor to acquire information about the behavior of the real system. It also permits the injection of test controls and data to a running real-time system for purposes of system diagnosis and analysis. The augmented emulation system may perform both traditional and real-time development tasks at without increased cost compared to traditional emulators.
The present invention in accordance with one embodiment includes hardware support built around each processor system so operations may be executed within the processor system while doing analysis as the circuit runs. The present invention permits the software process to be run at full speed and real time as the emulator monitors the target processor. Further, the present invention allows the target processor assists in its own emulation. The hardware that enables enhanced emulation is embedded in the target processor, so that all of the operations of the target processors are monitored directly from the target processor itself. Thus, as processors execute an increasing amount of instructions per second and processor capabilities expand, the present invention allows the capabilities of the real-time, continuous emulation to expand along with the processor. The data rate range may be about 1 megabyte per second to about 2 megabytes per second. Alternatively, the data rate may be about 20 megabytes per second.
The present invention in accordance with one embodiment includes an enhanced emulator that allows a user to define and develop software in the environment of the target processor. The emulator reads inputs from a host PC and produces outputs to the PC as an assistant for the target processor, for the purpose of determining appropriate software and operations signals. The developer may interface additional host PC software to the emulator, to provide control and data signals to the target processor. The developer also may add software to the target processor that interacts with the emulator, for purposes of exchanging control and data information. Ultimately, when the ta
Deao Douglas
Keil Deborah
McGowan Robert
McLean Craig
Swoboda Gary
Beausoliel Robert
Brady III W. James
McCarthy Christopher
Telecky , Jr. Frederick J.
Texas Instruments Incorporated
LandOfFree
Data exchange system and method for processors does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data exchange system and method for processors, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data exchange system and method for processors will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3338175