-
저장장치의 혁신, SSD의 진짜 속은 컨트롤러와 알고리즘이다
한때 PC의 성능 병목 현상은 대부분 저장장치에서 발생했습니다. HDD는 물리적인 회전과 기계적 동작으로 인해 속도의 한계가 분명했고, 부팅이나 프로그램 실행 속도는 답답하기만 했습니다. 하지만 SSD(Solid State Drive)의 등장 이후 저장장치는 단순한 보조 기억 장치가 아닌, 시스템 전체 성능에 큰 영향을 주는 핵심 요소로 자리잡게 되었습니다.
SSD는 외형만 보면 단순한 네모난 박스처럼 보이지만, 그 내부는 놀라울 만큼 복잡하고 정교한 시스템으로 구성되어 있습니다. 특히 SSD의 성능과 수명을 결정짓는 가장 중요한 두 요소는 바로 컨트롤러(Controller)와 FTL(Flash Translation Layer)입니다. 이들은 SSD의 ‘두뇌’와 ‘뇌를 움직이는 전략’에 해당하며, 플래시 메모리라는 제한된 자원을 얼마나 효율적으로 쓰느냐를 결정합니다.
이번 글에서는 SSD 내부의 핵심 구조인 컨트롤러와 FTL이 무엇이며, 이들이 실제로 어떻게 동작하고, 어떤 역할을 수행하는지, 그리고 실제 사용자 입장에서 어떤 영향을 주는지 실무 기반으로 자세히 알아보겠습니다.
SSD의 기본 구조 – NAND만 있다고 동작하는 건 아니다
SSD는 기본적으로 NAND 플래시 메모리를 저장 매체로 사용합니다. 여기에 컨트롤러, DRAM 또는 SLC 캐시, 전원 보호 회로, 인터페이스 회로(SATA, NVMe 등)가 함께 구성되어 하나의 완전한 저장장치를 형성합니다.
- NAND 플래시는 데이터를 실제로 저장하는 공간입니다. TLC, QLC 등 셀 구조에 따라 속도와 수명이 달라집니다.
- 컨트롤러는 SSD의 모든 동작을 제어하는 CPU 역할을 합니다. 데이터 저장, 읽기, 정렬, 정리, 오류 보정까지 모두 처리합니다.
- DRAM은 SSD의 주소 테이블을 저장하거나 버퍼 역할을 하며, 특히 FTL 동작에서 중요합니다.
- FTL(Flash Translation Layer)은 논리 주소를 실제 물리 주소로 변환해주는 알고리즘 계층입니다.
즉, SSD는 단순한 저장소가 아니라, 하나의 작은 컴퓨터처럼 동작하는 고속 제어 시스템이라고 볼 수 있습니다.
컨트롤러란 무엇인가 – SSD의 두뇌
컨트롤러는 SSD 내부의 MCU(Microcontroller Unit)로, SSD의 모든 데이터를 처리하고 NAND 플래시의 동작을 관리합니다. 사용자가 저장 명령을 내리면, 실제 데이터를 어느 블록에 어떤 방식으로 저장할지를 판단하고, 읽기/쓰기 속도, 오류 보정, 쓰기 증폭 방지 등의 모든 과정을 이 컨트롤러가 처리합니다.
대표적인 컨트롤러 제조사는 Phison, Silicon Motion, Samsung, Marvell, Western Digital 등이 있으며, 각각 자체적인 펌웨어와 FTL 알고리즘을 탑재해 제품 차별화를 꾀하고 있습니다.
컨트롤러의 성능은 SSD의 읽기/쓰기 속도는 물론이고, 데이터 일관성, 수명, 전력 소모, 쓰기 효율성까지도 결정짓습니다. 즉, 같은 NAND를 사용한 SSD라도 컨트롤러가 다르면 완전히 다른 성능을 보이게 됩니다.
FTL이란 무엇인가 – 주소 변환의 마법사
FTL(Flash Translation Layer)은 SSD의 논리 주소와 물리 주소를 매핑하는 소프트웨어 계층입니다. CPU나 운영체제는 저장장치를 ‘섹터 단위의 주소’로 인식하지만, NAND는 ‘페이지와 블록 단위의 쓰기/삭제’만을 허용합니다.
여기서 발생하는 주소 간 불일치 문제를 해결하는 것이 바로 FTL입니다. 대표적인 FTL 방식은 다음과 같습니다:
- Page-level Mapping: 가장 정밀하고 유연하지만, 메모리 사용량이 큽니다. DRAM이 필요한 이유 중 하나입니다.
- Block-level Mapping: 메모리 사용량은 적지만, 쓰기 효율이 떨어지고 쓰기 증폭이 발생할 수 있습니다.
- Hybrid Mapping: 페이지와 블록 방식의 장점을 조합한 방식으로, 최근 대부분의 SSD가 채택하고 있습니다.
FTL은 단순한 주소 매핑을 넘어서, Wear Leveling(균일한 셀 사용), Garbage Collection(사용 후 블록 정리), Bad Block 관리 등을 함께 수행하여 NAND 플래시의 수명과 성능을 유지시켜 줍니다.
쓰기 증폭과 Garbage Collection – FTL이 없으면 벌어지는 일
플래시는 한번 쓴 데이터를 직접 덮어쓸 수 없습니다. 덮어쓰기 위해서는 해당 블록을 먼저 지우고 다시 써야 하며, 이 과정은 매우 느리고 복잡합니다. 그래서 SSD는 기존 데이터를 새로운 공간에 복사하고, 예전 블록은 나중에 지우는 방식을 사용합니다. 이때 발생하는 것이 바로 Garbage Collection입니다.
하지만 이 과정은 쓰기 증폭(Write Amplification)이라는 부작용을 유발합니다. 1GB의 데이터를 쓰기 위해 3GB의 실제 쓰기가 발생할 수도 있으며, 이로 인해 수명도 줄고 성능도 저하될 수 있습니다.
FTL은 이 문제를 해결하기 위해 효율적인 블록 정리 알고리즘, 예측 기반 쓰기 재배치, SLC 캐싱 전략 등을 사용하여 성능을 유지하고 쓰기 증폭을 최소화합니다.
DRAM과 DRAM-less SSD – FTL 성능의 분기점
FTL이 제대로 동작하려면 매핑 테이블을 빠르게 조회하고 갱신할 수 있어야 합니다. 이를 위해 일반적으로 SSD는 DRAM을 사용하여 매핑 테이블을 저장합니다. 이 방식은 빠르지만, 비용이 높아지기 때문에 보급형 SSD에서는 DRAM을 제거한 DRAM-less 구조가 등장했습니다.
DRAM-less SSD는 NAND 내부의 SLC 캐시나 HMB(Host Memory Buffer)를 사용하여 일부 FTL 기능을 대체합니다. 하지만 성능과 일관성 측면에서는 DRAM 탑재 SSD보다 열세이며, 무작위 쓰기 성능이나 다중 작업 부하에서는 그 차이가 두드러집니다.
즉, FTL의 구조와 메모리 지원 여부는 SSD의 사용 목적(게이밍, 서버, 일반 문서작업 등)에 따라 전략적으로 선택되어야 합니다.
실무자가 주목해야 할 SSD 성능 지표
SSD를 고를 때 단순히 읽기/쓰기 속도만 볼 것이 아니라, 아래와 같은 내부 동작과 관련된 지표도 함께 보는 것이 좋습니다.
- TBW (Total Bytes Written): SSD의 총 쓰기 가능 용량. 수명 지표로 중요합니다.
- DWPD (Drive Writes Per Day): 하루에 몇 번 전체를 쓸 수 있는지. 서버용 SSD에서 매우 중요합니다.
- IOPS (Input/Output per Second): 초당 처리 가능한 입출력 수. 무작위 접근 성능과 관련됩니다.
- Latency (지연 시간): 응답 속도. 대기 시간이 짧을수록 체감 성능이 좋습니다.
이런 수치는 FTL의 품질과 컨트롤러 알고리즘이 얼마나 최적화되어 있는지를 간접적으로 보여주는 데이터이기도 합니다.
SSD는 단순 저장 장치가 아니라 고성능 컴퓨팅 시스템이다
SSD는 이제 더 이상 단순히 ‘빠른 저장장치’가 아닙니다. 내부에는 컨트롤러라는 두뇌와, FTL이라는 전략 시스템이 정교하게 연결되어 복잡한 작업을 실시간으로 처리하고 있습니다.
같은 용량의 SSD라도 성능, 수명, 안정성이 다른 이유는 바로 이 구조 때문입니다. 엔지니어, 개발자, 일반 사용자 모두 SSD를 고를 때 단순한 숫자뿐 아니라 내부 구조를 이해하고 전략적으로 선택할 필요가 있습니다.
이제 SSD는 CPU만큼이나 복잡한 시스템이며, 그 중심에는 언제나 컨트롤러와 FTL이 있습니다.
'Engineering' 카테고리의 다른 글
SSD 수명과 TBW – 수명 관리 전략 (0) 2025.04.12 HBM이 뜨는 이유 – 고대역폭 메모리의 구조 (0) 2025.04.12 NAND Flash의 구조 – SLC부터 QLC까지 셀 분해 (0) 2025.04.12 DRAM과 SRAM의 차이 – 빠른 메모리의 핵심 (0) 2025.04.11 엔지니어가 직접 쓴 반도체 장비 사용 팁 (0) 2025.04.11 PMIC는 모든 전원의 중심 : 전력 설계의 중추 (0) 2025.04.11 전압을 지켜주는 전압 Reference IC의 정체 (0) 2025.04.11 반도체 회로의 다리를 잇는 Level Shifter란? (0) 2025.04.11