假设场景是计算机有2个dimms,内存控制器如何在两者之间分配数据?
它必须使用地址中的一些位,但是哪些位以及这些位的原因。
我会说每个dimm bank / row size都有意义,因为我们会有大量并发有效的行缓冲区并且可能会增加带宽。
它是如何实际完成的? (我们假设x86上有一个通用的CPU架构)
答案 0 :(得分:1)
Here他根据他对Intel Sandy Bridge CPU的实验提出了一些结果:
位0-5:这是一行中字节索引的低6位(即64位高速缓存行的6位索引)。
位6:这是一个1位通道编号,可在2个DIMM之间进行选择。
第7-13位:这些是一行中索引的高7位(即列号的高位)。 第14-16位:它们与行号的最后3位进行异或,以给出3位存储区编号。
位17:这是一个1位的等级编号,它在DIMM的两个等级之间进行选择(通常是DIMM电路板的两侧)。
第18-32位:这些是15位行号。
比特33+:这些可能被设置,因为物理内存从大于0的物理地址开始。