์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
- ๋ฏธํ์ธ ์๋ฌผ์ฒด์ ๋ํ ๋ด์ฉ: ํฌ๋ฆฝํฐ๋
- ์ ํ๋ฒ์ ๋ํ ๋ด์ฉ: ์ฐ๋ง
- ์ผ๋ณธ์ด๋ก "้ฆฌ(ใใพ)"์ ๋ํ ๋ด์ฉ: ๋ง(๋๋ฌผ)
- ๋ง๋น๊ณ๋ฅผ ๋ปํ๋ ๊ณต์ฌ์ฉ์ด "้ฆฌ(ใใพ)": ํ์ฅ ์ฉ์ด
1. ๋ํ๊ต ์ฌํ๋ถ์์ฐํฉ์ ์ [ํธ์ง]
๋ํ๊ต ์ฌ๋ฆฌํ๊ณผ ํ๋ถ์๋ค์ ์ฐํฉํ์ ์ ์ด๋ฆ์ด UMA๋ค. ๋ค์ํ ํ๊ต์ ์ฌ๋ฆฌํ๋๋ค์ด ๋ชจ์ฌ์ ์ ๋ฅผ ํด์ ๋ค์ํ ๋ถ์ผ๋ฅผ ์ง์ ์ฐ๊ตฌ๋ฅผ ์ํํ๊ณ ์ด๋ฅผ ๋ฐํํ๋ค. ํ๊ณผ ์ ์์ ํ๊ธฐ ํ๋ ์คํ์ ์ง์ ํํด ๋ณด๋ ๊ณผ, ๊ฐ ํ๊ต๋ก ์ค์์ํ๋ ๋ถ์ผ๊ฐ ๋ค๋ฅด๋ฏ๋ก, ์ด๋ฅผ ํตํด ๋ค์์ผ ๋ณด๋ฅผ ๋๋๊ณ ๊ต๋ฅ๋ฅผ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ผ๋๋ค. 2011๋
์ดํ๋ก ๋งค๋
10์ 3์ผ ๋ฐํ๋ฅผ ์งํํ๋ฉฐ, ์ฅ์๋ ์ฌ๋ฌ ํ๊ต๊ฐ ๋์๊ฐ๋ฉด์ ๋งก๊ณ ์๋ค. 2014๋
๋ถ๋ก ํ๊ตญ์ฌ๋ฆฌํํ ์ฐํ์ ์ ์ ๋จ์ฒด๋ก ๋ฑ๋ก๋์๋ค.
2. ๊ท ์ผ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ[ํธ์ง]
๋ฉํฐ์ฝ์ด ํ๋ก์ธ์์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ๋ฐฉ์๋ค ์ค์ ํ๋. ๋ณดํต ์ค์ฌ์ UMA(Uniform Memory Access)๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๋ชจ๋ ์ฝ์ด์์ ๋๋ฑํ ์๊ฐ ๋ด์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ค. ์ด์ ๋ฐ๋ ๊ฐ๋
์ธ NUMA(Non-Uniform Memory Access) ๋ฐฉ์์ ์ฝ์ด๋ณ๋ก ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๊ฐ์ด ์ฐจ์ด๊ฐ ๋๋ค.
์ด๋ฌํ ์ฐจ์ด๋ CPU ๋ฉํฐ์ฝ์ดํ๊ฐ ์งํ๋๋ฉด์ ์ฝ์ด๋ค์ ๋ฌถ์์ธ ํด๋ฌ์คํฐ ๋ด์ ์ฝ์ด ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ์ฝ์ด ์๊ฐ ๋ง์ CPU์ผ ์๋ก NUMA๊ฐ ๋๋๋ฌ์ง๋๋ฐ, ์ผ๋ก๋ก ์ธํ ๋ง ๋ฒ์ค(Ring-Bus) ๊ตฌ์กฐ์ ๋ฉํฐ์ฝ์ด CPU๋ ํด๋นํ๋ ์ฝ์ด๊ฐ ๋ด๋ถ ๋ง ๊ตฌ์กฐ Bus์ ์ด๋์ ์์นํ๊ณ ์๋์ ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ์๋๊ฐ ์ฐจ์ด๊ฐ ๋๋ค. AMD๋ Zen ๊ธฐ๋ฐ EPYC๊ณผ ThreadRipper ๋ฑ๊ณผ ๊ฐ์ด MCM ๊ตฌ์กฐ์ ์ฌ๋ฌ ๋ค์ด์ ์นฉ์ด ๋ฌถ์ฌ ์๋ CPU์์ ์๋ก ๋ค๋ฅธ CPU์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋์ฐจ๊ฐ ๋๋๋ฌ์ง๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ธํ ์ ๊ฒฝ์ฐ ๊ธฐ์กด์ ๋ง๋ฒ์ค ๊ตฌ์กฐ์์ ๊ทธ๋ฌผ๋ง(Mesh) ๊ตฌ์กฐ๋ก ์ฝ์ด๋ฅผ ๋ฐฐ์นํ์ฌ NUMA๋ฅผ ์ต์ํ์ผ๋ก ํ์์ผ๋ฉฐ, AMD์ ๊ฒฝ์ฐ Zen 2 ์ํคํ ์ฒ๋ถํฐ ์นฉ๋ +I/O ๋ค์ด ๊ตฌ์กฐ๋ก ๋์ด๊ฐ๋ฉด์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ด I/O ์ ์ฉ ๋ค์ด๋ฅผ ํตํด ๊ฐ ์นฉ๋ ๋ด์ CPU๋ก ์ ๋ฌ๋๋ฉด์ NUMA๋ฅผ ์ด๋ ์ ๋ ํด๊ฒฐํ์๋ค.
์ด๋ฌํ ์ฐจ์ด๋ CPU ๋ฉํฐ์ฝ์ดํ๊ฐ ์งํ๋๋ฉด์ ์ฝ์ด๋ค์ ๋ฌถ์์ธ ํด๋ฌ์คํฐ ๋ด์ ์ฝ์ด ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ์ฝ์ด ์๊ฐ ๋ง์ CPU์ผ ์๋ก NUMA๊ฐ ๋๋๋ฌ์ง๋๋ฐ, ์ผ๋ก๋ก ์ธํ ๋ง ๋ฒ์ค(Ring-Bus) ๊ตฌ์กฐ์ ๋ฉํฐ์ฝ์ด CPU๋ ํด๋นํ๋ ์ฝ์ด๊ฐ ๋ด๋ถ ๋ง ๊ตฌ์กฐ Bus์ ์ด๋์ ์์นํ๊ณ ์๋์ ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ์๋๊ฐ ์ฐจ์ด๊ฐ ๋๋ค. AMD๋ Zen ๊ธฐ๋ฐ EPYC๊ณผ ThreadRipper ๋ฑ๊ณผ ๊ฐ์ด MCM ๊ตฌ์กฐ์ ์ฌ๋ฌ ๋ค์ด์ ์นฉ์ด ๋ฌถ์ฌ ์๋ CPU์์ ์๋ก ๋ค๋ฅธ CPU์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋์ฐจ๊ฐ ๋๋๋ฌ์ง๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ธํ ์ ๊ฒฝ์ฐ ๊ธฐ์กด์ ๋ง๋ฒ์ค ๊ตฌ์กฐ์์ ๊ทธ๋ฌผ๋ง(Mesh) ๊ตฌ์กฐ๋ก ์ฝ์ด๋ฅผ ๋ฐฐ์นํ์ฌ NUMA๋ฅผ ์ต์ํ์ผ๋ก ํ์์ผ๋ฉฐ, AMD์ ๊ฒฝ์ฐ Zen 2 ์ํคํ ์ฒ๋ถํฐ ์นฉ๋ +I/O ๋ค์ด ๊ตฌ์กฐ๋ก ๋์ด๊ฐ๋ฉด์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ด I/O ์ ์ฉ ๋ค์ด๋ฅผ ํตํด ๊ฐ ์นฉ๋ ๋ด์ CPU๋ก ์ ๋ฌ๋๋ฉด์ NUMA๋ฅผ ์ด๋ ์ ๋ ํด๊ฒฐํ์๋ค.
3. ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ํคํ ์ฒ[ํธ์ง]
Unified Memory Architechture์ ์ฝ์๋ก, ๊ท ๋ฑ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ(Uniform Memory Access)๊ณผ ๊ฐ์ ๋จธ๋ฆฟ ๊ธ์์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ฉ์ด๋ผ๋ ๊ณตํต์ ๋ง๊ณ ๋ ์๋ฏธ๊ฐ ์ ํ ๋ค๋ฅด๋ค. ์๋ก ๋ค๋ฅธ ๋ณต์์ ๋ฉํฐํ๋ก์ธ์ ํน์ ๋ฉํฐ์ฝ์ด ํ๋ก์ธ์๋ค์ด ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ ๊ตฌ์กฐ๋ก ์ด๋ ๊ฒ๋ง ์ค๋ช
ํ๋ฉด ์ ์๋ฟ์ง ์์ง๋ง, ์ด๋ฏธ ๋๋ฆฌ ์ฑํ๋์๋ ๋ฉ์ธ๋ณด๋์ ํ์ฌ๋ ์จ๋ณด๋ ๊ทธ๋ํฝ์ด๋ CPU ๋ด์ฅ ๊ทธ๋ํฝ์ ๋ฉ์ธ(์์คํ
) ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๊ธฐ๋ฅ์ ๋ ์ค๋ฅด๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.