首页/新闻资讯/正文详情

DRAM工作原理详解:从1T1C存储单元到多Bank交错与刷新机制

发布时间:2026/9/24 4:44:07 来源:云帆数科 栏目:资讯中心
DRAM工作原理详解:从1T1C存储单元到多Bank交错与刷新机制
简介这是一份面向计算机专业学生、硬件入门者及考研复习人群的DRAM工作原理学习教案以PPT形式系统梳理动态随机存取存储器的核心知识帮助读者理解主存储器的结构、刷新机制与性能特点。压缩包内共1个pptx文件约2.06MB内容涵盖DRAM基本概念、电容器与晶体管构成的存储单元、SRAM对比、存储密度与K/M/G计量方式、刷新原理以及异步DRAM、SDRAM、DDR系列等分类并延伸至高速化、低功耗化的发展趋势与在服务器、智能手机中的应用。全篇共62页配有结构示意图与要点标注适合课堂讲授、自学梳理或考前快速回顾。目前已有378人学习可作为数字逻辑、计算机组成原理课程的配套参考帮助读者建立从存储单元到系统应用的完整认知框架。1. 从一颗电容说起这份 DRAM 工作原理 PPT 到底能帮你解决什么如果你正在准备数字电路、计算机组成原理或者嵌入式系统的课程大概率会在某个深夜被一个问题卡住为什么内存断电之后数据就没了而硬盘不会这个问题的答案就藏在 DRAM 的存储单元里——一个晶体管加一个电容电容漏电数据就丢所以必须周期性刷新。这份《内存基本知识 DRAM 工作原理》PPT 学习教案共 62 页从存储单元结构一路讲到多 Bank 架构和 DRAM 发展趋势把这条链路完整串了起来。它适合三类人一是正在学计算机组成原理、需要一份能直接对着讲的课件提纲的学生或助教二是做嵌入式底层开发、需要快速回顾 DRAM 刷新机制和 Bank 交错访问的工程师三是面试前想把 SRAM 与 DRAM 的区别、DRAM 分类、DDR 代际演进这些高频考点系统过一遍的人。PPT 本身不是代码仓库但它的价值在于把散落在教材各处的概念收拢到一条主线上让你不用翻三本书才能拼出完整图景。2. DRAM 存储单元与 SRAM 的本质差异为什么主存必须用 1T1C2.1 一个晶体管加一个电容省出来的不只是面积DRAM 的存储单元是 1T1C 结构一个访问晶体管加一个电容。电容充了电代表 1放完电代表 0。这个结构简单到极致代价是电容会漏电数据会随时间衰减所以必须周期性刷新。SRAM 则用 4 个或 6 个晶体管构成双稳态电路只要供电就能保持状态不需要刷新但每个单元占的面积大得多。这个差异直接决定了它们的分工。SRAM 速度快、不需要刷新但成本高、密度低所以拿来做 CPU 缓存。DRAM 密度高、单位成本低但需要刷新电路和更复杂的寻址方案所以拿来做主存。PPT 里有一页专门对比 SRAM 和 DRAM把速度、成本、密度、刷新需求、典型用途列成表格这个对比在面试里出现的频率极高。从工程角度看1T1C 的电容值通常在飞法级别漏电导致电荷衰减的时间常数在毫秒量级。JEDEC 标准规定 DRAM 的刷新周期典型值是 64ms也就是说每 64 毫秒内必须把每一行都刷新一遍。这个约束不是随便定的它直接影响了 DRAM 控制器的设计——刷新操作会占用总线带宽所以控制器需要在刷新开销和访问效率之间做权衡。2.2 刷新操作到底在做什么刷新不是重新写入数据而是读出每一行的数据再写回去。因为读取操作本身会破坏电容里的电荷所以 DRAM 的读操作实际上是“破坏性读出”每次读完之后必须把数据写回。刷新就是利用这个机制定期对每一行执行一次“读-写回”让电容电荷恢复到满值。PPT 里用了一张电容漏电的示意图来说明这个过程。实际工程中刷新由 DRAM 控制器自动发起软件层面通常不需要干预。但在一些低功耗场景下比如移动设备待机时控制器会进入自刷新模式DRAM 自己管理刷新时序功耗可以降到很低。MTK 平台的 DRAM 自刷新进入条件就是一个典型的工程问题——什么时候进自刷新、什么时候退出直接影响待机功耗。注意刷新周期不是固定不变的。温度越高漏电越快刷新周期需要缩短。工业级 DRAM 在高温环境下通常要求 32ms 甚至 16ms 刷新一次这一点在选型时容易被忽略。3. Bank、Row、Column 三级寻址从单 Bank 到多 Bank 交错3.1 行地址选通与列地址选通的时序配合DRAM 的寻址采用行地址和列地址分时复用的方式。一次完整的访问流程是先发行地址选通信号把整行数据读到行缓冲器里再发列地址选通信号从行缓冲器里选出目标列的数据输出。这个两步走的设计是为了减少引脚数量——地址线复用先传行地址再传列地址。行缓冲器的存在意味着如果连续访问同一行的不同列第二次访问不需要再发行地址选通直接发列地址选通就行。这就是 DRAM 的突发传输基础。PPT 里有一页专门画了行缓冲器和列选通的时序图把行地址选通到列地址选通之间的延迟、列地址选通到数据输出的延迟都标了出来。这些时序参数在写 DRAM 控制器驱动时是必须查表的。3.2 多 Bank 架构如何把带宽翻上去单 Bank 架构的问题是行地址选通之后需要等待一段时间才能发列地址选通这段时间总线是空闲的。多 Bank 架构把存储阵列分成多个独立的 Bank每个 Bank 有自己的行缓冲器和内部数据总线。当一个 Bank 在等待行地址选通延迟时另一个 Bank 可以同时进行数据传输这就是 Bank 交错。PPT 里对比了单 Bank 和多 Bank 的架构图。多 Bank 的关键在于“独立激活”——每个 Bank 可以独立地执行激活、读写、预充电操作。控制器可以把连续的地址映射到不同的 Bank 上让数据像流水线一样连续输出。DDR 系列内存的 Bank 数量从 DDR 的 4 Bank 增加到 DDR3 的 8 Bank带宽提升的一部分就来自这里。实际配置中Bank 交错策略由内存控制器的地址映射决定。常见的映射方式有 Bank 间交错和 Bank 内交错两种。Bank 间交错把连续地址分散到不同 Bank适合大块连续数据传输Bank 内交错把连续地址放在同一 Bank 的不同行适合随机访问。选哪种取决于具体负载特征没有一刀切的最优解。# 查看 Linux 下内存 Bank 交错配置的常见方式 # 读取内存控制器寄存器信息需要 root 权限 sudo dmidecode -t memory | grep -i bank\|interleave # 查看当前内存通道和 Bank 分布 sudo lshw -class memory | grep -A 5 bank上面两条命令用来查看系统实际的内存 Bank 和交错配置。dmidecode从 BIOS 的 SMBIOS 表里读信息能看到每个内存插槽的 Bank 位置和交错模式。lshw则从操作系统层面列出内存硬件拓扑。参数上重点关注Interleave字段它告诉你内存控制器是否开启了 Bank 交错以及交错粒度是多少。3.3 从 SDR 到 DDR数据速率翻倍的底层逻辑PPT 里有一页专门讲 DRAM 发展趋势从 SDR 到 DDR、DDR2、DDR3 的演进路线。SDR 只在时钟上升沿传输数据DDR 在上升沿和下降沿都传输所以数据速率翻倍。DDR2 把预取位数从 2 位提高到 4 位DDR3 提高到 8 位内部时钟频率可以更低但外部数据速率更高。这个演进逻辑的核心是内部存储阵列的速度提升跟不上外部接口的速度提升所以用预取的方式把内部数据“攒”起来再以更高的速率一次性输出。DDR3 的 8 位预取意味着内部一次读 8 位数据然后以 8 倍于内部时钟的速率串行输出。PPT 里用了一张预取示意图来说明这个机制把内部时钟和外部数据速率的比例关系画得很清楚。电压也在降SDR 是 3.3VDDR 是 2.5VDDR2 是 1.8VDDR3 是 1.5V。电压降低直接带来功耗下降这对移动设备尤其重要。PPT 里列了一张电压和速率的对照表把每一代 DDR 的典型频率范围、电压、预取位数都列了出来。这张表在选型时可以直接拿来用。4. 容量单位与密度标注K、M、G 在内存语境下的真实含义4.1 为什么 256M-bit 不是 256MBPPT 里专门有一页讲 K、M、G 的标注问题。在标准科学计数法里K 是 1000M 是 1,000,000G 是 1,000,000,000。但在计算机工程里K 是 1024M 是 1,048,576G 是 1,073,741,824。这个差异在内存容量标注上经常造成混淆。更关键的是 bit 和 Byte 的区别。DRAM 芯片的密度通常用 bit 标注比如 256M-bit、512M-bit。但操作系统显示的容量是 Byte1 Byte 等于 8 bit。所以一颗 256M-bit 的 DRAM 芯片实际容量是 32MB。PPT 里用 256M-bit 和 512M-bit 两个例子来说明这个换算关系这个知识点在阅读 DRAM 数据手册时是必须掌握的。实际选型时DRAM 芯片的密度标注方式有几种有的标总容量有的标每个 Bank 的容量有的标行地址和列地址的乘积。PPT 里有一页专门解释这些标注方式的区别把行地址位数、列地址位数、Bank 数量、数据位宽这几个参数和总容量的关系理了一遍。这个推导过程在面试里经常被问到。4.2 内存容量与地址空间的映射关系DRAM 的容量决定了它能覆盖多大的地址空间。32 位系统的地址空间是 4GB但实际可用内存往往小于这个值因为一部分地址空间要留给外设寄存器。PPT 里有一页讲主存的地址映射把物理地址空间和 DRAM 容量的对应关系画了出来。这个映射关系在嵌入式开发里尤其重要。比如一个系统配了 512MB 的 DRAM但物理地址空间里 DRAM 只占其中一段剩下的地址空间分配给 Flash、外设控制器、保留区域。写启动代码时需要根据这个映射关系来配置内存控制器和 MMU。PPT 里的地址映射图可以直接作为参考。提示看 DRAM 数据手册时先确认密度标注是 bit 还是 Byte再看行地址、列地址、Bank 数量的乘积是否和标注一致。不一致的时候通常是因为标注方式不同而不是手册写错了。5. 避坑与排查DRAM 学习与实际配置中的五个常见问题5.1 刷新周期设错导致数据间歇性丢失现象系统运行一段时间后随机出现数据错误重启后恢复正常但运行一段时间又复现。原因DRAM 控制器的刷新周期设置过长电容电荷在刷新之前就衰减到无法正确读出的程度。解决查 DRAM 数据手册里的刷新周期参数确认控制器配置的刷新间隔小于手册规定值。高温环境下需要进一步缩短刷新周期工业级应用通常按 32ms 甚至 16ms 配置。5.2 Bank 交错配置与负载特征不匹配现象内存带宽测试结果远低于理论值或者随机访问延迟异常高。原因Bank 交错策略和实际负载特征不匹配。大块连续数据传输需要 Bank 间交错随机访问需要 Bank 内交错配反了就会导致 Bank 冲突频繁。解决用内存带宽测试工具确认当前交错模式根据负载特征调整地址映射。常见做法是先跑一遍典型负载看 Bank 冲突计数再决定交错粒度。5.3 容量标注混淆导致选型错误现象按 256MB 选型的 DRAM 芯片实际可用容量只有 32MB。原因把 256M-bit 当成了 256MB忽略了 bit 和 Byte 的 8 倍关系。解决选型时统一换算成 Byte确认总容量。看数据手册时先找总容量标注再用行地址、列地址、Bank 数量、数据位宽交叉验证。5.4 行地址选通到列地址选通的延迟设置不当现象系统在高频下不稳定降频后正常。原因行地址选通到列地址选通的延迟设置小于 DRAM 芯片的最小要求导致行缓冲器还没准备好就发了列地址选通。解决查数据手册里的最小延迟参数在控制器配置里留够余量。高频下余量要更大因为信号完整性会吃掉一部分时序裕量。5.5 自刷新模式退出条件配置错误现象移动设备待机功耗偏高或者唤醒后 DRAM 数据异常。原因自刷新模式的进入和退出条件配置不当导致 DRAM 在应该保持自刷新的时候被意外唤醒或者在应该退出的时候没有及时退出。解决查平台文档里自刷新控制寄存器的配置说明确认进入条件和退出条件。常见做法是设置一个超时计数器总线空闲超过阈值就进自刷新有访问请求就退出。6. 把这份 PPT 用透从课堂讲义到工程参考的进阶用法这份 PPT 的 62 页里真正有工程参考价值的是架构图和参数表。我一般会做三件事第一把 SRAM 与 DRAM 对比表、DDR 代际参数表、容量换算表单独截出来整理成一张速查卡选型和面试前过一遍。第二把多 Bank 架构图和行缓冲器时序图打印出来对照实际项目里的内存控制器寄存器手册把图上的每个信号和寄存器字段对应起来。第三把刷新机制那几页和 JEDEC 标准文档对照看确认 PPT 里的参数和标准是否一致不一致的地方以标准为准。验证方法上如果你手头有开发板可以写一段简单的内存带宽测试代码分别在开启和关闭 Bank 交错的情况下跑一遍看带宽差异。再用温度传感器加热 DRAM 芯片观察刷新周期缩短前后的误码率变化。这两个实验能把 PPT 里的理论变成可测量的数据。// 简单的内存带宽测试片段连续读写大块内存计算带宽 // 编译gcc -O2 -o membw membw.c #include stdio.h #include stdlib.h #include string.h #include time.h #define SIZE (256 * 1024 * 1024) // 256MB 测试块 #define REPEAT 10 int main() { char *buf (char *)malloc(SIZE); if (!buf) { printf(malloc failed\n); return 1; } memset(buf, 0, SIZE); struct timespec start, end; clock_gettime(CLOCK_MONOTONIC, start); for (int r 0; r REPEAT; r) { // 顺序写 for (size_t i 0; i SIZE; i 64) buf[i] (char)i; // 顺序读 volatile char sum 0; for (size_t i 0; i SIZE; i 64) sum buf[i]; } clock_gettime(CLOCK_MONOTONIC, end); double elapsed (end.tv_sec - start.tv_sec) (end.tv_nsec - start.tv_nsec) / 1e9; double bw (double)SIZE * REPEAT * 2 / elapsed / (1024 * 1024 * 1024); printf(Bandwidth: %.2f GB/s\n, bw); free(buf); return 0; }这段代码用 64 字节步长遍历 256MB 内存块重复 10 次计算读写总带宽。步长设为 64 是因为大多数 CPU 的缓存行是 64 字节按缓存行步长访问能减少缓存未命中带来的干扰。volatile关键字防止编译器把读循环优化掉。跑出来的带宽值可以和理论带宽对比如果差距很大就说明 Bank 交错或者时序配置有问题。参数上可以调整SIZE和REPEATSIZE 要大于最后一级缓存否则测的是缓存带宽而不是内存带宽。从那以后我每次拿到一份硬件相关的 PPT 或教案都会先翻到参数表和架构图那几页把能直接用的数据摘出来再对照实际项目里的寄存器手册验证一遍。PPT 是别人嚼过的知识但嚼过的知识不一定适合你的项目最终还是要落到数据手册和实测数据上。希望帮到你。本文还有配套的精品资源点击获取

相关推荐

Agent Substrate 仓库 Go 代码风格指南:存在性检查、测试与 TODO 约定全解析
Agent Substrate 仓库 Go 代码风格指南:存在性检查、测试与 TODO 约定全解析

人工智能AI AgentAgent 沙箱云原生容器运行时零信任 【免费下载链接】substrate Agent Substrate: the core system 项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate 点击查看 免费下载 Agent Substrate(substrate)仓库… · 2026/9/24 4:44:00

中兴B860AV1.1-T NAND版刷Armbian并写入EMMC全攻略
中兴B860AV1.1-T NAND版刷Armbian并写入EMMC全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 4:43:54

未来30年AI职业替代真相:哪些岗位会被淘汰,普通人的避风港与赚钱赛道!
未来30年AI职业替代真相:哪些岗位会被淘汰,普通人的避风港与赚钱赛道!

深耕职场规划与行业趋势调研8年,看过太多人跟风内卷、盲目转行,也见证了无数岗位被技术迭代淘汰。结合麦肯锡、世界经济论坛、哈佛商学院近五年劳动力市场研究报告,再加上我对接过上千位职场人的真实从业反馈,今天用逆向思维把AI替代逻辑讲透:AI从不淘汰“辛苦的工作”,只… · 2026/9/24 4:43:54

TSMC 0.18um 1.5GHz小数分频PLL流片实战:Cadence+ADS协同仿真避坑指南
TSMC 0.18um 1.5GHz小数分频PLL流片实战:Cadence+ADS协同仿真避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:32:09

IPD集成产品开发流程管理:从PACE到Charter的研发项目管理实践
IPD集成产品开发流程管理:从PACE到Charter的研发项目管理实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:31:45

读懂AI设计发展演变史后,教你应对设计焦虑
读懂AI设计发展演变史后,教你应对设计焦虑

AI 行业的爆发始于2022年 ChatGPT 和 Midjouney 的发布,到现在已经快4年了,整个发展过程用突飞猛进、日新月异形容一点都不过分。 但不管它过去还是现在,发展得有多迅猛,都依旧处于行业早期的开荒和发展阶段,离真正成… · 2026/9/24 5:31:45

Triton Inference Server Trace 扩展协议解析:通过 HTTP/REST 与 gRPC 在运行时配置追踪
Triton Inference Server Trace 扩展协议解析:通过 HTTP/REST 与 gRPC 在运行时配置追踪

模型推理服务AI 应用后端 【免费下载链接】server The Triton Inference Server provides an optimized cloud and edge inferencing solution. 项目地址: https://gitcode.com/gh_mirrors/server117/server 点击查看 免费下载 导读 本文围绕 Triton Inference S… · 2026/9/24 5:31:33

Jev :Agent 又慢又贵的根因,是决策环节的冗余调用?
Jev :Agent 又慢又贵的根因,是决策环节的冗余调用?

Agent 每走一步都在做判断:这条消息紧急吗、这个工单转给哪个部门、这条命令该直接执行还是先问人。这些题的答案就是个结构化结论——是/否、A 还是 B——模型根本不需要写一段话来推理。 Agent每做一次判断,就得把整段上下文喂给大模型、等它生成一整段… · 2026/9/24 5:30:56

ENSP校园网组网实战:从VLAN规划到静态路由的完整配置指南
ENSP校园网组网实战:从VLAN规划到静态路由的完整配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:30:32

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码