[ํผ์ ๊ณต๋ถํ๋ ์ปดํจํฐ ๊ตฌ์กฐ+์ด์์ฒด์ ]05. CPU ์ฑ๋ฅ ํฅ์ ๊ธฐ๋ฒ
๋น ๋ฅธ CPU๋ฅผ ์ํ ์ค๊ณ ๊ธฐ๋ฒ
1. ์ปดํจํฐ ๋ถํ๋ค์ 'ํด๋ญ ์ ํธ'์ ๋ง์ถฐ ์ผ์ฌ๋ถ๋ํ๊ฒ ์์ง์ธ๋ค.
2. CPU๋ '๋ช ๋ น์ด ์ฌ์ดํด'์ด๋ผ๋ ์ ํด์ง ํ๋ฆ์ ๋ง์ถฐ ๋ช ๋ น์ด๋ค์ ์คํํ๋ค.
→ ํด๋ญ ์ ํธ๊ฐ ๋น ๋ฅด๊ฒ ๋ฐ๋ณต๋๋ฉด CPU๋ฅผ ๋น๋กฏํ ์ปดํจํฐ ๋ถํ๋ค์ ๊ทธ๋งํผ ๋น ๋ฅธ ๋ฐ์์ ๋ง์ถฐ ์์ง์ด๊ฒ ๋จ
ํด๋ญ ์๋: ํค๋ฅด์ธ (Hz) ๋จ์๋ก ์ธก์ ๋จ. ํค๋ฅด์ธ (Hz)๋ 1์ด์ ํด๋ญ์ด ๋ฐ๋ณต๋๋ ํ์๋ก
์ฆ, ํด๋ญ์ด '๋-๋ฑ1'ํ๊ณ 1์ด์ ํ ๋ฒ ๋ฐ๋ณต๋๋ฉด 1Hz์ด๊ณ , ํด๋ญ์ด 1์ด์ 100๋ฒ ๋ฐ๋ณต๋๋ฉด 100Hz์
ํ์ง๋ง, ํด๋ญ ์๋๋ฅผ ํ์ ์ด์์ผ๋ก ๋์ด๋ฉด ๋ฐ์ด์ด ์ฌ๊ฐํด์ง๋ ๋ฌธ์ ์กด์ฌํจ
ํด๋ญ ์๋ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ ์ธ์ CPU ์ฑ๋ฅ์ ๋์ผ ์ ์๋ ๋ฐฉ๋ฒ
1. ์ฝ์ด ์ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ
์ฝ์ด(Core): CPU ๋ด์์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ถํ์ผ๋ก ์ฌ๋ฌ ๊ฐ ์์ ์ ์์
์ ํต์ ์ผ๋ก '๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ถํ'์ ์์น์ ์ผ๋ก ํ๋๋ง ์กด์ฌํ์ง๋ง, ์ค๋๋ CPU์๋ '๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ถํ'์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํจ

๋ฉํฐ์ฝ์ด ํ๋ก์ธ์: ์ฌ๋ฌ ๊ฐ์ ์ฝ์ด๋ฅผ ํฌํจํ๊ณ ์๋ CPU
| ์ฝ์ด ์ | ํ๋ก์ธ์ ๋ช ์นญ |
| 1 | ์ฑ๊ธ์ฝ์ด(single-core) |
| 2 | ๋์ผ์ฝ์ด(dual-core) |
| 3 | ํธ๋ฆฌํ์ฝ์ด(triple-core) |
| 4 | ์ฟผ๋์ฝ์ด(quad-core) |
| 6 | ํฅ์ฌ์ฝ์ด(hexa-core) |
| 8 | ์ฅํ์ฝ์ด(octa-core) |
| 10 | ๋ฐ์นด์ฝ์ด(deca-core) |
| 12 | ๋๋ฐ์นด์ฝ์ด(dodeca-core) |
๏นก ๋ฐ๋์ ์ฝ์ด ์์ ๋น๋กํด ์ฐ์ฐ ์๋๊ฐ ์ฆ๊ฐํ์ง๋ ์์! ๋ช ๋ น์ด๋ค์ ๊ฐ๊ฐ์ ์ฝ์ด์๊ฒ ์ ์ ํ๊ฒ ๋ถ๋ฐฐํ๋๋์ ๋ฐ๋ผ ์ฐ์ฐ ์๋๊ฐ ๋ฌ๋ผ์ง
→ ์ํํธ์จ์ด๊ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ์ง ์๊ฑฐ๋ ๋๊ธฐํ ์ค๋ฒํค๋, ๋ฉ๋ชจ๋ฆฌ ๋ณ๋ชฉ ํ์ ๋ฑ์ด ์กด์ฌํ๋ฉด ์ฝ์ด ๊ฐ์ ๋น๋ก๋งํผ ์ฑ๋ฅ ๋์ด๋์ง ์์(์๋ฌ์ ๋ฒ์น)
2. ์ค๋ ๋ ์ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ
์ค๋ ๋์๋ ํ๋์จ์ด์ ์ค๋ ๋์ ์ํํธ์จ์ด์ ์ค๋ ๋๊ฐ ์กด์ฌํจ
1) ํ๋์จ์ด ์ค๋ ๋: ํ๋์ ์ฝ์ด๊ฐ ๋์์ ์ฒ๋ฆฌํ๋ ๋ช ๋ น์ด ๋จ์


- ๋ฉํฐ ์ค๋ ๋ ํ๋ก์ธ์, ๋ฉํฐ์ค๋ ๋ CPU: ํ๋์ ์ฝ์ด๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์๋ ํ๋ก์ธ์
- ๋ฉํฐ์ค๋ ๋ ํ๋ก์ธ์๋ฅผ ์ค์ ๋ก ์ค๊ณํ๋ ์ผ์ ๋งค์ฐ ๋ณต์กํ์ง๋ง, ๊ฐ์ฅ ํฐ ํต์ฌ์ ๋ ์ง์คํฐ์
- ํ๋์ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ธฐ ์ํด ๊ผญ ํ์ํ ๋ ์ง์คํฐ๋ค์ ํธ์์ '๋ ์ง์คํฐ ์ธํธ'๋ผ๊ณ ํ๊ธฐ

- ํ๋์จ์ด ์ค๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์์ ๋ช ์ฝ์ด ๋ช ์ค๋ ๋์ธ์ง ์์ง๋ ๋ชปํ๊ณ ์คํ๋๊ณ ์๋ ์์ ํ๋ฆ์ ํตํด ํ์ ํด ๋ ผ๋ฆฌ ํ๋ก์ธ์๋ผ๊ณ ๋ ๋ถ๋ฆ
- ํ์ดํผ์ค๋ ๋ฉ(Hyper-Threading): ํ๋์ ๋ฌผ๋ฆฌ์ ์ฝ์ด๋ฅผ ์ด์์ฒด์ ๊ฐ ๋ ๊ฐ์ ๋ ผ๋ฆฌ์ ์ฝ์ด(๋ก์ง์ปฌ ํ๋ก์ธ์)๋ก ์ธ์ํ๋๋ก ํ์ฌ ์์ ํจ์จ์ ๋์ด๋ ๊ธฐ์
2) ์ํํธ์จ์ด ์ค๋ ๋: ํ๋์ ํ๋ก๊ทธ๋จ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ ๋จ์

- 1์ฝ์ด 1์ค๋ ๋ CPU๋ ์ฌ๋ฌ ์ํํธ์จ์ด์ ์ค๋ ๋๋ฅผ ๋ง๋ค ์ ์์!
๋ช ๋ น์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
๋ช ๋ น์ด๊ฐ ์ฒ๋ฆฌ๋๋ ๊ณผ์ ์ ๋น์ทํ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๋๋๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ๋๋ ์ ์์
1. ๋ช ๋ น์ด ์ธ์ถ
2. ๋ช ๋ น์ด ํด์
3. ๋ช ๋ น์ด ์คํ
4. ๊ฒฐ๊ณผ ์ ์ฅ
๋ช ๋ น์ด ํ์ดํ๋ผ์ธ
๋์์ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ๊ฒน์ณ ์คํํ๋ ๊ธฐ๋ฒ
์ฆ, ๊ฐ์ ๋จ๊ณ(๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๋)๊ฐ ๊ฒน์น์ง๋ง ์๋๋ค๋ฉด CPU๋ '๊ฐ ๋จ๊ณ๋ฅผ ๋์์ ์คํํ ์ ์์'

๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด, ๋ช ๋ น์ด ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ์ด์ง
ํ์ดํ๋ผ์ธ ์ํ
๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ด ์ฑ๋ฅ ํฅ์์ ์คํจํ๋ ๊ฒฝ์ฐ
1. ๋ฐ์ดํฐ ์ํ: ๋ช ๋ น์ด ๊ฐ์ ์์กด์ฑ์ ์ํด ์ผ๊ธฐ๋จ
- ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์์
- ์ด์ ๋ช ๋ น์ด๋ฅผ ๋๊น์ง ์คํํด์ผ๋ง ๋น๋ก์ ์คํํ ์ ์๋ ๊ฒฝ์ฐ

2. ์ ์ด ์ํ: ํ๋ก๊ทธ๋จ ์นด์ดํฐ์ ๊ฐ์์ค๋ฌ์ด ๋ณํ
- ๋ช ๋ น์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์์ฐจ์ ์ผ๋ก ๊ฒน์ณ์ ์คํํจ
- ๊ฐ์์ค๋ฌ์ด ๋ณํ๊ฐ ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ, ๋์์ ์คํํ๊ณ ์๋ ์์ฐจ์ ์ธ ๋ค์ ๋ช ๋ น์ด๋ค ๋ฌดํจํ๋จ

3. ๊ตฌ์กฐ ์ํ: ์๋ก ๋ค๋ฅธ ๋ช ๋ ์ด๊ฐ ๊ฐ์ CPU ๋ถํ(ALU, ๋ ์ง์คํฐ)๋ฅผ ์ฐ๋ ค๊ณ ํ ๋
์ํผ์ค์นผ๋ผ
CPU ๋ด๋ถ์ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ์ ํฌํจํ ๊ตฌ์กฐ
- ์ค๋๋ ์ ๋ฉํฐ์ค๋ ๋ ํ๋ก์ธ์

- ์ด๋ก ์ ์ผ๋ก๋ ํ์ดํ๋ผ์ธ ๊ฐ์์ ๋น๋กํด์ ์ฒ๋ฆฌ ์๋ ์ฆ๊ฐํ์ง๋ง, ํ์ดํ๋ผ์ธ ์ํ๋์ ์ฆ๊ฐ๋ก ์ธํด ํ์ดํ๋ผ์ธ ๊ฐ์์ ๋น๋กํด ์ฒ๋ฆฌ ์๋๊ฐ ์ฆ๊ฐํ์ง ์์
๋น์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ
ํ์ดํ๋ผ์ธ ์ค๋จ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ช ๋ น์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ์ง ์๋ ๊ธฐ๋ฒ
์ ๋ฐฉ์๋ค์ ๋ชจ๋ ์์ฐจ์ ์ผ๋ก ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์. ์๋ ๊ทธ๋ฆผ์ ์๋ ๋ช ๋ น์ด๋ค์ ํ์ดํ๋ผ์ธ์ ์ด์์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์

์ฌ๊ธฐ์, 3๋ฒ ๋ช ๋ น์ด๋ฅผ ๋ง์ง๋ง์ผ๋ก ์ฎ๊ธฐ๋ฉด ํ๋ก๊ทธ๋จ ์ ์ฒด ๊ฒฐ๊ณผ์๋ ๋ณํ X


์ฆ, ์์กด์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ช ๋ น์ด ์์๋ฅผ ๋ฐ๊ฟ์ ์คํํด๋ ์ ์ฒด ํ๋ก๊ทธ๋จ ์คํ ํ๋ฆ์ ์ํฅ์ด ์์
๋ช ๋ น์ด ์งํฉ ๊ตฌ์กฐ, CISC & RISC
๋ช ๋ น์ด ์งํฉ(๊ตฌ์กฐ, ISA): CPU๊ฐ ์ดํดํ ์ ์๋ ๋ช ๋ น์ด๋ค์ ๋ชจ์, ์ฆ CPU์ ์ธ์ด์ธ ์
ex) ์ธํ CPU ์ปดํจํฐ์์ ๋ง๋ ์คํ ํ์ผ์ ๊ทธ๋๋ก ์์ดํฐ์ ์ฎ๊ฒจ ํน๋ณํ ์ค์ ์์ด ๋ฐ๋ก ์คํํ๋ฉด ์คํ ์ ๋จ
- ๋ช ๋ น์ด๊ฐ ๋ฌ๋ผ์ง๋ฉด, ๋ช ๋ น์ด ํด์ ๋ฐฉ์, ๋ ์ง์คํฐ์ ์ข ๋ฅ์ ๊ฐ์, ํ์ดํ๋ผ์ด๋์ ์ฉ์ด์ฑ ๋ฑ ๋ง์ ๊ฒ๋ค์ด ๋ฌ๋ผ์ง
- ํ๋์จ์ด๊ฐ ์ํํธ์จ์ด๋ฅผ ์ด๋ป๊ฒ ์ดํดํ ์ง์ ๋ํ ์ฝ์
CISC(Complex Instruction Set Computer)
๋ณต์กํ ๋ช ๋ น์ด ์งํฉ์ ํ์ฉํ๋ ์ปดํจํฐ(CPU)
- x86, x86-64๋ CISC ๊ธฐ๋ฐ ๋ช
๋ น์ด ์งํฉ ๊ตฌ์กฐ์
- ํ๋์ ๊ณ ์ฑ๋ฅ x86 ํ๋ก์ธ์๋ค์ ์ ์ธ๋ถ์ ์ผ๋ก CISC ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ๋ฐ์ง๋ง, ๋ด๋ถ์ ์ผ๋ก๋ ์ด๋ฅผ RISC ํํ์ ๋จ์ํ ๋ช ๋ น์ด(u-op)๋ก ์ชผ๊ฐ์ด ํ์ดํ๋ผ์ธ์์ ์คํํ๋ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์ ์ฃผ๋ก ์ฌ์ฉํจ
- ๋ช ๋ น์ด์ ํํ์ ํฌ๊ธฐ๊ฐ ๋ค์ํ ๊ฐ๋ณ ๊ธธ์ด ๋ช ๋ น์ด๋ฅผ ํ์ฉ
- ๋ค์ํ๊ณ ๊ฐ๋ ฅํ ๋ช ๋ น์ด๋ฅผ ํ์ฉ
- ๋ฉ๋ชจ๋ฆฌ ์ต๋ํ ์๋ผ๋ฉฐ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์๋์ ์ผ๋ก ์ ์ ์์ ๋ช ๋ น์ด๋ก๋ ํ๋ก๊ทธ๋จ ์คํ ๊ฐ๋ฅ
- ๋ช
๋ น์ด ํ์ดํ๋ผ์ด๋์ด ๋ถ๋ฆฌํ๋ค๋ ๋จ์ ์กด์ฌ
- ๋ช ๋ น์ด๊ฐ ์๋ ๋ณต์กํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ์ ๋ช ๋ น์ด์ ํฌ๊ธฐ์ ์คํ๋๊ธฐ๊น์ง์ ์๊ฐ์ด ์ผ์ ํ์ง ์์
- ๋ณต์กํ ๋ช ๋ น์ด ๋๋ฌธ์ ๋ช ๋ น์ด ํ๋๋ฅผ ์คํํ๋ ๋ฐ์ ์ฌ๋ฌ ํด๋ญ ์ฃผ๊ธฐ ํ์
- ๋ํ, ์์ฃผ ์ฐ๋ ๋ช ๋ น์ด๋ง ๊ณ์ ์ฐ๊ฒ ๋์ด ๋๋ค์์ ๋ณต์กํ ๋ช ๋ น์ด๋ ์ฌ์ฉ ๋น๋๊ฐ ๋ฎ์
RISC(Reduced Instruction Set Computer)
๋ช ๋ น์ด์ ์ข ๋ฅ๊ฐ ์ ๊ณ , ์งง์ ๊ท๊ฒฉํ๋ ๋ช ๋ น์ด ์ฌ์ฉ
- ๋ช ๋ น์ด ํ์ดํ๋ผ์ด๋์ ์ ๋ฆฌํจ
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ต์ํ(load, store), ๋ ์ง์คํฐ ์ญ๋ถ ํ์ฉ
- ๋ ์ง์คํฐ์ ๊ฐ์๊ฐ ๋ง์ผ๋ฉฐ, ์ฐ์ฐ์ ์ค์ง ๋ ์ง์คํฐ ๊ฐ์๋ง ์ํํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ LOAD์ STORE ๋ช ๋ น์ด๋ก๋ง ์ ํํ๋ Load-Store ๊ตฌ์กฐ ์ฌ์ฉํจ
- ๋ช
๋ น์ด ์ข
๋ฅ๊ฐ CISC๋ณด๋ค ์ ๊ธฐ ๋๋ฌธ์, ๋ ๋ง์ ๋ช
๋ น์ด๋ก ํ๋ก๊ทธ๋จ ๋์์ํด
- ex) CISC๋ ํ ์ค๋ก ๋์์ํฌ ์ ์๋๋ฐ, RISC๋ ์ธ ์ค๋ก ๋์์์ผ์ผํจ
| CISC | RISC |
| ๋ณต์กํ๊ณ ๋ค์ํ ๋ช ๋ น์ด | ๋จ์ํ๊ณ ์ ์ ๋ช ๋ น์ด |
| ๊ฐ๋ณ ๊ธธ์ด ๋ช ๋ น์ด | ๊ณ ์ ๊ธธ์ด ๋ช ๋ น์ด |
| ๋ค์ํ ์ฃผ์ ์ง์ ๋ฐฉ์ | ์ ์ ์ฃผ์ ์ง์ ๋ฐฉ์ |
| ํ๋ก๊ทธ๋จ์ ์ด๋ฃจ๋ ๋ช ๋ น์ด ์๊ฐ ์ ์ | ํ๋ก๊ทธ๋จ์ ์ด๋ฃจ๋ ๋ช ๋ น์ด ์๊ฐ ๋ง์ |
| ์ฌ๋ฌ ํด๋ญ์ ๊ฑธ์ณ ๋ช ๋ น์ด ์ํ | 1ํด๋ญ ๋ด์ธ๋ก ๋ช ๋ น์ด ์ํ |
| ํ์ดํ๋ผ์ด๋ํ๊ธฐ ์ด๋ ค์ | ํ์ดํ๋ผ์ด๋ํ๊ธฐ ์ฌ์ |