只读存储器
只读存储器(ROM,read only memory)就是只能读出事先所存数据的固态半导体存储器,其所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。
只读存储器,大部分只读存储器用金属—氧化物—半导体(MOS)场效应管制成,是一种只能读出事先所存数据的固态半导体存储器。只读存储器所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。只读存储器所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。 为便于使用和大批量生产,进一步发展了可编程只读存储器(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM)。EPROM需用紫外光长时间照射才能擦除,使用很不方便。20世纪80年代制出的EEPROM,克服了EPROM的不足,但集成度不高,价格较贵。于是又开发出一种新型的存储单元结构同EPROM相似的快闪存储器,其集成度高、功耗低、体积小,又能在线快速擦除,因而获得飞速发展,并逐渐取代硬盘和软盘成为主要的大容量存储媒体。
只读存储器的结构
只读存储器主要由地址译码器、存储矩阵和输出缓冲器三部分组成,如图:
ROM结构图
存储矩阵是存放信息的主体,它由许多存储单元排列组成。每个存储单元存放一位二值代码(0 或 1),若干个存储单元组成一个“字”(也称一个信息单元)。 地址译码器有n条地址输入线A0~An-1,2n条译码输出线W0~W2n-1,每一条译码输出线Wi称为“字线”,它与存储矩阵中的一个“字”相对应。因此, 每当给定一组输入地址时,译码器只有一条输出字线Wi被选中,该字线可以在存储矩阵中找到一个相应的“字”,并将字中的m位信息Dm-1~D0送至输出缓冲器。读出Dm-1~D0的每条数据输出线Di也称为“位线”,每个字中信息的位数称为“字长”。 ROM的存储单元可以用二极管构成,也可以用双极型三极管或MOS管构成。存储器的容量用存储单元的数目来表示,写成“字数乘位数”的形式。对于上图的存储矩阵有2n个字, 每个字的字长为m,因此整个存储器的存储容量为2n×m位。 存储容量也习惯用K(1 K=1024)为单位来表示,例如1 K×4、2 K×8和64 K×1的存储器,其容量分别是1024×4 位、2048×8 位 和65536×1 位。 地址译码器的作用是将输入的地址代码译成相应的控制信号,利用这个控制信号从存储矩阵中把指定的单元选出,并把其中的数据送到输出缓冲器。 输出缓冲器的作用有两个,一是能提高存储器的带负载能力,二是实现对输出状态的三态控制,以便与系统的总线联接。
ROM工作原理
地址译码器根据输入地址选择某条输出(称字线),由它再去驱动该字线的各位线,以便读出字线上各存储单元所储存的代码。下图a是以熔丝为存储元件的8×4ROM(通常以“字线×位线”来表示存储器的存储容量)的原理图。它以保留熔丝表示存入的是“0”,以熔断熔丝表示存入的是“1”。例如,存入字1的是“1011”。在ROM中,一般都设置片选端 (也有写作 的)。当 =0时ROM工作;当 =1,ROM被禁止,其输出为“1”电平或呈高阻态。 用来扩展ROM的字数。
ROM的地址译码器是与门的组合,它的输出是全部地址输入的最小项。可以把译码器表示成图b所示的与阵列,图中与阵列水平线和垂直线交叉处标的“点”表示有“与”的联系。存储单元体实际上是或门的组合,ROM的输出数即或门的个数。译码器的每个最小项都可能是或门的输入,但是,某个最小项能否成为或门的输入取决于存储信息,因此存储单元体可看成是一个或阵列。由上分析,可以从另一角度来看ROM的结构:它由两个阵列组成——“与”门阵列和“或”门阵列,其中“或”的内容是由用户设置的,因而它是可编程的,而与阵列是用来形成全部最小项的,因而是不可编程的。
ROM的形式也有多种。一种是熔丝型ROM,ROM制造厂提供的产品保留了或阵列的全部熔丝,由使用者写入信息,随后存储内容就不能更改了,这类ROM称为可编程序只读存储器,简称PROM。另一类ROM是信息写入后,可用紫外线照射或用电方法擦除,然后再允许写入新的内容,称前一种ROM为可改写ROM,简称EPROM,称后者为电可改写ROM,简称EEPROM。还有一类ROM的存储信息是在制造过程中形成的,集成电路制造厂根据用户事先提供的存储内容来设计光刻掩模板,用制造或不制造存储元件的方法来存储信息,这类ROM称为“掩模型只读存储器”,简称MROM。
只读存储器分类
一般称向ROM写入数据的过程为对ROM进行编程,根据编程方法的不同,ROM通常可以分为几类。
1.ROM
只读内存(Read-Only Memory)是一种只能读取资料的内存。在制造过程中,将资料以一特制光罩(mask)烧录于线路中,其资料内容在写入后就不能更改,所以有时又称为“光罩式只读内存”(mask ROM)。此内存的制造成本较低,常用于电脑中的开机启动。
2.PROM
PROM的含义是可编程只读存储器,一般可编程一次。PROM存储器出厂时各个存储单元皆为1,或皆为0.用户使用时,再使用编程的方法使PROM存储所需要的数据。
RPOM需要用电和光照的方法来编写与存放的程序和信息。但仅仅只能编写一次,第一次写入的信息就被永久性地保存起来。
可编程程序只读内存(Programmable ROM,PROM)之内部有行列式的镕丝,视需要利用电流将其烧断,写入所需的资料,但仅能写录一次。
3.EPROM
EPROM是可擦除可编程只读存储器,可多次编程。这是一种便于用户根据需要来写入,并能把已写入的内容擦去后再改写,即是一种多次改写的ROM。由于能够改写,因此能对写入的信息进行校正,在修改错误后再重新写入。
擦除远存储内容的方法可以采用以下方法:电的方法(称电可改写ROM)或用紫外线照射的方法(称光可改写ROM)。
可抹除可编程只读内存(Erasable Programmable Read Only Memory,EPROM)可利用高电压将资料编程写入,抹除时将线路曝光于紫外线下,则资料可被清空,并且可重复使用。通常在封装外壳上会预留一个石英透明窗以方便曝光。
4.OTPROM
一次编程只读内存(One Time Programmable Read Only Memory,OPTROM)之写入原理同EPROM,但是为了节省成本,编程写入之后就不再抹除,因此不设置透明窗。
5.EEPROM
电子式可抹除可编程只读内存(Electrically Erasable Programmable Read Only Memory,EEPROM)之运作原理类似EPROM,但是抹除的方式是使用高电场来完成,因此不需要透明窗。
6.快闪存储器
快闪存储器(Flash memory)的每一个记忆胞都具有一个“控制闸”与“浮动闸”,利用高电场改变浮动闸的临限电压即可进行编程动作。
7.快闪存储器
指从游戏机主文件存储器里或者正版游戏卡带提取的游戏主文件,可以在各类模拟器上使用。例如街机模拟器,GBA模拟器的ROM,正是此意。
只读存储器的应用
在数字系统中,只读存储器的应用十分广泛,如用于实现组合逻辑函数、进行波形变换、构成字符发生器以及存储计算机的数据和程序等。
1.用ROM实现组合逻辑函数
从上面的分析可知,ROM中的地址译码器实现了对输入变量的与运算;存储矩阵实现了有关字线变量的或运算。因此,ROM实际上是由与阵列和或阵列构成的组合逻辑电路。从原则上讲,利用ROM可以实现任何组合逻辑函数。 用ROM来实现组合逻辑函数的本质就是将待实现函数的真值表存入ROM中,即将输入变量的值对应存入ROM的地址译码器(与阵列)中,将输出函数的值对应存入ROM的存储单元(或阵列)中。电路工作时,根据输入信号(即ROM的地址信号)从ROM中将所存函数值再读出来,这种方法称为查表法。
2.用ROM作函数运算表电路
数学运算是数控装置和数字系统中需要经常进行的运算。如果事先把要用到的基本函数变量在一定范围内的取值和相应的函数值列成表格写入ROM中,则在需要时只要给出规定的地址就可非常快速地得到相应的函数值。这种只读存储器实际上已经成为函数运算表电路。函数运算表电路的实现方法与用ROM实现组合逻辑函数的方法相同。
3.用ROM作字符发生器电路
字符发生器也是利用ROM实现代码转换的一种组合逻辑电路,常用于各种显示设备、打印机及其他一些数字装置中。被显示的字符以像点的形式存储在ROM中,每个字符由7×5(或7×9)点阵组成。数据经输出缓冲器接至光栅矩阵。当地址码A2A1A0选中某行时,该行的内容即以光点的形式反映在光栅矩阵上。单元内容为1,相应于光栅上就出现亮点。若地址码周期性地循环变化,则各行的内容就会相继地反映在光栅上,从而显示出所存储的字符。