2017-04-07 4 views
0

내가 아는 한 CPU의 메모리 액세스에는 CPU 캐시와 MMU가 관련됩니다. CPU는 캐시에서 대상을 찾으려고 시도하고 캐시 미스가 발생하면 CPU가 MMU로 바뀝니다. MMU에 의한 액세스 중에, 대응하는 페이지 테이블 엔트리의 액세스/더티 비트는 하드웨어에 의해 설정 될 것이다.메모리에 액세스 할 때 페이지 테이블 액세스/더티 비트가 캐시 적중 상태로 설정됩니까?

하지만 대부분의 CPU 설계는 캐시 미스가없는 한 MMU를 트리거하지 않으며 여기 내 문제는 페이지 테이블 항목의 액세스/더티 비트가 여전히 캐시 적중에 설정되는지 여부입니다 ? 또는 아키텍처와 관련이 있습니까?

답변

0

빠른 액세스를 위해 대부분의 캐시에는 사실상 색인이 생성되고 물리적으로 태그가 지정됩니다. 따라서 CPU는 가상 주소를 발행하고 주소의 색인 비트를 사용하여 항목을 찾습니다. 이 시간 동안 주소는 TLB로 전송되어 실제 주소를 가져옵니다. 캐시가 엔트리의 위치에있을 때까지, TLB는 TAG 비교를 위해 사용 된 물리적 주소와 함께 리턴 할 것이다. 두 가지 일은 일어나지 않습니다.

    TLB 엔트리 (TLB가 그리워)
  1. 캐시 TAG 불일치 (1)의 경우 (캐시 미스)

, 당신은 페이지 테이블 항목 (PTE)에 액세스 할 필요가 없습니다

  • 정확한 물리적 주소를 얻으십시오.

    2의 경우 TLB가 유효한 매핑을 반환 한 경우이를 가져와야합니다. TLB alss에 미스 (1과 2)가있는 경우 PTE에서 실제 주소를 가져 와서 데이터를 가져와야합니다.

    귀하의 질문에 대답하기 위해, HIT의 경우 PTE는 모든 것에 대해 알 필요가 없습니다.

  • +0

    Thx이므로 캐시 히트와 TLB 히트가 모두 발생하면 PTE 비트가 설정되지 않습니다. –

    +0

    내 지식을 최대한 활용하여 예. –

    0

    처음에는 페이지에 액세스하지 않은 경우 대개 캐시 히트를 사용할 수 없으므로이 질문은 부적합합니다. (편집 : 그것에 대해 생각해 보니, 페이지 앨리어싱의 일부 기괴한 경우에도 가능할 수 있지만, 더러운 비트에 대해서는 같은 대답이 적용됩니다.)

    깨끗한 페이지에서 캐시 된 행을 가질 수 있습니다 이전에 기록됨). 일반적으로 데이터에 액세스하기 전에 데이터를 초기화해야하기 때문에 조금 드문 일이지만 페이지를 이전 스왑 아웃 한 다음 페이지 맵에 다시 설치할 수 있습니다 (정확한 동작은 OS에 따라 다르지만 가능합니다).

    그런 경우 라인이 캐싱됩니다 (독점적으로 말하면), 여러분은 그것에 글을 씁니다. CPU는 캐시와 TLB를 병렬로 액세스하여 캐시에서 라인을 검색하면서 시스템이 물리적으로 매핑되었다고 가정 할 때 TLB 액세스를 수행하여 전체 가상 태그를 확인합니다. 요즘 대부분의 CPU처럼 태그가 붙어 있습니다. TLB 프로세스는 메모리 내의 실제 페이지 맵으로부터의 TLB 엔트리를 설치하기 위해 TLB 히트 또는 미스 이후에 완료 될 수있다.

    캐시 액세스는 TLB 액세스 (및 필요한 경우 페이지 이동)가 완료 될 때까지 완료 될 수 없습니다.이 시점에서 액세스/더티 비트의 값을 알 수 있습니다. 더티 비트가 설정되지 않은 페이지에 쓰려고하면 (또는 액세스 비트가없는 페이지에 액세스) 페이지 폴트가 발생하여 OS가 페이지 테이블의 페이지를 업데이트하고 업데이트합니다. OS는이 시점에서 다양한 최적화 작업을 수행 할 수 있지만 결과적으로 이러한 비트를 수정하게됩니다.

    +0

    부탁합니다. 운영체제가 때때로 페이지 테이블에서 액세스 된 비트를 지울 것입니다 (예 : 페이지 교정 중). 따라서 캐시 된 페이지의 액세스 비트가 설정되지 않았을 가능성이 있습니다.귀하의 답변을 완전히 이해하고 있는지 확신 할 수 없지만, 더티/액세스 비트가 설정되지 않은 페이지에 액세스하면 페이지 오류가 발생합니다. –

    +0

    예. 코드가 이러한 페이지에 액세스하면 오류가 발생합니다. 다른 한편, OS가 페이지 맵을 어떻게 든 변경하면 (아마 외부 프로세스 나 커널에서) TLB에 캐시 된 사본을 강제 업데이트해야하므로 일반적으로 TLB 촬영을하게됩니다 – Leeor

    관련 문제