Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

37120
1703
402252


[Arm프로세서] 캐시의 성능 지표 Arm: Cache and Barrier

이번 포스트에서 다룬 캐시의 동작을 다시 요약하면 다음과 같습니다.

    “속도가 빠른 캐시를 CPU 근처에 두고 CPU가 자주 사용하는 데이터를 캐시라는 임시 저장 
    공간에 두면 성능을 키울 수 있다.” 

실제 Arm 프로세서의 메모리 아키텍처 다이어그램을 분석하면 멀티 레벨로 캐시가 구성됐다는 사실을 알 수 있습니다. 캐시를 레벨로 구성하는 이유를 알려면 먼저 캐시의 성능을 측정하는 지표를 알 필요가 있습니다. 대부분 캐시의 성능 지표로 캐시 미스나 캐시 히트만 떠 올립니다. 캐시의 성능을 측정하는 정량적인 지표는 다음과 같습니다. 

평균 접근 시간 = 히트 레이턴시(hit latency) + 미스 비율
(where) 미스 비율 = 캐시 미스/(캐시 미스 + 캐시 히트) x 미스 패널티

위 공식에서 평균 접근 시간은 CPU가 캐시에서 데이터를 읽어오는데 걸리는 시간입니다. 평균 접근 시간을 줄어야 캐시의 성능이 높아집니다. 캐시의 평균 접근 시간을 줄이려면 어떤 값을 낮춰야 할까요? 바로 (1) 히트 레이턴시, (2) 미스 비율, (3) 미스 패널티를 줄이면 됩니다. 

3가지 항목을 보면 “한 꺼번에 모든 항목을 줄이면 평균 접근 시간을 낮출 수 있다”라는 생각이 들겁니다. 하지만 3가지 항목 중에 서로 트레이드 오프(trade-off)된 부분이 있습니다. 한 가지 예를 들까요? 캐시의 사이즈를 키우면 캐시 미스 비율이 떨어집니다. 이런 사실을 파악한 후 캐시 라인의 사이즈를 키우면 평균 접근 시간이 낮아질까요? 그렇지 않습니다.  캐시 사이즈가 커지면 CPU에 전달되는 데이터의 양이 많아 지므로 캐시에서 데이터를 가져 오는 시간인 히트 레이턴시는 캐시 사이즈에 비례에 높아지기 때문입니다. 그래서 캐시의 사이즈를 무작성 크게 키울 수가 없습니다.


#Reference Armv8: 캐시(Cache)

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




핑백

덧글

댓글 입력 영역