-1

Imagine we have a single core chip with a L1 cache. How does the access time of the L1 cache limit the maximum frequency that can be achieved with the core?

Is there some kind of formula that can be used to calculate the frequency of a core, taking the access time in account? So for example if the access time is twice is high, would the frequency be twice as low?

So far I've read that the access time is 1/frequency, is this correct?

Thanks in advance.

4

3 回答 3

1

好吧,这取决于为内存访问分配了多少管道阶段。在旧的 5 级 MIPS 架构中,获取是 1 个周期;在现代英特尔 14 级管道上,它是 3 个周期;在某些 ARM 上,它是 2 个周期,等等。基本上对于 N 周期提取,最大频率将是 N/(L1 延迟)

于 2013-09-19T16:37:36.023 回答
0

我的(非公式)答案如下:

  • cpu -> L1 缓存(数据和指令)-> 内存

如果 CPU 能够以比 L1 高速缓存从内存获取指令和/或数据的速度快得多的速度运行,则总流水线速度将受到最低速度的限制,即 CPU 将以较低的 L1 高速缓存速度运行.

为了防止这个问题,我们有许多技术,如缓存预取、用于并行内存访问的内存库等,以保持 CPU 以最高速度运行。

于 2013-09-16T23:42:11.553 回答
0

什么样的芯片,微架构是什么?

我没有看到任何直接联系 - 如果您访问缓存的时间比单个周期更长,如果您是有序的,您可以在加载/存储后引入一个气泡,或者如果您是CPU 乱序(因为加载/存储的消费者可以等待数据返回,而其余指令正在执行)。

您可以说,在有序 CPU 上,延长周期持续时间(较低频率)是一个更好的权衡,但这是一个设计问题。如果您的平均代码几乎没有任何内存操作怎么办?(即您正在优化计算密集型代码)

于 2013-09-17T13:29:56.713 回答