The PPC750 Performance Monitor (Perfmon) is a computer program that helps the user to assess the performance characteristics of application programs running under the Wind River VxWorks real-time operating system on a PPC750 computer. Perfmon generates a user-friendly interface and collects performance data by use of performance registers provided by the PPC750 architecture. It processes and presents run-time statistics on a per-task basis over a repeating time interval (typically, several seconds or minutes) specified by the user.

When the Perfmon software module is loaded with the user's software modules, it is available for use through Perfmon commands, without any modification of the user's code and at negligible performance penalty. Per-task run-time performance data made available by Perfmon include percentage time, number of instructions executed per unit time, dispatch ratio, stack "high water" mark, and level-1 instruction and data cache miss rates. The performance data are written to a file specified by the user or to the serial port of the computer.

This program was written by Donald Meyer and Igor Uchenik of Caltech for NASA's Jet Propulsion Laboratory.

This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395-2322. Refer to NPO-35237.



This Brief includes a Technical Support Package (TSP).
Document cover
PPC750 Performance Monitor

(reference NPO-35237) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
NASA Tech Briefs Magazine

This article first appeared in the December, 2007 issue of NASA Tech Briefs Magazine (Vol. 31 No. 12).

Read more articles from the archives here.


Overview

The document outlines the PPC750 Performance Monitor, also known as "Perfmon," developed by NASA's Jet Propulsion Laboratory (JPL) for use with the PPC750 computing architecture and the Wind River VxWorks real-time operating system. Perfmon is designed to help users quantitatively assess the runtime performance of individual VxWorks tasks in their applications, providing critical performance data without requiring modifications to user code and with negligible performance penalties.

Perfmon operates as a loadable module within VxWorks, utilizing the performance monitoring counter registers inherent to the PPC750 architecture. It supports applications written in both C and C++, making it versatile for various software environments. The tool is task-based, allowing performance monitoring to be initiated and halted at will, with runtime statistics collected and reported over user-defined intervals, typically spanning several seconds to minutes.

The performance reports generated by Perfmon include a range of metrics for each task, such as the percentage of time taken, "MIPS" (Million Instructions Per Second), task swap rates, and the number of tasks active, created, or deleted during the interval. Users can select from three sets of statistics: the first focuses on L1 instruction cache miss rates, instruction dispatch ratios, and stack usage percentages; the second set provides L1 data cache miss rates and data ratios; and the third set details the L1 data cache castout ratio.

The development of Perfmon was motivated by the specific attributes of the RAD750 implementation of the PPC750 architecture, which is notable for its lack of Level-2 cache, making it particularly sensitive to cache utilization. This sensitivity underscores the importance of effective performance monitoring in optimizing application performance.

Overall, the PPC750 Performance Monitor represents a significant advancement in performance assessment tools for aerospace applications, particularly in the context of flight projects at JPL and other organizations. It enables developers to gain valuable insights into their applications' performance, facilitating improvements and optimizations that are crucial for mission success in space exploration and related fields. The document serves as a technical support package, providing essential information for users interested in leveraging Perfmon for their performance monitoring needs.