
๊ตฌ๋ ์๋ ์๋ ํ์ธ์, ํน์ ์ฆ๊ฒจํ์๋ ๊ฒ์์ด ์์ผ์ ๊ฐ์? ๐ฎ
์ง๋ 5์, X(๊ตฌ ํธ์ํฐ)์์ ๋ผ์ด์๊ฒ์์ฆ์ ์ํฐ์นํธ ์์คํ โ๋ฑ ๊ฐ๋โ๋ฅผ ๋๋ฌ์ผ ํฅ๋ฏธ๋ก์ด ๋ ผ๋์ด ์์์ด์. ํ ์ ์ ๊ฐ ๋ฐ๋ก๋ํธ๋ฅผ ํ๋ ์ดํ๋ ์ค IOMMU ๊ด๋ จ ์ฌ์์ ๊ฒฝ๊ณ ๊ฐ ๋ํ๋ ๋ค, ์ฌ์ฉ ์ค์ด๋ ํน์ ์ฅ์น๊ฐ ์ ์์ ์ผ๋ก ๋์ํ์ง ์๊ฒ ๋์๋ค๊ณ ์ฃผ์ฅํ๋๋ฐ์.
๋ ํน์ดํ ์ ์ ๊ฒ์์ ์ข ๋ฃํ๊ฑฐ๋ ๋ฑ ๊ฐ๋๋ฅผ ์ ๊ฑฐํ ๋ค์๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์๋ค๋ ์ ์ ๋๋ค..! ๊ทธ๋ฐ๋ฐ ์ํฐ์นํธ๋ ์ด๋ป๊ฒ ๊ฒ์์ ๋์ด ์ปดํจํฐ์ ์ฐ๊ฒฐ๋ ์ฅ์น๊น์ง ์ํฅ์ ์ค ์ ์์์๊น์? ๐ค
์ด๋ฒ ํดํน์งน์งน์์๋ ์ฌ๋ฌ ์ฃผ์ฅ์ด ์กด์ฌํ๋ ๋ ผ๋ ์ ์ง์ค์ ๋ฌด์์ผ์ง ๋ฑ๋ฑ์ด ํํค์ณ๋ณด๊ฒ ์ต๋๋ค! ๐ฃ
๋๋ ๋ชจ๋ ๊ฒ์ ํ.๊ด.ํ๋ค.

๊ธ์์ ์ธ๊ธ๋ ๊ธฐ์ ์ ๋ด์ฉ์ ์ดํด๋ณด๊ธฐ์ ์์, ์ฌ๊ฑด์ด ์ด๋ป๊ฒ ํ๋ฌ๊ฐ๋์ง ํ์๋ผ์ธ๋ถํฐ ์ดํด๋ณผ๊ฒ์. ๐

๋ ผ๋์ ์์์ 5์ 19์ผ ์ฌ๋ผ์จ ๊ฒ์๋ฌผ์ด์์ต๋๋ค. ์์ฑ์๋ ๋ฌธ์ ์ ์์ธ์ผ๋ก ๋ฑ ๊ฐ๋๋ฅผ ์ง๋ชฉํ๋ฉฐ, ๊ทธ๋ ๊ฒ ํ๋จํ ์ด์ ๋ ํจ๊ป ๋ฐํ๋๋ฐ์.

- ๊ฒ์ ์คํ ์ค IOMMU ๊ด๋ จ ์ฌ์์ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์
- ์ดํ DMA ํ์จ์ด๊ฐ ๋ ์ด์ ๋์ํ์ง ์์
- ๊ฒ์์ ์ข ๋ฃํ๊ฑฐ๋ ๋ฑ ๊ฐ๋๋ฅผ ์ ๊ฑฐํ ๋ค์๋ ๋์ผ ์ฆ์ ๋ฐํ
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด์์ฒด์ (OS) ์ ์ฒด๋ฅผ ์ฌ์ค์นํด์ผ ํ๋ค๊ณ ์ฃผ์ฅ
ํนํ ์์ฑ์๋ โSATA/NVMe๋ฅผ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ DMA ํ์จ์ด๊ฐ ์ํฅ์ ๋ฐ๋๋คโ๊ณ ๋ง๋ถ์ด๋ฉฐ ๋ ผ๋์ ๋์ฑ ์ปค์ก๋๋ฐ์. ๋์ฒด DMA์ IOMMU๋ ๋ฌด์์ด๊ธธ๋ ์ด๋ฐ ์ด์ผ๊ธฐ๊ฐ ๋์ค๊ฒ ๋ ๊ฑธ๊น์? ๐ค

์ปดํจํฐ์์๋ ๊ทธ๋ํฝ์นด๋๋ ๋์นด๋, NVMe SSD ๊ฐ์ ์ฅ์น๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค. ์ด๋ DMA๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด CPU๊ฐ ๋ฐ์ดํฐ๊ฐ ์ด๋ํ๋ ๊ณผ์ ์ ๊ณ์ ๊ด์ฌํด์ผ ํ๋๋ฐ์. โ๏ธ ์ฝ๊ฒ ๋งํด, ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ์ค๊ฐ ๋๋ง๋ค CPU๊ฐ ์ค๊ฐ์์ ์ ์ก์ ํ๋ํ๋ ์ฑ๊ฒจ์ผ ํ๋ ์ ์ด์์.
๋ฐ๋ฉด DMA(Direct Memory Access)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฉ์์ด ๋ฌ๋ผ์ ธ์. CPU๊ฐ ์ ์ก์ ์์ํ๋๋ก ์ง์ํ๋ฉด, ์ดํ์๋ ์ฅ์น๊ฐ CPU์ ์ง์์ ์ธ ์ค๊ณ ์์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฑฐ๋ ์. ๋๋ถ์ CPU์ ๋ถ๋ด์ ์ค์ด๋ฉด์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ ์กํ ์ ์์ด์.
์ฌ๊ธฐ์ ํ ๊ฐ์ง ์ง๊ณ ๋์ด๊ฐ ์ ์ด ์์ด์. DMA๋ ์นํธ๋ฅผ ์ํด ๋ง๋ค์ด์ง ๊ธฐ์ ์ด ์๋๋๋ค. ๊ทธ๋ํฝ์นด๋๋ ๋์นด๋, NVMe SSD์ฒ๋ผ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ๋ ์ผ๋ฐ์ ์ธ ์ฅ์น์์๋ ๋๋ฆฌ ์ฌ์ฉํ๋ ์ ์์ ์ธ ๊ธฐ๋ฅ์ด์ฃ .
๊ทธ๋ฐ๋ฐ ์ฅ์น๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ฉด ํ ๊ฐ์ง ์๋ก์ด ์๋ฌธ์ด ์๊ฒจ์.
์๋ฌด ์ฅ์น๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ ์์ญ์ ์ ๊ทผํ๋๋ก ๋์ด๋ ๊ด์ฐฎ์๊น์? ๐
์์ ์ดํด๋ณธ ๊ฒ์๋ฌผ์์ DMA์ ํจ๊ป ๋ฑ์ฅํ IOMMU(Input-Output Memory Management Unit)๊ฐ ๋ฐ๋ก ์ด ๋ฌธ์ ๋ฅผ ๋ค๋ค์. IOMMU๋ ์ฅ์น๋ง๋ค ์ ๊ทผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ํด๋๊ณ , ํ์ฉ๋ ์ ๊ทผ์ ํต๊ณผ์ํค์ง๋ง ํ์ฉ๋์ง ์์ ์ ๊ทผ์ ์ฐจ๋จํด์. ๊ทธ๋ฆผ์ ๋์จ ๋ณด์ ๋ฌธ์ง๊ธฐ์ฒ๋ผ, ๊ฐ ์ฅ์น๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋๊น์ง ๋ค์ด๊ฐ ์ ์๋ ์ง๋ฅผ ๊ด๋ฆฌํ๋ค๊ณ ์๊ฐํ๋ฉด ์ฌ์์.
์ฌ๊ธฐ์ ์ค์ํ ์ ์ IOMMU๊ฐ DMA๋ฅผ ์์ ๊ฑฐ๋ ๋์ฒดํ๋ ๊ธฐ๋ฅ์ ์๋๋ผ๋ ๊ฑฐ์์. ๐ ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ DMA์ ์ฅ์ ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์, ๊ทธ ํต๋ก๋ฅผ ํตํด ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊น์ง ์ ๊ทผํ ์ ์๋์ง ์ ํํ๋ ์ญํ ์ ๊ฐ๊น์์.
์ฝ๊ฒ ๋น์ ํ๋ฉด, DMA๊ฐ ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ด์ฃผ๋ ํต๋ก๋ผ๋ฉด IOMMU๋ ๊ทธ ํต๋ก์ ์ถ์ ๋ฒ์๋ฅผ ๊ด๋ฆฌํ๋ ๋ณด์ ์ฅ์น์ธ ์ ์ด์์.
์๋ฌธ์์ ์ธ๊ธ๋ โItโs using IOMMU to create read blocksโฆโ๋ผ๋ ํํ ์ญ์, ๋ฌธ๋งฅ์ IOMMU๋ฅผ ์ด์ฉํด ํน์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํ DMA ์ฝ๊ธฐ ์ ๊ทผ์ ์ฐจ๋จํ๋ค๋ ์๋ฏธ๋ก ๋ณผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง๋ง ๋ณด๋ฉด IOMMU๊ฐ ํ๊ฐ๋์ง ์์ DMA ์ ๊ทผ์ ๋ง๋ ๊ฒ์ ์ ์์ ์ธ ๋ณด์ ๊ธฐ๋ฅ์ฒ๋ผ ๋ณด์ฌ์. ๊ทธ๋ฐ๋ฐ ์ ์ด ์ฌ๊ฑด์ โ๋ฑ ๊ฐ๋๊ฐ ์ฅ์น๋ฅผ ๋ง๊ฐ๋จ๋ ธ๋คโ๋ ๋ ผ๋์ผ๋ก๊น์ง ์ด์ด์ก์๊น์? ๐ก๏ธ ๊ทธ ์ด์ ๋ 5์ 22์ผ์ ์ฌ๋ผ์จ ๋ผ์ด์๊ฒ์์ฆ์ ์ฒซ ๋ต๋ณ์์ ์กฐ๊ธ ๋ ๋ช ํํ๊ฒ ํ์ธํ ์ ์์์ด์.

์๊ธ์ด ๊ด์ฌ์ ๋ฐ๊ธฐ ์์ํ์ ๋ผ์ด์๊ฒ์์ฆ๋ ์์ธํ ์ค๋ช ๋์ ํ ์ฅ์ ์ฌ์ง๊ณผ ์งง์ ๋ฌธ๊ตฌ๋ก ๋จผ์ ๋ฐ์ํ์ต๋๋ค.
์ฌ์ง ์ ์ฅ์น๋ค์ ์ผ๋ฐ์ ์ธ PC ๋ถํ์ด ์๋๋ผ ๋ฐ๋ก๋ํธ์์ ๋ถ์ ํ์๋ฅผ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ DMA ์ฅ์น์๋๋ฐ์. ๐ช ์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ IOMMU๋ฅผ ํตํด ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ ๊ทผ์ด ์ ํ๋๋ฉด์, ๋ ์ด์ ๊ธฐ์กด ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ ์ฅ์น๋ค์ ๋ณด์ฌ์ค ๊ฒ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ต๋ณ์ ๋๊ณ ๋๊ธ์์๋ ๋ค์ํ ๋ฐ์์ด ์ด์ด์ก์ด์. ๐ฌ ์นํธ ์ฅ์น๋ฅผ ์ฐจ๋จํ ๊ฒ์ ๊ธ์ ์ ์ผ๋ก ๋ฐ๋ผ๋ณด๋ ์๊ฒฌ์ด ์๋ ๋ฐ๋ฉด, ๊ฒ์ ์ ์ฑ ์ ์๋ฐํ ์ฅ์น๋ผ๊ณ ํด๋ ์ํฐ์นํธ๊ฐ ์ฌ์ฉ์์ ํ๋์จ์ด ๋์์ ์ง์ ์ํฅ์ ์ฃผ๋ ๊ฒ์ ์ง๋์น ๊ฒ ์๋๋๋ ์ฐ๋ ค๋ ์์๋๋ฐ์.


๋ค์ ๋ , ๋ผ์ด์๊ฒ์์ฆ๋ ์ถ๊ฐ ๊ฒ์๋ฌผ์ ํตํด ๋ฑ ๊ฐ๋๊ฐ ํ๋์จ์ด๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์์์ํค๊ฑฐ๋ ์ฅ์น๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ์๋๋ผ๊ณ ์ง์ ํด๋ช ํ์ต๋๋ค.
์์ ์ฌ์ง์ผ๋ก ๊ณต๊ฐํ DMA ์ฅ์น ์ญ์ ๋ฑ ๊ฐ๋๊ฐ ์ง์ ํ์จ์ด๋ฅผ ์์์ํจ ๊ฒ์ด ์๋๋ผ, IOMMU๋ฅผ ์ด์ฉํด ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์ ํํ ๊ฒ์ด๋ผ๊ณ ์ค๋ช ํ์๋๋ฐ์.
๋ํ ์ด๋ฌํ ๋ณด์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ผ๊ด์ ์ผ๋ก ์ ์ฉํ๋ ๊ฒ์ด ์๋๋ผ, DMA ์นํธ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์๋ณ๋ ๊ณ์ ์ ๋์์ผ๋ก ๊ฐ์ ํ๊ณ ์๋ค๊ณ ๋ฐํ์ต๋๋ค. ๐ฏ
๋ผ์ด์๊ฒ์์ฆ์ ์ค๋ช ๋๋ก๋ผ๋ฉด ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ํ๊ฒฝ์ด๋ ์ ์์ ์ธ ์ฅ์น๋ฅผ ์ง์ ์์์ํค๋ ์ ๋ฐ์ดํธ๋ ์๋์๋ ์ ์ธ๋ฐ์. ๊ทธ๋ผ์๋ ์ผ๋ถ ์ฌ์ฉ์๋ค์ ์ํฐ์นํธ๊ฐ ์์คํ ์ ํ๋์จ์ด ๋ณด์ ๊ธฐ๋ฅ์ ์ด ์ ๋๊น์ง ํ์ฉํ๋ ๊ฒ์ด ์ ์ ํ์ง๋ฅผ ๋๊ณ ๋ถ์ ์ ์ธ ๋ฐ์์ ์ด์ด๊ฐ์ต๋๋ค.
ํฉ๋ฒ๊ณผ ๋ถ๋ฒ, ๊ทธ ๊ฒฝ๊ณ์์
์ต๊ทผ์๋ ๊ฒ์ ์์ฒด๋ฅผ ์ง์ ๋ณ์กฐํ์ง ์๋๋ผ๋ ํ๋ ์ด๋ฅผ ๋ณด์กฐํด์ฃผ๋ ํ๋์จ์ด ๊ธฐ๋ฅ์ด ์ ์ ๋ค์ํด์ง๊ณ ์์ต๋๋ค. ๐ก ์๋ฅผ ๋ค์ด ์ผ๋ถ ๊ฒ์ด๋ฐ ๋ชจ๋ํฐ๋ ํ๋ฉด์ ์ด๋์ด ๋ถ๋ถ์ ์๋์ผ๋ก ๋ฐ๊ฒ ํ๊ฑฐ๋ ์กฐ์ค์ ์ ๋ณด์ ํด ๋ณด์ฌ์ฃผ๊ณ , ๋ง์ฐ์ค๋ ์ธ๋ถ ์ ๋ ฅ ์ฅ์น๋ ๋ฐ๋ณต ๋์์ด๋ ๋ฐ๋ ์ ์ด๋ฅผ ๋ณด์กฐํ๊ธฐ๋ ํ๋๋ฐ์. ๊ฒ์ ํ์ผ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๋๋ค๋ ์ ์์๋ ๊ธฐ์กด์ ๊ฒ์ํต๊ณผ ๋ถ๋ช ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ์ด๋ฐ ๊ธฐ๋ฅ์ด ํ๋ ์ด์ด๊ฐ ์ง์ ํด์ผ ํ ํ๋จ์ด๋ ์กฐ์๊น์ง ๋์ ํ๊ธฐ ์์ํ๋ฉด ์ด์ผ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋๋ค. ์ค์ ๋ก ๊ฒ์์ฌ๋ค์ ๋จ์ํ ํธ์ ๊ธฐ๋ฅ๊ณผ ๊ฒฝ์์์ ๋ถ๋นํ ์ด์ ์ ์ฃผ๋ ๊ธฐ๋ฅ์ ๊ตฌ๋ถํด ์ผ๋ถ ์ธ๋ถ ์ฅ์น๋ ๋งคํฌ๋ก ์ฌ์ฉ์ ์ ํํ๊ณ ์์ต๋๋ค. ๐ซ ๊ฒฐ๊ตญ ์ต๊ทผ ๊ฒ์ ๋ณด์์์๋ โ๊ฒ์์ ๋ณ์กฐํ๋๊ฐ?โ๋ณด๋ค โํ๋ ์ด์ด๊ฐ ํด์ผ ํ ํ๋์ ์ด๋๊น์ง ๋์ ํ๋๊ฐ?โ๊ฐ ์๋ก์ด ๊ธฐ์ค ์ค ํ๋๊ฐ ๋๊ณ ์๋ ์ ์ ๋๋ค.
๊ฒ์ํต๊ณผ ์ํฐ์นํธ์ ๊ฒฝ์์ด ํ๋ก๊ทธ๋จ๊ณผ ๋ฉ๋ชจ๋ฆฌ์์ ์์ํด ํ๋์จ์ด์ ์ฃผ๋ณ๊ธฐ๊ธฐ๊น์ง ํ์ฅ๋ ์ง๊ธ, ์์ผ๋ก๋ ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ ๊ธฐ๋ฅ๊ณผ ๊ฒ์์ ๊ณต์ ์ฑ ์ฌ์ด์์ ์ด๋๊น์ง๋ฅผ ํ์ฉํ ๊ฒ์ธ์ง๊ฐ ๋ ์ค์ํ ๋ ผ์๊ฑฐ๋ฆฌ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๐ฎ
๋ง๋ฌด๋ฆฌ
์ด๋ฒ ์ด์์ ๋ํด ์ดํด๋ณด๋ฉฐ ๋ง์ฐํ๊ฒ ์ฐ๋ฉด ์๋๋ค๊ณ ๋ง ์๊ฐํ๋ ๊ฒ์ํต ๋ํ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ ํ๊ณ ์์๋ค๋ ๊ฑธ ์ ์ ์์์ต๋๋ค. ๐ ์ฌํด ์งํ๋ ์ฝ๋์์ง ์ปจํผ๋ฐ์ค ๋ฐํ ์ค์๋ ๊ฒ์ํต๊ณผ ์ํฐ์นํธ ์์ง์ ์ฃผ์ ๋ก ํ โTwo Ways to Break a Gameโ ์ธ์ ์ด ์์๋๋ฐ์, ๋ฐํ ์๋ฃ๋ ๊ณต๊ฐ๋์ด ์๋ ๋งํผ ๊ด์ฌ์ด ์์ผ์๋ค๋ฉด ์ฝ์ด๋ด๋ ์ข์ ๊ฒ ๊ฐ์์! (๋งํฌ)
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ง์ฐ์ค, ํค๋ณด๋ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ํฐ์์๋ ๊ฒ์์ ๋ณด์กฐํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๊ณ ์๋ค๋ ๊ฒ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ด์์ด์..!
ํน์ ๊ตฌ๋ ์๋์ ์ด๋ทฐ์ง๊ณผ ๊ด๋ จํด ์๋กญ๊ฒ ์๊ฒ๋ ๋ด์ฉ์ด ์์ผ์ ๊ฐ์? ํน์ ํ์ ๊ฐ๊ณ ์์๋ ๊ถ๊ธ์ฆ ์ค ํด์๋ ๊ฒ ์๋์ง ๋๊ธ๋ก ์์ ๋กญ๊ฒ ์๊ธฐํด์ฃผ์ธ์! ๐ฃ
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์