-
내가 맞다면 메인 메모리의 페이지가 데이터 전송을위한 가장 작은 단위입니다. 주 메모리와 하드 디스크와 같은 외부 저장 장치 사이. 메인 메모리의 캐시 라인은 메인 메모리와 CPU 캐시 사이에서 데이터를 전송하는 가장 작은 단위입니다.
-
페이지 크기가 항상인지 아니면 가장 좋은지 궁금합니다. 캐시 라인 크기의 자연수? 캐시 라인 크기가 64 바이트이고 메모리 페이지 크기가 4KB이면 각 페이지에는 4KB / 64 바이트 == 64 캐시 라인이 있습니다.
-
페이지와 캐시 라인은 둘 다 메모리에 고정 된 개체입니까? 아니면 특정 크기의 연속적인 메모리 블록일까요? 메모리 내 어느 곳에서나 시작하고 부동 할 수 있습니까?
-
캐시 라인은 항상 한 페이지, 즉 캐시 라인의 일부가 페이지에 있고 캐시 라인의 다른 부분이 다른 페이지에 있습니까?
감사합니다.
의견
- 귀하의 질문에 대한 답변은 CPU 아키텍처에 따라 다릅니다.
답변
-
캐시 라인은 물리적 메모리를 만질 수있는 가장 작은 단위입니다. 즉, 1 바이트를 읽고 쓸 때이를 포함하는 전체 캐시 라인을 cpu 캐시로 읽고 다시 기록합니다. 쓰기 위해 캐시를 우회하는 명령어 (임시 스트리밍 명령어)도 캐시 라인 크기에 기록합니다. CPU에 따라 캐시 라인 크기는 일반적으로 32/64/128 바이트입니다. 메모리 페이지가 디스크에 기록 될 때 전체적으로 기록됩니다. 이는 메모리 압력이 너무 높거나 최대 절전 모드 프로세스 (및 다른 용도로 사용) 일 때 발생합니다. 또한 다시 필요할 때 전체를 읽습니다. 이것은 주로 커널이 페이지가 부분적으로 또는 완전히 사용되었는지 알 수있는 방법이 없기 때문입니다. 다른 외부 저장소 읽기 / 쓰기 작업은 임의의 세분성을 가질 수 있습니다 (예 : fwrite (..)).
-
페이지 크기는 CPU / GPU에 따라 다릅니다. 대부분의 CPU에서 페이지 크기는 4KB 이상이며 일반적으로 4KB / 64KB / 2MB / 4MB / 16MB / 1GB의 혼합을 지원합니다 (동시에 모두 지원되지 않을 수도 있음). 크기는 항상 2의 제곱입니다.
-
페이지와 캐시 라인은 모두 연속적이며 각각의 크기에 맞춰야합니다. 64 바이트 캐시 라인은 항상 64 바이트로 정렬되고 2MB 페이지는 항상 2MB로 정렬됩니다.
-
# 3 때문에 캐시 라인은 페이지 크기가 2 페이지에 걸쳐있을 수 없습니다. 항상 캐시 라인보다 크고 항상 캐시 라인 크기의 배수입니다.
메모리에 관한 풍부한 정보는 다음 훌륭한 소스를 참조하십시오. http://lwn.net/Articles/250967/
댓글
- 이 답변은 2020 년에도 여전히 관련이 있습니까? 크기가 변경 되었나요?
- 내가 아는 한이 값은 오늘날에도 관련성이 있습니다. 모든 최신 x86 및 x64 CPU는 캐시 라인 당 64 바이트를 사용하며 4KB는 Windows 및 Linux에서 가장 일반적인 페이지 크기로 남아 있습니다. 임베디드 장치의 경우 지원되는 항목에 대한 자세한 내용은 프로세서 내부 설명서를 확인하십시오.