Re: [Gems-users] prefetch question


Date: Tue, 8 Jun 2010 18:42:07 -0700 (PDT)
From: Muhammad abid Mughal <mabidm_pieas@xxxxxxxxx>
Subject: Re: [Gems-users] prefetch question
1)no,its the complete time, since opal started executing instructions
2)  see opal/config/config.default and find MAX_DECODE
3) IN OPAL all execution unit are fully pipelined, again see  opal/config/config.default




From: mihai pricopi <mihai.pricopi@xxxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Tuesday, June 8, 2010 18:01:25
Subject: Re: [Gems-users] prefetch question

Ok, thanks allot.
I would have few more questions:

1) If I run consecutively opal for a constant number of cycles. Let's say X. If I take the IPC (Instructions Per Cycles) every stop that IPC is computed over the last X cycles ?
2) How can I modify the number of instructions issued by the decoder ? ( I would like to modify the issue width of the processor)
3) Is gems implementing the SPARC functional units in high detail ? (ALU's, FPs) ? Like can I modify the latency or the reservation stations or ROB ?

Thank You

On Tue, Jun 8, 2010 at 5:45 PM, Muhammad abid Mughal <mabidm_pieas@xxxxxxxxx> wrote:
use this command "opal0.sim-step 10000" and treat 10000 as Global number of cycles(ie each core run for this time) and make following changes in void system_t::simulate( uint64 instrCount ) [file system.C]:

 replace
        while ( m_sim_status == SIMSTATUS_OK &&
          instrCount >= m_seq[0]->m_stat_committed[0] )

 with

 while ( m_sim_status == SIMSTATUS_OK &&
          instrCount >= m_global_cycles )





From: mihai pricopi <mihai.pricopi@xxxxxxxxx>

To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Tuesday, June 8, 2010 17:21:07

Subject: Re: [Gems-users] prefetch question

Hi,

  I would like to ask if there is a way to run the opal module by specifying the number of cycles.

Thank You

On Tue, Jun 8, 2010 at 5:18 PM, Muhammad abid Mughal <mabidm_pieas@xxxxxxxxx> wrote:
its a real prefetch and its up to you to comment out or not.Its not gonna affect correctness but performance(ie execution time).

Typically Processor use WriteBuffer and store writes to WriteBuffer.From the processor point of view store is done.




From: Jerry Lin <cosjerry@xxxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Tuesday, June 8, 2010 16:25:06

Subject: Re: [Gems-users] prefetch question

Hi,
I have a few questions about the prefetch for store.
 
we issue prefetch for store 1) when source of store is not ready && 2) we are not using WriteBuffer. The purpose is just to make sure that 
store hit when issued to data$.
Does it mean that this kind of prefetch isn't a real prefetch for system, but for the implementation of simulator?
Then if I comment out the calling of the prefetch function, will it exert an influence on the correctness of the simulation?
 
Thanks for your reply.
 
 
2010/6/7 Muhammad abid Mughal <mabidm_pieas@xxxxxxxxx>
Is there any other place to modify?
My answer was for Software prefetches. You still see prefetch count in ruby dump file is due to Hardware prefetches.Go to opal/config/config.defaults and disable all hardware Prefetchers,such as DL1_STREAM_BUFFERS.

opal uses rubycache_t::prefetch () to issue all prefetch types (Software+Hardware) to Ruby. just grep this function in some files just as rubycache_t
,memop.C, etc to get an idea about prefetches.

I am a little confused that why prefetch request is issued when meeting store request.
we issue prefetch for store 1) when source of store is not ready && 2) we are not using WriteBuffer. The purpose is just to make sure that 
store hit when issued to data$.

I trace the code but I can't find out where this Execute function is called.
 see dynamic_inst_t::Schedule(). its called at "case EXECUTE_STAGE"


Regards,
Muhammad abid


From: Jerry Lin <cosjerry@xxxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Monday, June 7, 2010 18:01:17
Subject: Re: [Gems-users] prefetch question

Thanks for answering.
But the prefetch count in ruby dump file is still non-zero after I comment out the lines as your reply shown.
Is there any other place to modify?
I trace the code but I can't find out where this Execute function is called.
I also try to comment out the "prefetch" function in "store_inst_t::continueExecution()" in opal/system/memop.C
And it seems still doesn't work.
I am a little confused that why prefetch request is issued when meeting store request.
 
Thanks again.
2010/6/7 Muhammad abid Mughal <mabidm_pieas@xxxxxxxxx>
hi,
     when prefetch inst gets executed the following member funtcion from memop.C file called:

    void  prefetch_inst_t::Execute( void ) {
  STAT_INC( m_pseq->m_stat_prefetches_exec[m_proc] );
//  trap_type_t t = addressGenerate( OPAL_LOAD );
//this can only be true for Non i/o and non mmu prefetches
//  if (t != Trap_NoTrap) {
    /* couldn't correctly generate address -- we're done! */
    SetStage( COMPLETE_STAGE );
    return;
//  }

  /* can't complete I/O accesses, and moreover they are uncacheable */
 //We dont need to set trap to Trap_Use_Functional bec prefetch inst dont affect program regs
/*  if ( m_physical_addr != (pa_t) -1 &&
       isIOAccess( m_physical_addr ) ) {
    SetStage( COMPLETE_STAGE );
    STAT_INC( m_pseq->m_stat_count_io_access[m_proc] ); 
    return;
  }
 /////////////// no lsq or WB concept for prefetches
  if ( isCacheable() ) {
    ASSERT( m_physical_addr != (pa_t) -1 );

    //set address to be valid
    m_addr_valid = true;

    if (!accessCache())//accessCache() always ret true
      return;
  } // is cacheable

  Complete();
*/
}

comment out as shown above.
what i am doing is just setting  stage to "COMPLETE_STAGE" and returning.



Regards,
Muhammad abid


From: Jerry Lin <cosjerry@xxxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Sent: Monday, June 7, 2010 15:15:08
Subject: [Gems-users] prefetch question

Hello all,
When I running workloads with Ruby and Opal using default configuration, the prefetch count in the dump file won't be zero.
Is there any configuration to turn on/off the prefetcher?
Or is there any modification can be done to turn on/off the prefetcher?
 
Thanks for helping.


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





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





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





_______________________________________________
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→]