본문 바로가기
ੈ✩‧₊˚Computer Science/컴퓨터구조

[컴퓨터구조] 메모리 계층구조 기본 (Memory hierarchy general)

by 샨샨 2020. 11. 20.
반응형

메모리가 왜 중요한가 ? 메모리는 컴퓨터 시스템 성능의 아주 큰 영향을 미친다.

 

대부분의 메모리

큰 메모리 작은 메모리
느리다, 싸다 ( Slow & Cheap ) 빠르다, 비싸다 ( Fast & Expensive)

☞ 하지만 우리는 용량도 크면서 싸고, 빠른 메모리를 원한다 !!

 이를 위해, 메모리 계층구조(Memory hierarchy) 라는 것이 만들어짐

 

메모리 계층구조

 

- 계층구조는 메모리를 아래 단계에서 가져다 쓰면서 맨 위의 register가 용량이 magnetic tape인 것처럼 사용할 수 있다.

- register에 cpu가 원하는 메모리가 없으면 cache에서 찾고 또 없으면 main memory에서 찾는다..(반복)

 

메모리 지역성 (locality)

  • 시간적 지역성 (temporal locality) : 조금전에 썼던 데이터는 이따가 또 쓴다.
  • 공간적 지역성 (spartial locality) : 지금 쓰는 data에 가까이있는 데이터는 곧 참조될 확률이 크다.

시간적 지역성 설명

우리가 a + b = c 를 하고난 후, 다시 a,b,c 의 변수를 사용하게 될 확률이 높기 때문에 이 데이터를 가장 꼭대기 단계에 가져다 두고 계속 사용한다.

공간적 지역성 설명

for(i=0;i<10;i++) sum += a[i]; 의 예시를 보면 a[0], a[1], a[2]를 순차적으로 접근하게 된다. 이에 따라 copy할 때 하나의 번지만 높은 단계에 올려두는 것이아니라 주위 번지도 함께 올린다.

 

☞이러한 지역성(locality)으로 많은 용량의 빠른 메모리를 만들어낼 수 있다!

 

메모리 access에 대한 기본 개념

  • block : 데이터를 보내는 가장 기본 단위
  • hit : 꼭대기 레벨에서 데이터를 찾았는데 있는 경우
  • miss : 꼭대기 레벨에서 데이터를 찾았는데 없는 경우

miss의 경우 데이터를 아래 단계에서 가져와야한다.

CPU 멈춤(stall) -> 아래 단계에서 데이터 가져옴(시간이 굉장히 많이 소모) -> 이러한 과정이 빈번해지면 성능 저하

 

반응형