计算机组成原理3.2高速缓存.ppt_第1页
计算机组成原理3.2高速缓存.ppt_第2页
计算机组成原理3.2高速缓存.ppt_第3页
计算机组成原理3.2高速缓存.ppt_第4页
计算机组成原理3.2高速缓存.ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

3 5提高主存储器性能的措施 CPU的工作频率较高 但内存存取速度相对较低 造成CPU等待数据的情况 降低了系统的整体性能和处理能力 微处理器的集成度每隔18个月就会翻一番 芯片的性能也随之提高一倍 摩尔定律 1 采用静态随机存取存储器做主存 高速存储器件 2 提高存储器的位数 和机器字长有关 3 采用新型内存结构 4 在DRAM和CPU之间加入速度快 容量较小的存储器 减少CPU与内存之间的速度差异 对提高系统的性能非常重要 有以下几种办法 一 并行主存系统 单体单字存储结构 D15 D0 MDR 1K 16位 MAR 01 1023 D15 D0 1K 16位 D15 D0 1K 16位 D15 D0 1K 16位 A9 A0 BUB 单体多字并行存储结构 这种方式主要提高CPU访问连续地址时的存储器的数据流量 如果可以在一个存取周期内 从同一地址取出4条指令 然后再逐条将指令送CPU执行 也即四分之一存取周期向CPU送一条指令 这样将大大系统的效率 但对于非连续访问的情况 比如一旦遇到转移指令 或操作数不能连续存放的情况 则提高访存流量不明显 D15 D0 MDR 1K 16位 MAR 01 1023 D15 D0 1K 16位 D15 D0 1K 16位 D15 D0 1K 16位 A11 A2 多体交叉并行存储系统结构 A11 A2 A11 A2 A11 A2 主存储器控制部件 BUB 为了提高其访问速度 在一个存储周期内 n个存储体分时启动 采用低位存储交叉访问的存储器 实际上是一种流水线方式工作的并行存储器系统 在连续工作情况下 每个存储体的速度不变 而整个存储器的速度可望提高n倍 分体充突 是指有2个访存地址位于同一个分体中 是否发生分体充突可以根据CPU访存地址的最低2位来确定 请分析 CPU的访存地址流为003H 009H 00CH 106H 108H 10AH 201H 205H有分体充突吗 高位交叉并行存储系统结构 高位交叉访问存储器主要目地是用来扩大存储器的容量 主要用于在多任务或多用户系统中 可以将不同的任务分配在不同的存储体中来提高存储器的访问速度 单体多字与多体交叉的区别 单体多字 只需设一个地址寄存器 译码器 给一个地址可连续读多个字 在访问信息连续的情况下 效率高 多体交叉 连续信息在各体中交叉存储 各体设有各自的地址寄存器和地址译码器 所以各体之间可以并行工作 可以适用访问空间不连续的情况 但分体充突会降低其效率 访存的局部性原理 根据大量典型程序的运行分析表明 当CPU从主存中取出指令和数据时 在一个较短的时间间隔内 由程序产生的地址往往局限在较小的存储器地址范围内 这是由于程序中的指令在存储器中是连续分布的 而且程序中具有许多循环结构和子程序结构 所以CPU对程序地址的访问趋于集中就是不难理解的 二 高速缓冲存储器 cache 设置在CPU和主存之间 与CPU高速交换信息 尽量避免CPU不必要地多次直接访问慢速的主存 从而提高计算机系统的运行效率 在CPU和主存之间设置cache 用一个容量较小 但读写速度更快的 以关联存储器方式运行 用静态存储器芯片实现的存储器系统 当CPU需用主存中的数据时 多数情况下可以直接从cache中得到 称此为命中率 设计cache所追求的目标就是要有足够高的命中率 1 Cache的功能 例 若主存的访问时间为60n秒 CACHE的访问时间为10n秒 在命中率为90 时 CPU访存的平均时间为多少 解 10ns 90 60ns 10 15ns 2 Cache的基本工作原理 在存储系统中 把Cache和主存储器都划分成相同大小的块 例如 设主存 64KBCache 1KB块大小 32B所以 主存分为2K个块CACHE可容纳32个块 主存地址 块号B 块内地址mCache地址 块号b 块内地址n n个块 m个块 cache块数要远远小于主存块数 为什么 每个cache块都设有标记 为什么 当CPU访问cache时 送来主存地址 通过cache主存地址映象变换机构判定访问单元所在的块是否在cache中 若在 即命中 则经地址映象变换机构将主存地址变换为cache地址 访问cache 如不在 不命中 则产生cache块失效 对后一种情况 需访问主存 即根据主存地址 将包含该单元的一块信息装入cache 同时将被访问单元的内容直接送给处理器 若装不进cache 则须按所设计的cache替换策略 把该块替换进cache 3 Cache的命中率 从CPU来的访存地址 从cache中读 CPU 访问主存 将访问单元所在块送cache 并标记 命中 不命中 cache的工作原理 检查cache是否命中 4 主存与CACHE的地址映象与变换 全相联映象及其变换直接映象及其变换组相联映象及其变换 地址映象 指每个主存块按什么规则装入Cache中 地址变换 是指程序在实际运行过程中 如何将主存地址变换为相应的Cache地址 块冲突 是指出现了一个主存块要进入已被占用的Cache块中的现象 映象方法选择的依据 高速 低价 易实现 低块冲突率 高Cache空间利用率等 全相联映象及其变换 全相联映象 是指主存中任意一块可以映象到Cache中任意一块位置的方式 全相联映像方式 Cache块 块0块1块2块3 主存块 块0块1块2 块n 访存地址 主存的块标记 在这种方式中主存地址划分为二个部分 例如 设主存 64KBCache 2KB块大小 128B 27B 则主存 216 27 512 块 块号是多少位 9位 作为标记Cache 211 27 16 块 装入位 块号B 块内地址 主存地址 目录表 其行数与CACHE的块数相同 主存块号B B 块号b 块内地址w Cache块号b b 相联比较 命中 Cache地址 1 1 主存 4GB Cache 4KB 块大小 4B 全相联 标记位数 全相联映射硬件实现举例 例如 设主存1KB Cache128B 块大小16B 则 主存 210 24 64 块 块号是多少位 6位 作为标记 Cache 27 24 8 块 全相联映象特点 优点 块冲突率最小 Cache空间利用率最高 缺点 随着Cache容量的增加 查表速度很难提高且电路复杂 成本高 直接映象方式 在这种映象方式中规定 主存中的某些块只能固定调入Cache中的一块 例 将Cache为4个块 主存为16个块 分为4个区 具体做法是 将主存分成与Cache大小相同的区 每个区的块与Cache块一一对应 直接映象方式示意图 Cache的块与主存一个区中的块一一对应 在直接映象方式中主存块映象到CACHE块的块号 I jmodn 其中 j为主存的块号n为Cache的块数I为主存块映象到Cache的块号 可以用一个公式计算 有效位 区号E 块内地址w 1 主存地址 区号 E 块号b 块内地址w 命中 Cache地址 块号B 相等比较 块失效 比较相等且有效位为1 访问Cache 直接映象的地址变换 1 2 3 01 11 标记 Cache 块内地址 块号 区号 块号 块内地址 访存地址 Cache地址 在Cache中定位块 01 比较 0 将主存的块号在Cache中定位 再用区号与Cache的标记比较 相同时则为命中 直接映射硬件实现举例 主存 4GBCache 4KB块大小 4B直接映射标记位数 索引位数 例 设主存 64KB Cache 2KB 块大小 128B则主存 216 27 512 块 Cache 211 27 16 块 主存 Cache 512 16 29 24 25 32区Cache块号主存块号标志000000160000103200010 49611111 Cache块号主存块号标志100000170000113332个字块00010 49711111 15000003100001154732个字块00010 51111111 直接相联映象的特点 优点 所需硬件简单 成本低 地址变换速度较快 缺点 块冲突概率很高 Cache利用率很低 有一个Cache的容量为128KB 每块为16B 问 该Cache可容纳多少块 主存容量为256MB 则应有多少块 主存的地址有多少位 Cache的地址有多少位 在直接映象方式 主存地址分成哪几个部分 各部分多少位 练习 组相联映象方式 即 各组之间是直接映象 组内各块之间是全相联映象 组相联映象方式是直接映象和全相联映象方式的一种折衷方案 把Cache字块分成组 允许将主存的块映象到Cache固定组内的任意块 组相联映像方式 Cache地址 组号 g 组内块号 b 块内地址主存地址 区号 E 组号 G 组内块号 B 块内地址 组相连映像方式的地址结构 组内块号b 区号E 块内地址W 3 主存地址 记录的是主存的哪个区中的哪一组的哪一块调入cache的同一组同一块 E区号 组内块号B E 5 块内地址w 相等 Cache地址 组内块号B 比较 不等 组号G 组内块号b 组号g 1 在组相联映象方式中 在地址映射时 主存块写入CACHE块时的标记字段的内容应是什么 2 地址变换时 如何操作 答 主存块的区号 组内的块号 答 用主存地址的组号直接定位到CACHE组 然后利用标记判命中 用块内地址进行变换 组相联映象特点 介于直接映象和全相联映象之间 成本低于全相联映象 速度高于全相联映象 Cache利用率高于直接映象 块冲突概率低于直接映象 5 替换算法 1 随机数替换算法 当需要找替换块时 产生一个随机数 它就是被替换的块号 这种算法完全不反映程序的局部性特点 只是算法简单 实现容易 结论 不是一个好的算法 2 FIFO算法 先进先出 总是把一组中最先调入Cache存储器的字块替换出去 它不需要随时记录各个字块的使用情况 所以实现容易 开销小 缺点 它没有根据访存局部性原理 最早调入的块可能是以后还要用到的 或者是经常用到的 3 LRU算法 近期最少使用法 是把Cache中近期最少使用的块替换出去 a 用计数器实现控制规则为 被装入或被访问的块 其对应的计数器清为0 同组中其他所有块所属的计数器都加1 在块冲突发生时 将计数值最大的块作为替换对象 原始状态替换7访问5访问1替换60751610751210753210743220543326544376664 b 用堆栈实现 用栈顶至栈底的先后次序来记录Cache同一组内的各个块被访问的先后次序 6 影响Cache命中率的因素 从Cache本身诸因素看 可能 Cache的容量 大一些好 Cache与主存每次交换信息的块大小适中 Cache不同的组织方式 多路组相联更好 Cache的多级组织可提高命中率 Cache装满后的替换算法 Cache命中率与容量的关系 容量 k字节 100 命中率 40 60 95 1K 8K 32K 256K 512K 128K 90 80 Cache命中率与级数的关系 若第1级 第2级CACHE命中率为90 则它们合起来之后的命中率为多少呢 1 1 90 1 90 99 Pentium微机Cache结构简介 L1指令Cache L1数据Cache L3CACHE CPU核心电路 CPU封装 主存 CPU中的Cache的容量的发展 CPU中的Cache的速度的发展 CPU FPU ALU L1Cache ALU L2Cache ALU CPU FPU ALU L1Cache ALU L2在CPU转接板 ALU CPU FPU ALU L1Cache ALU L2Cache ALU CPU FPU ALU L1Cache ALU L2Cache ALU ALU L3Cache PC系统的发展趋势之一 CPU的主频越做越高 系统构架越做越先进 而主存DRAM的结构和存取时间改进则较慢 因此 CACHE技术就愈显重要 现已把CACHE的容量和速度作为评价和选购PC系统的一个重要标志 3 6虚拟存储系统 虚拟内存 问题的提出 程序运行时所需的存储空间比主存的实际容量大时 程序如何运行 可寻址的存储空间远远大于实际上配置的主存空间 1961年英国曼彻斯特大学Kilbrn等人提出 70年代广泛地应用于大中型计算机系统中 目前许多微型机都使用虚拟存储器技术 虚拟存储器的基本思想 基于访存的局部性 程序 数据 堆栈的大小可以超过内存的大小 操作系统和辅助硬件可以把程序当前使用的部分保留在内存 而把其它部分保存在磁盘上 并在需要时在内存和磁盘之间动态交换 其基本工作原理与缓存有相同之处 虚拟存储器与Cache的几点区别 与主存的交换频率不同与主存的交换数据量不同控制方式不同使用术语不同 1 虚拟存储器的构成 虚拟存储器是由价格高 速度快 容量小的主存储器和价格低 速度慢 容量大的辅助存储器组成 在系统软件和辅助硬件的管理下 就像一个可直接访问的 大容量 单一的主存储器 存储管理硬软件 主存储器被称做 实存 它是实际上存在的 频繁地与CPU交换信息的主存空间被称做 实存空间 而虚存空间是一个比实存空间大得多的存储空间 虚存空间的大小取决于所能提供的虚拟地址的长度 虚拟存储器中的三个地址空间虚拟地址空间 由逻辑地址决定的空间主存地址空间 由实际的物理地址决定辅存地址空间 由磁盘空间决定 虚拟地址和物理地址 物理地址 内存的实际地址 虚拟地址 取决于机器所能提供的虚存地址码的长度 它与实存和辅存的容量无关 是程序员用来编写程序的地址空间 例如 某计算机系统 存储器按字节编址 可提供的虚存地址码为48位 则它所提供的虚拟地址空间为248 256TB 2 虚拟存储器中地址结构映象与变换方式 因地址映象和变换方法不同 有三种虚拟存储器 页式管理方式段式管理方式段页式管理方式 地址映象 是把虚拟地址空间映象到主存空间 并建立虚拟地址和主存实地址之间的对应关系 地址变换 在运行程序时 将虚拟地址变换成实际的主存地址或辅存地址 1 页式虚拟存储器 页式存储管理是把虚拟空间和主存空间都分成大小相同的页 并以页为单位进行虚存与主存间的信息交换 此时虚存地址和主存地址分别被分为虚存页号 页内地址和主存页号 页内地址 虚 实二页号会不同 但使用相同的页内地址 虚页号页内地址 虚存地址 实存地址 页的大小和划分与程序的逻辑功能无关 由操作系统软件来执行 通常页的大小应该是0 5KB的整数倍 磁盘存储器每扇区的存储容量为512B 因此在与磁盘进行数据交换比较容易配合 虚页与实页之间按全相连方式映像 即虚存中的一页可以可以存入主存中的任意一页位置 页大小及映象方式 例如 某系统提供的虚拟地址16位 实地址15位 将其按每4KB分为一页 采用页式管理 虚存地址和实存地址的结构 A11页内地址A0 A15虚页号A12 A11页内地址A0 A14实页号A12 虚页16个 实页8个 虚地址空间 64K 页大小4K 实地址空间 32K 虚页 页框 0 1 2 7 逻辑空间页面将装入主存不连续的页面空间 这就必须用页表来记录虚页和实页之间的对应关系 称为内页表 页表的行数通常为虚页的数量 其内容为虚页号 实页号 装入位 修改位等信息 页表通常分为慢表和快表 慢表由主存的一块空间来存放 快表由高速存储器件构成 当CPU给出一个逻辑地址时通过页表进行地址变换 内页表格式及大小 15 0 110 装入位 页表 虚地址2004H 物理地址6004H 实页号 虚页号 装入位 Pa 装入 修改 主存页号 标志 用户号U 虚页号P 页内偏移D 页内偏移d p Pa 页表基址 页表 实页号p 多用户时的页式管理 内页表内容和页式管理 在内存中 装入位 虚页号实页号 慢表 虚地址 程序中给出 实地址 读写内存用 快表 专设硬件 比较 按内容选 按地址读 实页号 虚页号页内地址 实页号页内地址 页表基地址 若不命中呢 1 向CPU发出 缺页 中断 2 将虚拟地址变换成辅存实地址 查外页表 读取该虚页内容 3 将该虚页写入实存的空闲页面 再进行地址变换访问 装入 磁盘实地址 用户号 页内偏移 1 虚页号 外部地址变换 软件实现 磁盘号 柱面号 磁头号 块号 多用户虚地址 外页表 虚拟存储器的工作过程 虚地址 虚实地址变换 虚 主存实地址 访问主存 查外页表 页面在辅存 虚实地址变换 虚 辅存实地址

温馨提示

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

评论

0/150

提交评论