*
*Home|Chinese|Japanese*About ARM|Forums|Events|News|Employment|Contact Us|Investors*
dotted rule
*ARM - the architecture for the digital worldARM - the architecture for the digital world
search
*
*
***
*MARKETS:PRODUCTS & SOLUTIONS:CONNECTED COMMUNITY:TECHNICAL SUPPORT:DOCUMENTATION*
*
technical support
*
*
****
*.Technical Support
*
*
*>>Home Page*
*
*.Obtaining Support*
*
*.FAQs*
*
**Development Tool FAQs*
**IP FAQs*
**Embedded Software FAQs*
**Artisan Physical IP FAQs (Login Required)*
*
*.Downloads*
*
*.Documentation*
*
*.Training*
*
*.Where To Buy*
*
*.Keil MCU Tools*
*
*.What's New*
*
*.ARM Newsgroups*
*
*.Active Assist On-site Services*
*
*
*
technical support FAQsask ARM*
*

Technical Support Search
*     (Advanced Search)
  FAQs   Documentation   Downloads   Forums

*

 
downarrowARMulator Cycle Types for ARM9TDMI and StrongARM
Applies to: ARMulator/RVISS, Software Development Toolkit (SDT)

Description
The SDT 2.50/2.51 ARMulator now provides more detailed cycle $statistics for Harvard architecture cores such as ARM9TDMI and StrongARM. For example:

armsd: pr $statistics
struct {
Instructions = 102, Core_Cycles = 222, ID_Cycles = 28,
I_Cycles = 110, Idle_Cycles = 11, D_Cycles = 73, Total = 222}

These cycle counts indicate the number of cycles used on the separate Instruction (I) and Data (D) busses, but the meaning of each one is unfortunately not documented.

Solution
The meaning of each cycle counter is given below:

  • Core_cycles = the number of core cycles (as distinct from bus cycles) - the ratio of core to bus is given in MCCFG in armul.cnf
  • ID_Cycles = the number of cycles where both an instruction has been fetched AND data has been fetched.
  • I_Cycles = the number of cycles where an instruction (only) has been fetched (no data fetched)
  • Idle_Cycles = the number of true idle cycles.
  • D_Cycles = the number of cycles where data (only) has been fetched (no instruction fetched).

The relation between these and the documented NSIC cycle types is given in
arm250\source\win32\ARMulate\armflat.c and
armmap.c:

/*
* On StrongARM there are four types of cycle - we'll reuse
* the four cycle counters for these:
*
* Instruction fetched, No data fetched N
* Instruction fetched, data fetched S
* No instruction fetched, No data fetched I
* No instruction fetched, data fetched C
*/





back to top

*
**
*4 dots*Other ARM Websites
*
shadow *LEGAL STATEMENTshadow