(非常に遅く原始的な) プロセッサのシミュレーションを書いています。
例: クロック速度が一定の 1 Hz であるとしましょう。これは、1秒ごとに1つの命令を処理できる/処理することを意味すると思います。一部の命令は、他の命令よりも時間がかかります。1 + 0 の追加は、1 + 7 よりも時間がかかりません (後者は、ゼロ以外の時間がかかるキャリー ビットのリップルを引き起こします)。
他のすべての指示が終了した後でのみ、指示を実行できるようにする必要があります。
する必要がありますか:
- 最長の命令にかかる時間とクロック速度をそれよりも大きく設定しますか?
- 前の命令が完了するまで、将来の命令の実行を許可しないステートフル ウォッチャーを作成する
- 問題を完全に誤解していますか?
#1では、次の開始前に命令の競合状態が不完全になる危険を冒しているようです。#2では、後で問題を引き起こす可能性のある予測不可能/可変のクロック速度を危険にさらしているようです。
どうすればこれを解決できますか? 実際のプロセッサがこの問題を処理する方法に何かヒントはありますか?