๋ช ๋ น์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
-
๋ช ๋ น์ด ๋ณ๋ น ์ฒ๋ฆฌ ๊ธฐ๋ฒ(ILP: Instruction-Level Parallelism): ๋ช ๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ์ฌ CPU๋ฅผ ํ์๋ ์ฌ์ง ์๊ณ ์๋์ํค๋ ๊ธฐ๋ฒ.
-
๋ํ์ ์ธ ๋ช ๋ น์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
- ๋ช ๋ น์ด ํ์ดํ ๋ผ์ด๋
- ์ํผ์ค์นผ๋ผ
- ๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ
๋ช ๋ น์ด ํ์ดํ๋ผ์ธ
๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ์ดํดํ๋ ค๋ฉด ํ๋์ ๋ช ๋ น์ด๊ฐ ์ฒ๋ฆฌ๋๋ ์ ์ฒด ๊ณผ์ ์ ๋น์ทํ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๋๋์ด ๋ณด์์ผ ํฉ๋๋ค.
๋ช ๋ น์ด ์ฒ๋ฆฌ ๊ณผ์ ์ ํด๋ญ ๋จ์๋ก ๋๋์ด ๋ณด๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋๋ ์ ์์ต๋๋ค.
- ๋ช ๋ น์ด ์ธ์ถ(Instruction Fetch)
- ๋ช ๋ น์ด ํด์(Instruction Decode)
- ๋ช ๋ น์ด ์คํ(Execute Instruction)
- ๊ฒฐ๊ณผ ์ ์ฅ(Write Back)
์ฐธ๊ณ : ์ด ๋จ๊ณ๊ฐ ์ ๋ต์ ์๋๋๋ค.
์ ๊ณต์์ ๋ฐ๋ผ ๋ช ๋ น์ด ์ธ์ถ -> ๋ช ๋ น์ด ์คํ์ผ๋ก ๋๋๊ธฐ๋ ํ๊ณ ,
๋ช ๋ น์ด ์ธ์ถ -> ๋ช ๋ น์ด ํด์ -> ๋ช ๋ น์ด ์คํ -> ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ -> ๊ฒฐ๊ณผ ์ ์ฅ์ผ๋ก ๋๋๊ธฐ๋ ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ์ ์ ๊ฐ์ ๋จ๊ณ๊ฐ ๊ฒน์น์ง๋ง ์๋๋ค๋ฉด CPU๊ฐ โ๊ฐ ๋จ๊ณ๋ฅผ ๋์์ ์คํํ ์ ์๋คโ๋ ๊ฒ์ ๋๋ค.
- ์๋ฅผ ๋ค์ด CPU๋ ํ ๋ช ๋ น์ด๋ฅผ โ์ธ์ถโํ๋ ๋์์ ๋ค๋ฅธ ๋ช ๋ น์ด๋ฅผ โ์คํโํ ์ ์๊ณ , ํ ๋ช ๋ น์ด๊ฐ โ์คํโ๋๋ ๋์์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ โ์ ์ฅโํ ์ ์์ต๋๋ค.
์ด๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- t1์๋ ๋ช ๋ น์ด 1, 2๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์๊ณ t2์๋ ๋ช ๋ น์ด 1,2,3์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ ๋ช ๋ น์ด๋ฅผ ๊ฒน์ฒ์ ์ํํ๋ฉด ๋ช ๋ น์ด๋ฅผ ํ๋ํ๋ ์คํํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ ๋ง์น ๊ณต์ฅ ์์ฐ ๋ผ์ธ๊ณผ ๊ฐ์ด ๋ช ๋ น์ด๋ค์ โ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ(instruction pipeline)โ ์ ๋ฃ๊ณ ๋์์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ์ โ๋ช ๋ น์ด ํ์ดํ๋ผ์ด๋(instruction pipelining)โ ์ด๋ผ๊ณ ํฉ๋๋ค.
๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ์ง ์๊ณ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ์์ฐจ์ ์ผ๋ก๋ง ์ฒ๋ฆฌํ๋ค๋ฉด ์๋์ ๊ฐ์ด ์ฒ๋ฆฌํ์๊ฒ์ ๋๋ค.
- ํ๋์ ๋ด๋ ๋ช ๋ น์ด ํ์ดํ๋ผ์ด๋์ ์ด์ฉํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์์ ์ ์ ์์ต๋๋ค.
ํ์ดํ๋ผ์ด๋์ด ๋์ ์ฑ๋ฅ์ ๊ฐ์ ธ์ค๊ธฐ๋ ํ์ง๋ง, ํน์ ์ํฉ์์๋ ์ฑ๋ฅ ํฅ์์ ์คํจํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
- ์ด๋ฌํ ์ํฉ์ ํ์ดํ๋ผ์ธ ์ํ(pipeline hazard) ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
ํ์ดํ๋ผ์ธ ์ํ์๋ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ํ
- ์ ์ด ์ํ
- ๊ตฌ์กฐ์ ์ํ
๋ฐ์ดํฐ ์ํ
-
๋ฐ์ดํฐ ์ํ(data hazard) ์ ๋ช
๋ น์ด ๊ฐ โ๋ฐ์ดํฐ ์์กด์ฑโ์ ์ํด ๋ฐ์ํฉ๋๋ค.
- ๋ชจ๋ ๋ช
๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์๋ ์์ต๋๋ค.
- ์ด๋ค ๋ช ๋ น์ด๋ ์ด์ ๋ช ๋ น์ด๋ฅผ ๋๊น์ง ์คํํด์ผ๋ง ๋น๋ก์ ์คํํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
- ๋ชจ๋ ๋ช
๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋ ๋ ๋ช ๋ น์ด๋ฅผ ๋ด ์๋ค.
ํธ์์ ๋ ์ง์คํฐ ์ด๋ฆ์ R1, R2, R3, R4, R5๋ผ ํ๊ณ โ์ผ์ชฝ ๋ ์ง์คํฐ์ ์ค๋ฅธ์ชฝ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ผโ๋ ๊ธฐํธ๋ <- ๊ธฐํธ๋ก ํ๊ธฐํ๊ฒ ์ต๋๋ค.
๋ช
๋ น์ด 1: R1 <- R2 + R3 // R2 ๋ ์ง์คํฐ ๊ฐ๊ณผ R3 ๋ ์ง์คํฐ ๊ฐ์ ๋ํ ๊ฐ์ R1 ๋ ์ง์คํฐ์ ์ ์ฅ
๋ช
๋ น์ด 2: R4 <- R1 + R5 // R1 ๋ ์ง์คํฐ ๊ฐ๊ณผ R5 ๋ ์ง์คํฐ ๊ฐ์ ๋ํ ๊ฐ์ R4 ๋ ์ง์คํฐ์ ์ ์ฅ
์์ ๊ฒฝ์ฐ ๋ช ๋ น์ด 1์ ์ํํด์ผ๋ง ๋ช ๋ น์ด 2๋ฅผ ์ํํ ์ ์์ต๋๋ค.
- ์ฆ, R1์ R2 + R3 ๊ฒฐ๊ด๊ฐ์ด ์ ์ฅ๋์ด์ผ ๋ช
๋ น์ด 2๋ฅผ ์ํํ ์ ์์ต๋๋ค.
- ๋ง์ฝ ๋ช
๋ น์ด 1 ์คํ์ด ๋๋๊ธฐ ์ ์ ๋ช
๋ น์ด 2๋ฅผ ์ธ์ถํ๋ฉด R1์ R2 + R3 ๊ฒฐ๊ด๊ฐ์ด ์ ์ฅ๋๊ธฐ ์ ์ R1 ๊ฐ์ ์ฝ์ด ๋ค์ด๋ฏ๋ก ์์น ์์ R1 ๊ฐ์ผ๋ก ๋ช
๋ น์ด 2๋ฅผ ์ํํฉ๋๋ค.
- ๋ฐ๋ผ์ ๋ช
๋ น์ด 2๋ ๋ช
๋ น์ด 1์ ๋ฐ์ดํฐ์ ์์กด์ ์
๋๋ค.
- ์ด์ฒ๋ผ ๋ฐ์ดํฐ ์์กด์ ์ธ ๋ ๋ช ๋ น์ด๋ฅผ ๋ฌด์์ ๋์์ ์คํํ๋ ค๊ณ ํ๋ฉด ํ์ดํ๋ผ์ธ์ด ์ ๋ํธ ์๋ํ์ง ์๋ ๊ฒ์ โ๋ฐ์ดํฐ ์ํโ์ด๋ผ๊ณ ํฉ๋๋ค.
- ๋ฐ๋ผ์ ๋ช
๋ น์ด 2๋ ๋ช
๋ น์ด 1์ ๋ฐ์ดํฐ์ ์์กด์ ์
๋๋ค.
- ๋ง์ฝ ๋ช
๋ น์ด 1 ์คํ์ด ๋๋๊ธฐ ์ ์ ๋ช
๋ น์ด 2๋ฅผ ์ธ์ถํ๋ฉด R1์ R2 + R3 ๊ฒฐ๊ด๊ฐ์ด ์ ์ฅ๋๊ธฐ ์ ์ R1 ๊ฐ์ ์ฝ์ด ๋ค์ด๋ฏ๋ก ์์น ์์ R1 ๊ฐ์ผ๋ก ๋ช
๋ น์ด 2๋ฅผ ์ํํฉ๋๋ค.
์ ์ด ์ํ
-
์ ์ด ์ํ(control hazard) ์ ์ฃผ๋ก ๋ถ๊ธฐ ๋ฑ์ผ๋ก ์ธํ โํ๋ก๊ทธ๋จ ์นด์ดํฐ์ ๊ฐ์์ค๋ฌ์ด ๋ณํโ์ ์ํด ๋ฐ์ํฉ๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ โํ์ฌ ์คํ ์ค์ธ ๋ช
๋ น์ด์ ๋ค์ ์ฃผ์โ๋ก ๊ฐฑ์ ๋ฉ๋๋ค.
- ํ์ง๋ง ํ๋ก๊ทธ๋จ ์คํ ํ๋ฆ์ด ๋ฐ๋์ด ๋ช
๋ น์ด๊ฐ ์คํ๋๋ฉด์ ํ๋ก๊ทธ๋จ ์นด์ดํฐ ๊ฐ์ ๊ฐ์์ค๋ฌ์ด ๋ณํ๊ฐ ์๊ธด๋ค๋ฉด ๋ช
๋ น์ด ํ์ดํ๋ผ์ธ์ ๋ฏธ๋ฆฌ ๊ฐ์ง๊ณ ์์ ์ฒ๋ฆฌ ์ค์ด์๋ ๋ช
๋ น์ด๋ค์ ์๋ฌด ์ธ๋ชจ๊ฐ ์์ด์ง๋๋ค.
- ์ด๋ฅผ โ์ ์ด ์ํโ์ด๋ผ๊ณ ํฉ๋๋ค.
- ํ์ง๋ง ํ๋ก๊ทธ๋จ ์คํ ํ๋ฆ์ด ๋ฐ๋์ด ๋ช
๋ น์ด๊ฐ ์คํ๋๋ฉด์ ํ๋ก๊ทธ๋จ ์นด์ดํฐ ๊ฐ์ ๊ฐ์์ค๋ฌ์ด ๋ณํ๊ฐ ์๊ธด๋ค๋ฉด ๋ช
๋ น์ด ํ์ดํ๋ผ์ธ์ ๋ฏธ๋ฆฌ ๊ฐ์ง๊ณ ์์ ์ฒ๋ฆฌ ์ค์ด์๋ ๋ช
๋ น์ด๋ค์ ์๋ฌด ์ธ๋ชจ๊ฐ ์์ด์ง๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ โํ์ฌ ์คํ ์ค์ธ ๋ช
๋ น์ด์ ๋ค์ ์ฃผ์โ๋ก ๊ฐฑ์ ๋ฉ๋๋ค.
์ฐธ๊ณ : ์ฐธ๊ณ ๋ก ์ด๋ฅผ ์ํด ์ฌ์ฉํ๋ ๊ธฐ์ ์ค ํ๋๊ฐ ๋ถ๊ธฐ ์์ธก(branch prediction) ์ ๋๋ค.
๋ถ๊ธฐ ์์ธก์ ํ๋ก๊ทธ๋จ์ด ์ด๋๋ก ๋ถ๊ธฐํ ์ง ๋ฏธ๋ฆฌ ์์ธกํ ํ ๊ทธ ์ฃผ์๋ฅผ ์ธ์ถํ๋ ๊ธฐ์ ์ ๋๋ค.
๊ตฌ์กฐ์ ์ํ
-
๊ตฌ์กฐ์ ์ํ(structural hazard) ์ ๋ช
๋ น์ด๋ค์ ๊ฒน์ณ ์คํํ๋ ๊ณผ์ ์์ ์๋ก ๋ค๋ฅธ ๋ช
๋ น์ด๊ฐ ๋์์ ALU, ๋ ์ง์คํฐ ๋ฑ๊ณผ ๊ฐ์ CPU ๋ถํ์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฐ์ํฉ๋๋ค.
- ๊ตฌ์กฐ์ ์ํ์ ์์ ์ํ(resource hazard) ์ด๋ผ๊ณ ๋ ๋ถ๋ฆ ๋๋ค.
์ํผ์ค์นผ๋ผ
ํ์ดํ๋ผ์ด๋์ ๋จ์ผ ํ์ดํ๋ผ์ธ์ผ๋ก๋ ๊ตฌํ์ด ๊ฐ๋ฅํ์ง๋ง, ์ค๋๋ ๋๋ถ๋ถ์ CPU์์๋ ์ฌ๋ฌ ๊ฐ์ ํ์ดํ๋ผ์ธ์ ์ด์ฉํฉ๋๋ค.
- ์ด์ฒ๋ผ CPU ๋ด๋ถ์ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ํฌํจํ ๊ตฌ์กฐ๋ฅผ ์ํผ์ค์นผ๋ผ(superscalar) ๋ผ๊ณ ํฉ๋๋ค.
๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ํ๋๋ง ๋๋ ๊ฒ์ด ๋ง์น ๊ณต์ฅ ์์ฐ ๋ผ์ธ์ ํ ๊ฐ ๋๋ ๊ฒ๊ณผ ๊ฐ๋ค๋ฉด, ์ํผ์ค์นผ๋ผ๋ ๊ณต์ฅ ์์ฐ ๋ผ์ธ์ ์ฌ๋ฌ ๊ฐ ๋๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์ํผ์ค์นผ๋ผ ๊ตฌ์กฐ๋ก ๋ช ๋ น์ด ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ CPU๋ฅผ ์ํผ์ค์นผ๋ผ ํ๋ก์ธ์ ๋๋ ์ํผ์ค์นผ๋ผ CPU๋ผ๊ณ ํฉ๋๋ค.
- ์ํผ์ค์นผ๋ผ ํ๋ก์ธ์๋ ๋งค ํด๋ญ ์ฃผ๊ธฐ๋ง๋ค ๋์์ ์ฌ๋ฌ ๋ช
๋ น์ด๋ฅผ ์ธ์ถํ ์๋, ์คํํ ์๋ ์์ด์ผ ํฉ๋๋ค.
- ๊ฐ๋ น ๋ฉํฐ์ค๋ ๋ ํ๋ก์ธ์๋ ํ ๋ฒ์ ์ฌ๋ฌ ๋ช ๋ น์ด๋ฅผ ์ธ์ถํ๊ณ , ํด์ํ๊ณ , ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ํผ์ค์นผ๋ผ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ํผ์ค์นผ๋ผ ํ๋ก์ธ์๋ ์ด๋ก ์ ์ผ๋ก ํ์ดํ๋ผ์ธ ๊ฐ์์ ๋น๋กํ์ฌ ํ๋ก๊ทธ๋จ ์ฒ๋ฆฌ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค.
- ํ์ง๋ง ํ์ดํ๋ผ์ธ ์ํ ๋ฑ์ ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ์์ด ์ค์ ๋ก๋ ๋ฐ๋์ ํ์ดํ๋ผ์ธ ๊ฐ์์ ๋น๋กํ์ฌ ๋นจ๋ผ์ง์ง๋ ์์ต๋๋ค.
- ์ด ๋๋ฌธ์ ์ํผ์ค์นผ๋ผ ๋ฐฉ์์ ์ฐจ์ฉํ CPU๋ ํ์ดํ๋ผ์ธ ์ํ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ณ ๋๋ก ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ ํ์ดํ๋ผ์ธ์ ์ด์ฉํ๋ฉด ํ๋์ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ ๋ ๋ณด๋ค ๋ฐ์ดํฐ ์ํ, ์ ์ด ์ํ, ์์ ์ํ์ ํผํ๊ธฐ๊ฐ ๋์ฑ ๊น๋ค๋กญ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ด ๋๋ฌธ์ ์ํผ์ค์นผ๋ผ ๋ฐฉ์์ ์ฐจ์ฉํ CPU๋ ํ์ดํ๋ผ์ธ ์ํ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ณ ๋๋ก ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ
-
๋น์์ฐจ์ ๋ช
๋ น์ด ์ฒ๋ฆฌ(OoOE: Out-of-order execution): ๋ณดํต OoOE๋ก ์ค์ฌ ๋ถ๋ฆ
๋๋ค. ์ด ๊ธฐ๋ฒ์ ๋ง์ ์ ๊ณต์์์ ๋ค๋ฃจ์ง ์์ง๋ง, ์ค๋๋ CPU ์ฑ๋ฅ ํฅ์์ ํฌ๊ฒ ๊ธฐ์ฌํ ๊ธฐ๋ฒ์ด์ ๋๋ถ๋ถ์ CPU๊ฐ ์ฐจ์ฉํ๋ ๊ธฐ๋ฒ์
๋๋ค.
- ๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ ์ด๋ฆ์์๋ ์ ์ ์๋ฏ ๋ช ๋ น์ด๋ค์ ์์ฐจ์ ์ผ๋ก ์คํํ์ง ์๋ ๊ธฐ๋ฒ์ ๋๋ค. ๋ช ๋ น์ด์ โํฉ๋ฒ์ ์ธ ์์น๊ธฐโ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
์ง๊ธ๊น์ง ์ค๋ช ํ๋ ๋ช ๋ น์ด ํ์ดํ๋ผ์ด๋, ์ํผ์ค์นผ๋ผ ๊ธฐ๋ฒ์ ๋ชจ๋ ์ฌ๋ฌ ๋ช ๋ น์ด์ ์์ฐจ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์์ ํ ๋ฐฉ๋ฒ์ด์์ต๋๋ค.
- ํ๋ก๊ทธ๋จ์ ์์์ ์๋๋ก ์ฐจ๋ก์ฐจ๋ก ์คํํ๋ ๋ฐฉ์์ด์์ต๋๋ค.
- ํ์ง๋ง ํ์ดํ ๋ผ์ธ ์ํ๊ณผ ๊ฐ์ ์์์น ๋ชปํ ๋ฌธ์ ๋ค๋ก ์ธํด ์ด๋ฐ๊ธ์ฉ ๋ช ๋ น์ด๋ ๊ณง๋ฐ๋ก ์ฒ๋ฆฌ๋์ง ๋ชปํ๊ธฐ๋ ํฉ๋๋ค.
- ๋ง์ฝ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ์์ฐจ์ ์ผ๋ก๋ง ์ฒ๋ฆฌํ๋ค๋ฉด ์ด๋ฐ ์์์น ๋ชปํ ์ํฉ์์ ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ๋ฉ์ถฐ๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ค๋ก ์ด๋ฃจ์ด์ง ์์ค ์ฝ๋๊ฐ ์๋ค๊ณ ํด๋ด ์๋ค.
ํธ์์ โ๋ฉ๋ชจ๋ฆฌ N๋ฒ์งโ๋ M(N)์ผ๋ก. โ๋ฉ๋ชจ๋ฆฌ N๋ฒ์ง์ M์ ์ ์ฅํ๋ผโ๋ M(N) <- M์ผ๋ก ํ๊ธฐํ๊ฒ ์ต๋๋ค.
1. M(100) <- 1
2. M(101) <- 2
3. M(103) <- M(100) + M(101)
4. M(150) <- 1
5. M(151) <- 2
6. M(152) <- 3
์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ ์ ์ 3๋ฒ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ธฐ ์ํด์๋ M(100) ๊ฐ์ ๋ฌผ๋ก M(101) ๊ฐ์ด ๊ฒฐ์ ๋์ด์ผ ํ๊ธฐ์ 1๋ฒ๊ณผ 2๋ฒ ๋ช ๋ น์ด ์คํ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ์ ์ ๋๋ค.
์ด ๋ช
๋ น์ด๋ค์ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ CPU๋ก ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2๋ฒ ๋ช
๋ น์ด ์คํ์ด ๋๋ ๋๊น์ง 3, 4, 5, 6๋ฒ ๋ช
๋ น์ด๋ค์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
์์ ์ฝ๋๋ฅผ ์ด๋ฃจ๋ ๋ช ๋ น์ด๋ค ์ค์ ์๋ก ๋ฐ์ดํฐ ์์กด์ฑ์ด ์ ํ ์๋, ์์๋ฅผ ๋ฐ๊ฟ ์ฒ๋ฆฌํด๋ ์ํ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ช ๋ น์ด๋ค์ด ์์ต๋๋ค.
- ๊ฐ๋ น 3๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ค์ ๋ช ๋ น์ด์ ์์๋ฅผ ๋ฐ๊พธ์ด ์คํํด๋ ํฌ๊ฒ ๋ฌธ์ ๋ ๊ฒ์ด ์์ต๋๋ค.
์ด๋ ๊ฒ ์์๋ฅผ ๋ฐ๊ฟ ์คํํ๋ฉด ์๋์ ๊ฐ์ด ์ํ๋ฉ๋๋ค.
- ์์ฐจ์ ์ผ๋ก ๋ช
๋ น์ด๋ฅผ ์ฒ๋ฆฌํ ๋๋ณด๋ค ๋ ํจ์จ์ ์
๋๋ค.
- ์ด๋ ๊ฒ ๋ช ๋ น์ด๋ฅผ ์์ฐจ์ ์ผ๋ก๋ง ์คํํ์ง ์๊ณ ์์๋ฅผ ๋ฐ๊ฟ ์คํํด๋ ๋ฌด๋ฐฉํ ๋ช ๋ น์ด๋ฅผ ๋จผ์ ์คํํ์ฌ ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ด ๋ฉ์ถ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฒ์ ๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๊ธฐ๋ฒ ์ด๋ผ๊ณ ํฉ๋๋ค.
ํ์ง๋ง ์๋ฌด ๋ช ๋ น์ด๋ ์์๋ฅผ ๋ฐ๊ฟ์ ์ํํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด์ ๋ค์ ์์๋ฅผ ๋ด ์๋ค.
1. M(100) <- 1
2. M(101) <- 2
3. M(102) <- M(100) + M(101)
4. M(103) <- M(102) + M(101)
5. M(104) <- M(100)
- ์ ์ฝ๋์์ 3๋ฒ ๋ช
๋ น์ด์ 1๋ฒ ๋ช
๋ น์ด์ ์์๋ฅผ ๋ฐ๊ฟ ์๋ ์์ต๋๋ค.
- 3๋ฒ ๋ช
๋ น์ด๋ฅผ ์ํํ๋ ค๋ฉด ๋ฐ๋์ M(100) ๊ฐ์ด ๊ฒฐ์ ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
- ๋ง์ฐฌ๊ฐ์ง๋ก 4๋ฒ ๋ช
๋ น์ด์ 1๋ฒ ๋ช
๋ น์ด๋ ์์๋ฅผ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- 1๋ฒ ๋ช ๋ น์ด๋ฅผ ํ ๋๋ก 3๋ฒ ๋ช ๋ น์ด๊ฐ ์ํ๋๊ณ , 3๋ฒ ๋ช ๋ น์ด๋ฅผ ํ ๋๋ก 4๋ฒ์ด ์ํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ง์ฐฌ๊ฐ์ง๋ก 4๋ฒ ๋ช
๋ น์ด์ 1๋ฒ ๋ช
๋ น์ด๋ ์์๋ฅผ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
- 3๋ฒ ๋ช
๋ น์ด๋ฅผ ์ํํ๋ ค๋ฉด ๋ฐ๋์ M(100) ๊ฐ์ด ๊ฒฐ์ ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ์ง๋ง ์ ์ฝ๋์์ 4๋ฒ ๋ช ๋ น์ด์ 5๋ฒ ๋ช ๋ น์ด๋ ์์๋ฅผ ๋ฐ๊พธ์ด ์คํํ ์ ์์ต๋๋ค.
- ๋ค์ ๋งํด ์ด ๋ ๋ช ๋ น์ด๋ ์ด๋ค ์์กด์ฑ๋ ์๊ธฐ์ ์์๋ฅผ ๋ฐ๊ฟ๋ ์ ์ฒด ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์๋ ์ํฅ์ด ์์ต๋๋ค.
์ด์ฒ๋ผ ๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ CPU๋ ๋ช ๋ น์ด๋ค์ด ์ด๋ค ๋ช ๋ น์ด์ ๋ฐ์ดํฐ ์์กด์ฑ์ ๊ฐ์ง๊ณ ์๋์ง, ์์๋ฅผ ๋ฐ๊ฟ ์คํํ ์ ์๋ ๋ช ๋ น์ด์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง๋ฅผ ํ๋จํ ์ ์์ด์ผ ํฉ๋๋ค.
ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ
- ๋ช ๋ น์ด ํ์ดํ๋ผ์ด๋์ ๋์์ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ๊ฒน์ณ ์คํํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
- ์ํผ ์ค์นผ๋ผ๋ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ๋๋ ๊ธฐ๋ฒ์ ๋๋ค.
- ๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ ํ์ดํ๋ผ์ธ์ ์ค๋จ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ช ๋ น์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ์ง ์๋ ๊ธฐ๋ฒ์ ๋๋ค.