230111(์)
๐ ์ฑ์ฅ์ผ์ง 3.1
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋ (1.0)
์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
๐ ๊ฒฝํ ์์ฃผ๋ก (2.0)
๋จ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ๋ณด๋ค ๋ฌด์์ ๋ฐฐ์ ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์งง๊ณ ๊ฐ๋จํ๊ฒ ์์ฑ
โ๏ธ ์ ํด์ง ํ ํ๋ฆฟ์ ๋ง์ถฐ์ (3.0)
ํค์๋, ๊ฒฝํ ๋ชจ๋ ์ข๋ค. ๋ค๋ง ๋งค์ผ ์์ฑํ๊ธฐ๋ก ๋ง์ ๋จน์๋งํผ ํต์ฌ๋ง ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์๊ฒ ํ ํ๋ฆฟ์ ์์ฑ (3.1) 230102๋ถํฐ ์์๋๋ ํ์ต์ ๊ดํ ๋ด์ฉ ์ถ๊ฐ
๐ ์ค๋์ ํค์๋
์ปดํจํฐ ๊ตฌ์กฐ
- ์ค์์ฒ๋ฆฌ์ฅ์น(CPU), ๊ธฐ์ต์ฅ์น(RAM; Memory), ๊ธฐํ ์ ์ถ๋ ฅ์ฅ์น(I/O)๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๊ฐ ์ฅ์น๋ ์์คํ ๋ฒ์ค๋ก ์ฐ๊ฒฐ๋์ด์๋ค.
CPU
- ์ค์์ฒ๋ฆฌ์ฅ์น. ์ปดํจํฐ ์์คํ ์ ํต์ ํ๊ณ ํ๋ก๊ทธ๋จ์ ์ฐ์ฐ์ ์คํ ๋ฐ ์ฒ๋ฆฌํ๋ค.
- ์ ์ด์ฅ์น(CU), ์ฐ์ฐ์ฅ์น(ALU), ๋ ์ง์คํฐ ๊ทธ๋ฆฌ๊ณ ์ด 3๊ฐ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋ฒ์ค(ํ์ )๋ก ๊ตฌ์ฑ๋๋ค.
CPU ์๋ ์์: Memory์ ์ ์ฅ๋ ํ๋ก๊ทธ๋จ(๋ช ๋ น์ด)์ ์ฐจ๋ก๋๋ก fetchํด์(๊ฐ์ ธ์์) ํด๋น ๋ช ๋ น์ด๋ฅผ decodeํ์ฌ(๋ถ๋ฅํ์ฌ) executeํ๋ค.(์คํํ๋ค.)
dump: ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด ํน์ ์์ ์ ์์ ์ค์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ํ๋ฅผ ๊ธฐ๋กํ ๊ฒ์ผ๋ก, ๋ณดํต ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ ๋ ๋ง๋ค์ด์ง๋ค. ์ฆ, ๋น์ ์์ ์ธ ์ข ๋ฃ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ปค๋์์ ํด๋น ํ๋ก์ธ์ค์ ๊ด๋ จ๋๋ฉ๋ชจ๋ฆฌ ์ํ๋ฅผ ๊ธฐ๋กํ ํ์ผ์ด๋ค.
์ ์ด์ฅ์น(CU)
๋ ์ง์คํฐ ์ฌ์ด์ ๋ฐ์ดํฐ ์ ์ก์ ๊ฐ์ํ๊ณ ALU(์ฐ์ฐ์ฅ์น)์ ๋์์ ์ง์ํ๋ค.
์ ์ ํ ์์๋ก ๋ช ๋ น์ ๊บผ๋ด๊ณ , ๊ฐ ๋ช ๋ น์ ํด์ํ์ฌ ์ฐ์ ๋ ผ๋ฆฌ ์ฐ์ฐ ์ฅ์น๋ ๊ธฐํ ๋ถ๋ถ์ผ๋ก ์ ์ ํ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค.
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ(Program Counter): ๋ค์์ ์ํํ ๋ช ๋ น์ด์ ์ฃผ์๋ฅผ ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
- ๋ช ๋ น ํด๋ ๊ธฐ(Instruction Decoder): ์ํํด์ผํ ๋ช ๋ น์ด๋ฅผ ํด์ํ์ฌ ๋ถํธ๊ธฐ๋ก ์ ๋ฌํ๋ ํ๋ก
- ๋ถํธ๊ธฐ(Encoder): ์ ์ก๋ ๋ช ๋ น์ด๋ฅผ ์ ์ด, ํ์ํ ์ ํธ๋ก ๋ณํํ๋ ํ๋ก
- ๋ช ๋ น ๋ ์ง์คํฐ(Instruction Register; IR): ํ์ฌ ์ํ ์ค์ธ ๋ช ๋ น์ด๋ฅผ ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
- ์ฃผ์ ํด๋ ๊ธฐ(Address Decoder): IR๋ก๋ถํฐ ๋ฐ์ ์ฃผ์๋ฅผ ํด์ํ๋ ํ๋ก
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ ์ง์คํฐ(Memory Address Register; MAR): ์ฃผ์๋ฅผ ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
- ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ๋ ์ง์คํฐ(Memory Buffer Register; MBR): ๋ด์ฉ(์๋ฃ)๋ฅผ ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
์ฐ์ฐ์ฅ์น(ALU)
๋ช ๋ น์ด๋ฅผ ์คํํ๊ธฐ ์ํ ์ฐ์ฐ์ ์ํํ๋ ์ฅ์น
์ฐ์ฐ์ ํ์ํ ์๋ฃ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ํ๊ธฐ, ๋นผ๊ธฐ, AND, OR ๋ฑ์ ์ค์ ์ ์ธ ์ฐ์ฐ์ ์ฒ๋ฆฌํ๋ค.
- ๊ฐ์ฐ๊ธฐ: 2์ง์ ๋ง์ ์ ์ํํ๋ ํ๋ก
- ๋ณด์๊ธฐ: ์ ๋ ฅ๋ ๊ฐ์ ๋ณด์๋ก ๋ณํํ์ฌ ๋บ์ ์ ์ํํ๋ ํ๋ก
- ๋์ฐ๊ธฐ: ์ค๊ฐ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ผ์์ ์ผ๋ก ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
- ๋ฐ์ดํฐ ๋ ์ง์คํฐ: ์ฐ์ฐํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํ๋ ๋ ์ง์คํฐ
๋ ์ง์คํฐ
- CPU์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐ์ดํฐ์ ์์๊ณต๊ฐ.(CPU์์ ์ฌ์ฉํ๋
๋ณ์
๋ผ๊ณ ์๊ฐํ์.) - ๊ณต๊ฐ ์์ฒด๊ฐ ์๊ณ ๊ฐ๊ฒฉ์ ๋น์ธ์ง๋ง, CPU์ ์ง์ ์ฐ๊ฒฐ๋์ด ์์ด ์ฐ์ฐ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค.(RAM๋ณด๋ค ํจ์ฌ ๋ ๋น ๋ฅด๋ค.)
- CPU๋ ์์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก ๋ ์ง์คํฐ๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ฐ์ฒ๋ฆฌ์ ๋ฒ์ง์ง์ ์ ํ๋ค.
์ฐธ๊ณ ์๋ฃ
CPU๋ ์ด๋ป๊ฒ ์๋ํ ๊น? ์ด์ ๋ธ๋ฆฌ์ด ๊ธฐ์ด ์ฌ์ฉ๋ฒ
๐ ์์ฝ ๋ฐ ํ๋ฃจ ๊ฐ๋จ ํ๊ณ
CPU์ ๋ํ ์ข๋ ๊ตฌ์ฒด์ ์ธ ๊ฐ๋ ์ ์ดํดํ ์ ์๋ ํ๋ฃจ์๋ค. ์ด ๊ฐ๋ ์ ๋ฐํ์ผ๋ก ์ ๋ง ์ ๋ง ์์ฃผ ๊ฐ๋จํ์ง๋ง, CPU๊ฐ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๊ตฌํํด๋ณด์๋ค. ์์งํ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด๋ก CPU์ ๋ณต์กํ ๊ณผ์ ์ ๊ตฌํํ๋ ๊ฑด ์ฝ์ง ์์ ์ผ์ด๋ค. ํ๋, ์ด๋ ๊ฒ ์ค์ ๋ก ์กด์ฌํ๋ CPU ํ๋์จ์ด์ ๊ณผ์ ์ ๋ด ์๊ฐ์ ๊ฐ๊ณ ์ฝ๋๋ก ๊ตฌํํด๋ณด๋ ๊ฒฝํ์ ์ ๋ง์ ๋ง์ ๋ง ์๋ฏธ์๊ณ ๋์์ด ๋๋ ๊ฒ ๊ฐ๋ค. ์ฌ์ค ๊ทธ๋์ ํ๋ก๊ทธ๋๋ฐ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ์ ์ผ ๊ฑฑ์ ๋๊ณ ์์ ์๋ ๊ฒ, ์ค์ ํ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฝ๋๋ก ๊ตฌํํ๋ ์ผ์ด์๋๋ฐ, ์ ์ฐจ ์์ ์ด ์๊ธฐ๊ณ ์์ด์ ๊ณ์ ๋ ๊ตฌํํด๋ณด๊ณ ์ถ์ ์์ฌ์ด ์๊ธด๋ค. ์์ผ๋ก๋ ์ด๋ ๊ฒ ์ค์ค๋ก ๋๊ธฐ๋ฅผ ๋ถ์ฌํ๊ณ ์ฐพ์ผ๋ฉด์ ๊ณต๋ถํด ๋์๊ฐ์. :)