1、第6章 存储系统,6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统 6. 3 半导体存储器 6. 4 主存储器 6. 5 高速缓冲存储器Cache 6. 6 虚拟存储器,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价,6. 1. 1 存储器的分类,按处理器是否直接访问,分为主存和辅存 按掉电后信息是否丢失,分为易失性存储器和非易失性存储器。 按支持的访问类型来分,分为可读/写存储器和只读存储器ROM。 按访问方式的不同,分为按地址访问的存储器、按内容访问的存储器CAM和指定位置访问的存储器。,也叫相联存储器,例如堆栈,2019/7/3,
2、第6章 存储系统,6. 1 存储器的分类与性能评价,6. 1. 1 存储器的分类,按实现介质来分,存储器有半导体存储器、磁表面存储器、光盘存储器和铁电存储器等。 按访问周期是否均等,存储器可分为随机访问存储器RAM和顺序访问存储器。,所有的半导体存储器都是随机访问存储器 所有的磁表面存储器和光盘存储器都是非易失性存储器,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价,6. 1. 1 存储器的分类,容量 速度 成本,一个存储系统通常由若干存储芯片组成。存储芯片的规格表示为:存储单元数目存储字长。例如,1K1表示一个具有1024个存储单元的存储字长为1的存储芯片,2 K4表示
3、一个具有2048个存储单元的存储字长为4的存储芯片。,6. 1. 2 存储器的性能评价,常用的单位有兆字节MB或千字节KB,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价,容量 速度 成本,Ta是指从读/写存储器开始到存储器发出完成信号的时间间隔。Tc是指从一个读/写/存储器操作开始到下一个存储器操作能够开始的最小时间间隔。TcTa。存储器带宽是每秒传送的二进制位数。例如,一个存储器芯片的Tc=100ns,每个访问周期可以读/写16位,则该存储器的带宽=16b/100ns=160Mb/s。提高存储器带宽是计算机组成设计的重点 。,6. 1. 2 存储器的性能评价,访问时间
4、Ta、访问周期Tc和存储器带宽,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价,容量 速度 成本,6. 1. 2 存储器的性能评价,也称价格,一般有两个指标:存储系统总的拥有成本和每存储位的成本。 前者指构成整个计算机存储系统的所有存储器件及相关设备的购买总成本; 后者等于存储芯片的容量(位)除以存储芯片的价格。,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统,6. 2. 1 存储器访问的局部性原理,经过对处理器访问主存储器情况的统计发现,无论是取指令还是存取数据,处理器访问的存储单元趋向于聚集在一
5、个相对较小的连续存储单元区域内。这种现象称为存储器访问的局部性原理。,2019/7/3,第6章 存储系统,6. 2 存储器访问的局部性原理与层次结构存储系统,6. 2. 1 存储器访问的局部性原理,访问局部性表现为时间局部性和空间局部性。 时间局部性是指将要访问的信息就是现在正在访问的信息。空间局部性是指将要用到的信息就在正使用的信息旁边。 一个程序在某个时间段内访问的主存储器空间范围称为该程序的工作集。对大多数程序而言,工作集的变化十分缓慢,有时甚至是不变的。,2019/7/3,第6章 存储系统,6. 2 存储器访问的局部性原理与层次结构存储系统,6. 2. 1 存储器访问的局部性原理,用户
6、对存储系统的要求一般是相同的:容量大、速度快、价格低。在现有存储器工艺技术水平下,上述要求无法满足。容量大的存储器在速度上通常要比容量小的存储器慢。速度快的存储器在价格上通常要比速度慢的存储器贵。,6. 2. 2 层次结构存储系统,2019/7/3,第6章 存储系统,这需要利用存储器访问的局部性原理,选择不同容量、速度和价格的存储器来构造一个层次结构的存储系统。即把最近频繁访问的一小部分信息存放在速度快、容量小的存储器中,而信息的全部存放在速度慢、容量大的存储器。,6. 2. 2 层次结构存储系统,2019/7/3,第6章 存储系统,计算机存储系统的层次结构中,最重要的两个层次是采用高速缓冲存
7、储器的“Cache主存”层次,以及基于虚拟存储器的“主存辅存”层次。前者能提高存储系统的等效访问速度,即弥补主存储器在速度上的不足;后者扩大了存储系统的容量,即弥补主存储器在容量上的不足。,6. 2. 2 层次结构存储系统,若要访问的信息在高一级存储器中找到,则称为命中,否则称为不命中或失效。命中率是指对层次结构存储系统中的某一级存储器来说,要访问的数据正在这一级中的比率。,2019/7/3,第6章 存储系统,设第1级和第2级存储器分别用M1和M2表示。设执行一组有代表性的程序后,测得对M1和M2访问的次数分别为R1和R2,则M1的命中率H为,6. 2. 2 层次结构存储系统,这里假设采用的存
8、储管理策略为处理器对M1和M2的访问是同时启动的。若在M1中取到了目标数据则访存结束;否则直接从M2读取,而不是等待目标数据从M2送到M1后再从M1中读取。,2019/7/3,第6章 存储系统,整个存储层次的平均访存周期Tc与M1和M2的访存周期Tc1和Tc2的关系为,6. 2. 2 层次结构存储系统,层次结构存储系统的平均字节价格C为C = (C1 S1 + C2 S2 ) / (S1 + S2)式中,C1和S1分别为M1的单位字节价格和容量,C2和S2分别为M2的单位字节价格和容量。,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层
9、次结构存储系统 6. 3 半导体存储器,根据存储的信息是否可以读/写,半导体存储器分为随机访问半导体存储器(RAM)和只读半导体存储器(ROM)。其中RAM是可读、可写的;而ROM中的内容是事先写入的,不会因读取而丢失,在工作时只能对其进行读操作,不能写入新的内容。当然,作为半导体存储器,它们都是随机访问型的,即访问任何一个单元的时间是相等的,与单元的地址大小无关。,2019/7/3,第6章 存储系统,6. 3 半导体存储器,6. 3. 1 随机访问半导体存储器RAM,根据存储原理的不同,RAM分为 静态RAM ( Statically RAM,SRAM ) 动态RAM ( Dynamical
10、 RAM,DRAM )前者利用电流的开关特性来表示信息0/1,后者靠栅极电容上的电荷来表示信息0/1。,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM (1)SRAM的分类与工作原理SRAM采用的开关元件,有双极型和MOS型两种。双极型SRAM电路驱动能力强,开关速度快,存取周期短,速度快,但是成本高,功耗大,主要用于高性能计算机,在微型计算机中应用较少。MOS管的逻辑符号如右图所示。当控制端W为高电位时,MOS管导通,即R点与VCC同电位。,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,常用6个
11、MOS管来构成一个存储基元(即存储一位二进制数的电路单元),如下图所示。图中T1,T2组成双稳态触发器;T3,T4作为阻抗;T5,T6作为存储基元的选中开关 。,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,(2)SRAM的组成与地址译码在半导体存储器内部,若干存储基元组成存储一个信息字的存储单元,存储单元按行、分列排列起来构成一个存储单元阵列。再配上读/写控制电路、 地址译码电路和控制电路,就构成了一个存储芯片。对存储器的访问是针对一个特定的存储单元进行的,而这个存储单元的选择、确定是通过对输入的地址进行译码来实现的。半导体存储器的地址译码有
12、两种方式:单译码和双译码。,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,(2)SRAM的组成与地址译码,单译码只用一个译码电路来将地址信号变换成选中信号。这种选中信号称为字选择信号,用它来选中一个存储单元。下图为采用单译码方式的164位存储芯片的组成结构 。,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,(2)SRAM的组成与地址译码,双译码用两个译码电路(称为X译码器和Y译码器),分别产生行选择信号和列选择信号,行选择信号和列选择信号同时有效的存储单元为被选中的存储单元。,双译码方式的256
13、1位存储芯片的组成结构,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,SRAM存储芯片的引脚主要有: 地址信号引脚A0,A1,A2, 数据信号引脚D0,D1,D2, 芯片选择信号引脚CS或CE。 写命令信号引脚WE。 数据输出允许信号引脚OE。 电源引脚和接地引脚VCC和GND。,(3)SRAM的外特性与读写时序,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,典型的SRAM有2114(1K4位),6116(2K8位),6264 (8K8位),62256(32K8位)等。,2019/7/3,第6章
14、 存储系统,2114 SRAM芯片的读周期时序如下:,为了保证数据能够可靠地按时输出,片选信号CS必须在数据有效前tCO时间有效,即地址有效后,必须在tAtCO 时刻有效,否则数据就不能在tA时刻稳定地出现在数据线上 。,2019/7/3,第6章 存储系统,2114 SRAM芯片的写周期时序如下:,写周期tWC是对存储芯片进行连续两次写操作的最小时间间隔,包括滞后时间tAW、写入时间tW和维持时间tWR 。,2019/7/3,第6章 存储系统,6. 3. 1 随机访问半导体存储器RAM,1. SRAM,2. DRAM,(1)DRAM的分类与工作原理 四管动态存储电路 单管动态存储电路:最常用由
15、一个MOS管和一个电容组成。,写操作:给字线加高电位,选中该存储基元。若写入1,则给位线加高电位,电容C充电;否则给位线加低电位,电容C放电。 读操作:选中该存储基元,然后检测位线上的输出信号。若为高电位,则表示读出1;否则读出0。,2019/7/3,第6章 存储系统,2. DRAM,(2)DRAM芯片的组成与读写时序 因为集成度提高,片内存储单元的数量增加,需要的地址线也相应增加,为了控制成本,封装芯片的尺寸没有增大,芯片引脚数目也就没有增加,所以DRAM芯片地址引脚的数目只是地址宽度的一半。为此,访存地址被分为行地址和列地址依次发送。相应地,在芯片内部就要设置行地址锁存器和列地址锁存器。为
16、了区分地址总线上的行地址和列地址,特地增加两个控制线: RAS和CAS ,分别控制行地址和列地址的接收。 另外,DRAM不再设置CS引脚,其功能用RAS代替。,2019/7/3,第6章 存储系统,2. DRAM,(2)DRAM芯片的组成与读写时序,DRAM芯片的引脚主要有: 地址信号引脚A0,A1,A2, 数据信号引脚D0,D1,D2, 地址选择信号引脚RAS和CAS。 写命令信号引脚WE。 数据输出允许信号引脚OE。 电源引脚和接地引脚VCC和GND。,2019/7/3,第6章 存储系统,2. DRAM,2116 DRAM芯片的组成,2019/7/3,第6章 存储系统,2. DRAM,211
17、6 DRAM的读时序,先向地址引脚提供目标单元行地址,然后发出行地址选择信号RAS= 0,将行地址打入行地址锁存器中。 然后向地址引脚提供列地址,发出列地址选择信号CAS= 0,将列地址打入到列地址锁存器中。,2019/7/3,第6章 存储系统,2. DRAM,2116 DRAM的写时序,CAS信号必须在列地址和输入数据都准备好之后才能发出。此后输入数据须维持一段时间,以确保信息可靠地写入。,2019/7/3,第6章 存储系统,2. DRAM,(3)DRAM芯片的刷新,在DRAM芯片工作过程中,如果某些存储单元未被选中,电容被隔离,由于漏电流的存在,电容上的电荷会缓慢丢失。因此,每隔一段时间给
18、电容补充电荷,这个过程称为刷新。典型的刷新间隔为 2ms。 刷新是通过读操作实现的。只不过这个“读”并不输出数据,是“假读”。 刷新是逐行进行的,行地址由芯片内部的“刷新计数器”提供。刷新一行所花时间称为刷新周期。,2019/7/3,“刷新”方式有:集中式刷新、分散式刷新和异步式刷新, 集中式刷新在一个刷新间隔(2ms)内,集中一段时间,对全部存储单元进行逐行刷新。在此期间正常的读/写操作将被停止,所以这段时间称为死时间。,2019/7/3,例如,对读/写周期为0.5s的128128的存储矩阵进行刷新,需要128个读周期。由于在刷新间隔2ms内共有4000个读/写周期,所以规定前3872个周期
19、用于读/写或维持,后128个周期(64s)用于刷新。,2019/7/3,为了消除死时间,人们又提出: 分散式刷新。对每行存储单元的刷新分散到每个读/写周期中进行。具体来说,就是延长原先的读/写周期,将新的读/写周期分成前/后两段,前半段用来读/写或维持,后半段用来刷新。假如存储单元的读/写周期为0.5s,则存储器的读/写周期为1.0s。,2019/7/3,异步式刷新是将前两种方法结合起来,在一个刷新间隔内,均匀地进行逐行刷新。例如在2ms内,均匀地把128行刷新一遍,即每隔2ms/128=15.5s刷新一行,如下图所示。这样,原来大块的死时间被分散开,达到了缩短死时间的效果。,2019/7/3
20、,虽然不存在死时间,但分散式刷新导致存取周期延长,系统的性能下降,第6章 存储系统,2. DRAM,(3)DRAM芯片的刷新,如果进一步将刷新安排在指令译码阶段,还可以掩盖死时间。 刷新操作的优先级被安排成高于读/写操作。,2019/7/3,第6章 存储系统,6. 3 半导体存储器,6. 3. 1 随机访问半导体存储器RAM,向ROM写入原始信息的过程称为“编程”。依据“编程”方法的不同,ROM可以分为以下4类: (1)掩模型ROM,MROM (2)可编程ROM,PROM (3)可擦除的可编程ROM,EPROM (4)可用电擦除的可编程ROM,EEPROM,6. 3. 2 只读半导体存储器RO
21、M,2019/7/3,第6章 存储系统,(1)掩模型ROM,MROM,6. 3. 2 只读半导体存储器ROM,以晶体管(如MOS管)的“有/无”来代表“0/1”,即每个存储基元的信息是由制造集成电路的掩模来决定的,制造完成后无法改变。,MROM的优点是可靠性高、位密度高、访问周期短,其不足是设计制造成本高。但若生产数量很大,分摊到每一个芯片上的成本就很小了,所以它较适用于市场占有率高的成熟产品。,2019/7/3,第6章 存储系统,(2)可编程ROM,PROM,6. 3. 2 只读半导体存储器ROM,相当于“一张白纸”,用户可以通过所谓的“编程”操作向其中写入信息。,依据编程原理的不同,PRO
22、M可分为如下两种: (1)熔丝烧断型。可编程的连接点之间用熔丝相连,如下图所示。所谓“编程”就是选择某些熔丝将其烧断。,2019/7/3,第6章 存储系统,(2)可编程ROM,PROM,依据编程原理的不同,PROM可分为如下两种: (1)熔丝烧断型,(2)PN结击穿型可编程的连接点之间是PN结,未编程之前PN结是不导通的。所谓“编程”就是选择某些PN结将其击穿。,烧断熔丝或击穿PN结,都是不可逆的,所以PROM只允许一次编程。如果写入的信息有错或需要更改原有信息,只能将原有的PROM作废,重新选择一片PROM进行编程。目前PROM已经淘汰。,2019/7/3,第6章 存储系统,(1)掩模型RO
23、M,MROM (2)可编程ROM,PROM (3)可擦除的可编程ROM,EPROM,6. 3. 2 只读半导体存储器ROM,EPROM用“浮栅雪崩注入型MOS管”来表示信息。其原理是:浮栅上不带电荷,源极和漏极之间不导通,这种状态表示1;当源极和漏极之间加上高电压,产生雪崩击穿,电荷就积累在浮栅上,这种状态表示0。由于浮栅周围是二氧化硅,故积累的电荷就不易失掉。,2019/7/3,第6章 存储系统,(3)可擦除的可编程ROM,EPROM,EPROM芯片上有一个石英窗口,将窗口置于紫外线灯下,照射1025分钟,浮栅上的电荷将全部释放,恢复到原来不带电荷的“1”状态。这样,EPROM就被擦除了,可
24、以重新编程。EPROM芯片在使用过程中,应用不透光的胶纸贴盖住石英窗口,避免阳光或灯光直接照射,以免引起芯片功能损伤。EPROM的缺点是,擦除时需要将芯片从系统中拔出,用特殊设备擦除,且时间较长;不能局部擦除或重写指定单元信息。,2019/7/3,第6章 存储系统,(1)掩模型ROM,MROM (2)可编程ROM,PROM (3)可擦除的可编程ROM,EPROM (4)可用电擦除的可编程ROM,EEPROM,6. 3. 2 只读半导体存储器ROM,可以联机擦除,还可以有选择地擦除或重写指定单元的信息。不过,EEPROM的单元结构较为复杂,成本较高。,2019/7/3,第6章 存储系统,(4)可
25、用电擦除的可编程ROM,EEPROM,近年来,出现一种被称为闪存(Flash Memory)的EEPROM。闪存在结构上与传统的EEPROM类似,只是它的栅极氧化层较薄,擦除和编程(重写)速度较快。基于闪存的固态盘,以其体积小、携带方便、容量大、价格低、速度快,已经替代原来的软盘。因其通过USB接口与主机相连,故称为“U盘”。,2019/7/3,第6章 存储系统,(4)可用电擦除的可编程ROM,EEPROM,虽然EEPROM可以联机擦除,即可读、可写,但不可当作RAM使用。一则它允许编程的次数是有限的,如十万次;二则擦除和编程需要较长的时间成本较高。,2019/7/3,第6章 存储系统,ROM
26、的外特性与读/写周期,ROM存储芯片的引脚主要有: 地址信号引脚A0,A1,A2, 数据信号引脚D0,D1,D2, 芯片选择信号引脚 CS 或 CE。 数据输出允许信号引脚 OE。 电源引脚和接地引脚工作电源VCC、脱机编程电源VPP和GND,2019/7/3,第6章 存储系统,典型的EPROM有2716(2K8位)、2732(4K8位)、2764(8K8位)、27128(16K8位)等。,2716 的逻辑表示和引脚说明,2019/7/3,第6章 存储系统,ROM的外特性与读/写周期,EPROM的读周期时序如下。为了保证数据能够可靠地输出,片选信号CE必须在数据有效前tCO时间有效。,EPRO
27、M在使用时,OE引脚接地。,2019/7/3,【例6-1】下列关于闪存(Flash Memory)的叙述中,错误的是 。A信息可读可写,并且读、写速度一样快B存储元由MOS管组成,是一种半导体存储器C掉电后信息不丢失,是一种非易失性存储器D采用随机访问方式,可替代计算机外部存储器,第6章 存储系统,2019/7/3,A,【例6-3】下列叙述中,正确的是 。I、 RAM是易失性存储器,ROM是非易失性存储器II、 RAM和ROM都是采用随机存取的方式进行信息访问III、RAM和ROM都可用作CacheIV、RAM和ROM都需要进行刷新A仅I和II C. 仅I、II和IV B. 仅II和III D
28、.仅II、III和IV,第6章 存储系统,【例6-2】下列存储器中,不采用随机存储方式的是 。AEPROM BCDROM CDRAM DSRAM,2019/7/3,B,A,第6章 存储系统,6. 4 主存储器,6. 4. 1 主存储器组成,主存储器由RAM和ROM芯片组成。系统程序区存放的是不需要改动也不允许改动的系统程序,所以这部分存储空间用ROM来实现;系统程序工作区是系统程序在工作时写入并读出临时数据的,所以这部分存储空间用RAM来实现。用户程序区存放用户的程序与数据,这些信息可读、可改写,所以这部分存储空间也用RAM来实现。,2019/7/3,第6章 存储系统,6. 4. 1 主存储器
29、组成,设计一个主存储器,首先要考虑它的容量。目前的微处理器都是按字节编址的,所以主存储器的容量=存储单元数字节一个处理器对应的主存储器的最大存储单元数是由其地址总线的线数决定的。设处理器的地址总线的线数为N,则其对应的主存储器最大存储单元个数为2N。实际设计时,为了降低成本,为计算机配备的主存储器容量往往小于2N字节。由于单片存储芯片提供的存储容量与字长一般不能直接满足实际需求,所以经常是将若干存储芯片连接在一起组成特定机器的存储系统,这就叫存储器扩展。,2019/7/3,第6章 存储系统,按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。,(1)位扩展:扩大存储字长,两片1K4
30、 芯片组成1K8存储器,2019/7/3,第6章 存储系统,按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。,(2)字扩展: 扩大存储单元的数量,两片1K8 芯片组成2K8存储器,(1)位扩展:扩大存储字长,2019/7/3,第6章 存储系统,按照扩展的目的不同,存储器扩展分为位扩展、字扩展和字位同时扩展。,(2)字扩展:扩大存储单元的数量,(3)字位同时扩展既要扩大存储字长,又要扩大存储字的数量例如为了构造一个2K8的存储系统,可将4片1K4的存储芯片先两两并连再依次串连。,(1)位扩展:扩大存储字长,2019/7/3,第6章 存储系统,2. 主存储器与处理器的连接,(1)数
31、据线的连接。当处理器的数据线数大于存储芯片的数据线数时,需要进行存储器位扩展。 (2)地址线的连接。尽可能选择与处理器的地址线数相等的存储芯片。当进行字扩展时,处理器的部分地址线(如地址线的低位)直接连到存储芯片的地址线上,剩余的地址线(如地址线的高位)连接到译码器的输入端,再把译码输出信号与存储芯片的片选端相连。例如,3-8译码器根据三个输入端A,B,C的8种不同组合状态选择8个输出端中的一个输出有效信号。,2019/7/3,第6章 存储系统,2. 主存储器与处理器的连接,(3)控制线的连接读/写控制线WR与存储芯片读/写控制端(WE)相连。访存控制IO/MREQ与3-8译码器使能端G2A和
32、G2B连接,译码器的另外一个使能端G1可以直接与电源Vcc连接。,2019/7/3,第6章 存储系统,【例6-4】某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K8位的ROM芯片和4K4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是 。A1、15 B2、15 C1、30 D2、30,2019/7/3,D,【例6-6】某计算机存储器按字节编址,主存地址空间大小为64MB,现用4M8的RAM芯片组成32 MB 的主存储器,则存储器地址寄存器MAR的位数至少是 。A22位 B23位 C25位 D26位。,第6章 存储系统,【例6
33、-5】用若干个2K4位芯片组成一个8K8位存储器,则地址0B1FH所在芯片的最小地址是 。A:0000H B:0600H C: 0700H D:0800H,2019/7/3,D,D,第6章 存储系统,【例6-7】 设某处理器有18根地址线,8根数据线,并用IO/M作为访存控制信号,RD/ WR为读/写信号。现有如下各种芯片及各种门电路(自定)。要求主存地址空间分配为032767为系统程序区,3276898303为用户程序区,最大16K地址空间为系统程序工作区。请说明选用存储芯片的类型、数量,并写出每片存储芯片的二进制地址范围。画出处理器与存储芯片的连接图 。,2019/7/3,第6章 存储系统
34、,解:(1)已知032767为系统程序区,这是32K的只读地址空间,所以选用32K8的ROM芯片一片。3276898303为用户程序区,这是64K的随机存取地址空间,选用32K8的RAM芯片两片。最大16K地址空间为系统程序工作区,这是16K的随机存取空间,选用16K8的RAM芯片一片。一片32K8 ROM芯片的寻址范围是:00 0000 0000 0000 0000 B00 0111 1111 1111 1111 B两片32K8 RAM芯片的寻址范围是:00 1000 0000 0000 0000 B01 0111 1111 1111 1111 B一片16K8 RAM芯片的寻址范围是:11
35、1100 0000 0000 0000 B11 1111 1111 1111 1111 B,2019/7/3,第6章 存储系统,解:(2)处理器与存储芯片的连接如下:,2019/7/3,第6章 存储系统,6. 4 主存储器,6. 4. 1 主存储器组成,虽然人们在不断地研制更高速度的存储器,但是仍然赶不上高性能计算机对主存储器访问带宽的需求。所以需要立足于现有的存储器,通过引入并行处理技术来提高主存储器访问带宽。常用的并行存储器有多端口RAM(如双口RAM)和多模块存储器 。,6. 4. 2 提高主存储器访问带宽的方法,2019/7/3,第6章 存储系统,1. 双口RAM这是具有两套独立的读/
36、写控制逻辑的RAM,具有两个独立的端口:左端口( L )和右端口( R )。分别具有各自的地址总线、数据总线和控制总线,可对存储器中任何地址单元中的数据进行独立的存取操作。当两个端口的访存地址不同时,这两个访问可以同时进行,否则发生访问冲突。这时就由片内仲裁逻辑决定哪个端口先进行访问。,6. 4. 2 提高主存储器访问带宽的方法,2019/7/3,第6章 存储系统,双端口RAM常作为流水线处理器的计算机主存储器。在多机系统中,常采用双端口RAM甚至多端口RAM,实现多处理器对主存储器的共享。,6. 4. 2 提高主存储器访问带宽的方法,2019/7/3,第6章 存储系统,2. 多模块存储器 根
37、据组成技术不同,多模块存储器又分为单体多字存储器和多体并行存储器。 由于程序访问存在着局部性,所以对相邻存储信息(如指令和数组元素)的使用往往是连续的。如果让多个存储器模块共用一套地址逻辑。这样一个访存地址就可以把存储于多个存储器模块中相同地址单元的多个字一并读出,然后依次将它们送给处理器。 通过这种方式将多个存储器模块组织在一起构成的存储器称为单体多字存储器。,6. 4. 2 提高主存储器访问带宽的方法,2019/7/3,存储字,MAR,M D R,M D R,M D R,M D R,寄存器,前提:指令或数据在主存中必须是连续存放的,一旦遇到转 移指令或者操作数不能连续存放,这种方法的效果就
38、不明显,单体多字存储器,2019/7/3,第6章 存储系统,2. 多模块存储器,6. 4. 2 提高主存储器访问带宽的方法,多体并行存储器由N个容量相同、字长相同的存储器模块组成,它与单体多字存储器的不同在于,它的各个存储器模块分别拥有独立的地址逻辑。只要连续访问的存储单元不在同一个存储器模块中,这些模块就可以相互错开1/N周期启动、交叉(轮流)占用系统的地址总线、数据总线和控制总线,所以多体并行存储器也叫“模N交叉存储器”。,2019/7/3,四体交叉存储器的工作示意图,启动体0,单体访存周期,启动体1,启动体2,启动体3,第6章 存储系统,2. 多模块存储器,6. 4. 2 提高主存储器访
39、问带宽的方法,由于模N交叉存储器提供的存储容量为单体存储器的N倍,所以系统的地址总线宽度要大于单体存储器的地址总线宽度,多出的那部分地址将用于生成不同存储体的体选信号。根据选择访存地址的高端还是低端来生成体选信号,可以将模N交叉存储器分为“高位交叉编址存储器”和“低位交叉编址存储器” 。,2019/7/3,00000,00001,00010,00011,高位交叉编址,第6章 存储系统,高位交叉编址存储器,优点是可靠性高,一个存储器模块失效只会影响存储空间的1/N部分,不在这一部分的程序和数据照常工作。问题是,发生访问冲突的概率高。,2019/7/3,00000,00001,00010,0001
40、1,低位交叉编址,第6章 存储系统,低位交叉编址存储器,低位交叉存储器可以将连续的指令和数据存储在不同的存储器模块中,有利于减少访问冲突。但是可靠性差,一旦一个存储体失效,整个存储空间将崩溃。,2019/7/3,第6章 存储系统,6. 4. 2 提高主存储器访问带宽的方法,3、采用更高速器件技术(如双极型MOS)生产的存储芯片; 4、信息按整数边界存储; 5、引入高速缓存Cache 。,2019/7/3,第6章 存储系统,例6-8 某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定int和short型长度分别为32位和16位,并且数据按边界对齐存储。某C语言程序段如下:struct
41、 int a;char b;short c; record;record.a=273;若变量record的首地址为0xC008,则地址0xC008中的内容及record.c的地址分别为 。A0x00、0xC00D B0x00、0xC00E C0x11、0xC00D D0x11、0xC00E,D,2019/7/3,第6章 存储系统,6. 1 存储器的分类与性能评价 6. 2 存储器访问的局部性原理与层次结构存储系统 6. 3 半导体存储器 6. 4 主存储器 6. 5 高速缓冲存储器Cache,为了解决“主存储器的速度始终赶不上处理器的速度”的问题,在主存和处理器之间增设“高速缓冲存储器Cach
42、e”是一种非常有效的办法。Cache采用静态RAM实现,容量小于主存容量,但速度大大高于基于动态RAM的大容量主存。,2019/7/3,第6章 存储系统,6. 5 高速缓冲存储器Cache,6. 5. 1 Cache的工作原理,CPU,MM,Cache,没有Cache,计算机照常工作,有了Cache, 计算机工作得快一点!,2019/7/3,Cache的工作原理,CPU,Cache,MM,2019/7/3,事实上,对于M体交叉访问的主存储器,给出一个主存地址在一个访存周期内能够读出M个字。根据程序访问的局部性原理,CPU将会继续访问这M个字。,所以在主存与Cache之间,设置一个多字宽的局部数
43、据线。当Cache不命中时,CPU将在访问目标数据的同时,一并从主存读出来的M个字,并将其作为一个 块 传送给Cache。这样CPU的下一次访问基本上能够在Cache中命中了。,2019/7/3,当Cache不命中,CPU正常访问主存时,主存一方面将目标数据通过系统数据总线送往CPU;同时,通过CacheMM局部多字宽数据线将附带读出的一个字块送往Cache。,CPU,Cache,MM,2019/7/3,随着CPU访问主存的不断进行时,越来越多的主存字块被装入Cache。由于Cache的容量有限,迟早会出现Cache装满的情况。所以当一个新字块要装入Cache时,它将要判断Cache是否已满?
44、未满则直接装入,否则将启动Cache内部的替换控制机构,从Cache存储体中选择一个旧的字块,将其通过CacheMM局部多字宽数据线写回主存,以腾出空间接纳新送来的字块。,2019/7/3,由于程序访问局部性原理的存在,Cache的命中率通常都在90%以上。所以,增设Cache后,CPU的平均访存速度明显提高,基本上接近Cache 的速度。在CPU看来,它只付出了少许成本,就拥有了一个与主存储器容量相当,速度几乎等于Cache的高级“存储器”,2019/7/3,第6章 存储系统,6. 5 高速缓冲存储器Cache,6. 5. 1 Cache的工作原理,6. 5. 2 地址映像与变换,2019/
45、7/3,地址的映象:地址的变换:,主存块按照什么规则装入到Cache中?,访问Cache时,如何将主存地址变换成对应的Cache地址?,第6章 存储系统,6. 5 高速缓冲存储器Cache,6. 5. 1 Cache的工作原理,6. 5. 2 地址映像与变换,2019/7/3,影响Cache主存地址映象方法选择的因素 地址映象和变换的速度; 块冲突发生概率;,所谓块冲突是指出现了主存块要进入Cache中的某块位置,而这个位置已经被其他主存块占用的现象。,第6章 存储系统,6. 5 高速缓冲存储器Cache,6. 5. 1 Cache的工作原理,6. 5. 2 地址映像与变换,2019/7/3,
46、影响Cache主存地址映象方法选择的因素 地址映象和变换的速度; 块冲突发生概率;,若Cache尚未装满,就发生块冲突,则Cache中将存在空闲块,Cache空间的利用率就不会达到100%。,第6章 存储系统,6. 5. 2 地址映像与变换,常见的映像方法: 全相联映像 直接映象 组相联映象,2019/7/3,主存中的任意一块均可映象装入到Cache内的任意一块位置上,主存中的某一块只能映象装入到Cache内的某一特定块位置上,主存与Cache分组,组间直接相联,组内全相联。,全相联映象的地址变换过程,Cache地址nc,全相联映象的地址变换过程(简化),Cache地址nc(简化),全相联映像
47、的评价,优点:块冲突的概率最低!Cache空间的利用率最高。,缺点:目前,Cache的容量已经比较大,块数很多。因此,构造大容量的目录表(相联存储器),不仅造价高,而且相联比较速度急剧变慢。,相联比较位数最少的映像方法就是直接映像法,能否简化映象表的结构,减少相联比较内容的位数,以加快相联比较速度呢?,第6章 存储系统,6. 5. 2 地址映像与变换,常见的映像方法: 全相联映像 直接映象 组相联映象,2019/7/3,主存中的某一块只能映象装入到Cache内的某一特定块位置上。,第6章 存储系统,6. 5. 2 地址映像与变换,2019/7/3,在直接映像中,主存储器按Cache的大小分区,
48、区内按Cache块的大小分块。 每一个Cache块位置可以接受来至任意一个分区中、相同块位置的主存储器信息块。 地址映象的公式是: Ncb =Nmb mod 2k,(k为Cache块号的位数) 。 即主存信息块对应的Cache块的块号Ncb就等于这个信息块的“主存块号Nmb”后k位。,直接映象的地址变换过程,直接映象法的优缺点,优点硬件简单,成本低,速度快。为什么?,缺点Cache的块冲突概率最高,Cache的空间利用率低。,访问Cache与访问区号表、比较区号是否相符的操作同时进行。,直接映象的地址变换过程(简化),回顾:全相联映象的地址变换过程(简化),Cache地址nc(简化),由上述分
49、析可以看出:全相联映像与直接映像的优缺点是互补的。全相联映像中的Cache块号全部是变换来的。因为是变换来的,所以块冲突概率低。直接映像中的Cache块号全部是截取来的。因为是截取来的,所以查表简单,变换速度快。,能否将全相联映象和直接映象折衷一下,使得Cache块号一部分是截取来的,一部分是变换来的?这样既兼顾变换速度,又兼顾块冲突概率。答案是肯定的。计算机设计的一个重要方法就是:折中 ( Trade-off )。这就是组相联映像。,第6章 存储系统,6. 5. 2 地址映像与变换,常见的映像方法: 全相联映像 直接映象 组相联映象,2019/7/3,从主存地址中截取来的部分构成Cache块号中的高位,变换来的部分总是构成Cache块号的低位。即组间是直接相联,组内总是全相联。,组相联地址变换示意图,