当前位置: 首页 > news >正文

内存条的构造、原理及性能参数

内存条的构造、原理及性能参数

  • 一、内存条的构造
    • 1.1 外观结构
      • 1.1.1 芯片:大脑
      • 1.1.2 PCB板:骨架
      • 1.1.3 金手指:接口
      • 1.1.4 电容电阻:稳压、稳流
      • 1.1.5 防呆缺口:防错
    • 1.2 内部层次结构
  • 二、内存条的工作原理
    • 2.1 数据的“搬家”过程
    • 2.2 内存的“寻址”机制
    • 2.3 内存的“读写”操作
  • 三、内存条的性能参数
    • 3.1 容量
    • 3.2 频率
    • 3.3 带宽
    • 3.4 时序
    • 3.5 双通道与多通道技术
  • 四、内存条的发展趋势

内存条是电脑中用来暂时存储和访问数据的部件。它就像是一个“飞毛腿快递小哥”,快速、准确地把数据从大仓库“硬盘”送到用户"CPU"手中。假如没有内存,就算CPU跑冒烟,电脑也快不起来。
现在的内存条,容量普遍比较大,动不动十好几G,所以被诅咒的时候少了。想当年,在那个256MB、512MB的年代,打开个大一点儿的程序经常会卡得你痛不欲生。
今天就说说内存条的构造和原理。

一、内存条的构造

1.1 外观结构

1.1.1 芯片:大脑

内存条的核心就是存储芯片(Chip),也就是我们常说的“内存颗粒”,它们是真正保存数据的地方。
在这里插入图片描述
内存条的性能、速度和容量都是由内存芯片决定的。
这些芯片一般采用TSOP(Thin Small Outline Package,薄型小尺寸封装)或BGA(Ball Grid Array,球栅阵列)封装,不同封装的内存条在性能和安装方式上也有所不同。
每个芯片内部包含多个Bank(存储单元),每个Bank又细分为许多Row(行)和Column(列),形成二维矩阵式的排列方式。

1.1.2 PCB板:骨架

PCB板(印制电路板,Printed Circuit Board)就是内存条的电路板,像“骨架”一样承载所有组件,并连接着各个芯片,确保数据能够在芯片之间流畅传输。
PCB板多数都是绿色的,也就是复合树脂板,采用了多层设计,一般为四层或六层。
PCB板上布满了错综复杂的线路和元件,这些线路和元件的设计都经过精心计算,以确保数据传输的准确性和稳定性。

1.1.3 金手指:接口

金手指,就是内存条边上一排金色手指形的触点,直接与主板上的插槽连接。金手指一般采用镀金工艺,以提高导电性能和抗氧化能力。
当内存条插入主板插槽时,金手指与插槽内的触点紧密接触,实现数据的传输和交换。

1.1.4 电容电阻:稳压、稳流

在内存条上有许多附加的电容和电阻,采用的是贴片元件,以C代表电容,R代表电阻。
电容作为电源滤波器,能够稳定内存模块的电压和电流。一般来说,电容越大,则内存模块的电压波动越小,内存稳定性就会更好。但是,电容越大也会导致内存访问时延加大,降低内存条带宽。
电阻主要起限流和稳压作用。当内存条工作时,电流会在电路中产生波动,这时电阻就能够限制电流的大小,避免电路中的元器件受到过大的冲击而损坏。同时,电阻还能稳定电压,确保内存条在稳定的工作环境下运行。

1.1.5 防呆缺口:防错

防呆缺口就是防止内存条插反的小缺口,有了它,插反了插不进去。
在这里插入图片描述

1.2 内部层次结构

内存条内部遵循着严格的分层架构:Channel(内存通道) -> DIMM(内存条) -> Rank(面) -> Chip(内存颗粒) -> Bank(颗粒层) -> Cell(存储单元,row/column由行列两个数值决定)
这一序列反映了从宏观到微观的数据组织形式,具体说明如下:

  • Channel(内存通道):指的是CPU与内存之间的数据传输通道(参见《跑道加一条,速度翻一倍:内存通道的提速秘密》);
  • DIMM(内存条):代表物理内存条本身;
  • Rank(面):表示内存条的两个面,即正面、反面,两面都分布有存储芯片;
  • Chip(内存颗粒):即前文提到的存储芯片;
  • Bank(颗粒层):是每个芯片内部分割出来的逻辑分区,它是分片的;
  • Cell(存储单元):最后到达的具体存储单元,由行列地址定位。
    在这里插入图片描述
    在这里插入图片描述

二、内存条的工作原理

内存条的工作原理,简单来说,就是把数据从一个地方“搬”到另一个地方。但这个“搬”的过程,可远比我们想象中的复杂得多。

2.1 数据的“搬家”过程

当你打开一个程序或文件时,数据会从硬盘这个“大仓库”里被读取出来,然后通过内存条这个“中转站”被传输到CPU这个“处理中心”进行处理。处理完成后,数据再被传回内存条或硬盘进行存储。在这个过程中,内存条就像是一个“高速通道”,让数据能够迅速地在硬盘、CPU之间传输。

2.2 内存的“寻址”机制

要想让数据在内存条里“找到家”,就得靠内存的“寻址”机制。每个存储在内存条里的数据都有一个唯一的地址,就像是我们每个人的身份证号码一样。
当CPU需要访问某个数据时,会通过地址总线把数据的地址发送给内存控制器(Memory Controller),后者会通过内部的“寻址电路”找到对应的数据,然后通过数据总线把数据发送给CPU。
具体的寻址过程是,内存控制器根据地址将命令转发给相应的DIMM。接着,DIMM内部的Rank会选择合适的Chip,进而激活对应的Bank,最终完成对特定Row和Column组合所指向的Cell(存储单元)的操作。
为了准确无误地找到所需信息,内存采用了复杂的寻址机制:

  • Rank选择:通过寻址信号确定哪个面;
  • Bank地址:BA0-BAx决定具体在哪一层;
  • 行选(RAS#):表示接收的是行地址;
  • 列选(CAS#):表示接收的是列地址;
  • 地址线A0-Ax:用于指定确切的行列坐标;
  • 数据总线DQ0-DQ63:负责实际的数据传输,一次最多可携带64bit的数据量。

需要注意的是,由于电脑的内存条都是用电容来存储数据,而电容存在漏电现象,为了保持数据完整性,必须定期进行刷新操作(也就是要给电容充电)。

2.3 内存的“读写”操作

内存的“读写”操作,就像是我们在图书馆里借书和还书一样。当我们需要读取某个数据时,内存条就会像图书馆管理员一样,根据我们提供的地址找到对应的数据并“借”给我们(读取操作)。当我们处理完数据后,再把数据“还”给内存条(写入操作)。内存的读写速度非常快,一般都是以纳秒(ns)为单位来衡量的。

三、内存条的性能参数

了解了内存条的构造和工作原理后,我们再来看看它的性能参数。这些参数就像是内存条的“成绩单”,能够直观地反映出它的性能优劣。

3.1 容量

内存容量(Capacity),顾名思义,就是内存条能够存储的数据量。一般来说,内存容量越大,电脑的运行速度就越快,因为可以同时处理的数据就越多。但是,并不是说内存容量越大就一定越好,因为还需要考虑其他因素,比如内存的频率、时序等。

3.2 频率

内存频率(Memory Frequency),指内存所能达到的最高工作频率。频率越高,数据传输速度就越快。常见的内存频率有100MHz、133MHz、150MHz、166MHz、200MHz、233MHz、266MHz等。一般来说,相同容量的内存条,频率越高价格就越贵。
关于内存频率,里面是有猫腻的,比如DDR4 2400,频率难不成是2400MHz?其实根本没有那么大,真实的频率只有150MHz。关于这个问题老金后面会专门写篇文章。

3.3 带宽

内存带宽(Memory Bandwidth)就是内存条每秒钟能够传输的最大数据量。带宽越大,数据传输的速度就越快。
内存频率和带宽都是反映存取数据快慢的指标。内存带宽的计算公式是:带宽=频率×位宽/8。
位宽是一个时钟周期内所能传送数据的位数,以bit为单位,所以需要除以8转换成字节。因此,在选择内存条时,除了考虑频率外,还需要关注它的位宽。
还是以DDR4 2400为例,频率为150MHz,位宽为1024bit,则带宽为:
150 M H z × 1024 b i t 8 = 19.2 G B \frac{150MHz\times1024bit}{8}=19.2GB 8150MHz×1024bit=19.2GB
这个19.2GB就是你能查到的DDR4 2400的带宽。
实际上这个带宽也有水分,因为频率单位的换算关系是1000,而字节的换算单位是1024,上面的19.2GB是实际上是用1000作为换算单位的,即它的计算过程是这样的:
150 M H z × 1024 b i t 8 = 150 × 1 0 6 H z × 1024 b i t 8 B = 150 × 1 0 6 H z × 1024 b i t 8 × 1 0 9 G B = 19.2 G B \begin{align*} \frac{150MHz\times1024bit}{8}&=\frac{150\times10^6Hz\times1024bit}{8} B\\ &=\frac{150\times10^6Hz\times1024bit}{8\times10^9} GB\\ &=19.2GB \end{align*} 8150MHz×1024bit=8150×106Hz×1024bitB=8×109150×106Hz×1024bitGB=19.2GB
严格来讲应该这样算:
150 M H z × 1024 b i t 8 = 150 × 1 0 6 H z × 1024 b i t 8 B = 150 × 1 0 6 H z × 1024 b i t 8 × 102 4 3 G B = 17.9 G B \begin{align*} \frac{150MHz\times1024bit}{8}&=\frac{150\times10^6Hz\times1024bit}{8} B\\ &=\frac{150\times10^6Hz\times1024bit}{8\times1024^3} GB\\ &=17.9GB \end{align*} 8150MHz×1024bit=8150×106Hz×1024bitB=8×10243150×106Hz×1024bitGB=17.9GB

3.4 时序

内存时序(Memory Timings),是内存条的一个重要参数,它表示内存条在接收到读写指令后到完成读写操作所需要的时间。时序越小,内存的响应时间就越短,性能也就越好。但是,时序的降低往往会带来功耗的增加和稳定性的下降,所以需要在性能和稳定性之间找到一个平衡点。

3.5 双通道与多通道技术

为了进一步提高带宽利用率,现代主板普遍支持双通道乃至四通道模式。在这种情况下,每一对DIMM都可以被视为一个独立的传输通道,从而显著增强了系统的吞吐能力。此外,某些高端服务器还会配备ECC校验功能,有效降低了数据传输错误的概率。

四、内存条的发展趋势

近年来,随着硬件制造工艺不断进步,内存领域也涌现出一批令人瞩目的新技术:

  • HBM(High Bandwidth Memory):高带宽内存直接安装在GPU旁边,大幅缩短了二者之间的物理距离,实现了前所未有的数据传输速率。
  • GDDR(Graphics Double Data Rate):专为图形渲染设计的高性能显存,拥有更高的频率和更低的延迟,广泛应用于游戏显卡和专业工作站。
  • 3D XPoint:英特尔推出的非易失性存储介质,结合了闪存和传统DRAM的优点,提供了接近DRAM的速度和持久化特性。

附:内存相关文章
内存泄漏简介:不断消耗资源的吞噬者
不堪回首的“内存”
内存原理:计算机存储的核心奥秘
内存的升级换代之路
跑道加一条,速度翻一倍:内存通道的提速秘密

相关文章:

内存条的构造、原理及性能参数

内存条的构造、原理及性能参数 一、内存条的构造1.1 外观结构1.1.1 芯片:大脑1.1.2 PCB板:骨架1.1.3 金手指:接口1.1.4 电容电阻:稳压、稳流1.1.5 防呆缺口:防错 1.2 内部层次结构 二、内存条的工作原理2.1 数据的“搬…...

鸿蒙模块概念和应用启动相关类(HAP、HAR、HSP、AbilityStage、UIAbility、WindowStage、window)

目录 鸿蒙模块概念 HAP entry feature har shared 使用场景 HAP、HAR、HSP介绍 HAP、HAR、HSP开发 应用的启动 AbilityStage UIAbility WindowStage Window 拉起应用到显示到前台流程 鸿蒙模块概念 HAP hap包是手机安装的最小单元,1个app包含一个或…...

SQLark 百灵连接工具便捷功能之生成数据库测试数据

参考此文: SQLark百灵连接工具--数据生成...

ChirpIoT技术的优势以及局限性

ChirpIoT是一种由上海磐启微电子开发的国产无线射频通讯技术,ChirpIoT技术基于磐启多年对雷达等线性扩频信号的深入研究,并在此基础上对线性扩频信号的变化进行了改进,实现了远距离传输的一种无线通信技术。相关产品型号有E29-400T22D、E290-…...

Jetpack架构组件学习——使用Glance实现桌面小组件

基本使用 1.添加依赖 添加Glance依赖: // For AppWidgets supportimplementation "androidx.glance:glance-appwidget:1.1.0"// For interop APIs with Material 3implementation "androidx.glance:glance-material3:1.1.0"// For interop APIs with Mater…...

C++函数——fill

在C中,std::fill 是标准库提供的一个算法适用于几乎所有类型的容器,只要这些容器支持迭代器操作。具体来说,std::fill 的适用性取决于容器是否提供了满足其要求的迭代器类型,用于将指定范围内的所有元素设置为某个特定值。它是一个…...

二叉树(了解)c++

二叉树是一种特殊的树型结构,它的特点是: 每个结点至多只有2棵子树(即二叉树中不存在度大于2的结点) 并且二叉树的子树有左右之分,其次序不能任意颠倒,因此是一颗有序树 以A结点为例,左边的B是它的左孩子,右边的C是…...

备赛蓝桥杯之第十五届职业院校组省赛第三题:产品360度展示

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议 由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…...

业余无线电 对讲机常用频率使用

我自己的总结是,基本可以无忧使用: 144.035-145.800 146.000-148.000 430.000-431.900 432.240-435.000 438.000-439.000 50Mhz一般手台不支持,暂不记录。 以下为附录可以自行阅读,本文内容如有错误请留言指正。 特定波段…...

个性化的语言模型构建思路

将开源模型(如Llama3、Qwen、Falcon3 … 等)转变为个人专属的大语言模型,通常涉及知识库的构建、微调(fine-tuning)和模型定制等步骤。下面提供一个详细的技术解决方案,涵盖了如何利用现有的资料(如文档、PDF、Excel、PPT、图片、语音、视频等)将开源模型转换为个人专属…...

QT开发技术【QFileDialog卡顿问题】

一、直接用QFileDialog 在window 一般卡顿7秒 qDebug() << "begin:" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");QDateTime sTime QDateTime::currentDateTime();QString str QFileDialog::getOpenFileName(null…...

关于为什么java中nextInt()和nextLine()不能混用 | nextInt()和nextInt()之类的可以一起用

键盘录入的区别&#xff1a; 第一套体系&#xff1a;遇到空格、制表符、回车都结束&#xff0c;并且都不接收 nextInt()、nextDouble()、next() 遇到空格、制表符、回车就结束&#xff0c;只接收其之前的数据&#xff0c;空格以及空格之后的数据都在缓冲区内&#xff0c;如果…...

Android OpenGL(六) 纹理

纹理 纹理是一个2D图片&#xff08;甚至也有1D和3D的纹理&#xff09;&#xff0c; 它可以用来添加物体的细节&#xff1b;你可以想象纹理是一张绘有砖块的纸&#xff0c;无缝折叠贴合到你的3D的 房子上&#xff0c;这样你的房子看起来就像有砖墙外表了 纹理环绕方式 纹理坐…...

git和idea重新安装后提交异常

场景&#xff1a;我重装了系统&#xff0c;idea装了2024.3版本的&#xff0c;git也重新装了&#xff0c;但是项目中还是有.git文件夹的&#xff0c;下载了idea的码云插件后&#xff0c;提交报错如下&#xff1a; 异常&#xff1a;Error updating changes: detected dubious ow…...

leetcode刷题记录(八十一)——236. 二叉树的最近公共祖先

&#xff08;一&#xff09;问题描述 236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09;236. 二叉树的最近公共祖先 - 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科 [https://baike.baidu.com/item/%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B…...

STM32-CAN总线

1.CAN总线简介 CAN总线是由BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通信总线 2.CAN总线特征 两根通信线&#xff08;CAN_H、CAN_L&#xff09;&#xff0c;线路少&#xff0c;无需共地差分信号通信&#xff08;相对的是单端信号&#xff09;&#…...

node.js 07.npm下包慢的问题与nrm的使用

一.npm下包慢 因为npm i 默认从npm官网服务器进行下包,但是npm官网服务器是海外服务器所以响应很慢. 于是我们通过npm下包的时候通常用淘宝镜像进行下包,下面是切换到淘宝镜像地址下包的操作. 二.nrm的使用 nrm是一个管理切换npm下包地址的工具,可以快速切换下包的地址. 安…...

ubuntu改变swap存储空间,遇到 fallocate 失败: 文本文件忙

ubuntu改变swap存储空间&#xff0c;遇到 fallocate 失败: 文本文件忙 sudo fallocate -l 16G /swapfile fallocate: fallocate 失败: 文本文件忙这种情况是swap空间正在使用&#xff0c;需要先关闭swap分区&#xff1a; sudo swapoff /swapfile sudo fallocate -l 16G /swap…...

20250122-正则表达式

1. 正则标记 表示一位字符&#xff1a;\\ 表示指定的一位字符&#xff1a;x 表示任意的一位字符&#xff1a;. 表示任意一位数字&#xff1a;\d 表示任意一位非数字&#xff1a;\D 表示任意一个字母&#xff1a;[a-zA-Z]&#xff08;大写或小写&#xff09; 表示任意一个…...

QT之CMAKE教程

介绍 CMake 是一个跨平台的自动化构建系统&#xff0c;它使用配置文件&#xff08;称为 CMakeLists.txt&#xff09;来生成标准的构建文件&#xff0c;如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程文件。CMake 能够支持多种编程语言&#xff0c;尤其是 C 和 C&#…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章

用 Rust 重写 Linux 内核模块实战&#xff1a;迈向安全内核的新篇章 ​​摘要&#xff1a;​​ 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言&#xff0c;受限于 C 语言本身的内存安全和并发安全问题&#xff0c;开发复杂模块极易引入难以…...