実行順序 (インオーダー & アウトオブオーダー) とマルチタスクに関係はありますか? 私の理解では、タスクを順番に実行するプロセッサは、プリエンプションを使用してマルチタスクをサポートできます。これはアウト オブ オーダー プロセッサにも当てはまりますが、イン オーダー実行との主な違いは、ストールの数が減り、それによって効果的な CPU 使用率になることです。私はこれで正しいですか、それとも実行順序とマルチタスキングの間に関係がありますか?
ありがとうございました。
実行順序 (インオーダー & アウトオブオーダー) とマルチタスクに関係はありますか? 私の理解では、タスクを順番に実行するプロセッサは、プリエンプションを使用してマルチタスクをサポートできます。これはアウト オブ オーダー プロセッサにも当てはまりますが、イン オーダー実行との主な違いは、ストールの数が減り、それによって効果的な CPU 使用率になることです。私はこれで正しいですか、それとも実行順序とマルチタスキングの間に関係がありますか?
ありがとうございました。
There is no relation between multitasking and out-of-order execution.
Multitasking is executing multiple programs seemingly in parallel by periodically switching from task to task. This happens at the process level.
Out-of-order execution is the concept of re-ordering CPU instructions in a way that makes them faster to execute. This happens at the CPU instruction level.
言われたことを続けるために....
このシナリオを検討してください...
char x =read some byte from a memory;
int a = 10+ 20;
print/use char x;
これがパイプライン上にあるとき...プロセッサはメモリからデータが読み取られるまで待機する必要があります(これはパイプラインのストールと呼ばれます)..アウトオブ実行により、プロセッサは先に進んでa = 10 + 20を実行できます以前に計算された回答にまったく依存しないため、命令...これにより失速が防止されます