2017-02-24 142 views
1

cpu缓存和内存缓存有什么区别?cpu缓存和内存缓存有什么区别

[>当数据被缓存在存储器中也有较高的概率

这个数据也被缓存在执行 线程CPU的CPU的高速缓存。] 1

我们如何将缓存与cpu和内存联系起来?

+0

CPU和内存缓存是一样的...除非你指的是寄存器和缓存。如果是这样的话...... http://superuser.com/questions/208932/difference-between-cache-memory-and-register – Kenyanke

回答

2

要详细说明您的问题涉及计算中使用的硬件和软件。

缓存

这只是用来指代数据集被访问经常的总称。

在计算,一个缓存/kæʃ/ KASH,1是存储数据,以便将来的请求该数据可以更快地服务硬件或软件组件。

Source

内存高速缓存

很简单的是,被存储在一个相当快的介质频繁访问的数据,例如的高速缓存在RAM或磁盘驱动器上。

CPU缓存

这是像存储器RAM一个小块在物理上的CPU的一部分。它通常没有很多记忆。

例如英特尔酷睿17-920具有8MB Source

这种缓存的一点是要存储数据,该CPU是相当经常使用,以加快传输时间的高速缓存,因为CPU缓存是物理上接近处理器则RAM是。

0

“内存缓存”似乎真的只是在谈论内存中的任何地方。有时这是存储在磁盘或外部的数据缓存。这是一个软件缓存。

CPU缓存是硬件缓存,速度更快,本地化更强,但体积更小。

1

根据Wikipedia;

在计算中,缓存是存储 数据,因此该数据的未来请求可以更快地服务

所以基本上它是存储数据,这样的位置的硬件或软件组件下一次你想要的数据可以更快地访问它。这意味着缓存需要位于比原始位置更快的位置。

通常情况下,硬盘用于以持久方式存储大部分数据。这是计算机系统中最大的数据存储,速度通常很慢。

所有的“工作”都由CPU完成。因此,为了处理数据,CPU需要首先读取数据,然后处理它,然后将其写出。由于CPU具有非常有限的内存/数据寄存器,因此它可以进行大量的读写操作。

理想情况下,您的CPU将有足够大的数据寄存器来存储您需要的一切。但CPU上的内存非常昂贵,所以这是不实际的。

因此,您有主存储器,应用程序在运行时临时存储一些数据以使其更快。

应用程序的工作方式意味着您往往会有大量非常频繁访问的数据。通常被称为热数据。

因此,缓存的目的是存储这样的热门数据,以便您可以更快,更轻松地引用它并在需要时使用它。

所以越接近CPU核心,你的数据越快,它可以被访问,因此性能提高。但是它更昂贵。

图形显示此不同水平连同约。访问时间 enter image description here

它可以根据CPU架构略有不同(并且随着时间而改变),但通常每个核心都有一个L1高速缓存L2 &。三级缓存在多个内核之间共享。 L1高速缓存通常也被分成数据高速缓存和指令高速缓存。

因此,您的CPU缓存将包含当时访问次数最多的数据,因此存在与主存储器或从中获取数据的HDD的排序关系。但是因为它很小,所以如果你做了其他的事情,缓存会很快变成使用其他数据,或者如果在后台运行,缓存会变成其他数据。

因此,不能真正控制CPU的缓存。另外如果你这样做,你会有效地减慢其他一切(包括O/S),因为你拒绝他们使用缓存的能力。

每当您的应用程序在主存储器中读取和存储数据时,它都会有效地创建自己的缓存,假设您随后从此位置访问数据,并且不会在每次需要时从磁盘(或其他位置)读取数据它。

所以这可能意味着它的一部分也在CPU缓存中,但不一定。正如你可以从你的应用程序中获得主内存中的数据,但是你的应用程序没有做任何事情,或者很长一段时间没有访问这些数据。

还请记住,与主存储器中的数据相比,CPU高速缓存中的数据非常小。例如Broadwell Intel Xeon芯片有;

  • L1缓存= 64 KB(每个核心)
  • 二级高速缓存= 256 KB(每核心)
  • L3高速缓存= 2 - 6 MB(共享)。
相关问题