This invention relates generally to the use of emulation units to perform test and debugging operations on a digital signal processor target system and, more particularly, to providing a method for optimizing JTAG (Joint Test Action Group) transfers between a test and debug unit and target processor. The present invention improves the performance of the test and debug unit in boundary scans.
In the past, debugging digital signal processors was done using a scan controller that converts parallel information from a debug unit into a serial data stream, the serial data being sent to the target processor. The target processor can also return a serial data stream, which the scan controller converts back into parallel words which the debug unit processes. The data values returned were either constrained, so only the expected data value was returned, or identified by some sort of data type field, embedded in the returned data stream.
Constraining the data value to a fixed type, eliminates the problem of identifying the type of data returned, but requires multiple scans for all possible data types in order to insure that all data to be returned from the digital signal processor is scanned out. An alternative is to scan out a data available word, identifying all available data values ready to scan out, thus eliminating the scans which do not have data ready to scan out. The disadvantage of this approach is that a separate scan for the data available word must be performed on a regular basis.
Returning a data type field with each data word allows the digital signal processor to return data values asynchronously to the scan commands being sent to it by the scan controller. This approach, while more complex, supports multiple simultaneous communication channels with the digital signal processor. If the scan controller does not receive the expected data type, the data value and type returned are stored for processing by another communication channel and the original scan is retried until it is successful.
The scanning out of unsolicited data by the digital signal processor in response to a scan command causes the debug unit to read the value returned, along with the data type and determine if the data value was the intended response of a value for another communication channel. This increases the software overhead and complexity for each scan, lowering the debug system performance.
Referring to
Referring to
Referring to
In the past, configurations employing a JTAG emulation unit to test and debug a digital signal processor have had to issue a transaction, such as a read memory command, and then issue additional commands to retrieve the data or to determine if the original transaction was successful. The delay between the commands was usually sufficient to allow the target system the opportunity to complete the transaction. Transactions are usually initiated when the JTAG state (machine) transitions through “Update IR” to “Idle” or Pause. (The state diagram for the JTAG test and debug procedure is shown in FIG. The four stable, non-shift JTAG states are indicated in this Figure as states 41, 42, 43 and 44.) New transactions are initiated by entering the “Scan” state. When the target system does not respond in a timely manner, the transaction will fail, and the test and debug unit 10 must retry the transaction. The transaction retries impact the performance of the test and debug configuration and, in the situation involving large data transfers with many retries, can result in a significant degradation of the configuration performance.
A need has been felt for apparatus and an associated method having the feature of being able to improve the performance of the transfer of the signal groups between a test and debug unit and a target processor. It is yet another feature of the apparatus and associated method to disposition a plurality of signal groups being transferred from a target processing unit to the test and debug unit. It is yet another feature of the apparatus and associated method to separate fixed signal groups, expected signal groups, and other signal groups transferred from a target processor to a test and debug unit. It is a more particular feature of the apparatus and associated method to provide a storage unit for each of the signal groups, the fixed signal groups, the expected signal groups, and the other signal groups.
The aforementioned features are accomplished, according to the present invention, by including a status field in signal groups transferred from the target processor as a result of JTAG scan procedure. In addition, software program provides an expected status for the signal groups transferred from the target processor as the result of the JTAG scan procedure. Depending on the status field of the transferred signal group, the signal groups are placed in one of three storage units. Fixed signal groups are stored in one storage unit, expected signal groups are stored in a second storage unit and other signal groups, along with the status field, are stored in the third storage unit. The test and debug processing unit can analyze the results of the scan procedures based on the results stored in the storage units. The contents of the third storage unit can also be used to analyze the operation of the target processing unit, the status field permitting identification of the origin of the signal groups.
Other features and advantages of present invention will be more clearly understood upon reading of the following description and the accompanying drawings and the claims.
1. Detailed Description of the Figures
Referring next to
Referring to
Referring to
2. Operation of the Preferred Embodiment
In the preferred embodiment, the memory unit in includes two buffers hold the data values returned and a set of fixed (four 16-bit registers) implemented as part of a RAM. The invention allows the software to select the desired type of data expected to be received from the target processing unit. When a scan is performed, the digital signal processor returns a 32-bit data value and a 6-bit mini-status which identifies the type of data returned.
The data value is returned first and gets stored in the fixed registers and is also written to both buffers. When the mini-status value is returned, the scan control unit hardware invalidates the writes to the buffer the data value does not belong to, possibly both, if the value is supposed to end up in the registers. If the data value is the expected value, the mini-status is discarded. If the data value is not the expected value, the mini-status is stored in the secondary buffer to identify the data type returned.
While the invention has been described with respect to the embodiments set forth above, the invention is not necessarily limited to these embodiments. Accordingly, other embodiments, variations, and improvements not described herein are not necessarily excluded from the scope of the invention, the scope of the invention being defined by the following claims.
This application claims priority under 35 USC §119(e)(1) of Provisional Application No. 60/517,579 (TI-36185P) filed Nov. 05, 2003.
Number | Date | Country | |
---|---|---|---|
60517579 | Nov 2003 | US |