본문 바로가기
2-2 학기/Computer Organization

[컴퓨터구조] Lec8 Multiplication

by bona.com 2023. 10. 30.

Multiplication

첫 번째 피연산자는 multiplicand(피승수)라 부르고, 두 번째 피연산자는 multiplier(승수)라고 부른다.

💡multiplier가 1이면 multiplicand를 더하고 multiplier가 0이면 0을 더한다. (즉, 덧셈을 하지 않는다.)

 

1️⃣곱셈 하드웨어

매 단계마다 multiplicand를 왼쪽으로 한 자리씩 이동시키고 필요하면 중간 결과에 더해주는 식으로 계산되어야 한다.

* 32비트 muliplicand가 왼쪽으로 32번 이동해야 하기 때문에 64비트 레지스터가 필요한 것이다.

2️⃣Second version 하드웨어

첫 번째 하드웨어와의 다른 점은 multiplicand 레지스터, multiplier 레지스터, ALU 전부 32비트이고, 곱 레지스터만이 64비트이다.

multiplier의 비트가 1이면 multiplicand가 곱 레지스터의 상위 32비트에 더해지고,

이번에는 곱 레지스터가 오른쪽으로 자리이동(shift right)하며,  multiplier도 오른쪽으로 자리이동(shift right)한다.

여기서 보면 Product의 오른쪽 부분이 낭비가 되는 것을 볼 수 있다. 그래서 Multiplier를 Product의 오른쪽 부분을 채운 수정된 버전도 있다. 다음과 같다.

 

3️⃣Refined version 하드웨어

위의 하드웨어를 통해 별도의 multiplier 레지스터는 없어진 것을 볼 수 있다.

(대신 multiplier를 곱 레지스터의 오른쪽 절반에 넣는다.)

4️⃣부호 있는 곱셈

Booth’s Algorithm: 부호가 있는 숫자의 계산

 

부호가 있기 때문에 arithmetic shift를 해야 한다.

음수인지, 양수인지에 따라서 1이 들어갈지, 0이 들어갈지가 결정난다.

 

  • 00, 01: 계산 없음
  • 01: 더하기
  • 10: 빼기

2개의 비트씩 검사를 해야 하는데 위의 예시에서는 4비트짜리 곱하기기 때문에 0을 뒤에 하나 더 붙여서 4번 검사를 할 수 있게 만든다.