只读存储器的电路结构及工作原理
只读存储器的电路结构
只读存储器ROM(read-only memory)的电路结构包括存储矩阵、地址译码器和输出缓冲器三个组成部分。
其中存储矩阵由许多存储单元排列而成。存储单元可以用二极管、三极管或MOS管构成。每个单元能存放1位二值代码(0或1).每一个或一组存储单元有一个对应的地址代码。
地址译码器的作用是将输入的地址代码译成相应的控制信号,利用这个控制信号选定存储矩阵中的某个存储单元,并把其中的数据送到输出缓冲器。而输出缓冲器采用三态控制,意识能提高存储器的带负载能力,二是便于与系统的总线连接。ROM的电路结构框图如图所示。
其中,
A
0
∼
A
n
−
1
A_0\sim A_{n-1}
A0∼An−1为n条地址输入线,能产生
2
n
2^n
2n 种译码输出,范围为
W
0
∼
W
2
n
−
1
W_0\sim W_{2^n-1}
W0∼W2n−1 ,每个字的输出为m位,输出是
D
0
∼
D
m
−
1
D_0\sim D_{m-1}
D0∼Dm−1共m位数据。
通常称 A 0 ∼ A n − 1 A_0\sim A_{n-1} A0∼An−1为地址线,每种译码输出叫作一个“字”,称 W 0 ∼ W 2 n − 1 W_0\sim W_{2^n-1} W0∼W2n−1为字线,每个字的输出为m位,把 D 0 ∼ D m − 1 D_0\sim D_{m-1} D0∼Dm−1称为位线(或称为数据线)。
只读存储器的工作原理
在读取数据时,只要输入指定的地址码并令 E N ‾ = 0 \overline{EN} = 0 EN=0,则地址指定的存储单元所存储的数据便会出现。
例如,当
A
1
A
0
=
01
A_1A_0 = 01
A1A0=01时,
W
1
=
1
W_1 = 1
W1=1,而其他字线均为低电平。由于有
D
3
′
D'_3
D3′、
D
1
′
D'_1
D1′、
D
0
′
D'_0
D0′这3根线与
W
1
W_1
W1间接有二极管,所以这3个二极管导通后使
D
3
′
D'_3
D3′、
D
1
′
D'_1
D1′、
D
0
′
D'_0
D0′均为高电平,而
D
2
′
D'_2
D2′为低电平。如果这时
E
N
‾
=
0
\overline{EN} = 0
EN=0,即可在数据输出端得到
D
3
D
2
D
1
D
0
=
1011
D_3D_2D_1D_0 = 1011
D3D2D1D0=1011。根据二极管存储矩阵的排列形式,可以列出地址
A
1
A
0
A_1A_0
A1A0与输出数据
D
3
D
2
D
1
D
0
D_3D_2D_1D_0
D3D2D1D0的对应关系,如下图。
以上分析可以看出,字线和位线的每个交叉点都是一个存储单元。交点处接有二极管时相当于存1,没有接二极管时相当于存0。交叉点的数目也就是存储单元数。习惯上用存储单元的数目表示存储器的容量,并写成“字数
×
\times
×位数 ”的形式。因此,图8-2中ROM的存储容量应表示成“
4
×
4
4\times4
4×4位”。
不同的ROM
Mask ROM
programmed in manufacture
PROM (Programmable ROM)
OTP (one time programmable)
从工厂出来,全部都是1。在programme的时候,将储存0的单元,由1烧(burn)成0。
EPROM (Erasable ROM)
可以多次地programme。
rewritable DVD和普通DVD的区别。
-
普通DVD,一旦刻好,就不可能再被修改。
-
rewritable DVD,就是可以被重写的。
EEPROM (Electrically Erasable PROM)
单片机运行时的数据都存在RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM或FLASHROM等存储器来实现。
ROM最初不能编程,出场什么内容就永远什么内容,不灵活。后来出现了PROM,可以自己写入一次,要是写错了,只能换一片,随着不断改进,终于出现了可以多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下,你往单片机上下了一个程序后发现有个地方需要加一句话,为此你要把单片机放紫外线下照半小时,然后才能再下一次,这么折腾一天也改不了几次。历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意地修改ROM中地内容了。