




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章内部存储器主讲:李鹏lipeng@【相关说明:本课件以白中英老师教材及课件为蓝本制作而成,特表感谢;网上文档会伴随教研过程不定期更新版本;最后,恳请文档使用者批评、指正文中出现的错误、疏漏;版本时间:2014.6】《计算机组成原理》(第五版)白中英、戴志涛主编–课件PPT陕西师范大学计算机科学学院第三章多层次的存储器3.1存储器概述3.2SRAM存储器3.3DRAM存储器3.4只读存储器和闪速存储器3.5并行存储器√3.6Cache存储器√3.7虚拟存储器3.8奔腾系列机的虚存组织导入思考:上一章详细讲解了现实世界中的基本信息类型怎样数字化的保存在计算机中,具体地,二进制下的两种基本状态在计算机中以什么样的硬件形式表现?如果要保存,以什么样的信息记录方式存储?计算机存储体系解决了信息的保存问题。3.1存储器概述存储的基本单位:存储位元:最小存储单位,保存一个bit存储单元:基本存储单位,若干个位组成存储器:许多个存储单元组成3.1存储器概述一、分类按存储介质分类:磁表面半导体存储器光存储器按存取方式分类:随机存取:内存顺序存取:磁带,磁盘按存储内容可变性:ROM,RAMRAM:SRAM,DRAMROM:掩模ROM/PROM/EPROM/EEPROM读表3.13.1存储器概述按信息易失性:永久性非永久性的,易失的按存储器系统中的作用分类:高速缓冲存储器主存储器/内存辅助存储器/外存控存3.1存储器概述二、存储器分级结构
1、目前存储器的特点是:速度快的存储器价格贵,容量小;价格低的存储器速度慢,容量大。在计算机存储器体系结构设计时,我们希望存储器系统的性能高、价格低,那么在存储器系统设计时,应当在存储器容量,速度和价格方面的因素作折中考虑,建立了分层次的存储器体系结构如下图所示。3.1.2存储器分级结构3.1.2存储器分级结构2、分级结构高速缓冲存储器简称cache,它是计算机系统中的一个高速小容量半导体存储器。主存储器简称主存,是计算机系统的主要存储器,用来存放计算机运行期间的大量程序和数据。外存储器简称外存,它是大容量辅助存储器。3.1.2存储器分级结构分层存储器系统之间的连接关系Eg.开机的过程;打开Word的过程3.1.3主存储器的技术指标基本概念字存储单元:存放一个机器字的存储单元,相应的单元地址叫字地址。字节存储单元:存放一个字节的单元,相应的地址称为字节地址。存储容量越大,能存储的信息就越多。可编址最小单位字:按字寻址的计算机字节:按字节寻址的计算机一般,一个字可以包含若干个字节3.1.3主存储器的技术指标存储容量:指一个存储器中可以容纳的存储单元总数。1KB=210B1MB=220B1GB=230B1TB=240B位bit比特b字节Byte字节B3.1.3主存储器的技术指标Kilobyte(KB)=1024B相当于一则短篇故事的内容。Megabyte(MB)=1024KB能保存一则短篇小说的内容。Gigabyte(GB)=1024MB相当于一部标清长电影容量。Terabyte(TB)=1024GB相当于一家大型医院中所有的X光图片信息量。Petabyte(PB)=1024TB相当于50%的全美学术研究图书馆藏书资讯内容。Exabyte(EB)=1024PB;5EB相当于至今全世界人类所讲过的话语。Zettabyte(ZB)=1024EB如同全世界海滩上的沙子数量总和。Yottabyte(YB)=1024ZB相当于7000个人体内的细胞信息总和。3.1.3主存储器的技术指标存取时间:又称存储器访问时间,指一次读操作命令发出到该操作完成,将数据读出到数据总线上所经历的时间。通常取写操作时间等于读操作时间,故称为存储器存取时间。存储周期:指连续启动两次读操作所需间隔的最小时间。通常,存储周期略大于存取时间,其时间单位为ns。存储器带宽:单位时间里存储器所存取的信息量,通常以位/秒或字节/秒做度量单位。3.2SRAM存储器主存(内部存储器)是半导体存储器。根据信息存储的机理不同可以分为两类:相对而言静态读写存储器(SRAM):存取速度快,一般用作Cache动态读写存储器(DRAM):存储容量大,一般用作主存3.2SRAM存储器一、基本的静态存储元阵列1、存储元:用锁存器实现。需要加电,无限期保持0或者1状态。3.2SRAM存储器回顾译码器63可参考CAI动画3.2SRAM存储器2、三组信号线地址线:A0-A5,可指定26=64个存储单元数据线:I/O0,I/O1,I/O2,I/O3行线,列线存储器的字长4位控制线:读或写存储位元、存储单元、字存储单元、最小寻址单位、最小编址单位。3.2SRAM存储器二、基本的SRAM逻辑结构
SRAM芯大多采用双译码方式,以便组织更大的存储容量。采用了二级译码:将地址位分成两组,分别为x向、y向两部分,如图所示。A0~A7为行地址译码线A8~A14为列地址译码线3.2SRAM存储器结构分析X方向译码输出256行Y方向译码128行存储器数据宽度8位写入数据:输入缓冲器被打开,输出缓冲器关闭读出数据输出缓冲器被打开,输入缓冲器关闭3.2SRAM存储器读与写的互锁逻辑 控制信号中CS是片选信号,CS有效时(低电平),门G1、G2均被打开。OE为读出使能信号,OE有效时(低电平),门G2开启,当写命令WE=1时(高电平),门G1关闭,存储器进行读操作。写操作时,WE=0,门G1开启,门G2关闭。注意,门G1和G2是互锁的,一个开启时另一个必定关闭,这样保证了读时不写,写时不读。片选信号读使能信号写使能信号门3.2SRAM存储器三、存储器的读写周期读周期读出时间Taq读周期时间Trc写周期写周期时间Twc写时间Twd存取周期读周期时间Trc=写时间Twd3.2SRAM存储器读使能
片选3.2SRAM存储器写使能
片选3.2SRAM存储器教材P69例1:图3.5(a)是SRAM的写入时序图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出图3.5(a)写入时序中的错误,并画出正确的写入时序图。3.2SRAM存储器3.2SRAM存储器3.3DRAM存储器一、DRAM存储位元的记忆原理SRAM存储器的存储位元是锁存器,它具有两个稳定的状态。DRAM存储器的存储位元是由一个MOS晶体管和电容器组成的记忆电路,如图3.6所示。MOS:Metal-Oxide-Semiconductor金属-氧化物-半导体3.3DRAM存储器
MOS管做为开关使用存储的信息1或0则是由电容器上的电荷量来体现当电容器充满电荷时,代表存储了1,当电容器放电没有电荷时,代表存储了0。图(a)表示写1到存储位元。此时输出缓冲器关闭、刷新缓冲器关闭,输入缓冲器打开(R/W为低),输入数据DIN=1送到存储元位线上,而行选线为高,打开MOS管,于是位线上的高电平给电容器充电,表示存储了1。MOS管电容器播放CAI读放图(b)表示写0到存储位元。此时输出缓冲器和刷新缓冲器关闭,输入缓冲器打开,输入数据DIN=0送到存储元位线上;行选线为高,打开MOS管,于是电容上的电荷通过MOS管和位线放电,表示存储了0。图(c)表示从存储位元读出1。输入缓冲器和刷新缓冲器关闭,输出缓冲器/读放打开(R/W为高)。行选线为高,打开MOS管,电容上所存储的1送到位线上,通过输出缓冲器读出放大器发送到DOUT,即DOUT=1。图(d)表示(c)读出1后存储位元重写1。由于(c)中读出1是破坏性读出,必须恢复存储位元中原存的1。此时输入缓冲器关闭,刷新缓冲器打开,输出缓冲器读放打开,DOUT=1经刷新缓冲器送到位线上,再经MOS管写到电容上。同样:输入缓冲器与输出缓冲器总是互锁的。两个操作是互斥的,不会同时发生。思考:当读出是0,读出过程和刷新过程应该是怎样的?3.3DRAM存储器二、DRAM芯片的逻辑结构下面我们通过一个例子来看一下动态存储器的逻辑结构如图。图3.7(a)示出1M×4位DRAM芯片的管脚图,其中有两个电源脚、两个地线脚,为了对称,还有一个空脚(NC)。图3.7(b)是该芯片的逻辑结构图。注:复用地址线A0-A9列选通信号行选通信号存储器单元地址20位地址线10位分析与SRAM不同之处:(1)增加了行地址锁存器和列地址锁存器。由于DRAM存储器容量很大,地址线宽度相应要增加,这势必增加芯片地址线的管脚数目。为避免这种情况,采取的办法是分时传送地址码。若地址总线宽度为10位,先传送地址码A0~A9,由行选通信号RAS打入到行地址锁存器;然后传送地址码A10~A19,由列选通信号CRS打入到列地址锁存器。芯片内部两部分合起来,地址线宽度达20位,存储容量为1M。(2)增加了刷新计数器和相应的控制电路。DRAM读出后必须刷新,而未读写的存储元也要定期刷新,而且要按行刷新,所以刷新计数器的长度等于行地址锁存器。刷新操作与读/写操作是交替进行的,所以通过2选1多路开关来提供刷新行地址或正常读/写的行地址。分析与SRAM不同之处:勘误:P71,第一段倒数第二行CRS改为CAS。3.3DRAM存储器三、读/写周期读周期、写周期的定义是从行选通信号RAS下降沿开始,到下一个RAS信号的下降沿为止的时间。通常为控制方便,读周期和写周期时间相等。注意行选通信号、列选通信号的作用3.3DRAM存储器四、刷新周期刷新周期:DRAM存储位元是基于电容器上的电荷量存储,这个电荷量随着时间减少,因此必须定期地刷新,以保持它们原来记忆的正确信息。刷新有两种方式:集中式刷新分散式刷新刷新操作有两种刷新方式:1、集中式刷新:DRAM的所有行在每一个刷新周期中都被刷新。例如刷新周期为8ms的内存来说,所有行的集中式刷新必须至少每隔8ms进行一次。为此将8ms时间分为两部分:前一段时间进行正常的读/写操作,后一段时间做为集中刷新操作时间。刷新操作有两种刷新方式:2、分散式刷新:每一行的刷新插入到正常的读/写周期之中。例如p70,图3.7所示的DRAM有1024行,如果刷新周期为8ms,则必须至少每隔8ms÷1024=7.8us做一次行刷新操作。思考:刷新与存取能不能并行?不能,因为内存就一套地址译码和片选装置,刷新与存取有相似的过程,它要选中某一行——这期间片选线、地址线、地址译码器全被占用着。同理,刷新操作之间也不能并行——意味着一次只能刷一行。3.3DRAM存储器五、存储器容量的扩充(重要)1、字长位数扩展 假如给定的存储芯片字长位数较短,不能满足设计要求的存储器字长,此时需要用多片给定芯片扩展字长位数。具体实现:三组信号线中,地址线和控制线公用而数据线单独分开连接。所需存储芯片数量:
d=设计要求的存储器字节容量/给定芯片存储器字节容量
存储芯片[例2]利用1M×4位的SRAM芯片,设计一个存储容量为1M×8位的SRAM存储器。
解:所需芯片数量=(1M×8)/(1M×4)=2片参照教材图3.93.3DRAM存储器2、字存储容量扩展给定的芯片存储容量较小(字数少),不满足设计要求的总存储容量,此时需要用多片给定芯片来扩展字数。具体地,三组信号组中给定芯片的地址总线和数据总线公用,控制总线中R/W公用,使能端EN不能公用,它由地址总线的高位段译码来决定片选信号。所需芯片数:d=设计要求的存储器容量/选择芯片存储器容量[例3]利用1M×8位的DRAM芯片设计2M×8位的DRAM存储器解:所需芯片数d=(2M×8)/(1M×8)=2(片)参考教材图3.103.3DRAM存储器3、存储器模块条存储器通常以模块条形式供应市场。这种模块条常称为内存条,它们是在一个条状形的小印制电路板上,用一定数量的存储器芯片,组成一个存储容量固定的存储模块,可以插入计算机主板内存插槽。如图所示。3.3DRAM存储器内存条有30脚、72脚、100脚、144脚、168脚等多种形式。30脚内存条设计成8位数据线,存储容量从256KB~32MB。72脚内存条设计成32位数据总线100脚以上内存条既用于32位数据总线又用于64位数据总线,存储容量从4MB~512MB。2G内存引脚个数一般在200左右。3.3DRAM存储器相对来讲,DRAM造价低廉,容量大,但因其内部结构及与总线连接受限等因素,使得其速率无法与CPU匹配。因此:采用Cache策略增强型DRAM3.3DRAM存储器3.3.5、高级的DRAM结构FPMDRAM:快速页模式动态存储器根据程序的局部性原理来实现读周期和写周期中,先由低电平的行选通信号RAS确定行地址,并一直保持有效然后由低电平的列选信号CAS确定列地址。下一次寻找操作,行地址不变,打入新的连续的列地址,取得数据,依此类推如下图所示3.3.5、高级的DRAM结构快速页模式读操作的时序图:3.3.5、高级的DRAM结构注意:电子教案上的该图有错误3.3.5、高级的DRAM结构CDRAM带高速缓冲存储器(cache)的动态存储器,它是在通常的DRAM芯片内又集成了一个小容量的SRAM,从而使DRAM芯片的性能得到显著改进。如图所示出1M×4位CDRAM芯片的结构框图,其中SRAM为512×4位。3.3.5、高级的DRAM结构SDRAM同步型动态存储器。计算机系统中的CPU使用的是系统时钟,SDRAM的操作要求与系统时钟相同步,在系统时钟的控制下从CPU获得地址、数据和控制信息。换句话说,它与CPU的数据交换同步于外部的系统时钟信号,并且以CPU/存储器总线的最高速度运行,而不需要插入等待状态。其原理和时序关系见下一页图和动画。3.3.5、高级的DRAM结构[例4]CDRAM内存条组成实例。 一片CDRAM的容量为1M×4位,8片这样的芯片可组成1M×32位4MB的存储模块,其组成如下图所示。3.3.6、DRAM主存读/写的正确性校验DRAM通常用做主存储器,其读写操作的正确性与可靠性至关重要。数据在传输、保存中难免有即使很低的错误概率。使用校验码保证正确性,校验码一并写入DRAM:奇偶校验:只能检测1位数据汉明校验:检测多位并自动恢复正确值DRAM正确性校验概念图3.4只读存储器和闪速存储器一、只读存储器
ROM叫做只读存储器。顾名思义,只读的意思是在它工作时只能读出,不能写入。然而其中存储的原始数据,必须在它工作以前写入。只读存储器由于工作可靠,保密性强,在计算机系统中得到广泛的应用。3.4只读存储器和闪速存储器主要有两类:掩模ROM:掩模ROM实际上是一个存储内容固定的ROM,由生产厂家提供产品。可编程ROM:由用户后写入内容,有些可以多次写入。一次性编程的PROM多次编程的EPROM和EEPROM。3.4只读存储器和闪速存储器1、掩模ROM的阵列结构和存储元晶体管(指MOS管)结构示意图分析:MOS管导通代表存1,不通代表存0.单译码结构3.4只读存储器和闪速存储器2、掩模ROM的逻辑符号和内部逻辑框图3、可编程ROMPROM:一次性编程ROMEPROM:光擦除可编程只读存储器。EEPROM:电擦除可编程只读存储器。勘误:P79,倒数第三行:可读->只读3.4只读存储器和闪速存储器EPROM叫做光擦除可编程只读存储器。它的存储内容可以根据需要写入,当需要更新时将原存储内容抹去,再写入新的内容。现以浮栅雪崩注入型MOS管为存储元的EPROM为例进行说明,结构如右图所示。3.4只读存储器和闪速存储器现以浮栅雪崩注入型MOS管为存储元的EPROM为例进行说明,结构如图(a)所示,图(b)是电路符号。若在漏极D端加上约几十伏的脉冲电压,使得沟道中的电场足够强,则会造成雪崩,产生很多高能量电子。此时,若在G2栅上加上正电压,形成方向与沟道垂直的电场,便可使沟道中的电子穿过氧化层而注入到G1栅,从而使G1栅积累负电荷。由于G1栅周围都是绝缘的二氧化硅层,泄漏电流极小,所以一旦电子注入到G1栅后,就能长期保存。3.4只读存储器和闪速存储器当G1栅有电子积累时,该MOS管的开启电压变得很高,即使G2栅为高电平,该管仍不能导通,相当于存储了“0”。反之,G1栅无电子积累时,MOS管的开启电压较低,当G2栅为高电平时,该管可以导通,相当于存储了“1”。图(d)示出了读出时的电路,它采用二维译码方式:x地址译码器的输出xi与G2栅极相连,以决定T2管是否选中;y地址译码器的输出yi与T1管栅极相连,控制其数据是否读出。当片选信号CS为高电平即该片选中时,方能读出数据。3.4只读存储器和闪速存储器这种器件的上方有一个石英窗口,如图(c)所示。当用光子能量较高的紫外光照射G1浮栅时,G1中电子获得足够能量,从而穿过氧化层回到衬底中,如图(e)所示。这样可使浮栅上的电子消失,达到抹去存储信息的目的,相当于存储器又存了全“1”。3.4只读存储器和闪速存储器这种EPROM出厂时为全“1”状态,使用者可根据需要写“0”。写“0”电路如图(f)所示,xi和yi选择线为高电位,P端加20多伏的正脉冲,脉冲宽度为0.1~1ms。EPROM允许多次重写。抹去时,用40W紫外灯,相距2cm,照射几分钟即可。
3.4只读存储器和闪速存储器E2PROM存储元
EEPROM,叫做电擦除可编程只读存储器。其存储元是一个具有两个栅极的NMOS管,如图(a)和(b)所示,G1是控制栅,它是一个浮栅,无引出线;G2是抹去栅,它有引出线。在G1栅和漏极D之间有一小面积的氧化层,其厚度极薄,可产生隧道效应。如图(c)所示,当G2栅加20V正脉冲P1时,通过隧道效应,电子由衬底注入到G1浮栅,相当于存储了“1”。利用此方法可将存储器抹成全“1”状态。3.4只读存储器和闪速存储器这种存储器在出厂时,存储内容为全“1”状态。使用时,可根据要求把某些存储元写“0”。写“0”电路如图(d)所示。漏极D加20V正脉冲P2,G2栅接地,浮栅上电子通过隧道返回衬底,相当于写“0”。E2PROM允许改写上千次,改写(先抹后写)大约需20ms,数据可存储20年以上。E2PROM读出时的电路如图(e)所示,这时G2栅加3V电压,若G1栅有电子积累,T2管不能导通,相当于存“1”;若G1栅无电子积累,T2管导通,相当于存“0”。3.4只读存储器和闪速存储器4、闪速存储器(即,Flash存储器)它具有巨大比特数目的存储容量。非易失性意味着存放的数据在没有电源的情况下可以长期保存。FLASH存储器也翻译成闪速存储器,它既有RAM的优点,又有ROM的优点,是存储技术划时代的进展。闪速存储器的特点:固有的非易失性:断电后信息不会丢失。廉价的高密度:相同容量的闪速存储器和DRAM相比,其位成本相近。可执行性:闪速存储器可以直接与CPU相连,大大提高程序和文件的访问速度。固态性:闪速存储器是一种低功耗、高密度且无机电装置的半导体器件,特别适合便携式系统应用。3.4只读存储器和闪速存储器FLASH存储元是在EPROM存储元基础上发展起来的,由此可以看出创新与继承的关系。如右图所示为闪速存储器中的存储元,由单个MOS晶体管组成,除漏极D和源极S外,还有一个控制栅和浮空栅。3.4只读存储器和闪速存储器“0”状态:当控制栅加上足够的正电压时,浮空栅将储存许多电子带负电,这意味着浮空栅上有很多负电荷,这种情况我们定义存储元处于0状态。“1”状态:如果控制栅不加正电压,浮空栅则只有少许电子或不带电荷,这种情况我们定义为存储元处于1状态。浮空栅上的电荷量决定了读取操作时,加在栅极上的控制电压能否开启MOS管,并产生从漏极D到源极S的电流。3.4只读存储器和闪速存储器编程操作:实际上是写操作。所有存储元的原始状态均处“1”状态,这是因为擦除操作时控制栅不加正电压。编程操作的目的是为存储元的浮空栅补充电子,从而使存储元改写成“0”状态。如果某存储元仍保持“1”状态,则控制栅就不加正电压。如图(a)表示编程操作时存储元写0、写1的情况。实际上编程时只写0,不写1,因为存储元擦除后原始状态全为1。要写0,就是要在控制栅C上加正电压。一旦存储元被编程,存储的数据可保持100年之久而无需外电源。3.4只读存储器和闪速存储器读取操作:控制栅加上正电压。浮空栅上的负电荷量将决定是否可以开启MOS晶体管。如果存储元原存1,可认为浮空栅不带负电,控制栅上的正电压足以开启晶体管。如果存储元原存0,可认为浮空栅带负电,控制栅上的正电压不足以克服浮动栅上的负电量,晶体管不能开启导通。当MOS晶体管开启导通时,电源VD提供从漏极D到源极S的电流。读出电路检测到有电流,表示存储元中存1,若读出电路检测到无电流,表示存储元中存0,如图(b)所示。3.4只读存储器和闪速存储器擦除操作:所有的存储元中浮空栅上的负电荷要全部洩放出去。为此晶体管源极S加上正电压,这与编程操作正好相反,见图(c)所示。源极S上的正电压吸收浮空栅中的电子,从而使全部存储元变成1状态。3.4只读存储器和闪速存储器FLASH存储器的阵列结构FLASH存储器的简化阵列结构如右图所示。在某一时间只有一条行选择线被激活。读操作时,假定某个存储元原存1,那么晶体管导通,与它所在位线接通,有电流通过位线,所经过的负载上产生一个电压降。这个电压降送到比较器的一个输入端,与另一端输入的参照电压做比较,比较器输出一个标志为逻辑1的电平。如果某个存储元原先存0,那么晶体管不导通,位线上没有电流,比较器输出端则产生一个标志为逻辑0的电平。各种存储器性能比较看P84表3.33.5并行存储器由于CPU和主存储器之间在速度上是不匹配的,这种情况便成为限制高速计算机设计的主要问题。为了提高CPU和主存之间的数据传输率:采用更高速的技术来缩短读写时间采用并行技术空间并行—双端口存储器时间并行---多体交叉存储器采用分层存储系统Cache虚拟存储系统3.5并行存储器一、双端口存储器1、双端口存储器的逻辑结构双端口存储器:同一个存储器具有两组相互独立的读写控制电路是一种高速工作的存储器,独立并行操作双端口存储器IDT7133的逻辑框图如图示。3.5并行存储器R3.5并行存储器2、无冲突读写控制当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。片选控制(CE,低电平有效)输出驱动控制(OE,低电平有效)。3.5并行存储器勘误:P85图3.24右下角BUSY脚标L改为R分析表3.43.5并行存储器3、有冲突读写控制两个端口地址相同时发生读写冲突置了BUSY标志解决冲突:判断逻辑可以决定优先权对获得使用权的端口放开BUSY标志(高)对被延迟的端口置BUSY标志(BUSY变为低电平),即暂时关闭此端口。3.5并行存储器4、有冲突读写控制判断方法(1)如果先地址匹配,后CE片选有效:片上的控制逻辑在CEL和CER之间进行判断来选择端口(CE判断)。(2)如果先片选CE有效,后在地址匹配:片上的控制逻辑在左、右地址间进行判断来选择端口(地址有效判断)。无论采用哪种判断方式,最终延迟端口的BUSY标志都将置位而关闭此端口。而当允许存取的端口完成操作时,延迟端口BUSY标志才进行复位而打开此端口。勘误:P86表3.5第六行文字,“右端口”列:≠(A0~A10)R
改为≠(A0~A10)L阅读表3.5LV5R:左地址有效先于右地址50ns以上RV5L:右地址有效先于左地址50ns以上Same:左右地址有效均在50ns内匹配
LL5R:CEL变低先于CER50ns以上RL5L:CER变低先于CEL50ns以上LW5R:CEL和CER均互50ns在内变低3.5.1双端口存储器地址相同地址相同3.5.1双端口存储器3.5并行存储器二、多模块交叉存储器:由若干个存储模块组成的主存储器是线性编址的。具体有两种方式:一种是顺序方式一种是交叉方式当要访问某数据块内容时,需访问连续的存储单元3.5并行存储器3.5并行存储器1、顺序方式[例]M0-M3共四个模块,则每个模块8个字顺序方式:
M0:0—7
M1:8-15
M2:16-23
M3:24-315位地址组织如下:
XX
XXX高位选模块,低位选块内地址3.5并行存储器特点:某个模块进行存取时,其他模块不工作优点是某一模块出现故障时,其他模块可以照常工作通过增添模块来扩充存储器容量比较方便。缺点是各模块串行工作,存储器的带宽受到了限制,并行性低。3.5并行存储器[例]M0-M3共四个模块,则每个模块8个字交叉方式:
M0:0,4,...除以4余数为0
M1:1,5,...除以4余数为1
M2:2,6,...除以4余数为2
M3:3,7,...除以4余数为35位地址组织如下:
XXX
XX高位选块内地址,低位选模块3.5并行存储器特点:连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。优点是对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。使用场合为成批数据读取。3.5并行存储器假设有n个存储体,每个存储体的容量为m个存储单元顺序方式存储单元地址:高位低位m个存储单元,每个存储体内的地址位数片选,n个存储体选择3.5并行存储器2、交叉方式存储单元地址:高位低位(可以实现多模块流水式并行存取)每个存储体内的地址位数片选,存储体选择3.5并行存储器3、多模块交叉存储器的基本结构
四模块交叉存储器结构框图3.5并行存储器主存被分成4个相互独立、容量相同的模块M0,M1,M2,M3每个模块都有自己的读写控制电路、地址寄存器和数据寄存器各自以等同的方式与CPU传送信息如果程序段或数据块都是连续地在主存中存取,那么将大大提高主存的访问速度,怎样提高?思考你觉得采用什么样的机制能提高内存数据访问效率?
分时使用数据总线假定模块字长(存储单元位数)等于数据总线宽度多模块流水!定量分析:假定模块内访问一个存储单元(字)的存储周期是T模块数m总线传送周期tT=mt流水方式存取示意图1时间M0M1M2M3t时间片T流水方式存取示意图23.5并行存储器通常在一个存储器周期内,n个存储体必须分时启动,各变量应该满足关系:T=mtm=T/t,称为交叉存取度整个存储器的存取速度有望提高m倍若数据块由连续的x个存储字构成例5设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。若连续读出4个字,问顺序存储器和交叉存储器的带宽各是多少?解:顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:
q=64b×4=256b顺序存储器和交叉存储器连续读出4个字所需的时间分别是:t2=mT=4×200ns=800ns=8×10-7st1=T+(m-1)t=200ns+3*50ns=350ns=3.5×10-7s顺序存储器和交叉存储器的带宽分别是:W2=q/t2=256b÷(8×10-7)s=320Mb/sW1=q/t1=256b÷(3.5×10-7)s=730Mb/s二模块交叉存储器举例(略)二模块交叉存储器举例(略)3.6Cache存储器1、Cache功能什么是Cache?介于CPU和主存M2之间的小容量存储器存取速度比主存快一般采用高速的SRAM构成。为什么要引入Cache?解决CPU和主存之间的速度不匹配问题Cache引入的前提:即空间局部性、时间局部性。3.6Cache存储器CPU和主存之间的速度差别很大时可采用两级或多级Cache系统早期的一级Cache在CPU内,二级在主板上现在的CPU内带L1Cache和L2Cache全由硬件调度,对用户透明3.6Cache存储器3.6Cache存储器2.cache基本原理CPU与Cache之间的数据传送是以字为单位主存与Cache之间的数据传送是以块为单位一个块由若干字组成,是定长的。CPU读主存的一个字时,便把此字的内存地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中:若在,此字立即传送给CPU否不在,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。3.6Cache存储器3.Cache的命中率从CPU来看,增加一个cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。为了达到这个目的,在所有的存储器访问中由cache满足CPU需要的部分应占很高的比例,即cache的命中率应接近于1。由于程序访问的局部性,实现这个目标是可能的。3.6Cache存储器在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有
h=Nc/(Nc+Nm)若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为:
ta=h*tc+(1-h)*tm3.6Cache存储器推导过程:ta=h*tc+(1-h)*tmta=(tc*Nc+tm*Nm)/(Nc+Nm)=(Nc/(Nc+Nm))*tc+(Nm/(Nc+Nm))*tm=h*tc+(1-h)*tm3.6Cache存储器我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问时间ta越接近tc越好。设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有 e=tc/ta=tc/(h*tc+(1-h)*tm) =1/(h+(1-h)*r)=1/(r+(1-r)*h)由表达式看出,为提高访问效率,命中率h越接近1越好,r值即tm/tc,以5—10为宜,不宜太大。命中率h与程序的行为、cache的容量、组织方式、块的大小有关。重要公式命中率
Cache/主存系统的平均访问时间访问效率Cache与内存的速度比cccc例6.CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。例6解:解: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=60ns3.6.2主存与Cache的地址映射问题引入:看样子映射过程很复杂,为什么要搞个映射的事情出来?思考:CPU要取一个字,肯定要给出这个字所在内存的地址,然后将该地址发往Cache,判断所要取的字是否在Cache中,在就取走,不在就去内存找。有没有觉得哪里不对?用内存地址去访问Cache存储器!必须应用某种方法,把主存的地址定位到Cache中的确切地址——地址映射当cpu访问主存时,给出的内存地址可转变为cache地址无论选择那种映射方式,都要把主存和cache划分为同样大小的“块”。硬件实现,透明性选择哪种映射方式,要考虑:硬件是否容易实现地址变换的速度是否快Cache空间的利用率是否高主存装入一块时,发生冲突的概率以下我们介绍三种映射方法3.6.2主存与Cache的地址映射先明确一个简单的情况01234567323334353637383908162432.....120...01234.....15块编号所需位数:4位块内字编号所需位数:3位内存字编号所需位数:7位127存储单元块先明确一个简单的情况当前知道了某个存储单元的地址35,怎样计算它所在的块编号?因为8个存储单元一个块,所以35/8=4……3即35号存储单元位于第4块的第3号字先明确一个简单的情况000010100110323334353637383900000000001000001000000110000100000.....1111000...00000001001000110100.....1111127存储单元块地址4位字地址3位先明确一个简单的情况当前知道了某个存储单元的地址(0100011)2
(即35号),怎样计算它所在的块编号?因为(1000)2个(即8个)存储单元一个块,所以0100011/1000=0100……011即(0100011)2号存储单元位于第(0100)2块的第(011)2号字所以,对于任一内存地址:高4位:块号低3位:字号返回四体交叉存储器一、全相联的映射方式映射结构映射方法(多对多)主存内容可以拷贝到Cache任意行地址变换标记实际上构成了一个目录表。2r行2s块2w个:4个XXXXXXXXXX一、全相联的映射方式内存地址:块号块内地址转换公式主存地址长度=(s+w)位
块内寻址单元数=2w个字
块大小=行大小=2w个字
主存的块数=2s
标记大小=块号的位数=s位
cache的行数:不由地址格式确定
0000000000000001000000100000001101011000010110010000001001011001010000001010000000100000000101011001块地址(块号)一、全相联的映射方式完整内存地址11111111一、全相联的映射方式映射检索过程1、将地址分为两部分(块号和字),在内存块写入Cache时,同时写入块号标记;2、CPU给出访问地址后,也将地址分为两部分(块号和字),比较电路块号与Cache表中的标记进行比较,相同表示命中,访问相应单元;如果没有命中访问内存,CPU直接访问内存,并将被访问内存的相对应块写入Cache。一、全相联的映射方式什么是相联存储器?也叫关联存储器(associativememory)、按内容访问存储器(contentaddressedmemory)或简称为TLB(TranslationLookasideBuffer)它是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找快表写入信息时按顺序写入,不需要地址。读出时,要求中央处理单元给出一个相联关键字,用它和存储器中所有单元中的一部分信息进行比较,若它们相等,则将此单元中余下的信息读出。这是实现存储器并行操作的一种有效途径,特别适合于信息的检索和更新。一、全相联的映射方式特点:优点:冲突概率小,Cache的利用高。缺点:比较电路实现成本高,需要一个访问速度很快代价高的相联存储器应用场合:适用于小容量的Cache看动画片二、直接映射方式1、映射方法(一对多)如:i=jmodm主存第j块内容拷贝到Cache的i行一般j和m都是2N级
[例]cache容量16行,主存容量256块(块与行容量相等),则块2,18,34…..242等都存放在cache的地址2内,如果第一次2在cache中,下次访问34内容,则不管cache其他位置的内容访问情况,都会引起2块内容的替换。二、直接映射方式映射结构
转换公式主存地址长度=(s+w)位
寻址单元数=2s+w个字
块大小=行大小=2w个字
主存的块数=2s
cache的行数=m=2r
标记大小=(s-r)位
二、直接映射方式映射检索过程000000000000000100000010000000110101100001011001010110110101101001011111010000001011010111100101011块号蓝色:行号;绿色:字地址Cache地址000Cache地址010Cache地址111内存地址各段涵义分析:tag,标记行号,Cache行地址块内地址,字地址内存地址块地址,块号二、直接映射方式基本原理利用行号选择相应行;把行标记与CPU访问地址进行比较,相同表示命中,访问Cache;如果没有命中,访问内存,并将相应块写入Cache二、直接映射方式特点优点:比较电路少m倍线路,所以硬件实现简单,Cache地址为主存块地址的低若干位,不需变换。缺点:冲突概率高(易抖动,频繁交换)应用场合适合大容量Cache
思考两种映射方式的优缺点全相联检索成本高直接映射换出换入机制有缺陷能否折中?三、组相联映射方式前两者的组合Cache分组,组间采用直接映射方式,组内采用全相联的映射方式Cache分组U,组内容量V,即U组V行映射方法(一对多)q=jmodu主存第j块内容拷贝到Cache的q组中的某行地址变换设主存内块地址x,看是不是在cache中,先计算组号y=xmodu,则在y组中查找三、组相联映射方式分析:比全相联容易实现,冲突低v=1,则为直接相联映射方式u=1,则为全相联映射方式v的取值一般比较小,一般是2的幂,称之为v路组相联cache.三、组相联映射方式转换公式主存地址长度=(s+w)位
寻址单元数=2s+w个字
块大小=行大小=2w个字
主存的块数=2s
每组的行数=v
cache的行数=uv
组号的位数为d2d=u
(注意本行勘误)
标记大小=(s-d)位
三、组相联映射方式U组V行三、组相联映射方式000000000000000100000010000000110101100001011001111111110101101001011000110000001001001011000000010110000000010110块号蓝色:组号;绿色:字地址三、组相联映射方式内存地址各段涵义分析:播放三种映射方式下的演示动画tag,标记组号,Cache组地址块内地址,字地址内存地址块地址,块号三、组相联映射方式特点V路比较器较易实现块在组中存放有一定灵活性,冲突较少是全相联映射和直接映射方法的折衷应用场合因兼顾了二者优点又尽量避免了缺点,被普遍使用行号典型例题主存例9:有一个存储体系,主存容量1MB,字长1B,块大小16B,Cache容量64KB。若Cache采用全相联映射,对内存地址(F0010)H给出相应的标记和字号。注意勘误:教材上该题目疏漏多,注意纠正。解:块大小=行大小=24字节w=4主存寻址单元数1M=220S+w=20位,s=16位主存的块数216
,标记大小s=16位主存格式主存地址(F0010)16=(11110000000000010000)2对应的标记=1111000000000001字号=0000标记s字号w16位4位过渡段终于说完了为什么要映射及怎样完成映射有一个仍然未被解决的问题:CPU访问Cache未命中发生后,要把内存中的块放入Cache,多次放入导致cache满了怎么办?需要新的块覆盖旧的块,即替换。覆盖掉哪个块?依照什么策略替换?3.6.3替换策略LFU(最不经常使用,LeastFrequentlyUsed):被访问的行计数器增加1,换值小的行,不能反映近期cache的访问情况,LRU(近期最少使用,LeastRecentlyUsed):被访问的行计数器置0,其他的计数器增加1,换值大的行,符合cache的工作原理随机替换:随机替换策略实际上是不要什么算法,从特定的行位置中随机地选取一行换出即可。这种策略在硬件上容易实现,且速度也比前两种策略快。缺点是随意换出的数据很可能马上又要使用,从而降低命中率和cache工作效率。但这个不足随着cache容量增大而减小。随机替换策略的功效只是稍逊于前两种策略。3.6.3替换策略例子:设cache有1、2、3、4共4个行,a、b、c、d等为主存中的块,访问顺序一次如下:a、b、c、d、b、b、c、c、d、d、a,下次若要再访问e块。
问,采用LFU和LRU算法替换结果是不是相同?
LFU(最不经常使用)LRU(近期最少使用)
说明1行2行3行4行说明1行2行3行4行aa进入1000a进入0111bb进入1100b进入1022cc进入1110c进入2103dd进入1111d进入3210b命中1211命中4021b命中1311命中5032c命中1321命中6103c命中1331命中7204d命中1332命中8310d命中1333命中9420a命中2333命中0531e替换a1000替换b10423.6.4写操作策略现在,弄明白了在Cache行满时,怎样实现新块替换旧块。再思考:前面讲cache的作用时多用的例子是cpu从内存读数据的情形试想,如果是cpu要给内存写数据是什么情况?3.6.4写操作策略思考CPU写入内存时,cache命中的情况?由于cache的内容只是主存部分内容的拷贝,它应当与主存内容保持一致。而CPU对cache的写入更改了cache的内容。如何与主存内容保持一致,可选用三种写操作策略。3.6.4写操作策略写回法:换出时,对行的修改位进行判断,决定是写回还是舍掉。全写法:写命中时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租房家具仓库直销合同协议
- 码头用品采购合同协议
- 私人理发店合同协议
- 看护鱼塘合同协议版
- 私生子落户合同协议
- 租赁演出服合同协议
- 砂石合同价格补充协议
- 私人餐厅采购合同协议
- 瓷煲盖购销合同协议
- 电表车位租赁合同协议
- 2023年供货方案 医疗器械供货方案(四篇)
- 森林病虫害防治自测练习试题与答案
- GB/T 3728-1991工业乙酸乙酯
- GB/T 34949-2017实时数据库C语言接口规范
- GB/T 3452.1-2005液压气动用O形橡胶密封圈第1部分:尺寸系列及公差
- GB/T 23641-2018电气用纤维增强不饱和聚酯模塑料(SMC/BMC)
- 2023年国际焊接工程师考试IWE结构试题
- 精华版-赵武灵王胡服骑射课件
- 《高等教育心理学》《高等教育学》样题
- 高等学校英语应用能力考试〔B级〕真题及答案
- 高三(5)高考冲刺家长会课件
评论
0/150
提交评论