运维123 - DRAM
type: channel
link: https://www.sddts.cn/index.php/category/DRAM/
description: DRAM
items: 数据存储底层原理详解

数据存储底层原理详解
type: item
date: 2026-02-10T21:56:03+00:00
description: 数据存储底层原理详解一、概述1. 引言数据存储本质上是试图以日益复杂的方式捕获电子。计算机依赖内存，CPU 和 GPU 只是数据处理机器，最糟糕的情况就是浪费一个时钟周期等待数据。2. 存储层次结构由于快速存储既昂贵又耗电，我们将存储组织成层次结构：距离处理单元越近，存储速度越快，但容量越小距离处理单元越远，存储容量越大，但速度越慢graph LR CPU[CPU] -->|1ns| L1[L1 缓存 64KB] L1 -->|3ns| L2[L2 缓存] L2 -->|10ns| L3[L3 缓存] L3 -->|100ns| RAM[DRAM 内存] RAM -->|100us| SSD[固态硬盘] SSD -->|10ms| HDD[机械硬盘]二、静态随机存取存储器1. 基本原理SRAM 是最快的内存，因为它最简单。它使用晶体管构建逻辑门来存储单个比特。A. 晶体管晶体管本质上是一个开关，有三个端子：源极漏极栅极当在栅极和源极之间施加小电压时，会在源极和漏极之间诱导大电流流动。B. 反相器从晶体管可以构建逻辑门，存储器需要的是反相器或非门，它反转施加到其上的信号：有电压输入时返回 0V无电压输入时返回电压2. 存储单元A. 交叉耦合反相器存储单元需要两个反相器 A 和 B：将反相器 A 的输出连接到反相器 B 的输入将反相器 B 的输出连接到反相器 A 的输入这称为交叉耦合，创建了一个稳定的反馈回路。只要施加电源，反相器 A 就会持续输出 1。graph LR INV1[反相器 A] -->|1| INV2[反相器 B] INV2 -->|0| INV1 style INV1 fill:#e1f5fe style INV2 fill:#e1f5feB. 6T 单元结构SRAM 存储单元通过两个连接到字线的晶体管与内存其余部分隔离：字线晶体管控制对位线的访问位线在单元两侧各有一条读取时：打开访问晶体管电流沿位线向下流动供 CPU 读取写入时：打开访问晶体管驱动两条位线的电压（一侧高压，一侧低压）覆盖反馈回路中的信号并翻转反相器3. SRAM 阵列A. 网格排列这些单元排列成阵列：列通过垂直位线连接行通过水平字线连接B. 读取过程根据地址计算字线位置升高该字线的电压降低其他字线的电压连接到该字线的每个单元将信号发送到位线列多路复用器过滤出 CPU 查找的列graph TB WL[字线] --> Cell1[单元 1] WL --> Cell2[单元 2] WL --> Cell3[单元 3] Cell1 --> BL1[位线 1] Cell2 --> BL2[位线 2] Cell3 --> BL3[位线 3] BL1 --> MUX[列多路复用器] BL2 --> MUX BL3 --> MUX MUX --> CPU[CPU]C. 性能特点SRAM 非常快，最大的速度瓶颈来自位线和字线的长度这就是 L1 缓存必须保持很小的原因更高级别的缓存可以增加容量三、动态随机存取存储器1. 为什么需要 DRAM如果基于晶体管的内存如 SRAM 这么好，为什么不把它用于所有内存？如果这样做：计算机成本会高出十倍体积会大一倍功耗相当于商用烤箱基于晶体管的内存速度很快，但空间效率非常低且制造成本高昂。2. 基本原理DRAM 需要一种在 SRAM 速度和长期存储容量之间折衷的存储方案。A. 1T1C 单元每个 DRAM 内存单元由一个连接到晶体管的单个电容器组成：电容器存储静电荷晶体管充当开关，允许充电和放电电容器graph LR WL[字线] --> Transistor[晶体管] Transistor --> Capacitor[电容器] BL[位线] --> TransistorB. 动态刷新由于尺度极小，即使晶体管关闭，电荷也会缓慢从电容器泄漏。因此需要不断补充电容器中的电荷，称为动态 RAM。刷新频率：约每 64 毫秒一次3. DRAM 阵列结构A. 网格排列单个 1T1C 单元排列成行字线跨越整行连接所有单元位线沿每列向下连接每个单元B. 地址映射32 位地址包含三个部分：前 5 位：指定内存所在的存储体中间 16 位：指示要激活的行后 10 位：指定感兴趣的列graph TB Address[32 位地址] --> Bank[5 位存储体] Address --> Row[16 位行] Address --> Column[10 位列] Bank --> BankSelect[选择存储体] Row --> WordLine[激活字线] Column --> ColMux[列多路复用器] BankSelect --> Output[输出数据] WordLine --> Output ColMux --> Output4. DRAM…