第5章 存储系统.ppt_第1页
第5章 存储系统.ppt_第2页
第5章 存储系统.ppt_第3页
第5章 存储系统.ppt_第4页
第5章 存储系统.ppt_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章存储系统 5 1存储器的分类与性能评价 5 2存储系统的层次结构 5 3半导体存储器 5 6虚拟存储器 5 4主存储器 5 5高速缓冲存储器 一 存储器分类 1 按存储介质分类 1 半导体存储器 2 磁表面存储器 3 磁芯存储器 4 光盘存储器 易失 TTL MOS 磁头 载磁体 硬磁材料 环状元件 激光 磁光材料 5 1存储器的分类与性能评价 1 存取时间与物理地址无关 随机访问 顺序存取存储器磁带 2 按存取方式分类 2 存取时间与物理地址有关 串行访问 随机存储器 只读存储器 直接存取存储器磁盘 在程序的执行过程中可读可写 在程序的执行过程中只读 磁盘 磁带 光盘 高速缓冲存储器 Cache FlashMemory 存储器 3 按在计算机中的作用分类 1 存储容量 存放二进制信息的数量存储容量 存储单元个数 存储字长 按字 字节数 按字节编址 目前计算机的存储容量大多以字节数来表示地址线数目为n 存储容量 2nB 2 存取速度 一般采用两种参数描述a 存取时间 TA 指从CPU给出有效地址启动一次存取 读 写 操作到该操作完成所需的时间 读 写分别为TAR TAW b 存取周期 Tmc 指连续两次存储器操作之间的最小时间 间隔略大于TA 二 存储器的性能评价 3 带宽 每秒从存储器进出的最大信息量 存取周期反映存储器的带宽 例 TMC 100ns8位数据带宽为1 100ns 8b 80Mb s 提高存储器的带宽的途径a 缩短存取周期 指制造工艺方面 TTL为10ns MOS为100nsb 增加储字长c 增加存储体 4 成本 也称价格 一般有两个指标 存储系统总的拥有成本和每存储位的成本 前者指构成整个计算机存储系统的所有存储器件及相关设备的购买总成本 后者等于存储芯片的容量 位 除以存储芯片的价格 5 2存储系统的层次结构 一 存储器访问的局部性原理 经过对处理器访问主存储器情况的统计发现 无论是取指令还是存取数据 处理器访问的存储单元趋向于聚集在一个相对较小的连续存储单元区域内 这种现象称为存储器访问的局部性原理 访问局部性表现为时间局部性和空间局部性 时间局部性是指将要访问的信息就是现在正在访问的信息 空间局部性是指将要用到的信息就在正使用的信息旁边 二 层次结构的存储系统 用户对存储系统的要求一般是相同的 容量大 速度快 价格低 在现有存储器工艺技术水平下 上述要求无法满足 容量大的存储器在速度上通常要比容量小的存储器慢 速度快的存储器在价格上通常要比速度慢的存储器贵 为了解决这种问题 选用生产与运行成本不同的 存储容量不同的 读写速度不同的多种存储介质 按一定的层次结构组织成一个统一的存储器系统 使每种介质都处于不同的地位 发挥不同的作用 充分发挥各自在速度 容量 成本方面的优势 从而综合达到最优性能价格比 即把这样一个存储器组织作为一个整体看 具有容量大 速度快 位价低的综合指标 这样一个存储整体称为 存储系统 高 小 快 存储器三个主要特性的关系 1 通用寄存器组 处于CPU内部 为执行指令方便而设 通常由几个 十几个 几十个寄存器组成 各种机器不等 其速度最快 容量最小 位价最高 但由于容量太小 并不被看成是独立的存储级 2 主存 是存储系统的核心 是计算机自动 高速运行程序必不可少的功能部件 是计算机传统的五大部件之一 因此 计算机对主存的要求是比较高的 但在目前的存储技术水平下 主存只能做到容量比较大 速度比较快 位价适中 仍然远远满足不了CPU运行程序的要求 3 高速缓存 Cache 为平滑主存与CPU之间的速度之差 加速CPU访存的速度 在性能较好的计算机中 主存与CPU之间增加一个缓冲存储器 其容量比通用寄存器组大得多 比主存小得多 速度接近CPU 位价介于寄存器与主存之间Cache与主存一起构成内存 寄存器 Cache 主存由不同指标的半导体存储器实现 4 辅助存储器 外部存储器 为了存放大量备用的程序和数据 在主机之外设置了一级辅助存储器 其容量比主存大得多 速度比主存慢得多 但位价也便宜得多 辅存通常由磁表面存储器实现 目前大多数计算机使用磁盘 但由于磁盘的容量实际上也有限 因此有些系统使用磁带等速度更低 容量更大 磁带等设备带盘可换 容量可无限延伸 的磁表面存储器作为硬盘的后备 由于辅存与主机的连接方式和I O设备相同 因此主机通常以I O管理方式管理外存 三 缓存主存层次和主存辅存层次 虚拟存储器 虚地址 逻辑地址 实地址 物理地址 主存储器 速度 容量 1 Cache 主存层次 根据程序运行的局部性原理 可以在计算机运行程序时 通过合理的调度将当前使用最多的一小段程序和数据放在Cache中 使CPU大部分时间访问高速缓存Cache 只有个别的指令或数据从缓存中读不到 需要到主存去取 这样 从整体运行的效果分析 CPU访存速度接近于Cache的速度 而寻址空间和位价却接近于主存 2 主存 辅存层次 为了更好地对主存 辅存统一调度 目前广泛采用虚拟存储技术 即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器 程序员可使用这个比主存实际空间大得多的虚拟地址空间编程 当程序运行时 再由软 硬件自动完成虚拟地址空间与主存实际物理空间的转换 这个转换操作对于程序员来说是透明的 因此 从程序员的角度看 他所使用的存储器其容量和位价接近于辅存 而速度接近于主存 各级存储器存放的信息必须能够满足两个基本原则 1 一致性原则 同一个信息在各级存储器中必须保持相同的值 2 包含性原则 处在内层 更靠近CPU 存储器中的信息一定包含在各外层的存储器中 通过采用层次结构结合软硬件技术 从整个存储系统来看 就达到了速度快 容量大 位价低的优化效果 5 3半导体存储器 根据存储的信息是否可以读 写 半导体存储器分为随机访问半导体存储器 RAM 和只读半导体存储器 ROM 1 半导体存储芯片的基本结构 芯片容量 1K 4位 16K 1位 10 4 14 1 2 半导体存储芯片的译码驱动方式 1 线选法 单译码方式 线选法的特点 a 译码结构简单 速度快 但器材用量大 n根地址线需2n套驱动器 当容量较大时 导致成本太高 仅适合于高速小容量存储器 b 并行输入 输出 数据I O 按多位 字节 组织 2 重合法 双译码方式 0 0 重合法的特点 a 与线选法相比大大减少了译码输出线根数 则器材用量也大大减少 有效地降低了存储器的成本 适用于大容量存储芯片b 数据位I O 按位组织 5 3 1随机访问半导体存储器RAM 1 SRAM 一 SRAM的分类 SRAM采用的开关元件 有两种 双极型 MOS型 驱动能力强 开关速度快 存取周期短 速度快 成本高 功耗大 MOS管的逻辑符号如下图所示 当控制端W为高电位时 MOS管导通 即R点与VCC同电位 二 静态RAM SRAM 1 静态RAM基本电路 A 触发器非端 A触发器原端 T1 T4 T1 T2 T3 T4 T5 T6 X 行地址 选 位线A 位线 A Vcc MOS六管静态存储单元 A 静态RAM基本电路的读操作 静态RAM基本电路的写操作 2 静态RAM芯片举例 Intel2114外特性 存储容量1K 4位 3 静态RAM读时序 4 静态RAM 2114 写时序 1 动态RAM基本单元电路 三 动态RAM DRAM 读出与原存信息相反 读出时数据线有电流为 1 写入与输入信息相同 写入时CS充电为 1 放电为 0 T 无电流 有电流 2 动态RAM芯片举例 三管动态RAM芯片 Intel1103 读 读写控制电路 三管动态RAM芯片 Intel1103 写 三管动态RAM芯片 Intel1103 写 三管动态RAM芯片 Intel1103 写 三管动态RAM芯片 Intel1103 写 三管动态RAM芯片 Intel1103 写 三管动态RAM芯片 Intel1103 写 三管动态RAM芯片 Intel1103 写 读写控制电路 三管动态RAM芯片 Intel1103 写 读写控制电路 三管动态RAM芯片 Intel1103 写 读写控制电路 2 单管DRAM芯片2116 16K 1位 4 2 DOUT 4116芯片结构 2116 16K 1位 芯片读原理 63 0 0 0 2116 16K 1位 芯片写原理 63 0 3 动态RAM时序 行 列地址分开传送 写时序 数据DOUT有效 数据DIN有效 读时序 注意 由于DRAM芯片容量较大 导致地址引脚数大幅度增加 造成制作困难 为此将地址分为行 列地址两部分 分时使用同一组地址引脚输入 输入时间分别由 信号控制 因此DRAM芯片地址引脚数将减少一半 这同样意味着 DRAM芯片每增加一根地址引脚 相当于行 列地址各增加一位 共增加了两位地址 将允许片容量扩大4倍 4 动态RAM刷新 为什么要使用刷新 破坏性读出 电容漏电再生 读操作后 被读单元的内容被清为零 必须把刚读出的内容立即写回去 通常称其为再生 它影响存储器的工作频率 在再生结束前不能开始下一次读 读放大器同时又是再生放大器 利用双稳态结构 在读出过程中建立起稳态 然后该稳态再自动写回存储单元 刷新与常规读 写操作不同 为了节省时间 通常不是按字逐个单元处理 而是每次刷新内部存储矩阵的一行 即为连接在同一行上所有存储元的电容补充一次能量 因此 刷新周期只送行地址 不送列地址 I O电路不打开 数据线无输出 相当于一次 内部读 操作 死时间率 为32 4000 100 0 8 死区 为0 5 s 32 16 s 以32 32矩阵为例 存取周期为0 5 s tC tM tR 无 死区 分散刷新 存取周期为1 s 存取周期为0 5 s 0 5 s 以128 128矩阵为例 分散刷新与集中刷新相结合 异步刷新 例 对于128 128的存储芯片 存取周期为0 5 s 将刷新安排在指令译码阶段 不会出现 死区 死区 为0 5 s 若每隔15 6 s刷新一行 2ms内刷新128行 而且每行每隔2ms刷新一次 若每隔2ms集中刷新一次 死区 为64 s 在最大刷新时间间隔内 对芯片内的全部存储元逐行轮流刷新一遍 刷新周期平均分散在最大刷新间隔中 三种刷新定时方式的特点 集中刷新 正常工作期间DRAM可达全效率 但刷新期间CPU不能访存 例中为16 s 形成访存 死区 分散刷新 消除了访存死区 但使CPU访存周期延长一倍 例中 1 s 另外 存在多余的刷新操作 集中与分散相结合 结合集中 分散刷新的优点 既克服了死时间 又没有多余的刷新操作 DRAM工作效率达到最高 是一种理想的刷新方式 得到广泛应用 但这种方式控制较复杂 需要较多的存储器外围电路支持 刷新地址计数器 刷新定时器 访存仲裁逻辑等 3 动态RAM和静态RAM的比较 存储原理 集成度 芯片引脚 功耗 价格 速度 刷新 5 3 2只读存储器 ROM 1 掩膜ROM MROM 行列选择线交叉处有MOS管为 1 行列选择线交叉处无MOS管为 0 优点是可靠性高 位密度高 访问周期短 缺点是设计制造成本高 只适合成熟产品 2 PROM 一次性编程 特点 出厂时为通用形式 用户可通过加高压 大电流的方法一次结构破坏性写入信息 写入的内容为永久的 3 EPROM 多次性编程 1 浮动栅雪崩注入型MOS电路 FAMOS 紫外线全部擦洗 2 2716EPROM的逻辑图和引脚 4 EEPROM 电可擦除可编程只读存储器 特点 擦除和编程均可联机进行 更加方便 电可擦写局部擦写全部擦写 5 FlashMemory 快擦型存储器 又称闪存 电子盘 特点 擦除和写入速度更快 1M位的芯片擦 写时间小于5 s 与EEPROM不同的是只能整体擦或分区擦 由于闪速存储器具有非电易失性 且读取速度与DRAM接近 写入速度与硬盘接近 因此目前逐渐用来替代软 硬盘 称为半导体盘 具有无机械运动 抗震性好 可靠性高等优点 发展前景看好 系统程序区存放的是不需要改动也不允许改动的系统程序 所以这部分存储空间应用ROM来实现 系统程序工作区是系统程序在工作时写入并读出临时数据的 所以这部分存储空间应用RAM来实现 用户程序区存放的是用户的程序与数据 这些信息是可读 可改写的 所以这部分存储空间也应用RAM来实现 主存储器由RAM和ROM芯片组成 5 4主存储器 一 存储器的扩展 1 存储器容量的扩展 将mK n位的芯片扩展成MK N位的存储系统 m存储字n存储字长 即m M 则所需芯片数为N n 用2片1K 4位存储芯片组成1K 8位的存储器 2 字扩展 增加存储字的数量 用2片1K 8位存储芯片组成2K 8位的存储器 n N 则需芯片数为M m 3 字 位扩展 用8片1K 4位存储芯片组成4K 8位的存储器 2 存储器与CPU的连接地址线的连接 地址总线的低位可直接与各存储芯片的地址引脚相连 高位和片选译码器输入端相连 数据线的连接 存储器的数据引出线与数据总线按位连通即可 读 写线的连接 存储器的WE线与控制总线中的读 写命令线连通即可 对ROM没有WE 片选线的连接 CPU控制总线中的MREQ 访存请求 信号与片选译码器使能输入端相连 片外地址作为译码器输入端 译码器输出端形成片选信号 合理选用芯片 通常ROM存放系统程序 RAM存放用户程序 连接到片外地址线 一般连接到芯片的片选控制端 片选信号CS CE 的形成 74LS138译码器简介 74LS138的功能表 真值表 CPU对主存的读写操作1 读操作 CPU从指定的存储单元取出信息的过程 1 CPU将地址信号发送到地址总线 2 CPU发出读命令 3 读出信息经数据总线送至CPU2 写操作 CPU将要写入的信息存入指定的存储单元 1 CPU将地址信号发送到地址总线 2 CPU将要写入的数据发送到数据总线 3 CPU发出写命令 4 等待信息经数据总线送至CPU 例5 1设CPU有16根地址线 8根数据线 并用作为访存信号 低电平有效 用作为读 写控制信号 高电平为读 低电平为写 现在有下列存储芯片 1K 4位RAM 4K 8位RAM 8K 8位RAM 2K 8位ROM 4K 8位ROM 8K 8位ROM及74LS138译码器和各种门电路 画出CPU与存储器的连接图 要求 1 主存地址空间分配 6000H 67FFH为系统程序区 6800H 6BFFH为用户程序区 2 合理选用上述存储芯片 说明各选几片 3 详细画出存储芯片的片选逻辑图 例5 1解 1 写出对应的二进制地址码 2 确定芯片的数量及类型 A15A14A13A11A10 A7 A4A3 A0 3 分配地址线 A10 A0接2K 8位ROM的地址线 A9 A0接1K 4位RAM的地址线 4 确定片选信号 例5 1CPU与存储器的连接图 例5 2设CPU共有16根地址线 8根数据线 并用 MREQ 低电平有效 作访存控制信号 R W作读写命令信号 高电平为读 低电评为写 现有下列存储芯片 ROM 2KX8位 4KX4位 8KX8位 RAM 1KX4位 2KX8位 4KX8位 及74138译码器和其他门电路 门电路自定 试从上述规格中选用合适芯片 画出CPU和存储芯片的连接图 要求 1 最小4K地址为系统程序区 4096 16383地址范围为用户程序区 2 指出选用的存储芯片类型及数量 3 详细画出片选逻辑 1 写出对应的二进制地址码 A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0 解 2 确定芯片的数量及类型 解 3 分配地址线 A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0 4 确定片选信号 全译码方法 选中内存单元 片选信号形成方法 全译码和部分译码 全部地址总线参加译码 低位地址总线作为片内地址 高位地址总线全部作为片外地址 特点是地址唯一 一个存储单元只对应一个存储器地址 有两种情况需采用全译码 1 实际使用的存储空间与CPU可访问的最大存储空间相同 2 实际使用的存储空间小与CPU可访问的最大存储空间 而对实际空间的地址范围有严格的要求 系统总线 A12 A13 A14 A15 A16 A17 A18 全译码举例 部分译码法 选用地址总线高位地址的一部分 而不是全部 进行译码 产生片选信号 特点 存在地址重叠问题 例 使得被选中的存储器芯片占有2组不同地址范围 由于A18不参与译码 F0000H F1FFFHB0000H B1FFFH A B C E3 A15 A16 A17 A18 A19 A0 A14 D0 D7 由两片27256EPROM和两片62256SRAM构成一个8位存储器系统如下图所示 例5 3CPU有20根地址线 8根数据线 MEMR和MEMW为访存控制信号 1 图中采用何种译码方式形成存储器的片选信号 2 图中各存储芯片的地址范围为多少 3 图中还有多大的地址空间可以用于存储器扩展 1 由于CPU的20根地址线完全用上 故为全译码方式 2 3 220 32K 32K 32K 32K 896K故还剩余896K存储空间可以扩展 272561 A19A18A17A16A15A14 A0 272562 622561 622562 88000H 8FFFFH 98000H 9FFFFH A8000H AFFFFH B8000H BFFFFH 二 提高访存速度的措施 采用高速器件 调整主存结构 调整主存结构 并行存储器和信息按边界对齐存储技术并行存储器 在一个存储器访问周期能并行访问到多个存储字的存储器 能有效地提高存储器的带宽 并行存储器主要有 1 多体交叉存储器 时间并行 单体多字并行存储器低位交叉编址多体并行存储器 2 双端口存储器 空间并行 二 提高访存速度的措施 单体多字系统 前提条件 1 指令和数据在存储体内连续存放2 硬件配置上支持 在一个存取周期内 从一个地址取出4条指令 再逐条将指令送给CPU去执行 即每隔四分之一存取周期 主存向CPU送一条指令 现在一次取出的是4W位 即带宽增大了4倍 故提高速度 把存储器的存储字字长增加n倍 单体多字系统 单体多字并行存储器访问冲突概率大 访问冲突主要来自以下几个方面 1 取指令冲突 转移指令 2 读操作数冲突 所需要的操作数不一定在一个存储字中 3 写数据冲突 凑齐n个数据字后才能作为一个存储字 4 读写冲突 读出的数据和写入的数据处于一个存储字 采用多体模块组成的存储器 它们能并行工作 又能交叉工作 多体并行系统 每个模块有相同的 容量 存取速度 均有各自都有独立的 特点 1 带宽增大nW倍 2 并行工作 3 有利于单字操作 并行工作即可同时访问N个模块 同时启动 同时读出 完全并行地工作 高位交叉 顺序编址 同一存储体的地址空间连续 不利于并行处理 容易发生访存冲突 两个连续访存地址指向同一存储体 特点 b 低位交叉 各个体轮流编址 同一存储体内地址不连续 以N为模 同高位交叉编址相比较 访存冲突小 由于程序是连续存放的 容易形成并行工作局面 特点 交叉访问的时间关系 在不改变存取周期的前提下 增加存储器的带宽 启动存储体0 启动存储体1 启动存储体2 启动存储体3 设四体低位交叉存储器 存取周期为T 总线传输周期为 为实现流水线方式存取 应满足T 4 连续读取4个字所需的时间为T 4 1 例 设有四个模块组成的四体存储器结构 每个体的存储字长为32位 存取周期为200ns 假设数据总线宽度为32位 总线传输周期为50ns 试求顺序存储和交叉存储的存储器带宽 解 顺序存储连续读出4个字的时间 200 4 800ns交叉存储连续读出4个字的时间 200 50 4 1 350ns顺序存储器的带宽 32 4 800 10 9 16 107bps交叉存储器的带宽 32 4 350 10 9 37 107bps A0 0 访问偶地址存储体BHE 0访问奇地址存储体A0 0 BHE 0 同时访问16位存储体 多体并行系统举例 5 4在8086系统中 由两片2764EPROM和两片6264SRAM构成的一个16位存储器系统如图所示 其中2764和6264均为8K 8位的存储芯片 1 图中采用何种译码方式形成存储器芯片的片选信号 2 图中各存储芯片的地址范围为多少 3 系统还有多大的地址空间可以用于存储器扩展 解 1 全译码方式 2 6264 1 的地址范围是98000H 9BFFEH中的偶地址6264 2 的地址范围是98001H 9BFFFH中的奇地址2764 1 的地址范围是9C000H 9FFFEH中的偶地址2764 1 的地址范围是9C000H 9FFFFH中的奇地址 3 系统用于存储器扩展的地址空间为1M 4 8K 992K 低位交叉访问存储器举例 二维数组的无冲突访问要求 对存放在并行存储器中的二维数组按行 按列 按对角线 按反对角线访问均能实现无冲突访问 0号体 1号体 2号体 3号体 0 1 2 3 体内地址 按列访问冲突 低位交叉访问存储器举例 二维数组的无冲突访问要求 对存放在并行存储器中的二维数组按行 按列 按对角线 按反对角线访问均能实现无冲突访问 0号体 1号体 2号体 3号体 0 1 2 3 体内地址 按对角线和反对角线访问冲突 低位交叉访问存储器举例 二维数组的无冲突访问要求 对存放在并行存储器中的二维数组按行 按列 按对角线 按反对角线访问均能实现无冲突访问 0号体 1号体 2号体 3号体 0 1 2 3 体内地址 二维数组错位存储 按行 列 对角线和反对角线访问无冲突 4号体 二 提高访存速度的措施 3 双口RAM具有两套独立的读 写控制逻辑的RAM 它具有两个独立的端口 左端口和右端口 它们分别具有各自的地址总线 数据总线和控制总线 可以对存储器中任何地址单元中的数据进行独立的存取操作 当两个端口的访存地址不同时 这两个访问可以同时进行 否则发生访问冲突 这时就由片内仲裁逻辑决定哪个端口先进行访问 双端口RAM常作为流水线处理器的计算机主存储器 在多机系统中 常采用双端口RAM甚至多端口RAM 实现多处理器对主存储器的共享 二 提高访存速度的措施 二 提高访存速度的措施 2 双口RAM举例 二 提高访存速度的措施 双端口存储器IDT7133的逻辑框图 二 提高访存速度的措施 2 信息按边界对齐存储例 某计算机存储器按字节编址 采用小端次序存放数据 假定编译器规定int和short型数据长度分别为32位和16位 并且数据按边界对齐存储 有C语言程序段如下 strut inta charb shortc record record a 273 若record变量首地址为0 xC008 则地址0 xC008中的内容及record c的地址分别为多少 二 提高访存速度的措施 5 5高速缓冲存储器 一 概述1 问题的提出 解决CPU与I O的访存冲突 解决高性能与低价位的矛盾 1 依据 CPU访存的局部性原理2 目的 用小容量的SRAM与大容量的DRAM构成一个性能近似于SRAM价格相当于DRAM的存储系统 2 Cache的工作原理 1 主存和缓存的编址 主存和缓存分成若干块块的大小相同 B为块长 2 命中与未命中 M C 主存块调入缓存 主存块与缓存块建立了对应关系 用标记记录与某缓存块建立了对应关系的主存块号 主存块与缓存块未建立对应关系 主存块未调入缓存 3 Cache的命中率 CPU欲访问的信息在Cache中的比率 命中率与Cache的容量与块长有关 一般每块可取4 8个字 块长取一个存取周期内从主存调出的信息长度 4 Cache 主存系统的效率 效率e与命中率有关 设Cache命中率为h 访问Cache的时间为tc 访问主存的时间为tm 1 Cache的内容与主存之间的映象关系 2 如何实现地址的转换 将访问的主存地址转换成Cache地址 3 访问Cache未命中时 若Cache没有满 如何调入Cache Cache满时 块如何替换 4 Cache的一致性问题 即块的更新策略 3 实现Cache的功能要解决的问题 4 Cache的基本结构 由CPU完成 二 地址映像和变换 地址映象 为了把信息放到Cache中 必须应用某种函数把主存地址映象到Cache 称作地址映象 地址变换 在信息按照这种映象关系装入Cache后 执行程序时 应将主存地址变换成Cache地址 这个变换过程叫做地址变换 基本地址映象方式 直接映象 全相联映象 组相联映象等 1 直接映像 a 直接映射示意图 1 直接映像 b 直接映像cache的检索过程 1 直接映像 每个缓存块i可以和若干个主存块对应 每个主存块j只能和一个缓存块对应 i jmodC 主存字块标记t m c的由来 因主存中会有很多块映射到Cache中的同一块 到底是多少块呢 主存中共计有2t个块都可以映射到Cache中的某一块 M 2m 主存总块数 C 2c Cache总块数 2m c 2t 标记比较 不够灵活 Cache利用率低 易发生冲突 硬件实现简单 成本低 特点 某一个时刻只能有主存中的这2t中的一块映射到Cache中的这一块 计算 比较是用硬件来完成的速度较快 Cache的所有这些个标记被存放到CAM 相联存储器 内 例5 5 设主存的容量是256KB Cache的容量是2KB 每个块的大小为16B问主存和Cache各有多少个块 主存和Cache地址各有多少位 主存中第135块在直接映象方式下映象到Cache的哪一块 直接映象方式下 主存地址分为哪几段 每段各有多少位 解 主存256K 16 256 1024 16 16384块Cache2K 16 128块 主存log2256K 18 所以主存地址有18位Cachelog22K 11 所以cache地址有11位 j imod2c 135mod128 7 主存地址格式 块内地址 log216 4位Cache字块地址 log2128 7位主存字块标记 主存地址长度 cache地址长度 18 11 7位 774 练习 设一个Cache中有8个块 访问主存进行读操作的块地址序列为10110 11010 10110 11010 10000 00100 10000 10010 求每次访问时Cache的内容 a 全相联映射示意图 2 全相联映像 b 全相联cache的检索过程 相联存储器 CAM 查找 地址寄存器 译码选择线路 读出数据寄存器 相联存储器M N 屏蔽字 检索字 010 字相符 2 全相联映像 主存中的任一块可以映象到缓存中的任一块 主存共有2m个块 此2m个块均可以映射到Cache中的任一块 故Cache 标记 位应为m位 标记位为 m t c位 访问Cache时需与全部Cache块的标记进行比较 查找时间长 优点 更灵活 Cache利用率高 命中率高 特点 缺点 硬件电路复杂 成本高 实际中较少使用 某一主存块j按模Q映射到缓存的第i组中的任一块 i jmodQ 3 组相联映像 则C 2c QR 2q 2r 2q r c q r 内存共分为M个块 M 2m Cache分为Q组 Q 2q Cache每组包括R块 R 2r Cache分为C个块 C 2c 例5 6假设主存容量为512K 16位 Cache容量为4096 16位 块长为4个16位的字 访存地址为字地址 1 在直接映象方式下 设计主存的地址格式 2 在全相联映象方式下 设计主存的地址格式 3 在二路组相联映象方式下 设计主存的地址格式 4 若主存容量为512K 32位 块长不变 在四路组相联映象方式下 设计主存的地址格式 解 cache的容量为4096 所以cache字地址为log24096 12位 块长为4 所以字块内地址为2位 cache块共有4096 4 1024块 块号占10位 主存地址为log2512K 19位 1 直接映象方式下 主存字块标记为19 12 7位 主存地址格式为 2 全相联方式下 主存字块标记为19 2 17位 其格式为 3 在二路组相联的条件下 一组内有2块 cache共分为1024 2 512组 所以组地址为9 主存字块标记为19 9 2 8位 其格式为 7102 172 892 4 若主存容量为512K 32位 访问地址为字地址16位 则主存地址位log2512K 32 16 20位 在四路组相联的条件下 一组内有4块 cache共分为1024 4 256组 所以组地址为8 主存字块标记为20 8 2 8位 其格式为 1082 例5 7假设主存容量为16MB Cache容量为8KB 每字块8个字 每字32位 设计一个四路组相连映像的Cache组织 要求 1 设计主存的地址格式 2 设Cache的初态为空 CPU依次从主存第0 1 2 99号单元读出100个字 主存一次读出一个字 并重复按此次序读10次 问命中率是多少 3 若Cache的速度是主存的5倍 试问有Cache和无Cache相比 速度约提高多少倍 4 系统效率为多少 解 1 主存地址格式为 2 命中率H 100 10 13 100 10 0 987 3 设Cache存取周期为t 主存存取周期为5t 则速度提高倍数为 1365 5t 1000 5t 13 t 1000 13 1 3 75 4 效率e t 0 987t 5t 1 0 987 100 95 三 替换算法替换算法的目标 是使Cache获得最高的命中率 就是让Cache中总是保持着使用频率高的数据 从而使 访问Cache的成功率最高1 先进先出法 这种算法是把最早进入Cache中的信息块给替换掉 由于这种算法只考虑了历史情况 并没有反映出信息的使用情况 所以其命中率并不高 其原因是最先进来的信息块 或许就是经常要用的块 反而被替换掉了 2 近期最少使用算法 这种算法是把近期使用最少的信息块替换掉 这就要求随时记录Cache中各块的使用情况 以便确定哪个字块是最近期最少使用的 由于近期使用少 未必是将来使用最少的 所以 这种算法的命中率比 有所提高 但并不最理想 3 随机法 随机的确定被替换的块 实现起来比较简单 例5 8 设一个容量为4个块的全相联Cache 分别采用FIFO和LRU替换算法 假定访问的主存地址块号序列为2 11 2 9 7 6 4 3 画出每次访问后Cache中的内容变化情况 解 访问顺序12345678地址块号211297643块分配情况 FIFO 操作状态调进调进命中调进调进替换替换替换 123 2 2 2 2 2 6 6 6 11 11 11 11 11 4 4 9 9 9 9 3 7 7 7 7 124 访问顺序12345678地址块号211297643块分配情况近期最少使用 LRU 操作状态调进调进命中调进调进替换替换替换 2 2 2 2 2 2 4 4 11 11 11 11 6 6 6 9 9 9 9 3 7 7 7 7 四 Cache的读写操作 1 读 2 写入策略 由于Cache内容只是内存的一部分内容拷贝 它应当与主存内容保持一致 而CPU对Cache的写入更改了Cache中的内容 如何保持内存与Cache内容的一致性 有以下几种策略 1 全写法 写穿法 当写Cache命中时 CPU对主存和Cache同时进行写操作 可较好的维护Cache与内存的一致性 当写Cache未命中时 CPU只直接写入内存 特点 可适当保持内存与Cache的一致性 由于对主存的访问频繁 故在一定程度上降低了Cache的高速缓冲功能 2 写回法 当CPU写Cache命中时 只修改Cache中的内容 而不立即写入主存 只有当该块被换出到内存时才写回主存当CPU写Cache未命中时 将此块拷贝到Cache中进行修改 而主存的写操作统一留到该块被换出时才进行 特点 写操作都是在Cache完成的 只是在需要换出时才写回主存 减少了CPU访问主存的次数 因Cache的速度快于内存的速度 故效率较高 存在内存和Cache不一致隐患 一般来讲 直接映象常用在 A 小容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论