An apparatus and method are provided for controlling allocation of information into a cache storage. The apparatus has
processing circuitry for executing instructions and for allowing
speculative execution of one or more of those instructions. The invention also provides a cache storage having a plurality of entries for storing information for reference by the
processing circuitry, and cache control circuitry for controlling the cache storage, the cache control circuitry including a speculative allocation tracker having a plurality of tracking entries. The cache control circuitry is responsive to a speculative request associated with the
speculative execution requiring allocation of identified information into a given entry of the cache storage, to allocate a tracking entry in the speculative allocation tracker for the speculative request prior to allowing allocation of the identified information into the given entry of the cache storage. The allocated tracking entry is employed to maintain
recovery information sufficient to enable the given entry to be recovered to an initial state existing prior to the identified information being allocated into the given entry. The cache control circuitry is also responsive to detecting a false speculation condition with respect to the speculative request, to employ the
recovery information maintained in the allocated tracking entry for the speculative request to recover the given entry in the cache storage to an initial state. Such methods can provide robust protection against speculative based cache timing side-channel attacks while mitigating performance and / or
power consumption issues associated with known techniques.