内存基本知识


--  作者:大猫
--  发布时间:2004-11-6 14:05:41

--  内存基本知识

内存基本知识
1、介绍一些最新的RAM技术词汇
CDRAM-Cached DRAM——高速缓存存储器
CVRAM-Cached VRAM——高速缓存视频存储器
DRAM-Dynamic RAM——动态存储器
EDRAM-Enhanced DRAM——增强型动态存储器
EDO RAM-Extended Date Out RAM——外扩充数据模式存储器
EDO SRAM-Extended Date Out SRAM——外扩充数据模式静态存储器
EDO VRAM-Extended Date Out VRAM——外扩充数据模式视频存储器
FPM-Fast Page Mode——快速页模式
FRAM-Ferroelectric RAM——铁电体存储器
SDRAM-Synchronous DRAM——同步动态存储器
SRAM-Static RAM——静态存储器
SVRAM-Synchronous VRAM——同步视频存储器
3D RAM-3 DIMESION RAM——3维视频处理器专用存储器
VRAM-Video RAM——视频存储器
WRAM-Windows RAM——视频存储器(图形处理能力优于VRAM)
MDRAM-MultiBank DRAM——多槽动态存储器
SGRAM-Signal RAM——单口存储器

2.存储器有哪些主要技术指标
存储器是具有“记忆”功能的设备,它用具有两种稳定状态的物理器件来表示二进制数码“0”和“1”,这种器件称为记忆元件或记忆单元。记忆元件可以是磁芯,半导体触发器、MOS电路或电容器等。位(bit)是二进制数的最基本单位,也是存储器存储信息的最小单位,8位二进制数称为一个字节(Byte),可以由一个字节或若干个字节组成一个字(Word)在PC机中一般认为1个或2个字节组成一个字。若干个忆记单元组成一个存储单元,大量的存储单元的集合组成一个存储体(MemoryBank)。为了区分存储体内的存储单元,必须将它们逐一进行编号,称为地址。地址与存储单元之间一一对应,且是存储单元的唯一标志。应注意存储单元的地址和它里面存放的内容完全是两回事。
  根据存储器在计算机中处于不同的位置,可分为主存储器和辅助存储器。在主机内部,直接与CPU交换信息的存储器称主存储器或内存储器。在执行期间,程序的数据放在主存储器内。各个存储单元的内容可通过指令随机读写访问的存储器称为随机存取存储器(RAM)。另一种存储器叫只读存储器(ROM),里面存放一次性写入的程序或数据,仅能随机读出。RAM和ROM共同分享主存储器的地址空间。RAM中存取的数据掉电后就会丢失,而掉电后ROM中的数据可保持不变。因为结构、价格原因,主存储器的容量受限。为满足计算的需要而采用了大容量的辅助存储器或称外存储器,如磁盘、光盘等。存储器的特性由它的技术参数来描述。
  存储容量:存储器可以容纳的二进制信息量称为存储容量。一般主存储器(内存)容量在几十K到几十M字节左右;辅助存储器(外存)在几百K到几千M字节。
  存取周期:存储器的两个基本操作为读出与写入,是指将信息在存储单元与存储寄存器(MDR)之间进行读写。存储器从接收读出命令到被读出信息稳定在MDR的输出端为止的时间间隔,称为取数时间TA;两次独立的存取操作之间所需的最短时间称为存储周期TMC。半导体存储器的存取周期一般为60ns-100ns。
  存储器的可靠性:存储器的可靠性用平均故障间隔时间MTBF来衡量。MTBF可以理解为两次故障之间的平均时间间隔。MTBF越长,表示可靠性越高,即保持正确工作能力越强。
  性能价格比:性能主要包括存储器容量、存储周期和可靠性三项内容。性能价格比是一个综合性指标,对于不同的存储器有不同的要求。对于外存储器,要求容量极大,而对缓冲存储器则要求速度非常快,容量不一定大。因此性能/价格比是评价整个存储器系统很重要的指标。

  SDARM能成为下一代内存的主流吗
  快页模式(FPM)DRAM的黄金时代已经过去。随着高效内存集成电路的出现和为优化Pentium芯片运行效能而设计的INTEL HX、VX等核心逻辑芯片组的支持,人们越来越倾向于采用扩展数据输出(EDO)DRAM。EDO DRAM采用一种特殊的内存读出电路控制逻辑,在读写一个地址单元时,同时启动下一个连续地址单元的读写周期。从而节省了重选地址的时间,使存储总线的速率提高到40MHz。也就是说,与快页内存相比,内存性能提高了将近15%~30%,而其制造成本与快页内存相近。但是EDO内存也只能辉煌一时,其称霸市场的时间将极为短暂。不久以后市场上主流CPU的主频将高达200MHz以上。为优化处理器运行效能,总线时钟频率至少要达到66MHz以上。多媒体应用程序以及Windows 95和Windows NT操作系统对内存的要求也越来越高,为缓解瓶颈,只有采用新的内存结构,以支持高速总线时钟频率,而不至于插入指令等待周期。这样,为适应下一代主流CPU的需要,在理论上速度可与CPU频率同步,与CPU共享一个时钟周期的同步DRAM(SYNCHRONOUS DRAMS)即SDRAM(注意和用作CACHE的SRAM区别,SRAM的全写是Static RAM即静态RAM,速度虽快,但成本高,不适合做主存)应运而生,与其它内存结构相比,性能//价格比最高,势必将成为内存发展的主流。
  SDRAM基于双存储体结构,内含两个交错的存储阵列,当CPU从一个存储体或阵列访问数据的同时,另一个已准备好读写数据。通过两个存储阵列的紧密切换,读取效率得到成倍提高。去年推出的SDRAM最高速度可达100MHz,与中档Pentium同步,存储时间高达5~8ns,可将Pentium系统性能提高140%,与Pentium 100、133、166等每一档次只能提高性能百分之几十的CPU相比,换用SDRAM似乎是更明智的升级策略。在去年初许多DRAM生产厂家已开始上市4MB×4和2MB×8的16MB SDRAM内存条,但其成本较高。现在每一个内存生产厂家都在扩建SDRAM生产线。预计到今年底和1998年初,随着64M SDRAM内存条的大量上市,SDRAM将占据主导地位。其价格也将大幅下降。
  但是SDRAM的发展仍有许多困难要加以克服,其中之一便是主板核心逻辑芯片组的限制。VX芯片组已开始支持168线SDRAM,但一般VX主板只有一条168线内存槽,最多可上32M SDRAM,而简洁高效的HX主板则不支持SDRAM。预计下一代Pentium主板芯片组TX将更好的支持SDRAM。Intel最新推出的下一代Pentium主板芯片组TX将更好的支持SDRAM。
  SDRAM不仅可用作主存,在显示卡专用内存方面也有广泛应用。对显示卡来说,数据带宽越宽,同时处理的数据就越多,显示的信息就越多,显示质量也就越高。以前用一种可同时进行读写的双端口视频内存(VRAM)来提高带宽,但这种内存成本高,应用受很大限制。因此在一般显示卡上,廉价的DRAM和高效的EDO DRAM应用很广。但随着64位显示卡的上市,带宽已扩大到EDO DRAM所能达到的带宽的极限,要达到更高的1600×1200的分辨率,而又尽量降低成本,就只能采用频率达66MHz、高带宽的SDRAM了。SDRAM也将应用于共享内存结构(UMA)——一种集成主存和显示内存的结构。这种结构在很大程度上降低了系统成本,因为许多高性能显示卡价格高昂,就是因为其专用显示内存成本极高,而UMA技术将利用主存作显示内存,不再需要增加专门显示内存,因而降低了成本。

  什么是Flash Memory存储器
  介绍关于闪速存储器有关知识近年来,发展很快的新型半导体存储器是闪速存储器(Flash Memory)。它的主要特点是在不加电的情况下能长期保持存储的信息。就其本质而言,Flash Memory属于EEPROM(电擦除可编程只读存储器)类型。它既有ROM的特点,又有很高的存取速度,而且易于擦除和重写,功耗很小。目前其集成度已达4MB,同时价格也有所下降。由于Flash Memory的独特优点,如在一些较新的主板上采用Flash ROM BIOS,会使得BIOS升级非常方便。Flash Memory可用作固态大容量存储器。目前普遍使用的大容量存储器仍为硬盘。硬盘虽有容量大和价格低的优点,但它是机电设备,有机械磨损,可靠性及耐用性相对较差,抗冲击、抗振动能力弱,功耗大。因此,一直希望找到取代硬盘的手段。由于Flash Memory集成度不断提高,价格降低,使其在便携机上取代小容量硬盘已成为可能。目前研制的Flash Memory都符合PCMCIA标准,可以十分方便地用于各种便携式计算机中以取代磁盘。当前有两种类型的PCMCIA卡,一种称为Flash存储器卡,此卡中只有Flash Memory芯片组成的存储体,在使用时还需要专门的软件进行管理。另一种称为Flash驱动卡,此卡中除Flash芯片外还有由微处理器和其它逻辑电路组成的控制电路。它们与IDE标准兼容,可在DOS下象硬盘一样直接操作。因此也常把它们称为Flash固态盘。Flash Memory不足之处仍然是容量还不够大,价格还不够便宜。因此主要用于要求可靠性高,重量轻,但容量不大的便携式系统中。在586微机中已把BIOS系统驻留在Flash存储器中。

什么是Shadow RAM内存
  Shadow RAM也称为“影子”内存。它是为了提高系统效率而采用的一种专门技术。Shadow RAM所使用的物理芯片仍然是CMOS DRAM(动态随机存取存储器)芯片。Shadow RAM占据了系统主存的一部分地址空间。其编址范围为C0000~FFFFF,即为1MB主存中的768KB~1024KB区域。这个区域通常也称为内存保留区,用户程序不能直接访问。Shadow RAM的功能是用来存放各种ROM BIOS的内容。或者说Shadow RAM中的内容是ROM BIOS的拷贝。因此也把它称为ROM Shadow(即Shadow RAM的内容是ROM BIOS的“影子”)。在机器上电时,将自动地把系统BIOS、显示BIOS及其它适配器的BIOS装载到Shadow RAM的指定区域中。由于Shadow RAM的物理编址与对应的ROM相同,所以当需要访问BIOS时,只需访问Shadow RAM即可,而不必再访问ROM。通常访问ROM的时间在200ns左右,而访问DRAM的时间小于100ns(最新的DRAM芯片访问时间为60ns左右或者更小)。在系统运行的过程中,读取BIOS中的数据或调用BIOS中的程序模块是相当频繁的。显然,采用了Shadow技术后,将大大提高系统的工作效率。按下按键你可以看到该地址空间分配图,在如图所示的1MB主存地址空间中,640KB以下的区域是常规内存。640KB~768KB区域保留为显示缓冲区。768KB~1024KB区域即为Shadow RAM区。在系统设置中,又把这个区域按16KB大小的尺寸分为块,由用户设定是否允许使用。C0000~C7FFF这两个16KB块(共32KB)通常用作显示卡的ROM BIOS的Shadow区。C8000~EFFFF这10个16KB块可作为其它适配器的ROM BIOS的Shadow区。F0000~FFFFF共64KB规定由系统ROM BIOS使用。应该说明的是,只有当系统配置有640KB以上的内存时才有可能使用Shadow RAM。在系统内存大于640KB时,用户可在CMOS设置中按照ROM Shadow分块提示,把超过640KB以上的内存分别设置为“允许”(Enabled)即可。

  什么是EDO RAM
  内存是计算机中最主要的部件之一。微机诞生以来,它的心脏--CPU几经改朝换代,目前已发展到了PentiumⅡ,较之于当初,它在速度上已有两个数量级的增长。而内存的构成器件RAM(随机存储器)--一般为DRAM(动态随机存储器),虽然单个芯片的容量不断扩大,但存取速度并没有太大的提高。虽然人们早就采用高速但昂贵的SRAM芯片在CPU和内存之间增加一种缓冲设备--Cache,以缓冲两者之间的速度不匹配问题。但这并不能根本解决问题。于是人们把注意力集中到DRAM接口(芯片收发数据的途径上)。在RAM芯片之中,除存储单元之外,还有一些附加逻辑电路,现在,人们已注意到RAM芯片的附加逻辑电路,通过增加少量的额外逻辑电路,可以提高在单位时间内的数据流量,即所谓的增加带宽。EDO正是在这个方面作出了尝试。扩展数据输出(Extended data out--EDO,有时也称为超页模式--hyper-page-mode)DRAM,和突发式EDO(Bust EDO-BEDO)DRAM是两种基于页模式内存的内存技术。EDO大约一年前被引入主流PC,从那以后成为许多系统厂商的主要内存选择。BEDO相对更新一些,对市场的吸引还未能达到EDO的水平。EDO的工作方式颇类似于FPM DRAM:先触发内存中的一行,然后触发所需的那一列。但是当找到所需的那条信息时,EDO DRAM不是将该列变为非触发状态而且关闭输出缓冲区(这是FPM DRAM采取的方式),而是将输出数据缓冲区保持开放,直到下一列存取或下一读周期开始。由于缓冲区保持开放,因而EDO消除了等待状态,且突发式传送更加迅速。EDO还具有比FPM DRAM的6-3-3-3更快的理想化突发式读周期时钟安排:6-2-2-2。这使得在66MHz总线上从DRAM中读取一组由四个元素组成的数据块时能节省3个时钟周期。EDO易于实现,而且在价格上EDO与FPM没有什么差别,所以没有理由不选择EDO。BEDO DRAM比EDO能更大程度地改善FPM的时钟周期。由于大多数PC应用程序以四周期突发方式访问内存,以便填充高速缓冲内存(系统内存将数据填充至L2高速缓存,如果没有L2高速缓存,则填充至CPU),所以一旦知道了第一个地址,接下来的三个就可以很快地由DRAM提供。BEDO最本质的改进是在芯片上增加了一个地址计数器,用来跟踪下一个地址。BEDO还增加了流水线级,允许页访问周期被划分为两个部分。对于内存读操作,第一部分负责将数据从内存阵列中读至输出级(第二级锁存),第二部分负责从这一锁存将数据总线驱动至相应的逻辑级别。因为数据已经在输出缓冲区内,所以访问时间得以缩短。BEDO能达到的最大突发式时钟安排为5-1-1-1(采用52nsBEDO和66-MHz总线)比优化EDO内存又节省了四个时钟周期。

  RAM是如何工作的
  实际的存储器结构由许许多多的基本存储单元排列成矩阵形式,并加上地址选择及读写控制等逻辑电路构成。当CPU要从存储器中读取数据时,就会选择存储器中某一地址,并将该地址上存储单元所存储的内容读走。早期的DRAM的存储速度很慢,但随着内存技术的飞速发展,随后发展了一种称为快速页面模式(Fast Page Mode)的DRAM技术,称为FPDRAM。FPM内存的读周期从DRAM阵列中某一行的触发开始,然后移至内存地址所指位置的第一列并触发,该位置即包含所需要的数据。第一条信息需要被证实是否有效,然后还需要将数据存至系统。一旦发现第一条正确信息,该列即被变为非触发状态,并为下一个周期作好准备。这样就引入了“等待状态”,因为在该列为非触发状态时不会发生任何事情(CPU必须等待内存完成一个周期)。直到下一周期开始或下一条信息被请求时,数据输出缓冲区才被关闭。在快页模式中,当预测到所需下一条数据所放位置相邻时,就触发数据所在行的下一列。下一列的触发只有在内存中给定行上进行顺序读操作时才有良好的效果。从50纳秒FPM内存中进行读操作,理想化的情形是一个以6-3-3-3形式安排的突发式周期(6个时钟周期用于读取第一个数据元素,接下来的每3个时钟周期用于后面3个数据元素)。第一个阶段包含用于读取触发行列所需要的额外时钟周期。一旦行列被触发后,内存就可以用每条数据3个时钟周期的速度传送数据了。FP RAM虽然速度有所提高,但仍然跟不上新型高速的CPU。很快又出现了EDO RAM和SDRAM等新型高速的内存芯片。

  介绍处理器高速缓存的有关知识
  所谓高速缓存,通常指的是Level 2高速缓存,或外部高速缓存。L2高速缓存一直都属于速度极快而价格也相当昂贵的一类内存,称为SRAM(静态RAM),用来存放那些被CPU频繁使用的数据,以便使CPU不必依赖于速度较慢的DRAM。最简单形式的SRAM采用的是异步设计,即CPU将地址发送给高速缓存,由缓存查找这个地址,然后返回数据。每次访问的开始都需要额外消耗一个时钟周期用于查找特征位。这样,异步高速缓存在66MHz总线上所能达到的最快响应时间为3-2-2-2,而通常只能达到4-2-2- 2。同步高速缓存用来缓存传送来的地址,以便把按地址进行查找的过程分配到两个或更多个时钟周期上完成。SRAM在第一个时钟周期内将被要求的地址存放到一个寄存器中。在第二个时钟周期内,SRAM把数据传送给CPU。由于地址已被保存在一个寄存器中,所以接下来同步SRAM就可以在CPU读取前一次请求的数据同时接收下一个数据地址。这样,同步SRAM可以不必另花时间来接收和译码来自芯片集的附加地址,就“喷出”连续的数据元素。优化的响应时间在66MHz总线上可以减小为2-1-1-1。另一种类型的同步SRAM称为流水线突发式(pipelined burst)。流水线实际上是增加了一个用来缓存从内存地址读取的数据的输出级,以便能够快速地访问从内存中读取的连续数据,而省去查找内存阵列来获取下一数据元素过程中的延迟。流水线对于顺序访问模式,如高速缓存的行填充(linefill)最为高效。

  什么是ECC内存
  ECC是Error Correction Coding或Error Cheching and Correcting的缩写,它代表具有自动纠错功能的内存。目前的ECC存储器一般只能纠正一位二进制数的错误。Intel公司的82430HX芯片组可支持ECC内存,所以采用82430HX芯片的主板一般都可以安装使用ECC内存,由于ECC内存成本比较高,所以它主要应用在要求系统运算可靠性比较高的商业计算机中。由于实际上存储器出错的情况不会经常发生,所以一般的家用计算机不必采用ECC内存,还有不少控制电路芯片不能支持ECC内存,所以有不少主机是不宜安装ECC内存的,用户应注意对ECC内存不要盲从。

  SDRAM能与EDO RAM混用吗
  SDRAM是新一代的动态存储器,又称为同步动态存储器或同步DRAM。它可以与CPU总线使用同一个时钟,而EDO和FPM存储器则与CPU总线是异步的。目前SDRAM存储器的读写周期一般为5-1-1-1。相比之下,EDO内存器一般为6-2-2-2。也就是说,SDRAM的读写周期比EDO少4个,大约节省存储器读写时间28%,但实际上由于计算机内其它设备的制约,使用SDRAM的计算机大约可提高性能5~10%。虽然有不少主机支持SDRAM与EDO内存混合安装方式,但是最好不要混用。原因是多数SDRAM只能在3.3V下工作,而EDO内存则多数在5V下工作。虽然主机板上对DIMM和SIMM分别供电,但它们的数据线总是要连在一起的,如果SIMM(72线内存)与DIMM(168线SDRAM)混用,尽管开始系统可以正常工作,但可能在使用一段时间后,会造成SDRAM的数据输入端被损坏。当然,如果你的SDRAM是宽电压(3V~5V)工作的产品,就不会出现这种损坏情况。目前T1和SUMSUNG的某些SDRAM产品支持宽电压工作方式,可以与EDO内存混用。

  高速缓存--Cache介绍Cache的分级
  随着CPU的速度的加快,它与动态存储器DRAM配合工作时往往需要插入等待状态,这样难以发挥出CPU的高速度,也难以提高整机的性能。如果采用静态存储器,虽可以解决该问题,但SRAM价格高。在同样容量下,SARM的价格是DRAM的4倍。而且SRAM体积大,集成度低。为解决这个问题,在386DX以上的主板中采用了高速缓冲存储器--Cache技术。其基本思想是用少量的SRAM作为CPU与DRAM存储系统之间的缓冲区,即Cache系统。80486以及更高档微处理器的一个显著特点是处理器芯片内集成了SRAM作为Cache,由于这些Cache装在芯片内,因此称为片内Cache。486芯片内Cache的容量通常为8K。高档芯片如Pentium为16KB,Power PC可达32KB。Pentium微处理器进一步改进片内Cache,采用数据和双通道Cache技术,相对而言,片内Cache的容量不大,但是非常灵活、方便,极大地提高了微处理器的性能。片内Cache也称为一级Cache。由于486,586等高档处理器的时钟频率很高,一旦出现一级Cache未命中的情况,性能将明显恶化。在这种情况下采用的办法是在处理器芯片之外再加Cache,称为二级Cache。二级Cache实际上是CPU和主存之间的真正缓冲。由于系统板上的响应时间远低于CPU的速度,如果没有二级Cache就不可能达到486,586等高档处理器的理想速度。二级Cache的容量通常应比一级Cache大一个数量级以上。在系统设置中,常要求用户确定二级Cache是否安装及尺寸大小等。二级Cache的大小一般为128KB、256KB或512KB。在486以上档次的微机中,普遍采用256KB或512KB同步Cache。所谓同步是指Cache和CPU采用了相同的时钟周期,以相同的速度同步工作。相对于异步Cache,性能可提高30%以上。
  什么是CACHE存储器 所谓Cache,即高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic RAM)之间的规模较小的但速度很高的存储器,通常由SRAM组成。SRAM(Static RAM)是静态存储器的英文缩写。由于SRAM采用了与制作CPU相同的半导体工艺,因此与动态存储器DRAM比较,SRAM的存取速度快,但体积较大,价格很高。由于动态RAM组成的主存储器的读写速度低于CPU的速度,而CPU每执行一条指令都要访问一次或多次主存,所以CPU总是要处于等待状态,严重地降低了系统的效率。采用Cache之后,在Cache中保存着主存储器内容的部分副本,CPU在读写数据时,首先访问Cache。由于Cache的速度与CPU相当,因此CPU就能在零等待状态下迅速地完成数据的读写。只有Cache中不含有CPU所需的数据时,CPU才去访问主存。CPU在访问Cache时找到所需的数据称为命中,否则称为未命中。因此,访问Cache的命中率则成了提高效率的关键。而提高命中率则取决于Cache存储器的映象方式和Cache内容替换的算法等一系列因素。
  对内存扩容时应遵循哪些规则对内存扩充容量时,应遵循下面的一些规则:
  1.对大多数PC机来说,不能在同一组Bank内(每组包括两到四个插座)将不同大小的SIMM条混合在一起。很多PC机都可安装不同容量的SIMM,但装在PC机同一组中的所有SIMM必须具有相同的容量,例如,对一个四插槽组来说,PC机一般既可接受1MB的SIMM条,也可接受4MB的SIMM条,可在该组的每个槽内安装1MB SIMM,则这一组共可容纳4MB内存。也可在该组每个槽内安装4MB SIMM,则这一组共可容纳16MB内存。但是,不能为了得到10MB内存,在两个槽内插入1MB的SIMM条,而在另两个槽中插入4MB的SIMM条。
  2.对于很多PC机来说,若把不同速度的SIMM混合在一起,即使它们的容量相同也会带来麻烦。例如,计算机中已有运行速度为60纳秒(ns)的4MB内存,而文档中说70ns的SIMM也能工作。如果在母板的空闲内存槽中再插入速度为70ns的SIMM条,机器会拒绝引导或在启动后不久就陷于崩溃。对于某些机器来说,若把速度低的SIMM放至第一组,则可解决速度混合问题。计算机会按最低速度存取,剩余部分不会再有用。
  3.对于大多数PC机来说,必须将一组的所有插槽都插满。或者将一组全部置空(当然第一组不行)。在一组中不能只装一部分。
  4.PC机可接受的SIMM大小有一个上限(最大值可从PC机说明书中找到。若没有说明书,唯一的方法就是从实践中找到最大值了)。何谓30线、72线、168线内存条内存条;30线;72线;168线介绍30线、72线、168线内存条的有关知识及相互之间的区别条形存储器是把一些存储器芯片焊在一小条印制电路板上做成的,即称之为内存条,所谓内存条线数即引脚数,按引脚数不同可把内存条分为30线的内存条、72线的内存条(SIMM,即Sigle inline Memory Modale)和168线的内存条(DIMM,即Double inline Memory Module)。内存条的引脚数必须与主板上内存槽的插脚数相匹配,内存条插槽也有30线、72线和168线三种。30线内存条提供8位有效数据位。常见容量有256KB、1MB和4MB。72线的内存条体积稍大,提供32位的有效数据位。常见容量有4MB、8MB、16MB和32MB。按下按键你可以看到72线内存条的外观形状。168线的内存条体积较大,提供64位有效数据位。


--  作者:大猫
--  发布时间:2004-11-6 14:06:11

--  

内存基本知识(续)

  如何识别Cache存储器芯片标志
  目前微机系统中,常用的静态RAM的容量有8K×8位(64Kbit)、32K×8(256Kbit)位以及64K×8(512Kbit)位三种芯片,存取时间(周期)为15ns到30ns。以上参数在静态SRAM芯片上常标注为:XX64-25(XX65-25)、XX256-15(XX257-15)、XX512-15等。以XX256-15为例,其中“256”表示容量(单位为Kbit),“15”表示存取时间(单位为ns)。在表示SRAM存储器容量的数值中,“64”与“65”相同,都表示该芯片的容量为64Kbit,即8KB。同理,“256”与“257”的含义也相同,即该芯片的容量为32KB。例如在华硕PVI686SP3主板上使用的SRAM芯片为W24257AK-15,即该芯片的容量为32K×8位,存取速度为15ns。如何用软件的方法检测Cache?检测;高速缓存;Cache介绍用软件检测Cache的方法主板上Cache的大小和有无很难用一般方法判断,尤其是有的主板连BIOS都被不法经销商修改过以方便作假。486时代常用的拔插法现在也不灵了——奔腾主板上很多标称256K的Cache芯片都是直接SMT(表面安装)上去的,无法拔插。测试Cache的软件确实有一些,如CCT等,但普通用户很难得到这些专业软件。


什么是内存?
  内存最小的物理单元是位,从本质上来讲,位是一个位于某种二值状态(通常是0和1)下的电气单元。
  八位组成一个字节,这样组合的可能有256种(2的8次方)。字节是内存可访问的最小单元,每个这样的组合可代表单独的一个数据字符或指令。ASCII码字符集实际上只使用了7位,因此支持128种可能的字符。对于所有的26个英文字母(包括大小写)、数字和特殊字符来说,这个数目完全够用。某些语种的字符数目比较庞大,因此它们可能会使用“双字”字符集(例如汉字)。
  PC机上所使用的内存可以分为两大类,分别是只读内存(ROM)和随即访问内存(RAM)。从它们的名字上可以看出,ROM数据不能随意更新,但是在任何时候都可以读取。即使是断电,ROM也能够保留数据。至于RAM则在任何时候都可以读写,因此RAM通常用作操作系统或其他正在运行的程序的临时存储介质(可称作系统内存)。不幸的是,掉电时RAM不能保留数据,如果需要保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)。正因为如此,有时也将RAM称作“可变存储器”。
  RAM内存可以进一步分为静态RAM(SRAM)和动态内存(DRAM)两大类。由于实现方法上的差异,DRAM要比SRAM慢。SRAM由逻辑晶体管组成,数据采用触发的方式进行存储。因此改变和读取内存单元格的速度非常快。而DRAM使用电容存储数据。由于电容会逐渐放电,所以必须周期性的对它重新充电(即:刷新)。由于在执行读操作时电容也会放电,因此每次读操作之后也必须重新充电。刷新操作需要占用时钟周期,这可能会影响到其他的操作。虽然SRAM比DRAM的速度要快近10倍,但是它的价格也要比DRAM贵许多—事实上,SRAM要比DRAM贵近10倍。

  内存的使用
  使用ROM内存来保存PC上的BIOS程序非常理想,后者是一个基本的引导程序。这个引导程序非常小,可以驻留在较小的内存中(小于2MB)。ROM内存包括可编程ROM(PROM)、可擦写可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)等等。目前BIOS一般使用EEPROM,由于它可以通过加电擦除改写,由此能够对BIOS进行程序升级,从而在芯片中置入新的引导程序。这就是所谓的“闪写BIOS”。
  起初的微机都是朝着廉价低档方向设计,其组件的成本也很低,系统内存也一直使用廉价(因此速度也慢)的DRAM。在PC出现时,DRAM的速度足够处理8086/8088 4.77MHz的总线速度,甚至在较快的80286处理器(总线速度可达12MHz,或80ns)上也是如此。
  随着80386的出现,时钟速度可以达到20MHz、25MHz、甚至33MHz时,当时现有的DRAM就不能满足速度的要求。
  为了消除处理器和主存速度之间的不一致,设计人员开始在主板上使用少量的SRAM内存,它们运行在系统总线速度下,用来保存最近使用过的数据。尽管SRAM的速度要比DRAM快很多,但是没过多久处理器的速度就再次超过了主板缓存的速度。在80486出现时,其芯片内部已经置入了8K的SRAM缓存,因为它运行在CPU速度下,因此被称作第一层(L1)缓存,而主板上的缓存则被称作L2。今天高性能的系统仍在沿用这种“内存层次结构”。

  内存方面值得关注的问题
  所有的DRAM的基本内核都相同,因此内部速度也相同,而等待时间也都相对比较大。在过去几年中,人们设计出了许多方案来优化或消除这些局限,然而结果往往是某个方面得到了改善,而另外某个方面却不如以前。由于SRAM的成本相对较高,行业的竞争相当激烈,因此DRAM仍然是大容量系统内存唯一可行的选择,包括在图形子系统中常常也是如此。SRAM内存通常仅用作缓存:外部缓存(位于主板上)或者内部缓存(内置到处理器或DRAM芯片中很少量的一部分)。
  处理器主频的发展速度是相当惊人的,因此内存设计人员不得不在不显著提高其成本的前提下大力提高DRAM的速度。如果处理器需要一个以上的时钟周期来执行一条指令,而内存子系统可以以慢两到三倍的速度运行,那么内存还能够和CPU速度相协调。随着处理器性能越来越优良,已经可以在一个时钟周期内执行一条甚至多条指令。不幸的是,虽然处理器目前的速度可以达到500MHz,但是主存的速度却局限于100MHz(在某些情况下可能会达到133MHz)。这时内存和处理器之间的速度就存在失调现象。造成这种失调的主要原因是,主存通常使用DRAM,这种类型的内存本身就太慢了。
  人们提出了许多设计SRAM和DRAM的方法并付诸实施。每种方法都希望能够着解决一定情况下的速度问题。然而不幸的是,我们还没有找到一种“理想”的内存体系结构来解决所有的问题。因为任何人都没有能够做到显著的提高DRAM的速度而不用显著的提高其成本。

  目前的发展方向
  处理器的速度仍在飞速的增长。大约在2000年主流处理器的速度将达到1GHz。现在正在使用的内存很快就会显得太慢,当然很快也会出现新的设计方案。在过去的一些年中,人们提出了许多种设计方案,但是由于营销和公司政策方面的原因,它们或被舍弃,或局限于很小的应用范围。
  SRAM和DRAM内存经历了一个逐步演变的过程,从单芯片、异步、单排结构发展到多芯片、同步的多排结构,同时还采用了更多的先进技术,例如流水线操作、脉冲模式访问以及数据预取。此外还专门为图形、通信以及其他应用设计了专用的DRAM。有一点似乎是确定的——处理器和内存都将渐渐变得越来越廉价,生命周期也会相对变短许多。最终我们可能会看到这样一个局面:不仅L2缓存被嵌入到了芯片中,整个系统RAM也被嵌入了进来。到那时由于DRAM可以运行在,或者接近于,处理器速度下,因此没有必要再使用SRAM缓存。内存的升级也就是处理器的升级,然而总价格仍然维持在一个相对较低的水平上。

  内存子系统
  PC由下面几个基本的部分组成:中央处理单元、内存子系统、I/O子系统、可能还包括图形子系统。
  在有关如何提高计算机性能的的论述中,大多数都集中讨论如何提高CPU的速度,而忽略了其他方面。虽然提高CPU的速度的确会在一定程度上提高系统的性能,但是从主存中获取数据也是一个不可忽视的问题。
  内存控制器处于CPU和I/O子系统(包括图形子系统)之间。你可能会(正确的)猜到,所有的数据都必须经过内存——无论它们是进入还是离开处理器。如果处理器必须等待内存子系统发送或写入数据,那么就会浪费处理器的时钟周期,从而降低系统的总性能。
  为了形象的说明这一点,我们可以考察一下一个CPU速度为500MHz、SDRAM速度为100MHz的系统。为了简化起见,我们假定处理器每个时钟周期内可以执行一条指令,在每个时钟周期内内存都可以发送/接收数据。同时不考虑可能会出现其他需要CPU去处理的操作。在这个简单的例子中,CPU每秒可以处理5亿条指令(和/或数据),而内存每秒只能传送一亿个数据。结果是在每5个CPU时钟周期中就有4个浪费在了等待上。即使CPU这个时候还可能会去处理某些中断,控制某些I/O操作等等,但是仍然还是有许多时间浪费在了等待数据上。
   虽然已经出现了(或者可以开发出)高速内存来克服这个问题,但是就PC而言它们的成本往往显得过于高昂。在考虑这个问题的解决方案时,设计人员必须充分考虑可能的附加成本,考虑消费者是否愿意追加这个成本。正因为如此,许多先进的技术都被忽略了,而那些性能可接受但成本要低的多的设计大受欢迎。 

  采用缓存来提高性能
  实际上的操作要比前面的例子复杂得多,尽管如此,我们仍能够感受到处理器的速度远远的超过了DRAM内存的速度。在内存中加入少量的SRAM缓存有助于消除速度不匹配的问题。随着时间的推移,缓存从最初的几个KB增加到了譬如桌面系统上的2MB缓存。某些高价品的服务器系统甚至包括了更多的缓存,对它们来说,价格不是最重要的考虑因素。
  缓存是一个非常重要的临时存储区域,用来保存少量的数据位,这些数据相对CPU比较“近”。缓存理论的基本原理是所谓的时间和空间局部性。时间局部性简单的说就是被访问过一次的数据很快再次被访问的可能性很高,空间局部性的意思是,下一个被访问的数据区域将靠近于刚被访问过的数据。
  我们可以用律师事务所来打个比方,在这里,文件一般都被放在文件柜里。当要处理一个案例时,可能会取出全部的案例文件并放入律师的公文包中。于是所有相关的文件都“伸手可及”(空间局部性)。在研究中,可能会有许多文件被多次查阅(时间局部性)。与此相比较,如果律师每次需要文件时都到文件柜里去取单个的文件——这样做将会花很多时间。
  就大多数应用程序而言,使用缓存的效果非常好,研究也表明,正常工作时缓存可以满足CPU 98%的数据请求。然而不幸的是,随着处理器速度的进一步提高,主流应用程序变得越来越大,我们不得不不断的修改或调整所使用的缓存。实际上缓存理论的运用已经到达了极限,关于这一点我们将在后面的文章中作出论述。
  从某种程度上来讲,简单的加入更多的缓存(或者更多的缓存层次)迟早会到达一个收益递减点,甚至有可能开始降低系统性能。还是使用前面那个类比,如果在律师的公文包中不是一个或两个案例文件,而是40或50个,你会发现问题依然会存在。某些应用程序的工作集非常大,甚至超过了2MB缓存,而指令集中的SSE会完全忽略缓存。这时,就必须采用其他的方法来从DRAM和/或SRAM中向CPU中快速的读取数据。
  
  系统的总线速度
  系统的总线速度是DRAM和CPU通信的速度,它也有可能成为制约系统高速的一个瓶颈问题。最初改善系统性能的基本方法都瞄准了它。实际上,在采用缓存技术之前,总线速度在很短的时间内从4.77MHz提高到了33MHz(从8088到80386)。尽管处理器的速度也在飞速的增长,但是在当时DRAM的速度足够快,仍足以匹配CPU的速度。
  虽然最初的80486处理器的速度只有25MHz和33MHz,但是速度很快就达到了50MHz、66MHz、100MHz甚至133MHz。缓慢的DRAM速度将总线速度限制在最大50MHz下。这意味着处理器不得不双倍、三倍、或四倍分频时钟来获得更快的速度,因为在每个内存时钟周期内可以有两个或三个CPU时钟周期,于是造成速度明显的不匹配。采用SRAM缓存成为系统设计中重要的一环。
  Pentium处理器采用了超标量体系结构,在每个周期内可以执行多条指令。同时,系统的总线速度提高到了60MHz,接着又增加到了66MHz。这样使得对快速DRAM的需求更加迫切。随着技术的飞速发展,处理器很快超过了200MHz,这时CPU不得不采用3x甚至更大的倍频因子。
  系统的总线速度也在不断提高,先是增加到75MHz(最早用在Cyrix处理器上),然后增加到了100MHz。很快就又提高到了133MHz。我们还可以进一步提高总线的速度。

  带宽
  带宽实质上指的是给定时间内可以发送的最大数据量,通过总线速度乘以总线宽度可以得到带宽的大小。总线宽度指的是可以同时发送的数据位数。你可以把总线宽度看成系统高速公路上的车道数。使总线宽度加倍可以提高数据发送量两倍而不用提高总线速度。
  早期的IBM PC(8086)的总线宽度为8位,到PC AT(80286)时就增加到了16位。很快在80386上增加到了32位。到出现Pentium?处理器时,又增加到了64位,目前仍在使用64位总线宽度。

  从8位到64位的演变,以及总线速度的增长,都是为了提高带宽。Intel?在Pentium? Pro(以及后来的CPU上)采用双重独立总线设计,将L2缓存移到了它自己的总线上,从而极大的提高了带宽,这就是所谓的背部总线。
  从理论上将,处理器可以处理大小等于时钟速度乘以总线宽度的全部数据。这意味着一个内存总线宽度为64位的233MHz处理器在理想情况下处理数据的速度可以达到1.8GB/Sec,然而66MHz的系统总线限制却将带宽限制为533MB/Sec。
  唯一使数据速率达到处理器可接受范围的方法是提高内存的总线速度,使其等于处理器的速度。然而在实际应用中,只有那些高负荷的多任务多用户系统才需要使用全部的带宽。大多数的桌面系统甚至很少用到可用带宽的50%。

  粒度
  粒度是系统内存扩展增量的最小值。它必须足够小,这样初始成本可以维持在一个较低的水平,但是它也必须足够大,以便支持合理的扩展量。
  随着总线宽度的提高,粒度也逐渐成为一个重要的问题。对于相同的芯片制造工艺,双倍总线宽度意味着芯片数目的加倍——内存的大小也因此加倍。结果是模块数量比用户所需要的要大,这样他们要么不得不使用更小的内存,要么使用比他们实际需要更大的内存。值得庆幸的是,由于内存的价格很低,这个问题显得比较次要。目前很少有家用PC会安装64MB或者更大的内存。

  等待周期
  等待周期指的是开始数据请求之后到接受到数据所花的时钟周期数。地址的锁存和译码、队列交换、以及将数据发送到输出缓冲区都会影响DRAM的等待周期。在首次访问DRAM芯片时甚至还需要两到三个周期来设置芯片。对于那些需要大量的随机内存访问的应用程序来说,知道这一点非常关键。
  许多DRAM操作的优化考虑都集中在消除首次访问后的等待周期上,而不是去显著的减小等待周期。虽然大多数设计人员(特别是Intel的)主要关心带宽问题,但是等待周期也越来越成为影响系统平均性能的重要瓶颈问题。现实是,当带宽翻了1000番的时候,DRAM等待周期可能却只翻了八番。
  等待周期问题被忽略的主要原因是成本问题。增加带宽和加入SRAM缓存是提高性能相对便宜的两种方法。然而不幸的是,大多数“便宜”的改进手段已经耗尽,这意味着要么花费较高的成本来提高性能,要么只获得有限的性能提高——除非出现了某些新突破。

  有关内存的知识要点
  随着处理器的速度越来越快,内存子系统已经越来越成为一个重要的性能瓶颈问题。系统和内存设计人员不断的采用一些方法使内存速度的发展跟上CPU发展速度而同时维持较低的成本。在这个方面,提高总线速度和加入少量的SRAM缓存两种方法做得比较成功,但它们也仅仅只是具体实践的一个方面。
  几年来,内存也有了很大的改进,尽管并不象处理器的进步那么显著。在后面的文章中,我们将探讨如何改进SRAM和DRAM来提高速度和优化系统性能。


--  作者:风中的承诺
--  发布时间:2004-12-17 14:46:52

--  
  厉害!!!~~
--  作者:dal686
--  发布时间:2004-12-17 19:34:42

--  

oooooooooooooooo

kkkkkkkkkkkkkkkkkkkkk



Powered By :Dvbbs Version 7.0.0 Sp2 梦琰论坛V2.1
Copyright © 2003-2005 http://bbs.ubocn.com All right Reserved
执行时间:93.75000毫秒。查询数据库3次。
当前模板样式:[生活]
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页