Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

34120
1703
402249


[Arm프로세서] 캐시: 캐시와 관련된 시스템 레지스터 - CTR_EL0 Arm: Cache and Barrier

CTR_EL0은 Cache Type Register의 약자로 캐시 아키텍처의 정보를 제공하는 레지스터입니다.
일반적으로 시스템이 부팅하는 과정에서 CTR_EL0 레지스터를 설정합니다.

다음 그림은 CTR_EL0 레지스터의 비트 맵입니다.

 
그림 17.12 CTR_EL0 레지스터의 비트 맵

CTR_EL0 레지스터를 구성하는 비트 맵을 살펴보겠습니다.

IminLine, bits [3:0]

인스트럭션 캐시 라인 사이즈를 나타내는 비트로 2n 워드 단위로 저장됩니다.

L1Ip, bits [15:14]

레벨 1 인스트럭션(Instruction) 캐시 정책을 설정하는 비트 필드입니다. 비트 필드 값에 따른 레벨 1 인스트럭션 정책은 다음과 같습니다.

b01: ASID-tagged Virtual Index, Virtual Tag (AIVIVT)
b10: Virtual Index, Physical Tag (VIPT)
b11: Physical Index, Physical Tag (PIPT)

DminLine, bits [19:16]

데이터 캐시 라인 사이즈를 나타내는 비트로 2n 워드 단위로 저장됩니다.

ERG, bits [23:20]

Exclusives Reservation Granule를 설정하는 비트 필드입니다. 'Exclusives Reservation Granule'는 칩셋 업체마다 다른 방식으로 구현할 수 있어 보통 IMPLEMENTATION DEFINED로 명시합니다.

ERG 비트에 따라 다음 정보를 저장합니다.

0: ERG 정보를 제공 안함
1~9: Exclusives Reservation Granule로 2n 워드를 초과하지 않음
10 이상: Reserved

CWG, bits [27:24]

Cache Writeback Granule를 설정하는 비트 필드입니다. 각 비트는 다음과 같은 정보를 설정합니다.

0~1: CWG 정보를 제공하지 않음
2~9: Cache Writeback Granule로 2^n 워드를 초과하지 않는다.
10 이상: Reserved

CTR_EL0은 캐시의 아키텍처 정보를 저장하는 시스템 레지스터이므로 잘 익혀 둡시다.

#Reference Armv8: 캐시(Cache)

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






핑백

덧글

댓글 입력 영역