Ram实时延迟

时间:2018-03-22 19:02:16

标签: performance benchmarking frequency ram latency

我在某处读到了为了找到ram的实际延迟,你可以使用以下规则:

1/((RAMspeed/2)/1000) x CL = True Latency in nanoseconds

对于具有400Mhz时钟速度的DDR1而言,逻辑上除以2得到FSB速度或实际总线速度为200Mhz(在这种情况下)。所以上面的规则似乎对DDR1来说是正确的。

从另一方面来看,根据文章" 每个程序员应该了解的关于内存的情况,DDR2还会将前一代DDR1代(即每个时钟周期4位)的总线频率加倍。 EM>&#34 ;.

因此,在具有800Mhz时钟速度的DDR2的情况下,找到" True Latency"上述规则应相应改为

1/((RAMspeed/4)/1000) x CL = True Latency in nanoseconds

这是对的吗?因为在所有情况下,无论是DDR,DDR2,DDR3还是DDR4,我都会读到正确的 RAMspeed / 2

获得真正延迟的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

CAS延迟是内存总线时钟周期。这始终是每秒传输数量的一半。例如DDR3-1600的内存时钟为800MHz,每秒传输1600M(在突发传输期间)。

DDR2,DDR3和DDR4仍然使用双泵64位存储器总线(在时钟信号的上升沿和下降沿传输数据),而不是四泵浦。这就是为什么他们仍称为Double Data-Rate (DDR) SDRAM

FSB速度与它无关

在没有集成内存控制器的旧CPU上,即实际上拥有 FSB的系统,其频率通常可以与内存速度分开配置(在BIOS中)。见Front Side Bus and RAM speed;在更老的系统中,FSB和内存时钟是同步的。

通常,系统设计具有足够快的FSB以跟上内存控制器的步伐。以与内存相同的时钟速度运行FSB可以通过避免时钟域之间的缓冲来减少延迟。

是的, CAS延迟(以秒为单位)为cycle_count / frequency ,或更像您的公式
1000ns/us * CL / RAMspeed * 2 transfers/clock,其中RAMspeed是每秒超级转移。<​​/ p>

较高内存频率下的较高CL数通常会达到类似的绝对延迟(以秒为单位)。换句话说,现代RAM具有更高的CAS延迟时序数,因为在相同的时间内发生更多的时钟周期。

带宽已经大大改善,而延迟几乎保持不变,according to these graphs from Crucial解释了CL与频率的关系。

当然这不是&#34;内存延迟&#34;或者&#34; true&#34;记忆潜伏期

它本身就是DRAM本身的CAS延迟,是内存控制器和DRAM之间延迟的最重要因素,但只是CPU内核和内存之间延迟的一部分< / strong>即可。核心和非核心(L3和内存控制器)之间的CPU内部存在不可忽略的延迟。 Uncore是英特尔的术语; IDK在各种微体系结构中称AMD为内存层次结构的部分。

由于连接所有核心的大型环形总线,特别是多核Xeon CPU对L3 /内存控制器具有显着的延迟。与具有相同内存和CPU时钟频率的类似双核或四核相比,多核Xeon的L3和内存延迟更差。

这种额外的延迟实际上将大型Xeon上的单线程/单核带宽限制为比笔记本电脑CPU更差,因为单个核心无法在飞行中保留足够的请求以充满延迟。 Why is Skylake so much better than Broadwell-E for single-threaded memory throughput?

答案 1 :(得分:-1)

好的,我找到了答案。

每当制造商提高内存时钟速度时,他们都会以恒定速率执行此操作,总是是FSB时钟速度的两倍(2x)。即

MEM CLK      FSB
-------------------
DDR200      100 MHz    
DDR266      133 MHz    
DDR333      166 MHz
DDR400      200 MHz
DDR2-400    200 MHz
DDR2-533    266 MHz
DDR2-667    333 MHz
DDR2-800    400 MHz
DDR2-1066   533 MHz
DDR3-800    400 MHz
DDR3-1066   533 MHz
DDR3-1333   666 MHz
DDR3-1600   800 MHz

因此,内存模块始终具有FSB的双倍速度。