【问题标题】:Time required to access the memory locations in the same cache line访问同一高速缓存行中的内存位置所需的时间
【发布时间】:2021-04-22 08:16:27
【问题描述】:

将下图中的大框视为缓存,将块视为缓存中的单个缓存行。

CPU 将数据(数组 A 的前 4 个元素)从 RAM 中提取到缓存块中。

现在,我的问题是,对缓存块中的所有 4 个内存位置(A[0]A[1]A[2]A[3])执行读/写操作是否需要完全相同的时间?差不多吗?

PS:我期待一个理想情况的答案,即在任何内存位置执行任何读/写操作的运行时不受用户进程或应用程序上的操作系统抖动影响。

【问题讨论】:

    标签: memory cpu-architecture cpu-cache


    【解决方案1】:

    由于缓存中的行已经很热,因此访问缓存中任何对齐的字的时间是恒定的。处理地址的行内偏移部分的硬件不必迭代到正确的位置或任何东西,它只需将这些字节多路复用到输出。

    如果行在缓存中已经很热,那么这取决于缓存的设计。如果 CPU 没有在宽总线上一次传输整条线路,那么线路中的一个/一些字将在其他字之前到达。支持early-restart的缓存可以让加载在需要的单词到达时就完成。

    关键字优先总线和内存允许那个字成为第一个因需求缺失而传输的字。否则它们会以某种固定的顺序到达,并且该行最后一个字的缓存未命中可能需要额外的几个周期。

    相关:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多