




已阅读5页,还剩126页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理 武汉科技大学 计算机科学与技术学院,第三章 内部存储器,本章内容 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),易失性存储器:断电后信息消失(如RAM) 非易失性存储器:断电后仍能保存信息,5. 按在系统中的作用分,MROM PROM EPROM EEPROM,SRAM DRAM,控制存储器 高速缓冲存储器 主存储器 辅助(外)存储器,闪速存储器(FLASH),NAND FLASH NOR FLASH,不可变或条件可变,条件可变,可变,内存储器 (CPU可直接访问),半导体存储器类型,3.1.2 存储器的分级,设计存储器体系结构时应考虑容量、速度和成本,高速缓冲存储器(cache)高速小容量半导体存储器 主存储器(主存)存放计算机运行期间的大量程序和数据;采用MOS半导体存储器构成 外存储器(外存)大容量辅助存储器,各级存储器之间的关系,3.1.2 存储器分级结构,3.1.3 主存储器的技术指标,字存储单元、字地址;字节存储单元、字节地址 按字寻址的计算机、按字节寻址的计算机 存储容量存储器中可以容纳的存储单元总数,通常用字数或字节数表示(单位:K、M、G、T) 存取时间(存储器访问时间)发出一次读操作命令到该操作完成,将数据读出到数据总线上所经历的时间;通常取写操作时间等于读操作时间 存储周期连续启动两次读操作所需间隔的最小时间,略大于存取时间 存储器带宽:单位时间里存储器所存取的信息量,3.2 SRAM存储器,内存采用半导体存储器,按信息存储的机理不同分类 静态随机读写存储器(SRAMStatic RAM) 动态随机读写存储器(DRAMDynamic RAM),目录,3.2.1 基本的静态存储元阵列,1、存储位元是一个触发器,具有两个稳定状态,644位,2、三组信号线 地址线 数据线 控制线,行线 列线,地址译码器 双译码(二级译码) x向(A0A7 ) 、y向( A8A14 ),3.2.2 基本的SRAM逻辑结构,存储体、地址译码器和读写控制逻辑,存储体(32K2561288),读写控制逻辑(CS=0时) 读操作OE=0,G2开启, G1关闭 写操作WE=0,G1开启,G2关闭,3.2.3 读/写周期波形图,读周期 读出时间tAQ 读周期tRC 写周期 写时间tWD 写周期tWC 存取周期 取tRC= tWC,例1:SRAM的写入时序如图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出该写入时序中的错误,并画出正确的写入时序图。,3.3 DRAM存储器,3.3.1 DRAM存储元的记忆原理 由一个MOS晶体管和电容器组成的记忆电路,目录,3.3.1 DRAM存储元的记忆原理,1、MOS管作为开关使用,信息由电容器上的电荷量体现电容器充满电荷代表存储了1;电容器放电没有电荷代表存储了0,3、写0输出缓冲器和刷新缓冲器关闭;输入缓冲器打开,输入数据DIN=0送到存储元位线上;行选线为高,打开MOS管,电容上的电荷通过MOS管和位线放电,5、读出1后存储位元重写1 (1的读出是破坏性的)输入缓冲器关闭,刷新缓冲器和输出缓冲器/读放打开,DOUT=1经刷新缓冲器送到位线上,再经MOS管写到电容上,与SRAM相比,增加的部件:,以1M4位的DRAM为例,3.3.2 DRAM芯片的逻辑结构,(1) 行、列地址锁存器分时传送,RAS/CAS (2) 刷新计数器及控制电路 按行刷新;刷新计数器的长度、刷新地址与读/写地址的切换,1. 读周期、写周期 从RAS下降沿开始,到下一个RAS的下降沿为止的时间(连续两个读周期的时间间隔),通常取读周期=写周期,3.3.3 读/写周期、刷新周期,2. 刷新周期 刷新周期:典型值2ms、8ms16ms;某些器件可大于100ms 刷新操作以行为单位进行 刷新方式 集中式刷新 分散式刷新 异步式刷新,3.3.3 读/写周期、刷新周期,例:设某个存储器结构为10241024的存储矩阵 读/写周期为TC=0.5s,刷新周期为8ms,集中刷新方式,集中式刷新:将一个刷新周期分为两部分前一段时间进行正常读/写;后一段时间作为集中刷新时间,优点:对存储器的平均读/写时间影响不大,适用于高速存储器 缺点:在集中刷新时间内不能进行存取访问死时间,8ms分成16000个TC(=0.5s),只需1024个TC进行刷新,分散刷新方式,分散式刷新:将一个存储系统周期tS分为两半前半段用于读/写,后半段为刷新时间,优点:不存在死时间 缺点:刷新过于频繁,影响系统速度;如存储器读/写周期为0.5s,则存储系统的周期至少应为1s整个系统速度降低,设TC=0.5s,系统周期TS=1s,则只需1024s即可刷新一遍,在8ms内可进行多次刷新,异步刷新方式,异步式刷新:前两种方式结合,先用刷新的行数对刷新周期进行分割,再将分割好的时间分为两部分前段时间用于读/写,后一小段时间用于刷新,将8ms分割成1024个时间段,每段时间为8ms/1024=7.8125s(取7.8s),每隔7.8s刷新一行,8ms内完成对所有1024行的一次刷新,3.3.4 存储器容量的扩充,1、字长位数扩展 地址线和控制线公用;数据线分开连接 所需芯片数d=设计要求的存储器容量/选择芯片存储容量 2、字存储容量扩展 地址线和数据线公用,控制线中R/W公用,使能端EN不能公用,由地址总线的高位段译码决定片选信号 所需芯片数(d=设计要求的存储器容量/选择芯片存储容量),主存与CPU的连接原理,用8K1的存储器芯片组成8K8位(位扩展),用16K8的存储器芯片组成64K8位(字扩展),用16K4的存储器芯片组成64K8 (字位同时扩展),3、存储器模块条(内存条) 类型SD、DDR、DDR2、DDR3 封装有30脚、72脚、100脚、144脚、168脚、184脚、240脚(DDR2、DDR3) 30脚8位数据线,容量256KB32MB 72脚32位数据总线 100脚以上既用于32位又用于64位数据总线,容量4MB512MB DDR3单条容量可达32GB,3.3.4 存储器容量的扩充,转3.3.6,1. FPM-DRAM(快速页模式DRAM)程序的局部性原理 页同一行地址的所有列地址单元集合 读写周期中,首先由RAS确定行地址,然后在同一页中不再改变行地址(RAS保持有效),直接由CAS选定不同的列地址,3.3.5* 高级的DRAM结构,快速页模式读操作时序图,2. CDRAM(带高速缓冲存储器cache的动态存储器) 在DRAM芯片内集成一个小容量的SRAM,3.3.5* 高级的DRAM结构,SRAM是DRAM某一行的副本,可完成猝发式读取 读出过程分析,1M4,其中SRAM 5124,3. SDRAM(同步型动态存储器) SDRAM的操作要求与系统时钟同步,在系统时钟的控制下从CPU获得地址、数据和控制信息,即:它与CPU的数据交换同步于外部的系统时钟信号,并且以CPU/存储器总线的最高速度运行,不需要插入等待状态 SDRAM基于双存储体系(甚至是多体系)结构内含两个交错的存储阵列,允许两个内存页面同时打开,3.3.5* 高级的DRAM结构,例 CDRAM内存条组成实例 用8片1M4位的CDRAM构成1M32位(4MB)的存储模块,8个芯片共用行选通、刷新和行地址A0A10 猝发式存取过程,增加附加位(同数据位一起写入DRAM中保存),3.3.6 DRAM主存读/写的正确性校验,最简单的校验奇偶校验;最简单的纠错码汉明码,3.4 只读存储器和闪速存储器,3.4.1 只读存储器ROM 掩模ROM:存储内容固定的ROM,由生产厂家提供 可编程ROM:用户写入内容,有的可多次写入 一次性编程的PROM 多次编程的EPROM和E2PROM,目录,1. 掩膜ROM,3.4.1 只读存储器ROM,存储元构成:二极管、双极型晶体管、MOS管,工作原理: 若管子的基极与选择线相连,该管导通,反向后输出为“1”;若基极与选择线不连通,则输出为“0”,优点:可靠性和集成度高,价格便宜 缺点:不能重写,168位ROM阵列结构示意图,行选线与栅极相连,行选线与栅极不相连,掩模ROM逻辑符号及内部逻辑框图,2. PROM(用户可编程一次),熔断丝结构PROM 多发射极管 基极连选择线,编程写入时使某些熔断丝烧断,3.4.1 只读存储器ROM,读出时 熔断丝连通,输出为“1” 熔断丝烧断为“0”,以浮栅雪崩注入型MOS管为存储元的EPROM,3、光擦除可编程EPROM(Erasible Programmable ROM),3.4.1 只读存储器ROM,G1浮置栅,无引出线;G2控制栅,有引出线 若漏极D端加约几十伏的脉冲电压,则沟道中的电场足够强,会造成雪崩,产生很多高能量电子;此时,若G2栅上加正电压,则沟道中的电子穿过氧化层注入到G1栅,使G1栅积累负电荷 G1栅周围都是绝缘的二氧化硅层,泄漏电流极小,所以一旦电子注入到G1栅后,能长期保存,3. EPROM,3. EPROM,0和1的存储当G1栅有电子积累时,MOS管的开启电压变得很高,即使G2栅为高电平,该管仍不能导通,相当于存储了“0”;当G1栅没有电子积累时,MOS管的开启电压较低,当G2栅为高电平时,该管可以导通,相当于存储了“1” 出厂时信息为全“1”,擦除用光子能量较高的紫外光照射G1,使电子获得足够能量,穿过氧化层回到衬底中,即抹去了存储的信息,又存了全“1” 用40W紫外灯,相距2cm,照射几分钟即可,石英窗口,读出读出电路采用二维译码方式:x地址译码器的输出xi与G2栅极相连,以决定T2管是否选中;y地址译码器的输出yi与T1管栅极相连,控制数据是否读出;当片选信号CS为高电平时,方能读出数据 写“0”xi和yi选择线为高电位,P端加20多伏的正脉冲,脉冲宽度为0.11ms,3. EPROM,EPROM实例2716为例 容量:2K 8位,地址线11根:7条X译码、4条Y译码 数据线8根D7D0 ;带输出缓冲器,2716工 作 模 式,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不能导通,相当于存“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” 的存储元,控制栅不加正电压 一旦存储元被编程,存储的数据可保持100年之久,3.4.2 闪速存储器,读取操作:控制栅加正电压,浮空栅上的负电荷量将决定MOS管是否导通;若存储元原存1,晶体管导通,读出电路检测到有电流 ;若原存0,晶体管不导通,无电流 擦除操作:源极S加上正电压,吸收浮空栅中的电子,使所有存储元中浮空栅上的负电荷全部洩放出去,3.4.2 闪速存储器,FLASH存储器的阵列结构 读操作若存储元原存1,则晶体管导通,有电流经负载产生一个电压降,与参照电压比较,输出标志为逻辑1的电平;若存储元原存0,晶体管不导通,位线上没有电流,比较器输出端产生标志为逻辑0的电平,3.4.2 闪速存储器,Flash Memory AT29C040A,存储结构:512K8 19个地址引脚A18A0 8个数据引脚I/O7I/O0 3个控制引脚 片选CS 输出允许OE 写允许WE 扇区(256字节)擦写,MROM,PROM,EPROM,EEPROM,FLASH ROM,线路最简单,掩模工艺一次性制造,永久保存(除非坏掉),一般用于大批量生产中;成本低,但风险比较大,掩模ROMMask Read-Only Memory,PROMProgrammable Read-Only Memory,只允许写一次,也称为“一次可编程只读存储器” ,出厂时内容全为1(有些出厂时全为0) ,用户可将其中某些单元写入0 典型产品是“双极型熔丝结构”,改写时给某些单元通足够大电流并维持一定时间,使熔丝熔断,达到改写某些位的效果 另一类经典产品是“肖特基二极管结构” ,出厂时二极管处于反向截止状态,编程时用大电流将反相电压加在“肖特基二极管”,使其永久性击穿,写入专用编程器、编程电压(VPP=1224V,与型号有关) 擦除紫外线照射一定时间,专用擦除器,EPROMErasable Programmable Read-Only Memory ,“可擦除可编程只读存储器”,EEPROMElectrically Erasable Programmable Read-Only Memory, “电可擦除可编程只读存储器”,擦除、写入直接用电信号擦除,电信号写入;不需要借助其它设备,以Byte为最小修改单位,不必先全部洗掉 缺点其工艺复杂, 耗费门电路过多,重编程时间较长,有效重编程次数较低,也是非易失性内存 FLASH ROM属于真正的单电压芯片,读和写都是在单电压下进行,不需跳线,只利用专用程序即可方便修改 FLASH ROM的存储容量普遍大于EEPROM,价格也比较合适,近年来已逐渐取代了EEPROM,Flash Memory“闪存”,3.5 并行存储器,解决CPU和主存储器间速度不匹配的问题 主存采用更高速技术缩短读出时间 采用并行技术的存储器 采用空间并行技术双端口存储器 采用时间并行技术多体交叉存储器,目录,3.5.1 双端口存储器 1、双端口存储器的逻辑结构 同一个存储器具有两组相互独立的读写控制电路,并行 如IDT71332K16的SRAM 2、无冲突(两个端口的地址不同)读写控制 任一端口被选中驱动即可对整个存储器存取,每个端口有自己的片选控制(CE)和输出驱动控制(OE) 3、有冲突(两个端口同时存取同一存储单元)读写控制 片上的判断逻辑决定哪个端口优先进行读写,而对另一个被延迟的端口置BUSY标志(变为低电平),暂时关闭,3.5 并行存储器,双端口存储器IDT7133逻辑框图,返回,无冲突读写控制,返回,3.5.1 双端口存储器,4、有冲突读写控制判断方法 (1) 地址匹配且在CE前有效,控制逻辑在CEL和CER间进行判断来选择端口(CE判断) (2)CE在地址匹配前变低,控制逻辑在左、右地址间进行判断来选择端口(地址有效判断) 无论哪种方式,延迟端口的BUSY标志都将置位而关闭此端口;当允许存取的端口完成操作时,延迟端口BUSY标志才进行复位而打开此端口,左、右端口读写操作的功能判断,双端口存储器读写时序,3.5.2 多模块交叉存储器,1.存储器的模块化组织 若干个模块组成的主存储器,地址在各模块中的安排方式: 一种是顺序方式,一种是交叉方式,(1) 顺序方式 例M0M3共四个模块,每个模块8个字 M0:07 M1:815 M2:1623 M3:2431 5位地址的组织: X X X X X 高位选模块,低位选块内地址 特点:某个模块存取时,其他模块不工作 优点:某一模块出现故障时,其他模块可照常工作;通过增添模块来扩充存储器容量比较方便 缺点:各模块串行工作,存储器带宽受限,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余数为3 5位地址的组织: X X X X X 高位选块内地址,低位选模块 特点:连续地址分布在相邻的不同模块内,同一个模块内的地址不连续 优点:对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽,对成批数据读写有利 缺点:某一模块出现故障则整个存储器不能正常工作,3.5.2 多模块交叉存储器,2、多模块交叉存储器的基本结构(以4模块为例),3.5.2 多模块交叉存储器,对每个存储模块:从CPU发出访存命令到读出信息使用了一个存储周期 对于CPU:在一个存储周期内连续访问了4个模块(分时使用数据总线),各模块的读写过程重叠进行 若连续在主存中存取程序段或数据块访问速度大大提高,主存被分成4个相互独立、容量相同的模块,每个模块有自己的读写控制电路、地址寄存器和数据寄存器,各自以等同的方式与CPU传送信息,定量分析: 设模块字长等于数据总线宽度,模块存取一个字的时间为T,由m个总线传送周期()组成,即Tm ,并使用m个模块交叉组织存储器,则成块传送可按间隔流水方式进行,交叉存取度m=T/ 模块数必须大于等于m 连续读取m个字所需的时间为t1T+(m-1) 顺序方式存储器连续读取m个字所需时间t2=mT,3.5.2 多模块交叉存储器,例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=320Mb/s 交叉: W1=q/t1=256b(3.510-7)s=731Mb/s,3. 二模块交叉存储器举例,二模块(各1MB)交叉存储器(DRAM构成)方框图,二模块交叉存储器无等待状态成块存取示意图,3. 二模块交叉存储器举例,补充:相联存储器CAM(Content Addressed Memory),相联存储器其中某一存储项内容作为地址来存取的存储器,用来寻址存储器的字段叫做关键字 相联存储器中的项可视为由KEY、DATA组成,其中KEY是地址,DATA是被读写信息 基本原理把存储单元所存内容的某一部分作为检索项(关键字),去检索该存储器,并将与该检索项符合的存储单元内容读出或写入 主要用途虚拟存储器中存放分段表、页表和快表;高速缓冲存储器中,存放cache的行地址,检索寄存器,屏蔽寄存器,比较线路,存储器,译 码 选 择 电 路,代码寄存器,1 2 . . . m,符合寄存器,补充:相联存储器CAM(续),检索寄存器 屏蔽寄存器 符合寄存器 比较线路 代码寄存器 存储体,检索寄存器:存放检索字,位数和CAM存储单元位数相同 屏蔽寄存器:存放屏蔽码,位数和检索寄存器位数相同 符合寄存器:存放按检索项内容检索存储体中与之符合的单元地址,其位数等于相联存储器的存储单元个数,每一位对应一个存储单元,位的序数即为相联存储器的单元地址 比较线路:把检索项和从存储体中读出的所有单元内容的相应位比较,如果某个存储单元和检索项符合,就把符合寄存器的相应位置“1”,表示该字已被检索 代码寄存器:存放从存储体中读出的代码,或向存储体中写入的代码 存储体:由高速半导体存储器构成快速,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基本原理 地址映射 替换策略 写一致性 性能评价,基本原理小结: 介于CPU和主存M2之间的小容量存储器:从功能上看,是主存的缓冲存储器,由高速的SRAM组成;为追求高速,包括管理在内的全部功能由硬件实现,故对程序员透明 Cache的设计依据:程序访问的局部性 CPU与Cache间的数据传送是以字为单位 主存与Cache间的数据传送是以块为单位 CPU读主存时,把地址同时送给Cache和主存,Cache控制逻辑依据地址判断此字是否在Cache中,若在立即传送给CPU;否则,用主存读周期把此字从主存读出送到CPU,并把含有这个字的整个数据块从主存读出送到cache中,3.6.1 Cache基本原理,(3) Cache的命中率,3.6.1 Cache基本原理,设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完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间,公式,命中率 Cache/主存系统平均访问时间 访问效率 Cache与内存的速度比,h=Nc/(Nc+Nm)=1900/(1900+100)=0.95 r=tm/tc=250ns/50ns=5 e=1/(r+(1-r)h)=1/(5+(1-5)0.95)=83.3% ta=tc/e=50ns/0.833=60ns,命中率 Cache/主存系统平均访问时间 访问效率 Cache与内存的速度比,映射方法: 全相联映射、直接映射、组相联映射 影响映射方式选择的因素: 硬件是否容易实现 地址变换的速度 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每次访问存储器时可存取的最小单位),映射方法(多对多) 主存内容可以拷贝到cache的任意行中 主存中一个块的地址(块号)与块的内容一起存于cache行中,其中块地址存于cache行的标记部分 地址变换 标记构成一个目录表,设cache8行,主存256块,每块(行)有同样多的字,则,1. 全相联映射方式,全相联映射方式示意图,全相联映射的Cache组织,访问方法: CPU访问一个指定的内存地址(包括主存和cache),块号与cache中所有行的标记同时在比较器中比较,若命中按字地址从cache中读取一个字;若未命中按内存地址从主存中读取该字,并将该字所在的一个块调入cache 实现方式: 全部标记用一个CAM实现;数据用RAM实现 优点:灵活,冲突概率小,Cache的利用率高 缺点:比较器电路难于设计和实现,需要一个访问速度很快、代价高的相联存储器 应用:适合于小容量cache,全相联映射方式总结,多对一的映射关系 一个主存块只能拷贝到cache的一个特定行 cache的行号i和主存的块号j的关系:i=j mod m m为cache的总行数 如m=8映射示意图,2. 直接映射方式,同样,设cache为8行,主存为256块,每块(行)有同样多的字,则允许存于cache第,L0 B0,B8,B16,B248 L1 B1,B9,B17,B249 L2 的主存块号是 B2,B10,B18,B250 L7 B7,B15,B23,B255,cache的地址,主存的地址,行号:r bit,本例为3,块号:s bit,本例为8 其中标记s-r bit ,本例为5,块地址 s bit,s位的块地址分成两部分r位的行号和s-r位标记,每一个cache行只可映射主存中特定的32个块,32个块,直接映射的Cache组织,访问方法:首先用r bit行号找到cache中的该行,再用地址中的s-r bit标记与此行的标记比较,若相符(命中),则用地址的最低w位(字地址)读取该字;若不符(未命中) ,由主存读取该字,并将此字对应的一个块调入cache 优点:硬件简单,成本低 缺点:每个主存块只有一个固定的行可存放,易产生冲突 冲突情况:块号相距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个块映射到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;若不在,则访问主存,同时更新cache,组相联映射的Cache组织,特点:比全相联容易实现,比直接映射冲突低 v=1,则为直接映射方式 u=1,则为全相联映射方式 v取值一般较小,且为2的幂,称为v路组相联cache,组相联映射方式总结,直接映射cache直接将特定位置上的原主存块换出 全相联和组相联cache从允许存放新主存块的若干特定行中选取一行换出,将一段时间内被访问次数最少的那行换出 实现方法:每行设置一个计数器,从0开始,每访问一次, 被访行的计数器增1,需要替换时,将计数值最小的行换出,同时将这些行计数器清零,换出(替换、淘汰)某一行常用的算法,1、最不经常使用(LFU)算法,问题:不能严格反映近期访问情况,3.6.3 替换策略(替换算法硬件实现),2 近期最少使用(LRU)算法 将近期内长久未被访问过的行换出 实现方法:每行设置一个计数器,每次命中,命中行计数器清零,其它行计数器增1,需要替换时,将计数值最大的行换出 优点:保护了刚拷贝到cache中的新数据行,命中率较高 2路组相联方式的简化LRU控制算法(Pentium的数据cache采用) 3 随机替换 从特定的行位置中随机选取一行换出 优点:硬件上易实现,且速度也比前两种快 缺点:但降低了命中率和cache工作效率,3.6.3 替换策略,写操作策略使cache内容和主存内容保持一致,1 写回法 CPU写cache命中时,只修改cache的内容;写cache未命中也不写主存,拷入后只写cache,只有当此行被换出时才写回主存 减少了访问主存的次数,但存在不一致性隐患 实现方法:每个cache行配置一个修改位,反映是否被修改过,3.6.4 Cache的写操作策略,常用的写操作策略,2 全写法 写cache命中时,cache与主存同时修改;写cache未命中则直接写主存,修改主存后的处理方法WTWA、WTNWA 优点:较好地维护了cache与主存内容的一致性;cache中每行无需设置修改位及相应的判断逻辑 缺点:降低了cache的功效 3 写一次法 与写回法的不同,仅在于第一次写命中时要同时写入主存 奔腾的片内数据cache就是采用写一次法,3.6.5 Pentium 4的Cache组织,Pentium 4的Cache布局图,说明,主要组成部分: 取指/译码单元:顺序从L2cache中取程序指令,译成一系列微指令,并存入L1指令cache中 乱序执行逻辑:依据数据相关性和资源可用性,调度微指令的执行(可按不同于所取机器指令流的顺序) 执行单元:执行微指令,从L1数据cache中取所需数据,并在寄存器组中暂存运算结果 存储器子系统:包括L2cache、L3cache和系统总线;当cache未命中时,使用系统总线访问主存 Pentium 4的指令cache位于指令译码逻辑和执行部件之间,Pentium 4的Cache组织,返回图示,采用更高速的主存或加长存储器字长 采用并行操作的双端口存储器 采用交叉存储器 采用Cache,加速CPU与主存间有效传输的措施,转“虚拟存储器”,9.3 存储管理(课本的第9章第3节),主要解决的问题存储器的分配与回收、地址变换、存储器扩充,存储器共享与保护等,9.3.1 分区式存储管理 单用户、单任务的操作系统内存空间分为系统区和用户区 现代操作系统分区式存储管理 分区式存储管理机制分为固定分区和动态分区 固定式分区会出现内碎片 动态分区会出现外碎片,解决外碎片的方法(合并;内存紧缩),目录,9.3.2 交换技术和分页技术,利用程序的局部性原理实现多任务并发环境中的存储管理,交换技术:换入、换出;交换的过程;优点、缺点 交换技术和早期采用的覆盖技术一样,是从逻辑上利用外存扩大主存空间 分页技术:页面(页框)、页 不存在外碎片,内碎片仅存在于每个进程的最后一个页面 分页技术引申出虚拟存储器(虚存),在存储管理部件(MMU)的支持下,虚拟存储器技术可彻底解决存储器的调度与管理问题,9.4 虚拟存储器(课本的第9章第4节),9.4.1 虚拟存储器的基本概念 虚拟存储器建立在主存与辅存物理结构基础之上,由附加硬件装置及操作系统管理软件组成的一种存储体系;是个概念模型,不是实际的物理存储器 具有辅存的容量和接近主存的访问速度 1、实地址与虚地址 用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间 计算机物理内存的访问地址称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间 程序进行虚地址到实地址转换的过程称为程序的再(重)定位,目录,2、虚存的访问过程 虚存空间的用户程序按照虚地址编程并存放在辅存中 访存的过程 结论每个程序的虚地址空间可以远大于实地址空间;也可以远小于实地址空间好处,3、cache与虚存的异同 主存-辅存的访问机制与cache-主存的访问机制类似,是三级存储体系中的两个层次 cache和主存之间由辅助硬件负责地址变换与管理;主存和辅存之间由辅助软、硬件负责地址变换与管理,构成虚拟存储器,Cache-主存、主存-辅存两个存储层次的比较,相同点: (1)出发点相同:存储系统的性价比;性能、价格和容量 (2)原理相同:程序运行时的局部性原理 不同点: (1)侧重点不同:cache速度差异;虚存存储容量、存储管理、主存分配和存储保护等 (2)数据通路不同:未命中时的访问方法 (3)透明性不同:cache对系统程序员和应用程序员均透明;而虚存对实现存储管理的系统程序员不透明,只对应用程序员透明(段式和段页式管理对应用程序员“半透明”) (4)未命中时的损失不同:主存的存取时间是cache的510倍;主存的存取速度通常比辅存快上千倍,4、虚存机制要解决的关键问题,在操作系统的控制下,由硬件和系统软件负责解决 (1)调度问题:决定哪些程序和数据应被调入主存 (2)地址映射问题: 内地址变换访问主存时把虚地址变为主存物理地址 外地址变换访问辅存时把虚地址变成辅存的物理地址 还要解决主存分配、存储保护与程序再定位等问题 (3)替换问题:决定哪些程序和数据应被调出主存 (4)更新问题:确保主存与辅存的一致性,1、页式虚存地址映射 主存和虚拟地址空间都划分成大小相等的页(页面大小为2的整数幂)物理页、逻辑页 虚地址高字段为逻辑页号,低字段为页内地址(偏移量) 实存地址高字段为物理页号,低字段为页内地址 虚地址(逻辑地址)转换成物理地址通过页表完成,9.4.2 页式虚拟存储器,每个进程对应一个页表;每个虚存页面在页表中有一个表项,表项的内容包含该虚存页面所在主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位 页表长度可变把页表的基地址保存在寄存器中,页表本身则放在主存中,页式虚拟存储器的地址映射过程,页表很长时的处理方法,把页表存储在虚存中:页表本身也要分页,当一个进程运行时,其页表中一部分在主存,另一部分则在辅存中 采用二级页表结构:每个进程有一个页目录表,其中的每个表项指向一个页表,此时,若页目录表的长度是m,每个页表的最大长度为n,则一个进程最多可以有mn个页 采用反向页表:实现物理页号到逻辑页号的反向映射,页表中对应每一个物理页号有一个表项,表项的内容包含该物理页所对应的逻辑页号访存过程,2、转换后援缓冲器(TLBTranslation Lookaside Buffer),访问虚存时存在的问题 减少对主存访问次数的方法对页表实行二级缓存 TLB用于页表缓存的高速存储部件 快表把页表中最活跃的部分存在高速存储器中构成 慢表保存在主存中的完整页表,TLB的作用与Cache的作用相似,通常由相联存储器实现,是慢表中部分信息的副本 访存过程 (1) 程序局部性原理使多数虚存访问都将通过TLB完成 (2) TLB匹配不成功时的处理,TLB的地址映射过程,内页表虚地址到主存物理地址的变换表 外页表用于虚地址与辅存地址之间的变换 外页表的结构与辅存的寻址机制密切相关 当主存缺页时,实施调页操作需要定位辅存,3. 内页表和外页表,分页方式的优点:页长固定,易于管理,不存在外碎片 缺点:页长与程序的逻辑大小无关,不利于编程的独立性(分页对于程序员不可见),9.4.3段式虚拟存储器和段页式虚拟存储器,1、段式虚拟存储器 段按照程序的自然分界划分、长度可动态改变 通常,程序员把不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段 虚地址构成段号和段内地址(偏移量) 段表虚地址到实主存地址的变换(每个程序设置一个段表) 段表的结构:每个表项至少包含三个字段 (1)有效位:指明该段是否已调入实存 (2)段起址:已调入实存情况下,指明该段在实存中的首址 (3)段长:该段的实际长度,设置该字段的目的是为了防止地址越界而破坏其他段 段表本身也是一个段,可存于辅存,但一般驻留在主存,段式虚存的地址映射过程,地址变换过程及越界判断,优点 段的逻辑独立性使其易于编译、管理、修改和保护,便于多道程序共享(分段对程序员是可见的) 段长可以根据需要动态改变,允许自由调度,可有效利用主存空间 缺点 段长不固定使主存空间分配较麻烦 易在段间留下许多外碎片,使存储空间利用率降低 地址转换时,必须通过段起址与段内偏移量的求和运算才能求得物理地址,而不能像页式那样简单拼接段式比页式存储管理方式需要更多的硬件支持,段式虚拟存储器特点,为什么页式可以简单拼接,而段式不行?,2、段页式虚拟存储器段式和页式的结合,实存被等分成页 每个程序先按逻辑结构分段,每段再按照实存的页大小分页,程序按页调入和调出,但可按段进行编程、保护和共享 定位方式:每道程序通过一个段表和多个页表进行两级再定位 段表:每个表项对应一个段,有一个指针指向该段的页表 页表:该段各页在主存的位置、是否已装入、是否已修改等 虚地址构成:基号、段号、段内页号、页内偏移量,若系统中只有一个基址寄存器,则不需基号;多道程序切换时,由操作系统修改基址寄存器内容,缺点:地址映射需多次查表,实现复杂度较高速度较慢,基号:用户标志号,用于指明该道程序的段表起始地址,【例1】,假设有三道程序,基号A、B和C表示,其基址寄存器内容分别为SA,SB,SC。在主存中,每道程序都有一张段表,程序A由4段构成,程序C由3段构成。每段有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。 段页式虚拟存储系统的逻辑地址到物理地址的变换过程如图 解:地址转换过程如下: (1) 根据基号C,找到段表基址寄存器表第C个表项,获得C的段表基址SC ;再根据段号S(=1)找到程序C段表的第S个表项,得到段S的页表起始地址b (2) 根据段内逻辑页号P(=2)检索页表,得到物理页号(=10) (3) 物理页号与页内地址拼接即得物理地址,每个段表和页表的表项中都应设置一个有效位,只有在有效位为1时才按照上述流程操作,否则需中断当前操作先进行建表或调页,段页式虚存的地址变换过程,9.4.4 虚存的替换算法,从辅存调页至主存而主存已满时,需要进行主存页面的替换 算法与cache的替换类似,有FIFO、LRU、LFU算法等 虚存中的页面替换策略和cache中的行替换策略的显著不同: (1) cache的替换全靠硬件实现;虚存的替换有操作系统的支持 (2)虚存缺页对系统性能的影响比cache未命中要大得多,因为调页需要访问辅存,并且要进行任务切换 (3)虚存页面替换选择余地很大,属于一个进程的页面都可替换,为支持虚存的替换,通常在页表或段表的每个表项中设置一个修改位标识对应的页或段空间被调入主存后是否被修改过,【例2】假设主存只有a,b,c三个页面,组成a进c出的FIFO队列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瓦工贴瓷砖合同范本
- 融资租赁公司 合同范本
- 汽车区域销售合同范本
- 按揭买车贷款合同范本
- 年药店合同范本
- 瓷砖加工合同范本
- 兼职临时协议合同范本
- ktv买卖合同范本
- 家庭饮料购买合同范本
- 智能锁供货合同范本
- 2025年税法知识培训
- 麦当劳营销策略分析及对策建议定稿
- 婚内债务协议
- 70岁老年人三力测试能力考试题库附答案
- 新任教师学生管理方法培训
- 2025年智慧校园校企合作专业共建服务合同3篇
- 变化与更新-2025中国家居家装行业发展研究报告-树懒生活fine-202501
- 定额〔2025〕2号文-关于发布2020版电网技术改造及检修工程概预算定额2024年下半年价格
- 《脑卒中与急救》课件
- 九上英语单词表人教版
- 2025年北京车牌租赁合同范本
评论
0/150
提交评论