地址和地址译码器

地址和地址译码器

CPU输出一个存储器地址到地址总线上,这个地址怎样才能选中一个存储单元,这就是地址译码器要解决的问题。

地址译码器是这样一种器件:输入为数字量(即地址),根据输入的数字量在多个输出端中选一个有效。打个比方:地址译码器就像电话系统,打电话时输入电话号码就好比地址,根据输入的电话号码在若干门电话中只有一门电话被选中。如下图2.13。是一个3线---8线译码器,输入信号为3位数字量,3位数字量的变化范围是000B~111B。(末尾的B表示二进制数),输出为8个输出端。根据输入量在8个输出端中只能一个有效。该译码器的输入输出关系见下表2.2

 

                    译码器

 

表2.2 3线---8线译码器真值表

输   入 

有效输出端

C

B

A

0

0

0

Y0

0

0

1

Y1

0

1

0

Y2

0

1

1

Y3

1

0

0

Y4

1

0

1

Y5

1

1

0

Y6

1

1

1

Y7

由于存储器单元数量很多,比如在8086系统中,地址线数为20根,存储器单元数达到1M,当地址译码器输入线数为20根,输出线数便达到1048576根,采用一级译码难度很大。实际组成存储器系统时,通常采用多级译码的方法实现,把若干存储单元和芯片内部译码器集成在存储器芯片中,然后用多片存储器芯片与译码器组成存储器系统。

如右图2.14所示的存储器芯片内部有64K个8位的存储单元,即存储容量为64K×8位,外部引腿有16根地址线,8根数据线,读/写控制线,片选线等。芯片用16位地址线通过内部译码器选择存储单元。用16片这种存储器芯片可以组成1MB的存储器系统。

每一个存储器芯片内部的存储单元都有2个地址,一个是芯片内部地址,一个是系统地址。内部地址是与外部连线无关的,如右图2.14的芯片,每一个芯片内部地址范围都是从0000H~FFFFH。而系统地址取决于外部连线。

图2.14 64K×8位的存储器芯片

如下图2.15所示,系统地址线接地址译码器的片选,接到地址译码器的3个输入端。地址译码器的输出端接储器芯片IC1的片选。

图2.15 芯片的系统地址范围

我们可以计算该芯片的系统地址范围如下:系统地址线=0选中地址译码器,而为000选中端有效从而选中IC1,地址线用于选择IC1内部单元。因此IC1占用的最低的系统地址为00000H,如下图2.16所示,而占用的最高址为0FFFFH,如下图2.17所示:

图2.16 IC1的最低地址

图2.17 IC1的最高地址

如果芯片IC1的片选输入端接到地址译码器的输出端,三根地址线为001选中端有效,则IC1占用的系统地址为10000H~1FFFFH。

在上述计算中,要区分片内地址和片外地址。比如某种芯片有10根地址线,则该芯片存储单元的片内地址是从0~-1=3FFH。而片外地址除与芯片地址线的数量有关,还与芯片连接到系统地址总线的方法有关。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章