什么是 ECC 内存

对于大多数企业来说,消除数据损坏是一项关键任务——这正是 ECC(纠错码)内存的目的。ECC 是一种指令纠错技术,能够检测并纠正常见的各种内存数据损坏情况,即Error Checking and Correcting。

是什么导致错误

内存错误是电脑内部的电磁干扰造成的。这种干扰会导致 DRAM(动态随机存取内存)的单位自发地变成相反的状态。电磁干扰以背景辐射的形式存在,海拔越高,干扰越大。宇宙飞船尤其容易有很高的错误率。

单位错误可能是隐性的,也就是说,它们不会对数据造成严重影响;但是,内存单元是相互关联的,因此单位变化可能会影响整个系统,从而导致系统出错,尤其是在需要严密运行的系统中。

ECC 内存的工作原理

ECC 内存包含附加内存位和内存控制器,这些控制器用于控制模块上附加芯片中的附加位。在将数据写入到内存时,ECC 内存使用附加位来存储加密代码,同时存储纠错码。读取数据时,会将存储的纠错码与读取数据时生成的纠错码进行比较。如果读取的代码与存储的代码不匹配,会用奇偶校验位对前者进行解密,以确定哪个位出错,然后立即纠正该位。症状表是一种可以识别并纠正位错误的数学方法。

在数据处理过程中,ECC 内存会使用特殊算法不断扫描代码,以检测并纠正单位内存错误。

优势和劣势

ECC 内存对于维持数据完整性至关重要。大多数服务器内存也是 ECC 内存。ECC 内存进一步减少了数据崩溃情况,这对于多用户服务器应用程序非常重要。

与非 ECC 内存相比,ECC 内存通常更昂贵,速度可能稍慢。其他系统组件(例如,CPU 和主板)也必须支持 ECC 内存。如果您的系统要求数据完整性和较高可用性,Crucial® 英睿达 ECC 内存或许是个不错的选择。

RAM 速度和 CAS 延迟的区别

关于延迟的看法和真相

看法

  • 许多用户认为 CAS 延迟是实际延迟性能的准确指标
  • 许多用户还认为,由于 CAS 延迟随着速度提升而增大,因此有一部分速度会变得无效

真相

  • 半导体工程师知道 CAS 延迟不是性能的准确指标
  • 延迟最好按纳秒来测量
  • 随着速度提升,延迟降低或保持大致相同,意味着更快的速度实现更好的性能
  • 延迟感觉和真实延迟之间的差异归根到底取决于如何定义和测量延迟。
  • 速度的提高和延迟的降低都会带来更好的系统性能
    • 例如:由于 DDR4-2400 CL17 和 DDR4-2666 CL19 的以纳秒为单位的延迟大致相同,因此更高速度的 DDR4-2666 内存将提供更好的性能
    • 例如:如果一个标准模块和一个游戏模块的速度等级相同(即 DDR4-2666),但 CAS 延迟不同(即 CL16 和 CL19),那么较低的 CAS 延迟将提供更好的性能

延迟悖论

延迟经常被误解,因为在产品宣传页和规格对比中,延迟以 CAS 延迟 (CL) 来表示,而这仅是延迟方程式的一半。由于 CL 额定值仅指明时钟周期的总数,它们与每个时钟周期的持续时间没有任何关系,因而它们不应被推断为延迟性能的独特指标。

以纳秒级计算模块的延迟,即可尤为准确地判断一个模块在实际上是否比另一个模块更快地响应。如需计算模块的延迟,请将时钟周期持续时间乘以时钟周期总数。这些数字将在官方工程文档和模块数据表中注明。下面是这些计算的例子。

图片.png

计算公式:延迟 = CAS延迟 * 2 / 模块速度
举例 DDR4 3200 延迟计算:22 * 2 / 3200 = 13.75ns

什么是延迟和延迟方程式?

在基础层面,延迟是指从输入命令到数据可用之间的时间延迟。延迟是这两个事件之间的时间差。当内存控制器指示内存访问特定位置时,数据应在列地址选通脉冲 (CAS) 中经历若干时钟周期才能到达其期望的位置并完成命令。基于这一点,有两个变量可确定模块的延迟:

  • 数据应经历的总时钟周期数(按数据表上的 CAS 延迟或 CL 来测量)
  • 每个时钟周期的持续时间(按纳秒来测量)

结合这两个变量,我们可得出延迟方程式:

延迟 (ns) = 时钟周期时间 (ns) x 时钟周期数 (CL)

在内存技术的历史中,随着速度的提高(这意味着时钟周期时间减少),CAS 延迟值也增加,但是由于时钟周期加快,以纳秒计的真正延迟基本保持不变。通过优化处理器能够达到的速度高限和预算内可用的延迟内存低限之间的平衡,就能够使用更新、更快和更有效的内存来实现更高级别的性能。

哪个更重要:速度还是延迟?

  • 步骤 1:确定您的处理器和主板支持的内存速度高限(包括超频配置文件)。
  • 步骤 2:选择预算范围内的延迟内存低限,请记住,表现良好的(即更低的)延迟意味着更高的系统性能。

内存颗粒

这里根据不同颗粒的超频空间分类列出了内存颗粒种类:

  • 可超频到4000MHz以上频率: b-die;
  • 可超频到3600MHz以上频率: c-die, m-die,美光b-die, d-die;
  • 可超频到3000MHz以上频率: e-die, a-die……

当然实际超频时内存配合AMD还是Inrel的CPU,表现都会有所不同。

能够查看内存颗粒的软件有 Thaipoon Burner

双通道内存

什么是内存双通道

当你只有一根内存的时候,数据都保存在这根内存条中,cpu也只能和这一根内存做数据交互。当你有两根时候,组成双通道,此时,你运行的数据被拆分了两部分分别在两根内存条中,cpu可以同时访问两根内存条。

内存单通道和双通道的区别

双通道是一种区别于单通道的主板和cpu间的内存控制技术,在内存相同的情况下,在主板上加装内存条组成双通道内存,可以让CPU分别寻址和读取数据,从理论上来说可以将内存的带宽、读速等增加一倍。

双通道内存有什么好处

由于双通道可以提供两倍于单通道的带宽,因此在使用一些与内存数据进行大量交换的软件(如3DMAX、SPEC Viewperf等)时,双通道可以大幅提高软件运行的速度。

并且,由于核心显卡与cpu共享内存,因此双通道也可以更好地发挥核心显卡的性能。

双通道内存对游戏提升

如果我们的电脑没有配备独显,我们通过核显进行游戏以及视图软件运行等,那么双通道内存可以带来的提升是比较可观的。根据一些跑分软件的测试,这种情况下核显的性能可以提高15%到40%。

目前,很多游戏玩家都会个人DIY比较好的台式主机或者购买性能较好的游戏笔记本,其本身带有的内存已经足够大,并且也带有独显。因此在运行一般的软件以及游戏时,双通道内存带来的提升可能无法体现出来,即便是运行比较大型的游戏,在内存够用的情况下,双通道带来的游戏表现提升也并不大。

然而,在能组双通道的情况下,尽量都将内存组成双通道。例如对比单通道16G内存,两条8G内存组成的双通道是性能更优且不会带来什么缺点的。在我们组建内存双通道时,需要注意以下的几点:

  • 两根内存的插槽并不是可以随意选择的。台式机的主板一般带有4个内存插槽,组建双通道时,需要将两根内存条分别插在1、3插槽(或者2、4插槽),一般情况下,主板内存插槽也会通过不同的颜色对我们进行提示。
  • DDR3与DDR4内存不能一起组建双通道,他们是不兼容的,并且由于这一原因,现在的主板插槽都不能同时支持DDR3与DDR4。
  • 不同频率的内存可以组建双通道,但是高频率内存与低频率内存组建双通道以后,高频率内存的性能就无法充分发挥,这是一种不经济的做法。
  • 不同容量的内存可以组建双通道。例如将4G内存与8G内存组成双通道,最终效果就是会形成一个4G单通道以及一对4G双通道。这是一种节省预算的提升内存带宽和性能的方法。
  • 尽量选择品牌与型号相同的内存组建双通道。

内存时序

内存性能参数中,主要关注的两个参数一个是内存时序,另一个是频率,可以稍微夸张点的说,内行看时序,外行看频率,倒不是说这两个参数哪个更重要,而是相对于内存频率,内存时序更难理解一些,更深入工作原理一些,今天就来一起看一下内存时序的小知识吧。

内存时序是描述内存条性能的一种参数,一般存储在内存条的SPD中。一般数字“A-B-C-D”分别对应的参数是“CL-tRCD-tRP-tRAS”,它们的含义依次为:

  • CAS Latency(简称CL值)内存CAS延迟时间,它是内存的重要参数之一,某些牌子的内存会把CL值印在内存条的标签上;
  • RAS-to-CAS Delay(tRCD),内存行地址传输到列地址的延迟时间;
  • RAS Precharge Delay(tRP),内存行地址选通脉冲预充电时间;
  • Row Active Delay(tRAS),内存行地址选通延迟。

这是购买内存最需要关注的4项时序调节,在大部分主板的BIOS中可以设定。

需要了解内存条时序的朋友注意了,我们现在就来讲讲内存条时序到底对内存条的性能有何影响。

1.CL:列寻址所需的时钟周期(表示延迟的长短)

确实是同频率下,CL值越小内存条性能越好。从DDR1-4随着内存条的频率越来越高,CL值也越来越大,但是其真实的CL延迟时间几乎没有什么变化。这说明并不是CL值越大,内存条的CL延迟就越大,内存条就越差。从DDR1-4 CL值越来越大,相反说明CL越大,能上去的频率越高。

我们来计算一下DDR1~4的CL延迟时间:乘2的原因是DDR内存一个时钟周期内传输两次数据,可以看做基数是2

  • DDR-400 3-3-3-8:3*2/400=15 ns
  • DDR2-800 6-6-6-18:6*2/800=15 ns
  • DDR3-1333 9-9-9-24:9*2/1333=13.5 ns
  • DDR4-2133 15-15-15-35:15*2/2133=14 ns
  • DDR4-2400 16-16-16-39: 16*2/2400=13.3 ns

根据上面的计算,可以看出其实CL延迟时间差距不大,之所以每代产品性能比上代要好,是因为频率的提高,也就是说CL值接近时,内存频率越高性能越好,而在进行超频时,如果可以调高CL,就可以获得更高的频率。

2.tRCD:行寻址和列寻址时钟周期的差值。

tRCD值对内存最大频率影响最大。内存条想要上到一个高的频率,而如果不能加大电压和放宽CL值,那么就只能把tRCD值增大。现在的DDR4一般的1.2V,想要CL值好看,还想要内存条能超频到更高,那就加大tRCD咯,还想要灯光效果,那就把时序统统的加大。所以tRCD大不代表内存条差,相反代表内存条可以超到一个很高的频率。

3.tRP:在下一周期之前,预充电需要的时钟周期。

虽然tRP的影响会随着频繁操作一个bank而加大,但是它的影响也会被bank交叉操作和命令调配所削弱。放宽tRP有利于提高行址激活、关闭的命中率,正确率。放宽tRP可让内存条的兼容性更好。

4.tRAS:对某行的数据进行存储时,从操作开始到寻址结束需要的总时间周期。

此操作并不会频繁发生,只有在内存空闲或开始新一个任务的时候才使用它。tRAS值太小有可能导致数据错误或丢失,太大的值则会影响内存性能。如果内存条负荷较大,一般可以稍微放宽tRAS值。

不知道大家有没有注意,凡是OC内存条(超频厉害的内存条),灯条,它们的tRCD、tRP、tRAS一般都比较大。要超频厉害,要灯光效果,还要保持很好的兼容性,必须适当的调节时序。

虚拟内存

虚拟内存常见误区

  • 虚拟内存不应该设置在C盘(即系统盘),这种说法其实是错误的,在C盘剩余空间充足的情况系下,由于系统盘是硬盘中读写系统文件、页面文件最频繁的一个盘,在这个操作中最耗时的就是磁头寻址定位,所以如果设置其他盘,跨分区定位的时间肯定要比设置在C盘本地的定位时间要更长,所以其实虚拟内存设置在C盘是执行最快、效率最高的。
  • 另外虚拟内存并不是设置的越大越好,实际上随着64位系统的广泛使用以及大容量内存产品的普及,虚拟内存技术的作用正在逐渐降低,一般情况下,虚拟内存的大小设置按照系统推荐的数值即可,通常为2GB~4GB,设置的更大也用不到,反而浪费了存储空间。
  • 最后要提到的是,虚拟内存通常设置在机械硬盘上,随着固态硬盘的普及,不少用户的系统盘都是固态硬盘,这种情况下就不推荐在系统盘上设置虚拟内存了,因为虚拟内存会大幅度的消耗硬盘使用寿命,而固态硬盘因为其写入寿命的原因,对此特别忌讳。

内存温度多少正常

一般情况下,内存条的正常温度都在45℃一下,即便是高负荷运转,例如烤机或超频等,温度也不会超过55℃。有一些内存条带有RGB灯,可能温度会稍微偏高一些,但也不必要担心带灯带马甲的内存条会容易被高温损坏。但是,内存条对温度的耐受性还是不如cpu或显卡等硬件的,当内存条温度高于85℃时,就非常有可能烧坏了。