컴퓨터 공학/OS
캐시 메모리
menuhwang
2023. 11. 27. 13:48
"CPU도 당신처럼 '예측'하고 미리 움직인다."
CPU
CPU는 연산 장치다.
연산 성능을 높이는 방법: 클럭 수 증가, 코어 수 증가, IO 속도 차를 줄인다
CPU는 RAM 보다 속도가 매우 빠르다.
다시 말해 RAM이 CPU에 비해 매우 느리기 때문에 CPU가 온전한 성능을 내지 못 한다.
그래서 CPU와 RAM의 속도 차이를 극복, 완충해주기 위해 캐시 메모리라는 것이 존재한다.
캐시 메모리
제조사 마다 다르지만 L1, L2 캐시는 코어 마다 따로 사용하는 경우도 있고 함께 사용하는 경우도 있다.
보통 L3 캐시는 코어들이 함께 사용한다.
L1, L2, L3 캐시들을 캐시 메모리라 한다.
예측
예를 들어 CPU가 아래와 같은 코드를 실행한다고 하자.
class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
만약, 배열에 값을 하나씩 RAM에서 가져온다면 속도 차이 때문에 CPU가 제 성능을 내지 못 할 것이다.
그래서 CPU는 'arr[1] 접근.. arr[2] 접근.. 어? 그럼 그 뒤에 값도 사용하겠네?'라고 예측하여 캐시 메모리에 배열을 미리 가져와 속도 차이를 극복한다.
CPU는 필요한 데이터를 캐시 메모리에 있나 확인 후 없는 경우에 RAM에서 가져온다.
캐시 메모리에 필요한 데이터가 있다? -> 캐시 히트
캐시 메모리에 필요한 데이터가 없다? -> 캐시 미스