缓存的对应
① 璇锋暀浠涔堟槸鐢佃剳镄勪竴绾х紦瀛桡纴浜岀骇缂揿瓨锛屼笁绾х紦瀛桦晩锛熻兘璇寸殑绠鍗曢氢织镣瑰悧锛熶妇涓鍒楀瓙锛佽阿璋㈠暒锛
鎸夌収鏁版嵁璇诲彇椤哄簭鍜屼笌CPU缁揿悎镄勭揣瀵嗙▼搴︼纴CPU缂揿瓨鍙浠ュ垎涓轰竴绾х紦瀛桡纴浜岀骇缂揿瓨锛岄儴鍒嗛珮绔疌PU杩桦叿链変笁绾х紦瀛桡纴姣忎竴绾х紦瀛树腑镓鍌ㄥ瓨镄勫叏閮ㄦ暟鎹閮芥槸涓嬩竴绾х紦瀛樼殑涓閮ㄥ垎锛岃繖涓夌岖紦瀛樼殑鎶链闅惧害鍜屽埗阃犳垚链鏄鐩稿归掑噺镄勶纴镓浠ュ叾瀹归噺涔熸槸鐩稿归掑炵殑銆傚綋CPU瑕佽诲彇涓涓鏁版嵁镞讹纴棣栧厛浠庝竴绾х紦瀛树腑镆ユ垒锛屽傛灉娌℃湁镓惧埌鍐崭粠浜岀骇缂揿瓨涓镆ユ垒锛屽傛灉杩樻槸娌℃湁灏变粠涓夌骇缂揿瓨鎴栧唴瀛树腑镆ユ垒銆备竴鑸𨱒ヨ达纴姣忕骇缂揿瓨镄勫懡涓鐜囧ぇ姒傞兘鍦80%宸﹀彸锛屼篃灏辨槸璇村叏閮ㄦ暟鎹閲忕殑80%閮藉彲浠ュ湪涓绾х紦瀛树腑镓惧埌锛屽彧鍓╀笅20%镄勬绘暟鎹閲忔墠闇瑕佷粠浜岀骇缂揿瓨銆佷笁绾х紦瀛樻垨鍐呭瓨涓璇诲彇銆 涓绾х紦瀛桡纸Level 1 Cache锛夌亩绉癓1 Cache锛屼綅浜嶤PU鍐呮牳镄勬梺杈癸纴鏄涓嶤PU缁揿悎链涓虹揣瀵嗙殑CPU缂揿瓨锛屼篃鏄铡嗗彶涓婃渶镞╁嚭鐜扮殑CPU缂揿瓨銆傜敱浜庝竴绾х紦瀛樼殑鎶链闅惧害鍜屽埗阃犳垚链链楂桡纴鎻愰珮瀹归噺镓甯︽潵镄勬妧链闅惧害澧炲姞鍜屾垚链澧炲姞闱炲父澶э纴镓甯︽潵镄勬ц兘鎻愬崌鍗翠笉鏄庢樉锛屾т环姣斿緢浣庯纴钥屼笖鐜版湁镄勪竴绾х紦瀛樼殑锻戒腑鐜囧凡缁忓緢楂桡纴镓浠ヤ竴绾х紦瀛樻槸镓链夌紦瀛树腑瀹归噺链灏忕殑锛屾瘆浜岀骇缂揿瓨瑕佸皬寰楀氥
渚嫔侼orthwood镙稿绩镄勪竴绾х紦瀛树负8KB+12K渭Ops锛屽氨琛ㄧず鍏朵竴绾ф暟鎹缂揿瓨涓8KB锛屼竴绾ц拷韪缂揿瓨涓12K渭Ops锛涜孭rescott镙稿绩镄勪竴绾х紦瀛树负16KB+12K渭Ops锛屽氨琛ㄧず鍏朵竴绾ф暟鎹缂揿瓨涓16KB锛屼竴绾ц拷韪缂揿瓨涓12K渭Ops銆傚湪杩欓噷12K渭Ops缁濆逛笉绛変簬12KB锛屽崟浣嶉兘涓嶅悓锛屼竴涓鏄渭Ops锛屼竴涓鏄叠yte锛埚瓧鑺傦级锛岃屼笖浜岃呯殑杩愯屾満鍒跺畬鍏ㄤ笉钖屻傛墍浠ラ偅浜涙妸Intel镄凛PU涓绾х紦瀛樼亩鍗旷浉锷狅纴渚嫔傛妸Northwood镙稿绩璇存垚鏄20KB涓绾х紦瀛桡纴鎶奝rescott镙稿绩璇存垚鏄28KB涓绾х紦瀛桡纴骞朵笖鎹姝よや负Intel澶勭悊鍣ㄧ殑涓绾х紦瀛桦归噺杩滆繙浣庝簬AMD澶勭悊鍣128KB镄勪竴绾х紦瀛桦归噺镄勭湅娉曟槸瀹屽叏阌栾镄勶纴浜岃呬笉鍏锋湁鍙姣旀с傚湪鏋舵瀯链変竴瀹氩尯鍒镄凛PU瀵规瘆涓,寰埚氱紦瀛桦凡缁忛毦浠ユ垒鍒板瑰簲镄勪笢瑗,鍗充娇绫讳技钖岖О镄勭紦瀛桦湪璁捐℃濊矾鍜屽姛鑳藉畾涔変笂涔熸湁鍖哄埆浜嗭纴姝ゆ椂涓嶈兘鐢ㄧ亩鍗旷殑绠楁湳锷犳硶𨱒ヨ繘琛屽规瘆锛涜屽湪鏋舵瀯鏋佷负杩戜技镄凛PU瀵规瘆涓锛屽垎鍒瀵规瘆钖勭嶅姛鑳界紦瀛桦ぇ灏忔墠链変竴瀹氱殑镒忎箟銆
② 缓存是啥意思
缓存指的是将需要频繁访问的网络内容存放在离用户最近、访问速度更快的系统中,以提高内容访问速度的一种技术。缓存服务器就是存放频繁访问内容的服务器。
帧缓冲存储器(Frame Buffer):简称帧缓存或显存,它是屏幕所显示画面的一个直接映象,又称为位映射图(Bit Map)或光栅。帧缓存的每一存储单元对应屏幕上的一个像素,整个帧缓存对应一帧图像。
可刻录CD或DVD驱动器一般具有2MB-4MB以上的大容量缓冲器,用于防止缓存欠载(buffer underrun)错误,同时可以使刻录工作平稳、恒定的写入。一般来说,驱动器越快,就有更多的缓冲存储器,以处理更高的传输速率。
(2)缓存的对应扩展阅读
缓存工作原理
1、读取顺序
CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。
正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。
这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后内存。
2、缓存分类
Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L2。在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(D-Cache)和指令Cache(I-Cache)。
它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。
3、读取命中率
CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。
也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。
在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
③ 一级缓存、二级缓存、三级缓存各指什么 高速缓冲与寄存对应哪一个
一级缓存(L1 Cache)二级缓存(L2 Cache)三级缓存(L3 Cache)都属于高速缓存(Cache)
我们知道,CPU本身的寄存器只能存储32个字节,所以要使用数据的时候,必须要从内存里取出来才能使用。内存距离CPU非常遥远,大约是10cm左右的样子(笑)。CPU通过电信号告诉内存:“喂,内存,把1234号地址的数据给我送来。”而这样电信号传送的时间会很漫长,那么CPU不得不等很长一段时间才可以继续工作(大概比CPU工作的时间大个几百倍)。而如果反复读取同样一个内存的数据,那么不得不消耗很长一段时间。、
为了提高速度,CPU旁边就装了一个高速缓存。读入内存的时候先告诉高速缓存xx地址的数值是yy,这样再读取同一个地址时直接利用高速缓存的数据,可以马上回答出xx地址的数字是yy。写入内存的时候也是先更新高速缓存然后才能写入内存
。
一级缓存设在CPU内部,但是比起寄存器还是稍微遥远一些。由于CPU很小,没内存大,所以一级缓存就比内存小很多(笑),大概只有8KB-16KB
二级缓存在CPU之外,因为主板上的空间很大,所以二级缓存比一级缓存大得多(笑),大概是256KB-1MB左右,但是它的速度慢,因为它离CPU比较远。二级缓存通常用作一级缓存与内存的交换空间
三级缓存更大,更慢
当CPU需要写入内存的时候通常只更新三级缓存,如果数据写入频繁将会更新到二级乃至一级缓存
综上所述,当CPU需要利用内存中的数据时,如图所示: