5 ms·
Is there any way for software, even in assembly, to make intelligent use of on-cpu ram caches? I thought they were completely abstracted by the hardware.
by dspeyer 14y ago
Is there any way for software, even in assembly, to make intelligent use of on-cpu ram caches? I thought they were completely abstracted by the hardware.
- ori_b 14y agoYes. You read about how the cache works, and design the code to take that into account. This is usually done through techniques like cache coloring (http://en.wikipedia.org/wiki/Cache_coloring http://en.wikipedia.org/wiki/Cache_coloring), loop tiling (http://en.wikipedia.org/wiki/Loop_tiling http://en.wikipedia.org/wiki/Loop_tiling) and other techniques that depend on the way that the cache works internally. In addition, many CPUs provide prefetch instructions to make sure data is in cache before it's used, or cache-skipping loads and stores to prevent polluting cache with data that's only ever touched once.
- betterunix 14y agoWell, I am not as well-versed in optimization, but there is this: https://en.wikipedia.org/wiki/Cache_timing_attack https://en.wikipedia.org/wiki/Cache_timing_attack If you can exploit the effect that cache has on latency, it is reasonable to assume that you can manipulate it in other ways.