<๋ช ๋ น์ด ์ธํธ(instruction set)> -> ํ์ฌ๋ง๋ค ๋ค๋ฆ
: ํน์ CPU๋ฅผ ์ํด ์ ์๋๋ ๋ช ๋ น์ด๋ค ์งํฉ
- ISA(Instruction Set Architecture) : ๋ช ๋ น์ด ์ธํธ ๊ตฌ์กฐ
[๋ช ๋ น์ด ์ธํธ ์ค๊ณ ์ ๊ณ ๋ ค ์ฌํญ]
- ๋ช ๋ น์ด ํ์
- ์ฃผ์์ง์ ๋ฐฉ์
- ์ฐ์ฐ์ ์ข ๋ฅ
- ๋ฐ์ดํฐ ํ์
<๋ช ๋ น์ด ์ข ๋ฅ>
- ์ฐ์ ์ฐ์ฐ(arithmetic operation) ๋ช ๋ น
- ๋ ผ๋ฆฌ์ฐ์ฐ(logic operation) ๋ช ๋ น
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฐ์ฐ ๋ช ๋ น : ๋ฐ์ดํฐ ์ ์ถ๋ ฅ, ๋ก๋(memory->CPU), ์ ์ฅ(CPU->memory) ์คํ
- ํ๋ฆ์ ์ด ์ฐ์ฐ(control flow operation) ๋ช ๋ น : ํ๋ก๊ทธ๋จ ์คํ์์ ๋ฐ๊พธ๋ ๋ช ๋ น ์คํ
<๋ช ๋ น์ด ํ์(instruction form)>
- op code(์ฐ์ฐ์ฝ๋ ํ๋) : ์ฐ์ฐ์ ๋์ ์ง์
- operand(์ค๋ฌํฌ๋ ํ๋) : ์ฐ์ฐ์ ๋์, ์์น ํ์

ex) op code = '+', operand = 3, 5 -> 3+5
- ํ ๋ช ๋ น์ด ์์ ์ฌ๋ฌ ๊ฐ์ operand ํ๋ ๊ฐ๋ฅ
- op code๊ฐ n๋นํธ : 2^n ๊ฐ์ง ์ฐ์ฐ ์ข ๋ฅ ์ง์ ๊ฐ๋ฅ
- operand๊ฐ n๋นํธ : 2^n๊ฐ์ ์ฃผ์ ์ง์ or 2's complement๋ก ๋ฐ์ดํฐ ์์น ํ์ ๊ฐ๋ฅ
<์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ด ์ค๊ณ(๊ฐ์)>
์ฐ์ ์ฐ์ฐ : ADD
accumulator : AC
gp register : B, C, D
1. ADD [y] : AC์ y๋ฒ์ง ๋ฉ๋ชจ๋ฆฌ ๊ฐ ๋ํด ๋ค์ AC์ ์ ์ฅ
2. ADD B, [y] : B ๋ ์ง์คํฐ์ y๋ฒ์ง ๋ฉ๋ชจ๋ฆฌ ๊ฐ ๋ํด ๋ค์ B์ ์ ์ฅ
3. ADD B, C : B,C ๋ ์ง์คํฐ ๊ฐ๊ฐ์ ์ ์ฅ๋ ๊ฐ์ ๋ํด B์ ์ ์ฅ
4. ADD B, C, D : C,D ๋ ์ง์คํฐ ๊ฐ๊ฐ์ ์ ์ฅ๋ ๊ฐ์ ๋ํด B์ ์ ์ฅ
<์ฃผ์์ง์ ๋ฐฉ์> == addressing mode
: ๋ช ๋ น์ด ํ์์ ํฌํจ๋ operand ํ๋์์ ์ค์ ํผ์ฐ์ฐ์ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ
- ์ ํจ์ฃผ์(effective address) : ์ค์ operand ์ฃผ์. ์ค์ ํผ์ฐ์ฐ์๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์์น
- ๊ฐ์ ์ฃผ์ : ์ ํจ์ฃผ์๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์์น
์ฐ์ ์ฐ์ฐ : INC, ADD
accumulator : AC
Program counter : PC
gp register : B,C
index register : IX
๋ณ์๊ฐ : d
1. ์์์ (implied) ์ฃผ์์ง์ ๋ฐฉ์ : operand์์ด ์ฐ์ฐ์ฝ๋๋ง์ผ๋ก ๋์ ์์
INC; AC <- AC +. 1
2. ์ฆ์น(immediate) ์ฃผ์์ง์ ๋ฐฉ์
ADD B, 90H; B <- B + 90H(Hexa)
3. ์ง์ (direct) ์ฃผ์์ง์ ๋ฐฉ์
ADD B, [1234H]; B <- B + M[1234H]
4. ๊ฐ์ (indirect) ์ฃผ์์ง์ ๋ฐฉ์
ADD B, [[5678H]]; B <- B + [M[5678H]]
5. ๋ ์ง์คํฐ(register) ์ฃผ์์ง์ ๋ฐฉ์
ADD B, C; B <- B + C
6. ๋ ์ง์คํฐ ๊ฐ์ (register indirect) ์ฃผ์์ง์ ๋ฐฉ์
ADD B, [C]; B <- B + M[C]
7. ์๋ ์ฃผ์์ง์ ๋ฐฉ์(relative addressing mode)
ADD B, [PC+d]; B <- B + M[PC+d]
8. ์ธ๋ฑ์ค ์ฃผ์์ง์ ๋ฐฉ์(indexed addressing mode) : ๋ฐฐ์ด์ฐ์ฐ์ ์ ๋ฆฌ
ADD B, [IX+d]; B <- B + M[IX+d]
<์ ์์ ์ฐ์ ์ฐ์ฐ>
- ๋ถํธ์๋ ์์ : 8bit๋ก 0~255 ํ์
- ์์ ๊ณ ๋ ค : ์ฒซ ๋นํธ๋ฅผ sign๋นํธ๋ก ์ฌ์ฉ
์์ ํํ์ 3๊ฐ์ง
1. ๋ถํธ-ํฌ๊ธฐ ์์ญ ํํ : -127 ~ 127
2. 1's complement : -127 ~ 127
3. 2's complement : -128 ~ 127(1's complement + 1)
- 2's complement ๋ง์ด ์ฐ๋ ์ด์ : ์์๋ฅผ ํ๋ ๋ ํํํ ์ ์๋ค
<์ฌ์น์ฐ์ฐ>
[๊ฐ์ฐ๊ธฐ]
- ๋นํธ ์ ์๋ฆฌ๋งํผ full adder๋ก ๊ตฌ์ฑ
- ๋ณด์ํ๊ธฐ ์ถ๊ฐํด 2's complement๋ก ํํ๋ ๋ ์ ๋ํจ(๋บผ์ ์ ๋ง์ ์ฒ๋ผ ํ๊ธฐ ์ํด์)
[๊ณฑ์ ๊ธฐ, ๋๋์ ๊ธฐ]
- ๋ณด์ํ๊ธฐ, ์ํํธ ๋ ์ด์ฆํฐ, ๊ฐ์ฐ๊ธฐ ๋ฑ์ผ๋ก ๊ตฌ์ฑ
- ๋ฐ๋ณต์ ์ธ ์ํํธ ๋์๊ณผ ๋ง์ ,๋บ์ ๋์
ex) 2์ง์ ์ค๋ฅธ์ชฝ์ผ๋ก 1bit shiftํ๋ฉด /2, ์ผ์ชฝ์ผ๋ก 1bit shiftํ๋ฉด *2 ํจ๊ณผ
[์ค์]
์ ์, ์์๋ก ๊ตฌ์ฑ
[10์ง์ -> 2์ง์]
: ์ ์๋ถ, ์์๋ถ ๋๋ ์ ๋ณํ

[๊ณ ์ ์์์ , ๋ถ๋์์์ ]
- ๊ณ ์ ์์์ (fixed point) : ์์์ ์์น ๊ณ ์ ๋๊ณ ์ ์๋ถ, ์์๋ถ๋ก ํ์
- ๋ถ๋์์์ (floating point) : ์์์ ์์น ์ด๋์์ผ ์ง์๋ก ๋ํ๋. ๋์ ๋ฒ์ ์ ๋ํ๋ผ ์ ์์ง๋ง ์ฐ์ฐ์๋ ๋๋ ค ๋ณ๋์ ๋ณด์กฐํ๋ก์ธ์ ์ฌ์ฉ

[๋ถ๋์์์ ํํ ๋ฐฉ์]
: ๊ฐ์๋ถ + ์ง์๋ถ

- ๋ถํธ(sign) : ์์ : 0, ์์ : 1
- ๊ฐ์๋ถ(mantissa) : ์ ํจ์ซ์๋ก ์ ์๋ถ, ์์๋ถ ํ์
- ์ง์๋ถ(exponent) : ์์์ ์์น ์ง์
- ๊ธฐ์(base) : ์ง๋ฒ
- ์ ํจ์ซ์(significant figure) : ์๋ฆฟ์๋ฅผ ๋ํ๋ด๋ ์ซ์ 0์ ์ ์ธํ ๋๋จธ์ง ์ ๋ขฐํ ์ ์๋ ์ซ์(10์ง์์์ ์ ํจ์ซ์ : 0~9, 2์ง์์์ ์ ํจ์ซ์ : 0,1)
- IEEE 754 ํ์ค 2์ง ๋ถ๋์์์ ํ์

<์ง์ ๋ฐ์ด์ด์ค(exponent bias)>
: ์ง์์ ์ผ์ ๊ธฐ์ค ๊ฐ์ ๋ํด ๋ถํธ๊ฐ ํ์์๋ ์์ญ์ผ๋ก ์ฎ๊ฒจ ์ ์ฅ(2's complement๋ก ํํํ๋ฉด ํฌ๊ธฐ ๋น๊ต ์ด๋ ค์)
- k bit ์ง์ ๋ถ -> s^(k-1)-1 bias๋ ์ง์๋ก ์ ์ฅ
ex) 8bit ์ง์๋ถ์ด๋ฉด +127

<์ ๊ทํ(normalized) ํ์>
: ์์์ ์์น์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง๋ก ํํ๋๋ฏ๋ก ํต์ผ๋ ํ์ค ํ์ ์ฌ์ฉ
- ์์์ ์์ ์ ์๋ถ๋ก ํญ์ '1'์ด ์ค๋๋ก ์ ๊ทํ

- ์ ์๋ถ๋ฅผ '1'๋ก ์ด๊ธฐํ(๋ชจ๋ bit๊ฐ 0์ด๋ฉด 0์ผ๋ก ์ ์)
- ๊ฐ์๋ถ์์ ์์๋ถ๋ง ์ ์ฅ(์ ์๋ถ๋ 1์ด๋๊น)
ex)
-1.1101 x 2^4๋ฅผ 32bit 2์ง ๋ถ๋์์์ ํ์์ผ๋ก ์ ์ฅํ๊ณ 16์ง์๋ก ํํ
- ์์๋๊น ๋ถํธ ๋นํธ๋ 1
- ์ง์๋ถ๋ 4(00000100) + 127(01111111) = 131(10000011)
- ๊ฐ์๋ถ๋ -1.1101 x 2^4์์ 1101์ด ๋งจ ์์ ์ด(์ ์๋ถ 1์ด๋๊น)
- 16์ง์๋ก ํํํ๋ฉด 0xC1E80000

<๋ ผ๋ฆฌ ๋ฐ ์ํํธ ์ฐ์ฐ>
: NOT, AND, OR, XOR, shift register๋ฅผ ์ด์ฉํ ๋นํธ ์ด ์ด๋
[mask ์ฐ์ฐ]
: AND ์ฐ์ฐ์ผ๋ก ์ํ๋ ์์น์ ๋นํธ๋ง ํต๊ณผ

[์ ํ์ ์ธํธ(selective set)์ฐ์ฐ]
: OR ์ฐ์ฐ์ผ๋ก ์ํ๋ ์์น์ ๋นํธ๋ง 1๋ก ์ธํธ

[์ฝ์ (insert) ์ฐ์ฐ]
: AND ์ฐ์ฐ์ผ๋ก ์ํ์ง ์๋ ์์น ๋นํธ ์ง์ฐ๊ณ OR ์ฐ์ฐ์ผ๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ฐ์ผ๋ก ๊ต์ฒด

* ์๋ฆฟ ์๊ฐ 0 or 1์ธ์ง ํ์ธํ๋ ๋ฒ
=> ์ฐ์ฐ ํ์ ๋งจ ์ค๋ฅธ์ชฝ ๋นํธ๋ก shiftํด์ค๋ค
[๋น๊ต(compare) ์ฐ์ฐ]
: XOR ์ฐ์ฐ์ผ๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ๋ ์์น๋ง 1

[์ ํ์ ๋ณด์(selective complement) ์ฐ์ฐ]
: XOR ์ฐ์ฐ์ผ๋ก ์ํ๋ ์์น์ ๋นํธ๋ง 1's complement๋ก

<์ํํธ ์ฐ์ฐ>
[๋ ผ๋ฆฌ์ ์ํํธ(logical shift) ์ฐ์ฐ]
- ๋ถํธ ๊ณ ๋ คํ์ง ์์
- shift register๋ค์ด ์ข์ฐ๋ก 1bit์ฉ ์ด๋
- ๊ณฑ์ or ๋๋์ ์ ์ ์ฉ
[์ํ ์ํํธ(circular shift) ์ฐ์ฐ]
- ๋ถํธ ๊ณ ๋ คํ์ง ์์
- shift register ๋นํธ๋ค์ด ํ์ ํด ๋ค์ ๋ฐ๋์ชฝ ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ
- ์ง๋ ฌ ๋ฐ์ดํฐ ๋นํธ ์ ์ก์ ์ฌ์ฉ
[์ฐ์ ์ ์ํํธ(arithmetic shift) ์ฐ์ฐ]
- ๋ถํธ ๋นํธ ์ ์ธํ ๋๋จธ์ง ๋นํธ๋ค ์ข์ฐ ์ด๋
- 2's complement ํํ์์๋ ์ค๋ฅธ์ชฝ์ผ๋ก shiftํ ๋๋ ๋ถํธ ๋นํธ๊ฐ ์ฐ์ธก์ผ๋ก ๋ณต์ฌ
- ๋ถํธ ๊ณ ๋ คํ ๋นํธ ํ์ฅ์ ์ฌ์ฉ

'Computer > ์ปดํจํฐ๊ตฌ์กฐ ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 4.2 ๋ณ๋ ฌ๊ณ์ฐ (0) | 2022.04.18 |
|---|---|
| 4.1 CPU ๋ช ๋ น์ด ์ฌ์ดํด (0) | 2022.04.18 |
| 3.4 ์ฐ์ฐ์ฅ์น (0) | 2022.04.05 |
| 3.3 ๋ ์ง์คํฐ (0) | 2022.04.05 |
| 3.2 ๋ณด์กฐํ๋ก์ธ์ (0) | 2022.04.05 |