缓存对计算机的意义(计算机性能与缓存的重要性的关系)

在之前的文章中,我们详细分析了计算机处理一条指令所需经过的阶段,涉及硬盘读取、寄存器处理,然后写回硬盘数据《处理器执行的完整流程》其中包括“硬盘到寄存器”和“寄存器到硬盘”两个阶段。
然而,硬盘的速度较慢,属于毫秒级别,而寄存器的速度极快,两者之间相差数万倍。为了填补这一速度差距,计算机引入了硬件缓存,即“RAM:缓存存储器”。
缓存存储器是什么?
缓存存储器分成两类:
  • 静态缓存存储器:SRAM
  • 动态缓存存储器:DRAM
静态RAM(SRAM)是一种特殊的存储技术,它把每个数据位都保存在一个叫做“双稳态存储单元”的地方。这个地方是用一组精巧的电路(通常包含6个晶体管)来实现的。
这个电路有点像一个电子开关,可以在两种不同的电压状态中长期保持。就好像一个开关可以保持在打开或关闭的状态,SRAM的存储单元也可以在两种状态中选择一个,这使得数据可以被稳定地存储。
动态RAM(DRAM)也是一种存储技术,但是它保存数据的方式不同。它使用微小的电容来存储每个数据位的电荷状态。因为电容会逐渐失去电荷,所以DRAM需要定期刷新以保持数据的稳定性,就是我们常说的「内存条」。
在现实中,SRAM 被广泛用于高速缓存内存,因为它的读取速度非常快,但相对较昂贵。与之相比,DRAM 通常用于主内存,因为它的密度更高,可以存储更多的数据,但读取速度较慢。
不同的存储器有不同的价格和性能折中,SRAM 比内存条要快,而内存条比磁盘要快,对于造价来讲,SRAM 比内存条贵,内存条比磁盘贵。
所以现在处理一条指令的逻辑变成了「寄存器 – 静态RAM – 内存条 – 硬盘」等几个步骤,增加了中间两层缓存处理。
为什么增加缓存?
在程序执行过程中,数据和指令往往会在相对较小的空间范围内多次使用,这种倾向被称为「局部性原理」,这一理论对硬件和软件系统的设计产生了深远影响。
局部性原理分成两种形式:
  • 时间局部性

  • 空间局部性

时间局部性:一旦某个内存位置被引用,那么这个内存位置在不远的将来很可能再次被引用。
这种趋势说明了被频繁引用的数据在一段时间内具有较高的访问概率。通过缓存,计算机可以将最近被引用的数据项保存在高速存储中,避免重复从较慢的内存或硬盘中读取数据,从而提高了整体性能。
空间局部性:一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置。
这意味着数据项的引用往往是在一个相对局部的范围内进行的。缓存可以利用这种空间局部性,将附近的数据也加载到高速存储中,以便在它们被引用时能够迅速访问。
计算机增加缓存的动机在于提升数据访问速度和系统性能。
还有哪些缓存的应用场景?
用户访问网页时,浏览器会将所需的文档和资源缓存到本地磁盘中。因为用户在短时间内往往会继续浏览同一网站的不同页面或刷新页面,这些之前访问过的文档在不远的将来可能会再次被需要。通过将这些文档缓存到本地,浏览器可以更快地加载页面,提供更好的用户体验,而不需要再次从网络服务器下载。
CDN 服务器通过在全球各地放置缓存来存储网站的静态资源,从而降低用户访问这些资源的延迟,提高网站的加载速度。
数据库系统使用缓存来存储经常访问的数据,以减少数据库查询的时间,可以显著提高数据库的查询性能。
网络设备如路由器和交换机中临时存储数据包和路由表,以便进行快速的数据包转发和路由决策。

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34598.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月12日 下午5:29
下一篇 2024年4月12日 下午5:31

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注