cache line fill
当处理器发现从内存读取的操作数是cache-able,处理器会读取整个cache line到相应的cache中(L1, L2, L3或者到全部Cache)。我们把这个操作叫做cache line fill
cache hit
如果包含操作数的内存仍然在cache中,那么下一次处理器访问这个操作数时,处理器就可以直接从cache中读取,而不需要从相对慢速的系统内存中读取。这个操作我们称之为cache命中
write hit
当处理器要写一个操作数到cache-able的内存区域时,首先会检查这块内存是否已经在cache line中。如果cache line存在,那么处理器可以把操作数写到cache中,而不是写到系统内存。这个操作称之为write hit
write missed
当处理器写一个操作数到cache-able的内存区域时,如果这块内存没有对应有效的cache line,那么就称为cache missed。此时处理器可移执行cache line填充,然后再把操作数写到cache line中,然后(依赖于当前内存的写策略)写到store buffer中,然后在系统总线可用时,把 write buffer的内容写到系统内存。注意对于Pentium处理器,write missed并不会导致cache line fill,而是直接写回内存。对于这个处理器,只有read missed会导致cache line fill。
snoop
在MP (multi-processor)系统中,IA32和Intel 64处理器会snoop其他处理器对内存的访问,通过这个能力,可以确保处理器保持他们内部的cache和 系统内存以及其他处理器的cache保持一致。
比如,Pentium和P6家族处理器,通过snooping,一个处理器可以检测到另外一个处理器要写系统内存,并且这块内存恰好当前正在被cached在cache line中,执行snooping的处理器会无效自己的cache line,使得下一次这个处理器访问这个内存位置时会执行一次cache line fill。