10-7 부동소수점 (Floating-Point) 계산 컴퓨터에서 숫자를 표기하는 방법 가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent 10 진 부동소수점은 F X 10 E 의 형태로 표기 가수와 지수만이 컴퓨터 레지스터에 물리적으로 표현되어 저장된다 2 진 부동소수점 ( 예 ) 2 진수 을 8-bit 가수와 6-bit 지수로 표기하면 Fraction Exponent 가수 왼쪽의 “0” 은 양수 표시. 가수의 소수점은 부호 비트 다음에 위치 가수의 최상위 BIT 가 “0” 이 아니면 정규화 (nomalized) 라고 말한다 X10 +4 FX2 E = +( )X2 +4
부동소수점계산 ( 계속 ) 48-bit 레지스터의 경우 1-bit 는 부호비트 예약 부호화된 정수의 범위 : 약 ± 10 14, 즉 ±(2 47 – 1) 48-bit 의 부동소수의 경우 부호 1 비트, 가수 35 비트, 지수 12 비트로 사용 가장 큰 양의 수와 음의 수는 ± ( ) X 개의 1 로 된 가수와 11 개의 1 로 된 지수. 최대지수는 (2 11 – 1) 로서 2047 이다. 가장 큰 수는 약 이다
산술연산 Radix point ( 기수점 ) 정렬 : 지수 부분이 같아질 때 까지 하나의 가수를 자리 이동시킴 ( 예 ) X X 작은 지수값을 갖는 가수를 지수와의 차이만큼 자리 이동 X X X X X X 10 5 정규화 시켜준다 X 10 3 으로 만들기 위해 왼쪽으로 두 번 자리이동
Biased Exponent 가수는 signed-magnitude 방법으로 표기 지수는 biased exponent 사용. 지수에 더해지는 초과숫자 (excess number), 모든 지수는 양수 ( 예 ) -99 에서 99 까지 범위를 갖는 10 진 지수의 경우 초과 바이어스를 99 로 하면, biased exponent e = E + 99 ; E 는 실제 지수 If E = -99, then e = = 0 If E = +99, then e = = 198 In biased register, exponent is from “000” to “198” Biased positive exponent is 099 – 198 의 범위. Biased negative exponent is 098 – 000 의 범위
표준 operand format ADDF ; 부동소수점 숫자를 데이터로 사용하는 명령어 32-bit single precision (1 배 정밀도 ) 64-bit double precision (2 배 정밀도 ) IEEE single-precision operand format S : sign bit ( 가수의 부호 ) e : biased exponent ( 바이어스된 지수 ) ; 127 을 excess number 로 사용 f : fraction ( 가수 ) Fig IEEE 부동소수점 오퍼런드 형식
표준 operand format ( 계속 ) Binary point (2 진 소수점 ) 은 f 영역의 최상위 bit 바로 옆에 있다고 가정 추가로 format 에 없는 “1” bit 가 2 진 소수점 왼편에 삽입 에서 1.111….1 2 까지의 값을 나타내는 24-bit 가 된다. Significand 2 진 소수점 옆에 추가로 붙은 “1” 과 가수부로 구성된 2 진 부동소수점 수자 f FieldSignificandDecimal equivalent 100… … … … … … F Field 가 정규화되어 있지 않더라도 significand 는 최상위 bit 위치에 “0” 이 아닌 수자가 오므로 항상 정규화되어 있다. 산술연산시 H/W 에 의해 삽입된다.
표준 operand format ( 계속 ) Excess number 127 사용 유효지수범위 : -126( ) 에서 +127( ) ( 표 9-6) 는 일부 지수들의 바이어스된 값과 실제 값임 Tab Bias 지수의 계산
표준 operand format ( 계속 ) Format 에 의한 normalized number 의 표현식 (-1) s 2 e-127 X (1.f) 최대의 양의 숫자 : s=0, biased exponent=254, f= 23 “1” E= =127, significand = So, 최대 가능한 양수는 X ( ) 이 된다 정규화된 최소의 양의 값 biased exponent = , 가수는 모두 “0” E= = -126, significand = 1.0 So, 최소 양의 수 는 이다 음수는 부호비트가 음수이고 나머지는 같다
표준 operand format ( 계속 ) 지수가 모두 “0” 이거나 “1”( 십진수 255) 인 경우 1. e=255, f=0 일때, 이 숫자는 양이나 음의 무한대. 부호는 s 가 결정 2. e=255, f≠0 일때, 비숫자 (not a number) 로 간주. “0” 에 무한대를 곱한 것과 같이 유효하지 않은 연산 의미 3. e=0, f=0. +0 or -0 을 의미 4. e=0, f≠0, 정규화되지 않은 숫자 (denormalized). 정규화된 가장 작은 숫자보다 더 작은 숫자 의미