随着内存技术不断发展,服务器上内存的容量、密度和速度也越来越高。目前在市场上出现的
内存条最高密度可以做到每条内存条 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. go语言中net包tcp socket的使用

    一.通过socket我们模拟请求网易 package main; import ( "net" "log" "io/ioutil" &quo ...

  2. vue学习视频网址(各种前端视频 网址)

    基础信息详解:https://segmentfault.com/blog/vueroad 网址:http://biaoyansu.com/18.1

  3. ThreeJS中的点击与交互——Raycaster的用法

    基础概念 坐标系 我们的手机屏幕是二维的,但是我们展示物体的世界是三维的,当我们在构建一个物体的时候我们是以一个三维世界既是世界坐标来构建,而转化为屏幕坐标展示在我们眼前,则需要经历多道矩阵变化,中间 ...

  4. IDEA使用过程中常见小问题

    在磁盘随便一个位置,创建一个文件夹,可以通过IDEA open 打开它 然后在将一些代码模块,放入这个文件夹,IDEA刷新,能够自动显示出来   然后执行下面的文档操作 1.IDEA通过一个项目文件导 ...

  5. Oracle_PL/SQL(5) 包

    包1.定义:包用于逻辑组合相关的PL/SQL类型,项和子程序,由包规范和包体组成 建立包规范:包规范是包与应用程序之间的接口,用于定义包的公用组件, 包括常量,变量,游标,过程,函数等 建立包体:用于 ...

  6. Oracle的SQL语句中如何处理‘&’符号

    ‘&’符号在SQL中有特殊含义,所以在SQL中想要写入&,需要特殊处理. 如下SQL语句就不能正确运行: SQL> select 'a&b' from dual; 处理方 ...

  7. javascript 高级程序设计 十

    理解JS对象(2)创建对象   JS中创建对象的方式有很多,我们把他们统称为模式. 工厂模式: 优点:解决了创建多个相似对象的问题. 缺点:没有解决对象识别问题.(不知道一个实例对象的类型) func ...

  8. 用vs2015 编译 web app ionic

    1.要下载https://git-for-windows.github.io/ 2.下载ionic模版

  9. day1-windows下python和selenium的安装

    这是一个完整的安装包,下载下来是一个.exe的文件 只需双击,下一步下一步默认安装即可 python从2.7开始都会携带pip插件,做了scripe的环境变量可以,在网络畅通的情况下可以在cmd的命令 ...

  10. 6.26实力测试(小错笑cry)

    6.26测试 本次考试的粗心不忍吐槽(自带贴吧喷水表情),本次考试主要考察的知识点如下: 算法的分析与精简 暴力枚举输出字符 判断与枚举的综合考察 题目 第一题 [问题描述] 在一口井里,有一只神牛( ...