๐ง ๋ช ๋ น์ด
์ปดํจํฐ์ ํ๋์จ์ด์๊ฒ ์ผ์ ์ํค๊ธฐ ์ํด์๋, ํ๋์จ์ด๊ฐ ์์๋ค์ ์ ์๋ ์ธ์ด๋ก ๋ช ๋ น์ ํด์ผ ํฉ๋๋ค.
์ปดํจํฐ ์ธ์ด์์์ ๋จ์ด๋ฅผ ๋ช ๋ น์ด(Instruction)๋ผ ์นญํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ ํ CPU๊ฐ ์ดํดํ ์ ์๋ ๋ช ๋ น์ด๋ค์ ๋ชจ์๋์ ๊ฒ์ ๋ช ๋ น์ด ์งํฉ(Instruction set)์ด๋ผ ๋ถ๋ฆ ๋๋ค.
ISA๊ฐ ๋ค๋ฅธ ์ปดํจํฐ๋ค์, ๋ชจ๋ ๋ค๋ฅธ ๋ช ๋ น์ด ์งํฉ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ์, ํ๋๋ฅผ ๋ฐฐ์ฐ๋ฉด ๋ค๋ฅธ ๊ฒ๋ค๋ ์ฝ๊ฒ ์ต์ํด์ง ์ ์์ต๋๋ค.
์์ผ๋ก ๋ฑ์ฅํ๋ ๋ชจ๋ ๋ช ๋ น์ด ์งํฉ์ RISC-V ์ ๋๋ค.
โ๏ธ ์ฐธ๊ณ : CISC์ RISC
CISC : Complex Instruction Set Computer
RISC : Reduced Instruction Set Computer
CISC๋ ๋ช ๋ น์ด ๊ตฌ์กฐ๊ฐ ๋ณต์กํ๊ธฐ ๋๋ฌธ์, ํ๋์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ํ์ํ Instruction Count๊ฐ ์ ๋ค๋ ์ฅ์ ์ ๊ฐ์ง๋๋ค.
๊ทธ๋ฌ๋ ๋ณต์กํ ๋งํผ ๋ช ๋ น์ด์ ์๊ฐ ๋ง์์ง๊ณ , ํ๋์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ Clock Cycle์ ์๊ฐ ๋ง๋ค๋ ๋จ์ ์ ๊ฐ์ง๋๋ค.
RISC๋ ์ด์ ๋ฐ๋๋ก ๊ฐ๋จํ ๋ช ๋ น์ด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก, ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ํ์ํ Instruction Count๊ฐ ๋ง์ง๋ง,
๋ช ๋ น์ด์ ์๊ฐ ์ ์ด ๋ณต์ก์ฑ์ด ๊ฐ์ํ๊ณ , ํ๋์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ Clock Cycle์ ์๊ฐ ์ ์ต๋๋ค.
๐ง RISC-V ๋ช ๋ น์ด์ ํํ
๋ช ๋ น์ด๋ ๋ช ๋ น ์ฝ๋(Operation Code ํน์ Opcode)์ ํผ์ฐ์ฐ์(Operands)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ฐ๊ฐ์ ํผ์ฐ์ฐ์๋ 64๋นํธ ๊ธธ์ด๋ฅผ ๊ฐ์ง๋๋ฐ, ์ด๋ 8byte, ์ฆ 1 (double) word ๋จ์์ ๋๋ค.
ํผ์ฐ์ฐ์๋ก๋ ๋ ์ง์คํฐ์ ์ฃผ์ ํน์ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ ์ฌ ์ ์์ผ๋ฉฐ,
ํ๋ ์ปดํจํฐ์ ๋ ์ง์คํฐ๋ ๋ณดํต 32๊ฐ์ ๋ ์ง์คํฐ๋ฅผ ๊ฐ์ง๋๋ค.
(๋ฐ๋ผ์ ๊ฐ๊ฐ์ ๋ ์ง์คํฐ๋ x0 ~ x31 ์ ์ฃผ์๋ฅผ ๊ฐ์ง๋๋ค.)
๋ํ RISC-V๋ Byte Adresses(์ฆ ์ฃผ์๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ฒ๋ฆฌ)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
(Double) Word ์ ๋จ์๋ 8 byte์ด๋ฉฐ,
์๋ ์ฃผ์๋ ์๋๋ฅผ ๊ตฌ์ฑํ๋ 8๋ฐ์ดํธ ์ฃผ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ ์ฐ์๋ ์๋์ ์ฃผ์๋ 8์ฉ ์ฐจ์ด๊ฐ ๋๊ฒ๋ฉ๋๋ค.
์ฆ ์๋์ ์ฃผ์๋ 8($= 2^3$)์ ๋ฐฐ์์ด๋ฏ๋ก,
$2^{61}$ ๊ฐ์ Memory ์ฃผ์( ๋จ์: (double) Word ) ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
(4๋ฐ์ดํธ(Word) ๋จ์๋ก ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ $2^{30}$ ๊ฐ์ Memory Words๋ฅผ ๊ฐ์ง๋๋ค.)
๐ง ํ๋์จ์ด ์ค๊ณ์ ์์น
1. ๊ฐ๋จํ๊ธฐ ์ํด์๋ ๊ท์น์ ์ธ ๊ฒ์ด ์ข๋ค
2. ์์ ๊ฒ์ด ๋ ๋น ๋ฅด๋ค
3. ์์ฃผ ์๊ธฐ๋ ์ผ์ ๋น ๋ฅด๊ฒ ํ๋ผ
4. ์ข์ ์ค๊ณ์๋ ์ ๋นํ ์ ์ถฉ์ด ํ์ํ๋ค
์๋ ํ๋์จ์ด ์ค๊ณ์ 4 ์์น์ผ๋ก, ์์ผ๋ก ๊ณ์ ๋ด์ฉ์ ์งํํ๋ ๋์ค ๋ฑ์ฅํ ๊ฒ์ด๊ธฐ์ ๋ฏธ๋ฆฌ ์ดํด๋ณด์์ต๋๋ค.
๐ง ํ๋์จ์ด ์ฐ์ฐ
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ปดํจํฐ๋ ์ฐ์ (Arithmetic) ์ฐ์ฐ์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ค์ RISC-V ์ด์ ๋ธ๋ฆฌ์ด๋ ๋ ๋ณ์ $b$ ์ $c$ ๋ฅผ ๋ํด์ ๊ทธ ํฉ์ $a$ ์ ๋ฃ์ผ๋ผ๊ณ ์ปดํจํฐ์ ์ง์ํ๋ ์ฝ๋์ ๋๋ค.
add a, b, c
RISC-V ์ฐ์ ๋ช ๋ น์ด๋ ๋ฐ๋์ ํ ์ข ๋ฅ์ ์ฐ์ฐ๋ง๋ค ์ง์ํ๋ฉฐ, ํญ์ 3๊ฐ์ ๋ณ์๋ฅผ ๊ฐ๋ ํ์์ ์๊ฒฉํ ์งํต๋๋ค.
๐ ์์
์๋ฅผ ๋ค์ด ๋ค์ C ์ฝ๋๋
a = b + c;
๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ก ๋ณ์ญ๋ฉ๋๋ค.
add a, b, c # a gets b + c
๋ค์ C ์ฝ๋๋
f = (g + h) - (i + j);
๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ก ๋ณ์ญ๋ฉ๋๋ค.
add t0, g, h; # temp t0 = g + h
add t1, i, j; # temp t1 = i + j
sub f, t0, t2; # temp f = t0 - t1
์ด๋ ๊ฒ ๋ชจ๋ ๋ช ๋ น์ด๊ฐ ํผ์ฐ์ฐ์๋ฅผ ๋ฐ๋์ 3๊ฐ์ฉ ๊ฐ๋๋ก ์ ํํ๋ ๊ฒ์ ํ๋์จ์ด๋ฅผ ๋จ์ํ๊ฒ ํ์๋ ์์น๊ณผ ๋ถํฉํฉ๋๋ค.
ํผ์ฐ์ฐ์์ ๊ฐ์๊ฐ ๊ฐ๋ณ์ ์ด๋ฉด, ํ๋์จ์ด์ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํฉ๋๋ค.
์ด๋ฌํ ๊ด์ ์์ ํ๋์จ์ด ์ค๊ณ์ 4์์น ์ค ์ฒซ ๋ฒ์งธ๋ฅผ ๋์ถํ ์ ์์ต๋๋ค.
1. ๊ฐ๋จํ๊ธฐ ์ํด์๋ ๊ท์น์ ์ธ ๊ฒ์ด ์ข๋ค
๋ค์ ๊ธ์์๋ ๋ช ๋ น์ด์ ์ฌ์ฉ๋๋ ํผ์ฐ์ฐ์(Operands)์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'๐ฅ Computer Science > ์ปดํจํฐ ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ช ๋ น์ด(Instruction)[4] - ๋ ผ๋ฆฌ ์ฐ์ฐ ๋ช ๋ น์ด (0) | 2022.10.01 |
---|---|
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ช ๋ น์ด(Instruction)[3] - ๋ช ๋ น์ด ํ์ (0) | 2022.10.01 |
[์ปดํจํฐ ๊ตฌ์กฐ] ๋ช ๋ น์ด(Instruction)[2] - Operands(ํผ์ฐ์ฐ์) (0) | 2022.10.01 |
[์ปดํจํฐ ๊ตฌ์กฐ] ์ปดํจํฐ์ ์ฑ๋ฅ (0) | 2022.09.18 |
[์ปดํจํฐ ๊ตฌ์กฐ] ์ปดํจํฐ ์ถ์ํ & ๊ธฐ์ (5) | 2022.09.18 |