繁体   English   中英

这个缓存中有多少块?

[英]How many blocks in this cache?

使用练习 5.2 中的引用序列,显示具有两个字块且总大小为 24 个字的三路组关联高速缓存的最终高速缓存内容。

问题来了,这个缓存中有多少“块”。

我认为一个块有2个词,所以应该有12个块,在三路中,一个路包含4个块。 但是解决方案说每条路有 24/3=8 个块。

我错了吗? 或者解决方案不正确?

问题来了,这个缓存中有多少“块”。

24 个字/每块 2 个字 = 12 个块。


每条路块

一组的一种方式是一个缓存行,也就是 1 个块,我们被告知这个缓存是 2 个字。 所有集合的 3 种方式之一是24 words / 3 ways = 8 words = 4 blocks 你是对的。

这是描述集合总数的一种奇怪方式,但它是一回事。 您也可以将其计算为12 blocks / 3 blocks-per-set = 4 sets 根据定义,每种方式都是 1 个块,因此 3 向集关联意味着 3 个块/集。 所以24 words / (2 words/block * 3 blocks/set) = 24/6 blocks/set = 4 blocks/set

这是什么教材? 这不是 CS:APP 3e 全球版,是吗? 那个版本教科书中的练习题被出版商雇佣的不称职的人所取代,参见CS:APP example uses idivq with two operands?

每路 8 个字(每组的大小)是索引同一组的字地址之间的距离,因此相距很远的访问将相互混淆,并可能产生更多的冲突未命中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM