【发布时间】:2018-12-05 04:33:20
【问题描述】:
我试图了解硬件缓存。我有个小想法,但我想在这里问一下我的理解是否正确。
所以我知道缓存映射有 3 种类型,直接、完全关联和集合关联。
我想知道用硬件中的逻辑门实现的映射类型,具体来说是一些计算机系统,为了更改映射,需要更改电气连接?
我目前的理解是,在 RAM 中,存在一个内存地址来引用每个内存块。块内包含单词,每个单词包含多个字节。我们可以用位数来表示选项的数量。 例如,4096 个内存位置,每个内存位置包含 16 个字节。如果我们要引用每个字节,那么 2^12*2^4 = 2^16 需要 16 位内存地址来引用每个字节。
高速缓存还具有内存地址、有效位、标记和一些数据,这些数据能够存储一块 n 字和 m 字节的主存储器。其中 m = n*i(每个字的字节数)
例如,直接映射 1 块主内存只能位于高速缓存中的一个特定内存位置。当 CPU 使用 RAM 的 16 位内存位置请求某些数据时,它首先检查缓存。 它怎么知道这个特殊的 16 位内存地址只能在几个地方?
我的想法是,每个 RAM 地址与缓存地址之间可能存在某种电气连接。然后可以将 16 位地址拆分为多个部分,例如仅将左 8 位与每个高速缓存地址进行比较,然后如果匹配则比较字节位,然后标记位,然后是有效位
我的理解正确吗?谢谢! 如果有人阅读这篇长文,真的很感激
【问题讨论】:
-
也许electronics.stackexchange.com 是这个问题的更好论坛,因为这个问题是关于硬件的。
-
好的,我试试看