为什么在Z80上添加4个循环?

为什么在Z80上添加4个循环?,z80,cpu-cycles,Z80,Cpu Cycles,我将此ALU方框图用作学习材料: 我对电子学不熟悉。我目前认为,需要一个时钟周期来将数据从寄存器或锁存器移动到另一个寄存器或锁存器,最终通过逻辑门网络 以下是我对发生的事情的理解,并补充: 循环1:将寄存器移动到内部闭锁 循环2:将低位半字节内部闩锁移动到内部结果闩锁(通过ALU) 第3次循环,平行进行: 将高位半字节内部闩锁移动到目标寄存器(通过ALU) 将内部结果锁存器移动到寄存器 我认为操作周期3是并行完成的,因为有两个4位总线(用于高位和低位半字节),寄存器总线似乎是8位。Per

我将此ALU方框图用作学习材料:

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

以下是我对发生的事情的理解,并补充:

  • 循环1:将寄存器移动到内部闭锁
  • 循环2:将低位半字节内部闩锁移动到内部结果闩锁(通过ALU)
  • 第3次循环,平行进行:
    • 将高位半字节内部闩锁移动到目标寄存器(通过ALU)
    • 将内部结果锁存器移动到寄存器
我认为操作周期3是并行完成的,因为有两个4位总线(用于高位和低位半字节),寄存器总线似乎是8位。

Per:

在M1周期开始时,PC被放置在地址总线上。 半个时钟周期后,MREQ信号变为激活状态。此时 内存的地址有时间稳定,以便 MREQ的下降沿可直接用作芯片使能时钟 动态记忆。RD行也变为活动状态,表示 应在CPU数据总线上启用内存读取数据。中央处理器 使用上升沿从数据总线上的存储器中采样数据 状态T3的时钟,CPU使用该相同的边缘来翻转 关闭RD和MREQ信号。因此,已经对数据进行了采样 在RD信号变为非活动状态之前由CPU执行。时钟状态T3和T3 取数周期的T4用于刷新动态存储器。CPU使用 这一次需要解码并执行提取的指令,以便 此时可以执行其他操作


因此,它似乎主要是关于内存接口来读取操作码,而不是实际执行加法-解码和执行完全发生在时钟状态T3和T4内。考虑到z80,执行8位加法需要两次操作。这很可能解释了使用两个循环的原因。

哦,天哪!我认为我的第一个周期实际上是两个周期。由于寄存器总线是8位的,它不能同时加载2个寄存器!是吗?T3用来解码指令,T4用来执行指令。因此,加法在一个时钟周期内进行。不,Z-80有一个8位ALU和一个16位加法器。上面的4位alu链路是死链路。@PeterCamilleri不,Z80有一个4位alu。链接已修复。如果你不相信这个链接,请参阅的第10页-这是直接从设计师口中说出来的。