US7607044B2 - Monitoring of a program execution by the processor of an electronic circuit - Google Patents
Monitoring of a program execution by the processor of an electronic circuit Download PDFInfo
- Publication number
- US7607044B2 US7607044B2 US11/509,304 US50930406A US7607044B2 US 7607044 B2 US7607044 B2 US 7607044B2 US 50930406 A US50930406 A US 50930406A US 7607044 B2 US7607044 B2 US 7607044B2
- Authority
- US
- United States
- Prior art keywords
- data
- program
- execution
- monitoring
- electronic circuit
- 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, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
Definitions
- the present invention relates to a method for monitoring execution of a program by a processor of an electronic circuit. It also relates to an electronic circuit comprising a programmable processor and a device for debugging a program, that are adapted for an implementation of such a method.
- a great number of appliances incorporate an electronic board designed specifically for a particular application, which corresponds to the use of the appliance or to a secondary function related to this use.
- a board takes the form of a printed electronic circuit (or PCB standing for “Printed Circuit Board”) which bears discrete and/or integrated electronic components, one of the latter being a processor.
- PCB standing for “Printed Circuit Board”
- Such a processor is commonly integrated into an ASIC (standing for “Application Specific Integrated Circuit”).
- the processor is generally programmable.
- different functions can be offered by identical but differently programmed boards.
- One and the same model of board can then be used in appliances of different clients, thereby enabling the unit price of the boards to be considerably reduced.
- appliances which incorporate an electronic board may be cited, by way of example, hard disk readers, modems, mobile telephones, washing machines, alarm clocks, etc.
- Different models of appliances of one and the same type for example different hard disk readers, operate in a manner which varies as a function of the model of the appliance.
- These operational variants are obtained, in particular, through different programmings of the processors of the boards incorporated into these appliances, as a function of the model of these appliances.
- the programming of the processor is performed by the manufacturer of the appliance (i.e., the client), and not by the manufacturer of the board.
- the client uses a debugging tool, which makes it possible to search for and to correct any errors present in the program.
- the debugging tool is linked to the programmed processor, and makes it possible to control the execution of parts of the program by the processor. It identifies the programmed commands that are executed in succession, and affords access to states of certain elements of the processor such as the content of the registers, the state of certain buses, address values pointed at, etc. By knowing these states the programmer is able to modify the program, so as to correct errors present in the initial version.
- the electronic circuit comprises, in addition to the processor, a module for collecting data for the monitoring of the execution of the program. Included among the monitoring data collected are the states of elements of the processor at various instants during the execution of the program, as mentioned above.
- the IEEE 5001 standard known to the person skilled in the art under the name “Nexus”, prescribes a selection of the monitoring data. It moreover fixes the structure of these monitoring data, and also the manner in which they are transmitted to the program debugging tool.
- the set of the selected monitoring data is also called the execution trace of the program and data associated with this program.
- the bit rate of transmission of the monitoring data to the debugging tool depends on the speed of operation of the processor, on the speed of transmission of the monitoring data and on the dimension of the linking bus between the board which bears the processor and the debugging tool.
- the transmission rate is 300 megabytes per second.
- An embodiment of the present invention includes a method for debugging a program compatible with a high speed of execution of the program, and which entails no substantial increase in the retail price of each circuit.
- One embodiment of the invention includes a method for monitoring the execution of a program by a processor of an electronic circuit, comprising the following steps:
- the external connection comprises at least one serial connection
- the step of transmitting the monitoring data comprises the following substeps:
- the monitoring data are transmitted in serial form between the circuit which incorporates the processor and the debugging tool. They are therefore transmitted with the bit rate characteristic of the serial connection. Depending on the serial connection used, this bit rate may be much higher than the greatest transmission bit rates obtained by the transmission modes currently used for data for monitoring.
- a first advantage results from the mastering of the serialization devices which has been achieved to date, which makes serial transmission into a safe, efficient and inexpensive mode of transmission.
- a second advantage resides in the reduced number of transmission wires which a serial connection comprises. Specifically, a serial connection may comprise five wires only, whereas a 16-byte bus comprising 20 wires is currently used for the connection between a programmable-processor circuit and a debugging tool. This results in a reduction in the price of the circuit.
- serialization units are used in parallel with one another to serialize respective parts of the monitoring data, a common clock unit being used to clock said respective parts of the monitoring data serialized by the serialization units.
- the transmission of the serialized monitoring data is carried out simultaneously via several serial connections included in the external connection and connected respectively to said serialization units.
- restoration units are used in parallel with one another to restore said respective parts of the monitoring data. Even higher transmission bit rates are thus obtained.
- Another embodiment of the invention further relates to a hard disk controller which comprises an electronic circuit as described hereinabove.
- Another embodiment of the invention finally relates to a device for debugging a program executed in an electronic circuit external to said device, the debugging device comprising:
- Such a program debugging device, or debugging tool is adapted for monitoring the execution of a program by a processor according to a monitoring method in accordance with the present invention.
- FIG. 1 represents an electronic circuit connected to a debugging tool according to a first embodiment of the invention
- FIG. 2 represents an electronic circuit connected to a debugging tool according to a second embodiment of the invention.
- a mass storage device 10 comprises a data recording unit 11 , for example a hard disk, denoted HD.
- the storage device 10 furthermore comprises an electronic circuit 13 , which may be embodied in the form of PCB board.
- the circuit 13 is the controller of the hard disk 11 .
- It comprises a programmable processor 14 , denoted CPU, that can be borne by the PCB board.
- the processor 14 is connected by a first connection 12 to the recording unit 11 .
- the connection 12 transmits instructions for controlling the recording unit 11 , as well as data read from or intended to be recorded in the unit 11 .
- a second connection, referenced 19 connects the processor 14 to an external device (not represented), which uses the data read from the recording unit 11 , or which supplies data intended to be recorded in the unit 11 .
- the circuit 13 furthermore comprises circuit blocks as follows:
- the serialization unit 17 may possibly be connected to the collection unit 15 via a protocol adapter 16 , denoted ADAPT. in the figure.
- the adapter 16 performs a conversion of protocols for data exchanges between the output interface of the collection unit 15 and the input interface of the serialization unit 17 .
- the processor 14 , the collection unit 15 , the serialization unit 17 and, as the case may be, the adapter 16 may be produced in a single integrated circuit.
- the connections between these circuit blocks are then realized in integrated form. This results in the elimination of pad-like terminals necessary for connecting these circuit blocks to one another.
- the quantity of silicon substrate necessary for embodying the units 15 - 17 is decreased accordingly.
- the circuit 13 is also easier to assemble.
- the circuit 13 then possesses a particularly low retail price.
- a program debugging device 30 comprises a PCB board 31 and a smart unit 36 .
- the board 31 bears a serial connector 32 , also denoted CONN., a serialized data restoration unit 33 , denoted DESER., and a logic unit 34 , denoted CPLD (standing for “Complex Programmable Logic Device”).
- the restoration unit 33 is connected at input to the connector 31 and at output to an input of the logic unit 34 .
- the logic unit 34 is connected at output to a port of the smart unit 36 through a connection 35 . Furthermore, at input it may possibly incorporate an adapter which fulfils an inverse function to that of the adapter 16 .
- the smart unit 36 hosts software for debugging programs, of a type known to the person skilled in the art. It allows a programmer to track execution of a program by the processor 14 , with the help of data monitoring this execution of the program, and to possibly modify the program itself.
- the mass storage device 10 and the debugging tool 30 are linked to one another through a serial connection 20 , arranged between the connectors 18 and 32 .
- the connection 20 transmits signals corresponding to data monitoring the execution of the program that are collected by the module 14 and transmitted to the debugging tool 30 . It may also transmit command signals for controlling the starting and stopping of the execution of a program by the processor 14 . Such commands are produced by the debugging tool 30 and intended to the processor 14 . Instructions for programming the processor 14 may possibly be produced with the help of the debugging tool 30 . Signals corresponding to such instructions are also transmitted via the connection 20 .
- the serial connection 20 is of one of the types known to the person skilled in the art.
- 1 byte cast into serial form corresponds to 10 bits.
- the bit rate necessary for the transmission of the data serialized through the connection 20 is at least 3 gigabits per second.
- Serial connections, serialization units and serialized data restoration units that allow such a bit rate are available today. Some of these serial connections possess five wires: two differential signal wires, two power supply wires and an electrical earth wire.
- a serialization unit adapted for such a transmission bit rate occupies a portion of substrate of around 0.25 square millimeters in area. It is therefore smaller than the entirety of the pads necessary for connecting an integrated circuit to a two-byte bus.
- the transmission of the monitoring data through the connection 20 may then be performed in real time during the execution of the program by the processor 14 .
- a programmer using the debugging tool 30 can be provided with all the larger a quantity of monitoring data the greater the transmission bit rate between the circuit 13 and the debugging tool 30 .
- the transmission bit rate between the circuit 13 and the debugging tool 30 is multiplied by 4. It is understood that this value of multiplication of the transmission bit rate is taken by way of example, and that the principle set forth hereinbelow may be used to obtain other values of transmission bit rate.
- FIG. 1 The main elements of FIG. 1 are also to be found in FIG. 2 : the electronic circuit 13 constituted by a PCB board, which incorporates a programmable processor 14 , a collection module 15 , a protocol adapter 16 and a connector 18 , as well as the debugging tool 30 which comprises a PCB board 31 , with a logic unit 34 and a connector 32 .
- the electronic circuit 13 constituted by a PCB board, which incorporates a programmable processor 14 , a collection module 15 , a protocol adapter 16 and a connector 18 , as well as the debugging tool 30 which comprises a PCB board 31 , with a logic unit 34 and a connector 32 .
- connection 20 is replaced with several serial connections, for example four serial connections referenced 20 a - 20 d.
- the circuit 13 then comprises several monitoring data serialization units 17 a - 17 d . These serialization units 17 a - 17 d are connected in parallel with one another between the collection unit 15 , or the protocol adapter 16 as the case may be, and respective serial connection terminals 18 a - 18 d of the connector 18 .
- the circuit 13 furthermore comprises a unit 170 for clocking the serialized monitoring data.
- the clocking unit 170 is common so as to clock the serialization units 17 a - 17 d .
- the clocking unit 170 is denoted CLK in FIG. 2 .
- the debugging tool 30 (only the PCB 31 part is shown in FIG. 2 ) then comprises several units for restoring serialized data, referenced 33 a - 33 d , connected in parallel with one another between respective serial connection terminals 32 a - 32 d of the connector 32 and the logic unit 34 .
- the restoration units 33 a - 33 d may be clustered together within a data restoration module 33 . Such a clustering makes it possible to use certain components in a manner shared between the restoration units 33 a - 33 d .
- the data restoration module 33 may be carried by the board 31 .
- the restoration units 33 a - 33 d are arranged within the module 33 to transmit, to the logic unit 34 , data restored in the form of a recombined data stream.
- the clocking unit 170 used to clock the serialized monitoring data may possibly moreover be used to clock another serialization of data produced by the execution of a part of the program by the processor 14 .
- a supplementary serialization unit, referenced 17 e is connected at input to a data output bus in the processor 14 , referenced 19 a .
- a logic unit 190 denoted LOG., may possibly be disposed on the bus 19 a .
- Data produced by the execution of the program part by the processor 14 are then transmitted through a serial connection 19 b to an external device (not represented).
- the clock unit 170 and the serialization units 17 a - 17 e are advantageously clustered together within the serialization module 17 .
- the serialization module 17 can also comprise a data restoration unit 17 f , so as to restore data transmitted in serial form via the connection 19 b and intended to the processor 14 so as to be used during the execution of the part of the program.
- serialization module 17 comprising the units 17 a - 17 f and 170 , has been produced on a silicon substrate. It occupies a portion of substrate of around 2 square millimeters.
- the bit rate of transmission of the monitoring data between the PCB boards 13 and 31 is n ⁇ 300 megabytes per second, n being the number of serial connections used to link the cards 13 and 31 .
- n serial connections operates at 3 gigabits per second.
- the invention can be implemented in respect of an electrical circuit comprising a processor operating at any speed, in particular higher than 150 megahertz.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
-
- connecting the circuit to a device for debugging the program using a connection external to the circuit;
- executing a part at least of the program;
- collecting, within the circuit, data monitoring the execution of said part of the program; and
- transmitting the monitoring data to the device for debugging the program via the external connection.
-
- serializing the monitoring data within the circuit;
- transmitting the serialized monitoring data; and
- restoring the monitoring data within the device for debugging the program.
-
- a programmable processor;
- a unit for collecting data monitoring the execution of a program by the processor; and
- a serial connector arranged to transmit collected monitoring data,
- a unit for serializing the monitoring data collected, connected at input to the collection unit and at output to the connector. Such a circuit is adapted for implementing according to the invention a method for monitoring the execution of a program by the processor of the circuit.
-
- a serial connector arranged to receive data monitoring the execution of a program part in said circuit;
- a unit for processing the monitoring data;
- a logic unit connected at output to a port of the unit for processing the monitoring data; and
-
- a
collection unit 15 connected at input to an output of theprocessor 14 so as to collect data monitoring the execution of a program by theprocessor 14. Thecollection unit 15 may comply with the “Nexus” standard introduced hereinabove; - a
unit 17 for serializing the data collected, and denoted SER. in the figure. Theserialization unit 17 is connected at input to an output of thecollection unit 15; and - a
serial connector 18, denoted CONN. in the figure, connected to an output of theserialization unit 17.
- a
Claims (24)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR04/01790 | 2004-02-23 | ||
| FR0401790 | 2004-02-23 | ||
| PCT/FR2005/000358 WO2005091144A2 (en) | 2004-02-23 | 2005-02-16 | Monitoring of a program execution by the processor of an electronic circuit |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2005/000358 Continuation WO2005091144A2 (en) | 2004-02-23 | 2005-02-16 | Monitoring of a program execution by the processor of an electronic circuit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20070043979A1 US20070043979A1 (en) | 2007-02-22 |
| US7607044B2 true US7607044B2 (en) | 2009-10-20 |
Family
ID=34944903
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/509,304 Expired - Lifetime US7607044B2 (en) | 2004-02-23 | 2006-08-23 | Monitoring of a program execution by the processor of an electronic circuit |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US7607044B2 (en) |
| EP (1) | EP1723525A2 (en) |
| WO (1) | WO2005091144A2 (en) |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0840220A1 (en) | 1996-10-31 | 1998-05-06 | STMicroelectronics Limited | An integrated circuit device and method of communication therewith |
| US5978937A (en) * | 1994-12-28 | 1999-11-02 | Kabushiki Kaisha Toshiba | Microprocessor and debug system |
| EP1172733A1 (en) | 2000-07-14 | 2002-01-16 | Texas Instruments Incorporated | Method and apparatus for transmitting control information across a serialized bus interface |
| US6502209B1 (en) * | 1998-05-13 | 2002-12-31 | Axis Ab | Chip with debug capability |
| US6574590B1 (en) * | 1998-03-18 | 2003-06-03 | Lsi Logic Corporation | Microprocessor development systems |
| US6687857B1 (en) * | 1999-11-10 | 2004-02-03 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer which can execute a monitor program supplied from a debugging tool |
| US20040221201A1 (en) | 2003-04-17 | 2004-11-04 | Seroff Nicholas Carl | Method and apparatus for obtaining trace data of a high speed embedded processor |
-
2005
- 2005-02-16 WO PCT/FR2005/000358 patent/WO2005091144A2/en not_active Ceased
- 2005-02-16 EP EP05729301A patent/EP1723525A2/en not_active Withdrawn
-
2006
- 2006-08-23 US US11/509,304 patent/US7607044B2/en not_active Expired - Lifetime
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5978937A (en) * | 1994-12-28 | 1999-11-02 | Kabushiki Kaisha Toshiba | Microprocessor and debug system |
| EP0840220A1 (en) | 1996-10-31 | 1998-05-06 | STMicroelectronics Limited | An integrated circuit device and method of communication therewith |
| US6574590B1 (en) * | 1998-03-18 | 2003-06-03 | Lsi Logic Corporation | Microprocessor development systems |
| US6502209B1 (en) * | 1998-05-13 | 2002-12-31 | Axis Ab | Chip with debug capability |
| US6687857B1 (en) * | 1999-11-10 | 2004-02-03 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer which can execute a monitor program supplied from a debugging tool |
| EP1172733A1 (en) | 2000-07-14 | 2002-01-16 | Texas Instruments Incorporated | Method and apparatus for transmitting control information across a serialized bus interface |
| US20040221201A1 (en) | 2003-04-17 | 2004-11-04 | Seroff Nicholas Carl | Method and apparatus for obtaining trace data of a high speed embedded processor |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2005091144A2 (en) | 2005-09-29 |
| WO2005091144A3 (en) | 2006-12-07 |
| US20070043979A1 (en) | 2007-02-22 |
| EP1723525A2 (en) | 2006-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7058855B2 (en) | Emulation interface system | |
| CN107678988A (en) | A kind of multifunctional serial port device and implementation method | |
| CN110908475B (en) | A server motherboard with Shenwei 1621CPU and no ICH2 chip | |
| CN213365511U (en) | Mainboard and server | |
| CN117097614A (en) | Storage system and plug-in card working mode switching device thereof | |
| CN109857190A (en) | A kind of clock signal processing method, device, equipment and readable storage medium storing program for executing | |
| CN115454881B (en) | Debugging system and debugging method of RISC-V architecture | |
| CN117194198A (en) | IO performance test method, system, terminal and storage medium | |
| CN117149690A (en) | Port configuration methods for electronic equipment and PCIE Switch chips | |
| US7607044B2 (en) | Monitoring of a program execution by the processor of an electronic circuit | |
| CN113849355A (en) | I2C rate self-adaptive adjusting method, system, terminal and storage medium | |
| CN108491299A (en) | A kind of signal detection board and the mainboard for signal detection | |
| CN117834750B (en) | Device, method, system, equipment, medium and server for obtaining protocol data | |
| CN107391332A (en) | A kind of storage system and debugging system | |
| CN119576598B (en) | A connector-based port management method and related equipment | |
| CN104679123A (en) | Mainboard and data burning method thereof | |
| CN211604095U (en) | SATA raid card | |
| CN111679995B (en) | Embedded management execution unit of space computer based on 1553B bus | |
| CN111669533B (en) | Signal distribution equipment | |
| RU119141U1 (en) | PROGRAMMER OF TELEVISION MEMORY ICs | |
| CN209265223U (en) | A serial/parallel conversion interface processing board supporting secondary development | |
| CN221804623U (en) | Industrial computer embedded with CPCI backboard | |
| CN113076274B (en) | Optical module and software program acquisition method | |
| CN216848728U (en) | Data read-write device, module and equipment | |
| CN119396755B (en) | Reconfigurable miniaturized, low-cost and high-integration SiP chip module |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: STMICROELECTRONICS S.A., FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUMEAU, GERARD;MARBOT, ROLAND;REEL/FRAME:018497/0392;SIGNING DATES FROM 20060928 TO 20061011 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction | ||
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
| AS | Assignment |
Owner name: STMICROELECTRONICS FRANCE, FRANCE Free format text: CHANGE OF NAME;ASSIGNOR:STMICROELECTRONICS SA;REEL/FRAME:066944/0348 Effective date: 20230126 |