Measuring Cycles for cortex A8 application code in CCS

I'm using the below code for my application for measuring cycles and i
connected to beagle board with JTAG and with code-composer studio v4,
and here I enabled the bit in user enable register for accessing and
when I measured the cycles by calling below functions as it gives more
number of cycles, 50 times the simulator cycles.

so suggest me any one HOW to get the correct cycles as some where told
that initializing MMU in code composer project, If that is the reason
suggest me how to initialize MMU in CCS. or Is there any other reason
for getting more cycles in application.

int Counter_uSec = 0;

void counters_init( void )
{
  int pmuserenr=0;
  int pmcr=0;
  pmuserenr = readPMUSERENR();
  writePMCR_Ebit(1); /* enable the A8 counters */
  writePMCR_Dbit(0); /* no clock divider */
  pmcr = readPMCR();
  enableCycleCounter();
  writePMCNTENSET_eventCounters(0xf); /* enable all the user counters
*/
  setupEventCounter(Counter0, EventTypeInstructions);
  setupEventCounter(Counter1, EventTypeICacheMisses);
  setupEventCounter(Counter2, EventTypeDCacheMisses);
  setupEventCounter(Counter3, EventTypeCycleCount);
  Counter_uSec = 0;
  resetAllCounters();

}

;****************************************************************
int GetCounter( void )
{
    unsigned int c2 = readCycleCounter();
    resetAllCounters();
    c2 = c2 / 484; // 331;
    Counter_uSec += c2;
    return c2;

}

;****************************************************************
;****************************************************************
;****************************************************************
;****************************************************************
    .global _writePMCR_Ebit
_writePMCR_Ebit:
    mrc p15, #0, r1, c9, c12, #0

    AND r0,r0,#0x3
    BIC r1,r1,#0x3
    ORR r1,r1,r0
    mcr p15, #0, r1, c9, c12, #0
    bx lr

;****************************************************************
    .global _readPMUSERENR
_readPMUSERENR:
    mrc p15, #0, r0, c9, c14, #0
    bx lr

;****************************************************************
; unsigned int readPMCR(void)
; Read the Performance Monitor Control Register
    .global _readPMCR
_readPMCR:
    mrc p15, #0, r0, c9, c12, #0
    bx lr

;****************************************************************
; void enableCycleCounter(void)
; enable the cycle counter register
    .global _enableCycleCounter
_enableCycleCounter:
    mov r1, #1
    mov r1, r1, lsl #31
    mrc p15, #0, r0, c9, c12, #1
    orr r0, r0, r1
    mcr p15, #0, r0, c9, c12, #1
    bx lr

;****************************************************************
; void writePMCNTENSET_eventCounters(int eventCounters)
; Write to Count Enable Set Register event counters (PMCNTENSET)
    .global _writePMCNTENSET_eventCounters
_writePMCNTENSET_eventCounters:
    ; was bug...need high order bit set to enable counter
    orr r0,r0, #0x80000000
    mcr p15, #0, r0, c9, c12, #1
    bx lr

;****************************************************************
; void setupEventCounter(int eventNumber, int eventType)
; setup event number to type of event to count
    .global _setupEventCounter
_setupEventCounter:
    mcr p15, #0, r0, c9, c12, #5
    mcr p15, #0, r1, c9, c13, #1
    bx lr

;****************************************************************
; void resetAllCounters(void)
; Reset all counters including the cycle counter
; Write to the Performance Monitor Control Register C-bit and P-bits,
bit[3:2]
    .global _resetAllCounters
_resetAllCounters:
    mrc p15, #0, r1, c9, c12, #0
    orr r1, r1, #0x6 ; set C, E bits to 1 - 'P=clear user
counters',
C="clear clock counter'
    mcr p15, #0, r1, c9, c12, #0 ; reset the counters
    bx lr

;****************************************************************
; unsigned int readCycleCounter(void)
; read cycle counter register
    .global _readCycleCounter
_readCycleCounter:
    mrc p15, #0, r0, c9, c13, #0
    bx lr

Thanks,
Vinay.