I'm hesitant to write it's impossible, so I'm writing it's extremely hard. There is probably no generic answer. given that CPU cache works transparently it's not possible to read its content from attached CPU without altering cache content. CPU caches are usually implemented as CAM (content addressable memory, associative memory) if CPU tries to access data, the cache is looked up, if data are not there they are fetched from memory, but I'm afraid this process is transparent to CPU.
The option is to use a kind of HW observation module and sniff on system bus, which connects cache to RAM. If the request for data would appear on bus, then the requested data were not in cache.
hope someone with deeper HW knowledge will shed a light.
there is an entry on wikipedia discussing CPU caching:
http://en.wikipedia.org/wiki/CPU_cache