320x100
본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다.
메모리 계층은 어떤 계층이든 상당 부분 공통점을 갖는다.
메모리 계층의 어떤 두 계층 간에도 적용될 수 있는 4가지 질문을 알아보도록 하자.
1. 블록을 상위 계층 어디에 위치시킬 수 있는가?
메모리 계층 구조에서 상위 수준에 블록을 위치시키기 위해서는 직접 사상, 집합 연관, 완전 연관 등과 같은 방식을 사용할 수 있다.
연관 정도를 늘릴 수록, 고정된 캐시의 크기에서 나타낼 수 있는 블록의 수(인덱스)가 감소하였지만, 그만큼 한 집합에 많은 블록이 있으므로 miss rate가 줄게 되었다.
방식 | 집합의 수 | 집합 당 블록 수 |
직접 사상 | 캐시의 블록 수 | 1 |
집합 사상 | 캐시 내의 블록 수/ 연관 정도 | 연관 정도 |
완전 연관 | 1 | 캐시 내 블록 수 |
2. 블록을 어떻게 찾는가?
블록을 어떻게 찾느냐는 블록 배치 방식에 의존한다.
방식 | 위치 파악 방법 | 비교 횟수 |
직접 사상 | 인덱스 | 1 |
집합 사상 | 집합 인덱스, 집합 내 모든 원소 비교 | 연관 정도 |
완전 연관 | 모든 엔트리 검색 | 캐시의 크기 |
즉, 캐시 실패율을 낮추는 대신 검색 비용을 늘릴 것인가, 캐시 실패율을 포기하고 검색 비용을 얻을 것인가 사이에서 좋은 타협점을 찾아야 한다.
3. 캐시 실패 시 어느 블록을 교체 시키는가?
캐시가 꽉 차있고, 원하는 데이터가 없는 경우 캐시의 데이터 중 어떤 것을 대체하고 새로운 것을 가져와야한다.
- 직접 사상 - 가져오려는 데이터가 올 수 있는 엔트리가 한 곳으로 고정되어있기 때문에 해당하는 곳에는 블록이 하나 밖에 없기 때문에 해당 블록을 교체할 수 밖에 없다.
- 집홥연관,완전 연관 - 가져오려는 데이터가 올 수 있는 곳이 연관의 정도와 같기 때문에 만약 집합이 꽉 차있다면, 그 중 하나를 선택해서 대체 하여야 한다.
- 임의 선택 - 집합 내의 블록 중 아무거나 random 하게 대체 시킨다.
- LRU - 참조 비트를 사용해 가장 최근에 안쓰인 블록을 대체 시킨다.
4. 쓰기 시에 어떤 일이 발생하는가?
- 즉시 쓰기 - 정보가 캐시 내의 블록과 계층의 하위 수준의 블록 양쪽에 쓰임과 동시에 저장된다. 즉, 캐시에 빠른 속도로 다 쓴 이후에도 하위 계층에 쓰이는 시간 동안 기다려야한다.
- 나중 쓰기 - 정보가 캐시 내의 블록에 쓰임과 동시에 저장된다. 수정된 블록은 교체될 때만 하위 수준으로 저장된다.
나중 쓰기의 장점
- 각각의 워드는 프로세서에 의해 메인 메모리가 아닌 캐시가 받아들일 수 있는 속도로 쓰인다.
- 다수의 쓰기가 행해진 블록을 계층의 하위 계층에 한번만 쓰면 된다.
- 블록들이 하위 수준에 쓰일 때, 전체 블록을 한꺼번에 쓰기 때문에 높은 대역폭을 효과적으로 사용할 수 있다.
즉시 쓰기의 장점
- 실패가 발생해도 하위 수준에 블록을 쓸 필요가 없으므로 간단하고 비용이 적게 든다.
- 즉시 쓰기는 나중 쓰기보다 구현이 간ㄴ단하다. 하지만 실제적으로 즉시 쓰기 캐시는 쓰기 버퍼를 요구한다.
쓰기 실패의 종류
- Compulsory misses(필수 실패) - 캐시에 존재하지 않았던 블록에 대한 첫번째 접근에 의한 실패
- Capacity misses(용량 실패) - 캐시의 한정된 크기 때문에 일어난다. 캐시의 블록이 대체되고 다시 접근하는 방식으로 해결된다.
- Conflict misses(대립 실패) - 집합 연관이나 직접 사상 캐시에서 다수의 블록들이 하나의 집합에 대해 경쟁을 벌일 때 발생하는 캐시 실패이다.
728x90
'CS > 컴퓨터 구조' 카테고리의 다른 글
[Chapter 5.8 컴퓨터 구조 및 설계] 병렬성 메모리 계층구조에서의 캐시 일관성 (0) | 2022.08.01 |
---|---|
[Chapter 5.6 컴퓨터 구조 및 설계] TLB (0) | 2022.07.31 |
[Chapter 5.5 컴퓨터 구조 및 설계] 가상 메모리와 페이지 부재 (0) | 2022.07.30 |
[Chapter 5.4 컴퓨터 구조 및 설계] 캐시의 성능, Multilevel Caches, set associative cache (0) | 2022.07.29 |
[Chapter 5.3 컴퓨터 구조 및 설계] 캐시 참조 실패와 성공의 처리 (0) | 2022.07.28 |