1. ํ๋ก์ธ์ ์ด์๊ธฐ๋ฒ ๊ฐ์
ํ๋ก์ธ์ ์ด์๊ธฐ๋ฒ์ ์ปดํจํฐ ์์คํ ์์ ์ค์์ฒ๋ฆฌ์ฅ์น(CPU)๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์ ๋งํฉ๋๋ค. ์ด๋ฌํ ์ด์๊ธฐ๋ฒ๋ค์ ํ๋ก์ธ์์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์์ ์ฒ๋ฆฌ ์๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ค์ํ ํ๋ก์ธ์ ์ด์๊ธฐ๋ฒ๋ค์ด ์กด์ฌํ๋ฉฐ, ์ฌ๊ธฐ์๋ ์ฃผ์ํ ๊ธฐ๋ฒ๋ค์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
ํ๋ก์ธ์ ์ด์๊ธฐ๋ฒ์ ์ฃผ๋ก ์ํํธ์จ์ด, ํ๋์จ์ด, ๋๋ ๋์ ์กฐํฉ์ผ๋ก ๊ตฌํ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฒ๋ค์ ํ๋ก์ธ์์ ์ฒ๋ฆฌ ์๋, ์์ ํ์ฉ๋, ์๋์ง ํจ์จ์ฑ ๋ฑ ๋ค์ํ ์ธก๋ฉด์์ ์ฑ๋ฅ ํฅ์์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด์ ๋ฐ์ด๋ ๋ฒํผ, ์บ์ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ, ํ์ดํ๋ผ์ด๋, ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฑ์ ์ฃผ์ ์ด์๊ธฐ๋ฒ๋ค์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
2. ๋ฐ์ด๋ ๋ฒํผ(ping-pong buffer) ๊ธฐ๋ฒ
๋ฐ์ด๋ ๋ฒํผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฒํผ๋ก, ํ๋ก์ธ์์ ์ ์ถ๋ ฅ ์ฅ์น ์ฌ์ด์์ ๋ฐ์ดํฐ์ ํจ์จ์ ์ธ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด ๊ธฐ๋ฒ์ ์ฃผ๋ก ์ ์ถ๋ ฅ ์ฒ๋ฆฌ ์๋์ ๋ถ์ผ์น๋ก ์ธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐ์ด๋ ๋ฒํผ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ ๋ฒํผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ด๋ฅผ ping-pong buffer๋ผ๊ณ ๋ ํฉ๋๋ค. ํ๋ก์ธ์๋ ํ๋์ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ ์ถ๋ ฅ ์ฅ์น๋ ๋ค๋ฅธ ๋ฒํผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ์ด ๊ณผ์ ์์ ํ๋ก์ธ์์ ์ ์ถ๋ ฅ ์ฅ์น์ ๋์์ ๋์์ ์คํํ ์ ์์ด ์๊ฐ์ ์ด๋์ ์ป์ ์ ์์ต๋๋ค.
๋ฐ์ด๋ ๋ฒํผ ๊ธฐ๋ฒ์ ๋ฒํผ ๊ฐ ๋ฐ์ดํฐ ๋ณต์ฌ ์๊ฐ์ ์ต์ํํจ์ผ๋ก์จ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๋ํ, ์ ์ถ๋ ฅ ์ฅ์น์ ์ฒ๋ฆฌ ์๋์ ํ๋ก์ธ์์ ์ฒ๋ฆฌ ์๋ ์ฌ์ด์ ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ์ํ์ํฌ ์ ์์ด ์์คํ ์ ์์ ์ฑ์ ํฅ์์ํต๋๋ค.
๋ฐ์ด๋ ๋ฒํผ ๊ธฐ๋ฒ์ ๋ค์ํ ์์คํ ์์ ํ์ฉ๋๋ฉฐ, ํนํ ์ค์๊ฐ ์์คํ ์ด๋ ๋ฉํฐ๋ฏธ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฒํผ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ์ ์ก ์๋ ๋ฑ ๋ค์ํ ์์ธ๋ค์ ๊ณ ๋ คํ์ฌ ์ ์ ํ ์ค์ ์ ํด์ผ๋ง ์ต์ ์ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค.
3. ์บ์ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๊ธฐ๋ฒ
์บ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ค์์ฒ๋ฆฌ์ฅ์น(CPU)์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์์นํ ๊ณ ์์ ๋ฉ๋ชจ๋ฆฌ๋ก, ๋ฐ์ดํฐ ๋ฐ ๋ช ๋ น์ด๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ ์ฅ์์ ๋๋ค. ์บ์ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๊ธฐ๋ฒ์ CPU์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์บ์ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๊ธฐ๋ฒ์ ๋ฐ์ดํฐ์ ์ง์ญ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํฉ๋๋ค. ๋ฐ์ดํฐ์ ์ง์ญ์ฑ์ ํ ๋ฒ ์ฐธ์กฐ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ ํ์ ๋ค์ ์ฐธ์กฐ๋ ํ๋ฅ ์ด ๋๋ค๋ ๊ฐ๋ ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฅผ ํตํด ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์์ ๋น ๋ฅธ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ ์์ ์ฉ๋์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ์บ์ ๋ผ์ธ ๋จ์๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์บ์ ๋ผ์ธ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ๋ฅผ ๋ณต์ฌํ์ฌ ์บ์์ ์ ์ฅํ๋ ๋จ์๋ก, ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ ํด๋น ์บ์ ๋ผ์ธ ์ ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋ฉ๋๋ค.
์บ์ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๊ธฐ๋ฒ ์ค์์๋ ์ฃผ๋ก ์บ์์ ์ ์ค(hits)๊ณผ ๋ฏธ์ค(miss)๋ฅผ ์ค์ด๋ ๊ฒ์ด ํฌ์ธํธ์ ๋๋ค. ์บ์์ ์ ์ค์ CPU๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์์์ ์ฐพ๋ ๊ฒ์ ์๋ฏธํ๊ณ , ๋ฏธ์ค๋ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์บ์ ์ ์ค๋ฅ ์ ๋์ด๊ธฐ ์ํด์ ๋ฐ์ดํฐ ์ ๊ทผ ํจํด์ ๋ถ์ํ์ฌ ์ ์ ํ ์บ์ ํฌ๊ธฐ์ ์บ์ ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํฉ๋๋ค.
์บ์ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๊ธฐ๋ฒ์ ํ๋ก์ธ์ ์ฑ๋ฅ ํฅ์์ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ๋ง์ ์์คํ ์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ํนํ ํ๋ก๊ทธ๋จ์ ์คํ ์๋๋ฅผ ๊ฐ์ ํ๊ณ ์ ๋ ฅ ์๋ชจ๋ฅผ ์ค์ด๋ ๋ฐ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ ์ ํ ์บ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํตํด CPU์ ์ฒ๋ฆฌ ์๋๋ฅผ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
4. ํ์ดํ๋ผ์ด๋(pipelining) ๊ธฐ๋ฒ
ํ์ดํ๋ผ์ด๋์ ์ปดํจํฐ ์ํคํ ์ฒ์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฒ์ผ๋ก, ์ฌ๋ฌ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ ์์ ์ ๋์์ ์คํํ์ฌ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ ๋๋ค. ํ์ดํ๋ผ์ด๋์ ์์ ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋ถํ ํ์ฌ ๊ฐ ๋จ๊ณ๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๊ณ , ์์ ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์์ฐจ์ ์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ตฌ์กฐ๋ก ๋์ํฉ๋๋ค.
ํ์ดํ๋ผ์ด๋ ๊ธฐ๋ฒ์ ์ฐ์์ ์ธ ์์ ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋์ด ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋์์ ์ฌ๋ฌ ์์ ์ด ์ํ๋ ์ ์์ด ์ ์ฒด์ ์ธ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํต๋๋ค. ๊ฐ๊ฐ์ ๋จ๊ณ๋ ์ด์ ๋จ๊ณ์ ์ถ๋ ฅ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ฒ๋ฆฌํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋จ๊ณ๋ก ์ ๋ฌํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ก ์ธํด ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋๋ฉฐ, ์์ ๋จ๊ณ์ ์๋งํผ ์์ ์ ๋์์ ์คํํ ์ ์์ต๋๋ค.
ํ์ดํ๋ผ์ด๋์ ์ปดํจํฐ์ ์ฌ๋ฌ ๋ถ๋ถ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ค์์ฒ๋ฆฌ์ฅ์น(CPU)์์ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๋จ๊ณ๋ฅผ ํ์ดํ๋ผ์ด๋ํ ์ ์์ต๋๋ค. ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ์ค๋(fetch), ํด๋ ํ๋(decode), ์คํํ๋(execute) ๋ฑ์ ๋จ๊ณ๋ฅผ ๋ณ๋ ฌ๋ก ์ํํ์ฌ ๋ช ๋ น์ด ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
ํ์ดํ๋ผ์ด๋์ ํ๋ก๊ทธ๋จ์ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ์ฃผ์ํ ๊ธฐ๋ฒ ์ค ํ๋์ ๋๋ค. ๊ทธ๋ฌ๋ ํ์ดํ๋ผ์ด๋์ ์ ์ฉํ ๋๋ ๋ฐ์ดํฐ ์์กด์ฑ, ๋ถ๊ธฐ ์์ธก ๋ฑ ๋ค์ํ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์๋ชป๋ ๋ถ๊ธฐ ์์ธก์ด๋ ๋ฐ์ดํฐ ์์กด์ฑ์ผ๋ก ์ธํด ํ์ดํ๋ผ์ด๋์ ํจ๊ณผ๊ฐ ๋จ์ด์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ์ดํ๋ผ์ด๋ ๊ธฐ๋ฒ์ ๊ณ ์ฑ๋ฅ์ ์ปดํจํฐ ์ํคํ ์ฒ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ์ฒด์ ์ธ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํค๊ณ , ์ปดํจํฐ ์์คํ ์ ์ฑ๋ฅ์ ๊ทน๋ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ดํ๋ผ์ด๋์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํด์๋ ๊ฐ ์์ ๋จ๊ณ์ ์ฑ๋ฅ์ ๊ท ํ ์๊ฒ ์ค๊ณํ๊ณ , ์์ ๊ฐ์ ์์กด์ฑ์ ์ต์ํํ๋ ๋ฑ์ ๊ณ ๋ ค๊ฐ ํ์ํฉ๋๋ค.
5. ๋ณ๋ ฌ ์ฒ๋ฆฌ(parallel processing) ๊ธฐ๋ฒ
๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ์ปดํจํฐ ์ํคํ ์ฒ์์ ์ฌ๋ฌ ์์ ์ ๋์์ ์คํํ์ฌ ์ ์ฒด์ ์ธ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํค๋ ๊ธฐ๋ฒ์ ๋๋ค. ์ด๋ ์์ ์ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋ ๊ฐ ๋ถ๋ถ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํจ์ผ๋ก์จ ์์ ์ ๋ ๋น ๋ฅด๊ฒ ์คํํ๋ ๋ฐฉ์์ ๋๋ค. ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๊ณผํ์ ์ธ ์๋ฎฌ๋ ์ด์ , ๋ฅ๋ฌ๋ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ์์ ์ ๋์์ ์คํํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ ์คํ ์ ๋ ๋๋ ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฐ ์คํ ์ ๋์ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ์ ์คํํ๋ฉฐ, ์์ ์ ๋ถํ ๊ณผ ๋ณํฉ์ ํตํด ์ ์ฒด ๊ฒฐ๊ณผ๋ฅผ ๋์ถํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ๋ถํ ํ๊ณ , ์์ ์ ์์กด์ฑ์ ๊ณ ๋ คํ์ฌ ๋ณ๋ ฌํํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋ฐฉ์์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ ๋ฐ์ดํฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ(Data Parallelism)๋ก, ์์ ์ ๋์ผํ ์ฝ๋๋ก ์ฌ๋ฌ ๋ฐ์ดํฐ์ ๋ํด ๋ณ๋ ฌ์ ์ผ๋ก ์คํํ๋ ๋ฐฉ์์ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ ๋๋ ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ์์ ์ ๋์์ ์คํํจ์ผ๋ก์จ ์ ์ฒด ์์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ๋ ์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ(Task Parallelism)๋ก, ์์ ์ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋๊ณ ๊ฐ ๋ถ๋ถ์ ๋ณ๋ ฌ๋ก ์คํํ๋ ๋ฐฉ์์ ๋๋ค. ๋ณ๋ ฌํ๋ ์์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ฉฐ, ์คํ ๊ฒฐ๊ณผ๋ฅผ ํฉ์ณ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋์ถํฉ๋๋ค. ์์ ์ด ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ์์กด์ฑ์ด ์ ๊ฑฐ๋ ์๋ ๊ฒฝ์ฐ์ ํจ๊ณผ์ ์ ๋๋ค.
๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋น ๋ฅธ ์์ ์คํ์ ํตํด ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ํด์๋ ์์ ์ ๋ถํ ๊ณผ ๋ณํฉ, ๋ฐ์ดํฐ ์์กด์ฑ ๋ฑ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์์ ์ด ๋๋ฌด ์๊ฒ ๋๋์ด์ง๊ฑฐ๋ ์์ ๊ฐ์ ์์กด์ฑ์ด ๋ง์ ๊ฒฝ์ฐ์๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ํจ๊ณผ๊ฐ ์ ํ๋ ์ ์์ต๋๋ค.
๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ํ๋ ์ปดํจํ ์ ์ค์ํ ๊ธฐ๋ฒ ์ค ํ๋๋ก ์ฌ๊ฒจ์ง๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ ๋๋ ๋ง์ดํฌ๋กํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ๋ ๋ค์ค ์ฝ์ด ํ๋ก์ธ์ ์์คํ ์์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์์คํ ์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ณ ์์ ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ด๋ ๋ฐ ํ์ฉํ๊ณ ์์ต๋๋ค.
๋๊ธ