CS

[컴퓨터 구조] 메모리

hskkkk 2026. 6. 29. 22:00

RAM의 특성과 종류

RAM : 휘발성 저장 장치 - 전원 끄면 사라짐

  • RAM 용량이 크면 많은 프로그램을 동시에 실행하는 데에 유리
  • DRAM (Dynamic RAM)
    • 저장된 데이터가 동적으로 사라지는 RAM -> 데이터의 소멸을 막기 위해 주기적으로 재활성화 해야 함
    • 일반적으로 메모리로 사용되는 RAM -> 상대적으로 소비 전력이 낮고 저렴하고, 집적도가 높아 대용량으로 설계하기 용이
  • SRAM (Static RAM)
    • 저장된 데이터가 정적인 (사라지지 않는) RAM
    • DRAM보다 일반적으로 더 빠름
    • 일반적으로 캐시 메모리에서 사용되는 RAM -> 상대적으로 소비전력이 높고 가격이 높고 집적도가 낮음
    • 대용량으로 설계할 필요는 없으나 빨라야 하는 장치에 사용
  • SDRAM (Synchronous DRAM)
    • 특별한 (발전된 형태의) SDRAM
    • 클럭 신호와 동기화된 DRAM
  • DDR SDRAM (Double Data Rate SDRAM)
    • 특별한 (발전된 형태의) SDRAM
    • 최근 가장 대중적으로 사용하는 RAM
    • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM (대역폭 - 데이터를 주고받는 길의 너비)

 

메모리의 주소 공간

  • 새롭게 실행되는 프로그램은 새롭게 메모리에 적재
  • 실행이 끝난 프로그램은 메모리에서 삭제
  • 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐

=> 시시각각 변하는 메모리에 저장된 값들

논리 주소와 물리 주소로 이루어진 메모리의 주소 공간

물리 주소

  • 메모리 입장에서 바라본 주소
  • 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소

논리 주소

  • CPU와 실행 중인 프로그램 입장에서 바라본 주소
  • 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소

물리 주소와 논리 주소의 변환

  • MMU(메모리 관리 장치)라는 하드웨어에 의해 반환.
    • CPU -> 논리 주소 -> MMU -> 물리 주소 -> 메모리
  • MMU는 논리 주소와 베이스 레지스터 값(프로그램의 기준 주소)을 더하여 논리 주소를 물리 주소로 변환.
  • 논리 주소는 기준 주소로부터 떨어져 있는 거리 값으로 이해하면 됨

 메모리 보호

한계 레지스터

  • 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
  • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장
  • 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값
  • CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사

 

CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다. 

저장 장치 계층 구조

  •  CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
  • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈

캐시 메모리

  • CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생
  • 계층적 캐시 메모리 (L1-L2-L3 캐시)

일반적으로 L1 캐시와 L2 캐시는 코어 내부에, L3 캐시는 코어 외부에 위치한다.
멀티코어 프로세서의 캐시 메모리

참조 지역성의 원리

  • 캐시 메모리는 메모리보다 용량이 작다.
  • 메모리의 모든 내용을 저장할 수 없다. (당연)
  • CPU가 자주 사용할 법한 내용을 예측하여 저장한다.
  • 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) => 캐시 적중률을 높여야 함!
    • CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있음
    • CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있음

 

보조 기억 장치

  • 비휘발성 저장 장치

  • 하드 디스크
    • 자기적인 방식으로 데이터 저장
    • RPM (Revolution Per Minute) : 분당 회전수
    • 기본적으로 트랙과 섹터 단위로 데이터 저장 (섹터의 크기: 512 바이트 ~ 4096 바이트)
    • 실린더(cylinder): 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
    • 하드 디스크가 저장된 데이터에 접근하는 시간
      • 탐색 시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
      • 회전 시간 : 헤드가 있는 곳으로 플래터를 회전시키는 시간
      • 전송 시간 : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

탐색, 회전, 전송
ns(나노초)는 10-9초

  • 플래시 메모리
    • 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치 (범용성이 넓어서 보조기억장치에만 속한다고 보긴 어려움)
    • NAND 플래시 메모리
    • NOR 플래시 메모리
    • 셀(cell) : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위 -> 이 셀이 모여서 수 MB, GB, TB 저장 장치가 됨
    • 읽기 / 쓰기의 단위와 삭제 단위가 다름 -> 읽기/쓰기는 페이지 단위, 삭제는 (페이지보다 큰) 블록 단위로 이루어짐
    • 페이지(저장단위)가 갖는 상태
      • Free 상태 : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
      • Valid 상태 : 이미 유효한 데이터를 저장하고 있는 상태
      • Invalid 상태 : 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태
      • 가비지 컬렉션 
        • 유효한 페이지들만을 새로운 블록으로 복사
        • 기존의 블록을 삭제하여 공간을 정리

-> 플래시 메모리는 하드디스크와 달리 덮어쓰기가 불가능

가비지 컬렉션

    • 종류 - SLC, MLC, TLC

 

RAID

  • RAID (Redundant Array of Independent Disks)
  • 하드 디스크와 SSD로 사용하는 기술
  • 데이터의 안정성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술

RAID 레벨

  • RAID를 구성하는 기술
  • 스트라입(stripe) : 마치 줄무늬처럼 분산되어 저장된 데이터
  • 스트라이핑(striping) : 분산하여 저장하는 것
  • RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 등
  • RAID 0
    • 데이터를 단순히 나누어 저장하는 구성 방식
    • 저장되는 데이터가 하드디스크 개수만큼 나뉘어 저장
    • 입출력 속도의 향상. BUT 저장된 정보가 안전하지 않음
  • RAID 1
    • 미러링 - 복사본을 만드는 방식
    • 데이터를 쓸 때 원본과 완전한 복사본 두 군데에 씀 (느린 쓰기 속도)
    • 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어짐
    • 복사본이 만들어지는 용량만큼 사용 불가 -> 많은 양의 하드 디스크가 필요 -> 비용 증가
  • RAID 4
    • (RAID 1처럼 완전한 복사본을 만드는 대신) 패리티 비트를 저장
    • 패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고, 오류가 있다면 복구
    • 단점 : 패리티 디스크의 병목 

  • RAID 5
    • 패리티 정보를 분산하여 저장하는 방식, 패리티 병목 완화

  • RAID 6
    • 두 종류의 패리티(오류를 검출하고 복구할 수 있는 수단)
    • RAID 5보다 안전, 쓰기는 RAID 5보다 느림

 

 

출처: 혼공컴운

'CS' 카테고리의 다른 글

[운영체제] 프로세스와 스레드  (0) 2026.07.04
[운영체제] 커널, 시스템 콜, 이중 모드  (0) 2026.07.03
[컴퓨터 구조] 입출력장치  (0) 2026.07.03
[컴퓨터 구조 ]  CPU  (0) 2026.06.29
[자료구조] Heap  (0) 2026.06.29