星级打分
平均分: 0 参与人数: 0 我的评分: 未评
细心的朋友可能还会发现,如今无论是买CPU还是固态硬盘,缓存(Cache)扮演着至关重要的角色。“有缓”“大缓”成了很多朋友追求的目标,无论是AMD的X3D系列的惊人游戏表现还是旗舰SSD的高速存取,都离不开它。它是如何改变电脑速度的?
4 x' E# _+ s. K5 u- j! M5 A: f3 A
; o1 _5 R: Q* e3 b$ ?. t 让最常用的数据在最快的存储单元里
6 A$ K( l2 @ J! s
* W% v$ y' p% E0 {! \: W, o a 缓存是一种高速存储技术,用于存储最近访问的数据或当前最常用的指令,以加快对相同数据的后续访问速度。对于CPU而言,它本身是一种小容量但访问速度极快的存储器,通常位于处理器和主存储器也就是内存条之间。而对于固态硬盘或者机械硬盘,它位于主控芯片和存储颗粒、盘片之间。
5 e M+ `5 Y2 V4 w! i1 j+ v2 `$ N+ B * g! e& b' k5 l+ S
当处理器/硬盘需要读取或写入数据时,首先会检查缓存中是否已经存在该数据。如果存在,即发生了缓存命中(Cache Hit),处理器可以直接从缓存中快速获取数据;如果不存在,即发生了缓存未命中(Cache Miss),处理器则需要从较慢的内存条的“数据库”中读取数据,并将其加载到缓存中以供后续使用。
, ^/ b% e8 ~' ?' C6 r& v+ c9 s; Y; b 5 G* c) h- g* U" s" Y5 ]8 l4 r
然后是执行写策略:缓存系统可以采用不同的写策略,如写直通(Write-Through)和写回(Write-Back)。写直通策略在数据被写入缓存的同时也会写入主存储器,而写回策略则仅在数据被替换出缓存时才写回主存储器。
N: m- w- _9 Y: t 8 n3 G1 f% N: F
另外,缓存运作,还涉及到所谓替换算法:当缓存已满且需要加载新数据时,需要决定哪个数据块被替换。常见的替换算法包括最近最少使用(LRU)和随机替换等。不同的替换算法,对于缓存的命中率有非常高的影响。
2 Q' X% c$ Y7 } u0 Z " x$ J/ Z3 ?% D! a- p
而缓存的设计,还基于两个重要的局部性原理:时间局部性(Temporal Locality)和空间局部性(Spatial Locality)。时间局部性指的是一旦访问过某个数据,不久后很可能再次访问该数据;空间局部性则是指如果访问了某个内存位置,那么与其相邻的内存位置也很可能被访问。
0 H4 U' I7 J7 J8 d+ D: Q8 S' l * k" o5 @- }4 t; \$ S. F3 x+ u" S
缓存在哪里?
; g& U) n- m: Z
/ z9 L7 q& ?- Z. @3 D
Cache的硬件芯片,一般是超高速的SRAM或者DRAM。如今,CPU的Cache已经集成到了封装之内,很难看到真容。不过在固态硬盘或者硬盘上,还能在PCB上看到实体的Cache芯片。
& p/ X9 L& H$ J' ] ; K' Y: j9 r F3 V5 t0 B' A [, [& F
另外,在早期的电脑中,Cache就更为明显了。在“奔腾”芯片以前,高端的386、486等主板和一般主板的区别,就是拥有板载的Cache芯片。下图就是一个486主板上的Cache芯片阵列。
0 Y1 Y7 C& X( P6 N! W4 \9 C ' b" y7 n6 I) o6 I5 r
缓存的类型有哪些?
% R3 ~+ K1 w4 k* @2 D8 Z& [: v
+ o7 [5 k- K. b; K6 b
缓存根据其映射方式可以分为以下几种类型:
5 ]9 [' X! y( [
# {5 g3 o A/ g: J X1 L# R 1.直接映射缓存(Direct Mapped Cache):在这种类型的缓存中,每个缓存位置都有一个固定的地址范围与之对应。当一个数据块被加载到缓存中时,它只能被放置在预先确定的位置。这种设计简单,但可能会导致缓存冲突。
0 x, Z6 N$ b3 G1 V* e ]8 n
2.全关联缓存(Fully Associative Cache):与直接映射缓存不同,全关联缓存允许任何数据块被存储在任何位置。这种灵活性可以减少缓存冲突,但实现起来成本较高。
0 Z0 d$ O+ h1 |0 `' X: R1 c 3. 集合关联缓存(Set Associative Cache):集合关联缓存是直接映射和全关联缓存的折中方案。它将缓存分为多个集合,每个集合可以存储多个数据块。这种设计在减少缓存冲突和成本之间取得了平衡。
: `8 F; J4 o; y* G8 o
4. 扇区映射(Sector Mapping):这种缓存设计将内存和缓存划分为固定大小的块,称为扇区。当一个数据块被加载到缓存中时,它可以被放置在任何扇区的相应位置。这种设计利用了数据访问的局部性,减少了标签的存储需求。
3 ~& k5 C1 T4 {5 g; [5 ` - m0 `; D' d: c% Z: `
减少重复满速加载=快
Q7 n- k. h6 z" ?1 y
1 [/ S, C: ]4 I L& b: G' R2 a2 l
缓存技术由于减少了最常用的数据和指令在慢速存储器(内存条、硬盘)上的重复加载和慢速加载,因此就极大的提高了使用它的部件的工作效率,所以在电脑中应用很广。
, y5 g$ J0 P, p4 |% P1 W ! ? ?4 l0 N" T* o2 h+ s7 Z; \
1.处理器缓存:现代处理器通常包含多级缓存,如L1、L2和L3缓存,以提高数据处理速度。L1 缓存是内置于处理器中的缓存,是计算机中最快且最昂贵的缓存。L1 缓存存储需要执行的最关键的文件,是处理器在执行指令时首先查看的内容。L2 缓存不如 L1 缓存快,但只是稍微慢一些,是计算机在执行指令时查看的第二层常用数据和指令集中地方。L3缓存容量最大也最慢,但仍然比内存条快很多,它就存储了相当多的当前应用程序的高频访问内容。
0 B& R7 r. v) ^$ L" w
* e6 C' N+ v6 D2 M" b, [ 因此,有着巨大L3缓存的AMD X3D系列CPU的游戏性能好,原因就在于此。
0 j* d! o, H) q! T# }
5 g2 A7 E! Y3 g7 F
而在90年代的电脑中,由于集成度低,CPU往往只有L1 Cache,而L2 Cache则多交给前面说的主板上的SRAM Cache模组,然后通过本地PCI总线和CPU、内存进行数据交换。
7 y3 k5 ~% U0 D$ [5 @
3 X. m/ v+ G( j9 e' Z' o* u
2.内存缓存:操作系统使用内存缓存来存储频繁访问的数据,减少对磁盘的访问次数。所谓的“虚拟磁盘”,就是使用内存条上的颗粒空间作为“磁盘空间”,提高操作系统的工作效率。
[3 T/ d% E* y- q$ x
# f* F& t8 I4 ? 3. 磁盘缓存:磁盘缓存通过将最近访问的数据存储在RAM中,提高了磁盘的读写性能。最常见的就是SSD上的DRAM硬件缓存。
& @( J, n( O3 a; L' y: \
# L# D; m/ E+ {6 i& C 4.网络缓存:网络缓存,如代理服务器和CDN(内容分发网络),通过在不同的网络上的服务器上存储热门内容的副本,来减少网络流量和提高访问速度。
; O' y- B8 P! ]+ |. f1 G. u & W5 x) D& a- U, _1 L( e/ U
5.Web浏览器缓存:浏览器缓存通过存储网页和资源的副本,加快了网页的加载速度(例如网页的固定栏目资源),并减少了重复下载的需要。
9 q0 k. i1 ^9 G6 v+ N
5 v0 i# Q2 G( l k( E, v' X 随着技术的发展,缓存设计和应用将继续演变,以满足日益增长的性能需求。
8 @* z: p8 x+ r7 m
L; a% f" }4 J( a$ | J# z$ x 当然你也可以直接拨打电话13101986181,让我帮你组装电脑,装机!
F* Q& j( R9 A% i' |8 X
) @& s8 S; m) u: t1 W, ]7 b8 M
3 o8 n% c; Q5 F- a0 I