컴퓨터를 사람에 비유하면
CPU는 두뇌,
메모리는 단기 기억,
보조기억장치는 장기 기억,
입출력 장치는 감각기관과 손, 발 같은 역할을 한다.
💡 메모리는 컴퓨터가 당장 사용할 데이터를 보관하는 장소
사람으로 치면, 단기 기억력과 같다.
📌 예시
💡 "주기적으로 새로고침(Refresh)해야 하는 램"
📌 예시: 우리가 흔히 말하는 RAM이 대부분 DRAM
💡 "새로고침(Refresh) 없이 데이터 유지 가능"
📌 예시: CPU 내부에 있는 캐시(Cache) 메모리
💡 "CPU 클럭(Clock)과 동기화되어 동작하는 램"
📌 예시: 1990년대 후반의 컴퓨터에서 사용됨
💡 "SDRAM의 두 배 속도로 데이터를 전송하는 램"
📌 DDR SDRAM 세대별 특징
종류 | 특징 |
---|---|
DDR1 | 기본적인 DDR, 초당 2배 속도로 데이터 전송 |
DDR2 | 속도 업, 전력 소비 감소 |
DDR3 | 더 빠르고 저전력 |
DDR4 | 현재 가장 많이 사용, 속도 빠르고 전력 효율 높음 |
DDR5 | 최신 기술, 더 높은 대역폭과 속도 제공 |
📌 예시: 우리가 흔히 구매하는 DDR4 16GB RAM 같은 게 바로 DDR SDRAM 이다.
종류 | 특징 | 속도 | 사용처 |
---|---|---|---|
DRAM | 전력을 계속 공급해야 함 | 느림 | 일반적인 RAM |
SRAM | 새로고침 없이 데이터 유지 | 빠름 | CPU 캐시 (L1, L2, L3) |
SDRAM | CPU 클럭과 동기화 | DRAM보다 빠름 | 예전 컴퓨터에서 사용 |
DDR SDRAM | SDRAM의 2배 속도 | 가장 빠름 | 최신 RAM (DDR4, DDR5) |
📌 예시
📝 한마디 정리
RAM → "작업 중인 기억"
ROM → "기본적인 작동법이 저장된 책"
🏆 빅 엔디안(Big Endian) vs 리틀 엔디안(Little Endian)
컴퓨터에서 숫자를 저장하는 방식에는 두 가지가 있다:
바로 빅 엔디안(Big Endian)과 리틀 엔디안(Little Endian)
📌 엔디안(Endian)이란?
컴퓨터는 숫자를 0과 1(바이너리) 로 저장한다.
하지만 메모리에 저장할 때 큰 숫자부터 저장할지, 작은 숫자부터 저장할지 방법이 다를 수 있다.
🔥 빅 엔디안(Big Endian) – “큰 숫자부터 저장”
💡 “사람이 숫자를 읽는 방식과 같음”
• 큰 자리(상위 바이트)를 왼쪽에 저장
• 작은 자리(하위 바이트)를 오른쪽에 저장
📌 예시: 숫자 0x12345678 저장
메모리 주소 | 데이터 (빅 엔디안) |
---|---|
1000 | 12 |
1001 | 34 |
1002 | 56 |
1003 | 78 |
✅ 쉽게 말하면, 우리가 숫자를 읽는 방식과 같다
예: “1234”를 그대로 1234로 저장
✅ 사용처
• 네트워크 프로토콜 (인터넷 데이터 전송)
• 대부분의 RISC(ARM, SPARC 등) 프로세서
🔥 리틀 엔디안(Little Endian) – “작은 숫자부터 저장”
💡 “빅 엔디안의 반대로 저장”
• 작은 자리(하위 바이트)를 왼쪽에 저장
• 큰 자리(상위 바이트)를 오른쪽에 저장
📌 예시: 숫자 0x12345678 저장
메모리 주소 | 데이터 (리틀 엔디안) |
---|---|
1000 | 78 |
1001 | 56 |
1002 | 34 |
1003 | 12 |
✅ 쉽게 말하면, 숫자를 거꾸로 저장하는 방식!
예: “1234”를 4321로 저장
✅ 사용처
• x86 (인텔, AMD) 프로세서
• 대부분의 PC, 윈도우 시스템
방식 | 저장 순서 | 예시 (0x12345678) | 사용처 |
---|---|---|---|
빅 엔디안 | 큰 숫자 → 작은 숫자 | 12 34 56 78 | 네트워크, ARM |
리틀 엔디안 | 작은 숫자 → 큰 숫자 | 78 56 34 12 | x86 CPU (인텔, AMD) |
🎮 엔디안이 중요한 이유
• 네트워크에서는 빅 엔디안을 주로 사용 → “네트워크 바이트 오더”
• 인텔 CPU에서는 리틀 엔디안을 사용 → “메모리 저장 방식”
• 두 시스템 간 데이터 교환 시 엔디안 변환이 필요함!
🛠 예제:
• 네트워크(빅 엔디안)에서 받은 데이터를 PC(리틀 엔디안)에서 사용할 때 변환해야 한다
• 예를 들어, 게임 프로그래밍에서 서버(빅 엔디안)와 클라이언트(리틀 엔디안) 간 데이터를 맞춰야 할 수도 있음
✅ 정리
빅 엔디안: 큰 숫자부터 저장 (네트워크, ARM)
리틀 엔디안: 작은 숫자부터 저장 (PC, 인텔 CPU)
서로 다른 엔디안 시스템에서는 변환이 필요함
💡 보조기억장치는 오랫동안 데이터를 보관하는 곳이다.
사람으로 치면 일기장이나 외장하드 같은 느낌
📌 예시
📌 SSD의 특징
📌 예시
CPU가 자주 사용하는 데이터를 빠르게 접근할 수 있도록 도와주는 초고속 임시 저장소
CPU는 메모리(RAM)에서 데이터를 가져와야 연산을 할 수 있다.
하지만 RAM은 CPU보다 속도가 느려서, 매번 RAM에서 데이터를 가져오면 속도가 느려짐
그래서 자주 쓰는 데이터를 미리 저장하는 초고속 메모리, 즉 캐시 메모리(Cache Memory) 를 사용한다
💡 RAM에서 데이터를 가져오는 속도가 너무 느리기 때문
📌 예제: 책 읽기
즉, CPU가 매번 RAM에서 데이터를 가져오는 대신,
캐시 메모리에 자주 쓰는 데이터를 저장하면 속도가 훨씬 빨라진다.
캐시 메모리는 위치와 속도에 따라 L1, L2, L3로 나뉨
캐시 종류 | 위치 | 속도 | 크기 |
---|---|---|---|
L1 캐시 | CPU 내부 (가장 가까움) | 가장 빠름 | 작음 (몇 KB) |
L2 캐시 | CPU 내부 or 외부 | 빠름 | 중간 (MB 단위) |
L3 캐시 | CPU 외부 | 상대적으로 느림 | 큼 (수 MB~수십 MB) |
📌 특징
📌 예시
Intel Core i9 13900K
→ L1: 80KB, L2: 2MB, L3: 36MB AMD Ryzen 9 7950X
→ L1: 64KB, L2: 1MB, L3: 64MB 캐시 메모리는 자주 사용되는 데이터를 미리 저장하는 역할을 한다.
💡 CPU가 필요한 데이터를 캐시에서 찾으면 빠르게 실행됨!
💡 CPU가 데이터를 캐시에서 못 찾으면, RAM에서 가져와야 함 → 속도가 느려짐
📌 예제
✅ CPU가 RAM보다 훨씬 빠르게 데이터를 읽을 수 있음
✅ 게임, 영상 편집, 프로그래밍에서 속도를 크게 향상시킴
✅ 고성능 CPU일수록 캐시 용량이 큼
💡 결론: 캐시 메모리는 CPU가 데이터를 더 빠르게 처리할 수 있도록 도와주는 초고속 임시 저장소
RAID는 여러 개의 하드디스크(HDD)나 SSD를 하나처럼 묶어서
속도를 높이거나 데이터를 안전하게 보호하는 기술이다
💡 RAID = Redundant Array of Independent Disks
(독립적인 디스크들의 중복 배열)
쉽게 말해서 "디스크 여러 개를 합쳐서 더 빠르고 안전하게 쓰는 방법" 이라고 보면 된다.
💡 단순한 하드디스크 하나만 쓰면 문제 발생 가능
문제 | RAID 없이 발생할 수 있는 상황 |
---|---|
데이터 손실 | 하드디스크가 고장 나면 데이터가 사라짐 |
느린 속도 | 단일 디스크의 속도에 한계가 있음 |
안정성 부족 | 백업이 없으면 복구가 어려움 |
RAID는 이런 문제를 해결하기 위해 탄생한 기술
RAID는 여러 가지 방식이 있는데, 대표적으로 RAID 0, 1, 5, 10 이있다.
💡 여러 개의 디스크에 데이터를 나눠서 저장해서 속도를 빠르게 만듦
📌 특징
📌 예시
🔻 데이터 저장 방식 (RAID 0)
디스크 1 | 디스크 2 |
---|---|
데이터 A | 데이터 B |
데이터 C | 데이터 D |
💡 똑같은 데이터를 2개의 디스크에 동시에 저장해서 안전하게 보호
📌 특징
📌 예시
🔻 데이터 저장 방식 (RAID 1)
디스크 1 | 디스크 2 |
---|---|
데이터 A | 데이터 A |
데이터 B | 데이터 B |
💡 데이터를 나누어 저장하면서 "패리티(오류 복구용 데이터)"도 함께 저장
📌 특징
📌 예시
🔻 데이터 저장 방식 (RAID 5)
디스크 1 | 디스크 2 | 디스크 3 |
---|---|---|
데이터 A | 데이터 B | 패리티 |
데이터 C | 패리티 | 데이터 D |
💡 RAID 5와 비슷하지만, 패리티 데이터를 2개 저장해서 더 안전하게 보호!
📌 특징
📌 예시
🔻 데이터 저장 방식 (RAID 6)
디스크 1 | 디스크 2 | 디스크 3 | 디스크 4 |
---|---|---|---|
데이터 A | 데이터 B | 패리티 1 | 패리티 2 |
데이터 C | 데이터 D | 패리티 2 | 패리티 1 |
💡 RAID 0(속도) + RAID 1(안정성) 조합
📌 특징
📌 예시
🔻 데이터 저장 방식 (RAID 10)
디스크 1 | 디스크 2 | 디스크 3 | 디스크 4 |
---|---|---|---|
데이터 A | 데이터 A | 데이터 B | 데이터 B |
데이터 C | 데이터 C | 데이터 D | 데이터 D |
RAID 종류 | 속도 | 안전성 | 디스크 최소 개수 | 특징 |
---|---|---|---|---|
RAID 0 | 🚀 빠름 | ❌ 없음 | 2개 | 속도 최강! 하지만 하나라도 고장 나면 데이터 손실 |
RAID 1 | ⚡ 그대로 | ✅ 높음 | 2개 | 데이터 안전하지만 저장공간이 반으로 줄어듦 |
RAID 5 | 🔥 중간 | ✅ 적당함 | 3개 | 속도 & 안전성 균형! (디스크 1개까지 복구 가능) |
RAID 6 | 🔥 중간 | ✅✅ 높음 | 4개 | RAID 5보다 안전, 디스크 2개까지 복구 가능 |
RAID 10 | 🚀 빠름 | ✅ 높음 | 4개 | 속도와 안정성 둘 다 잡음! 하지만 디스크 2배 필요 |
✅ RAID 0 → 게임, 영상 편집 (속도 중요, 데이터 손실 상관 없음)
✅ RAID 1 → 중요한 문서, 서버 데이터 보호
✅ RAID 5 → 기업 서버, NAS(네트워크 스토리지)
✅ RAID 6 → RAID 5보다 더 안정적인 기업용 서버
✅ RAID 10 → 빠르고 안전한 데이터베이스, 서버
💡 속도를 원하면 RAID 0, 안전을 원하면 RAID 1, 균형을 원하면 RAID 5/6/10
🔹 RAID 0 → 속도만 빠름, 데이터 보호 X
🔹 RAID 1 → 데이터 보호는 좋지만 속도 변화 없음
🔹 RAID 5 → 속도 + 데이터 보호 균형
🔹 RAID 6 → RAID 5보다 더 높은 안정성 (디스크 2개까지 복구 가능)
🔹 RAID 10 → 속도도 빠르고 안정성도 높음
💡 데이터가 중요하다면 RAID 설정을 꼭 고려해 보자
사람으로 치면 눈, 귀, 손, 입 같은 역할을 한다.
사용자가 컴퓨터에 데이터를 입력하는 장치
📌 예시
컴퓨터가 결과를 사용자에게 보여주는 장치
📌 예시
💡 DMA(Direct Memory Access, 직접 메모리 접근) 는 CPU를 거치지 않고
입출력 장치가 메모리(RAM)와 직접 데이터를 주고받는 기술을 의미한다.
일반적으로 CPU가 데이터를 이동하려면 아래 과정이 필요하다.
1️⃣ CPU가 입출력 장치에서 데이터 읽기 요청
2️⃣ 데이터가 CPU로 이동
3️⃣ CPU가 메모리에 데이터를 저장
하지만 CPU가 데이터 이동을 처리하는 동안 다른 작업을 할 수 없기 때문에 비효율적이다.
이 문제를 해결하기 위해 DMA 방식이 등장했다
📌 DMA 방식 (CPU 없이 데이터 이동)
1️⃣ CPU가 DMA 컨트롤러에게 명령을 내림
2️⃣ DMA 컨트롤러가 직접 메모리와 입출력 장치 간 데이터 전송
3️⃣ CPU는 다른 작업을 수행할 수 있음
DMA 방식은 기본적으로 3단계로 이루어진다.
구분 | CPU 방식 | DMA 방식 |
---|---|---|
데이터 이동 | CPU가 직접 수행 | DMA 컨트롤러가 수행 |
CPU 부담 | 높음 (데이터 이동에 시간 소요) | 낮음 (CPU는 다른 작업 수행 가능) |
속도 | 상대적으로 느림 | 빠름 |
사용 예시 | 단순한 키보드 입력 | 하드디스크, 그래픽 카드, 네트워크 |
💡 즉, 빠른 입출력이 필요한 모든 장치에서 DMA를 사용한다
🔹 DMA(Direct Memory Access) 는 CPU를 거치지 않고 메모리와 장치가 직접 데이터를 주고받는 기술
🔹 CPU 부담 감소 + 속도 증가
🔹 하드디스크, 그래픽 카드, 네트워크 장치 등에서 사용
💡 컴퓨터가 빠르게 작동하는 이유? DMA 덕분이다