👩‍💻 알고리즘/🎛️ 컴퓨터 구조 & OS

[혼공학습단 12기] 6장, 메모리

오브 🧙‍♂️ 2024. 7. 21. 18:21

" RAM 정의 " 

실행할 프로그램의 명령어와 데이터가 저장되는 곳

 

- 전원을 끄면 저장된 내용이 사라지는 저장 장치 (휘발성 저장 장치)

 

- 일반적으로 보조기억장치인 비휘발성 저장 장치에는 '보관할 대상'을 저장하고 /

휘발성 저장 장치에는 '실행할 대상'을 저장함.

WHY?

보조기억장치는 전원이 나가도 내용을 유지하지만, CPU는 보조기억장치에 직접 접근하지 못하기 때문

 

" RAM 용량과 성능 "

- CPU가 실행하고 싶은 프로그램이 보조기억장치에 있으면, 이걸 RAM으로 끌고 와야 된다.

RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어지게 된다.

(EX. ) 도서관 책장에서 책을 뽑아 책장에 읽는 상황과 비슷하다. 책상이 크면 책을 많이 올려둘 수 있고, 동시에 읽을 수 있기 때문이다. )

 

" RAM 종류 "

1. DRAM (Dynamic RAM)

저장된 데이터가 동적으로 변하는 RAM

 

- 시간이 지나면 저장된 데이터가 점차 사라진다.

- 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(재저장) 해야 한다.

- 소비 전력이 낮고, 저렴하고, 집적도(작고 빽빽하게)가 높아 대용량으로 설계하기 유리해 일반적으로 많이 사용한다.

 

2. SRAM (Static RAM)

저장된 데이터가 변하지 않는 RAM

 

- 시간이 지나도 저장된 데이터가 사라지지 않는다.

- 데이터의 소멸을 막기 위해 재활성화할 필요도 없다.

- DRAM보다 속도가 빠르다.

- 소비 전력이 크고, 비싸고, 집적도가 낮아 [대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장 장치]에 사용한다. (ex. 캐시 메모리)

 

3. SDRAM 

클럭 신호와 동기화된, 발전된 형태의 DRAM

 

- 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있는 DRAM

 

4. DDR SDRAM 

대역폭(데이터를 주고받는 길의 너비)을 넓혀 속도를 빠르게 만든 SDRAM

 

- 최근 가장 흔히 이용되는 RAM

- 한 클럭에 하나의 정보를 주고받을 수 있는 SDRAM과 비교했을 때 너비가 2배인 도로와 같다. ( 전송 속도가 2배가량 빠르다)

185p3번
1. 주로 캐시 메모리에 활용된다. (SRAM)
2. 주로 기억장치로 활용된다. (DRAM)
3. 대용량하기 유리하다. (DRAM)
4. 집적도가 상대적으로 낮다. (SRAM)

 

" 물리 주소 " 

메모리 하드웨어가 사용하는 주소

 

- 정보가 실제로 저장된 하드웨어상의 주소

 

" 논리 주소 " 

CPU와 실행 중인 프로그램이 사용하는 주소

 

- 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

- 프로그램마다 같은 논리 주소가 얼마든지 있을 수 있다.

 

" 메모리 관리 장치 (MMU) " 

-CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 한다. 

-논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치해 있다.

 

- 베이스 레지스터는 프로그램의 가장 작은 물리 주소(=프로그램의 첫 물리 주소)를 저장하고,

논리 주소는 프로그램의 시작점으로부터 떨어진 거리를 저장한다. 

 

" 메모리 보호 기법 " 

- 프로그램의 논리 주소 영역을 벗어나면 명령어가 제대로 작동하지 않는다.

 

한계 레지스터

- 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호한다.

- 논리 주소의 최대 크기를 저장한다. 

- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 크면 안 된다. 

 

- CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은 지를 항상 검사한다. 만약 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)를 발생시켜 실행을 중단시킨다. 

" 캐시 메모리 "

CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생

 

- CPU와 메모리 사이에 위치해, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치

- 물건을 사러 갈 때 가까운 편의점에 그 물건이 있다면, 멀리 있는 큰 마트에 갈 필요가 없다. 캐시 메모리는 편의점!

- CPU에 가까운 순서대로 계층을 구성( 코어와 가장 가까운 캐시 메모리는 L1 캐시, 가장 먼 캐시 메모리는 L3 캐시 )

- 메모리는 실행 중인 대상을 저장하고, 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다. 예측이 맞아 실제로 활용된다면 이건 캐시 히트!  /  예측이 틀리면 캐시 미스!

- 캐시 미스가 계속 나면 성능이 떨어진다. ( 직접 메모리에서 다 가져와야 하니까 )

 

저장 장치 계층 구조

출처 : https://www.scaler.com/topics/memory-hierarchy/

[ 명제 ] 

1. CPU와 가까울수록 저장 장치의 속도가 빠르다.

2. 속도가 빠르면 저장 용량이 적고 가격이 비싸다.

 

( EX.) CPU와 가까운 레지스터는 RAM보다 용량은 적지만, 속도가 압도적으로 빠르고 /

RAM은 USB 메모리에 비해 속도가 빠르지만 가격이 비싸다 )

 

" 참조 지역성의 원리 "

캐시 적중률을 높이기 위한 원리

[ 원리 ]

1. CPU는 최근 접근했던 메모리 공간에 다시 접근하려는 경향이 있다. (시간 지역성)

- 변수에 저장된 값은 일반적으로 한 번만 사용되지 않고 프로그램이 실행되는 동안 여러 번 사용된다. 

 

2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. (공간 지역성)

- 프로그램이 모여있는 공간 근처를 집중적으로 접근할 것이고, 사용자가 쓰려는 해당 기능이 모여있는 공간 근처를 접근하려고 한다. 

205p 1번
레지스터
캐시메모리
메모리
보조기억장치