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