[혼공컴운] Chap 6. 메모리와 캐시 메모리

반디·2023년 1월 22일
0

컴구/OS

목록 보기
5/9

RAM

RAM은 명령어와 데이터를 저장하는 주기억장치로 전원을 끄면 저장된 명령어와 데이터가 모두 날아가는 휘발성 저장 장치입니다.

RAM보조기억장치(HDD, SSD, USB 등)
휘발성 저장 장치비휘발성 저장 장치
CPU 접근 가능CPU 접근 불가능
실행할 대상 저장보관할 대상 저장

CPU는 보조기억장치에 직접 접근하지못하므로, CPU가 실행하고 싶은 프로그램이 보조기억장치에 있는 경우 이를 RAM으로 복사하여 저장한 뒤 실행합니다.
따라서, RAM의 용량이 크다면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리합니다. 그렇지만 용량이 필요 이상으로 커지면 RAM의 용량이 커져도 속도가 크게 증가하지 않습니다.

1. DRAM (Dynamic RAM)

  • 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
  • 데이터의 소멸을 막기 위해 일정 주기로 데이터를 다시 저장해야함
  • 대용량 설계에 용이 (소비전력이 비교적 낮고, 저렴하고, 집적도가 높음) \rightarrow RAM에 많이 사용

2. SRAM (Static RAM)

  • 시간이 지나도 저장된 데이터가 사라지지 않음
  • 일반적으로 DRAM보다 속도가 빠름
  • 캐시 메모리에 사용 (대용량으로 만들어질 필요는 없지만 속도는 빨라야 하는 저장 장치)

DRAM과 SRAM을 비교해보겠습니다.

DRAMSRAM
재충전필요함필요 없음
속도느림빠름
가격저렴함비쌈
집적도높음낮음
소비 전력적음높음
사용 용도RAM캐시 메모리

3. SDRAM (Synchronous Dynamic RAM)

  • 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
  • SDR SDRAM (Single Data Rate SDRAM) 이라고도 부름

4. DDR SDRAM (Double Data Rate SRAM)

  • 최근 가장 흔히 사용되는 RAM
  • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM (SDRAM에 비해 2배의 속도)
    • DDR2 SDRAM: (DDR SDRAM 대역폭) X 2 = (SDRAM 대역폭) X 222^2
    • DDR3 SDRAM: (DDR2 SDRAM 대역폭) X 2 = (SDRAM 대역폭) X 232^3
    • DDR4 SDRAM: (DDR3 SDRAM 대역폭) X 2 = (SDRAM 대역폭) X 242^4

메모리의 주소 공간

물리 주소논리 주소
메모리 하드웨어가 사용하는 주소CPU와 실행 중인 프로그램이 사용하는 주소
정보가 실제로 저장된 주소프로그램에게 부여된 0번지부터 시작되는 주소

논리 주소     \iff 물리 주소

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

  • 메모리 관리 장치(MMU): CPU와 주소 버스 사이에 위치한 HW로, 논리 주소와 물리 주소 간의 변환 수행
    • MMU는 CPU가 발생시킨 논리 주소 + 베이스 레지스터 값을 물리 주소로 변환
      • 베이스 레지스터: 프로그램의 첫 물리 주소를 저장
      • 논리 주소: 프로그램의 시작점으로부터 떨어진 거리를 의미

ex) 프로그램 A의 물리 주소: 15000번지, CPU 명령: 프로그램 A의 100번지 데이터 삭제
\longrightarrow CPU가 발생시킨 논리 주소: 100, 베이스 레지스터 값: 15000 \Rightarrow 물리 주소: 15100
\longrightarrow 메모리에서 15100번지의 데이터를 삭제

메모리 보호 기법

다음 상황을 가정해보겠습니다.

메모장 프로그램의 물리 주소: 1000번지 ~ 1999번지, 인터넷 브라우저의 물리 주소: 2000번지 ~ 2999번지
CPU 명령: 메모장 1500번지에 숫자 100을 저장 

이 명령어를 수행하게 되면 메모리의 2500(=1000+1500)번지, 즉 인터넷 브라우저 프로그램에 숫자 100을 저장하게 됩니다.
따라서 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 수 있는 방법이 필요합니다.

  • 한계 레지스터: 논리 주소의 최대 크기 저장
    \rightarrow 베이스 레지스터 값 \le 프로그램의 물리 주소 <\lt 베이스 레지스터 값 + 한계 레지스터 값

따라서, CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안됩니다. CPU가 한계 레지스터 값을 넘어서는 논리 주소에 접근하려고 하면 인터럽트를 발생시켜 실행을 중단합니다.

캐시 메모리

CPU가 메모리에 접근하는 시간 < CPU 연산 속도 이므로, 이를 극복하기 위한 저장 장치로 캐시 메모리가 고안되었습니다.

저장 장치 계층 구조 (Memory Hierarchy)

저장 장치는 일반적으로 아래와 같은 명제를 따릅니다.
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
- 속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비쌈

  • 저장 장치 계층 구조: CPU에 가까운 정도를 기준으로 저장 장치를 계층적으로 표현한 것
    • CPU와의 거리: 레지스터 < RAM < USB 메모리
    • 가격: USB 메모리 < RAM < 레지스터
    • 속도: USB 메모리 < RAM < 레지스터

https://tvtropes.org/pmwiki/pmwiki.php/UsefulNotes/MemoryHierarchy

캐시 메모리

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

CPU는 프로그램을 실행하는 과정에서 메모리에 빈번히 접근해야하지만 CPU가 메모리에 접근하는 속도 < CPU의 연산 속도이므로, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 이 속도 차이를 줄입니다.

  • CPU와의 거리: L1 캐시 < L2 캐시 < L3 캐시
  • 용량: L1 캐시 < L2 캐시 < L3 캐시
  • 속도: L3 캐시 < L2 캐시 < L1 캐시
  • 일반적으로, L1, L2 캐시는 CPU 내부에, L3 캐시는 CPU 외부에 위치
  • 멀티 코어 프로세서에서 L1, L2 캐시는 CPU마다 고유한 캐시 메모리로 할당, L3 캐시는 여러 CPU가 공유
  • 분리형 캐시: L1 캐시를 L1I(명령어만 저장) + L1D(데이터만 저장)로 분리한 형태

참조 지역성 원리 (principle of locality)

참조 지역성 원리는 캐시 메모리가 메모리로부터 가져올 데이터를 결정하는 원칙입니다.

보조기억장치메모리캐시 메모리
전원이 꺼져도 기억할 대상을 저장실행 중인 대상을 저장CPU가 사용할 법한 대상을 예측하여 데이터를 저장
  • 캐시 히트: 캐시 메모리 내 데이터가 CPU에서 활용되는 것
    • 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
  • 캐시 미스: 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

참조 지역성의 원리

  • 시간 지역성: CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
    (변수에 값을 저장하고 나면 언제든 다시 접근하여 저장된 값을 사용할 수 있음)
  • 공간 지역성: CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다
    (프로그램 내에서도 관련 데이터들은 모여서 저장됨)

확인문제
p.185, 3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰시오

  • 주로 캐시메모리로 활용됩니다: SRAM
  • 주로 주기억장치로 활용됩니다: DRAM
  • 대용량화하기 유리합니다: DRAM
  • 집적도가 상대적으로 낮습니다: SRAM

p.205, 1. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.
1: 레지스터, 2: 캐시 메모리, 3: 메모리, 4: 보조기억장치

참고문헌
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299014282&start=slayer

profile
꾸준히!

0개의 댓글