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.
|
|