3.1 存储器的构成 3.2 存储系统的构成 3,3 Cache 3,4 虚拟存储器 第三章 存储系统 3.1 存储器的构成 3.2 存储系统的构成 3,3 Cache 3,4 虚拟存储器
存储器芯片分类 RAM ROM SRAM DRAM Read only memory Static random access memory Dynamic random access memory ROM Read only memory
3.1 存储器芯片 1. 静态存储器
静态存储器芯片
动态存储单元
动态存储器芯片
只读存储器
单元阵列
熔丝式ROM(PROM)
可擦写ROM——EPROM
MOS晶体管与EPROM单元的两种工作状态
电可擦写ROM——EEPROM及Flash存储器
Flash存储器 1 transister per cell NOR type NAND type Word read Word program(10us) Block erase (0.5s) NAND type Page read (10us) Page program (200us) Block erase (2ms)
NOR and NAND type Flash
3.2 存储器的构成 3.2.1 存储器的基本组织
位扩展 芯片的地址线数:18 存储器的结构256Kx32 容量:1MB CPU的有效地址位数:20位字节地址 每个芯片的地址范围相同 3 2 1 芯片的地址线数:18 存储器的结构256Kx32 容量:1MB CPU的有效地址位数:20位字节地址 每个芯片的地址范围相同 1 7 6 5 4 2 11 10 9 8 256kx1 256kx1 …… 256kx1
位扩展
字扩展
字扩展 256Kx8 存储器芯片引脚数: 18 存储器结构:2Mx8 CPU有效地址线数:21 每个芯片的地址范围不同 256Kx8 …... 256Kx8
字扩展
问题 字扩展中,求每个芯片的地址范围 字扩展中,求整个存储器的地址范围 如果用超出存储器地址范围的地址访存,会出现什么情况?
字位扩展
字位扩展
解:(1) 存储器的容量为220B=1MB (2) 需要的芯片数为8×4=32片 (3) 4倍字扩展 需要log24=2条地址线作为芯片选择 例3-1 设有一个具有20位地址和8位字长的存储器,问 (1) 该存储器能存储多少字节的信息? (2) 如果存储器由256K×1位的RAM芯片组成,需要多少片芯片? (3) 需要多少位地址作为芯片选择? 解:(1) 存储器的容量为220B=1MB (2) 需要的芯片数为8×4=32片 (3) 4倍字扩展 需要log24=2条地址线作为芯片选择 地址线中的18位用于作为各芯片的地址信号
(2) 需要21条地址线,高3位用于芯片选择,低18位作为每个存储器芯片的地址输入。 (3) 该存储器与CPU连接的结构图如下: 例3-2 设有若干片256K×8位的SRAM芯片,采用字扩展方法构成2048KB的存储器,问 (1) 需要多少片RAM芯片? (2) 该存储器需要多少地址位? (3) 画出该存储器与CPU连接的结构图,设CPU的接口信号有地址信号、数据信号、控制信号MREQ#和R/W#。 (4) 给出地址译码器的逻辑表达式。 。 解:(1) 需要2048K/256K = 8片SRAM芯片; (2) 需要21条地址线,高3位用于芯片选择,低18位作为每个存储器芯片的地址输入。 (3) 该存储器与CPU连接的结构图如下:
例3-2 设有若干片256K×8位的SRAM芯片,采用字扩展方法构成2048KB的存储器,问. (1) 需要多少片RAM芯片? 例3-2 设有若干片256K×8位的SRAM芯片,采用字扩展方法构成2048KB的存储器,问 (1) 需要多少片RAM芯片? (2) 该存储器需要多少地址位? (3) 画出该存储器与CPU连接的结构图,设CPU的接口信号有地址信号、数据信号、控制信号MREQ#和R/W#。 (4) 给出地址译码器的逻辑表达式。
例3-3 某计算机的主存地址空间中,从地址000016到3FFF16为ROM存储区域,从400016到5FFF16为保留地址区域,暂时不用,从600016到FFFF16为RAM地址区域。RAM的控制信号为CS#和WE#,CPU的地址线为A15~A0,数据线为8位的线路D7~D0,控制信号有读写控制R/W#和访存请求MREQ#,要求: (1) 画出地址译码方案 (2) 如果ROM和RAM存储器芯片都采用8K×1的芯片,试画出存储器与CPU的连接图。 (3) 如果ROM存储器芯片采用8K×8的芯片,RAM存储器芯片采用4K×8的芯片,试画出存储器与CPU的连接图。 (4) 如果ROM存储器芯片采用16K×8的芯片,RAM存储器芯片采用8K×8的芯片,试画出存储器与CPU的连接图。
(1) 画出地址译码方案 解:(1)
(2) 如果ROM和RAM存储器芯片都采用8K×1的芯片,试画出存储器与CPU的连接图。 解: (2) 8KB的存储区域可以用8片存储器芯片构成一组实现。8K×1的存储器芯片的地址线需要13条,即A12~0。
(3) 如果ROM存储器芯片采用8K×8的芯片,RAM存储器芯片采用4K×8的芯片,试画出存储器与CPU的连接图。 解:(3)
(4) 如果ROM存储器芯片采用16K×8的芯片,RAM存储器芯片采用8K×8的芯片,试画出存储器与CPU的连接图。 解:(4)
例3-4 某计算机系统的主存采用32位字节地址空间和64位数据线访问存储器,若使用64M位的DRAM芯片组成该机所允许的最大主存空间,并采用内存条的形式,问: (1) 若每个内存条为64M×32位,共需多少内存条? (2) 每个内存条内共有多少片DRAM芯片? (3) 主存共需多少DRAM芯片? (4) CPU如何有选择地访问各内存条? 解:(1) 主存最大空间为232=4GB,每个内存条的容量为64×4B = 256MB,主存需要的内存条数量为4GB/256MB=16条。 (2) 每个芯片的容量为8MB,内存条需要的芯片数量为256MB/8MB = 32片。 (3) 整个主存需要的内存芯片数量是16×32=512片。 (4) 由于CPU字长为64位,内存条需要进行位扩展,即2个32位的内存条构成一组64位的存储单元组,16个内存条构成8组,为选择这8组内存条,CPU地址中需要用最高3位地址作为产生选择信号的地址码。
全译码与部分译码 全译码 部分译码 所有CPU高位地址线均参与对存储单元的译码寻址 低位地址线对芯片内各存储单元的译码寻址 全译码与部分译码 M 全译码 所有CPU高位地址线均参与对存储单元的译码寻址 低位地址线对芯片内各存储单元的译码寻址 片内译码 高位地址线对存储芯片的译码寻址 片选译码 每个存储单元的地址都是唯一的 不存在地址重复 部分译码 部分高位地址线参与对存储单元的译码寻址 存在地址段内容重叠 每个单元有多个地址 nM
全译码的实现 与门 地址比较器 比较器 译码器 > = < A31 CE0 A30 CE1 MREQ A29 CE2 A28 > = < A31 CE0 A30 CE1 MREQ A29 CE2 比较器 译码器 A28 CE3 A27 CE4 A26 CE5 A25 CE6 A20 A24 CE7 A19 A23 CE8 A18 A22 CE9 A17 A21 CE10
字选择与字节选择 字选择 字节选择 以字为单位访问存储器 位数等于存储器的字长 低位地址不需要 可以以字节为单位访问存储器 低位地址用于选择字节
字节选择的实现 A0 A1 2-4译码器
字位扩展中的字节选择 3-8译码器 2-4译码器 2-4译码器 2-4译码器 A26 A25 A24 A31 A30 ≤1 MREQ A29
习题 3.2 3.4 3.5
3.2.2 存储器的工作周期
SRAM时序 读周期: 写周期: 地址有效CS有效数据输出CS复位地址撤销
DRAM时序(一) 读周期: 行地址有效行地址选通列地址有效列地址选通数据输出行选通、列选通及地址撤销
DRAM时序(二) 写周期: 行地址有效行地址选通列地址、数据有效列地址选通数据输入行选通、列选通及地址撤销
DRAM时序(三) 刷新周期: RAS only:刷新行地址有效RAS有效刷新行地址和RAS撤销 CAS befor RAS:CAS有效RAS有效CAS撤销RAS撤销 hidden:(在访存周期中)RAS撤销RAS有效
DRAM时序(四) 刷新周期: RAS only:刷新行地址有效RAS有效刷新行地址和RAS撤销 CAS befor RAS:CAS有效RAS有效CAS撤销RAS撤销 hidden:(在访存周期中)RAS撤销RAS有效
DRAM时序(五) 刷新周期: RAS only:刷新行地址有效RAS有效刷新行地址和RAS撤销 CAS befor RAS:CAS有效RAS有效CAS撤销RAS撤销 hidden:(在访存周期中)RAS撤销RAS有效
3.2.3 提高存储器工作速度的技术 速度指标 周期时间 访问时间 吞吐率(带宽) 提高速度的技术 1. 芯片技术 2. 结构技术
DRAM时序(一) 读周期: 行地址有效行地址选通列地址有效列地址选通数据输出行选通、列选通及地址撤销
芯片技术 快速页式DRAM(页:单元行) EDO DRAM EDRAM SDRAM——采用统一时钟,重叠访问 Rambus DRAM 缓存型 四位元型 SDRAM——采用统一时钟,重叠访问 Rambus DRAM ——采用新的接口,用消息传递的异步通信协议
SDRAM标准的接口命令 表示为CKE、nCS、nRAS、nCAS、nWE信号的组合 模式寄存器设置(MRS) 存储器激活(ACT) 地址线上传输设置命令 存储器激活(ACT) 传送行地址 读(READ)或写(WRITE) 传送列地址和体地址 预充电所有存储体(PALL) 预充电一个存储体(PRE) 自动刷新(CBR) 关电(PWRDN) 自我刷新(SLFRSH) 睡眠时的刷新 退出关电(PWRDNX) 无操作(NOP)
SDRAM接口命令的编码
SDRAM的时序 预充电 激活 读 数据猝发
DDR 与 DDR2
相联存储器——框图
相联存储器——单元结构
相联存储器——阵列的构成
相联存储器——访问实例
结构技术(一) 增加数据宽度 多体交叉
结构技术(二) 增加数据宽度 多体交叉
解:(1) 各个访问操作可以交叉进行,访问速率可达到单体存储器的4倍。 (2) 只有2个存储体交叉访问,访问速率可达到单体存储器的2倍。 例3-5 在一个具有4个存储体的低位多体交叉存储器中,如果处理器的访存地址为以下十进制值。求该存储器比单体存储器的平均访问速率提高多少(忽略初启时的延迟)? (1) 0001、0002、0003、…、0100 (2) 0002、0004、0006、…、0200 (3) 0003、0006、0009、…、0300 解:(1) 各个访问操作可以交叉进行,访问速率可达到单体存储器的4倍。 (2) 只有2个存储体交叉访问,访问速率可达到单体存储器的2倍。 (3) 访问的存储体分别是3、2、1、0、3、…,各属于不同的存储体,访问速率可达到单体存储器的4倍。 习题: 3.9 3.10
3.2.4 访存的局部性 访存局部性 时间局部性 空间局部性 层次化结构 cache 主存 辅存
3.3 Cache 基本概念 命中、命中率、失效、失效率、块、命中访问时间、失效访问时间(miss penalty)
3.3 Cache 设计问题 地址映象 替换策略 更新策略 容量
3.3.2 地址映象与变换 1. 直接映象
1. 直接映象(续) 访问cache 块地址的概念 存储容量、块数、块容量与地址格式中区号、块号、块内地址位数的关系。
1. 直接映象(续)
例3-6 设有一个cache的容量为2K字,每个块为16字,求 (1) 该cache可容纳多少个块? (2) 如果主存的容量是256K字,则有多少个块? (3) 主存的地址有多少位?cache地址有多少位? (4) 在直接映像方式下,主存中的第i块映像到cache中哪一个块中? (5) 进行地址映像时,存储器的地址分成哪几段?各段分别有多少位? 解:(1) cache中有2048/16=128个块。 (2) 主存有256K/16=16384个块。 (3) 主存容量为256K=218字,字地址有18位。 cache容量为2K=211字,字地址为11位。 (4) 在直接映像方式下,主存中的第i块映像到cache中第 i mod 128个块中。 (5) 区号7位,块号为7位,块内字地址为4位。 18 11 区号 块号 块内地址 4
2. 全相联映像
2. 全相联映像(续) N = 区内块数,阴影区表示查找范围
全相联映像的实现
2. 全相联映像(续)
3. 组相联映像 n路组相联:组内有n块
3. 组相联映像(续) N = 区内块数,阴影区表示查找范围,根据组号在块表中寻找组,组内相联查找。
组相联映像的实现 区号 组号 块号 块内
组相联映像的实现
3. 组相联映像(续) 例:设有8个块,分成2个组
3. 组相联映像(续) 例:设有8个块,分成4个组
3.3.3 替换策略及更新策略 替换策略 随机法 先进先出法 近期最少使用法 近期最久未使用法
3.3.3 替换策略及更新策略(续) 先进先出替换策略
3.3.3 替换策略及更新策略(续) 近期最久未使用替换策略
3.3.3 替换策略及更新策略(续) 2. 颠簸现象 Cache QoS
3.3.3 替换策略及更新策略(续) 3. 更新策略 cache命中时 cache失效时 习题: 3.12 3.15 3.16 写直达法 写回法 cache失效时 按写分配法 不按写分配法 习题: 3.12 3.15 3.16
cache的状态 写通过 写回法 R,W R,W I V R R(hit),W R,W W I S M clean dirty R(miss)
3.3.4 cache的性能和类型 cache的失效率与cache容量的关系
3.3.4 cache的性能和类型(续) —— 块容量与命中率
3.3.4 cache的性能和类型(续) —— Cache的相联性与失效率
3.3.4 cache的性能和类型(续) 增加cache后的CPU执行时间:
3.3.4 cache的性能和类型(续) —— Cache的平均访问时间 Ta = HcTc + (1-Hc)Tm = Tc + (1-Hc)(Tm-Tc) 如果cache不命中时才启动主存,则 Ta = Tc + (1-Hc)Tm
3.4 虚拟存储器 作用 分隔地址空间 解决主存的容量问题 程序的重定位 与cache的区别 替换策略 实现方式
3.4 虚拟存储器 分类 页式 段式 段页式
3.4.1 页式虚拟存储器 页、页框架、基号、页表、虚页号
3.4.1 页式虚拟存储器(续) 与块表的区别:基号,表长,查找方式,装入位 问题:页表过长
例:某计算机的页式虚存管理中采用长度为32字的页面。页表内容如下表所示,求当CPU程序按下列2进制虚拟字地址访存时产生的实际字地址。 (1) 00001101 (2) 10000000 (3) 00101000
答:页面长度为32字,则页内地址5位,8位地址码中的高3位为虚页号,从表中查出2位实页号,与页内地址合并构成7位实际物理内存的地址。 (1) 虚页号为000,查得实页号01,与页内地址01101合并,得0101101。 (2) 虚页号为100,查得实页号10,与页内地址00000合并,得1000000。 (3) 虚页号为001,查得该页未装入内存,没有相应的内存地址。
Questions 页式虚拟存储器采用什么地址映像方式? 页表为什么大? 页表放在哪里?用什么方式查找?
3.4.2 段式虚拟存储器 段表:段基址、段长、装入位、访问方式
Questions 段式虚拟存储器如何解决页式虚拟存储器中的问题? 段式虚拟存储器存在什么问题?
3.4.3 段页式虚拟存储器
Questions 段页式虚拟存储器的页表有多大? 段页式虚拟存储器有什么问题?
3.4.4 虚存管理策略 虚存设计的关键: 解决方法:快表TLB——段表和页表的cache 1. 页面失效问题 2. 地址变换速度 根据基号、段号、页号对快表进行全相联查找 引用位——TLB替换标志,OS定期清除 浊位——数据修改标志
TLB的查找
虚存系统中的cache 快表与cache的关系: 先查快表 快表和cache同时查找 用实地址访问cache 实地址cache
1. 实地址cache ——如果cache的容量小于页的容量,则快表可以与cache访问并行 特点:适合于CPU片外cache,不同应用程序的地址空间映象到不同的物理地址。 问题:多个进程竞争cache,性能不稳定
2. 虚地址cache a. 虚地址虚标记 b. 虚地址实标记 特点:速度高,性能确定 问题:应用程序间共享使用cache,一个物理地址可能映像到两个虚拟地址上
习题 3.22 3.23