Browse Prior Art Database

Hardware improvements for a firmware initiated flight recorder

IP.com Disclosure Number: IPCOM000010140D
Original Publication Date: 2002-Oct-25
Included in the Prior Art Database: 2002-Oct-25
Document File: 3 page(s) / 47K

Publishing Venue

IBM

Abstract

Hardware assist to "flight recorder" - type trace table firmware to efficiently exploit machine architecture in order to automate time-stamping of trace entries and to support cacheline data flushing. The hardware automatically appands the counter value to the flight recorder information.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 38% of the total text.

Page 1 of 3

Hardware improvements for a firmware initiated flight recorder

Disclosed is a device for improving the performance of firmware by automatically adding a timestamp to trace table entries being maintained by that firmware, said trace table entries being generated to aid debug and diagnosis of the operation of the system.

     A very common technique in embedded systems to aid debuggability, is to maintain a trace table. This can also be used to aid performance and code coverage measurements. This trace table is often implemented as a wrapping buffer containing fixed size entries. Each entry ("trace entry") encodes information about the execution state of the firmware when traversing some specific code path, and typically contains an identifier that describes the statement being executed, along with some local state that helps understand the state of the system at that point in time.

     The firmware maintains a cursor (pointer) to describe where in the table the entry is to be placed. Each time an entry is placed into the table, the firmware increments a cursor so the next entry goes into the next space in the table. When the end of the table is reached, it is common to reset the cursor back to the beginning of the table. As a result, the table will contain a set of entries that describe the recent execution of the firmware.

     For highly-parallel, high-performance embedded systems, a trace table is the main debugging tool that is available to understand the history of events that have led up to a particular problem or unusual situation arising. Techniques that are used in other systems, such as printing debug messages to a console, are too expensive to use in these environments (sometimes these can consume more compute resources than the function that is being debugged). Consequently, much effort is expended in tuning trace table implementations. A more efficient implementation allows more trace to be maintained, which improves debuggability and hence time to market, without unduly impacting system performance.

     A common feature of trace tables is some form of timestamp, that indicates the time of a particular event, relative to some timebase used in that system. This information is often key in understanding in what has happened in a particular circumstance.

     Hardware can be used to improve the efficiency of a trace table implementation. This hardware might comprise a set of registers at a well-known fixed address, where the trace entry is written. The hardware then places the table into the correct point in the table, and updates registers that are equivalent to the firmware maintained cursor, to keep track of where in the table the next entry should be placed.

     This is known as a flight recorder. Generally the data written contains information on which routine the firmware is running, perhaps some parameter information, and a timestamp. Note that the information written is entirely firmware-dependent and is not covered in this invention disclo...