随着内存技术不断发展,服务器上内存的容量、密度和速度也越来越高。目前在市场上出现的
内存条最高密度可以做到每条内存条 4 个 Rank,容量达到 32GB/条,最高速度达到 1.6GHz。
高密度高频率也意味着较高的价格,也可能会带来更高的功耗。那么到底应该怎么根据实际的
需要来选择内存条呢?
内存的种类
目前服务器的内存总线技术基本上没有太大的变化,依旧使用 DDR3 技术。DDR3 是并行传输
技术,因此要保证并行数据传输的有效性,就必须在内存条上下功夫。目前内存条的种类有三种:
UDIMM, RDIMM, LRDIMM。
1.UDIMM:也称为 Unbuffered DIMM。当数据从 CPU 传到每个内存颗粒时,UDIMM 要求保证
CPU 到每个内存颗粒之间的数据传输距离相等,这样并行传输才会有效。这需要极高的制造工艺,
极难做到高密度、高频率。因此 UDIMM 容量和频率都较低。不过,UDIMM 由于在 CPU 和内存之
间没有任何缓存,因此同频率下时延较小。目前常见的是单条容量 2GB/4GB,最高主频也只能到达
1.33GHz。
2.RDIMM:也称为 Registered DIMM。为了保证并行传输的有效性,RDIMM 在内存条上加了
一个寄存器进行转发。它位于 CPU 和内存颗粒之间,这样就减少了并行传输的距离。同时由于寄存
器效率很高,因此 RDIMM 的密度和频率就容易提高。RDIMM 目前是较为主流的内存条,单条容
量在 2~32GB 之间,频率也有 1.33GHz 和 1.6GHz 两种选择。绝大多数 2 路通用配置的服务器出厂
时通常都会配置这种类型的内存。
3.LRDIMM:也称为 Load Reduced DIMM。RDIMM 虽然提高了传输有效性,但由于寄存器大
小有限,当单条内存中内存颗粒以最高的密度 4 Rank 进行部署时,并行传输的有效性和频率就会大
大下降。例如在使用 32G RDIMM 时,在服务器的每个内存通道上最多只能部署 2 条内存条,而且
只能运行在 800MHz。
总结一下:
1.从价格的角度看, RDIMM 比较适中。小容量的 UDIMM 较为便宜,但是由于制造工艺要求高,
大容量的 UDIMM 价格甚至超过 RDIMM。LRDIMM 价格高于 RDIMM 与 UDIMM。 
2.从容量的角度看,只有 LRDIMM 能够支持到最大化的总内存容量。不过主要应用所需要的内
存容量一般通过部署 RDIMM 就可以达到。 
3.从主频的角度看,目前只有 RDIMM 支持 1.6GHz,可以拥有更大带宽和小时延。
4.从时延的角度看,虽然同频率下 UDIMM 时延最小,但是 RDIMM 可以支持 1.6GHz,用更高
的频率来降低时延。 
5.从功耗的角度看,LRDIMM 最高,RDIMM 和 UDIMM 较低。
结论:
如果需要最大的内存容量,就必须使用 LRDIMM;如果不需要最大的内存容量,使用 RDIMM
(1.6GHz)性能、价格和可扩展性较好;如果考虑功耗,可以使用低电压 DDR3L 内存,并控制其
运行在较低频率下。

关于内存类型 UDIMM、RDIMM、LRDIMM 的学习结论(转)的更多相关文章

  1. D3D的内存类型

    一.对D3D中AGP显存.内存.显存三种内存的解释 三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡 ...

  2. MTRR内存类型范围寄存器

    1.MTRR的概念 内存类型范围寄存器(MTRRs,翻译过来真别扭,后面都以MTRR直接来说了)提供了一种机制,这种机制其实就是确定在系统内存中物理一段内存的类型.这个类型其实是正对CPU来说的,见图 ...

  3. JVM内存回收机制——哪些内存需要被回收(JVM学习系列2)

    上一篇文章中讨论了Java内存运行时的各个区域,其中程序计数器.虚拟机栈.本地方法栈随线程生灭,且创建时需要多少内存,基本上在译期间就决定的了,所以在内存回收时无需特殊的关注.而堆和方法区则不同,首先 ...

  4. JS类型(2)_JS学习笔记(2016.10.02)

    undefined undefined是全局对象(window)的一个特殊属性,其值是未定义的.但 typeof undefined 返回 'undefined' . 虽然undefined是有特殊含 ...

  5. JS类型(1)_JS学习笔记(2016.10.02)

    js类型 js中的数据类型有undefined,boolean,number,string,null,object等6种,前5种为原始类型(基本类型),基本类型的访问是按值访问的,就是说你可以操作保存 ...

  6. python的内存管理与垃圾回收机制学习

    一.python内存申请: 1.python的内存管理分为六层:最底的两层有OS控制.第三层是调用C的malloc和free等进行内存控制.第四层第五层是python的内存池.最上层使我们接触的直接对 ...

  7. 类型和变量(C#学习笔记02)

    类型和变量 [C#类型和变量(原文参考官方教程)]https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/types-and-var ...

  8. JavaScript 类型、原型与继承学习笔记

    目录 一.概览 二.数据类型 1. JavaScript中的数据类型 2. 什么是基本类型(Primitive Data Type) 2.1 概念 2.2 七个基本类型 2.3 基本类型封装对象 3. ...

  9. C#匿名类型(Anonymous Type)学习日记

    当我们不要定义复杂的方法,事件,构造函数这样复杂的类的时候,可以动态的生成一个自定义的数据类型 --> 匿名类型. 1.定义匿名类型 定义一个匿名类型时,需要用到 var 关键字和对象初始化语法 ...

随机推荐

  1. Android View 深度分析requestLayout、invalidate与postInvalidate

    前言 前几篇文章中,笔者对View的三大工作流程进行了详细分析,而这篇文章则详细讲述与三大工作流程密切相关的两个方法,分别是requestLayout和invalidate,如果对Viwe的三个工作流 ...

  2. 在 JavaScript 中 ["1","2","3"].map(parseInt) 为何返回不是 [1,2,3] 却是 [1,NaN,NaN]?

    这个问题我是希望有很多人可以一起交流的: 我在 http://blog.csdn.net/justjavac/article/details/19473199#t0 上看到了比较详细的解释, 但是具体 ...

  3. 线特征---LBD算法(三)

    上一节主要是介绍LSD算法理论,这节主要是介绍LBD算法. 参考文章:An efficient and robust line segment matching approach based on L ...

  4. socket错误代码

    Socket error 0 - Directly send error Socket error 10004 - Interrupted function call一个封锁操作被对 WSACance ...

  5. Jmeter常用脚本开发之Java请求

    Java请求:就是用来对java项目的类进行压测 例子:将输入的两个参数通过IO存入文件 1.创建Java工程,工程目录如下 2.将Jmeter-lib下面的所有jar包导入java工程, 3.创建一 ...

  6. c# 对list 操作的写法总结

    1:统计list 内重复值的数量 List<, , , , , , , }; var g = list.GroupBy(i => i); foreach (var item in g) { ...

  7. opencv 3.2安装

    opencv 3.2安装 下载地址: https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.2.0/opencv-3.2. ...

  8. c# 2016QQ自动登录程序

    程序是抓QQ主程序窗体句柄,通过移位定位到QQ 输入框,虚拟键盘输入后,ALT切换到密码框的方式实现的 附程序: using System;using System.Collections.Gener ...

  9. 28335XINTF的简单使用

    28335 XINTF基本特点 一共有三个外部存储区域:区域0(Zone 0),区域6(Zone 6)和区域7(Zone 7).对应的 访问地址为:Zone 0:0x0000_4000-0x0000_ ...

  10. 放大Button热区的方法哟

    //添加图片不能用backgroundimage [btn setImage:image5 forState:]; //然后 btn.imageEdgeInsets = UIEdgeInsetsMak ...