본문 바로가기

카테고리 없음

메모리 구조(Memory Structure)

1. CPU(Central Processing Unit)

컴퓨터 시스템을 컨트롤하고 프로그램의 연산을 실행, 처리하는 가장 핵심적인 컴퓨터의 제어장치

연산장치

데이터를 처리한다.

실제로 연산은 CPU내의 Register들이 한다.

 

2. RAM(Random Access Memory)

프로그램이 실행되는 동안 필요한 데이터를 저장하는 메모리

찾으려는 데이터의 범주를 줄이기 위해 사용한다.

 

2-1. RAM작동 원리

프로그램을 실행하면 프로그램의 복사본을 인스턴스로 띄워둔다.

그럼 실행 중인 프로그램만 RAM에 올라가게 되어 실행 중이 아닌 프로그램은 탐색할 필요가 없어져 탐색 속도가 빨라진다.

 

2-2. RAM을 사용하는 이유

하드디스크와 CPU의 속도차이를 완충하기 위함

- CPU의 데이터 처리 속도에 비해 데이터의 전달 속도가 느려 성능 저하가 발생하기 때문

 

3. 캐시 메모리 : Cache Memory

데이터나 값을 미리 복사해 놓는 임시 장소 

메인 메모리 접근을 빠르게 하기 위해 CPU칩 내부나 바로 옆에 탑재하는 작은 메모리

 

- L1 캐시: CPU와 1:1 매핑되어 있다.

- L2 캐시: RAM과 CPU 사이에서 완충작용을 한다. L1보다 느리지만 RAM보다 빠르다.

- L3 캐시: RAM과 1:1 매핑되어 있다.

 

보통 프로세서에서는 L3 캐시 메모리를 달고 있지 않다.

L2 캐시로 충분히 커버할 수 있기 때문

 

3-1. 캐시를 굳이 L1, L2, L3로 구분하는 이유?

레벨별로 크기와 액세스 속도를 다르게 구축함으로써

필요한 데이터에 더 빠르고 효율적으로 액세스 할 수 있도록 하기 위함

 

3-2. CPU 캐시 작동방식 

연산 시 필요한 데이터를 L1, L2, L3 순서대로 조회한다.

L3에서도 필요한 데이터를 못 찾으면 메인 메모리에 접근한다. 이를 캐시미스라고 한다.

자주 사용되는 데이터와 최근에 사용한 데이터를 L2에 올려둔다.

 

3-3. 캐시메모리 : 공간지역성

어떤 메모리 공간에 접근했을 때 

그다음에는 그에 인접한 메모리 공간에 접근할 확률이 상대적으로 높다

 

3-4. 캐시 메모리가 데이터를 읽는 방법 : 캐시메모리를 쓰는 이유

어떤 데이터가 필요할 때 그 데이터를 기준으로 인접한 데이터를 라인 단위로 모두 읽어온다.

캐시는 공간지역성을 이용해서 현재 필요한 데이터와 인접한 데이터를 라인 단위로 읽어서 복제(=캐싱)해둔다.

그럼 데이터를 탐색할 때 RAM에서 탐색하기 전에 먼저 캐싱되어있는 데이터를 탐색하므로 탐색 시간이 줄어든다.

 

3-5. 관련 용어 : 캐시 히트(Cache hit), 캐시 미스(Cache miss)

필요한 데이터를 캐싱된 데이터에서 찾는데에 성공/실패를 의미한다.

캐시미스 발생 시 RAM에서 다시 탐색한다 

 

 

참고 링크

CPU L1, L2, L3 캐시란? 초고속 처리의 비결