๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Computer/์ปดํ“จํ„ฐ๊ตฌ์กฐ ์šด์˜์ฒด์ œ

3.5 CPU ๋ช…๋ น์–ด

728x90
๋ฐ˜์‘ํ˜•

<๋ช…๋ น์–ด ์„ธํŠธ(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ํ•  ๋•Œ๋Š” ๋ถ€ํ˜ธ ๋น„ํŠธ๊ฐ€ ์šฐ์ธก์œผ๋กœ ๋ณต์‚ฌ

- ๋ถ€ํ˜ธ ๊ณ ๋ คํ•œ ๋น„ํŠธ ํ™•์žฅ์— ์‚ฌ์šฉ

 

728x90
๋ฐ˜์‘ํ˜•