TLB 슛 다운이란 무엇입니까?
SMP에서 TLB 슛 다운이란 무엇입니까?
이 개념에 대한 많은 정보를 찾을 수 없습니다. 어떤 좋은 예라도 대단히 감사하겠습니다.
간단한 예 :
시스템의 모든 프로세서에서 일부 메모리를 공유합니다.
프로세서 중 하나가 해당 공유 메모리의 페이지에 대한 액세스를 제한합니다.
이제 모든 프로세서는 TLB를 플러시해야하므로 해당 페이지에 액세스 할 수있는 프로세서는 더 이상이를 수행 할 수 없습니다.
TLB가 다른 프로세서에서 플러시되도록하는 한 프로세서의 동작을 TLB 슛 다운이라고합니다.
TLB (Translation Lookaside Buffer)는 가상 메모리 주소에서 실제 메모리 주소로의 변환 캐시입니다. 프로세서가 주소의 가상-물리적 매핑을 변경하면 다른 프로세서에게 캐시에서 해당 매핑을 무효화하도록 지시해야합니다.
이 과정을 "TLB 슛 다운"이라고합니다.
질문에 더 자세한 답변이 필요하다고 생각합니다.
페이지 테이블 : 가상 메모리 (소프트웨어)와 물리적 메모리 (하드웨어) 간의 매핑을 저장하는 데이터 구조
그러나 페이지 테이블은 매우 클 수 있으며 페이지 테이블을 탐색 (가상 주소의 해당 물리적 주소를 찾기 위해)하는 작업은 시간이 많이 소요될 수 있습니다. 이 프로세스를 더 빠르게하기 위해 최근에 액세스 한 가상 메모리 주소를 저장하는 TLB (Translation Lookaside Buffer)라는 캐시가 사용됩니다.
분명히 알 수 있듯이 TLB 항목 은 항상 해당 페이지 테이블 항목과 동기화되어야합니다 . 이제 TLB는 코어 당 캐시 입니다. 모든 코어에는 자체 TLB가 있습니다.
페이지 테이블 항목이 코어 중 하나에 의해 수정 될 때마다 해당 특정 TLB 항목이 모든 코어에서 무효화됩니다. 이 프로세스를 TLB 슛 다운이라고합니다.
TLB 플러싱은 페이지 마이그레이션, 페이지 해제 등과 같은 페이지 테이블 항목을 변경하는 다양한 가상 메모리 작업에 의해 트리거 될 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3748384/what-is-tlb-shootdown
'Program Club' 카테고리의 다른 글
| ASP.NET에 대한 이메일 주소 유효성 검사 (0) | 2020.11.16 |
|---|---|
| SQL Server에 null 값을 어떻게 삽입합니까? (0) | 2020.11.16 |
| HW kbd 키보드 포커스 iOS로 설정하지 못했습니다 (null). (0) | 2020.11.15 |
| Express-mysql-session으로 여권 deserializeUser가 실행되지 않도록 방지 (0) | 2020.11.15 |
| Pycharm에서 docker-compose를 통해 Python 콘솔 실행 (0) | 2020.11.15 |