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