용어 정리
- 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이다. (왜지)
'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 |