School Lecture Study/Computer Architecture

[5-2] Division

vㅔ로 2021. 10. 21. 04:05
728x90

용어 정리

- quotient : 몫

- dividend : 나눠지는 수

- divisor : 나누는 수

- remainder : 나머지

 

** 0으로 나누는 것에 유의 **

 

Division RULE

- Divide는 절댓값으로 진행한다.

- dividend와 remainder의 부호는 같다. 

Ex) -5/2

- Q : -2

- R : -1  (Q와 R이 모두 같은 부호여야 함) 

 

Restoring division example

- divisor, quotient, dividend 사용

- divisor는 한 번 연산할 때마다 shift right 실행

- dividend에서 divisor를 빼고, 그 값이 양수인지 음수인지 확인한다.

- 양수라면 그 값으로 dividend의 값을 갱신하고, quotient의 마지막 자리를 1로 바꾼다. 음수라면 divisor를 다시 더해서 add back (이전 수로 돌리는 것)을 한다. 

- quotient도 한 번 연산할 때마다 왼쪽으로 shift 한다. (뺄 수 있으면 1, 못 빼면 0)

 

Optimized Divider -> Multiplier와 원리가 같다.

 

MIPS Division

- HI : 32-bit remainder

- LO : 32-bit quotient

- Instruction

   * div rs, rt / divu rs, rt

 

Right Shift and Division

- Left Shift는 부호 상관 없이 2를 곱한다. 

- unsigned integer에 Right Shift를 할 때만 2로 나누어진다.

- Shift는 Logical right shift와 arithmetic right shift로 나뉜다.

- logical right shift는 왼쪽 부분을 0으로 채우고, arithmetic right shift는 왼쪽 부분을 부호 숫자로 채운다.

 

** 주의 **

-5 / 4 == -1이지만, -5 >> 2는 -2이다. (왜지)

 

 

728x90

'School Lecture Study > Computer Architecture' 카테고리의 다른 글

Simple DataPath  (0) 2021.12.16
MIPS Instructions  (0) 2021.12.10
[5-1] Overflow / Multiplication  (0) 2021.10.18
[3-3] Immediate Operands & Integer Wrapping & 보수  (0) 2021.10.01
[3-2] Arithmetic Operations in MIPS  (0) 2021.10.01