我正在编写一个(非常缓慢和原始的)处理器的模拟。
例如:假设时钟速度是恒定的 1 hz。我假设这意味着每秒可以/将处理 1 条指令。有些指令比其他指令需要更长的时间。添加 1 + 0 比 1 + 7 花费更少的时间。(后者会导致进位位的波动,这需要非零的时间量。)
只有在所有其他指令完成后,我才需要能够执行指令。
我需要:
- time 最长指令需要多长时间并将时钟速度设置为大于该时间?
- 创建一个有状态的观察者,在前一个指令完成之前不允许执行未来的指令
- 我完全误解了这个问题吗?
在#1中,似乎我仍然冒着在下一个开始之前指令不完整的竞争条件的风险。在 #2 中,似乎我冒着不可预测/可变时钟速度的风险,这可能会导致我以后出现问题。
我该如何解决这个问题?有没有关于真正的处理器如何处理这个问题的提示?