Skip to content

학습 기록 | w3 지현

Jihyun Lim edited this page Feb 19, 2025 · 4 revisions

6. 메모리와 캐시 메모리

06-1. RAM의 특징과 종류

#휘발성 저장 장치 #비휘발성 저장 장치 #DRAM #SRAM #SDRAM #DDR SDRAM


주기억장치 → RAM, ROM

메모리 → RAM

RAM의 특징

휘발성 저장 장치 volatile memory

  • RAM

비휘발성 저장 장치 non-volatile memory

  • 하드 다스크, SSD, CD-ROM, USB 메모리와 같은 보조기억장치

보조기억장치인 비휘발성 저장 장치에는 ‘보관할 대상’을 저장하고 휘발성 저장 장치인 RAM에는 ‘실행할 대상’을 저장

💡 CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 RAM으로 복사하여 저장한 뒤 실행

RAM의 용량과 성능

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

‼️ RAM의 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지 않음

RAM의 종류

DRAM

= Dynamic Ram

  • 저장된 데이터가 동적으로 사라지는 RAM
  • 데이터 소멸을 막기 위해 주기적으로 재활성화(다시 저장) 해야 함
  • 일반적으로 메모리로 사용되는 RAM
    • 소비전력 낮고 저렴, 집적도가 높아 대용량 설계 용이

SRAM

= Static RAM

  • 저장된 데이터가 정적인(사라지지 않는) RAM
    • 전원공급 X → 사라짐
  • DRAM보다 일반적으로 입출력 속도가 빠름
  • 일반적으로 캐시 메모리에 사용되는 RAM
    • 소비전력이 높고 비쌈, 집적도가 높아 ‘대용량으로 설계할 필요는 없지만 빨라야하는 장치’에 사용

SDRAM

= Synchronous Dynamic RAM

  • 클럭 신호와 동기화된 발전된 형태의 DRAM
    • 클럭 타이밍에 맞춰 CPU와 정보를 주고받음

= SDR SDRAM

  • 한 클럭당 하나씩 데이터를 주고받을 수 있는 SDRAM

DDR SDRAM

= Double Data Rate SDRAM

  • 발전된 형태의 SDRAM
  • 최근 가장 대중적
  • 대역폭을 넓혀 속도를 빠르게 만듦
    • 한 클럭당 두번씩 CPU와 데이터를 주고받음

DDR2 SDRAM = SDR SDRAM * 4

DDR4 SDRAM = SDR SDRAM * 16 (대중적)

06-2. 메모리의 주소 공간

#물리 주소 #논리 주소 #MMU #베이스 레지스터 #한계 레지스터

물리 주소

physical address

  • 메모리 하드웨어가 사용하는 주소
  • 정보가 실제로 저장된 하드웨어상의 주소

논리 주소

logical address

  • CPU와 실행 중인 프로그램이 사용하는 주소
  • 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
  • 프로그램의 시작점으로부터 떨어진 거리

메모리 관리 장치

MMU; Memory Management Unit

  • 논리 주소와 물리 주소를 변환하는 하드웨어
  • **베이스 레지스터(프로그램의 시작주소)**로부터 논리주소를 이용하여 변환

한계 레지스터

limit register

  • 실행 중인 프로그램의 논리 주소의 최대 크기를 저장
  • 메모리 보호
    • 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 함
  • CPU는 메모리 접근 전 [논리 주소 < 한계 레지스터] 검사 → 인터럽트 (트랩) 발생시켜 실행을 중단

06-3. 캐시 메모리

#저장 장치 계층 구조 #캐시 메모리 #캐시 적중률 #참조 지역성의 원리

저장 장치 계층 구조

  • ‘CPU에 얼마나 가까운가’를 기준으로 한 계층

캐시 메모리

cache memory

  • CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반 저장 장치
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해
  • 메모리에서 사용할 일부 데이터를 ‘CPU’에 가져와 활용

계층적 캐시 메모리 (L1 - L2 - L3 캐시)

  • L1, L2 : 코어 내부
  • L3 : 코어 외부, 멀티 코어 프로세스의 경우 여러 코어가 공유

💡 캐시 메모리는 CPU가 자주 사용할 법한 대상을 예측하여 저장

캐시 히트 cache hit

  • 예측한 데이터가 맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우

캐시 미스 cache miss

  • 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

캐시 적중률 cache hit ratio

  • 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
  • 컴퓨터 대략 85 ~ 95%

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

  • 시간 지역성 temporal locality
    • CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
  • 공간 지역성 spatial locality
    • CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

7. 보조기억장치

07-1. 다양한 보조기억장치

#하드 디스크 #플래터 #데이터 접근 시간 #플래시 메모리 #페이지 #블록

하드 디스크

HDD; Hard Disk Drive

  • 자기 디스크 magnetic disk 의 일종
  • 자기적인 방식으로 데이터 저장

플래터 platter

  • 데이가 저장되는 곳, N극과 S극이 0과 1의 역할 수행
  • 여러 겹의 플래터, 양면 모두 사용

스핀들 spindle

  • 플래터를 회전시키는 요소

RPM

  • Revolution Per Minute
  • 분당 회전수

헤드 head

  • 플래터의 데이터를 읽고 쓰는 요소

디스크 암 disk arm

  • 헤드를 원하는 위치로 이동시킴

트랙 track

섹터 sector

  • 512 바이트 ~ 4096 바이트

실린더 cyllinder

  • 여러 겹의 플래터 상에서 같은 트랙이 위치 한 곳을 연결한 논리적 단위
  • 연속된 정보는 한 실린더에 기록 (헤드를 움직이지 않음)

하드디스크가 저장된 데이터에 접근하는 시간

  • 탐색 시간 (seek time)
    • 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
  • 회전 지연 (rotational latency)
    • 헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간 (transfer time)
    • 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

플래시 메모리

flash memory

  • 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치
  • USB메모리, SD 카드, SSD

종류

  • NAND 플래시 메모리
    • 대용량 저장 장치
  • NOR 플래시 메모리

셀 cell

  • 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • 같은 플래시 메모리라도 수명, 가격, 성능이 다르다
SLC MLC TLC QLC
셀당 bit 1bit 2bit 3bit 4bit
정보의 개수 2 4 8 16
수명 길다 보통 짧다
읽기/쓰기 속도 빠르다 보통 느리다
용량 대비 가격 높다 보통 낮다
시중에서 많이 사용 시중에서 많이 사용 시중에서 많이 사용

페이지 page → 블록 block → 플레인 plane → 다이 die

💡 읽기/쓰기 단위와 삭제 단위는 다르다!

  • 읽기/쓰기 → 페이지 단위
  • 삭제 → 블록 단위

페이지의 상태

  • Free
    • 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
  • Valid
    • 이미 유효한 데이터를 저장하고 있는 상태
  • Invalid
    • 유효하지 않은 데이터(쓰레기값)을 저장하고 있는 상태

⁉️ 삭제가 블록단위로 이루어져 쓰레기값을 삭제할 수 없어 용량 낭비가 발생함

가비지 컬렉션 garbage collection

  1. 유효한 페이지들만을 새로운 블록으로 복사
  2. 기존의 블록을 삭제

07-2. RAID의 정의와 종류

#RAID #RAID 0 #RAID 1 #RAID 4 #RAID 5 #RAID 6

RAID

Redundant Array of Independent Disks

데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술

스트라입 stripe

  • 줄무늬처럼 분산되어 저장된 데이터

스트라이핑 striping

  • 분산하여 저장하는 것

RAID0

  • 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장
  • 장점 : 입출력 속도의 향상
  • 단점 : 저장된 정보가 안전하지 않음

RAID1

= 미러링 mirroring

  • 복사본을 만드는 방식
  • 데이터를 쓸 때 원본과 복사본 두 군데에 씀
  • 장점 : 복구가 간단
  • 단점 : 느린 쓰기 속도, 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적음

RAID4

  • RAID1처럼 완전한 복사본 X
  • 오류를 검출하고 복구하기 위한 정보**(패리티 비트; parity bit)**를 저장
  • 장점 : RAID1 보다 적은 하드디스크로 데이터를 안전하게 보관
  • 단점 : 패리티 디스크의 병목

💡 패리티 비트

  • 원래 패리티 비트는 오류 검출만 가능하고 오류 복구는 불가능함

RAID5

  • 패리티 정보를 분산하여 저장
  • RAID4의 병목현상 해소

RAID6

  • 두 종류의 패리티를 이용
  • 장점 : RAID5보다 안전
  • 단점 : RAID5보다 쓰끼 속도가 느림


더 알아보기

나머지 RAID 종류

https://devocean.sk.com/blog/techBoardDetail.do?ID=163608

하나의 HDD에 몇개 정도의 플래터가 겹쳐져 있을까?


3주차 퀴즈

  1. O / X 퀴즈

    a. SRAM은 정적인 RAM이므로 데이터가 절대 사라지지 않는다. ( O / X )

    b. 캐시메모리에는 주로 SDRAM을 사용한다. ( O / X )

    c. 프로그램의 물리 주소 범위는 [베이스 레지스터 값 + 한계 레지스터 값]을 넘을 수 없다. ( O / X )

    d. RAID에서 패리티 비트로 오류 검출을 할 수 있지만 오류 복구는 불가능하다. ( O / X )

    e. 하드 디스크 탐색 시간은 생각보다 작으므로 무시할만 하다. ( O / X )

  2. 캐시 메모리가 메모리로부터 가져올 데이터를 결정할 때 따르는 원리인 ‘참조 지역성의 원리’ 두가지를 설명하시오.

정답

1. O / X 퀴즈
   a. X (전원공급이 끊길 경우 데이터는 사라진다.)
   b. X (SRAM을 사용한다. SRAM은 Static RAM, SDRAM은 Synchronous Dynamic RAM으로 다르다.)
   c. O
   d. X (원래의 패리티 비트는 오류 검출만 가능하지만 RAID에서는 검출과 복구 모두 가능하다)
   e. X (하드디스크에서 데이터를 탐색하고 읽어들이는 시간이 크다. 
   탐색시간과 회전 지연을 줄이기 위해 플래터를 빠르게 돌리거나 접근하려는 데이터가 가까이 위치해 있는 것도 중요하다.(참조지역성))
   
   
2. 참조 지역성의 원리
   
   시간 지역성
   - 최근에 접근했던 메모리 공간에 다시 접근하려는 경향. for/while과 같은 반복문에 사용되는 변수처럼 한번 참조된 데이터는 여러번 참조될 수 있다.
   
   공간 지역성
   - 접근한 메모리 공간 근처를 접근하려는 경향.  
     관련된 데이터들은 모여서 저장된다.

Clone this wiki locally