什么是memory snooping?

Memory Snooping一般对于软件来说都是透明的,它只是处理器内部使用的技术。

处理器向内存写如数据时,先经过cache,这样在后续的同一地址的读操作时可以直接从cache中取数,不会有问题。

但是并非只有处理器才能向内存写数据,外设也能,比如DMA。而且外设向内存中写入数据时,是不会经过处理器的cache的,这样会造成内存和cache中的数据不一致。处理器必须得知道内存被外设写了,这样当处理器想从那一地址读数据时,就会直接去内存中取数,而不至于傻傻的从cache里拿过时的错误数据。

所以这个工作叫“监视内存”,就是看内存是否被外设写过,避免内存中的数据和cache中的不一致。

 

参考:

http://newsgroups.derkeiler.com/Archive/Comp/comp.sys.arm/2005-08/msg00010.html

http://en.wikipedia.org/wiki/Snoop_cycle

你可能感兴趣的:(memory)