🧠 메모리
📌 RAM (Random Access Memory)
RAM은 휘발성 저장장치로, 전원이 꺼지면 저장된 데이터가 사라진다. 이는 CPU가 실행할 데이터를 임시로 저장하는 장치로, 비휘발성 저장장치(예: SSD, HDD)와 대조된다.
- 용량의 중요성: RAM의 용량이 크면 보조 기억장치로부터 데이터를 더 많이 불러올 수 있으며, 여러 프로그램을 동시에 실행하는 데 유리하다. 하지만 용량이 무조건 클수록 컴퓨터 성능이 비례해 향상되지는 않는다.
- 접근 방식:
- 임의 접근 (Random Access): 메모리의 위치와 상관없이 동일한 시간에 데이터를 접근할 수 있다.
- 순차 접근 (Sequential Access): 데이터의 위치에 따라 접근 시간이 달라진다.
🛠️ RAM의 종류

- DRAM (Dynamic RAM)
- 시간이 지나면 저장된 데이터가 사라져, 주기적으로 리프레시해야 한다.
- SRAM (Static RAM)
- 리프레시 없이도 데이터를 유지할 수 있으나, 제조 비용이 비싸고 용량이 제한적이다.
- SDRAM (Synchronous DRAM)
- 클럭 신호에 맞춰 동기화되어 데이터를 빠르게 처리한다.
- DDR SDRAM (Double Data Rate SDRAM)
- 데이터 전송 대역폭이 넓어 속도가 빠르다.
- 종류: DDR, DDR2, DDR3, DDR4 (세대가 올라갈수록 속도 및 전력 효율이 개선됨)
🔄 메모리에 데이터를 저장하는 방식 - 빅 엔디안 vs 리틀 엔디안
컴퓨터는 데이터를 바이트 단위로 저장하고 관리한다. 이때, 메모리가 데이터를 저장하는 순서에 따라 두 가지 방식으로 나뉜다.

- Big Endian (빅 엔디안): 낮은 주소에 가장 중요한 상위 바이트부터 저장한다.
- Little Endian (리틀 엔디안): 낮은 주소에 하위 바이트부터 저장한다.
🔍 주요 용어
- MSB (Most Significant Bit): 가장 큰 영향을 미치는 비트로, 빅 엔디안 방식에서 중요하다.
- LSB (Least Significant Bit): 가장 적은 영향을 미치는 비트로, 리틀 엔디안 방식에서 중요하다.
⚡ 캐시 메모리 - CPU의 속도 개선
CPU는 메모리 접근 속도가 상대적으로 느리기 때문에, 이 문제를 해결하기 위해 캐시 메모리가 사용된다. 이는 SRAM 기반의 저장장치로, CPU에 가까운 위치에 있어 빠르게 데이터를 제공한다.
📊 캐시 메모리 계층 구조

- L1 캐시: CPU 코어 내부에 위치, 가장 빠르지만 용량이 작다. (명령어 전용: L1I, 데이터 전용: L1D)
- L2 캐시: CPU 코어 내부에 위치, L1보다 느리지만 용량이 크다.
- L3 캐시: 여러 코어가 공유, 가장 느리지만 가장 큰 용량을 가짐
🎯 캐시 히트 vs 캐시 미스
- 캐시 히트: CPU가 필요한 데이터를 캐시에서 찾는 경우 → 빠른 처리
- 캐시 미스: 캐시에 데이터가 없어서 메모리에서 데이터를 불러와야 하는 경우 → 속도 저하
캐시 적중률 계산:
캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
📌 참조 지역성 원리
- 시간 지역성: 최근에 접근한 데이터를 다시 접근할 가능성이 높다.
- 공간 지역성: 인접한 메모리 영역이 함께 접근될 가능성이 높다.
📝 캐시 메모리의 쓰기 정책과 일관성 유지
메모리 데이터가 변경될 때, 캐시 메모리의 일관성을 유지하는 두 가지 방법:
-
즉시 쓰기 (Write-through):
- 캐시와 메모리에 동시에 데이터를 쓴다.
- 장점: 데이터 일관성을 유지
- 단점: 메모리 접근 횟수가 많아져 속도 저하
-
지연 쓰기 (Write-back):
- 캐시에 먼저 데이터를 쓰고, 일정 시간 후 메모리에 반영
- 장점: 속도 향상
- 단점: 데이터 일관성이 깨질 위험이 있음
⚠️ 주의: 캐시 메모리는 성능을 높이는 데 효과적이지만, 데이터 일관성을 유지하는 것이 중요하다.
💾 보조기억장치와 입출력 장치
📂 RAID (Redundant Array of Independent Disks)
RAID는 데이터의 안전성과 성능을 높이기 위해 여러 개의 독립적인 보조 기억 장치를 하나의 장치처럼 사용하는 기술이다. 데이터 보호와 입출력 속도를 향상시키는 데 주로 사용된다.

🧲 하드 디스크 드라이브 (HDD)
- 자기적인 방식으로 데이터를 저장
- 내구성이 높고 용량 대비 저렴한 가격이 장점
⚡ 플래시 메모리 기반 저장장치
- 전기적인 방식
- 예시: USB 메모리, SD 카드, SSD
🔄 RAID 레벨별 구성 방식
RAID 0 - 스트라이핑 (Striping)

- 데이터를 여러 디스크에 나누어 저장
- 장점:
- 빠른 읽기/쓰기 속도
- 병렬로 데이터를 처리해 이론상 성능이 디스크 개수에 비례해 향상됨
- 단점:
- 디스크 중 하나라도 손상되면 모든 데이터가 손실됨
RAID 1 - 미러링 (Mirroring)

- 동일한 데이터를 복제하여 두 디스크에 저장
- 장점:
- 데이터 안정성 강화
- 하나의 디스크가 고장 나도 데이터를 복구할 수 있음
- 단점:
- 저장 용량이 절반으로 줄어듦
- 쓰기 속도가 느려질 수 있음
RAID 4 - 패리티 디스크 분리
- 전용 디스크에 패리티 정보(오류 검출용 데이터)를 저장
- 장점:
- 단점:
RAID 5 - 패리티 분산 저장

- 데이터를 여러 디스크에 저장하며, 패리티 정보도 분산
- 장점:
RAID 6 - 이중 패리티 저장

-
서로 다른 2개의 패리티 정보를 저장
-
장점:
- 두 개의 디스크가 동시에 손상되어도 데이터 복구 가능
-
단점:
RAID 10 (Nested RAID) - RAID 1 + RAID 0
- 미러링과 스트라이핑을 결합한 방식
- 장점:
- 단점:
🔌 입출력 기법
장치 컨트롤러와 장치 드라이버
- 장치 컨트롤러: 하드웨어 장치와 컴퓨터 시스템 간의 데이터 흐름을 제어
- 장치 드라이버: 장치 컨트롤러가 제대로 동작하도록 지원하는 소프트웨어
🖥️ 프로그램 입출력 (Programmed I/O)
- CPU가 명령어를 실행하며 직접 입출력 장치를 제어
- 방식:
- 고립형 입출력 (Isolated I/O)
- 메모리 맵 입출력 (Memory-mapped I/O)
⚡ 인터럽트 기반 입출력 (Interrupt-Driven I/O)

- 장치가 작업 완료 시 CPU에 신호 (인터럽트)를 보내 작업 중단 없이 효율적으로 처리
- 우선순위 인터럽트:
- 높은 우선순위를 가진 인터럽트가 먼저 처리
- NMI (Non-Maskable Interrupt): 무시할 수 없는 긴급 신호
🔄 DMA (Direct Memory Access)

- CPU가 데이터를 직접 처리하지 않고, DMA 컨트롤러가 입출력 장치와 메모리 간 데이터 전송을 담당
- 데이터 이동 프로세스:
- CPU가 DMA 컨트롤러에 작업 명령 전달
- DMA 컨트롤러가 직접 메모리와 입출력 장치 간 데이터 전송
- 작업 완료 시 CPU에 인터럽트 신호 전송
🔗 입출력 버스
- 데이터 전송 경로의 역할
- PCIe (Peripheral Component Interconnect Express)가 대표적인 예시
🎮 GPU의 역할과 병렬 처리 방식
- 대량의 그래픽 연산을 빠르게 처리하는 장치
- 수천 개의 코어로 구성되어 대규모 병렬 처리 수행
- 복잡한 문제를 여러 개의 작은 문제로 나누어 동시에 처리하는 구조
Ref. 📗《이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접》, 강민철
사진 없나요?