计算机一次可访问多少位地址,体系结构-为什么在16位计算机上使用20个地址空间可以访问1 MB而不是2 MB?...

试图理解这一点时,考虑总线非常重要.这可能是电气问题,而不是软件问题,但这是答案:

对于8086,当从ROM读取时,不使用最低有效地址线(A0),从而立即将地址线的数量减少到19.

如果CPU需要从奇数地址读取16位,例如0x3和0x4的字节,它将实际上执行两次16位读取:一次从0x2读取,一次从0x4读取,并丢弃字节0x2和0x5.

对于8位ROM读取,总线上的读取仍然是16位,但是不需要的字节将被丢弃.

但是对于RAM,有时只需要写入一个字节,这就变得更加复杂了.处理器上还有一个额外的输出信号,称为BHE#(总线高电平使能). A0和BHE#的组合用于确定写入是8位还是16位宽,以及写入的地址是奇数还是偶数.

了解这两个信号是回答您的问题的关键.尽可能简单地说明一下:

8位偶数访问:A0 OFF,BHE#OFF

8位奇数访问:A0 ON,BHE#ON

16位访问(必须为偶数):A0 OFF,BHE#ON

而且我们不能通过A0 ON和BHE#OFF来进行总线循环,因为对总线偶数字节的奇数访问是没有意义的.

这与您最初的理解有关:对于存储设备,您是完全正确的.一个1兆字节的16位内存芯片实际上只有19条地址线,对于该芯片,16位是一个字节,实际上,它们实际上没有A0地址输入.

…差不多. 16位可写存储设备有两个额外的信号(BHE#和BLE#),它们分别连接到CPU的BHE#和A0.这样,他们知道在进行8位访问时会忽略总线的一部分,从而使它们成为8/16位混合设备. ROM芯片没有这些信号.

对于未使用硬件的人来说,这是我们要讨论的一个相当复杂的领域,在性能方面以及在混合了8位和16位硬件的大型系统中,确实确实变得非常复杂.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值