[C.A] Cache Memory

touhou09·2024년 11월 16일
0

컴퓨터 이론

목록 보기
11/47

CPU는 프로그램을 실행하는 과정에서 memory에 접근해 저장된 데이터를 사용한다.
memory에 접근하는 시간은 CPU의 연산 속도보다 당연히 느린데, 접근 시 overhead를 줄이기 위한 저장 장치로 Cache Memory를 사용한다.

Memory hierarchy

  • CPU와 가까울수록 빠른 저장 장치이다.
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

위 2가지의 기준으로 저장 장치를 계층적으로 분류한다.

Register - RAM - Disk

위의 경우 register는 일반적으로 RAM보다 용량은 작지만, 접근 시간이 압도적으로 빠르고 가격이 비싸다.
그리고 Disk보다 CPU에 더 가까운 RAM의 접근 시간이 훨씬 더 빠르지만, 같은 크기면 RAM이 더 비싸다.

이러한 memory hierarchy의 상하 기준은 아래와 같다.

  • 속도
  • 용량
  • 가격

cache memory

CPU와 memory 사이에 위치해 register보다 용량이 크고 메모리보다 빠른 저장 장치이다.
말 그대로 CPU에 가장 빠르게 데이터를 줄 수 있으며, cache에 필요한 데이터가 있다면 memory까지의 접근 시간을 줄일 수 있다.

Cache는 아래와 같이 분류 가능하다

  • L1 cache
    코어와 가장 가까운 cache
  • L2 cache
    그 다음 가까운 cache (L1 cache와 함께 CPU 내부에 있다)
  • L3 cache
    그 다음으로 가까운 cache (CPU 외부에 있다)

memory hierarchy를 바탕으로 생각해보면 L1, L2, L3 순으로 크기가 작으며 L1, L2, L3 순으로 빠르며 비싸다고 볼 수 있다.

참조 지역성

cache는 memory보다 용량이 작다.
당연히 memory가 보조 기억 장치의 일부를 복사하여 저장하듯이 cache는 memory의 일부를 복사해서 저장하도록 한다.

cache는 memory가 사용할 법한 데이터를 저장하도록 하는데, 이때 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 cache 내 데이터가 CPU에서 사용되는 경우를 cache hit라고 부른다.

반대로 예측이 틀려 memory에서 필요한 데이터를 직접 가져오는 경우를 cache miss라고 부르고, cache hit가 일어나는 비율을 cache hit ratio라고 부른다.

cache hit ratio = cache hit / (cache hit + cache miss)

상용 컴퓨터의 cache hit ratio 비율은 대략 85 ~ 95% 이상이다.

CPU가 사용할 법한 데이터를 제대로 예측해서 cache hit ratio를 높여야하고 이를 위해서는 locality of refernce, principle of locality (참조 지역성의 원리)라고 한다.
CPU가 memory에 접근할 때의 주된 경향을 바탕으로 만들어졌고 아래 기준을 따른다.

  1. 최근에 접근했던 memory 공간에 다시 접근하려는 경향 (temporal locality)
  2. 접근한 메모리 공간 근처를 접근하려는 경향 (spatial locality)
profile
Engineer가 되기 위하여

0개의 댓글