Hello everyone,
I'm trying to understand the cache coherence protocol, and I'm
successfully in its 'cache' part like MI_example-cache.sm. But I'm
puzzled at its 'dir' part like MI_example-dir.sm. I have many question
about the source code of DirectoryMemory.
1. what is the mean of class static arguments *m_num_directories* and
*m_num_directories_bits*? It seems that there may be multiple instances
of DirectoryMemory.
2. the function *mapAddressToDirectoryVersion* is more strange. I think
that the mapping between memory address and serial number of directory
entry should be *address%RubySystem::getBlockSizeBytes()*, but in fact
it's associated with argument *m_num_directories_bits*.
3. when argument *m_use_map* is set to *ture*, class SparseMemory is
used instead of a simple array of directory entry, what is it?
Any Help Really Appreciated!
Chuanlei
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users