摘要 |
A cache coherency controller has a snoop filter. When given an address in memory, the filter returns a snoop vector indicating which caches store data from the given address. The vector for addresses stored in the caches are recorded a directory. The controller also records which caches are currently subject to coherency control in a snoop mask. When the controller looks up an address in the directory, it masks out references to caches, which are not participating in coherency control. It may replace an entry in the directory, which refers to such a cache, with one that only refers to caches participating in the coherency control. The directory may be set associative, with a multiple entries mapping to a group of addresses. When a new entry needs to be added to the directory, any entry only referring to a cache not participating in the coherency control may be considered empty and replaced. |