Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[컴퓨터 구조] Lecture 10: Arithmetic for Computers 본문

3학년 1학기 전공/컴퓨터 구조

[컴퓨터 구조] Lecture 10: Arithmetic for Computers

시데브 2024. 4. 19. 01:10
경희대학교 김정욱 교수님의 컴퓨터 구조 강의 내용을 기반으로 한 정리글

 

Floating Point

-> 위 코드는 멈추지 않고, 무한하게 반복된다.

 

  • 부동소수점(floating point) 방식: 실수 표현 방식으로, 소수점 위치를 고정하지 않고 -> 유효숫자를 나타내는 가수 부분, 소수점의 위치를 풀이하는 지수 부분으로 나누어 표현

normalized scientific notation

  • 소수점 앞의 수는 1자리 수여야 한다.
  • 소수점 바로 앞 1자리수는 1~9 사이의 값이어야 한다.
  • 뒤에 곱해지는 형태는 지수 형태

Three advantages

  • 소수점의 위치를 변경하는 것이 가능하다.
  • 모든 소수점 표현 알고리즘이 같은 형태를 공유하고 있기 때문에, 지속성을 유지한다.
  • 워드에 저장되는 숫자의 정확도를 높인다.

 

Floating point representation

single precision

  • 32비트의 데이터만으로는 음수, 양수, int, float 판별 불가능 -> instruction을 통해서 정체성 부여
  • sign(1bit): 0일 때 양수, 1일 때 음수
  • fraction(23 bits): 소수점 아래 value
  • exponential(8 bits): 지수 부분 value 

problem of the single precision

  • overflow, underflow

double precision

  • 64bits
  • s(1bit), exponent(11bits), fraction(52bits)
  • 메모리 상에서 2word 단위로 이동

 

  • single precision: 실질적 길이 24 bits(1 + 23)
  • double precision: 실질적 길이 53 bits(1 + 52)

 

IEEE 754

  • 부동소수점을 표현하는 가장 널리 쓰이는 표준어

Problem 1 - Comparison two values

  • 음수와 양수의 지수 비교가 어려움
  • 컴퓨터는 큰 수를 판단하기 위해 왼쪽 비트부터 읽어서, 1이 먼저 나오면 큰 수라고 판단한다.

https://inyongs.tistory.com/40

Problem 2 - Hard to handle the exceptional cases

  • exceptional case(전부 0이나 1인 경우) 고려해줘야 함 -> exponent: 00 ... 00(2진수)/ 11 ... 11(2진수)

 

Biased notation 

  • bias value(single precision) = 127 -> -1은 -1 + 127 혹은 126 = 01111110으로 표현된다.
  • bias value(double precision) = 1023
  • bias와 exponent의 크기 차이 해석해서 부호를 결정

Range(single precision)

  • The smallest value: 1 - 127 = - 126 = 0000 0001(-127이 있다고 생각하고 1만 표현)
  • Exponent값 0000 0000과 1111 1111은, 0과 무한을 표현하기 위해 비워둔다.
  • (+ or -)1.00000000000000000000000 X 2^(-126)
  • The largest value: 1111 11110 -> 254 - 127 = 127
  • (+ or -)1.11111111111111111111111 X 2^(127)

Range(double precision)

  • The smallest value: 1 - 1023 = -1022 = 00000000001
  • 1.000 ... 000 X 2^(-1022)
  • The largest value: 2046 - 1023 = 1023 = 111111111110
  • 1.111 ... 111 X 2^(1023)

Zero

  • Exponent: 00..00 & Fraction: 0인 경우 0으로 정의됨
  • 1.0000 0000 0000 0000 0000 000 X 2^(-127)

Denormalized number

  • 표현할 수 있는 범위보다 작은 수를 표현할 때
  • 0이나 0에 가까운 소수값
  • floating point에서 0을 표시하기 위한 수단
  • Exponent: 00..00, Fraction: Nonzero
  • Exponent 자리에 1이 들어갔다 생각 -> Exponent - Bias = - 126 -> normalized와 부드럽게 이어지게 하기 위해서
  • https://ttl-blog.tistory.com/973
 

[시스템 프로그래밍] 소수의 표현 (부동소수점)

컴퓨터에서는 소수를 표현하기 위해 부동소수점 표현을 사용합니다. 부동소수점 표현은 $V = x \times 2^{y}$ 형태의 소수를 인코딩합니다. 현재 대부분의 컴퓨터는 IEEE 부동소수점 표준 의 방식을

ttl-blog.tistory.com

 

Infinite

  • Exponent: 11...11, Fraction: 0

NaN(Not a Number)

  • Exponent: 11...11, Fraction: Nonzero

 

-0.75ten
= -3ten/4ten
= -11two/(2^2)ten
= -0.11two

normalized scientific notation
-0.11two = -0.11two X 2^0 = -1.1two X 2^(-1)

 

Floating Point Addition

 

Floating Point Multiplication