网页功能: 加入收藏 设为首页 网站搜索  
彻底的解读内存
发表日期:2006-09-25作者:佚名[转贴] 出处:PConline  

  在计算机的组成结构中,存储器是一个非常重要的部分。作为存储程序和数据的部件,有了它,计算机才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内部存储器(简称内存),辅助存储器又称外部存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等等。它们能不依靠电而长期的保存信息,也就是说在掉电的情况下数据也不会丢失。但是这些存储介质由于是由机械部件带动,速度与CPU相比就显得慢的多了。内存指的就是主板上的存储部件,使CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

  在个人电脑日新月异的今天,各种新科技、新工艺不断的被用到微电子领域中,CPU的主频几个月就能翻一番,上到一个新高度,然而为了能让微机发挥出最大的效能,内存作为个人电脑硬件的必要组成部分之一,它的地位也越发重要起来。在现在看来,内存的容量与性能已成为决定计算机整体性能的一个决定性因素,因此为了提高个人电脑的整体性能,足够的内存就成为问题关键之所在了。而如今不少人都认为内存的配置与选购较为简单,对它的重视程度不够,所以在选择上很随意,因此造成了一些诸如不明原因“死机”、“性能低下”等不必要的麻烦。如果在选购前能多了解一些关于内存方面的知识,无论是在选购还是在使用中就都能够有的放矢了。

  而本文的原则就是为了对内存进行一个比较彻底的解读。包括一些参数以及这些参数对实际应用中的影响——当然我们不会涉及到内存核心的一些东西,这些东西对于大家来说也并没有多大的实际意义。在本文中我们将会提及到我们经常遇到的参数,而且,这些参数将会对系统性能起到直接的影响作用。
内存种类

  言归正传,我们还是来先来看看内存到底分哪些种类吧。经过长时间的发展,内存的种类也因为新旧交替而产生了很多类型的内存。比如说现在比较常见的SDRAM、DDR RAM、RAMBUS 以及flash-RAM。由于内存的类型不一样,所以他们也不能进行互换甚至协同工作。

SDRAM

  SDRAM就是同步内存。顾名思义,同步内存就是指它同系统时钟同步,系统时钟控制CPU和SDRAM,可以取消等待周期,养活数据存取时间。同步还使存储器控制知道在那一个时钟脉冲周期使数据请求使能,因此数据可在脉冲周期才开始传输,而EDO RAM每隔2个时钟脉冲周期才开始传输,FPM RAM每隔3个时钟脉冲周期才开始传输。SDRAM也采用了多体(Bank)存储器结构和突发模式,能传输一整块而不是一段数据。

  时至今日,PC中用得最多的可能就要算是SDRAM内存了。现在最流行的“DDR”内存以及笔者正在使用的“SDR”内存都是属于这一个类别。下边就是DDR内存以及SDR内存了。到了现在为止,最新的SDRAM类内存中就只有两种插脚了。一种就是比较老的SDR内存,采用的是168pin的插脚。而现在最流行的DDR内存则是将插脚数量增加到了184pin。而且插脚上也做了相应的修改,大家仔细看看,原来SDR内存的插脚部分有两个小缺口,而DDR内存则只有一个小缺口了。相信大家在选购的时候辨认起来不难。

184pin DDR SDRAM 内存条

168pin SDR SDRAM 内存条

  内存和你PC中的其他配件一样,都在以某种特定的始终频率运行着。在每一个时钟频率之内,内存都要对数据进行一次读写还有CPU也要对数据进行一次计算——也就是说,计算机的内部是按照一种“节奏”来进行工作的,而这个节奏我们就叫做“时钟”。现在流行的DDR SDRAM和以往经典的SDR SDRAM就有明显的区别,DDR内存是在每一个始终频率内进行两次数据读取和写入(把时钟近似的看作一个波形的话,那么在一个波峰处进行一次读写,在波谷的时候再进行一次读写),而不再象SDR内存那样只进行一次传输。DDR内存的带宽两倍于SDR内存,但是实际上DDR内存的效率并不能达到SDR内存的两倍,因为两种内存的延迟时间是非常相似的。

RDRAM

  RDRAM是Rambus公司开发的具有系统带宽,芯片到芯片接口设计的新型DRAM,它能在很高的频率范围下通过一个简单的总线传输数据。
和刚才介绍的SDRAM相比较,RDRAM 从价格上来说就贵出了很多。

  目前的RDRAM的带宽仅为16位,而这也抵消掉了一部分它高频率运作所带来的优势。但是因为RDRAM将多个内存块进行串行运行,从而有效的叠加内存带宽,所以RDRAM是不能直接和SDR内存带宽进行比较的。RDRAM内存远远高出的频率弥补了这一点。不过,RDRAM与SDR的带宽没有直接可比性,因为RDRAM的技术在连续执行多模块任务方面有着先天优势,它能更有效地把带宽集中管理起来。
内存名词解释

SIMM(Single In-line Memory Modules)

  单边接触内存模组。是5X86及其较早的PC中常采用的内存接口方式。在486以前,多采用30针的SIMM接口,而在Pentuim中更多的是72针的SIMM接口,或者与DIMM接口类型并存。人们通常把72线的SIMM类型内存模组直接称为72线内存。

DIMM(Dual In-line Memory Modules)

  双边接触内存模组。也就是说这种类型接口内存的插板两边都有数据接口触片,这种接口模式的内存广泛应用于现在的计算机中,通常为84针。由于是双边的,所以共有84×2=168线接触,所以人们常把这种内存称为168线内存。

ECC(Error Checking and Correcting)

  错误检查和纠正。与奇偶校验类似,它不但能检测到错误的地方,还可以纠正绝大多数错误。它也是在原来的数据位上外加位来实现的,这些额外的位是用来重建错误数据的。只有经过内存的纠错后,计算机操作指令才可以继续执行。

SPD(Serial Presence Detect)

  串行存在探测。在选购168线的SDRAM时,发现有的内存会多一颗小芯片,这就是具备SPD能力的内存。SPD是一个8针的256字节的电可擦写可编程只读存储器芯片。位置一般在内存条正面的右侧,记录着内存的速度、容量、电压与行、列地址带宽等参数信息。当开机时BIOS将自动读取SPD中的信息,如果没有SPD,就容易出现死机和致命错误的现象。它更是识别PC100内存的一个重要标志,一个必要条件,如果没有则肯定是假的。
内存名称详解

PC-66

  这种内存使用66MHz的频率,而这也是第一代的SDR SDRAM内存。

PC-100

  同样的,这种内存只是将工作频率提升到了100MHz,工作在CAS3模式下。

PC-133

  这次改变还是只是将频率提升到133MHz,同样工作在CAS3模式下。

PC-150

  这种内存并非官方发布的一个版本,而PC-150实际上就是一个超频版的内存。通常这种内存可以运行在150MHz频率CAS3模式或者是133MHz频率CAS2模式下,但是据说Corsair的PC-150内存可以在150MHz 的频率下以CAS2的模式工作。

PC-166

  另外一类超频内存,只是单纯的超频使得频率达到了一个新高点而已,仍然运行在CAS3之下。

PC-180

  可以算作是另类的超频内存了,它简单的将频率提升到了180MHz,但是我个人认为这种内存没有实际使用的意义,因为毕竟现在DDR内存的价格已经是非常便宜了。

DDR SDRAM

  DDR内存按照速度分类就可以用两种方法来进行分类了。 第一种就是以DDRXXX这种方式命名。后边的“XXX”就表示了这个内存是以两倍于XXX的速度运行的内存。另外一种就是以PCXXXX进行命名。后边的“XXXX”就是内存的带宽。

PC1600

  此类DDR内存就是最早的一代DDR内存了。它的工作频率为200MH(由于是DDR内存,所以频率增加一倍,就是100MHz x2所以实际上这类内存是工作在200MHz的频率下的),而工作模式为CAS2.5。

DDR266/PC2100

  现在最普遍见到的DDR内存,工作频率为266MHz,工作模式为CAS2.5。

PC2400

  又是一个非官方版本的DDR内存。实际上就是通过对内存颗粒的筛选、改造而制造成质量上乘的超频DDR内存。这样,让它们可以在150MHz(实际使用中双倍变为300MHz)的频率下工作在CAS2的模式下。Corsair就是其中的一个厂商。

DDR333/PC2700

  官方发布的一个DDR内存版本,通过将内存频率增加到166MHz DDR(实际工作中双倍变为333MHz)的CAS2.5模式,来提升系统性能。

PC3000

  DDR内存的一个超频版,将内存超频到183 x 2的366MHz,并且工作在CAS2的模式下。同样的,这些内存还是由比如象Corsair这样的一些大内存生产商提供。

DDR400/PC3200

  目前还没有通过官方认可,工作的频率——200MHz DDR(实际工作频率为400MHz)。

RDRAM

  RDRAM 内存的命名方式和DDR内存非常相似。统一命名采用PCXXX的格式,而其中的XXX 就接近于内存实际工作频率。

PC600

  这是第一代的RDRAM。工作频率为300MHz DDR (也就是实际工作频率为600MHz)。

PC700

  也是第一代的RDRAM内存。工作频率为356MHz DDR (也就是实际工作频率为712MHz)。

PC800

  这也是第一代的RDRAM内存版本。工作频率为400MHz DDR (实际工作频率为800MHz)。这是至今为止能买到的最高频率的内存。

PC1066

  这是RDRAM中新的一代内存,它运行在533MHz DDR之下,实际工作频率达到了1.66MHz。很明显这是和Intel的Northwood P4想搭配使用的,因为Northwood P4正好也是使用的533MHz的前端总线频率。

PC1200

  未来的16-bit 的RDRAM内存。和PC1066/800类似,他的运行频率将在600MHz DDR (实际为1200MHz这个频率之下)。

  也许大家都注意到了,前边我们所提到的内存都是16位的。而我们从技术特点上分析16位的内存都对于高要求的系统来说已经有点捉襟见肘了,所以,市场迫切需要32位的RDRAM内存面市。而正因为这样,才有了我们后边的RIMMXXXX系列内存。RIMMXXXX内存是32位RDRAM内存的一个标示方式。后边的XXXX就表示的是内存的带宽。

RIMM 3200

  未来的32-bit的RDRAM内存。而这个时候RIMM 3200 将会运行在400MHz DDR频率之下 (实际工作频率为800MHz),这个速度和PC800的RDRAM正好一样,但是实际上它们也有了质的不同了——毕竟这是32位的存储器了。

RIMM 4200

  32位的RDRAM内存,运行频率为533MHz DDR (实际频率为1066MHz)——同PC1066 RDRAM运行速度类似。

RIMM 4800

  32位的RDRAM内存,工作频率为600MHz DDR (实际频率为1200MHz)——同PC1200 RDRAM的速度一样。 计算内存带宽

  内存的带宽总量可能是决定一组内存的性能的重要标准之一了。这个是什么意思呢?其实真正理解起来不难,而且还非常容易计算。我们刚才所说的内存带宽总量其实就是在理想状态下这一组内存在一秒内所能传输的最大数据容量。公式也很简单:内存带宽总量(MBytes) = 最大时钟速频率 (MHz) x 总线宽度 (bits) x 每时钟数据段数量/ 8

  好了,我们还是来解释解释吧。“每始终数据段数量”这个是最好理解的了——你只需要记住,如果你的内存是SDR那么这里这个值就等于1,如果您使用的是DDR或者是RDRAM的话,那么这个值就是2。然后我们再将这个值除以8的意义就是将位这个单位换算成为字节。
所以说,对于一般的标准PC2100 DDR内存来说,他的最大时钟频率应该是133MHz,而它的内存总线宽度为64bit,每时钟数据段数为2。所以(133x64x2)/8 = 2128MB/s。一秒种能够传输2128MB,现在你知道为什么叫做PC2100了吧?

  再来一个例子。这次就拿PC800的RDRAM来计算吧。最大时钟频率为400MHz,内存总线宽度为16bit,每时钟数据段数为2,那么套用公式了之后就是(400x16x2)/8 = 1600MB/s。

  从这里的大家可以看的出来吧,PC2100的DDR内存能够提供高达2.1GB/s 的带宽,而RDRAM内存的带宽只能达到1.6GB/s,但是需要大家注意的是,由于RDRAM是曾对使用,两条内存一共可以3.2GB/s的内存带宽,而新一代的RIMM内存(总线为32位的RDRAM内存) 将会使用两个数据通道进行工作,所以,他们的带宽几一下增加了一倍——这样就成为了3.2GB/s,并且单独一条内存即可使用。

  我们后边的讨论可能会将重心放在SDRAM内存上,因为毕竟这种内存是时至今日用得最多的一种内存。

内存时钟

  首先要我要理性的给大家说,内存的性能并不单单只是由它传送数据的快慢决定的。内存从接受到请求到对这个请求作出反应也是决定内存的性能一个非常重要的因素。而现在大多数的内存性能都被这个重要的因素所制约着,它就是——持续反应时间(潜伏期)。

  由于当前RDRAM的持续反应时间比较高,所以,在很大程度上影响了RDRAM内存的性能,并且RDRAM的价格比较高昂,导致现在很多人已经不在向往RDRAM,而投向了DDR内存的怀抱。
内存设置参数

行地址控制器 (CAS)

  行地址控制器(CAS)可能是最能决定内存模块对数据请求进行响应的因素之一了。通常我们把这个叫做CAS延迟,一般来说,在SDR SDRAM中,我们可以设定为2 或者3(当然是根据自己内存的具体情况而定)。对于DDR内存来说,我们一般常用的设定为2 或者2.5。

  内存中最基本的存储单元就是柱面,而这些柱面通过行和列的排列组成了一个矩阵。而每个行和列的坐标集就代表了一个唯一的地址。所以内存在存取数据的时候是根据行和列的地址集来进行数据搜索的。

寻址到可用(Trp)/CAS到RAS (CMD)

  相对而言,Trp以及CMD时间并没有CAS时间那么重要,但是也是足以影响内存的性能的了。一般这个地方设置的值为3 (时钟循环),如果把这个这个值改小为2,就可以提升一点内存性能。

列地址控制器(RAS) /其他延迟

  内存本身就是一个非常复杂的零部件,可以这么说,计算机内部工作过程最复杂的就是存储器了。但是幸好这些烦琐的工作对于我们这些最终用户来说是透明的,而我们平时用来判断内存性能、质量好坏的这些参数也只是其中的一些部分而已。有两个是不得不提到的,那就是RAS延迟和另外两个延迟。RAS 通常为6个始终循环,但是实际上在超频中可以将它修改为5。

  Command rate(指令比率)是另外一个比较普遍的延迟。允许进行的设置为1T或者是2T,而通常2T是默认的设置,1T就要比2T稍微快一点点。另外一个需要注意的地方就是Row Cycle Time (Trc,列循环时间),这个参数一般为3或者2。

其他一些和内存紧密相关的参数:

Bank 激活时间
Bank 循环时间
已装载数据到充电前时间
已装载数据到激活时间
Bank到Bank延迟

  大多数的这些参数都是在内存出厂的时候由厂商根据内存的型号种类设定好了的,比如说PC2100 DDR, PC800 RAMBUS, PC133 SDR等等,他们不同的内存会给他们设置不同的参数。而我们不能够自己随意的改动它。

  校验内存和缓冲内存和以上我们介绍的内存又有不一样的地方。为了同步内存的时钟频率(这在一些特殊的情况下要求特别严格),数据在输出前是要首先被放到一个叫做“校验区”的存储模块中,这样很多人都把这种内存叫做“校验内存”。这样就可以保证所有从内存中读出的数据都是“同步”的,这样就可以避免很多的数据读写错误了。这样的一个校验过程将会消耗掉一个时钟循环,所以理论上CAS 2的校验内存将会和CAS 3的非缓冲内存性能相当——不要嫌弃,这一切都是为了数据的稳定。

  也许有一些朋友会注意到,当他们把内存设置到CAS 2工作模式下的时候,反而系统的性能还没有默认的CAS 2.5/3好了,这是什么原因呢?我的理解是这样的:内存根本就不能稳定的工作在那种模式下,而用户强行的将内存设置为那种工作模式,这样的话就会在存取数据的时候不时的造成数据“丢失”,这样数据不能取得,当然就只能重新读取,这样就浪费掉了很多的时间,当然系统效率就变低了哦。举个例子方便理解吧。内存试着去搜索所有的行和列,但是如果它在这个时钟循环中并没有能够完成这次数据读取,那么就只有等待下一个循环,本来用一个时钟循环就能够解决的问题而现在需要用两个时钟循环甚至三个去完成,这就明显的降低了系统效率。这个时候,越是高的频率越容易导致错误。

内存交错模式

  由于在这些延迟的时间间隔内,内存是不能进行读写工作的,所以这个等待时间也造成了内存暂时工作停止。为了避免这种情况发生,内存就可以使用交错模式,但是一般来说,内存默认这项功能是关闭的。如果要提高性能的话,那么就把这个模式设置为2-way甚至4way。

  我们再来复习一遍内存的循环过程“CAS -> CMD -> RAS -> 输出数据”。想像一下,如果你的一半内存正在进行行寻址(CAS阶段),而另外一半的内存已经完成了列的寻址(RAS阶段)。如果是这种情况的话,那么一个输出过程就将会执行两个时钟周期才能完成。大家仔细想想也就知道了,内存交错模式并不能使你的显存的存取速度增倍,但是实际上它利用了显存的等待时间,从而提高了显存的工作效率。

  最开始的时候交错模式是应用在独立的两根内存条上的,但是现在已经改变了这种情况,现在单独的一根内存条也可以采用交错模式进行工作。在现在的内存(SDR/DDR SDRAM这些)中,你可以在只有一根内存的情况下就使用2路或者4路交错模式。实际上,交错模式并不是内存条和内存条之间进行的一种“交错”,而是内存的bank和bank之间进行的一种提高效率的工作方式。现在绝大多数的内存都被设计为了4个bank,所以,实际上你可以在2-way和4-way之间做一个选择。

内存超频

  听起来神秘莫测的内存超频其实也是相当简单的。首先我们要提醒你的是,如果一旦你对内存进行超频使用,当内存损坏了之后,你的内存就不属于质保范围。而超频这种东西也是见仁见智了。

  超频的意义其实就是在承担了随时都可能会对电脑造成毁灭性的伤害的风险的同时,将电脑的性能推向它的极限!其中有风险,但也有乐趣。如果超频方法不正确,轻则导致系统经常不稳定,重则你将会可能损坏一部分的硬件设备,而导致这些配件永远的离你而去,给你留下不可磨灭的心灵创伤和阴影——呵呵,说得有点过。超频的一个必备的要素就是“胆大心细”。一旦超频成功,你将会得到系统性能的提升——而且这不用花一分钱!

  好了,现在我们言归正传,现在来说怎么超频吧。其实很少有朋友是为了超频内存而对内存进行超频的,他们购买容易超频的内存的目的只是为了让CPU能够运行在更高的频率下。现在很多的机器的内存是按照CPU的时钟频率(FSB,前端总线频率)同频运行的。这也就以为着要加速内存运行就必须要提高FSB的频率,那么顺理推下去,就要提高CPU的频率。同时,PCI总线也是以前端总线的一个分频在进行工作,如果一旦前端总线频率提升了,那么PCI总线的频率也势必提升,那么这里又触及到了PCI设备在高于额定频率下能不能稳定工作的问题了……

  提高内存工作频率比低潜伏期更能提升系统性能。绝大多数内存在高潜伏期的工作状态要比低潜伏期工作状态超频能力强一些。所以,在对内存超频之前,请将你的内存潜伏期值设置得高点。

  当然,超频的瓶颈部分也并不是只是内存。当你达到了一个比较高的频率,而且反复测试系统在这个时候能够比较稳定的工作的话,你以为超频工作算完了吗?没有!我们来近一步提升内存性能。这个时候我们要试着降低内存的潜伏期。首先是设置内存寻址到可用的延迟,我们把这个值从3 改到2。接着试试降低CMD,最后再试试CAS 延迟。CAS延迟一旦得到恰当的设置对系统的性能提升是很有帮助,但是这也是诸多设置中最不好掌握的一个。

  通常来说2-3-3-6的时钟设置要比3-2-2-5更能突出系统的性能。

  从经验上来讲,以下设置改动能够让你的SDR内存拥有更好的工作状态,提高系统的性能。当然,系统的差异也是存在的,所以还是以下内容仅供参考。

Interleave 关闭 -> Interleave 4-way
CAS 3 -> CAS 2
Trp3 -> Trp2 / CMD3 -> CMD2
Interleave 关闭 -> Interleave 2-way / Interleave 2-way -> Interleave 4-way
Command Rate3 -> Command Rate2
RAS6 -> RAS5
如果是DDR内存的话,我会做这样的设置修改建议。
Interleave 关闭-> Interleave 4-way
Trp3 -> Trp2 / CMD3 -> CMD2
CAS2.5 -> CAS2
Interleave 关闭 -> Interleave 2-way / Interleave 2-way -> Interleave 4-way
Command Rate3 -> Command Rate2
RAS6 -> RAS5

  需要提到的是RAS似乎很奇怪,有的机器上一旦调节了这个参数之后,系统的性能就能得到一个非常不错的提高,但是有的机器调节了他性能却没有什么起色,而且不仅仅没有性能提高,反而会影响系统的稳定性……所以,如果感觉有什么不对劲儿的话,请马上修改回6!
我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 彻底的解读内存
本类热点文章
  如何看懂内存条上的型号
  内存优化攻略大放送
  内存优化攻略大放送
  对比D43!同芯片异品牌内存价差何处?
  内存条的选购心得
  面对末代王者的迷惑:构建DDR400系统
  准确识别Kingmax内存
  KingMax-PC150内存真假辨别
  慧眼识真打假系列--内存篇
  认识内存从物理结构开始
  AMD K8平台内存参数优化指南
  优质内存一览表
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2024 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00403