대용량 페이지 및 성능 개선

대용량 페이지 및 성능 개선

거대한 페이지를 사용하면 성능이 어떻게 향상될 수 있나요?

큰 페이지는 TLB 조회를 줄이고 페이지 테이블 크기를 줄여 성능을 향상시킨다는 내용을 읽었습니다. 이것이 성능에 어떻게 도움이 될지 말해 줄 수 있는 사람이 있습니까?

4개의 가상 메모리 페이지(4*4kb=16kb)를 사용하는 애플리케이션이 있는 경우 각 페이지는 일부 물리적 메모리 위치에 직접 매핑되지만 16kb 크기의 거대한 페이지를 사용하는 경우 4페이지에 매핑되지 않습니다. 하나만 매핑하면 페이지 테이블 크기가 줄어들고 이를 디스크로 교체할 가능성이 줄어들어 TLB 캐시가 길어지나요?

답변1

세르쥬가 대답했다. TLB에는 고정된 수의 시간 슬롯이 있습니다. TLB의 정보를 사용하여 가상 주소를 물리적 주소에 매핑할 수 있다면 비용이 많이 드는 페이지 테이블 탐색을 피할 수 있습니다. 그러나 TLB는 모든 페이지에 대한 매핑을 캐시할 수 없습니다.

따라서 더 큰 페이지를 사용하는 경우 고정된 수의 가상-물리적 매핑이 더 큰 전체 주소 범위를 포괄하므로 TLB(캐시된 매핑)의 적중률이 향상됩니다.

답변2

성능이 향상되는 또 다른 이유는 연속적인 메모리 블록에 액세스할 수 있기 때문입니다. 데이터를 메모리에 DMA할 수 있는 PCIe 장치가 있다고 가정해 보겠습니다. 거대한 페이지를 사용하면 2MB(또는 최대 1GB)의 데이터를 연속 DRAM 공간에 DMA할 수 있는 반면, 기본 4KB 페이지를 사용하면 DRAM의 여러 물리적 페이지로 이동해야 하므로 속도가 느려질 수 있습니다.

관련 정보