2011-03-14 4 views
2

최근에 나는 cpu 캐시에서 일부 자료를 읽었습니다. 나는 cpu가 L1과 L2 캐시를 어떻게 조회하고 어떤 포맷으로 cpu 캐시의 데이터를 저장하는지 궁금해했다.L1 및 L2 캐시를 어떻게 조회합니까?

캐시의 선형 스캔이 비효율적이라고 생각합니다. 더 좋은 해결책이 있습니까?

감사합니다.

답변

2

그것은이 찾고있는 주소에서 추출 된 인덱스 비트와 태그를 사용합니다.

는 일부 32 비트 주소 ADDR에 액세스하는 말

ADDR가있을 것이다 비트 : 31 -------------------------- 0 , [------ tag | index | offset]

다음은 캐시 크기에 따라 달라집니다. 블록 당 32 바이트의 32K 다이렉트 매핑 캐시가 있다고 가정 해 보겠습니다.

는 8bytes 캐시로 가져올 수있는 최소 데이터 크기 때문에 비트가 각 라인 내의 데이터를 찾는 데 사용되는 오프셋 (물론 당신은 항상 전체 32 바이트를 얻을 수 있지만, 32 바이트 내에서 당신은 당신의 데이터가됩니다.)

이 행은 1024 행 또는 집합을 갖는 캐시를 설명하며, 각 행은 다시 32 바이트를 나타냅니다. 1024 세트를 색인화하려면 10 비트가 필요합니다. 따라서 주소의 10 비트가 캐시에 대한 인덱스로 사용됩니다. 오프셋 비트는 해당 행의 내부 데이터를 확인하는 데 사용되며 태그 비트는 두 개 이상의 주소가 캐시의 동일한 행에 매핑되므로 찾고있는 주소와 일치시키는 데 사용됩니다. 의미가 있습니까?

관련 문제