本帖最后由 mercuryfall 于 2017-3-15 14:25 编辑
关于Ryzen的L3我觉得有必要提醒一下:AMD在发布会上曾表明过Ryzen的L3 Cache不同于传统的L3,其本质上是L1和L2的Victim Cache。
其工作模式并不是很多人认为的主内存->L3->L2->L1这样一个结构,而是主内存->L2,然后L2将被驱逐(evicted)的数据传输给L3,这样当CPU需要找以前用过的数据的时候就可以去L3找,而不是去DRAM。好处当然是有的,首先它同样可以起到增加Cache总容量的目的,同时当同一个CCX之内的CPU进行线程切换或通讯的时候,CPU1可以直接去CPU0的L3中找CPU0之前用过的数据,效率会很高。
但同时这也就意味着:对于Ryzen来说,L3无法直接同内存通信,如果程序指定L2去下一级缓存中读取数据,其实并不是去L3中找,而是直接去内存中找,延迟会大大增加。同Intel类比的话,大概等同于Intel外置的那个L4 eDRAM,最大的区别是Intel取了一个很好听的名字,叫"Crystal Well"。 |