Workspace/프로젝트

M.2 Multi Card 자작기


정말 오랜만에 자작기를 올려보는 것 같습니다. 

그간 팬 컨트롤러나 ARGB LED 컨트롤러 등 여러 프로젝트를 진행했지만 저장장치 계열로는 첫 번째 자작기로 앞으로 다가올 PC 환경에 미리 대응하고자 하는 마음으로 프로젝트를 진행하게 되었습니다.

이번 프로젝트는 'M.2소켓을 활용한 PCIe 카드'로 M-ATX, ATX 마더보드에서 쓰임새 없이 낭비되던 PCIe 슬롯을 활용하고 기존 2.5인치 SSD, 3.5인치 HDD같은 폼팩터 크기가 큰 저장장치를 벗어나 PC 케이스 내부 공간 가용력을 높이는데 목적이 있습니다.



M.2규격 SSD를 활용하는 프로젝트인만큼 시작하기에 앞서 M.2소켓과 M.2소켓에 대응하는 두종류의 SSD를 알아보겠습니다.



수년전엔 생소하기도 하고 마더보드에서도 쉽게 지원하지 않았던 M.2 소켓은 현재 보급형 마더보드에도 하나쯤은 적용될 정도로 데스크탑 PC시장에 깊게 스며들었으며 인터페이스 타입에 따라 NVMe, SATA 타입 M.2 SSD로 나뉩니다.

마더보드의 M.2 소켓 회로설계에 따라 M.2 NVMe SSD, M.2 SATA SSD를 동시에 지원하기도 하며 한가지 M.2 SSD를 지원하기도 합니다.

M.2 소켓을 통해 전력을 공급하고 인터페이스 연결도 가능해 SATA 전원케이블과 같은 전력 케이블이나 SATA3케이블과 같은 인터페이스 케이블이 필요하지 않습니다.






PCIe 대역폭을 십분 활용할 수 있는 NVMe SSD는 보편적으로 PCIe 인터페이스의 4레인을 할당받아 동작하며 빠른 전송속도를 지닌 이점도 있지만 SATA 타입 M.2 SSD 대비 비싼 가격, SATA 인터페이스 대비 한정적인 PCIe 인터페이스를 사용하는 점, 빠른 전송속도에 따른 높은 소비전력 및 발열 등의 단점 또한 안고 있습니다.

반면 SATA타입 M.2 규격 SSD는 기존 2.5인치 SSD나 3.5인치 HDD에 연결하는 SATA인터페이스를 활용하며 전송속도가 부족한 대신 상대적으로 저렴한 가격, 넉넉한 인터페이스 수, 낮은 소비전력 및 발열 등의 장점도 있어 두 타입의 M.2 SSD를 적절히 혼용하였을때 이상적인 시스템을 꾸릴 수 있다고 생각합니다.

크게 두 SSD는 M.2 소켓에 연결하는 핀의 형태에 따라 쉽게 구분할 수 있으며 이례적으로 M-Key, B-KEY를 함께 사용하는 (PCIe 2레인)NVMe SSD도 있어 확실한 구분법은 인터페이스 스펙을 참고하는 것이 바람직합니다.





(이미지 출처 : https://www.sabrent.com/)


M.2 규격 SSD는 2.5인치 SSD 대비 작은 폼팩터로 현재까지도 2.5인치 SSD 대비 담을 수 있는 저장용량이 부족했지만 최근 소비자용 8TB NVMe SSD도 출시하며 폼팩터의 작은 크기로 인한 저장장치 용량의 한계는 점점 없어지고 있는 추세며 낸드 플래시 메모리의 발전에 따라 M.2 규격과 같은 소형 폼팩터의 입지가 날로 커질 것이라 생각하는만큼 기존 2.5인치 SSD의 충분한 대체제가 될 것으로 전망합니다.

그리하여 M.2 NVMe SSD를 하나 더 확장하고 여러개의 M.2 SATA SSD를 수용할 수 있는 카드를 제작해 부족한 SATA 인터페이스의 한계를 Raid 구성으로 보완하고 마더보드의 인터페이스 단자를 십분 활용하는 방향으로 가닥을 잡았습니다.

초기 구상은 복수의 NVMe SSD를 적용하고자했지만 NVMe SSD를 하나만 적용할 수 있게 인터페이스 구성을 변경한 이유는 아래와 같습니다.






PCIe 8레인 또는 16레인 구성의 NVMe Raid를 지원하는 카드로 구상했으나 HEDT(High-End DeskTop) 프로세서 및 마더보드와 달리 PCIe 레인에 한계가 있는 일반 데스크탑 프로세서 및 마더보드는 그래픽카드나 마더보드에 기본 구성된  M.2소켓에 할당되는 PCIe 레인을 제외하면 여분의 레인은 1레인에서 최대 8레인 정도로 일반적으로 PCIe 16배속 슬롯에 PCIe 4레인 또는 PCIe 1배속 슬롯에 PCIe 1레인 형태로 구성된 마더보드가 대다수였습니다.

최종적으로 1개의 NVMe SSD와 복수의 SATA타입 M.2 SSD를 장착하고 ITX 보드부터 ATX 보드에 모두 대응할 수 있는 크기의 카드로 LP(Low-Profile)타입 카드 형태에서 세로 길이만 키워 ITX 마더보드의 가로길이에 벗어나지 않는 크기로 인터페이스 구성과 카드 크기를 정했습니다.

HEDT가 아닌 일반 데스크탑용 저장장치 카드로 이번 프로젝트를 마무리 짓고 추후 사용하는 시스템 환경이 바뀐다면 16배속 분기형 NVMe SSD 카드도 제작해볼 계획입니다.






벤치마킹 대상중 하나인 카드로 PCIe 슬롯을 활용하여 M.2 NVMe SSD, M.2 SATA SSD를 사용할 수 있게 마련한 확장 카드입니다.

PCIe 슬롯당(=PCI 브라켓당) 활용할 수 있는 M.2 규격 SSD는 최대 2개로 별도의 전력 공급 없이 PCIe 핀의 3.3V 전력을 공급받아 구동하는 형태로 저용량 M.2 규격 SSD를 사용할땐 무리가 없으나 상대적으로 전력 소모가 높은 대용량 M.2 규격 SSD를 사용할 경우 공급전력이 부족할 수 있는 단점과 발열 해소가 불가능한 구조를 확인했습니다.

더불어 마더보드의 설계에 따라 PCIe 전력을 사용하는데 편차가 있는만큼 M.2 NVMe SSD를 제외한 나머지 저장장치는 모두 파워서플라이의 전원을 끌어다 쓰는 방향으로 정하는 등 세부 구성은 기성품을 벤치마크 하며 단점들을 보완하며 아이디어를 덧대는 방식으로 진행했습니다.






크게 좌측을 M.2 SSD 영역, 우측을 커넥터 및 전원 관련 소자들로 구성했습니다. 

PCIe 슬롯, 브라켓 치수 등을 고려하고 PCB를 여러장 쌓아 올릴 수 있는 적층형 구조로 진행 방향을 잡은만큼 각 모서리에 스탠오프 들어갈 자리도 만들어주고 컨버터 모듈을 적절히 보강시켜줄 수동소자 이외엔 땜질할 소자들을 간소화시켰습니다.






완성된 두 종류의 PCB.

하나는 M.2 NVMe SSD1개와 M.2 SATA SSD 2개를 사용할 수 있는 PCB, 다른 하나는 M.2 SATA SSD 3개를 장착할 수 있는 PCB로 디자인하였습니다.






PCIe 같은 고속 인터페이스의 접점, 물리적 특성을 고려해  PCIe 레인을 활용하는 PCB는 표면처리를 ENIG(금도금 처리)로 제작했습니다.

요즘 소량 샘플 PCB 가격이 저렴해 여러장 떠도 비용면에서 큰 부담이 없었습니다.  






상대적으로 소모전력이 적고 PCIe 핀과 같이 고속 인터페이스 접점이 없는 PCB는 기본 공정으로 제작했습니다.






벤치마킹한 기성품 카드는 발열 해소가 불가능하지만 이번 카드는 M.2 SSD 위 아래 모두 발열해소가 가능하고 높은 열용량을 가져 SSD의 급격한 온도변화가 없게끔 디자인했습니다.

M.2 SSD의 바닥면과 닿는 면엔 위와 같이 GND 홀(GND Via Hole)을 둬 M.2 SSD로 부터 발생하는 열을 PCB 전역으로 퍼지게 하고 아래에서 살펴볼 백플레이트로 열을 전달시키는 역할을 합니다.






소켓, 모듈 및 각종 소자들을 실장한 모습.

두 카드 모두 Pitch 2.54mm 헤더소켓을 통해 IDE 4핀에서 단자가 변환된 전원을 가져옵니다. 헤더소켓 및 헤더핀 하나당 공급 전류가 낮아 4핀당 1개의 전력원, 8핀의 GND 구성으로 설계했습니다.






PCIe 슬롯으로 전력을 공급받는건 M.2 NVMe SSD 하나며 나머지 M.2 SATA SSD는 IDE 케이블의 전력을 헤더소켓으로 받아 변환된 3.3V 전원을 공급받습니다.

소비전력이 높은 대용량 M.2 SSD도 여유롭게 대응하고 땜질의 귀찮음도 쉽게 피하고자 LDO타입 리니어 레귤레이터를 사용했습니다. 인텔 파워서플라이 디자인 가이드의 전원 범위와 비슷하게 4.8V이상의 +5V전원에서 정상 작동합니다.






M.2 SATA SSD를 장착할 수 있는 카드는 다방면에 사용하는 가성비 출중한 3.3V 벅컨버터 모듈을 사용해 땜질할 귀찮음도 최소화하고 입출력단에 적당히 출력 댐퍼역할을 하는 커패시터 구성으로 꾸렸습니다.

모듈 구성상 약 9W가량 전원공급이 가능해 수 TB용량의  M.2 SATA SSD를 넉넉하게 수용할 수 있습니다.

앞서 살펴본 두 PCB의 전원 구성이 다른 이유는 IDE 4핀 케이블을 변환하여 전원공급을 하는만큼 +12V 또는 +5V 전원의 편중을 막고 IDE 케이블의 제한 전력을 넘지않게 하기 위함입니다.






PCB의 높이를 최대한 줄이고자 M.2 슬롯은 마더보드에 적용되는 소켓보다 프로파일이 더 낮은 슬롯을 사용하였고 SATA인터페이스도 마더보드의 NVMe/SATA M.2 소켓처럼 M-Key소켓을 사용했습니다.






M.2 SSD 장착시 SSD 바닥면과 PCB간 높이는 약 1.5mm 가량 나왔습니다.






전원 LED 및 상태 LED도 배치해봤습니다. PC케이스 전면 I/O에 구성된 HDD 동작 LED처럼 M.2 SSD에 데이터를 기록하거나 가져올때 LED가 표현됩니다.

핀 할당은 M.2 SSD의 DAS(Device Activity Signal)핀을 활용했습니다.






M.2 SSD 장착모습.






미리 제작해둔 알루미늄 패널, PCB를 M.2 SSD와 접촉시키기위해서 써멀패드를 사용했습니다. 








PCB 후면과 전면에 써멀패드를 부착합니다. 






이어서 M.2 SSD를 고정시킵니다. 

M.2 SSD의 하단 메모리 등 모듈 및 소자 실장 상태에 따라 PCB와 M.2 SSD 사이 전면 써멀패드의 두께가 달라지며 SSD 상단에 모듈 및 소자가 집중된 타입의 경우 1.5T 써멀패드로 부착시 딱 맞게 부착되었습니다.






이후 M.2 SSD와 미리 제작한 알루미늄 패널간 열전달을 위해 상단에도 써멀패드를 부착합니다.





PCB 위아래로 알루미늄 패널을 부착하면 최종적으로 조립이 끝납니다. 

알루미늄 패널은 AL1050으로 물성치 기준 AL5000계열이나 AL6000계열 대비 강도는 낮지만 열전도성이 탁월하고 무엇보다 업체에 의뢰할때 아노다이징이 기본적으로 처리되어 추가 가공비용 없이 의뢰할 수 있었습니다.

이번에 주문하면서 알게된 용어인 기계관련 용어인 카운터싱크(접시 머리 나사가 표면에 잘 맞게 하는 가공)는 따로 의뢰하지않고 5mm드릴날로 적당히 홈을 내고 나사를 장착했습니다. 






SATA케이블 연결후 모습. 벤치마킹한 기성품의 경우 고정 걸쇠가 있는 SATA케이블을 장착할 경우 포트가 휘어져 물리적인 변형이 있었는데 해당 부분도 보완시켰습니다.






이번 프로젝트의 큰 특징은 기성품과 달리 적층형(스택형) 구조로 PCIe 1슬롯(브라켓 1열)당 2개의 PCB를 연결해 총 6개의 M.2 SSD를 장착할 수 있습니다.






PCI 브라켓 1열 기준 M.2 NVMe SSD 1개, M.2 SATA SSD 5개 구성이 가능하며 마더보드의 SATA포트 또는 애드온 SATA카드 등을 사용하여 확장할 수 있습니다.

M.2 SATA SSD의 경우 부족한 전송속도를 마더보드나 애드온 카드를 사용해 raid 같은 스토리지 구성이 가능합니다. 








크기가 작은편에 속하는 2팬 구성 그래픽카드와 비교해봤습니다. 브라켓 상단에 못미치는 크기로 다중 GPU구성시 NV LINK 커넥터와 같은 커넥터간 간섭이 없습니다.

가로 길이는 PCIe 16배속 슬롯에 준하는 길이로 ITX 보드를 사용한 소형 시스템에도 호환 가능합니다.

무엇보다 PC케이스의 2.5인치/3.5인치 저장장치 공간을 사용하지않아 소위 저장장치 확장성이 좋은 PC케이스를 가릴 필요없이 저장장치를 넉넉하게 구성할 수 있어 시스템 내 저장장치 가용력을 높일 수 있습니다.

향후 HDD의 시대가 지나고나면 PC케이스 또한 저장장치 변화에 따른 내부 레이아웃이 한번쯤 큰 변화를 겪으리라 생각하는데 始發점이 M.2 SSD의 대중화가 아닐까 싶습니다.












PCI 1열 적층에 이어 2열 적층 구성도 가능합니다. 브라켓 1열당 6개, 2열 총 12개의 저장장치를 확장할 수 있습니다.

아마 이정도로 확장한다면 마더보드의 SATA포트뿐만 아니라 별도의 SAS/SATA 컨버터를 사용하여 사용해야 될 것 같습니다. 








적층없이 기본 구성으로 마더보드에 장착한 모습.

PCIe 전원 LED와 IDE4핀 케이블을 경유한 외부 전원 LED 2개로 SSD가 유휴상태일때는 전원 LED만 점등되도록 꾸렸습니다. 시인성 향상을 위해 5T 두께의 실리콘 시트를 적당한 크기로 잘라 부착했습니다.






읽기 쓰기 작업이 있을때엔 위와 같이 전원 LED사이에 LED가 점등되는 형태로 모든 SSD가 동작중일땐 카드 좌측부터 우측까지 LED가 모두 점등됩니다.

쉽게 PC케이스 전면 I/O의 저장장치 LED를 저장장치 별로 나눈 형태입니다.






마더보드에 구성된 M.2 소켓과 동일하게 부팅디스크로 활용할 수 있습니다. 








동작 테스트겸 벤치마크 비교군으로 방열판 없는 M.2소켓, 방열판 구성한 M.2 소켓간 속도 체크, 온도 체크를 진행해봤습니다. 








프로세서에 직결로 연결된 M.2 소켓의 경우 M.2 Multi Card 대비 전송속도면에서 소폭 이점이 있었고 칩셋을 경유하여 할당받는 PCIe 레인을 활용할 경우 최대 속도에선 조금 낮은 속도를 기록했습니다.

PCIe 4레인을 받아 M.2 소켓으로 설계할때 AC 커플링 커패시터를 배치할까 싶었는데 이번 벤치마크로 기존 회로를 수정할만한 속도저하는 없었습니다. 

작년쯤 다른 시스템에서 M.2 SSD 컨버터와 마더보드의 M.2소켓간 속도 편차를 체크해본 경험이 있었는데 비슷한 양상을 보인 것을 보면 트레이스 길이 또는 칩셋을 경유하여 할당받는 요소에서 기인한 문제가 아닌가 싶습니다.






저장장치 온도는 열이 많이나기로 익히 유명한 NVMe SSD 계열 중 970 EVO Plus를 사용했음에도 M.2 Multi Card에 장착한후 유휴 상태에서 32도, 부하 상태에서 36도로 온도 편차가 4도밖에 안나는 수치를 기록했습니다.

마더보드의 M.2 방열판 대비 PCB부터 알루미늄 패널에 이르기까지 카드의 열용량이 큰 것을 감안하여 벤치마크를 진행할때도 CrystalDiskMark를 1회 시행후 온도체크가 아닌 3회 연속시행후 온도를 체크했지만 충분한 발열 해소능력을 보였습니다. 일반적인 저장장치 사용환경이 아닌 것을 고려할때 복수의 M.2 SSD를 장착해도 쿨링팬 활용없이 패시브 쿨링이 가능할 것으로 보입니다.





별도의 제어기 없이 패시브 타입 카드를 만들다보니 나름 간단하다면 간단한 자작기를 끝냈는데 부분적으로 보완해야될 점도 찾았습니다. 

신호 품질을 조금 더 개선시키고 단기간에 편하게 만들다보니 전원 구성이나 PCB 공간 활용 등 프로젝트 시작할때의 지향점을 만들기 귀찮다는 안일한 생각에 조금씩 놓치며 진행한건 아닌가 싶기도 합니다. 핀 간 간격이 0.18mm에 불과한 M.2 소켓을 인두기잡고 솔더링할땐 꽤나 힘들기도 했는데 완성후 잘 구동할때 성취감은 고생한만큼 되돌아온다는 느낌도 받고 간만에 재미있는 추억을 만든 것 같습니다.


추후 시스템 변경할 기회가 온다면 HEDT용 NVMe raid 카드형태로 MCU도 추가하고 군데군데 서미스터도 두고 온도 모니터링도 겸할 수 있는 카드를 만들어 봤으면 합니다. 짧은 구상으론 카드 길이를 늘려 단일 PCB에 더 많은 M.2 SSD를 수용하고 소형 블로워팬을 둬도 좋지않을까 싶습니다.


멋진 아이디어나 개선할 점이 있다면 언제든지 아래 댓글로 남겨주세요.

감사합니다.  :)