1. SSD Architecture
SSD는 NAND Flash에 데이터를 저장하는 반도체 기반 저장장치이다.
그러나 Host(SSD에 읽기·쓰기 명령을 보내는 컴퓨터 측 시스템)가 전달한 데이터를 NAND Flash에 바로 기록할 수 있는 것은 아니다. Host는 논리적인 주소를 사용하지만, NAND Flash는 Page와 Block으로 구성된 물리적인 저장 구조를 사용하기 때문이다.
따라서 SSD에는 Host의 명령을 해석하고, 논리 주소를 NAND Flash의 물리 주소로 변환하며, 데이터의 기록 위치를 관리하는 SSD Controller가 필요하다.
SSD는 다음과 같은 주요 구성요소로 이루어진다.
- SSD Controller
- NAND Flash
- DRAM
- PMIC 및 전원 회로
- Clock circuit
- PCIe/NVMe Interface
- Connector
- PCB
이 중 NAND Flash는 데이터를 실제로 보존하고, SSD Controller는 Host의 명령 처리와 NAND Flash 제어를 담당한다. 나머지 구성요소와 기능 블록은 데이터 전송, 임시 저장, 전력 공급 및 신호 동기화를 지원한다.
2. SSD의 전체 구조
SSD의 데이터 경로를 단순화하면 다음과 같이 나타낼 수 있다.

전원과 Clock은 위의 데이터 경로를 지원한다.

모든 부품은 PCB 위에 배치되며, PCB의 배선을 통해 전원과 신호를 전달한다.
3. SSD Controller
SSD Controller는 Host와 NAND Flash 사이에서 데이터의 흐름을 관리하는 SoC(System on Chip)이다.
Host가 전달한 읽기 또는 쓰기 명령은 먼저 Controller에 도착한다. Controller는 명령을 해석하고, 데이터가 저장될 NAND Flash의 위치를 결정하며, 여러 NAND Channel을 이용하여 데이터를 병렬로 처리한다.
SSD Controller가 수행하는 대표적인 기능은 다음과 같다.
FTL
FTL(Flash Translation Layer)은 Host가 사용하는 논리 주소(= LBA)와 실제 NAND Flash의 물리적 위치 사이의 대응 관계를 관리한다.
Host는 일반적으로 LBA(Logical Block Address)를 이용하여 데이터를 요청한다. 하지만 NAND Flash에서는 데이터가 특정 Die, Plane, Block 및 Page에 저장된다. FTL은 LBA를 실제 NAND 위치로 변환하고 그 관계를 관리한다.
\[
\text{Host의 LBA} \rightarrow \text{NAND의 물리적 Page}
\]
Wear Leveling
NAND Flash는 Program과 Erase를 반복할수록 Cell이 열화된다. Wear Leveling은 특정 Block에 Program/Erase가 집중되지 않도록 쓰기 횟수를 여러 Block에 분산한다.
Garbage Collection
NAND Flash에서는 기존 Page를 직접 덮어쓸 수 없다. 데이터가 수정되면 새로운 Page에 기록하고, 기존 Page는 유효하지 않은 상태로 표시한다.
Garbage Collection은 유효한 데이터를 다른 Block으로 옮긴 후, 유효하지 않은 Page가 많은 Block을 Erase하여 다시 사용할 수 있도록 하는 기능이다.
ECC
ECC(Error Correction Code)는 NAND Flash에서 읽어온 데이터의 Bit Error를 검출하고 정정한다.
NAND Flash의 열화, Retention, Read Disturb, Program Disturb 및 온도 변화 등은 Bit Error의 발생 가능성을 높일 수 있다. 따라서 SSD Controller에는 데이터를 읽을 때 오류를 검출하고 정정하기 위한 ECC 기능이 포함된다.
Bad Block Management
Controller는 정상적인 저장을 보장하기 어려운 Bad Block을 관리한다. 해당 Block은 일반적인 데이터 저장 영역에서 제외되고, 필요한 경우 예비 Block으로 대체된다.
NAND 병렬 처리
Controller는 여러 NAND Channel과 Die를 동시에 사용할 수 있다.
따라서 SSD 성능은 NAND 자체의 속도뿐 아니라 Controller가 얼마나 많은 NAND 동작을 병렬로 처리할 수 있는지에도 영향을 받는다.
4. NAND Flash
NAND Flash에서는 일반적으로 Read와 Program을 Page 단위로 수행하고, Erase를 Block 단위로 수행한다.
SSD Controller는 이러한 NAND의 제약을 Host가 직접 신경 쓰지 않도록 숨겨준다.
Host에서는 데이터를 자유롭게 덮어쓰는 것처럼 보이지만, SSD 내부에서는 새로운 Page에 데이터를 기록하고, 주소 매핑을 변경하며, 기존 Page를 무효화하는 과정이 진행된다.
5. DRAM
SSD의 DRAM은 NAND처럼 데이터를 장기간 보존하기 위한 부품이 아니다. Controller가 빠르게 참조해야 하는 정보를 임시로 저장하는 작업 공간이다.
DRAM에는 주로 다음 정보가 저장될 수 있다.
- LBA와 NAND 물리 주소의 매핑 정보
- SSD 동작에 필요한 메타데이터
- 자주 사용하는 관리 정보
- Controller 설계에 따른 일부 데이터 Buffer
DRAM은 NAND보다 빠르므로 Controller가 매번 NAND에서 매핑 정보를 찾는 부담을 줄일 수 있다.
다만 모든 SSD에 별도의 DRAM이 장착되는 것은 아니다. DRAM-less SSD는 Controller 내부 SRAM과 NAND Flash를 사용하거나, NVMe의 HMB(Host Memory Buffer, Host의 DRAM 일부를 SSD Controller의 작업 공간으로 사용하는 기능)를 활용할 수 있다. HMB에는 FTL 매핑 정보와 같이 Controller가 빠르게 참조해야 하는 정보가 저장될 수 있다.
따라서
“SSD의 DRAM은 항상 쓰기 데이터를 저장하는 Cache이다.”
보다 정확한 표현은 다음과 같다.
“SSD의 DRAM은 주로 주소 매핑 정보와 메타데이터를 빠르게 참조하기 위한 공간이며, Controller 설계에 따라 데이터 Buffer로도 사용될 수 있다.”
6. PMIC
PMIC(Power Management Integrated Circuit)는 SSD에 공급된 전원을 Controller, NAND Flash 및 DRAM이 사용할 수 있는 전압으로 변환하고 분배하는 장치이다.
각 부품은 서로 다른 동작 전압과 전력 특성을 가질 수 있기 때문에 안정적인 전원 공급이 필요하다.
PMIC와 전원 회로는 일반적으로 다음 역할을 담당한다.
- DC/DC 전압 변환
- 전원 공급 순서 제어
- 과전압 및 과전류 보호
- 저전력 상태 전환
- 전압 변동 억제
특히 SSD가 고속으로 동작할 때 Controller와 NAND의 소비전류가 빠르게 변할 수 있다. 전원 회로가 이러한 변화에 제대로 대응하지 못하면 오류나 성능 저하가 발생할 수 있다.
7. Clock
Clock은 SSD 내부 회로가 일정한 시간 기준에 맞춰 동작하도록 하는 기준 신호이다.
SSD Controller는 Clock을 기준으로 다음 동작을 수행한다.
- 내부 Processor와 Logic 동작
- PCIe 데이터 송수신
- NAND Interface 제어
- DRAM Interface 제어
SSD는 Host로부터 PCIe Reference Clock을 전달받거나 외부 Crystal·Oscillator를 사용할 수 있다. SSD Controller는 이러한 기준 신호와 내부 PLL을 이용하여 PCIe, NAND 및 DRAM Interface에 필요한 동작 Clock을 생성하거나 분배한다. 구현 방식은 제품에 따라 다르므로 모든 SSD PCB에 독립된 Clock IC가 장착되는 것은 아니다.
8. PCIe Interface와 NVMe
이 글에서 다루는 일반적인 NVMe SSD는 PCIe를 전송 경로로 사용한다. 한편 NVMe 규격은 PCIe뿐 아니라 RDMA와 TCP 등의 전송 방식도 포함한다.
PCIe Interface는 Host와 SSD 사이에서 명령과 데이터를 전송하는 고속 통신 경로이다. 일반적인 NVMe SSD에서는 PCIe 신호를 처리하는 PHY와 NVMe 명령 처리 기능이 SSD Controller 내부에 구현된다.
NVMe는 이 PCIe 연결을 통해 Host가 SSD에 어떤 명령을 전달하고, SSD가 어떤 형식으로 완료 결과를 반환할지를 정의한다.
두 개념을 단순하게 구분하면 다음과 같다.
- PCIe: 데이터가 이동하는 통신 경로
- NVMe: 저장장치를 제어하기 위한 명령 규칙
Host가 데이터를 읽으려면 NVMe Read Command를 생성하고, 해당 명령은 PCIe를 통해 SSD Controller에 전달된다. Controller는 요청된 데이터를 NAND에서 읽은 후 PCIe를 통해 Host로 반환한다.
따라서 PCIe 세대와 Lane 수는 Host와 SSD 사이의 최대 전송 대역폭에 영향을 주지만, 실제 SSD 성능은 Controller, NAND 및 Firmware 성능까지 함께 고려해야 한다.
9. Connector
Connector는 SSD와 Motherboard가 물리적으로 연결되는 부분이다.
Connector를 통해 다음 항목이 전달된다.
- PCIe 신호
- 전원
- Ground
- 제어 및 상태 신호
M.2 NVMe SSD에서는 PCB 끝부분의 Edge Connector가 Motherboard의 M.2 Socket에 삽입된다.
여기서 주의할 점은 M.2가 곧 NVMe를 의미하지는 않는다는 것이다. M.2는 모듈의 크기, Connector 및 Keying 등의 물리적 형식을 규정하는 규격이며, 제품에 따라 SATA 또는 PCIe Interface를 사용할 수 있다.
10. PCB
PCB(Printed Circuit Board)는 SSD의 부품을 장착하는 기판이며, 각 부품 사이의 신호와 전원을 전달한다.
PCB에는 다음과 같은 배선이 형성된다.
- PCIe 고속 신호선
- Controller와 NAND 사이의 신호선
- Controller와 DRAM 사이의 신호선
- 전원 및 Ground 배선
- Clock 및 제어 신호선
따라서 PCB는 단순히 부품을 고정하는 판이 아니다. 고속 신호의 손실과 반사, 전원 안정성, 발열 및 부품 배치가 SSD의 정상 동작에 영향을 줄 수 있다.
11. SSD의 Write 과정
Host가 데이터를 SSD에 저장하는 과정은 다음과 같이 단순화할 수 있다.
- Host가 저장할 데이터를 System Memory에 준비하고, LBA와 데이터 버퍼의 위치를 나타내는 정보를 포함한 NVMe Write Command를 생성한다.
- SSD Controller가 PCIe를 통해 NVMe Write Command를 전달받고, Host의 System Memory에서 쓰기 데이터를 가져온다.
- Controller가 FTL을 이용하여 데이터를 기록할 NAND의 물리적 위치를 결정한다.
- Controller가 데이터에 ECC 정보를 추가한다.
- 데이터가 하나 이상의 NAND Channel을 통해 NAND Flash로 전달된다.
- NAND Flash의 선택된 Page에 데이터가 Program된다.
- Controller가 LBA와 물리적 Page의 매핑 정보를 갱신한다.
- SSD가 명령 처리 결과를 Host에 반환한다.
실제 처리 순서와 완료 응답 시점은 SSD의 Cache 정책, Firmware 및 전원 보호 구조에 따라 달라질 수 있다.
NVMe Command는 PRP(Physical Region Page) 또는 SGL(Scatter Gather List) 등의 정보를 이용하여 Host Memory에 위치한 데이터 버퍼를 가리킬 수 있다.
12. SSD의 Read 과정
Host가 데이터를 읽는 과정은 다음과 같다.
- Host가 읽으려는 LBA와 데이터를 저장할 System Memory의 버퍼 위치를 포함한 NVMe Read Command를 생성한다.
- SSD Controller가 PCIe를 통해 해당 명령을 전달받는다.
- Controller가 FTL 매핑 정보를 이용하여 LBA에 대응하는 NAND의 물리적 위치를 찾는다.
- Controller가 NAND Flash의 Page에서 데이터를 읽는다.
- Controller의 ECC 기능이 읽어온 데이터의 오류를 검출하고 정정한다.
- Controller가 PCIe를 통해 데이터를 Host의 System Memory로 전달한다.
- SSD가 명령의 처리 결과를 Host에 반환한다.
13. SSD 성능을 결정하는 요소
SSD 성능은 어느 하나의 부품만으로 결정되지 않는다.
| 구성요소 | 주요 영향 |
| PCIe Interface | Host와 SSD 사이의 최대 전송 대역폭 |
| Controller | 명령 처리, 병렬화, FTL 및 ECC 처리 능력 |
| DRAM | 매핑 정보와 메타데이터 접근 지연 |
| NAND Flash | Page Read·Program 속도와 Die 병렬성 |
| Firmware | 작업 스케줄링, Garbage Collection, Wear Leveling |
| PMIC·PCB | 전원 안정성, 신호 품질 및 지속 성능 |
| 냉각 구조 | 고온으로 인한 Thermal Throttling 가능성 |
따라서 PCIe 세대가 같더라도 Controller, NAND 구성, DRAM 유무 및 Firmware에 따라 SSD의 실제 성능은 달라질 수 있다.
14. 정리
SSD는 NAND Flash 하나로 동작하는 저장장치가 아니다.
NAND Flash는 데이터를 실제로 보존하고, SSD Controller는 Host의 명령을 NAND 동작으로 변환한다. DRAM은 Controller가 매핑 정보와 메타데이터를 빠르게 참조할 수 있도록 지원하며, PMIC와 Clock은 안정적인 전력과 동작 기준을 제공한다.
Host의 명령과 데이터는 Connector 및 PCIe Interface를 통해 SSD로 전달되고, 모든 부품은 PCB 위에서 신호와 전원 배선으로 연결된다.
결국 SSD의 동작은 다음 한 줄로 정리할 수 있다.
\[
\text{Host} \leftrightarrow \text{PCIe/NVMe} \leftrightarrow \text{SSD Controller} \leftrightarrow \text{NAND Flash}
\]
출처
White Paper: The Application of ECC/DSP to Flash Memory
What is an SSD? | Micron TechnologyInc.
What is an SSD?
Learn more about what solid-state drives are with Micron, as well as how they have revolutionized data storage, and why they are so widely used.
www.micron.com
Solid state drive design resources | TI.com
Solid state drive design resources | TI.com
www.ti.com
Specifications - NVM Express
NVMe Set of Specifications Overview The NVM Express® (NVMe®) specifications define how host software communicates with non-volatile memory across multiple transports like PCI Express® (PCIe®), RDMA, TCP and more. It is the industry standard for solid s
nvmexpress.org
System technology/HMB (Host Memory Buffer) technology | KIOXIA - Japan (English)
'Semiconductor' 카테고리의 다른 글
| FTL(Flash Translation Layer) (0) | 2026.09.17 |
|---|---|
| NAND - SLC·MLC·TLC·QLC (0) | 2026.09.14 |
| SoC(System on Chip) (0) | 2026.09.13 |
| NAND Flash는 왜 Page로 읽고 Block으로 지울까? (0) | 2026.09.13 |
| NAND Flash 알아보기 (0) | 2026.09.12 |