일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- LG Aimers 4th
- gpt
- LG Aimers
- 오블완
- 딥러닝
- deep learning
- 티스토리챌린지
- ChatGPT
- 분류
- LLM
- 머신러닝
- Machine Learning
- 해커톤
- supervised learning
- 회귀
- PCA
- AI
- OpenAI
- 지도학습
- regression
- LG
- Classification
- GPT-4
Archives
- Today
- Total
SYDev
[컴퓨터 구조] Lecture 10: Arithmetic for Computers 본문
경희대학교 김정욱 교수님의 컴퓨터 구조 강의 내용을 기반으로 한 정리글
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이 먼저 나오면 큰 수라고 판단한다.
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
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
'3학년 1학기 전공 > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Lecture 12: The Processor (0) | 2024.05.05 |
---|---|
[컴퓨터 구조] Lecture 11: Arithmetic for Computers (0) | 2024.04.21 |
[컴퓨터 구조] Lecture 09: Arithmetic for Computers (0) | 2024.04.13 |
[컴퓨터 구조] Lecture 08: Instructions - Language of the Computer (0) | 2024.04.13 |
[컴퓨터 구조] Lecture 07: Instructions - Language of the Computer (0) | 2024.04.05 |