์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๋ฏธํฌ๋ก๋ค์์ ์ฐ๋ฐฉ (Federated States of Micronesia) ์ ๊ตญ๊ฐ ์ฝ๋[ํธ์ง]
2. ๋ ์๋ค๋๋ ์คํ๊ฒํฐ ๊ดด๋ฌผ (Flying Spaghetti Monster) ์ ์ค์๋ง[ํธ์ง]
3. ์์ ์ธ๋ก ์ด๋ (Free Speech Movement)[ํธ์ง]
๋ฏธ๊ตญ UC ๋ฒํด๋ฆฌ์์ ์์๋ ์ธ๋ก ์ ์์ ์ด๋. ๋ฒ ํธ๋จ์ ๋น์ ์ธ๋ก ๊ณผ speech์ ๋ํ ํต์ ์ ๋ํ ๋ฐ๋ฐ๋ก, Mario Savio์ ์ฃผ๋๋ก ์ด๋ฃจ์ด์ก๋ค. ํ์ฌ UC ๋ฒํด๋ฆฌ์์๋ ์ด ์ผ์ ๊ธฐ๋
ํ๋ ๊นํ๊ฐ ๋์๊ด ๋ด์ ์๋ค.
4. ์ ํ ์ํ ๊ธฐ๊ณ (Finite State Machine)[ํธ์ง]
์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์ค๊ณํ ๋ ์ฐ์ด๋ ๋ชจ๋ธ์ด๋ค. ์ปดํจํฐ ๋ด์ ์ ํํ ์ํ๋ฅผ ๊ฐ์ง๋ ๊ธฐ๊ณ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ปดํจํฐ๋ ์ค๋ก์ง ํ๋์ ์ํ๋ง ๊ฐ๊ณ ์์ ์ ์์ผ๋ฉฐ ๊ฐ ์ํ๋ณ ๋์๊ณผ ์ํ๋ผ๋ฆฌ์ ์ ์ด์ ๋ํ ๋ด์ฉ์ ์ค๊ณํ๊ฒ ๋๋ค.
์์ปจ๋ฐ, ์์๋์ ๋น์ทํ ๊ฒ์ด๋ฉฐ, ๊ณต๋๋ฅผ ๊ฐ๊ฒ๋๋ฉด ์ฌ๋ฌ๋ชจ๋ก ์จ๋จน๊ฒ ๋๋ค. Moore FSM๊ณผ Mealy FSM์ด ์์ผ๋ฉฐ, ๋ฐ๋ฆฌ FSM์ ์ํ(state)์ ์ ๋ ฅ์ ๋ฐ๋ผ ์์๊ฐ ๊ฒฐ์ ๋๊ณ , ๋ฌด์ด FSM์ ์ํ์๋ง ๋ฐ๋ผ ์์๊ฐ ๊ฒฐ์ ๋๋ค.
๋๊ฒ, ์์คํ ์ด ๋ณต์กํด์ง๋ฉด ๋ณต์กํด์ง ์๋ก ๋ฐ๋ฆฌ ์ชฝ์ ์ ๊ฒฝ ์จ์ผํ ๊ฒ๋ ๋ง์์ง๊ณ ๊ฐ๋นํ๊ธฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ ๋ฌด์ด FSM์ ์ฌ์ฉํ๋ค.
MIPS๋ก ๋ง๋ ๋ฉํฐ ์ฌ์ดํด CPU๋ฅผ ์๋ก ์ค๋ช ํ๋ค๋ฉด, Fetch(๋ช ๋ น์ด ์ฝ๊ธฐ), decode(๋ช ๋ น์ด ํด์), execute(๋ช ๋ น์ด ์คํ), memory access(๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ), writeback(์ฐ๊ธฐ)์ด ์๋๋ฐ ๊ฐ๊ฐ์ ๋์ ๋ฐฉ์์ CPU/๊ตฌ์กฐ์ ์๋ฆฌ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๊ธฐ๋ก ํ์.
1. ์ฐ์ , MIPS๋ก ์ฃผ์ด์ง ๋ช ๋ น์ด๊ฐ Fetch๋ก ๋ค์ด๊ฐ์ ์ฃผ์ด์ง ๋ช ๋ น์ ๊ฐ์ ธ์ค๋ฉด์ ๋์์ PC+4์ฐ์ฐ์ ํ๋ ์ํ๊ฐ ๋๋ค.(Fetch)
2. ๊ฐ์ ธ์จ ๋ช ๋ น์ ํด์ ํด์ผํ๋ ์ํ๋ผ ALU๊ฐ ํ ์ผ์ด ์์ผ๋ ํน์๋ชจ๋ฅผ branch(๋ถ๊ธฐ)๋ช ๋ น์ด์ ๋๋นํด ๋ ์ง์คํฐ์ [15:0]๋ฅผ shift-left 2ํด์ pc์ ๋ํด๋๋๋ค.(decode)
3-1. ํด์ ๊ฒฐ๊ณผ Rํ์ ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด rs์ rt์ฐ์ฐ์ ํ๋ค. ๊ทธ ํ 4-1๋ก ๊ฐ๋ค.(execute)
3-2. ํด์ ๊ฒฐ๊ณผ j๋ช ๋ น์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ช ๋ นํ๋ ๋๋ก ์ ํ๋ฅผ ํ๊ณ 1๋ก ๋์๊ฐ์ ๋ค์ ๋ช ๋ น์ ๊ธฐ๋ค๋ฆฐ๋ค..(execute)
3-3. ํด์ ๊ฒฐ๊ณผ load๋ค. rs์ [15:0]๊ฐ์ 32bit๋ก ํ์ฅ์ํจ ๊ฒ์ ๋ํ๊ณ 4-2๋ก ๊ฐ๋ค.(execute)
4-1. rs์ rt์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ rd์ ์ด๋ค. ๊ทธ ํ 1๋ก ๋์๊ฐ์ ๋ค์ ๋ช ๋ น์ ๊ธฐ๋ค๋ฆฐ๋ค(Writeback)
4-2 rs์ [15:0]ํ์ฅ์์ผ ๋์จ ์ฃผ์๊ฐ์ ์๋ ๊ฒ์ ์ฝ์ด๋ด๊ณ 5๋ก ๊ฐ๋ค.(memory access)
5 ์ฝ์ด๋ธ ๊ฐ์ rt์ ์ง์ด๋ฃ๊ณ 1๋ก ๋์๊ฐ๋ค(Writeback)
์ค์ ๋ก๋ ์ฌ๋ฌ ๋ช ๋ น์ด๊ฐ ์๋ ๋งํผ ๋ ๋ณต์กํด์ง์ง๋ง ์ผ๋จ ์ด๋ฐ ๋ช ๋ น์ด๋ค์ ๊ฐ๊ฐ์ ์ํ, ๋ ์ง์คํฐ์ ์ฐ๊ธฐ๊ถํ์ ํค๋๋, ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํ๋๋, ์ ํ๋ฅผ ํ๊ฒํ๋๋, ๊ฐ์ ์ํ๊ฐ์ ํํํ ์์๋๋ฅผ ๊ตฌํํ๋ ๋๋์ด๋ค. ์ด ์ชฝ์ ์์๋์๋ ๋ค๋ฅด๊ฒ Start๋ ์์ด๋ End๋ ์์ง๋ง.
์์ปจ๋ฐ, ์์๋์ ๋น์ทํ ๊ฒ์ด๋ฉฐ, ๊ณต๋๋ฅผ ๊ฐ๊ฒ๋๋ฉด ์ฌ๋ฌ๋ชจ๋ก ์จ๋จน๊ฒ ๋๋ค. Moore FSM๊ณผ Mealy FSM์ด ์์ผ๋ฉฐ, ๋ฐ๋ฆฌ FSM์ ์ํ(state)์ ์ ๋ ฅ์ ๋ฐ๋ผ ์์๊ฐ ๊ฒฐ์ ๋๊ณ , ๋ฌด์ด FSM์ ์ํ์๋ง ๋ฐ๋ผ ์์๊ฐ ๊ฒฐ์ ๋๋ค.
๋๊ฒ, ์์คํ ์ด ๋ณต์กํด์ง๋ฉด ๋ณต์กํด์ง ์๋ก ๋ฐ๋ฆฌ ์ชฝ์ ์ ๊ฒฝ ์จ์ผํ ๊ฒ๋ ๋ง์์ง๊ณ ๊ฐ๋นํ๊ธฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ ๋ฌด์ด FSM์ ์ฌ์ฉํ๋ค.
MIPS๋ก ๋ง๋ ๋ฉํฐ ์ฌ์ดํด CPU๋ฅผ ์๋ก ์ค๋ช ํ๋ค๋ฉด, Fetch(๋ช ๋ น์ด ์ฝ๊ธฐ), decode(๋ช ๋ น์ด ํด์), execute(๋ช ๋ น์ด ์คํ), memory access(๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ), writeback(์ฐ๊ธฐ)์ด ์๋๋ฐ ๊ฐ๊ฐ์ ๋์ ๋ฐฉ์์ CPU/๊ตฌ์กฐ์ ์๋ฆฌ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๊ธฐ๋ก ํ์.
1. ์ฐ์ , MIPS๋ก ์ฃผ์ด์ง ๋ช ๋ น์ด๊ฐ Fetch๋ก ๋ค์ด๊ฐ์ ์ฃผ์ด์ง ๋ช ๋ น์ ๊ฐ์ ธ์ค๋ฉด์ ๋์์ PC+4์ฐ์ฐ์ ํ๋ ์ํ๊ฐ ๋๋ค.(Fetch)
2. ๊ฐ์ ธ์จ ๋ช ๋ น์ ํด์ ํด์ผํ๋ ์ํ๋ผ ALU๊ฐ ํ ์ผ์ด ์์ผ๋ ํน์๋ชจ๋ฅผ branch(๋ถ๊ธฐ)๋ช ๋ น์ด์ ๋๋นํด ๋ ์ง์คํฐ์ [15:0]๋ฅผ shift-left 2ํด์ pc์ ๋ํด๋๋๋ค.(decode)
3-1. ํด์ ๊ฒฐ๊ณผ Rํ์ ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด rs์ rt์ฐ์ฐ์ ํ๋ค. ๊ทธ ํ 4-1๋ก ๊ฐ๋ค.(execute)
3-2. ํด์ ๊ฒฐ๊ณผ j๋ช ๋ น์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ช ๋ นํ๋ ๋๋ก ์ ํ๋ฅผ ํ๊ณ 1๋ก ๋์๊ฐ์ ๋ค์ ๋ช ๋ น์ ๊ธฐ๋ค๋ฆฐ๋ค..(execute)
3-3. ํด์ ๊ฒฐ๊ณผ load๋ค. rs์ [15:0]๊ฐ์ 32bit๋ก ํ์ฅ์ํจ ๊ฒ์ ๋ํ๊ณ 4-2๋ก ๊ฐ๋ค.(execute)
4-1. rs์ rt์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ rd์ ์ด๋ค. ๊ทธ ํ 1๋ก ๋์๊ฐ์ ๋ค์ ๋ช ๋ น์ ๊ธฐ๋ค๋ฆฐ๋ค(Writeback)
4-2 rs์ [15:0]ํ์ฅ์์ผ ๋์จ ์ฃผ์๊ฐ์ ์๋ ๊ฒ์ ์ฝ์ด๋ด๊ณ 5๋ก ๊ฐ๋ค.(memory access)
5 ์ฝ์ด๋ธ ๊ฐ์ rt์ ์ง์ด๋ฃ๊ณ 1๋ก ๋์๊ฐ๋ค(Writeback)
์ค์ ๋ก๋ ์ฌ๋ฌ ๋ช ๋ น์ด๊ฐ ์๋ ๋งํผ ๋ ๋ณต์กํด์ง์ง๋ง ์ผ๋จ ์ด๋ฐ ๋ช ๋ น์ด๋ค์ ๊ฐ๊ฐ์ ์ํ, ๋ ์ง์คํฐ์ ์ฐ๊ธฐ๊ถํ์ ํค๋๋, ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํ๋๋, ์ ํ๋ฅผ ํ๊ฒํ๋๋, ๊ฐ์ ์ํ๊ฐ์ ํํํ ์์๋๋ฅผ ๊ตฌํํ๋ ๋๋์ด๋ค. ์ด ์ชฝ์ ์์๋์๋ ๋ค๋ฅด๊ฒ Start๋ ์์ด๋ End๋ ์์ง๋ง.