컴퓨터 & 코딩/CS

[혼공학습단 10기][혼공컴운] 메모리와 캐시 메모리

구로그 2023. 7. 5. 16:33
728x90

✓ RAM의 특징과 종류 

1) 휘발성 저장 장치이다: 전원을 끄면 내용이 사라진다 (비휘발성 저장 장치: HDD, SSD, USB 메모리 등 보조기억장치) 

✏️ CPU는 메모리(RAM)에만 접근 가능. 
그래서 비휘발성 저장 장치에는 '보관할 대상'을 저장
휘발성 저장 장치에는 '실행할 대상'을 저장 

2) RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다.

 

 

✓ RAM의 종류

1) DRAM (Dynamic RAM) : 시간이 지나면 저장된 데이터가 점차 사라지기 때문에 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장) 해야 한다. 일반적으로 사용되는 메모리  

2) SRAM (Static RAM): 전원이 공급된다면 시간이 지나도 저장된 데이터가 사라지지 않는다. 

  DRAM SRAM
재충전 필요 필요 없음
속도 느림 빠름
가격 저렴 비쌈
집적도 높음 낮음
소비 전력 적음 높음
사용 용도 주기억장치(RAM) 캐시 메모리

* 집적도: 더 작고 빽백하게 만들 수 있는 정도. 집적도가 높으면 대용량으로 설계하기 용이하다. 

 

3) SDRAM (Synchronous Dynamic RAM / SDR SDRAM Single Data Rate SDRAM): 발전된 형태의 DRAM. 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있음

4) DDR SDRAM (Double Data Rate SDRAM): 최근 가장 흔히 사용되는 RAM. 대역폭(데이터를 주고받는 길의 너비)을 넓혀 속도를 높였다. (SDR보다 너비가 두 배, DDR2는 너비가 네 배, DDR3은 여덟배, DDR4는 열여섯배) 

 

 

✓ 메모리의 주소 공간

1) 물리 주소: 하드웨어가 사용하는 주소. 정보가 실제로 저장된 하드웨어상의 주소 

2) 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소

✏️ MMU Memory Management Unit 메모리 관리 장치
- 논리 주소와 물리 주소 간의 변환 (CPU와 주소 버스 사이에 위치)
- CPU가 발생시킨 논리 주소(프로그램의 시작점으로부터 떨어진 거리) + 레지스터 값(베이스 레지스터/프로그램의 첫 물리 주소) = 물리주소로 변환 
❗️ 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터) 값 미만 
* 베이스레지스터 : 물리 주소 시작점
* 한계 레지스터: 프로그램의 크기. 다른 프로그램의 영역을 침범할 수 있는 명령어를 막고 메모리를 보호한다. 

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

 

 


 

✓ 캐시 메모리 

❗️ CPU가 메모리에 접근 하는 시간 < CPU의 연산 속도 

 

이 차이를 극복하기 위한 저장장치가 캐시 메모리이다.  

- 메모리 사이에 위치

- 레지스터 보다 용량이 크고 메모리보다 빠른 SRAM 기반

- CPU가 사용할 일부 데이터가 미리 저장됨 

- CPU(코어)와 가까운 대로 L1 캐시, L2캐시, L3캐시 이렇게 부른다. 

 

💡 메모리 - 집에서 멀리 있는 대형마트
캐시 메모리 - 집 근처에 있는 편의점

 

 

저장 장치 계층 구조 Memory Hierarchy : CPU에 얼마나 가까운지를 나타냄 

 

 

 

 

 

 

캐시 메모리에는 CPU가 사용할 법한 대상을 예측하여 저장하는데, 그 예상이 맞아들었을 경우 '캐시 히트'라 부르고 반대의 경우 '캐시 미스'라 부른다. 

✏️ 캐시 적중률 = 캐시 히트 횟수 / (캐시 해트 횟수 + 캐시 미스 횟수) 

 

 

✅ 참조 지역성의 원리 locality of reference, principle of locality 

CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리 

1) 시간 지역성 temporal locality: 최근에 접근했던 메모리 공간에 다시 접근하려는 경향. 변수에 값을 저장한 후 언제든 변수에 다시 접근하여 변수에 저장된 값을 사용. 

2) 공간 지역성 spatial locality: 접근한 메모리 공간 근처를 접근하려는 경향.  보통 관련 데이터들끼리 한데 모여있음.

 

 

 

 

반응형