Re: [Gems-users] question on time in eventqueue


Date: Wed, 31 Jan 2007 07:30:14 -0600
From: Dan Gibson <degibson@xxxxxxxx>
Subject: Re: [Gems-users] question on time in eventqueue
When running as a Simics module, Ruby tracks the number of instructions executed via the getInstructionCount() call to SimicsDriver, which in turn calls SimicsProcessor's getInstructionCount(), which in turn returns the delta SIMICS_get_insn_count() and an initial instruction count.

lya755@xxxxxxxxxxxxxxxxxxxx wrote:
I see. So what if I want to count the number of load/stores as the number of 
instructions? Also, when used as a module for Simics, how does Ruby compute 
instructions_executed? Is that the real number of instructions?

Thanks very much,
Lei
----- Original Message ----- 
From: "Mike Marty" <mikem@xxxxxxxxxxx>
To: <lya755@xxxxxxxxxxxxxxxxxxxx>
Cc: "Gems Users" <gems-users@xxxxxxxxxxx>
Sent: Tuesday, January 30, 2007 5:58 PM
Subject: Re: [Gems-users] question on time in eventqueue


  
The tester doesn't execute instructions.  It only generates loads/stores
to the memory system.

--Mike


    
Thanks Mike! I checked the Profiler.C code and found
that "instruction_executed" is obtained by the following:

 for(int i=0; i < RubyConfig::numberOfProcessors(); i++) {
    perProcInstructionCount[i] = g_system_ptr->getDriver()-
      
getInstructionCount
    
(i) - m_instructions_executed_at_start[i] + 1;
    // The +1 allows us to avoid division by zero
  }

I then looked into getInstructionCount, which is defined in Driver.h as:

virtual integer_t getInstructionCount(int procID) const { return 1; }

That being said, the instruction count for each processor is always 1. I used
the Ruby Tester and verified MSI_MOSI_CMP_directory protocol; I found that
indeed instruction_executed is always 1 for each processor. The following is
the result from running a 4 processor simulation.

instruction_executed: 4 [ 1 1 1 1 ]
cycles_per_instruction: 31300 [ 31300 31300 31300 31300 ]
misses_per_thousand_instructions: 40000 [ 38000 40000 40000 42000 ]

I'm wondering if this is a bug in Ruby Tester or did I miss something? I do
need to know the exact number of instructions executed on each processor from
Ruby when I use the Ruby Tester. If "getInstructionCount" is not functioning
correctly, how should I fix it? Please advice!

Thanks in advance for your help!

Lei
----- Original Message -----
From: "Mike Marty" <mikem@xxxxxxxxxxx>
To: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>
Cc: "Gems Users" <gems-users@xxxxxxxxxxx>
Sent: Friday, January 26, 2007 10:07 AM
Subject: Re: [Gems-users] question on time in eventqueue


      
One other question is (may seem unrelated, sorry),  is there an easy way 
          
in
  
ruby to find out the instruction count of one processor?

          
See where Profiler.C outputs "instruction_executed".  There should be a
per-processor count kept track in the Profiler


        

_________________________________________________________
This message was sent through the NU ECE webmail gateway.
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.


  
[← Prev in Thread] Current Thread [Next in Thread→]