为啥 RAM 不如寄存器/高速缓存那么快? [关闭]

Posted

技术标签:

【中文标题】为啥 RAM 不如寄存器/高速缓存那么快? [关闭]【英文标题】:Why isn't RAM as fast as registers/cache memory? [closed]为什么 RAM 不如寄存器/高速缓存那么快? [关闭] 【发布时间】:2011-11-23 19:51:39 【问题描述】:

为什么我们需要在Cache Memory中缓存?为什么 RAM 内存不能像寄存器一样快,高速缓存或高速缓存不能像 RAM 内存(4GB)一样大,以便所有内容都可以在缓存中?有什么好的文章/书籍可以理解这些概念吗?

【问题讨论】:

+1 回答我一直只是“盲目假设是这种情况”但从未花时间真正问自己为什么的问题... Petzold 的“代码”书可能涉及到这一点,它也是非常初级的。您的问题跨越了数十年的技术。有些微控制器,如旧处理器,内存和寄存器的速度相同。大多数情况下,答案是“按设计”、“出于成本考虑”。你可以做一个 4GB 内存的处理器,没有等待状态,但由于价格,没有人会买它。 缓存往往是多层的,最贵最快的内存在最底层的缓存,大小受芯片面积特别是价格的影响,有多少人愿意花4000美元他们计算机中的处理器只是为了获得更多的l1缓存?不多,不够。越接近处理器(高速缓存)的内存越接近处理器速度,千兆赫兹的处理器会想要读取往返时间与速度相似的内存。 1333MHz DRAM 不是 1333MHz 内存读取周期时序,mhz 来自到芯片的总线速度,其中多个事务在进行中,但往返速度非常慢。系统工程,尤其是 x86,严重依赖缓存层,如果您要关闭这些缓存,您的计算机将会非常缓慢。不过,这就是它的美妙之处,有点贵的内存,更便宜的内存是速度的一半或四分之一,而且内存很慢。 显然这个问题不应该被关闭...使用谷歌研究 sram 与 dram。例如,我们今天使用的是 DDR DRAM,在搜索中使用 ddr 可能会发现更多关于它是如何工作的信息。在阅读技术时,您必须推断性能影响和成本在哪里。然后,如果您想查找缓存以了解缓存如何平滑处理,并推断缓存内存由昂贵的 sram 组成,并且通常比 dram 或它后面的其他缓存快得多。 【参考方案1】:

寄存器和缓存位于 cpu 芯片本身上,或者与它紧密相连。普通 RAM 是通过地址总线访问的,它通常会受到内存映射的一定程度的间接影响。

【讨论】:

为什么我们不能将整个 RAM 或缓存​​与 RAM 一样大的 CPU 芯片本身?或者为什么将寄存器或缓存的大小限制为远小于 RAM 的大小? 因为你只能在一个芯片上放这么多电路,在尺寸变得太大之前,良率下降,成本上升,功率要求上升。 总线速度只是部分答案,内存总线的大部分性能限制是 SRAM 与 DRAM 的结果(请参阅 Tom Zych 的答案)。 有人记得其他公司在 IBM 之前推出 386 时,他们使用 SRAM 是因为他们认为 DRAM 不够快吗?【参考方案2】:

更快的东西每比特成本更高。所以你有一个递减的存储链,从一端的几个寄存器,通过几级缓存,一直到 RAM。每个级别都比以前的级别更大且速度更慢。并且一直在底部你有磁盘。

【讨论】:

没错,你可以让所有内存都是 TLB 内存,但成本将是天文数字。 与 RAM 相比,究竟是什么增加了高速缓存的制造成本? 简短的回答是,不同种类的电子电路。这是一篇解释其中一些内容的文章:differencebetween.net/technology/… 这个。 L1/2/3 Cache 由 SRAM 制成。主存储器是DRAM。 SRAM 速度更快,但每个位需要更多晶体管,这使得它更昂贵、更耗电,并且需要更多芯片(不适合典型的 DIMM)。如果你能找到一个旧的 386/486 主板没有-芯片 L2 缓存,看看 SRAM 芯片,你就会明白我的意思。在过去,很多笔记本都因为这个原因省略了二级缓存。

以上是关于为啥 RAM 不如寄存器/高速缓存那么快? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

+4 高速缓存

java内存模型

高速缓存一致性协议MESI与内存屏障

20145336张子扬 《信息安全系统设计基础》第7周学习总结

cache和内存

cache和内存