Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

1148
469
422441


[Arm프로세서] 캐시(Cache): Set-associative 캐시 구조 Arm: Cache and Barrier

Set-associative 캐시는 하나의 Set(집합)가 여러 개의 캐시 엔트리로 구성된 캐시 구조입니다. Set-associative란 용어에서 Set은 수학에서 정의된 집합으로 비유할 수 있는데, 하나의 Set가 여러 개의 캐시 엔트리로 구성된 구조입니다. 

다음 그림을 보면서 Set-associative 캐시의 구조를 배워 봅시다.

 
그림 17.10 Set-associative 캐시의 구조

그림의 가장 윗 부분에는 주소가 보이는데, 주소를 세 부분으로 나눠져 있습니다. ① 로 표기된 부분은 주소의 인덱스 값으로 캐시 라인에 접근하는 동작을 나타냅니다. 그런데 캐시 라인은 4Way로 구성돼 있으므로 1개의 Set는 4개의 캐시 라인으로 구성돼 있다는 사실을 알 수 있습니다.

그림에서 박스 하나당 캐시 라인의 갯수는 256개이며, 박스 4개가 곂쳐져 있습니다. 각 박스는 Way를 나타내므로 4개의 Way로 구성돼 있다는 사실을 알 수 있습니다.

②은 0~3 Way 중 하나 Way를 찾아서 다음에 주소의 태그 정보와 캐시 라인에 있는 태그가 맞는 지 체크하는 동작입니다. ③은 캐시 라인의 사이즈를 나타냅니다. [5:2] 비트를 오프셋으로 적용하므로 64(24) 바이트가 캐시 라인의 사이즈입니다. 여기서 캐시 라인의 사이즈를 계산한 공식은 다음과 같습니다.

64바이트 = 4바이트(워드 사이즈) x 16(24) 

SA(Set-Associative) 캐시의 장점은 DM 캐시가 비교해 캐시 히트율이 높다는 점입니다. 하나의 Set를 통해 여러 캐시 엔트리에 엑세스할 수 있어 캐시 미스의 비율을 줄일 수 있습니다.

#Reference Armv8: 캐시(Cache)

캐시 소개
캐시의 기본 동작 원리
   캐시의 검색 방법
   캐시 lookup 기본 동작 원리
       캐시 히트 동작  
       캐시 미스 동작  
캐시 제어 레지스터







핑백

덧글

댓글 입력 영역