高速缓存[1][2][3][3][4](英語:cache, /kæʃ/[5][6][7]港台快取記憶體),又稱高速缓衝存储器、缓存港台快取),原始意义是指存取速度比一般隨機存取記憶體(RAM)快的一种RAM,通常它不像系统主記憶體那样使用DRAM技术,而使用昂贵但較快速的SRAM技术。

原理

编辑

Cache一词来源于1967年的一篇电子工程期刊论文。其作者将法语词「cache」赋予“safekeeping storage”的涵义,用于电脑工程领域。PC-AT/XT和80286时代没有Cache,CPU和内存都很慢,CPU直接访问内存。80386芯片组增加了对可选的Cache的支持,高级主板带有64KB,甚至高端的128KB Write-Through Cache。80486 CPU里面加入了8KB的L1 Unified Cache,当时也叫做内部Cache,不分代码和数据,都存在一起;芯片组中的Cache,变成了L2,也被叫做外部Cache,从128KB到256KB不等;增加了Write-back的Cache属性。Pentium CPU的L1 Cache分为Code和data,各自8KB;L2还被放在主板上。Pentium Pro的L2被放入到CPU的Package上。Pentium 3开始,L2 Cache被放入了CPU的Die中。从Intel Core CPU开始,L2 Cache为多核共享。

CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从隨機存取記憶體(Main memory)中读取数据——由于CPU的运行速度一般比主内存的读取速度快,主存儲器周期(訪問主存儲器所需要的時間)為數個時鐘周期。因此若要存取主内存的话,就必须等待数个CPU周期从而造成浪费。

提供「缓存」的目的是为了让数据存取的速度适应CPU的处理速度,其基于的原理是内存中「程序执行与数据访问的局域性行为」,即一定程序执行时间和空间内,被访问的代码集中于一部分。为了充分发挥缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测数据预取技术——尽可能把将要使用的数据预先从内存中取到缓存裡。

CPU的缓存曾经是用在超级计算机上的一种高级技术,不过现今電腦上使用的的AMDIntel微处理器都在芯片内部集成了大小不等的数据缓存和指令缓存,通称为L1缓存(L1 Cache即Level 1 On-die Cache,第一级片上高速緩衝存儲器);而比L1更大容量的L2缓存曾经被放在CPU外部(主板或者CPU接口卡上),但是现在已经成为CPU内部的标准组件;更昂贵的CPU会配备比L2缓存还要大的L3缓存(level 3 On-die Cache第三級高速緩衝存儲器)。

概念的扩充

编辑

如今缓存的概念已被扩充,不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘缓存),乃至在硬盘与网络之间也有某种意义上的Cache──称为Internet临时文件夹网络内容缓存等。凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache。

地址映象与变换

编辑

由于存储设备容量远大于CPU缓存的容量,因此两者之间就必须按一定的规则对应起来。地址映象就是指按某种规则把主存块装入缓存中。地址变换是指当按某种映象方式把主存块装入缓存后,每次访问CPU缓存时,如何把主存的物理地址(Physical address)或虚拟地址(Virtual address)变换成CPU缓存的地址,从而访问其中的数据。

缓存置换策略

编辑

主存容量远大于CPU缓存,磁盘容量远大于主存,因此无论是哪一层次的缓存都面临一个同样的问题:当容量有限的缓存的空闲空间全部用完后,又有新的内容需要添加进缓存时,如何挑选并舍弃原有的部分内容,从而腾出空间放入这些新的内容。解决这个问题的算法有几种,如最久未使用算法(LFU)、先进先出算法(FIFO)、最近最少使用算法(LRU)、非最近使用算法(NMRU)等,这些算法在不同层次的缓存上执行时拥有不同的效率和代价,需根据具体场合选择最合适的一种。

参见

编辑

参考文献

编辑
  1. ^ 高速缓冲存储器. 术语在线. 全国科学技术名词审定委员会.  (简体中文)
  2. ^ 陈禹. 信息系统管理工程师教程. 清华大学出版社. : 18 [2020-03-09]. ISBN 7-302-12261-X. (原始内容存档于2019-05-02) (中文(简体)). 
  3. ^ 3.0 3.1 教育部教育考试院.全国计算机等级考试二级教程:公共基础知识 [M].北京:高等教育出版社, 2022 (2023-05): 8-9.
  4. ^ 高速缓存. 术语在线. 全国科学技术名词审定委员会.  (简体中文)
  5. ^ cache noun. Oxford Learner's Dictionaries. Oxford University Press. [2015-01-28]. (原始内容存档于2021-03-18). 
  6. ^ cache definition, meaning. Cambridge Dictionaries Online. Cambridge University Press. [2015-01-28]. (原始内容存档于2015-07-12). 
  7. ^ Cache. Merriam-Webster Online Dictionary. Merriam-Webster, Incorporated. [2015-01-28]. (原始内容存档于2021-03-18). 

外部链接

编辑


📚 Artikel Terkait di Wikipedia

全高速缓存访存模型

全高速缓存访存模型(Cache-Only Memory Access, COMA) 是NUMA的一种特例,其中各处理器节点无存储层次之分,各个处理器所带的高速缓存就构成的全部地址空间。 并行计算 WildFire: A Scalable Path for SMPs (PDF). [2022-07-26]

随机存储器

電腦記憶體 唯讀記憶體(ROM) DRAM SRAM 缓存(Cache) 雙埠隨機存取記憶體(DPRAM) NVDIMM 内存 “内存”在全国科学技术名词审定委员会审定的《计算机科学技术名词》中是“主存储器”(main memory)的别称,但在许多场合(如Windows 11任务管理器)中常直接指代RAM。

HyperMemory

HyperMemory技術是ATi發明,設計目標与NVIDIA TurboCache相同。 Radeon X300 SE HM 有趣的是,某些顯卡廠商將HyperMemory應用在較高端的ATi顯卡中,所以有理由相信是顯卡BIOS負責HyperMemory的開關。理論上只要修改BIOS,所有Radeon

記憶體層級平行

記憶體層級平行(英語:Memory-level parallelism,縮寫為 MLP'),平行計算技術的一種,是電腦架構的一種,能夠同時進行數個記憶體操作,特別是在快取未命中(cache miss),或轉譯後備緩衝區未命中(TLB miss)時。 在單核心處理器架構下,記憶體層級平行可以被視為是

NoSQL

Coherence(英语:Oracle Coherence) memcached Citrusleaf database Velocity (memory cache)(英语:Velocity (memory cache)) Redis Tuple space(英语:Tuple space) Keyspace (data store)(英语:Keyspace

NVIDIA TurboCache

Cache的只有低階卡和OEM裝機的顯示卡。 有部分顯示卡廠商利用此技術虛標顯示卡內建記憶體容量。(直接標示TC後的記憶體大小且通常TC字樣寫的不明顯) ATi HyperMemory S3 Graphics AcceleRAM LowFB XGI eXtreme Cache

情节记忆

1016/S1364-6613(98)01272-8.  Clayton NS, Dickinson A. Episodic-like memory during cache recovery by scrub jays. Nature. 1998, 395 (6699): 272–4. PMID 9751053

Intel Core i3處理器列表

Intel VT-x, Hyper-threading, Smart Cache, Intel Insider. Core i3-2310E, Core i3-2340UE have support for ECC memory. Core i3-2310E, Core i3-2330E and Core