[Gems-users] inconsistency in map_Address_to_DirectoryNode


Date: Sat, 31 Mar 2007 23:23:10 -0600
From: "Liqun Cheng" <liqun.cheng@xxxxxxxxx>
Subject: [Gems-users] inconsistency in map_Address_to_DirectoryNode
Hi,

I am confused by the implementation of map_Address_to_DirectoryNode (RubySlicc_ComponentMapping.h), which doesn't seem to match the its figure.
if (RubyConfig::memoryBits() > 0) {
    dirNode = addr.bitSelect (RubyConfig::dataBlockBits(),
                        RubyConfig::dataBlockBits()+RubyConfig::memoryBits()-1);
}
Here, bits in the page offset are used to locate the home node, so two addresses in the same page can be mapped to two home node?? Shouldn't we use bits (RubyConfig::pageSizeBits()) to (RubyConfig::pageSizeBits()+RubyConfig::memoryBits()-1) to find the home node? Do I miss something here?

thanks
Liqun

ADDRESS_WIDTH    MEMORY_SIZE_BITS             PAGE_SIZE_BITS  DATA_BLOCK_BITS
  |                                                   |                                 |                         |
 \ /                                                 \ /                              \ /                        \ /       0
  --------------------------------------------------------------------------------------------------------------------------
  |       unused                                 |xxxxxxxxxxxxxxx|       |xxxxxxxxxxxxxxx|       |
  |                                                  |xxxxxxxxxxxxxxx|        |xxxxxxxxxxxxxxx|       |
  --------------------------------------------------------------------------------------------------------------------------
                                                       indexHighPortion         indexLowPortion
                                                                               <------->
                                                            NUMBER_OF_MEMORY_MODULE_BITS


[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] inconsistency in map_Address_to_DirectoryNode, Liqun Cheng <=