2017-05-14 20 views
0

가상 메모리를 처리 할 때 종종 TLB를 사용합니다 (소프트웨어 관리 TLB에 대해 묻습니다). 가상 주소를 페이지 테이블에 연결하여 매핑되는 실제 주소를 가져 오는 대신 중간에 TLB를 사용하여 최근에 사용한 페이지를 저장할 수 있습니다.TLB는 어떻게 그렇게 빠른가요?

그렇다면 가상 주소를 가져 와서 TLB에 주소가 포함되어 있는지 확인하십시오. 가상 주소가 매핑되는 물리적 주소를 반환하는 경우 가상 주소에 매핑되지만 조회가 발생하지 않으면 페이지 테이블로 이동하여 해당 페이지를 TLB에로드하고 실제 주소를 반환합니다.

제 질문은 : 가상 주소를 항상 검색해야하는 경우 TLB가 너무 빠를 수 있습니까? 항목은 겉으로보기에 어떤 순서로도 나오지 않으므로 그들을 통과하는 것이 매우 느릴 것입니다.

문맥의 경우, 이것은 내 머리 속에있는 TLB 조회 이미지입니다 (그림은 Wikipedia에서 가져온 것입니다).

enter image description here

+0

TLB는 하드웨어입니다. – user3344003

+0

@ user3344003 나는 소프트웨어 관리 TLB를 의미했습니다. – Zyphicx

+0

소프트웨어 관리 TLB는 여전히 하드웨어입니다 (인덱싱 및 병렬 검색이 가능한 [Content-addressable/associative memory (https://en.wikipedia.org/wiki/Content-addressable_memory)의 일부 버퍼). TLB 미스 만 소프트웨어로 관리됩니다. - https://en.wikipedia.org/wiki/Translation_lookaside_buffer#TLB_miss_handling "TLB 미스를 처리하기위한 두 가지 계획은 현대 아키텍처에서 흔히 볼 수 있습니다 : .. 하드웨어 TLB 관리 ... 소프트웨어 관리 TLB 사용" – osgx

답변

2

항목이 특정 순서로 표시되지 않으므로 항목을 지나치는 것이 매우 느릴 것이라고 생각합니다.

이것은 일반적으로 하드웨어에서 작동하는 방식이 아니며, "통과"항목은 실제로 문제가 아닙니다. 그런 식으로 할 수는 있지만 더 이상 빠르지 않아 요점을 놓치게됩니다.

모든 엔트리를 동시에 비교할 수 있으며 일치하는 엔트리 (존재하는 경우)는 로그 깊이 회로 (임의의 팬 인을 허용하면 일정 깊이이지만 자체 문제점이 있음)로 추출 할 수 있습니다.

+0

괜찮 았지만 소프트웨어 관리 TLB에 대해? – Zyphicx

+3

@Zyphicx 소프트웨어 관리 TLB는 하드웨어가 페이지 워킹을하지 않지만 TLB 미스에서 인터럽트를 생성하고 소프트웨어가이를 수행 할 수 있음을 의미합니다. 소프트웨어 캐시가 아직 채워진 하드웨어 캐시입니다. 소프트웨어에서 TLB를 완전히 구현하는 것은 에뮬레이션을 제외하고는 문제가되지 않습니다. – harold

+0

설명해 주셔서 감사합니다. 소프트웨어 TLB가 매우 빠르다는 것은 상당히 이상한 것처럼 보였습니다. – Zyphicx

0

는 TLB 그냥 캐시입니다. 캐시 뒤에있는 아이디어는 더 크고 "먼"수의 참조되지 않은 참조보다는 소수의 최근 참조를 찾는 것이 더 쉽다는 것입니다. "why is caching fast?"

은 아마도 누군가가 나보다 더 나은 아키텍처 관점에서 설명 할 수있다 :

내가 이해한다면, 당신의 질문은 더?