> On 2011-01-13 08:33:49, Brad Beckmann wrote:
> > I can't fully appreciate these latest changes without also seeing the 
> > updated .sm files, but overall this looks very inline with what we have 
> > been discussing over the past few days.  I just have one basic question on 
> > why we need to overload doTransition, getState, and setState.  Why can't we 
> > just have one version?  Also a possibly related idea is can you insert 
> > asserts (!= NULL) for the tbe and cache_entry pointers before they are 
> > dereferenced in the generated code?
> 
> Nilay Vaish wrote:
>     Because Entry and/or TBE types might not be defined at all for particular
>     controllers. Same holds true for the getState() and setState(). Also,
>     getState() and setState() do not require the address, if the tbe and
>     cache_entry have been properly set.

After reading your comment, I realized that there is __huge__ mistake in this 
patch, which will not show up unless I test the generated code. I will have to 
change some parts again.


- Nilay


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.m5sim.org/r/358/#review727
-----------------------------------------------------------


On 2011-01-12 22:45:22, Nilay Vaish wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.m5sim.org/r/358/
> -----------------------------------------------------------
> 
> (Updated 2011-01-12 22:45:22)
> 
> 
> Review request for Default.
> 
> 
> Summary
> -------
> 
> The purpose of this patch is to change the way CacheMemory interfaces with 
> coherence protocols. Currently, whenever a cache controller (defined in the 
> protocol under consideration) needs to carry out any operation on a cache 
> block, it looks up the tag hash map and figures out whether or not the block 
> exists in the cache. In case it does exist, the operation is carried out 
> (which requires another lookup). Over a single clock cycle, multiple such 
> lookups take place as observed through profiling of different protocols. It 
> was seen that the tag lookup takes anything from 10% to 20% of the simulation 
> time. In order to reduce this time, this patch is being posted. The 
> CacheMemory class now will have a function that will return pointer to a 
> cache block entry, instead of a reference (though the function that returns 
> the reference has been retained currently). Functions have been introduced 
> for setting/unsetting a pointer and check its pointer. Similar changes have 
> been carried out for Transaction Buffer entries as well.
> 
> Note that changes are required to both SLICC and the protocol files. This 
> patch carries out changes to SLICC and committing this patch alone, I 
> believe, will ___break___ all the protocols. I am working on patching the 
> protocols as well. This patch is being put to get feed back from other 
> developers.
> 
> 
> Diffs
> -----
> 
>   src/mem/protocol/RubySlicc_Types.sm c6bc8fe81e79 
>   src/mem/ruby/slicc_interface/AbstractCacheEntry.hh c6bc8fe81e79 
>   src/mem/ruby/slicc_interface/AbstractCacheEntry.cc c6bc8fe81e79 
>   src/mem/ruby/system/CacheMemory.hh c6bc8fe81e79 
>   src/mem/ruby/system/CacheMemory.cc c6bc8fe81e79 
>   src/mem/ruby/system/TBETable.hh c6bc8fe81e79 
>   src/mem/slicc/ast/ActionDeclAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/FormalParamAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/FuncCallExprAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/IfStatementAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/InPortDeclAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/IsValidPtrExprAST.py PRE-CREATION 
>   src/mem/slicc/ast/LocalVariableAST.py PRE-CREATION 
>   src/mem/slicc/ast/MethodCallExprAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/StaticCastAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/TypeDeclAST.py c6bc8fe81e79 
>   src/mem/slicc/ast/__init__.py c6bc8fe81e79 
>   src/mem/slicc/parser.py c6bc8fe81e79 
>   src/mem/slicc/symbols/Func.py c6bc8fe81e79 
>   src/mem/slicc/symbols/StateMachine.py c6bc8fe81e79 
> 
> Diff: http://reviews.m5sim.org/r/358/diff
> 
> 
> Testing
> -------
> 
> I have tested these changes using the MOESI_CMP_directory and MI protocols.
> 
> 
> Thanks,
> 
> Nilay
> 
>

_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to