Intel ๋ฐ AMD ํ”„๋กœ์„ธ์„œ์˜ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ

๋ฒ„์ง€๋‹ˆ์•„ ๋Œ€ํ•™๊ต์™€ ์บ˜๋ฆฌํฌ๋‹ˆ์•„ ๋Œ€ํ•™๊ต์˜ ์—ฐ๊ตฌ์› ๊ทธ๋ฃน์€ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ CPU ๊ธฐ๋Šฅ์„ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•˜๋Š” ๋™์•ˆ ํ™•์ธ๋œ Intel ๋ฐ AMD ํ”„๋กœ์„ธ์„œ์˜ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ๊ณต๊ฒฉ์„ ์ œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์€ ํ”„๋กœ์„ธ์„œ์˜ ์ค‘๊ฐ„ ๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ด๋Š” ์ถ”์ธก์— ์˜ํ•œ ๋ช…๋ น ์‹คํ–‰ ์ค‘์— ์ถ•์ ๋œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ ํ™” ๋ชฉ์ ์„ ์œ„ํ•ด ํ”„๋กœ์„ธ์„œ๋Š” ์ด์ „ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ถ”์ธก ๋ชจ๋“œ์—์„œ ์ผ๋ถ€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜ˆ์ธก์ด ํƒ€๋‹นํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด ์ž‘์—…์„ ์›๋ž˜ ์ƒํƒœ๋กœ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ธก ์‹คํ–‰์€ ์บ์‹œ์— ์ €์žฅ๋˜๋ฉฐ ๊ทธ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์€ Spectre v1 ๊ณต๊ฒฉ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๊ณ , ๊ณต๊ฒฉ ํƒ์ง€๋ฅผ ์–ด๋ ต๊ฒŒ ํ•˜๋ฉฐ, ์˜ˆ์ธก์  ๋ช…๋ น ์‹คํ–‰์œผ๋กœ ์ธํ•œ ์ทจ์•ฝ์ ์„ ์ฐจ๋‹จํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๊ธฐ์กด ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ LFENCE ๋ช…๋ น์–ด ๋ธ”๋ก์€ ์ถ”์ธก ์‹คํ–‰์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ ๋ˆ„์ถœ๋˜์ง€๋งŒ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•œ ๋ˆ„์ถœ์„ ๋ฐฉ์ง€ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฐฉ๋ฒ•์€ Intel Skylake ๋ฐ AMD Zen ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํฌํ•จํ•˜์—ฌ 2011๋…„ ์ดํ›„ ์ถœ์‹œ๋œ Intel ๋ฐ AMD ํ”„๋กœ์„ธ์„œ ๋ชจ๋ธ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ตœ์‹  CPU๋Š” ๋ณต์žกํ•œ ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์„ ๋ณ„๋„์˜ ์บ์‹œ์— ์บ์‹œ๋˜๋Š” ๊ฐ„๋‹จํ•œ RISC์™€ ๊ฐ™์€ ๋งˆ์ดํฌ๋กœ ์ž‘์—…์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ด ์บ์‹œ๋Š” ์ƒ์œ„ ์ˆ˜์ค€ ์บ์‹œ์™€ ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅด๋ฉฐ ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์œผ๋ฉฐ CISC ๋ช…๋ น์–ด๋ฅผ RISC ๋งˆ์ดํฌ๋กœ ๋ช…๋ น์–ด๋กœ ๋””์ฝ”๋”ฉํ•œ ๊ฒฐ๊ณผ์— ๋น ๋ฅด๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์ŠคํŠธ๋ฆผ ๋ฒ„ํผ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ๊ตฌ์ž๋“ค์€ ์บ์‹œ ์•ก์„ธ์Šค๊ฐ€ ์ถฉ๋Œํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์กฐ๊ฑด์„ ๋งŒ๋“ค๊ณ  ํŠน์ • ์ž‘์—…์˜ ์‹คํ–‰ ์‹œ๊ฐ„ ์ฐจ์ด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ ์บ์‹œ์˜ ๋‚ด์šฉ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

Intel ๋ฐ AMD ํ”„๋กœ์„ธ์„œ์˜ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ

Intel ํ”„๋กœ์„ธ์„œ์˜ ๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ ์บ์‹œ๋Š” CPU ์Šค๋ ˆ๋“œ(ํ•˜์ดํผ์Šค๋ ˆ๋”ฉ)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• ๋˜๋Š” ๋ฐ˜๋ฉด, AMD Zen ํ”„๋กœ์„ธ์„œ๋Š” ๊ณต์œ  ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์‹คํ–‰ ์Šค๋ ˆ๋“œ ๋‚ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ SMT์˜ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ ๊ฐ„์—๋„ ๋ฐ์ดํ„ฐ ์œ ์ถœ ์กฐ๊ฑด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ๋…ผ๋ฆฌ์  CPU ์ฝ”์–ด์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ๊ฐ„์— ๋ฐ์ดํ„ฐ ์œ ์ถœ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ)

์—ฐ๊ตฌ์›๋“ค์€ ์ˆจ๊ฒจ์ง„ ๋ฐ์ดํ„ฐ ์ „์†ก ์ฑ„๋„์„ ์ƒ์„ฑํ•˜๊ณ  ์ทจ์•ฝํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๊ธฐ๋ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ ์บ์‹œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํƒ์ง€ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•๊ณผ ์—ฌ๋Ÿฌ ๊ณต๊ฒฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์‹คํ–‰ ์‹œ ํ”„๋กœ์„ธ์Šค ๋ฐ์ดํ„ฐ ์œ ์ถœ). JIT๊ฐ€ ํฌํ•จ๋œ ์—”์ง„๊ณผ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ํƒ€์‚ฌ ์ฝ”๋“œ), ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด.

์—ฐ๊ตฌ์ง„์€ ๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ ์บ์‹œ๋ฅผ ํ™œ์šฉํ•ด ์ŠคํŽ™ํ„ฐ ๊ณต๊ฒฉ ๋ณ€์ข…์„ ์ •๋ฆฌํ•  ๋•Œ ์˜ค๋ฅ˜์œจ 965.59%์— 0.22Kbps์˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ๋™์ผ ์ฃผ์†Œ ๋‚ด์—์„œ ์œ ์ถœ์„ ์ •๋ฆฌํ•  ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ์ˆ˜์ •์„ ํ™œ์šฉํ•ด 785.56Kbps์˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ณต๊ฐ„ ๋ฐ ๊ถŒํ•œ ์ˆ˜์ค€. ๋‹ค์–‘ํ•œ ๊ถŒํ•œ ์ˆ˜์ค€(์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๊ฐ„)์— ๊ฑธ์นœ ๋ˆ„์ˆ˜๋กœ ์ธํ•ด ์„ฑ๋Šฅ์€ ์˜ค๋ฅ˜ ์ˆ˜์ •์ด ์ถ”๊ฐ€๋œ ๊ฒฝ์šฐ 85.2Kbps, ์˜ค๋ฅ˜์œจ์ด 110.96%์ธ ๊ฒฝ์šฐ 4Kbps์˜€์Šต๋‹ˆ๋‹ค. AMD Zen ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ณต๊ฒฉํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ผ๋ฆฌ์  CPU ์ฝ”์–ด ๊ฐ„์— ๋ˆ„์ˆ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ์„ ๋•Œ ์„ฑ๋Šฅ์€ ์˜ค๋ฅ˜์œจ 250%๋กœ 5.59Kbps, ์˜ค๋ฅ˜ ์ˆ˜์ •์œผ๋กœ 168.58Kbps๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ์€ ๊ธฐ์กด Spectre v1 ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜์—ฌ 2.6๋ฐฐ ๋” ๋นจ๋ž์Šต๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ ์—ฐ์‚ฐ ์บ์‹œ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋ ค๋ฉด Spectre ๊ณต๊ฒฉ ๋ณดํ˜ธ๋ฅผ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ๋ณด๋‹ค ์„ฑ๋Šฅ์„ ๋” ์ €ํ•˜์‹œํ‚ค๋Š” ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ตœ์ ์˜ ์ ˆ์ถฉ์•ˆ์œผ๋กœ ์บ์‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ด์ƒ ํ˜„์ƒ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ณต๊ฒฉ์— ์ผ๋ฐ˜์ ์ธ ์บ์‹œ ์ƒํƒœ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ˆ˜์ค€์—์„œ ์ด๋Ÿฌํ•œ ๊ณต๊ฒฉ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์ŠคํŽ™ํ„ฐ(Spectre) ๊ณต๊ฒฉ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ปค๋„์ด๋‚˜ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ˆ„์ถœ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ํ”ผํ•ด์ž ํ”„๋กœ์„ธ์Šค ์ธก์—์„œ ํŠน์ • ๋ช…๋ น(๊ฐ€์ ฏ)์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์ถ”์ธก์— ๋”ฐ๋ฅธ ๋ช…๋ น ์‹คํ–‰์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. Linux ์ปค๋„์—์„œ ์•ฝ 100๊ฐœ์˜ ์œ ์‚ฌํ•œ ๊ฐ€์ ฏ์ด ๋ฐœ๊ฒฌ๋˜์–ด ์ œ๊ฑฐ๋  ์˜ˆ์ •์ด์ง€๋งŒ ํ•ด๋‹น ์ƒ์„ฑ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(์˜ˆ: ์ปค๋„์—์„œ ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ BPF ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ ๊ด€๋ จ)์ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€