상세 컨텐츠

본문 제목

컴퓨터 구조 - MIPS 명령어

엔지니어일기/이것저것

by jaws99 2019. 7. 26. 01:12

본문

반응형

http://www.kocw.net/home/search/kemView.do?kemId=998138

 

컴퓨터 구조

컴퓨터의 내부 구조 및 동작 원리를 학습한다. 명령어의 종류 및 형태, CPU와 메모리, 입출력의 동작 원리 및 설계 방법을 학습하고 최근의 컴퓨터 설계 기술을 소개한다. 컴퓨터 시스템의 설계 경험을 통하여 복잡한 시스템의 설계 과정을 배운다.

www.kocw.net

Instruction = opcode + operand

 

CPU Performance Equation

CPU Time =

Number of Clock Cycle = IC(Instruction Count 명령어 개수) * CPI(Cycles Per Instruction)명령어 당 몇 Clock 걸리는지 
(* clock cycle time EX) 0.25ns ) or (/ clock rate EX) 4.0Ghz (주로 사용))

 

CPU Time = Number of Clock Cycle / clock rate

 

MIPS Instruction Format

1. R(Register)-type instruction format

operand가 전부 R(Register)이다.

add, sub 등이 해당

opcode rs rt rd shamt funct
6bit 5bit 5bit 5bit 5bit 6bit

R-type에서 opcode는 전부 0으로 채운다.

레지스터 번호는 32까지 있어 5bit면 충분하다.

shamt는 쉬프트 연산 시 사용한다.

funct는 opcode를 0으로 놓고 6bit를 사용해 64가지, 
opcode 나머지 63개 명령어를 사용해 127가지 명령어를 사용한다.
이를 opcode extension이라 한다. 

 

add $1, $2, $3은  $1 = $2 + $3라는 표현이다.

2진수로 바꿔보면 $1은 결괏값이라 rd에 표현해야 한다.

rs에 $2, rt에 $3, rd에 $1이 들어가야 한다.

 

2. I(Immediate)-type instruction format

operand에 register가 아닌 상수값, 주소가 필요할 때 사용한다.

lw, sw, addi 등이 해당

opcode rs rt address/constant
6bit 5bit 5bit 16bit

addi $1, $2, 50의 경우 $1 = $2 + 50

R-type과 비슷하게 목적지 레지스터는 rd가 따로 없지만 뒤로 간다.

2진수로 바꿔보면 rs에 $2, rt에 $1, addr/const에 (0000 0000 0011 0010)50이 들어가게 된다.

 

3.  J-type instruction format

Jump를 할 때 사용한다.

opcode (word)address
6bit 26bit

address는 32bit인데 주어진 공간은 26bit 뿐이다.

이를 해결하기 위해서

1. Alignment restriction에 의해 메모리 주소는 항상 4의 배수여야 한다.

2. 2^28B를 벗어나는 Jump는 없다고 가정하고 PC(Program Counter)앞 4byte를 가져온다.

 

PC from instruction 00
4byte 26byte 2byte

의 형태가 된다.

이 경우가 안될 경우 li(load immediate)와 j를 사용한다.

 

 

반응형

'엔지니어일기 > 이것저것' 카테고리의 다른 글

컴퓨터구조 - 해저드  (0) 2019.08.23
웹 보안 - SQL 인젝션  (0) 2019.08.22
컴퓨터구조 - 파이프라이닝  (0) 2019.08.17
웹 보안 - 브루트 포스  (0) 2019.08.16
OP.GG 크롤링하기  (0) 2019.08.08

관련글 더보기