Writing /fs1/eecg/moshovos/a/a3/moshovos/public_www/filter/data/cache/3/3364f0bc5b095ac94885b4fe59fca845.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /fs1/eecg/moshovos/a/a3/moshovos/public_www/filter/data/cache/3/3364f0bc5b095ac94885b4fe59fca845.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /fs1/eecg/moshovos/a/a3/moshovos/public_www/filter/data/cache/3/3364f0bc5b095ac94885b4fe59fca845.xhtml failed

All of these schemes discussed in this section so far track complete and precise information about all of the regions stored in the cache. While precision and completeness improve the efficiecy of these optimizations, it comes at the cost of large hardware structures that consume on-chip area and energy. RegionScout takes the opposite approach, sacrificing precision and potential benefit to reduce the overall hardware cost of snoop filtering. Instead of using a large table to track all of the regions stored in the cache, RegionScout uses a space-efficient counting Bloom filter to track which regions might be stored in the cache. Aliasing in this structure results in processors sometimes incorrectly indicating that they share a particular region of memory, but the filter will never falsely indicate that region is not present. Additionally, instead of tracking sharing information for all of the regions stored in the cache, RegionScout uses a small Non-Shared Region Table (NSRT) to track a few regions which have experienced recent misses and which are known to be non-shared. Although RegionScout stores an incomplete list of which regions are non-shared, and uses imprecise information to identify whether a region is shared, it achieves significant reductions in the number of snoop broadcasts performed. Compared to CGCT, RegionScout eliminates more snoop broadcasts per bit of storage overhead in its tables.

To help implement such coarse-grain snoop filtering optimizations, Zebchuk et al. prosed RegionTracker. Instead of using seperate structures to track the sharing state of regions present in the cache, RegionTracker re-organizes the cache tag arrays so they can store this information with minimal overhead. RegionTracker uses a dual-grain approach to identify blocks in the cache, tracking information for coarse-grain regions as well as for the fine-grain blocks within each region. By restricting the number of regions that can be present in the cache, RegionTracker could potentially hurt cache miss-rates, but in practice, RegionTracker can achieve nearly identical performance to a standard cache while using the same or less area. RegionTracker replaces the area and energy cost of building large tables to track coarse-grain sharing information with the design and verification costs of replacing the standard tag array used in the cache.

Moshovos, A. 2005. RegionScout: Exploiting Coarse Grain Sharing in Snoop-Based Coherence. SIGARCH Comput. Archit. News 33, 2 (May. 2005), 234-245. DOI= http://doi.acm.org/10.1145/1080695.1069990

Zebchuk, J., Safi, E., and Moshovos, A. 2007. A Framework for Coarse-Grain Optimizations in the On-Chip Memory Hierarchy. In Proceedings of the 40th Annual IEEE/ACM international Symposium on Microarchitecture (December 01 - 05, 2007). International Symposium on Microarchitecture. IEEE Computer Society, Washington, DC, 314-327. DOI= http://dx.doi.org/10.1109/MICRO.2007.5

 
regionscout_and_regiontracker.txt · Last modified: 2010/10/12 16:58 by andreas
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki