内存颗粒基础认知:DRAM与SRAM的区别

做芯片验证和失效分析这么多年,我经常被问到的一个问题是:DRAM和SRAM到底有啥区别?

其实说白了,这两兄弟虽然都叫内存,但脾气秉性完全不同。我刚开始接触内存颗粒时,也傻傻分不清,直到有一次项目里把SRAM当DRAM用,结果板子死活跑不起来……嗯,从那以后我就再也不敢搞混了。

一、DRAM vs SRAM:核心差异

先看一张对比表,这样更直观:

对比项 DRAM(动态随机存取存储器) SRAM(静态随机存取存储器)
存储单元结构 1个晶体管 + 1个电容 6个晶体管(6T结构)
是否需要刷新 需要(每64ms刷新一次) 不需要(静态保持)
读写速度 较慢(ns级) 极快(亚ns级)
集成度 高(单颗可达16Gb+) 低(通常几Mb)
功耗 需要刷新功耗,但待机功耗低 静态功耗较高
成本 低(每bit成本) 高(每bit成本)
典型应用 主内存(DDR4/DDR5) Cache、寄存器、片上存储

你想想看,DRAM为什么叫「动态」?因为它靠电容存储电荷,电荷会漏电,所以必须不断刷新。我见过不少新手工程师,做FA时发现数据读出来全是乱的,第一反应是怀疑芯片坏了——其实很可能就是刷新时序出了问题。

SRAM就不一样了,它用触发器锁存数据,只要不断电,数据就稳稳待在那里。所以它快,但代价是面积大、成本高。我在项目中遇到过用SRAM做缓存的情况,一片几Mb的SRAM,价格比同容量的DRAM贵了十几倍。

核心记忆点:DRAM靠电容存数据,需要刷新;SRAM靠触发器存数据,不需要刷新。速度上SRAM完胜,但容量和成本上DRAM碾压。

内存颗粒的内部结构:Bank、Row、Column

搞清楚了DRAM和SRAM的区别,咱们再深入看看DRAM内部长什么样。我个人习惯把DRAM想象成一个巨大的图书馆——这样理解起来特别顺。

1. Bank(存储库)

一个DRAM芯片内部被分成多个Bank。每个Bank就像图书馆里的一个独立阅览室。为什么要有Bank?说白了就是为了并行操作。我在做DDR4验证时,经常利用多Bank交替访问来提升带宽。

举个例子:DDR4颗粒通常有8个或16个Bank。你可以在Bank0里读数据的同时,往Bank1里写数据——这就是所谓的Bank interleaving。

2. Row(行)和Column(列)

每个Bank内部是一个二维矩阵。Row就是行地址,Column就是列地址。选中某一行后,整行的数据会被拉到Sense Amplifier(感测放大器)里,然后再通过列地址选择具体要读哪个bit。

嗯,这里要注意:行激活(ACTIVATE命令)和列读取(READ命令)是分开的。我见过不少FA案例,失效分析时发现行地址选错了,结果读出来的数据全是隔壁行的——这种问题在地址线短路时特别常见。

实战技巧:做内存颗粒FA时,我建议先检查Row地址是否稳定。如果某一行数据全部异常,大概率是行地址线出了问题。如果只是个别bit出错,那可能是Column路径上的问题。

3. 内部结构示意图

用代码来模拟一下DRAM的寻址过程,这样更清楚:

// 假设一个DRAM颗粒的配置
// 8个Bank,每个Bank 65536行 x 1024列

// 地址分解示例(以DDR4为例)
uint32_t address = 0x12345678;

uint8_t  bank  = (address >> 16) & 0x07;  // 取bit16-18,共3bit,8个Bank
uint16_t row   = (address >> 6)  & 0xFFFF; // 取bit6-21,共16bit,65536行
uint16_t col   = address & 0x3F;           // 取bit0-5,共6bit,64列

printf("Bank: %d, Row: %d, Column: %d\n", bank, row, col);

你看,一个物理地址被拆成了Bank、Row、Column三部分。我刚开始做验证时,经常对着地址映射表发呆——后来发现,只要理解了这三层结构,大部分寻址问题都能迎刃而解。

常见封装类型:BGA与TSOP

封装这块,我踩过的坑可不少。先说说两种最常见的封装:

1. TSOP(薄型小尺寸封装)

TSOP是早期的内存颗粒封装,引脚从两侧伸出来。优点是焊接方便,用普通烙铁就能手工焊。缺点是引脚容易弯折,而且高频性能差。

我记得有一次做DDR2的FA,板子上的TSOP封装颗粒频繁出现数据错误。排查了半天,发现是引脚虚焊——因为TSOP的引脚太细,稍微受点力就接触不良了。

2. BGA(球栅阵列封装)

现在的DDR4、DDR5几乎全是BGA封装。焊球在芯片底部,呈阵列排列。优点是引脚短、寄生参数小、高频性能好。缺点嘛……你没法用手工焊,必须用回流焊设备。

做BGA的FA时,我最头疼的就是X-ray检测。有一次客户说内存颗粒不工作,我拍了X-ray照片,发现有个焊球根本没熔好——典型的冷焊问题。这种问题在TSOP时代几乎不会出现。

封装类型 引脚形式 焊接方式 高频性能 维修难度
TSOP 两侧引脚 手工/波峰焊 一般(适合DDR2及以下) 低(可手工更换)
BGA 底部焊球 回流焊 优秀(适合DDR4/DDR5) 高(需专业设备)

避坑指南:我曾经遇到过一批BGA封装的DDR4颗粒,在温度循环测试后出现大量失效。后来发现是焊球与PCB焊盘之间的热膨胀系数不匹配。所以做BGA封装的内存颗粒FA时,一定要关注温度相关的失效模式。

好了,这一章的内容就到这里。DRAM和SRAM的区别、内部Bank/Row/Column结构、以及TSOP和BGA封装的特点,这些都是做内存颗粒FA的基础中的基础。下一章我们会深入讲DDR协议和时序,到时候再聊。