Sounds like a good post-ISCA goal :)

On Mon, Sep 14, 2009 at 5:42 PM, Derek Hower <[email protected]> wrote:
> No, I'm not using mercurial queues.  It's on the "things I need to do but
> don't yet" list.
>
> On Mon, Sep 14, 2009 at 6:21 PM, nathan binkert <[email protected]> wrote:
>>
>> Are you not using mercurial queues?  Generally, you don't get merge
>> changesets when you do.  Either way, it's not a major problem, but you
>> can keep the history cleaner if you do.
>>
>>  Nate
>>
>> On Mon, Sep 14, 2009 at 3:14 PM, Derek Hower <[email protected]> wrote:
>> > # HG changeset patch
>> > # User Derek Hower <[email protected]>
>> > # Date 1251213023 18000
>> > # Node ID 19e532a296e0975cf7918b4d7e9ef80f1d392cac
>> > # Parent  e0c1c6d876499dc536cfdf0cd37736051f1fb760
>> > # Parent  c47323cc8f988feaf0718626f80a1b7a5bdca18f
>> > Automated merge with ssh://[email protected]/m5
>> >
>> > diff --git a/src/mem/ruby/config/MI_example-homogeneous.rb
>> > b/src/mem/ruby/config/MI_example-homogeneous.rb
>> > --- a/src/mem/ruby/config/MI_example-homogeneous.rb
>> > +++ b/src/mem/ruby/config/MI_example-homogeneous.rb
>> > @@ -34,6 +34,13 @@
>> >   elsif $*[i] == "-m"
>> >     num_memories = $*[i+1].to_i
>> >     i = i+1
>> > +  elsif $*[i] == "-R"
>> > +    if $*[i+1] == "rand"
>> > +      RubySystem.random_seed = "rand"
>> > +    else
>> > +      RubySystem.random_seed = $*[i+1].to_i
>> > +    end
>> > +    i = i+ 1
>> >   elsif $*[i] == "-s"
>> >     memory_size_mb = $*[i+1].to_i
>> >     i = i + 1
>> > diff --git a/src/mem/ruby/config/TwoLevel_SplitL1UnifiedL2.rb
>> > b/src/mem/ruby/config/TwoLevel_SplitL1UnifiedL2.rb
>> > --- a/src/mem/ruby/config/TwoLevel_SplitL1UnifiedL2.rb
>> > +++ b/src/mem/ruby/config/TwoLevel_SplitL1UnifiedL2.rb
>> > @@ -40,6 +40,13 @@
>> >   elsif $*[i] == "-p"
>> >     num_cores = $*[i+1].to_i
>> >     i = i+1
>> > +  elsif $*[i] == "-R"
>> > +    if $*[i+1] == "rand"
>> > +      RubySystem.random_seed = "rand"
>> > +    else
>> > +      RubySystem.random_seed = $*[i+1].to_i
>> > +    end
>> > +    i = i+ 1
>> >   elsif $*[i] == "-s"
>> >     memory_size_mb = $*[i+1].to_i
>> >     i = i + 1
>> > diff --git a/src/mem/ruby/system/CacheMemory.hh
>> > b/src/mem/ruby/system/CacheMemory.hh
>> > --- a/src/mem/ruby/system/CacheMemory.hh
>> > +++ b/src/mem/ruby/system/CacheMemory.hh
>> > @@ -156,6 +156,7 @@
>> >
>> >   // The first index is the # of cache lines.
>> >   // The second index is the the amount associativity.
>> > +  m5::hash_map<Address, int> m_tag_index;
>> >   Vector<Vector<AbstractCacheEntry*> > m_cache;
>> >   Vector<Vector<int> > m_locked;
>> >
>> > @@ -286,6 +287,12 @@
>> >  {
>> >   assert(tag == line_address(tag));
>> >   // search the set for the tags
>> > +  m5::hash_map<Address, int>::const_iterator it =
>> > m_tag_index.find(tag);
>> > +  if (it != m_tag_index.end())
>> > +    if (m_cache[cacheSet][it->second]->m_Permission !=
>> > AccessPermission_NotPresent)
>> > +      return it->second;
>> > +  return -1; // Not found
>> > +  /*
>> >   for (int i=0; i < m_cache_assoc; i++) {
>> >     if ((m_cache[cacheSet][i] != NULL) &&
>> >         (m_cache[cacheSet][i]->m_Address == tag) &&
>> > @@ -294,6 +301,7 @@
>> >     }
>> >   }
>> >   return -1; // Not found
>> > +  */
>> >  }
>> >
>> >  // Given a cache index: returns the index of the tag in a set.
>> > @@ -303,11 +311,19 @@
>> >  {
>> >   assert(tag == line_address(tag));
>> >   // search the set for the tags
>> > +  m5::hash_map<Address, int>::const_iterator it =
>> > m_tag_index.find(tag);
>> > +  if (it != m_tag_index.end())
>> > +    return it->second;
>> > +  return -1; // Not found
>> > +  /*
>> > +  assert(tag == line_address(tag));
>> > +  // search the set for the tags
>> >   for (int i=0; i < m_cache_assoc; i++) {
>> >     if (m_cache[cacheSet][i] != NULL && m_cache[cacheSet][i]->m_Address
>> > == tag)
>> >       return i;
>> >   }
>> >   return -1; // Not found
>> > +  */
>> >  }
>> >
>> >  // PUBLIC METHODS
>> > @@ -418,6 +434,7 @@
>> >       m_cache[cacheSet][i]->m_Address = address;
>> >       m_cache[cacheSet][i]->m_Permission = AccessPermission_Invalid;
>> >       m_locked[cacheSet][i] = -1;
>> > +      m_tag_index[address] = i;
>> >
>> >       m_replacementPolicy_ptr->touch(cacheSet, i,
>> > g_eventQueue_ptr->getTime());
>> >
>> > @@ -439,6 +456,7 @@
>> >     delete m_cache[cacheSet][location];
>> >     m_cache[cacheSet][location] = NULL;
>> >     m_locked[cacheSet][location] = -1;
>> > +    m_tag_index.erase(address);
>> >   }
>> >  }
>> >
>> > _______________________________________________
>> > m5-dev mailing list
>> > [email protected]
>> > http://m5sim.org/mailman/listinfo/m5-dev
>> >
>> >
>> _______________________________________________
>> m5-dev mailing list
>> [email protected]
>> http://m5sim.org/mailman/listinfo/m5-dev
>
>
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev
>
>
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to