CS

[컴퓨터 구조] 나눗셈 연산이 곱셈 연산보다 느린 이유

스스배 2024. 1. 6. 22:17

나눗셈 연산이 곱셈 연산보다 느린 이유

곱셈 연산

1100x 피승수
1011 승수

 

Booth 알고리즘

곱셈연산은 승수의 마지막 값(Q)과 이전 승수의 값(Q-1)의 비트를 판단 후    

1) 더하기 + 시프트  

2) 빼기 + 시프트

3) 시프트

위 셋 중 하나의 연산을 진행함

 

나눗셈

피제수의 비트들을 좌측에서부터 우측으로 차례대로 검사하여, 그 비트들이 나타내느 값이 제수보다 같거나 큰 경우가 될 때 재수가 피제수를 나눌 수 있게 될 때 까지 한 비트씩 이동하면서 검사를 반복한다.

그렇게 될 떄까지 몫으로는 좌에서 우로가면서 '0'을 채운다. 나눌 수 있게 되면, 몫의 해당 비트를 '1'로 쓰고, 부분 피제수의 값에서 제수를 뺀다.

 

결론

1. 나눗셈은 피제수가 제수에 의해 나눠지는지 확인하는 작업이 필요하다.

확인 방법은 제수를 왼쪽에서 오른쪽으로 옮겨가면서

[피제수-제수]의 결과가 0이 넘는지 확인을 해줘야한다. 

곱셈은 필요없다.

 

2. 곱셈은 때에 따라 싸이클 내에서 쉬프트 연산만 하지만

나눗셈은 무조건 빼기 연산을 해야한다.

 


출처

컴퓨터 구조론 4판

https://www.booksr.co.kr/product/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0%EB%A1%A0%EA%B0%9C%EC%A0%954%ED%8C%90%EC%A0%88%ED%8C%90/