[Computer architecture] Floating point

준치·2022년 3월 5일
0

[Computer architecture]

목록 보기
15/18

용어 정리

  • 가수부(F) : 부호와 소수가 있는 부분
  • 지수부(E) : 소수점의 위치를 결정하는 지수부분
  • floating point 표현 : F x 10^E

ex) +6132.789

  • 가수부 : +.6132789
  • 지수부 : +04
  • floating point 표현 : 0.6132789 x 10^04

ex) 2진수 1001.11

  • 가수부 : 01001110
  • 지수부 : 000100
    가수부의 MSB는 부호를 나타낸다. 0 : 양수 1 : 음수
  • floating point 표현 : +(0.1001110) x 2^+4

정규화(normalize) : 가수의 최상위 숫자가 0이 아닌 경우

ex) - 정규화된 수 : 0.350
- 정규화 안된 수 : 0.0035

floating point로 표현하면 레지스터가 수용할 수 있는 수의 범위가 증가한다. 하지만 그냥 수로 나타낼때와 서로 다른 수의 가지수는 동일하므로 정확도는 떨어진다.

산술 연산

add, sub

  • 소수점(radix point)정렬을 통해 계산
  • 지수 부분이 같아야 연산이 가능하다.

ex) .5372400 10^2 + .1580000 10^-1

  • 큰 수를 왼쪽 시프트 해서 최상위 비트를 잃어버리거나 작은 수를 오른쪽 시프트 해서 최하위 비트를 잃어버리는 방법이 있다.
  • 최상위 비트를 잃을 경우 오류가 발생하기 때문에 보통 최하위 비트를 잃어버리는 방법을 사용한다. 이 방법은 정밀도를 떨어뜨린다.
  • 계산 후 overflow가 발생할 경우 그 합을 오른쪽 쉬프트 하고 지수를 하나 증가시켜 정정한다.
  • 계산 결과가 정규화되지 않은 값이라면 정규화시켜준다.

ex) .00350 x 10^5 == .35000 x 10^3

곱셈과 나눗셈의 경우 지수를 맞출 필요가 없다.

Reference

[1] M. Mano Logic and Computer Design Fundamentals, 5th Edition⌟ , chapter 9
profile
설계 엔지니어 지망생

0개의 댓글