2016-03-04 79 views
1

我对CPU高速缓存很困惑。关于CPU高速缓存的困惑

我试着查找他们的工作,但我得到的是:

  1. 它比主内存快。
  2. 你不能实际检查你的程序是否正在使用它。
  3. 不使用它显着减慢你的程序。
  4. 你不应该关心它。
  5. 如果你不关心它,你的程序运行速度可能会慢20倍。
  6. 管理缓存的最佳选择是受过教育的时间猜测。
  7. 不同的缓存可能使用不同的缓存算法。

什么混淆我对他们是:

  1. 如何为命中缓存检查?它里面有处理器吗?
  2. 缓存如何与进程交换进行交互?恐怕即使我的程序是1kb,而我的缓存是32kb,cpu也可能不会利用本地,因为它会继续交换它。

感谢您的帮助!

回答

1

这是一个很大的话题,所以不要试图将一个令人困惑的答案塞进一个小盒子,让我指出你在Ulrich Drepper的优秀What Every Programmer Should Know About Memory。它以一种非常透彻和可理解的方式解释了整个话题。

+1

这有点令人沮丧的阅读量,但我会尽我所能去消化它。感谢您的链接。 – Dmitry

+0

@Dmitry第3节是关于缓存;你可以跳到那一部分。 – Crashworks