最佳日常交易
最佳日常交易

关于Androidbob体育提现bob哪个彩靠谱权威的链接可能会使我们赢得佣金。学到更多。

什么是缓存内存-Gary解释

SOC设计师有问题:RAM很慢,无法跟上CPU。解决方法称为缓存内存。如果您想了解有关缓存内存的所有信息,请继续阅读!
经过
2016年4月7日

片上的系统设计师有问题,实际上是一个很大的问题,随机访问记忆(RAM)缓慢,太慢,无法跟上。因此,他们提出了解决方法,称为缓存内存。如果您想了解有关缓存内存的所有信息,请继续阅读!

您可能会觉得很奇怪,听到RAM很慢,您可能听说硬盘很慢,CDROM慢,但是主要记忆,您是认真的吗?当然,速度是相对的。我们可能会说,某种类型的公路车是最快的,但是与一级方程式赛车相比,它相对较慢,这与超音速喷气式飞机相比本身很慢。

CPU是芯片上系统的核心。它规则至高无上,非常苛刻。平均移动CPU的时钟范围从1.5 GHz到2.2GHz左右。但是平均RAM模块仅为200MHz。因此,这意味着RAM的平均库以时钟速度慢10倍运行。对于CPU,这是一个eon。当它从RAM请求某些内容时,它必须等待和等待数据,该数据被获取数据,时间可能会做其他事情,但不能等待...

ARM首席建筑师与AA谈论Cortex-A72
消息

好的,我承认,这有点简单,但是它确实向我们展示了问题的核心。这种情况实际上并不是那么糟糕,因为诸如DoubleDATA速率(DDR)RAM之类的技术可以每个时钟周期发送两次数据。同样,诸如LPDDR3(低功率DDR3)之类的规格允许数据传输速率八倍。还有一些技术可以内置在CPU中,以确保在实际需要之前尽早要求数据。

在撰写本文时,最新的SoC正在使用LPDDR4有效速度为1866MHz,因此,如果CPU的时钟为1.8GHz或更少,则记忆力应保持不变,还是会保持?问题是现代处理器使用4或8个CPU内核,因此不仅有一个CPU试图访问内存,其中8个,他们都想要数据,他们希望尽快!

von-neumann-bottleneck-16x9-720p

这种性能限制被称为冯·诺伊曼瓶颈。如果你看着我汇编语言和机器代码视频您会记得冯·诺伊曼(Von Neumann)是现代计算机发明的关键人物之一。冯·诺伊曼(Von Neumann)体系结构的缺点是性能瓶颈,由于CPU和RAM之间的相对速度差异,数据吞吐量受到限制时出现的效果瓶颈。

有一些方法可以改善这种情况并降低性能差异,其中之一是使用缓存内存。那么什么是缓存内存?简而言之,它内置在SOC中的少量内存,它以与CPU相同的速度运行。这意味着CPU不需要等待来自缓存内存的数据,而是以与CPU运行的相同速度发送到CPU。此外,缓存内存是按CPU核心安装的,这意味着每个CPU核心都有自己的缓存内存,并且对谁可以访问它不会有任何争议。

汇编语言和机器代码 - 加里解释
bob体育提现Android开发

我现在可以听到您的想法,为什么不制作所有记忆,例如缓存内存?答案很简单,以这种速度运行的缓存内存非常昂贵。价格(在某种程度上,制造技术的局限性)是一个真正的障碍,这就是为什么在移动设备上,平均缓存内存量以千字节测量,可能是32K或64K。

因此,每个CPU核心都有几千字节的超快速内存,它可以用来存储一些主要内存的副本。如果缓存中的副本实际上是CPU所需的内存,则无需访问“慢”主内存即可获取数据。当然,诀窍是确保缓存中的内存是最好的,最佳的数据,以便CPU可以更多地使用缓存和主内存。

[RELSSED_VIDEOS title =“最新评论:“ Align =” Center type =“ Custom” Videos =“ 682235,680816,680369,679646”]

由于它只有几千字节可用的缓存内存,因此有时间,缓存具有正确的内存内容(称为命中),而没有被称为失误的时间。缓存越多,越好。

拆分缓存和层次结构

为了帮助提高命中次数与错过的次数,使用了许多技术。一种是将缓存分为两个,一个用于说明,一个用于数据。这样做的原因是,填充指令缓存要容易得多,因为要执行的下一个指令可能是内存中的下一个指令。这也意味着可以从指令缓存中获取下一个要执行的指令,而CPU也正在研究数据缓存中的内存(因为两个缓存是独立的)。

[Ression_videos title =“ 2016” Align =“ Center” =“ Custom” Videos =“ 676936,684612,682146,675002”]

改善总体缓存命中的另一种技术是使用缓存的层次结构,这些技术传统上称为L1(1级)和L2(级别2)缓存。L2通常在Megabyte范围内是一个更大的缓存(例如4MB,但可能会更大),但是它较慢(这意味着更便宜),并且IT一起为所有CPU内核提供服务,使其成为统一的缓存,使其成为统一的缓存。整个社会。

这个想法是,如果请求的数据不在L1缓存中,则CPU将在尝试主内存之前尝试L2缓存。尽管L2比L1高速缓存慢,但它仍然比主内存更快,并且由于其尺寸的增加,数据可用的可能性更高。一些芯片设计还使用L3缓存。就像L2较慢,但大于L1一样,L3较慢,但大于L2。在移动L3缓存上不使用,但是用于服务器的基于ARM的处理器(例如即将到来的24核Qualcomm服务器SOC或AMD Opteron 1100)可以选择添加32MB L3缓存。

Cortex-A72-CACHE-L1L2-16X9-720P

关联

缓存内存拼图中还有另外一块。CPU如何知道在缓存中存储主要内存中的内容的位置?如果缓存只是缓存内存插槽的长列表(一个表),则CPU需要从上到下搜索该列表以查找所需的内容。当然,这比从主内存中获取内容要慢。因此,为了确保可以快速找到内存内容,需要使用一种称为哈希的技术。

哈希函数为一个值(在这种情况下,在缓存中镜像的内存内容的地址)并为其生成一个值。相同的地址总是生成相同的哈希值。因此,缓存的工作方式是地址是哈希,并且给出了固定的答案,一个适合缓存大小的答案,即32K)。由于32K比RAM的大小要小得多,因此哈希需要循环,这意味着在32768解决后,哈希将再次给出相同的结果。这被称为直接映射。

Cache-Hash-FN-16x9-720p

当需要缓存两个地址的内容时,可以看到这种方法的缺点,但是两个地址返回相同的缓存插槽(即它们具有相同的哈希值)。在这种情况下,只有一个内存位置可以缓存,而另一个仅在主内存中保留。

另一种方法是使用成对工作的哈希,因此任何地址都可以是缓存中的两对位置之一,即。哈希哈希+1。这意味着以前有两个地址,因为它们具有相同的哈希,现在可以共存。但是,要在缓存中找到正确的插槽,CPU需要检查2个位置,但是比搜索32768可能的位置要快得多!此映射的技术名称称为2路关联。关联方法可以扩展到4向,8向和16向,但是在某些情况下,性能增长不保证额外的复杂性或成本。

[RESSER_VIDEOS title =“ Gary解释:” Align =“ Center” type =“ Custom” Videos =“ 682738,681421,678862,679133”]

包起来

每个系统片(SOC)内部都有一个性能瓶颈(SOC)与主内存速度和CPU的差异差异。它被称为冯·诺伊曼(Von Neumann)的瓶颈,它在服务器和台式机上的存在与在移动设备中一样。减轻瓶颈的方法之一是使用缓存内存,这是少量的高性能内存,与CPU固定在芯片上。