행복한 연어의 이야기

(윈도우 시스템) 16. 컴퓨터 구조 네번째 본문

IT/윈도우 시스템 프로그래밍

(윈도우 시스템) 16. 컴퓨터 구조 네번째

해피살몬 2021. 8. 20. 19:53

1. 메모리 계층

메모리의 범위와 종류

메인 메모리

RAM

레지스터

CPU 안에 내장되어 있어 연산을 위한 저장소

캐시

CPU 와 RAM 사이에서 중간 저장소 역할을 하는 메모리

캐시메모리는 CPU 의 일부가 아니라 CPU 에 근접해 있는 메모리 개념이다.

하드디스크와 이외 저장장치들

하드디스크. SD 카드, CD - ROM 등

 

메모리 계층 구조

기본적으로 CPU 에 가까울수록 빠르고 멀수록 속도가 느리다.

반대로 용량은 CPU 에 가까울수록 작고 멀수록 커지며 가격도 마찬가지이다.

메모리 계층 구조

CPU 가 메모리를 읽어들이는 방식은 다음과 같다.

레지스터에서 찾는 데이터가 없으면 L1 캐쉬에서 찾는다.

L1 캐쉬에서 찾는 데이터가 없으면 L2 캐쉬에서 찾는다.

L2 캐쉬에서 찾는 데이터가 없으면 메인 메모리에서 찾는다.

메인 메모리에서 찾는 데이터가 없으면 하드디스크에서 찾는다.

 

L1 캐쉬 L2 캐쉬 메모리까지만 찾아도 연산에 필요한 데이터가 존재할 확률이 90% 된다고 한다. 

 

2. 캐쉬와 캐쉬 알고리즘

컴퓨터 프로그램의 일반적인 특성

템퍼럴 로컬리티 (Temporal Locality)

프로그램 실행시 한번 접근이 이뤄진 주소의 메모리 영역은 자주 접근한다.

스페이셜 로컬리티 (Spatial Locality)

프로그램 실행시 접근하는 메모리 영력은 이미 접근이 이루어진 영역의 근처일 확률이 높다.

 

이 두가지 특성이 캐쉬의 성능향상에 도움이 되는 특성들인데

이런 특성을 고려해서 구현된 코드를 캐쉬 프렌들리 코드(Cache Friendly Code)라 한다.

 

캐쉬 알고리즘

레지스터로 값을 가져오기 위해서 L1 캐쉬를 찾아보는데

만약 데이터가 있다면 캐쉬 힛(Cache Hit) 데이터가 없다면 캐쉬 미스(Cache Miss) 라고 한다.

L1 캐쉬에서 캐쉬 미스가 발생하고 L2 캐쉬에서 찾았다면

L2 캐쉬에 있던 데이터들을 L1 캐쉬로 옮기게 되는데

그 데이터만 옮기는것이 아니라 스페이셜 로컬리티를 고려하여 블록 단위로 L1 캐쉬로 이동하게 된다.

또한 꽉찬 L1 캐쉬에 데이터를 저장하려면 기존에 있던 데이터를 교체 하는데

블록 교체 알고리즘에 따라 블록을 교체하게 된다. 

 

3. 가상 메모리

램의 용량보다 큰 프로그램은 어떻게 실행되는가? 에 대한 답변이 가상메모리에 있다.

가상 주소 시스템 1

CPU에는 MMU(Memory Management Unit) 라는 장치카 패키징 되어있는데

이 MMU 가 램의 크기보다 더 큰 용량을 가진것처럼 느껴지게 하는 장치 이다.

가상 메모리와 물리 메모리 사이에서 주소 변환을 담당하는 장치이다.

 

실제 물리 메모리 주소의 공간은 같은 크기의 메모리 공간 여러개로 분할하여 사용하며

그 분할된 영역들을 페이지 프레임(Page Frame) 라고 부른다.

그리고 가상 주소 공간도 나누는데 이 영역들을 페이지(Page) 라고 한다. 

프레임과 페이지의 크기는 일치 하며 두 메모리 블록은 테이블화 시켜서 관리한다.

 

가상 주소 시스템 2

스왑 파일 이라는 기법으로 메인 메모리를 하드디스크 까지 확장할 수 있다.

램 메모리가 꽉찼을때 새로운 메모리를 사용해야 한다면

기존에 램 메모리에 있던 메모리 블록을 하드디스크로 옮기고 

하드디스크에 있던 메모리 블록을 램으로 옮기는 기법이다.

하드디스크가 느리기 때문에 속도 저하는 있겠지만 이렇게 사용하면 램 메모리 보다 큰 프로그램을 실행 할 수 있다.

 

 

 

 

알고 넘어가야할 것

1. 메모리 계층별 역할과 상호작용 관계

2. 캐쉬 메모리가 성능의 도움을 주는 이유

3. 가상 메모리 동작 원리

4. 피라미드 구조상에서의 캐쉬 관계 및 캐쉬 알고리즘

5. MMU 의 역할 

 

'윤성우 저자'님의 '뇌를 자극하는 윈도우즈 시스템 프로그래밍' 책을 보고 정리한 내용입니다.

Comments