《主存储器课件》由会员分享,可在线阅读,更多相关《主存储器课件(74页珍藏版)》请在金锄头文库上搜索。
1、计算机组成原理计算机组成原理第第4章章 主存储器主存储器主存储器课件主存储器课件1. 存储器容量扩展存储器容量扩展n位扩展位扩展n字扩展字扩展n字位扩展字位扩展2. 存储控制存储控制n集中刷新集中刷新n分散刷新分散刷新n异步刷新异步刷新3. 存储校验线路存储校验线路4.8 半导体存储器的组成与控制半导体存储器的组成与控制复习(一)复习(一)vRAM存储器芯片总结存储器芯片总结 RAM存储器芯片有多种型号,每一存储器芯片有多种型号,每一RAM存储器芯存储器芯片具有:片具有:n地址线地址线Ai:引脚数与存储芯片的单元数有关;:引脚数与存储芯片的单元数有关;n数据线数据线Di:引脚数与存储芯片的字长
2、有关;:引脚数与存储芯片的字长有关;n片选信号片选信号CS:只有:只有CS有效时,芯片才被选中,有效时,芯片才被选中,所连地址线才有效,才能进行读所连地址线才有效,才能进行读/写操作。写操作。n读读/写信号写信号WE:为:为0,控制写入电路进行写入;,控制写入电路进行写入;为为1,控制读出电路进行读出。,控制读出电路进行读出。n电源线、地线电源线、地线复习(二)复习(二)例例1:某:某RAM芯片,其存储容量为芯片,其存储容量为16K8位,问:位,问:(1)该芯片引出线的最小数目应为多少?)该芯片引出线的最小数目应为多少?(2)存储器芯片的地址范围是什么?)存储器芯片的地址范围是什么?解:解:(
3、1)16K=214,所以地址线,所以地址线14根;字长根;字长8位,所以数据线位,所以数据线8根。根。14 + 8 + 1 + 1 + 1 + 1 = 26地址线地址线 数据线数据线 片选片选 读读/写写 电源线电源线 地线地线(2)存储器芯片的)存储器芯片的地址范围地址范围为为0000H3FFFH存储器芯片的地址范围:存储器芯片的地址范围:地址线从全地址线从全“0”到全到全“1”的所有编码的所有编码复习(三)复习(三)vSRAM芯片芯片2114(1K4位)位)外特性:外特性:地址端:地址端:21142114(1K41K4)1 19 910101818A6 A5 A4 A3 A0 A1 A2
4、CS GNDA6 A5 A4 A3 A0 A1 A2 CS GNDVcc A7 A8 A9 D0 D1 D2 D3 WEVcc A7 A8 A9 D0 D1 D2 D3 WEA9A9A0A0(入)(入)数据端:数据端: D3D3D0D0(入(入/ /出)出)控制端:控制端:片选片选CSCS= 0 = 0 选中芯片选中芯片= 1 = 1 未选中芯片未选中芯片写使能写使能WEWE= 0 = 0 写写= 1 = 1 读读电源、地电源、地1、存储器容量扩展、存储器容量扩展位位扩展扩展 扩展每个存储单元的位数扩展每个存储单元的位数 (扩展扩展宽度宽度)字字扩展扩展 扩展存储单元的个数扩展存储单元的个数
5、(扩展扩展长度长度)字位字位扩展扩展 两者的综合两者的综合 (扩展扩展宽度和长度宽度和长度) 假设扩展同种芯片,则需要的芯片假设扩展同种芯片,则需要的芯片 : 总片数总容量总片数总容量/ /(容量(容量/ /片)片) 位扩展位扩展字扩展字扩展字位扩展字位扩展1、存储器容量扩展、存储器容量扩展位扩展位扩展例例2 使用使用8K1位位RAM芯片芯片组成成8K8位的存位的存储器,画出器,画出逻辑框框图。分析:分析:芯片位数小于存芯片位数小于存储器所要求的位数,需器所要求的位数,需进行位行位扩展。展。8个芯片的关系是平等的,同个芯片的关系是平等的,同时工作,并工作,并联的,的,对应的地址一一相的地址一一
6、相连。详细的的连接接见下下图:I/OI/OI/OI/OI/OI/OCS8K1位位RAM芯片芯片组成成8K8位的存位的存储器器D0D7数数据据线线 I/O8K1I/OWEA0A12地地址址线线每片一位组成一个字节每片一位组成一个字节位位扩展展总结:v当构成内存的存储当构成内存的存储芯片的字长芯片的字长 内存单元的字长内存单元的字长时,时,就要进行就要进行位扩展位扩展,使每个单元的字长满足要求。,使每个单元的字长满足要求。v位扩展位扩展方法方法: 将每片的地址线、片选将每片的地址线、片选CS、读写控制线、读写控制线并联并联,数据,数据线线分别引出分别引出。v位扩展位扩展特点特点: 存储器的存储器的
7、单元数不变,位数增加单元数不变,位数增加。1、存储器容量扩展、存储器容量扩展字扩展字扩展例例3 使用使用16K8位的位的RAM芯片芯片组成一个成一个64K8位的存位的存储器。器。分析:分析:芯片芯片的字数不够,的字数不够,需需进行行字扩展。字扩展。共需芯片数目是共需芯片数目是64K16K4。将。将4片片RAM的地址的地址线、数据线、读写线一一对应并联。线、数据线、读写线一一对应并联。 出现地址线不够问题,如何解决?出现地址线不够问题,如何解决? 可以用高可以用高2位位地址作为选片端。地址作为选片端。详细的的连接接见下下图: CSWE CSWE CSWE CSWE16K8位的位的RAM芯片芯片组
8、成一个成一个64K8位的存位的存储器器地地址址端端地地址址端端 CSWE地地址址端端地地址址端端10字字扩展展总结:v特点特点: 地址空间的扩展。芯片每个单元中的字长满足,地址空间的扩展。芯片每个单元中的字长满足,但但单元数不满足单元数不满足。v扩展原则:扩展原则: 每个芯片的地址线、数据线、读写控制线每个芯片的地址线、数据线、读写控制线并并联联,仅片选端,仅片选端分别引出分别引出,以实现每个芯片占据不,以实现每个芯片占据不同的地址范围。同的地址范围。1、存储器容量扩展、存储器容量扩展字位扩展字位扩展v实际存储器往往需要在字向、位向两个方向同时实际存储器往往需要在字向、位向两个方向同时扩展。扩
9、展。v一个存储器的容量为一个存储器的容量为MN位,若使用位,若使用LK位的存位的存储芯片,则该存储器共需的芯片个数为:储芯片,则该存储器共需的芯片个数为:M NL Kv需解决:需解决: 芯片的选用、芯片的选用、地址分配与片选逻辑、地址分配与片选逻辑、信号线的连接。信号线的连接。要求:要求:1、确定整个存储器所需的芯片数及芯片的分、确定整个存储器所需的芯片数及芯片的分组情况组情况 ;2、确定存储器及每组芯片的地址范围;、确定存储器及每组芯片的地址范围;3、说明地址线的分配方法,并画出存储器的、说明地址线的分配方法,并画出存储器的结构图。结构图。2114(1K4)SRAM芯片芯片组成容量成容量为4
10、K8的存的存储器器例例4用用2114(1K4)SRAM芯片组成容量为芯片组成容量为4K8的存储器。的存储器。2114(1K4)SRAM芯片芯片组成容量成容量为4K8的存的存储器器1.计算芯片数计算芯片数先扩展位数,再扩展单元数。先扩展位数,再扩展单元数。 2片片1K4 1K8 4组组1K8 4K8 8片片 分析:分析:整个存储器所需要芯片数整个存储器所需要芯片数=(48)/ (14)=8片片每组需每组需2114(1K4)SRAM 芯片芯片2片片,共,共4组组。位扩展位扩展2片芯片片芯片CS连在一起,连在一起,4组字扩展组字扩展CS要分开。要分开。2114(1K4)SRAM芯片芯片组成容量成容量
11、为4K8的存的存储器器存储器寻址逻辑存储器寻址逻辑2.地址分配与片选逻辑地址分配与片选逻辑芯片内的寻址系统芯片内的寻址系统(二级译码二级译码)芯片外的芯片外的地址分配地址分配与与片选逻辑片选逻辑为芯片分配哪几位地址,为芯片分配哪几位地址,以便寻找片内的存储单元以便寻找片内的存储单元由哪几位地址形成芯由哪几位地址形成芯片选择逻辑,以便寻片选择逻辑,以便寻找芯片找芯片存储空间分配:存储空间分配:4KB存储器在存储器在16位地址空间位地址空间(64KB)中占据任意)中占据任意连续区间。连续区间。2114(1K4)SRAM芯片芯片组成容量成容量为4K8的存的存储器器A11 A10 A9 A00 0 0
12、 00 0 1 10 1 1 11 0 1 10 1 0 01 0 0 01 1 0 01 1 1 1片选片选 芯片地址芯片地址 64KB1K41K41K41K41K41K41K41K4需需12位地位地址寻址:址寻址:4KBA11A02114芯片为芯片为1K4位,片内寻址需要位,片内寻址需要10根地址线,为根地址线,为A0A9低位地址分配给芯片,高位地址形成片选逻辑。低位地址分配给芯片,高位地址形成片选逻辑。 芯片芯片 芯片地址芯片地址 片选信号片选信号 片选逻辑片选逻辑1K1K1K1KA9A0A9A0A9A0A9A0CS0CS1CS2CS3A11A10A11A10A11A10A11A10整个
13、存储器的地址范围:整个存储器的地址范围:000HFFFH共分为共分为4组,每组的地址范围为:组,每组的地址范围为:第一组:第一组:000H3FFH第二组:第二组:400H7FFH第三组:第三组:800HBFFH第四组:第四组:C00HFFFH2114(1K4)SRAM芯片芯片组成容量成容量为4K8的存的存储器器2114(1K4)SRAM芯片芯片组成容量成容量为4K8的存的存储器器3.连接方式连接方式(1)扩展位数)扩展位数(2)扩展单元数)扩展单元数(3)连接控制线)连接控制线 (4)形成片选逻辑电路)形成片选逻辑电路11100100v例5:某半某半导体存体存储器器总容量容量4K84K8位。其
14、位。其中固化区中固化区2K2K字字节,选用用EPROMEPROM芯片芯片27162716(2K82K8位);工作区位);工作区2K2K字字节,选用用SRAMSRAM芯片芯片21142114(1K4/1K4/片)。地址片)。地址总线A A1515A A0 0(低),双向数据(低),双向数据总线D D7 7D D0 0(低)。(低)。2K8 1K4 1K4 1K4 1K4000007FF08000BFF0C000FFFa.a.a.a.确定芯片:确定芯片:确定芯片:确定芯片:1 1 1 1块块块块2716271627162716,4 4 4 4块块块块2114211421142114,如图组织逻辑地
15、址,如图组织逻辑地址,如图组织逻辑地址,如图组织逻辑地址b.b.b.b.位扩展就是并联多个芯片位扩展就是并联多个芯片位扩展就是并联多个芯片位扩展就是并联多个芯片的地址线,可以视为多组的地址线,可以视为多组的地址线,可以视为多组的地址线,可以视为多组8 8 8 8位芯片位芯片位芯片位芯片c.c.c.c.字扩展就是确定片选信号,字扩展就是确定片选信号,字扩展就是确定片选信号,字扩展就是确定片选信号,根据地址线总宽度和地址根据地址线总宽度和地址根据地址线总宽度和地址根据地址线总宽度和地址分配情况,确定片选信号分配情况,确定片选信号分配情况,确定片选信号分配情况,确定片选信号产生逻辑产生逻辑产生逻辑产
16、生逻辑 芯片芯片芯片芯片1 1 1 1:/A11/A11/A11/A11 芯片芯片芯片芯片2 2 2 2:A11A11A11A11/ / / /A10A10A10A10 芯片芯片芯片芯片3 3 3 3:A11A11A11A11A10A10A10A101K81K8设计目标:设计目标:4K8的地址空间的地址空间v片选信号的产生逻辑片选信号的产生逻辑寻找地址空间的寻找地址空间的特征值n4K4K空空间需需1212位地址,位地址,A A1515AA1212不用不用n芯片芯片1:000007FF,A A1010AA0 0全部占用为地址信号,全部占用为地址信号,A A1111始终为始终为0,此空间外地址的,
17、此空间外地址的A A1111必为必为1,故片选逻辑为,故片选逻辑为/A/A1111n芯片芯片2:08000BFF,A A9 9AA0 0全部占用为地址信号,全部占用为地址信号,A A1111始终为始终为1, A A1010始终为始终为0,故片选逻辑为,故片选逻辑为A A1111 /A/A1010n芯片芯片3:0C000FFF,A A9 9AA0 0全部占用为地址信号,全部占用为地址信号,A A1111始终为始终为1, A A1010始终为始终为1,故片选逻辑为,故片选逻辑为A A1111 AA1010字扩展:片选逻辑具有排他性,确保同字扩展:片选逻辑具有排他性,确保同字扩展:片选逻辑具有排他性
18、,确保同字扩展:片选逻辑具有排他性,确保同一时刻只有一个芯片在工作一时刻只有一个芯片在工作一时刻只有一个芯片在工作一时刻只有一个芯片在工作v设计结果n芯片芯片1 1使用使用1111位地址位地址A A1010A A0 0, A11A11用于用于用于用于片选片选片选片选n n芯片芯片芯片芯片2 2、3 3都使用并都使用并都使用并都使用并联的联的联的联的1010位地址位地址位地址位地址A A9 9A A0 0, 并将并将A11A11、A10A10用于片选用于片选用于片选用于片选2K8 1K4 1K4 1K4 1K4000007FF08000BFF0C000FFF2716211421142114211
19、4D74D30R/WCS0CS1CS2A11A11A10A11A10A100A90A90地址地址v芯片级存储器逻辑图应表示出:芯片级存储器逻辑图应表示出: n所用存储芯片。所用存储芯片。n各芯片的地址线。各芯片的地址线。n片选逻辑。片选逻辑。 注意,芯片的片选信号一般是注意,芯片的片选信号一般是/CS,即,即低电平有效,设计往往先从逻辑命题真写出逻辑式低电平有效,设计往往先从逻辑命题真写出逻辑式n数据线。数据总线是双向总线,数据通路宽度数据线。数据总线是双向总线,数据通路宽度8位。位。ROM芯片数据为芯片数据为单向输出。输出。RAM芯片为芯片为双向连接。连接。2114每片每片4位,分别连到数据
20、线位,分别连到数据线D7D4和和D3D0,两组,两组拼接为为8位。位。 n读读/写控制写控制R/W。2716没有没有R/W输入端,输入端,R/W信号信号只送至只送至RAM芯片芯片2114。 思考思考题:用用8K8位的位的ROM芯片和芯片和8K4位的位的RAM芯芯片组成存储器,按字节编址,其中片组成存储器,按字节编址,其中RAM的的地址为地址为2000H7FFFH,ROM的地址为的地址为C000HFFFFH,画出此存储器组成结构图,画出此存储器组成结构图及与及与CPU的连接图。的连接图。解题提示:解题提示:ROM芯片在联机工作中是只读不写,即单向输出,无芯片在联机工作中是只读不写,即单向输出,无
21、WE线。线。RAM芯片可读可写,双向连接。芯片可读可写,双向连接。思考思考题:1.计算容量和芯片数计算容量和芯片数高位地址高位地址A15A14A13为为001011,RAM的容量为的容量为8K3=24K,需要需要8K4位的位的RAM芯片芯片6片片。RAM区:地址范围展开为区:地址范围展开为 0010 0000 0000 0000 0111 1111 1111 1111RAM单个芯片的容量为单个芯片的容量为8K=2130111 1111 1111 11110010 0000 0000 0000ROM区:区: 末地址首地址末地址首地址=FFFFH C000H=3FFFH所以所以ROM的容量为的容量
22、为214=16K,需要,需要8K8位的位的ROM芯片芯片2片片。高位地址高位地址A15A14A13为为110111 ROM的地址范围展开为的地址范围展开为1111 1111 1111 11111100 0000 0000 0000CS1 A15A14A13CS3 A15A14A13CS6 A15A14A13CS7 A15A14A130 0 1 1 1思考思考题:A15A14A13A12A00 0 1 0 0 1 1 0 1 1 1 1 0 0 0低位地址分配给芯片,高位地址形成片选逻辑。低位地址分配给芯片,高位地址形成片选逻辑。选用选用3:8译码器(译码器(74LS138)40KB需需16位地
23、位地址寻址:址寻址:RAMA15A0ROM64KB8K88K48K48K48K48K48K48K80 1 00 1 00 1 10 1 11 1 11 1 1片选信号片选信号 片选逻辑片选逻辑CS2 A15A14A13存储系统存储系统vCPU与主存与主存n巨大的性能差距巨大的性能差距Memory Wallv提高访存效率的途径提高访存效率的途径n增强存储器的性能增强存储器的性能n增加存储器字长增加存储器字长n采用并行操作的双端口存储器采用并行操作的双端口存储器n每个周期存取多个字每个周期存取多个字nCPU与主存之间插入高速的与主存之间插入高速的Cache存储系统存储系统CACHE主存(内存)主存
24、(内存)辅存(外存)辅存(外存)v根据各种存储器的存储根据各种存储器的存储容量、存取速度和价格容量、存取速度和价格比的不同,将它们按照比的不同,将它们按照一定的体系结构组织起一定的体系结构组织起来,使所放的程序和数来,使所放的程序和数据按照一定的层次分布据按照一定的层次分布在各种存储器中。在各种存储器中。CPU Cache是为弥补主存速度的不足,在是为弥补主存速度的不足,在CPU 和主存和主存之间设置的高速、小容量的缓冲存储器。之间设置的高速、小容量的缓冲存储器。 组成组成: 小容量的小容量的SRAM和高速缓存控制器组成。和高速缓存控制器组成。 功能:将功能:将CPU当前快要用到的部分数据块由
25、主存当前快要用到的部分数据块由主存复制到容量小、速度快的复制到容量小、速度快的SRAM中,由中,由SRAM向向CPU直接提供它所需要的数据。直接提供它所需要的数据。高速缓冲存储器(高速缓冲存储器(CacheCache) 为了使为了使CPU不至因为等待存储器读写操作的完成不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速而无事可做,可以采取一些加速CPU和存储器之间和存储器之间有效传输的特殊措施。实现的途径有:有效传输的特殊措施。实现的途径有:1)主存储器采用更高速的技术来缩短存储器的读出时主存储器采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长;间,或加长存储器的字长;2)
26、采用并行操作的双端口存储器;采用并行操作的双端口存储器;3)在在CPU和和主主存存储储器器之之间间插插入入一一个个高高速速缓缓冲冲存存储储器器(cache),以缩短读出时间;以缩短读出时间;4)4)在每个存储器周期中存取几个字。在每个存储器周期中存取几个字。 高速缓冲存储器(高速缓冲存储器(CacheCache)图4 -39 CPU存储器系统的关系Cache的基本原理的基本原理v介于介于CPU与主存之间与主存之间v基于高速的基于高速的SRAMv小容量、高速度小容量、高速度v硬件实现的管理功能硬件实现的管理功能v对程序员透明对程序员透明可以集成到可以集成到CPU中中一种高速缓冲器,解决一种高速缓
27、冲器,解决CPU与主存之间速度不与主存之间速度不匹配的一项技术匹配的一项技术Cache的基本原理的基本原理v读操作读操作nCPU发送地址到发送地址到Cache/主存主存nCache命中则直接读出数据命中则直接读出数据n否则主存将数据送至否则主存将数据送至CPU和和Cache图4 -40 cache原理图主存主存 Cache以块为单位,即:复制目标存以块为单位,即:复制目标存取字在内的一块数据取字在内的一块数据目的:下次读取时可以直接访目的:下次读取时可以直接访问问CacheCache的基本原理的基本原理v程序局部性原理程序局部性原理CPU访问存储器时,无论是取指令还是存取数据,所访问的存储单元
28、都趋于聚集在一个较小的连续区域中。v两种不同类型的局部性两种不同类型的局部性n时间局部性(时间局部性(Temporal Locality):如果一个信息项正在):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。程序循环、被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。堆栈等是产生时间局部性的原因。n空间局部性(空间局部性(Spatial Locality):在最近的将来将用到的):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。信息很可能与现在正在使用的信息在空间地址上是临近的。指令的顺序执行、数组的连续存放等是产生空间局部
29、性的原指令的顺序执行、数组的连续存放等是产生空间局部性的原因。因。 Cache的基本原理的基本原理v帕雷托法则(Pareto principle),也称为),也称为80/20法则,此法则指在众多现象中,此法则指在众多现象中,80%的结果取决于的结果取决于20%的原因,而这一法则在很多方面被广泛的应的原因,而这一法则在很多方面被广泛的应用。用。 v在在计算机科学里,帕雷托法则可借由观察里,帕雷托法则可借由观察80%的的资源是由资源是由20%所操作使用,来最佳化资源。在所操作使用,来最佳化资源。在软件工程上,常有接近上,常有接近90%的的电脑程序执行次数花执行次数花费在费在10%的的程式源代码执行
30、。在执行。在图书资讯学里,里,一间图书馆的一间图书馆的20%馆藏是由馆藏是由80%的读者所借阅。的读者所借阅。 Cache的基本原理的基本原理vCache的组成的组成n基于基于SRAM的存储实体的存储实体n硬件控制逻辑硬件控制逻辑v存取单位存取单位nCPU与与Cache之间的数之间的数据交换以字为单位据交换以字为单位nCache与主存之间的数与主存之间的数据交换以块为单位,一据交换以块为单位,一个块由若干字组成,是个块由若干字组成,是定长的。定长的。图4 -40 cache原理图Cache的基本原理的基本原理v数据块数据块nCache与主存之间的数与主存之间的数据交换单位据交换单位n主存单元的
31、逻辑划分主存单元的逻辑划分n主存中的块对应主存中的块对应Cache中的行,二者长度相等中的行,二者长度相等且固定且固定一一对应n数据字地址被划分为数据字地址被划分为块号/行标记和和块/行内部地址两部分两部分Cache主存主存标记标记块块行行命中:地址的块号与某一命中:地址的块号与某一行的行标记匹配行的行标记匹配主存与主存与Cache的地址映射的地址映射Cache主存主存标记标记块块行行?图4 -40 cache原理图主存与主存与Cache的地址映射的地址映射v地址映射地址映射n建立主存数据块与建立主存数据块与Cache行,行,以及主存地址与以及主存地址与Cache存储存储单元的对应关系单元的对
32、应关系n利用硬件实现n对对CPU/程序员透明程序员透明v映射策略映射策略n全相联映射全相联映射n直接映射直接映射n组相联映射组相联映射主存与主存与Cache的地址映射的地址映射v全相联映射全相联映射n主存中的每一个字主存中的每一个字块映像到块映像到cache中中的任意一行的任意一行n块号即为行标记块号即为行标记主存与主存与Cache的地址映射的地址映射v全相联映射实例全相联映射实例 主存为1MB,划分2048块;Cache容量为8KB,全相联Cache如何设计?1.主存容量为主存容量为1MB,块内容量,块内容量512B。主存地址为。主存地址为20位;位;其中块地址其中块地址11位,块内地址位,
33、块内地址9位。位。2.Cache容量为容量为8KB,行容量为,行容量为512B,共,共16行。行内地行。行内地址址9位。位。3.Cache中各行标记为中各行标记为11位,对应主存中的数据块编号位,对应主存中的数据块编号(地址)。(地址)。主存与主存与Cache的地址映射的地址映射v全相联映射实例全相联映射实例4.读过程读过程nCPU给出给出20位地址。位地址。nCache将高将高11位的块地址与所有位的块地址与所有各行的标记进行比较。各行的标记进行比较。n命中则将低命中则将低9位的块(行)内地位的块(行)内地址送入址送入Cache完成访问。完成访问。n否则从主存读出数据并复制数否则从主存读出数
34、据并复制数据块到据块到Cache。图4 -40 cache原理图优点:存放位置灵活,命中率高优点:存放位置灵活,命中率高缺点:当缺点:当Cache或主存规模很大时,块地址比较过程非常复杂,或主存规模很大时,块地址比较过程非常复杂,硬件实现复杂度高。硬件实现复杂度高。结论:全相联映射仅适用于小容量的结论:全相联映射仅适用于小容量的Cache设计设计主存与主存与Cache的地址映射的地址映射v直接映射直接映射n主存中的某个字块只能缓主存中的某个字块只能缓存与存与Cache中的特定行中的特定行n利用利用模运算克服克服Cache与与主存的容量差距,主存的容量差距,模即为Cache中的行数v例如:例如:
35、n对于对于4行行Cache而言,主存而言,主存中的第中的第0、4、8、16块块均只能缓存于第均只能缓存于第0行行主存与主存与Cache的地址映射的地址映射v直接映射实例直接映射实例 主存为1MB,划分2048块;Cache容量为8KB,直接映射Cache如何设计?1.主存容量为主存容量为1MB,块内容量,块内容量512B。Cache容量容量为为8KB,行容量为,行容量为512B,共,共16行。行。2.主存可以划分为主存可以划分为2048/16=128个区,每区含个区,每区含16块。总地址为块。总地址为20位;其中块内地址位;其中块内地址9位,位,4位地位地址作为区内编号(地址),高址作为区内编
36、号(地址),高7位作为区编号。位作为区编号。区编号作为行标记存储。主存与主存与Cache的地址映射的地址映射v直接映射实例直接映射实例3.读过程读过程nCPU给出给出20位地址。位地址。nCache利用中间利用中间4位的区内编号确定目标行。位的区内编号确定目标行。nCache将高将高7位的区编号与该行的标记进行比较。位的区编号与该行的标记进行比较。n命中则利用低命中则利用低9位的块(行)内地址完成访问。位的块(行)内地址完成访问。n否则从主存读出数据并复制数据块到否则从主存读出数据并复制数据块到Cache。优点:降低了标记比较(硬件实现)的复杂度优点:降低了标记比较(硬件实现)的复杂度缺点:块
37、号相距缺点:块号相距nXm的字块可能需要频繁替换,数据放的字块可能需要频繁替换,数据放置不灵活,命中率低置不灵活,命中率低例如:地址0000000 1000 XXXXXXXXX对应某区的第8块和Cache的第8行,只要该行标记为,则表示第0区的第8行位于Cache中,即命中主存与主存与Cache的地址映射的地址映射v组相联映射组相联映射nCache被划分为被划分为u u组,每组包含组,每组包含v v行行(称为v路)n以以u u为模确定数据块缓存的目标组为模确定数据块缓存的目标组n数据块可以存储于目标组的任意一行数据块可以存储于目标组的任意一行与直接映射相与直接映射相比,将行扩展比,将行扩展为组
38、为组主存与主存与Cache的地址映射的地址映射v组相联映射实例组相联映射实例 主存为1MB,划分2048块;Cache容量为8KB,组相联Cache如何设计? (假设每组包含2行,即2路组相联Cache)1.主存容量为主存容量为1MB,块内容量,块内容量512B。Cache容量为容量为8KB,行容量为,行容量为512B,共,共16行,行,8组。组。2.主存可以划分为主存可以划分为2048/8=256个区。总地址为个区。总地址为20位;其位;其中块内地址中块内地址9位,位, 3位地址为组编号,位地址为组编号, 高高8位地址作为位地址作为区编号(组内块编号)。区编号(组内块编号)。区编号作为行标记
39、存储。主存与主存与Cache的地址映射的地址映射v组相联映射实例组相联映射实例3.读过程读过程nCPU给出给出20位地址。位地址。nCache利用中间利用中间3位的组编号确定目标组。位的组编号确定目标组。nCache将高将高8位的区编号与组内各行的标记比较。位的区编号与组内各行的标记比较。n命中则利用低命中则利用低9位的块(行)内地址完成访问。位的块(行)内地址完成访问。n否则从主存读出数据并复制数据块到否则从主存读出数据并复制数据块到Cache。全相联与直接映射的混合体,将逐行匹配工作局限于组内,全相联与直接映射的混合体,将逐行匹配工作局限于组内,兼具灵活性和易于实现等优点兼具灵活性和易于实
40、现等优点例如:地址00000000 100 XXXXXXXXX对应某区的第4块和Cache的第4组(第6、7行),只要两行标记之一为,则表示第0区的第8行位于Cache中,即命中图4 -40 cache原理图主存与主存与Cache的地址映射的地址映射v地址映射地址映射n建立主存数据块与建立主存数据块与Cache行,行,以及主存地址与以及主存地址与Cache存储存储单元的对应关系单元的对应关系n利用硬件实现n对对CPU/程序员透明程序员透明v映射策略映射策略n全相联映射全相联映射n直接映射直接映射n组相联映射组相联映射Cache的基本原理的基本原理v读操作读操作nCPU发送地址到发送地址到Cac
41、he/主存主存nCache命中则直接读出数据命中则直接读出数据n否则主存将数据送至否则主存将数据送至CPU和和Cache图4 -40 cache原理图问题:如何替换问题:如何替换Cache中的陈旧数据?中的陈旧数据?替换算法替换算法v最不经常使用算法(最不经常使用算法(LFU)n各行配备访问计数器,访问一次加各行配备访问计数器,访问一次加1(越小越糟糕)(越小越糟糕)n替换某行后,所有行计数器清替换某行后,所有行计数器清0v近期最少使用算法(近期最少使用算法(LRU)n各行记录不命中次数,不命中加各行记录不命中次数,不命中加1(越大越糟糕)(越大越糟糕)n该行命中后清该行命中后清0v随机替换算
42、法随机替换算法n随机算法并不一定比随机算法并不一定比“有规则的算法有规则的算法”差差硬件实现硬件实现Cache读写过程读写过程v读操作读操作n命中:直接读命中:直接读Cache中的数据中的数据n不命中:从主存读出数据,并视情况更新不命中:从主存读出数据,并视情况更新Cache(即:(即:替换替换Cache中的数据)中的数据)v写操作写操作n标志交换方式(写回法)标志交换方式(写回法)l在被替换之前仅在在被替换之前仅在Cache中做标记中做标记n写直达法(通过式写入)写直达法(通过式写入)l同时写同时写Cache和主存中的数据和主存中的数据写回法速度快,但是造成写回法速度快,但是造成Cache与
43、主存中数据不与主存中数据不一致?请思考:多处理器条件下的危害?一致?请思考:多处理器条件下的危害?多层次多层次Cache存储器存储器v独立的指令独立的指令Cache与数据与数据Cachen哈佛结构哈佛结构v多层次多层次Cache结构结构nCore2 酷睿酷睿2 Duo E8200:L1-128K,L2-6MvCache一致性问题一致性问题n写入过程并不同时修改写入过程并不同时修改Ll,L2和主存内容,造和主存内容,造成了数据的不一致成了数据的不一致cache一致性问题。一致性问题。Cache的性能的性能vCache的评价指标的评价指标命中率命中率 设设NC表示表示Cache完成存取的总次数,完
44、成存取的总次数, Nm表示主存完成存取的总表示主存完成存取的总次数,次数,h定义为命中率,则有:定义为命中率,则有: h= NC/(NC+ Nm) 若若t tc c表示命中时的表示命中时的CacheCache访问时间,访问时间,t tm m表示未命中时的主存访问表示未命中时的主存访问时间,则时间,则CacheCache主存系统的平均访问时间主存系统的平均访问时间t ta a为:为:若若平均访问时间平均访问时间ta为:为:ta = htc+(1-h) tm设设r=tm/tc表示主存慢于表示主存慢于Cache的倍率,的倍率,e表示访问效率,则:表示访问效率,则: e = tc/ta = tc/h
45、tc+(1-h) tm = 1/h+(1-h) r为提高访问效率,命中率为提高访问效率,命中率h越接近越接近1越好,越好,r值以值以510为宜,为宜,不宜太大。命中率不宜太大。命中率h与程序行为、与程序行为、cache的容量、组织方式、的容量、组织方式、块的大小有关。块的大小有关。Cache的性能的性能例:例:CPU执行一段程序时,执行一段程序时,Cache完成存取的次数为完成存取的次数为1900次,主存完成存取的次数为次,主存完成存取的次数为100次,已知次,已知Cache存取周期为存取周期为50ns,主存存取周期为主存存取周期为250ns,求,求Cache主存系统的效率主存系统的效率和平均
46、访问时间。和平均访问时间。解:解: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 或或 ta = htc+(1-h)(tc+tm) = 0.95 50+(1-0.95) (50+250) = 47.5+15 = 62.5nsCache的性能的性能主存与辅存之间的关系主存与辅存之间的关系v主存主存:(半导体存储器组成半导体存储器组成)n优优:速度快速度快n缺缺:容量受限,单
47、位成本高,容量受限,单位成本高, 断电丢失信息。断电丢失信息。v辅存辅存:(光盘,磁盘光盘,磁盘)n优优:容量大,信息长久保存,单位成本低容量大,信息长久保存,单位成本低.n缺缺:存取速度慢存取速度慢vCPU正在运行的程序和数据存放在主存暂时正在运行的程序和数据存放在主存暂时不用的程序和数据存放在辅存。不用的程序和数据存放在辅存。v辅存只与主存进行数据交换辅存只与主存进行数据交换虚拟存储器虚拟存储器辅存辅存辅存辅存主存主存主存主存虚拟存储器虚拟存储器v定义(作用)定义(作用)n内存内存- -外存层次。外存层次。n以透明的方式给用户提供一个比实际主存空间以透明的方式给用户提供一个比实际主存空间大
48、得多的大得多的程序地址空间。虚拟地址:程序的逻辑地址虚拟地址:程序的逻辑地址虚拟地址空间:程序的逻辑地址空间虚拟地址空间:程序的逻辑地址空间实存地址:主存的物理地址实存地址:主存的物理地址虚拟存储器虚拟存储器v工作原理工作原理程序局部性程序局部性n程序中最近程序中最近常用的部分驻留在高速存储器中的部分驻留在高速存储器中n这部分变得这部分变得不常用时,被送回低速存储器中时,被送回低速存储器中n替换过程由硬件或操作系统完成,用户透明过程由硬件或操作系统完成,用户透明n力图使存储系统的性能接近高速存储器,价格力图使存储系统的性能接近高速存储器,价格接近低速存储器接近低速存储器虚拟存储器与虚拟存储器与
49、Cache主存主存辅存层次与辅存层次与“主存主存Cache”层次具有相似性层次具有相似性虚拟存储器虚拟存储器v特点特点n一个容量非常大的存储器的逻辑模型一个容量非常大的存储器的逻辑模型n不是任何实际的物理存储器不是任何实际的物理存储器n相当于借助磁盘等辅存来扩大主存容量相当于借助磁盘等辅存来扩大主存容量本质:用辅存实现主存功能,程序本质:用辅存实现主存功能,程序以访问主存的方式运行,以及访问以访问主存的方式运行,以及访问虚拟空间,实际访问的数据可能位虚拟空间,实际访问的数据可能位于辅存,需要按需装入主存于辅存,需要按需装入主存虚拟存储器虚拟存储器vCache的数据交换单位的数据交换单位n行,内
50、存块行,内存块v虚拟存储器的基本信息传送虚拟存储器的基本信息传送n段、页、段页段、页、段页段式虚拟存储器段式虚拟存储器v段的定义段的定义n利用程序的模块化性质,按照程序的逻辑结构利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分划分成的多个相对独立部分n例如:过程、子程序、数据表、阵列等例如:过程、子程序、数据表、阵列等v段式管理段式管理n以段为单位划分应用程序空间以段为单位划分应用程序空间n虚存地址为虚存地址为“段号段号+ +段内地址段内地址”n以段为单位完成以段为单位完成“主存主存辅存辅存”数据传送数据传送n利用段表维护载入状态和虚实地址映射关系利用段表维护载入状态和虚实地址
51、映射关系段式虚拟存储器段式虚拟存储器段式虚拟存储器段式虚拟存储器段式虚拟存储器段式虚拟存储器v优点优点n段的分界与程序的自然分界相对应;段的分界与程序的自然分界相对应;n段的逻辑独立性使它易于编译、管理、修改和保护,段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享;也便于多道程序共享;n某些类型的段某些类型的段(堆栈、队列堆栈、队列)具有动态可变长度,允许自具有动态可变长度,允许自由调度以便有效利用主存空间。由调度以便有效利用主存空间。v缺点缺点n各段长度不同、起点和终点不定,给主存空间分配带各段长度不同、起点和终点不定,给主存空间分配带来麻烦;来麻烦;n上述特点还容易在段间留
52、下许多空余的零碎存储空间上述特点还容易在段间留下许多空余的零碎存储空间不好利用,造成浪费不好利用,造成浪费页式虚拟存储器页式虚拟存储器v页的定义页的定义n主存的物理空间被划分为等长的固定区域主存的物理空间被划分为等长的固定区域v页式管理页式管理n以页为单位划分应用程序和主存空间,分别成为逻辑以页为单位划分应用程序和主存空间,分别成为逻辑页和物理页页和物理页n虚存虚存/ /实存地址为实存地址为“逻辑页逻辑页/ /物理页号物理页号+ +页内地址页内地址”n页大小为页大小为2 2n n字,页起点低位字段为字,页起点低位字段为0 0n以页为单位完成以页为单位完成“主存主存辅存辅存”数据传送数据传送n利
53、用页表维护载入状态和虚实地址映射关系利用页表维护载入状态和虚实地址映射关系页式虚拟存储器页式虚拟存储器辅存辅存辅存辅存主存主存主存主存页式虚拟存储器页式虚拟存储器v地址映射地址映射图4-46 页式虚拟存储器结构段页式虚拟存储器段页式虚拟存储器v按逻辑单位分段,进一步划分页按逻辑单位分段,进一步划分页v程序程序/数据的传送以页为单位数据的传送以页为单位v数据的共享、保护以段为单位数据的共享、保护以段为单位优点是兼备页式和段式系统的长处。优点是兼备页式和段式系统的长处。优点是兼备页式和段式系统的长处。优点是兼备页式和段式系统的长处。 缺点是在地址映象过程中需要多次查表。缺点是在地址映象过程中需要多次查表。缺点是在地址映象过程中需要多次查表。缺点是在地址映象过程中需要多次查表。存储保护存储保护v存储区域保护存储区域保护n页表保护页表保护产生实地址时检查,保证访问范围产生实地址时检查,保证访问范围内的段、页地址内的段、页地址n键方式键方式实地址产生后检查,保证访问属于自实地址产生后检查,保证访问属于自己的段、页地址己的段、页地址v访问方式保护访问方式保护n读、写、执行等操作属性读、写、执行等操作属性MMUv80286n史上第一款带有史上第一款带有MMU的处理器的处理器