Thanks a lot, Dan!
Regards, lorizhuang
Date: Thu, 20 May 2010 06:42:30 -0600
From: Dan Gibson <degibson@xxxxxxxx>
To: Gems Users <gems-users@xxxxxxxxxxx>
Subject: Re: [Gems-users] About data prefetch
Message-ID:
<AANLkTilj__QDb7K4ooknV7X47bNYLbfYUlj3r_Mkkrcu@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset="iso-8859-1"
Ruby currently ignores software prefetches, as you point out. At one time,
there was some internal code that did hardware prefetching, but I don't
think that was ever released (however, its remnants remain scattered here
and there, e.g., the prefetch bit).
Regards,
Dan
On Thu, May 20, 2010 at 12:30 AM, lori zhuang <lorizhuang@xxxxxxxxx> wrote:
> List,
> I wonder if Ruby simulates the behavior of data prefetch. It seems
> like it does according to this link
> https://lists.cs.wisc.edu/archive/gems-users/2007-November/msg00102.shtml.
> But it seems like it doesn't according to the code in SimicsDriver.C:
>
> int SimicsDriver::makeRequest(memory_transaction_t *mem_trans) {
> ...
> ...
> //* skip unsupported types*
> if (*isUnhandledTransaction*(mem_trans)) {
> ret = Unhandled;
> } else {
> // perform makeRequest()
> int proc = SIMICS_get_proc_no(mem_trans->s.ini_ptr);
> ret = m_processors[proc]->makeRequest(mem_trans);
> }
> ...
> ...
> }
>
> bool SimicsDriver::*isUnhandledTransaction*(memory_transaction_t*
> mem_trans) {
> // only handle user data?
> if (USER_MODE_DATA_ONLY) {
> if(PRIV_MODE) {
> return true;
> }
> if(mem_trans->s.type == Sim_Trans_Instr_Fetch) {
> return true;
> }
> }
>
> // no prefetches
> if (mem_trans->s.type == Sim_Trans_Prefetch) {
> return true;
> }
>
> // no cache flush
> if (mem_trans->s.type == Sim_Trans_Cache) {
> return true;
> }
>
> // no DMA & IO
> if (IS_DEV_MEM_OP(mem_trans->s.ini_type) ||
> IS_OTH_MEM_OP(mem_trans->s.ini_type) ||
> mem_trans->s.physical_address >
> uinteger_t(RubyConfig::memorySizeBytes())
> ) {
> return true;
> }
>
> return false;
> }
>
> Ruby skips supported types memory request and it threats Sim_Trans_Prefetch
> as unsupported types. Hence I think Ruby doesn't simulates data prefetching.
> Am I right?
> Since I'm going to add a prefetch instruction of the SPARC v9 instruction
> set to a benchmark and see if any speedups. That's why I care so much about
> prefetching. Any suggestion is highly appreciated.
>
>
> Thanks,
> lorizhuang
>
>
>
>
> _______________________________________________
> 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.
>
>
>
--
http://www.cs.wisc.edu/~gibson [esc]:wq!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.wisc.edu/archive/gems-users/attachments/20100520/cea220e7/attachment.html>
------------------------------
_______________________________________________
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.
End of Gems-users Digest, Vol 237, Issue 2
******************************************
|