반응형
메모리가 왜 중요한가 ? 메모리는 컴퓨터 시스템 성능의 아주 큰 영향을 미친다.
대부분의 메모리
큰 메모리 | 작은 메모리 |
느리다, 싸다 ( 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) -> 아래 단계에서 데이터 가져옴(시간이 굉장히 많이 소모) -> 이러한 과정이 빈번해지면 성능 저하
반응형
'ੈ✩‧₊˚Computer Science > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 부동 소수점 연산(Floating point number arithmetic) (0) | 2020.11.22 |
---|---|
[컴퓨터구조] 캐시(Cache) (0) | 2020.11.20 |
[컴퓨터구조]Data hazard (forwarding) (0) | 2020.11.17 |
[컴퓨터구조] Pipelining Hazard (파이프라인 해저드) (0) | 2020.11.13 |
[컴퓨터구조] MultiCycle Datapath (0) | 2020.11.06 |