1、高速缓存出现的原因
高速缓存(Cache)的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。为了减少这种情况的发生,人们就想到了使用Cache,它采用一种读写速度要比系统内存快很多的特殊静态内存。系统工作时,将运行时要经常存取的一些数据从系统内存读取到Cache中,而CPU会首先到Cache中去读取或写入数据,如果Cache中没有所需数据(或Cache已满,无法再写入),则再对系统内存进行读写,另外Cache在空闲时也会与内存交换数据。其实质就是是在慢速DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用,使CPU既可以以较快速度存取SRAM中的数据,提高系统整体性能,又不使系统成本上升过高。
2、高速缓存的工作原理
Cache的工作原理是基于计算机程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。对这些地址的访问具有时间上集中分布的倾向。数据分布以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。根据程序的局部性原理,就为Cache的存在提供了理论依据,系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。
3、高速缓存的分级结构
CPU高速缓存是分级构造的,一般由L1和L2两极构成,通常L1 Cache的速度最快,与CPU核心的距离也最近,但容量较小,而L2 Cache 速度稍慢,但容量较大。Cache采用分级结构的主要理由在于:对于一个典型的一级缓存系统的80%的内存申请都发生在CPU内部,只有20%的内存申请是与外部内存打交道。而这20%的外部内存申请中的80%又与二级缓存打交道。因此,采用分级结构将更加有利于效能的提升和成本的合理分配。
这种分层的高速缓存布局有助于弥合处理器与系统内存速度之间不断加大的差距,处理器速度每年大约提高50%,而DRAM存取速度每年仅提高5%,由于性能不匹配程度的加剧,CPU将增加第三级,甚至第四级高速缓存。
4、高速缓存的构成
目前Cache基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静志存取功能的内存,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将Cache容量做得太大的重要原因。它的特点归纳如下:优点,节能、速度快,不必配合内存刷新电路,可提高整体的工作效率。 缺点,集成度低,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。
二、CPU 高速缓存的发展历史
高速缓存最初应用在CPU领域,目前在CPU领域的应用也最为广泛和深入。下面就简单谈谈高速缓存随CPU的发展而不断变化的历史过程。
1、80486开始出现了内部Cache
PC在诞生的初期并不存在Cache的概念,由于CPU主频很低,DRAM的存取时间甚至快于CPU存取时间,因此无需Cache。 80386时代开始出现了外部Cache。在80486时代CPU内部才正式出现了Cache。实际上80486就是由更高主频的80386 加80387数字协处理器以及8kB 内部Cache构成。80486芯片内由8kB的Cache来存放指令和数据。同时,80486也可以使用处理器外部的第二级Cache,用以改善系统性能并降低80486要求的总线带宽。
2、Peutium时代Cache技术发展迅速
Peutium不仅分离L1 Cache和L2 Cache ,而且由于Pentium处理器采用了超标量结构双路执行的流水线,有2条并行整数流水线,处理器也需要对命令和数据进进双倍的访问。为使这些访问不互相干涉,Intel把在486上共用的内部Cache,分成2个彼此独立的8kB代码Cache和8kB数据Cache,这两个Cache可以同时被访问。这种双路高速缓存结构减少了争用Cache所造成的冲突,提高了处理器效能。Pentium的Cache还采用了回写写入方式,这同486的贯穿写入方式相比,可以增加Cache的命中率。此外,还采用了一种称为MESI高速缓存一致性协议,为确保多处理器环境下的数据一致性提供了保证。在Pentium MMX中更是增大了L1的容量,并改进了相关的算法。
3、Pentium Pro出现内嵌式L2 Cache
为使Pentium Pro的性能超过Pentium,必需使用创新的设计方法,Pentium Pro使用了内嵌式L2 Cache,大小为512kB。此时的L2已经用线路直接连到CPU上,好处就是减少了对L1 Cache的需求。L2 Cache与CPU同步运行。当L1 Cache不命中时,立刻访问L2 Cache,不产生附加延迟。为进一步减少因要访问的信息不在高速缓冲中时所带来的性能损失,Pentium Pro的L1和L2都设计成非锁定型。即当哪个Cache中没有CPU所需的信息时,它不妨碍后面访问Cache的处理过程。但限于当时的CPU制造工艺,Pentium Pro的内嵌式L2 Cache 良品率太低,生产成本过高, Pentium Pro成为一款寿命短暂的过渡产品。
4、PentiumⅡ的双重独立总线
PentiumⅡ是Pentium Pro的改进型,具有MMX指令,使用动态执行技术,采用双独立总线结构。PentiumⅡ同样有2级Cache,L1为32kB(指令和数据Cache各16kB)是Pentium Pro的一倍。L2为512kB。
Pentium Ⅱ与Pentium Pro在L2 Cache 的不同主要在于L2 Cache已不在内嵌芯片上,而是与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上,即“单边接触盒”上。双独立总线结构就是:L2高速缓存总线和处理器至主内存的系统总线, PentiumⅡ处理器可以同时使用这两条总线,与单一总线结构的处理器相比,该处理器可以进出两倍多的数据。
5、PentiumⅢ L2 Cache进一步改进
PentiumⅢ也是基于Pentium Pro结构为核心,在原有MMX多媒体指令的基础上,又增了70多条多媒体指令。它使用动态执行技术,采用双独立总线结构。 PentiumⅢ具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到1~2MB,具有更合理的内存管理,可以有效地对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。在执行大数据流量程序时,高效率的高速缓存管理使PⅢ避免了对L2 Cache的不必要的存取。由于消除了缓冲失败,多媒体和其它对时间敏感的操作性能更高了。对于可缓存的内容,PⅢ通过预先读取期望的数据到高速缓存里来提高速度,这一特色提高了高速缓存的命中率,减少了存取时间。
三、其他配件中的高速缓存
Cache从本质上说是一种高速设备和低速设备的速度匹配技术,不仅用在提高CPU对内存的读写速度上,而且在电脑的其它配件中也得到了广泛应用。在较慢速的其它外围设备和内存的数据交换中,甚至在网络通讯中,都需要使用Cache技术。推而广之,凡是在传输速度有较大差异的设备之间,都可以利用Cache的速度匹配技术。
1、主板高速缓存
由于在Pentium II推出之前,CPU只有内部集成的L1 Cache(一级高速缓存),L2Cache(二级高速缓存)都被放置在主板上。Pentium时代的主板上大都用速度较快,容量较大的同步PB SRAM (Pipeline Burst SRAM 管线突发式静态内存),一般为256KB或512KB。当时在主板上还存在Tag SRAM的概念。
Tag SRAM,即标记的静态随机存取存储器,它是在高速缓存系统中配合高速缓存的附加SRAM,它也是高速缓存,只是用在高速缓存电路中记录地址数据,当CPU要读取主存某一个地址中的数据时,会先到高速缓存电路中去寻找,对高速缓存系统的Tag SRAM所记录的地址数据进行搜寻和对比,当高速缓存内也存有此地址的数据时,高速缓存总线的仲裁控制电路即将数据读取传回CPU,若对比Tag SRAM记录的地址数据而找不到此数据的地址时,CPU就会到主存读取数据。因此Tag SRAM与高速缓存的命中率有很大关系。由于现在CPU内部都集成了L2 Cache,故PII以后,主板上都不再集成Cache了。
2、CPU高速缓存的应用
关于CPU高速缓存的发展历史等相关情况,前面已经谈及。这里主要介绍一下目前主流CPU使用高速缓存的情况。
象最新的Northwood P4处理器,不仅采用了0.13 微米工艺生产,其体系结构也有所改变,提高了运算效率(指令周期)。 并且将L2 CACHE的容量由老P4的256K 增加为512K。在性能上有10%左右的提升。
Tualatin 赛扬的二级缓存采用了全速256KB(8路), Pentium III同样大小的二级缓存,这对于提高CPU的性能有很大的帮助。Tualatin核心赛扬的性能非常不错,在很大程度上就是得益于256KB的全速缓存。这也充分反映出高速缓存对电脑配件性能的影响。
AMD 的Morgan实际上和Palomino核心的毒龙规格相同,只是CPU内部L2 Cache有所不同。最引人注意的一点是改进了Cache算法。在Morgan中包含了一个硬件化的数据预读取规则。这个功能就是在CPU对数据进行了处理之后,预读取设备可以猜测哪些数据是CPU所需要的。如果这些数据并没有在Cache中,那么这个预读取设备就会自动到主内存中去重新获取这个数据;而如果这个数据已经存在于Cache之中的话,那么CPU就会更加快速地得到这个数据。
Athlon XP无疑是AMD今年最成功的产品,它采用了类似于Pentium 4的硬件预读技术--执行跟踪高速缓存,预先将处理器可能需要的数据从主内存读到缓存中,这一过程能明显提高系统总线和内存带宽的利用率,进而提升系统性能。
主要用于服务器的Merced 对Cache的要求更高了。为此,lntel在芯片内开发新的Cache,并增加L1 Cache的容量,来平衡CPU和DRAM间的速度。为此,在Merced的片上最接近执行单元旁再设另一处Cache,称为L0缓存,是指令/数据分离型。由于L0Cache在物理位置上比L1离执行单元更近,布线距离的缩短,使它与执行单元间的数据交换速度比L1还快,可以进一步提高工作主频。 同时,还要在芯片内部配置超过1MB的大容量L1 Cache。芯片内部Cache比外部Cache更易于提升与执行单元间的数据传送速度。
3、硬盘高速缓存
在PC的磁盘系统中,高速缓存也得到了广泛应用。为提高内存对硬盘的读写速度,就要建立磁盘高速缓存,不过硬盘高速缓存不必使用昂贵的SRAM,使用普通的DRAM即可,因为DRAM内存的存取速度对CPU来说较慢,但对磁盘的存取速度却是很快的。这是因为磁盘存储系统包含有磁头的机械运动,而机械运动无法跟传送电信号的电子速度相比。以前硬盘内部集成的高速缓存只有512K左右,而现在硬盘普遍将高速缓存的容量提升到2M以上,个别产品甚至达到了8M。由于硬盘Cache无需使用高速的SRAM,除了内部集成的SDRAM,我们还可以在系统主内存中划出一个区域,作为专用的磁盘缓冲区,采用一定的数据结构,即可实现磁盘存取的二级Cache技术。硬盘高速缓存的工作过程及原理与CPU高速缓存类似,也是把即将访问的数据整块地拷贝到高速缓存区中,然后内存再到高速缓存中去逐个读取数据。由于数据在RAM空间内部传送要比在RAM与磁盘间传送快得多,从而系统由此提高了存取速度。
下面给大家介绍一下西数WD1000BB-SE 8MB缓存硬盘,由于内存的读写速度大大高于硬盘的读写速度,因此大容量的缓存可以有效提高存储器的数据传输速度。但目前市面所售的大部分硬盘都只带512K--2MB的缓存。西数前段时间推出的7200转,100G硬盘特别版WD1000BB-SE,其单碟容量为33G,接口类型为ATA100,平均寻道时间8.9毫秒,这方面参数与其他硬盘相比并无特别,不过WD1000BB-SE将硬盘的缓存容量从2MB直接提升到了8MB。引起了业界的普遍关注。经过多方面评测,由于缓存容量的加大,这款IDE接口硬盘的实际性能已经接近或超越了不少10000转SCSI接口硬盘,成为IDE硬盘中的速度王者。这也充分反映出高速缓存对电脑配件性能的影响。
4、刻录机的缓存
缓存容量的大小是衡量光盘刻录机性能的重要技术指标之一,刻录时数据必须先写入缓存,刻录软件再从缓存区调用要刻录的数据,在刻录的同时后续的数据再写入缓存中,以保持要写入数据良好的组织和连续传输。如果后续数据没有及时写入缓冲区,传输的中断则将导致刻录失败。因而缓冲的容量越大,刻录的成功率就越高。市场上的光盘刻录机的缓存容量一般在1MB~4MB之间,目前最大的有8M缓存的产品。尤其对于IDE接口的刻录机,缓存容量很重要。增加高速缓存既有利于刻录机的稳定工作,同时也有利于降低CPU的占用率。 总之缓存大小对刻录机是非常的重要的,缓存越大刻录时就越稳定。目前市场上有多款刻录机都带有8M缓存,配合其他防刻死技术,有效防止了出现“缓存欠载”导致刻录失败的问题。
在普通光驱中也内置有高速缓存,当然其作用没有刻录机中的重要,主要是为了提高读盘效率,降低CPU占用率,因此容量也比较小,一般只有512K。
5、其他设备的高速缓存
在PC其他配件中也都存在高速缓存的应用。比如在显示系统中,由于3D应用的迅猛发展,现在显卡上的显示内存普遍达到了32M以上,甚至多达128M,因此也广泛使用着高速缓存技术,如前台缓存、后台缓存、深度缓存和纹理缓存等。
现在还有所谓CDRAM(Cache DRAM) 带高速缓存的内存,就是在内存芯片上集成了特殊构造的SRAM。发展好的话过几年有可能成为主流内存。除此之外,甚至在声卡、RAID卡、SCSI卡中也带有高速缓存,
四、高速缓存的调整及应用
1、BIOS中与高速缓存有关的选项
1)Video ROM的Shadow
“影子”内存(ShadowRAM,或称ROMShadow)是为了提高系统效率而采用的一种专门Cache技术,它把系统主板上的系统ROMBIOS和适配器卡上的视频ROMBIOS等拷贝到系统RAM内存中去运行,其地址仍使用它们在上位内存中占用的原地址。更确切地说,是从扩展内存中拿出一部分物理存储空间,而赋以ROM的原地址,由这部分扩展RAM代替原ROM。由于ROM采用静态CMOS电路,其存取速度为200ns左右,而系统存储器RAM采用动态CMOS电路,其存取速度进几十ns,速度快好几倍,将存放在ROM中的BIOS代码(基本输入输出例行程序,它们在系统运行期间非常频繁的被调用)拷贝到系统RAM中去,就可提高系统运行和显示的速度和效率。
2)CPU Internal Cache
CPU内部快速缓存是否打开,一般设置为Enable。Enternal Cache:是否使用主板缓存,一般设置为Enable。CPU L2 Cache Ecc Checking:CPU的L2 缓存Ecc 检测,可设置为Disable。
从字面上看,“CPU Internal Cache”和“External Cache”分别指CPU内部和外部的高速缓存,但更准确的说法应该是一级缓存和二级缓存。Socket/Super 7架构的CPU内部只有一级缓存,二级缓存放在了主板上,“Internal”和“External”的说法就源于此,而对PⅡ、PⅢ和K6-Ⅲ等CPU来说,二级缓存也被集成到CPU内部,内外部的说法就不太确切了,因此一些Slot 1主板对此进行了修改,改称为“CPU Level 1 Cache”和“CPU Level 2 Cache”。除非打开后系统会出现死机等情况,否则这两个选项都应设为Enabled,以加快CPU读取内存的速度。
3)二级缓存的潜伏期
在BIOS中,我们还可以调节二级缓存的潜伏期,其中Level 2 Cache Latency(二级缓存潜伏期)有16个值可选(1~15),从理论上来说,数值越小延迟时间越短,性能也越高。如果把数值设得过小,二级缓存有可能停止工作,不仅系统性能会急速下跌,还会发生死机现象。L2 Cache对内存带宽有重大影响,即使CPU频率再高,其它设备跟不上亦是无用,增加缓存潜伏期可以让机器更稳定,避免上述情况。
4)System BIOS Cacheable
“System BIOS Cacheable”、“Video BIOS Cacheable”和“Video RAM Cacheable”分别指定是否可以使用二级高速缓存来缓存系统BIOS、显卡BIOS和显示内存,缓存之后,BIOS调用的执行速度以及访问显示内存的速度都会加快,因此最好都设成Enabled。不过,当显示内存可以被缓存时,少数显卡可能会出现兼容性问题,此时可考虑将第三项设为Disabled。
2、调整高速缓存优化系统
如果你的应用程序需频繁访问硬盘,可在扩充或扩展内存中建立“直接写盘(write-through)”型磁盘高速缓存。用户可在autoexec.bat文件中加入命令行:c:\dos\smartdrv.exe,则此驱动程序会自动装入内存高端,其磁盘缓冲区缺省值为256KB,你可以改变这个值的大小。一般设置为物理内存的1/8左右比较合适。SMARTDRV.EXE一个外部设备驱动程序。用此程序可启动或设置磁盘高速缓冲存储器。与Cache不同,Cache是充分发挥了CPU的速度,而SMARTDRV是加快了磁盘的读写速度。在实际应用中,SMARTDRV.EXT高速缓存驱动程序将记住每次应用程序使用磁盘的磁盘扇区数据,不用再访问磁盘驱动器,而是访问内存中已包含这些数据的区域。
总的来说,PC中的Cache主要是为了解决高速设备和低速设备间速度匹配的问题,是提高系统性能,降低系统成本而采用的一项技术。随着电脑技术的飞速发展, Cache已成为PC中大多数配件不可缺少的组成部分,是衡量系统性能优劣的一项重要指标。从系统的性价比考虑,Cache的配备将在很长一段时间内仍然是PC中重要的技术之一。
光线追踪是英伟达NVIDIA RTX 20系列显卡专属功能,与以往的光线效果预设不同,光线追踪通过真实光照模拟,可以实现更为逼真的阴影和反射效果,能够更加平滑和流畅的展现游戏中画面的光线和阴影细节。
其实,光线追踪技术早已广泛用于电影和电视节目所制作的计算机图形图像之中。但由于光线追踪对图形计算能力要求很高,因而需要借助整个服务器群(或云计算)的力量。
由于光线追踪对显卡要求高,因而以往的游戏主要是利用光栅化,它是一种渲染计算机图形的更快速方法。其作用是能够把 3D 图形转换为 2D 像素以显示在屏幕上,但光栅化需要着色器描绘合理逼真的照明效果。其最终的结果不如光线追踪那么自然或逼真。
光线追踪优点:带来更为逼真的画质体验;缺点:对显卡性能要求非常高。
可以预见的是,光线追踪未来可能完全取代光栅化,并作为渲染 3D 场景的标准算法。
专业解释起来,可能很多网友还是不知道其含义,通俗来说,显卡光线追踪技术能够让游戏拥有电影级画质,为游戏玩家带来更加逼真的游戏画面效果。
扩展资料
光线追踪目前来说主要作用在于提升游戏画质,带来更为逼真的游戏视觉体验。对于游戏玩家来说,想要体验实时光线追踪技术,需要满足以下3个条件:
1、显卡支持实时光线追踪技术
目前,NVIDIA发布的RTX20系显卡率先加入了光线追踪技术,目前高端系列的RTX20180 Ti、RTX2080均支持光线追踪技术。不过,由于光线追踪技术对显卡性能要求很高,还没有发布的RTX20中低端系列显卡是否支持还不得而知。
2、游戏要加入光线追踪支持
除了显卡要支持,游戏自然也不能落下。未来将有多款热门游戏会支持RTX光线追踪技术,其中就包括《绝地求生》、《逆水寒》《方舟:生存进化》等,而几款关注度颇高的3A新作也同样搭载了这一技术,《战地5》、《古墓丽影:暗影》、《地铁:离去》等等。
3、系统支持
目前,微软已经将RTX技术和光线追踪集成在最新Win10的DX12开发包中,随着越来越多的游戏开发完成,玩家将在不远的将来逐渐体验到基于RTX技术开发的游戏,这是一种趋势,其必将引领未来PC游戏的发展方向!