Multilevel Caching

1 minute read

다단계 캐시를 이용한 실패 손실 줄이기

캐시는 1차 캐시, 2차 캐시로 나뉜다. (인텔은 3차 캐시까지 존재)
캐시 찾는 것에 실패하더라도 메모리 접근하는 것보단 빠른 캐시를 하나 더 둔다.

2차 캐시는 프로세서에 내장되며
1차 캐시 실패 발생 시 접근된다.
실패 손실의 감소 효과를 가져온다.

메모리 접근하는 시간이 실패 처리 포함해서 100ns 인데
1차 캐시 실패율이 2%, 2차가 0.5%에 접근 시간 5ns 이므로
1차 캐시만 둘 경우에는 메인 메모리 접근 시 100/0.25 = 400 클럭 사이클 손해이다.
따라서 전체 CPI 는 1.0 + 0.02 * 400 = 9 가 된다.

2차 캐시가 있을 때는
2차를 접근하는 것은 5/0.25 = 20 클럭 사이클이므로
전체 1 + 0.02 * 20 + 0.005 * 400 = 3.4로
1차만 보고 메모리 접근하는 것보다 2.6배 빠르다.

1, 2차 캐시의 고려사항

1차 캐시는 적중 시간을 최소화하는데 목표가 있다.
1차 캐시는 블록 크기가 작아서 실패 시 손실이 감소한다.

2차 캐시는 실패율을 줄이는데 목표가 있다.
따라서 블록의 크기가 크다.
찾는데 시간이 아무리 걸려도 메인 메모리 접근하는 것보단 낫다.
연관 정도도 크다.

신용도 있는 메모리 계층 구조

컴퓨터 구조와 시스템 소프트웨어를 공부하면서 느낀 것이지만
항상 절대 정답만을 이야기한다고 알아왔던 컴퓨터가
일부는 예측을 통해 작업이 이루어지고
컴퓨터의 실수로 fault 가 발생할 수도 있다는 사실에 약간 멘탈이 흔들리기도 하였다.

그래서 컴퓨터에도 신뢰도가 필요하다. 아무리 컴퓨터이지만 인간이 만들었으므로 완벽하지가 않다.

신뢰성이란 서비스 수행의 지속성에 대한 측도이다.
기준 시점에서부터 장애 발생까지의 시간이다.

신뢰성의 척도는 두 가지로 나뉜다.
평균 무장애시간 MTTF, 연간 장애율 AFR
그리고 이를 복구하는데 사용되는 시간을 평균 복구시간 MTTR 이라 하고
장애와 장애 사이의 시간을 장애간 평균시간 MTBF 라고 한다.

이때 컴퓨터의 가용성은

MTTF / (MTTF + MTTR) 이다.

또한 MTBF = MTTF + MTTR 로,
MTTF / MTBF 라 쓸 수도 있다.