GB2300496A - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
GB2300496A
GB2300496A GB9508814A GB9508814A GB2300496A GB 2300496 A GB2300496 A GB 2300496A GB 9508814 A GB9508814 A GB 9508814A GB 9508814 A GB9508814 A GB 9508814A GB 2300496 A GB2300496 A GB 2300496A
Authority
GB
United Kingdom
Prior art keywords
memory
data
output data
error
task
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.)
Withdrawn
Application number
GB9508814A
Other versions
GB9508814D0 (en
Inventor
Michael Ellerbrock
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Germany GmbH
Original Assignee
Motorola GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Motorola GmbH filed Critical Motorola GmbH
Priority to GB9508814A priority Critical patent/GB2300496A/en
Publication of GB9508814D0 publication Critical patent/GB9508814D0/en
Publication of GB2300496A publication Critical patent/GB2300496A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A data processing system includes a processor 140 arranged to execute a set of instructions, and to provide output data which indicates the execution of each instruction and a history memory 100 having first and second memory portions 110, 120, The history memory sequentially receives and stores the output data. A control arrangement selects one of the memory portions to store the output data, and is also arranged to identify the occurrence of an error in the execution of the instructions. If an error occurs, the control arrangement selects the other memory portion.

Description

DATA PROCESSING SYSTEM Field of the Invention This invention relates to data processing systems and particularly but not exclusively to error detection in data processing systems.
Background of the Invention In data processing systems, such as microprocessor based systems, sets of instructions or tasks (programs) are performed by a microprocessor of the system according to a program or routine. Errors such as hardware related errors or memory errors, which may occur during execution of the program are often hard to find, especially in extensive and complicated programs.
Furthermore, where such errors cause the program to crash, and it is not apparent at which stage of the program execution the crash has occurred, the task of finding the error or errors is compounded.
Known methods of detecting errors include the storing of instruction related data in a history buffer, such that if an error arises, the buffer may be subsequently interrogated to determine whereabouts in the program the error occurred.
A problem with this arrangement is that in many applications, the program restarts after an error, and immediately overwrites the history buffer.
This invention seeks to provide a data processing system which mitigates the above mentioned disadvantages.
Summarv of the Invention According to the present invention there is provided a data processing system, for processing data according to a set of instructions, comprising: a processor arranged to execute each instruction of the set of instructions, and to provide output data which indicates the execution of each instruction; a history memory comprising first and second memory portions, coupled to the processor for sequentially receiving and storing the output data; and control means for selecting one of the first and second memory portions to store the output data; wherein the control means is adapted to identify the occurrence of an error in the processing of the data, and is further adapted to select the other one of the first and second memory portions upon the occurrence of the error.
Preferably the history memory further comprises at least one further memory portion coupled to the processor for sequentially receiving and storing the output data, and the control means is further arranged for selecting one of the first, second, and at least one further memory portion.
Each memory portion preferably comprises a number of memory locations.
Preferably the number of memory locations is ten.
In this way a brief protocol of the last tasks performed by the program is generated and the error or errors are more easily found.
Brief Description of the Drawings An exemplary embodiment of the invention will now be described with reference to the drawing in which: FIG. 1 shows a flow chart of an exemplary program to be executed in accordance with the invention.
FIG.2 shows a block diagram of a history memory of the preferred embodiment in accordance with the invention.
Detailed Description of a Preferred Embodiment Referring to FIG. 1, there is shown a flow chart 10 of a typical software program, to be performed by a microprocessor (not shown in FIG.1). A Start/Init. block 20 represents the initialisation procedure for the program.
One of the functions of this procedure is to set aside an area of programmable memory as a history memory, to be further described below.
Blocks 30, 40, 50, 60 and 70 denote tasks A, B, C, D, and E respectively of the program. The arrangement of the blocks gives rise to the following possibilities of task execution order. Task A always follows the Start/Init.
procedure. Execution of one of the tasks B, C or D follows task A. If task B or C occurs, then task E is executed before returning to task A. If task D occurs, the program proceeds directly back to task A.
During the execution of the program, interrupts may occur (denoted by interrupt blocks 80 (I1) and 90 (I2). Such interrupts may be caused by external hardware.
Referring now also to FIG.2, the history memory 100 comprises two separate sets of memory addresses, arranged as task lists 110 and 120 respectively, and a single memory address, arranged as a current list byte 130. Each of the task lists 110 and 120 has ten sequential memory locations. The history memory 100 connects with a microprocessor 140, but may of course, be integrated with the microprocessor 140.
The current list byte 130 indicates which of the task lists 110 and 120 is active, and is arranged to be toggled by the microprocessor 140 during the Start/Init. procedure.
In operation, the program starts with the Start/Init. procedure, which includes the initialisation of the history memory 100. The current list byte 130 is read by the microprocessor 140, and toggled. In this way the previous active task list now becomes inactive, and the previously inactive task list is now active.
At the start of the execution of each task or interrupt within the program, data indicating the task or interrupt is sent by the microprocessor 140 to the history memory 100. The history memory 100 stores the incoming data sequentially, in the active task list, as denoted by the current list byte 130.
When the last memory address in the active list is written to, the next incoming data is written to the first memory address in the active list, thus overwriting earlier data. In this way the ten most recent tasks or interrupt routines, are recorded in the active task list of the history memory 100.
If an error occurs during the program execution, the microprocessor 140 resets the program and continues. During the reset, the Start/Init. procedure is performed, and the current list byte 130 is toggled. Therefore the previously active task list, containing the ten most recent tasks or interrupts executed immediately before the error occurred, becomes inactive, and is not overwritten by the incoming data.
In this way the inactive task list forms a brief protocol of the program flow, and may be subsequently analysed to determine the ten tasks or interrupts which were executed at the time of the error. Such information will be of use to the programmer in finding and debugging the error.
It will be appreciated by a person skilled in the art that the number and arrangement of tasks A, B, C, D, and E are purely exemplary. Additionally, the task lists 110 and 120 may have a different number of memory addresses than described above.
Furthermore, the history memory 100 could be arranged with three or more task lists.

Claims (5)

Claims
1. A data processing system, for processing data according to a set of instructions, comprising: a processor arranged to execute each instruction of the set of instructions, and to provide output data which indicates the execution of each instruction; a history memory comprising first and second memory portions, coupled to the processor for sequentially receiving and storing the output data; and, control means for selecting one of the first and second memory portions to store the output data; wherein the control means is adapted to identify the occurrence of an error in the processing of the data, and is further adapted to select the other one of the first and second memory portions upon the occurrence of the error.
2. The system of claim 1, wherein the history memory further comprises at least one further memory portion coupled to the processor for sequentially receiving and storing the output data, and the control means is further arranged for selecting one of the first, second, and at least one further memory portion.
3. The system of any preceding claim, wherein each memory portion comprises a number of memory locations.
4. The system of claim 3, wherein the number of memory locations is ten.
5. A data processing system substantially as hereinbefore described, with reference to the drawings.
GB9508814A 1995-05-01 1995-05-01 Data processing system Withdrawn GB2300496A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9508814A GB2300496A (en) 1995-05-01 1995-05-01 Data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9508814A GB2300496A (en) 1995-05-01 1995-05-01 Data processing system

Publications (2)

Publication Number Publication Date
GB9508814D0 GB9508814D0 (en) 1995-06-21
GB2300496A true GB2300496A (en) 1996-11-06

Family

ID=10773792

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9508814A Withdrawn GB2300496A (en) 1995-05-01 1995-05-01 Data processing system

Country Status (1)

Country Link
GB (1) GB2300496A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0257911A2 (en) * 1986-08-25 1988-03-02 Tektronix Inc. Memory pointer with clustering
EP0510679A2 (en) * 1991-04-26 1992-10-28 Nec Corporation Fault information gathering system for peripheral controllers in a computer system
EP0607660A2 (en) * 1993-01-22 1994-07-27 International Computers Limited Data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0257911A2 (en) * 1986-08-25 1988-03-02 Tektronix Inc. Memory pointer with clustering
EP0510679A2 (en) * 1991-04-26 1992-10-28 Nec Corporation Fault information gathering system for peripheral controllers in a computer system
EP0607660A2 (en) * 1993-01-22 1994-07-27 International Computers Limited Data processing system

Also Published As

Publication number Publication date
GB9508814D0 (en) 1995-06-21

Similar Documents

Publication Publication Date Title
US6308318B2 (en) Method and apparatus for handling asynchronous exceptions in a dynamic translation system
US5386565A (en) Method and system for controlling/monitoring computer system having plural operating systems to run thereon
US7047521B2 (en) Dynamic instrumentation event trace system and methods
JP3290280B2 (en) Information processing device
JPH0816457A (en) Automatic garbage collection method
US5404466A (en) Apparatus and method to set and reset a pipeline instruction execution control unit for sequential execution of an instruction interval
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
JP3970609B2 (en) Processor system
US5737521A (en) Tracer system for analyzing errors in running real-time systems
EP0638864B1 (en) Development support system for microcomputer with internal cache
JPH10214203A (en) Information processor
GB2300496A (en) Data processing system
JP2000076095A (en) Device and method for tracing program and storage medium storing program therefor
KR960003052B1 (en) Microprocessor having cashe memory unit
JPS6270947A (en) Control system for debug interruption
KR100329780B1 (en) Interrupt processing apparatus reducing interrupt response time
JPH02242444A (en) Debugging mechanism for information processor
JPH08320813A (en) Program simulator device and program debugging method
JPH0484224A (en) Stack area protection circuit
JPS638841A (en) Interruption accepting system
JPS63187339A (en) Information processor
JPH0535499A (en) Data processing device and method
JPS63120336A (en) Switching system for memory access mode
JPS63639A (en) Program debugging system
JPH04215106A (en) Programmable controller

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)