chapter3内存储器-课件_第1页
chapter3内存储器-课件_第2页
chapter3内存储器-课件_第3页
chapter3内存储器-课件_第4页
chapter3内存储器-课件_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理武汉科技大学计算机科学与技术学院第三章 内部存储器本章内容3.1 存储器概述3.2 SRAM存储器3.3 DRAM存储器3.4 只读存储器和闪速存储器3.5 并行存储器3.6 Cache存储器9.4 虚拟存储器3.1 存储器概述3.1.1 存储器的分类半导体器件磁性材料磁盘、磁带光材料光盘双极型MOS型1. 按存储介质分2. 按存取方式分 随机存储器:如半导体存储器顺序存储器:如磁带半顺序存储器:如磁盘、光盘存储位元、存储单元、存储器目录4. 按信息易失性分 3. 按存储内容的可变性分(半导体存储器的分类)只读存储器(ROM)随机读写存储器(RAM)易失性存储器:断电后信息消失(

2、如RAM)非易失性存储器:断电后仍能保存信息5. 按在系统中的作用分 MROMPROMEPROMEEPROMSRAMDRAM控制存储器高速缓冲存储器主存储器辅助(外)存储器闪速存储器(FLASH)NAND FLASHNOR FLASH不可变或条件可变条件可变可变内存储器(CPU可直接访问) 半导体存储器类型存储器类型种类可擦除性写机制易失性随机存取存储器RAM读-写存储器电,字节级电易失只读存储器ROM一次编程只读存储器不能掩模非易失可编程PROM电光擦可编程EPROM多次编程只读存储器紫外线,芯片级电擦可编程EEPROM电,字节级闪速存储器电,块级3.1.2 存储器的分级 设计存储器体系结构

3、时应考虑容量、速度和成本高速缓冲存储器(cache)高速小容量半导体存储器主存储器(主存)存放计算机运行期间的大量程序和数据;采用MOS半导体存储器构成外存储器(外存)大容量辅助存储器各级存储器之间的关系3.1.2 存储器分级结构CPU外存(辅存)寄存器高速缓冲存储器主存主机3.1.3 主存储器的技术指标字存储单元、字地址;字节存储单元、字节地址按字寻址的计算机、按字节寻址的计算机存储容量存储器中可以容纳的存储单元总数,通常用字数或字节数表示(单位:K、M、G、T)存取时间(存储器访问时间)发出一次读操作命令到该操作完成,将数据读出到数据总线上所经历的时间;通常取写操作时间等于读操作时间存储周

4、期连续启动两次读操作所需间隔的最小时间,略大于存取时间存储器带宽:单位时间里存储器所存取的信息量指标 含义 表现 单位 存储容量一个存储器中可容纳的存储单元总数 存储空间的大小 字数,字节数 KB、MB、GB、TB存取时间启动到完成一次存储器操作所经历的时间主存的速度 存储周期连续启动两次操作所需间隔的最小时间 主存的速度 存储器带宽单位时间里存储器所存取的信息量 数据传输速率位/秒,字节/秒3.2 SRAM存储器内存采用半导体存储器,按信息存储的机理不同分类静态随机读写存储器(SRAMStatic RAM)动态随机读写存储器(DRAMDynamic RAM)目录3.2.1 基本的静态存储元阵

5、列1、存储位元是一个触发器,具有两个稳定状态644位2、三组信号线地址线数据线控制线行线列线地址译码器 双译码(二级译码)x向(A0A7 ) 、y向( A8A14 )3.2.2 基本的SRAM逻辑结构存储体、地址译码器和读写控制逻辑存储体(32K2561288)读写控制逻辑(CS=0时)读操作OE=0,G2开启, G1关闭写操作WE=0,G1开启,G2关闭032767RAM32K83.2.3 读/写周期波形图读周期读出时间tAQ读周期tRC写周期写时间tWD写周期tWC存取周期取tRC= tWC例1:SRAM的写入时序如图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把

6、数据线上的数据写入存储器。请指出该写入时序中的错误,并画出正确的写入时序图。3.3 DRAM存储器3.3.1 DRAM存储元的记忆原理由一个MOS晶体管和电容器组成的记忆电路目录3.3.1 DRAM存储元的记忆原理1、MOS管作为开关使用,信息由电容器上的电荷量体现电容器充满电荷代表存储了1;电容器放电没有电荷代表存储了03、写0输出缓冲器和刷新缓冲器关闭;输入缓冲器打开,输入数据DIN=0送到存储元位线上;行选线为高,打开MOS管,电容上的电荷通过MOS管和位线放电5、读出1后存储位元重写1 (1的读出是破坏性的)输入缓冲器关闭,刷新缓冲器和输出缓冲器/读放打开,DOUT=1经刷新缓冲器送到

7、位线上,再经MOS管写到电容上4、读出1输入缓冲器和刷新缓冲器关闭;输出缓冲器/读放打开(R/W为高);行选线为高,打开MOS管,电容上存储的1送到位线上,通过输出缓冲器/读出放大器发送到DOUT,即DOUT=12、写1输出缓冲器和刷新缓冲器关闭;输入缓冲器打开(R/W为低),DIN=1送到存储元位线上;行选线为高,打开MOS管,位线上的高电平给电容器充电与SRAM相比,增加的部件:以1M4位的DRAM为例3.3.2 DRAM芯片的逻辑结构(1) 行、列地址锁存器分时传送,RAS/CAS(2) 刷新计数器及控制电路按行刷新;刷新计数器的长度、刷新地址与读/写地址的切换1. 读周期、写周期从RA

8、S下降沿开始,到下一个RAS的下降沿为止的时间(连续两个读周期的时间间隔),通常取读周期=写周期3.3.3 读/写周期、刷新周期2. 刷新周期刷新周期:典型值2ms、8ms16ms;某些器件可大于100ms刷新操作以行为单位进行刷新方式集中式刷新分散式刷新异步式刷新3.3.3 读/写周期、刷新周期例:设某个存储器结构为10241024的存储矩阵读/写周期为TC=0.5s,刷新周期为8ms集中刷新方式集中式刷新:将一个刷新周期分为两部分前一段时间进行正常读/写;后一段时间作为集中刷新时间优点:对存储器的平均读/写时间影响不大,适用于高速存储器缺点:在集中刷新时间内不能进行存取访问死时间读/写/保

9、持刷新tctc012149750110238ms集中刷新方式8ms分成16000个TC(=0.5s),只需1024个TC进行刷新分散刷新方式分散式刷新:将一个存储系统周期tS分为两半前半段用于读/写,后半段为刷新时间tctR读/写刷新tS8ms读/写刷新刷新读/写分散刷新方式优点:不存在死时间缺点:刷新过于频繁,影响系统速度;如存储器读/写周期为0.5s,则存储系统的周期至少应为1s整个系统速度降低设TC=0.5s,系统周期TS=1s,则只需1024s即可刷新一遍,在8ms内可进行多次刷新异步刷新方式异步式刷新:前两种方式结合,先用刷新的行数对刷新周期进行分割,再将分割好的时间分为两部分前段时

10、间用于读/写,后一小段时间用于刷新读/写7.8s8ms刷新读/写7.8s刷新异步刷新方式将8ms分割成1024个时间段,每段时间为8ms/1024=7.8125s(取7.8s),每隔7.8s刷新一行,8ms内完成对所有1024行的一次刷新3.3.4 存储器容量的扩充1、字长位数扩展地址线和控制线公用;数据线分开连接所需芯片数d=设计要求的存储器容量/选择芯片存储容量2、字存储容量扩展地址线和数据线公用,控制线中R/W公用,使能端EN不能公用,由地址总线的高位段译码决定片选信号所需芯片数(d=设计要求的存储器容量/选择芯片存储容量)CPUMDR主存MAR地址总线数据总线读写主存与CPU的连接原理

11、用8K1的存储器芯片组成8K8位(位扩展)用16K8的存储器芯片组成64K8位(字扩展)用16K4的存储器芯片组成64K8 (字位同时扩展) A15 A14 CPU WE 2:4译码器11100100D0D3D4D7A0A13 CE 16K4WE CE 16K4WEA0A13D0D3 CE 16K4WE CE 16K4WEA0A13D0D3 CE 16K4WE CE 16K4WEA0A13D0D3 CE 16K4WE CE 16K4WEA0A13D0D33、存储器模块条(内存条) 类型SD、DDR、DDR2、DDR3封装有30脚、72脚、100脚、144脚、168脚、184脚、240脚(DDR

12、2、DDR3)30脚8位数据线,容量256KB32MB72脚32位数据总线100脚以上既用于32位又用于64位数据总线,容量4MB512MBDDR3单条容量可达32GB3.3.4 存储器容量的扩充转3.3.61. FPM-DRAM(快速页模式DRAM)程序的局部性原理页同一行地址的所有列地址单元集合读写周期中,首先由RAS确定行地址,然后在同一页中不再改变行地址(RAS保持有效),直接由CAS选定不同的列地址3.3.5* 高级的DRAM结构快速页模式读操作时序图2. CDRAM(带高速缓冲存储器cache的动态存储器)在DRAM芯片内集成一个小容量的SRAM3.3.5* 高级的DRAM结构SR

13、AM是DRAM某一行的副本,可完成猝发式读取读出过程分析1M4,其中SRAM 51243. SDRAM(同步型动态存储器)SDRAM的操作要求与系统时钟同步,在系统时钟的控制下从CPU获得地址、数据和控制信息,即:它与CPU的数据交换同步于外部的系统时钟信号,并且以CPU/存储器总线的最高速度运行,不需要插入等待状态SDRAM基于双存储体系(甚至是多体系)结构内含两个交错的存储阵列,允许两个内存页面同时打开3.3.5* 高级的DRAM结构例 CDRAM内存条组成实例用8片1M4位的CDRAM构成1M32位(4MB)的存储模块8个芯片共用行选通、刷新和行地址A0A10猝发式存取过程增加附加位(同

14、数据位一起写入DRAM中保存)3.3.6 DRAM主存读/写的正确性校验最简单的校验奇偶校验;最简单的纠错码汉明码数据位单纠错时校验位单纠错/双检错时校验位8163264456756783.4 只读存储器和闪速存储器3.4.1 只读存储器ROM掩模ROM:存储内容固定的ROM,由生产厂家提供 可编程ROM:用户写入内容,有的可多次写入一次性编程的PROM多次编程的EPROM和E2PROM目录只读存储器 定义 优点 缺点 掩模式 数据在芯片制造过程中就确定 可靠性和集成度高,价格便宜不能重写一次编程 用户可自行改变某些存储元可以根据用户需要编程只能改写一次多次编程 可以用紫外光照射或电擦除,然后

15、再重新写入新数据 可以多次改写ROM中的内容次数有限1. 掩膜ROM3.4.1 只读存储器ROM存储元构成:二极管、双极型晶体管、MOS管I/O电路Y地址译码工作原理:若管子的基极与选择线相连,该管导通,反向后输出为“1”;若基极与选择线不连通,则输出为“0”优点:可靠性和集成度高,价格便宜缺点:不能重写168位ROM阵列结构示意图行选线与栅极相连行选线与栅极不相连掩模ROM逻辑符号及内部逻辑框图A0A1A2A3A4列译码器和I/O电路行译码器A5A6A7输出缓冲器O0 O1 O2 O3E0E1行地址列地址片选使能存储阵列32行8列 4位ROM2564A0A1A2A3A4A5A6A7E0E1&

16、ENO0O1O2O3逻辑符号2. PROM(用户可编程一次)熔断丝结构PROM 多发射极管 基极连选择线编程写入时使某些熔断丝烧断3.4.1 只读存储器ROM读出时熔断丝连通,输出为“1”熔断丝烧断为“0”以浮栅雪崩注入型MOS管为存储元的EPROM3、光擦除可编程EPROM(Erasible Programmable ROM)3.4.1 只读存储器ROMG1浮置栅,无引出线;G2控制栅,有引出线若漏极D端加约几十伏的脉冲电压,则沟道中的电场足够强,会造成雪崩,产生很多高能量电子;此时,若G2栅上加正电压,则沟道中的电子穿过氧化层注入到G1栅,使G1栅积累负电荷G1栅周围都是绝缘的二氧化硅层,

17、泄漏电流极小,所以一旦电子注入到G1栅后,能长期保存3. EPROM3. EPROM0和1的存储当G1栅有电子积累时,MOS管的开启电压变得很高,即使G2栅为高电平,该管仍不能导通,相当于存储了“0”;当G1栅没有电子积累时,MOS管的开启电压较低,当G2栅为高电平时,该管可以导通,相当于存储了“1”出厂时信息为全“1”擦除用光子能量较高的紫外光照射G1,使电子获得足够能量,穿过氧化层回到衬底中,即抹去了存储的信息,又存了全“1”用40W紫外灯,相距2cm,照射几分钟即可石英窗口读出读出电路采用二维译码方式:x地址译码器的输出xi与G2栅极相连,以决定T2管是否选中;y地址译码器的输出yi与T

18、1管栅极相连,控制数据是否读出;当片选信号CS为高电平时,方能读出数据写“0”xi和yi选择线为高电位,P端加20多伏的正脉冲,脉冲宽度为0.11ms3. EPROMEPROM实例2716为例容量:2K 8位,地址线11根:7条X译码、4条Y译码数据线8根D7D0 ;带输出缓冲器12864存储矩阵12864 存储矩阵行译码器输出列选择读出放大器输出缓冲器输出列选择读出放大器输出缓冲器128线64线128线输入缓冲器输入缓冲器输入缓冲器输入缓冲器A0A3CE (PD/PGM)OEO0O3O1O2A4A10O4O7O5O664线2716工 作 模 式CE(PD/PGM)OEVPPVCC数据传输方向

19、读00+5V+5V输出无操作01+5V+5V高阻功率下降1+5V+5V高阻编程50ms宽正脉冲1+25V+5V输入4. 电擦除可编程E2PROM(Electrical EPROM)E2PROM存储元 具有两个栅极;G1是浮栅,无引出线;G2是抹去栅,有引出线G1栅和漏极D间有一小面积、极薄的氧化层,可产生隧道效应存储“1”G2栅加20V正脉冲P1,通过隧道效应,电子由衬底注入到G1,相当于存储了“1”出厂时,内容为全“1”4. EEPROM写“0”漏极D加20V正脉冲P2,G2栅接地, G1上电子通过隧道返回衬底,相当于写“0” 读出G2栅加3V电压,若G1栅有电子积累,T2不能导通,相当于存

20、“1”;若G1栅无电子积累,T2导通,相当于存“0” 允许改写上千次改写(先抹后写)大约需20ms数据可存储20年以上高密度非易失性的读/写存储器既有RAM的优点,又有ROM的优点3.4.2 闪速存储器(FLASH存储器)由单个MOS晶体管组成,漏极D、源极S、控制栅和浮空栅“0” :当控制栅加足够的正电压,浮空栅将储存许多电子而带负电定义为存储元处于0状态“1” :控制栅不加正电压时,浮空栅只有少许电子或不带电荷定义为存储元处于1状态3.4.2 闪速存储器所有存储元的原始状态为“1”编程(写)操作:使某些存储元改写成“0”控制栅C上加正电压;保持“1” 的存储元,控制栅不加正电压一旦存储元被

21、编程,存储的数据可保持100年之久3.4.2 闪速存储器读取操作:控制栅加正电压,浮空栅上的负电荷量将决定MOS管是否导通;若存储元原存1,晶体管导通,读出电路检测到有电流 ;若原存0,晶体管不导通,无电流擦除操作:源极S加上正电压,吸收浮空栅中的电子,使所有存储元中浮空栅上的负电荷全部洩放出去3.4.2 闪速存储器FLASH存储器的阵列结构读操作若存储元原存1,则晶体管导通,有电流经负载产生一个电压降,与参照电压比较,输出标志为逻辑1的电平;若存储元原存0,晶体管不导通,位线上没有电流,比较器输出端产生标志为逻辑0的电平3.4.2 闪速存储器Flash Memory AT29C040A存储结

22、构:512K819个地址引脚A18A08个数据引脚I/O7I/O03个控制引脚片选CS输出允许OE写允许WE扇区(256字节)擦写MROM,PROM,EPROM,EEPROM,FLASH ROM线路最简单,掩模工艺一次性制造,永久保存(除非坏掉),一般用于大批量生产中;成本低,但风险比较大掩模ROMMask Read-Only MemoryPROMProgrammable Read-Only Memory只允许写一次,也称为“一次可编程只读存储器” ,出厂时内容全为1(有些出厂时全为0) ,用户可将其中某些单元写入0典型产品是“双极型熔丝结构”,改写时给某些单元通足够大电流并维持一定时间,使熔

23、丝熔断,达到改写某些位的效果另一类经典产品是“肖特基二极管结构” ,出厂时二极管处于反向截止状态,编程时用大电流将反相电压加在“肖特基二极管”,使其永久性击穿写入专用编程器、编程电压(VPP=1224V,与型号有关)擦除紫外线照射一定时间,专用擦除器EPROMErasable Programmable Read-Only Memory ,“可擦除可编程只读存储器” EEPROMElectrically Erasable Programmable Read-Only Memory, “电可擦除可编程只读存储器”擦除、写入直接用电信号擦除,电信号写入;不需要借助其它设备,以Byte为最小修改单位,

24、不必先全部洗掉缺点其工艺复杂, 耗费门电路过多,重编程时间较长,有效重编程次数较低也是非易失性内存FLASH ROM属于真正的单电压芯片,读和写都是在单电压下进行,不需跳线,只利用专用程序即可方便修改FLASH ROM的存储容量普遍大于EEPROM,价格也比较合适,近年来已逐渐取代了EEPROMFlash Memory“闪存” 各种存储器性能比较存储器类型非易失性高密度单晶体管存储元在系统中的可写性FLASHSRAMDRAMROMEPROMEEPROM3.5 并行存储器解决CPU和主存储器间速度不匹配的问题主存采用更高速技术缩短读出时间采用并行技术的存储器采用空间并行技术双端口存储器采用时间并

25、行技术多体交叉存储器目录3.5.1 双端口存储器 1、双端口存储器的逻辑结构同一个存储器具有两组相互独立的读写控制电路,并行如IDT71332K16的SRAM2、无冲突(两个端口的地址不同)读写控制任一端口被选中驱动即可对整个存储器存取,每个端口有自己的片选控制(CE)和输出驱动控制(OE)3、有冲突(两个端口同时存取同一存储单元)读写控制片上的判断逻辑决定哪个端口优先进行读写,而对另一个被延迟的端口置BUSY标志(变为低电平),暂时关闭3.5 并行存储器双端口存储器IDT7133逻辑框图返回无冲突读写控制左端口或右端口功能R/WLBR/WUBCEOEI/O07I/O815X0010111X0

26、10101110000000XX001101Z数据入数据入数据出数据入Z数据出ZZ数据入数据出数据入Z数据入数据出Z端口不用低位和高位字节数据写入存储器(BUSY高电平)低位写入存储器,存储器中数据输出到高位字节高位写入存储器,存储器中数据输出到低位字节低位字节数据写入存储器高位字节数据写入存储器存储器中数据输出至低位字节和高位字节高阻抗输出返回3.5.1 双端口存储器4、有冲突读写控制判断方法(1) 地址匹配且在CE前有效,控制逻辑在CEL和CER间进行判断来选择端口(CE判断)(2)CE在地址匹配前变低,控制逻辑在左、右地址间进行判断来选择端口(地址有效判断)无论哪种方式,延迟端口的BUS

27、Y标志都将置位而关闭此端口;当允许存取的端口完成操作时,延迟端口BUSY标志才进行复位而打开此端口左、右端口读写操作的功能判断左端口右端口标志功能说明CEL(A0A10)LCER(A0A10)RBUSYLBUSYR1010XAnyX(A0A10)R1100XXAny(A0A10)L11111111无冲突无冲突无冲突无冲突0000LV5RRV5LSameSame0000LV5RRV5LSameSame10100101左端口胜右端口胜消除判断消除判断地址判断LL5RRL5LLW5RLW5R=(A0A10)R=(A0A10)R=(A0A10)R=(A0A10)RLL5RRL5LLW5RLW5R=(A

28、0A10)L=(A0A10)L=(A0A10)L=(A0A10)L10100101左端口胜右端口胜消除判断消除判断CE判断双端口存储器读写时序3.5.2 多模块交叉存储器1.存储器的模块化组织若干个模块组成的主存储器,地址在各模块中的安排方式:一种是顺序方式,一种是交叉方式(1) 顺序方式例M0M3共四个模块,每个模块8个字 M0:07 M1:815 M2:1623 M3:24315位地址的组织: X X X X X 高位选模块,低位选块内地址特点:某个模块存取时,其他模块不工作优点:某一模块出现故障时,其他模块可照常工作;通过增添模块来扩充存储器容量比较方便缺点:各模块串行工作,存储器带宽受

29、限3.5.2 多模块交叉存储器(2)交叉方式例M0M3共四个模块,则每个模块8个字 M0:0,4.除以4余数为0 M1:1,5.除以4余数为1 M2:2,6.除以4余数为2 M3:3,7.除以4余数为35位地址的组织: X X X X X 高位选块内地址,低位选模块特点:连续地址分布在相邻的不同模块内,同一个模块内的地址不连续优点:对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽,对成批数据读写有利缺点:某一模块出现故障则整个存储器不能正常工作3.5.2 多模块交叉存储器2、多模块交叉存储器的基本结构(以4模块为例)3.5.2 多模块交叉存储器对每个存储模块:从CPU发出访存

30、命令到读出信息使用了一个存储周期对于CPU:在一个存储周期内连续访问了4个模块(分时使用数据总线),各模块的读写过程重叠进行若连续在主存中存取程序段或数据块访问速度大大提高主存被分成4个相互独立、容量相同的模块,每个模块有自己的读写控制电路、地址寄存器和数据寄存器,各自以等同的方式与CPU传送信息定量分析:设模块字长等于数据总线宽度,模块存取一个字的时间为T,由m个总线传送周期()组成,即Tm ,并使用m个模块交叉组织存储器,则成块传送可按间隔流水方式进行交叉存取度m=T/模块数必须大于等于m连续读取m个字所需的时间为t1T+(m-1)顺序方式存储器连续读取m个字所需时间t2=mT3.5.2

31、多模块交叉存储器m=4的流水线方式存取示意图m=4的流水线方式存取示意图例5 设存储器容量为32字,字长64位,模块数m=4。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。若连续读出4个字,分别求用顺序方式和交叉方式组织的存储器的带宽解:两种方式连续读出4个字的信息总量都是: q=64b4=256b顺序存储器和交叉存储器连续读出4个字所需的时间分别是:顺序:t2=mT=4200ns=800ns=810-7s交叉:t1=T+(m-1)=200ns+350ns=350ns=3.510-7s顺序存储器和交叉存储器的带宽分别是:顺序: W2=q/t2=256b(810-7)s=

32、320Mb/s交叉: W1=q/t1=256b(3.510-7)s=731Mb/s3. 二模块交叉存储器举例二模块(各1MB)交叉存储器(DRAM构成)方框图二模块交叉存储器无等待状态成块存取示意图3. 二模块交叉存储器举例补充:相联存储器CAM(Content Addressed Memory)相联存储器其中某一存储项内容作为地址来存取的存储器,用来寻址存储器的字段叫做关键字相联存储器中的项可视为由KEY、DATA组成,其中KEY是地址,DATA是被读写信息基本原理把存储单元所存内容的某一部分作为检索项(关键字),去检索该存储器,并将与该检索项符合的存储单元内容读出或写入主要用途虚拟存储器中

33、存放分段表、页表和快表;高速缓冲存储器中,存放cache的行地址检索寄存器屏蔽寄存器比较线路存储器译码选择电路代码寄存器12.m符合寄存器补充:相联存储器CAM(续)检索寄存器屏蔽寄存器符合寄存器比较线路代码寄存器存储体检索寄存器:存放检索字,位数和CAM存储单元位数相同 屏蔽寄存器:存放屏蔽码,位数和检索寄存器位数相同 符合寄存器:存放按检索项内容检索存储体中与之符合的单元地址,其位数等于相联存储器的存储单元个数,每一位对应一个存储单元,位的序数即为相联存储器的单元地址比较线路:把检索项和从存储体中读出的所有单元内容的相应位比较,如果某个存储单元和检索项符合,就把符合寄存器的相应位置“1”,

34、表示该字已被检索 代码寄存器:存放从存储体中读出的代码,或向存储体中写入的代码存储体:由高速半导体存储器构成快速CAM各组成部分的功能返回3.6 Cache存储器3.6.1 Cache基本原理(1) 功能:解决CPU和主存间速度不匹配问题采用高速SRAM构成速度差别很大时采用两级或多级Cache系统早期的一级Cache在CPU内,二级在主板上现在的CPU内带L1 Cache和L2 Cache全由硬件调度,对用户透明程序访问的局部性原理空间局部:紧邻被访问单元的地方也将被访问时间局部:刚被访问的单元很快将再次被访问目录3.6.1 Cache基本原理(2) cache基本原理地址映射替换策略写一致

35、性性能评价基本原理小结:介于CPU和主存M2之间的小容量存储器:从功能上看,是主存的缓冲存储器,由高速的SRAM组成;为追求高速,包括管理在内的全部功能由硬件实现,故对程序员透明Cache的设计依据:程序访问的局部性CPU与Cache间的数据传送是以字为单位主存与Cache间的数据传送是以块为单位CPU读主存时,把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在立即传送给CPU;否则,用主存读周期把此字从主存读出送到CPU,并把含有这个字的整个数据块从主存读出送到cache中3.6.1 Cache基本原理(3) Cache的命中率3.6.1 Cache基

36、本原理设Nc、Nm分别表示cache和主存完成存取的总次数,命中率h的定义为:h=Nc/(Nc+Nm)设tc 、tm分别表示命中和未命中时cache和主存的访问时间,则cache/主存系统的平均访问时间ta为:ta=h*tc+(1-h)tm设r=tm/tc表示主存慢于cache的倍率,则访问效率e 定义为:e=tc/ta=tc/h*tc+(1-h)*tm =1/h+(1-h)*r =1/r+(1-r)*h增加cache的目的使ta尽可能接近tc;h越接近1越好;r值不宜太大,以510为宜命中率h与程序的行为、cache的容量、组织方式、块大小有关例6 CPU执行一段程序时,cache完成存取的

37、次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间 公式命中率 Cache/主存系统平均访问时间访问效率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 命中率 Cache/主存系统平均访问时间访问效率Cache与内存的速度比映射方法: 全相联映射、直接映射、组相联映射影响映射方式选择的因素:硬件是

38、否容易实现地址变换的速度Cache空间的利用率主存装入一块时发生冲突的概率3.6.2 主存与Cache的地址映射cache的容量很小,保存的内容只是主存内容的一个子集,cache与主存的数据交换以块为单位主存和cache都要划分为同样大小的块地址映射把主存地址定位到cache中的方法地址映射的相关基本概念1) 行cache的数据块大小用Li表示,i=0,1,2,m-1,共有m=2r行2) 块主存的数据块大小用Bj表示,j= 0,1,2,n-1,共有n=2s块3) 行、块、字的关系:1行1块,由k=2w个连续的字组成(字是CPU每次访问存储器时可存取的最小单位)映射方法(多对多)主存内容可以拷贝

39、到cache的任意行中主存中一个块的地址(块号)与块的内容一起存于cache行中,其中块地址存于cache行的标记部分地址变换标记构成一个目录表设cache8行,主存256块,每块(行)有同样多的字,则行号字地址cache的地址主存的地址块号字地址行号3 bit块号8 bit字地址:w bit1. 全相联映射方式全相联映射方式示意图全相联映射的Cache组织访问方法:CPU访问一个指定的内存地址(包括主存和cache),块号与cache中所有行的标记同时在比较器中比较,若命中按字地址从cache中读取一个字;若未命中按内存地址从主存中读取该字,并将该字所在的一个块调入cache实现方式:全部标

40、记用一个CAM实现;数据用RAM实现优点:灵活,冲突概率小,Cache的利用率高缺点:比较器电路难于设计和实现,需要一个访问速度很快、代价高的相联存储器应用:适合于小容量cache全相联映射方式总结多对一的映射关系一个主存块只能拷贝到cache的一个特定行cache的行号i和主存的块号j的关系:i=j mod mm为cache的总行数如m=8映射示意图2. 直接映射方式同样,设cache为8行,主存为256块,每块(行)有同样多的字则允许存于cache第L0 B0,B8,B16,B248L1 B1,B9,B17,B249L2 的主存块号是 B2,B10,B18,B250 L7 B7,B15,B

41、23,B255行号字地址cache的地址主存的地址标记字地址行号:r bit,本例为3块号:s bit,本例为8其中标记s-r bit ,本例为5块地址 s bits位的块地址分成两部分r位的行号和s-r位标记每一个cache行只可映射主存中特定的32个块32个块直接映射的Cache组织访问方法:首先用r bit行号找到cache中的该行,再用地址中的s-r bit标记与此行的标记比较,若相符(命中),则用地址的最低w位(字地址)读取该字;若不符(未命中) ,由主存读取该字,并将此字对应的一个块调入cache优点:硬件简单,成本低缺点:每个主存块只有一个固定的行可存放,易产生冲突冲突情况:块号

42、相距m整数倍的两个块,只能映射到cache的同一行,若新块不在cache中而对应行号又已占用,就发生了冲突,只能用新的块替代原来占用cache此行中的块,即使cache还有其它空行,也不可利用频繁置换会降低cache的效率应用:适合大容量cache采用,因为行数多使冲突的机会减小直接映射方式总结 将cache分成u组,每组v行,主存块存放到哪个组是固定的,但在该组哪一行是灵活的,即组间直接映射,组内全相联映射 muv 组号:qj mod u B0,B4,B8,B252共64个块映射到cache的s0组B1,B5,B9,B253共64个块映射到cache的s1组B2,B6,B10,B254共64

43、个块映射到cache的s2组B3,B7,B11,B255共64个块映射到cache的s3组主存的3. 组相联映射方式前两种方式的折衷例:cache共8行,分4组,每组2行,组号2bit,组内行号1bit 主存256块,主存的块号j与cache的组号q的对应关系是:q=j mod 4,即s位块号分成两部分低d位为组号,高s-d位标记注:为了便于比较器实现,组相联映射中的每组行数v一般取值较小,典型值为2、4、8、16组相联映射Cache示意图操作过程:首先将根据其标记与所在组的每一个行比较,查找是否在cache中,若在,则命中,由低w位的块内地址直接访问cache;若不在,则访问主存,同时更新c

44、ache组相联映射的Cache组织特点:比全相联容易实现,比直接映射冲突低v=1,则为直接映射方式u=1,则为全相联映射方式v取值一般较小,且为2的幂,称为v路组相联cache组相联映射方式总结直接映射cache直接将特定位置上的原主存块换出全相联和组相联cache从允许存放新主存块的若干特定行中选取一行换出 将一段时间内被访问次数最少的那行换出实现方法:每行设置一个计数器,从0开始,每访问一次, 被访行的计数器增1,需要替换时,将计数值最小的行换出,同时将这些行计数器清零换出(替换、淘汰)某一行常用的算法1、最不经常使用(LFU)算法问题:不能严格反映近期访问情况3.6.3 替换策略(替换算

45、法硬件实现)最不经常使用法最近最少使用法随机替换2 近期最少使用(LRU)算法将近期内长久未被访问过的行换出实现方法:每行设置一个计数器,每次命中,命中行计数器清零,其它行计数器增1,需要替换时,将计数值最大的行换出优点:保护了刚拷贝到cache中的新数据行,命中率较高2路组相联方式的简化LRU控制算法(Pentium的数据cache采用)3 随机替换从特定的行位置中随机选取一行换出优点:硬件上易实现,且速度也比前两种快缺点:但降低了命中率和cache工作效率3.6.3 替换策略写操作策略使cache内容和主存内容保持一致1 写回法CPU写cache命中时,只修改cache的内容;写cache

46、未命中也不写主存,拷入后只写cache,只有当此行被换出时才写回主存减少了访问主存的次数,但存在不一致性隐患实现方法:每个cache行配置一个修改位,反映是否被修改过3.6.4 Cache的写操作策略写回法全写法写一次法常用的写操作策略2 全写法 写cache命中时,cache与主存同时修改;写cache未命中则直接写主存,修改主存后的处理方法WTWA、WTNWA优点:较好地维护了cache与主存内容的一致性;cache中每行无需设置修改位及相应的判断逻辑缺点:降低了cache的功效 3 写一次法 与写回法的不同,仅在于第一次写命中时要同时写入主存奔腾的片内数据cache就是采用写一次法3.6

47、.5 Pentium 4的Cache组织Pentium 4的Cache布局图说明主要组成部分:取指/译码单元:顺序从L2cache中取程序指令,译成一系列微指令,并存入L1指令cache中乱序执行逻辑:依据数据相关性和资源可用性,调度微指令的执行(可按不同于所取机器指令流的顺序)执行单元:执行微指令,从L1数据cache中取所需数据,并在寄存器组中暂存运算结果存储器子系统:包括L2cache、L3cache和系统总线;当cache未命中时,使用系统总线访问主存Pentium 4的指令cache位于指令译码逻辑和执行部件之间Pentium 4的Cache组织返回图示采用更高速的主存或加长存储器字

48、长采用并行操作的双端口存储器采用交叉存储器采用Cache加速CPU与主存间有效传输的措施转“虚拟存储器”9.3 存储管理(课本的第9章第3节)主要解决的问题存储器的分配与回收、地址变换、存储器扩充,存储器共享与保护等9.3.1 分区式存储管理单用户、单任务的操作系统内存空间分为系统区和用户区现代操作系统分区式存储管理分区式存储管理机制分为固定分区和动态分区固定式分区会出现内碎片动态分区会出现外碎片,解决外碎片的方法(合并;内存紧缩)目录9.3.2 交换技术和分页技术利用程序的局部性原理实现多任务并发环境中的存储管理交换技术:换入、换出;交换的过程;优点、缺点交换技术和早期采用的覆盖技术一样,是

49、从逻辑上利用外存扩大主存空间分页技术:页面(页框)、页不存在外碎片,内碎片仅存在于每个进程的最后一个页面分页技术引申出虚拟存储器(虚存),在存储管理部件(MMU)的支持下,虚拟存储器技术可彻底解决存储器的调度与管理问题9.4 虚拟存储器(课本的第9章第4节)9.4.1 虚拟存储器的基本概念虚拟存储器建立在主存与辅存物理结构基础之上,由附加硬件装置及操作系统管理软件组成的一种存储体系;是个概念模型,不是实际的物理存储器具有辅存的容量和接近主存的访问速度1、实地址与虚地址用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间计算机物理内存的访问地址称为实地址或物理

50、地址,其对应的存储空间称为物理存储空间或主存空间程序进行虚地址到实地址转换的过程称为程序的再(重)定位目录2、虚存的访问过程虚存空间的用户程序按照虚地址编程并存放在辅存中访存的过程结论每个程序的虚地址空间可以远大于实地址空间;也可以远小于实地址空间好处3、cache与虚存的异同主存-辅存的访问机制与cache-主存的访问机制类似,是三级存储体系中的两个层次cache和主存之间由辅助硬件负责地址变换与管理;主存和辅存之间由辅助软、硬件负责地址变换与管理,构成虚拟存储器Cache-主存、主存-辅存两个存储层次的比较相同点:(1)出发点相同:存储系统的性价比;性能、价格和容量(2)原理相同:程序运行

51、时的局部性原理不同点:(1)侧重点不同:cache速度差异;虚存存储容量、存储管理、主存分配和存储保护等(2)数据通路不同:未命中时的访问方法(3)透明性不同:cache对系统程序员和应用程序员均透明;而虚存对实现存储管理的系统程序员不透明,只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)(4)未命中时的损失不同:主存的存取时间是cache的510倍;主存的存取速度通常比辅存快上千倍4、虚存机制要解决的关键问题在操作系统的控制下,由硬件和系统软件负责解决(1)调度问题:决定哪些程序和数据应被调入主存(2)地址映射问题:内地址变换访问主存时把虚地址变为主存物理地址外地址变换访问辅存时

52、把虚地址变成辅存的物理地址还要解决主存分配、存储保护与程序再定位等问题(3)替换问题:决定哪些程序和数据应被调出主存(4)更新问题:确保主存与辅存的一致性1、页式虚存地址映射主存和虚拟地址空间都划分成大小相等的页(页面大小为2的整数幂)物理页、逻辑页虚地址高字段为逻辑页号,低字段为页内地址(偏移量)实存地址高字段为物理页号,低字段为页内地址虚地址(逻辑地址)转换成物理地址通过页表完成9.4.2 页式虚拟存储器每个进程对应一个页表;每个虚存页面在页表中有一个表项,表项的内容包含该虚存页面所在主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位页表长度可变把页表的基地址保存在寄存器中

53、,页表本身则放在主存中页式虚拟存储器的地址映射过程页表基地址逻辑页号 页内行地址物理页号 页内行地址页表基址寄存器虚存地址实存地址+页表(在主存中)有效位 主存页面号页表很长时的处理方法把页表存储在虚存中:页表本身也要分页,当一个进程运行时,其页表中一部分在主存,另一部分则在辅存中采用二级页表结构:每个进程有一个页目录表,其中的每个表项指向一个页表,此时,若页目录表的长度是m,每个页表的最大长度为n,则一个进程最多可以有mn个页采用反向页表:实现物理页号到逻辑页号的反向映射,页表中对应每一个物理页号有一个表项,表项的内容包含该物理页所对应的逻辑页号访存过程2、转换后援缓冲器(TLBTransl

54、ation Lookaside Buffer)访问虚存时存在的问题减少对主存访问次数的方法对页表实行二级缓存TLB用于页表缓存的高速存储部件快表把页表中最活跃的部分存在高速存储器中构成慢表保存在主存中的完整页表TLB的作用与Cache的作用相似,通常由相联存储器实现,是慢表中部分信息的副本访存过程(1) 程序局部性原理使多数虚存访问都将通过TLB完成(2) TLB匹配不成功时的处理TLB的地址映射过程内页表虚地址到主存物理地址的变换表外页表用于虚地址与辅存地址之间的变换外页表的结构与辅存的寻址机制密切相关当主存缺页时,实施调页操作需要定位辅存3. 内页表和外页表分页方式的优点:页长固定,易于管

55、理,不存在外碎片缺点:页长与程序的逻辑大小无关,不利于编程的独立性(分页对于程序员不可见)9.4.3段式虚拟存储器和段页式虚拟存储器1、段式虚拟存储器段按照程序的自然分界划分、长度可动态改变通常,程序员把不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段虚地址构成段号和段内地址(偏移量)段表虚地址到实主存地址的变换(每个程序设置一个段表)段表的结构:每个表项至少包含三个字段(1)有效位:指明该段是否已调入实存(2)段起址:已调入实存情况下,指明该段在实存中的首址(3)段长:该段的实际长度,设置该字段的目的是为了防止地址越界而破坏其他段段表本身也是一个段,可存于辅存,但一般驻留在

56、主存段表基地址段号 段内地址 主存地址 段表基址寄存器虚存地址实存地址+段表(在主存中)+段起址装入位段长段号段式虚存的地址映射过程地址变换过程及越界判断优点段的逻辑独立性使其易于编译、管理、修改和保护,便于多道程序共享(分段对程序员是可见的)段长可以根据需要动态改变,允许自由调度,可有效利用主存空间缺点段长不固定使主存空间分配较麻烦易在段间留下许多外碎片,使存储空间利用率降低地址转换时,必须通过段起址与段内偏移量的求和运算才能求得物理地址,而不能像页式那样简单拼接段式比页式存储管理方式需要更多的硬件支持段式虚拟存储器特点为什么页式可以简单拼接,而段式不行?2、段页式虚拟存储器段式和页式的结合

57、实存被等分成页每个程序先按逻辑结构分段,每段再按照实存的页大小分页,程序按页调入和调出,但可按段进行编程、保护和共享定位方式:每道程序通过一个段表和多个页表进行两级再定位段表:每个表项对应一个段,有一个指针指向该段的页表页表:该段各页在主存的位置、是否已装入、是否已修改等虚地址构成:基号、段号、段内页号、页内偏移量(基号N)段号S段内逻辑页号P页内地址偏移量D若系统中只有一个基址寄存器,则不需基号;多道程序切换时,由操作系统修改基址寄存器内容缺点:地址映射需多次查表,实现复杂度较高速度较慢基号:用户标志号,用于指明该道程序的段表起始地址【例1】假设有三道程序,基号A、B和C表示,其基址寄存器内

58、容分别为SA,SB,SC。在主存中,每道程序都有一张段表,程序A由4段构成,程序C由3段构成。每段有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。段页式虚拟存储系统的逻辑地址到物理地址的变换过程如图 解:地址转换过程如下: (1) 根据基号C,找到段表基址寄存器表第C个表项,获得C的段表基址SC ;再根据段号S(=1)找到程序C段表的第S个表项,得到段S的页表起始地址b (2) 根据段内逻辑页号P(=2)检索页表,得到物理页号(=10) (3) 物理页号与页内地址拼接即得物理地址每个段表和页表的表项中都应设置一个有效位,只有在有效位为1时才按照上述流程操作,否

59、则需中断当前操作先进行建表或调页段页式虚存的地址变换过程 C 1 2SASBSCabc10 d128710124+基址寄存器程序A段表程序C段表SA+0SA+1SA+2SA+3SC+0SC+1SC+2a+0a+1b+0b+1b+2c+0c+1逻辑地址物理地址基号 段号 页号 页内地址物理页号9.4.4 虚存的替换算法从辅存调页至主存而主存已满时,需要进行主存页面的替换算法与cache的替换类似,有FIFO、LRU、LFU算法等虚存中的页面替换策略和cache中的行替换策略的显著不同:(1) cache的替换全靠硬件实现;虚存的替换有操作系统的支持(2)虚存缺页对系统性能的影响比cache未命中要大得多,因为调页需要访问辅存,并且要进行任务切换(3)虚存页面替换选择余地很大,属于一个进程的页面都可替换为支持虚存的替换,通常在页表或段表的每个表项中设置一个修改位标识对应的页或段空间被调入主存后是否被修改过【例2】假设主存只有a,b,c三个页面,组成a进c出的FIFO队列,进程访问页面的序列是0,1,2,4,2,3,0,2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论