news 2026/4/3 1:30:44

看懂存储器,这一篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
看懂存储器,这一篇就够了

目录

一、外存储器的核心分类与发展脉络

1. ROM族存储器:从“不可改”到“高效可擦写”的升级

2. 机械硬盘:“定位+顺序”的直接存取方式

二、SRAM与DRAM的工作原理拆解

1. SRAM(静态随机存取存储器):高速稳定的“临时仓库”

2. DRAM(动态随机存取存储器):大容量主存的核心

三、存储器的三种存取方式

四、DRAM的读写过程与存储周期

1. DRAM的读写过程:地址拆分与行缓冲的核心作用

2. DRAM的存储周期:一次完整读写的全耗时

3.地址总线与数量总线、DRAM芯片的地址线引脚数量

五、DRAM芯片的刷新过程

1.DRAM的两种基础刷新方式

(1)集中刷新

(2)分散刷新

2.缓存命中作用


在计算机系统中,存储器是承载数据与程序的核心部件,如同不同类型的“仓库”,各自承担着不同的存储需求。了解各类存储器的特性、工作原理及存取规则,是入门计算机组成原理的关键基础。本文将从常见存储器分类入手,逐步拆解核心器件的工作逻辑,帮你快速建立完整的存储器知识框架。

一、外存储器的核心分类与发展脉络

存储器的发展始终围绕“可修改性、读写速度、存储容量”三大核心目标推进,其中ROM族存储器的演进最具代表性,同时机械硬盘作为传统存储设备,其存取方式也需重点理解。

1. ROM族存储器:从“不可改”到“高效可擦写”的升级

ROM族是早期存储器的核心分支,每一代产品都在“数据修改灵活性”上实现突破,其发展顺序为:ROM → PROM → EPROM → EEPROM → FLASH EEPROM → SSD固态硬盘,各阶段核心特性如下:

  • ROM(只读存储器):数据由厂商在生产时写入,用户无法修改,数据一旦固化便永久保存,适用于无需更新的固定程序(如早期主板BIOS)。

  • PROM(可编程只读存储器):允许用户写入一次数据,写入时通过特殊设备烧断内部电路路径,数据写入后无法擦除或修改,属于“一次性编程”器件。

  • EPROM(可擦除可编程只读存储器):支持数据擦除与重写,但需借助紫外线照射完成擦除,不仅擦除时间长,还会清空整片数据,灵活性有限。

  • EEPROM(电可擦除可编程只读存储器):采用电信号实现擦除,无需额外设备,擦除速度更快,且支持按字节单独擦除,大幅提升了修改灵活性。

  • FLASH EEPROM(闪存):作为EEPROM的升级版本,是U盘、存储卡的核心器件。核心特性为按页写入、按块擦除(一个块包含多个页),读速度快,但写速度远低于读速度,这是由其物理结构决定的。

  • SSD固态硬盘:底层基于闪存构建,通过硬件优化提升了容量与读写效率。为兼容传统存储系统的访问规则,会通过软件层模拟机械硬盘的“扇区”概念,本质上仍遵循闪存“按页写、按块擦”的物理特性。

2. 机械硬盘:“定位+顺序”的直接存取方式

机械硬盘由磁头、磁盘、扇区等机械结构组成,其存取方式为直接存取,核心流程分为两步:首先通过磁头移动定位到目标数据所在的扇区(随机定位过程),然后在该扇区内按字节顺序完成数据读写,无法像内存那样直接随机访问任意地址。

二、SRAM与DRAM的工作原理拆解

计算机的高速缓存(Cache)和主存(内存)主要依赖SRAM和DRAM,两者虽同属随机存取存储器(RAM),但存储原理、特性及应用场景差异显著,是理解系统高速数据交互的关键。

1. SRAM(静态随机存取存储器):高速稳定的“临时仓库”

SRAM采用6个MOS管组成的触发器作为存储单元,通过电路的稳定状态存储数据。只要持续供电,数据就能保持稳定,无需额外刷新操作。其核心优势是非破坏性读取——读取数据时不会改变存储单元的状态,数据不会丢失,且读写速度极快。基于这些特性,SRAM常被用于CPU内部的高速缓存(L1、L2、L3 Cache),以及DRAM主存的行缓冲区,负责承载高频访问的数据。

2. DRAM(动态随机存取存储器):大容量主存的核心

DRAM采用“电容+晶体管”作为存储单元,通过电容是否带电区分“1”和“0”(带电为1,不带电为0)。但电容存在自然放电现象,会导致数据丢失,因此必须定期进行刷新操作以补充电荷。早期DRAM受限于工艺,电容漏电速度快,需每2ms完成一次全刷新,这在一定程度上影响了存储容量和响应速度。

此外,DRAM具有破坏性读取特性:读取数据时,电容的电荷会被释放,导致数据归零,因此每次读取后必须执行“数据再生”操作,重新为电容补充电荷,恢复原始数据。

三、存储器的三种存取方式

不同存储器的访问规则可归纳为三种核心存取方式,直接决定了其读写效率和适用场景:

  1. 随机存取:ROM族、SRAM、DRAM均支持此类方式。其核心特点是,访问任意地址数据的时间相同,无需按顺序定位,读写效率最高,是高速存储的核心特性。

  2. 顺序存取:典型代表为磁带。数据需按“从前到后”的顺序依次访问,无法直接定位到目标地址,访问速度随数据位置递增而降低,仅适用于低速、大容量的归档存储。

  3. 直接存取:以机械硬盘为代表。访问过程分为“随机定位”和“顺序读写”两步:先快速定位到目标数据所在的扇区,再在扇区内顺序读取数据,兼顾了一定的灵活性和容量,但速度远低于随机存取。

四、DRAM的读写过程与存储周期

DRAM作为计算机主存的核心,其读写过程包含多个关键步骤,理解这些步骤能帮我们更好地掌握主存的工作效率瓶颈。

1. DRAM的读写过程:地址拆分与行缓冲的核心作用

DRAM的读取并非直接访问单个存储单元,而是通过“行-列”地址拆分和行缓冲缓存实现,具体流程如下:

  1. CPU发送的内存地址先存入地址寄存器(例如地址“0101”);

  2. 地址被拆分为行地址列地址,分别送入行地址译码器和列地址译码器;

  3. 行地址译码器选中目标行,将整行数据读入行缓冲寄存器(行缓冲的核心作用是缓存整行数据,减少重复访问的延迟);

  4. 列地址译码器从行缓冲中精准选中目标列数据,送入数据缓冲寄存器,最终通过MDR寄存器传输给CPU。

  5. 如果要写,也是写到这个行缓冲区中,进而在刷新的时候写回DRAM芯片。

行缓冲区则兼顾了刷新、缓存命中提高读写效率的作用。不过由于早期的电容绝缘工艺差,漏电很快,所以需要不断刷新,导致缓存命中的作用不明显,几乎每次访问内存都需要重新加载到行缓冲区中。

2. DRAM的存储周期:一次完整读写的全耗时

DRAM的存储周期(TM)指完成一次完整读写操作的总耗时,包含6个关键步骤:

  1. 主存控制器对地址进行译码,定位到目标存储单元;

  2. 读取目标单元数据,此时电容电荷释放,数据暂时归零;

  3. 读出的微弱电荷经放大器放大后,传输给CPU;

  4. 修改行缓冲区中的某个或某些字节的数据;

  5. 数据再生:重新为目标存储单元的电容补充电荷,将行缓冲区中的数据写回主存;

  6. 等待放大电路、再生电路恢复稳定,为下一次读写操作做准备。

其中,前三个步骤的总耗时称为读取时间(TR),是影响DRAM访问速度的核心指标;而数据再生步骤则是为了解决破坏性读取的问题,是DRAM工作过程中不可或缺的环节,同时他也是一个写回操作,所以一读一写构成了完整的读写周期。其中第4步的时间是寄存器级别的,相较于其他步骤时间非常短暂,通常可以忽略他的时间占比,所以也有人说一次完整的读写操作包含5个关键步骤。

3.地址总线与数量总线、DRAM芯片的地址线引脚数量

由于前面说的,DRAM芯片在确定某个地址时,是分行、列地址两步传输,能大幅减少DRAM的引脚数量(仅需CPU地址引脚的一半),是平衡成本与性能的关键设计。

五、DRAM芯片的刷新过程

DRAM(动态随机存取存储器)的核心存储单元是“电容+晶体管”,而电容存在自然放电特性,若不及时补充电荷,存储的数据会随时间丢失。因此,定期刷新是DRAM维持数据稳定的关键操作,以下是其刷新过程的完整解析:

1.DRAM的两种基础刷新方式

在DRAM发展历程中,先后出现了“集中刷新”和“分散刷新”两种基础方式,两者的核心差异在于刷新任务的执行时序安排,直接影响访存效率和数据稳定性。

(1)集中刷新

集中刷新是早期DRAM(如早期SDRAM)采用的核心方式,其核心逻辑是“先集中完成所有刷新任务,再允许CPU访问”,具体特点如下:

  • 执行时序:在固定的刷新周期(早期为2ms)内,前大部分时间供CPU正常访问DRAM,仅在周期末尾预留一段“刷新窗口”,暂停所有CPU访问,一次性完成一个Bank内所有行的刷新操作。

  • 操作流程:暂停CPU访存→依次选中Bank内所有行→逐行将数据读入行缓冲→补充电荷完成刷新→恢复CPU访存。

  • 核心背景:早期DRAM工艺落后,电容漏电速度快,保持时间仅2ms,必须在短时间内快速完成全行列刷新,否则数据易丢失,集中刷新能最大程度保证数据完整性。

(2)分散刷新

分散刷新是为解决集中刷新的访存卡顿问题(现代内存容量较大,如果集中刷新耗时会较长,在CPU看来就是他有一段时间无法访问内存而形式卡顿了)发展而来的方式,核心逻辑是“化整为零”,将刷新任务均匀分摊到整个刷新周期内执行,具体特点如下:

  • 执行时序:将整个刷新周期(如早期2ms、后期64ms)按总行数拆分,每隔固定时间触发一次单行刷新,而非集中在某个窗口。例如一个Bank含1024行、刷新周期64ms,则每隔62.5μs仅刷新一行。

  • 操作流程:按拆分后的时序触发→每次仅选中一个Bank内的一行→读入行缓冲补充电荷完成刷新→刷新过程中不中断CPU对其他行/其他Bank的访问。

  • 核心背景:随着工艺提升,电容漏电速度减慢,保持时间延长,为拆分刷新任务提供了时间窗口,可避免集中刷新的长时间访存阻塞。

DRAM通过电容是否带电区分二进制“1”和“0”(带电为1,不带电为0)。但电容的绝缘层并非绝对绝缘,电荷会通过绝缘层缓慢泄漏,导致电压降低。当电压低于阈值时,数据会无法识别,因此需要定期为电容补充电荷,这个补充过程就是“刷新”。

2.缓存命中作用

无论是集中刷新还是分散刷新,都有一个时间段可以让CPU访存,而在该访存窗口时间内,CPU的多次访存(同一个变量或者附近变量)都直接从行缓冲区中读取,不需要再从DRAM主存中拷贝,且该行缓冲区是由SRAM做成的,不用考虑破坏性读取问题,还能提高访问速度。现代计算机通常会将一个DRAM芯片做成8个甚至更多个BANK(相当于把大DRAM拆分成小DRAM),每一个BANK都有独自的行缓冲区。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 10:15:09

Multisim参数扫描分析:深度剖析其配置技巧

Multisim参数扫描分析实战:从入门到精通的深度指南你有没有过这样的经历?为了调出一个理想的滤波器响应,手动改了十几遍电容值,每次都要重新运行仿真、切换窗口对比曲线,最后不仅眼睛累,还漏掉了关键的转折…

作者头像 李华
网站建设 2026/3/28 7:34:08

掌握 Xcode,实现移动开发的快速迭代

掌握 Xcode,实现移动开发的快速迭代 关键词:Xcode、移动开发、快速迭代、CI/CD、模块化开发、单元测试、性能优化 摘要:本文系统解析如何通过 Xcode 实现 iOS 移动开发的快速迭代。从 Xcode 核心架构与关键功能出发,详细阐述模块化开发、自动化构建、持续集成、测试驱动开发…

作者头像 李华
网站建设 2026/3/28 1:11:32

Keil生成Bin文件与底层驱动兼容性问题深度剖析

Keil生成Bin文件与底层驱动兼容性问题深度剖析从一个“神秘”的ADC故障说起上周三晚上十点,我收到产线同事的紧急消息:“新烧录的固件上电后ADC一直返回0,但用J-Link调试时一切正常。”这听起来像是典型的“薛定谔式Bug”——代码没错、逻辑通…

作者头像 李华
网站建设 2026/3/27 6:25:17

Keil4下载及安装系统学习:支持多芯片平台搭建

Keil4搭建多芯片开发平台:从安装到实战的完整指南 你有没有遇到过这样的场景?手头要同时维护一个老旧的C51项目,又要开发新的STM32产品线,结果发现IDE换来换去——Keil C51、IAR、Keil5来回切换,工程文件格式不兼容&a…

作者头像 李华
网站建设 2026/3/31 3:26:57

基于Java+SpringBoot+SSM乡村支教管理系统(源码+LW+调试文档+讲解等)/乡村教育支援系统/支教管理平台/乡村支教项目系统/农村支教管理系统/支教信息管理系统/乡村教师支援系统

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华
网站建设 2026/3/31 23:25:35

美发门店管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着美发行业的快速发展,门店管理逐渐向数字化、智能化转型。传统的手工记录和简单的电子表格已无法满足现代美发门店的需求,尤其在会员管理、预约服务、库存统计等方面存在效率低下、数据易丢失等问题。美发门店管理系统能够帮助门店实现业务流程的…

作者头像 李华