内存技术Word下载.docx
- 文档编号:5941210
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:13
- 大小:79.19KB
内存技术Word下载.docx
《内存技术Word下载.docx》由会员分享,可在线阅读,更多相关《内存技术Word下载.docx(13页珍藏版)》请在冰点文库上搜索。
系统工作时会向两个内存中同时写入数据,因此使得内存数据有两套完整的备份。
由于采用通道间交叉镜像的方式,所以每个通道都有一套完整的内存数据拷贝。
在系统芯片组中设置有“容错阈值”。
如果任意内存达到了“容错阈值”,其所在通道就被标示出来,另一个通道单独工作。
但仍然保持双通道的内存带宽。
内存镜像有效避免了由于内存故障而导致数据丢失。
从上图中可看出,镜像内存和主内存互成对角线分布,如果其中一个通道出现故障不能继续工作,另一个通道仍然具有故障通道的内存数据,有效防止了由于内存通道故障导致的数据丢失,极大提升了服务器可靠性。
镜像内存的容量要大于等于主内存容量,当系统工作时,镜像内存不会被系统识别。
因此在投资方面,做内存镜像数据保护的投资是没有内存保护功能的一倍。
SDRAM
SDRAM:
SynchronousDynamicRandomAccessMemory,同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;
动态是指存储阵列需要不断的刷新来保证数据不丢失;
随机是指数据不是线性依次存储,而是由指定地址进行数据读写。
SDRAM从发展到现在已经经历了四代,分别是:
第一代SDRSDRAM,第二代DDRSDRAM,第三代DDR2SDRAM,第四代DDR3SDRAM.
第一代与第二代SDRAM均采用单端(Single-Ended)时钟信号,第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。
SDRSDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。
之后的第二,三,四代DDR(DoubleDataRate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。
如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。
DDR的读写频率从DDR200到DDR400,DDR2从DDR2-400到DDR2-800,DDR3从DDR3-800到DDR3-1666。
很多人将SDRAM错误的理解为第一代也就是SDRSDRAM,并且作为名词解释,皆属误导。
SDR不等于SDRAM。
Pin:
模组或芯片与外部电路电路连接用的金属引脚,而模组的pin就是常说的“金手指”。
SIMM:
SingleIn-lineMemoryModule,单列内存模组。
内存模组就是我们常说的内存条,所谓单列是指模组电路板与主板插槽的接口只有一列引脚(虽然两侧都有金手指)。
DIMM:
DoubleIn-lineMemoryModule,双列内存模组。
是我们常见的模组类型,所谓双列是指模组电路板与主板插槽的接口有两列引脚,模组电路板两侧的金手指对应一列引脚。
RDIMM:
registeredDIMM,带寄存器的双线内存模块
SO-DIMM:
笔记本常用的内存模组。
工作电压:
SDR:
3.3V
DDR:
2.5V
DDR2:
1.8V
DDR3:
1.5V
SDRAM内存条的金手指通常是168线,而DDRSDRAM内存条的金手指通常是184线的.
ECC,Chipkill
开放分类:
硬件、技术、计算机、服务器、内存
目录
∙•【服务器内存概述】
∙•【服务器内存主要技术】
∙•【服务器内存典型类型】
∙•【SDRAM和DDRSDRAM】
∙
【服务器内存概述】
[编辑本段]
服务器内存也是内存(RAM),它与普通PC(个人电脑)机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如ECC、ChipKill、热插拔技术等,具有极高的稳定性和纠错性能。
【服务器内存主要技术】
(1)ECC
在普通的内存上,常常使用一种技术,即Parity,同位检查码(Paritycheckcodes)被广泛地使用在侦错码(errordetectioncodes)上,它们增加一个检查位给每个资料的字元(或字节),并且能够侦测到一个字符中所有奇(偶)同位的错误,但Parity有一个缺点,当计算机查到某个Byte有错误时,并不能确定错误在哪一个位,也就无法修正错误。
基于上述情况,产生了一种新的内存纠错技术,那就是ECC,ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。
ECC的英文全称是“ErrorCheckingandCorrecting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。
之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象前讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是EDO内存,现在的SD也有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,目前主流的ECC内存其实是一种SD内存。
(2)Chipkill
Chipkill技术是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。
我们知道ECC内存只能同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则一般无能为力。
目前ECC技术之所以在服务器内存中广泛采用,一则是因为在这以前其它新的内存技术还不成熟,再则在目前的服务器中系统速度还是很高,在这种频率上一般来说同时出现多比特错误的现象很少发生,正因为这样才使得ECC技术得到了充分地认可和应用,使得ECC内存技术成为几乎所有服务器上的内存标准。
但随着基于Intel处理器架构的服务器的CPU性能在以几何级的倍数提高,而硬盘驱动器的性能同期只提高了少数的倍数,因此为了获得足够的性能,服务器需要大量的内存来临时保存CPU上需要读取的数据,这样大的数据访问量就导致单一内存芯片上每次访问时通常要提供4(32位)或8(64位)比特以上的数据,一次性读取这么多数据,出现多位数据错误的可能性会大大地提高,而ECC又不能纠正双比特以上的错误,这样就很可能造成全部比特数据的丢失,系统就很快崩溃了。
IBM的Chipkill技术是利用内存的子结构方法来解决这一难题。
内存子系统的设计原理是这样的,单一芯片,无论数据宽度是多少,只对于一个给定的ECC识别码,它的影响最多为一比特。
举个例子来说明的就是,如果使用4比特宽的DRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,这个ECC识别码是用单独一个数据位来保存的,也就是说保存在不同的内存空间地址。
因此,即使整个内存芯片出了故障,每个ECC识别码也将最多出现一比特坏数据,而这种情况完全可以通过ECC逻辑修复,从而保证内存子系统的容错性,保证了服务器在出现故障时,有强大的自我恢复能力。
采用这种内存技术的内存可以同时检查并修复4个错误数据位,服务器的可靠性和稳定得到了更加充分的保障。
(3)Register
Register即寄存器或目录寄存器,在内存上的作用我们可以把它理解成书的目录,有了它,当内存接到读写指令时,会先检索此目录,然后再进行读写操作,这将大大提高服务器内存工作效率。
带有Register的内存一定带Buffer(缓冲),并且目前能见到的Register内存也都具有ECC功能,其主要应用在中高端服务器及图形工作站上,如IBMNetfinity5000。
【服务器内存典型类型】
目前服务器常用的内存有SDRAM和DDR两种内存。
1.SDRAM
2.DDRSDRAM
3.DDR2SDRAM
【SDRAM和DDRSDRAM】
由于服务器内存在各种技术上相对兼容机来说要严格得多,它强调的不仅是内存的速度,而是它的内在纠错技术能力和稳定性。
所以在外频上目前来说只能是紧跟兼容机或普通台式内存之后。
目前台式机的外频一般来说已到了150MHz以上的时代,但133外频仍是主流。
而服务器由于受到整个配件外频和高稳定性的要求制约,主流外频还是100MHz,但133MHz外频已逐步在各档次服务器中推行,在选购服务器时当然最好选择133MHz外频的了!
内存、其它配件也一样,要尽量同步进行,否则就会影响整个服务器的性能。
目前主要的服务器内存品牌主要有Kingmax、kinghorse、现代、三星、kingstone、IBM、VIKING、NEC等,但主要以前面几种在市面上较为常见,而且质量也能得到较好的保障。
RDRAM
RDRAM(RambusDRAM)是美国的RAMBUS公司开发的一种内存。
与DDR和SDRAM不同,它采用了串行的数据传输模式。
在推出时,因为其彻底改变了内存的传输模式,无法保证与原有的制造工艺相兼容,而且内存厂商要生产RDRAM还必须要加纳一定专利费用,再加上其本身制造成本,就导致了RDRAM从一问世就高昂的价格让普通用户无法接收。
而同时期的DDR则能以较低的价格,不错的性能,逐渐成为主流,虽然RDRAM曾受到英特尔公司的大力支持,但始终没有成为主流。
RDRAM的数据存储位宽是16位,远低于DDR和SDRAM的64位。
但在频率方面则远远高于二者,可以达到400MHz乃至更高。
同样也是在一个时钟周期内传输两次次数据,能够在时钟的上升期和下降期各传输一次数据,内存带宽能达到1.6Gbyte/s。
普通的DRAM行缓冲器的信息在写回存储器后便不再保留,而RDRAM则具有继续保持这一信息的特性,于是在进行存储器访问时,如行缓冲器中已经有目标数据,则可利用,因而实现了高速访问。
另外其可把数据集中起来以分组的形式传送,所以只要最初用24个时钟,以后便可每1时钟读出1个字节。
一次访问所能读出的数据长度可以达到256字节。
内存带宽的计算
现在的单通道内存控制器一般都是64bit的,8个2进制bit相当于1个字节,换算成字节是64/8=8,再乘以内存的运行频率,如果是ddr内存就要再乘以2,因为它是以sd内存双倍的速度传输数据的,所以
ddr266,运行频率为133mhz,带宽为133*2*64/8=2100mb/s=2.1gb/s
ddr333,运行频率为166mhz,带宽为166*2*64/8=2700mb/s=2.7gb/s
ddr400,运行频率为200mhz,带宽为200*2*64/8=3200mb/s=3.2gb/s
所谓双通道ddr,就是芯片组可以在两个不同的数据通道上分别寻址、读取数据。
这两个相互独立工作的内存通道是依附于两个独立并行工作的,位宽为64-bit的内存控制器下,因此使普通的ddr内存可以达到128-bit的位宽,因此,内存带宽是单通道的两倍,因此
双通道ddr266的带宽为133*2*64/8*2=4200mb/s=4.2gb/s
双通道ddr333的带宽为166*2*64/8*2=5400mb/s=5.4gb/s
双通道ddr400的带宽为200*2*64/8*2=6400mb/s=6.4gb/s
关于瓶径问题:
cpu与北桥芯片之间的数据传输速率称前端总线(fsb),对于intel的主流平台,其采用q/p总线技术,fsb=cpu外频*4,如赛扬4的外频为100,其fsb为400,数据带宽为3.2gb/s,p4a的外频为100,其fsb为400,数据带宽为3.2gb/s,p4b的外频为133,其fsb为533,数据带宽为4.2gb/s,p4c、p4e的外频为200,其fsb为800,数据带宽为6.4gb/s,对于amd的主流平台,其采用ev6总线技术,fsb=cpu外频*2,对于athlonxp,其外频为133,166,200,对应的fsb分别为266,333,400,数据带宽分别为2.1,2.7,3.2gb/s
fsb与内存带宽相等的情况下,则不存在瓶径问题,如果内存带宽小于fsb则形成内存带宽瓶径,无法完全发挥系统的性能。
因此对于对于intel的主流平台,如赛扬4的外频为100,其fsb为400,数据带宽为3.2gb/s,应该使用ddr400或双通道ddr200以上,p4a的外频为100,其fsb为400,数据带宽为3.2gb/s,应该使用ddr400或双通道ddr200以上,p4b和c4d的外频为133,其fsb为533,数据带宽为4.2gb/s,应该使用ddr533或双通道ddr266以上,p4c、p4e的外频为200,其fsb为800,数据带宽为6.4gb/s,应该使用双通道ddr400以上,对于amd的主流平台,athlonxp,其外频为133,166,200,应该分别使用ddr266,ddr333,ddr400,在这个平台上没必要使用双通道内存
双通道DDR时代:
内存带宽与反应时间
许多朋友都知道,时钟频率、内存调速与带宽是三个最重要的参数,时钟频率无须多讲,频率自然越高越高,带宽也会随之增加。
至于内存调速,这是一个与行地址、列地址存取反应时间相关的参数,那么内存调速与带宽又有什么关系?
在双通道的影响下,内存调速对整体性能又有什么意义?
如果以专业的角度来说,这可要涉及到电子工程的高级技术,对于大多数读者来说太难了,而且没有实际作用,下文将尝试用简单的方法来描绘新一代内存的性能关键因素,有了大约的概念,我们在购买产品的时候就更容易选择了。
一、内存基础知识简介
1、CPU从何处得到数据?
无论是主流的DDR400、还是最先进的DDR566,现有我们所指的内存都是指RAM(RandomAccessMemory,随机存储器),作为高速电子设备(CPU)与低速机械存储器(硬盘)之间的数据缓冲,所有数据都要在内存中进行读取/写入操作,才可能与CPU的缓存交换资料,得到正确的计算结果。
CPU的缓存/寄存器和内存都无法永远保存数据,在断电时资料会丢失,而最终结果必须存储到硬盘上,才能保存下来。
CPU工作的过程中,它会先从内存传输过来的程序中找出程序计数器,读取相应的指令,进行指令解码后执行相应操作,然后读取下一个指令,此过程常常分离为几步:
- 读指令
- 找到数据A
- 找到数据B
- 把B与A相加
- 存储A到C上
期间需要大量的读/写操作,为了保持最高效率,数据A、B、C最好能位于缓存中。
当然,出于成本的考虑,缓存的容量永远不可能比内存大,而内存的容量永远不可能比硬盘大。
CPU在缓存中无法找到所需数据时,就会到内存中找,再找不到就会到硬盘找,直到找到为止。
由于硬盘的速度很慢,因此,大容量和高速内存可加快寻找过程,提高整体性能。
在CPU与内存之间的通道是FSB(FrontSideBus,前端总线),内存数据通过FSB先传到北桥内存控制器,然后再通过传输到CPU。
2、双通道的增强
DDRSDRAM(DoubleDateRate,上下行双数据率SDRAM)是相对于SDRSDRAM(SingleDateRate,单数据率SDRAM)而言的,它们的区别在于时钟驱动数据的差异。
一个时钟是电压从0到有信号(SDR是3.3V,DDR是2.5V)的周期,在SDR内存里,它利用电压上升的过程(即上升沿),来控制数据的进或出,然后内存会等待下一个上升沿进行重复的操作。
DDR则能同时利用上升沿和下降沿(电压下降的过程)来传输数据,那么传输量就会变为两倍。
3、内存如何寻址?
请设想内存是一个Matrix(不是黑客帝国,而是矩阵),它分为行和列,利用行和列的号码,就可以找到某一个单元的数据。
许许多多的内存存储单元组成一个bank(储蓄库),旧的i845Brookdale芯片组仅有4个bank,只能对寻址2GB内存。
新的i865Springdale和i875Canterwood拥有8个bank,最大可以寻址4GB内存。
所以说,bank的数量与容量决定了内存的寻址,即是内存最大容量。
现在的内存条分为单面和双面,单面占用一个bank,双面占用两个bank。
所以在i845主板上,我们可以使用的最大内存条数量为2条双面内存或四条单面内存,i865/i875可以支持4条双面内存或8条单面内存。
不过,以上只是理论值,实际的容量按照主板的设计而定。
以上种种与反应时间和带宽有什么关系?
别急,请接着看。
二、双通道/四通道-增加带宽的捷径
除了英特尔和nVidia(nforce2/3)的产品外,主流的芯片组如:
VIAKT/PX系列和SiS746/648都没有双通道能力,因此它们理论上是比双通道芯片组慢的。
毕竟在相同的总线速度下,总线的传输能力越大,可以传输的数量越多。
DDRSDRAM工作于64位总线,增加了一个内存控制器后,就等于128位总线。
如果只使用单独的内存控制器,性能就会大受限制,此话怎讲?
让我们来看看P4架构,它使用四倍泵总线,设计类似DDR,除了上升、下降沿同时传输信号外,还作了进一步改进,把1.5电压信号分为两级,第一级是0-0.7V,第二级是0.7-1.5V,那么,可以传输的数据量就变为了四倍。
在使用i845或仅插入单通道内存的i865/875系统上,FSB会传输过多的数据给内存控制器,内存控制器无法处理,必须花时间来等待,降低了工作效率。
大家稍微明白了一点吧,可是此理论并不适用于所有的系统,在AthlonXP系统上,情况却恰恰相反。
因为Athlon只使用了双通道总线,总线传输的数据量没有这么大,第二个内存通道的用处相对于小一些,这时,内存的反应时间就变得很重要了。
三、反应时间
从上文我们可以看出,增加带宽并不是一件难事,只要增加内存通道和总线宽度即可,让每个时钟传输更多的数据,或者,提高数据传输的速度,同样能够增加带宽。
反应时间就没那么简单了,它指的是内存给出命令和命令实际执行之间的时间,谁都知道反应时间越小越好,然而,在内存的读/写过程中,许多因素都会让反应时间增加。
首先,FSB与内存控制器不是运行在同一速度(1:
1)上,任何信号的传输,都会出现等待同步的情况。
比如设置为5:
4这个常用的比率,FSB经过5个周期,内存才经过4个周期,这意味着,总线必须经过5个时钟周期才能够互相交换信息。
如果一个命令从CPU发到内存请求数据,那么,要等到信号匹配,至少要等待4个时钟周期,见下图:
-----*****-----*****-----*****(总线频率)
----****----****----****(内存频率)
一般情况下,内存与总线同步,可以获得更佳性能,这也是高性能内存,都需要超FSB频率使用,至少达到内存频率同级,才能发挥更佳性能的原因。
第二,内存操作本身也需要花费许多反应时间。
当内存控制器发出某个地址的请求时,先发送一个激活(ACTIVE)命令,把对应的数据单元从“预充电”状态变为“激活”状态,在BIOS中,可以调节tRP参数来控制这个时间,通常花费2、3或4个周期。
接着,是tRCD(RowtoCasDelay,行地址到列地址控制器延迟时间)操作,这是发送行地址里面的内容到内存缓冲区必须占用的时间,通常有2、3或4个周期可选。
然后,就是我们很熟悉的tCL,俗称CAS(ColumnAddressStrobe,列地址控制器)反应时间,即把指定列地址单元的内容发出所需要的时间,通常有2、2.5或3个周期可选。
tCL对于总线突然的大量数据传输(突发操作)很重要,如果下一次的内存读/写在同一行中,tCL就决定了一个单元移到另一个单元所需的时间。
在多重连续寻址时,常常都会出现超长数据串传输,短CAS的优势尽显。
假如请求的是行地址,那么,就要求到tRL,俗称tRAS(RowAddressStrobe,行地址控制器)反应时间,通常有5、6、7或8个周期可选。
总的来说,每次读/写存取,大约要花费12个NOPs(NoOPeration,无操作)时钟周期来等待数据的发送,越复杂的操作,所需的时间越长。
tRP、tRCD、tCL各用了2个时钟,tRAS用了5个,突发传输用了8个
也许上面的理论让你头晕脑涨,不过,看看它的发展你就会知道缩短反应时间有多难。
在过去10年中,反应时间仅从120ns(纳秒)提升到50ns,而带宽只用了5年时间就从PC133(1GB/秒带宽)提升到PC4000(8GB/秒)带宽。
为何这么难?
因为缩短反应时间有可能会影响稳定性,不能随时所欲地想短就短,所以当英特尔在i875加入PAT(PerformanceAccelerationTechnology,性能加速技术)时,对缩短反应时间作出了杰出贡献,从而赢得了满堂喝彩。
尽管i865也可以用升级BIOS的方法来实现PAT,但它没有足够快的硅圆片基础支持,到头来只会导致稳定性不足。
四、分频器
分频器主要作用是让内存工作在与FSB不同的频率上,超频时,我们会发现CPU和FSB的频率总是高于内存,利用分频器可以用速度较慢的内存来搭配高速CPU。
如把P4超到250MHzFSB,很少内存可达到此速度,利用5:
4分频器,就能让PC3200/DDR400内存顺利工作,即使内存与FSB不同步对性能有影响,仍能提升整体的传输速度。
理想总是美好的,事实总是残酷的,在实际使用中,我们往往发现插入双通道内存时,分频没有那么顺利。
许多i875主板都有挑内存的毛病,就算是高性能的内存,也不保证肯定能用5:
4或3:
2分频器。
特别是插满内存槽的时候,不兼容现象显得日益严重。
若是你遇到不能启动的情况,也许换个品牌或型号的内存即可解决。
同时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内存 技术