显示页面讨论过去修订反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 第三章 存储器层次结构 ====== ===== 3.1 存储器概述 ===== ==== 3.1.1 存储器的分类 ==== 存储器是计算机系统中用于存储程序和数据的重要部件。根据不同的分类标准,存储器可以分为多种类型: **按存储介质分类**: 1. **半导体存储器**:使用半导体器件存储信息 - 双极型(TTL):速度快、功耗大、集成度低 - MOS型:集成度高、功耗低、成本低,目前广泛使用 2. **磁表面存储器**:使用磁性材料存储信息 - 磁盘:硬盘、软盘 - 磁带:用于数据备份 3. **光存储器**:使用光学原理存储信息 - CD、DVD、蓝光光盘等 4. **新型存储器**: - 闪存(Flash):U盘、SSD - 铁电存储器(FeRAM) - 磁阻存储器(MRAM) - 相变存储器(PCM) **按存取方式分类**: 1. **随机存取存储器(RAM)**:可以按地址随机访问任意单元,存取时间与位置无关 - 静态RAM(SRAM):速度快、不需要刷新、成本高 - 动态RAM(DRAM):需要定期刷新、集成度高、成本低 2. **只读存储器(ROM)**:内容只能读出不能写入(或写入困难) - 掩膜ROM:出厂时写入,不可更改 - PROM:可编程一次 - EPROM:可擦写(紫外线) - EEPROM:电可擦写 - Flash Memory:闪存,块擦除 3. **顺序存取存储器**:必须按顺序访问,如磁带 4. **直接存取存储器**:先直接定位到区域,再顺序访问,如磁盘 **按在计算机中的作用分类**: 1. **主存储器**:直接与CPU交换信息,速度快、容量有限 2. **辅助存储器**:用于长期存储,容量大、速度慢 3. **高速缓冲存储器(Cache)**:介于CPU和主存之间,提高访问速度 4. **控制存储器**:存放微程序 ==== 3.1.2 存储器的性能指标 ==== 评价存储器性能的主要指标包括: **存储容量**:存储器能够存储的信息总量,通常用字节(B)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)表示。 **存取时间(访问时间)**:从启动一次存储器操作到完成该操作所经历的时间。对于随机存取存储器,存取时间约等于存储周期。 **存储周期**:连续两次独立的存储器操作所需的最小时间间隔。通常存储周期略大于存取时间。 **存储器带宽**:单位时间内存储器能传输的信息量,通常用字节/秒或位/秒表示。 **可靠性**:用平均故障间隔时间(MTBF)来衡量,MTBF越长,可靠性越高。 **功耗**:存储器工作时消耗的电能,对于便携式设备尤为重要。 **价格**:单位容量的价格,是评价存储器经济性的指标。 ==== 3.1.3 存储系统的层次结构 ==== 为了解决存储器大容量、高速度、低成本的矛盾,现代计算机采用层次化的存储系统结构。 **存储层次结构的设计思想**: 根据程序的局部性原理,将最近常用的小部分数据和指令放在高速小容量的存储器中,而将不常用的大部分信息放在低速大容量的存储器中,从而在整体上获得接近高速存储器的速度和大容量存储器的成本。 **程序的局部性原理**: 1. **时间局部性**:最近被访问的信息很可能再次被访问(如循环中的指令) 2. **空间局部性**:与最近被访问信息相邻的信息很可能被访问(如顺序执行的指令、数组元素) **存储系统的层次结构**: **图3-1:存储系统层次结构示意图** {{https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Cache%2C_Memory_hierarchy.svg/800px-Cache%2C_Memory_hierarchy.svg.png?direct|存储器层次结构|500}} | 层次 | 存储器 | 特点 | |------|--------|------| | 第0层 | 寄存器 | 速度最快、容量最小、成本最高 | | 第1层 | Cache | 速度快、容量较小、成本高 | | 第2层 | 主存 | 速度较快、容量中等 | | 第3层 | 外存 | 速度慢、容量大、成本低 | **各层之间的关系**: - 第n层是第n+1层的缓存 - 数据只在相邻两层之间复制 - 上层未命中时才访问下层 ===== 3.2 半导体随机存取存储器 ===== ==== 3.2.1 SRAM存储器 ==== 静态随机存取存储器(SRAM)使用双稳态触发器存储信息,不需要刷新,速度快但集成度低。 **SRAM的基本单元**: SRAM单元由6个MOS管组成(6T结构): - T1、T2:工作管,构成双稳态触发器 - T3、T4:负载管 - T5、T6:门控管,控制读写 两个稳定状态分别表示"0"和"1"。只要电源不断,信息就能保持。 **SRAM的读写操作**: 读操作: 1. 选中存储单元(字线加高电平) 2. 位线预充电到高电平 3. 单元状态使一条位线放电,另一条保持 4. 灵敏放大器检测位线电压差,输出数据 写操作: 1. 选中存储单元 2. 位线加写入数据(一位为高,一位为低) 3. 字线加高电平,强制触发器翻转或保持 **SRAM的特点**: - 速度快(存取时间可达纳秒级) - 不需要刷新,控制简单 - 功耗相对较高(静态功耗) - 集成度低(6个管存储1位) - 价格高 - 常用作Cache ==== 3.2.2 DRAM存储器 ==== 动态随机存取存储器(DRAM)使用电容存储电荷来表示信息,由于漏电需要定期刷新。 **DRAM的基本单元**: 单管DRAM单元只用一个晶体管和一个电容: - 晶体管作为开关 - 电容存储电荷(有电荷为"1",无电荷为"0") **DRAM的读写操作**: 读操作: 1. 选中单元(字线加高电平,晶体管导通) 2. 电容电荷转移到位线上 3. 灵敏放大器检测微弱电压变化 4. 读出数据(破坏性读出,需要回写) 写操作: 1. 选中单元 2. 位线加写入电平 3. 对电容充电(写1)或放电(写0) **DRAM的刷新**: 由于电容漏电,存储的信息会逐渐丢失,需要定期刷新(通常每2-64ms刷新一次)。 刷新方式: 1. **集中刷新**:在规定刷新周期内集中进行全部刷新,存在死时间 2. **分散刷新**:将刷新分散到每个存储周期,无死时间但存取周期延长 3. **异步刷新**:结合集中刷新和分散刷新的优点,减少死时间 **DRAM的特点**: - 需要定期刷新,控制复杂 - 速度较SRAM慢 - 集成度高(1个管+1个电容存储1位) - 功耗较低 - 价格低 - 常用作主存 **DRAM的改进类型**: 1. **FPM DRAM(快速页模式)**:同一行内访问多个数据时只需提供一次行地址 2. **EDO DRAM(扩展数据输出)**:允许在当前数据输出时开始下一次存取 3. **SDRAM(同步DRAM)**:与系统时钟同步,支持突发传输 4. **DDR SDRAM**:在时钟上升沿和下降沿都传输数据,带宽翻倍 - DDR2、DDR3、DDR4、DDR5:不断提高数据传输率 ==== 3.2.3 只读存储器(ROM) ==== 只读存储器用于存储固定不变的程序和数据,断电后信息不丢失。 **掩膜ROM**: 由制造商根据用户提供的掩膜版在生产时写入内容,出厂后不可更改。适合大批量生产。 **PROM(可编程ROM)**: 用户可以用专用编程器一次性写入内容,写入后不可更改。 **EPROM(可擦除可编程ROM)**: 可以用紫外线照射擦除全部内容,然后重新编程。擦除次数有限(约100次)。 **EEPROM(电可擦除可编程ROM)**: 可以用电信号擦除和重写,可以按字节擦写,擦写次数更多(约10万次)。 **Flash Memory(闪存)**: 属于EEPROM的改进型,采用块擦除方式,擦除速度更快,容量更大。分为: - NOR Flash:可以随机读取,适合存储程序代码 - NAND Flash:容量大、成本低,适合存储数据,如SSD、U盘 ===== 3.3 主存储器与CPU的连接 ===== ==== 3.3.1 存储器容量的扩展 ==== 当单个存储芯片的容量不能满足要求时,需要进行容量扩展。 **位扩展(字长扩展)**: 当存储芯片的数据位数小于系统数据总线宽度时,需要进行位扩展。 方法:将多个芯片的地址线、片选线、读写控制线并联,数据线分别引出。 例如:用8片8K×1位的芯片组成8K×8位的存储器 - 每片提供1位数据 - 8片并联提供8位数据 - 地址线、片选线、读写线并联 **字扩展(容量扩展)**: 当存储芯片的存储单元数不足时,需要进行字扩展。 方法:将多个芯片的数据线、地址线、读写控制线并联,用译码器控制各芯片的片选线。 例如:用4片16K×8位的芯片组成64K×8位的存储器 - 每片提供16K个单元 - 需要2位地址进行片选(2-4译码器) - 低位地址连接各芯片地址线 - 高位地址经译码后连接各芯片片选线 **字位同时扩展**: 同时进行字扩展和位扩展,以满足系统对存储容量和数据宽度的要求。 ==== 3.3.2 存储器与CPU的连接 ==== **连接信号**: 1. **地址线**:CPU发出的地址信号,选择存储单元 2. **数据线**:双向传输数据 3. **控制线**: - MREQ(存储器请求):指示当前访问存储器 - R/W(读写控制):指示读操作或写操作 - 其他控制信号 **地址译码**: CPU发出的地址需要经过译码产生片选信号。译码方式有: 1. **线选法**:用高位地址线直接作为片选信号,简单但地址空间不连续 2. **全译码法**:所有高位地址都参与译码,地址连续,无重叠 3. **部分译码法**:部分高位地址参与译码,存在地址重叠 **存储器接口设计示例**: 假设CPU有16根地址线(A15-A0),8根数据线(D7-D0),需要用2K×8的ROM和4K×8的RAM组成存储系统。 设计步骤: 1. 确定存储空间分配(如ROM:0000H-07FFH,RAM:0800H-17FFH) 2. 计算所需芯片数量 3. 设计地址译码电路 4. 连接数据线和控制线 ==== 3.3.3 双端口存储器 ==== 双端口存储器有两个独立的端口,每个端口都有独立的地址线、数据线和控制线,允许两个处理器或控制器同时访问存储器。 **特点**: - 提高存储器访问效率 - 适合多处理器系统 - 需要处理访问冲突(同时访问同一单元) **冲突处理**: - 设置忙标志(BUSY) - 仲裁逻辑决定优先权 - 一方等待或中断 ==== 3.3.4 多体交叉存储器 ==== 多体交叉存储器由多个独立的存储体组成,每个存储体可以独立进行读写操作。 **高位交叉编址**: 连续地址位于同一存储体内,适合扩大容量,但不能提高访问速度。 **低位交叉编址**: 连续地址分布在不同存储体内,可以实现并行访问,提高访问速度。 例如:4体低位交叉存储器 - 地址低2位选择存储体 - 地址高位选择体内单元 - 连续4个地址分别位于4个体中 **优点**: - 提高存储器带宽 - 支持流水访问 - 适合顺序访问模式 ===== 3.4 存储器的工作原理与时序 ===== ==== 3.4.1 SRAM的读写时序 ==== **读周期时序**: 1. 地址有效:CPU发出地址信号 2. 片选有效:使能存储芯片 3. 读命令有效:指示读操作 4. 数据有效:存储器输出数据 5. 数据采样:CPU读取数据 6. 撤销信号:结束读周期 时序参数: - 读周期时间(tRC):连续两次读操作的最小间隔 - 存取时间(tA):地址有效到数据有效的时间 - 片选到数据有效时间(tCO) - 读命令到数据有效时间(tOE) **写周期时序**: 1. 地址有效 2. 数据有效:CPU提供写入数据 3. 片选有效 4. 写命令有效:指示写操作 5. 数据写入:存储器锁存数据 6. 撤销信号:结束写周期 时序参数: - 写周期时间(tWC):连续两次写操作的最小间隔 - 地址建立时间(tAS):地址稳定到写命令有效的时间 - 数据建立时间(tDS):数据稳定到写命令撤销的时间 - 数据保持时间(tDH):写命令撤销后数据保持的时间 ==== 3.4.2 DRAM的刷新时序 ==== **刷新周期**: DRAM刷新按行进行,每次刷新一行,刷新地址由刷新计数器提供。 刷新时序: 1. 停止正常读写操作 2. 提供刷新地址 3. 发出刷新命令 4. 存储器内部对指定行进行刷新 5. 恢复或继续下一次刷新 **刷新对性能的影响**: - 集中刷新:存在死时间,影响实时性 - 分散刷新:无死时间但存取周期延长 - 异步刷新:平衡性能,最常用 ===== 3.5 外部存储器 ===== ==== 3.5.1 磁盘存储器 ==== 磁盘存储器是目前使用最广泛的外部存储器,包括硬盘和软盘(已基本淘汰)。 **磁记录原理**: 利用磁性材料的磁滞回线特性,通过磁头在磁介质表面产生磁场,改变磁介质的磁化方向来记录信息。 **磁盘的结构**: 1. **盘片**:圆形磁性介质,上下两面都可记录 2. **磁道**:盘片上的同心圆轨道 3. **扇区**:磁道上的等分弧段,最小存储单位 4. **柱面**:各盘片上半径相同的磁道组成的圆柱面 **硬盘的技术指标**: 1. **容量**:磁盘能存储的数据总量 2. **记录密度**: - 道密度:单位长度内的磁道数 - 位密度:单位长度内存储的位数 3. **平均存取时间**: 平均存取时间 = 寻道时间 + 旋转延迟 + 传输时间 4. **数据传输率**:单位时间内传输的数据量 **磁盘阵列(RAID)**: RAID(独立磁盘冗余阵列)将多个物理磁盘组织成一个逻辑磁盘,提高性能和可靠性。 - RAID 0:条带化,提高性能,无冗余 - RAID 1:镜像,提高可靠性 - RAID 3:位交叉奇偶校验 - RAID 5:块交叉分布式奇偶校验,常用 ==== 3.5.2 固态硬盘(SSD) ==== 固态硬盘使用闪存作为存储介质,没有机械部件。 **优点**: - 读写速度快(尤其是随机访问) - 无噪音 - 抗震性好 - 功耗低 - 体积小 **缺点**: - 价格较高 - 擦写次数有限 - 存在写入放大问题 - 长时间不通电可能丢数据 **闪存管理**: - wear leveling(磨损均衡):均匀分布擦写操作 - 垃圾回收:整理无效页,回收空间 - 坏块管理:标记和管理坏块 - 纠错码(ECC):检测和纠正错误 ===== 3.6 例题分析 ===== **例题1**:某计算机字长为16位,存储器按字编址,地址线为16位。现用若干8K×8位的SRAM芯片构成64K×16位的存储器,需要多少片?如何连接? 解: 存储器总容量:64K×16位 = 1024K位 每片容量:8K×8位 = 64K位 所需片数:1024K / 64K = 16片 连接方式: - 先进行位扩展:2片8K×8位组成8K×16位(共需8组) - 再进行字扩展:8组组成64K×16位 - 使用3-8译码器,用地址线A13-A15译码产生8个片选信号 - A0-A12连接到所有芯片的地址线 **例题2**:某DRAM芯片存储容量为1M×4位,问: (1)芯片地址线有多少条? (2)若刷新周期为8ms,采用异步刷新,刷新信号的周期是多少? 解: (1)1M = 2^20,需要20条地址线 (2)1M×4位DRAM按行刷新,共512行(假设行列对称) 刷新间隔:8ms / 512 = 15.625μs **例题3**:某磁盘组有6片盘片,每片2个记录面,最上最下不用。存储区域内径22cm,外径33cm,道密度40道/cm,内层位密度400位/cm。问: (1)共有多少柱面? (2)盘组总容量是多少? 解: (1)有效存储半径 = (33-22)/2 = 5.5cm 柱面数 = 道密度 × 有效半径 = 40 × 5.5 = 220道 (2)每道容量 = 2π × 内径/2 × 位密度 = 2π × 11 × 400 = 8800π位 = 1100π字节 总容量 = 10面 × 220道 × 1100π字节 ≈ 7.6MB ===== 3.7 本章重点总结 ===== **核心概念:** - 存储器的层次结构和局部性原理 - SRAM和DRAM的工作原理和区别 - 存储器容量扩展方法 - 磁盘和SSD的存储原理 **关键知识点:** 1. 存储器分类:按介质、存取方式、作用分类 2. 性能指标:容量、速度、带宽、可靠性 3. SRAM:6管结构、速度快、不需要刷新、用作Cache 4. DRAM:单管结构、需要刷新、集成度高、用作主存 5. 刷新方式:集中刷新、分散刷新、异步刷新 6. 扩展方法:位扩展、字扩展、字位同时扩展 7. 多体交叉:高位交叉和低位交叉 **重要公式:** - 存储容量计算 - 平均存取时间 = 寻道时间 + 旋转延迟 + 传输时间 **学习要点:** - 理解存储层次结构的设计思想 - 掌握SRAM和DRAM的工作原理差异 - 熟练掌握存储器扩展的设计方法 - 了解磁盘和SSD的特点 **思考题:** 1. 为什么DRAM需要刷新而SRAM不需要? 2. 低位交叉存储器为什么能提高访问速度? 3. 存储器刷新对系统性能有什么影响? 4. 固态硬盘相比传统硬盘有哪些优缺点? 登录 Detach Close 该主题尚不存在 您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。 计算机组成与体系结构/存储器层次结构.txt 最后更改: 2026/03/01 16:20由 张叶安 登录