mtrr
mtrr(memory type range registers)是一组msr。mtrr可以控制物理内存的缓存类型,mtrr分为固定范围和非固定范围的,详细操作请自行搜索。缓存类型分为UC,UC-,WB,WT,WC(不可缓存,弱不可缓存,Write-Back, Write-Through, Write Combining) 。UC不解释,UC-指不可缓存的属性可被其它缓存属性覆盖,这两种属性经常被用于mmio区域(memory mapped io,如xapic寄存器映射到的0xfee00000),不会污染缓存。Write-Back 读写都经过缓存,性能最高,ram使用,通常固件会设置为这个类型。Write-Through透写,读的时候从缓存读,写的时候直接写内存而不动缓存。WC, 这时的内存写操作会被存在一个WC buffer里,里面内容差不多了快满了一次性全部写进内存,带宽高,但是不保证写的时机,适合framebuffer使用。