Patent ID: 8041897

Claim:
A data processing apparatus comprising: at least one processing unit operable to execute a sequence of instructions; each of the at least one processing units having a cache associated therewith, each cache having a plurality of cache lines operable to store data values for access by the associated processing unit when executing the sequence of instructions; identification logic operable for each cache to monitor data traffic within the data processing apparatus and based thereon to generate a preferred for eviction identification identifying one or more of the data values as preferred for eviction; and cache maintenance logic operable for each cache to implement a cache maintenance operation during which selection of one or more data values for eviction from that cache is performed having regard to any preferred for eviction identification generated by the identification logic for data values stored in that cache, wherein: the identification logic comprises transient data detection logic operable for each cache to detect when execution of the sequence of instructions by the associated processing unit is causing data values to be accessed which are of transient interest to the associated processing unit, the transient data detection logic being further operable to identify such data values of transient interest stored in that cache as preferred for eviction; at least one of the at least one caches employs a write allocate policy, such that if a write data value output by the associated processing unit during a write operation results in a cache miss, a selected cache line in that cache is subjected to a linefill process; and the identification logic comprises burst write detection logic operable to detect a situation where a series of write operations are issuing a plurality of write data values sufficient to fill a number of selected cache lines above a threshold value and to identify as preferred for eviction the data values of at least the selected cache lines subsequent to detection of the threshold value being exceeded.