2.4.2 地址和地址译码器

2.4.2 地址和地址译码器

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

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

图2.13 译码器

 

表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。而片外地址除与芯片地址线的数量有关,还与芯片连接到系统地址总线的方法有关。

  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值