《计算机组成原理》PPT课件.ppt

上传人:za****8 文档编号:6346488 上传时间:2020-02-23 格式:PPT 页数:117 大小:2.93MB
返回 下载 相关 举报
《计算机组成原理》PPT课件.ppt_第1页
第1页 / 共117页
《计算机组成原理》PPT课件.ppt_第2页
第2页 / 共117页
《计算机组成原理》PPT课件.ppt_第3页
第3页 / 共117页
点击查看更多>>
资源描述
计算机科学与技术专业 计算机组成原理武汉科技大学计算机科学与技术学院 第八章输入输出系统 本章内容3 1存储器概述3 2随机读写存储器3 3只读存储器和闪速存储器3 4高速存储器3 5cache存储器3 6虚拟存储器3 7存储保护 3 1存储器概述 存储器的作用用作计算机系统中的记忆设备 用来存放程序和数据 3 1 1存储器分类存储器中最小的存储单位就是存储元 它可存储一个二进制代码 由若干个存储元组成一个存储单元 然后再由许多存储单元组成一个存储器 根据存储材料的性能及使用方法不同 存储器有各种不同的分类方法 半导体器件磁性材料光材料 双极型MOS型 磁盘 磁带 1 按存储介质分 光盘 为了解决对存储器要求容量大 速度快 成本低三者之间的矛盾 目前通常采用多级存储器体系结构 即使用高速缓冲存储器 主存储器和外存储器 3 1 2存储器的分级结构 表3 1存储器的用途和特点 主存储器的性能指标主要是存储容量 存取时间 存储周期和存储器带宽 字存储单元即存放一个机器字的存储单元 相应的地址称为字地址 一个机器字可以包含数个字节 所以一个存储单元也可包含数个能够单独编址的字节地址 下面列出主存储器的主要几项技术指标 表3 2主存储器的主要几项技术指标 3 1 3主存储器的技术指标 3 2随机读写存储器 2 SRAM存储器的组成下面我们对此SRAM存储器的组成做一下具体介绍 存储体 存储单元的集合 通常用X选择线 行线 和Y选择线 列线 的交叉来选择所需要的单元 地址译码器 将用二进制代码表示的地址转换成输出端的高电位 用来驱动相应的读写电路 以便选择所要访问的存储单元 地址译码有两种方式 单译码 一个地址译码器 适用于小容量存储器 单译码的输出叫字选线 有效时 同时选中某一个字 存储单元 的所有位 设地址线为12根时 译码输出线有212 4096线双译码 X向和Y向两个译码器 适用于大容量存储器 双译码的输出分为X向和Y向 形成字位结构 由两者交叉选中相应的存储单元 设地址线为12根时 X译码和Y译码各6根时 输出线有2 26 128线 驱动器 双译码结构中 在译码器输出后加驱动器 驱动挂在各条X方向选择线上的所有存储元电路 I O电路 处于数据总线和被选用的单元之间 控制被选中的单元读出或写入 放大信息 片选 在地址选择时 首先要选片 只有当片选信号有效时 此片所连的地址线才有效 输出驱动电路 为了扩展存储器的容量 常需要将几个芯片的数据线并联使用 另外存储器的读出数据或写入数据都放在双向的数据总线上 这就用到三态输出缓冲器 3 SRAM存储器芯片实例存储容量 1K 4 共4096个存储元存储体 由4096个存储元排成64 64的矩阵 地址线 A0 A9共10根数据线 I O1 I O4共4根地址译码 采用字位结构X向用A3A4A5A6A7A8共6根 产生64条行选择线Y向用A0A1A2A9共4根 产生16条列选择线 每一列线同时接 驱动器 连接线 地址线 数据线 控制线 存储器芯片的容量是有限的 为了满足实际存储器的容量要求 需要对存储器进行扩展 主要方法有 1 位扩展法 目的 只加大字长 使每一个存储单元达到指定的位数 单元数不变例 用8K 1的RAM存储器芯片 组成8K 8位的存储器连接方法 CPU的地址线A0 A12共13根分别接到每一个芯片CPU的数据线D0 D7共8根分别接到8个芯片的I O端 4 存储器与CPU连接 目的 用多个芯片扩大存储单元数 每个存储单元的位数已满足使用要求 单元数为各芯片的单元数之和 例 用16K 8的RAM存储器芯片 组成64K 8位的存储器连接方法 CPU的数据线D0 D7共8根分别接到每一个芯片CPU的地址线A0 A13共14根分别接到每一个芯片CPU的地址线A14A15经2 4译码器产生4根片选信号线分别接到4个芯片的CE 或CS CPU的读写控制线WE分别接到每一个芯片 2 字扩展法 目的 既要扩大存储单元数 又要扩大其位数 设存储容量M N位 M个单元 每个单元N位 设芯片容量为L K位 则字位扩展所需芯片数为M N L K 其中 以N K个芯片为一组 进行位扩展 共需M L组 进行字扩展 例 用16K 4的RAM存储器芯片 组成64K 8位的存储器以8 2 2片为一组 共64 16 4组 CPU的数据线D0 D3和D4 D7共8根分别接到每组的2个芯片CPU的地址线A0 A13共14根分别接到每一个芯片组片选与读写控制线与字扩展同 不过每组的两片需同时接通 3 字位同时扩展法 5 存储器的读 写周期读周期 读周期与读出时间是两个不同的概念 读出时间是从给出有效地址到外部数据总线上稳定地出现所读出的数据信息所经历的时间 读周期时间则是存储片进行两次连续读操作时所必须间隔的时间 它总是大于或等于读出时间 tA tRC 写周期 要实现写操作 要求片选CS和写命令WE信号都为低 并且CS信号与WE信号相 与 的宽度至少应为tW tWC tW 例1 下图是SRAM的写入时序图 其中R W是读 写命令控制线 当R W线为低电平时 存储器按给定地址把数据线上的数据写入存储器 请指出下图写入时序中的错误 并画出正确的写入时序图 解 写入存储器的时序信号必须同步 通常 当R W线加负脉冲时 地址线和数据线的电平必须是稳定的 当R W线达到低电平时 数据立即被存储 因此 当R W线处于低电平时 如果数据线改变了数值 那么存储器将存储新的数据 同样 当R W线处于低电平时地址线如果发生了变化那么同样数据将存储到新的地址 或 正确的写入时序图见下图 1 四管动态存储元 四管的动态存储电路是将六管静态存储元电路中的负载管T3 T4去掉而成的 写操作 I O与I O加相反的电平 当T5 T6截止时 靠T1 T2管栅极电容的存储作用 在一定时间内 如2ms 可保留所写入的信息 读操作 先给出预充信号 使T9 T10管导通 位线D和D上的电容都达到电源电压 字选择线使T5 T6管导通时 存储的信息通过A B端向位线输出 刷新操作 为防止存储的信息电荷泄漏而丢失信息 由外界按一定规律不断给栅极进行充电 补足栅极的信息电荷 2 单管动态存储元 单管动态存储元电路由一个管子T1和一个电容C构成 写入 字选择线为 1 T1管导通 写入信息由位线 数据线 存入电容C中 读出 字选择线为 1 存储在电容C上的电荷 通过T1输出到数据线上 通过读出放大器即可得到存储信息 3 2 2DRAM存储器 表3 4单管存储元电路和四管存储元电路对 DRAM存储器芯片的结构大体与SRAM存储器芯片相似 由存储体与外围电路构成 但它集成度要高 外围电路更复杂 下图是16K 1位的DRAM存储器片2116的逻辑结构示意图 图3 1116K 1位DRAM芯片 3 DRAM存储芯片实例 动态MOS存储器采用 读出 方式进行刷新 从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止 这一段时间间隔叫刷新周期 常用的刷新方式有三种 一种是集中式 另一种是分散式 第三种是异步式 集中式刷新 在整个刷新间隔内 前一段时间重复进行读 写周期或维持周期 等到需要进行刷新操作时 便暂停读 写或维持周期 而逐行刷新整个存储器 它适用于高速存储器 设读写周期为0 5us 刷新周期为2ms 则在4000周期的前3872个为正常读 写 而在最后128个周期完成刷新操作 问题 有64us的死时间 不能进行读写操作 4 DRAM的刷新 分散式刷新 把一个存储系统周期tc分为两半 周期前半段时间tm用来读 写操作或维持信息 周期后半段时间tr作为刷新操作时间 这样 每经过128个系统周期时间 整个存储器便全部刷新一遍 问题 虽然不存在死时间 但是存取周期由0 5us增至1us 降低了整个系统的速度 异步式刷新 该方式是前两种方式的结合 例如2ms内分散刷新128行 则每隔2000 128 15 5 s刷新一行 例2 说明1M 1位DRAM片子的刷新方法 刷新周期定为8ms 解 如果选择一个行地址进行刷新 刷新地址为A0 A8 因此这一行上的2048个存储元同时进行刷新 即在8ms内进行512个周期的刷新 按照这个周期数 512 2048 1048567 即对1M位的存储元全部进行刷新 刷新方式可采用 在8ms中进行512次刷新操作的集中刷新方式 或按8ms 512 15 5 s刷新一次的 本小节以DRAM控制器W4006AF为例 说明80386中主存储器的构成方法 下面是采用W4006AF构成的80386主存储器简图 具体框图参看教材 3 2 3主存储器组成实例 1 EDRAM芯片 EDRAM芯片又称增强型DRAM芯片 它在DRAM芯片上集成了一个SRAM实现的小容量高速缓冲存储器 从而使DRAM芯片的性能得到显著改进 1M 4位EDRAM芯片的结构框图演示 3 2 4高性能的主存储器 以SRAM保存一行内容的办法 对成块传送非常有利 如果连续的地址高11位相同 意味着属于同一行地址 那么连续变动的9位列地址就会使SRAM中相应位组连续读出 这称为猝发式读取 EDRAM的这种结构还带来另外两个优点 在SRAM读出期间可同时对DRAM阵列进行刷新 芯片内的数据输出路径与输入路径是分开的 允许在写操作完成的同时来启动同一行的读操作 2 EDRAM内存条 一片EDRAM的容量为1M 4位 8片这样的芯片可组成M 32位的存储模块 8个芯片共用片选信号Sel 行选通信号RAS 刷新信号Ref和地址输入信号A0 A10 当某模块被选中 此模块的8个EDRAM芯片同时动作 8个4位数据端口D3 D0同时与32位数据总线交换数据 完成一次32位字的存取 上述存储模块本身具有高速成块存取能力 这种模块内存储字完全顺序排放 以猝发式存取来完成高速成块存取的方式 在当代微型机中获得了广泛应用 3 主存物理地址的存储空间分布 下面以奔腾PC机主存为例 说明主存物理地址的存储空间概念 奔腾PC机主存物理地址存储空间分布情况演示最大可访问主存空间为256MB 实际只安装了16MB的DRAM 存储空间分成基本内存 保留内存 扩展内存几部分 3 3只读存储器和闪速存储器 3 3 1只读存储器1 ROM的分类只读存储器简称ROM 它只能读出 不能写入 它的最大优点是具有不易失性 根据编程方式不同 ROM通常分为三类 1 掩膜式只读存储器ROM 2 一次可编程只读存储器PROM 3 多次可擦除可编程只读存储器EPROM 1 基本存储元电路P沟道EPROM的基本电路结构示意图演示 在N型基片上生长了两个高浓度的P型区 引出源极 S 和漏极 D 在S极与D极之间 有一个多晶硅做成的栅极 但它是浮空的 被绝缘物SiO2所包围 做好后的管子因栅极上无电荷 故管内无导电道 D极和S极之间是不导电的 把EPROM管用于存储矩阵时 其初态各位均为1 要写入 0 时 在D和S极之间加上25V高压 另加编程脉冲则可使D S之间被瞬间击穿 于是有 2 光擦可编程只读存储器 EPROM 电子通过绝缘层注入硅栅 在高压电源去除后硅栅中的电子被绝缘层包围而无法泄漏 硅栅变负 形成导电沟 从而使EPROM存储元导通 输出为 0 芯片封装于石英玻璃窗口内 当用紫外线照射该窗口时 浮空栅中的电子会形成光电流泄漏 从而使EPROM管恢复初态 2 EPROM实例 以2716为例容量 2K 8位 所以地址线11根A10 A0 7条X译码 4条Y译码数据线8根D7 D0 带输出缓冲器 例3 CPU的地址总线16根 A15 A0 A0为低位 双向数据总线8根 D7 D0 控制总线中与主存有关的信号有MREQ 允许访存 低电平有效 R W 高电平为读命令 低电平为写命令 主存地址空间分配如下 0000H 1FFFH 即0 8191为系统程序区 由ROM芯片组成 2000H 7FFFH 即8192 32767共24K为用户程序区 F800H FFFFH 即最后 最大地址 2K地址空间为系统程序工作区 上述地址为十进制 按字节编址 现有如下存储器芯片 EPROM 8K 8位 控制端仅有CS SRAM 16K 1位 2K 8位 4K 8位 8K 8位 请从上述芯片中选择适当芯片设计该计算机主存储器 画出主存储器逻辑框图 注意画出选片逻辑 可选用门电路及3 8译码器74LS138 与CPU的连接 说明选哪些存储器芯片 选多少片 解 根据给定条件 选用EPROM 8K 8位芯片1片 SRAM 8K 8位芯片3片 2K 8位芯片1片 3 8译码器仅用Y0 Y1 Y2 Y3和Y7输出端 且对最后的2K 8位芯片还需加门电路译码 主存储器的组成与CPU连接逻辑图如图所示 详细框图请参看教材 Y0 Y1 Y2 Y3 Y7 MREQ CS CS CS CS CS C W C W C W C W 1 什么是闪速存储器 闪速存储器是一种低功耗 高密度 大容量 具有ROM的非易失性 又具有电可擦除和可反复编程的一种新型存储器 它突破了传统的存储器体系 改善了现有存储器的特性 3 3 2闪速存储器 2 闪速存储器的逻辑结构 28F256A的逻辑方框图 容量 32K 8位 3 闪速存储器的工作原理 闪速存储器是在EPROM功能基础上增加了电路的电擦除和重新编程能力 28F256A引入一个指令寄存器来实现这种功能 其作用是 1 保证TTL电平的控制信号输入 2 在擦除和编程过程中稳定供电 3 最大限度的与EPROM兼容 当VPP引脚不加高电压时 它只是一个只读存储器 当VPP引脚加上高电压时 除实现EPROM通常操作外 通过指令寄存器 可以实现存储器内容的变更 当VPP VPPL时 指令寄存器的内容为读指令 使28F256A成为只读存储器 称为写保护 5 闪速存储器与CPU的连接CPU与闪速存储器进行连接的逻辑框图 中间部分是接口电路 地址总线和控制总线由CPU发向存储器和接口逻辑 数据总线为双向总线 地址总线的宽度决定了存储器的存储容量 数据总线的宽度决定了存储器的字长 具有闪速存储器的系统存储器结构 3 4高速存储器 3 4 1双端口存储器 由于CPU和主存储器在速度上不匹配 而且在一个CPU周期中可能需要用几个存储器字 这便限制了高速计算 为了使CPU不至因为等待存储器读写操作的完成而无事可做 可以采取一些加速CPU和存储器之间有效传输的特殊措施 1 双端口存储器的逻辑结构 双端口存储器是指同一个存储器具有两组相互独立的读写控制线路 是一种高速工作的存储器 2K 16位双端口存储器IDT7133的逻辑功能方框图演示 表3 8无冲突读写控制 1 存储器的模块化组织 一个由若干个模块组成的主存储器是线性编址的 这些地址在各模块有两种安排方式 一种是顺序方式 一种是交叉方式 顺序方式 某个模块进行存取时 其他模块不工作 某一模块出现故障时 其他模块可以照常工作 通过增添模块来扩充存储器容量比较方便 但各模块串行工作 存储器的带宽受到了限制 交叉方式 地址码的低位字段经过译码选择不同的模块 而高位字段指向相应模块内的存储字 连续地址分布在相邻的不同模块内 同一个模块内的地址都是不连续的 对连续字的成块传送可实现多模块流水式并行存取 大大提高存储器的带宽 3 4 2多模块交叉存储器 2 多模块交叉存储器的基本结构 四模块交叉存储器结构框图演示 每个模块各自以等同的方式与CPU传送信息 CPU同时访问四个模块 由存储器控制部件控制它们分时使用数据总线进行信息传递 这是一种并行存储器结构 下面做定量分析 我们认为模块字长等于数据总线宽度 模块存取一个字的存储周期为T 总线传送周期为 存储器的交叉模块数为m 为了实现流水线方式存取 应当满足T m m T 称为交叉存取度 交叉存储器要求其模块数必须大于或等于m 以保证启动某模块后经m 时间再次启动该模块时 它的上次存取操作已经完成 这样 连续读取m个字所需的时间为t1 T m 1 而顺序方式存储器连续读取m个字所需时间为t2 mT 交叉存储器的带宽确实大大提高了 m 4的流水线方式存取示意图如下 2001年程序员试题之一假设内存存取周期T 200ns 字长64位 数据总线宽度64位 总线传送周期为50ns 现用4个模块组成内存 并在连续4个地址中读出数据 如用顺序方式组织模块 则数据带宽为 59 如用交叉存储方式组织内存 则数据带宽可达约 60 59 A 80MbpsB 320MbpsC 640MbpsD 1280Mbps 60 A 300MbpsB 500MbpsC 700MbpsD 1200Mbps 例4 设存储器容量为32字 字长64位 模块数m 4 分别用顺序方式和交叉方式进行组织 存储周期T 200ns 数据总线宽度为64位 总线传送周期 50ns 问顺序存储器和交叉存储器的带宽各是多少 解 顺序存储器和交叉存储器连续读出m 4个字的信息总量都是 q 64位 4 256位顺序存储器和交叉存储器连续读出4个字所需的时间分别是 t2 mT 4 200ns 800ns 8 10 7s t1 T m 1 200ns 3 50ns 350ns 3 5 10 7s 顺序存储器和交叉存储器的带宽分别是 W2 q t2 256 8 10 7 32 107 位 s W1 q t1 256 3 5 10 7 73 107 位 s 3 二模块交叉存储器举例 二模块交叉存储器方框图演示 1 相联存储器的基本原理 相联存储器是指其中任一存储项内容作为地址来存取的存储器 选用来寻址存储器的子段叫做关键字 存放在相联存储器中的项可以看成具有KEY DATA这样的格式 其中KEY是地址 DATA是被读写信息 相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项 即关键字项 去检索该存储器 并将存储器中与该检索项符合的存储单元内容进行读出或写入 2 相联存储器的组成 相联存储器由存储体 检索寄存器 屏蔽寄存器 符合寄存器 比较线路 代码寄存器 控制线路等组成 框图请看演示 3 4 3相联存储器 CAM ContentAddressedMemory 检索寄存器 用来存放检索字 其位数和相联存储器的存储单元位数相等 屏蔽寄存器 用来存放屏蔽码 其位数和检索寄存位数相同 符合寄存器 用来存放按检索项内容检索存储体中与之符合的单元地址 其位数等于相联存储器的存储单元位数 每一位对应一个存储单元 位的序数即为相联存储器的单元地址 比较线路 把检索项和从存储体中读出的所有单元内容的相应位进行比较 如果有某个存储单元和检索项符合 就把符合寄存器的相应位置 1 表示该字已被检索 代码寄存器 用来存放存储体中读出的代码 或者存放向存储体中写入的代码 存储体 由高速半导体存储器构成 以求快速存取 在计算机系统中 相联存储器主要用于虚拟存储器中存放分段表 页表和快表 在高速缓冲存储器中 相联存储器作为存放cache的行地址之用 这是因为在这两种应用中 都需要快速查找 3 5cache存储器 3 5 1cache基本原理1 cache的功能cache是一种高速缓冲存储器 是为了解决CPU和主存之间速度不匹配而采用的一项重要技术 Cache的位置 介于CPU和主存之间 Cache的工作速度 Cache是用高速半导体材料制成 其工作速度数倍速于主存 通常是5 10倍 但容量小 全部功能由硬件实现 对程序员而言是透明的 设置Cache的目的 在不增加太多成本的前提下 希望得到一个速度与Cache相当 而容量与主存相当的存储器 Cache的理论基础 程序的局部性原理 包括时间上的局部性和空间上的局部性 所谓时间上的局部性 是指如果某一地址空间的程序被访问 则它可能还会被再次访问 如循环结构的程序就是如此 所谓空间上的局部性 是指如果某一地址空间的程序被访问 则它附近的程序有可能被访问 如顺序结构程序就是如此 3 cache的命中率 增加Cache的目的 就是在性能上使主存的平均读出时间尽可能接近Cache的读出时间 因此 Cache的命中率应接近于1 由于程序访问的局部性 这是可能的 在一个程序执行期间 设Nc表示Cache完成存取的总次数 Nm表示主存完成存取的总次数 h定义为命中率 则有 若tc表示命中时的Cache访问时间 tm表示未命中时的主存访问时间 1 h表示未命中率 则Cache 主存系统的平均访问时间ta为 ta htc 1 h tm 3 5 设r tm tc表示主存慢于Cache的倍率 e表示访问效率 则有 为提高访问效率 命中率h越接近1越好 r值以5 10为宜 不宜太大 命中率h与程序的行为 Cache的容量 组织方式 块的大小有关 例5 CPU执行一段程序时 cache完成存取的次数为1900次 主存完成存取的次数为100次 已知cache存取周期为50ns 主存存取周期为250ns 求cache 主存系统的效率和平均访问时间 解 命中率 h Nc Nc Nm 1900 1900 100 0 95主存存取时间与Cache存取时间比 r tm tc 250ns 50ns 5访问效率 e 1 r 1 r h 1 5 1 5 0 95 83 3 平均访问时间 ta tc e 50ns 0 833 60ns cache的容量很小 它保存的内容只是主存内容的一个子集 且cache与主存的数据交换是以块为单位 地址映射即是应用某种方法把主存地址定位到cache中 址映射方式有全相联方式 直接方式和组相联方式三种 1 行 Cache的数据块大小称为行用Li表示 i 0 1 2 m 1 共有m 2r行 2 块 主存的数据块大小称为块用Bj表示 j 0 1 2 n 1 共有n 2s块 3 行 块 字的关系 1行 1块 由k 2w个连续的字组成 字是CPU每次访问存储器时可存取的最小单位 3 5 2 主存与cache的地址映射 主存中一个块的地址 块号 与块的内容一起存于Cache行中 其中块地址存于Cache行的标记部分 设Cache为8行 主存为256块 每块 行 有同样多的字 则 Cache的地址 主存的地址 行号3bit 块号8bit 字地址 wbit 1 全相联映射方式 映射方式 主存的一个块直接拷贝到Cache中的任意一行上 CPU访问一个指定的内存地址 包括主存和Cache 为了快速检索 指令中的块号与Cache中所有行的标记同时在比较器中进行比较 如果块号命中 则按字地址从Cache中读取一个字 如果未命中 则按内存地址从主存中读取该字 并将此字所在的一个块调入Cache 注意 其中全部标记用一个CAM来实现 而数据用RAM实现 优点 由于这种方法可使主存的一个块直接拷贝到Cache中的任意一行上 非常灵活 缺点 比较器电路难于设计和实现应用 只适合于小容量cache采用 这也是一种多对一的映射关系 但一个主存块只能拷贝到Cache的一个特定行位置上去 Cache的行号i和主存的块号j有如下函数关系 i jmodm其中 m为cache中的总行数 如右图中m 8 2 直接映射方式 仍设Cache为8行 主存为256块 每块 行 有同样多的字 则允许存于Cache第 L0B0 B8 B16 B248L1B1 B9 B17 B249L2的主存块号是B2 B10 B18 B250 L7B7 B15 B23 B255 Cache的地址 主存的地址 行号 rbit 本例为3 块号 sbit 本例为8 其中标记s rbit 本例为5 块地址sbit 将s位的块地址分成两部分 r位的行号 s r位标记 标记与块数据一起保存该行中 每一个Cache行只可映射主存中的固定32块 32个块 CPU以一个给定的内存地址访问Cache时 首选用rbit行号找到Cache中的此一行 然后用地址中的s rbit标记部分与此行的标记在比较器做比较 若相符 即命中 在Cache中找到所要的块 则可用地址的最低w位 字地址 读取所需求的字 若不符 即未命中 由主存读取所要求的字 并将此字所对应的一个块调入Cache 优点 硬件简单 成本低 缺点 每个主存块只有一个固定的行位置可存放 容易产生冲突 注意 对于块号相距m整数倍的两个块 只能映射到Cache的同一行时 若发生新块不在Cache中而对应行号又已占用时 就发生了冲突 只能用新的块替代原已占Cache此行中的一块 即使此时Cache还有其它空行 也不可利用 应用 适合大容量cache采用 这种方式是前两种方式的折衷方案 它将Cache分成u组 每组v行 主存块存放到哪个组是固定的 至于存到该组哪一行是灵活的 即有如下函数关系 m u v组号q jmodu组相联映射方式中的每组行数v一般取值较小 这种规模的v路比较器容易设计和实现 而块在组中的排放又有一定的灵活性 冲突减少 Cache共8行 分4组 每组2行 即8 4 2 组号用2bit 组内的行号用1bit 主存256块 各块分到Cache的哪个组是固定的 主存的块号j与Cache的组号q的对应关系是 q jmod4 即 B0 B4 B8 B252共64个块映射到Cache的s0组B1 B5 B9 B253共64个块映射到Cache的s1组B2 B6 B10 B254共64个块映射到Cache的s2组B3 B7 B11 B255共64个块映射到Cache的s3组 主存的 3 组相联映射方式 至于具体映射到一个组中的哪一行 则可以任意 即组间采用直接映射 而组内采用全相联映射方式 s位的块号可分成两个部分 低d位为组号 而高s d位为标记 对于一个具体地址 首先将根据其标记与所在组的每一个行比较 查找是否在Cache中 若在 则命中 由低w位的块内地址直接访问Cache中的一个字 若不在 则访问主存 同时更新Cache 注意 为了便于比较器实现 组相联映射中的每组行数v一般取值较小 典型值为2 4 8 16 Cache工作原理要求它尽量保存最新数据 必然要产生替换 对直接映射的Cache来说 只要把此特定位置上的原主存块换出cache即可 对全相联和组相联Cache来说 就要从允许存放新主存块的若干特定行中选取一行换出 LFU算法将一段时间内被访问次数最少的那行数据换出 每行设置一个计数器 从0开始计数 每访问一次 被访行的计数器增1 当需要替换时 将计数值最小的行换出 同时将这些行的计数器都清零 换出 替换 淘汰 哪一行 应有一定的策略 常用的算法有三种 1最不经常使用 LFU 算法 这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内 不能严格反映近期访问情况 问题 3 5 3 替换策略 2近期最少使用 LRU 算法LRU算法将近期内长久未被访问过的行换出 每行也设置一个计数器 Cache每命中一次 命中行计数器清零 其它各行计数器增1 当需要替换时 将计数值最大的行换出 这种算法保护了刚拷贝到Cache中的新数据行 有较高的命中率 3随机替换 随机替换策略从特定的行位置中随机地选取一行换出 在硬件上容易实现 且速度也比前两种策略快 缺点是降低了命中率和Cache工作效率 CPU对cache的写入更改了Cache的内容 可选用写操作策略使cache内容和主存内容保持一致 1写回法当CPU写Cache命中时 只修改Cache的内容 而不立即写入主存 只有当此行被换出时才写回主存 这种方法减少了访问主存的次数 但是存在不一致性的隐患 3 5 4Cache的写操作策略 实现这种方法时 每个Cache行必须配置一个修改位 以反映此行是否被CPU修改过 2全写法当写Cache命中时 Cache与主存同时发生写修改 因而较好地维护了Cache与主存的内容的一致性 当写Cache未命中时 直接向主存进行写入 Cache中每行无需设置一个修改位以及相应的判断逻辑 缺点是降低了Cache的功效 3写一次法基于写回法并结合全写法的写策略 写命中与写未命中的处理方法与写回法基本相同 只是第一次写命中时要同时写入主存 这便于维护系统全部Cache的一致性 奔腾PC机采用两级Cache结构 安装在主板上的2级Cache L2 采用2路组相联映射方式 集成在CPU内的1级Cache L1 也采用2路组相联映射方式 L1又是L2的子集 从而使L1未命中处理时间大大缩短 CPU中的L1分设成各8KB的指令Cache和数据Cache 有利于CPU高速执行程序 数据Cache采用2路组相联结构 采用LRU替换算法 一组两行共用一个LRU二进制位 数据Cache的工作方式受CPU控制寄存器CR0中CD和NW位组合状态控制 如下表3 8所示 3 5 5奔腾PC机的Cache 其中CD 1 NW 1时复位后状态 而CD 0 NW 0时是最佳使用状态 两级Cache和主存之间的工作环境方框图演示CPU与外部数据交换时 存储器读写总线周期主要有两类 一类是256位猝发式传送 用于L1的行填入和行写出 一次完成整行的填入或写出 另一类是不经L1的64位传送 此时CHACE 为高电平 称为非超高速缓存式传送 L2级Cache采用的是写回法 L1级数据Cache采用的是写一次法 为了维护Cache的一致性 L1和L2均采用MESI协议 即要求每个Cache行有两个状态位 用以描述该行当前是处于修改态 专有态 共享态或者无效态中的哪种状态 从而决定对它的读 写操作行为 总之 L2级Cache的内容是主存的子集 而L1级Cache又是L2级Cache的子集 L2负责整个系统的Cache 主存一致性 L1负责响应L2 与L2一起维护L1 L2两个Cache的一致性 保证三级存储系统的一致性 3 6虚拟存储器 3 6 1虚拟存储器的基本概念1 什么是虚拟存储器 虚拟存储器只是一个容量非常大的存储器的逻辑模型 不是任何实际的物理存储器 它借助于磁盘等辅助存储器来扩大主存容量 使之为更大或更多的程序所使用 它指的是主存 外存层次 以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间 注意 物理地址由CPU地址引脚送出 用于访问主存的地址 虚拟地址由编译程序生成的 是程序的逻辑地址 其地址空间的大小受到辅助存储器容量的限制 主存 外存层次和cache 主存层次用的地址变换映射方法和替换策略是相同的 都基于程序局部性原理 它们遵循的原则是 把程序中最近常用的部分驻留在高速的存储器中 一旦这部分变得不常用了 把它们送回到低速的存储器中 这种换入换出是由硬件或操作系统完成的 对用户是透明的 力图使存储系统的性能接近高速存储器 价格接近低速存储器 两种存储系统的主要区别在于 在虚拟存储器中未命中的性能损失要远大于Cache系统中未命中的损失 2 主存 外存层次的基本信息传送单位 主存 外存层次的基本信息传送单位可采用几种不同的方案 段 页或段页 段是按照程序的逻辑结构划分成的多个相对独立部分 作为独立的逻辑单位 优点是段的逻辑独立性使它易于编译 管理 修改和保护 也便于多道程序共享 某些类型的段具有动态可变长度 允许自由调度以便有效利用主存空间 缺点是因为段的长度各不相同 起点和终点不定 给主存空间分配带来麻烦 而且容易在段间留下许多空余的零碎存储空间 造成浪费 页是主存物理空间中划分出来的等长的固定区域 优点是页面的起点和终点地址是固定的 方便造页表 新页调入主存也很容易掌握 比段式空间浪费小 缺点是处理 保护和共享都不及段式来得方便 段页式管理采用分段和分页结合的方法 程序按模块分段 段内再分页 进入主存以页为基本信息传送单位 用段表和页表进行两级定位管理 1 分页的方法页式虚拟存储系统中 虚拟空间分成页 称为逻辑页 主存空间也分成同样大小的页 称为物理页 虚存地址分为两个字段 实存地址也分两个字段 2 建立页表页表中每一个虚存逻辑页号有一个表目 表目内容包含该逻辑页所在的主存页面地址 物理页号 及控制位 装入位 修改位等 3 地址变换当程序被调入系统运行时 页表调入内存 其首地址装入页表基地址寄存器 以一个虚存地址访问存储器时 首先根据逻辑页号查页表 若该页已装入 则可得其主存物理页号 用它作为实存地址的高位字段 与虚存地址的页内行地址字段相拼接 产生完整的实主存地址 据此来访问主存 若该页未装入 则发生缺页中断 由OS调入该页 并记入页表中 4 速度影响 由于查表过程需要时间 所以运行速度变慢 逻辑页号页内行地址 物理页号页内行地址 3 6 2页式虚拟存储器 为了避免页表已保存或已调入主存储器时对主存访问次数的增多 把页表的最活跃部分存放在高速存储器中组成快表 快表与慢表实现内部地址变换的方式演示 快表由硬件组成 比页表小得多 查表时 由逻辑页号同时去查快表和慢表 当在快表中有此逻辑页号时 就能很快地找到对应的物理页号送入实主存地址寄存器 从而做到虽采用虚拟存储器但访主存速度几乎没有下降 GC88 8某虚拟存储器的用户编程空间共32个页面 每页1KB 主存为16KB 假定某时刻该用户页表中已调入主存的页面的虚页号和物理页号对照表为 虚页号物理页号051102487 则下表中与虚地址相对应的物理地址为 如果找不到 即为页失效 虚拟地址物理地址0A5CH1A5CH 虚拟存储器的功能是由完成的 在虚拟存储系统中 采用提高的速度 A B 页失效 1E5CH 2A5CH 165CH 125CH 1A5CHC 硬件 软件 软硬件结合D 高速辅助存储器 高速光盘存储器 快速通道 高速缓冲存储器E 连接编辑 虚空间分配 动态地址翻译 动态连接 A B C D E 页式的不足需要对程序进行静态链接 形成一个一维逻辑地址空间 不便于页面的共享 因链接可能造成一页有共享和不共享内容 分段的方法按程序的逻辑结构划分 各个段的长度因程序而异 程序为二维地址结构 每个段均从0开始编址 建立段表每一个段有一个表目 内容包括 段号段内行地址 段起始地址装入位段长 地址变换 程序运行时 段表装入内存 段表首地址装入段标基址寄存器 对于一个要访问的逻辑地址 根据段号查段表 若装入位为 1 则表示该段已装入内存 由段表可取该段在内存中的段起始地址 由 段起始地址 段内地址 即可得所对应的物理地址 逻辑地址为 3 6 3段式虚拟存储器 段表也是一个段 可以存在外存中 但一般是驻留在主存中 虚存地址向实存地址的变换过程演示 1 段式的问题因段长不等 容易造成存储碎片 新入段只能 替换段 2 段页式的实现段页式虚拟存储器是段式和页式虚拟存储器的结合 它把程序按逻辑单位分段以后 再把每段分成固定大小的页 在段页式虚拟存储系统中 每道程序是通过一个段表和一组页表来进行定位的 段表中的每个表目对应一个段 每个表目有一个指向该段的页表起始地址及该段的控制保护信息 由页表指明该段各页在主存中的位置以及是否已装入 已修改等状态信息 如果有多个用户在机器上运行 多道程序的每一道需要一个基号 由它指明该道程序的段表起始地址 虚拟地址格式如下 地址变换先查段表找到该段所对应的页表 再查页表转换成物理地址 优缺点优点 程序对主存的调入调出是按页面进行的 但它又可以按段 3 6 4段页式虚拟存储器 实现共享和保护 兼备页式和段式的优点 缺点 在映象过程中需要多次查表 降低了程序的运行速度 例6 假设有三道程序 用户标志号为A B C 其基址寄存器内容分别为SA SB SC 逻辑地址到物理地址的变换过程见演示在主存中 每道程序都有一张段表 A程序有4段 C程序有3段 每段应有一张页表 段表的每行就表示相应页表的起始位置 而页表内的每行即为相应的物理页号 请说明虚实地址变换过程 解 地址变换过程如下 根据基号C执行SC加1 段号 操作 得到段表相应行地址 其内容为页表的起始地址 执行b 2 页号 得到物理页号的地址 其内容即为物理页10 物理页号与页内地址拼接即得物理地址 如计算机只有一个基址寄存器 基号可不要 多道程序切换时 操作系统修改基址寄存器内容 可以看出 段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表 虚拟存储器中的页面替换策略和cache中的行替换策略有很多相似之处 但有三点显著不同 1 缺页至少要涉及一次磁盘存取 读取所缺的页 缺页使系统蒙受的损失要比cache未命中大得多 2 页面替换是由操作系统软件实现的 3 页面替换的选择余地很大 属于一个进程的页面都可替换 虚拟存储器中的替换策略一般采用LRU算法 LFU算法 FIFO算法 或将两种算法结合起来使用 对于将被替换出去的页面 假如该页调入主存后没有被修改 就不必进行处理 否则就把该页重新写入外存 以保证外存中数据的正确性 为此 在页表的每一行应设置一修改位 例7 假设主存只有a b c三个页框 组成a进c出的FIFO队列 进程访问页面的序列是0 1 2 4 2 3 0 2 1 3 2号 若采用 FIFO算法 FIFO算法 LRU算法 用列表法分别求两种替换策略情况下的命中率 解 求解表格如下所示 3 6 5替换算法 1 奔腾PC的虚地址模式 奔腾PC的存储管理部件MMU包括分段部件SU和分页部件PU两部份 可允许SU PU单独工作或同时工作 3 6 6虚拟存储器实例 分段不分页模式 虚拟地址由一个16位的段参照和一个32位的偏移组成 分段部件SU将二维的分段虚拟地址转换成一维的32位线性地址 优点是无需访问页目录和页表 地址转换速度快 对段提供的一些保护定义可以一直贯通到段的单个字节级 分段分页模式 在分段基础上增加分页存储管理的模式 即将SU部件转换后的32位线性地址看成由页目录 页表 页内偏移三个字段组成 再由PU部件完成两级页表的查找 将其转换成32位物理地址 兼顾了分段和分页两种方式的优点 不分段分页模式 这种模式下SU不工作 只是分页部件PU工作 程序也不提供段参照 寄存器提供的32位地址被看成是由页目录 页表 页内偏移三个字段组成 由PU完成虚拟地址到物理地址的转换 这种模式减少了虚拟空间 但能提供保护机制 比分段模式具有更大的灵活性 2 保护模式的分页地址转换奔腾机4MB分页方式地址转换演示 页面 页框 大小为4MB的分页方式使用单级页表 只进行一次主存访问 地址转换过程加快了 在此方式下 32位线性地址分为高10位的页面和低22位的页内偏移两个字段 页表项的I位指示页面大小 P位为出现位 A位为访问过位 D位为修改过位 RW位用于读 写控制 US位用于用户 监督控制 PCD位用于页cache禁止的控制 PWT位用于页全写法的控制 3 7存储保护 3 7 1存储区域保护当多个用户共享主存时 应防止由于一个用户程序出错而破坏其他用户的程序和系统软件 以及一个用户程序不合法地访问不是分配给它的主存区域 在虚拟存储系统中 通常采用页表保护 段表保护和键式保护方法 1 页表保护和段表保护 每个程序的段表和页表本身都有自己的保护功能 每个程序的虚页号是固定的 经过虚地址向实地址变换后的实存页号也就固定了 那么不论虚地址如何出错 也只能影响到相对的几个主存页面 不会侵犯其他程序空间 段表和页表的保护功能相同 但段表中除包括段表起点外 还包括段长 段表保护方式演示 2 键保护方式 这种方法是为主存的每一页配一个键 称为存储键 就象一把锁 每个用户的实存页面的键都相同 为了打开这个锁 必须有钥匙 称为访问键 访问键赋予每道程序 并保存在该道程序的状态寄存器中 当数据要写入主存的某一页时 访问键要与存储键相比较 若两键相符 则允许访问该页 否则拒绝访问 键保护方式演示 3 环保护方式 环保护方式可以做到对正在执行的程序本身的核心部分或关键部分进行保护 它是按系统程序和用户程序的重要性及对整个系统的正常运行的影响程度进行分层 每一层叫做一个环 在现行程序运行前由操作系统定好程序各页的环号 并置入页表中 然后把该道程序的开始环号送入CPU的现行环号寄存器 程序可以访问任何 外层空间 访问内层空间则需由操作系统的环控例行程序判断这个向内访问是否合法 环保护方式演示 对主存信息的使用可以有三种方式 读 R 写 W 和执行 E 相应的访问方式保护就有R W E三种方式形成的逻辑组合 这些访问方式保护通常作为程序状态寄存器的保护位 并且和区域保护结合起来实现 表3 11访问方式保护的逻辑组合 3 7 2访问方式保护 三级存储存储体系结构的含义及作用存储器的技术指标 SRAM和DRAM的异同只读存储器的特点 种类和作用位扩展 字扩展及存储器与CPU的连接提高存取速度的措施高速缓冲存储器的作用虚拟存储器的含义 作用不同虚拟存储器管理模式及其地址转换 本章要点
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!