※ Floating Point
실수(floating point)연산을 위한 단일 표준.
§ 2진 소수표현
위의 예시를 통해 유추할 수 있는 점은
- 우측으로 shift하면 2로 나눈 효과를,
- 좌측으로 shift하면 2를 곱한 효과를 얻는다.
☆나만의 계산법
※ Patriot Missile Defense:
Software Problem Led to System Failure at Dhahran, Saudi Arabia
1991.2.25일 1차 이라크 전쟁인 걸프전당시 이라크는 미국을 포함한 연합군에 스커드 미사일을 날렸고
미국은 기존의 지령유도 방식, 즉 미사일과 적 미사일을 별도의 레이더로 각각 추적하는 것에 비해 첨단 방공무기 중 하나인 패트리어트 미사일로 요격미사일을 발사하였다.
패트리어트 미사일은 미사일과 표적사이의 상대적인 속도나 방향을 더 확실히 알 수 있다는 점과
미사일 자체에 자신이 표적을 향해 어떻게 날아가야 할지 계산하는 고성능 CPU를 박아 넣을 필요는 없으므로 결국 소모품인 미사일 자체의 단가는 싸진다는 장점이 있다.
그러나 미사일이 자체적으로 표적에 어떻게 날아갈지 계산하는 유도기능은 없기 때문에 상대적으로 시간지연문제나 전파방해에 취약하며, 동시 교전능력을 늘리는데 있어 불리하였고, 결과적으로 요격에 실패해 미군기지 다란은 98명의 사상자가 발생하였다.
(미군이 자랑하는 첨단방공시스템 패트리어트가 구형 구소련제 스커트 미사일 요격에 실패한 것이다.)
후일 밝혀진 사실은 수치오차에 의한 것인데, 이에 대해 살펴보려 한다.
∴ 100h동안 0.1초씩 증가를 표현하면 (100*3600s * 0.1) * 근사값 = 약 0.34344초이므로
초속 2km의 스커드 미사일의 경우, 대략 700m정도의 오차가 발생해버리게 되는 것이다.
※ IEEE 표준 Floating Point
§ 소수 표현방법
이때, 인코딩은 exp에 따라 다음 3가지로 나뉜다.
- Normalized values: exp ≠ 00...0 && exp ≠ 11...1인 경우
- Denormalized values: exp = 00...0인 경우
- Special values: exp = 11...1인 경우
§ Normalized values (exp ≠ 000 . . . 0 && exp ≠ 111 . . . 1인 경우)
# 지수(E)로 exp 구하기.
- exp = E + bias(조정값)
- bias로 +, - 범위의 E값을 unsigned로 전환한다.
# 유효숫자(M)은 묵시적으로 1로 시작.
§ Denormalized values (exp = 000 . . . 0인 경우)
=> E = 1 - bias인 constant로 고정!
즉, 값을 결정하는 것은 M이 된다.
§ Special values (exp = 111 . . . 1인 경우)
※ IEEE 표준 Floating Point의 값의 분포와 Round-To-Even
§ 인접 짝수 모드 (Round-To-Even) _ 10진수
▶ 컴퓨터에서 사용하는 모드: Default 근사 모드
3.0 ---------------- 3.5 ---------------- 4.0 의 경우, 보통의 반올림을 진행하면 항상 값이 크게 오차가 발생한다.
default 근사모드로 인접한 짝수에 근사하게 하면, (3.5를 4.0에 근사, 4.5는 4에 근사하게 함) random하게 오차가 발생해
최종적으로 오차누적가능성이 확률적으로 줄어든다.
§ 인접 짝수 모드 (Round-To-Even) _ 2진수
'Computer System > System Programming' 카테고리의 다른 글
this->sysp(05). assembly language III [procedure] ★★★★ (0) | 2022.12.25 |
---|---|
this->sysp(04). assembly language II [제어문] (0) | 2022.12.24 |
this->sysp(03). assembly language I [mov] (0) | 2022.12.23 |
this->sysp(01). Data-Integer, [1 Byte = 8 bits] (0) | 2022.12.21 |
this->sysp(00). computer system (0) | 2022.12.21 |