320x100
본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다.
부동 소수점 덧셈
부동 소수점끼리 간의 덧셈을 한번 알아보자.
- F1과 F2의 hidden bit을 복구 시킨다. ex) F1이 011000....000이었다면 앞에 1이 숨겨져 1.011일 것이다.
- 이제 자릿 수를 맞춰준다.
- 자릿 수를 맞추는 방법 : E1과 E2 중에 큰 것을 고른다.(E1이라고 가정하자.) E1 - E2 만큼 F2를 right shift(나누기 2) 해준다. 표현할 수 없는 bit로 넘어가면 G R S bit를 사용해 Round nearest even(chapter 3.5 참고) 해준다.
- 여기서 F2를 즉, E가 더 작은 쪽을 right shift 하는 이유는 작은 쪽의 소수 부분 즉 F를 right shift해야 작은 쪽의 E가 커져서 자릿 수 맞춤이 되기 때문이다. (한번 아무 수나 예를 들어서 해보면 이해가 될 것이다.)
- F2와 F1을 더해 F3으로 만든다.
- F3을 정규화 한다.(1.xxx * 2^yyy )
- 정규화된 F3에 대해서 표현할 수 없는 bit로 넘어가면 G R S bit를 사용해 Round nearest even(chapter 3.5 참고) 해준다.
- F3와 E3를 사용해 다시 부동소수점 표현으로 바꾸어준다.
ex)
(0.5 = 1.0000 x 2^-1 ) + (-0.4375 = -1.1100 x 2^ -2 ) 를 구해보자.
1. hidden bit은 이미 복구되어있으니 냅둔다.
2. -2가 더 작으니 -1.1100을 right shift 1 해준다. 즉, -0.1110 0(G)0(R)0(S) x 2^-1 G가 0이므로 내림해준다. 즉, -0.1110 x 2^-1이 된다.
3. 1.0000 과 -0.1110을 더해준다. → 0.0001
4. 0.0001 x 2^-1 이므로 1.000 x 2^ -5 이 된다.
5. GRS는 모두 0이므로 정규화 완료!
부동 소숫점 덧셈은 정수 덧셈보다 더 복잡해서 더 많은 clock cylcle이 걸린다는 점을 알고 있도록 하자.
728x90
'CS > 컴퓨터 구조' 카테고리의 다른 글
[Chapter 3.8 컴퓨터 구조 및 설계] 연산에 있어서 겪을 수 있는 오류 및 함정 (0) | 2022.07.16 |
---|---|
[Chapter 3.7 컴퓨터 구조 및 설계] 부동 소수점 곱셈 (0) | 2022.07.15 |
[Chapter 3.5 컴퓨터 구조 및 설계] IEEE 754 부동 소수점 반올림과 근사 (0) | 2022.07.13 |
[Chapter 3.4 컴퓨터 구조 및 설계] 부동소수점 표현 Normalized Denormalized Form (0) | 2022.07.13 |
[Chapter 3.3 컴퓨터 구조 및 설계] 2진수 나눗셈, 나눗셈 하드웨어 (0) | 2022.07.12 |