【问题标题】:How is program counter unaffected by multiple clock cycles程序计数器如何不受多个时钟周期的影响
【发布时间】:2018-11-08 20:57:02
【问题描述】:

如果完成一条指令所需的时钟周期数超过 1,这是否意味着程序计数器在同一指令周期内递增一次以上。我有这个疑问,因为据我所知,寄存器会在每个时钟脉冲上更新。

这是否意味着如果系统等待内存 3 个时钟周期 pc 将是 pc +12?

【问题讨论】:

  • 在一个简单的非流水线微架构中,内部确实有一个用于程序计数器的物理寄存器(与现代 CPU 不同:Does Program Counter hold current address or the address of the next instruction?),您将有一个内部“启用”信号用于增加它的逻辑,这仅适用于指令开始或结束时的一个时钟脉冲,具体取决于设计。经常启动,这样至少可以流水线预取下一个 insn,就像在原始 8086 中一样。
  • 使能信号如何与指令周期同步。因为不同指令占用的时钟周期是不一样的。那么我们怎么知道我们的指令完成了,我们必须递增pc。
  • 通过任何机制确定哪个周期是指令的最后一个周期。
  • 好的,谢谢!!

标签: cpu-architecture


【解决方案1】:

示例处理器的每个指令周期包含 1 到 x 个机器周期。下载阶段包含的机器周期数与必须在一条指令下从操作存储器发送到处理器的字节数一样多。执行周期的持续时间取决于下载的订单类型。

【讨论】:

  • 我无法将此与程序计数器联系起来,请您详细说明一下。谢谢!
  • PC 是一个处理器寄存器,用于存储有关处理器序列当前在指令序列中的位置的信息。根据处理器型号,该寄存器存储当前执行的或更频繁的下一条指令的地址。它与时钟或机器周期无关 例如在 8080 中:CMC 有 4 个周期,但 PC 仅递增 1,因为 cmc 只执行“一个”任务 CY <- ~ CYMVI A,10 有 7- 10个周期,但PC递增2,因为有2个任务,首先解码mvi任务(下载阶段)和A
  • @Abishek0398 例如,这里是处理器 8080 命令的完整列表(但为波兰语)pl.scribd.com/document/392709021/AK-Rozkazy8080 第二列是 pc 如何增加,第五列是命令有多少时钟周期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
相关资源
最近更新 更多