《深入理解计算机系统》p422
6.1 存储器层次结构中的缓存
一般而言,高速缓存( cache ,读作“ cash ”)是一个小而快速的存储设备,它作为存储在更大、也更慢的设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存( caching ,读作“ cashing ”)。存储器层次结构的中心思想是,对于每个 k ,位于 k 层的更快更小的存储设备作为位于 k 十1层的更大更慢的存储设备的缓存。换句话说,层次结构中的每一层都缓存来自较低一层的数据对象。例如,本地磁盘作为通过网络从远程磁盘取出的文件(例如 Web 页面)的缓存,主存作为本地磁盘上数据的缓存,依此类推,直到最小的缓存—— CPU 寄存器组。图6-22展示了存储器层次结构中缓存的一般性概念。第 k 十1层的存储器被划分成连续的数据对象组块( chunk ),称为块( block )。每个块都有一个唯一的地址或名字,使之区别于其他的块。块可以是固定大小的(通常是这样的),也可以是可变大小的(例如存储在 Web 服务器上的远程 HTML 文件)。例如,图6-22中第 k 十1层存储器被划分成16个大小固定的块,编号为0~15。
类似地,第 k 层的存储器被划分成较少的块的集合,每个块的大小与 k 十1层的块的大小一样。在任何时刻,第 k 层的缓存包含第 k 十1层块的一个子集的副本。例如,在图6-22中,第 k 层的缓存有4个块的空间,当前包含块4、9、14和3的副本。
数据总是以块大小为传送单元( transfer unit )在第 k 层和第 k +1层之间来回复制的。虽然在层次结构中任何一对相邻的层次之间块大小是固定的,但是其他的层次对之间可以有不同的块大小。例如,在图6-21中,L1和 LO 之间的传送通常使用的是1个字大小的块。L2和L1之间(以及I3和I2之间、L4和I3之间)的传送通常使用的是几十个字节的
块。而L5和L4之间的传送用的是大小为几百或几千字节的块。一般而言,层次结构中较低层(离 CPU 较远)的设备的访问时间较长,因此为了补偿这些较长的访问时间,倾向于使用较大的块。
1. 缓存命中
当程序需要第 k 十1层的某个数据对象 d 时,它首先在当前存储在第 k 层的一个块中查找 d 。如果 d 刚好缓存在第 k 层中,那么就是我们所说的缓存命中( cache hit )。该程序直接从第 k 层读取 d ,根据存储器层次结构的性质,这要比从第 k +1层读取 d 更快。例如,一个有良好时间局部性的程序可以从块14中读出一个数据对象,得到一个对第 k 层的缓存命中。
2. 缓存不命中
另一方面,如果第 k 层中没有缓存数据对象 d ,那么就是我们所说的缓存不命中( cache miss )。当发生缓存不命中时,第 k 层的缓存从第 k 十1层缓存中取出包含 d 的那个块,如果第 k 层的缓存已经满了,可能就会覆盖现存的一个块。
覆盖一个现存的块的过程称为替换( replacing )或驱逐( evicting )这个块。被驱逐的这个块有时也称为牺牲块( victim block )。决定该替换哪个块是由缓存的替换策略( replace — ment policy )来控制的。例如,一个具有随机替换策略的缓存会随机选择一个牺牲块。一个具有最近最少被使用 LRU )替换策略的缓存会选择那个最后被访问的时间距现在最远的块。
在第 k 层缓存从第 k 十1层取出那个块之后,程序就能像前面一样从第 k 层读出 d 了。例如,在图6-22中,在第 k 层中读块12中的一个数据对象,会导致一个缓存不命中,因为块12当前不在第 k 层缓存中。一旦把块12从第 k 十1层复制到第 k 层之后,它就会保持在那里,等待稍后的访问。
3. 缓存不命中的种类
区分不同种类的缓存不命中有时候是很有帮助的。如果第 k 层的缓存是空的,那么对
任何数据对象的访问都会不命中。一个空的缓存有时被称为冷缓存( cold cache ),此类不命中称为强制性不命中( compulsory miss )或冷不命中( cold miss )。冷不命中很重要,因为它们通常是短暂的事件,不会在反复访问存储器使得缓存暖身( warmed up )之后的稳定状态中出现。
只要发生了不命中,第 k 层的缓存就必须执行某个放置策略( placement policy ),确定把它从第 k 十1层中取出的块放在哪里。最灵活的替换策略是允许来自第 k +1层的任何块放在第 k 层的任何块中。对于存储器层次结构中高层的缓存(靠近 CPU ),它们是用硬件来实现的,而且速度是最优的,这个策略实现起来通常很昂贵,因为随机地放置块,定位起来代价很高。
因此,硬件缓存通常使用的是更严格的放置策略,这个策略将第 k 十1层的某个块限制放置在第 k 层块的一个小的子集中(有时只是一个块)。例如,在图6-22中,我们可以确定第 k 十1层的块 i 必须放置在第 k 层的块( i mod 4)中。例如,第 k 十1层的块0、4、8和12会映射到第 k 层的块0;块1、5、9和13会映射到块1;依此类推。注意,图6-22中的示例缓存使用的就是这个策略。
这种限制性的放置策略会引起一种不命中,称为冲突不命中( conflict miss ),在这种情况中,缓存足够大,能够保存被引用的数据对象,但是因为这些对象会映射到同一个缓存块,缓存会一直不命中。例如,在图6-22中,如果程序请求块0,然后块8,然后块0,然后块8,依此类推,在第 k 层的缓存中,对这两个块的每次引用都会不命中,即使这个缓存总共可以容纳4个块。
程序通常是按照一系列阶段(如循环)来运行的,每个阶段访问缓存块的某个相对稳定不变的集合。例如,一个嵌套循环可能会反复地访问同一个数组的元素。这个块的集合称为这个阶段的工作集( working set )。当工作集的大小超过缓存的大小时,缓存会经历容量不命中( capacity miss )。换句话说就是,缓存太小了,不能处理这个工作集。
4. 缓存管理
正如我们提到过的,存储器层次结构的本质是,每一层存储设备都是较低一层的缓存。在每一层上,某种形式的逻辑必须管理缓存。这里,我们的意思是指某个东西要将缓存划分成块,在不同的层之间传送块,判定是命中还是不命中,并处理它们。管理缓存的逻辑可以是硬件、软件,或是两者的结合。
例如,编译器管理寄存器文件,缓存层次结构的最高层。它决定当发生不命中时何时发射加载,以及确定哪个寄存器来存放数据。L1、L2和L3层的缓存完全是由内置在缓存中的硬件逻辑来管理的。在一个有虚拟内存的系统中, DRAM 主存作为存储在磁盘上的数据块的缓存,是由操作系统软件和 CPU 上的地址翻译硬件共同管理的。对于一个具有像 AFS 这样的分布式文件系统的机器来说,本地磁盘作为缓存,它是由运行在本地机器上的 AFS 客户端进程管理的。在大多数时候,缓存都是自动运行的,不需要程序采取特殊的或显式的行动。
6.3.2 存储器层次结构概念小结
概括来说,基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序倾向于展示局部性:
1)利用时间局部性: 由于时间局部性,同一数据对象可能会被多次使用。一旦一个数据对象在第一次不命中时被复制到缓存中,我们就会期望后面对该目标有一系列的访问命中。因为缓存比低一层的存储设备更快,对后面的命中的服务会比最开始的不命中快很多。
2)利用空间局部性: 块通常包含有多个数据对象。由于空间局部性,我们会期望后面对该块中其他对象的访问能够补偿不命中后复制该块的花费。现代系统中到处都使用了缓存。正如从图6-23中能够看到的那样, CPU 芯片、操作系统、分布式文件系统中和万维网上都使用了缓存。各种各样硬件和软件的组合构成和管理着缓存。注意,图6-23中有大量我们还未涉及的术语和缩写。在此我们包括这些术语和缩写是为了说明缓存是多么的普遍。
㈡ 请问一下,主存,缓存,寄存器,光盘的存储速度和存储容量大小
C
存取速度:寄存器 > Cache > 内存 > 硬盘 > 光盘 > 软盘
具体点说:内存可达数至数十GB/s,硬盘可达几十MB/s ~ 数百MB/s,光盘最高约25MB/s(18倍DVD,蓝光DVD先不算),软盘一般只有数十KB/s。
寄存器属于CPU的一个组成部分而缓存只是集成到CPU封装内完全是和CPU独立的器件。另外二者速度相差很大,寄存器存取速度最快 其次缓存最后是内存。三者容量上的关系就像饭碗、饭锅和米缸的关系,容量越大级别越低,速度越慢与CPU的联系越不密切
㈢ 磁盘缓冲区是在主存中吗,那就是说是主存的属性
磁盘的缓冲区是硬盘与外部总线交换数据的场所。硬盘的读数据的过程是将磁信号转化为电信号后,通过缓冲区一次次地填充与清空,再填充,再清空,一步步按照PCI总线的周期送出,可见,缓冲区的作用是相当重要的。它的作用也是提高性能,但是它与缓存的不同之处在于:一、它是容量固定的硬件,而不像缓存是可以由操作系统在内存中动态分配的。二、它对性能的影响大大超过磁盘缓存对性能的影响,因为如果没有缓冲区,就会要求每传一个字(通常是4字节)就需要读一次磁盘或写一次磁盘。总而言之,磁盘缓存是属于内存的,而磁盘缓冲区是硬盘与PCI总线之间的容量固定的硬件。
磁盘构造。磁盘缓冲区?
1、内存缓冲区,只是它是专门为读取或写入硬盘而设置的,简称为硬盘缓冲区
2、磁盘的缓存,硬盘与外部总线交换数据的缓存,它是容量固定的硬件,比内存缓冲区更有效果,
因此买硬盘时,缓存越大,性能更好
3、高速缓冲存储器(高速缓存)是在cpu中,越好的CPU高速缓存越大,还不止一个,有1、2、3级之分(网络)缓存越大,性能更好
㈣ 主存,内存,缓存,和虚拟储存器的区别与联系
1。主存就是内存啦,它是主要的存储单元,一台计算机的内存(主存)是指CPU能够通过指令中的地址码直接访问的存储器,常用于存放处于活动状态的程序和数据。
2。然后还有外存(外部存储器),它是主存的补充,所以一般又叫它辅存(辅助存储器),比如光盘、U盘、软盘、磁带等。
3。缓存顾名思义就是缓冲寄存器,在CPU同时处理很多数据,而又不可能同时进行所有数据的传输的情况,把优先级底的数据暂时放入缓存中,等优先级高的数据处理完毕后再把它们从缓存中拿出来进行处理。(它也可以看成是主存的补充)
4。虚拟内存(又称虚拟存储器),其实一般主存是不够用的,计算机通常会在硬盘上划出一块区域来虚拟一个内存空间,从而进行对数据和程序的处理,于是硬盘就会产生一个页面文件PF,它也是主存的扩充。
㈤ 计算机采用的三级存储结构是什么
计算机采用的三级存储结构是高速缓冲存储器,主存储器,辅助存储器。
对于通用计算机,存储层次至少具有三级:CPU寄存器,主存,辅存。较高档的计算机有细分为六层:寄存器,高速缓存,主存,磁盘缓存,磁盘。可移动存储介质。
(5)磁盘缓存主存扩展阅读:
存储器层次越高访问速度越快,价格越昂贵。
1、主存储器,简称内存或主存,用于保存进程运行时的数据,也成为可执行存储器。CPU控制部件只能从主存储器中获得指令和数据,然后将他们装入内存。或者从寄存器存入主存。
2、寄存器,访问速度很快完全能与CPU协调工作,但价格十分昂贵。
2、高速缓存器:CPU访问一组特定的数据时,总是先查询在高速缓存中是否有需要的数据,若有则直接使用,否则从主存中读取信息。
3、磁盘缓存,因目前磁盘的IO速度远低于贮存的访问速度,因此将频繁使用的一部分磁盘数据和信息暂时存放在磁盘缓存中可减少访问磁盘的次数。磁盘缓存依托于固定磁盘。当需要运行或访问的时候,被调入主存。
㈥ 高速缓存与主内存的关系是什么
高速缓存是为了解决主内存存取谈此速度一直比中央处理器操作速度慢得多,使中央处理器的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响问题而出现的。
根据程序局部性原理,正在使用的主内存某一单元邻近的那些单元将被用到的可能性很大。
因而,当中央处理器存取主内存某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓存,中央处理器即将存取的主内存单元很可能就在刚刚调入到高速缓存存储器的那一组单元内。
于是,中央处理器就可以直接对高速缓存存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主内存的操作能为存取高速缓存存储器所代替,计算机系统处理速度就能显着提高。
(6)磁盘缓存主存扩展阅读:
高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。
有很多方法可用来缓和中央处理器和主存储器之间速度不匹配的矛盾,如采用多个通用寄存器、多存储体交叉存取等,在存储层次上采用高速缓冲存储器也是常用的方法大慎之一。
很多大、中型计算机以及新近的一些小型机、微型机也都采用高速缓冲存储器。
参考资料来源:网络-高速缓含仿迅冲存储器
㈦ 内存、硬盘、缓存分别指什么它们之间有什么联系
分类: 电脑/网络
解析:
硬盘是存储数据和程序的地方,计算机所有的软件都保存在里面,就像是仓库一样.这里的数据是可以永久存放的,断电不会消失.
计算机需要运行程序的时候,由于中央处理器不能直接从硬盘读数据,所以会先把程序和数据从硬盘读到内存里面,内存也是存储器,不过里面的数据断电就消失了,CPU从内存中读取指令来执行.内存的读写速度是硬盘的几十倍到几百倍.
在CPU读取指令执行的时候,尽管内存已经把数据读取颂羡速度从硬盘的很慢提高到了很快,但是仍然会跟不上CPU的速度,所以设计了缓存来缓冲指令,缓存是介于CPU和内存之间的超高速存储器,读写速度极岩樱返快,但由于成本高所以都不是很大,在读指令的时候 CPU会先查询缓存内有没有相同的指令,如果有就直接从缓存读,没有侧从粗饥内存读并把指令写入缓存预备下次查询,同时更新并擦除缓存内很长时间没有读取的指令.缓存可以有1层也可以有2层以上,就是所说的1级缓存和二级缓存.所以整个顺序是CPU->缓存->内存->硬盘
㈧ 主存内存还有高缓之间是什么关系
电脑的存储,分为内存和硬盘。
内存分为随机存储器、只读存储器和高速缓存。其中的随机存储器,就是主存。
高速缓存,有多种级别。CPU内部,就有高速缓存。硬盘内部也有。
主存中,也可以开辟出一块,当做高速缓存使用。
所以,主存和高速缓存之间的关系,比较复杂。既是平等关系,也可以把自己的一部分变成高速缓存。
电脑的只读存储器,英文简写rom,一般是用在bios。
随机存储器,英文简写ram,一般是电脑的内存条。
高速缓存,一般是特别快的ram,价格只特别昂贵,只能少量地用于重要的地方。比如CPU、硬盘等内部。但高速是相对的。CPU和硬盘的高速缓存,是比内存条高速,而内存条开辟出一块空间做缓存,是比硬盘高速。