18新利最新登入缓存是如何工作的

:男人教务长
电脑内部部件和网络”width=
缓存大大增加您的计算机的速度拉比特和字节的内存。安德烈Onufriyenko /盖蒂图片社

如果你买一个电脑这个词,那么你听说过“缓存”。Modern computers have both L1 and L2 caches, and many now also have L3 cache. You may also have gotten advice on the topic from well-meaning friends, perhaps something like "Don't buy that Celeron chip, it doesn't have any cache in it!"

广告

事实证明,缓存是计算机科学的一个重要过程,在每台计算机上多种形式出现。有内存缓存,硬件和软件磁盘缓存页面缓存和更多。虚拟内存甚至是一种缓存。在本文中,我们将探索缓存,这样你就能明白为什么它是如此重要。

一个简单的例子:在缓存中

缓存是一个基于内存子系统的技术电脑。缓存的主要目的是加速你的电脑同时保持电脑的价格低。缓存允许你做你的电脑任务更迅速。

理解背后的基本想法缓存系统,让我们开始使用图书馆员的一些超级简单的例子来演示缓存概念。让我们想象一个图书馆员在他的书桌上。他有给你你要求的书。为了简单起见,假设你不能得到自己的书,你必须问图书管理员对任何你想读的书,和他从一组为您获取栈的储藏室(华盛顿特区美国国会图书馆设置这种方式)。首先,让我们先从图书馆员不缓存。

广告

第一个客户的到来。他问的书白鲸记。图书管理员进入储藏室,这本书,回到柜台,让这本书给客户。之后,客户端回来归还这本书。图书管理员把书并返回库房。随后他回到柜台等待另一个客户。我们说下一个客户的要求白鲸记(你看到未来…)。图书管理员然后必须返回到库房去这本书他最近给客户端处理。在这种模式下,图书管理员必须做出一个完整的往返获取每一本书,甚至经常非常受欢迎的那些要求。是否有办法改善图书馆员的性能?

是的,有一种方式,我们可以放一个缓存图书管理员。在下一节中,我们来看看这个相同的例子,但这一次,管理员将会使用缓存系统。

广告

一个简单的例子:在缓存中

让我们给图书管理员一个背包,他将能够存储10本书(计算机术语,图书管理员现在有一份10本书缓存)。在这个背包,他会把书客户返回他,最多10个。让我们使用之前的例子,但是现在又出现了缓存的图书管理员。

一天的开始。图书馆员的背包是空的。我们的第一个客户到达和要求白鲸记。这里没有魔法,图书馆员必须去库房得到这本书。他给客户端。后,客户端返回,将这本书交给图书管理员。而不是回到仓库返回的书,图书管理员将这本书在他的书包,站在那儿(他检查第一个袋子是否完整,稍后将进行更详细的讨论)。另一个客户机并请求到达白鲸记。之前去储藏室,图书管理员检查这个标题是在他的背包里。他发现它!他要做的就是把书从背包和给客户端。没有旅行到库房,所以客户服务更有效率。

广告

如果客户要求一个标题不是在缓存中(背包)?在这种情况下,图书馆员是低效率的,比没有缓存,因为图书管理员花时间寻找这本书在他的书包。缓存设计的挑战之一是减少缓存搜索的影响,与现代硬件已经减少了这次延迟几乎降为零。甚至在我们简单的图书馆员的例子中,延迟时间(等待时间)搜索缓存太小而时间走回储藏室是无关紧要的。缓存很小(10本书),所花费的时间注意小姐是只有一小部分的时间旅行到储藏室。

从这个例子中可以看到几个重要事实关于缓存:

  • 缓存技术是使用更快的但规模较小的内存类型加速较慢但更大的内存类型。
  • 当使用一个缓存,您必须检查缓存项是否在那里。如果它存在,它被称为缓存命中。如果不是,它被称为缓存错过和电脑必须等待的往返大,慢的内存区域。
  • 缓存有最大尺寸远小于较大的存储区域。
  • 可以有多个层的缓存。与我们的图书馆员的例子中,小但更快的内存类型是背包,和储藏室代表越来越慢的内存类型。这是一个一级缓存。可能有一层缓存组成的一个架子,可以容纳100书柜台后面。图书管理员可以检查背包,然后书架上然后储藏室。这将是一个两级缓存。

广告

电脑缓存

电脑是一种机器,我们在非常小的增量测量时间。当微处理器访问主存储器(内存),它在大约60纳秒(60/1000000000秒)。的非常快,但比典型的微处理器慢得多。微处理器可以有短周期倍2纳秒,所以一个微处理器60纳秒似乎是一种永恒。

如果我们建立一个特殊的主板上的内存条,虽小但非常快(约30纳秒)?已经两倍的速度比主内存访问。这就是所谓的二级缓存或L2高速缓存。如果我们建立一个更小但更快的记忆系统直接进入微处理器的芯片吗?这样,这个记忆将访问微处理器的速度,而不是内存总线的速度。这是一个L1缓存在233兆赫(MHz)奔腾是3.5倍的L2缓存,这是两倍的速度访问主存。

广告

一些微处理器芯片内建了两个级别的缓存。在这种情况下,主板存在缓存,缓存之间的微处理器和主系统内存,成为3级,或L3缓存

电脑有很多子系统;你可以把他们中的许多人之间的缓存来提高性能。这是一个例子。我们有微处理器(最快的计算机)。还有L1缓存,缓存的L2缓存,缓存内存可以使用(并经常使用)作为更慢的缓存外围设备硬盘只读光盘存储器。硬盘也用于缓存慢介质——你的互联网连接。

广告

缓存子系统

你的网络连接你的电脑是最慢的环节。所以你的浏览器(Internet Explorer、网景、歌剧等)使用硬盘存储HTML页面,把他们扔进一个特殊的文件夹在磁盘上。你第一次要求一个HTML页面,您的浏览器呈现它的副本也存储在磁盘上。下次你请求访问这个页面,您的浏览器检查文件的日期是否在互联网上比一个更新缓存。如果日期是一样的,你的浏览器使用的硬盘上,而不是从网上下载它。在这种情况下,小但更快的硬盘内存系统和越来越慢的互联网。

缓存也可以直接建在外围设备。现代硬盘来快速记忆,512左右千字节天生的,硬盘。计算机不能直接使用这个内存,硬盘控制器。为计算机,这些内存芯片是磁盘本身。当计算机要求数据从硬盘,硬盘控制器检查到这个内存之前硬盘的机械部件(这是非常缓慢的相比,内存)。如果发现计算机要求的数据缓存,它将返回的数据存储在缓存中没有实际访问磁盘上的数据本身,节省很多时间。

广告

这是一个实验你可以试一试。你的电脑缓存你的软盘驱动器主内存,你可以看到它发生。从你的软盘访问一个大文件——例如,打开一个300 kb的文本文件的文本编辑器。第一次,你会看到软盘上的灯打开,你会等待。软盘是极其缓慢的,所以需要20秒加载该文件。现在,关闭编辑器并再次打开同一个文件。第二次(不要等到30分钟或做大量的磁盘访问两国试)你不会看到光打开,而且你不会等待。的操作系统检查到它的内存缓存的软盘,发现它正在寻找什么。而不是等待20秒,数据被发现在一个内存子系统比当你第一次尝试它快得多(一个访问软盘120毫秒,而访问主存需要大约60纳秒,这是快得多)。你可以在硬盘上运行相同的测试,但它是更明显的软盘驱动器,因为它太缓慢。

大的照片给你,这里有一个列表,一个正常的缓存系统:

  • L1缓存内存访问完整的微处理器速度(10纳秒,4 kb 16 kb大小)
  • L2高速缓存-类型的内存访问静态存储器(大约20到30纳秒,128字节到512 kb大小)
  • 主内存-类型的内存访问内存(约60纳秒,32兆字节128字节大小)
  • 硬盘——机械、慢(约12毫秒,1g10 gb大小)
  • 互联网非常慢(1秒至3天,无限的大小)

如您所见,L1缓存缓存L2缓存,缓存内存,可以用来缓存磁盘子系统,等等。

广告

缓存技术

此时问一个常见的问题是,“为什么不让所有的计算机的内存运行在相同的速度L1缓存,所以没有缓存需要吗?”That would work, but it would be incredibly expensive. The idea behind caching is to use a small amount of expensive memory to speed up a large amount of slower, less-expensive memory.

在设计一个电脑,我们的目标是让微处理器运行在其全速尽可能便宜。500 - mhz芯片经过5亿周期1秒(一个周期每两个纳秒)。没有L1和L2缓存,一个访问主存储器需要60纳秒,约30个周期访问内存的浪费。

广告

当你想到它时,它是难以置信的,这样相对少量的内存可以最大化的使用更大数量的内存。考虑一个256 kb的L2缓存,缓存64 mb的RAM。在这种情况下,有效256000字节缓存64000000字节。为什么工作?

在计算机科学中,我们有一个理论概念位置的参考。这意味着在一个相当大的项目,只有一小部分是在任何时候使用。似乎有点奇怪,当地绝大多数的参考书项目。即使执行10 mb大小,只有少数字节的程序正在使用在任何一个时间,和他们的重复率非常高。在下一个页面上,您将学习更多关于位置的参考。

广告

位置的参考

让我们来看看下面的伪代码参考位置(见效果的原因18新利最新登入C编程是如何工作的真正进入它):

输出到屏幕上的“输入一个介于1和100”阅读来自用户用户把值从输入变量X值100在变量Y值1变量Z循环Y Z的时间除以X,如果剩余的部门= 0,那么输出«Z是X的多个»加1 Z回到循环结束

这个小程序要求用户输入一个1到100之间的数字。它读取用户输入的值。然后,程序将每个数字1和100之间的用户输入的数量。它检查如果余数为0(模分裂)。如果是这样的话,程序输出“Z是X”的倍数(例如,12是6的倍数),每1和100之间的数字。然后程序就结束了。

广告

即使你不了解计算机编程,很容易理解,在11行这个程序,循环执行部分(7 - 9)行100次。所有其他的线只执行一次。7 - 9行运行更快,因为缓存。

这个程序非常小,完全可以很容易地适应在最小的L1缓存,但是我们说这个项目是巨大的。结果是相同的。当你计划,很多动作发生在循环。字处理器花费95%的时间等待你输入和显示在屏幕上。这部分的文字处理程序是在缓存中。

这95% - 5%的比例(大约)就是我们所说的位置参考,这也是为什么一个缓存工作效率。这也是为什么这么小的缓存可以有效地缓存这样的大内存系统。你可以看到为什么它不值得建设最快的计算机内存。我们可以提供95%的效率成本的一小部分。

在缓存和相关主题的18luck手机登录更多信息,请查看下一页的链接。

广告

经常回答问题

缓存用于什么?
缓存用于改善系统的性能,将数据存储在一个临时位置,以便它可以被检索更快。
在内存中缓存是什么?
内存缓存是一个过程,数据存储在计算机的内存,这样就可以更快地访问。当数据缓存在内存中,它存储在一个预定的位置,这样就可以更快地访问如果是存储在磁盘或其他较慢的存储设备。
缓存是什么和它是如何工作的?18新利最新登入
缓存是一个技术用于存储数据在一个临时位置,以便它可以快速高效地访问。当数据缓存,它存储在一个位置方便,不需要大量的时间或精力来检索。
特色

广告

加载……
Baidu