第4章主存储器逻辑设计_第1页
第4章主存储器逻辑设计_第2页
第4章主存储器逻辑设计_第3页
第4章主存储器逻辑设计_第4页
第4章主存储器逻辑设计_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

1、第第4章章 主存储器逻辑设计主存储器逻辑设计1. 存储器容量扩展存储器容量扩展n位扩展位扩展n字扩展字扩展n字位扩展字位扩展2. 存储控制存储控制n集中刷新集中刷新n分散刷新分散刷新n异步刷新异步刷新3. 存储校验线路存储校验线路半导体存储器的组成与控制半导体存储器的组成与控制复习(一)复习(一)vRAM存储器芯片总结存储器芯片总结 RAM存储器芯片有多种型号,每一存储器芯片有多种型号,每一RAM存储器芯存储器芯片具有:片具有:n地址线地址线Ai:引脚数与存储芯片的单元数有关;:引脚数与存储芯片的单元数有关;n数据线数据线Di:引脚数与存储芯片的字长有关;:引脚数与存储芯片的字长有关;n片选信

2、号片选信号CS:只有:只有CS有效时,芯片才被选中,有效时,芯片才被选中,所连地址线才有效,才能进行读所连地址线才有效,才能进行读/写操作。写操作。n读读/写信号写信号WE:为:为0,控制写入电路进行写入;,控制写入电路进行写入;为为1,控制读出电路进行读出。,控制读出电路进行读出。n电源线、地线电源线、地线复习(二)复习(二)例例1:某:某RAM芯片,其存储容量为芯片,其存储容量为16K8位,问:位,问:(1)该芯片引出线的最小数目应为多少?)该芯片引出线的最小数目应为多少?(2)存储器芯片的地址范围是什么?)存储器芯片的地址范围是什么?解:解:(1)16K=214,所以地址线,所以地址线1

3、4根;字长根;字长8位,所以数据线位,所以数据线8根。根。14 + 8 + 1 + 1 + 1 + 1 = 26地址线地址线 数据线数据线 片选片选 读读/写写 电源线电源线 地线地线(2)存储器芯片的)存储器芯片的地址范围地址范围为为0000H3FFFH存储器芯片的地址范围:存储器芯片的地址范围:地址线从全地址线从全“0”到全到全“1”的所有编码的所有编码复习(三)复习(三)vSRAM芯片芯片2114(1K4位)位)外特性:外特性:地址端:地址端:21142114(1K1K4 4)1 19 910101818A6 A5 A4 A3 A0 A1 A2 CS GNDA6 A5 A4 A3 A0

4、A1 A2 CS GNDVccVcc A7 A8 A9 D0 D1 D2 D3 WE 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地地址址线线每片一位组成一个字节每片一位组成一个字节 例:用例:用64K1b的存储器芯片组成的存储器芯片组成64K8b(64KB)的存储器。)的存储器。 采用位扩展方式,需要芯片数为:采用位扩展方式,需要芯片数为: = 8片片 每片芯片应有每片芯片应有16根地址线:根地址线:A0 0 A1515, 8片芯片的地址线片芯片的地址线A1515A0 0分别连在一起同分别连在一起同CPU的地址线的地址线A1515 A0 0相连

7、;每片只有一位数据线,相连;每片只有一位数据线,8片芯片的片芯片的8位数据线分别和位数据线分别和CPU的的 数据线数据线D7 7D0 0相连。相连。 当当CPU访问该存储器时,其发出的访问该存储器时,其发出的16位地址同时传给位地址同时传给8个芯片,选个芯片,选 中每个芯片的同一单元;中每个芯片的同一单元;CPU发出的发出的 读读/写控制信号同时传给写控制信号同时传给8个芯片。个芯片。 该存储器连接如图所示。该存储器连接如图所示。位扩展总结:位扩展总结:v当构成内存的存储当构成内存的存储芯片的字长芯片的字长 内存单元的字长内存单元的字长时,时,就要进行就要进行位扩展位扩展,使每个单元的字长满足

8、要求。,使每个单元的字长满足要求。v位扩展位扩展方法方法: 将每片的地址线、片选将每片的地址线、片选CS、读写控制线、读写控制线并联并联,数据,数据线线分别引出分别引出。v位扩展位扩展特点特点: 存储器的存储器的单元数不变,位数增加单元数不变,位数增加。存储器容量扩展存储器容量扩展字扩展字扩展例例 使用使用16K8位的位的RAM芯片组成一个芯片组成一个64K8位的存储器。位的存储器。分析:分析:芯片芯片的字数不够,的字数不够,需进行需进行字扩展。字扩展。共需芯片数目是共需芯片数目是64K16K4。将。将4片片RAM的地的地址线、数据线、读写线一一对应并联。址线、数据线、读写线一一对应并联。 出

9、现地址线不够问题,如何解决?出现地址线不够问题,如何解决? 可以用高可以用高2位位地址作为选片端。地址作为选片端。详细的连接见下图:详细的连接见下图: CSWE CSWE CSWE CSWE16K8位的位的RAM芯片组成一个芯片组成一个64K8位的存储器位的存储器地地址址端端地地址址端端 CSWE地地址址端端地地址址端端10 例:例: 用用6464K K8b8b的存储器芯片组成的存储器芯片组成512K512K8b8b(512KB512KB)的存储器。)的存储器。 采用字扩展方式,所需芯片数为:采用字扩展方式,所需芯片数为: = 8 片片 每片芯片应有每片芯片应有16根根地址线:地址线:A0 0

10、 - A1515 ;计算机系统有;计算机系统有20根根地址线:地址线: A0 0-A1919 , 8片芯片的片芯片的地址线地址线A15A0分别连在一起同分别连在一起同CPU的的20位地址线中位地址线中 A15 A0相连;相连; 采用全译码方式时,采用全译码方式时,高高4位地址线位地址线 A1616 A1919通过译码器通过译码器译码译码产生产生 16个片选信号,其中个片选信号,其中8个个分别同分别同8片片芯片的芯片的片选信号片选信号连接;每片只有连接;每片只有8位位 数据线,数据线,8片芯片的片芯片的8位数据线位数据线并联分别和并联分别和CPU的数据线的数据线D7 7D0 0相连。相连。 采用

11、字扩展法的存储器连接如图所示。采用字扩展法的存储器连接如图所示。字扩展总结:字扩展总结:v特点特点: 地址空间的扩展。芯片每个单元中的字长满足,地址空间的扩展。芯片每个单元中的字长满足,但但单元数不满足单元数不满足。v扩展原则:扩展原则: 每个芯片的地址线、数据线、读写控制线每个芯片的地址线、数据线、读写控制线并并联联,仅片选端,仅片选端分别引出分别引出,以实现每个芯片占据不,以实现每个芯片占据不同的地址范围。同的地址范围。存储器容量扩展存储器容量扩展字位扩展字位扩展v实际存储器往往需要在字向、位向两个方向同时实际存储器往往需要在字向、位向两个方向同时扩展。扩展。v一个存储器的容量为一个存储器

12、的容量为MN位,若使用位,若使用LK位的位的存储芯片,则该存储器共需的芯片个数为:存储芯片,则该存储器共需的芯片个数为:M NL Kv需解决:需解决: 芯片的选用、芯片的选用、地址分配与片选逻辑、地址分配与片选逻辑、信号线的连接。信号线的连接。要求:要求:1、确定整个存储器所需的芯片数及芯片的分、确定整个存储器所需的芯片数及芯片的分组情况组情况 ;2、确定存储器及每组芯片的地址范围;、确定存储器及每组芯片的地址范围;3、说明地址线的分配方法,并画出存储器的、说明地址线的分配方法,并画出存储器的结构图。结构图。2114(1K4)SRAM芯片组成容量为芯片组成容量为4K8的存储器的存储器例例4用用

13、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芯片组成容量为芯片组成容量为4K8的存储器的

14、存储器存储器寻址逻辑存储器寻址逻辑2.地址分配与片选逻辑地址分配与片选逻辑芯片内的寻址系统芯片内的寻址系统(二级译码二级译码)芯片外的芯片外的地址分配地址分配与与片选逻辑片选逻辑为芯片分配哪几位地址,为芯片分配哪几位地址,以便寻找片内的存储单元以便寻找片内的存储单元由哪几位地址形成芯由哪几位地址形成芯片选择逻辑,以便寻片选择逻辑,以便寻找芯片找芯片存储空间分配:存储空间分配:4KB存储器在存储器在16位地址空间位地址空间(64KB)中占据任意中占据任意连续区间。连续区间。2114(1K4)SRAM芯片组成容量为芯片组成容量为4K8的存储器的存储器A11 A10 A9 A00 0 0 00 0

15、1 10 1 1 11 0 1 10 1 0 01 0 0 01 1 0 01 1 1 1片选片选 芯片地址芯片地址 64KB1K4 1K41K4 1K41K41K41K41K4需需12位地位地址寻址:址寻址:4KBA11A02114芯片为芯片为1K4位,片内寻址需要位,片内寻址需要10根地址线,为根地址线,为A0A9低位地址分配给芯片,高位地址形成片选逻辑。低位地址分配给芯片,高位地址形成片选逻辑。 芯片芯片 芯片地址芯片地址 片选信号片选信号 片选逻辑片选逻辑1K1K1K1KA9A0A9A0A9A0A9A0CS0CS1CS2CS3A11A10A11A10A11A10A11A10整个存储器的

16、地址范围:整个存储器的地址范围:000HFFFH共分为共分为4组,每组的地址范围为:组,每组的地址范围为:第一组:第一组:000H3FFH第二组:第二组:400H7FFH第三组:第三组:800HBFFH第四组:第四组:C00HFFFH2114(1K4)SRAM芯片组成容量为芯片组成容量为4K8的存储器的存储器2114(1K4)SRAM芯片组成容量为芯片组成容量为4K8的存储器的存储器3.连接方式连接方式(1)扩展位数)扩展位数(2)扩展单元数)扩展单元数(3)连接控制线)连接控制线 (4)形成片选逻辑电路)形成片选逻辑电路11100100v例:某半导体存储器总容量某半导体存储器总容量4K4K8

17、 8位。其中位。其中固化区固化区2K2K字节,选用字节,选用EPROMEPROM芯片芯片27162716(2K2K8 8位);工作区位);工作区2K2K字节,选用字节,选用SRAMSRAM芯芯片片21142114(1K1K4/4/片)。地址总线片)。地址总线A A1515A A0 0(低),双向数据总线(低),双向数据总线D D7 7D D0 0(低)。(低)。2K8 1K4 1K4 1K4 1K4000007FF08000BFF0C000FFF1K81K8设计目标:设计目标:4K8的地址空间的地址空间v片选信号的产生逻辑片选信号的产生逻辑寻找地址空间的寻找地址空间的特征值n4K4K空间需空间

18、需1212位地址,位地址,不用不用n芯片芯片1:000007FF,全部占用为地址信号,全部占用为地址信号,始终为始终为0,此空间外地址的,此空间外地址的必为必为1,故片选逻辑为,故片选逻辑为n芯片芯片2:08000BFF,全部占用为地址信号,全部占用为地址信号,始终为始终为1, 始终为始终为0,故片选逻辑为,故片选逻辑为 n芯片芯片3:0C000FFF,全部占用为地址信号,全部占用为地址信号,始终为始终为1, 始终为始终为1,故片选逻辑为,故片选逻辑为 v设计结果n芯片芯片1 1使用使用1111位地址位地址, 并将并将2K8 1K4 1K4 1K4 1K4000007FF08000BFF0C0

19、00FFF27162114211421142114D74D30R/WCS0CS1CS2A11A11A10A11A10A100A90A90地址地址v 芯片级存储器逻辑图应表示出:芯片级存储器逻辑图应表示出: n所用存储芯片。所用存储芯片。n各芯片的地址线。各芯片的地址线。n片选逻辑。片选逻辑。 注意,芯片的片选信号一般是注意,芯片的片选信号一般是/CS,即即低电平有效,设计往往先从逻辑命题真写出逻辑式低电平有效,设计往往先从逻辑命题真写出逻辑式n数据线。数据总线是双向总线,数据通路宽度数据线。数据总线是双向总线,数据通路宽度8位。位。ROM芯片数据为芯片数据为单向输出。输出。RAM芯片为芯片为双

20、向连接。连接。2114每片每片4位,分别连到数据线位,分别连到数据线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区:区: 末地址首地址末地址首地址=FFFF

22、H C000H=3FFFH所以所以ROM的容量为的容量为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低位地址分配给芯片,高位地址形成片选逻辑。低位地址分配给芯片,高位地址形成片选逻辑。选用选用

23、3:8译码器(译码器(74LS138)40KB需需16位地位地址寻址:址寻址:RAMA15A0ROM64KB8K88K48K48K48K48K48K48K80 1 00 1 00 1 10 1 11 1 11 1 1片选信号片选信号 片选逻辑片选逻辑CS2 A15A14A13存储系统存储系统vCPU与主存与主存n巨大的性能差距巨大的性能差距Memory Wallv提高访存效率的途径提高访存效率的途径n增强存储器的性能增强存储器的性能n增加存储器字长增加存储器字长n采用并行操作的双端口存储器采用并行操作的双端口存储器n每个周期存取多个字每个周期存取多个字nCPU与主存之间插入高速的与主存之间插入

24、高速的Cache存储系统存储系统CACHE主存(内存)主存(内存)辅存(外存)辅存(外存)v根据各种存储器的存储根据各种存储器的存储容量、存取速度和价格容量、存取速度和价格比的不同,将它们按照比的不同,将它们按照一定的体系结构组织起一定的体系结构组织起来,使所放的程序和数来,使所放的程序和数据按照一定的层次分布据按照一定的层次分布在各种存储器中。在各种存储器中。CPU Cache是为弥补主存速度的不足,在是为弥补主存速度的不足,在CPU 和主存和主存之间设置的高速、小容量的缓冲存储器。之间设置的高速、小容量的缓冲存储器。 组成组成: 小容量的小容量的SRAM和高速缓存控制器组成。和高速缓存控制

25、器组成。 功能:将功能:将CPU当前快要用到的部分数据块由主存当前快要用到的部分数据块由主存复制到容量小、速度快的复制到容量小、速度快的SRAM中,由中,由SRAM向向CPU直接提供它所需要的数据。直接提供它所需要的数据。高速缓冲存储器(高速缓冲存储器(CacheCache) 为了使为了使CPU不至因为等待存储器读写操作的完成不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速而无事可做,可以采取一些加速CPU和存储器之间和存储器之间有效传输的特殊措施。实现的途径有:有效传输的特殊措施。实现的途径有:1)主存储器采用更高速的技术来缩短存储器的读出时主存储器采用更高速的技术来缩短存储器的

26、读出时间,或加长存储器的字长;间,或加长存储器的字长;2)采用并行操作的双端口存储器;采用并行操作的双端口存储器;3)在在CPU和主存储器之间插入一个高速缓冲存储器和主存储器之间插入一个高速缓冲存储器(cache),以缩短读出时间;以缩短读出时间;4)4)在每个存储器周期中存取几个字。在每个存储器周期中存取几个字。 高速缓冲存储器(高速缓冲存储器(CacheCache)图4 -39 CPU存储器系统的关系Cache的基本原理的基本原理v 介于介于CPU与主存之间与主存之间v 基于高速的基于高速的SRAMv 小容量、高速度小容量、高速度v 硬件实现的管理功能硬件实现的管理功能v 对程序员透明对程

27、序员透明可以集成到可以集成到CPU中中一种高速缓冲器,解决一种高速缓冲器,解决CPU与主存之间速度不与主存之间速度不匹配的一项技术匹配的一项技术Cache的基本原理的基本原理v读操作读操作nCPU发送地址到发送地址到Cache/主存主存nCache命中则直接读出数据命中则直接读出数据n否则主存将数据送至否则主存将数据送至CPU和和Cache图4 -40 cache原理图主存主存 Cache以块为单位,即:复制目标存以块为单位,即:复制目标存取字在内的一块数据取字在内的一块数据目的:下次读取时可以直接访目的:下次读取时可以直接访问问CacheCache的基本原理的基本原理v程序局部性原理程序局部

28、性原理CPU访问存储器时,无论是取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。v两种不同类型的局部性两种不同类型的局部性n 时间局部性(时间局部性(Temporal Locality):如果一个信息项正在):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。程序循环、被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。堆栈等是产生时间局部性的原因。n 空间局部性(空间局部性(Spatial Locality):在最近的将来将用到的):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。信息很可能与现在正在使用的

29、信息在空间地址上是临近的。指令的顺序执行、数组的连续存放等是产生空间局部性的原指令的顺序执行、数组的连续存放等是产生空间局部性的原因。因。 Cache的基本原理的基本原理v帕雷托法则帕雷托法则(Pareto principle),也称为),也称为80/20法法则,此法则指在众多现象中,则,此法则指在众多现象中,80%的结果取决于的结果取决于20%的原因,而这一法则在很多方面被广泛的应的原因,而这一法则在很多方面被广泛的应用。用。 v在计算机科学里,帕雷托法则可借由观察在计算机科学里,帕雷托法则可借由观察80%的的资源是由资源是由20%所操作使用,来最佳化资源。在软所操作使用,来最佳化资源。在软

30、件工程上,常有接近件工程上,常有接近90%的电脑程序执行次数花的电脑程序执行次数花费在费在10%的程式源代码执行。在图书资讯学里,的程式源代码执行。在图书资讯学里,一间图书馆的一间图书馆的20%馆藏是由馆藏是由80%的读者所借阅。的读者所借阅。 Cache的基本原理的基本原理vCache的组成的组成n基于基于SRAM的存储实体的存储实体n硬件控制逻辑硬件控制逻辑v存取单位存取单位nCPU与与Cache之间的数之间的数据交换以字为单位据交换以字为单位nCache与主存之间的数与主存之间的数据交换以块为单位,一据交换以块为单位,一个块由若干字组成,是个块由若干字组成,是定长的。定长的。图4 -40

31、 cache原理图Cache的基本原理的基本原理v数据块数据块nCache与主存之间的数与主存之间的数据交换单位据交换单位n主存单元的逻辑划分主存单元的逻辑划分n主存中的块对应主存中的块对应Cache中的行,二者长度相等中的行,二者长度相等且固定且固定一一对应一一对应n数据字地址被划分为数据字地址被划分为块块号号/行标记行标记和和块块/行内部行内部地址地址两部分两部分Cache主存主存标记标记块块行行命中:地址的块号与某一命中:地址的块号与某一行的行标记匹配行的行标记匹配主存与主存与Cache的地址映射的地址映射Cache主存主存标记标记块块行行?主存标记主存标记Cache块号块号块内地址块内

32、地址主存块号主存块号主存地址主存地址7位位4位位9位位Cache块号块号块内地址块内地址cache地址地址4位位9位位图4 -40 cache原理图主存与主存与Cache的地址映射的地址映射v地址映射地址映射n建立主存数据块与建立主存数据块与Cache行,行,以及主存地址与以及主存地址与Cache存储存储单元的对应关系单元的对应关系n利用硬件实现利用硬件实现n对对CPU/程序员透明程序员透明v映射策略映射策略n全相联映射全相联映射n直接映射直接映射n组相联映射组相联映射主存与主存与Cache的地址映射的地址映射v直接映射直接映射n主存中的某个字块只能缓主存中的某个字块只能缓存与存与Cache中

33、的特定行中的特定行n利用利用模运算模运算克服克服Cache与与主存的容量差距,主存的容量差距,模即为模即为Cache中的行数中的行数v例如:例如:n对于对于4行行Cache而言,主存而言,主存中的第中的第0、4、8、16块块均只能缓存于第均只能缓存于第0行行主存与主存与Cache的地址映射的地址映射v 直接映射实例直接映射实例 主存为主存为1MB,划分,划分2048块;块;Cache容量容量为为8KB,直接映射,直接映射Cache如何设计?如何设计?1. 主存容量为主存容量为1MB,块内容量,块内容量512B。Cache容量容量为为8KB,行容量为,行容量为512B,共,共16行。行。2. 主

34、存可以划分为主存可以划分为2048/16=128个区,每区含个区,每区含16块。总地址为块。总地址为20位;其中块内地址位;其中块内地址9位,位,4位位地址作为区内编号(地址),高地址作为区内编号(地址),高7位作为区编位作为区编号。号。区编号作为行标记存储。区编号作为行标记存储。主存与主存与Cache的地址映射的地址映射v 直接映射实例直接映射实例3.读过程读过程nCPU给出给出20位地址。位地址。nCache利用中间利用中间4位的区内编号确定目标行。位的区内编号确定目标行。nCache将高将高7位的区编号与该行的标记进行比较。位的区编号与该行的标记进行比较。n命中则利用低命中则利用低9位的

35、块(行)内地址完成访问。位的块(行)内地址完成访问。n否则从主存读出数据并复制数据块到否则从主存读出数据并复制数据块到Cache。例如:地址0000000 1000 XXXXXXXXX对应某区的第8块和Cache的第8行,只要该行标记为0000000,则表示第0区的第8行位于Cache中,即命中主存地址主存地址 i = j mod ni = j mod n相当于将主存的地址空间按相当于将主存的地址空间按CacheCache的空间大小分区,每的空间大小分区,每 个区内可按个区内可按CacheCache块号编号,这样主存地址结构如下:块号编号,这样主存地址结构如下: “ “区号区号”作为标记(表示

36、为作为标记(表示为TagTag)存放在)存放在“地址映像表地址映像表”中,用于判中,用于判断是断是 否命中;否命中; “ “块号块号”是区内块号,同是区内块号,同CacheCache块号,用于直接查块号,用于直接查“地址映像表地址映像表”(用(用作作 查表索引),以及在查表索引),以及在CacheCache中进行中进行“块寻址块寻址”; “ “块内地址块内地址”用于在块内选择字或字节(表示为用于在块内选择字或字节(表示为BSBS););例如例如 一块有一块有10241024个字(个字(1616位)或字节,则块内地址为位)或字节,则块内地址为1010位(位(10241024个字个字节)或节)或1

37、111位(位(10241024个字)。在上例中,主存地址中区号为个字)。在上例中,主存地址中区号为5 5位,块号为位,块号为3 3位,块内地址为位,块内地址为1010位(块内字地址)共位(块内字地址)共1818位。位。主存块号主存块号直接映像的访存过程直接映像的访存过程 访存过程以图表示。访存过程以图表示。 直接映像方式下的直接映像方式下的CacheCache内容由调入内容由调入的数据和调入块的主存的数据和调入块的主存 (称为(称为“”)组成。)组成。 访问存储器时给出主存地址,由区号(标记)、块号和块内地址访问存储器时给出主存地址,由区号(标记)、块号和块内地址 组成,以块号到组成,以块号到

38、CacheCache中检索到该块号所对应块,取出标记部分同主存中检索到该块号所对应块,取出标记部分同主存 地址中的标记(区号)送比较器进行比较:地址中的标记(区号)送比较器进行比较: ,说明被命中,由该块号加上块内地址构成的,说明被命中,由该块号加上块内地址构成的CacheCache地址访地址访 问问CacheCache。 ,说明未被命中,则以主存地址访问主存,并把主存中该,说明未被命中,则以主存地址访问主存,并把主存中该 块数据调入填补空块(直接映像只能调入指定块内,不需要采用替换块数据调入填补空块(直接映像只能调入指定块内,不需要采用替换 策略)或替换原有的副本,且修改标记值。策略)或替换

39、原有的副本,且修改标记值。 例例4-1:设在直接映像的设在直接映像的Cache中,主存地址的区号中,主存地址的区号5位,块位,块号号3位,位,CPU访存过程中,依次访问主存单元高访存过程中,依次访问主存单元高8位地址为:位地址为: 00010110,00011010,00010110,00011010,00010000,00000 011,00010000,00010010。 要求写出每次访问后要求写出每次访问后CacheCache中的内容中的内容。 解:解:(1 1) 开始工作时开始工作时CacheCache的初始状态如表的初始状态如表 (2 2) 访问访问00101100010110,Y0

40、0010(00010110) Cache中块地址为中块地址为110的块内无数据的块内无数据有效有效位为位为N,未命中,访问主存,将主存块号,未命中,访问主存,将主存块号00010110的内容调入的内容调入Cache 块地址为块地址为110的数据段中后,的数据段中后,Cache中块地址为中块地址为110的有效位写为的有效位写为Y,标,标记字段写入记字段写入00010。Cache内容如下表所示内容如下表所示,(,(0001011000010110)表示块内表示块内容容)。)。 (3 3)访问)访问0001101000011010,Y00011 (00011010) Cache Cache中块地址为

41、中块地址为010010的块内无数据的块内无数据有效有效 位为位为N N,未命中,访问主存,将主存块号,未命中,访问主存,将主存块号0001101000011010的内容调入的内容调入CacheCache 块地址为块地址为010010的数据段中后,的数据段中后,CacheCache中块地址为中块地址为010010的有效位写为的有效位写为Y Y, 标记字段写入标记字段写入0001100011,CacheCache内容如下表所示,(内容如下表所示,(0001101000011010)表示块表示块 内容)。内容)。 (4 4) 访问访问0001011000010110命中,访问命中,访问CacheCa

42、che,CacheCache中内容不变;中内容不变; (5 5) 访问访问0001101000011010命中,访问命中,访问CacheCache,CacheCache中内容不变;中内容不变; (6 6) 访问访问0001000000010000, Cache Cache中块地址为中块地址为000000的块内无数据的块内无数据有效有效 位为位为N N,未命中,访问主存,将主存块号,未命中,访问主存,将主存块号0001000000010000的内容调入的内容调入CacheCache 块地址为块地址为000000的数据段中后,的数据段中后,CacheCache中块地址为中块地址为000000的有效

43、位写为的有效位写为Y Y,标,标 记字段写入记字段写入0001000010,CacheCache内容如下表所示。,(内容如下表所示。,(00010000001000)表示块表示块 内容)。内容)。Y00010(00010000) (7 7) 访问访问0000001100000011, Cache Cache中块地址为中块地址为011011的块内无数据的块内无数据有效位有效位 为为N N,未命中,访问主存,将主存块号,未命中,访问主存,将主存块号0000001100000011的内容调入的内容调入CacheCache 块地块地 址为址为011011的数据段中后,的数据段中后,CacheCache

44、中块地址为中块地址为011011的有效位写为的有效位写为Y Y,标记字,标记字 段写入段写入0000000000,CacheCache内容如下表所示。内容如下表所示。(00000011) Y 00000 (8 8)访问)访问0001000000010000命中,访问命中,访问CacheCache,CacheCache中内容不变;中内容不变; (9 9)访问)访问0001001000010010, Cache Cache中块地址为中块地址为010010的块标记为的块标记为00011000100001100010 ,未命中,访问主存,以(,未命中,访问主存,以(0001001000010010)替

45、换()替换(0001101000011010),修改标记),修改标记 为为0001000010,CacheCache内容如表所示。内容如表所示。00010(00010010)直接映像的特点直接映像的特点 直接映像的地址变换速度快;直接映像的地址变换速度快; 不涉及替换策略;不涉及替换策略; 实现的硬件简单,成本低;实现的硬件简单,成本低; 缺点是每一主存块只能调入缺点是每一主存块只能调入CacheCache中某一指定的区域,中某一指定的区域,块冲突的概率高,块冲突的概率高,CacheCache的效率低;的效率低;主存与主存与Cache的地址映射的地址映射v全相联映射全相联映射n主存中的每一个字

46、主存中的每一个字块映像到块映像到cache中中的任意一行的任意一行n块号即为行标记块号即为行标记主存与主存与Cache的地址映射的地址映射v 全相联映射实例全相联映射实例 主存为主存为1MB,划分,划分2048块;块;Cache容量为容量为8KB,全相联全相联Cache如何设计?如何设计?1. 主存容量为主存容量为1MB,块内容量,块内容量512B。主存地址为。主存地址为20位;位;其中块地址其中块地址11位,块内地址位,块内地址9位。位。2. Cache容量为容量为8KB,行容量为,行容量为512B,共,共16行。行内地行。行内地址址9位。位。3. Cache中各行标记为中各行标记为11位,

47、对应主存中的数据块编号位,对应主存中的数据块编号(地址)。(地址)。主存与主存与Cache的地址映射的地址映射v全相联映射实例全相联映射实例4.读过程读过程nCPU给出给出20位地址。位地址。nCache将高将高11位的块地址与所有位的块地址与所有各行的标记进行比较。各行的标记进行比较。n命中则将低命中则将低9位的块(行)内地位的块(行)内地址送入址送入Cache完成访问。完成访问。n否则从主存读出数据并复制数否则从主存读出数据并复制数据块到据块到Cache。图4 -40 cache原理图优点:存放位置灵活,命中率高优点:存放位置灵活,命中率高缺点:当缺点:当Cache或主存规模很大时,块地址

48、比较过程非常复杂,或主存规模很大时,块地址比较过程非常复杂,硬件实现复杂度高。硬件实现复杂度高。结论:全相联映射仅适用于小容量的结论:全相联映射仅适用于小容量的Cache设计设计全相联映像下的访存过程全相联映像下的访存过程访存过程访存过程 以图表示。以图表示。 Cache Cache由存放从主存调入的数据和调入块的主存块号(作为由存放从主存调入的数据和调入块的主存块号(作为“标记标记”)组成;)组成;CPUCPU访问存储器时,给出由访问存储器时,给出由“主存块号主存块号”及及“块内地址块内地址”组成的主存地址。将主存地址中的标记依次组成的主存地址。将主存地址中的标记依次分别同分别同CacheC

49、ache中的各标记送比较器比较中的各标记送比较器比较: 若有一个相等若有一个相等,说明被命中,由说明被命中,由主存块号主存块号转换为转换为CacheCache块号块号,同,同 主存地址中的块内地址主存地址中的块内地址组合为组合为CacheCache地址访问地址访问CacheCache; 若无一个相等若无一个相等,说明未被命中,则以主存块地址说明未被命中,则以主存块地址访问主存访问主存,并,并 在在CacheCache中各块未充满情况下,则将该中各块未充满情况下,则将该块数据调入到块数据调入到CacheCache 任意空任意空 块块中,或在中,或在CacheCache中各块都已充满情况下,则采用

50、一定的中各块都已充满情况下,则采用一定的替换算法替换算法 替换替换掉掉CacheCache中某一块中某一块,然后把该块的主存块号作为新标记写入到,然后把该块的主存块号作为新标记写入到 Cache Cache中该块的标记处以中该块的标记处以修改标记修改标记。全相联映像的特点全相联映像的特点 全相联映像在全相联映像在CacheCache中各块全部装满时才会出现块冲突,中各块全部装满时才会出现块冲突,可以灵活地进行块的分配,所以块冲突概率低;可以灵活地进行块的分配,所以块冲突概率低; Cache Cache的利用率高;的利用率高; 标记检查速度慢,控制复杂,比较电路较难实现;标记检查速度慢,控制复杂

51、,比较电路较难实现; 用硬件来实现替换算法;用硬件来实现替换算法; 适用于容量较小的适用于容量较小的CacheCache中,使参与比较的标记较少、比中,使参与比较的标记较少、比较电路相应简单、检索速度也不会太长。较电路相应简单、检索速度也不会太长。 例:例:设在全相联映像的设在全相联映像的CacheCache中,主存地址块号中,主存地址块号8 8位,位,CacheCache块块号号3 3位,位,CPUCPU在访存过程中依次访问主存单元的高在访存过程中依次访问主存单元的高8 8位地址为:位地址为: 0001011000010110,0001101000011010,000101100001011

52、0,0001101000011010,0001000000010000,0000001100000011,0001000000010000,0001001000010010。 要求画出全相联映像下完成上述访问后要求画出全相联映像下完成上述访问后CacheCache的调入块的分配的调入块的分配情况,并同直接映像的分配情况作对比。情况,并同直接映像的分配情况作对比。 解:解:为简单起见,把被访问的为简单起见,把被访问的8 8个主存单元的块地址依次用十进制表示个主存单元的块地址依次用十进制表示 为:为:2222、2626、2222、2626、1616、3 3、1616、18,18,省略省略Cache

53、Cache标记等,根据例标记等,根据例4-14-1的的 分析,可画出直接映像方式下分析,可画出直接映像方式下CacheCache中的块分配情况如图中的块分配情况如图4-194-19所示,第所示,第8 8 次访问时,虽然次访问时,虽然CacheCache中中8 8块仅装入了块仅装入了4 4块,但还是发生了块冲突,因为块,但还是发生了块冲突,因为1818 mod 8 = 26 mod 8 mod 8 = 26 mod 8必须进行替换操作。必须进行替换操作。18同样,可画出全相联映像方式下同样,可画出全相联映像方式下CacheCache中的块分配情况如图中的块分配情况如图4- 4-2020所示,从图

54、可见,所示,从图可见,8 8次访问后,次访问后,CacheCache未被装满,不会发生未被装满,不会发生块冲突。块冲突。22222622262226222616222616 3 222616 3222616 318主存与主存与Cache的地址映射的地址映射v组相联映射组相联映射nCache被划分为被划分为 组,每组包含组,每组包含 行行(称为(称为v路)路)n以以 为模确定数据块缓存的目标组为模确定数据块缓存的目标组n数据块可以存储于目标组的任意一行数据块可以存储于目标组的任意一行与直接映射相与直接映射相比,将行扩展比,将行扩展为组为组主存与主存与Cache的地址映射的地址映射v 组相联映射实

55、例组相联映射实例 主存为主存为1MB,划分,划分2048块;块;Cache容量为容量为8KB,组相联组相联Cache如何设计?如何设计? (假设每组包含(假设每组包含2行,行,即即2路组相联路组相联Cache)1. 主存容量为主存容量为1MB,块内容量,块内容量512B。Cache容量为容量为8KB,行容量为行容量为512B,共,共16行,行,8组。组。2. 主存可以划分为主存可以划分为2048/8=256个区。总地址为个区。总地址为20位;其位;其中块内地址中块内地址9位,位, 3位地址为组编号,位地址为组编号, 高高8位地址作为位地址作为区编号(组内块编号)。区编号(组内块编号)。区编号作

56、为行标记存储。区编号作为行标记存储。主存与主存与Cache的地址映射的地址映射v组相联映射实例组相联映射实例3.读过程读过程nCPU给出给出20位地址。位地址。nCache利用中间利用中间3位的组编号确定目标组。位的组编号确定目标组。nCache将高将高8位的区编号与组内各行的标记比较。位的区编号与组内各行的标记比较。n命中则利用低命中则利用低9位的块(行)内地址完成访问。位的块(行)内地址完成访问。n否则从主存读出数据并复制数据块到否则从主存读出数据并复制数据块到Cache。全相联与直接映射的混合体,将逐行匹配工作局限于组内,全相联与直接映射的混合体,将逐行匹配工作局限于组内,兼具灵活性和易

57、于实现等优点兼具灵活性和易于实现等优点例如:地址00000000 100 XXXXXXXXX对应某区的第4块和Cache的第4组(第6、7行),只要两行标记之一为00000000,则表示第0区的第8行位于Cache中,即命中主存和主存和CacheCache的地址结构的地址结构 组相联映像中主存地址结构为:组相联映像中主存地址结构为: Cache地址结构为:地址结构为: Cache地址中块内地址和组号部分直接取自主存地址。组内地址即地址中块内地址和组号部分直接取自主存地址。组内地址即 组内块号是查找地址映像表的结果。组内块号是查找地址映像表的结果。 组相联地址映像表又称为组相联地址映像表又称为“

58、块表块表”。用来检索。用来检索Cache是否被命中,是否被命中, 形成命中块的形成命中块的Cache地址,地址, “块表块表”如下图所示。如下图所示。 检索标记包括二部分检索标记包括二部分: 区号标记区号标记和和组内块号标记组内块号标记。 访存时,根据主存地址中组号在访存时,根据主存地址中组号在“地址映像表地址映像表”中的该组对应的中的该组对应的表表 项中项中 ,查找有无和主存地址的区号和组内块号相同的主存区号标记,查找有无和主存地址的区号和组内块号相同的主存区号标记 和组内块号标记:和组内块号标记: 若有若有,表示表示Cache被被命中命中,将对应的将对应的Cache块号取出,形成块号取出,

59、形成Cache 地址地址访问访问Cache。 若无,若无,表示表示Cache未被命中未被命中,在对在对主存进行访问主存进行访问同时,将主存中对同时,将主存中对 应块应块调入调入Cache中相应组中相应组的的一块一块中,并在地址映像表中对应中,并在地址映像表中对应Cache块块 号标记处写入主存区号、组内块号,改变地址映像关系。号标记处写入主存区号、组内块号,改变地址映像关系。 主存块存入主存块存入Cache中哪一组是由直接映像规定的,关于存入该组中中哪一组是由直接映像规定的,关于存入该组中 哪一块是由全相联映像规定,这里也涉及替换操作及替换算法。哪一块是由全相联映像规定,这里也涉及替换操作及替

60、换算法。 例例 设两路组相联映像设两路组相联映像CacheCache中,主存块地址(块号)中,主存块地址(块号)8 8位,位,CacheCache块号块号3 3位,分区分组情况同图位,分区分组情况同图4-214-21,CPUCPU在访存过程中,依次访问在访存过程中,依次访问主存单元的两主存单元的两8 8位地址(块地址)为:位地址(块地址)为: 00010110 00010110(2222),),0001101000011010(2626),),0001011000010110(2222),),0001101000011010(2626),),0001000000010000(1616),),0

温馨提示

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

评论

0/150

提交评论