CrystalDiskInfo 개발자가 얘기하는 NVMe – 한국어 번역 & 해설

12월 26일에 삿포로에서 C++ 스터디가 열렸습니다.
발표자 중에 CrystalDiskInfo 개발자 분이 있어서, 실례를 무릅쓰고 번역/배포 허가를 받아서 번역해보았습니다.
따라서 본 글을 퍼가서 다른 곳에 게시하실 경우, 원작자 분께 허가를 받아야 합니다.
NVMe와 관련해서 잘 나오지 않는, 소프트웨어 측면에서의 NVMe를 볼 수 있는 좋은 프리젠테이션입니다.



(1페이지) 크립톤 퓨처 미디어는 삿포로시 주오구에 있습니다. 한국에는 보컬로이드를 만든 회사로 알려져 있습니다.

이론상 최고 속도는 저렇겠지만, 실제로는 아직 대역을 다 채우지는 못했습니다.
아마도 대역을 채우기 위해서는 더 많은 개발자 분들의 노력이 들어가야 할 듯 합니다.

큐가 무진장 크고 많습니다. AHCI 시절 병렬성의 한계 때문에 아예 시원하게 늘려버린 듯.
여기에서 잠깐 CrystalDiskMark가 NVMe 드라이브의 속도를 못 쫓아갔던 문제에 대해서 이야기를 했습니다.
결과적으로는 Microsoft DiskSpd를 사용하여 문제를 해결하였습니다.

저 분은 능력자라 저러는 거고 착한 개발자라면 드라이버는 어지간하면 쓰지 않는 것이 좋습니다.
드라이버의 남용은 블루 스크린의 잦은 상영, 부팅 불가 등의 부작용을 불러올 수 있습니다.

저게 알고 싶은 거라면 SetupAPI에 물어보시는 것이 블루 스크린을 한 번이라도 덜 보는 길입니다.
저만의 의견이 아니라 PCI 레지스터를 직접 접근하는 일은 위험하다며 비추천하는 글은 많이 찾아볼 수 있습니다.

vxd부터 시작되는 걸 보니 대략 윈도 98 – 윈도 10까지 지원할 것 같은데 난이도에 대한 추가 설명이 필요할지?
조금만 퀄리티 높게 가면 바로 본업으로 해야 될 수준으로 보입니다.

만악의 근원

이렇게 좋은 시절이 있었습니다.

USB는 요새는 SAT로 대동단결이라 편하더군요.
그나저나 이 부분만 다 그림 파일이라 번역하기가 어려웠네요.

사실 얄팍한 일본어 실력 + 번역기 + 사전의 힘이었습니다. 참고로 이 PPT도 그렇게 번역했습니다.
그래서 읽을 수는 있어도 쓸 수는 없어서 보낼 때는 영어로 했습니다.

일본어 윈도에서는 도자가 깨지는군요. 체크.

제가 이 방식을 연구할 때는 삼성 방식이 생각보다 어렵다고 생각했으나, 이는 시작에 불과했습니다.

정확히는 버퍼 쪽은 매직 넘버가 아닙니다.
02h도 SMART / 건강 정보를 가리키는 내용이고, FFFFFFFFh는 ATA의 SMART에 해당하는 Global Log Page를 가리킵니다. 둘 다 표준 내의 내용입니다.

나래온 도구들은 양식 변환기를 사용합니다. 이 쪽은 아직 양식 변환기는 안 나온 듯.

nvmewin이랑 비슷한 듯 하면서도 다릅니다.
그래서 원조 nvmewin은 어떤 지 궁금해서 깔아보려고 했더니 부팅 불가로 보내버리더군요.

아마도 드라이버 방식(Intel)으로 대동단결하지 않을까 싶네요. 참고로 Intel 방식은 잘 조절하면 삼성 드라이버에서도 이용가능합니다.

그래도 표준에 있는 내용은 별로 문제가 안 됩니다. 진짜 문제는 문서가 하나도 없는 경우죠.

제 프로그램의 기작을 분석하고 싶어서 체험판을 설치했다고 합니다. 델파이는 비싸기 때문에 저는 아직 XE7을 이용 중입니다.
Windows 3.1의 컨트롤들이 존재하는 사실에 충격을 받으신 모양입니다. 원래 델파이가 3.1과 리본 컨트롤에 메트로까지 공존하는 좀 신기한 동네입니다.

그럼 저도 여기서 여담 하나. hiyohiyo씨의 트윗 중 재밌는 것을 하나 소개해 드립니다.

NVMe에 대한 세계 최고 속도 지원을 옛날에 놓치고 말았습니다만, 모에는 디스크 유틸리티 부문이라면 세계 최고 속도를 넘볼 것!!.. (후략)

오픈 소스 관련해서는 저같은 무명은 그런 거 없더군요.
둘째는 초공감. 제가 나래온 툴 샘플 없으면 지원 안 한다는 말을 괜히 하는 게 아닙니다.