为什么8051中的Program Address Register连接在8位总线上?

why is the Program Address Register in 8051 connected to a 8-bit bus?

在维基百科上找到的这张图中,ROM和Program Address Register都连接到8位总线,但我认为在8051中,Internal Rom使用16位地址。 那么为什么Program Address Register连接到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 位。