최후의 MLC - 970 PRO 1TB

우리가 일반적으로 사용하는 SSD는 대개 NAND Flash기반입니다. 그리고 NAND Flash는 Cell 하나 당 저장 가능한 bit의 개수에 따라 SLC, MLC, TLC, QLC 등으로 나뉩니다.

이 글을 작성하는 2025년은 성능 중심의 TLC SSD, 용량 중심의 QLC SSD가 유통되고 있습니다. 물론 SCM(Storage Class Memory)를 지향하는 제품들은 SLC가 사용되기도 합니다. 

이러한 상황에서 MLC NAND를 사용한 제품은 찾아보기 굉장히 힘들어졌습니다. 굳이 언급하자면 Kioxia의 2세대 XL-FLASH와 일부 적당한 고내구성의 산업용 제품 정도일까요? 하지만 일부 사람들은 MLC에 대해 아직 상당한 매력을 느끼고 있습니다. SLC는 턱없이 비싼 경우가 많으니까요.

오늘은 이러한 MLC NAND를 사용한 마지막 cSSD, 970 PRO 1TB를 리뷰해보고자 합니다.

 

목차


Appearance

M.2 2280 단면 폼팩터입니다. 후면의 스티커는 구리재질을 함유하고 있습니다. 


Internal Components

문외한의 입장에서 일부 IC만 찾아보았으며, 제조시기 등에 따라 변경될 가능성이 있습니다.
Samsung 970 PRO (1TB, M.2 2280)Package Date 2020. 10
Samsung SL4R020 PHOENIXTexas Instruments TPS22990
Samsung K4F8E3D4HF-BGCHTexas Instruments TPS22975
Samsung K9UUGY8J5A-DCK0 *2Texas Instruments TPS22966
S2FPS05A01.

컨트롤러는 Samsung Phoenix를 사용합니다. ARM Cortex-R7 5코어를 사용하며, Samsung 14nm FinFET 공정을 사용한 것으로 알려져있습니다. 해당 시기의 컨슈머, 엔터프라이즈를 가리지 않고 적극적으로 사용되었던 8채널 컨트롤러입니다.

DRAM은 Samsung K4F8E3D4HF-BGCH를 사용했습니다. Samsung LPDDR4 8Gb 모델로, 일반적인 L2P 테이블을 생각한다면 1TB SSD에 충분한 용량입니다.

NAND는 Samsung K9UUGY8J5A-DCK0를 사용했습니다. 4세대 64L MLC에 해당하며, HDP를 통해 256Gb Die로 4096Gb칩을 만들어 2개 실장했습니다. 총합 512GB *2 = 1TB를 구현합니다. 인터페이스로는 Toggle 3.0 800MT/s를 사용하고 Vcc=2.5V, VccQ=1.2V입니다.

그외에 PMIC인 S2FPS05A01를 포함한 여러 소자는 PM981, PM981a와 완벽하게 공유하고 있습니다. DRAM의 차이가 SSD 용량차이로 인한 것이라고 생각한다면 사실상 HW는 NAND를 제외하곤 완벽하게 동일하다고 조심스레 말하고 싶습니다.


Datasheet

Samsung 970 PRO - Data Sheet

크게 특출난 건 없는 데이터시트입니다. 다만, 당시의 삼성답게 QD1의 성능을 명시해놓은 것은 맘에 드네요.


SW Report

CrystalDiskInfo 9.7.0 - 970 PRO 1TB

smartmontools와 NVMe-CLI의 id-ctrl 결과는 GitHub에 첨부하도록 하겠습니다.

DUT Summary

벤치마크를 진행할 SSD에 관한 요약입니다.

SAMSUNG MZ-VKB1T0HALR [970 PRO 1TB]
LinkPCIe 3.0 x4NVMe VersionNVMe 1.3
Firmware
1B2QEXP7
LBA Size512B
ControllerSamsung PhoenixWarning Temp81 °C
Storage MediaSamsungCritical Temp81 °C
Power StateMaximum PowerEntry LatencyExit Latency
PS06.20W0μs0μs
PS14.30W0μs0μs
PS22.10W0μs0μs
PS30.0400W210μs1200μs
PS40.0050W2000μs8000μs

Comparison Device

비교군은 아래와 같습니다.

NameWhy?
905P 960GB동일 시기의 하이엔드 SSD
PM981 256GB동일 시기, 동일 회사의 SSD (1)
PM981a 256GB동일 시기, 동일 회사의 SSD (2)

벤치마크 방법에 대해서는 My SSD Benchmark Method를 참고해주시기 바랍니다.


cSSD Benchmarking

CrystalDiskMark 9.0.1

데이터시트의 4-corners performance와 잘 맞아떨어지는 값이 나왔습니다. 물론 랜덤 성능은 QD값이 다르므로 1:1 비교는 불가능하지만, QD1을 기준으로 본다면 RW가 양쪽 다 데이터시트를 상회하는 결과입니다. FOB상태와 75%가 채워져있는 부분에 대해선 성능 차이가 나지 않았습니다.

Application Benchmark

3DMark Storage Benchmark - Score
SPECworkstation - SPEC Ratio

3DMark 스토리지 벤치마크에서 최신 제품들이 3000점이 넘는 점수를 기록하는 것을 생각하면, 역시 구형 제품이긴 한 모양입니다. SPECworkstation에서도 기준이 되는 1.0을 넘기지 못했다는 점이 아쉽네요.

Fill Drive

970 PRO 1TB Fill Drive - LAT/Time

강력하게 순차 쓰기를 시키더라도 상당한 성능 일관성을 유지합니다. SLC캐시가 없기 때문에 굉장히 평평한 모습을 보여줍니다. 지연시간의 경우도 생각보다 우수합니다.

Fill Drive - Total Average Speed

지속적인 순차 쓰기 성능만큼은 당시 최강이 아니었을까 합니다. 순차 영역은 Optane SSD의 특출난 부분은 아니지만, 905P보다 더 좋은 성능을 보여주는 것을 확인할 수 있었습니다.

Sync Performance

Sync Performance - SEQ Write
Sync Performance - RND Write

당연하지만, cSSD의 동기화 쓰기 성능은 처참함 그자체입니다. DRAM 캐시에 대한 보호가 확실하지 않기에 발생하는 현상인데, 재밌게도 970 PRO가 가장 뒤쳐지는 모습을 보입니다.

이는 SLC 캐시의 부재가 이유라고 생각됩니다. 해당 벤치마크의 사이즈를 키워서 SLC캐시 영역을 초과할 정도로 쓰기를 밀어넣는다면 970 PRO가 더 좋은 성적을 낼 것이라고 예상이 되네요.

추가로, 여기서부터 905P를 제외한 이유는 다른 cSSD와의 차이가 확연하게 드러나기 때문입니다.

Low QD Performance by RW Ratio 

SEQ Performance on RW Ratio
RND Performance on RW Ratio

RW비율에 따른 속도 변화입니다. RND쓰기에선 QD가 늘어날수록 속도가 잘 확장되는 모습을 보여주는데, SEQ는 완전한 읽쓰기에 가까워질수록 QD2에서 포화현상이 관찰됩니다. 하지만 Read 비율이 70%일 때는 어느정도 차이가 확인되었습니다.

SEQ Performance on RW Ratio - Weighted
RND Performance on RW Ratio - Weighted

가중치를 둔 그래프입니다. 당연할 수도 있지만, 970 PRO가 가장 우수한 성능을 보여줍니다. 가중치를 부여하니 랜덤 성능에서는 PM981과 PM981a 간의 차이가 적어보입니다.

Percentile Latency

RND Read - Percentile/LAT

랜덤 읽기에 대한 지연시간은 뚜렷한 차이를 보입니다. IOPS와 지연시간 모두 970 PRO > PM981a > PM981임을 나타내고 있습니다. 특히 PM981과 PM981a에 대해서는 유사한 모양의 그래프 형태가 나타나는 점이 흥미롭습니다.  

RND Write - Percentile/LAT

랜덤 쓰기에 대해선 다들 꽤 높은 일관성을 보여주었습니다. 더 자세하게 보면 970 PRO가 가장 뛰어난 지연시간과 IOPS를 가지고 있는 것을 확인할 수 있습니다.

Tail Latency

RND Read - Tail Latency
RND RW70 - Tail Latency
RND Write - Tail Latency
PercentileRND ReadRND Read 70%RND Write
90%71.95 µs71.65 µs13.69 µs
99%72.51 µs73.90 µs16.50 µs
99.9%75.00 µs418.28 µs24.58 µs
99.99%94.86 µs550.33 µs25.28 µs
99.999%124.73 µs3682.99 µs28.66 µs

Percentile Latency를 그린 그래프들은 X축 범위가 같지 않다는 점과 특히 Tail Latency는 Y축이 로그 스케일임에 유의해야합니다.

랜덤 읽기에 대해서는 970 PRO가 확실한 우위를 보이는 것을 확인할 수 있었습니다.

eSSD Benchmarking

970 PRO는 마지막 MLC SSD라는 특징 덕에 몇몇 사람들은 꿈과 희망을 가지고 이 친구를 바라봅니다. 보통 속도저하가 없고 안정적이라는 이유로 선호하는데, 간단한 eSSD용 벤치마크를 진행해보았습니다. 

SNIA SSS-PTS에 입각해 WIPC와 WDPC를 진행하고 Steady State 성능을 측정했습니다. 정말로 '안정적인 영역'에서의 성능을 측정하는 것이죠.

우선 순차성능입니다. 읽기의 경우 8kiB부터 대역폭을 포화시키며, 쓰기는 확장되어가는 것을 확인할 수 있었습니다.

다음은 랜덤성능입니다. 읽기는 64kiB 이전까지 대역폭을 포화시키지 못하며, 쓰기는 4kiB 이후로 확장되지 않는 것을 확인할 수 있었습니다.

일반적으로 랜덤읽기라 부르는 4kiB 랜덤읽기입니다. QD128에서 500k IOPS라고 명시한 스펙시트를 초과한 성능을 보여주고 있습니다. QD128이후로 성능은 확장되지 않고 지연시간이 늘어지는 것을 확인할 수 있었습니다.

랜덤쓰기라고 부르는 4kiB 랜덤쓰기입니다. QD에 따라 확장되지 못하고 불안정한 모습을 보여줍니다. 예상한대로 QD128에서 랜덤읽기처럼 500k IOPS라고 명시한 스펙시트의 절반도 되지 못하는 성능입니다. cSSD 스펙시트가 FOB성능을 명시하고 있다는 것을 아주 잘 보여주는 사례입니다.

970 PRO 1TB 4k RND Mix IOPS

랜덤 혼합 성능입니다. Read가 70%, Write가 30%라는 워크로드에서 안정적인 구간의 속도를 보여줍니다. 랜덤쓰기 성능과 다르게 QD에 따라서 확장되는 모습을 볼 수 있었습니다.

이쯤에서 한 번 환산하도록 해보겠습니다. cSSD 벤치마크에서도 Read 70% 비율에 대한 QD1, QD2, QD4 성능을 측정했으니까요.

970 PRO 1TBQD1QD2QD4
cSSD Benchmark76.0 MiB/s162 MiB/s312 MiB/s
eSSD Benchmark65.95 MiB/s118.198 MiB/s193.159 MiB/s
eSSD Benchmark16101 IOPS28857 IOPS47158 IOPS

결과는 보는대로입니다. cSSD 벤치마크가 Burst 성능을 측정하는 것이며, eSSD 벤치마크는 Sustained 성능을 측정하는데, QD1에선 별 차이 없어보여도 QD가 늘어남에 따라 명백하게 차이나는 모습을 볼 수 있습니다.

마지막 이미지는 제가 cSSD 벤치마크에서 Percentile Latency, 그중에서도 Tail Latency를 그린 그래프와 유사합니다. 다만, 이 그래프는 X축과 Y축이 전부 로그 스케일이란 점에 유의해야합니다. 그리고, 방금 환산해서 비교한 랜덤 혼합 성능처럼 그래프를 바로 비교할 수는 없습니다. 이 그래프는 Read와 Write를 별개로 지연시간을 계산했으니까요. 

읽기는 QD에 따라 사이좋게 따라오지만, 쓰기는 QD32에서 지연시간이 굉장히 늘어지는 것을 확인할 수 있습니다.

Closing

첫 리뷰인 삼성 970 PRO 1TB 리뷰를 여기서 마무리합니다. 970 PRO는 마지막 MLC SSD라는 점에서 특이사항입니다. 마침 이 리뷰를 작성하기 딱 한 달 전에 삼성의 MLC NAND가 완전히 단종에 들어간다는 이야기가 나왔죠. 

970 PRO의 후속으로 980 PRO가 TLC로 나왔을 때, 일부 사람들이 MLC는 이제 엔터프라이즈에서만 볼 수 있다라고 말한 적이 있는데 그렇지 않습니다. 970 PRO에 적용된 V4 MLC이후로는 TLC 개발에 집중했기 때문에 엔터프라이즈에서도 MLC를 볼 일이 사라졌었죠. 지금은 어떤가하면 너무 길어질테니 언젠가 다시 얘기하도록 하겠습니다.

제 개인적으로 첫 리뷰의 기한을 6월로 잡았기에 상당히 빠듯하게 진행했습니다. 아쉬운 부분도 여럿있네요. 다른 부분들도 마찬가지긴 하지만, 특히 Tail Latency 부분은 Context Switching 등으로 인해 불우하게 긴 지연시간이 측정될 가능성이 있습니다. 이러한 이상치를 제거하기 위해 같은 벤치마크를 여러번 진행하는게 좋겠지만, 지금의 벤치마크를 실행하는 것만 하더라도 하루를 꼬박 잡아먹기 때문에 도전할 엄두가 나질 않네요. 

"970 PRO가 2025년에도 좋을까?"라는 질문에는 답하지 못한 리뷰였을겁니다. 이는 언젠가 다른 최신의 cSSD 벤치마크에서 드러나게 될 것이라 생각하고 미래의 제게 맡기도록 하겠습니다. 굳이 데이터의 활용처를 언급하자면 PM9A1, PM983, SZ983, 983 ZET 벤치마크에 활용될 예정입니다.

이 리뷰를 작성하기 위해서 사실상 글 4개를 작성했네요. 빠듯한 시간이었지만 다 하니 후련합니다. 물론 필요없는 SSD들을 처분하기 위해서 진행할 리뷰가 산더미같이 쌓여있지만 말이죠...

끝말이 길었네요. 리뷰 읽어주셔서 감사합니다. 다음은 PM9A1 리뷰로 뵙도록 하겠습니다.

 

Samsung 970 PRO 1TB 제품을 대여해주시고 라벨 제거까지 허가해주신 지인분께 이 글로 감사인사를 전합니다.

This article was updated on

Related post