EP1099166B1 - Data processor with a debug circuit - Google Patents
Data processor with a debug circuit Download PDFInfo
- Publication number
- EP1099166B1 EP1099166B1 EP00929518A EP00929518A EP1099166B1 EP 1099166 B1 EP1099166 B1 EP 1099166B1 EP 00929518 A EP00929518 A EP 00929518A EP 00929518 A EP00929518 A EP 00929518A EP 1099166 B1 EP1099166 B1 EP 1099166B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- debug
- data
- circuit
- exception condition
- data processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Definitions
- the invention relates to a data processing circuit with a debug feature and a method of using such a circuit.
- the debug circuit facilitates the analysis of the execution properties of programs at specific time points when specific conditions occur in the processor.
- a known debug circuit causes an interruption of normal program execution when a data value equal to a specified value is output to memory. It is also known to specify a bit-mask in addition to the value, the interruption occurring when the data value is equal to the specified value at the bit positions that are enabled by the bit-mask.
- a data processor such as a digital signal processor
- the data processor is able to process several arithmetic numbers in parallel in response to a vector instruction.
- a vector ADD instruction specifies two input operands. These operands are for example 64 bits long, the data processor handling these operands as containing four fields of 16 bit, each representing a 16 bit number. In response to the vector ADD instruction the data processor adds pairs of number from corresponding fields in the operands of the vector ADD instruction, without carry between different fields.
- the known debug circuit would make it possible to cause a debug interrupt when all fields of an operand have specified values, or when a mask-enabled field or combination of mask-enabled fields all have specified values.
- the debug circuit can be programmed to monitor data values in a more refined way than with a mask plus value. It is possible to take debug action whether one or more but less than all of a number of condinons is true. For example, one might program to take debug action as soon any one of a number of fields of a vector is zero, or if any one of the fields is bigger than a predetermined value or if one and no more than one of the number of fields meets such a condition etc.
- Figure 1 shows a data processor.
- the data processor contains an instruction processing circuit 10, a memory 12 and a debug circuit 14.
- the instruction processing circuit 10 has an address and control output and a data input/output coupled to the memory 12.
- the debug circuit 14 is coupled to the data input/output and the address and control output.
- the debug circuit 14 has an output coupled to an interrupt input of the instruction processing circuit 10 and a programming input coupled to the instruction processing circuit 10.
- the instruction processing circuit 14 processes a series of instructions from a program. These instructions may involve reading data from memory 12 and writing back data to memory 12.
- the debug circuit 14 monitors the data read and written between the instruction processing circuit 10 and memory 12.
- the debug circuit 14 tests a value of this data against a condition that has been programmed into the debug circuit. If the data satisfies the condition the debug circuit 14 takes debug action.
- Debug action may be the generation of an interrupt to the instruction execution circuit 10, for causing the instruction processing circuit 10 to stop normal processing of the program and to start executing a debug exception program.
- debug action as understood herein is not limited to the generation of interrupts: instead, for example, the debug circuit may capture additional data from the instruction processing circuit 10 and/or memory for later analysis (the additional data may include the program counter value, a timestamp, the content of registers etc.).
- the debug action may be to preserve data and/or address values passed between the memory 12 and the instruction processing circuit 10 during a window of instruction cycles in a time interval relative to the cycle in which the condition was met (such information may be stored for all cycles, only to be overwritten by data for other cycles unless the condition is met).
- debug action may involve incrementing a count value, and taking other debug action once the count value reaches a specified value. It will be clear that many different debug actions are conceivable, undertaken by exception only when the condition is met.
- a debug action is triggered as an exceptional result of instruction execution: triggering is not inherent to any instruction, but an exception generated when predefined circumstances occur during execution of an instruction. Thereupon the debug action facilitates inspection of the state of the data processor.
- Figure 1 shows the debug circuit 14 coupled to the connection between the instruction processing circuit 10 and the memory 12. This location is preferred because it provides a point where the most general access to processed data is available at the lowest cost. However, without deviating from the invention the debug circuit 14 may be located, elsewhere, for example between an ALU (Arithmetic Logic Unit, not shown) and a register file (not shown) in the processor or at an I/O port (not shown) etc.
- ALU Arimetic Logic Unit
- RISC memory load and store operations are performed only by load and store instructions.
- the circuit of figure 1 can take the debug action only in case of load and/or store instructions.
- the invention is not limited to RISC: the invention applies as well to processors that access memory as part of other instructions, such as arithmetic instructions.
- Figure 2 shows a part of the debug circuit 14 that is responsible for monitoring whether the condition is met.
- the part of the debug circuit contains a data input register 20, with outputs for respective fields of the data coupled to field condition testing circuits 22a-d respectively.
- the field condition testing circuits 22a-d have outputs to a logical combination circuit 24.
- the debug circuit has an address/control data register 21, coupled to an address/control data comparator 23.
- the address/control data comparator 23 also has an output connected to the logical combination circuit 24.
- the debug circuit has a programming circuit 26 to control the condition tested by the debug circuit 26.
- the programming circuit 26 has a reference value register 262 with respective field outputs coupled to the field condition testing circuits 22a-d respectively.
- the programming circuit 26 has a mask register 264 with respective field outputs coupled to the field condition testing circuits 22a-d respectively.
- the programming circuit 26 has field condition programming registers 268a-d coupled to function control inputs of field condition testing circuits 22a-d respectively.
- the programming circuit 26 has a logical combination function programming register 269 coupled to the logic combination circuit 24.
- the programming circuit 26 has a reference address/control data register 266 coupled to address/control data comparator 23.
- a control circuit 260 is coupled to the reference value register 262, the mask register 264, the reference address/control data register, the field condition programming registers 22a-d, the combinstion function programming register 269.
- One or more circuits like the one shown in figure 2 may be incorporated in the debug circuit 14 to test one or more conditions in parallel.
- data values passed between the instruction processing circuit 10 and the memory 12 is stored into data register 20.
- address and control data passed to the memory 12 is stored in address/control register 21.
- the data register 20 divides the data values into different fields, for example four fields of 16 bits in case of 64 bit wide data. Of course this is an example: instead of four fields (as shown in figure 2) other numbers of fields may used. Similarly a different data size may be used.
- the fields correspond to the fields used in vector instructions processed by the instruction processing circuit 10.
- Such vector processing instructions specify one or more operands and treat these operands as a set of fields, each field containing an independent number.
- the instruction processing circuit 10 adds numbers from corresponding fields of two operands for a number of fields in parallel. The results are written into different fields of a result operand.
- the debug circuit 14 performs tests on different vector components.
- the fields have a predetermined size and positions in the operand, or a selectable one of a number of predetermined sizes and positions (in case of vector operations for different size fields, e.g. for 8 8-bit vector components are for 4 16-bit vector components).
- Each condition testing circuit 22a-d tests the data from a different one of the fields. In the test, the data from the relevant field is compared with corresponding data from the reference data register 262. Optionally the condition testing circuit 22a-d masks out the comparison for a number of bits in the field according to a mask value in the mask register 264. Without deviating from the invention masking may be omitted.
- the type of comparison for each particular field is controlled by the content of the field condition programming register 268a-d for that particular field.
- the condition testing circuits 22a-d may provide for testing for any selectable condition from the following list: equality, not-equal, greater than, greater equal, less than, less equal. A smaller list of possible comparisons may also be used.
- a single field condition programming register may be used for all fields, or even a fixed type of comparison (e.g. test for equality) may be used.
- the address/control value comparator 23 compares the address used to load or store the data with a reference address from the reference address register and/or the address/control comparator 23 compares control signals used to transfer the data between the processor 10 and memory 12 with reference control signals (such signals may include read/write selection, access privileges, task ID etc.).
- the logical combination circuit 24 logically combines the results of the comparisons in the different field condition testing circuits 22a-d.
- a result signal of the logical combination is output from the logical combination circuit 24 and used to trigger debug action.
- the type of logical combination is programmed with the combination function programming register 269.
- debug action may be triggered for example if a logical OR of condition signals that signal that a condition has been met for different ones of the fields of a data value. In this case any one of the fields may trigger debug action.
- logical combinations may also be provided for, such as the logical OR of a selected subset of the fields, an exclusive OR of the condition signals (debug action if one and not more than one of the fields satisfies its condition), an exclusive or of the inverse of the condition signals (debug action if one and not more than one of the fields does not satisfy its condition) and so on.
- the logical combination circuit 24 also uses a result of the comparison performed by the address control/value comparator 23.
- debug action may be triggered only if a programmed address is involved and/or only incase of read from memory or in case of write to memory.
- this condition on addressing is also programmable.
- the programming information is loaded into the various registers 262, 264, 266, 268a-d, 269 by the control circuit. Preferably this is done under control of debug instructions executed by the instruction processing circuit.
- Debug instructions may be provided for enabling/disabling debug action, setting the reference data value, the mask value, condition control value and combination control value.
- a data processor has a debug circuit arranged to monitor whether operand data used for execution of a program meets a debug exception condition.
- the debug exception condition tests a two or more of multi-bit subfields of a vector operand independently. Debug action is taken if one or more of the multi-bit subfields meet the corresponding conditions.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
Description
Claims (9)
- A data processor comprisingan instruction processing circuit (10) for executing a program;a debug circuit (14) comprisinga receiver (20) arranged to receive a programmed debug exception condition;a monitor (23) arranged to monitor whether operand data used by the instruction processing circuit (10) for execution of the program meets the debug exception condition;a debug action taker (20) arranged to take action in response to detection that the operand data meets the debug exception condition, characterised in that
- A data processor according to Claim 1, wherein the debug circuit (14) is arranged to use a debug exception condition that specifies taking debug action when a logical OR of the respective conditions is true.
- A data processor according to Claim 1, wherein the instruction processing circuit (10) is arranged to process a vector instruction that addresses the operand value, processing the multi-bit subfields as mutually independent arithmetic numbers.
- A data processor according to Claim 1, wherein the debug circuit (14) is arranged to monitor whether operand data of a store to memory instruction and/or of a load from memory instruction meets the debug exception condition.
- A data processor according to Claim 1, wherein the conditions on the respective multi-bit subfield are relational arithmetic conditions comparing the multi-bit subfields with respective numbers for those respective multi-bit subfields.
- A data processor according to Claim 5, wherein the relational arithmetic condition is at least one of equality, non-equality, greater than, greater equal, less than or less equal.
- A data processor according to Claim 1, wherein the multi-bit subfields make up the entire operand data.
- A data processor according to Claim 1, wherein the debug circuit (14) is arranged to receive the debug exception condition with a field selection indication, indicating for which ones of one or more of the multi-bit subfields the conditions of the multi-bit subfield must be satisfied to trigger debug action.
- A method of processing data with a data processor device, the method comprisingreceiving a programmed debug exception condition;processing instructions of a program;monitoring whether operand data used by the instruction processing circuit during execution of the program meets the debug exception condition;taking debug action in response to detection that the operand data meets the debug exception condition,
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00929518A EP1099166B1 (en) | 1999-05-19 | 2000-05-01 | Data processor with a debug circuit |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP99201568 | 1999-05-19 | ||
EP99201568 | 1999-05-19 | ||
EP00929518A EP1099166B1 (en) | 1999-05-19 | 2000-05-01 | Data processor with a debug circuit |
PCT/EP2000/004195 WO2000072152A1 (en) | 1999-05-19 | 2000-05-01 | Data processor with a debug circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1099166A1 EP1099166A1 (en) | 2001-05-16 |
EP1099166B1 true EP1099166B1 (en) | 2004-08-04 |
Family
ID=8240213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP00929518A Expired - Lifetime EP1099166B1 (en) | 1999-05-19 | 2000-05-01 | Data processor with a debug circuit |
Country Status (6)
Country | Link |
---|---|
US (1) | US7293258B1 (en) |
EP (1) | EP1099166B1 (en) |
JP (1) | JP2003500740A (en) |
KR (1) | KR100705847B1 (en) |
DE (1) | DE60012661T2 (en) |
WO (1) | WO2000072152A1 (en) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1229418A (en) * | 1984-09-04 | 1987-11-17 | Edwin P. Crabbe, Jr. | Arrangement for a hardware matcher |
US5490262A (en) * | 1989-09-01 | 1996-02-06 | Oki Electric Industry Co., Ltd. | Dual cache memory device with cache monitoring |
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US5255385A (en) * | 1990-02-26 | 1993-10-19 | Hitachi, Ltd. | Method of testing program, and compiler and program testing tool for the method |
US5560009A (en) * | 1990-09-21 | 1996-09-24 | Hewlett-Packard Company | Generating symbolic debug information by merging translation and compiler debug information |
JPH04361335A (en) * | 1991-06-10 | 1992-12-14 | Nec Corp | Write control circuit for tracer |
JPH05282161A (en) * | 1992-03-31 | 1993-10-29 | Nec Corp | Information processor |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
US5517436A (en) * | 1994-06-07 | 1996-05-14 | Andreas; David C. | Digital signal processor for audio applications |
US5717851A (en) * | 1994-08-15 | 1998-02-10 | Motorola, Inc. | Breakpoint detection circuit in a data processor and method therefor |
US5611062A (en) * | 1995-03-31 | 1997-03-11 | International Business Machines Corporation | Specialized millicode instruction for string operations |
US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
JP3846939B2 (en) * | 1995-08-30 | 2006-11-15 | フリースケール セミコンダクター インコーポレイテッド | Data processor |
JPH09218801A (en) * | 1995-08-30 | 1997-08-19 | Motorola Inc | Data processor |
US5870582A (en) * | 1997-03-31 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched |
JPH117398A (en) * | 1997-06-13 | 1999-01-12 | Nec Corp | Program debugging device |
US6175913B1 (en) * | 1997-09-12 | 2001-01-16 | Siemens Ag | Data processing unit with debug capabilities using a memory protection unit |
KR100287366B1 (en) * | 1997-11-24 | 2001-04-16 | 윤순조 | Portable device for reproducing sound by mpeg and method thereof |
US6681315B1 (en) * | 1997-11-26 | 2004-01-20 | International Business Machines Corporation | Method and apparatus for bit vector array |
US6426746B2 (en) * | 1998-03-31 | 2002-07-30 | Intel Corporation | Optimization for 3-D graphic transformation using SIMD computations |
-
2000
- 2000-05-01 DE DE60012661T patent/DE60012661T2/en not_active Expired - Lifetime
- 2000-05-01 KR KR1020017000774A patent/KR100705847B1/en not_active IP Right Cessation
- 2000-05-01 JP JP2000620478A patent/JP2003500740A/en active Pending
- 2000-05-01 WO PCT/EP2000/004195 patent/WO2000072152A1/en active IP Right Grant
- 2000-05-01 EP EP00929518A patent/EP1099166B1/en not_active Expired - Lifetime
- 2000-05-17 US US09/572,995 patent/US7293258B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE60012661D1 (en) | 2004-09-09 |
US7293258B1 (en) | 2007-11-06 |
DE60012661T2 (en) | 2005-08-04 |
KR20010071965A (en) | 2001-07-31 |
KR100705847B1 (en) | 2007-04-09 |
WO2000072152A1 (en) | 2000-11-30 |
JP2003500740A (en) | 2003-01-07 |
EP1099166A1 (en) | 2001-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5889981A (en) | Apparatus and method for decoding instructions marked with breakpoint codes to select breakpoint action from plurality of breakpoint actions | |
US5675729A (en) | Method and apparatus for performing on-chip measurement on a component | |
JP5546859B2 (en) | Debug circuit comparing processor instruction set operating modes | |
EP0702297B1 (en) | A data processor with breakpoint circuit | |
US7334161B2 (en) | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus | |
US4601008A (en) | Data processing system | |
US5257358A (en) | Method for counting the number of program instruction completed by a microprocessor | |
US6925584B2 (en) | Systems and methods for testing processors | |
US5638382A (en) | Built-in self test function for a processor including intermediate test results | |
US7082486B2 (en) | Method and apparatus for counting interrupts by type | |
US20070136565A1 (en) | Stack underflow debug with sticky base | |
US7010672B2 (en) | Digital processor with programmable breakpoint/watchpoint trigger generation circuit | |
WO2007112162A2 (en) | Selective instruction breakpoint generation | |
US5931956A (en) | Digital circuit using memory for monitoring signals for occurrences of predefined breakpoint conditions | |
US6052801A (en) | Method and apparatus for providing breakpoints on a selectable address range | |
US8010774B2 (en) | Breakpointing on register access events or I/O port access events | |
EP1099166B1 (en) | Data processor with a debug circuit | |
GB2393272A (en) | Controlling performance counters within a data processing system | |
JPS58158752A (en) | Data processing system with monitor for program and data | |
JPH05210534A (en) | Instruction fetch trigger circuit | |
KR19990079356A (en) | Filtering Circuitry to Detect Range-Out Signals Generated by Pre-Patches of Microprocessors | |
JPH0644099A (en) | Method and device for monitoring and controlling emulation execution in computer device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
17P | Request for examination filed |
Effective date: 20010530 |
|
17Q | First examination report despatched |
Effective date: 20020729 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REF | Corresponds to: |
Ref document number: 60012661 Country of ref document: DE Date of ref document: 20040909 Kind code of ref document: P |
|
LTIE | Lt: invalidation of european patent or patent extension |
Effective date: 20040804 |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20050506 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: TP |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E Free format text: REGISTERED BETWEEN 20090507 AND 20090513 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E Free format text: REGISTERED BETWEEN 20101007 AND 20101013 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E Free format text: REGISTERED BETWEEN 20111013 AND 20111019 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: TP Owner name: NYTELL SOFTWARE LLC, US Effective date: 20120521 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 60012661 Country of ref document: DE Owner name: NYTELL SOFTWARE LLC, US Free format text: FORMER OWNER: NXP B.V., EINDHOVEN, NL Effective date: 20120516 Ref country code: DE Ref legal event code: R082 Ref document number: 60012661 Country of ref document: DE Representative=s name: MUELLER HOFFMANN & PARTNER PATENTANWAELTE MBB, DE Effective date: 20120516 Ref country code: DE Ref legal event code: R081 Ref document number: 60012661 Country of ref document: DE Owner name: NYTELL SOFTWARE LLC, WILMINGTON, US Free format text: FORMER OWNER: NXP B.V., EINDHOVEN, NL Effective date: 20120516 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E Free format text: REGISTERED BETWEEN 20131121 AND 20131127 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 17 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 18 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 19 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20190412 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20190417 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20190430 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R071 Ref document number: 60012661 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20200430 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20200430 |