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

下载本文档

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

文档简介

计算机组成原理——第4章主存储器逻辑设计1.存储器容量扩展位扩展字扩展字位扩展2.存储控制集中刷新分散刷新异步刷新3.存储校验线路半导体存储器的组成与控制复习(一)RAM存储器芯片总结RAM存储器芯片有多种型号,每一RAM存储器芯片具有:地址线Ai:引脚数与存储芯片的单元数有关;数据线Di:引脚数与存储芯片的字长有关;片选信号CS:只有CS有效时,芯片才被选中,所连地址线才有效,才能进行读/写操作。读/写信号WE:为0,控制写入电路进行写入;为1,控制读出电路进行读出。电源线、地线复习(二)例1:某RAM芯片,其存储容量为16K×8位,问:(1)该芯片引出线的最小数目应为多少?(2)存储器芯片的地址范围是什么?解:(1)16K=214,所以地址线14根;字长8位,所以数据线8根。

14+8+1+1+1+1=26地址线数据线片选读/写电源线地线(2)存储器芯片的地址范围为0000H~3FFFH存储器芯片的地址范围:地址线从全“0”到全“1”的所有编码复习(三)SRAM芯片2114(1K×4位)外特性:地址端:2114(1K×4)191018A6A5A4A3A0A1A2CSGNDVccA7A8A9D0D1D2D3WEA9~A0(入)数据端:D3~D0(入/出)控制端:片选CS=0选中芯片=1未选中芯片写使能WE=0写=1读电源、地1、存储器容量扩展位扩展

——扩展每个存储单元的位数

(扩展宽度)字扩展

——扩展存储单元的个数

(扩展长度)字位扩展——两者的综合

(扩展宽度和长度)假设扩展同种芯片,则需要的芯片:

总片数=总容量/(容量/片)………………位扩展字扩展字位扩展1、存储器容量扩展——位扩展例2使用8K×1位RAM芯片组成8K×8位的存储器,画出逻辑框图。分析:①芯片位数小于存储器所要求的位数,需进行位扩展。②8个芯片的关系是平等的,同时工作,并联的,对应的地址一一相连。③详细的连接见下图:I/OI/OI/OI/OI/OI/OCS8K×1位RAM芯片组成8K×8位的存储器D0D7数据线

I/O8K×1I/OWEA0A12地址线每片一位组成一个字节

例:用64K×1b的存储器芯片组成64K×8b(64KB)的存储器。

采用位扩展方式,需要芯片数为:

=8片

每片芯片应有16根地址线:A0–A15,

8片芯片的地址线A15~A0分别连在一起同CPU的地址线A15~A0相连;每片只有一位数据线,8片芯片的8位数据线分别和CPU的数据线D7~D0相连。

当CPU访问该存储器时,其发出的16位地址同时传给8个芯片,选中每个芯片的同一单元;CPU发出的读/写控制信号同时传给8个芯片。

该存储器连接如图所示。位扩展总结:当构成内存的存储芯片的字长<内存单元的字长时,就要进行位扩展,使每个单元的字长满足要求。位扩展方法:将每片的地址线、片选CS、读写控制线并联,数据线分别引出。位扩展特点:存储器的单元数不变,位数增加。…存储器容量扩展——字扩展例

使用16K×8位的RAM芯片组成一个64K×8位的存储器。分析:①芯片的字数不够,需进行字扩展。②共需芯片数目是64K÷16K=4。将4片RAM的地址线、数据线、读写线一一对应并联。③出现地址线不够问题,如何解决?

可以用高2位地址作为选片端。④详细的连接见下图:CSWECSWECSWECSWE16K×8位的RAM芯片组成一个64K×8位的存储器地址端地址端CSWE地址端地址端10

例:用64K×8b的存储器芯片组成512K×8b(512KB)的存储器。

采用字扩展方式,所需芯片数为:

=8片

每片芯片应有16根地址线:A0-A15

;计算机系统有20根地址线:A0-A19

,8片芯片的地址线A15~A0分别连在一起同CPU的20位地址线中

A15~A0相连;采用全译码方式时,高4位地址线A16~

A19通过译码器译码产生

16个片选信号,其中8个分别同8片芯片的片选信号连接;每片只有8位数据线,8片芯片的8位数据线并联分别和CPU的数据线D7~D0相连。

采用字扩展法的存储器连接如图所示。字扩展总结:特点:地址空间的扩展。芯片每个单元中的字长满足,但单元数不满足。扩展原则:每个芯片的地址线、数据线、读写控制线并联,仅片选端分别引出,以实现每个芯片占据不同的地址范围。…存储器容量扩展——字位扩展实际存储器往往需要在字向、位向两个方向同时扩展。一个存储器的容量为M×N位,若使用L×K位的存储芯片,则该存储器共需的芯片个数为:MNLK×需解决:芯片的选用、地址分配与片选逻辑、信号线的连接。…………要求:1、确定整个存储器所需的芯片数及芯片的分组情况;2、确定存储器及每组芯片的地址范围;3、说明地址线的分配方法,并画出存储器的结构图。2114(1K×4)SRAM芯片组成容量为4K×8的存储器例4用2114(1K×4)SRAM芯片组成容量为4K×8的存储器。2114(1K×4)SRAM芯片组成容量为4K×8的存储器1.计算芯片数先扩展位数,再扩展单元数。

2片1K×4

1K×8

4组1K×8

4K×8

8片分析:整个存储器所需要芯片数=(4×8)/(1×4)=8片每组需2114(1K×4)SRAM芯片2片,共4组。位扩展2片芯片CS连在一起,4组字扩展CS要分开。2114(1K×4)SRAM芯片组成容量为4K×8的存储器存储器寻址逻辑2.地址分配与片选逻辑芯片内的寻址系统(二级译码)芯片外的地址分配与片选逻辑为芯片分配哪几位地址,以便寻找片内的存储单元由哪几位地址形成芯片选择逻辑,以便寻找芯片存储空间分配:4KB存储器在16位地址空间(64KB)中占据任意连续区间。2114(1K×4)SRAM芯片组成容量为4K×8的存储器A11A10A9

……

A0000……0001……1011……1101……1010……0100……0110……0111……1片选

芯片地址

64KB1K×41K×41K×41K×41K×41K×41K×41K×4需12位地址寻址:4KBA11~A02114芯片为1K×4位,片内寻址需要10根地址线,为A0~A9低位地址分配给芯片,高位地址形成片选逻辑。芯片芯片地址片选信号片选逻辑1K1K1K1KA9~A0A9~A0A9~A0A9~A0CS0CS1CS2CS3A11A10A11A10A11A10A11A10整个存储器的地址范围:000H~FFFH共分为4组,每组的地址范围为: 第一组:000H~3FFH 第二组:400H~7FFH 第三组:800H~BFFH 第四组:C00H~FFFH2114(1K×4)SRAM芯片组成容量为4K×8的存储器2114(1K×4)SRAM芯片组成容量为4K×8的存储器3.连接方式(1)扩展位数(2)扩展单元数(3)连接控制线(4)形成片选逻辑电路11100100例:某半导体存储器总容量4K×8位。其中固化区2K字节,选用EPROM芯片2716(2K×8位);工作区2K字节,选用SRAM芯片2114(1K×4/片)。地址总线A15~A0(低),双向数据总线D7~D0(低)。2K×81K×41K×41K×41K×4000007FF08000BFF0C000FFF确定芯片:1块2716,4块2114,如图组织逻辑地址位扩展就是并联多个芯片的地址线,可以视为多组8位芯片字扩展就是确定片选信号,根据地址线总宽度和地址分配情况,确定片选信号产生逻辑芯片1:/A11芯片2:A11·/A10芯片3:A11·A101K×81K×8设计目标:4K×8的地址空间片选信号的产生逻辑—寻找地址空间的特征值4K空间需12位地址,A15~A12不用芯片1:0000~07FF,A10~A0全部占用为地址信号,A11始终为0,此空间外地址的A11必为1,故片选逻辑为/A11芯片2:0800~0BFF,A9~A0全部占用为地址信号,A11始终为1,A10始终为0,故片选逻辑为A11

·/A10芯片3:0C00~0FFF,A9~A0全部占用为地址信号,A11始终为1,A10始终为1,故片选逻辑为A11

·A10字扩展:片选逻辑具有排他性,确保同一时刻只有一个芯片在工作设计结果芯片1使用11位地址A10~A0,A11用于片选芯片2、3都使用并联的10位地址A9~A0,

并将A11、A10用于片选2K×81K×41K×41K×41K×4000007FF08000BFF0C000FFF27162114211421142114D7~4D3~0R/WCS0CS1CS2A11A11A10A11A10A10~0A9~0A9~0地址芯片级存储器逻辑图应表示出:所用存储芯片。各芯片的地址线。片选逻辑。注意,芯片的片选信号一般是/CS,即低电平有效,设计往往先从逻辑命题真写出逻辑式数据线。数据总线是双向总线,数据通路宽度8位。ROM芯片数据为单向输出。RAM芯片为双向连接。2114每片4位,分别连到数据线D7~D4和D3~D0,两组拼接为8位。读/写控制R/W。2716没有R/W输入端,R/W信号只送至RAM芯片2114。

思考题:用8K×8位的ROM芯片和8K×4位的RAM芯片组成存储器,按字节编址,其中RAM的地址为2000H~7FFFH,ROM的地址为C000H~FFFFH,画出此存储器组成结构图及与CPU的连接图。解题提示:ROM芯片在联机工作中是只读不写,即单向输出,无WE线。RAM芯片可读可写,双向连接。思考题:1.计算容量和芯片数高位地址A15A14A13为001~011,RAM的容量为8K×3=24K,需要8K×4位的RAM芯片6片。RAM区:地址范围展开为001000000000

0000

011111111111

1111RAM单个芯片的容量为8K=213011111111111

1111001000000000

0000ROM区:

末地址-首地址=FFFFH-C000H=3FFFH所以ROM的容量为214=16K,需要8K×8位的ROM芯片2片。高位地址A15A14A13为110~111

ROM的地址范围展开为111111111111

1111110000000000

0000CS1A15A14A13CS3A15A14A13CS6A15A14A13CS7A15A14A13001

1……1思考题:A15A14A13A12……A00010……0

110

1……1

110

0……0低位地址分配给芯片,高位地址形成片选逻辑。选用3:8译码器(74LS138)40KB需16位地址寻址:RAMA15~A0ROM64KB8K×88K×48K×48K×48K×48K×48K×48K×8010010011011111111片选信号片选逻辑CS2A15A14A13存储系统CPU与主存巨大的性能差距——MemoryWall提高访存效率的途径增强存储器的性能增加存储器字长采用并行操作的双端口存储器每个周期存取多个字CPU与主存之间插入高速的Cache存储系统CACHE主存(内存)辅存(外存)根据各种存储器的存储容量、存取速度和价格比的不同,将它们按照一定的体系结构组织起来,使所放的程序和数据按照一定的层次分布在各种存储器中。CPU

Cache是为弥补主存速度的不足,在CPU和主存之间设置的高速、小容量的缓冲存储器。组成:小容量的SRAM和高速缓存控制器组成。功能:将CPU当前快要用到的部分数据块由主存复制到容量小、速度快的SRAM中,由SRAM向CPU直接提供它所需要的数据。高速缓冲存储器(Cache)为了使CPU不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施。实现的途径有:主存储器采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长;采用并行操作的双端口存储器;在CPU和主存储器之间插入一个高速缓冲存储器(cache),以缩短读出时间;在每个存储器周期中存取几个字。

高速缓冲存储器(Cache)图4-39CPU存储器系统的关系Cache的基本原理介于CPU与主存之间基于高速的SRAM小容量、高速度硬件实现的管理功能对程序员透明可以集成到CPU中一种高速缓冲器,解决CPU与主存之间速度不匹配的一项技术Cache的基本原理读操作CPU发送地址到Cache/主存Cache命中则直接读出数据否则主存将数据送至CPU和Cache图4-40cache原理图主存→Cache以块为单位,即:复制目标存取字在内的一块数据目的:下次读取时可以直接访问CacheCache的基本原理程序局部性原理CPU访问存储器时,无论是取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。两种不同类型的局部性时间局部性(TemporalLocality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。空间局部性(SpatialLocality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。指令的顺序执行、数组的连续存放等是产生空间局部性的原因。Cache的基本原理帕雷托法则(Paretoprinciple),也称为80/20法则,此法则指在众多现象中,80%的结果取决于20%的原因,而这一法则在很多方面被广泛的应用。在计算机科学里,帕雷托法则可借由观察80%的资源是由20%所操作使用,来最佳化资源。在软件工程上,常有接近90%的电脑程序执行次数花费在10%的程式源代码执行。在图书资讯学里,一间图书馆的20%馆藏是由80%的读者所借阅。Cache的基本原理Cache的组成基于SRAM的存储实体硬件控制逻辑存取单位CPU与Cache之间的数据交换以字为单位Cache与主存之间的数据交换以块为单位,一个块由若干字组成,是定长的。图4-40cache原理图Cache的基本原理数据块Cache与主存之间的数据交换单位主存单元的逻辑划分主存中的块对应Cache中的行,二者长度相等且固定—一一对应数据字地址被划分为块号/行标记和块/行内部地址两部分Cache主存标记块行命中:地址的块号与某一行的行标记匹配主存与Cache的地址映射Cache主存标记块行?主存标记Cache块号块内地址主存块号主存地址7位4位9位Cache块号块内地址cache地址4位9位图4-40cache原理图主存与Cache的地址映射地址映射建立主存数据块与Cache行,以及主存地址与Cache存储单元的对应关系利用硬件实现对CPU/程序员透明映射策略全相联映射直接映射组相联映射主存与Cache的地址映射直接映射主存中的某个字块只能缓存与Cache中的特定行利用模运算克服Cache与主存的容量差距,模即为Cache中的行数例如:对于4行Cache而言,主存中的第0、4、8、16…块均只能缓存于第0行主存与Cache的地址映射直接映射实例

主存为1MB,划分2048块;Cache容量为8KB,直接映射Cache如何设计?主存容量为1MB,块内容量512B。Cache容量为8KB,行容量为512B,共16行。主存可以划分为2048/16=128个区,每区含16块。总地址为20位;其中块内地址9位,4位地址作为区内编号(地址),高7位作为区编号。区编号作为行标记存储。主存与Cache的地址映射直接映射实例读过程CPU给出20位地址。Cache利用中间4位的区内编号确定目标行。Cache将高7位的区编号与该行的标记进行比较。命中则利用低9位的块(行)内地址完成访问。否则从主存读出数据并复制数据块到Cache。例如:地址00000001000XXXXXXXXX对应某区的第8块和Cache的第8行,只要该行标记为0000000,则表示第0区的第8行位于Cache中,即命中主存地址

i=jmodn相当于将主存的地址空间按Cache的空间大小分区,每个区内可按Cache块号编号,这样主存地址结构如下:“区号”作为标记(表示为Tag)存放在“地址映像表”中,用于判断是否命中;“块号”是区内块号,同Cache块号,用于直接查“地址映像表”(用作查表索引),以及在Cache中进行“块寻址”;“块内地址”用于在块内选择字或字节(表示为BS);例如一块有1024个字(16位)或字节,则块内地址为10位(1024个字节)或11位(1024个字)。在上例中,主存地址中区号为5位,块号为3位,块内地址为10位(块内字地址)共18位。主存块号直接映像的访存过程访存过程以图表示。

直接映像方式下的Cache内容由调入数据块的数据和调入块的主存

区号(称为“标记”)组成。访问存储器时给出主存地址,由区号(标记)、块号和块内地址组成,以块号到Cache中检索到该块号所对应块,取出标记部分同主存地址中的标记(区号)送比较器进行比较:

若相等,说明被命中,由该块号加上块内地址构成的Cache地址访问Cache。

若不等,说明未被命中,则以主存地址访问主存,并把主存中该块数据调入填补空块(直接映像只能调入指定块内,不需要采用替换策略)或替换原有的副本,且修改标记值。例4-1:设在直接映像的Cache中,主存地址的区号5位,块号3位,CPU访存过程中,依次访问主存单元高8位地址为:

00010110,00011010,00010110,00011010,00010000,00000011,00010000,00010010。要求写出每次访问后Cache中的内容。

解:(1)开始工作时Cache的初始状态如表

(2)访问0010110,Y00010(00010110)

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

块地址为010的数据段中后,Cache中块地址为010的有效位写为Y,标记字段写入00011,Cache内容如下表所示,((00011010)表示块内容)。(4)访问00010110命中,访问Cache,Cache中内容不变;(5)访问00011010命中,访问Cache,Cache中内容不变;

(6)访问00010000,Cache中块地址为000的块内无数据——有效位为N,未命中,访问主存,将主存块号00010000的内容调入Cache

块地址为000的数据段中后,Cache中块地址为000的有效位写为Y,标记字段写入00010,Cache内容如下表所示。,((0001000)表示块内容)。Y00010(00010000)

(7)访问00000011,Cache中块地址为011的块内无数据—有效位为N,未命中,访问主存,将主存块号00000011的内容调入Cache块地址为011的数据段中后,Cache中块地址为011的有效位写为Y,标记字段写入00000,Cache内容如下表所示。(00000011)Y00000

(8)访问00010000命中,访问Cache,Cache中内容不变;(9)访问00010010,Cache中块地址为010的块标记为00011≠00010,未命中,访问主存,以(00010010)替换(00011010),修改标记为00010,Cache内容如表所示。00010(00010010)直接映像的特点

直接映像的地址变换速度快;不涉及替换策略;实现的硬件简单,成本低;缺点是每一主存块只能调入Cache中某一指定的区域,块冲突的概率高,Cache的效率低;主存与Cache的地址映射全相联映射主存中的每一个字块映像到cache中的任意一行块号即为行标记主存与Cache的地址映射全相联映射实例

主存为1MB,划分2048块;Cache容量为8KB,全相联Cache如何设计?主存容量为1MB,块内容量512B。主存地址为20位;其中块地址11位,块内地址9位。Cache容量为8KB,行容量为512B,共16行。行内地址9位。Cache中各行标记为11位,对应主存中的数据块编号(地址)。主存与Cache的地址映射全相联映射实例读过程CPU给出20位地址。Cache将高11位的块地址与所有各行的标记进行比较。命中则将低9位的块(行)内地址送入Cache完成访问。否则从主存读出数据并复制数据块到Cache。图4-40cache原理图优点:存放位置灵活,命中率高缺点:当Cache或主存规模很大时,块地址比较过程非常复杂,硬件实现复杂度高。结论:全相联映射仅适用于小容量的Cache设计全相联映像下的访存过程访存过程以图表示。Cache由存放从主存调入的数据和调入块的主存块号(作为“标记”)组成;CPU访问存储器时,给出由“主存块号”及“块内地址”组成的主存地址。将主存地址中的标记依次分别同Cache中的各标记送比较器比较:

若有一个相等,说明被命中,由主存块号转换为Cache块号,同主存地址中的块内地址组合为Cache地址访问Cache;

若无一个相等,说明未被命中,则以主存块地址访问主存,并在Cache中各块未充满情况下,则将该块数据调入到Cache任意空块中,或在Cache中各块都已充满情况下,则采用一定的替换算法

替换掉Cache中某一块,然后把该块的主存块号作为新标记写入到Cache中该块的标记处以修改标记。全相联映像的特点

全相联映像在Cache中各块全部装满时才会出现块冲突,可以灵活地进行块的分配,所以块冲突概率低;Cache的利用率高;标记检查速度慢,控制复杂,比较电路较难实现;用硬件来实现替换算法;适用于容量较小的Cache中,使参与比较的标记较少、比较电路相应简单、检索速度也不会太长。

例:设在全相联映像的Cache中,主存地址块号8位,Cache块号3位,CPU在访存过程中依次访问主存单元的高8位地址为:

00010110,00011010,00010110,00011010,00010000,00000011,00010000,00010010。要求画出全相联映像下完成上述访问后Cache的调入块的分配情况,并同直接映像的分配情况作对比。

解:为简单起见,把被访问的8个主存单元的块地址依次用十进制表示为:22、26、22、26、16、3、16、18,省略Cache标记等,根据例4-1的分析,可画出直接映像方式下Cache中的块分配情况如图4-19所示,第8次访问时,虽然Cache中8块仅装入了4块,但还是发生了块冲突,因为18mod8=26mod8必须进行替换操作。18同样,可画出全相联映像方式下Cache中的块分配情况如图4-20所示,从图可见,8次访问后,Cache未被装满,不会发生块冲突。222226222622262226162226163

2226163222616318主存与Cache的地址映射组相联映射Cache被划分为u组,每组包含v行(称为v路)以u为模确定数据块缓存的目标组数据块可以存储于目标组的任意一行与直接映射相比,将行扩展为组主存与Cache的地址映射组相联映射实例

主存为1MB,划分2048块;Cache容量为8KB,组相联Cache如何设计?(假设每组包含2行,即2路组相联Cache)主存容量为1MB,块内容量512B。Cache容量为8KB,行容量为512B,共16行,8组。主存可以划分为2048/8=256个区。总地址为20位;其中块内地址9位,3位地址为组编号,高8位地址作为区编号(组内块编号)。区编号作为行标记存储。主存与Cache的地址映射组相联映射实例读过程CPU给出20位地址。Cache利用中间3位的组编号确定目标组。Cache将高8位的区编号与组内各行的标记比较。命中则利用低9位的块(行)内地址完成访问。否则从主存读出数据并复制数据块到Cache。全相联与直接映射的混合体,将逐行匹配工作局限于组内,兼具灵活性和易于实现等优点例如:地址00000000100XXXXXXXXX对应某区的第4块和Cache的第4组(第6、7行),只要两行标记之一为00000000,则表示第0区的第8行位于Cache中,即命中主存和Cache的地址结构

组相联映像中主存地址结构为:

Cache地址结构为:

Cache地址中块内地址和组号部分直接取自主存地址。组内地址即组内块号是查找地址映像表的结果。

组相联地址映像表又称为“块表”。用来检索Cache是否被命中,形成命中块的Cache地址,“块表”如下图所示。

检索标记包括二部分:

区号标记和组内块号标记。

访存时,根据主存地址中组号在“地址映像表”中的该组对应的表项中,查找有无和主存地址的区号和组内块号相同的主存区号标记和组内块号标记:

若有,表示Cache被命中,将对应的Cache块号取出,形成Cache地址访问Cache。

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

设两路组相联映像Cache中,主存块地址(块号)8位,Cache块号3位,分区分组情况同图4-21,CPU在访存过程中,依次访问主存单元的两8位地址(块地址)为:00010110(22),00011010(26),00010110(22),00011010(26),00010000(16),00000011(3),00010000(16),00010010(18)。要求画出两路组相联映像下完成上述访问后,Cache内调入块的分配情况。解(1)访问00010110(22)8位地址中最高5位“00010”为区号,次2位“11”为组号,末位“0”为组内块号。开始时,Cache内8块都是空的,未命中,访问主存,将主存的第22块数据块内容调入Cache中3组0块,即Cache块地址(块号)“6”;并在地址映像表中Cache块块号为“6”(110)对应区号标记和组内块号标记分别写入00010和

0

。2200010

0地址映像表的内容为:

(2)访问00011010(26),

同理,将26块内容调入1组0块,

Cache块地址“2”。26000110地址映像表的内容为:在地址映象表的3组对应的标记中查到Cache中第6块的区号为00010和组内块号为0,表明副本在Cache中,命中,从表中查得Cache块号为110,可进行访问。(4)访问0001101

0(26)

查得1组中区号为00011,副本在Cache中,命中。

(3)访问00010110(22)

(5)访问00001000(16)未命中,调入到Cache0组0块,Cache块地址“0”;(6)访问00000011(3) 未命中,调入到1组,但1组0块已满,1块尚空,调入到1块,Cache块地址“3”;162622163

(7)访问00010000(16)查得0组中区号为2,副本在Cache中,命中。

(8)访问00010010(18)

Cache中1组已满,0块中存放3区(26)及1块存放0区(3)的数据块。发生块冲突,访问主存替换1组中任一个,现替换0块(FIFO替换),得下图分配情况。184、组相联映像的特点

组内是全相联映像,组间是直接映像。组内的容量为1块时即为直接映像;组的容量为Cache块容量时(只有1组)即为全相联映像。

全相联和组相联可提高命中率,但要涉及替换算法,要应用复杂的多路比较器,硬件电路复杂并使映像速度降低;直接映像的硬件电路较简单,无需考虑替换策略,映像速度快,但命中率较低,易发生块冲突。在计算机系统中,大容量高速Cache采用直接映像,小容量较低速的Cache采用组相联映像和全相联映像。图4-40cache原理图主存与Cache的地址映射地址映射建立主存数据块与Cache行,以及主存地址与Cache存储单元的对应关系利用硬件实现对CPU/程序员透明映射策略全相联映射直接映射组相联映射Cache的基本原理读操作CPU发送地址到Cache/主存Cache命中则直接读出数据否则主存将数据送至CPU和Cache图4-40cache原理图问题:如何替换Cache中的陈旧数据?替换算法最不经常使用算法(LFU)各行配备访问计数器,访问一次加1(越小越糟糕)替换某行后,所有行计数器清0近期最少使用算法(LRU)各行记录不命中次数,不命中加1(越大越糟糕)该行命中后清0随机替换算法随机算法并不一定比“有规则的算法”差硬件实现Cache读写过程读操作命中:直接读Cache中的数据不命中:从主存读出数据,并视情况更新Cache(即:替换Cache中的数据)写操作标志交换方式(写回法)在被替换之前仅在Cache中做标记。仅更新cache单元,用标志位标记,直至修改的字块被从cache中替换出来时,则一次写入内存。写直达法(通过式写入)同时写Cache和主存中的数据特点:写直达法简单,但当一个字被多次更新时,会引起对主存的多次写入,这是不必要的。写回法速度快,但因在最后写主存前,主存中的字块未经随时修改而可能失效。多层次Cache存储器独立的指令Cache与数据Cache哈佛结构多层次Cache结构Core2酷睿2DuoE8200:L1-128K,L2-6MCache一致性问题写入过程并不同时修改Ll,L2和主存内容,造成了数据的不一致——cache一致性问题。Cache的性能Cache的评价指标——命中率

设NC表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:

h=NC/(NC+Nm)

若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,则Cache—主存系统的平均访问时间ta为:若平均访问时间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]为提高访问效率,命中率h越接近1越好,r值以5—10为宜,不宜太大。命中率h与程序行为、cache的容量、组织方式、块的大小有关。Cache的性能例:CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,已知

温馨提示

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

评论

0/150

提交评论