计算机组成原理多层次的存储器_第1页
计算机组成原理多层次的存储器_第2页
计算机组成原理多层次的存储器_第3页
计算机组成原理多层次的存储器_第4页
计算机组成原理多层次的存储器_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理多层次的存储器第一页,共一百二十三页,编辑于2023年,星期二第三章多层次的存储器本章内容3.1存储器概述3.2SRAM存储器3.3DRAM存储器3.4只读存储器和闪速存储器3.5并行存储器3.6Cache存储器3.7虚拟存储器3.8奔腾系列机(IA-32体系结构)的虚存组织第二页,共一百二十三页,编辑于2023年,星期二3.1存储器概述3.1.1存储器的分类半导体器件磁性材料——磁表面存储器(磁盘、磁带)光材料——光盘双极型MOS型1.按存储介质分2.按存取方式分

随机存储器:如半导体存储器顺序存储器:如磁带半顺序存储器:如磁盘、光盘存储位元、存储单元、存储器目录第三页,共一百二十三页,编辑于2023年,星期二4.按信息易失性分

3.按存储内容的可变性分(半导体存储器的分类)只读存储器(ROM)随机读写存储器(RAM)易失性存储器:断电后信息消失(如RAM)非易失性存储器:断电后仍能保存信息(如磁盘)5.按在系统中的作用分

MROMPROMEPROMEEPROMSRAMDRAM控制存储器高速缓冲存储器主存储器辅助(外)存储器闪速存储器(FLASH)NANDFLASHNORFLASH不可变或条件可变条件可变可变内存储器(CPU可直接访问)第四页,共一百二十三页,编辑于2023年,星期二半导体存储器类型存储器类型种类可擦除性写机制易失性随机存取存储器RAM读-写存储器电,字节级电易失只读存储器ROM一次编程只读存储器不能掩模非易失可编程PROM电光擦可编程EPROM多次编程只读存储器紫外线,芯片级电擦可编程EEPROM电,字节级闪速存储器电,块级第五页,共一百二十三页,编辑于2023年,星期二3.1.2存储器的分级设计存储器体系结构时应考虑——容量、速度和成本高速缓冲存储器(cache)——高速小容量半导体存储器主存储器(主存)——存放计算机运行期间的大量程序和数据;采用MOS半导体存储器构成外存储器(外存)——大容量辅助存储器第六页,共一百二十三页,编辑于2023年,星期二各级存储器之间的关系3.1.2存储器分级结构CPU外存(辅存)寄存器高速缓冲存储器主存主机第七页,共一百二十三页,编辑于2023年,星期二3.1.3主存储器的技术指标字存储单元、字地址;字节存储单元、字节地址按字寻址的计算机、按字节寻址的计算机存储容量——存储器中可以容纳的存储单元总数,通常用字数或字节数表示(单位:K、M、G、T)存取时间(存储器访问时间)——发出一次读操作命令到该操作完成,将数据读出到数据总线上所经历的时间;通常取写操作时间等于读操作时间存储周期——连续启动两次读操作所需间隔的最小时间,略大于存取时间存储器带宽:单位时间里存储器所存取的信息量第八页,共一百二十三页,编辑于2023年,星期二指标

含义表现单位存储容量一个存储器中可容纳的存储单元总数存储空间的大小字数,字节数KB、MB、GB、TB存取时间启动到完成一次存储器操作所经历的时间主存的速度ns存储周期连续启动两次操作所需间隔的最小时间主存的速度ns存储器带宽单位时间里存储器所存取的信息量

数据传输速率位/秒,字节/秒第九页,共一百二十三页,编辑于2023年,星期二3.2SRAM存储器内存采用半导体存储器,按信息存储的机理不同分类静态随机读写存储器(SRAM——StaticRAM)动态随机读写存储器(DRAM——DynamicRAM)目录第十页,共一百二十三页,编辑于2023年,星期二3.2.1基本的静态存储元阵列1、存储位元——是一个触发器,具有两个稳定状态64×4位2、三组信号线地址线数据线控制线行线列线63第十一页,共一百二十三页,编辑于2023年,星期二地址译码器

——双译码(二级译码)x向(A0~A7

)、y向(

A8~A14)3.2.2基本的SRAM逻辑结构——存储体、地址译码器和读写控制逻辑存储体(32K——256×128×8)读写控制逻辑(CS=0时)读操作——OE=0,G2开启,G1关闭写操作——WE=0,G1开启,G2关闭032767RAM32K8第十二页,共一百二十三页,编辑于2023年,星期二3.2.3读/写周期波形图读周期读出时间tAQ读周期tRC写周期写时间tWD写周期tWC存取周期 取tRC=tWC第十三页,共一百二十三页,编辑于2023年,星期二例1:SRAM的写入时序如图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出该写入时序中的错误,并画出正确的写入时序图。第十四页,共一百二十三页,编辑于2023年,星期二3.3DRAM存储器3.3.1DRAM存储元的记忆原理——由一个MOS晶体管和电容器组成的记忆电路目录第十五页,共一百二十三页,编辑于2023年,星期二3.3.1DRAM存储元的记忆原理1、MOS管作为开关使用,信息由电容器上的电荷量体现——电容器充满电荷代表存储了1;电容器放电没有电荷代表存储了03、写0——输出缓冲器和刷新缓冲器关闭;输入缓冲器打开,输入数据DIN=0送到存储元位线上;行选线为高,打开MOS管,电容上的电荷通过MOS管和位线放电5、读出1后存储位元重写1(1的读出是破坏性的)——输入缓冲器关闭,刷新缓冲器和输出缓冲器/读放打开,DOUT=1经刷新缓冲器送到位线上,再经MOS管写到电容上4、读出1——输入缓冲器和刷新缓冲器关闭;输出缓冲器/读放打开(R/W为高);行选线为高,打开MOS管,电容上存储的1送到位线上,通过输出缓冲器/读出放大器发送到DOUT,即DOUT=12、写1——输出缓冲器和刷新缓冲器关闭;输入缓冲器打开(R/W为低),DIN=1送到存储元位线上;行选线为高,打开MOS管,位线上的高电平给电容器充电第十六页,共一百二十三页,编辑于2023年,星期二与SRAM相比,增加的部件:以1M×4位的DRAM为例3.3.2DRAM芯片的逻辑结构(1)行、列地址锁存器——分时传送,RAS/CAS(2)刷新计数器及控制电路——按行刷新;刷新计数器的长度、刷新地址与读/写地址的切换第十七页,共一百二十三页,编辑于2023年,星期二1.读周期、写周期——从RAS下降沿开始,到下一个RAS的下降沿为止的时间(连续两个读周期的时间间隔),通常取读周期=写周期3.3.3读/写周期、刷新周期第十八页,共一百二十三页,编辑于2023年,星期二2.刷新周期刷新周期:典型值2ms、8ms16ms;某些器件可大于100ms刷新操作以行为单位进行刷新方式集中式刷新分散式刷新异步式刷新3.3.3读/写周期、刷新周期例:设某个存储器结构为10241024的存储矩阵读/写周期为TC=0.5μs,刷新周期为8ms第十九页,共一百二十三页,编辑于2023年,星期二集中刷新方式集中式刷新:将一个刷新周期分为两部分——前一段时间进行正常读/写;后一段时间作为集中刷新时间优点:对存储器的平均读/写时间影响不大,适用于高速存储器缺点:在集中刷新时间内不能进行存取访问——死时间读/写/保持刷新tctc012149750110238ms集中刷新方式8ms分成16000个TC(=0.5μs),只需1024个TC进行刷新第二十页,共一百二十三页,编辑于2023年,星期二分散刷新方式分散式刷新:将一个存储系统周期tS分为两半——前半段用于读/写,后半段为刷新时间tctR读/写刷新tS8ms读/写刷新刷新读/写分散刷新方式优点:不存在死时间缺点:刷新过于频繁,影响系统速度;如存储器读/写周期为0.5μs,则存储系统的周期至少应为1μs——整个系统速度降低设TC=0.5μs,系统周期TS=1μs,则只需1024μs即可刷新一遍,在8ms内可进行多次刷新第二十一页,共一百二十三页,编辑于2023年,星期二异步刷新方式异步式刷新:前两种方式结合,先用刷新的行数对刷新周期进行分割,再将分割好的时间分为两部分——前段时间用于读/写,后一小段时间用于刷新读/写7.8μs8ms刷新读/写7.8μs刷新异步刷新方式将8ms分割成1024个时间段,每段时间为8ms/1024=7.8125μs(取7.8μs),每隔7.8μs刷新一行,8ms内完成对所有1024行的一次刷新第二十二页,共一百二十三页,编辑于2023年,星期二3.3.4存储器容量的扩充1、字长位数扩展——地址线和控制线公用;数据线分开连接所需芯片数d=设计要求的存储器容量/选择芯片存储容量2、字存储容量扩展——地址线和数据线公用,控制线中R/W公用,使能端EN不能公用,由地址总线的高位段译码决定片选信号所需芯片数(d=设计要求的存储器容量/选择芯片存储容量)CPUMDR主存MAR地址总线数据总线读写主存与CPU的连接原理第二十三页,共一百二十三页,编辑于2023年,星期二用8K×1的存储器芯片组成8K×8位(位扩展)

第二十四页,共一百二十三页,编辑于2023年,星期二用16K×8的存储器芯片组成64K×8位(字扩展)第二十五页,共一百二十三页,编辑于2023年,星期二用16K×4的存储器芯片组成64K×8(字位同时扩展)

A15A14CPU

WE

2:4译码器11100100D0~D3D4~D7A0A13…CE16K×4WE…CE16K×4WEA0A13D0~D3CE16K×4WE…CE16K×4WEA0A13D0~D3CE16K×4WE…CE16K×4WEA0A13D0~D3CE16K×4WE…CE16K×4WEA0A13D0~D3…………第二十六页,共一百二十三页,编辑于2023年,星期二3、存储器模块条(内存条)

类型——SD、DDR、DDR2、DDR3封装——有30脚、72脚、100脚、144脚、168脚、184脚、240脚(DDR2、DDR3)30脚——8位数据线,容量256KB~32MB72脚——32位数据总线100脚以上——既用于32位又用于64位数据总线,容量4MB~512MBDDR3单条容量可达32GB3.3.4存储器容量的扩充转3.3.6第二十七页,共一百二十三页,编辑于2023年,星期二1.FPM-DRAM(快速页模式DRAM)——程序的局部性原理页——同一行地址的所有列地址单元集合读写周期中,首先由RAS确定行地址,然后在同一页中不再改变行地址(RAS保持有效),直接由CAS选定不同的列地址3.3.5高级的DRAM结构快速页模式读操作时序图第二十八页,共一百二十三页,编辑于2023年,星期二2.CDRAM(带高速缓冲存储器cache的动态存储器)——在DRAM芯片内集成一个小容量的SRAM3.3.5高级的DRAM结构SRAM是DRAM某一行的副本,可完成猝发式读取读出过程分析1M×4,其中SRAM512×4第二十九页,共一百二十三页,编辑于2023年,星期二3.SDRAM(同步型动态存储器)SDRAM的操作要求与系统时钟同步,在系统时钟的控制下从CPU获得地址、数据和控制信息,即:它与CPU的数据交换同步于外部的系统时钟信号,并且以CPU/存储器总线的最高速度运行,不需要插入等待状态SDRAM基于双存储体系(甚至是多体系)结构——内含两个交错的存储阵列,允许两个内存页面同时打开3.3.5高级的DRAM结构第三十页,共一百二十三页,编辑于2023年,星期二第三十一页,共一百二十三页,编辑于2023年,星期二[例]CDRAM内存条组成实例 用8片1M×4位的CDRAM构成1M×32位(4MB)的存储模块8个芯片共用行选通、刷新和行地址A0A10猝发式存取过程第三十二页,共一百二十三页,编辑于2023年,星期二增加附加位(同数据位一起写入DRAM中保存)3.3.6DRAM读/写的正确性校验最简单的校验——奇偶校验;最简单的纠错码——汉明码数据位单纠错时校验位单纠错/双检错时校验位816326445675678第三十三页,共一百二十三页,编辑于2023年,星期二3.4只读存储器和闪速存储器3.4.1只读存储器ROM掩模ROM:存储内容固定的ROM,由生产厂家提供可编程ROM:用户写入内容,有的可多次写入一次性编程的PROM多次编程的EPROM和E2PROM目录只读存储器定义优点缺点掩模式

数据在芯片制造过程中就确定

可靠性和集成度高,价格便宜不能重写一次编程

用户可自行改变某些存储元可以根据用户需要编程只能改写一次多次编程

可以用紫外光照射或电擦除,然后再重新写入新数据

可以多次改写ROM中的内容次数有限第三十四页,共一百二十三页,编辑于2023年,星期二1.掩膜ROM3.4.1只读存储器ROM存储元构成:二极管、双极型晶体管、MOS管I/O电路Y地址译码工作原理:若管子的基极与选择线相连,该管导通,反向后输出为“1”;若基极与选择线不连通,则输出为“0”优点:可靠性和集成度高,价格便宜缺点:不能重写第三十五页,共一百二十三页,编辑于2023年,星期二16×8位ROM阵列结构示意图行选线与栅极相连行选线与栅极不相连第三十六页,共一百二十三页,编辑于2023年,星期二掩模ROM逻辑符号及内部逻辑框图A0A1A2A3A4列译码器和I/O电路行译码器A5A6A7输出缓冲器O0O1O2O3E0E1行地址列地址片选使能存储阵列32行8列

4位ROM2564A0A1A2A3A4A5A6A7E0E1&ENO0O1O2O3逻辑符号第三十七页,共一百二十三页,编辑于2023年,星期二2.PROM(用户可编程一次)熔断丝结构PROM多发射极管基极连选择线编程写入时使某些熔断丝烧断3.4.1只读存储器ROM读出时熔断丝连通,输出为“1”熔断丝烧断为“0”第三十八页,共一百二十三页,编辑于2023年,星期二以浮栅雪崩注入型MOS管为存储元的EPROM3、光擦除可编程EPROM(ErasibleProgrammableROM)3.4.1只读存储器ROM第三十九页,共一百二十三页,编辑于2023年,星期二G1——浮置栅,无引出线;G2——控制栅,有引出线若漏极D端加约几十伏的脉冲电压,则沟道中的电场足够强,会造成雪崩,产生很多高能量电子;此时,若G2栅上加正电压,则沟道中的电子穿过氧化层注入到G1栅,使G1栅积累负电荷G1栅周围都是绝缘的二氧化硅层,泄漏电流极小,所以一旦电子注入到G1栅后,能长期保存3.EPROM第四十页,共一百二十三页,编辑于2023年,星期二3.EPROM0和1的存储——当G1栅有电子积累时,MOS管的开启电压变得很高,即使G2栅为高电平,该管仍不能导通,相当于存储了“0”;当G1栅没有电子积累时,MOS管的开启电压较低,当G2栅为高电平时,该管可以导通,相当于存储了“1”出厂时信息为全“1”擦除——用光子能量较高的紫外光照射G1,使电子获得足够能量,穿过氧化层回到衬底中,即抹去了存储的信息,又存了全“1”用40W紫外灯,相距2cm,照射几分钟即可石英窗口第四十一页,共一百二十三页,编辑于2023年,星期二读出——读出电路采用二维译码方式:x地址译码器的输出xi与G2栅极相连,以决定T2管是否选中;y地址译码器的输出yi与T1管栅极相连,控制数据是否读出;当片选信号CS为高电平时,方能读出数据写“0”——xi和yi选择线为高电位,P端加20多伏的正脉冲,脉冲宽度为0.1~1ms3.EPROM第四十二页,共一百二十三页,编辑于2023年,星期二EPROM实例——2716为例容量:2K×8位,地址线11根:7条X译码、4条Y译码数据线8根D7~D0

;带输出缓冲器12864存储矩阵12864存储矩阵行译码器输出列选择读出放大器输出缓冲器输出列选择读出放大器输出缓冲器…128线…64线…128线输入缓冲器输入缓冲器输入缓冲器输入缓冲器A0A3CE(PD/PGM)OEO0O3O1O2A4A10O4O7O5O6…64线第四十三页,共一百二十三页,编辑于2023年,星期二2716工作模式CE(PD/PGM)OEVPPVCC数据传输方向读00+5V+5V输出无操作01+5V+5V高阻功率下降1×+5V+5V高阻编程50ms宽正脉冲1+25V+5V输入第四十四页,共一百二十三页,编辑于2023年,星期二4.电擦除可编程E2PROM(ElectricalEPROM)E2PROM存储元

——具有两个栅极;G1是浮栅,无引出线;G2是抹去栅,有引出线G1栅和漏极D间有一小面积、极薄的氧化层,可产生隧道效应存储“1”——G2栅加20V正脉冲P1,通过隧道效应,电子由衬底注入到G1,相当于存储了“1”出厂时,内容为全“1”第四十五页,共一百二十三页,编辑于2023年,星期二4.EEPROM写“0”——漏极D加20V正脉冲P2,G2栅接地,G1上电子通过隧道返回衬底,相当于写“0”

读出——G2栅加3V电压,若G1栅有电子积累,T2不能导通,相当于存“1”;若G1栅无电子积累,T2导通,相当于存“0”

允许改写上千次改写(先抹后写)大约需20ms数据可存储20年以上第四十六页,共一百二十三页,编辑于2023年,星期二——高密度非易失性的读/写存储器既有RAM的优点,又有ROM的优点3.4.2闪速存储器(FLASH存储器)由单个MOS晶体管组成,漏极D、源极S、控制栅和浮空栅

FLASHROM属于真正的单电压芯片,读和写都是在单电压下进行,不需跳线,只利用专用程序即可方便修改

FLASHROM的存储容量普遍大于EEPROM,价格也比较合适,近年来已逐渐取代了EEPROM第四十七页,共一百二十三页,编辑于2023年,星期二“0”:当控制栅加足够的正电压,浮空栅将储存许多电子而带负电——定义为存储元处于0状态“1”:控制栅不加正电压时,浮空栅只有少许电子或不带电荷——定义为存储元处于1状态3.4.2闪速存储器第四十八页,共一百二十三页,编辑于2023年,星期二所有存储元的原始状态为“1”编程(写)操作:使某些存储元改写成“0”——控制栅C上加正电压;保持“1”的存储元,控制栅不加正电压一旦存储元被编程,存储的数据可保持100年之久3.4.2闪速存储器第四十九页,共一百二十三页,编辑于2023年,星期二读取操作:控制栅加正电压,浮空栅上的负电荷量将决定MOS管是否导通;若存储元原存1,晶体管导通,读出电路检测到有电流;若原存0,晶体管不导通,无电流擦除操作:源极S加上正电压,吸收浮空栅中的电子,使所有存储元中浮空栅上的负电荷全部洩放出去3.4.2闪速存储器第五十页,共一百二十三页,编辑于2023年,星期二FLASH存储器的阵列结构读操作——若存储元原存1,则晶体管导通,有电流经负载产生一个电压降,与参照电压比较,输出标志为逻辑1的电平;若存储元原存0,晶体管不导通,位线上没有电流,比较器输出端产生标志为逻辑0的电平3.4.2闪速存储器第五十一页,共一百二十三页,编辑于2023年,星期二各种存储器性能比较存储器类型非易失性高密度单晶体管存储元在系统中的可写性FLASHSRAMDRAMROMEPROMEEPROM第五十二页,共一百二十三页,编辑于2023年,星期二3.5并行存储器解决CPU和主存储器间速度不匹配的问题①主存采用更高速技术缩短读出时间②采用并行技术的存储器采用空间并行技术——双端口存储器采用时间并行技术——多体交叉存储器目录第五十三页,共一百二十三页,编辑于2023年,星期二3.5.1双端口存储器

1、双端口存储器的逻辑结构——同一个存储器具有两组相互独立的读写控制电路,并行如IDT7133——2K×16的SRAM2、无冲突(两个端口的地址不同)读写控制任一端口被选中驱动即可对整个存储器存取,每个端口有自己的片选控制(CE)和输出驱动控制(OE)3、有冲突(两个端口同时存取同一存储单元)读写控制片上的判断逻辑决定哪个端口优先进行读写,而对另一个被延迟的端口置BUSY标志(变为低电平),暂时关闭3.5并行存储器第五十四页,共一百二十三页,编辑于2023年,星期二双端口存储器IDT7133逻辑框图返回第五十五页,共一百二十三页,编辑于2023年,星期二无冲突读写控制左端口或右端口功能R/WLBR/WUBCEOEI/O07I/O815X0010111X010101110000000XX001101Z数据入数据入数据出数据入Z数据出ZZ数据入数据出数据入Z数据入数据出Z端口不用低位和高位字节数据写入存储器(BUSY高电平)低位写入存储器,存储器中数据输出到高位字节高位写入存储器,存储器中数据输出到低位字节低位字节数据写入存储器高位字节数据写入存储器存储器中数据输出至低位字节和高位字节高阻抗输出返回第五十六页,共一百二十三页,编辑于2023年,星期二3.5.1双端口存储器4、有冲突读写控制判断方法(1)地址匹配且在CE前有效,控制逻辑在CEL和CER间进行判断来选择端口(CE判断)(2)CE在地址匹配前变低,控制逻辑在左、右地址间进行判断来选择端口(地址有效判断)无论哪种方式,延迟端口的BUSY标志都将置位而关闭此端口;当允许存取的端口完成操作时,延迟端口BUSY标志才进行复位而打开此端口第五十七页,共一百二十三页,编辑于2023年,星期二左、右端口读写操作的功能判断左端口右端口标志功能说明CEL(A0A10)LCER(A0A10)RBUSYLBUSYR1010XAnyX(A0A10)R1100XXAny(A0A10)L11111111无冲突无冲突无冲突无冲突0000LV5RRV5LSameSame0000LV5RRV5LSameSame10100101左端口胜右端口胜消除判断消除判断地址判断LL5RRL5LLW5RLW5R=(A0A10)R=(A0A10)R=(A0A10)R=(A0A10)RLL5RRL5LLW5RLW5R=(A0A10)L=(A0A10)L=(A0A10)L=(A0A10)L10100101左端口胜右端口胜消除判断消除判断CE判断第五十八页,共一百二十三页,编辑于2023年,星期二双端口存储器读写时序第五十九页,共一百二十三页,编辑于2023年,星期二3.5.2多模块交叉存储器1.存储器的模块化组织若干个模块组成的主存储器,地址在各模块中的安排方式:一种是顺序方式,一种是交叉方式第六十页,共一百二十三页,编辑于2023年,星期二(1)顺序方式[例]M0-M3共四个模块,每个模块8个字

M0:0—7

M1:8-15

M2:16-23

M3:24-315位地址的组织:XX

XXX

高位选模块,低位选块内地址特点:某个模块存取时,其他模块不工作优点:某一模块出现故障时,其他模块可照常工作;通过增添模块来扩充存储器容量比较方便缺点:各模块串行工作,存储器带宽受限3.5.2多模块交叉存储器第六十一页,共一百二十三页,编辑于2023年,星期二(2)交叉方式[例]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.2多模块交叉存储器第六十二页,共一百二十三页,编辑于2023年,星期二2、多模块交叉存储器的基本结构(以4模块为例)3.5.2多模块交叉存储器对每个存储模块:从CPU发出访存命令到读出信息使用了一个存储周期对于CPU:在一个存储周期内连续访问了4个模块(分时使用数据总线),各模块的读写过程重叠进行若连续在主存中存取程序段或数据块——访问速度大大提高主存被分成4个相互独立、容量相同的模块,每个模块有自己的读写控制电路、地址寄存器和数据寄存器,各自以等同的方式与CPU传送信息第六十三页,共一百二十三页,编辑于2023年,星期二定量分析:设模块字长等于数据总线宽度,模块存取一个字的时间为T,由m个总线传送周期(τ)组成,即T=m

,并使用m个模块交叉组织存储器,则成块传送可按τ间隔流水方式进行交叉存取度——m=T/模块数必须大于等于m连续读取m个字所需的时间为t1=T+(m-1)顺序方式存储器连续读取m个字所需时间t2=mT3.5.2多模块交叉存储器m=4的流水线方式存取示意图m=4的流水线方式存取示意图第六十四页,共一百二十三页,编辑于2023年,星期二例5设存储器容量为32字,字长64位,模块数m=4。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。若连续读出4个字,分别求用顺序方式和交叉方式组织的存储器的带宽解:两种方式连续读出4个字的信息总量都是:

q=64b×4=256b顺序存储器和交叉存储器连续读出4个字所需的时间分别是:顺序:t2=mT=4×200ns=800ns=8×10-7s交叉:t1=T+(m-1)=200ns+3×50ns=350ns=3.5×10-7s顺序存储器和交叉存储器的带宽分别是:顺序:W2=q/t2=256b÷(8×10-7)s=320Mb/s交叉:W1=q/t1=256b÷(3.5×10-7)s=731Mb/s第六十五页,共一百二十三页,编辑于2023年,星期二3.二模块交叉存储器举例二模块(各1MB)交叉存储器(DRAM构成)方框图第六十六页,共一百二十三页,编辑于2023年,星期二二模块交叉存储器无等待状态成块存取示意图3.二模块交叉存储器举例第六十七页,共一百二十三页,编辑于2023年,星期二补充:相联存储器CAM(ContentAddressedMemory)相联存储器——其中某一存储项内容作为地址来存取的存储器,用来寻址存储器的字段叫做关键字相联存储器中的项可视为由KEY、DATA组成,其中KEY是地址,DATA是被读写信息基本原理——把存储单元所存内容的某一部分作为检索项(关键字),去检索该存储器,并将与该检索项符合的存储单元内容读出或写入主要用途——虚拟存储器中存放段表、页表和快表;高速缓冲存储器中,存放cache的行地址第六十八页,共一百二十三页,编辑于2023年,星期二检索寄存器屏蔽寄存器比较线路存储器译码选择电路代码寄存器12...m符合寄存器补充:相联存储器CAM(续)检索寄存器屏蔽寄存器符合寄存器比较线路代码寄存器存储体第六十九页,共一百二十三页,编辑于2023年,星期二3.6Cache存储器3.6.1Cache基本原理1.cache的功能:解决CPU和主存间速度不匹配问题采用高速SRAM构成速度差别很大时采用两级或多级Cache系统早期的一级Cache在CPU内,二级在主板上现在的CPU内带L1Cache和L2Cache全由硬件调度,对用户透明程序访问的局部性原理空间局部:紧邻被访问单元的地方也将被访问时间局部:刚被访问的单元很快将再次被访问目录第七十页,共一百二十三页,编辑于2023年,星期二块传送第七十一页,共一百二十三页,编辑于2023年,星期二3.6.1Cache基本原理2.cache的基本原理地址映射替换策略写一致性性能评价第七十二页,共一百二十三页,编辑于2023年,星期二基本原理小结:介于CPU和主存之间的小容量存储器:从功能上看,是主存的缓冲存储器,由高速的SRAM组成;为追求高速,包括管理在内的全部功能由硬件实现,故对程序员透明Cache的设计依据:程序访问的局部性CPU与Cache间的数据传送是以字为单位主存与Cache间的数据传送是以块为单位CPU读主存时,把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在立即传送给CPU;否则,用主存读周期把此字从主存读出送到CPU,并把含有这个字的整个数据块从主存读出送到cache中3.6.1Cache基本原理第七十三页,共一百二十三页,编辑于2023年,星期二3.cache的命中率3.6.1Cache基本原理设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值不宜太大,以5—10为宜命中率h与程序的行为、cache的容量、组织方式、块大小有关第七十四页,共一百二十三页,编辑于2023年,星期二例6CPU执行一段程序时,cache完成存取的次数为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与内存的速度比第七十五页,共一百二十三页,编辑于2023年,星期二映射方法:

全相联映射、直接映射、组相联映射影响映射方式选择的因素:硬件是否容易实现地址变换的速度Cache空间的利用率主存装入一块时发生冲突的概率3.6.2主存与Cache的地址映射

cache的容量很小,保存的内容只是主存内容的一个子集,cache与主存的数据交换以块为单位——主存和cache都要划分为同样大小的块

地址映射——把主存地址定位到cache中的方法第七十六页,共一百二十三页,编辑于2023年,星期二地址映射的相关基本概念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每次访问存储器时可存取的最小单位)第七十七页,共一百二十三页,编辑于2023年,星期二映射方法(多对多)主存内容可以拷贝到cache的任意行中主存中一个块的地址(块号)与块的内容一起存于cache行中,其中块地址存于cache行的标记部分地址变换标记构成一个目录表设cache8行,主存256块,每块(行)有同样多的字,则行号字地址cache的地址主存的地址块号字地址行号3bit块号8bit字地址:wbit1.全相联映射方式第七十八页,共一百二十三页,编辑于2023年,星期二全相联映射方式示意图第七十九页,共一百二十三页,编辑于2023年,星期二全相联映射的Cache组织第八十页,共一百二十三页,编辑于2023年,星期二访问方法: CPU访问一个指定的内存地址(包括主存和cache),块号与cache中所有行的标记同时在比较器中比较,若命中——按字地址从cache中读取一个字;若未命中——按内存地址从主存中读取该字,并将该字所在的一个块调入cache实现方式: 全部标记用一个CAM实现;数据用RAM实现优点:灵活,冲突概率小,Cache的利用率高缺点:比较器电路难于设计和实现,需要一个访问速度很快、代价高的相联存储器应用:适合于小容量cache全相联映射方式总结第八十一页,共一百二十三页,编辑于2023年,星期二多对一的映射关系一个主存块只能拷贝到cache的一个特定行cache的行号i和主存的块号j的关系:i=jmodm

——m为cache的总行数如m=8映射示意图2.直接映射方式第八十二页,共一百二十三页,编辑于2023年,星期二同样,设cache为8行,主存为256块,每块(行)有同样多的字则允许存于cache第L0 B0,B8,B16,…,B248L1

B1,B9,B17,…,B249L2的主存块号是

B2,B10,B18,…,B250……L7

B7,B15,B23,…,B255行号字地址cache的地址主存的地址标记字地址行号:rbit,本例为3块号:sbit,本例为8其中标记s-rbit,本例为5块地址sbits位的块地址分成两部分——r位的行号和s-r位标记每一个cache行只可映射主存中特定的32个块32个块第八十三页,共一百二十三页,编辑于2023年,星期二直接映射的Cache组织第八十四页,共一百二十三页,编辑于2023年,星期二访问方法:首先用rbit行号找到cache中的该行,再用地址中的s-rbit标记与此行的标记比较,若相符(命中),则用地址的最低w位(字地址)读取该字;若不符(未命中)

,由主存读取该字,并将此字对应的一个块调入cache优点:硬件简单,成本低缺点:每个主存块只有一个固定的行可存放,易产生冲突冲突情况:块号相距m整数倍的两个块,只能映射到cache的同一行,若新块不在cache中而对应行号又已占用,就发生了冲突,只能用新的块替代原来占用cache此行中的块,即使cache还有其它空行,也不可利用——频繁置换会降低cache的效率应用:适合大容量cache采用,因为行数多使冲突的机会减小直接映射方式总结第八十五页,共一百二十三页,编辑于2023年,星期二将cache分成u组,每组v行,主存块存放到哪个组是固定的,但在该组哪一行是灵活的,即组间直接映射,组内全相联映射

m=u×v 组号:q=jmodu

B0,B4,B8,…,B252

共64个块映射到cache的s0组B1,B5,B9,…,B253

共64个块映射到cache的s1组B2,B6,B10,…,B254

共64个块映射到cache的s2组B3,B7,B11,…,B255

共64个块映射到cache的s3组主存的3.组相联映射方式——前两种方式的折衷例:cache共8行,分4组,每组2行,组号2bit,组内行号1bit主存256块,主存的块号j与cache的组号q的对应关系是:

q=jmod4,即第八十六页,共一百二十三页,编辑于2023年,星期二s位块号分成两部分——低d位为组号,高s-d位标记注:为了便于比较器实现,组相联映射中的每组行数v一般取值较小,典型值为2、4、8、16组相联映射Cache示意图操作过程:首先将根据其标记与所在组的每一个行比较,查找是否在cache中,若在,则命中,由低w位的块内地址直接访问cache;若不在,则访问主存,同时更新cache第八十七页,共一百二十三页,编辑于2023年,星期二组相联映射的Cache组织第八十八页,共一百二十三页,编辑于2023年,星期二特点:比全相联容易实现,比直接映射冲突低v=1,则为直接映射方式u=1,则为全相联映射方式v取值一般较小,且为2的幂,称为v路组相联cache组相联映射方式总结第八十九页,共一百二十三页,编辑于2023年,星期二例7直接映射方式的内存格式如下,若主存地址用十六进制表示为BBBBBB,请用十六进制格式表示直接映射方法cache的标记、行、字的值解:主存地址(BBBBBB)16=(101110111011101110111011)2故:8位的标记为:(10111011)2=(BB)1614位的行号为:(10111011101110)2=(2EEE)162位的字地址为:(11)2=(3)16标记s-r行r字w8位14位2位第九十页,共一百二十三页,编辑于2023年,星期二例8一个组相联cache由64个行组成,每组4行。主存储器包含4K个块,每块128字。请表示内存地址的格式解:块大小为128字,故字地址为7位cache64行,每组4行,故分为16组,组号4位主存4K个块,故块地址12位,组相联方式中,组号占4位,所以标记为12-4=8位内存地址格式如下:标记s-d组号d字w8位4位7位第九十一页,共一百二十三页,编辑于2023年,星期二例9一个处理器,主存容量1MB,字长1B,块大小16B,cache容量64KB。若cache采用全相联映射,对内存地址(B0010)给出相应的标记和字号。解:全相联映射方式中,主存的块号作为标记主存分为1MB/16B=216个块,块号(标记)16位块大小16B,块内字地址4位内存地址(B0010)16=(10110000000000010000)16故标记为:(B001)16;字号为:(0)16第九十二页,共一百二十三页,编辑于2023年,星期二直接映射cache——直接将特定位置上的原主存块换出全相联和组相联cache——从允许存放新主存块的若干特定行中选取一行换出

——将一段时间内被访问次数最少的那行换出实现方法:每行设置一个计数器,从0开始,每访问一次,被访行的计数器增1,需要替换时,将计数值最小的行换出,同时将这些行计数器清零换出(替换、淘汰)某一行常用的算法1、最不经常使用(LFU)算法问题:不能严格反映近期访问情况3.6.3替换策略(替换算法——硬件实现)最不经常使用法最近最少使用法随机替换第九十三页,共一百二十三页,编辑于2023年,星期二2近期最少使用(LRU)算法

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

1写回法——CPU写cache命中时,只修改cache的内容;写cache未命中也不写主存,拷入后只写cache,只有当此行被换出时才写回主存

减少了访问主存的次数,但存在不一致性隐患

实现方法:每个cache行配置一个修改位,反映是否被修改过3.6.4Cache的写操作策略写回法全写法写一次法常用的写操作策略第九十五页,共一百二十三页,编辑于2023年,星期二2全写法

——写cache命中时,cache与主存同时修改;写cache未命中则直接写主存,修改主存后的处理方法——WTWA、WTNWA优点:较好地维护了cache与主存内容的一致性;cache中每行无需设置修改位及相应的判断逻辑缺点:降低了cache的功效

3写一次法

——与写回法的不同,仅在于第一次写命中时要同时写入主存奔腾的片内数据cache就是采用写一次法第九十六页,共一百二十三页,编辑于2023年,星期二3.6.5Pentium4的Cache组织Pentium4的Cache布局图说明第九十七页,共一百二十三页,编辑于2023年,星期二主要组成部分:取指/译码单元:顺序从L2cache中取程序指令,译成一系列微指令,并存入L1指令cache中乱序执行逻辑:依据数据相关性和资源可用性,调度微指令的执行(可按不同于所取机器指令流的顺序)执行单元:执行微指令,从L1数据cache中取所需数据,并在寄存器组中暂存运算结果存储器子系统:包括L2cache、L3cache和系统总线;当cache未命中时,使用系统总线访问主存Pentium4的指令cache位于指令译码逻辑和执行部件之间Pentium4的Cache组织返回图示第九十八页,共一百二十三页,编辑于2023年,星期二3.6.6使用多级Cache减少缺失损失(二级cache)例10某处理器,基本CPI为1.0,时钟频率5GHz。设访问一次主存的时间为100ns,其中包括所有的缺失处理。设平均每条指令在第一级cache中所产生的缺失率为2%。如果增加一个二级cache,命中或缺失的访问时间都是5ns,而且容量大到可使必须访问主存的缺失率减为0.5%,问处理器速率提高多少?解:必须访问主存的缺失损失为100ns×5×109=500个时钟周期只有一级cache时,有2%的概率还要再访问主存,所以有效CPI=1.0+2%×500=11设置二级cache后,有2%的概率由二级cache处理,有0.5%的概率由主存处理访问二级cache的缺失损失为5ns×5×109=25个时钟周期所以有效CPI=1.0+2%×25+0.5%×500=4.0故处理器速率提高11.0/4.0=2.75倍第九十九页,共一百二十三页,编辑于2023年,星期二采用更高速的主存或加长存储器字长采用并行操作的双端口存储器采用交叉存储器采用Cache加速CPU与主存间有效传输的措施第一百页,共一百二十三页,编辑于2023年,星期二3.7虚拟存储器3.7.1虚拟存储器的基本概念虚拟存储器——建立在主存与辅存物理结构基础之上,由附加硬件装置及操作系统管理软件组成的一种存储体系;是个概念模型,不是实际的物理存储器具有辅存的容量和接近主存的访问速度1、实地址与虚地址用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间计算机物理内存的访问地址称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间程序进行虚地址到实地址转换的过程称为程序的再(重)定位目录第一百零一页,共一百二十三页,编辑于2023年,星期二2、虚存的访问过程虚存空间的用户程序按照虚地址编程并存放在辅存中访存的过程结论——每个程序的虚地址空间可以远大于实地址空间;也可以远小于实地址空间——好处3、cache与虚存的异同主存-辅存的访问机制与cache-主存的访问机制类似,是三级存储体系中的两个层次cache和主存之间由辅助硬件负责地址变换与管理;主存和辅存之间由辅助软、硬件负责地址变换与管理,构成虚拟存储器第一百零二页,共一百二十三页,编辑于2023年,星期二Cache-主存、主存-辅存两个存储层次的比较相同点:(1)出发点相同:存储系统的性价比;性能、价格和容量(2)原理相同:程序运行时的局部性原理不同点:(1)侧重点不同:cache——速度差异;虚存——存储容量、存储管理、主存分配和存储保护等(2)数据通路不同:未命中时的访问方法(3)透明性不同:cache对系统程序员和应用程序员均透明;而虚存对实现存储管理的系统程序员不透明,只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)(4)未命中时的损失不同:主存的存取时间是cache的5~10倍;主存的存取速度通常比辅存快上千倍第一百零三页,共一百二十三页,编辑于2023年,星期二4、虚存机制要解决的关键问题——在操作系统的控制下,由硬件和系统软件负责解决(1)调度问题:决定哪些程序和数据应被调入主存(2)地址映射问题:内地址变换——访问主存时把虚地址变为主存物理地址外地址变换——访问辅存时把虚地址变成辅存的物理地址还要解决主存分配、存储保护与程序再定位等问题(3)替换问题:决定哪些程序和数据应被调出主存(4)更新问题:确保主存与辅存的一致性第一百零四页,共一百二十三页,编辑于2023年,星期二1、页式虚存地址映射主存和虚拟地址空间都划分成大小相等的页(页面大小为2的整数幂)——物理页、逻辑页虚地址——高字段为逻辑页号,低字段为页内地址(偏移量)实存地址——高字段为物理页号,低字段为页内地址虚地址(逻辑地址)转换成物理地址通过页表完成3.7.2页式虚拟存储器每个进程对应一个页表;每个虚存页面在页表中有一个表项,表项的内容包含该虚存页面所在主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位页表长度可变——把页表的基地址保存在寄存器中,页表本身则放在主存中第一百零五页,共一百二十三页,编辑于2023年,星期二页式虚拟存储器的地址映射过程页表基地址逻辑页号页内行地址物理页号页内行地址页表基址寄存器虚存地址实存地址+页表(在主存中)有效位主存页面号…………第一百零六页,共一百二十三页,编辑于2023年,星期二页表很长时的处理方法把页表存储在虚存中:页表本身也要分页,当一个进程运行时,其页表中一部分在主存,另一部分则在辅存中采用二级页表结构:每个进程有一个页目录表,其中的每个表项指向一个页表,此时,若页目录表的长度是m,每个页表的最大长度为n,则一个进程最多可以有m×n个页采用反向页表:实现物理页号到逻辑页号的反向映射,页表中对应每一个物理页号有一个表项,表项的内容包含该物理页所对应的逻辑页号——访存过程第一百零七页,共一百二十三页,编辑于2023年,星期二2、转换后援缓冲器(TLB——TranslationLookasideBuffer)访问虚存时存在的问题减少对主存访问次数的方法——对页表实行二级缓存TLB——用于页表缓存的高速存储部件快表——把页表中最活跃的部分存在高速存储器中构成慢表——保存在主存中的完整页表TLB的作用与Cache的作用相似,通常由相联存储器实现,是慢表中部分信息的副本访存过程(1)

程序局部性原理使多数虚存访问都将通过TLB完成(2)TLB匹配不成功时的处理第一百零八页,共一百二十三页,编辑于2023年,星期二TLB的地址映射过程第一百零九页,共一百二十三页,编辑于2023年,星期二内页表——虚地址到主存物理地址的变换表外页表——用于虚地址与辅存地址之间的变换外页表的结构与辅存的寻址机制密切相关——当主存缺页时,实施调页操作需要定位辅存3.内页表和外页表分页方式的优点:页长固定,易于管理,不存在外碎片缺点:页长与程序的逻辑大小无关,不利于编程的独立性(分页对于程序员不可见)第一百一十页,共一百二十三页,编辑于2023年,星期二例11由页式虚拟存储器、TLB和cache组成的存储层次结构中,访问存储器可能会遇到3种不同类型的缺失:cache缺失、TLB缺失和缺页。研究这3种缺失会发生一个或多个时的所有可能组合。对每种情况说明是否真的会发生以及发生的条件最好情况——虚地址由TLB转换,并在cache中命中最坏情况——在TLB、页表和cache部分都产生缺失4.虚拟存储器、TLB和cache的协同操作虚拟存储器、TLB和cache发生事件的可能组合TLB页表cache可能发生吗,如可能,发生的背景命中命中缺失可能,但若TLB命中就不可能再去检查页表命中命中命中可能,但若TLB命中就不可能再去检查页表缺失命中命中TLB缺失,但在页表中找到表项,并在cache中找到数据缺失命中缺失TLB缺失,但在页表中找到表项,未在cache中找到数据缺失缺失缺失TLB缺失并缺页,未在cache中找到数据命中缺失缺失不可能,若页不在内存中,TLB中没有此变换命中缺失命中不可能,若也不在内存中,TLB中没有此变换缺失缺失命中不可能,若也不在内存中,数据不会在cache中存在第一百一十一页,共一百二十三页,编辑于2023年,星期二3.7.3段式虚拟存储器和段页式虚拟存储器1、段式虚拟存储器段——按照程序的自然分界划分、长度可动态改变通常,程序员把不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段虚地址构成——段号和段内地址(偏移量)段表——虚地址到实主存地址的变换(每个程序设置一个段表)段表的结构:每个表项至少包含三个字段(1)有效位:指明该段是否已调入实存(2)段起址:已调入实存情况下,指明该段在实存中的首址(3)段长:该段的实际长度,设置该字段的目的是为了防止地址越界而破坏其他段段表本身也是一个段,可存于辅存,但一般驻留在主存第一百一十二页,共一百二十三页,编辑于2023年,星期二段表基地址段号段内地址

主存地址段表基址寄存器虚存地址实存地址+段表(在主存中)+段起址装入位段长段号段式虚存的地址映射过程………………地址变换过程及越界判断第一百一十三页,共一百二十三页,编辑于2023年,星期二优点①段的逻辑独立性使其易于编译、管理、修改和保护,便于多道程序共享(分段对程序员是可见的)②段长可以根据需要动态改变,允许自由调度,可有效利用主存空间缺点①段长不固定使主存空间分配较麻烦②易在段间留下许多外碎片,使存储空间利用率降低③由于段长不一定是2的整数次幂,地址转换时,必须通过段起址与段内偏移量的求和运算才能求得物理地址,而不能像页式那样简单拼接——段式比页式存储管理方式需要更多的硬件支持段式虚拟存储器特点为什么页式可以简单拼接,而段式不行?第一百一十四页,共一百二十三页,编辑于2023年,星期二2、段页式虚拟存储器——段式和页式的结合实存被等分成页每个程序先按逻辑结构分段,每段再按照实存的页大小分页,程序按页调入和调出,但可按段进行编程、保护和共享定位方式:每道程序通过一个段表和多个页表进行两级

温馨提示

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

评论

0/150

提交评论