ページが最初にアクセスされなかった場合、通常はキャッシュヒットができないため、質問は関係ありません。 (編集:それを考えると、ページエイリアシングのいくつかの奇妙なケースでは可能かもしれませんが、汚れたビットについて同じ答えがそこに適用されます)
クリーンなページからキャッシュされた行を持つことは可能です以前に書かれた)。通常、データにアクセスする前にデータを初期化する必要があるため、ページを以前にスワップアウトしてからページマップに再インストールすることはほとんどありません(OSに依存しますが、可能です)。
この場合、行はキャッシュされています(排他的に言えば)、その行に書き込みます。 CPUはキャッシュとTLBに同時にアクセスし、キャッシュ内の行をルックアップしながら、システムが物理的にマップされていると仮定してTLBアクセスを行って完全な仮想タグを検証しようとします。 TLBプロセスは、実際のページマップからのメモリにTLBエントリをインストールするために、TLBヒットまたはミスの後にページウォークのいずれかを完了することができる。
キャッシュアクセスは、TLBアクセス(および必要に応じてページウォーク)が完了するまで完了できません。その時点で、アクセス/ダーティービットの値がわかります。 ダーティビットが設定されていないページに書き込み(またはアクセスビットのないページにアクセス)しようとすると、ページフォルトが発生し、OSがページテーブルのページを更新します。 OSはこの時点でさまざまな最適化を行うことを選択することができますが、最終的にこれらのビットを修正する結果になります。
Thx、キャッシュヒットとTLBヒットの両方が発生した場合、PTEのビットは設定されません。 –
私の知る限り、はい。 –