




已阅读5页,还剩174页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2007 7 2 计算机组成原理 1 第4章存储系统 计算机组成原理 2007 7 2 计算机组成原理 2 第4章存储系统 本章介绍了计算机中各种常见存储器芯片的结构和工作原理 以及当存储器芯片不满足系统需求时 如何对存储器进行扩展 采用何种方式对存储器进行管理以提高存储空间的利用率 2007 7 2 计算机组成原理 3 本章要点 存储器分类及其工作原理芯片扩展方法存储空间管理方法 2007 7 2 计算机组成原理 4 4 1计算机存储系统组织方式 随着计算机和网络技术的发展 人们对计算机的要求逐渐提高 从最开始只需要计算机代替人进行计算 逐渐过渡到要求计算机系统能长时间保存大量信息 并且方便用户进行异地查询 为了满足人们对各类信息的查询要求 现在的计算机必须要配备容量较大的存储系统 但是计算机存储系统 特别是磁盘存储系统 自身存在很难克服的缺陷 如读取速度慢 寻道时间长等 然而 尽管存储器速度提升缓慢 处理器的处理能力却在快速提高 这就造成了新的矛盾 存储器的数据传输速度远远小于处理器处理数据的速度 使得存储器的性能成为计算机系统性能的瓶颈 2007 7 2 计算机组成原理 5 基于以上原因 计算机中配置存储器时 需要考虑两方面的问题 1 如何利用有限的存储空间尽可能多地存储数据 方便快捷地读出数据 2 如何将慢速的磁盘存储器和快速的处理器匹配起来 第1个问题的解决方法 我们将在4 5节中详细介绍 下面简单介绍第2个问题的解决方法 为了同时满足用户对容量和速度的要求 计算机系统往往会采用以下的存储器配置方法 如图4 1所示 2007 7 2 计算机组成原理 6 2007 7 2 计算机组成原理 7 大容量磁盘存储器处于存储系统的最底层 其主要作用是给计算机系统提供一个较大的存储容量 因此 对它的要求主要是存储容量要尽可能大 在计算机中配置了磁盘存储器后已经解决了容量问题 为什么还要加内存呢 原因在于匹配CPU和磁盘的速度 从前面的分析我们可以知道 计算机中 CPU的处理速度比磁盘的读写速度快得多 如果不进行速度匹配 则会出现CPU长时间等待磁盘输入数据的情况 从而降低CPU利用率 影响系统性能 内存的读写速度比CPU的速度慢 但是比磁盘快 刚好可以起到速度匹配的作用 同时 因为内存解决的主要问题不是容量问题 所以对其容量的要求不是特别高 2007 7 2 计算机组成原理 8 寄存器和Cache都是CPU中的存储器 但是二者作用却不完全相同 寄存器的读写速度最快 主要用于直接提供CPU计算所需要的数据 Cache 又叫高速缓存 作用与内存相似 主要用于匹配相对低速的内存和高速的寄存器 由此可见 二者对速度的要求都很高 而对容量的要求则较小 基于以上的原因 目前市场上的主流磁盘容量都在160G以上 内存的容量大都是512M或1G 而Cache的容量则在1M左右 思考 联系实际 一台微型计算机存储系统包含那些部件 它们分别存在于计算机那些地方 作用是什么 2007 7 2 计算机组成原理 9 4 2半导体存储器芯片介绍 目前 几乎所有的存储器都是用半导体材料做成的 但是根据存储器的使用特性可以将存储器分为两类 随机存取存储器 RandomAccessMemory RAM 和只读存储器 Read OnlyMemory ROM 只读存储器跟随机存储器不同 用户在使用时只能读取其中的数据 如果要对ROM中的数据进行修改 则必须采用特殊的方法进行 因此ROM可以用于保存不需要经常改变的程序和数据 如 设备驱动程序等 同时 ROM有掉电保护功能 可用于制造磁盘等能长时间保存信息且不受断电影响的存储器 常用ROM有以下五类 2007 7 2 计算机组成原理 10 掩模式 Masked ROM 该种ROM不允许用户对其修改 可编程ROM ProgrammableROM PROM 该种ROM允许用户对其进行一次修改 一旦程序或数据写入则不允许用户再次修改 可擦除PROM ErasablePROM EPROM 该种ROM允许用户在第一次写入数据后再次进行修改 但是修改时必须先用紫外光擦除原来的数据 电可擦除PROM ElectricallyErasableROM EEPROM又叫E2PROM 该种存储器与PROM一样可以对数据进行多次修改 但是不同的是E2PROM不需要紫外光擦除 而是采用加电的方式进行擦除 闪存 Flashmemory 闪存是电可擦除只读存储器 EEPROM 的变种 所不同的是 闪存的删除写入是以字节为单位 而EEPROM是以整块芯片为单位 现在的U盘 MP3和MP4等都使用的是闪存 2007 7 2 计算机组成原理 11 4 2 1SRAM芯片的结构和工作原理1 内部存储单元SRAM的一个存储单元可以用来保存一位数据 即可保存一个 0 或一个 1 电路如图4 2所示 图4 2SRAM内部存储单元电路中使用的T1 T2 T3 T4均是NMOS管 X是单元行地址选择线 Y是单元列地址选择线 作为存储单元电路 该电路至少应该有保持 写入和读出三种状态 2007 7 2 计算机组成原理 12 1 保持图中T1 T2 T3 T4能构成一个双稳态电路 T1和T2在某一时刻只能有一个处于导通状态 当T1截止 T2导通时 节点A处于高电平状态 节点B处于低电平状态 A的高电平可以保证T2持续导通 B的低电平可以保证T1持续截止 反之亦然 如果没有外界因素的影响 该电路的状态将长时间保持 所以 SRAM不需要经常刷新 约定 T1截止 T2导通时表示该单元电路状态为 1 T1导通 T2截止时表示该单元电路状态为 0 从以上分析可以看出 A点的状态即为单元电路保存的信息状态 A为高电平时 单元信息为 1 A为低电平时 单元信息为 0 因此 读出时 只需要读出A点的状态即可 2007 7 2 计算机组成原理 13 2 写入要对此单元进行写入操作 要选中该单元 并且要将数据放在数据线上 选中时 该单元的行选择线X和列选择线Y都处于高电平状态 X Y的高电平 使得T5 T8全部导通 如果待写入的数据是 0 则I 0数据线被置为低电平 数据线被置为高电平 不管A B之前的状态如何 此时A点将被强制置为低电平 B点将被强制置为高电平 进而使得T1导通而T2截止 反之如果待写入数据为 1 使得T1截止而T2导通 2007 7 2 计算机组成原理 14 3 读出跟写入一样 读出单元数据时 也要先选中该电源 不同的是 此时往数据线上放数据 选中时 该单元的行选择线X和列选择线Y都处于高电平状态 X Y的高电平 使得T5 T8全部导通 I O数据线直接与A点相连 A两点的状态将通过数据线输出 2007 7 2 计算机组成原理 15 4 2 2DRAM芯片的结构和工作原理相对于SRAM来说 DRAM具有容易集成 位价格低 容量大和功耗低等优点 但是由于受到器件的限制 DRAM的存取速度比SRAM慢 而且需要定时刷新 1 内部存储单元跟SRAM一样 DRAM的一个存储单元也可以用来保存一位数据 即可保存一个 0 或一个 1 常见的DRAM的基本存储电路可以分为多管型和单管型 下面以单管型为例介绍电路原理 单管型存储单元如图4 4所示 2007 7 2 计算机组成原理 16 电路中的电容C和NMOS管T是电路的核心器件 单元存储的信息是通过电容的高低电压来表示的 电容充电后的高电位表示 1 放电后的低电位表示 0 读出时只要能读出C的电位即可 T管的栅极接行选择信号 源极通过T2接数据线 其作用是控制对C的充电 当T管导通时 源极电位与电容电位相同 对单元电路的写入 读出和保持这三个基本操作的基本原理如下 2007 7 2 计算机组成原理 17 1 写入要对单元进行写入 行列选择信号必须有效 且待写入数据需要放在数据线上 此时T1 T2导通 数据线与源极相连 而源极电位与电容电位相同 因此 数据线上的电位将强制修改电容的电位 从而完成写入操作 2 读出该单元的行列选择地址有效时 T1 T2导通 所以电容电位的高低能通过数据线输出 3 保持单元电路是通过C的高低电位表示信息 然而电容的电压不能长时间保持 如果不定期对C的数据进行刷新 则其保存的信息 1 经过一段时间后将会变为 0 导致数据丢失 通常每1 2ms就需要对其状态进行一次刷新 2007 7 2 计算机组成原理 18 2 典型芯片的工作原理下面我们以Intel2164A芯片为例介绍DRAM芯片的工作过程 1 芯片简介Intel2164A芯片存储容量为64K 1位 最大存取时间为200ns 刷新时间间隔为2ms 采用双列直插式封装 有16个引脚 其引脚图如图4 5所示 各引脚功能 行地址选通信号 用于锁存行地址 低电平有效 兼作芯片选择信号 为低电平时 表明芯片当前接收的是行地址 列地址选通信号 地址总线上先送上行地址 后送上列地址 它们分别在RAS和CAS有效期间被锁存芯片中 A0 A7 地址线 用来分时接收CPU送来的8位行 列地址 DIN 数据输入 DOUT 数据输出 NC 未用引脚 VCC 5V电源引脚 GND 接地引脚 读写允许控制信号输入引脚 当其为低电平时 执行写操作 否则 执行读操作 2007 7 2 计算机组成原理 19 2 工作原理2164A有64K 1位的存储空间 需要16位地址线才能寻址 由于其存储单元采用矩阵的方式设置 我们只要知道某个存储单元的行列地址就可以对该单元进行读写 所以芯片16位地址线又可以分成8位行地址线和8为列地址线 为了节约成本和减少芯片引脚数量 芯片只用了8位地址线 采用分时的方式分别传送行地址和列地址 传送地址时 先传送8位行地址 后传送8位列地址 为了区别行列地址 芯片设置了两个低电平有效的引脚 RowAddressStrobe 和 ColumnAddressStrobe 分别作为行地址选通信号和列地址选通信号 当信号为低电平时 把此时地址线上的8位地址信号送至内部的行地址锁存器 同理当信号为低电平时 把此时地址线上的8位地址信号送至内部的列地址锁存器 2007 7 2 计算机组成原理 20 与6116不同 2164A的输入输出数据线使用了不同的引脚 在实际使用时 常将这两位数据线与数据总线的同一位相连 为了保证正确的接收数据和输出数据 芯片设置了读写允许控制信号输入引脚 当 0时 芯片接收数据 并根据行列地址信号将此数据写入到相应的存储单元 当 1时 芯片根据行列地址信号读出相应的存储单元的数据 并且输出到数据总线上 2007 7 2 计算机组成原理 21 4 2 3ROM的结构和原理下面 我们以EPROM的典型芯片Intel2716为例介绍ROM芯片的工作原理 1 内部存储单元EPROM的基本电路如图4 6所示 其核心器件是浮置栅雪崩注入型场效管 FloatinggridAvalancheinjection FAMOS 图4 6EPROM内部存储单元在没有被写入数据前 FAMOS管的栅极没有电子 源漏极间没有形成导电沟道 不导通 此时保存的信息为 1 对其进行写入操作后 其栅极上被注入电子 源漏极间形成导电沟道 管子导通 此时保存的信息为 0 2007 7 2 计算机组成原理 22 2 典型芯片的工作原理 1 芯片简介Intel2716是容量为2K 8位 读出时间在350ns 450ns 有24个引脚 采用双列直插式封装的芯片 芯片引脚图如图4 7所示 各引脚功能如下 Al0 A0 地址信号输入引脚 可寻址芯片的2K个存储单元 O7 O0 双向数据信号输入输出引脚 片选信号输入引脚 低电平有效 只有当该引脚转入低电平时 才能对相应的芯片进行操作 数据输出允许控制信号引脚 低电平时允许数据输出 Vcc 5V电源 VPP 25V 5V电源 用于在专用装置上进行写操作 GND 接地引脚 2007 7 2 计算机组成原理 23 2 工作原理芯片有两个电源输入引脚VCC和VPP 引脚VCC作为芯片电源引脚 一直接高电平 即VCC 1 引脚VPP用以控制是否对芯片进行写操作 当VPP 5V时 不允许对写芯片 但是当VPP 25V时 能对芯片读操作也能进行写操作 其工作原理如下 当VPP 5V 且时 允许对读芯片 芯片将地址信号所指定的单元的信息放到输出数据线O7 O0上 当VPP 5V 时 无论状态如何 芯片都将进入保持状态 此时不能对芯片进行读写 输出数据线呈高阻状态 当VPP 25V 为持续50ms的高电平 时 数据线上的信息将被写入到地址信息确定的单元里 此时芯片处于编程写入状态 数据线处于输入状态 编程完成后 需要验证写入芯片的数据是否正确 因此 Intel2176芯片还能提供程序校验功能 即当VPP 25V 时 能对芯片内的存储单元进行读操作 根据读出的数据判断写入的程序是否正确 当VPP 25V 时 不允许写芯片 此时数据线又将呈高阻状态 2007 7 2 计算机组成原理 24 4 2 4相联存储器相联存储器 associativememory 是一种根据存储内容来进行存取的存储器 也称为按内容访问存储器 contentaddressedmemory 它跟一般的存储器不同 一般存储器进行读写时 需要控制芯片提供读写的单元地址 而相联存储器则是按顺序写入 根据需要读取的内容读出 严格地说 相联存储器是一种存取方法 而不是一种存储器 2007 7 2 计算机组成原理 25 任何一个记录都有很多的数据项 如学生的姓名 学号 联系方式等 每个数据项都是不完全相同的 特别是同一所学校的学生的学号是不可能重复的 因此 在对这类数据进行读出时 选定一个数据项作为相联关键字来代表要查找的对象 如学生的学号 读出时 根据中央处理单元给出的这个相联关键字 用它和存储器中所有单元中的一部分信息进行比较 如果相等 则将此单元中余下的信息读出 这是实现存储器并行操作的一种有效途径 特别适合于信息的检索和更新 现在的大部分数据库都是采用这种方法实现的 为了进行正确比较 存储器必须设置一定的机构来实现比较的过程 这些机构包括 比较寄存器 屏蔽寄存器 字选择寄存器 查找结果寄存器等 各寄存器作用如下 2007 7 2 计算机组成原理 26 1 比较寄存器用来存放检索字 其位数和相联存储器的存储单元位数相等 2 屏蔽寄存器用来存放屏蔽码 其位数和检索寄存位数相同 当按内容进行检索时 相应地把MR中要比较的位设置成 1 不要比较的设置成 0 置 1 的字段为关键字段 3 查找结果寄存器 位数等于相联存储器的存储单元位数 每一位对应一个存储单元 位的序数即为相联存储器的单元地址 若比较结果第i个字满足要求 则将第i位置为 1 其余的均为 0 2007 7 2 计算机组成原理 27 4 字选择寄存器 位数与记录的数据项的数量相同 用以确定哪些字参与检索 参与检索的则相应位为 1 其余的为 0 思考 目前 我们使用的那些存储产品采用的是半导体存储技术 2007 7 2 计算机组成原理 28 4 3主存储系统 主存储器主要有以下几个性能指标 存储容量 所谓存储容量即存储器能够保存的数据的数量 常用的单位有GB MB KB等 1GB 1024MB 1MB 1024KB 1KB 1024B 也可以用乘积的方式表示 公式为 容量 字数 字长如1KB可以表示为1K 8位 1MB可以表示为1M 8位等 存取速度 所谓存取速度即是单位时间内存储器能读写的位数或字节数 该参数跟存储器的时钟频率有关 一般情况下 时钟频率越高 存取速度越快 如果用位数衡量 常用单位有Kb s Mb s等 如果用字节数衡量 常用单位有KB s MB s等 2007 7 2 计算机组成原理 29 读写周期 所谓读写周期是指读写一位或一个字节所需要的时间 该参数与存取速度成反比 存取速度越快 周期越短 反之亦然 前面我们介绍了几种常用的存储器芯片的结构 电路和工作原理 但是不同的应用场合会对芯片提出不同的要求 现有的芯片往往不能完全满足系统的需要 因此如何用现有的芯片来实现系统的性能要求就成为了存储系统必须解决的重要问题之一 芯片不满足使用的需要主要有以下几个方面 2007 7 2 计算机组成原理 30 1 位数不够如系统需要的存储容量为128K 8位 可选的芯片却只有128K 1位或者128K 4位的芯片 这种情况下 芯片能够满足128K的要求 而位数却不能满足8位的要求 此时需要对位数进行扩展 即位扩展 2007 7 2 计算机组成原理 31 2 字数不够如系统需要的存储容量为256K 8位 可选的芯片却只有64K 8位或者128K 8位的芯片 这种情况下 芯片能满足8位的要求 但却不能满足容量256K的要求 此时需要对字进行扩展 即字扩展 2007 7 2 计算机组成原理 32 3 字数位数均不够如系统需要的存储容量为256K 8位 可选的芯片却只有64K 4位或者128K 4位等芯片 这种情况下 芯片既不能满足8位的要求 又不能满足容量256K的要求 此时需要对位数和字同时进行扩展 即字位扩展 当芯片不能直接满足系统需求时 设计者就需要对存储器进行扩展 上述三种情况是对存储器进行扩展时的三种主要情况 因此对存储器的扩展又主要有位扩展 字扩展和字位扩展 2007 7 2 计算机组成原理 33 值得一提的是 如果发生下述情况 系统需要的存储容量为128K 8位 可选的芯片只有256K 8位的芯片 这时不需要进行芯片扩展 只需要在编程时仅使用低地址空间即可 系统需要的存储容量为128K 8位 可选的芯片只有128K 16位的芯片 这时也不需要进行芯片扩展 只需要在编程时只使用输出数据的低8位 高8位悬空或者置零即可 所以只有当可选芯片的字或位不够用时才需要进行芯片扩展 2007 7 2 计算机组成原理 34 4 3 1位扩展所谓位扩展 就是当单个芯片的容量能满足要求 但是输出位数不满足系统对存储器输出位数的要求时 通过几个芯片同时输出的方式对存储器的输出位数进行扩展 根据前面的介绍 我们知道了何时需要进行位扩展 那么如何用位数较少的芯片来扩展位数较多的存储器呢 比如 系统需要的存储容量为128K 8位 可选的芯片却只有128K 4位的芯片 其扩展过程如下 2007 7 2 计算机组成原理 35 1 确定扩展类型 仔细分析系统要求可知 系统需要的容量跟芯片容量刚好相等 但是位数不同 因此我们需要进行位扩展 2 需要确定所需芯片的数量 系统要求存储器每次输出8位数据 而一片芯片每次只能输出4位 则为了满足系统需求 每次要两片芯片同时输出 因此在对芯片进行选择时 这两片芯片的片选信号和地址线必须相同 实际连接电路时只需要将片选信号和地址线连在一起即可 3 因为扩展时需要由两个4位组成一个8位进行输出 所以要确定哪4位为高4位 哪4位为低4位 根据以上步骤 可以得出如图4 8所示的扩展电路图 2007 7 2 计算机组成原理 36 2007 7 2 计算机组成原理 37 图中 两芯片的片选信号 读写控制信号和地址信号连在一起 当系统需要进行读写时 两块芯片将同时工作 现以读地址为1024的单元为例介绍扩展后的存储器工作过程 控制芯片将其与片选信号相连的引脚置为低电平 将与读写控制线相连的引脚置为低电平 将待读取地址 00100H 通过地址总线传送给存储器 因为两块芯片的以上三个信号相同 它们将同时把其1024单元中的地址放到数据线上输出 两组输出数据线分别连接控制芯片的数据线的高4位和低4位 所以控制器在发出一个读信号后 将收到一组8位的数据 从而实现了用两片4位输出芯片扩展为一个8位输出的存储器 2007 7 2 计算机组成原理 38 4 3 2字扩展所谓字扩展 就是当单个芯片输出位数满足系统要求 而容量不满足要求时 用多个芯片采用地址分段的方式对存储容量进行扩展 参与扩展的每个芯片的地址范围不同 注意 在学习本节内容的过程中 大家一定要注意字扩展和位扩展方法的不同 2007 7 2 计算机组成原理 39 下面用一个例子解释字扩展的方法 系统需要的存储容量为256K 8位 可选的芯片只有64K 8位 其扩展的步骤如下 1 确定扩展类型分析系统要求可知 芯片输出数据的位数与系统需求一致 所以不需要进行位扩展 芯片容量只有系统需求的四分之一 所以本例中 为了满足系统需求 需要用多个小容量芯片组成一个较大容量的存储器 即字扩展 2007 7 2 计算机组成原理 40 2 确定芯片数量系统需要256K的容量 如果用64K的芯片则需要4片才能满足系统需求 所以本例中 参加扩展的芯片数量为4 注意 如果实际需要的容量不是芯片容量的整数倍 则扩展后的容量不能比系统需要的容量小 3 选择合适的扩展方法字扩展时常采用的方法有线选法 数字逻辑法和译码法 2007 7 2 计算机组成原理 41 下面分别对以上三种方法进行介绍 线选法 所谓线选法就是在产生片选信号 低电平有效 时 不是由几位地址线的组合状态经过运算后得出 而是用直接将控制器的一根地址线与芯片使能端相连 线选法是字扩展中最简单的方法 其优点是片选信号的产生过程简单 不容易出现错误 但是由于每个芯片都占用一根地址线 当芯片数量增多时要求控制器地址线数量很多 而且此方法会严重浪费控制器的逻辑地址空间 限制了程序的规模 2007 7 2 计算机组成原理 42 采用线选法对上述例子进行字扩展的电路图如图4 9所示 图中芯片的地址信号都是使用的A15 A0这16位低地址线 但是芯片的片选信号都分别占用了A16 A19中的一根地址线 则每个芯片的地址见表4 3所示 假设控制器的地址线共有20根 即A19 A0 寻址空间大小为1M 从上表中我们可以看出 被浪费的地址空间是00000H 6FFFFH 80000H AFFFFH C0000H CFFFFH和F0000 FFFFFH四个范围 地址空间大小占768K 占控制器寻址空间的75 对地址空间造成了严重的浪费 且当系统需求增大时 被浪费的地址也无法再被利用 2007 7 2 计算机组成原理 43 2007 7 2 计算机组成原理 44 2007 7 2 计算机组成原理 45 为了克服线选法对地址空间的浪费 我们常采用数字逻辑法和译码法进行字扩展 数字逻辑法 所谓数字逻辑法即用数字逻辑电路对两位高地址进行逻辑运算产生片选信号 各个芯片的存储单元的地址情况 256K的容量需要18根地址线 A17 A0 而64K的容量需要16根地址线 因此只需要从系统的18根地址线中取出低16位 A15 A0 即可对芯片内的每个存储单元进行寻址 剩余的两位高地址 A17 A16 有4种组合 每一种组合刚好可以用作产生片选信号 每个芯片的地址范围见表4 4所示 2007 7 2 计算机组成原理 46 2007 7 2 计算机组成原理 47 2007 7 2 计算机组成原理 48 从上述例子中 我们可以看出 逻辑运算法克服了线选法的缺点 地址空间的利用率达到了100 同时也节省了两根地址线 所以存储器的容量还可以进一步扩展 但是片选信号的产生复杂 容易出现错误 随着扩展时所需芯片数量的增加 电路的复杂性将会成级数方式增加 为了达到地址空间100 的利用率和使用的地址线尽可能少的要求 克服逻辑运算法产生片选信号过程复杂的缺点 实际进行字扩展时常常采用第三种方法 即译码法 2007 7 2 计算机组成原理 49 译码法 所谓译码法就是对几根地址线的组合状态用译码器译码后产生片选信号 其原理与逻辑运算法类似 不同之处在于片选信号的产生方法 逻辑运算法是对地址状态经过组合逻辑电路运算后得出片选信号 而译码法则是用译码器译码产生 根据参与译码的地址线的数量 可以将译码法分为 完全译码法和部分译码法 完全译码法是指所有地址线状态都作为译码器输入的方法 部分译码法是指部分地址线状态作为译码器输入的方法 2007 7 2 计算机组成原理 50 译码法进行字扩展时 各芯片的地址空间跟逻辑运算法的芯片地址空间一样 如表4 5所示 因此只需要对两位地址通过2 4译码器译码 即可产生4块芯片需要的片选信号 所以采用的译码方法是部分译码法 芯片扩展后的电路图如图4 11所示 2007 7 2 计算机组成原理 51 2007 7 2 计算机组成原理 52 与逻辑运算法相比 译码法产生片选信号时 用译码器替代了复杂的数字组合逻辑电路 片选信号的产生简单明了 不容易出现错误 更降低了成本 译码法不仅继承了逻辑运算法的优点 克服了逻辑运算法的缺点 还方便存储容量再次扩展 比如 现在需要将系统容量从256K提高到512K 译码法只需要将2 4译码器更改为3 8译码器 然后将译码器输出与各芯片片选引脚相连即可 而采用逻辑运算时 需要重新计算每个片选信号与地址输入信号的关系 然后根据此关系式选择正确的门电路画出组合逻辑电路图 最后将每个组合逻辑电路的输出与各芯片片选信号相连 因此 译码法是较方便且不容易出错的字扩展方法 2007 7 2 计算机组成原理 53 4 3 3字位扩展所谓字位扩展 就是当单个芯片的输出位数和容量同时不满足系统要求时 用多个芯片结合位扩展和字扩展的方法对存储器进行扩展 在实际芯片扩展时 常常会需要用到这种扩展 2007 7 2 计算机组成原理 54 例子 如系统需要的存储容量为256K 8位 可选的芯片容量只有128K 4位 在这种情况下 存储器需要一次输出8位 而芯片却只能一次输出4位 需要进行位扩展 存储器要求容量为256K 而芯片容量却只有128K 需要进行字扩展 扩展过程中 需要用到位扩展的方法 也会用到字扩展的方法 扩展步骤如下 2007 7 2 计算机组成原理 55 1 位扩展 根据位扩展的原理 此处需要两个芯片同时输出才能满足系统对位数的要求 因此 连接电路时 这两块芯片的片选引脚必须接同一个片选信号 保证两块芯片同时被选中 2007 7 2 计算机组成原理 56 2 字扩展 位扩展时 虽然是两块128K的芯片同时工作 但是存储器容量仍然是128K 只是输出变成了8位 构成了128K 8位的芯片 因此要构成256K 8位的存储器 必须先将两块芯片构成一组 此时 这一组芯片可以当成一个128K 8位的芯片使用 然后由两组芯片组成系统需要的存储器 此处只需要两组就可以达到要求 所以片选信号产生时 没有用到译码器 而选择了一个非门 如果需要多组 则需要通过译码芯片产生片选信号 3 连接数据输出线 字位扩展后的电路图如图4 12所示 2007 7 2 计算机组成原理 57 2007 7 2 计算机组成原理 58 电路中的4块芯片从左向右编号分别为1 2 3 4 其中1 2号芯片构成一组 3 4号芯片构成一组 从图中 我们可以看见每组芯片输出都是8位 地址线A16 A0能对组内128K的地址范围进行寻址 A17作为片选信号 当A17为低电平时 芯片1 2被选中 当A17为高电平时 芯片3 4被选中 因此 芯片1 2构成的芯片组地址范围是00000H 1FFFFH 2 3构成的芯片组地址范围是20000H 3FFFFH 2007 7 2 计算机组成原理 59 综上所述 可以得到以下结论 假定系统需要的存储容量为M N位 可选的存储芯片容量只有x y位 x M y N 此时需要在字向和位向同时进行扩展 共需 M x N y 块存储芯片 思考 假如计算机存储系统中单片ROM容量为4K 8 单片RAM容量为8K 8 请设计计算机存储系统电路图 要求ROM为16KB RAM容量为64KB 2007 7 2 计算机组成原理 60 4 4高速缓冲存储器Cache 4 4 1Cache基本原理1 设置Cache的必要性计算机有两个核心器件 一个内存 另外一个则是CPU 二者是否能较好配合 将直接影响计算机性能 早期的CPU跟内存的速度相差不多 但是随着计算机硬件技术的发展 CPU的速度提高的比内存快 现在内存和CPU的读写速度相差2 3个数量级 如果仅仅依靠内存给CPU传输数据 那么CPU可能会长时间等待 降低资源利用率 所以 必须对二者速度进行匹配 2007 7 2 计算机组成原理 61 匹配内存和CPU的速度有以下三个方法 1 降低CPU速度 2 采用高速的SRAM作为内存的存储器 3 根据程序执行的局部性原理 在二者之间设置一定的缓冲器 显然 第一个方法降低了计算机性能 不可能采用 第二个方法需要用价格昂贵的SRAM来制作容量高达几百兆的内存 成本过高 因此第三个方法则呈了现代计算机的首选方法 2007 7 2 计算机组成原理 62 实际的计算机系统中 常常在CPU和内存间设置一个容量不大 常常为几十至几百K 但是速度跟CPU速度相同的Cache作为缓冲器 把正在执行的指令代码单元附近的一部分指令代码或数据存入Cache中 CPU需要数据时 直接从Cache中读取 这种方法解决了速度不匹配的问题 又不会大幅度增加成本 2007 7 2 计算机组成原理 63 2 基本原理Cache又叫高速缓存 是高速缓冲存储器 CacheMemory 的简称 作为一种存储器 Cache有一定的存储空间 但Cache的主要作用不是进行数据存储 所以其存储空间较小 根据Cache所处位置的不同 可以将Cache分为一级Cache和二级Cache 与CPU集成在同一块芯片中的是一级Cache 简称L1Cache 其容量常常为几十KB 几百KB 不与CPU集成在同一块芯片中的是二级Cache 简称L2Cache 其容量常常为几百KB 2MB 目前市场上比较高档的CPU常常配有512KB 1MB或者2MB的Cache 配置了Cache的CPU和内存之间的存储结构如图4 13所示 2007 7 2 计算机组成原理 64 2007 7 2 计算机组成原理 65 在Cache控制器的作用下 CPU首先访问Cache 如其需要的数据在Cache中 则直接访问Cache即可 否则再访问内存 如果设置了L2Cache 则系统将按照L1Cache L2Cache 内存的顺序访问 值得注意的是 Cache不能被用户直接访问 用户不能使用Cache地址进行编程 2007 7 2 计算机组成原理 66 Cache一般由SRAM TRAM和控制器组成 其中 SRAM提供存储空间 它的容量即为Cache的容量 TRAM保存Cache中的数据在主存中的地址 控制器则是实现比较和控制Cache的读写操作等功能 当CPU需要内存中某一地址的数据时 控制器首先将该地址信号与TRAM中的地址进行比较 如果找到相同的地址 说明内存中的数据在Cache中 则CPU直接访问Cache 否则CPU将访问内存 当CPU所需要的数据没有在Cache中时 控制器还要完成对Cache的修改 将内存中的数据读取到Cache中 以保证Cache命中率尽可能高 提高数据访问速度 2007 7 2 计算机组成原理 67 4 4 2地址映像Cache作为CPU和内存间的缓冲存储器 理想情况下 应该保证CPU每次需要访问的数据都在Cache中 但是 用户程序却是按照内存地址编写的 Cache所做的工作是在CPU访问内存前 根据程序执行的局部性原理 先将内存中的数据读出 当CPU需要时再提供给它 所以 Cache所保存的数据到底是内存中的哪些数据 地址是什么 就成了关键性问题 这一问题实际上也是Cache的存储空间与内存之间的地址映像问题 2007 7 2 计算机组成原理 68 常用的地址映像方式有三种 全相联映像 直接映像和组相联映像 1 全相联映像所谓全相联映像是指将内存和Cache按找固定的相同的大小进行分块 内存的块和Cache的块可以任意对应 即内存的任何一块都可以映像到Cache的任何一块 在Cache的存储空间被占满的情况下 也允许确实已被占满的Cache存储器中替换出任何一个旧块 2007 7 2 计算机组成原理 69 这种映像方式的优点是映像过程灵活 块冲突率低 只有在Cache中的块全部装满后才会出现冲突 Cache利用率高 缺点是块表查找的速度慢 由于Cache的速度要求高 全部比较和替换策略都要用硬件实现 控制复杂 实现起来也比较困难 成本高 全相联映像方式下内存与Cache对应的对应关系如图4 14所示 2007 7 2 计算机组成原理 70 2007 7 2 计算机组成原理 71 2 直接映像跟全相联映像一样 直接映像先将Cache分成若干块 每个块的大小相同 并对每个块进行编号 同时根据Cache容量大小将内存分成若干页 每个页的容量都跟Cache的容量相同 然后对内存进行分块 每块的大小跟Cache块的大小相同 同样对页内的块进行编号 映像时 内存的某个页的块只能保存在与其块号相同的内存块中 例如 如图4 15所示 内存各页中的第0块只能映像到Cache的第0块 而不能映像到其他块 2007 7 2 计算机组成原理 72 2007 7 2 计算机组成原理 73 直接映像的优点是地址变换简单 速度快 缺点是映像不灵活 块冲突率较高 Cache命中率低 特别是程序需要在两个页的相同块号的块之间往返执行时 Cache命中率将降得非常低 2007 7 2 计算机组成原理 74 3 组相联映像为了解决直接映像的冲突问题 组相联映像方式 先将Cache分成大小相同的若干区 一般分为2个或4个区 对每个区按照直接映像的方式进行分块 并且编号 因此 Cache中有多个编号相同的块 对内存按照Cache区的大小进行分页 再对每页按照Cache块的大小进行分块 每个内存块可以对应不同Cache区中的相同块号的块 例如 图4 16中内存第0页的第0块 可以对应Cache的第0区的第0块 也可以对应第j区的第0块 2007 7 2 计算机组成原理 75 组相联映像的减小了直接映像方式下的页冲突问题 提高了Cache的命中率 且Cache的容量越大 分区的数量越多 命中率越高 但是这中映像方式控制电路复杂 值得注意的是 如果只对Cache分1个区时 则组相联映像就是直接映像 因此 直接映像是组相联映像的一种特殊情况 2007 7 2 计算机组成原理 76 2007 7 2 计算机组成原理 77 4 4 3替换策略及更新策略1 替换策略不管采用何种映像方式 内存的每个块都对应Cache的某一个块 但是Cache容量远小于内存容量 不能将内存的所有块全部保存 因此 如果需要往Cache中调入一个新块 且Cache已经被占满时 就需要将Cache中的某一个块调出 而将新块调入Cache 这个过程就是替换 2007 7 2 计算机组成原理 78 采用不同的替换策略 将很大程度上影响Cache的命中率 常用的替换策略有 随机替换法 任意选择一个Cache块 将其调出 先进先出 FIFO 策略 替换出最先进入Cache的块近期最少使用 LRU 策略 这种替换策略需随时记录Cache存储器中各个字块的使用情况 以便确定哪个字块是近期最少使用的字块 这三种策略的算法将在4 5节中介绍 这里不再赘述 2007 7 2 计算机组成原理 79 2 更新策略当内存数据被修改时 与之对应的Cache的数据也需要相应修改 这个过程就是更新 但是 进行修改时 Cache无法向CPU提供数据 因此修改Cache的时机相当重要 常用的更新策略有 2007 7 2 计算机组成原理 80 及时更新策略 修改内存的同时对Cache进行修改 周期更新策略 对Cache的修改周期进行 修改周期到的时候 无论内存数据是否改变 都将Cache数据更新为与内存相同的数据 执行时更新策略 当CPU需要某个Cache块的数据时 将此块与内存中与之对应的块进行比较 二者不相同时 对Cache进行更新 思考 目前市场上主流微处理器 CPU 和最新技术的微处理器 CPU 的Cache的容量分别是多少 2007 7 2 计算机组成原理 81 4 5虚拟存储系统 程序要运行 需要CPU运算 而在计算机存储中 CPU只能从内存中读取数据 因此要运行的程序必须首先进入内存 此时 如果程序运行所需要的内存容量大于计算机配置的内存容量 则程序无法运行 而当前 很多的计算机软件对内存的需求都大于实际的内存容量 如果不采用一定的方法对内存进行扩充 则计算机的应用范围将受到很大限制 在4 3节中 我们学习了如何依靠芯片数量的增加来增大存储器容量的方法 能在一定程度上解决系统容量的问题 但是芯片数量的增加必然导致成本的急剧提高 因此如何在现有的存储容量基础上 通过对程序进出内存的方法进行设计以提高存储器利用率 让计算机能运行比自身内存大得多的程序便成了首要任务 于是虚拟技术便应运而生 2007 7 2 计算机组成原理 82 所谓虚拟存储 就是采用一定的方法将一定的外存容量模拟成内存 同时对程序进出内存的方式进行管理 从而得到一个比实际内存容量大得多的内存空间 使得程序的运行不受内存大小的限制 虚拟存储方法的实现依赖于程序的特性 2007 7 2 计算机组成原理 83 顺序性 所谓程序的顺序性 是指程序运行过程中 如果要运行第N 1行语句 则大多数情况下需要先运行第N行语句 即程序是在顺序执行 局部性 为了减小程序的规模 很多的程序设计语言都会设计循环结构 如C语言中的for语句和while语句就是典型的循环语句 程序在执行这类循环语句时 程序的执行范围就限定在循环体中 而不会执行循环体外的语句 执行的语句限定在很小的范围内 即在局部范围内执行 这种情况经常会发生 这就是程序的局部性 2007 7 2 计算机组成原理 84 根据程序的以上两个特性 需要运行的程序不需要完全进入内存也可运行 具体方法如下 根据程序的顺序性和局部性原理 如果将程序分成几块 当前面一个块快运行结束时再将下一个块调入内存 则程序的执行将不会受到影响 而且程序所需要的内存容量也将变小 本节的几种虚拟存储实现的方法都是基于这一原理 2007 7 2 计算机组成原理 85 4 5 1页式存储系统在学习页式存储方法之前 我们先了解一下最简单的两种存储器分配方式 1 单一连续分配在单道环境下 计算机只允许一个作业运行 此时所有的计算机资源被该作业独占 包括存储器 所谓单一 是指此方式下 计算机只为一个作业分配存储空间 所谓连续 是指出了操作系统占用的存储空间外 剩余的内存空间将全部分配给作业 因此作业占用的存储空间不间断 其内存分配情况图4 17所示 2007 7 2 计算机组成原理 86 2007 7 2 计算机组成原理 87 系统运行必须要操作系统统一管理 因此尽管计算机只运行一个作业 也要将操作系统运行的内存空间留出来 但是不管操作系统是如图4 17 a 一样占据低地址空间 还是如图4 17 b 一样占据高地址空间 作业所占的地址都是连续的 而且除操作系统占用的那一部分内存外 剩余的所有内存空间均被作业独占 这种分配方式很容易造成内存空间的浪费 因为作业的大小跟剩余空间的大小往往不相等 如图4 17的两个图所示 内存容量为128KB 操作系统占用32KB 剩余空间内存96KB 如果作业大小为20KB 则剩余76KB的存储空间在该作业退出系统前将不会被利用 2007 7 2 计算机组成原理 88 为了解决单一分配时的空间浪费问题 在给作业分配存储空间之前 先将剩余空间分成若干区域 各区域大小可以相同也可以不同 然后再根据作业的需要进行分配 即分区分配 2007 7 2 计算机组成原理 89 2 分区分配根据分区分配时 区域的大小是否固定 分区分配又可以分为固定分区分配和可变分区分配 1 固定分区分配 所谓固定分区分配 是指先将内存分成若干固定区域 区域大小一经确定将永远不再改变 每个作业占用一个区域 2007 7 2 计算机组成原理 90 分区过程中 要给作业分配内存 必须首先要知道哪些分区是空闲 未分配 的 这些空闲区的容量是多大 因此系统需要设置一种表格来纪录这些信息 常常采用的方法是分区分配表 为了满足正常分配的要求 分区分配表应该包含每个分区的起始地址 大小和分配情况等信息 分配前 系统先查找分区分配表 如果能找到一个满足作业要求的的分区 则将此分区分配给作业 在固定分区中 分区分配表直接决定了是否能正确给各作业分配存储空间 所以为了保证分区的正确性 需要随时更新分区分配表的信息 2007 7 2 计算机组成原理 91 常用的分区方法一般有两种 最佳适应法和最先适应法 所谓最佳适应法 是指在给作业分配空间时 首先遍查分区分配表找到一个能满足作业要求的最小分区分配给该作业 而最先适应法则是指在分区时 按地址从低到高查找分区分配表 将找到的第一个能满足作业运行要求的分区分配给作业 流程图分别如图4 20和图4 21所示 2007 7 2 计算机组成原理 92 2007 7 2 计算机组成原理 93 2007 7 2 计算机组成原理 94 假如在图4 19 a 所示的情况下 又有一个需要23KB运行空间的作业3进入内存 如果采用最佳适应法进行分配 则通过查找分区分配表可知 能满足该作业要求的分区的序号分别为2 3和5 三个分区的大小分别为30KB 25KB和35KB 很显然分区3是容量最小的分区 则系统将此分区分配给作业3 同时将其分配状态和标志分别修改为已分配和作业3 如果采用最先适应算法进行分配 在查找分区分配表时 找到的第一个能满足作业要求的分区是分区2 则将该分区分配给作业3 同时跟最佳适应法一样修改分区2对应的分配情况和标志 2007 7 2 计算机组成原理 95 从上述分区过程中 我们不难看出 最佳适应法给作业分配的空间是最合适作业运行的空间 这就是 最佳 的原因 但是分配的速度较慢 在分配前系统要查找分区分配表的所有表项 然后才能找到最佳的分区 随着内存容量的增大 分区的增多 此查找过程所需要的时间将会很长 而最先适应算法分配空间的速度最快 不需要查找所有的表项 但是最先适应算法容易造成空间的浪费 如前所述 给作业3分配的分区为分区2 根据固定分区的思想 该分区的剩余空间不能在分配给其他作业 则作业2占用的空间为30KB 浪费的空间为7KB 如果再有一个28KB的作业进入系统 则势必将作业5分配给该作业 又再次造成7KB的空间浪费 降低了存储空间的利用率 因此 无论采用那种分配方式 固定分区都不能完全满足系统对速度和空间利用率的要求 2007 7 2 计算机组成原理 96 2 可变分区分配所谓可变分区分配是指先不给内存分区 给作业分配时 根据作业运行时对内存的需要再从剩余空间中分出一部分给该作业 经过一段时间的分配后内存也将分为若干区域 因此 在可变分区中也需要设置分区分配表 2007 7 2 计算机组成原理 97 假设内存容量为256KB 有以下申请和释放内存的操作顺序 作业1申请20KB 作业2申请30KB 作业3申请40KB 作业4申请30KB 作业1释放20KB 作业3释放40KB 则其内存的分布情况如下所述 当4个作业申请完内存之后 内存分布情况如图4 22 a 所示 跟固定分区一样 为了对内存进行有效地管理 每次分区后也将对分区分配表进行修改 从而得到图4 22 b 所示的分区分配表 2007 7 2 计算机组成原理 98 2007 7 2 计算机组成原理 99 2007 7 2 计算机组成原理 100 与固定分区时的分区情况相同 给作业分配空间后 内存都被分成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阻燃胶合板施工方案编制
- 粮库制氮机维修方案范本
- 平潭教师编制岗前培训考试及答案解析
- 奉贤区花园施工方案公示
- 汽车地狱安全测试题及答案解析
- 榆树钢结构网架施工方案
- 住宅楼检修安全方案文件
- 机房装服务器施工方案
- 员工年底工作总结
- 婚庆酒店前台工作总结
- 中国真空杯行业发展分析及发展趋势预测与投资风险研究报告2025-2028版
- 军训遇雨活动方案
- 自来水厂药品管理制度
- 残值评估与定价模型-洞察阐释
- 意式轻奢软装设计
- 瑞幸咖啡公司员工管理制度
- 2025至2030年中国电动场地车行业竞争战略分析及市场需求预测报告
- 2025-2030年中国宠物服务行业市场深度调研及投资前景与投资策略研究报告
- 胖东来考勤管理制度
- 地质灾害风险评估与防治
- 物理实验安全培训
评论
0/150
提交评论