캐시(2)
-
실제 캐시 계층 구조의 해부
지금까지 캐시가 오직 프로그램 데이터만을 보관한다고 가정해 왔다. 그러나 사실 캐시는 데이터 뿐만 아니라 인스트럭션들도 저장할 수 있다. 인스트럭션을 저장하는 캐시는 i-cache라고 한다. 반대로 프로그램 데이터만을 보관하는 캐시는 d-cache라고 한다. 현대 프로세서들은 분리된 i-cache와 d-cache를 가지고 있다. 여기에는 여러가지 이유가 있다. 두 개의 별도의 캐시가 있으면 프로세서는 인스트럭션 워드와 데이터 워드를 동시에 읽을 수 있다. i-cache는 보통 읽기만 허용되며 따라서 좀 더 단순하다. 이 두 캐시는 종종 다른 접근 패턴에 대해 최적화되며 블록 크기, 결합도, 용량 등에 있어서 서로 다른 값을 갖는다. 또한 분리된 캐시를 가지기 때문에 데이터 접근이 인스트럭션 접근과 충돌 ..
2022.11.29 -
Directed Mapped Cache (직접매핑 캐시)
캐시는 집합 S 당 캐시 라인의 수 E에 의해 서로 다른 클래스로 구분된다. 집합 당 정확히 1개의 라인을 갖는 경(E = 1)는 직접 매핑 캐시라고 알려져 있다. 직접매핑 캐시는 가장 이해하기 쉽고 구현하기 쉬워서 이 캐시를 사용해서 캐시가 동작하는 방법에 대한 일반적인 개념들을 설명하고자 한다. 우리에게 CPU, 레지스터 파일, L1 캐시, 메인 메모리를 갖는 시스템이 주어졌다고 하자. CPU가 메모리 워드 w를 읽는 인스트럭션을 실행할 때, 이 워드를 L1 캐시에서 요청한다. 만일 L1 캐시가 w의 복사본을 가지고 있다면 L1 캐시 적중이 되고, 캐시는 빠르게 w를 뽑아내서 CPU로 보낸다. 반대로 캐시 미스가 발생한다면 CPU는 L1 캐시가 메인 메모리로부터 w를 포함하고 있는 블록의 사본을 요청..
2022.11.28