2.2.5. 结论

这一节应该已经显示出存取 DRAM 并不是一个非常快速的过程。至少与处理器执行、以及存取暂存器与cache的速度相比并不怎么快。务必将 CPU 与memory频率之间的差异放在心上。一颗以 2.933GHz 运作的 Intel Core 2 处理器以及一条 1.066GHz FSB 的时脉比率(clock ratio)为 11:1(注:1.066GHz 总线是四倍频的)。每在memory总线延误一个周期,意味著延误处理器 11 个周期。对于大多数机器来说,实际使用的 DRAM 要更慢一些,也因此增加延迟。当我们在接下来的章节中谈论延误的时候,要把这些数字记在心中。

读取命令的时序图显示 DRAM 模组的持续资料传输速率(sustained data rate)很高。整个 DRAM 列能够在毫无延误的情况下传输。资料总线能够 100% 持续使用。对于 DDR 模组而言,这代表每个周期传输两个 64 位元的字组。以 DDR2-800 模组与双通道来说,这代表速率为 12.8GB/s。

但是,除了为此而设计的情况,DRAM 并非总是循序存取的。使用不连续的memory区域,意味著需要预充电以及新的 RAS \overline{\text{RAS}} 讯号。这即是工作慢下来、并且 DRAM 需要协助的时候。能越早进行预充电以及发送 RAS \overline{\text{RAS}} ,真的需要那列时的损失(penalty)就越小。

硬件与软件预取(prefetch)(见 6.3 节)能够用以创造更多时间上的重叠并减少延误。预取也有助于及时搬移memory操作,以让之后 ── 在资料真的被需要之前 ── 少点争夺。当必须储存这一轮所产生的资料、并且必须读取下一轮所需的资料时,这是个常见的问题。借由及时搬移读取操作,就不必在基本上相同的时间发出写入与读取操作。

results matching ""

    No results matching ""