반도체 소프트웨어

요약 1. 캐시(cache) 개요 본문

CPU Architecture/ARM Cache

요약 1. 캐시(cache) 개요

반도체 소프트웨어 엔지니어 2024. 1. 27. 11:12
  1. 캐시
    • 접근 속도, 대역폭, 단위 용량 등 성능 차이가 뚜렷한 두 계층 사이에서 지역성을 활용해 자주 활용되거나 인접한 자료를 잠시 저장(일반적인 개념)
    • 캐시를 소프트웨어나 하드웨어로 구현 ex) 리눅스커널의 슬랩 캐시, 프로세서의 링크레지스터 캐시, 브랜치 캐시
    • 고속으로 동작하는 static RAM
  2. 캐시 디자인 원칙
    • 캐시에서 원하는 데이터를 어떻게 찾을지(캐시 hit)
    • 캐시에서 원하는 데이터가 없으면 어떻게 처리할지(캐시 miss)
    • 캐시의 성능은 어떻게 최적화할지
  3. 캐시를 배우는 이유
    • 고급 시스템 소프트웨어 개발자가 되기 위한 기본 지식: 난제 이슈 해결의 실마리
    • 캐시 설정 방식은 시스템 성능에 영향을 줌: TLB miss, 캐시 세부 동작 방식 설정
    • memory corruption 이슈를 디버깅하기 위한 기반 지식(메모리 깨짐)
      • cache 라인 단위로 메모리 오염
      • cache corruption
      • 캐시는 내부 전원에 민감하기도함
    • cpu 아키텍처 관점으로 커널 동작을 파악할때 유용: 캐시의 동작 방식을 활용해 시스템 침투 해킹 방법 등이 있음
    • 캐시 필요성
      • cpu가 메모리에 접근해 데이터를 가져오기 위해 기다리는 사이클 낭비, 병목현상은 문제임
      • cpu가 자주 사용하는 데이터를 캐시가 갖고 있으면 연산 속도가 빨라짐
      • 캐시 레벨마다 설계 기준이 다르다. 그래서 용량도 다르고 속도도 좀 다름
  4. 멀티레벨캐시
    • 캐시접근속도와 용량 사이의 trade-off를 멀티레벨캐시로 극복
    • 여러 계층으로 캐시를 구성하면 프로세서 성능을 최대한 높일수있음
    • 대략적으로 L1캐시는 32kB, L2캐시는 4MB바이트 용량 정도 되네
      • 캐시용량이 커지면 캐시라인 사이즈가 커지기에 hit latency가 증가하므로, CPU와 통신속도가 가장 중요한 L1캐시는 시간이 지나도 용량이 커지기 어려움
    • L1은 CPU와 통신 속도가 핵심성능지표
    • L2는 캐시 미스를 줄이는게 핵심성능지표 (98% 확률로 cpu 코어는 캐시에서 명령어, 데이터를 읽는다)

 

 

 

출처: 인프런, "Arm 아키텍처: 캐시", https://inf.run/f73W6