1、1,第三章 存储系统,2,3.1 存储系统概述,一、存储器分类,1、按存储介质分类存储介质必须有区别明显的两个物理状态(表示0/1),*半导体存储器:如内存;*磁性材料存储器:如磁盘、磁带;*光介质存储器:如光盘,2、按存取方式及功能分类,*顺序存取存储器(SAM):按记录块为单位进行编址,存取时间与读/写头到访问地址的相对位置有关;*随机存取存储器(RAM):按存储字为单位进行编址,存取时间与访问的地址无关(时间固定);,3,3、按在计算机中的作用分类,*直接存取存储器(DAM):信息存取区域定位与RAM类似,区域内操作与SAM类似;,*只读存储器(ROM):操作方式为只能取、不能存可由RA
2、M或DAM构成,信息读取的定位由存储器结构决定,*主存储器(MM):可直接与CPU交换信息的MEM构成MOS型半导体、动态RAM和ROM*辅助存储器(AM):主存的后援MEM构成磁性/光介质材料、SAM/DAM,*高速缓冲存储器(Cache):CPU与主存间的缓冲MEM构成MOS型半导体、静态RAM,*控制存储器(CM):CPU内部存放微程序的MEM构成MOS型半导体、ROM,4,二、存储器的主要性能指标,*容量(S):能存储的二进制信息总量,常以字节(B)为单位,*速度(B):常用带宽、存取时间或存取周期表示存取时间(TA)指MEM从收到命令到结果输出所需时间;存取周期(TM)指连续访存的最
3、小间隔时间,TM=TA+T恢复,*价格:常用总价格C或每位价格c表示,c=C/S。,带宽(BM)指单位时间内MEM最多可读写的二进制位数;BM=W/TM,其中W为一次读写的数据宽度,常以bps为单位,5,三、层次结构存储系统,1、层次结构的引入,*程序访问局部性规律:程序执行时,指令和数据呈现的相对簇聚特性。,*用户需求矛盾的解决方案:,*用户需求的矛盾:需求大容量、高速度、低价格矛盾,时间局部性被访问过的信息,可能很快被再次访问;空间局部性被访问信息的相邻信息,可能很快被访问,高速度、大容量、低价格,近期常用数据放在“前方”MEM(快而小)中;近期不用数据放在“后方”MEM(慢而大)中。,6
4、,2、层次结构的存储系统 (1)层次存储系统组成,*思想:用多种类型MEM构成前方-后方的层次结构;,各层MEM之间信息传递是“透明”的,前方MEM中信息为后方MEM中信息的副本;,M1,M2,Mn,(2)常见的存储系统层次结构围绕主存的层次结构一般为“Cache-主存-辅存”三种MEM构成的两个存储层次,7,*“Cache-主存”存储层次: -设置高速缓冲存储器目标解决主存速度问题(Cache的速度,主存的容量),*“主存-辅存”存储层次:目标解决主存容量问题(主存的速度,辅存的容量)可能存在:(执行的)程序空间主存空间,8,(3)层次存储系统的工作方式*程序执行需求:即将执行的指令和数据存
5、放在主存中,*层次存储系统的工作方式:,虚拟存储器,主存,9,3.2 半导体存储器基础,*静态RAM用触发器存储信息,长时间不访问及信息读出后信息值(状态)保持不变; *动态RAM用电容存储信息,长时间不访问及信息读出后信息值(状态)被破坏,需及时恢复信息值(称为刷新及再生)。,10,1、SRAM存储元的组成原理存储元RAM中存储1位二进制信息的电路;,一、静态RAM(Static RAM,SRAM),保持使W=V地T5和T6截止T1、T2状态保持不变;,*6管MOS静态存储元工作原理:,11,2、SRAM芯片的组成原理,(1)存储芯片基本组成主要由存储阵列、地址译码器、I/O电路、控制电路等
6、组成,*存储阵列:不同的存储单元有一维和二维两种组织方式,正方形阵列减少信号延迟可减少连线长度 ,12,*地址译码器:有一维、二维两种译码方式 译码器输出线数2M根 22M/2根,*驱动器:X译码器每个输出需控制同一行各存储元的字选线设置驱动器增加驱动能力I/O电路输出时需驱动总线信号(负载大),常见译码方式二维译码方式 同一列存储元共用位选择线,13,*片选与控制电路:片选MEM常由多个芯片组成,读/写操作常针对某个芯片,14,(2)SAM芯片参数与结构,*芯片相关参数:存储阵列容量,数据引脚数量 地址引脚数量,练习1某SRAM芯片容量为4K位,数据引脚(双向)为8根,地址引脚为多少根?若数
7、据引脚改为32根,地址引脚为多少根?,15,*SRAM芯片结构组织: -以Intel 2114 SRAM芯片为例参数容量=1K4位,数据引脚=4根(双向),地址引脚=10根,结构正方形存储阵列(6464);I/O电路;二维译码,16,3、SRAM芯片的读写时序,*读周期时序: (存储器对外部信号的时序要求),17,*写周期时序:,18,二、动态存储器(Dynamic RAM,DRAM),1、动态RAM存储元工作原理,写入所写数据加到WD上;打开T3对CS充电/放电,保持断开T3无放电回路CS可保存信息(会缓慢泄漏)需定时刷新CS中信息,读出在上加正脉冲对CD预充电;打开T2读RD上电压变化(非
8、破坏性读),刷新先读出数据、再写入所读数据,*3管MOS式动态存储元工作原理:,动态RAM目标:降低功耗、节约成本,19,*单管MOS式动态存储元工作原理:,写入所写数据加到D上,打开T1对CS充电或放电;,保持断开T1无放电回路信息存储在CS中(会缓慢泄漏);,读出在D上加正脉冲对CD预充电,打开T1读D上电压变化(破坏性读)CS得到充电,刷新步骤与读操作完全相同。,立即用所读数据对CS重新写入,称为再生,20,2、DRAM芯片的基本组成,21,(2)单管MOS式DRAM芯片的组成,*基本结构:通常采用地址分两次传送方式组织增设地址锁存器、时序控制电路,再生电路,*芯片操作:读、写、刷新(行
9、刷新方式无列地址),22,(3)DRAM芯片组成示例*Intel 4116芯片:单管MOS存储元、地址分两次传送参数容量=16K1位;地址引脚=14/2=7根;数据引脚=2根(单向DIN/DOUT、共1位宽度),结构2个64128存储阵列,时钟发生器串联,23,3、DRAM芯片的操作时序,*读周期时序:,24,*刷新周期时序:与读周期类似,区别在于CAS在整个操作过程中无效行刷新时不需要列地址,25,4、DRAM芯片的刷新*刷新周期:同一存储元连续两次刷新的最大间隔;与DRAM存储元材料及芯片组成有关,*刷新方法:每个刷新周期内,循环进行所有行的行刷新,(1)DRAM芯片刷新方式通常有集中式、
10、分散式、异步式三种方式,*集中式刷新:将所有行刷新集中在刷新周期的后部,特点存在“死区”(不能进行读/写操作的时间段),26,*分散式刷新:将行刷新分散在每个存取周期中,特点避免了“死区”,增加了存取时间(1倍),*异步式刷新:将行刷新均匀分布在刷新周期中,特点“死区”可忽略,支持固有的存取周期 最常用,27,(2)DRAM芯片刷新实现按约定的刷新方式,由专用电路定时产生行刷新命令,*DRAM芯片的刷新电路:,固化了刷新方式,*刷新电路在计算机的位置:通常独立存在于DRAM芯片/模块之外 DRAM控制器,产生行刷新地址,28,5、MOS型SRAM与DRAM芯片比较,*DRAM芯片的优点:,*D
11、RAM芯片的缺点:DRAM速度远低于SRAM 使用动态元件(电容)所致,*RAM芯片应用:SRAM芯片常用来构成高速度、小容量MEM,如CacheDRAM芯片常用来构成大容量MEM,如主存,DRAM集成度远高于SRAM; 常采用单管MOS存储元DRAM地址引脚是SRAM的一半;常采用地址分两次传送方式DRAM功耗约为SRAM的1/4; 采用单管MOS存储元所致DRAM成本远低于SRAM,29,三、只读存储器(Read only Memory,R0M),*ROM:信息注入MEM后不能再改变,它具有非易失性,*半导体ROM:具有非易失性的半导体MEM,如EPROM、FLASH等,*ROM芯片组成:
12、与SRAM类似,区别在于存储元的实现及操作,1、掩模ROM(MROM)*特征:用户不可修改信息;*存储元状态:用MOS管的有/无表示“1”/“0”;,*数据读出:字选线加电压时,位线电压为所选存储元的数据,30,2、可编程ROM(PROM)*特征:用户可一次性修改信息(电写入);*存储元状态:用二极管/熔丝的通/断表示“1”/“0”;,*数据写入:字线X加电压,若写0 VD=V地熔丝熔断,若写1 VD=V中熔丝不断;,*数据读出:字线X加电压、VD=V中,检测VD变化可读出数据,31,3、可擦除可编程ROM(EPROM)*特征:用户可多次修改信息(电写入、光擦除);*存储元状态:常用浮栅雪崩注
13、入MOS管(即FAMOS管)的浮栅Gf是/否带电荷表示“1”/“0”;,32,4、电可擦除可编程ROM(E2PROM)*特征:用户可多次修改信息(电写入、电擦除);*存储元状态:用浮栅隧道氧 化层MOS管(即Flotox管)的浮栅 是/否带电荷表示“1”/“0”;,33,5、闪速存储器(FLASH)*特征:用户可多次修改信息(电写入、电擦除);*存储元状态:与叠栅EPROM类似,但氧化层更薄,操作速度更快,34,3.3 主存储器,一、主存储器的组成,*主存储器相关概念:主存容量=主存单元长度主存单元个数,35,*应用对主存空间的需求:,*主存储器的组成:由ROM、RAM芯片组成的特定存储字长的
14、存储器;ROM空间大小固定、RAM空间大小可选配(最大空间),36,二、主存储器的逻辑设计,存储器容量=存储字长存储字数=存储单元长度存储单元个数,*主存逻辑设计:使用ROM、SRAM或DRAM芯片进行容量扩展,实现主存单元长度和主存单元个数。,*存储器容量扩展方法:位扩展法、字扩展法、字位扩展法,1、位扩展法 (又称并联扩展)*目的:扩展存储器的存储字长,*芯片连接特征:各芯片数据引脚连接不同,其余引脚连接相同,37,例1用1K1位SRAM芯片构成1K4位存储模块,38,2、字扩展法 (又称串联扩展)*目的:扩展存储器的存储字数,例2用1K4位SRAM芯片构成2K4位存储模块,解:芯片数量,
15、各芯片地址范围存储模块有log2(2K)=11位地址,,共需(2K4b)(1K4b)=2片;,各芯片片选有效逻辑0#、1#芯片分别为A10=0、A10=1,练习1用1M4位SRAM芯片构成4M4位存储模块,39,40,3、字位扩展法*目的:同时扩展存储器的存储字长和存储字数,例3用1K4位SRAM芯片构成2K8位存储模块,解:芯片数量,共需(2K8b)(1K4b)=4片;,连接图,各芯片地址范围存储模块有log2(2K)=11位地址,,41,练习2用1K4位SRAM芯片构成4K8位存储模块,例4用1K4位ROM、1K8位SRAM芯片构成4K8位存储模块,其中前1KB空间为只读空间,解:芯片数量
16、,共需ROM 2片、SRAM 3片;,各芯片地址范围模块有log2(4K)=12位地址芯片有10位地址,连接图,42,三、主存储器与CPU的连接,简化复杂度重点讨论SRAM主存与CPU的连接,43,(1)数据线的连接,*要求:主存数据线数CPU数据引脚数,*连接: CPU数据引脚与主存数据线一一对应连接,(2)地址线的连接,*要求:实际的主存地址空间CPU支持的主存地址空间,*连接:,CPU地址引脚低位与主存地址线一一对应连接; CPU地址引脚高位与主存片选线按一定逻辑连接,44,CPU读/写命令线与主存读/写线直接连接; CPU其余命令线与主存片选线按一定逻辑连接,(4)片选线的连接*有效逻
17、辑:对MEM操作、操作地址在主存地址范围内时,*连接:,45,三、提高访存速度的措施,*CPU的访存特征:一次访存的信息常为多个存储字,多次访存的地址常为连续的;,1、多模块存储器 -多体存储器,46,2、高性能存储器,(1)EDO DRAM(Extended Data Output DRAM,扩展数据输出DRAM)*提高性能思路:同时读出并缓冲一行信息,减小平均TM,*实现原理:用SRAM保存上次读操作的一行信息,当前读操作的行地址若与上次读操作相同,则直接从SRAM中取出信息,(2)SDRAM(Synchronous DRAM,同步DRAM),MEM从所接收地址开始,连续读/写多个存储字(
18、内部计数器产生各存储字地址),减少了多个地址连续数据传送的平均TM,(3)DDR SDRAM(Double Data Rate SDRAM,双数据速率DRAM),47,3、双端口存储器 -同时支持两个操作,*结构:2套译码+I/O+读写电路,1个存储阵列+判断逻辑电路,48,3.4 高速缓冲存储器,一、Cache的基本原理,*Cache的功能:是主存的快速缓冲器,*Cache的性能:,命中率(H)HC=NC/(NC+NM)其中,NC、NMCPU访存在Cache、主存中的命中次数,平均访问时间TA=HCTCache+(1-HC)TMem,49,1、Cache的存储空间管理,(1)Cache与主存
19、的信息交换单位*目标:尽量减小平均访问时间TA,*减小TA的方法分析:提高HC,程序访问局部性,减小TMem,相邻信息一起在Cache中,*Cache与主存的信息交换单位:字块(又称块或行),50,(2)Cache的存储空间管理,*Cache阵列的编址单位:,与主存相同(字或字节);,*Cache与主存间的信息交换管理:交换单位为块,主存与Cache均划分成若干大小相同的块;,Cache块存放主存块信息时,标志对应主存块的块号;,0 *,1 i,51,2、Cache的基本工作原理,*完成访问步骤:,访问Cache阵列,地址变换(主存地址Cache地址);,访问Cache阵列;,保持一致性(Ca
20、che与主存之间),*实现要求:全部工作均由硬件完成(对程序员透明)!,*相关技术映像规则、替换算法、写策略;,52,3、Cache的结构与组成,*存储体:由SRAM构成,*地址映像及变换机构:由目录表、比较器等组成;目录表行数=Cache块数,表项=有效位+块标记+,地址映像机构决定查目录表的哪些行及块标记组成影响变换的性能及成本,地址变换机构查表并比较,命中时直接形成Cache地址,不命中时调入块或替换块后再形成,53,*控制器:Cache工作过程中所有的信号产生及时序控制,i,*替换机构:按替换算法选择某被替换块,再块写回及块调入,54,二、Cache的相关技术,1、地址映像及变换*实现
21、功能:某主存块可存放到Cache中哪些块位置?,(1)全相联地址映像及变换*映像规则:主存块i可映射到Cache的任意一个块;,*性能指标:调入块时的块冲突概率、地址变换的速度与成本,55,*地址变换方法:,比较目录表所有行,命中时行号即为变换后的块号;,*特征:块映像块冲突概率最低;地址变换速度最慢、或成本最高,56,例1:CPU支持最大主存容量1MB、按字节编址,块大小16B,Cache容量为8KB。全相联映像方式时,主存地址格式及参数?Cache地址格式及参数?目录表行数?块标记位数? 若目录表项为,CPU访问36454H主存单元时,则Cache命中时的目录表项?,解:主存地址格式:,主
22、存地址长度=log2(1MB/1B)=log2220=20位,块内地址长度=log2(16B/1B)=log216=4位,,Cache有 个块,Cache块号位数= 位,,目录表行数= 行,块标记位数= 位;,Cache命中时目录表项=,57,(2)直接地址映像及变换*映像规则:主存块i可映射到Cache的块j=(i mod G);,58,*地址变换方法:,比较目录表相应行,命中时主存地址的区内块号即为变换后的块号;,*特征:块映像块冲突概率最高;地址变换速度最快、成本最低,59,例2:CPU支持最大主存容量1MB、按字节编址,块大小16B,Cache容量为8KB。直接映像方式时, 主存及Ca
23、che地址格式及参数? 目录表行数?块标记位数? 若目录表项为,CPU访存地址为36454H时,则可能命中的Cache块号?命中时的目录表项?,解:主存地址20位、Cache地址13位,其中块内地址4位,,目录表行数= 行,块标记位数= 位;,可能命中的Cache块号=0 0100 0101,,命中时目录表项=,60,(3)组相联地址映像及变换 -直接映像与全相联映像的折中, n路组相联映像组内块数为n的组相联映像,*映像规则:将Cache中块分组,每组为n个块(共G/n个组),主存块i可映像到Cache的第j组(j=i mod G/n)中的任意块。,61,*目录表的组织:种类每块一行式、每组
24、一行式;,性能每组一行式较优(定位方便、并行查表),62,*地址变换方法:,*特征:块映像块冲突概率较低; (全相联映像x直接映像)地址变换查表速度最快、成本较低,比较目录表相应组所有行,命中时主存地址的区内块号即为变换后的组号、组内各块比较结果的编码即为组内块号;,63,例3:CPU支持最大主存容量1MB、按字节编址,块大小16B,Cache容量8KB。采用4路组相联映像方式时, 主存及Cache地址格式及参数? 目录表中块标记位数? 若目录表项为,CPU访存地址为36454H时,则可能命中的Cache块号?命中时的目录表项?,解:主存地址20位、Cache地址13位,其中块内地址4位,,目
25、录表块标记位数= 位;,9,可能命中的Cache块号=100 0101XX,即组内任意块,,命中时目录表项=,64,2、替换算法*实现功能:Cache无空位置时,如何选择 被替换的块?,*性能指标:对命中率H的影响程度、替换算法的实现开销,*常见替换算法:,RAND算法随机确定的块作为被替换块;,FIFO算法最早调入的块作为被替换块;,整个Cache需1个随机数发生器,H是随机的,LRU算法近期最少使用的块作为被替换块;,各个块的计数器:通常设置在目录表中,65,虚拟存储器,一、虚拟存储器概念,66,1、虚拟存储器概念,*定义:程序执行时,地址空间=程序地址空间的“存储器”,*相关术语:虚拟地
26、址(虚地址)程序的逻辑地址;物理地址(实地址)CPU访问时的主存地址;虚拟地址空间程序逻辑地址构成的空间,*组成:由主存及辅存构成、按程序逻辑地址访问的存储层次,67,2、虚拟存储器的工作原理,*虚拟存储器实质:是面向程序的存储器模型,即面向程序的主存-辅存层次管理机构!,*地址空间种类:,*工作原理:地址变换、访问实现、保持一致性;,68,二、虚拟存储器的存储管理,*虚存(辅存)-主存信息交换单位种类:程序段程序模块化结构的基本空间单位(大小可变),,信息页大小固定的信息空间单位,常称页或页面页类似于Cache块,页大小一般有几KB,*虚存空间管理方式: (又称为虚存管理)段式管理以程序段为
27、交换单位的虚存-主存管理方式页式管理 以信息页为交换单位的虚储-主存管理方式,段页式管理 段式+页式的虚存-主存管理方式(以信息页为单位),1、虚拟存储器的管理方式,69,(1)段式存储管理,*管理方法:虚存空间按程序模块化结构划分成若干程序段(大小可变),主存空间以程序段为单位分配给虚存使用;,*虚-实地址变换方法:一次查表,管理表格一个段表(行数=程序的段数,2段号位数),70,(2)页式存储管理,*管理方法:虚存空间和主存空间按信息页(大小固定)划分成若干逻辑页和物理页,主存空间以信息页为单位分配给虚存使用,管理表格一个页表,*虚-实地址变换方法:一次查表,71,(3)段页式存储管理,*管理方法:虚存空间先分段、再分页,主存空间只分页,主存空间以页为单位分配给程序用;,管理表格一个段表一组页表,*虚-实地址变换方法:两次查表,72,2、虚拟存储器的种类通常按虚存管理方式分类。,*段式虚拟存储器: 采用段式虚存管理方式信息交换单位为段,用一个段表管理,*页式虚拟存储器: 采用页式虚存管理方式信息交换单位为页,用一个页表管理,*段页式虚拟存储器: 采用段页式虚存管理方式信息交换单位为页,用一个段表及一组页表管理,特点便于程序共享与保护,主存利用率不高(碎片),特点主存利用率较高,不利于程序共享与保护(段边界),特点同时具有段式及页式的优点,地址变换需2次查表,