1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第三章 存储系统,1,3.1,存储系统概述,一、存储器分类,1,、按存储介质分类,存储介质,必须有,区别明显的两个物理状态,(,表示,0/1),*,半导体存储器:,如内存;,*磁性材料存储器:,如磁盘、磁带;,*光介质存储器:,如光盘,非易失存储器,易失性存储器,2,、按存取方式及功能分类,*顺序存取存储器,(SAM),:,按,记录块,为单位进行编址,,存取时间与,读,/,写头到访问地址的相对位置,有关;,*随机存取存储器,(RAM),:,按,存储字,为单位进行编址,,存取时间与访问的地址无关,(,
2、时间固定,),;,2,3,、按在计算机中的作用分类,*直接存取存储器,(DAM),:,信息存取,区域定位,与,RAM,类似,,区域内操作,与,SAM,类似;,*只读存储器,(ROM),:,操作方式为,只能取、不能存,可由,RAM,或,DAM,构成,信息读取的定位由存储器结构决定,*主存储器,(MM),:,可直接,与,CPU,交换信息,的,MEM,构成,MOS,型半导体、动态,RAM,和,ROM,*,辅助存储器,(AM),:,主存的后援,MEM,构成,磁性,/,光介质材料、,SAM/DAM,*高速缓冲存储器,(Cache),:,CPU,与主存间,的缓冲,MEM,构成,MOS,型,半导体、静态,R
3、AM,*控制存储器,(CM),:,CPU,内部,存放微程序的,MEM,构成,MOS,型半导体、,ROM,3,二、存储器的主要性能指标,*容量,(S),:,能存储的二进制信息总量,常以字节,(B),为单位,*速度,(B),:,常用带宽、存取时间或存取周期表示,存取时间,(T,A,),指,MEM,从收到命令到结果输出,所需时间;,存取周期,(T,M,),指,连续访存,的最小间隔时间,,T,M,=T,A,+T,恢复,*价格:,常用总价格,C,或每位价格,c,表示,,c=C/S,。,带宽,(B,M,),指,单位时间内,MEM,最多可读写,的二进制位数;,B,M,=W/T,M,,其中,W,为一次读写的数
4、据宽度,,常以,bps,为单位,4,三、层次结构存储系统,1,、层次结构的引入,*,程序访问,局部性规律:,程序执行时,指令和数据呈现的,相对,簇聚特性,。,*用户需求矛盾的解决方案:,*用户需求的矛盾:,需求,大容量、高速度、低价格,矛盾,?,?,时间局部性,被访问过的信息,,可能很快,被再次访问,;,空间局部性,被访问信息的,相邻信息,,可能很快,被访问,高速度、大容量、低价格,近期常用数据,放在,“前方”,MEM(,快而小,),中;,近期不用数据,放在,“,后方,”,MEM(,慢而大,),中。,5,2,、层次结构的存储系统,(1),层次存储系统组成,*思想:,用,多种类型,MEM,构成前
5、方,-,后方的,层次结构,;,各层,MEM,之间信息传递,是,“,透明,”,的,S,M1,S,M2,B,M2,B,Mn,前方,MEM,中信息,为后方,MEM,中信息的,副本,;,寄存器,M,1,M,2,M,n,存储系统,CPU,M,1,M,2,M,n,(2),常见的存储系统层次结构,围绕主存的层次结构一般为,“,Cache-,主存,-,辅存,”,三种,MEM,构成的,两个存储层次,Cache,辅存,主存,6,*,“,Cache-,主存,”,存储层次:,-,设置,高速缓冲存储器,目标,解决,主存速度,问题,(Cache,的速度,主存的容量,),CPU,Cache,主存,辅助,硬件,主存,地址,C
6、PU,主存,辅存,辅助,软件,主存,地址,程序覆盖技术,CPU,主存,辅存,辅助,软,硬,件,程序,地址,虚拟存储技术,OS,程序,虚拟存储器,-,按,程序地址,访问的,“,存储器,”,用户程序,*,“,主存,-,辅存,”,存储层次:,目标,解决,主存容量,问题,(,主存的速度,辅存的容量,),可能存在:,(,执行的,),程序空间主存空间,7,(3),层次存储系统的工作方式,*程序执行需求:,即将执行的,指令和数据存放在,主存,中,*层次存储系统的工作方式:,虚拟存储器,程序地址,CPU,辅存,辅存地址,产生硬件中断,/,异常,由,OS,处理,虚存辅助硬件,虚存辅助软件,主存地址,不命中,命中
7、主存,主存,Cache,Cache,地址,主存地址,Cache,辅助硬件,不命中,命中,8,3.2,半导体存储器基础,静态,RAM(SRAM),动态,RAM(DRAM),半导体,ROM,(,永久型,),双极型,RAM(TTL,、,ECL),MOS型RAM,半导体,RAM,(,易失型,),MROM,PROM,EPROM,EEPROM(E,2,PROM),FLASH,*静态,RAM,用,触发器,存储信息,,长时间不访问及信息读出后,信息值,(,状态,),保持不变,;,*动态,RAM,用,电容,存储信息,,长时间不访问及信息读出后,信息值,(,状态,),被破坏,,需,及时恢复,信息值,(,称为刷新
8、及再生,),。,9,1,、,SRAM,存储元的组成原理,存储元,RAM,中,存储,1,位二进制信息的电路;,一、静态,RAM(Static,RAM,,,SRAM),保持,使,W=V,地,T,5,和,T,6,截止,T,1,、,T,2,状态保持不变;,写入,在,W,线上加正脉冲,(,时长为写入延迟,)T,5,和,T,6,导通;,若写,“,0,”,,使,D=V,地,、,D=V,中,T,2,截止,T,1,导通,;若写,“,1,”,,使,T,1,截止,T,2,导通,;,读出,在,W,线上加正脉冲,;,D=D=V,中,D,或,D,产生压降,(,若信息为,“,0,”,则,D,电压下降,),用差动放大器可检测
9、出所读信息,,T,1,、,T,2,状态保持不变,(,非破坏性读,),。,*,6,管,MOS,静态存储元工作原理:,字选择线,W,6,管,MOS,型静态存储元电路,V,CC,T,1,T,2,A,B,D,D,T,5,T,6,T,4,T,3,10,2,、,SRAM,芯片的组成原理,(1),存储芯片基本组成,主要由,存储阵列、地址译码器、,I/O,电路、控制电路等组成,*存储阵列:,不同的存储单元有,一维,和,二维,两种组织方式,X,译码器,64,64,存储矩阵,I/O,电路,读,/,写,WE,驱动器,0,1,63,A,6,A,7,A,11,Y,译码器,A,0,A,1,A,5,输出驱动器,控制电路,数
10、据,D,片选,CS,正方形阵列,减少,信号延迟可,减少,连线长度,地址译码方式,决定,11,*地址译码器:,有,一维,、,二维,两种译码方式,译码器输出线数,2,M,根,2,2,M/2,根,*驱动器:,X,译码器每个输出,需控制,同一行各存储元,的字选线,设置,驱动器,增加驱动能力,I/O,电路,输出时需驱动,总线信号,(,负载大,),X,译码器,A,6,A,11,D,I/O,电路,读 写,Y,译码器,数据,D,A,0,A,5,存储元,存储元,存储元,存储元,D,D,D,驱动器,输出驱动器,常见译码方式,二维译码方式,同一列存储元,共用位选择线,12,*,I/O,电路:,根据,内部读,/,写信
11、号,,检测,/,控制,D,及,D,线,被选存储元,*片选与控制电路:,片选,MEM,常由,多个芯片,组成,,读,/,写操作,常针对,某个芯片,D,A,0,A,6,WE,A,7,CS,CS,1#,芯片,(,地址范围为,128255),0#,芯片,(,地址范围为,0127),控制电路,根据片选,CS,及,WE,信号,生成,内部读,/,写信号,CS,写,读,WE,&,&,11,13,(2)SAM,芯片参数与结构,*芯片相关参数:,存储阵列容量,数据引脚数量,地址引脚数量,11,14,3,、,SRAM,芯片的读写时序,*读周期时序:,(,存储器对外部信号的,时序要求,),t,A,t,RC,地址,CS,
12、I/O,14,WE,t,OTD,t,CO,t,CX,数据出,SRAM,CS,有效,时,开始读,操作、,CS,无效时,结束读,操作,13,15,*写周期时序:,t,WC,地址,CS,I/O,14,WE,t,AW,t,W,t,WR,t,DW,t,DH,数据入,SRAM,CS,有效,时,开始写,操作、,CS,无效时,结束写,操作,16,二、动态存储器,(Dynamic RAM,,,DRAM),动态,RAM,目标:,降低功耗、节约成本,17,数据线,D,C,D,字选择线,X,T,1,C,S,*单管,MOS,式动态存储元工作原理:,写入,所写数据加到,D,上,,,打开,T,1,对,C,S,充电或放电;,
13、保持,断开,T,1,无放电回路信息存,储在,C,S,中,(,会缓慢泄漏,),;,读出,在,D,上加正脉冲,对,C,D,预充电,,打开,T,1,读,D,上,电压变化,(,破坏性读,),C,S,得到充电,刷新,步骤与读操作完全相同。,立即,用所读数据,对,C,S,重新写入,称为,再生,18,2,、,DRAM,芯片的基本组成,19,(2),单管,MOS,式,DRAM,芯片的组成,*基本结构:,通常,采用,地址分两次传送方式,组织,增设,地址锁存器,、,时序控制电路,,,再生电路,19,X,译码器,I/O,电路,Y,译码器,D,读出,再生,放大器,A,6,A,11,A,5,A,0,64,64,D,D,
14、WE,时序控制,电路,行地址锁存器,列地址锁存器,RAS,CAS,A,5,A,0,行时钟,列时钟,写时钟,读出,再生,放大器,*芯片操作:,读、写、刷新,(,行刷新,方式,无列地址,),20,(3)DRAM,芯片组成示例,*,Intel 4116,芯片:,单管,MOS,存储元、地址分两次传送,参数,容量,=16K,1,位;地址引脚,=14/2=7,根;,数据引脚,=2,根,(,单向,D,IN,/D,OUT,、共,1,位宽度,),结构,2,个,64,128,存储阵列,时钟发生器串联,6:64,行,译码器,64,128,存储矩阵,128,个读出,再生放大器,7:128,列译码器,64,128,存储
15、矩阵,行时钟发生器,列时钟发生器,写时钟发生器,数据输,入缓冲,数据输,出驱动,RAS,CAS,WE,D,IN,D,OUT,6:64,行,译码器,A,12,A,7,A,13,A,6,A,0,A,6,A,0,列地址,锁存器,行地址,锁存器,21,3,、,DRAM,芯片的操作时序,*读周期时序:,t,A,t,CRD,地址,I/O,有效,t,DOH,t,CAC,行地址,列地址,t,AH,t,AH,t,RAC,t,RCL,RAS,WE,CAS,DRAM,RAS,有效时,开始,操作、,RAS,无效时,结束,操作,22,*刷新周期时序:,与读周期类似,区别在于,CAS,在整个操作过程中无效,行刷新,时,不
16、需要列地址,t,A,t,CRF,地址,I/O,行地址,t,RC,RAS,CAS,t,DOH,23,23,4,、,DRAM,芯片的刷新,*刷新周期:,同一存储元,连续两次刷新的最大间隔,;,与,DRAM,存储元材料及芯片组成有关,*刷新方法:,每个刷新周期内,,循环进行,所有行,的,行刷新,(1)DRAM,芯片刷新方式,通常有,集中式、分散式、异步式三种方式,*集中式刷新:,将所有行刷新,集中,在刷新周期的后部,周期序号,1,2,n n+1 n+2,n+m,地址行号,X,Y,R,0 1,m-,1,t,C,t,C,t,C,t,C,t,C,t,C,读,/,写,/,空闲,刷新,刷新周期,(,如,2ms
17、),时长,t,C,芯片的存取周期,m,行刷新的循环次数,n,刷新周期内可访存次数,设,t,C,=0.5us,、,m=128,次,则,n=2000/0.5-128=3872,次,特点,存在,“,死区,”,(,不能进行读,/,写操作的时间段,),24,*分散式刷新:,将行刷新分散在,每个存取周期,中,地址行号,R/W,R/W,R/W,R/W,R/W,R/W,REF,REF,REF,X,0,Y,1,R,m-1,A B,t,M,t,R,刷新周期,真实刷新,t,C,停止刷新,特点,避免了“死区”,增加了存取时间,(1,倍,),*异步式刷新:,将行刷新,均匀分布,在刷新周期中,15.5s,地址行号,X,Y
18、0,R,S,1,A B,m-1,t,C,t,C,t,C,t,C,t,C,t,C,t,C,t,C,t,C,R/W,R/W,REF,R/W,R/W,REF,R/W,R/W,REF,15.5s,15.5s,刷新周期,(,如,2ms),设芯片需刷新,128,次,则每次刷新间隔,2000/128=15.5s,特点,“,死区”可忽略,支持固有的存取周期,最常用,25,(2)DRAM,芯片刷新实现,按约定的刷新方式,,由,专用电路,定时产生,行刷新命令,*,DRAM,芯片的刷新电路:,DRAM,芯片,CPU,行,/,列地址,刷新地址计数器,地址多,路开关,定时,发生器,仲裁,电路,刷新定时器,地址,读,/
19、写,RAS,WE,CAS,固化了刷新方式,*刷新电路在计算机的位置:,通常,独立存在,于,DRAM,芯片,/,模块之外,DRAM,控制器,产生行刷新地址,26,5,、,MOS,型,SRAM,与,DRAM,芯片比较,*,DRAM,芯片的优点:,*,DRAM,芯片的缺点:,DRAM,速度,远低于,SRAM ,使用,动态元件,(,电容,),所致,*,RAM,芯片应用:,SRAM,芯片,常用来构成,高速度、小容量,MEM,,如,Cache,DRAM,芯片,常用来构成,大容量,MEM,,如主存,DRAM,集成度,远高于,SRAM,;,常采用,单管,MOS,存储元,DRAM,地址引脚,是,SRAM,的一
20、半;,常采用,地址分两次传送,方式,DRAM,功耗,约为,SRAM,的,1/4,;,采用单管,MOS,存储元所致,DRAM,成本,远低于,SRAM,27,三、只读存储器,(Read only Memory,,,R0M),*,ROM,:,信息注入,MEM,后,不能再改变,,它具有,非易失性,*半导体,ROM,:,具有,非易失性,的半导体,MEM,,如,EPROM,、,FLASH,等,*,ROM,芯片组成:,与,SRAM,类似,区别在于,存储元的实现及操作,1,、掩模,ROM(MROM),*,特征:,用户,不可修改,信息;,*存储元状态:,用,MOS,管,的,有,/,无,表示“,1”/“0”,;,
21、行地址译码器,A,5,A,9,V,CC,D,列地址译码器,A,0,A,4,选通,0,1,31,0 1 31,*数据读出:,字选线加电压时,位线电压为所选存储元的数据,28,2,、可编程,ROM(PROM),*,特征:,用户可,一次性修改,信息,(,电写入,),;,*存储元状态:,用,二极管,/,熔丝,的,通,/,断,表示“,1”/“0”,;,V,CC,字选择线,X,数据线,D,V,CC,熔丝未断,(,“1”),字选择线,X,数据线,D,熔丝已断,(,“0”),V,D,V,D,*数据写入:,字线,X,加电压,,若写,0,V,D,=V,地,熔丝熔断,,若写,1,V,D,=V,中,熔丝不断;,*数据
22、读出:,字线,X,加电压、,V,D,=V,中,,,检测,V,D,变化可读出数据,29,3,、可擦除可编程,ROM(EPROM),*,特征:,用户,可多次修改,信息,(,电写入、光擦除,),;,*存储元状态:,常用,浮栅雪崩注入,MOS,管,(,即,FAMOS,管,),的,浮栅,G,f,是,/,否带电荷,表示“,1”/“0”,;,D,S,N,基体,P,源极,S,漏极,D,SiO,2,P,浮栅,G,f,N,基体,P,源极,S,漏极,D,SiO,2,P,浮栅,G,f,30,4,、电可擦除可编程,ROM(E,2,PROM),*,特征:,用户,可多次修改,信息,(,电写入、电擦除,),;,*存储元状态:
23、用,浮栅隧道氧,化层,MOS,管,(,即,Flotox,管,),的,浮栅,是,/,否带电荷,表示“,1”/“0”,;,N,基体,P,S,D,G,C,SiO,2,P,D,S,G,C,31,5,、闪速存储器,(FLASH),*,特征:,用户,可多次修改,信息,(,电写入、电擦除,),;,*存储元状态:,与叠栅,EPROM,类似,但,氧化层,更薄,D,S,P,基体,N,S,D,G,C,SiO,2,N,G,C,操作,速度更快,32,3.3,主存储器,一、主存储器的组成,*主存储器相关概念:,主存容量,=,主存单元长度,主存单元个数,实际配置的主存,b,w-1,b,0,主存地址空间,主存单元长度,0,
24、00,0,0,01,1 0,10,0,1,11,1,主存地址长度,A,n-1,A,0,计算机结构设计时确定的参数,软硬件遵守此约定,(,如,CPU,引脚数量,等,),33,*应用对主存空间的需求:,系统程序区,(,如机器,启动时,的,BIOS),用户程序区,(,如机器,启动后,的,OS,等,),b,x,b,0,0,0,1,1,主存地址空间,需求,只读、非易失性,需求,读写,*主存储器的组成:,由,ROM,、,RAM,芯片,组成的,特定存储字长,的存储器;,ROM,空间大小,固定,、,RAM,空间大小,可选配,(,最大空间,),静态程序区,(,大小固定,),动态程序区,(,大小可选,),SRAM
25、或,DRAM,ROM,主存单元长度,(,特定值,),CPU,按此设置引脚,34,二、主存储器的逻辑设计,*主存逻辑设计:,使用,ROM,、,SRAM,或,DRAM,芯片进行,容量扩展,,实现,主存单元长度,和,主存单元个数,。,*存储器容量扩展方法:,位扩展法、字扩展法、字位扩展法,1,、位扩展法,(,又称,并联扩展,),*,目的:,扩展存储器的,存储字长,*芯片连接特征:,各芯片,数据引脚,连接不同,,其余引脚,连接相同,35,例,1,用,1K,1,位,SRAM,芯片,构成,1K,4,位存储模块,A,9,A,0,D,3,D,0,WE,1K,1b,SRAM,CS,1K,1b,SRAM,1K,
26、1b,SRAM,1K,1b,SRAM,1K,1b,1K,1b,bit,3,bit,0,0000000000,0000000001,1111111111,36,2,、字扩展法,(,又称,串联扩展,),*,目的:,扩展存储器的,存储字数,例,2,用,1K,4,位,SRAM,芯片,构成,2K,4,位存储模块,解:,芯片数量,各芯片,地址范围,存储模块有,log,2,(2K)=11,位地址,,共需,(2K,4b),(1K,4b)=2,片;,A,9,A,0,D,3,D,0,WE,1K,4b,SRAM(0#),CS,A,10,1K,4b,SRAM(1#),&,&,b,3,b,0,1K,4b,(1#),0,
27、0000000000(000H),0,1111111111(3FFH),1,0000000000(400H),1,1111111111(7FFH),1K,4b,(0#),各芯片,片选有效逻辑,0#,、,1#,芯片分别为,A,10,=0,、,A,10,=1,练习,1,用,1M,4,位,SRAM,芯片构成,4M,4,位存储模块,37,CS,A,21,A,20,2:4,译码器,1M,4(0#),1M,4(1#),1M,4(2#),1M,4(3#),Y,0,Y,3,GE,B,A,38,3,、字位扩展法,*目的:,同时扩展存储器的,存储字长,和,存储字数,例,3,用,1K,4,位,SRAM,芯片,构成,
28、2K,8,位存储模块,解:,芯片数量,共需,(2K,8b),(1K,4b)=4,片;,芯片,片选有效逻辑,0#,、,1#,A,10,=,0,2#,、,3#,A,10,=,1,b,7,b,4,1#,1K,4b,b,3,b,0,0#,1K,4b,3#,1K,4b,2#,1K,4b,0,0000000000(000H),0,1111111111(3FFH),1,0000000000(400H),1,1111111111(7FFH),A,10,D,3,D,0,A,9,A,0,D,7,D,4,WE,1K,4b,SRAM(0#),CS,1K,4b,SRAM(1#),1K,4b,SRAM(2#),1K,4b
29、SRAM(3#),&,&,连接图,各芯片地址范围,存储模块有,log,2,(2K)=11,位地址,,39,练习,2,用,1K,4,位,SRAM,芯片构成,4K,8,位存储模块,例,4,用,1K,4,位,ROM,、,1K,8,位,SRAM,芯片构成,4K,8,位存储模块,其中前,1KB,空间为只读空间,解:,芯片数量,共需,ROM 2,片、,SRAM 3,片;,各芯片地址范围,模块有,log,2,(4K)=12,位地址,芯片有,10,位地址,ROM 1#,ROM 0#,SRAM 1#,00,XXXXXXXXXX,01,XXXXXXXXXX,10,XXXXXXXXXX,11,XXXXXXXXXX
30、SRAM 2#,SRAM 3#,连接图,A,11,A,10,D,3,D,0,A,9,A,0,D,7,D,4,WE,1K,4b,ROM(1#),CS,1K,8b,SRAM(1#),1K,8b,SRAM(2#),1K,8b,SRAM(3#),1K,4b,ROM(0#),2:4,译码器,Y,0,B,A,GE,40,三、,提高访存速度的措施,*,CPU,的访存特征:,一次访存的信息常为多个存储字,,多次访存的地址常为连续的;,1,、多模块存储器,-,多体存储器,41,2,、高性能存储器,(1)EDO,DRAM,(Extended,Data Output,DRAM,,扩展数据输出,DRAM,),*,提
31、高性能思路:,同时读出,并缓冲,一行信息,,减小,平均,T,M,*实现原理:,用,SRAM,保存,上次读操作,的,一行信息,,当前读操作的,行地址,若与上次读操作,相同,,则直接从,SRAM,中取出信息,(2)SDRAM,(Synchronous DRAM,同步,DRAM,),MEM,从,所接收地址,开始,,连续读,/,写,多个存储字,(,内部计数器产生各存储字地址,),,减少了,多个地址连续,数据传送的平均,T,M,(3)DDR,SDRAM,(Double,Data Rate SDRAM,,双数据速率,DRAM,),42,3,、双端口存储器,-,同时支持两个操作,*结构:,2,套译码,+I/
32、O+,读写电路,,1,个存储阵列,+,判断逻辑电路,43,3.4,高速缓冲存储器,一、,Cache,的基本原理,*,Cache,的功能:,是,主存,的,快速,缓冲器,数据为主存中数据的,拷贝,存储阵列,控制器,阵列地址,CPU,主存,(,SRAM,),主存地址,主存地址,*,Cache,的性能:,命中率,(H),H,C,=N,C,/(N,C,+N,M,),其中,N,C,、,N,M,CPU,访存在,Cache,、主存中的,命中,次数,平均访问时间,T,A,=H,C,T,Cache,+(1-H,C,)T,Mem,44,1,、,Cache,的存储空间管理,(1)Cache,与主存的信息交换单位,*目
33、标:,尽量减小平均访问时间,T,A,*减小,T,A,的方法分析:,提高,H,C,程序访问局部性,减小,T,Mem,相邻信息,一起,在,Cache,中,*,Cache,与主存的信息交换单位:,字块,(,又称,块,或,行,),45,(2)Cache,的存储空间管理,*,Cache,阵列的编址单位:,与主存相同,(,字或字节,),;,*,Cache,与主存间的信息交换管理:,交换单位为块,主存与,Cache,均,划分,成若干,大小相同的块,;,Cache,块,存放,主存块,信息时,,标志,对应主存块的块号;,有效位,块标记,*,0,0 *,块,0,块,2,c,-1,Cache,空间,0,2,b,-1
34、0,2,b,-1,块,0,块,2,m,-1,主存空间,0,2,b,-1,0,2,b,-1,c,位,b,位,Cache,地址,Cache,块号,块内地址,m,位,b,位,主存,地址,主存块号,块内地址,1 i,块目录表,62,46,2,、,Cache,的基本工作原理,*完成访问步骤:,访问,Cache,阵列,有空位置,i?,调入,目标块,(,到块,i,位置,),Y,N,找出,被替换块,i,腾空,块,i,中内容,替换算法,N,查,目录表,命中?,块内地址,主存地址,Cache,块号,Cache,地址,主存块号,块内地址,Y,地址,变换,CPU,操作,=,写?,Y,将数据,写回,主存,N,映像规则
35、写策略,地址,变换,(,主存地址,Cache,地址,),;,访问,Cache,阵列;,保持,一致性,(Cache,与主存之间,),*实现要求:,全部工作均由硬件完成,(,对程序员透明,),!,*相关技术,映像规则、替换算法、写策略;,47,3,、,Cache,的结构与组成,*存储体:,由,SRAM,构成,*地址映像及变换机构:,由目录表、比较器等组成;,目录表,行数,=Cache,块数,表项,=,有效位,+,块标记,+,CPU,主存地址,MEM Bus,存储体,(SRAM),控制器,地址映像及变换机构,数据,(,字,/,次,),主存,(DRAM),替换机构,MUX,命令,数据,(,块,/,次
36、),主存地址,命令,Cache,地址,命令,地址映像机构,决定查目录表的,哪些行,及,块标记,组成,影响变换的性能及成本,地址变换机构,查表并比较,命中时,直接形成,Cache,地址,不命中时,调入块或替换块,后再,形成,64,48,*控制器:,Cache,工作过程中所有的,信号产生及时序控制,块内地址,t,主存地址:,块号,比较器,1,不命中的处理,不命中时,块内地址,t,块号,Cache,地址,:,命中时,j,块,0,块,2,c,-1,目录表,块,j,1 i,0 a,1 b,有效位 块标记,i,*替换机构:,按替换算法,选择,某被替换块,再,块写回,及,块调入,被替换块,目标块,65,4
37、9,二、,Cache,的相关技术,1,、地址映像及变换,*实现功能:,某主存块可存放到,Cache,中,哪些块位置,?,(1),全相联地址映像及变换,*映像规则:,主存块,i,可映射到,Cache,的任意一个块;,块内地址,t,b,位,主存地址,块号,i,m,位,块内地址,t,块号,j,Cache,地址,直接,主存空间,Cache,空间,块,0,块,2,m,-1,块,i,块,0,块,2,c,-1,块,j,目录表:,块 标 记,-,主存地址的块号,(m,位,),查表行数,所有行,*性能指标:,调入块时的,块,冲突概率,、地址变换的,速度与成本,50,*地址变换方法:,比较,目录表,所有行,,,命
38、中时行号,即为变换后的块号;,查表区域,=?,1,不命中时,不命中,的处理,*特征:,块映像,块冲突概率,最低,;,地址变换,速度,最慢,、或成本,最高,块内地址,t,b,位,主存地址:,块号,i,m,位,块内地址,t,块号,Cache,地址:,块,0,块,2,c,-1,目录表,块,j,1 i,0 a,1 b,有效位 块标记,命中时,j,51,例,1,:,CPU,支持最大主存容量,1MB,、按字节编址,块大小,16B,,,Cache,容量为,8KB,。全相联映像方式时,主存地址格式及参数?,Cache,地址格式及参数?目录表行数?块标记位数?,若目录表项为,,,CPU,访问,36454H,主存
39、单元时,则,Cache,命中时的目录表项?,解:,主存地址格式:,块内地址,块号,4,位,16,位,主存地址长度,=log,2,(1MB/1B)=log,2,2,20,=20,位,,块内地址长度,=log,2,(16B/1B)=log,2,16=4,位,,Cache,有,个块,,Cache,块号位数,=,位,,块内地址,块号,4,位,9,位,目录表行数,=,行,块标记位数,=,位;,512,16,9,(8KB/16B)=512,主存地址,=(,0011,0110,0100,0101,0100),2,,,Cache,命中时目录表项,=,52,块,0,块,G-1,区,0,块,G,块,2G-1,区,
40、1,块,(2,m-c,-1)G,块,2,m-c,G-1,区,2,m-c,-1,块,0,块,1,块,G-1,主存空间,Cache,空间,块内地址,t,c,位,b,位,主存地址,区内块号,j,区号,r,m-c,位,块内地址,t,块号,j,Cache,地址,直接,目录表:,块 标 记,-,主存地址的区号,(,m-c,位,),查表行数,-,一行,(2),直接地址映像及变换,*映像规则:,主存块,i,可映射到,Cache,的块,j=(i mod G),;,53,*地址变换方法:,比较,目录表,相应行,,,命中时,主存地址的,区内块号,即为变换后的块号;,查表区域,=?,1,块内地址,t,块号,Cache
41、地址,:,主存地址:,块内地址,t,c,位,b,位,区内块号,j,区号,r,m-c,位,块,0,块,2,c,-1,目录表,块,j,1 r,0 a,1 b,有效位 块标记,j,命中时,不命中时,不命中,的处理,*特征:,块映像,块冲突概率,最高,;,地址变换,速度,最快,、成本,最低,69,54,例,2,:,CPU,支持最大主存容量,1MB,、按字节编址,块大小,16B,,,Cache,容量为,8KB,。直接映像方式时,,主存及,Cache,地址格式及参数?目录表行数?块标记位数?,若目录表项为,,,CPU,访存地址为,36454H,时,则可能命中的,Cache,块号?命中时的目录表项?,解:
42、主存地址,20,位、,Cache,地址,13,位,其中块内地址,4,位,,目录表行数,=,行,块标记位数,=,位;,512,7,7,位,9,位,4,位,4,位,块内地址,区号,区内块号,块内地址,块号,主存地址格式,Cache,地址格式,9,位,13-4,位,20-9-4,位,可能命中的,Cache,块号,=,0,0100,0101,,,主存地址,=(,0011,011,0,0100,0101,0100),2,,,命中时目录表项,=,70,直接映像,55,(3),组相联地址映像及变换,-,直接映像与全相联映像的折中,n,路组相联,映像,组内块数为,n,的组相联映像,区,0,区,1,区,2,m
43、/(G/n)-1,假设,Q=2,m,/(G/n),主存空间,块,(,Q-,1)(G/n)+0,块,(Q-1)(G/n)+G/n-1,块,(G/n)+0,块,(G/n)+G/n-1,块,0,块,G/n-1,组,0,Cache,空间,组,G/n-1,块,(G/n-1)n+0,块,(G/n-1)n+n-1,块,0+0,块,0+n-1,*映像规则:,将,Cache,中块分组,每组为,n,个块,(,共,G/n,个组,),,主存块,i,可映像到,Cache,的,第,j,组,(j=i mod G/n),中的,任意块,。,56,块内地址,t,主存地址,:,区内块号,g,区号,r,块内地址,t,组内块号,s,
44、Cache,地址,:,直接,组号,g,c-log,2,n,b,m-(c-log,2,n),log,2,n,b,c-log,2,n,目录表:,块 标 记,-,主存地址的区号,m-(c-log,2,n),位,查表行数,-,n,行,(,组内所有行,),*目录表的组织:,种类,每块一行式、每组一行式;,性能,每组一行式,较优,(,定位方便、并行查表,),有效位 块标记,有效位 块标记,组,0,组,G/n-1,组内块,0,组内块,n-1,组,0,组内块,0,组内块,n-1,组,G/n-1,有效位 块标记,组内块,0,组内块,n-1,57,*地址变换方法:,*特征:,块映像,块冲突概率,较低,;,(,全相
45、联映像,x,直接映像,),地址变换,查表速度,最快,、成本,较低,比较,目录表,相应组所有行,,,命中时,主存地址的,区内块号,即为变换后的组号、组内各块,比较结果的编码,即为组内块号;,72,查表,区域,=?,1,=?,1,1,不命中,的处理,块内地址,t,主存地址,:,区内块号,g,区号,r,块内地址,t,组内块号,Cache,地址,:,组号,组,0,组,g,1 r,有效位,块标记,有效位,块标记,1 h,编码器,命中时,s,g,74,58,例,3,:,CPU,支持最大主存容量,1MB,、按字节编址,块大小,16B,,,Cache,容量,8KB,。采用,4,路组相联映像方式时,,主存及,C
46、ache,地址格式及参数?目录表中块标记位数?,若目录表项为,,,CPU,访存地址为,36454H,时,则可能命中的,Cache,块号?命中时的目录表项?,解:,主存地址,20,位、,Cache,地址,13,位,其中块内地址,4,位,,9,位,7,位,4,位,4,位,13-2-4,位,20-7-4,位,块内地址,区号,区内块号,块内地址,组内块号,主存地址格式,Cache,地址格式,组号,2,位,7,位,4,路组相联,组相联映像,目录表块标记位数,=,位;,9,可能命中的,Cache,块号,=,100,0101,XX,,即组内任意块,,主存地址,=(,0011,0110,0,100,0101,
47、0100),2,,,命中时目录表项,=,59,2,、替换算法,*实现功能:,Cache,无空位置时,,如何选择,被替换的块,?,*性能指标:,对命中率,H,的,影响程度,、替换算法的,实现开销,*常见替换算法:,RAND,算法,随机确定的,块作为被替换块;,FIFO,算法,最早,调入,的块作为,被替换,块;,整个,Cache,需,1,个,随机数发生器,H,是,随机,的,65,LRU,算法,近期,最少使用,的,块作为被替换块;,各个块的计数器:,通常设置在目录表中,LRU,位,有效位,块标志,目录表项,60,虚拟存储器,一、虚拟存储器概念,61,1,、虚拟存储器概念,*定义:,程序执行时,,,地
48、址空间,=,程序地址空间,的,“,存储器,”,CPU,虚拟存储器,程序逻辑地址,*相关术语:,虚拟地址,(,虚地址,),程序的逻辑地址;,物理地址,(,实地址,),CPU,访问时的主存地址;,虚拟地址空间,程序逻辑地址构成的空间,*组成:,由主存及辅存构成,、,按程序逻辑地址访问,的存储层次,CPU,程序逻辑,地址,虚拟存储器,辅存,主存,辅助,软硬件,程序,执行,所需,程序,存储,所需,虚存空间,=,程序空间,所需,62,2,、虚拟存储器的工作原理,虚拟,存储器,主存,辅存,辅助,软硬件,数据,虚拟,地址,命令,*虚拟存储器实质:,是,面向程序,的,存储器模型,,,即,面向程序,的,主存,-
49、辅存层次管理机构,!,*地址空间种类:,*工作原理:,地址变换、访问实现、保持一致性;,虚存,-,主存,地址映像及变换,成功时,系统异常,不成功时,虚存,-,辅存,地址映像及变换,不成功时,成功时,主存存储管理,主存空间,辅存空间,虚存空间,65,63,二、虚拟存储器的存储管理,*虚存,(,辅存,)-,主存信息交换单位种类:,程序段,程序模块化结构的基本空间单位,(,大小可变,),,,信息页,大小固定,的信息空间单位,常称页或页面,页类似于,Cache,块,页大小一般有几,KB,*虚存空间管理方式:,(,又称为虚存管理,),段式管理,以,程序段,为交换单位的虚存,-,主存管理方式,页式管理,
50、以,信息页,为交换单位的虚储,-,主存管理方式,段页式管理,段式,+,页式的虚存,-,主存管理方式,(,以,信息页,为单位,),1,、虚拟存储器的管理方式,64,(1),段式存储管理,*管理方法:,虚存空间,按程序模块化结构划分成若干,程序段,(,大小可变,),,,主存空间,以程序段为单位,分配给虚存使用;,段表,装入位 段起始地址 段长,1 0K 1K,0,4K,1 4K 2K,段号,0,1,2,虚地址,实地址,段号,段内地址,物理地址,段表,基址,段表,(,主存中,),装入位 段首址 段长,1,xx,段号,0,i,+,段首址,+,1K,长度,程序逻辑空间,4K,段,1,2K,段,0,段,2






