DSPRelated.com
Forums

profiling on target is extremely slow!

Started by recl...@softhome.net April 28, 2006
Hi All,

I'm using DM642 Evaluation Board (720MHz CPU)
Currently trying to profile my code on target
Profiling settings:
- events collected: Cycles
- for all functions
- live update every 10 sec (this option has no valuable influence)

All these runs with speed about 36MClocks per hour(!)

Is it normal?
Is there any way to make it run faster? Increase some buffer size or whatever?

--
Best regards,
Andrew
Andrew,

--- r...@softhome.net wrote:

> Hi All,
>
> I'm using DM642 Evaluation Board (720MHz CPU)
> Currently trying to profile my code on target
> Profiling settings:
> - events collected: Cycles
> - for all functions
> - live update every 10 sec (this option has no
> valuable influence)
>
> All these runs with speed about 36MClocks per
> hour(!)
>
> Is it normal?
Unfortunately that may be normal. Profiling on the
hardware is very slow - especially if you select all
functions.
As I understand it, all of the functions are plugged
with breakpoints and then CCS runs from breakpoint to
BP, collecting the count data. The process goes
something like this:
1. set the breakpoints
2. CCS runs, then polls the target looking for a the
processor to be halted.
3. if halted, CCS collects count info from a HW
register, steps over the BP and runs, etc.
The above steps are conceptual and the exact details
may vary slightly.
The problem is that steps #2 and #3 involve quite a
few JTAG scans. I believe that the CCS poll rate and
the emulator's JTAG performance are the critical
paths. CCS 3.1 appears to be a bit faster than
previous versions - I am not sure if it is due to a
faster poll rate or some other improvements. Also,
XDS560 emulators [like TI's PCI or BlackHawk's USB]
will run about a 30Mhz JTAG clock - improving the
performance over XDS510 class emulators significantly.
I would suggest 'targeted profiling' during
development and application [all/most functions]
profiling over night [if your app will allow it] as
things 'come together.

mikedunn
> Is there any way to make it run faster? Increase
> some buffer size or whatever?
>
> --
> Best regards,
> Andrew
> c...
>
>
>
Andrew-

> I'm using DM642 Evaluation Board (720MHz CPU)
> Currently trying to profile my code on target
> Profiling settings:
> - events collected: Cycles
> - for all functions
> - live update every 10 sec (this option has no valuable influence)
>
> All these runs with speed about 36MClocks per hour(!)
>
> Is it normal?
> Is there any way to make it run faster? Increase some buffer size or
> whatever?

As Mike indicates, the limiting factor of any CCS operation that is
"target data exchange intensive" is JTAG performance. In the case of EVM
DM642 board, it's actually not bad because the JTAG controller is
connected to the PCI bus. However, on some of the DSK boards, like 6416,
performance of the JTAG + USB path is awful, not more than 150 kbps (yes
that is bits per sec). Profiling clocks per hour would be measured in
"kclocks" :(

But as Mike suggested, there are things you can do to increase performance
if you are willing to use a third-party JTAG emulator and connect directly
to the JTAG header on the board. Of course, that means much higher
expense, including the "full" version of CCS and high performance
emulator.

-Jeff
Andrew-

It was pointed out to me that I made a basic error in my post on 28Apr06 (copy
below).

The PCI bus *is not* connected to a JTAG controller on the EVM DM642 board. To get
full JTAG emulation functionality (single-step, breakpoint, memory watch, etc) you
must use a JTAG emulator (parallel port, USB, another PCI card) and connect to the
14-pin header on the EVM DM642.

The PCI bus on the EVM DM642 board does support DSP code download/run and data
transfers, and TI provides a driver for that. But for full CCS emulation capability,
the EVM DM642 does not have a built-in solution.

I apologize for my error.

-Jeff

-------- Original Message --------
Subject: Re: [c6x] profiling on target is extremely slow!
Date: Fri, 28 Apr 2006 10:58:24 -0500 (CDT)
From: "Jeff Brower"
To: "Andrew"
CC: c...

Andrew-

> I'm using DM642 Evaluation Board (720MHz CPU)
> Currently trying to profile my code on target
> Profiling settings:
> - events collected: Cycles
> - for all functions
> - live update every 10 sec (this option has no valuable influence)
>
> All these runs with speed about 36MClocks per hour(!)
>
> Is it normal?
> Is there any way to make it run faster? Increase some buffer size or
> whatever?

As Mike indicates, the limiting factor of any CCS operation that is
"target data exchange intensive" is JTAG performance. In the case of EVM
DM642 board, it's actually not bad because the JTAG controller is
connected to the PCI bus. However, on some of the DSK boards, like 6416,
performance of the JTAG + USB path is awful, not more than 150 kbps (yes
that is bits per sec). Profiling clocks per hour would be measured in
"kclocks" :(

But as Mike suggested, there are things you can do to increase performance
if you are willing to use a third-party JTAG emulator and connect directly
to the JTAG header on the board. Of course, that means much higher
expense, including the "full" version of CCS and high performance
emulator.

-Jeff