-
캐시 메모리
속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다.
코어 마다 독립된 L1캐시를 가진다.
L1 = Cpu 내부
L2 = Cpu - main memory
L3 = Mainboard
지역성
데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생하는 것을 말한다.
- 캐시의 적중률(Hit rate)을 극대화하여 캐시가 효율적으로 동작하기 위해 사용되는 성질이다.
- 시간 지역성
- 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성
- 반복문에서 조건 변수처럼 한번 된 사용된 변수는 잠시 후 다시 참조될 가능성이 높다.
- 공간 지역성
- 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성
- List와 같이 연속된 접근 시, 참조된 근처 데이터와 연결될 가능성이 높다.
캐시 Hit , Miss
요청한 데이터가 캐시 메모리에 존재한다면 Cache hit , 없다면 miss
1. Cold Miss
- 메모리 주소를 처음 올려 나는 미스
2. Conflict Miss
- A와 B가 같은 Object를 보고 캐시메모리에 올라가 있다가, A가 값을 변경하여 B가 캐시메모리를 참고하여 접근하지만 없어서 나는 미스
3. Capacity Miss
- 캐시 메모리 공간 자체가 없어서 나는 미스
캐시 Line
- 캐시 메모리는 메인 메모리에 비해 크기가 매우 작기 때문에 메인 메모리와 1:1 매칭이 불가능하다.
캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶음으로 저장하는데, 이를 캐싱 라인(Caching Line) Mapping Table과 유사하다고 보면 된다.
1. Direct Mapping
- 직접 매핑으로, 메인 메모리를 일정한 크기의 블록으로 나누어 각각의 블록을 캐시의 정해진 위치에 매핑하는 방식이다.
- 가장 간단하고 구현도 쉽다.
- Cache는 8개의 공간 Memory는 32개의 공간으로 뒤의 3개의 bit로 Index Mapping하며, 앞의 값을 Tag 필드
인덱스 + 태그 + 데이터로 구성
2. Full Associative Mapping
- 캐시 메모리의 빈 공간에 마음대로 주소를 저장하는 방식이다.
저장하는 것은 매우 간단하지만, 데이터가 있는지 찾기 위해서는 모든 태그를 병렬적으로 검사해야 한다.
3. Set Associaive Mapping
- 1,2번은 혼합한 것이다.
- 빈 공간에 마음대로 주소를 저장하되, 미리 정해둔 특정 행에만 저장하는 방식이다.
Direct에 비해 검색 속도는 느리지만 저장이 빠르고 Full에 비해 저장이 느리지만 검색은 빠르다.
주로 사용하는 방식이다.
'CS > 면접준비' 카테고리의 다른 글
[OS] - Process vs Thread (1) 2022.09.29 [Database] - Join (1) 2022.09.21 [Database] - Key (0) 2022.09.20 Virtual Memory란? (0) 2022.07.18 Dynamic Programming이란? (0) 2022.07.18