【发布时间】:2016-11-27 15:28:43
【问题描述】:
我无法理解如何确定标记/索引/偏移位,因为问题的措辞让我感到困惑。澄清一下,架构中的一个词是 64 位的。 这是第一个问题:
缓存对于提供高性能内存层次结构很重要 到处理器。下面是 64 位内存地址引用的列表, 作为单词地址给出。 0x03, 0xb4, 0x2b, 0x02, 0xbf, 0x58, 0xbe, 0x0e, 0xb5, 0x2c, 0xba, 0xfd
对于这些引用中的每一个,确定二进制字地址, 给定直接映射缓存的标记、索引和偏移量 两个字块,总大小为八个块。还列出如果每个 假设缓存最初是空的,引用是命中还是未命中。
解决方案表明偏移量由 1 位组成,因为它需要 1 位来表示 2 个不同的块“字”。所以我试图将块分成两部分(偏移量)。我怎么知道您应该将块拆分为单词(为什么不是字节)?显然,块中的部分确定了表示块部分所需的偏移位数。但是 2 个字是 16 个字节,那么为什么不将块分成 16 个部分来指示字节而不是 2 个部分来指示字呢?如果块被分成 16 个部分(对于 2 个字的所有字节),是否需要 4 个偏移位来确定块中的 16 个不同字节部分?我正在努力知道如何弄清楚块部分应该有多大。说“两个词块”的问题是否暗示我应该将这些块可视化为单词? 2 字块与 16 字节块相同吗? (一个字8字节)
以下问题提到了字节寻址,这让我很困惑。它有什么关系?:
按照惯例,缓存是根据它的数据量命名的 包含(即,一个 4 KiB 的缓存可以容纳 4 KiB 的数据);但是,缓存 还需要 SRAM 来存储元数据,例如标签和有效位。为了 在本练习中,您将检查缓存的配置如何影响 实现它所需的 SRAM 总量以及 缓存的性能。对于所有部分,假设缓存是 字节可寻址,并且地址和字都是 64 位。
计算实现 32 KiB 所需的总位数 包含两个字块的缓存。
这两个问题都来自 David Patterson 和 John L Hennessy 的 Computer Organization and Design
【问题讨论】:
-
闻起来像作业。
-
@TurboJ 如果您进一步阅读,您会发现我有解决方案。 “解决方案表明......”你甚至读过这篇文章吗?我没有问过如何做这些问题。我很困惑如何知道何时将偏移位基于整个单词或一个字节..
-
“我无法理解这个写得模棱两可的问题”可能应该针对写这个问题的人。至少在没有看到所有随附的课程材料的情况下,很难推断出应该假设的内容。它给出字地址并要求字地址的事实确实在某种程度上暗示了字可寻址缓存,尽管......
-
@Notlikethat 它来自教科书(David Patterson 和 John L Hennessy 的计算机组织和设计)。我想我主要想知道的是字可寻址是否意味着块部分被分成单词(如第一个问题),而字节可寻址意味着块部分被分成字节?如果第一个问题是字节可寻址的(为了便于理解),是否会有 4 个偏移位而不是当前答案 1(因为现在将有 16 个块部分)?
-
@artlessnoise 教科书中提到 LEGv8(书中研究的架构)是 ARMv8 的一个子集。书中还有大量对 ARM 的引用。网上没有太多关于 LEGv8 的内容。我什至找不到它的标签..
标签: memory cpu-architecture cpu-cache