目录
一、外存储器的核心分类与发展脉络
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具有破坏性读取特性:读取数据时,电容的电荷会被释放,导致数据归零,因此每次读取后必须执行“数据再生”操作,重新为电容补充电荷,恢复原始数据。
三、存储器的三种存取方式
不同存储器的访问规则可归纳为三种核心存取方式,直接决定了其读写效率和适用场景:
随机存取:ROM族、SRAM、DRAM均支持此类方式。其核心特点是,访问任意地址数据的时间相同,无需按顺序定位,读写效率最高,是高速存储的核心特性。
顺序存取:典型代表为磁带。数据需按“从前到后”的顺序依次访问,无法直接定位到目标地址,访问速度随数据位置递增而降低,仅适用于低速、大容量的归档存储。
直接存取:以机械硬盘为代表。访问过程分为“随机定位”和“顺序读写”两步:先快速定位到目标数据所在的扇区,再在扇区内顺序读取数据,兼顾了一定的灵活性和容量,但速度远低于随机存取。
四、DRAM的读写过程与存储周期
DRAM作为计算机主存的核心,其读写过程包含多个关键步骤,理解这些步骤能帮我们更好地掌握主存的工作效率瓶颈。
1. DRAM的读写过程:地址拆分与行缓冲的核心作用
DRAM的读取并非直接访问单个存储单元,而是通过“行-列”地址拆分和行缓冲缓存实现,具体流程如下:
CPU发送的内存地址先存入地址寄存器(例如地址“0101”);
地址被拆分为行地址和列地址,分别送入行地址译码器和列地址译码器;
行地址译码器选中目标行,将整行数据读入行缓冲寄存器(行缓冲的核心作用是缓存整行数据,减少重复访问的延迟);
列地址译码器从行缓冲中精准选中目标列数据,送入数据缓冲寄存器,最终通过MDR寄存器传输给CPU。
如果要写,也是写到这个行缓冲区中,进而在刷新的时候写回DRAM芯片。
行缓冲区则兼顾了刷新、缓存命中提高读写效率的作用。不过由于早期的电容绝缘工艺差,漏电很快,所以需要不断刷新,导致缓存命中的作用不明显,几乎每次访问内存都需要重新加载到行缓冲区中。
2. DRAM的存储周期:一次完整读写的全耗时
DRAM的存储周期(TM)指完成一次完整读写操作的总耗时,包含6个关键步骤:
主存控制器对地址进行译码,定位到目标存储单元;
读取目标单元数据,此时电容电荷释放,数据暂时归零;
读出的微弱电荷经放大器放大后,传输给CPU;
修改行缓冲区中的某个或某些字节的数据;
数据再生:重新为目标存储单元的电容补充电荷,将行缓冲区中的数据写回主存;
等待放大电路、再生电路恢复稳定,为下一次读写操作做准备。
其中,前三个步骤的总耗时称为读取时间(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都有独自的行缓冲区。