์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

1. ๋Œ€ํ•™๊ต ์‹ฌํ•™๋ถ€์ƒ์—ฐํ•ฉ์ˆ ์ œ2. ๊ท ์ผ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ3. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์•„ํ‚คํ…์ฒ˜

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๋ฅผ ์–ด๋А ์ •๋„ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

3. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์•„ํ‚คํ…์ฒ˜[ํŽธ์ง‘]

Unified Memory Architechture์˜ ์•ฝ์ž๋กœ, ๊ท ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ(Uniform Memory Access)๊ณผ ๊ฐ™์€ ๋จธ๋ฆฟ ๊ธ€์ž์ด์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ จ ์šฉ์–ด๋ผ๋Š” ๊ณตํ†ต์  ๋ง๊ณ ๋Š” ์˜๋ฏธ๊ฐ€ ์ „ํ˜€ ๋‹ค๋ฅด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ณต์ˆ˜์˜ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์„œ ํ˜น์€ ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋“ค์ด ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ์ด๋ ‡๊ฒŒ๋งŒ ์„ค๋ช…ํ•˜๋ฉด ์ž˜ ์™€๋‹ฟ์ง€ ์•Š์ง€๋งŒ, ์ด๋ฏธ ๋„๋ฆฌ ์ฑ„ํƒ๋˜์—ˆ๋˜ ๋ฉ”์ธ๋ณด๋“œ์— ํƒ‘์žฌ๋œ ์˜จ๋ณด๋“œ ๊ทธ๋ž˜ํ”ฝ์ด๋‚˜ CPU ๋‚ด์žฅ ๊ทธ๋ž˜ํ”ฝ์˜ ๋ฉ”์ธ(์‹œ์Šคํ…œ) ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ  ๊ธฐ๋Šฅ์„ ๋– ์˜ค๋ฅด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.