2

我使用这个 ALU 框图作为学习材料:http ://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html

我对电子产品不熟悉。我目前认为需要一个时钟周期来将数据从寄存器或锁存器移动到另一个寄存器或锁存器,最终通过逻辑门网。

所以这是我对和 ADD 发生的事情的理解:

  • 周期 1:将寄存器移动到内部锁存器
  • 周期 2:将低半字节内部锁存器移动到内部结果锁存器(通过 ALU)
  • 周期 3,并行:
    • 将高半字节内部锁存器移动到目标寄存器(通过 ALU)
    • 将内部结果锁存器移动到寄存器

我认为操作周期 3 是并行完成的,因为有两个 4 位总线(用于高半字节和低半字节)并且寄存器总线似乎是 8 位。

4

1 回答 1

2

根据z80 数据表

PC 在 M1 周期开始时被放置在地址总线上。半个时钟周期后,MREQ 信号变为有效。此时存储器的地址已经有时间稳定下来,因此 MREQ 的下降沿可以直接用作动态存储器的芯片使能时钟。RD 线也变为活动状态,以指示应在 CPU 数据总线上启用内存读取数据。CPU 利用状态 T3 时钟的上升沿从数据总线上的存储器中采样数据,CPU 使用同一沿来关闭 RD 和 MREQ 信号。因此,在 RD 信号变为无效之前,CPU 已经对数据进行了采样。获取周期的时钟状态 T3 和 T4 用于刷新动态存储器。

因此,它似乎主要是关于读取操作码的内存接口,而不是实际执行加法 - 解码和执行完全发生在时钟状态 T3 和 T4 内。鉴于 z80有一个 4 位 ALU,执行 8 位加法需要两次操作。这可能解释了使用两个周期。

于 2017-03-10T23:20:33.043 回答