๐Ÿ”ฌ NVM

NVM Interface Analysis

NVM (Non-Volatile Memory) ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„์„

NVMe ยท CXL.mem ยท HBM-PIM ยท Storage Class Memory ยท Compute Express Link ยท Processing-In-Memory

0. ๊ฐœ์š”

NVM(Non-Volatile Memory) ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์™€ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ํ†ต์‹  ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” ํ‘œ์ค€ ๋ฐ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด NAND ํ”Œ๋ž˜์‹œ๋Š” NVMe(Non-Volatile Memory Express)๋ฅผ ํ†ตํ•ด PCIe ๊ธฐ๋ฐ˜ ๊ณ ์† ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, CXL(Compute Express Link)์€ ๋ฉ”๋ชจ๋ฆฌ ํ™•์žฅ๊ณผ ์บ์‹œ ์ผ๊ด€์„ฑ์„ ์œ„ํ•œ ์ฐจ์„ธ๋Œ€ ์ธํ„ฐ์ปค๋„ฅํŠธ๋กœ ๋ถ€์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. HBM-PIM(High Bandwidth Memory Processing-In-Memory)์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์—์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณ‘๋ชฉ์„ ํ•ด๊ฒฐํ•˜๋Š” ํ˜์‹ ์  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

๋ณธ ๋ฌธ์„œ๋Š” NVMe์˜ ๋ช…๋ น ์ง‘ํ•ฉ ์•„ํ‚คํ…์ฒ˜์™€ ๋ฐœ์ „, CXL.mem์˜ ๋ฉ”๋ชจ๋ฆฌ ํ”„๋กœํ† ์ฝœ ๋™์ž‘, HBM-PIM์˜ ์ฒ˜๋ฆฌ-์ธ-๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋น„๊ต ๋ถ„์„ํ•˜๊ณ , ๊ฐ ๊ธฐ์ˆ ์˜ ํŠน์„ฑ๊ณผ ์ ์šฉ ์˜์—ญ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. ํ•ต์‹ฌ ๊ฐœ๋…

๊ฐœ๋… ์˜๋ฏธ ์™œ ์ค‘์š”ํ•œ๊ฐ€
NVMe ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ์ „์šฉ ๊ณ ์† ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์–‘ SSD์˜ ์‚ฐ์—… ํ‘œ์ค€์œผ๋กœ ๋‚ฎ์€ ๋ ˆ์ดํ„ด์‹œ์™€ ๋†’์€ ๋ณ‘๋ ฌ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค
CXL.mem Compute Express Link์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ํ”„๋กœํ† ์ฝœ CPU๊ฐ€ ๋””๋ฐ”์ด์Šค ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹œ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค
HBM-PIM HBM์— ์—ฐ์‚ฐ ๋Šฅ๋ ฅ์„ ํ†ตํ•ฉํ•œ ๊ธฐ์ˆ  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ด๋™ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค
Computational Storage SSD ๋‚ด๋ถ€์—์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ์ˆ  NVMe 2.0์—์„œ ์ถ”๊ฐ€๋œ ๋ช…๋ น ์ง‘ํ•ฉ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ด๋™์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค
Memory Pooling ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ /ํ• ๋‹นํ•˜๋Š” ๊ธฐ์ˆ  CXL 2.0+์—์„œ ์ง€์›ํ•˜๋ฉฐ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค
TSV Through-Silicon Via, ์‹ค๋ฆฌ์ฝ˜ ๊ด€ํ†ต ์ „๊ทน 3D ์ ์ธต ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ต์‹ฌ ํŒจํ‚ค์ง• ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค

2. NVMe (Non-Volatile Memory Express)

2.1 NVMe ์‚ฌ์–‘ ๋ฐœ์ „

NVMe๋Š” 2013๋…„ 1.0e ์‚ฌ์–‘์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „ํ•ด ์™”์Šต๋‹ˆ๋‹ค:

๋ฒ„์ „ ์—ฐ๋„ ์ฃผ์š” ํŠน์ง•
1.0e 2013 ์ตœ์ดˆ ์‚ฌ์–‘, PCIe ๊ธฐ๋ฐ˜ NVMe ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜
1.2 2014 Multi-Queue, Namespace ๊ด€๋ฆฌ, HMB(Host Memory Buffer) ์ถ”๊ฐ€
1.3 2017 Namespace ๊ณต์œ , ์˜ˆ์•ฝ, ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
1.4 2019 IO Determinism, Namespace Write Protect, Persistent Event Log ์ถ”๊ฐ€
2.0 2021 ZNS, KV, Computational Programs Command Set ๋“ฑ ๋ช…๋ น ์ง‘ํ•ฉ ์•„ํ‚คํ…์ฒ˜ ์žฌ์„ค๊ณ„
2.1 2024 Live Migration, Key Per I/O, NVMe-MI High Availability ์ถ”๊ฐ€
2.3 2025 PCIe Exported NVM Subsystem Migration, Computational Storage Feature

2.2 Command Set ์•„ํ‚คํ…์ฒ˜

NVMe 2.0๋ถ€ํ„ฐ ๋ช…๋ น ์ง‘ํ•ฉ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์žฌ์„ค๊ณ„๋˜์–ด ๋‹ค์–‘ํ•œ ์ž‘์—… ํŠน์„ฑ์— ๋งž๋Š” Command Set์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

Command Set ์šฉ๋„
NVM Command Set ๊ธฐ์กด NAND Flash ํ‘œ์ค€ ๋ช…๋ น ์ง‘ํ•ฉ
KV Command Set Key-Value ์ง์ ‘ ์ €์žฅ
ZNS Command Set Zoned Namespaces, ์“ฐ๊ธฐ ์ฆํญ ์ตœ์†Œํ™”
Computational Programs Command Set SSD ๋‚ด๋ถ€ ์—ฐ์‚ฐ (Computational Storage)
SLM Command Set Solid State Memory

2.3 NVMe vs AHCI ๋น„๊ต

ํŠน์„ฑ AHCI NVMe
์ตœ๋Œ€ ํ ๊นŠ์ด 1๊ฐœ ํ, 32๊ฐœ ๋ช…๋ น 65,535๊ฐœ ํ, 65,536๊ฐœ ๋ช…๋ น
๋ ˆ์ง€์Šคํ„ฐ ์ ‘๊ทผ ๋น„์บ์‹œ 6-9ํšŒ/๋ช…๋ น 2ํšŒ/๋ช…๋ น
์ธํ„ฐ๋ŸฝํŠธ ๋‹จ์ผ ์ธํ„ฐ๋ŸฝํŠธ ์ตœ๋Œ€ 2,048๊ฐœ MSI-X ์ธํ„ฐ๋ŸฝํŠธ
๋ณ‘๋ ฌ์„ฑ ๋™๊ธฐํ™” ์ž ๊ธˆ ํ•„์š” ์ž ๊ธˆ ๋ถˆํ•„์š”
4KB ๋ช…๋ น ํšจ์œจ 2๋ฒˆ์˜ ์ง๋ ฌํ™”๋œ DRAM fetch 64๋ฐ”์ดํŠธ fetch 1ํšŒ

NVMe๋Š” AHCI ๋Œ€๋น„ ์ตœ๋Œ€ 6๋ฐฐ ๋†’์€ IOPS์™€ ๋‚ฎ์€ ๋ ˆ์ดํ„ด์‹œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํ’€ ๋””ํ”Œ๋ ‰์Šค ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

NVMe ํ˜ธ์ŠคํŠธ ์†Œํ”„ํŠธ์›จ์–ด๋Š” Submission Queue์— ๋ช…๋ น์„ ์ ์žฌํ•˜๊ณ  Doorbell ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•œ ๋’ค, ๋””๋ฐ”์ด์Šค๊ฐ€ Completion Queue์— ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•˜๋ฉด MSI-X ์ธํ„ฐ๋ŸฝํŠธ ๋˜๋Š” polling์œผ๋กœ ์™„๋ฃŒ๋ฅผ ํšŒ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์ ‘๊ทผ ํšŸ์ˆ˜์™€ ๋ฝ ๊ฒฝํ•ฉ์„ ์ค„์—ฌ ๋‹ค์ค‘ ์ฝ”์–ด ํ™˜๊ฒฝ์—์„œ SSD ๋ณ‘๋ ฌ์„ฑ์„ ์ง์ ‘ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

NVMe Command Set ์•„ํ‚คํ…์ฒ˜

๊ทธ๋ฆผ 1. NVMe Command Set ์•„ํ‚คํ…์ฒ˜ ๋ฐ ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต

3. CXL.mem (Compute Express Link Memory Protocol)

3.1 CXL ๊ฐœ์š”์™€ ํ”„๋กœํ† ์ฝœ

CXL์€ ๊ณ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์œ„ํ•œ CPU-๋””๋ฐ”์ด์Šค ๋ฐ CPU-๋ฉ”๋ชจ๋ฆฌ ๊ฐ„ ๊ณ ์† ์ธํ„ฐ์ปค๋„ฅํŠธ ๊ฐœ๋ฐฉ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. PCIe 5.0/6.0 ๊ธฐ๋ฐ˜ PHY๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์„ธ ๊ฐ€์ง€ ์„œ๋ธŒ ํ”„๋กœํ† ์ฝœ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

ํ”„๋กœํ† ์ฝœ ๊ธฐ๋Šฅ
CXL.io PCIe ๊ธฐ๋ฐ˜ I/O ํ”„๋กœํ† ์ฝœ (์„ค์ •, ๋งํฌ ์ดˆ๊ธฐํ™”, DMA ๋“ฑ)
CXL.cache ํ˜ธ์ŠคํŠธ-๋””๋ฐ”์ด์Šค ๊ฐ„ ์บ์‹œ ์ผ๊ด€์„ฑ ํ”„๋กœํ† ์ฝœ
CXL.mem ํ˜ธ์ŠคํŠธ CPU๊ฐ€ ๋””๋ฐ”์ด์Šค ์—ฐ๊ฒฐ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹œ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ ‘๊ทผ

3.2 CXL ์‚ฌ์–‘ ๋ฒ„์ „

๋ฒ„์ „ ๊ธฐ๋ฐ˜ PCIe ๋Œ€์—ญํญ (x16) ์ฃผ์š” ํŠน์ง•
1.0/1.1 PCIe 5.0 (32 GT/s) 63 GB/s ์บ์‹œ ์ผ๊ด€์„ฑ ํ”„๋กœํ† ์ฝœ
2.0 PCIe 5.0 63 GB/s ์Šค์œ„์นญ, ๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง, ์žฅ์น˜ ๋ฌด๊ฒฐ์„ฑ
3.0 PCIe 6.0 (64 GT/s) 121 GB/s ๋ฉ€ํ‹ฐ๋ ˆ๋ฒจ ์Šค์œ„์นญ, P2P DMA, ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ 
4.0 PCIe 7.0 (128 GT/s) 242 GB/s ๋Œ€์—ญํญ 2๋ฐฐ, ๋ฒˆ๋“ค ํฌํŠธ, ํ–ฅ์ƒ๋œ RAS

3.3 CXL ๋””๋ฐ”์ด์Šค ํƒ€์ž…

ํƒ€์ž… ํ”„๋กœํ† ์ฝœ ์šฉ๋„
Type 1 CXL.io + CXL.cache ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์—†๋Š” ๊ฐ€์†๊ธฐ (SmartNIC ๋“ฑ)
Type 2 CXL.io + CXL.cache + CXL.mem GPU, ASIC, FPGA ๊ฐ€์†๊ธฐ
Type 3 CXL.io + CXL.mem ๋ฉ”๋ชจ๋ฆฌ ํ™•์žฅ ๋ชจ๋“ˆ, ํผ์‹œ์Šคํ„ดํŠธ ๋ฉ”๋ชจ๋ฆฌ

3.4 DDR5 vs CXL.mem ๋น„๊ต

ํŠน์„ฑ DDR5 DIMM CXL.mem NVMe
์ธํ„ฐํŽ˜์ด์Šค DDR5 PCIe ๊ธฐ๋ฐ˜ PCIe ๊ธฐ๋ฐ˜
์บ์‹œ ์ผ๊ด€์„ฑ ๊ธฐ๋ณธ ์ œ๊ณต CXL.cache๋กœ ์ œ๊ณต ์—†์Œ
๋ ˆ์ดํ„ด์‹œ ~20ns ~200ns ~10ฮผs
๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง ๋ถˆ๊ฐ€ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€
์ตœ๋Œ€ ์šฉ๋Ÿ‰/์†Œ์ผ“ ์ œํ•œ์  TB๊ธ‰ ํ™•์žฅ ๊ฐ€๋Šฅ TB๊ธ‰

CXL.mem์€ DDR5๋ณด๋‹ค ๋†’์€ ๋ ˆ์ดํ„ด์‹œ๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง๊ณผ ์บ์‹œ ์ผ๊ด€์„ฑ ์ง€์›์œผ๋กœ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์•„ํ‚คํ…์ฒ˜์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

CXL.mem ๊ฒฝ๋กœ์—์„œ๋Š” CPU๊ฐ€ ๋กœ๋“œ/์Šคํ† ์–ด๋ฅผ ๋ฐœํ–‰ํ•ด๋„ ์žฅ์น˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹จ์ˆœ ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š๊ณ  ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ์ผ๋ถ€์ฒ˜๋Ÿผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ CXL.io๋Š” ์ดˆ๊ธฐํ™”์™€ ๊ด€๋ฆฌ, CXL.cache๋Š” ๊ฐ€์†๊ธฐ์™€ ํ˜ธ์ŠคํŠธ ๊ฐ„ ์ผ๊ด€์„ฑ ์œ ์ง€, CXL.mem์€ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ read/write ํŠธ๋žœ์žญ์…˜์„ ๋งก์œผ๋ฏ€๋กœ ์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ hotplug, NUMA ์ •์ฑ…, RAS ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ๊ฒ€ํ† ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CXL ํ”„๋กœํ† ์ฝœ ์Šคํƒ

๊ทธ๋ฆผ 2. CXL ํ”„๋กœํ† ์ฝœ ์Šคํƒ ๋ฐ ๋””๋ฐ”์ด์Šค ํƒ€์ž…

4. HBM-PIM (High Bandwidth Memory Processing-In-Memory)

4.1 HBM ์„ธ๋Œ€๋ณ„ ์‚ฌ์–‘

์„ธ๋Œ€ ๋ฐ์ดํ„ฐ ์†๋„ ๋Œ€์—ญํญ ์ ์ธต ์ตœ๋Œ€ ์šฉ๋Ÿ‰
HBM 1.0 Gbps 128 GB/s 4-Hi 4GB
HBM2 2.0 Gbps 256 GB/s 8-Hi 8GB
HBM2E 3.6 Gbps 461 GB/s 12-Hi 24GB
HBM3 6.4 Gbps 819 GB/s 16-Hi 48GB
HBM3E 9.8 Gbps 1,229 GB/s 16-Hi 48GB
HBM4 8.0 Gbps 2,048 GB/s 16-Hi 64GB

4.2 HBM-PIM ๋™์ž‘ ์›๋ฆฌ

HBM-PIM์€ ๊ฐ ๋ฉ”๋ชจ๋ฆฌ ๋ฑ…ํฌ ๋‚ด๋ถ€์— DRAM ์ตœ์ ํ™”๋œ AI ์—”์ง„์„ ํƒ‘์žฌํ•˜์—ฌ, ๊ธฐ์กด HBM์˜ 3D ์ ์ธต ๊ตฌ์กฐ์— ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์—์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” PIM(Processing-In-Memory) ๊ธฐ์ˆ ์„ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ตฌ์กฐ:
- TSV(Through-Silicon Via)๋ฅผ ํ†ตํ•œ 3D ์ ์ธต
- ๊ฐ ๋ฑ…ํฌ ๋‚ด AI ์—”์ง„ ํƒ‘์žฌ
- ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ์™€์˜ ๋„“์€ ์ธํ„ฐํŽ˜์ด์Šค (1024๋น„ํŠธ~2048๋น„ํŠธ)
- ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ถ„์‚ฐ ์ธํ„ฐํŽ˜์ด์Šค ์•„ํ‚คํ…์ฒ˜

4.3 ๊ธฐ์กด HBM vs HBM-PIM ๋น„๊ต

ํŠน์„ฑ ๊ธฐ์กด HBM HBM-PIM
์—ฐ์‚ฐ ์œ„์น˜ CPU/GPU์—์„œ ์ฒ˜๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌ
๋ฐ์ดํ„ฐ ์ด๋™ ๋ฉ”๋ชจ๋ฆฌโ†’CPUโ†’๋ฉ”๋ชจ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌ
์—๋„ˆ์ง€ ์†Œ๋น„ ๋†’์Œ 70% ์ด์ƒ ์ ˆ๊ฐ
์‹œ์Šคํ…œ ์„ฑ๋Šฅ ๊ธฐ์ค€ 2๋ฐฐ ํ–ฅ์ƒ
ํ•˜๋“œ์›จ์–ด ๋ณ€๊ฒฝ ๊ธฐ์กด ์‹œ์Šคํ…œ ๋ณ€๊ฒฝ ๋ถˆํ•„์š” ๊ธฐ์กด ์‹œ์Šคํ…œ ๋ณ€๊ฒฝ ๋ถˆํ•„์š”

HBM-PIM์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ CPU/GPU๋กœ ์ด๋™ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ HBM-PIM์ด ๋ชจ๋“  ๋ฒ”์šฉ ์›Œํฌ๋กœ๋“œ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์€ํ–‰๋ณ„ ๋ณ‘๋ ฌ์„ฑ์ด ๋†’์€ ๋ฒกํ„ฐ/ํ–‰๋ ฌ ๊ณ„์—ด ์—ฐ์‚ฐ์— ํŠนํžˆ ์œ ๋ฆฌํ•˜๋ฉฐ, ์—ฐ์‚ฐ ์ข…๋ฅ˜๊ฐ€ ์ œํ•œ์ ์ด๊ฑฐ๋‚˜ ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์ด PIM ๋ช…๋ น ๊ฒฝ๋กœ๋ฅผ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•˜๋ฉด ๊ธฐ๋Œ€ ์ด๋“์ด ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HBM-PIM ์•„ํ‚คํ…์ฒ˜

๊ทธ๋ฆผ 3. HBM-PIM ๊ตฌ์กฐ ๋ฐ ๋ฐ์ดํ„ฐ ํ๋ฆ„

5. ์ธํ„ฐํŽ˜์ด์Šค ํŠน์„ฑ ๋น„๊ต

5.1 ๊ธฐ์ˆ ๋ณ„ ๋น„๊ต

๊ธฐ์ˆ  ์ฃผ์š” ์šฉ๋„ ๋Œ€์—ญํญ ๋ ˆ์ดํ„ด์‹œ ์บ์‹œ ์ผ๊ด€์„ฑ ๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง
NVMe ์Šคํ† ๋ฆฌ์ง€ (SSD) ~7 GB/s (x4) ~10ฮผs ์—†์Œ ์—†์Œ
CXL.mem ๋ฉ”๋ชจ๋ฆฌ ํ™•์žฅ ~121 GB/s (x16) ~200ns ์žˆ์Œ ๊ฐ€๋Šฅ
HBM-PIM ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ… ~1.2 TB/s ~20ns N/A N/A

5.2 ์ธํ„ฐํŽ˜์ด์Šค ๊ด€์  ๋น„๊ต

ํ•ญ๋ชฉ NVMe CXL.mem HBM-PIM
์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋ธ ๋ธ”๋ก ์žฅ์น˜, ํ ๊ธฐ๋ฐ˜ ๋ช…๋ น load/store ๋ฉ”๋ชจ๋ฆฌ ํ™•์žฅ ์ „์šฉ ๋Ÿฐํƒ€์ž„ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—ฐ๋™
๋ฐ์ดํ„ฐ ๋ฐฐ์น˜ ๋‹จ์œ„ LBA, namespace, zone cache line, page, memory region bank, pseudo-channel, tile
์ผ๊ด€์„ฑ ๋„๋ฉ”์ธ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋ณ„๋„ flush/sync ๊ด€๋ฆฌ CPU ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต๊ณผ ์บ์‹œ ์ผ๊ด€์„ฑ ์—ฐ๋™ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€ ์—ฐ์‚ฐ ์ค‘์‹ฌ, ์ „ํ†ต์  CPU ์บ์‹œ ์ผ๊ด€์„ฑ๊ณผ๋Š” ๋ณ„๋„
์˜์†์„ฑ ์˜๋ฏธ ์ „์› ์ฐจ๋‹จ ํ›„ ๋ฐ์ดํ„ฐ ์œ ์ง€๊ฐ€ ํ•ต์‹ฌ DRAM ํ™•์žฅ ๋˜๋Š” persistent memory ์žฅ์น˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ๋Œ€์—ญํญ ์ž‘์—… ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์† ๊ด€์ 
๋Œ€ํ‘œ ๋ณ‘๋ชฉ PCIe ๋Œ€์—ญํญ, FTL, queue ์กฐ์ • ์Šค์œ„์น˜ hop, ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ดํ„ด์‹œ, OS ์ •์ฑ… ์—ด, ์ ์ธต ์ˆ˜์œจ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ œ์•ฝ

5.3 ์ ์šฉ ๋ถ„์•ผ

๊ธฐ์ˆ  ์ฃผ์š” ์ ์šฉ ๋ถ„์•ผ
NVMe ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์Šคํ† ๋ฆฌ์ง€, ํด๋ผ์ด์–ธํŠธ SSD, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์Šคํ† ๋ฆฌ์ง€
CXL.mem ๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง, ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ฐ€์†๊ธฐ ํ†ตํ•ฉ
HBM-PIM AI/ML ํŠธ๋ ˆ์ด๋‹, HPC, ๊ทธ๋ž˜ํ”ฝ์Šค, ๋„คํŠธ์›Œํฌ ์žฅ๋น„

6. ์žฅ๋‹จ์ 

6.1 NVMe

๊ตฌ๋ถ„ ๋‚ด์šฉ
์žฅ์  ๋‚ฎ์€ ๋ ˆ์ดํ„ด์‹œ, ๋†’์€ ๋ณ‘๋ ฌ์„ฑ, ๋‹ค์–‘ํ•œ ํผํŒฉํ„ฐ ์ง€์› (M.2, U.2, AIC, EDSFF), ํ‘œ์ค€ํ™”๋œ ๋“œ๋ผ์ด๋ฒ„
ํ•œ๊ณ„ ๊ธฐ์กด SATA ์‹œ์Šคํ…œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ, ๋†’์€ ๊ตฌํ˜„ ๋น„์šฉ

6.2 CXL.mem

๊ตฌ๋ถ„ ๋‚ด์šฉ
์žฅ์  ์บ์‹œ ์ผ๊ด€์„ฑ ์œ ์ง€, ๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง์œผ๋กœ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„ ํ–ฅ์ƒ, ๊ธฐ์กด PCIe ์ธํ”„๋ผ ํ™œ์šฉ ๊ฐ€๋Šฅ, ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ์ง€์›
ํ•œ๊ณ„ DDR ๋Œ€๋น„ ๋†’์€ ๋ ˆ์ดํ„ด์‹œ (~200ns), ์ƒํƒœ๊ณ„ ๊ตฌ์ถ• ์ดˆ๊ธฐ ๋‹จ๊ณ„, ์†Œํ”„ํŠธ์›จ์–ด ์ง€์› ์ œํ•œ (Linux 6.5+)

6.3 HBM-PIM

๊ตฌ๋ถ„ ๋‚ด์šฉ
์žฅ์  ๊ธฐ์กด ์‹œ์Šคํ…œ ๋ณ€๊ฒฝ ์—†์ด 2๋ฐฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ์—๋„ˆ์ง€ ์†Œ๋น„ 70% ์ด์ƒ ์ ˆ๊ฐ, ๋ฐ์ดํ„ฐ ๋ณ‘๋ชฉ ํ•ด๊ฒฐ, AI/ML ์›Œํฌ๋กœ๋“œ ์ตœ์ ํ™”
ํ•œ๊ณ„ ๋ณต์žกํ•œ 3D ํŒจํ‚ค์ง• ๊ธฐ์ˆ  ํ•„์š”, ๋†’์€ ์ œ์กฐ ๋น„์šฉ, ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ, ์—ด ๊ด€๋ฆฌ ์–ด๋ ค์›€

7. ๊ด€๋ จ ๊ธฐ์ˆ ๊ณผ ์ฐธ๊ณ  ๋ฌธํ—Œ

NVMe ์ธํ„ฐํŽ˜์ด์Šค๋Š” NVMe Architecture ๋ฌธ์„œ์—์„œ ์ƒ์„ธํžˆ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฉฐ, CXL ๊ธฐ์ˆ ์€ CXL Version Comparison์—์„œ ๋ฒ„์ „๋ณ„ ๋น„๊ต๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HBM ๊ด€๋ จ ๊ธฐ์ˆ ์€ HBM Generation Comparison์—์„œ ์„ธ๋Œ€๋ณ„ ์‚ฌ์–‘์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • NVM Express, Inc. - https://nvmexpress.org
  • CXL Consortium - https://computeexpresslink.org
  • JEDEC - High Bandwidth Memory Standards
  • Samsung Semiconductor - HBM-PIM ๊ธฐ์ˆ  ๋ฐœํ‘œ (2021๋…„ 2์›”)
  • Linux CXL subsystem ๋ฌธ์„œ ๋ฐ drivers/cxl/ ๊ตฌํ˜„
  • Wikipedia - NVM Express, Compute Express Link, High Bandwidth Memory

8. ํ•ต์‹ฌ ์ •๋ฆฌ

NVMe, CXL.mem, HBM-PIM์€ ๊ฐ๊ฐ ์Šคํ† ๋ฆฌ์ง€, ๋ฉ”๋ชจ๋ฆฌ ํ™•์žฅ, ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ… ์˜์—ญ์—์„œ NVM ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฐœ์ „์„ ๋Œ€ํ‘œํ•ฉ๋‹ˆ๋‹ค. NVMe๋Š” SSD์˜ ์‚ฐ์—… ํ‘œ์ค€์œผ๋กœ ๋ช…๋ น ์ง‘ํ•ฉ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์† ๋ฐœ์ „์‹œํ‚ค๊ณ  ์žˆ์œผ๋ฉฐ, CXL.mem์€ ๋ฉ”๋ชจ๋ฆฌ ํ’€๋ง๊ณผ ์บ์‹œ ์ผ๊ด€์„ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์•„ํ‚คํ…์ฒ˜์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. HBM-PIM์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์—ฐ์‚ฐ์„ ํ†ตํ•ด AI/ML ์›Œํฌ๋กœ๋“œ์˜ ๋ฐ์ดํ„ฐ ๋ณ‘๋ชฉ์„ ํ•ด๊ฒฐํ•˜๋Š” ํ˜์‹ ์  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ๋“ค์€ ํ–ฅํ›„ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ž๋ฆฌ์žก์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.