Search
๐Ÿ’ฟ

Lecture 05 : 2.5~2.6

course
last review
2023/04/10
mastery
rookie
progress
pending
date
2023/03/27
4 more properties
Previous chapter

Internal Representaion of Instruction

๊ฑฐ์˜ ๋ชจ๋“  ๋ช…๋ น์–ด๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ด๋ฆ„์„ ์ˆซ์ž๋กœ ๋งคํ•‘ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
โ€ข
$s0~$s7 : 16~23์œผ๋กœ, $t0~$t7 : 8~15๊นŒ์ง€๋กœ ๋งคํ•‘ํ•œ๋‹ค.
add $t0, $s1, $s2
Assembly
๋ณต์‚ฌ
์‹ญ์ง„์ˆ˜ ํ‘œํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
0 17 18 8 0 32
๋ช…๋ น์–ด์˜ ๊ฐ ๋ถ€๋ถ„์„ ํ•„๋“œ(field)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
์ฒ˜์Œ๊ณผ ๋งˆ์ง€๋ง‰ ํ•„๋“œ๋Š” ๋ง์…ˆ์„ ์ง€์‹œํ•˜๋Š” ํ•„๋“œ๋‹ค.
๋‘๋ฒˆ์งธ๋Š” t0, ์„ธ๋ฒˆ์งธ๋Š” t1, ๋„ค๋ฒˆ์งธ๋Š” t2, ๋‹ค์„ฏ๋ฒˆ์งธ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ 0์„ ์‚ฌ์šฉํ•œ๋‹ค.
์ด ๋ช…๋ น์—ฌ์˜ ๊ฐ ํ•„๋“œ๊ฐ’์„ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋น„ํŠธ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋œ๋‹ค.
000000 10001 10010 01000 00000 100000
์œ„ ๋ ˆ์ด์•„์›ƒ์„ ๋ช…๋ น์–ด ํ˜•์‹(instruction format)์ด๋ผ๊ณ  ํ•œ๋‹ค. MIPS ์ธ์ŠคํŠธ๋Ÿญ์…˜์˜ ๊ธธ์ด๋Š” ๋ฐ์ดํ„ฐ ์›Œ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น ์ง์—†์ด 32๋น„ํŠธ์ด๋‹ค.
๋‹น๋ถ„๊ฐ„ ๊ธด ์ด์ง„์ˆ˜๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ž‘์—…์ด ๋ถˆ๊ฐ€ํ”ผํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ด๋‚˜, ๋ชจ๋“  ์ปดํ“จํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋Š” 4์˜ ๋ฐฐ์ˆ˜ ๊ธธ์ด์ด๋ฏ€๋กœ Hexadecimal์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฅผ ํ•œ๋‹จ๊ณ„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

MIPS Instruction Fields

MIPS์˜ ๊ฐ ๋ช…๋ น์–ด์˜ ๊ฐ ํ•„๋“œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด๋ฆ„์ด ๋ถ™์–ด์žˆ๋‹ค.
โ€ข
op : ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰ํ•  ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜๋กœ์„œ ์—ฐ์‚ฐ์ž(opcode)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
โ€ข
rs : ์ฒซ๋ฒˆ์งธ ์†Œ์Šค(source) ๋ ˆ์ง€์Šคํ„ฐ(register)
โ€ข
rt : ๋‘๋ฒˆ์งธ ์†Œ์Šค(source) ๋ ˆ์ง€์Šคํ„ฐ(register)
โ€ข
rd : ๋ชฉ์ ์ง€(destination) ๋ ˆ์ง€์Šคํ„ฐ(register). ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ๊ธฐ์–ต๋œ๋‹ค.
โ€ข
shamt : ์ž๋ฆฌ์ด๋™๋Ÿ‰(shift).
โ€ข
funct : ๊ธฐ๋Šฅ(function). opํ•„๋“œ์—์„œ ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๊ณ  funct ํ•„๋“œ์—์„œ ํ•œ ์—ฐ์‚ฐ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.
์ด๊ฒƒ๋ณด๋‹ค ํ•„๋“œ ๊ธธ์ด๊ฐ€ ๋” ๊ธธ์–ด์•ผ ํ•  ๊ฒฝ์šฐ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ๊นŒ?
lw๋Š” ๋ ˆ์ง€์Šคํ„ฐ ํ•„๋“œ 2๊ฐœ์™€ ์ƒ์ˆ˜ ํ•„๋“œ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ์ตœ๋Œ€ 31๊นŒ์ง€๋ฐ–์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. 5๋น„ํŠธ ํ•„๋“œ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค.
์ด๋Ÿฐ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ช…๋ น์–ด์˜ ๊ธธ์ด๋ฅผ ๊ฐ™๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ์ƒ๊ฐ๊ณผ ๋ช…๋ น์–ด ํ˜•์‹์„ ํ•œ๊ฐ€์ง€๋กœ ํ†ต์ผํ•˜๊ณ  ์‹ถ์€ ์ƒ๊ฐ ์‚ฌ์ด์— ์ถฉ๋Œ์ด ์ƒ๊ธด๋‹ค.
๋งˆ์ง€๋ง‰ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„์›์น™์„ ์Šฌ์ฉ ๊ฐ€์ง€๊ณ  ์˜ค์ž.
์ข‹์€ ์„ค๊ณ„์—๋Š” ์ ๋‹นํ•œ ์ ˆ์ถฉ์ด ํ•„์š”ํ•˜๋‹ค.
MIPS๊ฐ€ ์„ ํƒํ•œ ๋ฐฉํ–ฅ์€ ๋ชจ๋“  ๋ช…๋ น์–ด์˜ ๊ธธ์ด๋ฅผ ๊ฐ™๊ฒŒ ํ•˜๋˜, ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ํ˜•์‹์„ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
ํ•ด๋‹น ๋ฐฉ์‹์€ R(Register)ํƒ€์ž…์ด๋ผ ํ•˜๋ฉฐ, ์ด๊ฒƒ๋งŒ์œผ๋กœ๋Š” ๋ถˆ์ถฉ๋ถ„ํ•˜์—ฌ Iํƒ€์ž…์„ ๋งŒ๋“ค์—ˆ๋‹ค.
Iํƒ€์ž…์€ ์ˆ˜์น˜์—ฐ์‚ฐ, ๋ฐ์ดํ„ฐ ์ „์†ก ๋ช…๋ น์–ด์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ๋ชจ์–‘์€ ์œ„์™€ ๊ฐ™๋‹ค.
์ƒ์ˆ˜๋‚˜ ์ฃผ์†Œ๊ฐ€ 16๋น„ํŠธ์ด๋ฏ€๋กœ ์ด์ œ lw๋ช…๋ น์€ ๋ฒ ์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ +-32768๋ฐ”์ดํŠธ๋งŒํผ ์ง€์ •ํ• ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
lw $t0, 32($s3)
Assembly
๋ณต์‚ฌ
์—ฌ๊ธฐ์„œ rsํ•„๋“œ์— s3์ด ๋“ค์–ด๊ฐ€๋ฉฐ, rtํ•„๋“œ์—๋Š”t0, ์ฃผ์†Œํ•„๋“œ์—๋Š” 32๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.
Iํƒ€์ž…์—์„œ๋Š” rt๊ฐ€ ์ ์žฌ๊ฒฐ๊ณผ๊ฐ€ ๋“ค์–ด๊ฐˆ ๋ชฉ์ ์ง€ ๋ ˆ์ง€์Šคํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.
๋ช…๋ น์–ด ํ˜•์‹์ด ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋‚˜๋‰˜๋ฉด ํ•˜๋“œ์›จ์–ด์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•˜์ง€๋งŒ, ๋ชจ๋“  ํ˜•์‹์„ ๋น„์Šทํ•˜๊ฒŒ ํ•˜์—ฌ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค.
Rํƒ€์ž…๊ณผ Iํƒ€์ž…์˜ ์ฒ˜์Œ ์„ธ ํ•„๋“œ๋Š” ์ด๋ฆ„๊ณผ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์œผ๋ฉฐ, Iํƒ€์ž…์˜ ๋„ค๋ฒˆ์งธ ํ•„๋“œ ๊ธธ์ด๋Š” Rํƒ€์ž…์˜ ๋‚˜๋จธ์ง€ ์„ธ ํ•„๋“œ ๊ธธ์ด๋ฅผ ๋”ํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.
๋ช…๋ น์–ด ํƒ€์ž…์€ ์ฒซ๋ฒˆ์งธ ํ•„๋“œ์˜ ๊ฐ’์œผ๋กœ ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ˜•์‹๋ณ„๋กœ opํ•„๋“œ๊ฐ€ ๊ฐ€์ง€๋Š” ๊ฐ’์ด ๋‹ค๋ฅด๋ฏ€๋กœ ํ•˜๋“œ์›จ์–ด๋Š” opํ•„๋“œ๋ฅผ ๋ณด๊ณ  ๋ช…๋ น์–ด์˜ ์˜ค๋ฅธ์ชฝ ์ ˆ๋ฐ˜์„ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

Logical Operator

์ดˆ๊ธฐ ์ปดํ“จํ„ฐ๋Š” ์›Œ๋“œ ์ „์ฒด์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์—๋งŒ ๊ด€์‹ฌ์„ ๊ฐ€์กŒ์œผ๋‚˜, ์›Œ๋“œ ๋‚ด ์ผ๋ถ€ ๋น„ํŠธ๋“ค์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์—๋งŒ ๊ด€์‹ฌ์„ ๊ฐ€์กŒ์œผ๋‚˜, ์›Œ๋“œ ๋‚ด ์ผ๋ถ€ ๋น„ํŠธ๋“ค์— ๋Œ€ํ•œ ์—ฐ์‚ฐ, ์‹ฌ์ง€์–ด๋Š” ๊ฐœ๊ฐœ ๋น„ํŠธ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๊ณง ๋ช…๋ฐฑํ•ด์กŒ๋‹ค.

Shift

์›Œ๋“œ ๋‚ด์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ค๊ณ , ์ด๋™ ํ›„ ๋นˆ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์šด๋‹ค.
sll $t2, $s0, 4 #reg $t2 = reg $s0 << 4 bits srl $t2, $s0, 4 #reg $t2 = reg $s0 >> 4 bits
Assembly
๋ณต์‚ฌ
์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž๋Š” Rํƒ€์ž… ๋ช…๋ น์–ด์ด๋‹ค. ํŠน์ดํ•˜๊ฒŒ๋„, shamt๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, rs๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
sll ๋ช…๋ น์€ ๋˜ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ์™ผ์ชฝ์œผ๋กœ i๋น„ํŠธ ์ž๋ฆฌ์ด๋™ํ•˜๋ฉด 2^i๋ฅผ ๊ณฑํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋œ๋‹ค.

AND OR NOT NOR

and $t0, $t1, $t2 or $t0, $t1, $t2 nor $t0, $t1, $t2
Assembly
๋ณต์‚ฌ
Next chapter