为什么 8051 中的程序地址寄存器连接到 8 位总线?

问题描述

8051 Architecture Block Diagram

在维基百科的这张图中,ROM和程序地址寄存器都连接到8位总线,但我认为在8051中,内部ROM使用16位地址。 那么为什么程序地址寄存器要连接到 8 位总线上呢?

解决方法

由于我们不是设计这个架构的人,我们只能猜测或思考原因。如果您真的想知道为什么,您需要找到做出决定的人。

8051复用低地址字节和P0上的数据,地址高字节可以通过P2。因为两个字节可以在不同的时间传输,所以 8 位总线就足够了。

这一设计决策可以减少晶体管和电线方面的硅需求。那时硅面积很贵。

这个问题也可能有历史。 8051 系列沿用了地址位较少的 MCS48(8021、8022、8048 等)。

想想这个控制器的设计时间和目标市场。外部 RAM 或内存映射外设可能只需要 8 位地址,因为这已经足够了,或者使用更多的成本太高。

另一个原因可能是图表过于简化,另外可能是基于另一个。程序地址寄存器可能使用两条 8 位总线,每条总线连接到一个端口驱动程序块。而一些“聪明”的人只是把它们放在一起。

,

地址总线不仅连接在那里,前 8 位对于微控制器端口 0 中的地址和数据总线是通用的(这就是为什么您在端口 0 的引脚图中看到 AD0,A - 地址,D -数据。但在端口 2 中,您会发现 A0,只有地址),基本上是减少硬件连接数量的优化,其余 8 位,即地址总线的最高有效位在微控制器的端口 2 中,因此总共 8 + 8 = 16 位。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...