计算机组成原理cache映像求地址的问题!!

计算机组成原理cache映像求地址的问题!!,第1张

(1)采用直接映象,MM地址格式是:
主存字块标记:7位
缓存字块地址:9位
字块内地址:5位
(2)采用全相联映象,MM地址格式是:
主存字块标记:16位
字块内地址:5位
(3)采用4路组相联映象,MM地址格式是:
主存字块标记:9位
组地址:7位
字块内地址:5位

CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力,cache用于做cpu和内存的缓存。
Cache的工作原理是基于程序访问的局部性(通俗说就是把经常用到的数据放在一个高速的cache里面)。
对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。
数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。
根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器(Cache)。
系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。
CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。
命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。
只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache的命中率还是相当高的。
一般规定Cache与内存的空间比为4:1000,即128kB Cache可映射32MB内存;256kB Cache可映射64MB内存。在这种情况下,命中率都在90%以上。至于没有命中的数据,CPU只好直接从内存获取。获取的同时,也把它拷进Cache,以备下次访问。

8k=2^13=10 0000 0000 0000B
2000H=0010 0000 0000 0000B
是一样的,H也确实是十六进制的标志
这题的其它答案也都没有问题。

主存容量1MB(1M字节),按字节编值,因此地址总数就为1M个。因为1MB=2^10KB=2^20B(2的20次方字节),每一个字节都要求有唯一的地址,至少要用20个二进制位才能表示1M个不同的地址,所以主存的地址应该是20位。

地址线有多少根没有关系
他可以有100根也没关系
就是说按字寻址的话只用10根就能表示
按字节寻址用11根就能表示每根地址线可以表示两种状态1和0
所以有10根就能表示2的10次方种状态
一种状态就是一个地址。。。
1k个字就得有1k个地址啊(按字寻址嘛!)所以要用1k种状态来表示了

64行,4行一组,共64/4=16组;主存储器有4K个块,每块128字,共2的19次方个字,所以需要19个地址位,因为块长128,所以低7位表示内偏移,因为块编号对16取余是组号,所以用4位表示对应组号,地址中的最8位无法用cache决定,保留。Cache通常由相联存储器实现。

相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签相同的存储块进行访问。

扩展资料:

1、全相联Cache:

在全相联Cache中,存储的块与块之间,以及存储顺序或保存的存储器地址之间没有直接的关系。程序可以访问很多的子程序、堆栈和段,而它们是位于主存储器的不同部位上。

因此,Cache保存着很多互不相关的数据块,Cache必须对每个块和块自身的地址加以存储。当请求数据时,Cache控制器要把请求地址同所有地址加以比较,进行确认。这种Cache结构的主要优点是,它能够在给定的时间内去存储主存器中的不同的块,命中率高;缺点是每一次请求数据同Cache中的地址进行比较需要相当的时间,速度较慢。

2、直接映像Cache:

直接映像Cache不同于全相联Cache,地址仅需比较一次。

在直接映像Cache中,由于每个主存储器的块在Cache中仅存在一个位置,因而把地址的比较次数减少为一次。其做法是,为Cache中的每个块位置分配一个索引字段,用Tag字段区分存放在Cache位置上的不同的块。

单路直接映像把主存储器分成若干页,主存储器的每一页与Cache存储器的大小相同,匹配的主存储器的偏移量可以直接映像为Cache偏移量。Cache的Tag存储器(偏移量)保存着主存储器的页地址(页号)。

以上可以看出,直接映像Cache优于全相联Cache,能进行快速查找,其缺点是当主存储器的组之间做频繁调用时,Cache控制器必须做多次转换。

3、组相联Cache:

组相联Cache是介于全相联Cache和直接映像Cache之间的一种结构。这种类型的Cache使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率。

参考资料来源:百度百科-Cache结构


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12609926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存