Browse Prior Art Database

Profile Based Optimization for Embedded Controller Environments

IP.com Disclosure Number: IPCOM000118087D
Original Publication Date: 1996-Sep-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 50K

Publishing Venue

IBM

Related People

Heisch, RR: AUTHOR

Abstract

Disclosed is a method to collect profile data for the purpose of profile based program optimization for embedded controllers utilizing the Joint Test Action Group (JTAG) port.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 59% of the total text.

Profile Based Optimization for Embedded Controller Environments

      Disclosed is a method to collect profile data for the purpose
of profile based program optimization for embedded controllers
utilizing the Joint Test Action Group (JTAG) port.

      In a normal workstation environment, Profile Based Optimization
(PBO) has commonly provided speedups, through improved icache, tlb,
and branch optimization, in the 10-20% range.  Given the even smaller
caches typically present on specialized embedded controller
processors (such as  the 2-way associative 2K ICache on the
PowerPC403 Embedded Controller),  the need for PBO is even more
critical in that environment.

      The solution proposed here is to use the JTAG port available on
many processors, including the PowerPC403, to extract profile data
from embedded applications as they are run in their normal
environment and then to feed that data back to the development
environment for code reordering and optimization.  JTAG interfaces
(such as on the PowerPC403)  typically provide additional debug
capability which allows for remote program single stepping, etc..
This capability provides an excellent method for remotely extracting
execution profile data for the purpose of  PBO.

The method is described as follows:
  1.  Download the application to optimize to the embedded
       environment.
  2.  Initialize the JTAG/Debug configuration to collect profile
       data: this might include inserting...