在我的笔记中,我不断遇到两个术语,当我浏览有关 8085 处理器的笔记时,这两个术语令我感到困惑。
第一个是address data multiplexing
。这到底是什么意思?我理解多路复用的概念(将 n 个信号组合成一个),但是地址数据从哪里来呢?
其次,什么是bus buffering
?我的理解是,这是电路中电信号的放大,以便它们能够传输更长的距离。这是正确的吗?
答案1
我试图把我的计算机体系结构文本拿出来,但它却埋在后面的一个盒子里。
地址复用允许您使用处理器上更少的引脚,从而减少总线线路。因此,您无需使用一些总线线路来传输地址,再使用一些总线线路来传输数据,而是将地址放在数据线路上,然后读取地址,再将数据放在相同的线路上,然后读取数据并将其存储在先前读取的地址中。对于 8085,它允许设计增加一个引脚,但减少 8 个引脚,从而净增加(损失?)7 个引脚(以增加逻辑/编程复杂性为代价,降低了物理/制造复杂性)。
计算机中有不同的设备以不同的速度运行。因此,通常有多个设备同时竞争总线。为了允许事务并行发生而不是“拿票”,系统需要能够在数据可用但总线繁忙时保留数据,直到总线空闲。它将这些数据保存在缓冲区中。
我希望您已经理解得足够清楚了。如果还不够清楚,您可以随时询问是否有任何不明白的地方。
答案2
这些术语也可以用于主板,例如,我的大学使用 8085 处理器和所谓的 TomAL 主板。
使用 TomAL,数据总线上的信息是时分复用的 - 同一总线线路在任意给定时间都承载 8 个数据位或低 8 个地址位 (A7-A0)。外围设备使用 CPU 生成的信号来判断它是数据还是地址。
TomAL 板使用三个芯片进行总线缓冲 - 有两个 8 位 DFF(有效寄存器),一个用于保存地址的高 8 位(A15-A8),另一个用于保存地址/数据总线的数据。第三个,即所谓的三态,也保存地址/数据总线的数据,但它保存的数据只有在地址的低 8 位时才有效。否则,该芯片会输出相当于“无关”输出的信号。
总线缓冲只是“保存”总线上的任何时间点的数据。“缓冲区”将保存最后写入的值,直到该“缓冲区”的写入线设置为 1,此时缓冲区的内容将设置为输入到其中的任何数据。当写入线重新设置为 0 时,“缓冲区”现在将保存新值(即输出新值),无论输入什么数据,直到写入线再次切换为 1。
希望这可以帮助。
答案3
我理解的地址复用的方式:
由于内存矩阵寻址的行和列引脚对于 n 位字是相同的。您可以创建一个时序方案(例如,R/W 引脚可用作时钟信号),其中在时钟的某些间隔内访问行引脚,而将列行拆分为另一行。这样就可以使用更少的引脚,同时仍传递 n 位大小的字来访问内存矩阵中的任何单元。