ํจ์คํธ์บ ํผ์ค ํ๊ธ์ฑ๋ฆฐ์ง 13์ผ์ฐจ : ํ์ค ์ธ์์ ์ปดํจํฐ๊ณตํ ์ง์ with 30๊ฐ์ง ์ค๋ฌด ์๋๋ฆฌ์ค ์ด๊ฒฉ์ฐจ ํจํค์ง Online. ๊ฐ์ ํ๊ธฐ
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ์ฐธ์ฌ๋ฅผ ์ํด ์์ฑํ์์ต๋๋ค.
Abit.ly ๋ค์ด๋ฐ๊ธฐ
abit.ly
๊ณต๋ถ ์์ ์๊ฐ - 21:17
๊ฐ์์ฅ ๋ชฉ๋ก
๋น์์ฐจ์ ์คํ์ ํ๋ CPU๊ฐ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํต์ฌ ๊ฐ๋
์ด๋ค. ๋ช
๋ น์ด ์์ค ๋ณ๋ ฌ์ฑ(Instruction Level Parallelism, ILP)์ ๊ฐ ๋ช
๋ น์ด๋ค์ด ์๋ก ์์กดํ์ง ์๋ ํ ๋์์ ์คํํ ์ ์๋๋ก ํ์ฌ ์ ์ฒด ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ธ๋ค. ์๋ฅผ ๋ค์ด ๋ช
๋ น์ด ์๋์ฐ๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ช
๋ น์ด ์คํธ๋ฆผ์์ ์๋ ํฌ๊ธฐ๋งํผ์ ๋ฒ์ ๋ด์์ ์์กด์ฑ ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ์ฌ ๋์์ ์คํ ๊ฐ๋ฅํ ๋ช
๋ น์ด๋ค์ ์ฐพ์๋ด๊ณ , ๊ฐ์ฅ ์ค๋๋ ๋ช
๋ น์ด๊ฐ ์๋ฃ๋๋ฉด ์๋ก์ด ๋ช
๋ น์ด๊ฐ ์๋์ ์ถ๊ฐ๋์ด ์ง์์ ์ผ๋ก ์์
์ ์ํํ๋ค. ๋ง์ฝ 4๊ฐ์ ๋ช
๋ น์ด๊ฐ ๋ชจ๋ ์๋ก ์์กด์ ์ด๋ผ๋ฉด 4๊ฐ๋ฅผ 4 ์ฌ์ดํด์ ์ฒ๋ฆฌํ ์ ์์ผ๋, ๋ ๊ฐ์ฉ ์์กด๋์ด ์๋ค๋ฉด 4๊ฐ๋ฅผ 2 ์ฌ์ดํด์ ์ฒ๋ฆฌํ ์ ์๋ค. ์ฆ, ์์กด์ฑ์ด ์ ํ ์์ผ๋ฉด ILP ๊ฐ์ 4๊ฐ ๋์ง๋ง, ์์กด์ฑ ๋๋ฌธ์ ์ฒ๋ฆฌ ์ฌ์ดํด์ด ๋์ด๋๋ฉด ILP ๊ฐ์ ๋ฎ์์ง๋ค.
๋ํ, ๊ฐ์ง ์์กด์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ์ง์คํฐ ๋ฆฌ๋ค์ด๋ฐ(Register Renaming)์ด๋ผ๋ ๊ธฐ์ ์ด ์ฌ์ฉ๋๋ค. ์ฝ๋ ์์์ ๋ ์ง์คํฐ ์ฌ์ฉ์ ๋ฐ๋ฅธ ์์กด์ฑ์ด ์ค์ ๋ก๋ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด, Write After Read(WAR) ๋๋ Write After Write(WAW)์ ๊ฐ์ ๊ฐ์ง ์์กด์ฑ์ด ๋ฐ์ํ๋ฉด, ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ์ง ์๋ ๋ค๋ฅธ ๋ฌผ๋ฆฌ ๋ ์ง์คํฐ๋ก ๋ณ๊ฒฝํ์ฌ ์ง์ง ์์กด์ฑ(Read After Write, RAW)๊ณผ ๊ตฌ๋ถํ๋ค. ์ด๋ ๋
ผ๋ฆฌ ๋ ์ง์คํฐ์ ๋ฌผ๋ฆฌ ๋ ์ง์คํฐ์ ๋งคํ ์ ๋ณด๋ฅผ Register Alias Table(RAT)๋ผ๋ ๊ณณ์ ๊ธฐ๋กํ์ฌ, ํ๋ก์ธ์๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๊ด๋ฆฌํ๋ค.
๋๋ถ์ด, ๋์ ๋ช
๋ น์ด ์ค์ผ์ค๋ง์ ์ํด Reservation Station์ด๋ผ๋ ํ(queue)๊ฐ ๋ง๋ จ๋์ด ์๋ค. ์ด๊ณณ์ ์คํ์ ํ์ํ ํผ์ฐ์ฐ์๊ฐ ์ค๋น๋ ๋๊น์ง ๋๊ธฐํ๋ ๊ณต๊ฐ์ผ๋ก, ๊ฐ๊ฐ์ ๋ช
๋ น์ด๊ฐ ์์ ์ ํผ์ฐ์ฐ์๊ฐ ๋ชจ๋ ์ค๋น๋๋ฉด ์ผ๊ฐ์ด ์๋ ์คํ ์ฅ์น๋ก ๋ณด๋ด์ง๋ค. ์ด ๊ณผ์ ์์ ๋ช
๋ น์ด๋ค์ ์์กด์ฑ ๊ฒ์ฌ์ ์ค์ผ์ค๋ง์ ๊ฑฐ์ณ ๋น์์ฐจ์ ์ผ๋ก ์คํ๋๋ค. Reservation Station์ ๋ชจ๋ ๋๊ธฐ ๋ช
๋ น์ด์ ํผ์ฐ์ฐ์ ์๊ตฌ์ฌํญ์ ์ง์์ ์ผ๋ก ๊ฒ์ฌํ์ฌ, ์คํ ๊ฐ๋ฅํ ๋ช
๋ น์ด๋ฅผ ์๋ณํด๋ด๋ ํต์ฌ ๋ณ๋ชฉ ์ง์ ์ด๊ธฐ๋ ํ๋ค.
๋ช
๋ น์ด ์คํ ๊ฒฐ๊ณผ๊ฐ ๋น์์ฐจ์ ์ผ๋ก ์๋ฃ๋๋ ๊ฒฝ์ฐ, ์์ฐจ์ ์๋ฃ(Re-order Buffer, ROB)๊ฐ ๊ทธ ๊ฒฐ๊ณผ๋ค์ ์๋ ํ๋ก๊ทธ๋จ ์์๋๋ก ์ปค๋ฐ(commit)ํ๋๋ก ๋๋๋ค. ROB๋ Reservation Station์์ ๋ช
๋ น์ด๊ฐ Issue ๋ ๋๋ถํฐ ํด๋น ๋ช
๋ น์ด์ ์์๋ฅผ ๊ธฐ๋กํ๊ณ , ์คํ์ด ์๋ฃ๋๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฐจ๋ก๋๋ก ๋ ์ง์คํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค. ์ด๋ฅผ ํตํด ๋น์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋ ๋ช
๋ น์ด์ ๊ฒฐ๊ณผ๊ฐ ํ๋ก๊ทธ๋จ์ ์์ ์์๋๋ก ์ฌ์ ๋ ฌ๋์ด ์ต์ข
๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋ํ๋๋ค.
์ด์ ๊ฐ์ด ๋ช
๋ น์ด ์์ค ๋ณ๋ ฌ์ฑ, ๋ ์ง์คํฐ ๋ฆฌ๋ค์ด๋ฐ, Reservation Station, ๊ทธ๋ฆฌ๊ณ Re-order Buffer์ ๊ฐ์ ๊ฐ๋
๋ค์ CPU๊ฐ ๋น์์ฐจ์ ์ผ๋ก ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด์๋ ์ต์ข
์ ์ผ๋ก ์์ฐจ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค. ์ด๋ฌํ ๊ธฐ์ ๋๋ถ์ CPU๋ ํ ์ฌ์ดํด ๋ด์ ์ฌ๋ฌ ๋ช
๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ ์ฒด์ ์ธ ์ฑ๋ฅ๊ณผ ์ฒ๋ฆฌ ํจ์จ์ ๊ทน๋ํํ ์ ์๊ฒ ๋๋ค.
ํ๋์ ๊ณ ์ฑ๋ฅ ํ๋ก์ธ์์์๋ ์ด๋ฌํ ๋น์์ฐจ์ ์คํ ๊ธฐ์ ์ด ํ์์ ์ผ๋ก ๋์
๋์ด ์์ผ๋ฉฐ, ๊ฐ๋ฐ์๋ ์์คํ
์ค๊ณ์๊ฐ CPU์ ๋ด๋ถ ๋์ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ๊ฒ์ ์ต์ ํ ์์
์ด๋ ์ฑ๋ฅ ๋ถ์์ ํฐ ๋์์ด ๋๋ค. ๋น์์ฐจ์ ์คํ ๊ฐ๋
์ ์ ์ดํดํ๋ฉด ํ๋ก๊ทธ๋จ์ ๋ณ๋ชฉ ํ์์ ์ค์ด๊ณ ํจ์จ์ ์ธ ์ค์ผ์ค๋ง ์ ๋ต์ ์ธ์ธ ์ ์์ด, ์์คํ
์ ๋ฐ์ ์ฑ๋ฅ ํฅ์์ ๊ธฐ์ฌํ ์ ์๋ค.
๊ณต๋ถ ์ข ๋ฃ ์๊ฐ - 22:01