뚝딱뚝딱 블로그
Linux - Cache(ARM based) 본문
Cache Architecture
캐시 아키텍처 -> data/instruction 캐시가 분리되어있는지에 따라 하버드/폰 노이만 구조로 나뉘어 진다.
- 폰 노이만 - data/instruction 버스가 공유 되어 CPU가 instruction, data 캐시에 동시에 접근하는 것이 불가능
- 하버드 - data/instruction 버스가 물리적으로 분리되어 동시에 data, instruction 접근, read 가능
ARM은 하버드 아키텍처를 사용하여 Data, Instruction cache를 구분합니다.
- L1 - data, instruction cache 분리
- L2 - core끼리 공유
- L3 - 클러스터 사이에서 공유
Cache 용어
- Tag - 캐시 탐색 시 저장되는 메모리 주소 일부(cache line <-> 연결된 memory 주소) 식별할 때 사용
- Cache line(캐시 라인) - 워드 단위로 묶이는 block은 cache line(load, flush 같은 cache 연산의 가장 작은 단위)
Cache 정책
- Allocation 정책 - Write Allocation/Read Allocation
- Write/Read 시도하고 Miss 나는 경우에 Allocation
- 갱신 정책
- write-back - write 요청이 오면,캐시 라인까지 갱신 후 dirty bit를 설정. 외부 메모리는 캐시 라인 방출(flush)이나 명시적인 clean에 의해 갱신됨.
- write-through - write 요청시, 캐시와 외부 메모리까지 함께 갱신, dirty bit 표시 필요 없음. data가 날아가면 안되는 중요한 작업의 경우 이러한 방식사용
'Linux' 카테고리의 다른 글
리눅스 스터디 #2 프로세스 관리 (1) | 2024.12.01 |
---|---|
리눅스 스터디 #1 개요 (1) | 2024.12.01 |
Linux - ARM AArch64 Exception Handling (0) | 2022.07.03 |
Linux - ARMv8 레지스터 (0) | 2022.07.03 |
Linux - ARMv8 아키텍처 (0) | 2022.07.03 |