처음에는 페이지에 액세스하지 않은 경우 대개 캐시 히트를 사용할 수 없으므로이 질문은 부적합합니다. (편집 : 그것에 대해 생각해 보니, 페이지 앨리어싱의 일부 기괴한 경우에도 가능할 수 있지만, 더러운 비트에 대해서는 같은 대답이 적용됩니다.)
깨끗한 페이지에서 캐시 된 행을 가질 수 있습니다 이전에 기록됨). 일반적으로 데이터에 액세스하기 전에 데이터를 초기화해야하기 때문에 조금 드문 일이지만 페이지를 이전 스왑 아웃 한 다음 페이지 맵에 다시 설치할 수 있습니다 (정확한 동작은 OS에 따라 다르지만 가능합니다).
그런 경우 라인이 캐싱됩니다 (독점적으로 말하면), 여러분은 그것에 글을 씁니다. CPU는 캐시와 TLB를 병렬로 액세스하여 캐시에서 라인을 검색하면서 시스템이 물리적으로 매핑되었다고 가정 할 때 TLB 액세스를 수행하여 전체 가상 태그를 확인합니다. 요즘 대부분의 CPU처럼 태그가 붙어 있습니다. TLB 프로세스는 메모리 내의 실제 페이지 맵으로부터의 TLB 엔트리를 설치하기 위해 TLB 히트 또는 미스 이후에 완료 될 수있다.
캐시 액세스는 TLB 액세스 (및 필요한 경우 페이지 이동)가 완료 될 때까지 완료 될 수 없습니다.이 시점에서 액세스/더티 비트의 값을 알 수 있습니다. 더티 비트가 설정되지 않은 페이지에 쓰려고하면 (또는 액세스 비트가없는 페이지에 액세스) 페이지 폴트가 발생하여 OS가 페이지 테이블의 페이지를 업데이트하고 업데이트합니다. OS는이 시점에서 다양한 최적화 작업을 수행 할 수 있지만 결과적으로 이러한 비트를 수정하게됩니다.
Thx이므로 캐시 히트와 TLB 히트가 모두 발생하면 PTE 비트가 설정되지 않습니다. –
내 지식을 최대한 활용하여 예. –