4. ํธ๋์ง์คํฐ์์ CPU๋ก, ์ด๋ณด๋ค ๋ ์ค์ํ ๊ฒ์ ์๋ค.
4.1 ์ด ์์ ์ฅ๋๊ฐ์ CPU๋ผ ๋ถ๋ฅธ๋ค.
CPU ์ ๋ฐ์ ์ ํธ๋์ง์คํฐ์์ ์๋ค.
๋จ์ง ํ์ชฝ์ ์ ๋ฅ๋ฅผ ํ๋ฆฌ๋ฉด ๋๋จธ์ง ๋จ์ ๋ ๊ฐ์ ์ ๋ฅ๊ฐ ํ๋ฅด๊ฒ ํ ์๋ ์๊ณ ํ๋ฆฌ์ง ๋ชปํ๊ฒ ํ ์๋ ์๋ค.
์ฆ, ํธ๋์ง์คํฐ๋ก ๋ ผ๋ฆฌ๊ณฑ, ๋ ผ๋ฆฌํฉ, ๋ ผ๋ฆฌ๋ถ์ ์ ๋ํ๋ผ ์ ์๋ค.
1) ๋ ผ๋ฆฌ๊ณฑ: ์ค์์น ๋ ๊ฐ๊ฐ ๋์์ ์ผ์ง ๋๋ง ์ ๋ฅ๊ฐ ํ๋ฅด๊ณ ๋ฑ์ด ์ผ์ง๋ค.
2) ๋ ผ๋ฆฌํฉ: ๋ ์ค์์น ์ค ํ๋๋ผ๋ ์ผ์ ธ ์์ผ๋ฉด ์ ๋ฅ๊ฐ ํ๋ฅผ ์ ์์ผ๋ฉฐ ๋ฑ์ด ์ผ์ง๋ค.
3) ๋ ผ๋ฆฌ๋ถ์ : ์ค์์น๋ฅผ ๋ซ์ผ๋ฉด ์ ๋ฅ๊ฐ ํ๋ฌ ๋ฑ์ด ์ผ์ง์ง๋ง, ์ค์์น๋ฅผ ์ด๋ฉด ์ ๋ฅ๊ฐ ํ๋ฅด์ง ์๊ณ ๋ฑ์ด ๊บผ์ง๋ค.
๋ ผ๋ฆฌํฉ, ๋ ผ๋ฆฌ๊ณฑ, ๋ ผ๋ฆฌ๋ถ์ ๊ฒ์ดํธ๋ก CPU์ ๊ฐ์ฅ ์ค์ํ ๋ฅ๋ ฅ์ธ ‘์ฐ์ฐ’์ ์ค๊ณํ ์ ์๋ค.
CPU๋ 0, 1์ 2์ง๋ฒ๋ง ์๊ณ ์๋ค. 2์ง๋ฒ์ ๋ง์ ์ ์๋์ ๊ฐ๋ค.
0 + 0 ์ ๊ฒฐ๊ณผ๋ 0. ์๋ฆฌ ์ฌ๋ฆผ์๋ 0.
0 + 1 ์ ๊ฒฐ๊ณผ๋ 1. ์๋ฆฌ ์ฌ๋ฆผ์๋ 0.
1 + 0 ์ ๊ฒฐ๊ณผ๋ 1. ์๋ฆฌ ์ฌ๋ฆผ์๋ 0.
1 + 1 ์ ๊ฒฐ๊ณผ๋ 0. ์๋ฆฌ ์ฌ๋ฆผ์๋ 1.
์๋ฆฌ ์ฌ๋ฆผ์๋ง ๋ณด๋ฉด ๋ ์ ๋ ฅ ๊ฐ ๋ชจ๋๊ฐ 1์ผ ๋๋ง 1 ์ด๋ค. => ๋ ผ๋ฆฌ๊ณฑ ๊ฒ์ดํธ
๊ฒฐ๊ณผ๋ง ๋ณด๋ฉด ๋ ์ ๋ ฅ ๊ฐ์ด ์๋ก ๊ฐ์ผ๋ฉด 0, ๋ค๋ฅผ ๋ 1์ด๋ค. => ๋ฐฐํ์ ๋ ผ๋ฆฌํฉ(XOR)
์ด์ง์์ ๋ง์ ์ ๋ ผ๋ฆฌ๊ณฑ, ๋ฐฐํ์ ๋ ผ๋ฆฌํฉ ๊ฒ์ดํธ๋ก ๋ํ๋ด๋ฉด ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
์ด๊ฒ์ด ๊ฐ์ฐ๊ธฐ(adder)์ ๋ชจ์ต์ด๋ค.
์ฆ, CPU ์ ์ฐ์ฐ์ฒ๋ฆฌ์ฅ์น(ALU)์ ๊ทผ๋ณธ์ ํธ๋์ง์คํฐ > ๋ ผ๋ฆฌ๊ฒ์ดํธ > ๊ฐ์ฐ๊ธฐ์์ ๋์จ๋ค.
๋ค๋ง ์์ ๊ทธ๋ฆผ๊น์ง๋ ์ ๋ ฅ์ ๊ธฐ๋ฐํ์ฌ ์ถ๋ ฅ์ ๋ด๋ณด๋ผ ๋ฟ์ด๋ค.
์ ๊ตฌ์กฐ(์ฐ์ฐ๋ฅ๋ ฅ)์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ ํ๋ก๋ฅผ ์ถ๊ฐํด์ ‘๋ ์ง์คํฐ’๊ฐ ๋ฐ๋ช ๋์๋ค.
๋ํ, ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์ฃผ์ ์ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ‘๋ฉ๋ชจ๋ฆฌ’๊ฐ ํ์ํ๋ค.
๊ทธ๋ผ ๋ชจ๋ ์ฐ์ฐ ๋ ผ๋ฆฌ๋ฅผ ์ด๋ ๊ฒ ํ๋ก ๊ฐ์ ํ๋์จ์ด๋ก ํํํด์ผ ํ๋๊ฐ ? X
๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ผ๋ก ์ํํธ์จ์ด๋ก ํํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ด์์ ์ด๋ค. ๋ช ๋ น์ด๋ก CPU ์๊ฒ ํ ์ผ์ ์๋ ค์ฃผ์.
์ํํธ์จ์ด์ ํ๋์จ์ด ๊ฐ์ ์ธํฐํ์ด์ค == ๋ช ๋ น์ด ์งํฉ.
0, 1๋ก ๋ ๊ธฐ๊ณ ๋ช ๋ น์ด๋ก ์ง์ ํ๋ก๊ทธ๋๋ฐ ํ์๋ ๋งค์ฐ ๋ฒ๊ฑฐ๋ก์์ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์๋ค. ๊ธฐ๊ณ ๋ช ๋ น์ด -> ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
๋ค์์ผ๋ก ๊ฐ ๋ถ๋ถ์ ํ๋ก๊ฐ ํจ๊ป ์์ ํ ์ ์๋๋ก ์กฐ์ ํ๊ฑฐ๋ ๋๊ธฐํํ๋ ์ญํ ์ด ํ์ํ๋ค.
CPU์ ์งํ์ ์ญํ == ํด๋ญ ์ ํธ(Clock Signal)
ํด๋ญ ์ฃผํ์(Clock rate)? 1์ด ๋์ ์งํ๋ด์ ๋ช ๋ฒ ํ๋๋๊ฐ.
ํด๋ญ ์ฃผํ์๊ฐ ๋์ ์๋ก CPU ๊ฐ 1์ด์ ๋ ๋ง์ ์์ ์ ํ ์ ์์์ ์๋ฏธํ๋ค.
์ฐ์ ๋ ผ๋ฆฌ์ฅ์น, ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ ๋ ์ง์คํฐ, ์์ ์ ํจ๊ปํ๋๋ก ์ ์ดํด์ฃผ๋ ํด๋ญ ์ ํธ. ์ด 3๊ฐ๋ฅผ ํ๋ฐ ๋ฌถ์ ๊ฒ์ด ์ค์ ์ฒ๋ฆฌ ์ฅ์น(CPU) or ํ๋ก์ธ์(processor)์ด๋ค.
2. CPU๋ ์ ํด ์ํ์ผ ๋ ๋ฌด์์ ํ ๊น?
ํ๋ก์ธ์ค๋ 152๊ฐ๊ฐ ์ด๋ ค์์์๋ CPU ์ฌ์ฉ๋ฅ ์ ๋งค์ฐ ๋ฎ๋ค.
ํ๋ก์ธ์ค ๋๋ถ๋ถ์ ์๋ฌด๋ฐ ์์ ์ ํ์ง ์๊ณ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๊น์ง ๋๊ธฐ๋ง ํ๊ณ ์๋ค.
์ค์ ๋ก๋ System Idle Process ๊ฐ ๋ชจ๋ CPU ์๊ฐ์ ์๋ชจํ๊ณ ์๋ค.
์ด์์ฒด์ ๋ ํ๋ก์ธ์ค์ ์ด์์ฒด์ ๋ฅผ ํ ๋นํ๊ณ ์ฐ์ ์์์ ๋ฐ๋ผ ์ค์ผ์ค๋ฌ๊ฐ ์ค์ผ์ค๋ง์ ํ๋ค. ๋๊ธฐ์ด์ ํ๋ก์ธ์ค๋ฅผ ๋๊ณ ์ฐ์ ์์์ ๋ฐ๋ผ ์คํํ๋ ๊ฒ์ด๋ค.
์ฆ, CPU ์ ํด ์ํ๋ ๋๊ธฐ์ด์ด ๋น์ด ์์ด์ ํ์ฌ ์ด์์ฒด์ ๋ ์ค์ผ์ค๋งํ ํ๋ก์ธ์ค๊ฐ ์๋ ์ํ์ด๋ค.
๋๊ธฐ์ด์ด ๋น์ด์๋์ง๋ฅผ ๊ณ์ ํ์ธํด์ผํ ๊น? X.
์ ํ์์ ์ด๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ํญ์ ์ค๋น ์๋ฃ ์ํ์ ๋๊ณ ์์คํ ์ ์ค์ผ์ค๋ง ํ ํ๋ก์ธ์ค๊ฐ ์์ ๋ ์ ํ ํ๋ก์ธ์ค๋ฅผ ๊บผ๋ด์ ์คํํ๋ค. ์ด๊ฒ ๋ฐ๋ก System Idle Process.
System ๋ช ๋ น์ด๋ก๋ halt ๋ช ๋ น์ด๋ฅผ ํธ์ถํ๋ ์ํ์ด๋ฉฐ ์ด ๋ CPU๋ ์ ์ ๋ ฅ ์ํ๊ฐ ๋๋ค.
4.3 CPU๋ ์ซ์๋ฅผ ์ด๋ป๊ฒ ์ธ์ํ ๊น?
1) ๋ถํธ-ํฌ๊ธฐ ํํ: ์ต์์ 1๋นํธ๋ฅผ ๋ถํธ ๋นํธ๋ก ๋๋ ๊ฒ.
0000 0
0001 1
…
0111 7
1000 -0
1001 -1
…
1111 -7
2) 1์ ๋ณด์ ํํ: ์์๋ฅผ ๋นํธ ๋ฐ์ ์ํค๋ ๊ฒ.
0000 0
0001 1
…
0111 7
1000 -7
…
1110 -1
1111 -0
3) 2์ ๋ณด์ ํํ: ํ๋ ์ปดํจํฐ ์์คํ ์ ์ฌ์ฉ๋๋ ์ซ์ ํํ ๋ฐฉ์
0000 0
0001 1
…
0111 7
1000 -8
1001 -7
…
1110 -2
1111 -1
4.4 CPU๊ฐ if๋ฌธ์ ๋ง๋ฌ์ ๋
๋ฆฌ๋ ์ค์ perf ๋๊ตฌ๋ก ํ๋ก๊ทธ๋จ ์คํ ์ํ์ ๋ํ ์ด๊ธฐ ๋จ๊ณ๋ฅผ ๋ถ์ํด๋ณด์.
์ ๋ ฌ๋ ๋ฐฐ์ด๋ก ์คํ๋ ํ๋ก๊ทธ๋จ vs ์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด๋ก ์คํ๋ ํ๋ก๊ทธ๋จ
๋ถ๊ธฐ ์์ธก ์คํจ์จ(branch-misses)์ด 0.02% vs 14.12% ์ฐจ์ด๊ฐ ๋๋ค.
์ด์ ๋ช ๋ น์ด ์คํ์ด ์๋ฃ๋๊ธฐ ์ ์ ํ์ ๋ช ๋ น์ด๊ฐ ํ์ดํ๋ผ์ธ์ ๋ค์ด๊ฐ์ผ ๋น ๊ณต๊ฐ์์ด ์๊ฐ์ ์ฌ์ฉํ ์ ์๋ค. ์ฆ, CPU๋ ์ด๋๋ก ๋ถ๊ธฐํ ๊ฐ๋ฅ์ฑ์ด ์๋์ง ์ถ์ธก์ ํ๋ฉฐ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค. ์ด๋ฅผ ‘๋ถ๊ธฐ์์ธก’์ด๋ผ ํ๋ค.
์ฆ, ์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๋ถ๊ธฐ ์์ธก ์คํจ์จ์ด ๋์์ ํ๋ก๊ทธ๋จ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค. CPU๊ฐ ๋์ ํ๋ฅ ๋ก ์ถ์ธกํ ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ ์ด์ ์ด๋ค. likely/unlikely ๋งคํฌ๋ก๊ฐ ์๋ ์ด์ .
4.5 CPU ์ฝ์ด ์์ ์ค๋ ๋ ์ ์ฌ์ด์ ๊ด๊ณ๋ ๋ฌด์์ผ๊น ?
CPU ์ฝ์ด ์: ์๋ฆฌ์ฌ ์.
์ค๋ ๋ ์: ์ผ์ ์๊ฐ ๋์ ๋ณถ์ ์ ์๋ ์๋ฆฌ ์.
์ ๋น์ ํ ์ ์์ง๋ง CPU ๋ ํ๋์จ์ด, ์ค๋ ๋๋ ์ํํธ์จ์ด ์ด๋ฏ๋ก ํ์ฐ ๊ด๊ณ๋ ์๋ค.
์์ ํ๋๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋ถํ ํด์ ๊ฐ๊ฐ์ ํ์ ์์ ์ ๋ณ๋์ ์ค๋ ๋์ ๋ฐฐ์นํ๋ฉด ์ด์ ์ฒด์ ์์ ์ด๋ฅผ ์ค์ผ์ค๋งํ๊ณ ์คํํ ์ ์์ผ๋ฏ๋ก ๋์์ ์ฌ๋ฌ ์์ ์ ์คํํ ์ ์๋ค.
4.6 CPU ์งํ๋ก (์): ๋ณต์ก ๋ช ๋ น์ด ์งํฉ์ ํ์
*๋ณต์ก ๋ช ๋ น์ด ์งํฉ ์ปดํจํฐ(Complex Instruction Set Computer, CISC)
x86๊ตฌ์กฐ๋ ๋ณต์ก ๋ช ๋ น์ด ์งํฉ์ ๊ธฐ์ด๋ฅผ ๋๊ณ ์๋ค. x86 ํ๋ก์ธ์๋ฅผ ์์ฐํ๋ ๋ํ ์ ์กฐ์ ์ฒด๋ Intel ๊ณผ AMD ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ์์๋ ์๋ ์๋ ์ฝ๋๋ ์ ์ฅ๊ณต๊ฐ์ ์ฐจ์งํ๊ธฐ์ ์์ ์ฝ๋๋ก ๋ง์ ๊ธฐ๋ฅ์ ํ ์ ์๋ ๋ณต์ก ๋ช ๋ น์ด ์งํฉ์ด ๋ง์ด ๋ฐ์ ํ๋ค. ๋ง์ดํฌ๋ก ์ฝ๋.
๋ค๋ง ๋ง์ดํฌ๋ก ์ฝ๋์ ์ค๋ฅ ์์ ์ด ๋งค์ฐ ์ด๋ ค์ ๊ณ ํธ๋์ง์คํฐ๋ฅผ ๋งค์ฐ ๋ง์ด ์๋ชจํ๋ค.
4.7 CPU ์งํ๋ก (์ค): ์ถ์ ๋ช ๋ น์ด ์งํฉ์ ํ์.
๋ง์ดํฌ๋ก ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ฉด ์คํ๋ ค ํ๋ก๊ทธ๋จ์ด ๋ ๋นจ๋ฆฌ ์คํ๋๊ณ CPU๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํธ๋์ง์คํฐ๋ฅผ ์ ์ฝํ ์ ์๋ค.
์ฆ, ์ถ์ ๋ช ๋ น์ด๊ฐ ํ๋์ ๋ช ๋ น์ด ๋น ๋ค์ฌ์ผ ํ๋ ์ฐ์ฐ์ด ๋ ๊ฐ๋จํด์ ๋น ๋ฅด๋ค. ๋ช ๋ น์ด ์คํ ์๊ฐ์ ๋์ฒด์ ์ผ๋ก ๋์ผํ๊ฒ ํ์ฌ ๊ฐ๋ฅํ ํ ํ์ดํ๋ผ์ธ์ด ๋ ๋์ ํจ์จ๋ก ๊ธฐ๊ณ ๋ช ๋ น์ด๋ค์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ค.
๋ณต์ก ๋ช ๋ น์ด: ๋จน๋๋ค.
์ถ์ ๋ช ๋ น์ด: ์ด๋ก ํ ์ ๋ฒ ์ด ๋ฌด๋ ๊ฒ.
4.8 CPU ์งํ๋ก (ํ): ์ ์ฒด์ ๋ช ์ ์๊ธฐ์์ ๋ฐ๊ฒฉ.
๋ณต์ก ๋ช ๋ น์ด ์งํฉ์ ๋ช ๋ น์ด๋ฅผ CPU ๋ด๋ถ์์ ์ถ์ ๋ช ๋ น์ด ์งํฉ์ ๋ช ๋ น์ด๋ก ๋ณํ.
๋ณต์ก ๋ช ๋ น์ด ์งํฉ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ถ์ ๋ช ๋ น์ด ์งํฉ์ ์ฅ์ ์ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์งํ.
*ํ์ดํผ์ค๋ ๋ฉ == ํ๋์จ์ด ์ค๋ ๋ ๊ธฐ์ ๊ฐ๋ฐ
: ์ค์ ๋ก๋ ์ปดํจํฐ ์์คํ ์ ๋ฌผ๋ฆฌ CPU ์ฝ์ด๊ฐ ํ๋๋ง ์์ง๋ง ์ด์ ์ฒด์ ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก CPU ์ฝ์ด๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒ์ผ๋ก ์ธ์ํ๊ฒ ํ๋ ๊ฒ.
4.9 CPU, ์คํ๊ณผ ํจ์ ํธ์ถ, ์์คํ ํธ์ถ, ์ค๋ ๋ ์ ํ, ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ํต๋ฌํ๊ธฐ
ํจ์ ํธ์ถ: ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ ๊ฐ์
์์คํ ํธ์ถ: ์ด์์ฒด์ ์ ์์ฒญ
ํ๋ก์ธ์ค์ ์ค๋ ๋ ์ ํ: ๋ค์ค ์์ ๊ฐ๋ฅ
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ: ์ด์ ์ฒด์ ๊ฐ ์ธ๋ถ ์ฅ์น๋ฅผ ๊ด๋ฆฌํ ์ ์์.
*๋ ์ง์คํฐ: CPU ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์๋์ 1/100 ๋ก ๋ ์ง์คํฐ์ ์ ๊ทผํ๋ ์๋๊ฐ ๋น ๋ฆ. ์ ์กฐ๋น์ฉ์ด ๋น์ธ์ ์ฉ๋์ ํ๊ณ๊ฐ ์์.
- ์คํ ํฌ์ธํฐ
- ๋ช ๋ น์ด ์ฃผ์ ๋ ์ง์คํฐ(ํ๋ก๊ทธ๋จ ์นด์ดํฐ, PC)
- ์ํ ๋ ์ง์คํฐ
- ์ํฉ ์ ๋ณด
- ํจ์ ํธ์ถ๊ณผ ์คํ์๊ฐ ์คํ
- ์์คํ ํธ์ถ๊ณผ ์ปค๋ ์ํ ์คํ
- ์ธํฐ๋ฝํธ์ ์ธํฐ๋ฝํธ ํจ์ ์คํ
- ์ค๋ ๋ ์ ํ๊ณผ ์ปค๋ ์ํ ์คํ
'๐ Computer Science > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ ๋ฐ๋ฐ๋ฅ์ ๋น๋ฐ] 3์ฅ. ๋ฉ๋ชจ๋ฆฌ Memory (0) | 2025.01.26 |
---|---|
[SQLD ์๊ฒฉ์ฆ] ์๊ฒฉ ์๊ตฌ๊ฐฑ์ ๋ฐ ๋ณด์๊ต์ก ์๋ฃ ๋ฐฉ๋ฒ (0) | 2023.05.18 |
[Diagram] ๋ค์ด์ด๊ทธ๋จ ๊ทธ๋ฆฌ๋ ๋ฌด๋ฃ ์ฌ์ดํธ ๊ณต์ /์ถ์ฒ (0) | 2021.08.12 |
[Database] SQL ๋ฌธ ์ ๋ฆฌ(์ฝ๋ฉ ํ ์คํธ ๋๋น) (0) | 2021.07.20 |