๐งฉ CS:APP | PC์ ALU์ ์ญํ ์ ๋ฆฌ
โจ 1. PC (Program Counter)
๋ค์ ๋ช
๋ น์ด์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ๋ ์ง์คํฐ
- CPU๊ฐ ๋ค์์ผ๋ก ์คํํ ๋ช
๋ น์ด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ ์ฅ
- ํ๋์ ๋ช
๋ น์ด ์คํ ํ, ์๋์ผ๋ก ๋ค์ ๋ช
๋ น์ด์ ์ฃผ์๋ก ์
๋ฐ์ดํธ
- ๋ถ๊ธฐ(branch), ์ ํ(jump), ํจ์ ํธ์ถ(call) ์์๋ ์
๋ฐ์ดํธ๋์ด ํ๋ก๊ทธ๋จ ํ๋ฆ ์ ์ด๋ฅผ ๋ด๋น
- ํ๋ก์ธ์์ ๋ช
๋ น์ด ํ๋ฆ์ ์ ์ดํ๋ ํต์ฌ ์ญํ
โ๏ธ 2. ALU (Arithmetic Logic Unit)
์ฐ์ ๋ฐ ๋
ผ๋ฆฌ ์ฐ์ฐ์ ๋ด๋นํ๋ ์ฐ์ฐ ์ฅ์น
- CPU ๋ด๋ถ์์ ์ค์ ๊ณ์ฐ์ ์ํํ๋ ํ๋์จ์ด ๋ชจ๋
- ๋ง์
(+), ๋บ์
(-), ๋
ผ๋ฆฌ๊ณฑ(AND), ๋
ผ๋ฆฌํฉ(OR), ๋ถ์ (NOT) ๋ฑ ์ฐ์ ๋ฐ ๋
ผ๋ฆฌ ์ฐ์ฐ ์ฒ๋ฆฌ
- ALU๋ CPU๊ฐ ๋ช
๋ น์ด๋ฅผ ์คํํ ๋, ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
- ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ๋ ๋ชจ๋ ๊ณ์ฐ ์์
์ ์ค์ฌ
๐ 3. ํ ์ค ์ ๋ฆฌ
- PC โ ๋ช
๋ น์ด์ ํ๋ฆ์ ์ ์ดํ๋ ์ฅ์น
- ALU โ ๋ช
๋ น์ด์ ์ค์ ์ฐ์ฐ์ ๋ด๋นํ๋ ์ฅ์น
๐ก 4. ์ถ๊ฐ ์ฐธ๊ณ
- ์ด ๋ ๊ตฌ์ฑ ์์๋ CPU์ ๋ช
๋ น์ด ์ฌ์ดํด(Fetch-Decode-Execute) ๊ณผ์ ์์ ๊ธด๋ฐํ ํ๋ ฅ
- PC๋ Fetch ๋จ๊ณ์์ ๋์ํ๊ณ , ALU๋ Execute ๋จ๊ณ์์ ์ฃผ๋ก ๋์ํจ
๐ Tip
๋ช
๋ น์ด๋ฅผ ์ด๋์ ๊ฐ์ ธ์ฌ์ง ์ ํ๋ ์น๊ตฌ(PC)์, ์ค์ ๋ก ๊ณ์ฐํ๋ ์น๊ตฌ(ALU)