|
Chipset-Memory 速度 |
Q3 Normal |
Q3 High Quality |
Indy3D |
Expendable |
|
VIA KX-100 |
106.1 |
83 |
58.8 |
86 |
|
VIA KX-133 |
109.4 |
86.8 |
62 |
99.8 |
|
Total Increase |
3% |
5% |
5% |
16% |
众所周知,拥有巨大数据量的应用软件诸如CAD和Photoshop,并不是唯一要求高内存速度的东西,使用了越来越多的多边形和纹理贴图的游戏也要求更高的内存宽带。当然,你可以设法将应用软件中几乎所有的数据和指令都保存在CPU内部的高速缓冲存储器内。举个例子来说,Intel公司提供的PIII
Xeon 就是一个有2MB的高速缓冲存储器的处理器,这个巨大的处理器不少于1亿4千万个晶体管,但只有8~9百万个专门用于逻辑运算。这个CPU的昂贵(大于$3000)和高不可攀就不足为奇,与此同时,它的时钟频率已经超过了700MHz.
对于你的桌上电脑来说,选择它并没有多大的意义。
在我们的桌面电脑上运行的程序可以分成两类:
一,数据流应用软件像视频编辑,视频编码,语音识别,等等。有着巨大的数据包,必须被压缩,解压,编辑;
二,“高速缓存重载程序。”大多数桌面电脑程序比较合适在256KB~512KB的高速缓存中工作,并且一旦没有在高速缓存中找到数据,系统自动从主存中提取数据并装载到缓存中。
对于数据流应用软件而言,即使一个2MB的高速缓冲存储器也许会不够用。对于高速缓存重载程序而言,一个2MB的高速缓存极低的利用率完全是在挥霍金钱。一个大的高速缓冲存储器并不能解决我们所有的问题,尽管它会掏空我们的钱包。
带宽还是响应速度?
那么我们需要哪一种内存技术呢?我们可以用另外一个问题来回答这个问题:哪一种最常用的应用程序占用了大量CPU时间呢?答案就是游戏程序和3D应用程序,像3D
animation 和 CAD。使用了3D几何运算和2D渲染的游戏就是数据流应用程序中典型的例子。不过,游戏的渲染和部分几何计算由视频芯片(GPU,nvidia
Geforce , ATI Radeon)在板载显存中完成。
CPU只处理程序逻辑(比如说游戏中的人工智能),几何预处理等等。把多边形交给视频芯片去处理的过程就强烈需要带宽。换句话说,只有那些有着海量多边形的应用程序才需要极高的带宽。虽然适当的带宽对“几何流”程序来说是必需的,但是高速缓存的命中率仍然是CPU访问主存的主要原因。缓存没有命中就意味着CPU不得不耐心等待以取得一小片数据。因此,响应时间或者时钟周期将决定系统的效率和整体性能。在一般的桌面系统中,对大多数应用程序,低响应时间比高带宽方案工作得更出色。
对于CPU来说,带宽和处理大量突发数据的能力,在那些使用了越来越多的多边形的游戏中显得越来越重要,也将得益于3DNow!和iSSE指令集。3DNow!和iSSE指令集都包含了一些预处理指令,可以只用一到几条指令处理一片数据。在这种情况下,一次性处理一片连续的数据,CPU几乎只需要访问高速缓存,几乎不需要等待缓存重载,响应时间就不那么重要了。带宽就成了决定系统性能的主要因素。
综上所述,响应时间是影响系统性能的最重要的因素,特别是对那些有大量数据的游戏和CAD软件。
现在来看一看内存解决方案。
128位总线
第一个方案是“交错”,或者是整合两个64位总线的存储模块成为一个128位的总线。我们得到了双倍带宽,响应时间相同或者稍微增加了一点。你只需要买两块小模块来代替一个大模块,不需要再增加别的什么开销。问题解决了吗?不幸的是:没有。虽然存储模块没有增加开销,但因为有着双倍的引脚,芯片仍然会稍稍昂贵一点。跟这种芯片配套的主板将很大,因为它要提供更多的DIMM插槽,更多的连线,因而更加难以设计。Intel设计过这样的芯片,用在康柏8路至强服务器上,对你的中档桌面系统不太适合。
高速SDRAM
为什么不提高存储芯片的时钟频率呢?毕竟,我们已经处在一个电子产品工作频率已经上G赫兹的时代了。问题是DRAM芯片在DIMM板上,从一端到另一端相距大约12cm。电信号的传播速度比光速稍慢一点,大约120,000
km/s,也就是12cm/ns。如果SDRAM工作在500MHz(一个时钟周期=2ns),前后两个时钟信号就会发生混乱。
高速SDRAM采用了更高质量的存储芯片,比普通SDRAM时钟频率稍高一点,大约166MHz。可以理解,高速SDRAM频率上探空间十分有限。
ESDRAM
增加时钟频率和总线带宽是最明显的方法。Ramtron找到了更加优秀的方案。ESDRAM,一种缓存DRAM,内含SRAM缓冲区。控制器可以直接访问SRAM缓冲区的数据。SRAM缓冲区可以消除存储电路预充电的响应时间。不止如此,SRAM还可以CAS和RAS到CAS的响应时间。
更值得一提的是:ESDRAM和SDRAM完全兼容!这意味着你可以把ESDRAM插到任何DRAM插槽。
Ramtron潜心研究ESDRAM多年,但它仍然在很小的市场范围内应用。不过它还是一项有意义的技术,因为它为数以百万计的将要退场的SDRAM系统提供了轻松的升级方案。
虚拟通道SDRAM
NEC设计的虚拟通道SDRAM也包括SRAM缓冲。但它不同于ESDRAM那种真正的缓冲。虚拟通道SDRAM的缓冲器由芯片组来管理。这导致了以下重要两点:首先,虚拟通道SDRAM只能跟支持它的芯片组成对使用;其次,虚拟通道SDRAM的性能非常依赖于芯片组的执行性能。
威盛科技在他们的Apollo 133 和 KX/XT 133芯片组中加入了对虚拟通道存储器的支持。如果你正在市场搜寻更快的SDRAM,不妨考虑一下虚拟通道SDRAM。虽然它没有象ESDRAM那样的高速核心,但它仍然能使你的系统的整体性得到显著的提高(2-5%)。对那些小高速缓存的CPU系统,如赛扬II和毒龙,更有突出的效果。
Direct Rambus DRAM (DRDRAM)
现在,我们来讨论一下最引人关注、最有争议的高速内存解决方案:Rambus DRAM。有一点十分重要,Rambus仍然采用了同SDRAM一样的存储技术。换句话说,访问SDRAM阵列要花20ns的话,访问DRDRAM存储阵列同样要花20ns。
当然,他们之间还是有很大的差别。譬如说,对于SDRAM,你需要8块8位SDRAM芯片,组合成一块64位的内存条。这些芯片被并联到64位的数据通道上,每块芯片都不能单独工作。
但对于Rambus DRAM,每块芯片都是独立的工作并且被连到一个由RMC(Rambus存储控制器)控制的Rambus长通道上。独立芯片意味着每个单独的芯片都可以“理解”Rambus协议。同样容量的rambus芯片要比普通SDRAM芯片至少大10-15%。
所有的芯片都连接到一个通道上。这个通道16位宽,工作时钟400MHz,上升沿和下降沿都用来传输数据,因此,一条通道数据传输率能达到400
x 2 x 2 =1.6 GB/S。
Rambus 最大的缺点就是太复杂。
DDR SDRAM
DDR SDRAM 是SDRAM的改进型,在时钟的上升沿和下降沿都用来传输数据。存储电路仍然是普通的速度。