配色: 字号:
内存的工作原理
2012-10-25 | 阅:  转:  |  分享 
  
内存揭秘:工作原理及其重要性

来源:《个人电脑》作者:凤凰

发布日期:2011-01-05



如果您正因为内存问题而困扰,那么就来对地方了。在本文中,您并不会看到任何充斥于其他杂志中的,介绍最新内存技术的内容,您将了解到计算机内存的工作原理,以及为何内存如此重要,如何给要升级的系统选择正确的内存。我们将专注于“真正用得上”的信息,向您解释为什么一定要为电脑选择最合适的内存,以及更重要的是,为什么通常没必要将时间浪费在内存规格表上,并期待能找到更快的内存。

? ?DDR3是最新的内存类型,最早应用于IntelCorei7处理器。 限于篇幅,本文不可能介绍有关内存的方方面面,但如果有任何疑问,欢迎随时来信与我们联系,我们将尽最大努力在以后的文章中解决问题。互联网上有大量硬件评测网站,非常详细地介绍了很多内存模块方面的知识。然而,其中很多信息并不实用,只是充斥着各种数据,或者简单的描述。因此,除非打算安装一台用于臭显的电脑,否则您真的有必要在意内存散热片的颜色吗?

? ?内存模块的内部工作速度已经多年未变了 如果您确实认为散热片的颜色很重要,那么很明显这篇文章并非为您准备的。为了提升充满无聊的技术内容的内存市场的吸引力,很多内存厂商已经成为美化能手,能够给内存添加各种不同形式的“功能”,但这些功能对改善电脑性能毫无益处,最终只能让消费者用更高的价钱买到这种所谓的“终极性能”内存。虽然内存是好东西,但如果您期待随便买跟内存回来就能用,那您肯定会失望的。基本原理作为开始,我们打算介绍一些您可能从来没有了解过的内容:无论某个内存模块宣称的常规数据传输率有多快,目前可以买到的台式机内存实际运行的内部频率都不会超过200MHz,这一指标很多年来都没有变化过了。就算最新的1600MHz模块,其内部运行频率依然要比宣称的传输率慢八倍。这是怎么回事?其实都是一些内部的小伎俩。有关内存工作原理的介绍,请参考下面插文中的内容。现在所有台式机和笔记本都使用DDRSDRAM(双倍数据传输率同步动态RAM),不过一些老的内存模组依然使用单倍数据传输率模式,这类内存通常叫做SD-RAM。在某些非常老的电脑上,甚至可以见到异步D-RAM,例如快速页模式(FPM),或扩展数据输出(EDO)D-RAM,不过这类内存现在基本买不到,而且这类内存的封装方式通常是SIMM(单列直插式内存模块),而不是我们今天常见的DIMM(双列直插式内存模块)。同步D-RAM通常会被设计为使用与电脑系统总线(处理器和内存之间的连接)相同的速度运行,也就是所谓的FSB(前端总线)速度。因此如果您的系统总线频率为133MHz,内存的时钟也就是133MHz。双倍数据传输率实际上意味着对于每个总线“周期”内,可以传输两个数据包,因此理论上,此时的内存带宽将是单倍传输率时的一倍。因此如果电脑的系统总线是64位,那么100MHz的DDRSD-RAM的数据传输率将是200MHz,也就意味着每秒钟传输64比特数据共2亿次,也就是1.6Gbps。为了更好地实现兼容性,内存厂商协定了一系列设计标准,并采用相似的命名约定。例如,200MHzDDR内存也叫做PC1600内存,其中“1600”代表在电脑的64位总线上可实现1600Mbps的传输率。有关内存标注的详细信息,请参考下文列出的表格。但在市场上,这些标注还有不同的变体,例如PC4000(250/500MHz),这里所说的并非常规的系统总线速度,而是供希望对内存超频的人参考。有些主板可以让内存使用与系统总线不一致的速度运行,但效果依然值得质疑:毕竟同步内存在设计上就是需要和系统总线使用相同的速度运行。DDR2最早的DDR内存逐渐被DDR2内存所取代,这种内存通常被标注为PC2-xxxx,例如400MHz的DDR2内存就被标注为PC2-6400,这个数字代表着理论数据传输率,本例中就意味着6.4Gbps。因为DDR2的运行电压(1.8V)比DDR内存(2.5V)低很多,因此散热更好,也更节能。标准的DDR2时钟速度是200、266以及333MHz,不过也有很多超频后的版本存在,例如500MHz/1GHzPC2-8000内存模组。DDR2的DIMM插槽和DDR主板不兼容,因为DDR2使用240针的内存模组,DDR内存使用184针模组。DDR3DDR3是最新类型的内存模组,最早出现在IntelCorei7处理器平台上。这种类型比DDR2更节能,1.5V电压即可运行,有些特殊的低功耗模组甚至只需要1.35V电压。这种类型的内存通过一些技术功能改善数据传输率和可靠性,例如在重启动的时候清理内存,这样电脑就可以使用干净状态启动。另外该类型内存还提高了预读取管线的深度,可达8比特,而DDR2只有4比特,这样数据传输率就可高达800MHz(12.8Gbps)。DDR3与DDR2使用了相同的240针模组,但模组上的缺口位于不同的位置,这样可以防止将模组插入到错误的主板上。另外对于Corei7,也有一些重要的改进。该处理器中已经集成了内存控制器,并可分配FSB(参见下文有关Corei7的测试)。另外与售价一样重要的还有,Corei7支持三通道DDR3内存,每通道可包含两个DIMM插槽,详细信息也会在下文介绍。如何选择内存在选择内存升级系统之前,最重要的事是阅读主板/系统说明书,或者联系厂商,了解您自己系统可以支持的内存类型。

? ?添加额外内存可在执行多个任务时缓解资源紧张的情况 大部分使用DDR内存的系统都有双通道内存架构,这意味着内存模组必须成对安装,这样才能从双通道操作中获得更好的性能,不过实际上也可以在每个通道中只安装一根内存。“成对”意味着模组的所有参数必须一致,不过可以不是同一品牌。在两个通道中,可以分别安装不同容量的模组,但一般来说,最好严格使用同一厂商同一规格的模组。

? 好在安装速度比系统速度更快的内存通常不会有问题,高速内存会降速,按照主板指定的速度工作,并且对性能不会有任何影响,然而这样做对性能也不会有任何提升。但如果您安装了低于主板支持的内存,则完全无法使用,更不可能将DDR3内存插入DDR2主板,因为形状根本不符。Corei7的三通道内存支持意味着主板可支持单通道、双通道,以及三通道操作。每个通道可支持一个或两个DIMM插槽,因此主板上可能总共有六个DIMM插槽。Intel的第一款Corei7主板就有四个内存插槽,共三个通道,而Intel并未解释为何一个通道有两个插槽:说明书仅仅是说第四个插槽原本是不打算安装的。确保买到正确内存的最佳做法是选择一线大厂,并购买可换货的内存,并使用由厂商提供的工具,例如Buffalo、Crucial、Corsair、KingstonTechnology、OCZ以及PNY等。例如Crucial,如果在线购买,并选择支持的配置,就可以获得兼容性保证。如果您明确知道自己需要的型号,则也可以尝试购买便宜一些的普通内存,不过现在的价格战非常激烈,一线大厂的品牌也不是那么贵了。为何内存总是不够用技术内容已经介绍够多了,真正的问题是,多少内存才能满足电脑的日常使用?虽然新的主板通常都用各种方法介绍自己的主板可以让您操作一切内存设置,但最简单的问题依然是,如果希望获得更好的性能,最好最简单的方法永远是添加更多物理内存。这是因为处理器直接访问保存在RAM中的数据,速度要比访问保存在硬盘中的数据速度快很多,而硬盘是唯一可用于让电脑保存数据的位置。32位操作系统,例如WindowsXP或Vista最多可寻址4GB内存(64位XP和Vista可支持8GB到128GB之间,主要取决于版本),而且这些内存可在程序和数据之间进行分配。程序和服务会在首次使用时加载到物理内存中,剩下的内存则可被程序用于处理数据使用。目前很少有系统装有超过4GB内存,但Windows可以使用硬盘作为虚拟内存。然而,目前速度最快的硬盘的实时数据传输率都无法超过100MBps,这个速度甚至要比最慢的DDR内存慢10倍,因此如果将数据保存到硬盘上的虚拟内存中,系统的性能将会由于CPU无法足够快获得数据而深受影响。如果在常规操作的过程中打开Windows任务管理器,然后打开性能选项卡,窗口下方的图表就显示了系统的虚拟内存使用,也就是“分页文件”(分页文件是一块受保护的系统文件,用于承载虚拟内存)。在这里还可以看到物理内存的使用情况。这里的截图来自具有512MB内存的XP系统进行MPEG2编码操作的时候:只有143MB可用内存,分页文件有900MB,因此如果此时还进行某些操作,例如编辑大型数码照片,性能将大幅降低。作为对比,在有1GB内存的XP电脑上运行11个相关的程序,随后发现可用内存数量有212MB,而页面文件只用了700MB。这两台电脑都使用3GHzPentium4CPU,但内存多的电脑在执行多任务时明显更快。对于虚拟内存,如果需要执行消耗内存严重的程序,例如照片或视频编辑,建议虚拟内存越大越好。这个效果在性能评测中很难发现,因为多任务性能并不非常容易衡量。通过将内存从256MB升级到1GB,并将1GB的Vob文件编码成DivX,只能看到5%左右的性能提升,但额外的内存可以让其他程序运行更流畅。另外还有一些程序宣称可以优化内存的使用。虽然他们确实可以帮助改善Windows内建的内存管理,但长远来看,最好还是添加更多内存更合适。最后,我们打算收回已开始说的一些话。您是否真的很关心内存上LED彩灯或散热片的颜色?也许不是,但我们也得承认,这些东西确实挺漂亮。

除非是数学天才,否则一般人通常都会使用纸张解决复杂的数学问题。在这种情况下,纸张其实就是临时存储装置,也就是内存。同理,计算机也需要使用内存充当待处理数据的临时存储装置。早期用于尝试创建计算机内存的方法在今天看来非常的巧妙。当时的计算机使用各种各样的方法存储数据,包括对电容器进行旋转,甚至机械存储。右侧照片显示的是1949年在英国剑桥大学,计算机先驱MauriceWilkes与EDSAC计算机内存的合影。

? ?MauriceWilkes正在检查EDSAC的延迟线内存管阵列 照片中的内存叫做声波延迟线内存,需要依赖比光速慢很多的音速实现存储功能。电信号以光速在环路内部传递,同时使用充满汞的长玻璃管放在环路中间。在玻璃管的一端是扬声器,另一端则是麦克风。输入的数据脉冲会被转换成声音,然后借助汞传递到玻璃管的另一头,并被重新转换为电信号脉冲,进行整理,然后重新转换并通过环路发送出去。通过这种方法,一组500-600个脉冲(通常代表16-35比特的数据)组成的信号就能在系统内近乎无限地传递下去(换句话说,可以被保存在系统中)。计算机只能通过数据被转换为声音信号时的音频脉冲读取数据,要想更改(写入)数据,则需要给环路中加入新的电脉冲。如果断电,数据将丢失。虽然使用了截然不同的技术,但计算机中的内存承担的工作与以往充满水印的玻璃管没有太大不同。唯一比较大的差别在于现代的内存是随机访问的,这意味着数据的任何一个部分都可以随时访问,而延迟线则是顺序访问的:必须等待数据脉冲抵达玻璃管的一段后才能访问。汞延迟线体积庞大,结构复杂,对温度变化非常敏感。因此随后在1948年,英国曼彻斯特大学的Baby计算机通过CRT(阴极管射线)技术,并使用metalpickup的方式检测电信号的变化,然后显示在示波器屏幕的位置阵列中。随后这些信息可用于刷新CRT的显示,并可以用类似延迟线的方法存储数据。因为CRT需要同时显示内存中所有内容的结果,因此可对内存中任何部分实现随机访问。随着技术的进步出现了更高效的内存,例如磁鼓、磁带,以及亚铁盐核心内存,并最终出现了今天我们使用的非常快速的动态随机访问内存。这种内存由IBM开发,最早于1970年在Intel的1103内存中实现商用。所有现代电脑都使用动态随机访问内存(D-RAM)作为自己的主内存,并可供处理器(以及其他设备,例如I/O设备或显卡)存储和读取完成自己工作所需的数据。这种内存通常直接简称为内存(RAM)。D-RAM是易失性的:在将电脑关闭后,其中的所有数据都将丢失。之所以使用D-RAM是因为更便宜,快速,并且可靠。非易失性内存(例如闪存)通常很昂贵,并且寿命有限。模组中的内存芯片实际上是由上百万个独立的Cell组成的,每个Cell都存储数据的一个比特(也就是一个“0”或“1”)。一兆字节(1MB)内存包含8192000个内存Cell。每个内存芯片的总容量通常以megabits(Mbits)为单位描述,因为一字节等于八比特,因此一个64Mbit的芯片可提供8MB内存空间,而256MB的模组需要32个64Mbit芯片。内存的每个Cell都由电容器和访问晶体管组成,电容器有两种状态:充电和未充电,分别对应二进制的“0”和“1”。要将数据写入到Cell,只需要对电容器进行充电(应用高电压)或放电(应用低电压)。将访问晶体管关闭后,数据就被存储到Cell中,这等于将高或低电压“困”在电容器内部。如果要读取数据,只需应用一个介于高和低之间的电压,随后打开晶体管,然后就能看到之前应用进去的电压。每几毫秒,电容器都需要应用电压,进行刷新,因此这种技术也叫做“动态”RAM。

? ?内存芯片中的Cell可以按行(RAS)或按列(CAS)排列 对于这个话题,有几个术语需要介绍:CAS(列地址选通脉冲)和RAS(行地址选通脉冲),以及CAS/RAS延迟。在以前的老电脑内存中,CAS和RAS被用于代表内存模组的物理信号端点(针),而延迟代表创建到CAS/RAS请求,到访问相应内存操作之间所间隔的时间。因为内存Cell的速度被限制在200MHz左右,因此内存模组使用了迂回的方法给内存总线填充数据,这样才能给“渴求”数据的PC子系统提供足够的数据。内存Cell中数据的读取是以块为单位的,并且需要通过一种名为“预读取”的过程在长长的管线内传递。对于最初的DDR内存,可以预读取2比特数据,DDR2将这一长度提升到4比特,而DDR3将这一长度提升到8比特。因此系统就可以访问越来越多的预读取数据,并将数据用内存总线的运行速度传输给CPU。但随机预读取获得的数据可能并非CPU需要的,因此内存控制器内的逻辑需要尽量根据之前的请求,再次猜测系统真正需要的数据。对于某些类型的操作,这种流程非常合适,但如果程序需要的是很少量,并且是刚刚写入的数据,内存就只能按顺序进行读取,这会将整个系统拖慢。因此内存速度的提升仅仅是理论情况,对于某些类型的数据访问,速度依然可能会受到很大影响。在大部分日常计算工作中,我们并不需要对CAS、RAS,以及延迟设置过于担心,这些内容只能影响到内存模组内部的工作情况。系统说“我要这些数据”,随后内存就会用各种可能的方式尽力满足要求。有些电脑可以在BIOS中修改CAS和RAS参数,但除非是在一些模拟的评测得分中,否则性能的提升并不明显。在实际使用中,所用的不同应用程序也会将仅有的一些提升完全耗尽。BIOS本身就可以自动设置与内存有关的选项,此时需要借助内存模组中预置的一块非易失性存储芯片中提供的信息,而这个芯片就是SPD(串行存在检查)。这些设置的默认值可确保内存在尽可能多的主板上都能可靠工作。如果希望忽略这些信息自己配置,则需要承担风险。这里要介绍的不仅有内存技术,还有封装技术。最初IBMPC在1981年使用的内存芯片是直接焊接到主板上的,但通过一种昂贵的扩展卡,还可以扩充。第一代可以替换的内存模组出现在80286PC上,这些模组有30针,可以插入到主板上的插槽中,因此也叫做SIPP(单排插针式内存)模组。随后出现了单排直插式内存模块,也就是SIMM,这种模块分为32针和72针两种模式,并且首次要求主板上提供易于使用的内存插槽。目前使用的模组属于DIMM,其中SD-RAM内存是168针模组,最早的DDR内存使用184针模组,DDR2和DDR3DIMM内存则使用针模组,不过因为这两种模组的缺口位置不同,这样可以防止插错内存。您可能还见过另一种内存,RambusRIMM(Rambus单排直插内存),这种内存的外壳带有封闭散热片,因此很好辨认。这种内存只在最早的Pentium4电脑上出现过,Rambus内存还要求主板上没有安装内存的插槽全部安装连通器才能使用。对于笔记本电脑,标准的内存类型为小型DIMM(SO-DIMM)。

? ?这些DDRDIMM内存缺口位置各不相同,从上到下依次是DDR、DDR2以及DDR3模组。 ? ?RambusRIMM模组只在某些很老的Pentium4电脑上用过 ? ?SO-DIMM内存主要用于笔记本电脑 ? ?双列直插封装(DIP)、SIPP、30针SIMM、72针SIMM、168针DIMM,以及184针DDRDIMM(自上而下)。













































献花(0)
+1
(本文系dsxzqmok首藏)