Dynamic selection of cache replacement policy
Various processors have had instructions that affect cache operations. Some examples:


Clear cache line. This takes a memory address, allocates a cache line for it, and sets all data in the memory area contained in that cache line to values with no information content (usually all zeroes). This allows then storing data without reading the cache line. 
Uncached read. This takes a memory address, reads the data, but doesn’t write it to the cache. 
Prefetch: This takes a memory address and loads the data into cache without giving the results to the CPU. So when the data is needed later it’s already in the cache, no wait needed. 
Streaming: Whenever data is read, the processor starts filling either the next or the previous cache line.