关于内存类型 UDIMM、RDIMM、LRDIMM 的学习结论(转)
随着内存技术不断发展,服务器上内存的容量、密度和速度也越来越高。目前在市场上出现的
内存条最高密度可以做到每条内存条 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 的学习结论(转)的更多相关文章
- D3D的内存类型
一.对D3D中AGP显存.内存.显存三种内存的解释 三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡 ...
- MTRR内存类型范围寄存器
1.MTRR的概念 内存类型范围寄存器(MTRRs,翻译过来真别扭,后面都以MTRR直接来说了)提供了一种机制,这种机制其实就是确定在系统内存中物理一段内存的类型.这个类型其实是正对CPU来说的,见图 ...
- JVM内存回收机制——哪些内存需要被回收(JVM学习系列2)
上一篇文章中讨论了Java内存运行时的各个区域,其中程序计数器.虚拟机栈.本地方法栈随线程生灭,且创建时需要多少内存,基本上在译期间就决定的了,所以在内存回收时无需特殊的关注.而堆和方法区则不同,首先 ...
- JS类型(2)_JS学习笔记(2016.10.02)
undefined undefined是全局对象(window)的一个特殊属性,其值是未定义的.但 typeof undefined 返回 'undefined' . 虽然undefined是有特殊含 ...
- JS类型(1)_JS学习笔记(2016.10.02)
js类型 js中的数据类型有undefined,boolean,number,string,null,object等6种,前5种为原始类型(基本类型),基本类型的访问是按值访问的,就是说你可以操作保存 ...
- python的内存管理与垃圾回收机制学习
一.python内存申请: 1.python的内存管理分为六层:最底的两层有OS控制.第三层是调用C的malloc和free等进行内存控制.第四层第五层是python的内存池.最上层使我们接触的直接对 ...
- 类型和变量(C#学习笔记02)
类型和变量 [C#类型和变量(原文参考官方教程)]https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/types-and-var ...
- JavaScript 类型、原型与继承学习笔记
目录 一.概览 二.数据类型 1. JavaScript中的数据类型 2. 什么是基本类型(Primitive Data Type) 2.1 概念 2.2 七个基本类型 2.3 基本类型封装对象 3. ...
- C#匿名类型(Anonymous Type)学习日记
当我们不要定义复杂的方法,事件,构造函数这样复杂的类的时候,可以动态的生成一个自定义的数据类型 --> 匿名类型. 1.定义匿名类型 定义一个匿名类型时,需要用到 var 关键字和对象初始化语法 ...
随机推荐
- ADT和DS
Abstract Data Type vs. Data Structrue 抽象数据类型=数据模型+定义在该模型上的一组操作. interface 数据结构=基于某种特定语言,实现ADT的一整套算法 ...
- StackExchange.Redis使用以及封装
来源:http://www.cnblogs.com/qtqq/p/5951201.html Redis安装:http://www.runoob.com/redis/redis-install.html ...
- Ubuntu安装时没注册root用户密码,怎么登录root
一.其实我个人认为这没有多大必要,因为当你需要 root 的权限时,使用 sudo 便可以了.如果你实在需要在 Ubuntu 中启用 root 帐号的话,那么不妨执行下面的操作: 1.重新设置 roo ...
- js的JSON
把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机. 如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个Java ...
- nginx与php-fpm原理
一.正向代理与反向代理 1.正向代理:访问google.com google.com vpn需要FQ才能访问 vpn 对于我们来说是可以感知到的(我们连接vpn),但对于google服务器是不知道 ...
- Android开发之自定义的ProgressDialog
package com.example.dialog; import android.app.ProgressDialog; import android.content.Context; /** * ...
- PAT 1045 快速排序(25)(STL-set+思路+测试点分析)
1045 快速排序(25)(25 分) 著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分 ...
- iOS.XcodeUsage
1. Customizing Xcode File Templates http://blog.highorderbit.com/2009/03/15/customizing-xcode-cocoa- ...
- DNSlog实现Mysql注入
step1: 通过DNSlog盲注需要用到load_file()函数.show variables like '%secure%' 查看load_file()可以读取的磁盘. 1.当secure_fi ...
- nginx 域名(虚拟)部署nodejs项目
首先说下我的情况,Windows+mongodb开发的简单nodejs 小博客系统, 配置部署到centos7 nginx下,mongodb还是在我Windows机器下, 1.Linux安装node. ...