๐ ์ปดํจํฐ์ 4๊ฐ์ง ํต์ฌ ๋ถํ
๐ ๋ฉ๋ชจ๋ฆฌ
๋ฉ๋ชจ๋ฆฌ๋ ํ์ฌ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ๋ฐ์ดํฐ(์ปดํจํฐ๊ฐ ์ดํดํ๋ ์ ๋ณด)๋ฅผ ์ ์ฅํ๋ ๋ถํ.
ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ค๋ฉด ๋ฐ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์์ด์ผ ํ๋ค.
์ ์ฅ๋ ๋ช ๋ น์ด์ ๋ฐ์ดํฐ์ ์์น๋ ์ ๋๋์ด ์์ด์ผ ํ๋ค. (address)
๐ CPU
CPU๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ์ฝ์ด๋ค์ด๊ณ , ์ฝ์ด๋ค์ธ ๋ช ๋ น์ด๋ฅผ ํด์ํ๊ณ , ์คํํ๋ ๋ถํ. ์ฃผ์ ๊ตฌ์ฑ ์์ : ALU(Arithmetic Logic Unit), ๋ ์ง์คํฐ, ์ ์ด์ฅ์น(Control Unit)
ALU - ๊ณ์ฐ๊ธฐ
๋ ์ง์คํฐ - CPU ๋ด๋ถ์ ์์ ์์ ์ ์ฅ ์ฅ์น
์ ์ด์ฅ์น - control signal์ ๋ณด๋ด๊ณ ๋ช ๋ น์ด ํด์ ์ฅ์น
๐ ๋ณด์กฐ๊ธฐ์ต์ฅ์น
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณด์กฐํ๋ ์ ์ฅ ์ฅ์น.
๐ I/O Device
ex) ๋ง์ดํฌ, ์คํผ์ปค, ํ๋ฆฐํฐ, ๋ง์ฐ์ค
์ปดํจํฐ ์ธ๋ถ์ ์ฐ๊ฒฐ๋์ด ์ปดํจํฐ ๋ด๋ถ์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ์ฅ์น.
๐ main board & system bus
๋ฉ๋ชจ๋ฆฌ, CPU, ๋ณด์กฐ๊ธฐ์ต์ฅ์น, I/O device๋ ๋ชจ๋ main board(=mother board)๋ผ๋ ํ์ ์ฐ๊ฒฐ๋๋ค.
main board ๋ด๋ถ์ bus๋ผ๋ ํต๋ก๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ๋ถํ๋ค๋ผ๋ฆฌ ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค. ๊ฐ์ฅ ์ค์ํ bus๋ system bus(address bus, data bus, control bus๋ก ๊ตฌ์ฑ)
ex) CPU์ ์๋ ์์(CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ ๋ช ๋ น์ด๋ฅผ ์ฝ์ด ๋ค์ด๊ธฐ ์ํด์) โ CPU๊ฐ control bus๋ก โ๋ฉ๋ชจ๋ฆฌ ์ฝ๊ธฐโ ์ ์ด ์ ํธ๋ฅผ ๋ด๋ณด๋. โ address bus๋ก readํ๊ณ ์ ํ๋ address๋ฅผ ๋ณด๋ด๋. โ memory๋ data bus๋ก CPU๊ฐ ์์ฒญํ ์ฃผ์์ ์๋ ๋ด์ฉ์ ๋ณด๋ธ๋ค.
memory์ ์ด๋ค ๊ฐ์ ์ ์ฅํ ๋) ) โ CPU๊ฐ data bus๋ก memory์ ์ ์ฅํ ๊ฐ์ โ address bus๋ก ์ ์ฅํ address๋ฅผ ๋ณด๋ด๋. โ control bus๋ฅผ ํตํด โ๋ฉ๋ชจ๋ฆฌ ์ฐ๊ธฐโ ์ ์ด ์ ํธ๋ฅผ ๋ด๋ณด๋.
๐ bit
bit๋ 0๊ณผ 1์ ๋ํ๋ด๋ ๊ฐ์ฅ ์์ ์ ๋ณด ๋จ์
1byte = 8bit
1kB = 1,000byte
1MB = 1,000kB
1GB = 1,000MB
1TB = 1,000GB
๐ ASCII code
์์คํค ๋ฌธ์์ ์ํ ๋ฌธ์๋ค์ ๊ฐ๊ฐ 7๋นํธ๋ก ํํ๋๋ฉฐ, 7๋นํธ๋ก ํํ๋ ์ ์๋ ์ ๋ณด์ ๊ฐ์ง์๋ 2์7์ ๊ณฑ๊ฐ. ์ด128๊ฐ.
์์คํค ๋ฌธ์์ ๋์๋ ๊ณ ์ ํ ์๊ฐ ์์คํค ์ฝ๋์ด๋ค.
๐ EUC-KR
EUC-KR์ ์์ฑํ ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก, ํ ๋จ์ด์ 2byte ํฌ๊ธฐ์ ์ฝ๋ ๋ถ์ฌ
BUT ์ ์ด๋ฐ ๊ธ์๋ ํํํ๊ธฐ ์ด๋ ค์. SO ๋ง์ดํฌ๋ก์ํํธ์ CP949
๐ ์ ๋์ฝ๋ & UTF-8
์ ๋์ฝ๋๋ EUC-KR๋ณด๋ค ๋ค์ํ ํ๊ธ์ ํฌํจ, ๋๋ถ๋ถ ๋๋ผ์ ๋ฌธ์, ํน์๋ฌธ์ ๋ฑ์ ์ฝ๋๋ก ํํํ ์ ์๋ ํต์ผ๋ ๋ฌธ์์งํฉ.
UTF-8์ 1~4 byte์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๋ฉฐ, ์ ๋์ฝ๋ ๋ฌธ์์ ๋ถ์ฌ๋ ๊ฐ์ ๋ฒ์์ ๋ฐ๋ผ ๋ช byte๊ฐ ๋ ์ง ๊ฒฐ์ ๋๋ค. (์ ๋์ฝ๋ ๋ฌธ์์ ์ธ์ฝ๋ฉ ๋ฐฉ์์.)
๐ ๊ณ ๊ธ ์ธ์ด & ์ ๊ธ ์ธ์ด
๊ณ ๊ธ ์ธ์ด๋ก ์์ฑ๋ ์์ค code๊ฐ ์คํ๋๋ ค๋ฉด ์ ๊ธ ์ธ์ด(๋ช ๋ น์ด)๋ก ๋ณํ๋์ด์ผ ํ๋ค. ์ ๊ธ ์ธ์ด์๋ ๊ธฐ๊ณ์ด์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์๋ค.
๊ธฐ๊ณ์ด๋ 0๊ณผ 1์ ๋ช ๋ น์ด ๋นํธ๋ก ์ด๋ฃจ์ด์ง ์ธ์ด, ๊ธฐ๊ณ์ด๋ฅผ ์ฝ๊ธฐ ํธํ ํํ๋ก ๋ฒ์ญํ ์ธ์ด๊ฐ ์ด์ ๋ธ๋ฆฌ์ด
๐ ์ปดํ์ผ ์ธ์ด & ์ธํฐํ๋ฆฌํฐ ์ธ์ด
์ปดํ์ผ ์ธ์ด : ์ปดํ์ผ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด (ex. C)
โ ์ปดํ์ผ : ์ปดํ์ผ ์ธ์ด๋ก ์์ฑ๋ ์์ค ์ฝ๋๊ฐ ์ ๊ธ ์ธ์ด๋ก ๋ณํ๋๋ ๊ณผ์
โ ์ปดํ์ผ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋๋ฉด ์์ค code๋ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ object code(์ ๊ธ ์ธ์ด)๋ก ๋ณํ๋๋ค.
์ธํฐํ๋ฆฌํฐ ์ธ์ด : ์ธํฐํ๋ฆฌํธ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด (ex. python)
โ ์ธํฐํ๋ฆฌํฐ : ์์ค ์ฝ๋๋ฅผ 1์ค์ฉ ์ ๊ธ ์ธ์ด๋ก ๋ณํํ์ฌ ์คํํด ์ฃผ๋ ๋๊ตฌ. ์์ค ์ฝ๋ ์ ์ฒด๋ฅผ ์ ๊ธ ์ธ์ด๋ก ๋ณํํ๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์์, ์์ค ์ฝ๋๋ฅผ 1์ค์ฉ ์คํํ๋๊น.
๐ ๋ช ๋ น์ด
Operation Code : ๋ช ๋ น์ด๊ฐ ์ํํ ์ฐ์ฐ (์ฐ์ฐ์)
Operand : ์ฐ์ฐ์ ์ฌ์ฉํ ๋ฐ์ดํฐ ๋๋ ์ฐ์ฐ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์์น (ํผ์ฐ์ฐ์)
๐ Operand
์ฐ์ฐ์ ์ฌ์ฉํ ๋ฐ์ดํฐ ๋๋ ์ฐ์ฐ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์์น (ํผ์ฐ์ฐ์).
operand field์๋ ์ซ์์ ๋ฌธ์ ๋ฑ์ ๋ํ๋ด๋ ๋ฐ์ดํฐ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ register address๊ฐ ์ฌ ์ ์๋ค. address field๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
๐ ์ฐ์ฐ code
(1) ๋ฐ์ดํฐ ์ ์ก
(2) ์ฐ์ /๋ ผ๋ฆฌ ์ฐ์ฐ
(3) ์ ์ด ํ๋ฆ ๋ณ๊ฒฝ
(4) ์ ์ถ๋ ฅ ์ ์ด
๐ address ์ง์ ๋ฐฉ์
operand field์ memory๋ register์ address๋ฅผ ๋ด๋ ์ด์ (์ฐ์ฐ ์ฝ๋ ํ์์ผ๋ก ๋ช ๋ น์ด๋ฅผ ๊ตฌ์ฑํ์ง ์๋ ์ด์ ) : ๋ช ๋ น์ด ๊ธธ์ด ๋๋ฌธ.
(1) Immediate addressing mode : ์ฐ์ฐ์ ์ฌ์ฉํ data๋ฅผ operand field์ ์ง์ ๋ช ์ํ๋ ๋ฐฉ์. ํํํ ์ ์๋ data์ ํฌ๊ธฐ๊ฐ ์์์ง๋ ๋จ์ ์ด ์์ง๋ง, ์ฐ์ฐ์ ์ฌ์ฉํ data๋ฅผ memory๋ register๋ก๋ถํฐ ์ฐพ๋ ๊ณผ์ ์ด ์์ด ์๋๊ฐ ๋น ๋ฆ.
(2) Direct addressing mode : operand field์ ์ ํจ address๋ฅผ ์ง์ ์ ์ผ๋ก ๋ช ์ํ๋ ๋ฐฉ์. ํํ ๊ฐ๋ฅํ data์ ํฌ๊ธฐ๋ ์ปค์ก์ง๋ง, ์ฌ์ ํ ์ ํจ ์ฃผ์๋ฅผ ํํํ ์ ์๋ ๋ฒ์๊ฐ ์ฐ์ฐ ์ฝ๋์ ๋นํธ ์๋งํผ ์ค์ด๋ค์๋ค. (=operand field์ ๊ธธ์ด๊ฐ ์ฐ์ฐ code์ ๊ธธ์ด๋งํผ ์งง์์ ธ ํํํ ์ ์๋ ์ ํจ ์ฃผ์์ ์ ํ์ด ์๊ธธ ์ ์๋ค.)
(3) Indirect addressing mode : ์ ํจ address๋ฅผ operand field์ ๋ช
์ํ๋ค. Direct addressing mode๋ณด๋ค ํํํ ์ ์๋ ์ ํจ ์ฃผ์์ ๋ฒ์๋ ๋ ๋์ด์ก์ง๋ง, 2๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํ์ํ์ฌ ์์ mode๋ค๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ๋๋ฆฐ ๋ฐฉ์.
(4) register addressing mode : direct addressing mode์ ๋น์ทํ๊ฒ ์ฐ์ฐ์ ์ฌ์ฉํ data๋ฅผ ์ ์ฅํ register๋ฅผ operand field์ ์ง์ ๋ช ์ํ๋ ๋ฐฉ์
์ผ๋ฐ์ ์ผ๋ก CPU ์ธ๋ถ์ ์๋ memory๋ณด๋ค CPU ๋ด๋ถ์ ์๋ register์ ์ ๊ทผํ๋ ๊ฒ์ด ๋ ๋น ๋ฅด๋ค. BUT ํํํ ์ ์๋ register size์ ์ ํ
(5) register indirect addressing mode : ์ฐ์ฐ์ ์ฌ์ฉํ data๋ฅผ memory์ ์ ์ฅํ๊ณ , ๊ทธ address๋ฅผ ์ ์ฅํ register๋ฅผ operand field์ ๋ช ์ํ๋ ๋ฐฉ๋ฒ
๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ํ์๊ฐ 1๋ฒ์ด๋ผ indirect addressing mode๋ณด๋ค ๋น ๋ฆ.
**operand field์ ๋ช
์ํ๋ ๊ฐ**
์ฃผ์ ์ง์ ๋ฐฉ์ : ์ฐ์ฐ์ ์ฌ์ฉํ data๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ ์ ํจ ์ฃผ์ : ์ฐ์ฐ์ ์ฌ์ฉํ data๊ฐ ์ ์ฅ๋ ์
<๊ธฐ๋ณธ๋ฏธ์ >
<์ถ๊ฐ๋ฏธ์ >
Stack(ํ์ ์ ์ถ) - PUSH, POP
Queue(์ ์ ์ ์ถ)