私は Cortex A の初心者であり、ARM が弱く順序付けられたメモリ モデルを適用していること、および相互に排他的な 3 つのメモリ タイプがあることを認識しています。
- 強い秩序
- デバイス
- 普通
Normal とは何か、Strongly ordered と Device とは何を意味するのかを大まかに理解しています。ただし、強く順序付けられたデバイスとデバイスの違いは、私にとって混乱を招きます。
Cortex-A Series Programmer's Guideによると、唯一の違いは次のとおりです。
厳密に順序付けされたメモリへの書き込みは、書き込みによってアクセスされるペリフェラルまたはメモリ コンポーネントに到達した場合にのみ完了できます。
デバイス メモリへの書き込みは、書き込みによってアクセスされるペリフェラルまたはメモリ コンポーネントに到達する前に完了できます。
これの本当の意味が何であるかについてはよくわかりません。Strongly-ordered または Device で型指定されたメモリへのアクセスの順序は、プログラマのコードと一貫している必要があります (順不同のアクセスはありません)。ただし、Device と入力すると、CPU はメモリへのアクセス中に次の命令を実行する可能性があり、Strongly-ordered と入力すると、アクセスが完了するまで単に待機します。
私が間違っている場合は訂正してください。これを行う意味を教えてください。
前もって感謝します。