Login

Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

ARM Community: Core-Cycles for Real View Debugger & AXD - ARM Community

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Core-Cycles for Real View Debugger & AXD Rate Topic: -----

#1 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

  Posted 31 March 2008 - 05:41 AM

Hi Everyone,
If i run the same code in both AXD and RVDS 3.0 (Target is ARM Simulator) will there be any difference between Corecycles of AXD and RVD?


Thanx in Advance

This post has been edited by DivyaM: 31 March 2008 - 05:57 AM

0

#2 User is offline   Rich C 

  • Contributor
  • PipPip
  • Group: Members
  • Posts: 66
  • Joined: 03-October 06

Posted 01 April 2008 - 09:50 AM

Hi,

ARMulator in ADS/AXD is now called RVISS in RVDS, so I wouldn't expect any difference. RVISS = RealView Instruction Set Simulator.

Cheers,
Rich
0

#3 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

Posted 04 April 2008 - 01:17 AM

View PostRich C, on Apr 1 2008, 02:20 PM, said:

Hi,

ARMulator in ADS/AXD is now called RVISS in RVDS, so I wouldn't expect any difference. RVISS = RealView Instruction Set Simulator.

Cheers,
Rich


Hi..
I have taken a sample application which initializes the value of variable and prints that variable. like

int main()
{
int i = 10;
printf("i = %d\n",i);
return 0;
}

When i run this code in AXD (ARM946E-S Processor) i got 4588 cycles.
Same code when i run it in RVDS (ARM946E-S Processor, Local Host) i got 11497 Cycles.

Can anyone plz explain me why there is a differnce in the Cycle count?

regards
Divya
0

#4 User is offline   isogen74 

  • Super Contributor
  • PipPipPipPip
  • Group: Members
  • Posts: 1098
  • Joined: 20-March 07

Posted 04 April 2008 - 12:27 PM

printf is a system call, which by default talks to the debugger using semi-hosting. This is outside of the scope of the ARM core as the core is stopped while semihosting executes, and such calls can take a long time to complete; dependent on the model and debugger being used.

I'm not sure how the models count cycles when semi-hosting is used. In general only count cycles for genuine instructions (no talk to semihosted SWIs or virtual hardware) - anything using semi-hosting is liable to produce odd results.
When optimizing software, consider that the quickest code to run is the bit you removed from the call path.
0

#5 User is offline   SoupDragon 

  • Member
  • Pip
  • Group: Members
  • Posts: 36
  • Joined: 20-November 06

  Posted 04 April 2008 - 03:28 PM

View PostDivyaM, on Apr 4 2008, 01:17 AM, said:

When i run this code in AXD (ARM946E-S Processor) i got 4588 cycles.
Same code when i run it in RVDS (ARM946E-S Processor, Local Host) i got 11497 Cycles.

Can anyone plz explain me why there is a differnce in the Cycle count?

regards
Divya


I have a feeling that AXD/ARMulator configure caches as on by default while RVD/RVISS configures caches as off by default. Check the RVISS configuration and check the option 'Default pagetables' is turned on.

SD
0

#6 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

Posted 07 April 2008 - 01:20 AM

-> In that Sample Program if i remove the printf statement and the initialization of Variable, with only return statement in main().. still the cycle count is not same ie. AXD - 398 cycles and RVD - 998 cycles.

-> In both AXD/ARMulator and RVD Default Page tables is selected. So The cycle count is differed not because of Default Pagetables.

I am new to RVD. I have the problem on deciding whether the Performance is to be calculated based on Core cycles of AXD or RVD.?

Plz help me on this..

Regards
Divya
0

#7 User is offline   SoupDragon 

  • Member
  • Pip
  • Group: Members
  • Posts: 36
  • Joined: 20-November 06

Posted 07 April 2008 - 09:51 PM

View PostDivyaM, on Apr 7 2008, 02:20 AM, said:

-> In that Sample Program if i remove the printf statement and the initialization of Variable, with only return statement in main().. still the cycle count is not same ie. AXD - 398 cycles and RVD - 998 cycles.


Interesting; the difference is approx. a factor of 3. Have you checked the MCFG option (which controls ratio of CPU to Bus cycles) is identical for both setups

Quote

I am new to RVD. I have the problem on deciding whether the Performance is to be calculated based on Core cycles of AXD or RVD.?


Does AppNote 93 help?

ARM Information Centre

Can you post the banners that are printed out by AXD and RVD when you connect to the simulator.

Regards
SD
0

#8 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

Posted 08 April 2008 - 04:07 AM

View PostSoupDragon, on Apr 8 2008, 02:21 AM, said:

Interesting; the difference is approx. a factor of 3. Have you checked the MCFG option (which controls ratio of CPU to Bus cycles) is identical for both setups



Does AppNote 93 help?

ARM Information Centre

Can you post the banners that are printed out by AXD and RVD when you connect to the simulator.

Regards
SD


I am attaching the cycles taken by both RVD and AXD for ARM920T Processor.

I dont know about MCFG option. Where is that option available and can u plz give me some information regarding this.

One more thing.. AXD uses the Default pagetables 2 (--dwarf2) where as RVDS uses the Defualt pagetables 3. So, will that make any difference ?


regards
divya

Attached File(s)


0

#9 User is offline   SoupDragon 

  • Member
  • Pip
  • Group: Members
  • Posts: 36
  • Joined: 20-November 06

Posted 09 April 2008 - 01:56 PM

View PostDivyaM, on Apr 8 2008, 04:07 AM, said:

I am attaching the cycles taken by both RVD and AXD for ARM920T Processor.


Ok, but that's not much use yet...

Quote

I dont know about MCFG option. Where is that option available and can u plz give me some information regarding this.


This is mentioned in AN93, I think it's set to 3 in a config file default.ami

Quote

One more thing.. AXD uses the Default pagetables 2 (--dwarf2) where as RVDS uses the Defualt pagetables 3. So, will that make any difference ?


'Default pagetables' has nothing to do with debug data. DWARF 2 & 3 are formats for debug data in the image. Default pagetables is an RVISS/ARMulator option to control whether or not caches are enabled by default. If you have caches on in one simulation and off in another it would explain the difference.

Please post the banner printed in the console when you connect to the simulator for both RVD and AXD. It will look something like this...


> connect @localhost
> connect  @new_arm@localhost
ARMulator RVARMulatorISS1.4 [Build 297]
ARM926EJ-S, 16Kb I-cache, 16Kb D-cache, 64Kb I-Ram, 64KB D-Ram, 
Memory Management Unit, I-uTLB, D-uTLB, TLB, BIU, Little endian, 
Debug Comms Channel, 4GB, Mapfile, Timer, Profiler, SIMRDI MemCallback, Tube, 
Millisecond [6666.67 cycles_per_millisecond], IntCtrl, Tracer
Tracing: Instructions, Memory accesses, Events, Disassemble, Trace bus, 
Trace registers, Opcode Fetch
 Mask 0x00000000-0x00000000, RDI Codesequences, Semihosting


Regards
SD
0

#10 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

Posted 10 April 2008 - 12:59 AM

ya.. i checked the MCCFG option. It is set to 3 in defualt.ami
RVDS BANNER


Workspace: Opening Connections...
Workspace: connect @new_arm@localhost:Server
ARMulator RVARMulatorISS1.4 [Build 297]
For support please contact support-arm@huins.com
Software supplied by: ARM Limited
ARM920T, 16KB I-cache, 16KB D-cache, (Physical memory, BIU), Little endian, 
Semihosting, Debug Comms Channel, 4GB, Pagetables, Mapfile, Timer, Profiler, 
SIMRDI MemCallback, Tube, Millisecond [6666.67 cycles_per_millisecond], IntCtrl, 
Tracer
Tracing: Instructions, Memory accesses, Events, Disassemble, Trace bus, 
Trace registers, Opcode Fetch
 Mask 0x00000000-0x00000000, RDI Codesequences, VFPv2 (no support code)
Workspace: Init/Open done.


AXD Banner

ARMulator RVARMulatorISS1.4 [Build 297]
For support please contact support-arm@huins.com
Software supplied by: ARM Limited
ARM920T, 16KB I-cache, 16KB D-cache, (Physical memory, BIU), Little endian, 
Semihosting, Debug Comms Channel, 4GB, Pagetables, Mapfile, Timer, Profiler, 
SIMRDI MemCallback, Tube, Millisecond [6666.67 cycles_per_millisecond], IntCtrl, 
Tracer
Tracing: Instructions, Memory accesses, Events, Disassemble, Trace bus, 
Trace registers, Opcode Fetch
 Mask 0x00000000-0x00000000, RDI Codesequences, SIMRDI VFP
ARM RDI 1.5.1 -> ASYNC RDI Protocol Converter RVDS v3.0 [Build number 132]. Copyright © ARM Limited 2001.




These are the Logs of AXD and RVDS.

Regards
Divya
0

#11 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

Posted 12 April 2008 - 07:34 AM

View PostDivyaM, on Apr 10 2008, 04:29 AM, said:

ya.. i checked the MCCFG option. It is set to 3 in defualt.ami
RVDS BANNER


Workspace: Opening Connections...
Workspace: connect @new_arm@localhost:Server
ARMulator RVARMulatorISS1.4 [Build 297]
For support please contact support-arm@huins.com
Software supplied by: ARM Limited
ARM920T, 16KB I-cache, 16KB D-cache, (Physical memory, BIU), Little endian, 
Semihosting, Debug Comms Channel, 4GB, Pagetables, Mapfile, Timer, Profiler, 
SIMRDI MemCallback, Tube, Millisecond [6666.67 cycles_per_millisecond], IntCtrl, 
Tracer
Tracing: Instructions, Memory accesses, Events, Disassemble, Trace bus, 
Trace registers, Opcode Fetch
 Mask 0x00000000-0x00000000, RDI Codesequences, VFPv2 (no support code)
Workspace: Init/Open done.


AXD Banner

ARMulator RVARMulatorISS1.4 [Build 297]
For support please contact support-arm@huins.com
Software supplied by: ARM Limited
ARM920T, 16KB I-cache, 16KB D-cache, (Physical memory, BIU), Little endian, 
Semihosting, Debug Comms Channel, 4GB, Pagetables, Mapfile, Timer, Profiler, 
SIMRDI MemCallback, Tube, Millisecond [6666.67 cycles_per_millisecond], IntCtrl, 
Tracer
Tracing: Instructions, Memory accesses, Events, Disassemble, Trace bus, 
Trace registers, Opcode Fetch
 Mask 0x00000000-0x00000000, RDI Codesequences, SIMRDI VFP
ARM RDI 1.5.1 -> ASYNC RDI Protocol Converter RVDS v3.0 [Build number 132]. Copyright © ARM Limited 2001.




These are the Logs of AXD and RVDS.

Regards
Divya



Can any one reply for this problem. It is very important for me...

thanx in advance
Divya
0

#12 User is offline   mynameashishjain 

  • Member
  • Pip
  • Group: Members
  • Posts: 25
  • Joined: 06-March 08

Posted 15 April 2008 - 05:54 AM

pagetable option will not affect the core cycle count.
whether you enable cache or not core cycle count will be same.
first thing you can try is to see the dissassembly of the code genarated and see how both the codes are different and which part is consuming more cycles.
second thing you can try is to use code which includes only basic instruction like add and mul then see the difference.
0

#13 User is offline   DivyaM 

  • Member
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 24-March 08

Posted 15 April 2008 - 07:05 AM

View Postmynameashishjain, on Apr 15 2008, 09:24 AM, said:

pagetable option will not affect the core cycle count.
whether you enable cache or not core cycle count will be same.
first thing you can try is to see the dissassembly of the code genarated and see how both the codes are different and which part is consuming more cycles.
second thing you can try is to use code which includes only basic instruction like add and mul then see the difference.


int main()
{
   return 1;
}


I have Checked the Cycles for this code in RVDS and AXD. It doesnt have any printf's or arithmetic operations. But still the core cycles are different..

--> Before the control comes to return statement, there is difference in the cycles. Is the initialization code different for both AXD and RVDS?

thanx in Advance
Divya
0

#14 User is offline   tomtsui 

  • Member
  • Pip
  • Group: Members
  • Posts: 4
  • Joined: 07-January 10

Posted 19 January 2010 - 09:55 PM

Hi, I am encountering the same situation. Is there any reason why this would happen?

Thanks.
0

#15 User is offline   Arruaba 

  • Member
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 13-July 12

Posted 13 July 2012 - 10:31 AM

Does anyone know this problem now?

Plz help!

THX
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic