2.4.2 Snoop filter

The CCI-500 contains an inclusive snoop filter that records the addresses of data stored in the ACE master caches. This means that the filter can respond to the snoop in the case of a miss, and snoop appropriate masters only in the case of a hit. Snoop filter entries are maintained by observing transactions from ACE masters to determine when entries have to be allocated and deallocated.

The snoop filter can respond to many of the coherency requests without it being necessary to broadcast to all ACE interfaces. For example, if the address is not in any cache, the snoop filter responds with a miss and directs the request to memory. If the address is in a processor cache, then it is considered to be a hit and the snoop is directed to the appropriate ACE port containing that address in its cache.
ARM recommends that you configure the snoop filter directory to be 0.75-1 times the total size of exclusive caches of processors attached to the CCI-500. The snoop filter is 8-way set associative and, to minimize conflicts, stores twice as many tags as the configured size. An example of a conflict is when the CCI-500 is unable to insert a new entry in an available position in the snoop filter. In the case of a conflict, an existing entry is evicted, and the snoop filter issues a CleanInvalid snoop to the processors that might be holding the evicted lines. This is known as a back-invalidation, and is expected to be a rare occurrence if you configure the snoop filter size as ARM recommends.
The snoop filter is updated by monitoring transactions from the attached masters, that allocate and deallocate data into their caches. In the ACE protocol, the deallocation of clean data is indicated using the Evict transaction.

Note

You must ensure that masters connected to the CCI-500 issue Evict transactions when they deallocate clean data. For ARM processors, you can control the issuing of Evict transactions using bit[3] of the L2 Auxiliary Control Register.
Non-ConfidentialPDF file icon PDF versionARM 100023_0001_00_en
Copyright © 2014, 2015 ARM. All rights reserved.