2015-01-01 2 views
0

가상 주소에서 실제 주소로의 주소 변환을 모두 알고 있으므로 하위 비트는 페이지 오프셋으로 사용되므로 변환되지 않습니다. 대신 그들은 동일하게 유지됩니다. 즉, 가상 메모리의 페이지 크기가 실제 메모리와 같습니다.페이지 크기 및 블록 크기

또한 모듈로 메소드를 사용하여 메모리에서 캐시로 블록을 이동할 때 양 측면의 블록 크기가 동일하다는 것도 알고 있습니다.

제 질문은 가상 메모리의 페이지 크기가 캐시의 블록 크기와 동일해야한다는 것입니다.

답변

2

아니요, 캐시 라인은 하나의 크기 (예 : 16, 32 또는 64 바이트)이고 가상 페이지는 다른 크기 (종종 4K)입니다.

전체 4K 페이지를 캐시로 읽는 것은 너무 느려서 대부분의 사용 사례에서 캐시를 비효율적으로 만들어 CPU가 더 작은 캐시 라인을 사용하게합니다.

+0

캐시에서 필요한 모든 크기가 64 바이트인데 비해 필요한 경우 4K를 디스크에서 메모리로 이동해야하는 이유는 무엇입니까? 나는 내가 사용하지 않은 4k의 나머지 부분으로 내가 무엇을 할 것인지 이해하지 못한다. – Yousef

+0

전체 페이지를 액세스 가능하거나 액세스 할 수없는 것으로 표시 할 수 있기 때문에. 페이지가 훨씬 큰 이유는 더 작은 페이지에 필요한 페이지 테이블의 크기 때문입니다. 4GB 페이지 4GB를 매핑하는 데 4MB 이상이 필요합니다. 페이지가 64 바이트 인 경우 32 비트 CPU에서 4GB의 RAM 전체를 매핑하려면 256MB의 페이지 테이블을 사용하게됩니다. 또한 HDD에서 1 섹터를 읽는 데 높은 오버 헤드가 있습니다. 여러 개의 연속 섹터를 읽는 동안 첫 번째 섹터보다 훨씬 적은 오버 헤드가 발생하여 한 번에 4KB를 읽는 것이 효율적입니다. –