연산 [2].

임승섭·2023년 4월 25일
0

Computer Architecture

목록 보기
7/19

Division

Basic



  • 기본적으로 dividend = quatient * divisor + remainder

  • 차근차근 들어가보자

  • quotient register (32 bits)는 0으로 초기화되어 있고,
    divisor register (64 bits)의 왼쪽에 divisor가 저장되어있고,
    remainder register (64 bits)의 오른쪽에 dividend가 저장되어 있다.

  • remainder - divisor를 remainder에 저장한다.
  • remainder > 0인 경우,
    quotient를 left shift하고, lsb에 1을 넣어준다.
    remainder < 0인 경우,
    remainder에 divisor를 다시 더해서 원상복구 시키고, quotient를 left shift해준다.
  • divisor를 right shift해준다.
  • 4bit인 경우, 5번 반복한다.

Optimized

  • divisor가 32bit가 되었다.

Example


MIPS Division

div rs, rt
divu rs, rt
No overflow or divide-by-0 checking
Software must perform checks if required
Use mfhi, mflo to access result

0개의 댓글