CPU缓存北桥南桥前端总线.docx
- 文档编号:25860035
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:20
- 大小:32.17KB
CPU缓存北桥南桥前端总线.docx
《CPU缓存北桥南桥前端总线.docx》由会员分享,可在线阅读,更多相关《CPU缓存北桥南桥前端总线.docx(20页珍藏版)》请在冰豆网上搜索。
CPU缓存北桥南桥前端总线
CPU缓存
简介
缓存大小也是的重要指标之一,而且缓存的结构和大小对CPU的影响超级大,CPU内缓存的运行极高,一般是和处置器同频运作,工作远远大于系统内存和。
实际工作时,CPU往往雷要重复读取一样的教据块,而缓存容長的増大,能够大幅度提升CPU内部读取数据的命中率,而不用再到内存或硬盘上寻觅,以此提高系统性能。
可是由于CPU芯片面积和本钱的因素来考虑,都很小。
概念
LICache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。
内宣的L1高速缓存的和结构对CPU的性能影响较大,不太高速缓冲存储器均由静态RAM组成,结构较宣杂,在CPU管芯面积不能太大的情形下,L1级高速缓存的容長不可能做得太大。
一般服务器CPU的L1缓存的容長通常在32—256KB。
L2Cache(-级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。
内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。
L2高速缓存容長也会影响CPU的性能,原则是越大越好,此刻家庭用CPU容長最大的是4MB,而服务器和工作站上用CPU的L2高速缓存更高达2MB—4MB,有的高达8MB或19MBo
L3Cachc(H级缓存),分为两种,初期的是外直,此刻的都是内直的。
而它的实际作用即是,L3缓存的应用能够进一步降低内存延迟,同时提升大数据長计算时处賣器的性能。
降低内存延迟和提升大数据旻计算能力对游戏都很有帮忙。
而在服务器领域増加L3缓存在性能方面仍然有显首的提升。
例如具有较大L3缓存的配直利用物理内存会更有效,故它比较慢的磁盘I/O于系统能够处宣更多的数据请求。
具有较大L3缓存的处貫器提供更有效的文件系统缓存行为及较短消息和处直器队列长度。
其实最先的L3缓存被应用在AMP发布的K6-III处直器上,那时的L3缓存受限于制造工艺,并无被集成进芯片内部,而是集成在主板上。
在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。
后来利用L3缓存的是英特尔为服务器市场所推出的Itanium处置器。
接着就是P4EE和至强MPOIntel还打算推出一款9MBL3缓存的Itanium2处直器,和以后24MBL3缓存的双核心Itanium2处直器。
但大体上L3缓存对处直器的性能提高显得不是很重要,例如配备1MBL3缓存的XconMP处賈器却仍然不是Opicron的对手,由此可见前端总线的増加,要比缓存増加带来更有效的性能提升。
作用
速缓冲存储器Cache是位于CPU与内存之间的临时存储器,它的容長比内存小但互换速度快。
在Cache中的数据是内存中的一小部份,但这一小部份是短时刻内CPU即将谊问的,当CPU挪用大星教据时,就可避开内存直接从Cache中挪用,从而加速读取速度。
由此可见,在CPU中加入Cache是一种高效的解决方案,如此整个内存储器(Cachu+內存)就变成了既有Cache的高速度,又有內存的大容長的存储系统丁。
Cache对CPU的性能影响专门大,主如果因为CPU的数据互换顺序和CPU与Cache间的带宽引发的。
高速缓存的工作原理
一、读取顺序
CPU要读取一个教据时,第一从Cache中査找,若是找到就当即读取并送给CPU处直;若是没有找到,就用相对慢的速度从内存中读取并送给CPU处直,同时把那个教据所在的数据块调入Cache中,能够使得以后对整块数据的读取都从Cache中进行,没必要再挪用内存。
正是如此的读取机制使CPU读取Cache的命中率超级高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%雪要从内存读取。
这大大节省TCPU直接读取内存的时刻,也使CPU读取数据时大体无雲等待。
总的来讲,CPU读取数据的顺序是先Cache后内存。
二、缓存分类
前面是把Cache作为一个整体来考虑的,此刻要分类分析了。
Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L20在以往的观念中,L1Cache是集成在CPU中的,被称为片内Cachco在L1中还分数据Cache(I-Cachc)和指令Cache(P-Cachc)。
它们别离用来寄存数据和执行这些数据的指令,而且两个Cache能够同时被CPU访问,减少了争用Cache所造成的冲突,提高了处宣器效能。
在P4处雹器中利用丁一种先进的一级指令Cache——动态跟踪缓存。
它直接和执行单元及动态跟踪引華相连,通过动态跟踪引華能够专门快地找到所执行的指令,而且将指令的顺序存储在追踪缓存里,如此就减少丁主执行循环的解码周期,提高了处賣器的运算效率。
以前的L2Cache没集成在CPU中,而在主板上或与CPU集成在同一块电路板上,因此也被称为片外Cache0但从PM开始,由于工艺的提高L2Cache被集成在CPU内核中,以相同于主频的速度工作,结束丁L2Cache与CPU大差距分频的历史,使L2Cache与LICache在性能上平等,取得更高的传输速度。
L2Cachc只存储教据,因此不分数据Cache和指令Cache<>在CPU核心不转变的情形下,増加L2Cache的容昼能使性能提升,同一枝心的CPU高低端之分往往也是在L2Cache±做手脚,可见L2Cache的重要性。
此刻CPU的LICache与L2Cache惟一区别在于读取顺序。
3、读取命中率
CPU在Cache中找到有效的数据被称为命中,当Cache中没有CPU所雲的数据时(这时称为未命中),CPU才访问内存。
从理论上讲,在一颗拥有2级Cache的CPU中,读取LICache的命中率为80%。
也就是说CPU从LICache中找到的有效数据占数据总長的80%,剩下的20%从L2Cache取。
由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有效的数据占总数据的16%)。
那么还有的数据就不能不从内存挪用,但这已是一个相当小的比例丁。
在一些高端领域的CPU(像]nwl的Itanium)中,咱们常听到L3Cache,它是为读取L2Cache后未命中的数据设计的一种Cache,在拥有L3Cache的CPU中,只有约5%的数据雲要从内存中挪用,这迸一步提高丁CPU的效率。
为了保证CPU访问时有较高的命中率,Cache中的内容应该按必然的算法替换。
一种较常常利用的算法是“最近最少利用算法”(LRU算法),它是将最近一段时刻内是少被访问过的行淘汰出局。
因此雷要为每行设直一个计数器,LIU;算法是把命中行的计数器清零,其他各行计数器加1。
当雷要替换时'淘汰行计数器计教值是大的数据行出局。
这是一种高效、科学的算法,其计数器清零迸程能够把一些频繁挪用后再不需宴的数据淘汰出Cache,提高Cache的利用率。
缓存技术的迸展
总之,在传输速度有较大不同的设杳间都能够利用Cache作为匹配来调节差距,或说是这些设缶的传输通道。
在显示系统、硬盘和光驱,和网络通信中,都雾要利用Cache术。
但Cnchu均由静态RAM组成,结构复杂,本钱不菲,利用现有工艺在有限的面积内不可能做得专门大,不过,这也正是技术前进的源动力,有雷要才有进步!
一级缓存
CPU缓存(CacheMemory)是位于CPU与内存之间的临时存储器,它的容長比内存小的多可是互换速度却比内存要快得多。
缓存的出现主如果为了解决CPU运算速度与內存谀写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,如此会使CPU花费很长时刻等待数据到来或把数据写入内存。
在缓存中的教据是内存中的一小部份,但这一小部份是短时刻內CPU即将访问的,当CPU挪用大長数据时,就可避开内存直接从缓存中挪用,从而加速读取速度。
由此可见,在CPU中加入缓存是一种高效的解决方案,如此整个内存储器(缓存内存)就变成了既有缓存的高速度,又有内存的大容長的存储系统了。
缓存对CPU的性能影响专门大,主如果因为CPU的数据互换顺序和CPU与缓存间的带宽引发的。
缓存的工作原理是当CPU要读取一个数据时,第一从缓存中査找,若是找到就当即读取并送给CPU处萱;若是没有找到,就用相对慢的速度从内存中读取并送绐CPU处宣,同时把那个数据所在的数据块调入缓存中,能够使得以后对整块教据的读取都从缓存中进行,没必要再挪用内存。
正是如此的读取机制使CPU读取缓存的命中率超级高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%雷要从内存读取。
这大大节省TCPU直接读取内存的时刻,也使CPU取数据时大体无雷等待。
总的来讲,CPU读取数据的顺序是先缓存后内存。
目前缓存大体上都是采用SRAM器,SRAM是英文StaticRAM的缩写,
它是一种具有静志存取功能的存储器,不需要刷新电路即能保留它内部存储的数据。
不像PRAM内存那样雷要刷新电站,每隔一段时刻,固定要对ORAM刷新充电一次,不然内部的数据即会消失,因此SRAM具有较高的性能,可是SRAM也有它的缺点,即它的集成度较低,相同容長的HRAM内存能够设计为较小的体积,可是SRAM却需要专门大的体积,这也是目前不能将缓存容長做得太大的重要原因。
它的特点归纳
如下:
长处是节能、速度快、没必要配台內存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容長体积较大、而且价钱较高,只能少長用于关键性系统以提高效率。
依照教据读取顺序和与CPU结台的紧密程度,CPU缓存能够分为一级缓存,二级缓存,部份高端CPU还具有三级缓存,每一级缓存中所贮存的全数数据都是下一级缓存的一部份,这三种缓存的技术难度和制造本钱是相对递减的,所以其容長也是相对递增的。
当CPU要读取一个数据时,第一从一级缓存中査找,若是没有找到再从二级缓存中査找,苦是仍是没有就从三级缓存或内存中査找。
一般来讲,毎级缓存的命中率可能都在80%左右,也就是说全教教据長的80%都能够在一级缓存中找到,只剩下20%的总数据長才雲要从二级缓存、三级缓存或内存中渎取,由此可见一级缓存是整个CPU缓存架构中最为重要的部份。
一级缓存(Luzl1Cache)简称LICache,位于CPU内核的隔里,是与CPU结台最为紧密的CPU缓存,也是历史上昙先出现的CPU缓存。
由于一级缓存的技术难度和制造本钱昙高,提高容長所带来的技术难度增加和本钱増加超级大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率巳经很高,所以一级缓存是所有缓存中容長最小的,比二级缓存要小得多。
一般来讲,一级缓存能够分为一级教据缓存(DataCache,D-Cachc)和一级指令缓存(InstructionCache,I-Cachc)。
二者别商用来寄存数据和对执行这些数据的指令迸行即时軀码,而且二者能够同时被CPU访问,减少了争用Cache所造成的冲突,提高丁处直器效能。
目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容長,例如AMP的AthlonXP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB64KB来表示,其余的CPU的一级缓存表示方式以此类推。
Intel的采用NctBurst架构的CPU(最典型的就是Pentium4)的一级缓存有点特殊,利用了新•増加的一种一级追踪缓存(ExercutionTraceCnchu,T-Cachc或ETC)来替代一级指令缓存,容是为12Kgps,表示能存储12K条即12000条解码后的微指令。
一级追踪缓存与一级指令缓存的运行机制是不相同的,一级指令缓存只是对指令作即时的解码而并非会贮存这些指令,而一级追踪缓存一样会将一些指令作解码,这些指令称为微指令(miem-ops),而这些微指令能贮存在一级追踪缓存之内,无雾每一次都作出解码的程序,因此一级追踪缓存能有效地增加在高工作频率下对指令的解码能力,而pOps就是micro-ops,也就是微型操作的意思。
它以很高的速度将pops提供绐处晝器核心。
IntelNuiBurst微型架构利用执行跟踪缓存,将解码器从执行循环中分离出来。
那个跟踪缓存以很高的带宽将uops提供给核心,从本质上适于充分利用软件中的指令级并行机制。
】nT并无发布一级追踪缓存的实际容長,只明白一级追踪缓存能贮存12000条微指令(mierxps)。
所以,咱们不能简单地用微指令的数長来比较指令缓存的大小。
实际上,单枝心的NuiBurst架构CPU利用8Kgps的缓存已经大体上够用丁,多出的4kmps能够大大提高缓存命中率。
而若是要利用超线程技术的话,12Ky()ps就会有些不够用,这就是为何有时候Inwl处貫器在利用超线程技术时会致使性能下降的重要原因。
例如Northgod核心的一级缓存为8KB12KROps,就表示其一级数据缓存为8KB,一级追踪缓存为12K|iOps;而Prescott核心的一级缓存为16KB12KpiOps,就表示其一级教据缓存为16KB,一级追踪缓存为12KpiOpso在这里12Ky()ps绝对不等于12KB,单位都不同,一个是ROps,一个是Byiv(宇节),而且二者的运行机制完全不同。
所以那些把Intel的CPU一级缓存简单相加,例如把Northwood核心说成是20KB一级缓存,把Prescott核心说成是28KB-级缓存,而且据此以为Inwl处賣器的一级缓存容長远远低于AMP处晝器128KB的一级缓存容長的观点是完全错误的,二者不具有可比性。
在架构有必然区别的CPU对比中,很多缓存巳经难以找到对应的东西,即便类似若称的缓存在设计思、站和功能概念上也有区别了,现在不能用简单的算术加法来进行对比;而在架构极为近似的CPU对比中,别离对比各类功能缓存大小才有必然的意义。
二级缓存
CPU缓存(CacheMemory)是位于CPU与内存之间的临时存储器,它的容長比内存小但互换速度快。
在缓存中的教据是内存中的一小部份,但这一小部份是短时刻内CPU即将访问的,当CPU挪用大長数据时,就可避开内存直接从缓存中挪用,从而加速读取速度。
由此可见,在CPU中加入缓存是一种高效的解决方案,如此整个内存储器(缓存内存)就变成丁既有缓存的高速度,又有内存的大容長的存储系统了。
缓存对CPU的性能影响专门大,主如果因为CPU的数据互换顺序和CPU与缓存间的带宽引发的。
缓存的工作原理是当CPU要读取一个教据时,第一从缓存中査找,若是找到就当即读取并送给CPU处賣;若是没有找到,就用相对慢的速度从内存中读取并送绐CPU处貫,同时把那个数据所在的数据块调入缓存中,能够使得以后对整块教据的读取都从缓存中进行,没必要再挪用内存。
正是如此的读取机制使CPU读取缓存的命中率超级高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%雷要从内存读取。
这大大节省了CPU宜接读取内存的时刻,也使CPU读取数据时大体无雷等待。
总的来讲,CPU读取数据的顺序是先缓存后内存。
景先先的CPU缓存是个整体的,而且容長很低,英特尔公司从Pentium时期开始把缓存迸行丁分类。
那时集成在CPU内核中的缓存已不足以知足CPU的雷求,而制造工艺上的限制又不能大幅度提高缓存的容長。
因此出现了集成在与CPU同一块电路板上或主板上的缓存,现在就把CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。
一级缓存中还分数据缓存(DitaCachu,D-Cachc)和指令缓存
(InstructionCache,1-Cachc)o二者别离用来寄存数据和执行这些数据的指令,而且二者能够同时被CPU访问,减少了争用Cache所造成的冲突,提高丁处直器效能。
英待尔公司在推出Pentium4处直器时,用新增的一种一级追踪缓存替代指令缓存,容長为12KROps,表示能存储12K条微指令。
随着CPU制造工艺的进展,二级缓存也能轻易的集成在CPU内核中,容旻也在逐年提升。
此刻再用集成在CPU內部与否来槪念一、二级缓存,已不确切。
而且随着二级缓存被集成入CPU内核中,以往二级缓存与CPU大差距分频的情形也被改变,现在其以相同于主频的速度工作,能够为CPU提供更高的传输速度。
二级缓存是CPU性能表现的关键之一,在CPU核心不转变的情形下,增加二级缓存容長能使性能大幅度提高。
而同一核心的CPU高低端之分往往也是在二级缓存上有不同,由此可见二级缓存对于CPU的重要性。
CPU在缓存中找到有效的数据被称为命中,当缓存中没有CPU所雷的数据时(这时称为未命中),CPU才访问内存。
从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。
也就是说CPU—级缓存中找到的有效教据占数据总長的80%,剩下的20%从二级缓存中读取。
由于不能准确预测将要执行的教据,读取二级缓存的命中率也在80%左右(从二级缓存读到有效的教据占总数据的16%)o那么还有的教据就不能不从内存挪用,但这已是一个相当小的比例了。
目前的较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据雷要从内存中挪用,这迸一步提高TCPU的效率。
为了保证CPU访问时有较高的命中率,缓存中的内容应该按必然的算法替换。
一种较常常利用的算法是“最近舅少利用算法”(LRU算法),它是将最近一段时刻内是少被访问过的行淘汰出局。
因此需要为每行设直一个计数器,LIU;算法是把命中行的计数器清零,其他各行计数器加1。
当雷要替换时淘汰行计教器计数值最大的数据行出局。
这是一种高效、科学的算法,其计数器清零迸程能够把一些频繁挪用后再不雲要的数据淘汰出缓存,提高缓存的利用率。
CPU产品中,一级缓存的容長大体在4KB到64KB之间,二级缓存的容長则分为128KB、256KB、512KB、1MB、2MB等。
一级缓存容長各产品之间相差不大,而二级缓存容旻则是提高CPU性能的关键。
二级缓存容長的提升是由CPU制造工艺所决定的,容長增大必然致使CPU内部晶体管敌的増加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。
双核心CPU的二级缓存比较特殊,和以前的单核心CPU相较,最重要的就是两个内核的缓存所保留的数据要维持一致,不然就会出现错误,为了解决那个问题不同的cpu利用~r不同的办法:
Intel双核心处直器的二级缓存
目前Intel的双核心CPU主要有PentiumD、PentiumEE、CoreDuo三种,其中PentiumD、PentiumEE的二级缓存方式完全相同。
PentiumD和PentiumEE的二级缓存都是CPU内部两个内核具有彼此独立的二级缓存,其中,8xx系列的Smithfield核心CPU为每核心1MB,而9xx系列的Presier核心CPU为每核心2MB。
这种CPU内部的两个内枝之间的缓存数据同步是依托位于主板北桥芯片上的仲裁单元通过前端总线在两个核心之间传输来实现的,所以其数据延迟问题比较严峻,性能并非尽如人意。
CoreDue利用的核心为Yonah,它的二级缓存则是两个核心共亨2MB的二级缓存,共享式的二级缓存配台Inwl的“Stwirtcachu”共享缓存技术,实现了真正意义上的缓存数据同步,大幅度降低丁数据延迟,减少了对前端总线的占用,性能表现不错,是目前双核心处直器上最先进的二级缓存架构。
此后Intul的双核心处直器的二级缓存都会采用这种两个内枝共辜二级缓存的Smartcache"共享缓存技术。
AMP双核心处宣器的二级缓存
Athlon64X2CPU的核心主要有Manchester和Toledo两种,他们的二级缓存都是CPU内部两个内核具有彼此独立的二级缓存,其中,Manchester核心为每核心512KB,而Toledo枝心为每核心IMBo处直器内部的两个内核之间的缓存数据同步是依托CPU内直的SystemRequestlntcrfacc(系统请求接口,SR1)控制,传输在CPU内部即可实现。
如此一来,不但CPU资源占用很小,而且没必要占用内存总线资源,数据延迟也比Intel的Smithfield核心和Prcslcr核心大为减少,协作效率明显胜过这两种核心。
不过,由于这种方式仿然是两个内核的缓存彼此独立,从架构上来看也明显不如以Yonah核心为代表的Intel的共享缓存技术SmartCachee
一级缓存与二级缓存的比较
LIcachevsL2Cache用于存储数据的缓存部份通常被称为RAM,掉电以后其中的信息就会消失。
RAM又分两种,其中一种是静态RAM(SRAM);另外一种是动态RAM(DRAM)O前者的存储速度要比后者快得多,咱们此刻利用的内存一般都是动态RAMoCPU的L1级缓存通常都是静态RAM,速度超级的快,可是静态RAM集成度低(存储相同的教据,静态的体积是动态的6倍),而且价钱也相对较为昂贲(同容長的静态RAM是动态RAM的四倍)。
扩大静态RAM作为缓存是一个不太台算的做法,可是为了提高系统的性能和速度又必雷要扩大缓存,这就有了一个折中的方式:
在不扩大原来的静态RAM缓存容旻的情形下,仅仅增加一些高速动态RAM做为L2级缓存。
高速动态RAM速度要比常规动态RAM快,但比原来的詩态RAM缓存慣,而且本钱也较为适中。
一级缓存和二级缓存中的内容都是内存中访问频率高的数据的負制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。
二级缓存是CPU性能表现的关键之一,在CPU核心不特变的情形下,増加二级缓存容長能使性能大幅度提高。
而同一核心的CPU高低端之分往往也是在二级缓存上存在不同,由此可见二级缓存对CPU的重要性。
CPU在缓存中找到有效的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。
从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。
也就是说CPU—级缓存中找到的有效数据占数据总長的80%,剩下的20%从二级缓存中读取。
由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有效的数据占总教据的16%)。
那么还有的数据就不能不从内存挪用,但这已是一个相当小的比例了。
目前的较高端CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中挪用,这进一步提高丁CPU的效率,从某种意义上说,预取效率的提高,大大降低了生产本钱却提供丁超级接近理想状态的性能。
除非某天生产技术变得超级强,不然内存仍会存在,缓存的性能递増特性也仿会保留。
CPU缓存与内存的关系既然CPU缓存能够在专门大程度上提高CPU的性能,那么,有些朋友可能会问,是不是未来有可能,目前的系统内存将会被CPU取代呢?
答案应该是不是定的,第一,虽然CPU缓存的传输速度确实很高,但要完全取代内存的地位仍不可行,这主如果因为缓存只是内存中少部份数据的复制品,所以CPU到缓存中寻觅教据时,也会出现找不到的情形(因为这些数据没有从内存負制到缓存中去),这时CPU仍是会到内存中去找数据,与此同时系统的速度就慢了下来,不过CPU会把这些数据复制到缓存中去,以便下一次不用再到内存中去取。
也即是说,随着缓存增大到必然程度,其对CPU性能的影响将愈来愈小,在性能比上来讲,愈来愈不台算。
就目前缓存容星、本钱和功耗表现来
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 缓存 北桥南桥 前端 总线