본문 바로가기

CS/운영체제

메모리(Memory) Re

메모리에 관한 설명은 우선 그림을 보겠다.

메모리 계층

 

● 레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적다.

● 캐시 : L1, L2, L3 캐시를 지칭합니다. 휘발성, 속도 빠름, 기억 용량이 적다.

● 주기억장치 : RAM을 가리킨다. 휘발성, 속도 보통, 기억 용량이 보통이다.

● 보조기억장치 : HDD, SSD를 일컬으며 비휘발성, 속도 낮음, 기억 용량이 많다.

 

 - 램(주기억장치)은 하드디스크(보조기억장치)로부터 일정량의 데이터를 복사한 후 임시 저장해서 이를

필요 시마다 빠르게 전달하는 역할을 한다.

 

알아두어야 할 것이 메모리의 계층을 나타내기 때문인거 것이지 캐시와 레지스터는 메모리 사이 사이에

존재할 수도 있다.

 

 - 캐시는 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을

줄이기 위한 메모리이다.이렇게 속도 차이를 해결하기 위해 계층과 계층 사이에 있는 계층을 캐싱 계층이라고 한다.

 

지역성의 원리

캐시 계층을 두는 것 말고 캐시를 직접 설정할 때의 경우를 생각해보자. 당연히 자주 사용하는 데이터를 기반으로

만드는 것이 효율적일 것이다.

 

- 시간 지역성 : 최근 사용한 데이터에 다시 접근하려는 특성

- 공간 지역성 : 최근 접근한 데이터를 이루고 있는 공간이나 그 가까운 공간에 접근하는 특성

 

 

캐시트와 캐시미스

캐시에서 원하는 데이터를 찾았다면 캐시히트라고 하며, 해당 데이터가 캐시에 없다면 주메모리(RAM)로

가서 데이터를 찾아오는 것을 캐시미스라고 한다. 캐시히트를 하게 되면 해당 데이터를 제어장치를 거쳐 가져온다.

캐시히트의 경우 위치도 가깝고 CPU 내부 버스를 기반으로 작동하기 때문에 빠르다.

캐시미스가 발생되면 메모리에서 가져오게 되는데 이는 시스템 버스를 기반으로 작동하기 때문에 느리다.

 

캐시매핑

캐시매핑이란 캐시가 히트되기 위해 매핑하는 방법을 말하며 CPU의 레지스터와 주 메모리(RAM)간에 데이터를

주고받을 때를 기반으로 설명한다.  레지스터는 주 메모리에 비하면 굉장히 작고 주 메모리는 굉장히 크기 때문에

작은 레지스터가 캐시 계층으로써 역할을 잘 해주려면 이 매핑을 어떻게 하느냐가 중요하다.

 

- 직접 매핑(directed mapping) : 범위를 둬서 매핑하는 것 충돌이 잦다

- 연관 매핑(associative mapping) : 순서를 일치시키지 않고 관련 있는 캐시와 메모리를 매핑한다. 느리다.

- 집합 연관 매핑(set associative mapping) : 직접 매핑 + 연관 매핑

 

'CS > 운영체제' 카테고리의 다른 글