《计算机组成与结构chap.ppt》由会员分享,可在线阅读,更多相关《计算机组成与结构chap.ppt(84页珍藏版)》请在三一办公上搜索。
1、第三章存储系统,Department of Computer覃 颖 Tel:6392292Email:,3.1 存储器概述,3.1.1 存储器分类存储器是计算机系统中的记忆设备,用来存放程序和数据。构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。,3.1 存储器概述,3.1.1 存储器分类按存储介质分:半导体存储器:用半导体器件组成的存储器。磁表面存储器:用磁性材料做成的存储器。,3.1 存储器概述,3.1.1
2、 存储器分类按存储方式分随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。,3.1 存储器概述,3.1.1 存储器分类按存储器的读写功能分只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。随机读写存储器(RAM):既能读出又能写入的半导体存储器。,3.1 存储器概述,3.1.1 存储器分类按信息的可保存性分非永久记忆的存储器:断电后信息即消失的存储器。永久记忆性存储器:断电后仍能保存信息的存储器。,3.1 存储器概述,3.1.1 存储器分类按在计算机系统中的作用分,
3、根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。,3.1 存储器概述,3.1.2 存储器的分级结构 存储器有三个主要特性:速度、容量和位价(价格/位)。如下的存储器分层结构图可以形象地反映这三个特性之间的关系:,3.1 存储器概述,3.1.2 存储器的分级结构 为解决存储器在速度、容量和成本这三者之间的矛盾,现代计算机几乎都具有缓存主存、主存辅存这两个存储层次,构成缓存、主存、辅存三级存储系统:在主存辅存这一层次的不断发展中,又形成了虚拟存储系统。,3.1 存储器概述,3.1.3 主存储器的技术指标 主存储器的性能指标主要是存储容量、存取时间、存储
4、周期和存储器带宽。,3.1 存储器概述,3.1.3 主存储器的技术指标 存储容量:存储容量是指主存能存放二进制代码的总数,即:存储容量=存储单元的个数 存储字长(字存储单元即存放一个机器字的存储单元,相应的地址称为字地址。一个机器字可以包含数个字节,所以一个存储单元也可包含数个能够单独编址的字节地址。)实际使用中常以字节总数来表示,即:存储容量=存储单元的个数 存储字长/8,3.1 存储器概述,3.1.3 主存储器的技术指标 存储速度:存储速度是由存取时间和存取周期来表示的。存取时间又叫存储器的访问时间(Memory Access Time),它是指启动一次存储器操作(读或写)到完成该操作所需
5、的全部时间,分读出时间和写入时间两种。存取周期(Memory Cycle Time)是指存储器进行连续两次独立的存储器操作所需的最小间隔时间,通常存取周期大于存取时间。,3.1 存储器概述,3.1.3 主存储器的技术指标 存储器的带宽:它表示每秒从存储器进出信息的最大数量,单位可用字/秒或字节/秒表示。例如:存取周期为500ns,每个存取周期可访问16位,则它的带宽为32M位/秒。,3.2 随机读写存储器,3.2.1 SRAM存储器 基本存储元:基本存储元是组成存储器的基础和核心,它用来存储一位二进制信息0或1。(六管SRAM存储元的电路图及读写操作图),3.2 随机读写存储器,3.2.1 S
6、RAM存储器 SRAM存储器的组成:,(演示),3.2 随机读写存储器,3.2.1 SRAM存储器 地址译码方式:单译码方式的特点是用一根字选择线(字线),直接选中一个存储单元的各位,也称为线选法。(图示)双译码方式的特点是有X、Y两个方向的地址译码,即被选单元是由X、Y两个方向的地址决定的,故也称为重合法。(图示),3.2 随机读写存储器,3.2.1 SRAM存储器 SRAM存储器芯片实例:Intel6116:2K 8位的静态RAM芯片A0A10 地址输入I/O1I/O8 数据输入/输出CE 片选信号OE 三态输出允许信号WE 读写控制:=0写,=1读VCC 电源GND 地线,(演示),3.
7、2 随机读写存储器,3.2.1 SRAM存储器 存储容量的扩展:位扩展法:位扩展是指增加存储字长(示例:由2片2114(1K 4位)芯片组成1K 8位的存储器)字扩展法:字扩展是指增加存储器字的数量(示例:由2片1K 8位的存储芯片组成2K 8位的存储器)字位同时扩展法:字、位扩展是指即增加存储器字的数量,又增加存储字长(示例:由16片1K 1位的存储芯片组成2K 8位的存储器),3.2 随机读写存储器,3.2.1 SRAM存储器 存储器的读、写周期 读周期:读周期与读出时间是两个不同的概念。读出时间是从给出有效地址到外部数据总线上稳定地出现所读出的数据信息所经历的时间。读周期时间则是存储片进
8、行两次连续读操作时所必须间隔的时间,它总是大于或等于读出时间。(图示),3.2 随机读写存储器,3.2.1 SRAM存储器 存储器的读、写周期 写周期:要实现写操作,要求片选CS和写命令WE信号都为低,并且CS信号与WE信号相“与”的宽度至少应为tW。(图示),3.2 随机读写存储器,3.2.2 DRAM存储器 基本存储元四管动态存储元单管动态存储元,3.2 随机读写存储器,3.2.2 DRAM存储器 DRAM存储芯片实例Intel216464K 1位的动态RAM芯片存取时间为150ns/200ns(-15,-20)低功耗,最大275mW每2ms需刷新一次,每次512单元A0A7 地址输入RA
9、S 行地址选通信号CAS 列地址选通信号WE 读写信号:=0写;=1读,3.2 随机读写存储器,3.2.2 DRAM存储器 DRAM的刷新:动态MOS存储器采用“读出”方式进行刷新。从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,这一段时间间隔叫刷新周期。常用的刷新方式有三种,一种是集中式,另一种是分散式,第三种是异步式。,3.2 随机读写存储器,3.2.2 DRAM存储器 DRAM的刷新:集中式刷新:在整个刷新间隔内,前一段时间重复进行读/写周期或维持周期,等到需要进行刷新操作时,便暂停读/写或维持周期,而逐行刷新整个存储器,它适用于高速存储器。(图示)分散式刷新:把存储系
10、统周期tc分为两半,周期前半段时间tm用来读/写操作或维持信息,周期后半段时间tr作为刷新操作时间。这样,每经过128个系统周期时间,整个存储器便全部刷新一遍。(图示)异步式刷新方式:是前两种方式的结合。,3.2 随机读写存储器,3.2.2 DRAM存储器 存储器控制电路:DRAM存储器的刷新需要有硬件电路的支持,包括刷新计数器、刷新/访存裁决、刷新控制逻辑等。这些控制线路形成DRAM控制器,它将CPU的信号变换成适合DRAM片子的信号。,3.2 随机读写存储器,3.2.2 DRAM存储器 存储器控制电路:(1)地址多路开关:刷新时需要提供刷新地址,由多路开关进行选择。(2)刷新定时器:定时电
11、路用来提供刷新请求。(3)刷新地址计数器:只用RAS信号的刷新操作,需要提供刷新地址计数器。(4)仲裁电路:对同时产生的来自CPU的访问存储器的请求和来自刷新定时器的刷新请求的优先权进行裁定。(5)定时发生器:提供行地址选通信号RAS、列地址选通信号CAS和写信号WE。,(演示),3.3 只读存储器和闪速存储器,3.3.1 只读存储器 只读存储器简称ROM,它只能读出,不能写入。它的最大优点是具有不易失性。ROM的分类:根据编程方式不同,ROM通常分为三类:,3.3 只读存储器和闪速存储器,3.3.1 只读存储器 掩模ROM可编程只读存储器PROM(Programmable ROM)可擦除的E
12、PROM(Erasable PROM)电可擦除的E2PROM(Electrically Erasable PROM),3.3 只读存储器和闪速存储器,3.3.2 闪速存储器 闪速存储器是一种高密度、非易失性的读/写半导体存储器,它突破了传统的存储器体系,改善了现有存储器的特性。,3.3 只读存储器和闪速存储器,3.3.2 闪速存储器 闪速存储器的工作原理:闪速存储器是在EPROM功能基础上增加了电路的电擦除和重新编程能力。例如在28F256A中引入一个指令寄存器来实现这种功能。其作用是:(1)保证TTL电平的控制信号输入;(2)在擦除和编程过程中稳定供电;(3)最大限度的与EPROM兼容。,(
13、演示),3.4 cache存储器,3.4.1 cache基本原理 cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。它能高速地向CPU提供指令和数据,加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。(演示),3.4 cache存储器,3.4.1 cache基本原理 CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干定长字组成的。当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字当前是否在 cache中:若是,此字立即传送给CPU;若非,则
14、用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。由始终管理cache使用情况的硬件逻辑电路来实现LRU替换算法。,(演示),3.4 cache存储器,3.4.1 cache基本原理 cache的命中率:CPU欲读取主存某字时,有两种可能,一是该数已在Cache中,称为CPU访问Cache命中,另一种是不在Cache内,此时需将该数所在的主存整个字块一次调入Cache中,此称为CPU访问Cache不命中,命中率是指CPU要访问的信息已在Cache内的比率。,3.4 cache存储器,3.4.1 cache基本原理 cache的命中率:在一个程
15、序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:h=Nc/(Nc+Nm),3.4 cache存储器,3.4.1 cache基本原理 cache的命中率:若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为:ta=htc+(1-h)tm设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有:e=tc/ta=1/h+(1-h)r为提高访问效率,命中率h越接近1越好,r值以5至10为宜,不宜太大。命中率h与程序的行为、cache的容量、组织方式、块的大小有
16、关。,(举例),3.4 cache存储器,3.4.2 主存与cache的地址映射 cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。所谓地址映射即是应用某种方法把主存地址定位到cache中。址映射方式有全相联方式、直接方式和组相联方式三种。,3.4 cache存储器,3.4.2 主存与cache的地址映射 全相联映射方式:主存中一个块的地址与块的内容一起存于cache的行中,其中块地址存于cache行的标记部分中。这种方法可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活。它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量ca
17、che采用。,(演示),3.4 cache存储器,3.4.2 主存与cache的地址映射 直接映射方式:这也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。cache的行号i和主存的块号j有如下函数关系:i=j mod m(m为cache中的总行数)直接映射方式的优点是硬件简单,成本低。缺点是每个主存块只有一个固定的行位置可存放,容易产生冲突。因此适合大容量cache采用。,(演示),3.4 cache存储器,3.4.2 主存与cache的地址映射 组相联映射方式:这种方式是前两种方式的折衷方案。它将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存
18、到该组哪一行是灵活的。组相联映射方式中的每组行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。,(演示),3.4 cache存储器,3.4.3 替换策略 cache工作原理要求它尽量保存最新数据,必然要产生替换。对直接映射的cache来说,只要把此特定位置上的原主存块换出cache即可。对全相联和组相联cache来说,就要从允许存放新主存块的若干特定行中选取一行换出。常用的替换算法有:最不经常使用(LFU)算法、近期最少使用(LRU)算法、随机替换。,3.4 cache存储器,3.4.3 替换策略 最不经常使用(LFU)算法:LFU算法将一段时
19、间内被访问次数最少的那行数据换出。每行设置一个计数器。从0开始计数,每访问一次,被访行的计数器增1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。,3.4 cache存储器,3.4.3 替换策略 近期最少使用(LRU)算法:LRU算法将近期内长久未被访问过的行换出。每行也设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出。这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。,3.4 cache存储器,3.4.3 替换策略
20、 随机替换:随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。缺点是降低了命中率和cache工作效率。,3.4 cache存储器,3.4.4 cache的写操作策略 CPU对cache的写入更改了cache的内容。可选用写操作策略使cache内容和主存内容保持一致。常用的写操作策略有:写回法、全写法、写一次法。,3.4 cache存储器,3.4.4 cache的写操作策略 写回法:当CPU写cache命中时,只修改cache的内容,而不立即写入主存;只有当此行被换出时才写回主存。这种方法减少了访问主存的次数,但是存在不一致性的隐患。实现这种方法时,每个c
21、ache行必须配置一个修改位,以反映此行是否被CPU修改过。,3.4 cache存储器,3.4.4 cache的写操作策略 全写法:当写cache命中时,cache与主存同时发生写修改,因而较好地维护了cache与主存的内容的一致性。当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。缺点是降低了cache的功效。,3.4 cache存储器,3.4.4 cache的写操作策略 写一次法:基于写回法并结合全写法的写策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存。这便于维护系统全部cache的一致性。,3.5 虚拟存
22、储器,3.5.1 虚拟存储器的基本概念 什么是虚拟存储器?虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。它指的是主存外存层次。以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。,3.5 虚拟存储器,3.5.1 虚拟存储器的基本概念 注意物理地址和虚拟地址的区别:物理地址由CPU地址引脚送出,用于访问主存的地址。虚拟地址由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。,3.5 虚拟存储器,3.5.1 虚拟存储器的基本概念 主存外存层次和cache主存层次的
23、异同:两种存储系统的地址变换映射方法和替换策略是相同的,都基于程序局部性原理。它们遵循的原则是:把程序中最近常用的部分驻留在高速的存储器中。一旦这部分变得不常用了,把它们送回到低速的存储器中。这种换入换出是由硬件或操作系统完成的,对用户是透明的。力图使存储系统的性能接近高速存储器,价格接近低速存储器。两种存储系统的主要区别在于:在虚拟存储器中未命中的性能损失要远大于cache系统中未命中的损失。,3.5 虚拟存储器,3.5.1 虚拟存储器的基本概念 主存外存层次的基本信息传送单位:主存外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。,3.5 虚拟存储器,3.5.1 虚拟存储器的基
24、本概念 主存外存层次的基本信息传送单位:段是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。优点是段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享;某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间。缺点是因为段的长度各不相同,起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的零碎存储空间,造成浪费。,3.5 虚拟存储器,3.5.1 虚拟存储器的基本概念 主存外存层次的基本信息传送单位:页是主存物理空间中划分出来的等长的固定区域。优点是页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小。缺点是处理、
25、保护和共享都不及段式来得方便。,3.5 虚拟存储器,3.5.1 虚拟存储器的基本概念 主存外存层次的基本信息传送单位:段页式管理采用分段和分页结合的方法。程序按模块分段,段内再分页,进入主存以页为基本信息传送单位,用段表和页表进行两级定位管理。,3.5 虚拟存储器,3.5.2 页式虚拟存储器 页式虚拟存储系统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。实存地址也分两个字段:高字段为物理页号,低字段为页内行地址。页表中每一个虚存逻辑页号有一个表目,表目内容包含该逻辑页所在的主存页面地址(物理页号),用它作为实
26、存地址的高字段,与虚存地址的页内行地址字段相拼接,产生完整的实主存地址,据此来访问主存。页式管理的地址变换演示,3.5 虚拟存储器,3.5.2 页式虚拟存储器 为了避免页表已保存或已调入主存储器时对主存访问次数的增多,把页表的最活跃部分存放在高速存储器中组成快表。快表由硬件组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。快表与慢表实现内部地址变换的方式演示,3.5 虚拟存储器,3.5.3 段式虚拟存储器 在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个
27、段的长度因程序而异。虚拟地址由段号和段内地址组成,为了把虚拟地址变换成实主存地址,需要一个段表。段表也是一个段,可以存在外存中,但一般是驻留在主存中。虚存地址向实存地址的变换过程演示,3.5 虚拟存储器,3.5.4 段页式虚拟存储器 段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。它把程序按逻辑单位分段以后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点。缺点是在映象过程中需要多次查表。,3.5 虚拟存储器,3.5.4 段页式虚拟存储器 在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表
28、目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。,3.5 虚拟存储器,3.5.4 段页式虚拟存储器 如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。虚拟地址格式如下:如计算机只有一个基址寄存器,基号可不要,多道程序切换时,操作系统修改基址寄存器内容。演示段页式虚拟存储系统由虚拟地址向主存地址的变换过程,3.5 虚拟存储器,3.5.5 替换算法 虚拟存储器中的页面替换策略和cache中的行替换策略有很多相
29、似之处,但有三点显著不同:(1)缺页至少要涉及前一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比cache未命中大得多。(2)页面替换是由操作系统软件实现的。(3)页面替换的选择余地很大,属于一个进程的页面都可替换。,3.5 虚拟存储器,3.5.5 替换算法 虚拟存储器中的替换策略一般采用LRU算法、LFU算法、FIFO算法,或将两种算法结合起来使用。对于将被替换出去的页面,假如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以保证外存中数据的正确性。为此,在页表的每一行应设置一修改位。,3.6 存储保护,3.6.1 存储区域保护 当多个用户共享主存时,应防止由于一个用
30、户程序出错而破坏其他用户的程序和系统软件,以及一个用户程序不合法地访问不是分配给它的主存区域。在虚拟存储系统中,通常采用页表保护、段表保护和键式保护方法。,3.6 存储保护,3.6.1 存储区域保护 页表保护和段表保护:每个程序的段表和页表本身都有自己的保护功能。每个程序的虚页号是固定的,经过虚地址向实地址变换后的实存页号也就固定了。那么不论虚地址如何出错,也只能影响到相对的几个主存页面。不会侵犯其他程序空间。段表和页表的保护功能相同,但段表中除包括段表起点外,还包括段长。段表保护方式演示,3.6 存储保护,3.6.1 存储区域保护 键保护方式:这种方法是为主存的每一页配一个键,称为存储键,每
31、个用户的实存页面的键都相同。为了打开这个锁,必须有钥匙,称为访问键。访问键赋予每道程序,并保存在该道程序的状态寄存器中。当数据要写入主存的某一页时,访问键要与存储键相比较。若两键相符,则允许访问该页,否则拒绝访问。键保护方式演示,3.6 存储保护,3.6.1 存储区域保护 环保护方式:环保护方式可以做到对正在执行的程序本身的核心部分或关键部分进行保护。它是按系统程序和用户程序的重要性及对整个系统的正常运行的影响程度进行分层,每一层叫做一个环。在现行程序运行前由操作系统定好程序各页的环号,并置入页表中。然后把该道程序的开始环号送入CPU的现行环号寄存器。程序可以访问任何外层空间;访问内层空间则需
32、由操作系统的环控例行程序判断这个向内访问是否合法。环保护方式演示,3.6 存储保护,3.6.2 访问方式保护 对主存信息的使用可以有三种方式:读(R)、写(W)和执行(E),相应的访问方式保护就有R、W、E三种方式形成的逻辑组合。这些访问方式保护通常作为程序状态寄存器的保护位,并且和区域保护结合起来实现。,thanks,作业:P127:1,6,9,11,(演示),(演示),(演示),(演示),(演示),【例】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。【解】h=Nc/(Nc+Nm)=1900/(1900+100)=0.95r=tm/tc=250ns/50ns=5e=1/(r+(1-r)h)=1/(5+(1-5)0.95)=83.3%ta=tc/e=50ns/0.833=60ns,