SSD가 빠른 이유, 데이터 삭제 원리

SSD가 빠른 이유, 데이터 삭제 원리

HDD를 대신해 SSD가 PC의 메인 스토리지로 자리매김하고 있다. 가격도 많이 낮아져서 부담도 줄어들었고, 소음이 적어 조용한 업무 환경을 제공하며 HDD보다 충격에 강해 외장 저장장치나 노트북에서 이용하기가 편하다. 그리고 무엇보다 속도가 빨라 PC를 쾌적하게 이용할 수 있다!

SSD의 장점은 이렇게 널리 알려져 있지만, 실제로 SSD가 어떻게 작동하고 어떤 원리에 의해 빠르게 데이터를 저장하고 삭제하는지는 잘 모르는 사람이 많다. 특히 SSD에서 데이터가 삭제될 때는 HDD와는 사뭇 다른 원리가 적용되어 흥미롭기도 하다. 이번 기사에서는 이 부분을 함께 살펴보려 한다.


세 줄 요약

  • NAND 타입 플래시 메모리는 데이터 기록 방식에 따라 SLC, MLC, TLC 등으로 나눈다.
  • 컨트롤러는 NAND 플래시 수명을 늘리기 위해 데이터가 골고루 저장되도록 ‘웨어 레벨링’ 작업을 진행한다.
  • NAND 플래시는 쓰기와 삭제의 단위가 다르기에 원래 장소에 새로운 덧씌우는 게 원천적으로 불가능하다. 그래서 복잡한 과정을 거쳐 삭제된다.

관련 기사 : [HDD와 SSD의 구조] 기사 보러가기

관련 기사 : [HDD와 SSD의 특징, 장단점] 기사 보러가기

SSD의 주요 구성 부품

NAND형 플래시 메모리

SSD 내부에 있는, 데이터를 제정하기 위한 플래시 메모리다. 플래시 메모리는 ‘NOR’ 타입과 ‘NAND’ 타입이 있는데, SSD에는 용량을 늘리기 쉬운 ‘NAND’ 타입이 사용된다. 셀 하나에 몇 bit의 정보를 기록하는지에 따라 SLC, MLC, TLC 등으로 나눈다.

SLC
Single Level Cell의 약자로 1개의 셀에 1bit의 정보를 기록하는 방식이다. SLC 방식의 SSD는 1개의 셀에 ON/OFF의 정보만 기록되므로 신뢰성이 높고, SSD 수명도 MLC와 TLC와 비교해 길며 쓰기, 읽기 속도도 빠르다. 전체적인 성능은 다른 방식보다 우수하지만, 대용량화가 어려워서 가격이 비싸진다는 단점이 있다. 신뢰성, 내구성이 요구되는 서버 용도로 많이 사용된다.

MLC
Multi Level Cell의 약자로 1개의 셀에 2bit 이상의 정보를 기록하는 방식인데, 보통 2bit 기록 타입을 MLC라 부른다. 셀 하나에 저장할 수 있는 bit 수가 SLC보다 2배 많아서 읽기/쓰기 속도는 느리고 수명도 짧아지지만, SLC 타입보다 대용량화가 쉽다는 장점이 있다.

TLC
Triple Level Cell의 약자. 2bit 이상의 정보를 기록한다는 점에서 원칙적으로는 MLC라 불려야 하지만, 2bit 기록 방식으로 굳어진 MLC와 차별화하기 위해 보통 TLC라 부른다. MLC보다 많은 데이터를 셀에 기록하기 때문에 속도, 신뢰성은 MLC보다 낮지만, 대용량화와 이에 따른 비용 저가격화가 가능하다. 기술 발달에 따라 데이터 기록을 제어하는 컨트롤러의 성능이 높아지면서 초기 SLC보다 속도가 빠른 TLC도 등장하고 있다.

NAND 플래시의 기록 타입에 따른 분류. QLC(Quadruple Level Cell)까지 등장했다. (사진 출처 : adata.com)

컨트롤러

데이터를 저장하는 SSD의 핵심은 NAND 플래시 메모리라 생각하기 쉬운데, 사실 가장 중요한 부품은 컨트롤러다. 데이터의 읽기, 쓰기를 전체적으로 제어하고, NAND 플래시의 수명 연장에 크게 영향을 주는 ‘웨어 레벨링’에도 간여하기 때문이다.

특히 ‘웨어 레벨링’(Wear Leveling)은 중요한 부분이다. NAND 플래시 메모리는 기록 타입에 따라 데이터를 덧씌울 수 있는 회수에 한계가 있으므로 특정 셀에 덧씌우기가 집중될 경우 수명이 짧아질 수 있다. 그래서 데이터를 저장할 때 특정 셀에 집중되지 않고 분산되어 저장되도록 해야 하는데, 이 기능이 바로 웨어 레벨링이다.

그리고 NAND형 플래시 메모리는 데이터의 저장, 삭제가 되풀이될수록 성능이 떨어지는데, 이로 인해 에러가 발생해 데이터가 손상되는 경우도 생긴다. 컨트롤러에는 이 에러로부터 데이터를 보호하기 위한 보정 기능도 탑재된다. 그래서 컨트롤러의 성능에 따라 SSD의 성능은 크게 좌우된다.

컨트롤러는 SSD의 핵심이다. 사진은 삼성전자의 NVME SSD 「PM9C1a」.
웨어 레벨링이 작동하지 않으면(상단 그림) 특정 셀에 덧씌우기가 집중될 수 있고, 이는 수명 단축으로 이어진다. 반면, 웨어 레벨링이 작동하면 셀에 골고루 덧씌우기가 진행되므로 더 오래 사용할 수 있게 된다.

DRAM(캐시 메모리)

데이터의 관리 정보 보관이나 일시적인 데이터 캐시를 담당하는 부품이다. 사실 NAND 타입 플래시 메모리의 데이터 쓰기 속도는 그다지 빠르지 않다. 그러나 캐시 메모리를 통해 데이터를 일시적으로 저장함으로써 추가로 쓰기 속도 향상이 이루어진다. 다만, 캐시 메모리가 없거나 용량이 작은 SSD도 있다.

SK하이닉스의 GOLD P31 NVMe 제품. 512MB의 DRAM을 제공한다.

인터페이스

SSD와 PC 등의 시스템을 연결해주는 부분. SATA, microSATA(mSATA), IDE, ZIF, USB、PC Express 등 다양한 규격이 있다.

SSD에서 데이터가 삭제되는 원리

SSD가 HDD와 다른 점 중 하나는 직접 데이터를 덧씌우는 작업이 불가능하다는 것이다. 그렇다면 SSD는 어떻게 데이터를 삭제하고 덧씌우는 것일까?

SSD에서 데이터의 쓰기와 읽기는 ‘페이지’라는 단위로 실행되지만, 데이터의 삭제는 여러 페이지가 모인 ‘블록’이라는 단위로 실행된다. 즉, 쓰기와 삭제의 단위가 다르기에 원래 장소에 새로운 덧씌우는 게 원천적으로 불가능하다.

따라서 SSD에서는 데이터를 삭제할 때, 블록 내의 데이터를 일단 다른 블록으로 복사한 다음 원래 블록 전체의 데이터를 삭제하는 방법이 사용된다. 이렇게 복잡한 방법으로 데이터를 삭제하는 이유는 앞서 ‘컨트롤러’ 항목에서 소개했던, SSD의 수명 단축과 데이터 보호를 위한 보정 기능을 위해 데이터를 덧씌울 메모리를 분산시키는 웨어 레벨링 작업 때문이다.

NAND 플래시의 계층적 관계. SSD는 데이터의 읽기/쓰기와 삭제의 단위가 다르기에 이런 사단(?)이 생긴다. (사진 출처 : adata.com)