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
