NAND에서 SSD로 — 주소 변환·오류 정정·데이터 관리를 연결하기

Page·Block과 FTL·GC·Wear Leveling·ECC를 연결하고 Cell 오류와 사용자 데이터 오류를 구분합니다.

직무 연결 · 통합 학습 · 업데이트 2026-10-20

3줄 요약

  • Page·Block과 FTL·GC·Wear Leveling·ECC를 연결하고 Cell 오류와 사용자 데이터 오류를 구분합니다.
  • 개별 측정·공정 조건과 제품 기능·시스템 결과를 구분합니다.
  • 공개 원리를 연결한 교육용 설명이며 가상 예제를 실제 기업 데이터로 사용하지 않습니다.
이 페이지 목차한 문장 요약기존 NAND 학습 다음에 볼 것Page와 Block, 그리고 주소 변환관리 기능을 목적별로 구분하기교육용 GC 예: 유효 데이터 이동 비용ECC: 물리 오류·정정·최종 결과의 세 단계NAND 성능과 SSD 성능을 혼동하지 않기문제 → 가설 → 검증학생들이 자주 하는 오해선수 학습과 다음 공부교육용 예상 면접 질문공개 참고 자료SSD 지연: 평균이 같아도 경험은 다를까?

한 문장 요약

SSD는 NAND의 물리적 저장 동작 위에 주소·공간·사용 이력·오류 관리를 더한 시스템이며, Cell 관찰과 사용자 결과는 같은 계층이 아닙니다.

기존 NAND 학습 다음에 볼 것

Cell·String·WL/BL·Program/Read/Erase, Retention·Endurance·Disturb는 기존 글에서 배웁니다. 여기서는 그 원리를 반복하지 않고 호스트 요청이 물리 저장·관리·오류 처리로 이어지는 과정을 연결합니다.

Page와 Block, 그리고 주소 변환

일반적인 NAND는 Page를 읽기·Program 단위로, 여러 Page를 포함한 Block을 Erase 단위로 사용합니다. 제품별 Page 구성·부분 쓰기 제약·MLC/TLC/QLC의 논리 Page와 물리 구조 관계는 다릅니다. Host의 논리 블록 크기와 NAND Page 크기를 동일하게 고정하지 않습니다.

SSD Controller는 Host 명령·데이터 경로·NAND 동작과 관리 기능을 조율합니다. Flash Translation Layer(FTL)는 논리 주소를 물리 저장 위치로 연결하고 매핑·배치·갱신을 관리하는 계층입니다. 같은 논리 주소를 다시 써도 새 물리 위치에 기록한 뒤 매핑을 갱신할 수 있습니다. 이전 위치는 유효하지 않은 데이터가 됩니다. 구체적 매핑 크기·저널·전원 장애 복구 방식은 구현별로 다릅니다.

관리 기능을 목적별로 구분하기

기능 중심 목적 실제 관찰할 지표/한계
Garbage Collection(GC) 유효 데이터를 옮기고 Block을 지워 공간 회수 유효/무효 분포·여유 공간·추가 내부 쓰기·지연
Wear Leveling 특정 Block의 사용 집중 완화 P/E 분포·이동 비용; 열화를 되돌리는 기능 아님
Bad Block Management 제조 시/사용 중 불량 Block을 사용 대상에서 제외·대체 불량 표식·예비 영역·사용 중 실패 처리·잔여 여유
ECC 추가 검사 정보를 사용해 일정 범위의 오류 탐지/정정 Codeword·코드/디코더 조건·정정 결과·정정 불가 비율

GC는 사용자 파일을 OS에서 삭제하는 동작과 같지 않고, Wear Leveling은 단순 GC의 다른 이름도 아닙니다. 주소/데이터 이동·GC·사용 분산은 자원과 비용을 공유할 수 있습니다. TRIM/Deallocate 같은 Host 정보도 관리에 영향을 줄 수 있지만 실제 동작·즉시 삭제/안전 삭제 보장은 제품과 명령 의미를 확인해야 합니다.

교육용 GC 예: 유효 데이터 이동 비용

설명을 위해 한 Block이 가상 Page 4개라고 정합니다. 실제 제품의 Page 수가 아닙니다. 그중 유효 1개·무효 3개라면 유효 1개를 다른 위치로 보존한 뒤 Block을 Erase할 수 있습니다. 유효 데이터 3개가 남은 Block은 같은 한 번의 공간 회수에도 이동량이 더 큽니다. 다른 조건과 대상 선택이 같을 때의 예이며 일반적인 최적 GC 알고리즘을 제시한 것은 아닙니다.

같은 구간에서 Host가 4단위 데이터를 쓰고 NAND 내부 쓰기가 이동 등을 포함해 6단위라면 교육용 Write Amplification은 6/4=1.5입니다. 단위와 관측 경계를 일치시켜야 하고 NAND 내부 쓰기량을 Host 처리 속도와 같은 값으로 읽지 않습니다.

ECC: 물리 오류·정정·최종 결과의 세 단계

읽기 판독에서 저장 상태를 잘못 구분한 Raw 오류와, ECC 적용 후 남는 오류, Host에 보고되는 정정 불가/데이터 결과는 서로 다른 측정입니다. ECC는 데이터와 함께 보존한 중복 정보를 이용해 코드의 조건 안에서 오류를 검출·정정합니다. 단순 Parity는 일반적으로 오류 검출 예이지 임의 오류 정정의 전체 모델이 아닙니다. 실제 NAND의 BCH·LDPC 등 세부 코드는 구현별로 다르며 정정 능력을 보편적인 “몇 비트”로 고정하지 않습니다.

예를 들어 자체 가상 관찰에서 동일 Codeword의 Raw 오류가 발견됐어도 정정 후 원래 데이터와 일치하면 그 읽기는 복구된 것입니다. 반대로 ECC 범위를 넘거나 다른 계층에 문제가 있으면 사용자 데이터 오류나 정정 불가가 남을 수 있습니다. 높은 정정 횟수는 물리 오류 부담·사용 이력의 단서지만 오류가 영원히 없어진다는 보증은 아닙니다. 정정 정보의 단위·누적 기준·판독 조건을 함께 확인해야 합니다.

NAND 성능과 SSD 성능을 혼동하지 않기

SSD의 대역폭·IOPS·지연은 NAND 외에 Controller·채널/병렬성·Host 인터페이스·Firmware·Queue·Workload·온도·여유 공간·GC·캐시 상태가 함께 결정합니다. 순간 Burst와 장시간 Steady State, 평균과 Tail Latency는 다릅니다. 적층 수·Cell 비트 수·단일 NAND 속도만으로 완제품 성능 순위를 매기지 않습니다. TBW 같은 제품 수준의 쓰기량과 Block의 P/E 이력도 구분합니다.

문제 → 가설 → 검증

장시간 쓰기 뒤 지연이 늘면 GC·캐시 소진·온도·Host 조건·장치 상태를 분리합니다. 동일 용량·여유 공간·사전 상태·명령/Queue·온도에서 읽기/쓰기·평균/꼬리 지연·오류 지표를 비교합니다. Raw 오류 증가와 Host의 정정 불가 이벤트를 시간축으로 대조하고 전원/펌웨어·인터페이스 가설도 남깁니다. 가상 예만으로 특정 Controller나 NAND 결함을 원인으로 확정하지 않습니다.

학생들이 자주 하는 오해

관찰한 결과, 가능한 메커니즘, 검증된 원인을 구분하세요. 단일 수치·단면·상관만으로 공정이나 제품 전체를 판단하지 않습니다. 공개된 일반 원리는 기업 내부 Recipe와 같지 않습니다.

선수 학습과 다음 공부

NAND Flash란? · Endurance란? NAND Program/Erase 내구성 · Retention이란? DRAM과 NAND의 데이터 유지 · Memory Disturb란? NAND와 DRAM의 동작 간섭 · 반도체 Test Flow란? Wafer EDS부터 Final Test까지 ·

교육용 예상 면접 질문

NAND 오류가 늘었는데 사용자 데이터는 정상일 수 있나요?

핵심 답변: 물리 판독 오류와 ECC 정정 뒤 결과·Host 데이터 상태를 구분합니다. 꼬리질문: 정정 가능 범위와 관측 단위를 무엇으로 기록할까요?

NAND가 같으면 SSD 성능도 같나요?

핵심 답변: 관리 정책·병렬성·캐시·Host/Workload·온도·여유 공간 등이 다릅니다. 꼬리질문: Burst와 Steady State를 어떻게 나눠 비교할까요?

공개 참고 자료

확인: 2026-10-18. 공개 원리를 참고해 비교표·사례·질문을 자체 작성했습니다. 제품별 성능·공정 조건의 보편적 보증이 아닙니다.

추가 실습: SSD 지연: 평균이 같아도 경험은 다를까?

교육 보강 · 2026-10-20 · 권장 4학년 단계

원문의 GC·Write Amplification·ECC 원리를 다시 쓰지 않고 Host 요청 지연 분포를 읽습니다. 두 독립 가상 Workload는 각100요청이며, 요청별 관측 시작·종료 경계가 같다고 가정합니다. A는 모두10ms, B는95개5ms·5개105ms입니다. 실제 NAND/SSD 벤치마크가 아니고 요청 순서에 원인 정보가 들어 있지 않습니다.

모든 CSV·숫자·문제·해설은 자체 생성한 학습용 가상 자료입니다. 실제 회사·제품·장비 조건이나 측정 성능이 아닙니다.

1. 모델과 읽는 기준

평균은 지연 합/요청 수입니다. 이 실습의 p분위수는 오름차순 배열의 ceil(p×n)번째 값인 nearest-rank로 고정합니다. 다른 보간법은 다른 값을 줄 수 있으므로 방법·표본 수를 함께 보고합니다. Host 요청 지연을 NAND Cell의 Read/Program 시간으로 읽거나, 지연만으로 Raw 오류/ECC/사용자 데이터 오류를 계산하지 않습니다.

시나리오요청 수분포(ms)
A100100개 모두10
B10095개는5, 5개는105

2. 자료 내려받기와 실행

이 실습 자료 한 번에 받기 (ZIP) — CSV·분석기·열 설명 README·학생 보고서 양식이 들어 있습니다. 압축을 완전히 푼 뒤 폴더 안의 README.md를 먼저 읽으세요. 아래 개별 파일도 계속 사용할 수 있습니다.

다른 실습과 구분한 depth-ssd 폴더를 만든 뒤 아래 CSV와 분석기만 같은 폴더에 저장하세요. Python 3 표준 라이브러리만 사용하며 로그인·업로드·외부 접속은 없습니다. Python을 쓰지 않아도 표와 CSV로 직접 풀 수 있습니다.

python3 depth_analysis.py ssd

실행되지 않을 때 확인하기
  • ZIP을 완전히 풀고 README.md와 CSV·depth_analysis.py가 함께 있는 폴더에서 실행하세요.
  • 명령을 찾을 수 없다는 오류라면 Python 3 설치 여부와 터미널에서 사용하는 명령 이름을 확인하세요. 실행 파일 이름이 python인 환경에서는 앞의 python3만 python으로 바꿉니다.
  • 파일을 찾을 수 없다는 오류라면 압축 파일 안에서 실행하지 않았는지, 파일명에 중복 다운로드 번호가 붙지 않았는지 확인하세요.
  • CSV 열이나 값 오류라면 원본을 다시 내려받아 비교하세요. 누락값을 0으로 바꾸거나 행을 삭제해 오류를 숨기지 마세요.

Python이 없어도 표·CSV와 문제로 먼저 분석하고, 접힌 해설에서 계산을 확인할 수 있습니다.

CSV 열 설명과 학생 보고서 작성 가이드

같은 이름의 열이라도 실습별 단위·집계 기준을 확인하세요. a.u.는 임의 단위이며 실제 공정 단위로 환산하지 않습니다. 숫자가 비어 있거나 의미가 불분명하면 임의로 0을 넣지 말고 자료 정의를 먼저 확인하세요.

ssd.csv 열 읽기

열 이름의미·단위·판단 범위
scenario서로 독립된 가상 Workload A/B 구분입니다.
request각 가상 시나리오 안의 요청 번호입니다. 실제 시각·큐 상태·원인 정보가 아닙니다.
latency_ms같은 관측 경계를 가정한 Host 요청 지연(ms)입니다. NAND Cell 동작 시간과 구분합니다.

학생 보고서에 남길 다섯 항목

ZIP의 REPORT.md에 직접 작성하거나 같은 항목으로 종이에 정리하세요. 작성 내용을 사이트에 저장하거나 업로드하는 기능은 없습니다.

  1. 질문과 비교 범위: 무엇을 비교했는가? 시료/사건/요청 단위, 조건·기간·분모를 적습니다.
  2. 계산과 관찰: 사용한 식·단위·집계 기준과 관찰값을 적습니다. 관찰과 해석을 구분합니다.
  3. 가능한 가설: 현재 관찰을 설명하는 가설을 둘 이상 적고, 각 가설의 예측과 반례를 씁니다.
  4. 추가 증거와 다음 판단: 가설을 구분할 측정·대조 자료를 고르고, 어떤 결과가 나오면 결론을 바꿀지 적습니다.
  5. 한계와 결론: 자료에 없는 정보와 확정할 수 없는 원인을 적습니다. 실제 공정/제품 판단으로 확대하지 않습니다.

실행이 안 되면 먼저 압축 해제와 파일 위치를 확인하세요. Python을 사용하지 않아도 앞의 표·CSV로 문제를 풀 수 있습니다. 분석기 결과는 계산 확인 자료이며 실제 공정 원인의 정답이 아닙니다.

3. 해설을 열기 전에 풀어보세요

  1. 두 평균과 p99를 비교해보세요.
  2. B의 p95는105ms인가요?
  3. 느린5건은 GC나 ECC 때문이라고 확정할 수 있나요?
계산 해설·핵심 답변·흔한 오류 확인하기

A의 p50/p95/p99/최대는 모두10ms. B는5/5/105/105ms입니다. 같은 평균10ms는 느린5건을 숨깁니다. 100개라는 작은 가상 자료로 실제 장치의 안정적인 p99를 추정했다는 뜻은 아닙니다. 서로 다른 Queue Depth의 평균 지연과 IOPS를 단순 역수로 비교하지 않습니다.

1. 두 평균과 p99를 비교해보세요.

핵심 답변: 평균은 모두10ms이고 p99는 A10ms, B105ms입니다.

흔한 오류: 평균이 같으므로 응답 품질도 같다고 말하기.

2. B의 p95는105ms인가요?

핵심 답변: 이 정의에서는95번째 값5ms입니다. p99는99번째 값105ms입니다.

흔한 오류: 상위5%가 느리니 어떤 계산법에서도 p95는 느린 값이라 단정하기.

3. 느린5건은 GC나 ECC 때문이라고 확정할 수 있나요?

핵심 답변: 아닙니다. Queue·캐시·GC·온도·Host·펌웨어·오류 처리 이력이 더 필요합니다.

흔한 오류: Host 지연 한 열만으로 Cell 불량 또는 특정 관리 알고리즘을 확정하기.

4. 추가 증거와 결론 갱신

같은 읽기/쓰기 혼합·요청 크기·Queue Depth·관측 경계·용량/여유 공간·사전 상태·온도에서 충분한 기간을 반복합니다. 느린 요청 시점의 Controller/Host 및 오류 정정·정정 불가 로그를 대조합니다. 성능과 데이터 정확성은 각각 측정하고 물리 오류→정정 후 결과→Host 결과의 계층을 유지하세요.

이 자료로 판단할 수 없는 것: 이 파일에는 처리율·병렬성·실제 큐·시간 상관·전원 장애 정보가 없습니다. 장치 성능 순위나 실제 운용 서비스 수준을 제시하지 않습니다.

선수 학습과 다음 공부

권장 읽기 순서입니다. 실제 제조 순서나 필수 이수 조건을 뜻하지 않습니다. 이미 아는 내용은 건너뛰세요.

먼저 복습하기

이어서 공부하기

직무 연결: 평가·분석·PE · 제조 Data·AI · 소자 · 수율·품질

공개 근거와 작성 범위

공개 개념 확인: 2026-10-20. 아래 자료는 원리·정의의 근거이며 표·사례·실습 데이터는 FlashMemory 자체 제작입니다. 회사 내부 Spec이나 공식 기출이 아닙니다.

LEARNING DEPTH

어디까지 알아야 하나요?

아래는 NAND에서 SSD로 — 주소 변환·오류 정정·데이터 관리를 연결하기의 학습 목표입니다. 직무별 모듈에서 필요한 수준을 함께 확인하세요. 회사의 공식 평가 기준이나 합격 기준은 아닙니다.

LEVEL 1 · 공통 기초

설명할 수 있어야 합니다

주소 단위

LEVEL 2 · 직무 핵심

설명할 수 있어야 합니다

쓰기 관리

LEVEL 3 · 실무 연결

생각해볼 수 있어야 합니다

오류 계층

LEVEL 4 · 심화

더 깊게 연결해보세요

한계

이 기술을 이해했나요?

FlashMemory 자체 연습문제입니다. 먼저 본인의 말로 설명한 뒤 답변 방향을 확인하세요. 각 단계는 권장 학습 목표이며 실제 업무 범위와 평가 기준은 회사·제품에 따라 다릅니다.

공통 기초 · Host 주소와 NAND 물리 주소는 같은가요?

FTL의 매핑·재배치 때문에 논리 주소가 같은 물리 Page에 고정되지 않습니다.

직무 핵심 · GC와 Wear Leveling은 같은 목적만 갖나요?

유효 데이터 이동/공간 회수와 사용 분산은 목적이 다르며 실행은 상호작용할 수 있습니다.

실무 연결 · Cell 읽기 오류가 보이면 사용자 데이터가 바로 틀렸나요?

ECC·재시도·관리 결과와 최종 정정 불가/사용자 데이터 상태를 별도로 봅니다.

심화 · ECC가 있으면 내구성이나 백업이 필요 없나요?

정정 범위·모형·관리와 장치 고장/전원/펌웨어 등 별개 위험이 있으며 무한한 보호가 아닙니다.

연결해서 공부하기

다음으로 무엇을 공부할까요?

먼저 필요한 개념과 이어서 읽을 기술을 연결했습니다. 실제 제조 순서가 아니라 학습을 돕는 제안입니다.

전체 학습 로드맵에서 다음 단계 선택하기 →

관련 기술

다른 관점에서도 찾아보기

같은 기술을 여러 분야에서 탐색할 수 있습니다. 선수 지식과 다음 공부의 명시적인 순서를 먼저 따르세요.

함께 살펴볼 기술

공통 활용 목적을 바탕으로 제안한 보조 읽기입니다. 필수 선수과목이나 실제 제조 순서를 뜻하지 않습니다.