从功能上划分,半导体存储器可以被分为只读存储器(Read Only Memory,ROM)和随机存储器(Random Access Memory,RAM)两类。只读存储器的存储内容一经写入永久保存,即使断电也不会遗失,是一种非易失性存储器,常被用来存储BIOS等系统软件和系统参数等永久性数据。随机存储器则是一种易失性存储器,其存储内容在断电后会丢失,常被用于存储正在运行的应用程序、临时数据等。一般来讲,RAM的访问速度比ROM要快得多,因此计算机系统中经常使用影子内存(Shadow)技术,在主板的支持下将ROM中存储的内容复制到RAM中,并将对ROM的访问重定向到相应的RAM模块中,以提高对诸如BIOS服务程序、系统参数表等原本位于ROM中的数据的访问速度。
1.只读存储器
根据实现原理的不同,只读存储器ROM又可以被分为掩模ROM、PROM、EPROM、EEPROM、Flash等几种类型。
●掩模ROM(MASK ROM)
掩模ROM即采用掩模技术生产的ROM,其基础是MOS管阵列以及阵列上面铺设的分别与地址译码(行线)和数据输出(列线)连接在一起的铝制或铜制管线。在生产时,根据数据存储的需要制造掩模板,再使用掩模板通过光刻或注入等工艺将MOS管与行、列金属线有选择地连通。与地址数据线连通的MOS管被选通时将输出“0”,未连通的MOS管输出“1”,这样就实现了数据的永久存储。掩模ROM的数据一经写入不能更改,而且其写入必须由半导体生产厂家根据用户的要求进行,用户无法自行写入数据。掩模ROM只能由厂家一次性写入,使用上不够灵活。但是其生产工艺成熟,价格低廉,被广泛用于一些对数据没有二次写入需求的场合。
●PROM(Programmable ROM)
PROM,即可编程ROM,是一种能够由用户进行一次性编程的ROM。PROM的MOS管阵列行列交叉处连接MOS管的栅极有熔断丝,可以通过加高电压将其熔断,从而允许用户对PROM进行一次数据写入(编程)。PROM器件一经编程(即高压熔断)存储的内容就不能再做修改。
●EPROM(Erasable Programmable ROM)
EPROM,即可擦除的可编程ROM,提供了通过紫外线照射擦除ROM编程内容的能力,使得ROM的内容在写入后可以多次擦除和重新写入,弥补了掩模ROM和PROM使用不方便的不足。EPROM由浮栅型场效应管阵列构成,使用编程器通过加一定的电压实现对EPROM的编程。在需要重新写入数据时,可以使用紫外线照射芯片上的石英窗口以实现“擦除”,从而使EPROM芯片可以被重新编程。这一类芯片比较容易识别,其封装中包含有“石英玻璃窗”,一个编程后的EPROM芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住,以防止遭到阳光直射。
●EEPROM(Electrically Erasable Programmable ROM,又称E2PROM)
EEPROM具有和EPROM相同的功能和使用方式,其不同之处在于清除数据的方式。EEP-ROM使用约20V的电压来进行数据清除,避免了EPROM采用紫外线照射擦除数据的麻烦。和EPROM相比,EEPROM实现了在线擦除和在线写入的能力,但是其造价相对比较高。
●Flash Memory
Flash Memory又称闪存,因可快速擦写而得名。Flash Memory实际上也是EEPROM的一种,也是电可擦除的ROM器件。Flash Memory和普通的EEPROM之间的最大区别在于Flash Memory的擦写是按数据块进行擦写,而不像普通的EEPROM一样按字节进行擦写。因而Flash Memory在擦写速度方面远高于普通的EEPROM,其容量也比较大,价格也比较低。Flash Memory不仅仅可以替代传统的ROM用于主板上存储BIOS服务程序和系统参数表等只读数据,还可以和控制电路配合用作优盘、闪存卡等外存储器使用。
2.随机存储器
和ROM不同,半导体RAM是一种易失性存储器。RAM需要持续的电力供应以保证正常的工作,一旦系统断电,存储于RAM中的数据将会永久性地丢失,无法恢复。和ROM相比,RAM的访问速度,尤其是数据存储速度要快得多,被广泛用作计算机系统的主存储器。根据存储原理的不同,RAM又被分为静态RAM和动态RAM两大类。
●SRAM(Static RAM-静态随机存储器)
静态RAM简称SRAM,是一种采用四到六个晶体管作为一个存储单元存储一位数据的RAM。采用四到六个晶体管的基本存储单元使得SRAM中存储的内容可以在系统正常供电的情况下得到永久保持而无需动态刷新,这也是SRAM中“静态”的含义。
在同样的时钟频率下,SRAM对称的电路结构设计使得每个存储单元内所储存的数值都能以比DRAM快的速率被读取。除此之外,由于SRAM通常都被设计成一次就读取所有的位,比起高低地址的数据交互读取的DRAM,在读取效率上也快很多。因此虽然SRAM的生产成本比较高,但在需要高速读写资料的地方,如板上高速缓存(cache),还是会使用SRAM。
●DRAM(Dynamic RAM-动态随机存储器)
动态RAM简称DRAM,其基本存储单元由一个晶体管和一个电容组成,依靠电容是否被充电来分辨存储的位是1还是0。由于电容自身不可避免地有些漏电,DRAM中的数据会随着时间的流逝而消失,这就需要对DRAM中的数据不断进行刷新以给电容充电,保持其所存储的数据。这也正是DRAM中“动态”的含义。
和SRAM相比,DRAM的结构更加简单,其密度可以做到非常高,从而得到较SRAM更高的单位体积容量和更低的成本。DRAM被广泛用作计算机,包括微型计算机的主存储器、显示存储器、各种外设的缓存等。
根据传输方式等细节上的不同,DRAM又包括DRAM、FPM RAM、EDO RAM、SDRAM、RDRAM、DDR SDRAM、DDR Ⅱ SDRAM等不同的类型。
●FPM DRAM(Fast Page Mode DRAM,快速页切换模式动态随机存取存储器)
FPM是一种改良版的DRAM,大多数采用72脚或30脚的模块。传统的DRAM在存取一位数据时,必须送出行地址和列地址各一次才能读写数据。而FRM DRAM在触发了行地址后,如果CPU需要的地址在同一行内,则可以连续输出列地址而不必再输出行地址了。由于一般的程序和数据在内存中排列的地址是连续的,这种情况下输出行地址后连续输出列地址就可以得到所需要的数据。FPM将记忆体内部隔成许多页,从512 B到数KB不等,在读取连续区域内的数据时,就可以通过快速页切换模式来直接读取各页内的资料,从而大大提高读取速度。在1996年以前,486时代和Pentium时代的初期,FPM DRAM被大量使用。
●EDO DRAM(Extended Data Out DRAM,延伸数据输出动态随机存取存储器)
EDO DRAM是继FPM DRAM之后出现的一种动态存储器,一般为72脚、168脚的模块。它不需要像FPM DRAM那样在存取每一位数据时必须输出行地址和列地址并使其稳定一段时间才能读写有效的数据,因此它可以大大缩短等待输出地址的时间,其存取速度一般比FPM模式快15%左右。它一般应用于中档以下的Pentium主板标准内存,后期的486系统开始支持EDO DRAM,到1996年后期,EDO DRAM开始被大量使用。
●SDRAM(Synchronous DRAM,同步动态随机存取存储器)
SDRAM是一种与CPU实现外频时钟同步的内存模式,一般都采用168脚的内存模组,工作电压为3.3 V。所谓时钟同步是指内存能够与CPU同步存取资料,这样可以取消等待周期,减少数据传输的延迟,从而提升计算机的性能和效率。
●RDRAM(Rambus DRAM,高频动态随机存取存储器)
RDRAM是Rambus公司独立设计完成的一种内存模式,采用和传统的DRAM不同的串行传输方式,速度一般可以达到500~530 MB/s,是DRAM的10倍以上。但使用该内存后内存控制器需要作相当大的改变,而且价格相对比较高,因此一般应用于专业的图形加速适配卡或者电视游戏机的视频内存中。
●DDR SDRAM(Double Data Rate SDRAM,二倍速率同步动态随机存取存储器)
DDR SDRAM采用在时钟周期的上升沿和下降沿各传输一次数据的方式将SDRAM模块的数据传输率提高了一倍。DDR SDRAM还采用了DLL(Delay Locked Loop,延时锁定回路)提供一个数据滤波信号来精确地定位数据并同步来自不同存储模块的数据。DDR SDRAM采用184脚连接,2.5 V工作电压。
●DDR Ⅱ(Double Data Rate Ⅱ SDRAM,第二代同步双倍速率动态随机存取存储器)
与DDR DRAM相比,DDR Ⅱ DRAM最主要的改进是在内存模块速度相同的情况下,可以提供相当于DDR内存两倍的带宽。这主要是通过在每个设备上高效率使用两个DRAM核心来实现的。DDR Ⅱ SDRAM采用240脚连接。DDR Ⅱ DRAM(有时被简写成DDR2)是目前市场上的主流DRAM,而进一步提升带宽的DDR3、DDR4等新的SDRAM也正在被开发和使用。
随着微电子技术的不断进步,目前具有更大数据带宽的DDR Ⅲ正在逐渐取代DDR Ⅱ,成为微型计算机主存储器技术的主流,包括Intel Core i7在内的微处理器都已经内嵌支持DDR Ⅲ的内存控制器,为DDR Ⅲ的普及扫清障碍。
3.ROM芯片的访问
可编程ROM的典型产品有三个系列,27系列的EPROM、28系列的EEPROM和29系列的Flash Memory,虽然这几种芯片的原理和实现方式有所不同,但是它们的访问方式和外部逻辑特性基本相同。以27系列为例,27系列芯片包括各种不同容量的器件,从1 K×8的2708、2 K×8的2716到64 K×8的27512和128 K×8的271024等。其中的1 K、2 K表示的是芯片的容量,而×8表示的是数据线的位数是8位。
以16 K×8的27128为例,其容量为128 Kbit,数据线为8位,所以其容量是128 Kbit/8=16 KB,这就需要14位地址线以实现对这16 KB的寻址。所以,27128提供如下这些引线。(www.xing528.com)
●A13~A0:14位地址信号,输入。
●O7~O0:8位数据信号,三态输出。
●:片选信号,输入。
●:输出允许信号,输入。
●:编程信号,典型信号是宽度为100 μs的负脉冲。
●Vcc、Vpp、GND:分别为工作电压、编程电压、信号地。
ROM芯片的逻辑非常简单,当片选信号为低电平时,芯片被选中,并将A13~A0这14位地址信号对应的8位数据读出,当输出允许信号OE同时为低电平时,读出的8位数据被送到O7~O0数据输出端。当CE为高电平(即芯片未被选中)或为高电平(即输出不允许)时,O7~O0数据输出端将处于高阻态。27128可以采用图5-1所示方式与典型的8位微处理器相连接。
从图5-1中可以看出,片选信号可以由高位地址和信号经过译码器译码生成,这样可以通过片选信号的连接来选择27128 EPROM的地址区间。输出允许信号连接到处理器的信号,以保证只有在读操作时EPROM才将数据输出到数据总线上。
将类似27128这样的8位EPROM连接到8位微机系统是一件比较简单的事情,但是如果要把27128连接到8086这样的16位处理器上,并形成一段16位的ROM存储空间,就比较复杂了。其中的主要问题在于如何对高8位和低8位两片27128分别生成其片选信号,以保证正确的高/低字节访问。好在8086处理器提供了BHE信号,通过对信号和A0地址线的综合运用,两片27128可以连接到8086处理器,形成一段16位的ROM存储空间,如图5-2所示。
从图5-2中可以看出,使用27128这样的8位存储芯片组成16位存储体的关键在三点,一是偶地址存储芯片和奇地址存储芯片的数据输出线O7~0分别接到数据总线的D7~0和D15~8;二是将两片存储芯片的地址A13~0连接到地址总线的A14~1上,以适应16位处理器的寻址;三是A0和信号分别参加偶地址存储芯片和奇地址存储芯片的片选信号的产生,以配合8086处理器对存储器的选择和驱动,实现16位ROM数据的访问。
图5-1 27128与8位微处理器相连接
图5-2 27128与16位微处理器连接
4.RAM芯片的访问
从原理上区分,RAM芯片可以被分为SRAM和DRAM两大类,这两大类芯片不仅仅在实现原理上不同,其外部逻辑特性也表现出不同的特性,使得SRAM和DRAM芯片与处理器的连接方式也大不相同。
SRAM芯片的典型产品主要有低速器件的62系列、高速器件的63系列和同步SRAM的67系列,不同系列的产品除了在速度上有所不同之外,外部逻辑特性基本是相同的。以32 KB的62256SRAM存储芯片为例,该芯片的外部逻辑特性与ROM芯片非常接近。其引脚如下:
●A14~A0:15位地址信号,输入。
●D7~D0:8位数据信号,双向。
●:片选信号,输入。
●:输出允许信号,输入。
●:写入信号,输入。
●Vcc、GND:分别为工作电压、信号地。
从芯片引脚可以看出,62256芯片和27128芯片的信号引脚基本上是相同的,最大的不同在于62256芯片的输入信号WE。62256芯片采用“非写即读”的控制方式,用片选信号CS、输出允许信号和写入信号WE结合控制对存储器的读写操作。信号负责控制芯片是否被选定,只有CS信号有效(即为低电平)时芯片才会执行读写操作。此时信号负责确定芯片操作的内容,如果信号有效,芯片执行写操作,否则芯片执行读操作。读操作时的数据是否被输出到D7~D0数据线上则由OE信号是否有效来控制。也就是说,当有效时芯片执行写操作,而WE无效同时OE有效时芯片执行读操作并将读出的数据输出到数据线上。这也就决定了62256 SRAM芯片与处理器的连接方式如图5-3所示。
图5-3 62256与16位微处理器连接
和前面用两片27128组成16位ROM系统相比较,用两个62256组成16位SRAM系统的连接如出一辙,不同之处在于两个SRAM芯片的引脚要和W信号相连,以保证正确的写操作。
和SRAM相比,DRAM芯片的集成度更高、功耗更低、价格更便宜,因而其使用更加广泛。由于DRAM芯片的容量一般比较大,其寻址所需要的地址位数也比较多,一般在十几位到二十几位甚至更多。比如Intel 51C256就是一种256 K×1的高性能、低功耗的CMOS DRAM芯片,在DRAM中已经是一种容量很小的芯片了,其地址位数也有18位之多。同时DRAM芯片内部一般采用多存储单元矩阵+多路选择器的实现方式,所以DRAM芯片一般将地址分成行地址和列地址两部分,地址信号的高一半被称为行地址,一般用于在DRAM芯片存储矩阵的行方向上进行寻址。地址信号的低一半被称为列地址,一般用于在DRAM芯片存储矩阵输出端的多路选择器上选择给定的列数据。同时DRAM芯片使用多组多路器使存储矩阵的行地址和列地址信号共用同一组地址引脚,以减少引脚数目。
在DRAM芯片中,由于行、列地址采用同一组引脚传输,减少了引脚的数目,也使得行、列地址都必须经过锁存之后才能为存储体所用,这就要求芯片内必须集成一个行地址锁存器和一个列地址锁存器,并要求外界提供行地址锁存信号和列地址锁存信号以控制行、列锁存器的锁存功能。同时R和信号也可以起到DRAM芯片片选信号的作用,DRAM芯片不再需要单独的片选信号CS。所以,DRAM芯片的引脚一般包括:
●An~A0:n位地址信号,输入,行、列地址复用。
●DIN、DOUT:数据信号,双向。也可以只有一个数据引脚D。
●、:行地址锁存信号和列地址锁存信号,输入。
●:写入信号,输入。
●Vcc、GND:分别为工作电压、信号地。
这里n位地址信号经行、列地址的复用后得到2n位的实际地址。有些DRAM芯片采用×8的结构,其数据信号就需要至少8个引脚。由于地址信号的复用特性,DRAM芯片的地址必须分成行地址和列地址两部分两次输入,其控制相比ROM芯片和SRAM芯片要复杂很多。同时,由于DRAM本身原理上的限制,DRAM芯片中存储的内容必须进行周期性的刷新,这种刷新也必须从芯片外通过和行地址来控制,更增加了DRAM芯片控制的复杂程度。为了方便DRAM的使用,这些功能通常被集成在一片叫做“存储控制器”的芯片上(如Intel 82C08),或者更进一步被集成在芯片组的北桥芯片甚至某些处理器芯片(如嵌入式处理器芯片或类似Intel Core i7和AMD Opteron这样的新型微处理器)里面。
在早期的微型计算机中,存储芯片被直接焊接到主板上。这种方式对于ROM和用作板级Cache的SRAM比较合适,但是对于用作主存储器的DRAM就存在扩展困难、集成度低等不利因素。随着微型计算机技术的发展,这种方式逐渐被淘汰,代之以将多片DRAM芯片安置在一个被称作“内存条”的印制电路板上,再通过计算机主板上的标准接插件与总线相连的连接方式。内存条从产生到现在,先后出现过30线、72线SIMM(单列直插式存储模块),168线、184线、240线DIMM(双列直插式存储模块)等几种不同的标准。不同标准的内存条在机械规格、管脚顺序、电气特性等方面相差甚远,是不能互换使用的。当前X86系列微机中使用最多的是240/200线双列直插(DIMM)的DDR2 DRAM内存条和240/208线双列直插的DDR3 DRAM内存条,少量微机中还使用184线DIMM的DDR DRAM内存条。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。