沧海桑田话存贮 内存/显存发展编年史
对于一块几十美元的低端显卡来说,物理成本的构成一般会有3个主要方面,包括核心芯片、显存芯片和PCB。三者的成本比重不同,其中核心芯片和显存芯片的比例最大,大概都要占到30%以上,而PCB和其它元件一般只占到15%左右。
在BIOS里可以设置“虚拟显存”的大小
TurboCache 共享专用视频内存的容量和带宽及系统内存,取得了增强的性能和更多的图形总内存。TurboCache Manager 分配系统内存来取得最大系统性能,允许该卡就像在本机上一样也使用系统内存。利用高速双向 PCI Express 总线,TurboCache 使内存带宽双倍增长。TCM 在本机或 TurboCache 内存中分配缓冲区,以最大化图形性能和最小化对系统性能的影响。
双向 PCI Express 带宽配合 TurboCache 架构,提升了图形性价比。既然是利用系统内存,这和以前的集成显卡又有什么区别呢?
在NVIDIA的官方技术说明中,内存管理技术可以“允许GPU在分配和不分配系统内存时无缝切换,并且高效的读写内存”。这个工作由驱动程序中名叫TC的管理部分执行,以分配和平衡系统及本地显存,而且它的操作级别非常高。TC技术新引入了内存管理单元(Memory Manage Unit,MMU),能够让GPU透过PCI-E总线直接对系统内存进行读取和写操作,自动把渲染结果和纹理分配在本地内存或者系统内存上。这就类似于把CPU的内存管理器搬到了GPU里,能够把本地缓存和系统内存浑然视作一体,突破两者的物理地址,以虚拟寻址方式自由地分配帧缓存以及纹理缓存。
比如有一台使用集成显卡的电脑有512M系统内存,如果划给集成显卡8M容量作为显存,则系统中会显示仅有504M系统内存,但使用TC技术不会导致这种情况,它不会固定的分出一块内存当作显存,它的作用主要反映在两方面: 第一、TC技术仅仅是需要占用主内存的时候才占用,MMU具有一个智能的算法来决定使用主内存和使用板载缓存的非常好的途径。
其次,2D显示输出是使用板载高速缓存,因此在这种情况下不会和CPU争抢内存的控制权。
即使显卡需要占用一部分内存,但BIOS与Windows都会认为系统仍具有512M内存。还有比起集成显卡完全依赖于系统内存的情况,TC却可以通过显卡板载的显存作为Cache来加快对系统内存的读取调用速度,为显卡性能带来明显的提升。
所以Turbo Cache技术完全不会像整合显卡一样影响系统内存。由于 TurboCache 是集成到GPU中的,因此不能关闭它。
HyperMemory是ATI提出的解决本地显存容量与显卡成本之间矛盾的一种解决方案,最先出现在其RS480芯片组中,随后推出的低成本版X300 HyperMemory中也有其身影。
HyperMemory和Turbo Cache一样是一种动态划分内存的技术,在HyperMemory出现之前,由于PCI-Express总线没有很明显的类似AGP DIME的设计,PCI-Express接口的显卡无法直接地对内存进行利用,所以往往需要通过搭配更大的本地显存来满足图形应用中对存储空间的需求。这大大增加了PCI-Express接口显卡的制造成本,同时,大容量本地显存的解决方案也并非适用于所有用户,中低端及入门级用户需要更低成本的解决方案。
而HyperMemory技术出现后,ATI可通过它来大幅削减其PCI- Express接口显卡的本地显存容量以达到控制成本的目的,同时可通过对系统内存的调用来解决存储空间和存储性能的需求问题。
通过HyperMemory技术的应用,核心在完成数据吞吐时将不必受空间因素的影响。同时,在所调用内存空间的分布方面,HyperMemory采用事先扫描内存并寻找合适空间的方式,这样做能最大限度保证内存空间的利用率,很有“见缝插针”的味道。一言以蔽之, HyperMemory的特点在于“分立”和“自由”,和Turbo Cache技术没有本质区别,可以理解为它们和虚拟内存一样,是一种“虚拟显存”技术。
当然HyperMemory和Turbo Cache并非解决问题的万金油,系统内存本身的带宽无法和显卡板载显存相提并论,绕道产生的系统总线拥挤和延迟也是无法避免,只能算是权宜之计,不得已而为之。之前的多数测试也表明明这些技术并不能达到化腐朽为神奇的作用。总的来说HyperMemory和Turbo Cache不失为一个十分优秀的显示数据存储解决方案。它在强调成本的前提下最大限度地保留并发挥了核心的性能。其次用户在购买显卡的时候不能只看显卡标号,现在不少中低端显卡利用这两样技术鱼目混珠。XXX 1G版,往往只有512M甚至更少的板载显存!