【x86】DRAM、SRAM、DDR、FLASH、双通道的概念科普
内存的DRAM、SRAM
在学习数电的时候就学习过,RAM分为两大类,有DRAM(Dynamic RAM)、SRAM(Static RAM),在装机器的时候也经常会听到DDR3 DDR4 DDR5等概念,下面详细介绍。
首先DRAM和SRAM这两大类,从原理上说:DRAM是将每bit数据保存在一个个的电容+晶体管内,而SRAM是将数据保存在一个个触发器中,由于电容储存的电荷会随时间减少,因此,DRAM需要周期性刷新否则数据将会丢失,SRAM则没有这种困扰。
但从工艺上来说,DRAM的电容会比SRAM触发器更简单,成本因此就更低,也更容易制作得更大容量,集成度更高。DRAM使用成本换取了访问速度和集成度。
SRAM通常用在CPU Cache的小容量但高速的场景中。DRAM需要刷新 + 预充 + 激活等一系列步骤才能访问使用,因此速度相对慢很多。
总结就是:
- SRAM 快但贵,小容量 → 用于 CPU cache。
- DDR 是 DRAM 快速变种,便宜大容量 → 用于主内存。
DDR
平时装机佬们说的DDR4 DDR5这些,是指**DDR(Double Data Rate)DRAM**:“双倍数据速率”,所以是一种高速DRAM。
从原理上,它每个时钟周期传输两次数据(上升沿+下降沿),带宽比传统 SDRAM 更高。
其实,我们市面上现如今能买到的一般都是更好的DDR SDRAM,多了个S,代表着Synchronous DRAM,意思是和系统时钟同步。这个具体不用管,反正DDR就是双倍速率,就是快 φ(゜▽゜*)♪
FLASH
FLASH,又叫闪存,是一种断电不丢失数据(非易失性存储器,NVM,Non-Volatile Memory)存储器,是一种外存。其由浮栅晶体管构成,用于长期存储数据或文件(例如U盘),写入速度比较慢但是读取速度很快。
常见的FLASH有两种:
- NAND FLASH: 用于 SSD、U盘、TF 卡、eMMC(手机)
- NOR FLASH: 可随机读写,常用于固件(BIOS/UEFI ROM)存储 SPI NOR(BIOS 芯片)
没错,FLASH如今一般走SPI总线协议。
有关SPI FLASH,具体可以看这个:
https://zhuanlan.zhihu.com/p/631629580
Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多,在设计中应该考虑这些情况。
——《ARM嵌入式Linux系统开发从入门到精通》 李亚峰 欧文盛 等编著 清华大学出版社 P52
Flash闪存是NVM,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
其他有关NOR和NAND的区别,具体可以看这个:
https://www.cnblogs.com/eleclsc/p/11393461.html
顺便一提,手机中一般使用的eMMC也是使用FLASH做的:eMMC = NAND Flash + 控制器(Controller)
它是把 Flash 芯片和控制器封装在一个 BGA 封装中,通过标准化接口(JESD84)提供存储功能,不需要额外的 Flash 控制器芯片。
SSD硬盘也是NAND FLASH制作而成的。NAND Flash 的成本更低,容量更高。
但是NOR FLASH也不是一无是处,虽然很难做大容量,但是其可以直接从FLASH中执行代码,类似于ROM,并且支持随机读取,因此在BIOS固件的场景或者MCU/嵌入式设备启动代码、Bootloader(例如,STM32 芯片的内置 Flash等) 存储等有重要作用。
注意:
刚刚说Flash 是一种 NVM(非易失性存储器),它
- 不是 RAM(随机存取存储器)
- 不是传统意义上的 ROM(只读存储器)
- 更准确地说,它是一种可擦写的 ROM(即 EEPROM 的变种)
双通道
装机时,经常也可以听到需要将内存条组成双通道的说法,这样性能更好,但是这具体是什么意思?
双通道(Dual Channel)是一种内存带宽增强的技术,这个技术是主板或内存控制器的一种工作方式,而非内存条本身的特性。
如果使用两根规格同样的内存条,主板可以将他们组成双通道模式。采用这个模式下的主板,可以同时读写两条内存,也就说性能可以翻倍。
两根内存条带宽就是两个总线,相当于高速路由单车道变成双车道,所以数据传输效率更高。
有双通道了,有三通道、四通道....这些说法吗?
答:对也不对,可以看下表:
| 模式 | 通道数 | 理论带宽提升倍数 | 常见平台 |
|---|---|---|---|
| 单通道 | 1 | 1x | 所有系统最低配置 |
| 双通道 | 2 | 2x | 主流桌面平台、笔记本平台 |
| 三通道 | 3 | 3x | 已过时(曾用于 Intel X58 平台) |
| 四通道 | 4 | 4x | 高端桌面(HEDT)、服务器平台 |
| 六/八通道 | 6 / 8 | 6x / 8x | 专业工作站、服务器(如 Xeon) |
- Intel X58 平台(2008):支持 三通道,典型配置是 3×2GB 内存;
- Intel X299、AMD TRX40(Threadripper):支持 四通道;
- Intel Xeon Scalable/AMD EPYC:支持 六或八通道(每个内存控制器挂更多 DIMM)。
多通道的目的是为了提升带宽,提升数据的传输效率,不能提高时序延迟,但是对于机器来说,2 * 8GB 总是比单根 16GB 的内存条确实性能要更好的,但是这个也取决于主板是否支持。
如今的家用电脑/笔记本等一般均支持双通道,服务器支持更多通道组成。
【x86】DRAM、SRAM、DDR、FLASH、双通道的概念科普的更多相关文章
- FPGA系统中DRAM,SRAM,SDRAM,FLASH 区别(转)
原文:http://hi.baidu.com/abners/item/a9042ef35d3f005bc8f337f5 一般来说这几种存储器是一个nios系统都具有的,sram的好处是接口简单,速度快 ...
- 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质
一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ...
- 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...
- 【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )
[嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 ) 一. 内存 ...
- RAM,SRAM,DRAM,SDRAM,DDR RAM,ROM,PROM,EPROM,EEPROM,NAND FLASH,NOR FLASH的区别
RAM:由字面意思就可以理解,SDRAM SRAM DRAM(下面蓝色字体的这几种)都可以统称RAM,random access memory(随机存取存储器)的缩写,下面是51hei.com为大家整 ...
- SRAM SROM DRAM DROM DDR NAND FLASH EMMC的区别
RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保存数据的.它在任何 时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存 ...
- ROM、RAM、DRAM、SRAM和FLASH区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都 ...
- ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- ROM、SDRAM、RAM、DRAM、SRAM、FLASH区别
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 18.11 ROM、RAM、DRAM、SRAM和FLASH区别
ROM(Read Only Memory)和RAM(Random Access Memory)指的都是半导体存储器.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,但 ...
随机推荐
- Docker基本使用方法
Docker 的基本使用方法 最近在尝试复现研究CVE,docker太方便了,学了下基本的使用方法,怕忘记,记于此处 1. 容器与镜像 镜像是一堆只读的文件. 容器 = 镜像 + 读写层 运行态的容器 ...
- Mac 终端下svn常用命令的使用
svn基本的操作流程 刚刚进入一个新的公司,让我接手一个正在进行的项目,我打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一个叫do ...
- Spring注解之@FeignClient注解使用方法
声明接口时在代码中通过@Resource注入容器之后即可使用.@FeignClient注解的常用属性如下: value/name:value和name的作用一样,用于指定FeignClient的名称: ...
- 【对称加密】DES与AES算法详解及Java实现
对称加密:DES与AES算法详解及Java实现 目录 对称加密概述 DES算法详解 AES算法详解 Java实现示例 安全注意事项 总结 1. 对称加密概述 对称加密是指加密和解密使用相同密钥的加密算 ...
- 一种更简单的方式运行 C# 代码,简化 C# 开发体验!
前言 前段时间 .NET 10 Preview 4 推出了一种更简单的方式运行 C# 代码,即可以直接使用dotnet run file.cs 命令运行 C# 文件.这意味着我们不再需要创建项目文件或 ...
- AES简介以及配合Base64实现加密解密
一.对称加密 1.什么是对称加密 对称加密就是指加密和解密使用同一个密钥的加密方式. 2.对称加密的工作过程 发送方使用密钥将明文数据进行加密成密文,发送给接收方,接收方收到密文后,使用同一个密钥将密 ...
- RL之深夜有感
世界似乎就是一个巨大的强化学习环境(Env),身处其中的每个人就是里面的智能体,有的为生计四处奔波:有的要探寻精神上的欢娱:有的似乎想跳出Env,不想再继续下去了:可以说每个人的target都不尽相同 ...
- ChatClient vs ChatModel:开发者必须知道的4大区别!
在 Spring AI/Spring AI Alibaba 框架中,ChatModel 和 ChatClient 都可以实现大模型的文本生成功能,例如聊天机器人,但二者是两种不同层级的 API 封装, ...
- 从 DeepSeek 突然爆发,看数据开发的应用市场
在数字化快速发展的当下,人工智能与数据技术不断迭代.近期,DeepSeek 凭借自身技术实力在市场中迅速崛起,为剖析数据开发应用市场提供了视角. DeepSeek 爆发:技术与市场的双重驱动 1.1 ...
- Java集合框架性能特征与使用场景深度解析
Java 集合框架的性能优化与场景适配是高级程序员面试的核心考点.本文聚焦线性集合.集合.映射等核心组件的性能指标(时间复杂度.空间开销)与适用场景,结合 JDK 演进特性与工程实践,构建系统化知识体 ...