Intel 64 and IA-32 cache 术语

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。



发布了183 篇原创文章 · 获赞 42 · 访问量 142万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章