Basic computer organization & design
์ปดํจํฐ ๊ตฌ์กฐ ์ข ํฉ ๊ณต๋ถ ๋ ธํธ
1. ์ํํธ์จ์ด, ํ๋ก๊ทธ๋จ, ๋ช ๋ น์ด, ๋ง์ดํฌ๋ก ์ฐ์ฐ์ ๊ด๊ณ
- ์ํํธ์จ์ด: ํ๋ก๊ทธ๋จ์ ์งํฉ
- ํ๋ก๊ทธ๋จ: ๋ช ๋ น์ด์ ์์ํ๋ ์งํฉ
- ๋ช ๋ น์ด: ๋ง์ดํฌ๋ก ๋ช ๋ น์ด์ ์์ํ๋ ์งํฉ
- ๋ง์ดํฌ๋ก ๋ช ๋ น์ด: ์ปดํจํฐ๊ฐ ํน์ ์ฐ์ฐ์ ์ํํ๋๋ก ์ง์ํ๋ ๋นํธ ๊ทธ๋ฃน
์์: ์ํํธ์จ์ด โ ์๋ ํ๋ก์ธ์ ํ๋ก๊ทธ๋จ โ ๋ฌธ์ ์ ์ฅ ๊ธฐ๋ฅ ๋ช ๋ น์ด โ โํ์ผ์ ๋์คํฌ์ ์ฐ๊ธฐโ ๋ง์ดํฌ๋ก ๋ช ๋ น์ด โ โ๋์คํฌ ์นํฐ ์ฃผ์ ์ค์ โ, โ๋ฐ์ดํฐ ๋ฒํผ ์ค๋นโ, โ๋์คํฌ ์ฐ๊ธฐ ์ ํธ ์ ์กโ ๋ฑ
2. ๋ช ๋ น์ด ํ์๊ณผ ์คํ ๊ณผ์ ์์ธ ๋ถ์
2.1 ๋ช ๋ น์ด ํ์
- ์ฐ์ฐ ์ฝ๋(Op-code): ์ํํ ์ฐ์ฐ ์ง์ , ํผ์ฐ์ฐ์์ ์ฃผ์ ์ง์
- ์: ADD, SUB, MUL, DIV, LOAD, STORE ๋ฑ
- ํผ์ฐ์ฐ์(Operand): ์ฐ์ฐ๋ ๋ฐ์ดํฐ
- ์ง์ ๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์, ๋ ์ง์คํฐ ๋ฒํธ ๋ฑ
2.2 16๋นํธ ๋ช ๋ น์ด ํ์ ์์ธ ๋ถ์
| 4๋นํธ | 1๋นํธ | 11๋นํธ |
| Op-code | Mode(I) | Address |
| 0101 | 0 | 00000001010 |
์ด ์์์์:
- Op-code 0101: โLOADโ ์ฐ์ฐ
- Mode 0: ์ง์ ์ฃผ์ ์ง์
- Address 00000001010: ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 10 (2์ง์๋ก 1010)
2.3 LOAD ๋ช ๋ น์ด ์คํ ๊ณผ์ ์์ธ
- Fetch ๋จ๊ณ:
T0: AR โ PC (PC์ ๊ฐ์ AR์ ๋ณต์ฌ) T1: IR โ M[AR], PC โ PC + 1 (๋ฉ๋ชจ๋ฆฌ์์ ๋ช ๋ น์ด๋ฅผ IR๋ก ๊ฐ์ ธ์ค๊ณ , PC ์ฆ๊ฐ)
- Decode ๋จ๊ณ:
T2: AR โ IR(0-11), I โ IR(15) (์ฃผ์ ๋ถ๋ถ์ AR์, ๊ฐ์ ๋นํธ๋ฅผ I์ ๋ณต์ฌ)
- Execute ๋จ๊ณ:
T3: (์ง์ ์ฃผ์ ์ง์ ์ด๋ฏ๋ก ์ด ๋จ๊ณ ์๋ต) T4: DR โ M[AR] (๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 10์ ๋ด์ฉ์ DR์ ๋ก๋) T5: AC โ DR, SC โ 0 (DR์ ๋ด์ฉ์ AC์ ๋ณต์ฌ, ์ํ์ค ์นด์ดํฐ ์ด๊ธฐํ)
์ค์ ๊ฐ ์์:
- PC ์ด๊ธฐ๊ฐ: 100
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 100์ ๋ด์ฉ: 0101 0 00000001010 (LOAD 10)
- ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 10์ ๋ด์ฉ: 1111000011110000
์คํ ํ:
- AC์๋ 1111000011110000์ด ์ ์ฅ๋จ
- PC๋ 101์ด ๋จ
3. ๊ฐ๋จํ ์ ์ฅ ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ
- AC (๋์ฐ๊ธฐ): ๋ ์ง์คํฐ + ์ฐ์ ์ฐ์ฐ ๊ธฐ๋ฅ
- ์ฃผ์ ๊ธฐ๋ฅ: ๋ฐ์ดํฐ ์ ์ฅ, ์ฐ์ ๋ฐ ๋ ผ๋ฆฌ ์ฐ์ฐ ์ํ
- ์: AC์ ์ ์ฅ๋ ๊ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ ๊ฐ์ ๋ํ๋ ์ฐ์ฐ
4. ์ฃผ์ ์ง์ ๋ชจ๋ ์์ธ ์์
4.1 ์ง์ ์ฃผ์ ์ง์ vs ๊ฐ์ ์ฃผ์ ์ง์
์ง์ ์ฃผ์ ์ง์ (I = 0):
๋ช
๋ น์ด: LOAD 500
์คํ: AC โ M[500]
๊ฐ์ ์ฃผ์ ์ง์ (I = 1):
๋ช
๋ น์ด: LOAD @500
์คํ:
1. ์์ โ M[500]
2. AC โ M[์์]
์์:
- M[500] = 1000
- M[1000] = 1234567890
๊ฒฐ๊ณผ:
- ์ง์ ์ฃผ์ ์ง์ : AC = M[500] = 1000
- ๊ฐ์ ์ฃผ์ ์ง์ : AC = M[1000] = 1234567890
4.2 ์ ํจ ์ฃผ์ ๊ณ์ฐ ์์ธ ๊ณผ์
์ง์ ์ฃผ์ ์ง์ :
- IR์์ ์ฃผ์ ํ๋ ์ถ์ถ: IR(0-11)
- ์ ํจ ์ฃผ์ = IR(0-11)
๊ฐ์ ์ฃผ์ ์ง์ :
- IR์์ ์ฃผ์ ํ๋ ์ถ์ถ: IR(0-11)
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ: M[IR(0-11)]
- ์ ํจ ์ฃผ์ = M[IR(0-11)]
5. ๋ ์ง์คํฐ
- AC (Accumulator): 16๋นํธ, ์ฐ์ ๋ฐ ๋ ผ๋ฆฌ ์ฐ์ฐ ๊ฒฐ๊ณผ ์ ์ฅ
- DR (Data Register): 16๋นํธ, ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ ๊ตํ
- TR (Temporary Register): 16๋นํธ, ์์ ๋ฐ์ดํฐ ์ ์ฅ
- IR (Instruction Register): 16๋นํธ, ํ์ฌ ์คํ ์ค์ธ ๋ช ๋ น์ด ์ ์ฅ
- PC (Program Counter): 12๋นํธ, ๋ค์ ์คํํ ๋ช ๋ น์ด์ ์ฃผ์ ์ ์ฅ
- AR (Address Register): 12๋นํธ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ง์
- INPR (Input Register): 8๋นํธ, ์ ๋ ฅ ๋ฐ์ดํฐ ์ ์ฅ
- OUTR (Output Register): 8๋นํธ, ์ถ๋ ฅ ๋ฐ์ดํฐ ์ ์ฅ
๋ฉ๋ชจ๋ฆฌ ์ ๋: 4K x 16 ๋นํธ
- ์ด 4096๊ฐ์ ์๋ (2^12 = 4096)
- ๊ฐ ์๋๋ 16๋นํธ
6. ๋ช ๋ น์ด ํ์ ์ ํ
- ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ช
๋ น์ด
- ์: LOAD, STORE, ADD, SUB
-
ํ์: Op-code I Address
- ๋ ์ง์คํฐ ์ฐธ์กฐ ๋ช
๋ น์ด
- ์: CLEAR, INCREMENT, COMPLEMENT
-
ํ์: Op-code Register specifier
- I/O ๋ช
๋ น์ด
- ์: INPUT, OUTPUT
-
ํ์: Op-code Device address
7. ๋ช ๋ น์ด ์ธํธ (์ต์ ๋ช ๋ น์ด ์ธํธ)
์ฃผ์ ๋ช ๋ น์ด ์ค๋ช :
- AND: AC โ AC AND M[X]
- ADD: AC โ AC + M[X]
- LDA: AC โ M[X]
- STA: M[X] โ AC
- BUN: PC โ X
- BSA: M[X] โ PC, PC โ X+1
- ISZ: M[X] โ M[X]+1, if M[X]=0 then PC โ PC+1
8. ์ ์ด ์ฅ์น
๊ตฌ์ฑ ์์ ์์ธ ์ค๋ช :
- IR (๋ช ๋ น์ด ๋ ์ง์คํฐ): ํ์ฌ ์คํ ์ค์ธ ๋ช ๋ น์ด ์ ์ฅ
- SC (์ํ์ค ์นด์ดํฐ): ๋ช ๋ น์ด ์คํ ๋จ๊ณ ์ถ์
- ๋์ฝ๋: IR์ ์ฐ์ฐ ์ฝ๋๋ฅผ ํด์ํ์ฌ ํ์ํ ์ ์ด ์ ํธ ์์ฑ
- ์ ์ด ๋ ผ๋ฆฌ ๊ฒ์ดํธ: ๋์ฝ๋ ์ถ๋ ฅ๊ณผ ํ์ด๋ฐ ์ ํธ๋ฅผ ์กฐํฉํ์ฌ ์ต์ข ์ ์ด ์ ํธ ์์ฑ
๋์ ์์:
- IR์ โLOAD 1000โ ๋ช ๋ น์ด ์ ์ฅ
- ๋์ฝ๋๊ฐ โLOADโ ์ฐ์ฐ ํด์
- SC๊ฐ ๊ฐ ๋จ๊ณ ์งํ (๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ค์ โ ๋ฐ์ดํฐ ์ฝ๊ธฐ โ AC์ ์ ์ฅ)
- ์ ์ด ๋ ผ๋ฆฌ ๊ฒ์ดํธ๊ฐ ๊ฐ ๋จ๊ณ์ ํ์ํ ์ ํธ ์์ฑ
9. ๋ช ๋ น์ด ์ฌ์ดํด
์์ธ ๋จ๊ณ:
- Fetch: PC์ ์ฃผ์์์ ๋ช ๋ น์ด๋ฅผ IR๋ก ๊ฐ์ ธ์ด
- Decode: IR์ ๋ช ๋ น์ด๋ฅผ ํด์
- Effective Address ๊ณ์ฐ: ๊ฐ์ ์ฃผ์ ์ง์ ์ ์ํ
- Execute: ๋ช ๋ น์ด ์คํ
- Interrupt ์ฒดํฌ: ์ธํฐ๋ฝํธ ๋ฐ์ ์ ์ฒ๋ฆฌ
ํ์ด๋ฐ ๋ค์ด์ด๊ทธ๋จ ์์ (Fetch & Decode):
T0: AR โ PC
T1: IR โ M[AR], PC โ PC + 1
T2: Decode IR, AR โ IR(Address), I โ IR(I-bit)
T3: If (I == 1) then AR โ M[AR]
T4-T7: Execute instruction
10. ์ฐ์ ์ฐ์ฐ ๋ช ๋ น์ด ์คํ ๊ณผ์ ์์ธ
10.1 ADD ๋ช ๋ น์ด ์คํ ๊ณผ์
๋ช ๋ น์ด: ADD 300 (AC์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 300์ ๋ด์ฉ์ ๋ํจ)
์คํ ๊ณผ์ :
- Fetch & Decode (T0-T2): ์ผ๋ฐ์ ์ธ ๊ณผ์
- Execute:
T3: (์ง์ ์ฃผ์ ์ง์ ์ด๋ฏ๋ก ์๋ต) T4: DR โ M[300] (๋ฉ๋ชจ๋ฆฌ 300๋ฒ์ง ๋ด์ฉ์ DR์ ๋ก๋) T5: AC โ AC + DR, E โ Cout (๋ง์ ์ํ, ์ค๋ฒํ๋ก์ฐ ํ์ธ)
์์:
- AC ์ด๊ธฐ๊ฐ: 1010 1010 1010 1010
- M[300]: 0101 0101 0101 0101
๊ณ์ฐ ๊ณผ์ :
1010 1010 1010 1010 (AC)
+ 0101 0101 0101 0101 (DR)
-----------------------
1111 1111 1111 1111 (๊ฒฐ๊ณผ)
๊ฒฐ๊ณผ:
- AC = 1111 1111 1111 1111
- E = 0 (์ค๋ฒํ๋ก์ฐ ์์)
10.2 ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ์์
์์:
- AC ์ด๊ธฐ๊ฐ: 1000 0000 0000 0000 (-32768 in 2โs complement)
- M[300]: 1000 0000 0000 0000 (-32768 in 2โs complement)
๊ณ์ฐ ๊ณผ์ :
1000 0000 0000 0000 (AC)
+ 1000 0000 0000 0000 (DR)
-----------------------
0000 0000 0000 0000 (๊ฒฐ๊ณผ, ์ค๋ฒํ๋ก์ฐ ๋ฐ์)
๊ฒฐ๊ณผ:
- AC = 0000 0000 0000 0000
- E = 1 (์ค๋ฒํ๋ก์ฐ ๋ฐ์)
11. ๋ถ๊ธฐ ๋ช ๋ น์ด ์์ธ ๋ถ์
11.1 BUN (Branch Unconditionally) ๋ช ๋ น์ด
๋ช ๋ น์ด ํ์: BUN 1000
์คํ ๊ณผ์ :
- Fetch & Decode (T0-T2): ์ผ๋ฐ์ ์ธ ๊ณผ์
- Execute:
T3: (์ง์ ์ฃผ์ ์ง์ ์ด๋ฏ๋ก ์๋ต) T4: PC โ AR (AR์๋ ์ด๋ฏธ ๋ชฉ์ ์ง ์ฃผ์ 1000์ด ์ ์ฅ๋์ด ์์)
๊ฒฐ๊ณผ: ๋ค์์ ์คํ๋ ๋ช ๋ น์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 1000์์ ๊ฐ์ ธ์ด
11.2 BSA (Branch and Save Address) ๋ช ๋ น์ด
๋ช ๋ น์ด ํ์: BSA 2000
์คํ ๊ณผ์ :
- Fetch & Decode (T0-T2): ์ผ๋ฐ์ ์ธ ๊ณผ์
- Execute:
T3: (์ง์ ์ฃผ์ ์ง์ ์ด๋ฏ๋ก ์๋ต) T4: M[AR] โ PC, AR โ AR + 1 (ํ์ฌ PC ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ 2000์ ์ ์ฅ, AR์ 2001๋ก ์ฆ๊ฐ) T5: PC โ AR (PC๋ฅผ 2001๋ก ์ค์ )
์์:
- ํ์ฌ PC = 1500
- ๋ช ๋ น์ด: BSA 2000
๊ฒฐ๊ณผ:
- M[2000] = 1501 (๋ค์ ๋ช ๋ น์ด ์ฃผ์ ์ ์ฅ)
- PC = 2001 (์๋ธ๋ฃจํด์ ์ฒซ ๋ช ๋ น์ด ์ฃผ์)
12. I/O ๊ตฌ์ฑ ์์ธ
FGI (Input Flag), FGO (Output Flag) ๋์:
- FGI:
- ์ ๋ ฅ ์ค๋น ์ 1๋ก ์ค์
- ๋ฐ์ดํฐ ์ฝ์ ๋ 0์ผ๋ก ์ด๊ธฐํ
- FGO:
- ์ถ๋ ฅ ์ค๋น ์ 1๋ก ์ค์
- ๋ฐ์ดํฐ ์ธ ๋ 0์ผ๋ก ์ด๊ธฐํ
12.1 I/O ๋ช ๋ น์ด ์์ธ ์คํ ๊ณผ์
INP (Input) ๋ช ๋ น์ด:
1. AC(0-7) โ INPR (INPR์ 8๋นํธ๋ฅผ AC์ ํ์ 8๋นํธ๋ก ์ ์ก)
2. AC(8-15) โ 0 (AC์ ์์ 8๋นํธ๋ฅผ 0์ผ๋ก ์ค์ )
3. FGI โ 0 (์
๋ ฅ ํ๋๊ทธ ์ด๊ธฐํ)
OUT (Output) ๋ช ๋ น์ด:
1. OUTR โ AC(0-7) (AC์ ํ์ 8๋นํธ๋ฅผ OUTR๋ก ์ ์ก)
2. FGO โ 0 (์ถ๋ ฅ ํ๋๊ทธ ์ด๊ธฐํ)
I/O ์ฒ๋ฆฌ ๋ฐฉ์:
- ํ๋ก๊ทธ๋จ ์ ์ด I/O ๋ฐฉ์
- ์ธํฐ๋ฝํธ I/O ๋ฐฉ์: IEN (์ธํฐ๋ฝํธ ํ์ฑํ ํ๋ฆฝํ๋กญ) ์ฌ์ฉ
- DMA (Direct Memory Access) ๋ฐฉ์
13. ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ์์ธ
13.1 ์ธํฐ๋ฝํธ ์ฌ์ดํด
์ธํฐ๋ฝํธ ์ฌ์ดํด ์์:
T0ยดT1ยดT2ยด (IEN)(FGI+FGO) : R โ 1
RT0 : AR โ 0, TR โ PC
RT1 : M[AR] โ TR, PC โ 0
RT2 : PC โ PC+1, IEN โ 0, R โ 0, SC โ 0
13.2 ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ์์ธ ์์
์๋๋ฆฌ์ค:
- ํ๋ก๊ทธ๋จ ์คํ ์ค (PC = 5000)
- I/O ์ฅ์น์์ ์ธํฐ๋ฝํธ ๋ฐ์
- ํ์ฌ ๋ช ๋ น์ด ์๋ฃ ํ ์ธํฐ๋ฝํธ ์ฌ์ดํด ์์
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๊ณผ์ :
1. R โ 1 (์ธํฐ๋ฝํธ ํ๋๊ทธ ์ค์ )
2. AR โ 0, TR โ PC (PC ๊ฐ 5000์ TR์ ์์ ์ ์ฅ)
3. M[0] โ TR (๋ฉ๋ชจ๋ฆฌ ์ฃผ์ 0์ ๋ณต๊ท ์ฃผ์ 5000 ์ ์ฅ)
4. PC โ 1 (์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด ์ฃผ์, ๊ฐ์ )
5. ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด ์คํ
6. ๋ฃจํด ์ข
๋ฃ ์ M[0]์ ๊ฐ์ PC์ ๋ก๋ํ์ฌ ์๋ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ณต๊ท
14. ์ ์ด ์ ๋ ์ค๊ณ
14.1 ๋ ์ง์คํฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ ์ด
์์ (AR ์ ์ด):
LD(AR) = RยดT0 + RยดT2 + D7ยดIT3
CLR(AR) = RT0
INR(AR) = D5T4
๋ฉ๋ชจ๋ฆฌ ์ฝ๊ธฐ ์ฐ์ฐ:
Read = RยดT1 + Dยด7I T3 + (D0+D1+D2+D6)T4
14.2 ํ๋ฆฝํ๋กญ ์ ์ด
์์ (IEN ์ ์ด):
pB7 : IEN โ 1
pB6 : IEN โ 0
RT2 : IEN โ 0
14.3 ๊ณตํต ๋ฒ์ค ์ ์ด
7๊ฐ ์ฅ์น์ ๋ํ ์ธ์ฝ๋ ์ ๋ ฅ ๋ก์ง ์ค๊ณ:
X1 = D4T4 + D5T5 (AR์ด ๋ฒ์ค๋ฅผ ์ฌ์ฉํ ๋)
X7 = RยดT1 + Dยด7IT3 + (D0+D1+D2+D6)T4 (๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฒ์ค๋ฅผ ์ฌ์ฉํ ๋)
14.4 AC ๋ ์ง์คํฐ ์ ์ด
LD(AC) = (D0+D1+D2)T5 + pB11 + (B9+B7+B6)r
CLR(AC) = rB11
INC(AC) = rB5
15. ํ๋์จ์ด ๊ตฌ์ฑ์์ ์์ฝ
- 4096 ์๋ x 16 ๋นํธ ๋ฉ๋ชจ๋ฆฌ ์ ๋
- 9๊ฐ ๋ ์ง์คํฐ: AR, PC, DR, AC, IR, TR, OUTR, INPR, SC
- 7๊ฐ ํ๋ฆฝํ๋กญ: I, S, E, R, IEN, FGI, FGO
- 2๊ฐ ๋์ฝ๋: 3x8 ์ฐ์ฐ ๋์ฝ๋, 4x16 ํ์ด๋ฐ ๋์ฝ๋
- 16๋นํธ ๊ณตํต ๋ฒ์ค
- ์ ์ด ๋ ผ๋ฆฌ ๊ฒ์ดํธ
- AC ์ ๋ ฅ์ ์ฐ๊ฒฐ๋ ๊ฐ์ฐ๊ธฐ ๋ฐ ๋ ผ๋ฆฌ ํ๋ก
16. ๋ช ๋ น์ด ์ธํธ ์์ ์ฑ
๋ช ๋ น์ด ์นดํ ๊ณ ๋ฆฌ:
- ์ฐ์ , ๋ ผ๋ฆฌ ๋ฐ ์ํํธ ์ฐ์ฐ
- ๋ฉ๋ชจ๋ฆฌ์ ๋ ์ง์คํฐ ๊ฐ ์ ๋ณด ์ด๋
- ํ๋ก๊ทธ๋จ ์ ์ด ๋ฐ ์ํ ํ์ธ ๋ช ๋ น์ด
- ์ ์ถ๋ ฅ ๋ช ๋ น์ด
์์ ์ฑ๊ณผ ํจ์จ์ฑ:
- ์ ํ๋ ์์ ๋ช ๋ น์ด๋ก ์ปดํจํฐ์ ์์ธ ๋ ผ๋ฆฌ ์ค๊ณ ๊ฐ๋ฅ
- ๊ฐ ์นดํ ๊ณ ๋ฆฌ์ ๊ธฐ๋ณธ ๋ช ๋ น์ด ํฌํจ์ผ๋ก ๋ค์ํ ์ฐ์ฐ ์ํ ๊ฐ๋ฅ
Chap.5 Problems 3,4,5,9. ๏ submit only 9 Chap.5 Problems 20,21,22,23 ๏ submit only 21 Control of common bus x2~x6 Due by next week class Copied one will be returned without grading No late homework will be accepted