์ปดํจํฐ ์์คํ : ํ๋์จ์ด + ์ํํธ์จ์ด ๊ตฌ์ฑ
์ํํธ์จ์ด : ์ด์์ฒด์ (Linux, MacOS, Windows), ์์ฉ ํ๋ก๊ทธ๋จ(์ด์ ์ฒด์ ๋ก ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ๋ค)
4๋ ํ๋์จ์ด : CPU(์ค์์ฒ๋ฆฌ์ฅ์น), Memory, Storage(SSD/HDD(ํ๋๋์คํฌ) ์ ์ฅ๋งค์ฒด), Network
๊ธฐ์กด์๋ ์ด๋ค ํ๋ก๊ทธ๋จ(๋์ ๋ถํ)์ ๋ง๋ค๊ธฐ ์ํด์๋ ํ๋์จ์ด(๋ก์ง)๋ฅผ ๋งค๋ฒ ๊ฐ๊ฐ ๋ง๋ค์ด์ค์ผํ์ โ ๋น์ฉ์ด ๋์ด๋๊ณ , ์์ ์ด ๋ฒ๊ฑฐ๋ก์, ๋ค๋ฅธ ์์ ์ํ ์ ์ค์์น ์ค์น, ์ ์ ์ฌ๋ฐฐ์น ํ์ฌ ๋ฐ์ดํฐ ์ ์ก, ์ ํธ์ฒ๋ฆฌ
์ฐ์ฐ ALU (Arithmetic Logic Unit)
์ ์ด Control Device - I/O Device(์ ์ถ๋ ฅ์ฅ์น), ๋ฉ๋ชจ๋ฆฌ, ALU ๋์ ์ ์ด
ํ๋ก๊ทธ๋จ, ํ๋ก๊ทธ๋จ ์ํ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ (์ ์ฒด ๋ฐ์ดํฐ ์ ์ฅ)
๋ด๋ถ๊ธฐ์ต์ฅ์น(์ฃผ๊ธฐ์ต์ฅ์น) :
์ธ๋ถ๊ธฐ์ต์ฅ์น(๋ณด์กฐ๊ธฐ์ต์ฅ์น) :
0๊ณผ 1๋ก ์ปค๋ฎค๋์ผ์ด์ , ์ซ์ ํํ ๊ฐ๋ฅ, ๋ฌธ์ ํํ ๊ฐ๋ฅ, ์ฐ์ฐ ๊ฐ๋ฅ
๋นํธ : 0 or 1 ๋ก ํ๋ก๊ทธ๋จ์ด ๋์
and (์ง๋ ฌ)/ or(๋ณ๋ ฌ) ๋ ผ๋ฆฌ ์ฐ์ฐ (์กฐ๊ฑด๋ฌธ)
โย nand / nor
โ0๊ณผ1๋ก ๋นํธ๋ฅผ ์ฎ์ด์ ๋ฌธ์, ์ซ์ ์๋ฏธ ๋ถ์ฌ ๊ฐ๋ฅ
์ธํ์ ๋ฐ๋ผ ์์ํ์ด ํ๋ก๋ฅผ ๋ฐ๋ผ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋์ = ๋ ผ๋ฆฌ์ฐ์ฐ ๊ตฌ์ฑ ๊ฐ๋ฅ โ ๋ ผ๋ฆฌ ์ฐ์ฐ ๊ฐ๋ฅํ ํ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅ
๋ถ์ธ ๋์์ : ํ๋์จ์ด๋ฅผ ๊ตฌ์ฑํด์ ์ข ๋ ๋ณต์กํ ๊ตฌ์ฑ์ ํ๋ ค๋ฉด ๋ง์ ๊ฒ์ดํธ๋ค์ด ํ์ํ๋ฐ, ์ด๊ฑธ ๋ ๊ฐ๋จํ ํ์์ผ๋ก ํํํ ๊ฒ
(์ด์ง์์ ๋ง์ )
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1 // ๋ ผ๋ฆฌ ์ฐ์ฐ์ด or ์ฐ์ฐ๊ณผ ๋์ผ
1 + 1 = 0 โ ํ์ง๋ง ๋ค์ ์๋ฆฟ์๋ฅผ 1์ ๋ํด์ผ ํจ (carry ๋นํธ) โ 10
, Output ๊ฐ์ด 0๊ณผ 1๋ฅผ ๋ฐ๋ณตํ๋ ํ๋ก
์ ์์ ๋ฐ์์ ๋๋ง๋ค CPU๊ฐ ๋ชจ๋ ๋์์ ํ ๋ฒ์ ์ํํจ
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์กฐํฉ ๋ ผ๋ฆฌ ํ๋ก โ> ์ด๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ตฌ์ฑ
์ค์์น๋ฅผ ์ผ๊ณ ๋๊ธฐ๋ฅผ ์ ์ฅ ๊ฐ๋ฅ โ ์ด์ ์ ์ ๊ธฐ๋ฅผ ์ผ๊ณ ๋๊ธฐ๋ผ๋ ์ฌ์ค์ ํ๋ก๊ฐ ๊ธฐ์ตํ ์ ์๊ฒ ํจ
๐ก on - ์ต๊ทผ์ ์ฒซ ๋ฒ์งธ๊ฐ ์ผ์ก์์
๐ก off - ์ต๊ทผ์ ๋ ๋ฒ์งธ๊ฐ ๊บผ์ก์์
R-S(Rset-Set) flip-flop, NOR Gate
Q = output
= Q์ ๋ฐ๋๊ฐ
S์ R์ด ๋์์ 1์ธ ๊ฑด ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ง์ด ์ ๋จ
Level-triggered flip-flop
D-type flip-flop, ๋ ๊ฐ์ input(RS)์ ํ๋์ input(Data)์ผ๋ก ๋ฐ๊ฟ, 1์ด ๋๋ฉด ํ๋๋ ๋นํธ๊ฐ ํด๋ญ์ด 1์ด ๋๋ ์๊ฐ ์ ์ฅ์ด ๋จ, ํ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์(์ ๊ฐ์ฐ๊ธฐ์ ๋น์ท)
Level-triggered(Hold that Bit๊ฐ 1์ผ ๋๋ง=ํน์ ํ ์ผ์ ํ ํด๋ญ, ๋ ๋ฒจ์ด ํ ๋๋ง)D-type(๋ฐ์ดํฐ ์ ์ฅ) flip-flop ,
๋ ๋ฒจ์ ๋ง์ถฐ ํ๋ฆฝํ๋กญ์ด ๋์ํ ์ ์๊ฒ๋ ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ๋ง๋ค ์ ์๋ค โ ์ด๋ฌํ ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ์ด์ฉํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ตฌ์ฑํจ
RAM array (8x1 Ram์ ํ๋์ฉ ์ถ๊ฐโ8x2, 16x1 = ๋จ์ ์ฌ๋ฌ ๊ฐ ์ถ๊ฐ = m * n RAM array)
8 x 2 RAM array (16๊ฐX ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ฐ๊ณ ํ ๋ฒ์ ์ฝ์)
๋ฐ์ดํฐ 8๊ฐ ์ ์ฅ, ์ฝ์ โ ๊ฐ ๋ฐ์ดํฐ 2bits
16 x 1 RAM array = 8 x 2 RAM array๊ตฌ์กฐ + select, 1-to2 decoder/ 2-to-1 selector ์ถ๊ฐ
๋ฐ์ดํฐ 16๊ฐ ์ ์ฅ, ์ฝ์โ ๊ฐ ๋ฐ์ดํฐ 1bits (๋ฐ์ดํฐ ๊ณต๊ฐ 16๊ฐ ์ค์ ํ๋)
64K RAM
2์ 16์น(์ฃผ์) X 8 bits(๋ฐ์ดํฐ) โ 65,536๊ฐ์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ
CPU ์ ๋ง์ ๊ธฐ๊ธฐ โ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ฃ์ด์ ๊ณ์ฐํ๋ ๊ฒ ์๋๋ผ ํ๋์ฉ ๋ฃ์ด์ ์ถ์
clear(๊ณ์ฐ์ ์ํ ์ถ๊ฐ ์ค์์น) = 1 โ Q output = 0 ; f-f ๊ฐ์ ์ญ์
CPU ์, ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์์ ์ ์ฅ๊ณต๊ฐ = Register ์ ์ฅ ๊ณต๊ฐ (1 cycle),
๋ฉ๋ชจ๋ฆฌ๊น์ง ๋ฟ๊ธฐ ์ํด ์๋์ ์ผ๋ก ๋ง์ ์ธ์ดํด ํ์
โ ํด๋ญ์ด ๊ณ์ ํ๊ธฐ์ง๋ง ์ค๊ฐ์ ๋ค๋ฅธ ๊ณ์ฐ ์ํ์ด ๋๋์ง(๋ฐ์ดํฐ๊ฐ ์์ผ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋๊น)
โ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ ์ง์คํฐ, ์บ์ฌ์๋ ์ ์ฅ (CPU๋ ๊ฐ๊น์ง๋ง ๊ณต๊ฐ์ ์์)
โ ๋จ๊ณ๋ณ๋ก CPU๊ฐ ํ์ธ
*SSD(10us), HDD(10ms) - ๋จ์๊ฐ ๋ค๋ฅธ ์ ์ฅ๋งค์ฒด์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฑด ์๊ฐ ์ค์ง๊ฒ ๊ฑธ๋ฆผ
*์ด์ ๋ธ๋ฆฌ์ด(Assembly์ธ์ด), CPU์ ๊ฐ์ฅ ๊ฐ๊น์ด, ์ ์ฌํ ๊ธฐ๊ณ์ด. ์์ ํ CPU๊ฐ ๋์ํ๋ ๊ฒ์ฒ๋ผ ๊ตฌ์ฑ
ํด๋ญ์ด ํ๊ธธ ๋๋ง๋ค 1์ฉ ์ฆ๊ฐํ๋ ๊ธฐ๋ฅ์ ๋ ์ง์คํฐ
Control Panel;
(Takeover ์ค์์น = 1) ์์ฐจ์ ์ผ๋ก ํน์ ์ซ์๋ฅผ ์จ๋ฃ์ โ
(Takeover ์ค์์น = 0) = ์ปจํธ๋กค ํจ๋์์๋ ๋์ด์ ๋จ ์์ ์๋ ๋ด๋ถ ๋ถํ์ ์ ์ดํ์ง ์์ โ
PC์ clear ์ค์์น(= ์ด๊ธฐํ ์ค์์น)๊ฐ 0์ด ๋๋ฉด(=pc๊ฐ ์ด๊ธฐํํ๊ณ ์ฃผ์๊ฐ์ accumulator์ ๋ฃ์ด์ฃผ๋ฉด ์ฃผ์๊ฐ์ ์ซ์๊ฐ ๋ค์ด๊ฐ โ
๋ค์ ํด๋ญ ํ๊น โ
pc๊ฐ 1 ์ฆ๊ฐ โ
ํด๋น ์ฃผ์๊ฐ์ ์ฐพ์์ ๋ค์ ์ซ์๊ฐ ๋ค์ด๊ฐ โ
์ดํ๋ฎฌ๋ ์ดํฐ์์ ํด๋น ์ซ์๋ฅผ ๋ํจ
๋ด๊ฐ ์ํ๋ ์์น์ ์์ฐจ์ ์ผ๋ก ๋ํ๊ณ ์ถ์ ์ซ์๋ฅผ ๋ฃ์ผ๋ฉด ํ๋ก ๋ณ๊ฒฝ ์์ด ์ํ๋ ๊ณ์ฐ(accumulator)์ ํ ์ ์๋ค !
*ํ๋ก ๋ณ๊ฒฝ ์์ด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์์ฐจ์ ์ผ๋ก ๊ธฐ์ฌํ๋ฉด ๋๋ค. (์ฝ๋๋ ์์์๋ถํฐ ๋ฐ์ผ๋ก ์คํ๋จ)
๋ช ๋ น์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฃ๊ณ CPU๊ฐ ํ๋์ฉ ๊ทธ ๋ช ๋ น์ ์ํํ๊ฒ๋๋ง ํ๋ฉด ํ๋ก๋ ๊ทธ๋๋ก ๋๊ณ ์ฐ๋ฆฌ๋ ๋ช ๋ น๋ง ๋ค๋ฅด๊ฒ ์ง์ ์ํ๋ ๊ธฐ๋ฅ์ ์ํํ๊ฒ๋ ํ๋ค.
Ram ๋ถ๋ฆฌ โ ๋ช ๋ น ์๋ฏธ ๊ฐ ์์ฐจ์ ์ผ๋ก โ ์ฝ๋ ์คํ ๊ฐ๋ฅ
Load, Add, Store โ cpuํํ ๋ช ๋ น ๋ด๋ฆผ โ ๊ธฐ๋ฅ์ ๋ํ ์๋ฏธ ๊ฐ์ด ํ์ (๋ช ๋ น ์๋ฏธ ์ซ์๋ฅผ ๋ง๋ค๊ณ , ์ฃผ์์ ๋ง๋ ์ฝ๋๋ฅผ ๋ฃ์)
๋ช ๋ น ์ซ์ : Instruction Code, Operation Code โ ๋๋ โopcodeโ
ํ๋ก๋ฅผ ์ถ๊ฐํด ๊ฐ๊ฐ์ ๋ช ๋ น ๋๋ก ๋์ํ ์ ์๊ฒ ๊ตฌ์ฑํ CPU = intel CPU, ARM CPU ๋ฑ = opcode ์ ๊ณต
์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ๋ธ๋ฆฌ์ด๋ก ํด๋น CPU์์ ๋ช ๋ น ๋์์ ํ๊ฒ๋ ํ๋ก๊ทธ๋๋ฐ โ ๋ณต์ก ์ฝ๋ ์์ฑ ์ด๋ ค์
๐ก ๊ทธ๋์ !
๋ด๋ถ์ ์ผ๋ก ์ปดํ์ผ์ ํตํด opcode๋ก ๋ณํ, CPU์๊ฒ ๋ช
๋ น
โ ์ฐ๋ฆฌ๋ opcode๋ฅผ ๋ชฐ๋ผ๋ ํ๋ก๊ทธ๋จ์ ์งค ์ ์๋ค.
= ํ์ฌ์ Programing !!
Instruction Set, ์ฝ๋(๋ช ๋ น์ด+๋ฐ์ดํฐ)
*CPU ๊ธฐ๋ณธ ์คํ ๊ตฌ์กฐ ; ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ๋๋ ์ธ์๋ค ํฌํจ ๋ช ๋ น๋ค์ ์ฃผ์๋ง๋ค ์ ์ฅํ๊ณ , PC๋ฅผ ํด๋น ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ์ฌ ํด๋น ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ๋ช ๋ น์ด๋ก ์คํํจ
Instruction Fetch, ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ ๋ช ๋ น์ด๋ฅผ CPU๋ก ๊ฐ์ ธ์ด
PC๊ฐ ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ฅผ MAR์ ๋ณด๋ โ ๊ทธ ์ฃผ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ๊ณ MBR์ ๋ณด๋ โ ๋ค์ ๊ทธ๊ฑธ IR์ ์ ์ฅ โ ๋ค์ ๋ช ๋ น ๊ฐ๋ฆฌํค๋๋ก PC ์ฃผ์๊ฐ ์ฆ๊ฐ
Instruction Decode, IR์์ ์ธ์ถํ ๋ช ๋ น์ด์ ํด๋น ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ณ , ํด๋ (OP ์ฝ๋ ํด์)
Instruction Execution, ๋ช ๋ น์ด ์คํ MAR ACC(๊ฐ์ฐ๊ธฐ)์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ฐ โ ACC์ ๋ฐ์ดํฐ ์ ์ฅ
Write Back, ์ถ๋ ฅ๋ ์คํ ๊ฒฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ์ ์ฅ
ํ๋์ ์์
์ ํ์ํ ์ผ์ ์ธ๋ถ์ ์ผ๋ก ๋๋์ด์ ๋์์ ๋ค๋ฅธ ์ธ๋ถ์์
์ ์คํํ๋ ๊ธฐ๋ฒ
** ์ฌ์ดํด : ํด๋ญ์ด ํ ๋ฒ ํ ๋, 5cycle = 5๋จ๊ณ 16cycle = 16๋จ๊ณ