2.4.2 Snoop filter

The CCI-550 contains an inclusive snoop filter that records the addresses of data that is stored in the ACE master caches.

The snoop filter can respond to snoop transactions 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 multiple 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, the request is considered a hit and is directed to the 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 that are attached to the CCI-550. 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-550 is unable to insert a new entry in an available position in the snoop filter. If a conflict occurs, an existing entry is evicted, and the snoop filter issues a CleanInvalid snoop to processors that might be holding the evicted lines. This type of eviction is known as a back-invalidation, and is expected to occur rarely 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.


Ensure that masters connected to the CCI-550 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 100282_0100_00_en
Copyright © 2015, 2016 ARM. All rights reserved.