메모리 & 보조기억장치와 입출력장치

taeyul_de·2025년 2월 5일
0

컴퓨터를 사람에 비유하면
CPU는 두뇌,
메모리는 단기 기억,
보조기억장치는 장기 기억,
입출력 장치는 감각기관과 손, 발 같은 역할을 한다.


💽 메모리(주기억장치) - 컴퓨터의 "단기 기억"

💡 메모리는 컴퓨터가 당장 사용할 데이터를 보관하는 장소
사람으로 치면, 단기 기억력과 같다.

🔹 RAM (Random Access Memory, 램)

  • 작업 중인 데이터를 저장하는 공간
  • CPU가 실행 중인 프로그램을 빠르게 가져올 수 있도록 저장
  • 전원이 꺼지면 데이터가 사라짐 → "휘발성 메모리"
  • RAM이 클수록 프로그램을 더 많이 실행 가능

📌 예시

  • "웹 브라우저를 켜서 유튜브를 본다?" → RAM에 유튜브 데이터가 저장됨.
  • "게임을 실행했다?" → RAM에 게임 데이터가 올라감

1️⃣ DRAM (Dynamic RAM) - 일반적인 램

💡 "주기적으로 새로고침(Refresh)해야 하는 램"

  • 데이터를 유지하려면 전기를 계속 공급해야 함
  • 구조가 단순하고 저렴하지만 속도가 느림
  • 일반적인 컴퓨터 메모리(RAM)으로 사용

📌 예시: 우리가 흔히 말하는 RAM이 대부분 DRAM


2️⃣ SRAM (Static RAM) - 빠른 캐시 메모리

💡 "새로고침(Refresh) 없이 데이터 유지 가능"

  • 전원이 연결된 동안 데이터가 자동으로 유지됨
  • 속도가 빠르고 성능이 좋지만, 비싸고 용량이 작음
  • 주로 CPU의 캐시 메모리(L1, L2, L3)로 사용

📌 예시: CPU 내부에 있는 캐시(Cache) 메모리


3️⃣ SDRAM (Synchronous DRAM) - 동기식 램

💡 "CPU 클럭(Clock)과 동기화되어 동작하는 램"

  • 기존 DRAM보다 속도가 빠름
  • CPU의 클럭 속도에 맞춰 데이터 전송 가능
  • DRAM보다 빠르고 효율적이지만, 더 발전된 DDR SDRAM이 등장하면서 거의 안 씀

📌 예시: 1990년대 후반의 컴퓨터에서 사용됨


4️⃣ DDR SDRAM (Double Data Rate SDRAM) - 속도 2배 램

💡 "SDRAM의 두 배 속도로 데이터를 전송하는 램"

  • 한 번의 클럭 사이클에서 2번 데이터 전송 가능 → 속도 2배 증가
  • 이후 발전하면서 DDR2, DDR3, DDR4, DDR5까지 나옴

📌 DDR SDRAM 세대별 특징

종류특징
DDR1기본적인 DDR, 초당 2배 속도로 데이터 전송
DDR2속도 업, 전력 소비 감소
DDR3더 빠르고 저전력
DDR4현재 가장 많이 사용, 속도 빠르고 전력 효율 높음
DDR5최신 기술, 더 높은 대역폭과 속도 제공

📌 예시: 우리가 흔히 구매하는 DDR4 16GB RAM 같은 게 바로 DDR SDRAM 이다.

종류특징속도사용처
DRAM전력을 계속 공급해야 함느림일반적인 RAM
SRAM새로고침 없이 데이터 유지빠름CPU 캐시 (L1, L2, L3)
SDRAMCPU 클럭과 동기화DRAM보다 빠름예전 컴퓨터에서 사용
DDR SDRAMSDRAM의 2배 속도가장 빠름최신 RAM (DDR4, DDR5)
  • DRAM → 일반적인 RAM (전력 공급 필요)
  • SRAM → 빠르지만 비싸서 CPU 캐시 메모리로 사용
  • SDRAM → CPU 클럭과 동기화되지만, 거의 안 씀
  • DDR SDRAM → 현재 쓰는 고속 RAM (DDR4, DDR5 등)

🔹 ROM (Read-Only Memory, 롬)

  • 한번 저장하면 수정이 거의 불가능한 메모리
  • 컴퓨터가 처음 켜질 때 부팅(시작)할 때 필요한 필수 데이터를 저장

📌 예시

  • 컴퓨터가 부팅될 때 운영체제를 시작하는 역할

📝 한마디 정리
RAM → "작업 중인 기억"
ROM → "기본적인 작동법이 저장된 책"


🏆 빅 엔디안(Big Endian) vs 리틀 엔디안(Little Endian)

컴퓨터에서 숫자를 저장하는 방식에는 두 가지가 있다:
바로 빅 엔디안(Big Endian)과 리틀 엔디안(Little Endian)

📌 엔디안(Endian)이란?

컴퓨터는 숫자를 0과 1(바이너리) 로 저장한다.
하지만 메모리에 저장할 때 큰 숫자부터 저장할지, 작은 숫자부터 저장할지 방법이 다를 수 있다.

🔥 빅 엔디안(Big Endian) – “큰 숫자부터 저장”

💡 “사람이 숫자를 읽는 방식과 같음”

• 큰 자리(상위 바이트)를 왼쪽에 저장

• 작은 자리(하위 바이트)를 오른쪽에 저장

📌 예시: 숫자 0x12345678 저장

메모리 주소데이터 (빅 엔디안)
100012
100134
100256
100378

쉽게 말하면, 우리가 숫자를 읽는 방식과 같다

예: “1234”를 그대로 1234로 저장

사용처

• 네트워크 프로토콜 (인터넷 데이터 전송)

• 대부분의 RISC(ARM, SPARC 등) 프로세서

🔥 리틀 엔디안(Little Endian) – “작은 숫자부터 저장”

💡 “빅 엔디안의 반대로 저장”

• 작은 자리(하위 바이트)를 왼쪽에 저장

• 큰 자리(상위 바이트)를 오른쪽에 저장

📌 예시: 숫자 0x12345678 저장

메모리 주소데이터 (리틀 엔디안)
100078
100156
100234
100312

쉽게 말하면, 숫자를 거꾸로 저장하는 방식!

예: “1234”를 4321로 저장

사용처

• x86 (인텔, AMD) 프로세서

• 대부분의 PC, 윈도우 시스템

방식저장 순서예시 (0x12345678)사용처
빅 엔디안큰 숫자 → 작은 숫자12 34 56 78네트워크, ARM
리틀 엔디안작은 숫자 → 큰 숫자78 56 34 12x86 CPU (인텔, AMD)

🎮 엔디안이 중요한 이유

• 네트워크에서는 빅 엔디안을 주로 사용 → “네트워크 바이트 오더”

• 인텔 CPU에서는 리틀 엔디안을 사용 → “메모리 저장 방식”

• 두 시스템 간 데이터 교환 시 엔디안 변환이 필요함!

🛠 예제:

• 네트워크(빅 엔디안)에서 받은 데이터를 PC(리틀 엔디안)에서 사용할 때 변환해야 한다

• 예를 들어, 게임 프로그래밍에서 서버(빅 엔디안)와 클라이언트(리틀 엔디안) 간 데이터를 맞춰야 할 수도 있음

✅ 정리

빅 엔디안: 큰 숫자부터 저장 (네트워크, ARM)

리틀 엔디안: 작은 숫자부터 저장 (PC, 인텔 CPU)

서로 다른 엔디안 시스템에서는 변환이 필요함

💾 보조기억장치 - 장기 기억

💡 보조기억장치는 오랫동안 데이터를 보관하는 곳이다.
사람으로 치면 일기장이나 외장하드 같은 느낌

🔹 HDD (Hard Disk Drive)

  • 회전하는 디스크(플래터)와 바늘(헤드)로 데이터를 읽고 씀
  • 속도는 느리지만 용량이 크고 저렴함

📌 예시

  • 대학교 과제 파일, 영화, 사진 같은 걸 저장할 때

🔹 SSD (Solid State Drive)

  • HDD보다 훨씬 빠른 저장장치
  • 반도체 칩을 이용해 데이터를 저장

📌 SSD의 특징

  • HDD보다 10배 이상 빠름
  • 전원이 꺼져도 데이터가 유지됨
  • 비싸지만 성능이 좋음

📌 예시

  • "컴퓨터 부팅이 3초 만에 된다?" → SSD 덕분
  • 게임 로딩 속도가 엄청 빠름

🔹 USB / 외장하드 / SD카드

  • USB 메모리: 작은 크기의 휴대용 저장장치 (4GB~1TB)
  • 외장하드: HDD/SSD를 외부에서 연결해서 사용
  • SD카드: 스마트폰, 카메라 등에 사용하는 작은 메모리 카드

⚡ 캐시 메모리(Cache Memory)란?

캐시 메모리(Cache Memory)

CPU가 자주 사용하는 데이터를 빠르게 접근할 수 있도록 도와주는 초고속 임시 저장소

CPU는 메모리(RAM)에서 데이터를 가져와야 연산을 할 수 있다.
하지만 RAM은 CPU보다 속도가 느려서, 매번 RAM에서 데이터를 가져오면 속도가 느려짐
그래서 자주 쓰는 데이터를 미리 저장하는 초고속 메모리, 즉 캐시 메모리(Cache Memory) 를 사용한다


캐시 메모리는 왜 필요할까? 🤔

💡 RAM에서 데이터를 가져오는 속도가 너무 느리기 때문

📌 예제: 책 읽기

  • RAM = 책장 (책이 많아서 원하는 책을 찾는 데 시간이 걸림)
  • 캐시 메모리 = 책상 위 (자주 보는 책을 올려두면 금방 찾을 수 있음!)
  • CPU = 독서하는 사람

즉, CPU가 매번 RAM에서 데이터를 가져오는 대신,
캐시 메모리에 자주 쓰는 데이터를 저장하면 속도가 훨씬 빨라진다.


캐시 메모리의 종류

캐시 메모리는 위치와 속도에 따라 L1, L2, L3로 나뉨

캐시 종류위치속도크기
L1 캐시CPU 내부 (가장 가까움)가장 빠름작음 (몇 KB)
L2 캐시CPU 내부 or 외부빠름중간 (MB 단위)
L3 캐시CPU 외부상대적으로 느림큼 (수 MB~수십 MB)

📌 특징

  • L1 캐시: CPU 코어마다 따로 있음 (가장 빠름)
  • L2 캐시: L1보다 크지만 속도는 약간 느림
  • L3 캐시: 여러 CPU 코어가 공유하는 캐시

📌 예시

  • Intel Core i9 13900K → L1: 80KB, L2: 2MB, L3: 36MB
  • AMD Ryzen 9 7950X → L1: 64KB, L2: 1MB, L3: 64MB

캐시 메모리는 어떻게 동작할까?

캐시 메모리는 자주 사용되는 데이터를 미리 저장하는 역할을 한다.

캐시 히트(Cache Hit)

💡 CPU가 필요한 데이터를 캐시에서 찾으면 빠르게 실행됨!

캐시 미스(Cache Miss)

💡 CPU가 데이터를 캐시에서 못 찾으면, RAM에서 가져와야 함 → 속도가 느려짐

📌 예제

  • 캐시 히트: "어제 읽던 책이 책상 위에 있음" → 바로 읽을 수 있음
  • 캐시 미스: "책상 위에 없어서 책장에서 찾아야 함" → 시간이 걸림

캐시 메모리가 중요한 이유

CPU가 RAM보다 훨씬 빠르게 데이터를 읽을 수 있음
게임, 영상 편집, 프로그래밍에서 속도를 크게 향상시킴
고성능 CPU일수록 캐시 용량이 큼

💡 결론: 캐시 메모리는 CPU가 데이터를 더 빠르게 처리할 수 있도록 도와주는 초고속 임시 저장소


RAID란? 데이터를 안전하게 저장하는 기술

RAID는 여러 개의 하드디스크(HDD)나 SSD를 하나처럼 묶어서
속도를 높이거나 데이터를 안전하게 보호하는 기술이다

💡 RAID = Redundant Array of Independent Disks
(독립적인 디스크들의 중복 배열)

쉽게 말해서 "디스크 여러 개를 합쳐서 더 빠르고 안전하게 쓰는 방법" 이라고 보면 된다.


✅ RAID가 필요한 이유

💡 단순한 하드디스크 하나만 쓰면 문제 발생 가능

문제RAID 없이 발생할 수 있는 상황
데이터 손실하드디스크가 고장 나면 데이터가 사라짐
느린 속도단일 디스크의 속도에 한계가 있음
안정성 부족백업이 없으면 복구가 어려움

RAID는 이런 문제를 해결하기 위해 탄생한 기술


🔥 RAID의 종류 (기본적인 레벨)

RAID는 여러 가지 방식이 있는데, 대표적으로 RAID 0, 1, 5, 10 이있다.

🔹 RAID 0 (스트라이핑) - 속도 최강! 하지만 안전성 X

💡 여러 개의 디스크에 데이터를 나눠서 저장해서 속도를 빠르게 만듦
📌 특징

  • 속도가 빠름 (읽기/쓰기 성능 증가)
  • 디스크 하나라도 고장 나면 모든 데이터 손실

📌 예시

  • SSD 2개를 RAID 0으로 묶으면 쓰기 속도 2배
  • 게임, 영상 편집 등 속도가 중요한 작업에 사용

🔻 데이터 저장 방식 (RAID 0)

디스크 1디스크 2
데이터 A데이터 B
데이터 C데이터 D

🔹 RAID 1 (미러링) - 데이터 보호 최강! 하지만 속도는 그대로

💡 똑같은 데이터를 2개의 디스크에 동시에 저장해서 안전하게 보호

📌 특징

  • 디스크 하나가 고장 나도 데이터가 안전함
  • 속도 향상 없음 (저장 공간이 반으로 줄어듦)

📌 예시

  • 중요 문서, 금융 데이터, 서버용 데이터 보호에 사용

🔻 데이터 저장 방식 (RAID 1)

디스크 1디스크 2
데이터 A데이터 A
데이터 B데이터 B

🔹 RAID 5 (스트라이핑 + 패리티) - 속도와 안전성 균형!

💡 데이터를 나누어 저장하면서 "패리티(오류 복구용 데이터)"도 함께 저장

📌 특징

  • 속도 + 안정성 둘 다 적당히 확보
  • 디스크 1개 고장 나도 데이터 복구 가능
  • 디스크 2개 이상 고장 나면 데이터 손실

📌 예시

  • 서버, NAS, 기업 데이터 저장소에 사용

🔻 데이터 저장 방식 (RAID 5)

디스크 1디스크 2디스크 3
데이터 A데이터 B패리티
데이터 C패리티데이터 D

🔹 RAID 6 (이중 패리티) - RAID 5보다 더 안전함!

💡 RAID 5와 비슷하지만, 패리티 데이터를 2개 저장해서 더 안전하게 보호!  

📌 특징  

  • 디스크 2개까지 고장 나도 데이터 복구 가능!  
  • RAID 5보다 안정성이 뛰어남  
  • RAID 5보다 속도가 느리고 저장 공간이 줄어듦  
  • 최소 4개의 디스크 필요  

📌 예시

  • 데이터 안정성이 중요한 기업 서버, 클라우드 스토리지, NAS  

🔻 데이터 저장 방식 (RAID 6)

디스크 1디스크 2디스크 3디스크 4
데이터 A데이터 B패리티 1패리티 2
데이터 C데이터 D패리티 2패리티 1

🔹 RAID 10 (RAID 1 + RAID 0) - 속도도 빠르고 안정성도 좋음!

💡 RAID 0(속도) + RAID 1(안정성) 조합
📌 특징

  • 속도 빠름 + 디스크 하나 고장 나도 복구 가능
  • 디스크 2배 필요 (비용이 많이 듦)

📌 예시

  • 데이터베이스, 서버 등 중요한 데이터를 빠르게 처리할 때 사용

🔻 데이터 저장 방식 (RAID 10)

디스크 1디스크 2디스크 3디스크 4
데이터 A데이터 A데이터 B데이터 B
데이터 C데이터 C데이터 D데이터 D

🎯 RAID 종류 비교

RAID 종류속도안전성디스크 최소 개수특징
RAID 0🚀 빠름❌ 없음2개속도 최강! 하지만 하나라도 고장 나면 데이터 손실
RAID 1⚡ 그대로✅ 높음2개데이터 안전하지만 저장공간이 반으로 줄어듦
RAID 5🔥 중간✅ 적당함3개속도 & 안전성 균형! (디스크 1개까지 복구 가능)
RAID 6🔥 중간✅✅ 높음4개RAID 5보다 안전, 디스크 2개까지 복구 가능
RAID 10🚀 빠름✅ 높음4개속도와 안정성 둘 다 잡음! 하지만 디스크 2배 필요

RAID를 언제 사용하면 좋을까?

RAID 0게임, 영상 편집 (속도 중요, 데이터 손실 상관 없음)
RAID 1중요한 문서, 서버 데이터 보호
RAID 5기업 서버, NAS(네트워크 스토리지)
RAID 6RAID 5보다 더 안정적인 기업용 서버
RAID 10빠르고 안전한 데이터베이스, 서버

💡 속도를 원하면 RAID 0, 안전을 원하면 RAID 1, 균형을 원하면 RAID 5/6/10


✅ 결론: RAID는 데이터 보호 + 속도를 위한 필수 기술!

🔹 RAID 0 → 속도만 빠름, 데이터 보호 X
🔹 RAID 1 → 데이터 보호는 좋지만 속도 변화 없음
🔹 RAID 5 → 속도 + 데이터 보호 균형
🔹 RAID 6 → RAID 5보다 더 높은 안정성 (디스크 2개까지 복구 가능)
🔹 RAID 10 → 속도도 빠르고 안정성도 높음

💡 데이터가 중요하다면 RAID 설정을 꼭 고려해 보자


⌨️ 입출력 장치 - "컴퓨터와 소통하는 통로"

사람으로 치면 눈, 귀, 손, 입 같은 역할을 한다.

🔹 입력 장치 (Input Devices)

사용자가 컴퓨터에 데이터를 입력하는 장치

📌 예시

  • 키보드: 글자를 입력할 때
  • 마우스: 클릭하고 이동할 때
  • 터치스크린: 스마트폰에서 화면을 터치할 때
  • 마이크: 음성을 입력할 때
  • 카메라(웹캠): 영상 촬영

🔹 출력 장치 (Output Devices)

컴퓨터가 결과를 사용자에게 보여주는 장치

📌 예시

  • 모니터: 화면을 보여줌
  • 스피커: 소리를 출력함
  • 프린터: 문서를 출력할 때
  • VR 헤드셋: 가상현실을 보여주는 장치

DMA (Direct Memory Access) 입출력

✅ DMA란?

💡 DMA(Direct Memory Access, 직접 메모리 접근) 는 CPU를 거치지 않고
입출력 장치가 메모리(RAM)와 직접 데이터를 주고받는 기술을 의미한다.


📌 CPU 없이 메모리와 입출력 장치가 직접 통신

일반적으로 CPU가 데이터를 이동하려면 아래 과정이 필요하다.

1️⃣ CPU가 입출력 장치에서 데이터 읽기 요청
2️⃣ 데이터가 CPU로 이동
3️⃣ CPU가 메모리에 데이터를 저장

하지만 CPU가 데이터 이동을 처리하는 동안 다른 작업을 할 수 없기 때문에 비효율적이다.
이 문제를 해결하기 위해 DMA 방식이 등장했다

📌 DMA 방식 (CPU 없이 데이터 이동)
1️⃣ CPU가 DMA 컨트롤러에게 명령을 내림
2️⃣ DMA 컨트롤러가 직접 메모리와 입출력 장치 간 데이터 전송
3️⃣ CPU는 다른 작업을 수행할 수 있음


✅ DMA의 장점

  • CPU의 부담 감소 → CPU가 직접 데이터 전송을 하지 않아도 됨
  • 빠른 입출력 처리 → CPU를 거치지 않고 바로 데이터 이동 가능
  • 멀티태스킹 가능 → CPU는 다른 작업을 하면서 DMA가 데이터 전송 수행

🔥 DMA 동작 방식 (3단계)

DMA 방식은 기본적으로 3단계로 이루어진다.

🔹 1️⃣ DMA 요청 (DMA Request)

  • 입출력 장치(예: 하드디스크, 네트워크 카드)가 데이터 전송을 요청
  • CPU는 DMA 컨트롤러(DMA Controller, DMAC) 에게 요청을 넘김

🔹 2️⃣ 데이터 전송 (Data Transfer)

  • DMA 컨트롤러가 직접 메모리와 입출력 장치 간 데이터를 이동
  • CPU가 개입하지 않음

🔹 3️⃣ 인터럽트 발생 (Interrupt)

  • 데이터 전송이 끝나면 DMA 컨트롤러가 CPU에게 완료 인터럽트 발생
  • CPU는 그제서야 데이터 전송이 완료된 것을 알게 됨

🎯 CPU 방식 vs DMA 방식 비교

구분CPU 방식DMA 방식
데이터 이동CPU가 직접 수행DMA 컨트롤러가 수행
CPU 부담높음 (데이터 이동에 시간 소요)낮음 (CPU는 다른 작업 수행 가능)
속도상대적으로 느림빠름
사용 예시단순한 키보드 입력하드디스크, 그래픽 카드, 네트워크

✅ DMA를 사용하는 장치 예시

  • 💾 HDD / SSD → 데이터를 빠르게 읽고 쓰기 위해 DMA 사용
  • 🎮 그래픽 카드(GPU) → 고속 데이터 처리를 위해 DMA 활용
  • 🌐 네트워크 카드(NIC) → 빠른 데이터 전송을 위해 DMA 사용

💡 즉, 빠른 입출력이 필요한 모든 장치에서 DMA를 사용한다


🔥 결론

🔹 DMA(Direct Memory Access) 는 CPU를 거치지 않고 메모리와 장치가 직접 데이터를 주고받는 기술
🔹 CPU 부담 감소 + 속도 증가
🔹 하드디스크, 그래픽 카드, 네트워크 장치 등에서 사용

💡 컴퓨터가 빠르게 작동하는 이유? DMA 덕분이다

profile
이래서 되겠나 싶은 개발지망생

0개의 댓글