没志青年
发布于 2025-07-22 / 53 阅读
0

硬件基础 - 存储器

存储器分类

RAM

断电后数据消失

SRAM

DRAM

是否需要刷新

是,需要周期性刷新

数据保持

供电则一直保持

即使供电,也需要不断刷新

读写速度

较慢

密度

低,单位体积大

高,单位体积小

成本

使用场景

CPU缓存、寄存器

电脑内存、嵌入式系统主存

功耗不好比较。

DRAM 和 CPU 异步通信,SDRAM 与 CPU 同步通信,使用 CPU 系统总线时钟同步。

DDRAM 是 DDR SDRAM。

DRAM 已经被淘汰了。

ROM

断电后数据仍保存。

页:Page

扇区:Sector

块:Block

一般块比扇区大。

Nor Flash

Nand Flash

EEPROM

代码执行(XIP)

支持

不支持

不支持

读取单位

字节随机读取(一个或多个)

按页读取

字节随机读取(一个或多个)

读取速度

随机读取快(~100ns),顺序读取慢

顺序读取块(GB/s级),随机读取慢

最慢(μs级)

擦除单位

扇区

字节

写入

(1)指定地址随机写入一个或多个字节

(2)如果写入的地址原来有数据,需先擦除扇区。

(1)按页写入

(2)如果写入的页原来有数据,需擦除整块

(1)指定地址随机写入一个或多个字节

(2)页(8个字节)写入。

写入速度

慢(需先擦除扇区)

较快(页编程,ms级)

最慢(需等待写入,一般5ms左右)

擦除速度

慢。虽然扇区比块小,但是Nand的构造使其擦除块反而更快。

不需要手动擦除

寿命

较高(约10K~1M次擦写)

较低(约1K~100K次擦写)

最高(100K~1M次)

容量

小容量(KB、MB)

大容量(GB、TB)

小容量(KB)

成本

最高

应用

嵌入式系统代码存储、BIOS固件

EMMC、U盘、SD卡、SSD

存储配置信息

为什么 NorFlash 和 NandFlash 写入数据时要擦除?

  • 如果写入的地址或页原来是空白的,那直接写入就行了。

  • 如果写入的地址或页已经有数据了,那必须先擦除,因为写入只能将1变为0。让0变为1的唯一操作是擦除。擦除会让所有位变为1

EEPROM 支持直接覆盖写入,不需要先擦除。

EEPROM 跨页注意:

超过一页会从这一页的开头覆盖,比如一页是8个字节,写入10个字节,第9、10个数据覆盖了第1、2个数据。

这种覆盖是静默发生的,芯片不会报错,所以单片机不会感知到,所以需要注意。

这是eeprom的硬件限制,因为其内部的地址计数器只有3位,正好0~7,所以过了7会回到0.

EMMC 可以简单理解为芯片形式的SD卡,eMMC将 NAND闪存、闪存控制器和标准接口协议集成在一颗BGA封装芯片中,直接焊接在主板上。常用于嵌入式系统存储系统镜像。

DRAM

芯片区别:

SDR

DDR2

DDR3

LPDDR4

工作电压

3.3V

1.8V

1.5V

1.2V

区别

单端时钟,单数据速率

差分时钟,4n预取

差分时钟,8n预取

DBI/CRC支持,16n预取

时钟输入

时钟使能

BS Bank选择引脚

地址总线

数据总线

16 bit

32 bit

数据读写屏蔽

DQM0控制低字节、DQM1控制高字节。

1屏蔽,0正常。

复位

阻抗匹配配置

SDRAM

常用芯片

  • W9825G6KH-6:32MB

  • MT48LC16M16A2P-6A IT:G:32MB

  • IS42S16400J-7TLI:8MB

SDRAM 信号线

以 W9825G6KH-6 为例:

W9825G6KH-6 芯片参数:

属性

Bank 数

4

数据位数

16

信号线

数量

类型

说明

CLK

1

输入

同步时钟信号。CLK上升沿时采集信号

CKE

1

输入

时钟使能信号。若禁用,则芯片会启动自刷新操作

CS\overline{CS}

1

输入

片选信号,低电平有效

CAS\overline{CAS}

1

输入

列地址选通。表示当前地址线为列地址,低电平有效。

RAS\overline{RAS}

1

输入

行地址选通。表示当前地址线为行地址,低电平有效。

WE\overline{WE}

1

输入

使能写入。低电平有效。

DQM [ 0 : 1 ]

2

输入

数据输入/输出掩码。控制DQ信号线的有效部分

BS [ 0 : 1 ]

2

输入

Bank选择

A [ 0 : 12 ]

13

输入

13bit地址

DQ [ 0 : 15 ]

16

输入/输出

16bit数据

DQM = 0,读写操作正常;DQM = 1,读写操作被屏蔽。

  • DQM[0] 控制低字节 0 ~ 7

  • DQM[1] 控制高字节 8 ~ 15

相比于WE\overline{WE},DQM能更细粒度的控制数据的写入和读取操作。

实际应用中,有时候只需要操作8位数据,通过DQM就能实现8位/16位数据切换了。

SDRAM 存储结构

这个芯片一共有4个Bank(存储阵列),这4个Bank共用行列地址译码器。

通常芯片只有4个Bank

通过行列地址确定的是一个word(16bit)。W9825G6KH-6的一个Bank有16M个word,16M * 16 bits * 4 = 32MB

SDRAM 控制命令

(表中的H表示高电平,L表示低电平,X表示任意电平,High-Z表示高阻态。)

SDRAM 初始化流程

SDRAM 读时序

SDRAM 写时序

DDR

SDRAM

DDR2

DDR3

DDR3L

DDR4

LPDDR

电压

3.3 V

1.8 V

1.5 V

1.35 V

1.2 V

SDRAM 时钟仅上升沿,DDR 时钟为双边沿。

带宽=数据位宽×有效传输速率

高带宽,并不一定是高频率,还要考虑位宽。

高带宽不等于低延迟

DDR3

DDR3L

DDR3U

TPS51116 全套 DDR、DDR2、DDR3、DDR3L、LPDDR3 和 DDR4 电源解决方案同步降压控制器、3A LDO、缓冲基准 datasheet (Rev. J)

引脚定义

DDR3:

引脚

说明

VDD、VSS

芯片供电

VDDQ、VSSQ

DQ 供电

CK、CKN

差分时钟

DQ [ 0 : 15 ]

数据总线

A [ 0 : 15 ]

地址总线

BA [ 0 : n ]

Bank 选择

CS0、CS1

片选信号

LDM、UDM

输入数据屏蔽

LDQS、LDQSN

UDQS、UDQSN

CKE0、CKE1

VREFDQ

VREFCA

ODT0、ODT1

终端电阻

ZQ0、ZQ1

校准电阻

RESET

复位

RAS

CAS

WE

SD Card

读写以扇区为单位,一个扇区 512 字节。

EMMC

引脚介绍

封装通常为 BGA153

  • CLK:时钟

  • CMD:命令/响应,用于控制。

  • RSTN:复位,低电平有效。

  • Data Strobe:8线制高速下使用

电源:

  • VCC:Flash 存储单元供电

  • VCCQ:存储控制器/IO接口供电

  • VDDI:

  • VSS:

  • VSSQ:

EMMC 总线模式:

模式

数据线

说明

1-bit

DAT0

早期,低速

4-bit

DAT0~3

中速,类似SD卡

8-bit

DAT0~7

高速

存储结构

电路设计

PCB 布局布线要求

(94 封私信 / 80 条消息) EMMC模块电路的PCB设计建议 - 知乎

U 盘