1

쉽습니다 시 주소 :CPU 사이클 속도

  1. 는 미스가있는 L1 TLB에서 미스하지만 L2 TLB
  2. 에서 인기가있는 L1 TLB
  3. 의 인기가 전 n L2 TLB 및 페이지 테이블의 히트
  4. (페이지 테이블에 누락 될 수 있다고 생각하지 않습니까? 이 수 있다면, 내가 한이 비용)

이 찾을 :

  • 데이터 TLB (L1)의 크기 = 64 개 항목을. 4-WAY. 미스 패널티 = 7 사이클. 병렬 누락 : 액세스 당 1 사이클
  • TLB L2 크기 = 512 항목. 4-WAY. 페널티 미스 = 10 사이클. 병렬 누락 : 액세스 당 21 사이클
  • 명령 TLB L1 크기 = 스레드 당 64 개 항목 (코어 당 128 개). 4-WAY
  • PDE 캐시 = 32 개 항목?

http://www.7-cpu.com/cpu/SandyBridge.html

하지만 관련 TLB 캐시를 액세스/히트의 비용을 언급하지 않는 이유는 무엇입니까?

+0

의견/정당성이없는 투표를 좋아합니다. – user3811839

+2

나는 의심스러운 * 아래 투표는 특정 하드웨어에 의존하기 때문에 하드웨어에 관한 것이고 지나치게 광범위하다는 의견에서 나온 것입니다 (페이지 테이블 미스의 경우) 특정 운영 체제 소프트웨어. 일부 프로세서에는 L2 TLB가없고 소프트웨어 TLB 채우기를 사용합니다.이 경우 TLB 채우기 지연은 특정 하드웨어 및 운영 체제에 따라 다릅니다. –

답변

2

일반적으로 L1 TLB 액세스 시간은 세트 연관, 물리적 태그 캐시에서 태그 비교를 허용하는 캐시 액세스 시간보다 짧습니다. 직접 매핑 된 캐시는 적중을 가정하여 태그 검사를 지연시킬 수 있습니다. (순차적 프로세서의 경우, 데이터를 즉시 사용하는 실수는 처리 실패를 기다려야하므로 성능상의 불이익이 발생하지 않습니다. 순서가 잘못된 프로세서의 경우 잘못된 추측을 수정하면 성능이 현저한 성능에 영향을 줄 수 있습니다. 순서가 잘못된 프로세스는 직접 매핑 된 캐시를 사용하지 않을 수도 있지만 비슷한 방식으로 동작 할 수있는 방식 예측을 사용할 수 있습니다.) 가상 태그 캐시는 (이론적으로) TLB가 캐시 히트를 결정하지 않고 사용 권한을 확인하기 만하면되며 권한 위반을 처리하는 것은 일반적으로 다소 비싸고 드물습니다.

이것은 일반적으로 L1 TLB 액세스 시간이 소프트웨어 성능 조정에 영향을 미치지 않으므로 공개되지 않음을 의미합니다.

L2 적중 시간은 L1 미스 패널티와 같습니다. 이것은 특정 구현에 따라 다르며 단일 값이 아닐 수도 있습니다. 예를 들어, TLB가 단일 사이클에서 다중 액세스를 지원하기 위해 뱅킹을 사용하는 경우 은행 갈등으로 인해 액세스가 지연되거나 여러 페이지 크기를 지원하기 위해 재호용을 사용하는 경우 대체 크기의 페이지가 더 오래 걸릴 수 있습니다 높은 이용률에서 지연을 누적).

L2 TLB 채우기에 필요한 시간은 크게 다를 수 있습니다. ARM 및 x86은 다중 레벨 페이지 테이블을 사용하여 하드웨어 TLB 채우기를 사용합니다.페이지 테이블 데이터가 캐시 될 수있는 위치 및 캐시 히트 여부에 따라, TLB 채우기의 대기 시간은 페이지 테이블의 각 레벨에 대한 주 메모리 액세스의 대기 시간과 페이지 테이블의 각 대기 시간 각 수준 (일부 오버 헤드)에 대해 데이터가 발견됩니다.

더욱 복잡해지면 최신 Intel x86에는 페이지 테이블 수준을 건너 뛰는 페이징 구조 캐시가 있습니다. 예를 들어 페이지 테이블 항목의 페이지에서 시작하여 네 개의 종속 찾아보기 만 수행하는 대신 페이지 디렉토리 항목 (페이지 테이블 항목의 페이지를 가리키는 두 번째 수준 페이지 테이블의 항목)이이 캐시에서 발견되는 경우 단일 조회가 필요합니다.

(예 : 페이지 테이블의 레벨로 덮여있는 가상 주소 영역의 크기 (예 : x86-64의 경우 2 MiB 및 1 GiB)를 사용하면 페이지 테이블의 깊이가 줄어 듭니다 이러한 큰 페이지를 사용하면 TLB 압력을 줄일 수있을뿐 아니라 TLB 누락의 지연을 줄일 수 있습니다.

페이지 테이블 누락은 운영 체제에서 처리됩니다. 이로 인해 페이지가 여전히 메모리에 남아있을 수 있습니다 (예 : 스왑에 대한 쓰기가 완료되지 않은 경우). 대기 시간이 상대적으로 적을 수 있습니다. (실제 레이턴시는 운영 체제가 이것을 어떻게 구현하고 캐시 히트 동작에 의존하지만 페이징은 흔하지 않은 이벤트이기 때문에 코드와 데이터 모두 캐시가 손실 될 가능성이 높습니다.) 페이지가 더 이상 메모리에 없다면 대기 시간 (예를 들어, 디스크 드라이브)에서 읽는 것이 잘못된 페이지 테이블 항목 (즉, 페이지 테이블 누락)을 처리하는 소프트웨어 대기 시간에 추가됩니다.