133
技术社区[云栖]
计算机体系结构7_缓存控制机制
一,缓存控制机制
AMD64提供一系列机制用于设置内存的缓存特性:
Cache disable
CR0的bit 30为cache-disable bit,CR0.CD. CR0.CD=0,开启缓存功能;CR0.CD=1,关闭缓存功能。
当缓存功能被关闭时,读写均通过主存完成。
当缓存中存有有效数据或指令时,软件可以关闭缓存功能。
当缓存功能被关闭时,如果读或写操作命中L1数据缓存或者L2缓存,处理器执行如下操作:
1. 如果cache line为modified或owned状态,写回内存;
2.使cache line失效;
3.通过执行一次non-cacheable的主存读或写。
当缓存功能被关闭时,如果取指令命中L1指令缓存,处理器通过缓存读指令而不是主存。
当缓存功能被关闭时,处理器同样会相应其他处理器的probe。如果probe命中缓存,会导致当前处理器执行1,当probe是由主存写,
或者exclusive读时, 2步骤会被执行。
Writethrough Disable
CR0的bit 29为not writethrough bit,CR0.NW.
在早期的X86处理器中,CR0.NW=0使能主存的writeback功能,关闭writethrough功能。当CR0.NW=0时,软件可以通过
使用其他的控制机制关闭特定内存页或区域的writeback功能。 CR0.NW=1关闭主存的writeback功能,开启writethrough
功能。
AMD64的缓存操作模式:
Page-Level Cache Disable,以页为单位的缓存关闭机制。
Page-Level Writethrough Enable,以页为单位的写通控制机制。
Memory Type,软件可以通过两种机制设置内存区间的特性:
MTRRs(memory-type range registers),根据物理地址控制内存的功能。
PAT(page-attribute table),根据虚拟地址控制内存的功能。
二,缓存机制优先级
缓存机制优先级如下:
在低优先级机制内存区域中,可以设置区域中的区段为高优先级机制,反则不允许。
参考:
AMD64 Architecture Programmer’s Manual Volume 2: System Programming
最后更新:2017-04-03 14:54:08