存储器(四)

来源:互联网 发布:开票软件下载步骤 编辑:程序博客网 时间:2024/06/06 15:39

Abstract:文章内容来自于哈工大计算机组成原理刘宏伟。 这篇文章讲的是:(一)只读存储器ROM。 (二)CPU与存储器的连接

-------------------------------------------------

首先来谈谈只读存储器ROM:

ROM是用来存储系统程序或者系统配置信息的。早期的ROM厂家生产的时候就已经写好了, 不能更改; 但是如果你自己想配置一台就非常不方便, 由于这种需求,

ROM开始向可擦除方向发展。 下面主要介绍五种ROM:

(1)掩模ROM(mROM)

早期由厂家把程序写到mROM中, 不可擦除, 只能读不能写。 存储0和1的方式为:行选择线交叉处有MOS管为“1”; 没有为“0”。

(2)一次线编程(PROM)

利用熔丝的烧断来存储“0”和“1”; 熔丝断为“0”; 通为“1”;

(3)多次编程(EPROM)

可以利用紫外线来擦除。

(4)EEPROM

电可擦写; 局部擦写; 全部擦写。

(5)Flash Memory(闪存)

关于闪存, EPROM, EEPROM可以看看Flash Memory。


下面是CPU与存储器的连接

包括两个问题:

(1)存储器容量扩展。

(2)存储器与CPU的连接。

先说存储器容量扩展:这部分包括三个方面:(1)位扩展; (2)字扩展; (3)位、字扩展;

a、位扩展:

比如用两片 1k * 4位 的存储器扩展成 一个 1k * 8位的存储器

1k * 8位的存储器需要地址线 10 条(2^10 = 1k); 8条数据线。 那么扩展呢? 用其中一块 1k * 4位的存储器来存储低四位, 还有一块存储高四位。 分别接在8条数据线上面就 Ok 了。但是要注意一点的是, 扩展后的存储器要可以当成一个存储器来使用, 也就是说 和一个 1k * 8位 的存储器没区别, 那这个怎么 实现呢? 将它们的片选信号同时选 中就好了。 

b、字扩展

比如用 2片 1k * 8位的芯片扩展成 2k * 8位的存储器

2k * 8位的存储器需要地址线 11 根, 数据线 8 根。 我们的想法是:一块芯片存储 1k, 两块加起来就是 2k 了。1k的存储器只要 10 根地址线。 可以将两块芯片的8根都接在一起数据线, 10 根地址线也接在一起, 第十一根地址线当片选信号。 如果片选信号为 “0”, 那么就选择第一块芯片的存储空间。反之则为第二块的。这样就是说:第一块芯片地址范围是:00000000000  ~ 01111111111; 第二块芯片地址范围就是:10000000000 ~ 11111111111。

c、位、字扩展

比如用8 片 1k * 4 位的芯片扩展成 4k * 8位的。

思路, 先扩展位数, 也就是两个芯片作为一组(保证片选信号相同)。 一共四组, 存储空间就是: 4k * 8 位的。 1k的地址线是:10根, 4k 是12 根。可以利用多余的两根当片选信号, 一共有四种组合方式, 刚好对应四组 储空间。

存储器与CPU之间的连接:

(1)地址线的连接

CPU给出地址信号, 找到对应的存储单元是哪块芯片或者那几块芯片上面的。 一般地址线高位为 位选信号, 低位为实际地址。

(2)数据线的连接

若CPU的数据线大于存储器数据线, 那么需要对存储器的数据线进行扩展, 使其满足CPU的要求。

(3)读写控制线

控制CPU是读出还是写入。

(4)片选线的连接

判断地址是哪块芯片或者哪几块芯片上的。

注意两点:

a、片选线必须指明CPU是访问存储器而非 I/O 设备。 MREQ

b、保证每块地址访问都在该芯片的地址范围之内。

(5)合理的选择芯片

a、RAM和ROM合理

b、RAM和ROM技术性能参数。

(6)其它时序、负载。