CS
[컴퓨터 구조] 나눗셈 연산이 곱셈 연산보다 느린 이유
스스배
2024. 1. 6. 22:17
나눗셈 연산이 곱셈 연산보다 느린 이유
곱셈 연산
1100x | 피승수 |
1011 | 승수 |
Booth 알고리즘
곱셈연산은 승수의 마지막 값(Q)과 이전 승수의 값(Q-1)의 비트를 판단 후
1) 더하기 + 시프트
2) 빼기 + 시프트
3) 시프트
위 셋 중 하나의 연산을 진행함
나눗셈
피제수의 비트들을 좌측에서부터 우측으로 차례대로 검사하여, 그 비트들이 나타내느 값이 제수보다 같거나 큰 경우가 될 때 재수가 피제수를 나눌 수 있게 될 때 까지 한 비트씩 이동하면서 검사를 반복한다.
그렇게 될 떄까지 몫으로는 좌에서 우로가면서 '0'을 채운다. 나눌 수 있게 되면, 몫의 해당 비트를 '1'로 쓰고, 부분 피제수의 값에서 제수를 뺀다.
결론
1. 나눗셈은 피제수가 제수에 의해 나눠지는지 확인하는 작업이 필요하다.
확인 방법은 제수를 왼쪽에서 오른쪽으로 옮겨가면서
[피제수-제수]의 결과가 0이 넘는지 확인을 해줘야한다.
곱셈은 필요없다.
2. 곱셈은 때에 따라 싸이클 내에서 쉬프트 연산만 하지만
나눗셈은 무조건 빼기 연산을 해야한다.
출처
컴퓨터 구조론 4판