三、技术篇

1.DDR 、 DDR Ⅱ 技术

DDR 技术

DDR SDRAM 是双倍数据速率( Double Data Rate ) SDRAM 的缩写。从名称上可以看出,这种内存在技术上,与 SDRAM 有着密不可分的关系。事实上, DDR 内存就是 SDRAM 内存的加强版。 DDR 运用了更先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与 CPU 完全同步; DDR 使用了 DLL(Delay Locked Loop ,延时锁定回路提供一个数据滤波信号 ) 技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每 16 次输出一次,并重新同步来自不同存储器模块的数据。 DDL 本质上不需要提高时钟频率就能加倍提高 SDRAM 的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,理论上使用原来的工作的频率可以产生 2 倍的带宽。同速率的 DDR 内存与 SDR 内存相比,性能要超出一倍,可以简单理解为 133MHZ DDR="266MHZ" SDR 。从外形体积上 DDR 与 SDRAM 相比差别并不大,他们具有同样的尺寸和同样的针脚距离。 DDR 内存采用的是支持 2.5V 电压的 SSTL2 标准,而不是 SDRAM 使用的 3.3V 电压的 LVTTL 标准。但是 DDR 存在自身的局限性 —DDR 只是在 SDRAM 基础上作简单改良,并行技术与生俱来的易受干扰特性并没有得到丝毫改善,尤其随着工作频率的提高和数据传输速度加快,总线间的信号干扰将造成系统不稳定的灾难性后果;反过来,信号干扰也制约着内存频率的提升 —— 当发展到 DDR400 规范时,芯片核心的工作频率达到 200MHz ,这个数字已经非常接近 DDR 的速度极限,只有那些品质优秀的颗粒才能够稳定工作于 200MHz 之上,所以 DDR Ⅱ 标准就成了一种进一步提高内存速度的解决方法。

DDR  Ⅱ 技术

DDR Ⅱ 相对于 DDR 有三大技术革新, 4 位预取( DDR 是 2 位)、 Posted CAS 、整合终结器( ODT )、 FBGA/CSP 封装。要解释预取的概念,我们必须从内存的频率说起。大家通常说的 “ 内存频率 ” 其实是一个笼统的说法,内存频率实际上应细分为数据频率、时钟频率和 DRAM 核心频率三种。数据频率指的是内存模组与系统交换数据的频率;时钟频率则是指内存与系统协调一致的频率;而 DRAM 核心频率指的是 DRAM 内部组件的工作频率,它只与内存自身有关而不受任何外部因素影响。对 SDRAM 来说,这三者在数字上是完全等同的,也就是数据频率 = 时钟频率 = 核心频率;而 DDR 技术却不是如此,它要在一个时钟周期内传输两次数据,数据频率就等于时钟频率的两倍,但核心频率还是与时钟频率相等。由于数据传输频率翻倍(传输的数据量也翻倍),而内部核心的频率并没有改变,这意味着 DDR 芯片核心必须在一个周期中供给双倍的数据量才行,实现这一任务的就是所谓的两位预取( 2bit Prefect )技术; DDR Ⅱ 采用的 4 位预取。这项技术的原理是将 DRAM 存储矩阵的位宽增加一(两)倍,这样在一个时钟周期内就可以传输双(四)倍的数据,这些数据接着被转化为宽度为 1/2 ( 1 / 4 )的两道数据流、分别从每个时钟周期的上升沿和下降沿传送出去。 Posted CAS : DDR Ⅱ 通过引入 “Posted CAS” 功能来解决带宽利用变低的问题,所谓 Posted CAS ,指的是将 CAS (读 / 写命令)提前几个周期、直接插到 RAS 信号后面的一个时钟周期,这样 CAS 命令可以在随后的几个周期内都能保持有效,但读 / 写操作并没有因此提前、总的延迟时间没有改变。这样做的好处在于可以彻底避免信号冲突、提高内存使用效率,但它只有在读写极其频繁的环境下得到体现,若是普通应用, Posted CAS 功能反而会增加读取延迟、令系统性能下降,因此我们可以根据需要、通过 BIOS 将 Posted CAS 功能开启或关闭(关闭状态下 DDR Ⅱ 的工作模式就与 DDR 完全相同)。    芯片整合终结器,提高了内存工作的稳定性,增强的内存的兼容性。 FBGA 封装和 CSP 封装,封装虽然无法直接决定内存的性能,但它对内存的稳定工作至关重要。  FBGA 封装是 DDR Ⅱ 的官方选择, FBGA 属于 BGA 体系( Ball Grid Array ,球栅阵列封装),前面已经讲过了。 CSP 封装最大的特点在于封装面积与芯片面积异常接近,两者比值仅有 1.14 : 1 ,它也是目前最接近 1 : 1 理想状况的芯片封装技术。这样在同样一条模组中就可以容纳下更多数量的内存芯片,有利于提升模组的总容量。

2. 双通道内存控制器技术

所谓双通道 DDR ,简单来说,就是芯片组可以在两个不同的数据通道上分别寻址、读取数据。这两个相互独立工作的内存通道是依附于两个独立并行工作的,位宽为 64-bit 的内存控制器下,因此使普通的 DDR 内存可以达到 128-bit 的位宽,如果是 DDR333 的话,双通道技术可以使其达到 DDR667 的效果,内存带宽陡增一倍。双通道 DDR 有两个 64bit 内存控制器,双 64bit 内存体系所提供的带宽等同于一个 128bit 内存体系所提供的带宽,但是二者所达到效果却是不同的。双通道体系包含了两个独立的、具备互补性的智能内存控制器,两个内存控制器都能够在彼此间零等待时间的情况下同时运作。例如,当控制器 B 准备进行下一次存取内存的时候,控制器  A 就在读 / 写主内存,反之亦然。两个内存控制器的这种互补 “ 天性 ” 可以让有效等待时间缩减 50% ,双通道技术使内存的带宽翻了一翻。双通道 DDR 的两个内存控制器在功能上是完全一样的,并且两个控制器的时序参数都是可以单独编程设定的。这样的灵活性可以让用户使用三条不同构造、容量、速度的 DIMM 内存条,此时双通道 DDR 简单地调整到最低的密度来实现 128bit 带宽,允许不同密度 / 等待时间特性的 DIMM 内存条可以可靠地共同运作。双通道 DDR 技术带来的性能提升是明显的, DDR266 能够提供 2.1GB/s 的带宽,而双通道 DDR266 则能提供 4.2GB/s 的带宽。以此类推,双通道 DDR333 和 DDR400 能够达到 5.4GB/s 和 6.4GB/s 。

3.CPU 集成内存控制器技术

这是 AMD 公司提高 CPU 与内存性能的一项技术,这项技术是一种将北桥的内存控制器集成到 CPU 的一种技术,这种技术的使用使得原来, CPU -北桥-内存三方传输数据的过程直接简化成 CPU 与内存之间的单项传输技术,并且降低了它的延迟潜伏期,提高了内存工作效率。这么做得的目的是为了解放系统的北桥,众所周知,显卡也是通过北桥向 CPU 传输数据的,虽然说早在 GeForce256 时代就有了 GPU 的说法,但是随着现在游戏的进步,画面的华丽,不少数据还是需要 CPU 来做辅助处理的。这些数据传输到 CPU 必然要经过系统的北桥,由于 AMD64 系统将内存控制集成到主般中来了,所以压力减小的北桥便可以更好地为显卡服务。另外,缺少了中间环节,内存和 CPU 之间的数据交换显得更为流畅。但是这项技术也有缺点,当新的内存技术出现时,必须要更换 CPU 才能支持。这在无形间增加了成本。

4. 其他技术

A.ECC 内存

全称 Error Checkingand Correcting 。它也是在原来的数据位上外加位来实现的。如 8 位数据,则需 1 位用于 Parity 检验, 5 位用于 ECC ,这额外的 5 位是用来重建错误的数据的。当数据的位数增加一倍, Parity 也增加一倍,而 ECC 只需增加一位,当数据为 64 位时所用的 ECC 和 Parity 位数相同 ( 都为。在那些 Parity 只能检测到错误的地方, ECC 可以纠正绝大多数错误。若工作正常时,你不会发觉你的数据出过错,只有经过内存的纠错后,计算机的操作指令才可以继续执行。当然在纠错时系统的性能有着明显降低,不过这种纠错对服务器等应用而言是十分重要的, ECC 内存的价格比普通内存要昂贵许多。

B. ( Un ) Buffered Memory  内存

( Un ) Buffered Memory ,(不)带有缓存的内存条。缓存能够二次推动信号穿过内存芯片,而且使内存条上能够放置更多的内存芯片。带缓存的内存条和不带缓存的内存条不能混用。电脑的内存控制器结构,决定了该电脑上带缓存的内存还是上不带缓存的内存。

内存的工作原里(二)相关推荐

  1. 内存的工作原理(一)

    现代的PC(包括NB)都是以存储器为核心的多总线结构,即CPU只通过存储总线与主存储器交换信息(先在Cache里找数据,如果找不到,再去主存找).输入输出设备通过I/O总线直接与主存储器交换信息.在I ...

  2. 来点干货 | Android 常见内存泄漏与优化(二)

    作者 | 无名之辈FTER 责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 在昨天的Android 内存泄漏问题多多,怎么优化?一文中,我们详细阐述了Java虚拟机工作原理和Androi ...

  3. Android性能优化(2):常见内存泄漏与优化(二)

    文章目录 1. Android虚拟机:Dalvik和ART 1.1 JVM与Dalvik区别 1.2 Dalvik与ART区别 1.3 Dalvik/ART的启动流程 2. 常见内存分析工具 2.1 ...

  4. DPDK 内存池rte_mempool实现(二十三)

    dpdk可以通过两种方式来管理内存, 一种是调用rte_malloc, 在大页内存上申请空间: 另一种是使用内存池,也是通过在大页内存上申请空间方式. 两种有什么区别呢?虽然两者最终都是在大页内存上获 ...

  5. Spring注解配置工作原理源码解析

    一.背景知识 在[Spring实战]Spring容器初始化完成后执行初始化数据方法一文中说要分析其实现原理,于是就从源码中寻找答案,看源码容易跑偏,因此应当有个主线,或者带着问题.目标去看,这样才能最 ...

  6. 局域网中另外一台服务器的内存_工作中遇到的技术名词

    1.Cookie Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据. 此后每次浏览器访问该服务器,都必须带上这段数据.最常用的是识别用户身份,以及记录历史. 2.日志 日志是包含有关系统 ...

  7. c++内存池工作原理

    6.1 自定义内存池性能优化的原理 如前所述,读者已经了解到"堆"和"栈"的区别.而在编程实践中,不可避免地要大量用到堆上的内存.例如在程序中维护一个链表的数据 ...

  8. 内存的工作原理和时序介绍

    内存的工作原理及时序介绍 内存是PC配件中结构最简单的,但在BIOS中却是最难调的,很多玩家超频都卡在内存上.并且,内存的原理.结构与时序多年不会改变,无论将来内存技术如何进步,相信这篇文章的存在价值 ...

  9. 1、Java中“并发编程”详解【voliate、synchronized、JMM内存模型、原子类操作Atomic..、CAS原理】

    文章目录 1.对volatile 的理解? JMM(Java 内存模型) JMM模型的三大特性: 禁止指令排序 线程安全性保证 你在哪些地方用到过 volatile?单例 2.CAS 你知道吗?CAS ...

最新文章

  1. WPF使用Linq 一行代码搞定数据绑定
  2. ext2和ext3文件系统知识
  3. boost::convert模块实现算法的测试程序
  4. C#编写运行在Linux环境下的采用Mediainfo来获取多媒体文件信息的代码
  5. uc浏览器TV版最新版本功能简介
  6. Git学习文档之一 学习文档-并行开发
  7. mongodb卸载_如何在Windows上安装MongoDB,启动,卸载
  8. iOS11 tableview左滑到底禁用删除
  9. OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.
  10. java获取mysql表的主键_用java如何获取oracle数据库表里面的主键序列
  11. ssm中web配置各框架的配置文件路径方式
  12. blender 中文手册 Blender从入门到精通
  13. 独家插件!非常好用的CASS地形图绘制插件
  14. html中css字体颜色设置,css样式字体设置宋体 css中font字体颜色怎么设置
  15. Eureka源码-double check单例模式运用
  16. 南大匡亚明学院计算机方向,解密!南京大学“最强理科班”这样炼成……
  17. 学习PHP——高级(总)
  18. 用计算机打有一群人去喝酒的游戏,适合聚会时玩的40个小游戏
  19. 关于‘云’,你可能要知道的“私有”和“公有”!!!
  20. 遥感影像多光谱与全色IHS融合

热门文章

  1. 中移4G模块-ML302-OpenCpu开发-51单片机串口转I2C
  2. 计算机硬件系统的安全,维护硬件系统的计算机安全论文
  3. 用c语言编程求分数和,用C语言编程平均分数
  4. 服务器找不到硬盘如何解决方案,Linux云服务器磁盘不见了?解决方案在这里
  5. 1×pbs缓冲液配方_【应用】蒸渗仪与氧化还原电位的测量1
  6. [CF718C] Sasha and Array
  7. Jboss启动报错——DailyRollingFileAppender无法转换异常
  8. 在css/js代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次js请求一般情况下有哪些地方会有缓存处理?...
  9. linux 下安装chrome的rpm包
  10. webservice CXF入门服务端