Writing /fs1/eecg/moshovos/a/a3/moshovos/public_www/filter/data/cache/1/103b55f4b67dbada9f0864f3ce3a343d.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/1/103b55f4b67dbada9f0864f3ce3a343d.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/1/103b55f4b67dbada9f0864f3ce3a343d.xhtml failed

While most snoop filtering occurs either at the source or the destination of snoop broadcasts, other alternatives are possible.

Serial Snooping

Saldanha et al. proposed using serial-snooping which effectively implements a form of protocol-based filtering. In this proposal, snoop messages are distributed to processors one at a time until a valid copy of the data is found. While this may not always result in sending the fewest possible number of snoops, it can significantly reduce the total number of messages sent. Unfortunately, serial-snooping can result in a performance decrease when many successive snoops fail before a valid copy of the data is found. In the original proposal, a tree network was modified such that the switches could participate in forwarding snoops to successive nodes without sending each reply back to the original requester. Additionally, the tree network places main memory at the root of the tree where it is always in the middle of the order for serial snoops. Finally, snoop broadcasts on the tree network are sent to the root first before being broadcast to all nodes. Serial-snooping sends snoops directly from the requester, so access to shared data in nearby nodes actually occurs faster with serial-snooping than with the baseline broadcast protocol. All of these network properties serve to reduce the latency penalty of serial-snooping, making it an energy-efficient technique with reasonable performance overhead. For other network topologies, serial-snooping might be a less practical optimization.

Power Efficient Cache Coherence, Craig Saldanha and Mikko H. Lipasti Workshop on Memory Performance Issues, in conjunction with ISCA, June, 2001. http://www.ece.wisc.edu/~pharm/papers/saldanha_wmpi2001.pdf

In-Network Snoop Filtering

Finally, in-network snoop filtering (INSF) can be used to restrict snoop broadcasts from within the network itself. INSF tracks coarse-grain sharing information similar to the coarse grain filters, but instead of storing sharing information with individual caches, it is distributed throughout the network. A RegionTracker cache tracks which regions are present in each cache, and on a snoop broadcast, each cache informs its local router of whether it has any blocks from the region being snooped. If a router's local cache doesn't share a region, it communicates this information to its neighbors. Each router can then determine whether any cores accessible by a given port share a given region. Each router uses a small table to track the sharing information for the most recently accessed regions. When a snoop broadcast is performed, the routers can dynamically create a multicast tree that only sends the message to cores that share the region in question. Converting broadcast messages into multicasts allows INSF to eliminate more snoop messages and to eliminate more snoop-induced tag lookups than other techniques that simply class regions as shared or non-shared and choose between full broadcast or a single request to memory. The most significant downside to INSF is that it only works with non-adaptive routing protocols where only a fixed subset of nodes are accessible through any given port of a specific router.

Agarwal, N., Peh, L., and Jha, N. K. 2009. In-network coherence filtering: snoopy coherence without broadcasts. In Proceedings of the 42nd Annual IEEE/ACM international Symposium on Microarchitecture (New York, New York, December 12 - 16, 2009). MICRO 42. ACM, New York, NY, 232-243. DOI= http://doi.acm.org/10.1145/1669112.1669143

Snoop Filtering in Virtualized Multi-Cores

In virtualized workloads additional opportunities exist for snoop filtering as a result of the workload's nature. When running several virtualized workloads sharing is expected to be mostly among threads belonging to the same virtual machine. Accordingly, it is expected that snoops can be restricted to cores belonging to the same virtual machine. Care must be taken for the hypervisor accesses as these may spread across virtual machines and when workloads migrate. This paper presents a set of simple mechanisms that reduce snoop broadcasts in such environments. OS support is required.

Virtual Snooping: Filtering Snoops in Virtualized Multi-cores Daehoon Kim, Hwanju Kim, Jaehyuk Huh (KAIST), 43rd International Symposium on Microarchitecture, Dec. 2010

 
other_snoop_filters.txt · Last modified: 2010/10/12 17:40 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