Computer Architecture 3장 제3장 컴퓨터 산술과 논리 연산 산술적 계산과 논리적 계산 - ALU에서 처리 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.1 ALU의 구성요소 <CPU 내부> 산술 연산장치 + - 수행 논리 연산장치 AND, OR, XOR, NOT Shift register bit들의 왼(오른)쪽 shift Complementor 2의 보수(음수화) Status register 연산 결과의 상태의 flag 저장 2018-12-31 Computer Architecture 3장
3.2 정수의 표현 Fixed Point vs. Floating Point Binary Number System 00000000 = 0 00000001 = 1 10000000 = 128 10진수 -13.625 2진수 -1101.101 부호와 소수점 저장은 어떻게 하는 가? Fixed Point Representation vs. Floating Point Representation (고정 소수점 표현 vs. 부동 소수점 표현) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 N진법의 수 a3a2a1.b1b2b3를 10진법으로의 변환 (a3a2a1.b1b2b3 )2 예) 이진수 (1011.01)2 10진수를 2진수를 변환하는 방법 (fixed point 방법으로 표현할 경우) 먼저 수를 정수부와 소수부로 분리시키어 처리 예) 13.75 정수부 13은 2로 나눈 후 나머지 값들 처리 소수부 0.75에 2를 곱하여 소수부 윗자리를 비교하여 처리 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 10진수 23.625를 2진수로 변환 정수부 23과 소수부 0.625를 분리 정수부 23 은 계속 2로 나누어 나머지를 구함. 10111 소수부 0.625는 계속 2를 곱하여 소수점 윗자리를 구함. 0.101 따라서 10진수 23.625는 2진수 10111.101 2018-12-31 Computer Architecture 3장
정수의 표현 (Fixed Point Representation) 정수는 양의 정수와 음의 정수가 있으므로 이를 모두 표현할 수 있는 2진 표현 필요 n bit로 정수 표현 최상위 비트는 부호 비트, 그 이하 나머지 n-1개 비트는 수의 정보 정수 표현 방법 signed magnitude (부호화 크기 표현) signed 1’s complement (부호화 1의 보수 ) signed 2’s complement (부호화 2의 보수) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 예제) -7을 부호를 포함하여 5비트로 표현하라. +7은 5비트 크기로 0111이므로 signed magnitude : 1 0111 signed 1’s complement : 1 1000 signed 2’s complement : 1 1001 위와 같이 8비트로 정수를 표시할때 3방식에서 각각 표현 가능한 수의 범위 표시 signed magnitude : signed 1’s complement : signed 2’s complement : 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 8-비트 보수로 표현된 정수들 8-비트 2진수로 표현할 수 있는 10진수의 범위 1의 보수 : - (27 - 1) ∼ + (27 - 1) 2의 보수 : - 27 ∼ + (27 - 1) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.2.2 보수 (Complement) 표현 음의 정수를 나타내기 위해 보수의 표현이 사용 2진수 체제에서는 1의 보수(1’s complement)와 2의 보수(2’s complement)가 있음. 1의 보수 : 각 자리의 수가 1이면 0으로, 0이면 1로 변환 -9 : 2의 보수 : 1의 보수에서 1을 더함 2018-12-31 Computer Architecture 3장
(Signed) 2’s complement 로 표현된 10101110을 10진수 변환 ? 이것을 다시 2의 보수로 표현(양수) 01010010 10진수로 변환 시킴 82 음 (-) 부호를 붙인다. -82 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 2’s complement 로 표현 덧셈 연산 두 수를 더하고, 만약 carry 발생하면 버림 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.2.3 비트 확장 (Bit Extension) 데이터의 길이(비트 수)를 늘리는 방법 목적: 데이터를 더 많은 비트의 레지스터에 저장하거나 더 긴 데이터와의 연산 수행 [예] 8-비트 데이터를 16-비트 데이터로 확장 부호화-크기 표현의 경우 : 부호 비트를 맨좌측 위치로 이동시키고, 그 외의 비트들은 0으로 채운다 +21 = 00010101 (부호화-크기, 8 비트) +21 = 0000000000010101 (부호화-크기, 16 비트) -21 = 10010101 (부호화-크기, 8 비트) -21 = 1000000000010101 (부호화-크기, 16 비트) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.2.3 비트 확장 (Bit Extension) 2의 보수 표현의 경우 : 확장되는 상위 비트들을 부호 비트와 같은 값으로 세트 = 부호 비트 확장(sign-bit extension) +21 = 00010101 (2의 보수, 8 비트) +21 = 0000000000010101 (2의 보수, 16 비트) -21 = 11101011 (2의 보수, 8 비트) -21 = 1111111111101011 (2의 보수, 16 비트) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.3 논리 연산 기본적인 논리 연산들 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 논리연산을 위한 H/W 모듈 하드웨어의 구성 입력 비트들은 모든 논리 게이트들을 통과 출력 선택 신호들에 의하여 멀티플렉서의 네 입력들 중의 하나를 출력 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 4-bit 논리 연산 장치 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 논리 연산 AND 연산 A = 1011 0101 B = 0011 1011 0011 0001 (연산 결과) OR 연산 A = 1001 0101 B = 0011 1011 1011 1111 (연산 결과) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 논리 연산 XOR 연산 A = 1001 0101 B = 0011 1011 1010 1110 (연산 결과) NOT 연산 A = 0110 1010 (연산 후) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 논리 연산 Selective-set 연산 A = 1001 0010 B = 0000 1111 A = 1001 1111 (연산 후) Selective-complement A = 1001 0101 A = 1001 1010 (연산 후) OR 연산과 동일 XOR 연산과 동일 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 논리 연산 Mask 연산 A = 1001 0101 B = 0000 1111 A = 0000 0101 (연산 후) selective clear ? 비교(compare) 연산 A = 1101 0101 B = 1001 0110 A = 0100 0011 (연산 후) (결과값의 모든 비트가 0이면 ?) AND 연산과 동일 XOR 연산과 동일 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 논리 연산 삽입(Insert)연산 A = 1001 0101 1110 0101 (으로 하기를 원함!) Mask 연산 후 OR 연산 수행 A = 1001 0101 B = 0000 1111 (마스크 연산) A = 0000 0101 (첫번째 결과) B = 1110 0000 (OR 연산) A = 1110 0101 (최종 삽입 연산 결과) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.4 쉬프트(shift) 연산 논리적 쉬프트 (logical shift) : 레지스터내의 데이터 비트들을 왼쪽 혹은 오른쪽으로 한 칸씩 이동 좌측 쉬프트(left shift) 모든 비트들을 좌측으로 한 칸씩 이동 최하위 비트(A1)로는 0 이 들어오고, 최상위 비트(A4)는 버림 우측 쉬프트(right shift) 모든 비트들이 우측으로 한 칸씩 이동 최상위 비트(A4)로 0이 들어오고, 최하위 비트(A0)는 버림 2018-12-31 Computer Architecture 3장
쉬프트 레지스터 (shift register) 각 클럭펄스에 의해 정확히 한 비트 이동 각 클럭펄스 마다 외부직렬 입력값이 첫번째 f/f으로 입력 각 f/f의 출력 값이 이동할 방향의 다음 f/f입력으로 전달 D f/f 사용 2018-12-31 Computer Architecture 3장
쉬프트 레지스터 (shift register) 쉬프트 연산 기능을 가진 레지스터 2018-12-31 Computer Architecture 3장
순환 쉬프트(circular shift) 순환 쉬프트(circular shift) : 회전(rotate)이라고도 부르며, 최상위 혹은 최하위에 있는 비트를 버리지 않고 반대편 끝에 있는 비트 위치로 이동 순환 좌측-쉬프트(circular shift-left) 최상위 비트인 A4가 최하위 비트 위치인 A1으로 이동 순환 우측-쉬프트(circular shift-right) A4 A3, A3 A2, A2 A1, A1 A4 2018-12-31 Computer Architecture 3장
직렬 데이터 전송 (serial data transfer) 직렬 데이터 전송 : 쉬프트 연산을 데이터 비트 수만큼 연속적으로 수행함으로써 두 레지스터들 사이에 한 개의 선을 통하여 전체 데이터를 이동하는 동작 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 4-비트 레지스터들 간의 직렬 전송의 예 2018-12-31 Computer Architecture 3장
산술적 쉬프트 (arithmetic shift) 수(number)를 나타내는 데이터에 대한 Shift 동작 방법: shift 과정에서 부호 비트는 그대로 유지시키고, 수의 크기를 나타내는 비트들만 shift 됨. (1) 산술적 좌측-쉬프트(arithmetic shift-left) : 2배 A4 (불변), A3 A2, A2 A1, A1 0 (2) 산술적 우측-쉬프트(arithmetic shift-right) : ½ 배 A4 (불변), A4 A3, A3 A2, A2 A1 [예] A = 1 1 1 0 (-2) ; 초기 상태 1 1 0 0 (-4) ; 산술적 좌측-쉬프트 결과 1 1 1 0 (-2) ; 산술적 우측-쉬프트 결과 1 1 1 1 (-1) ; 산술적 우측-쉬프트 결과 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 정수의 덧셈과 뺄셈 음수를 2의 보수로 표현하면 뺄셈 및 덧셈을 모두 덧셈으로 가능. A - 양수 = A + 음수 예) 10 - 5 = 10 + (-5) A - 음수 = A + 양수로 바꿔 처리 가능 예) 10 - (-5) = 10 + 5 2018-12-31 Computer Architecture 3장
양수-양수(=양수+음수; 결과가 양수가 되는 경우) 양수 + 음수 ( 양수의 절대값이 음수의 절대값보다 큰 경우) 예) 13-7 = 13+(-7) +13 : 0 1101 + -7 : 1 1001 ------------------------- 6 : 10 0110 2018-12-31 Computer Architecture 3장
양수-양수(=양수+음수;결과가 음수가 되는 경우) 양수+음수(양수의 크기가 음수의 절대값보다 작은 경우) 예) 7-13 = 7+ (-13) +7 : 0 0111 + -13 : 1 0011 ------------------------- -6 : 1 1010 2018-12-31 Computer Architecture 3장
양수+양수(overflow가 없는 경우) 예) 6 + 7 +6 : 0 0110 + +7 : 0 0111 ------------------------- +13 : 0 1101 2018-12-31 Computer Architecture 3장
양수+양수(overflow 가 있는 경우) 예) 13 + 7 +13 : 0 1101 + +7 : 0 0111 ------------------------- +20 : 1 0100 2018-12-31 Computer Architecture 3장
음수+음수(overflow 가 없는 경우) 예) -6 + (-7) -6 : 1 1010 + -7 : 1 1001 ------------------------- -13 : 11 0011 2018-12-31 Computer Architecture 3장
음수+음수(overflow 가 있는 경우) 예) -13 + (-7 ) -13 : 1 0011 + -7 : 1 1001 ------------------------ -20 : 10 1100 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 Overflow 연산결과 데이터 표현 범위를 초과하여 잘못된 결과 산출 검출 방법 두 올림수(carry)들 간의 exclusive-OR를 이용 V = C4 C5 덧셈에서 오버플로우가 발생하는 예 2018-12-31 Computer Architecture 3장
병렬 가산기(parallel adder) 덧셈을 수행하는 하드웨어 모듈 비트 수만큼의 전가산기(full-adder)들로 구성 덧셈 연산 결과에 따라 해당 조건 플래그들(condition flags)을 세트 C 플래그 : 올림수(carry) S 플래그 : 부호(sign) Z 플래그 : 0(zero) V 플래그 : 오버플로우(overflow) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 4-bit 병렬가산기 & 상태레지스터 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 덧셈과 뺄셈 논리회로 구현 보수기 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 덧셈과 뺄셈 겸용 하드웨어의 블록 구성도 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부호 없는 정수의 곱셈 부호 없는 정수의 곱셈 각 비트에 대하여 부분 적(partial product) 계산 부분적들을 모두 더하여 최종 결과를 얻음 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부호 없는 정수 승산기의 하드웨어 구성도 M 레지스터 : 피승수(multiplicand) 저장 Q 레지스터 승수(multiplier) 저장 두 배 길이의 결과값은 A 레지스터와 Q 레지스터에 저장 1101 1011 0000 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 곱셈이 수행되는 과정에서의 레지스터내용들 1101 1011 0000 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 2의 보수들 간의 곱셈 Booth 알고리즘(Booth's algorithm) 사용 원리 Multiplier 값이 0이면 : shift 수행 Multiplier 값이 2k ~2m 값이 1이면: 2k+1 -2m 예) 001110(+14) 는 23 ~21 (k=3,m=1) 24 -21=14로 나타낼 수 있다. M x 14는 M x 24 - M x21 즉 multiplicand M을 4회 left shift한 값을 M을 1회left shift한 값을 빼면 됨. -14 ? 2018-12-31 Computer Architecture 3장
Booth 알고리즘 (Booth's algorithm) 하드웨어 구성 부호 없는 정수 승산기의 하드웨어에 다음 부분을 추가 M 레지스터와 병렬 가산기 사이에 보수기(complementer) 추가 Q 레지스터의 우측에 Q-1 이라고 부르는 1-비트 레지스터를 추가하고, 출력을 Q0와 함께 제어 회로로 입력 2018-12-31 Computer Architecture 3장
Booth algorithm에 대한 H/W 1001 0011 4 Q0 Q-1 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 Booth 알고리즘의 흐름도 2018-12-31 Computer Architecture 3장
Booth 알고리즘을 이용한 곱셈의 예 (-7x3) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 3.5.4 나눗셈 나눗셈의 수식 표현 1001 D ÷ V = Q --- R 단, D = 피젯수(dividend), V = 젯수(divisor), Q = 몫(quotient) V = 젯수(divisor), R = 나머지 수(remainder) 부호 없는 2진 나눗셈 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부호 없는 2진 나눗셈 알고리즘의 흐름도 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 2의 보수 나눗셈 과정 [초기 상태] 젯수는 M 레지스터에, 피젯수는 A와 Q 레지스터에 저장 [사이클 1] A와 Q 레지스터를 좌측으로 한 비트씩 쉬프트 [사이클 2] 만약 M과 A의 부호가 같으면 A A - M, 다르면 A A + M을 수행한다. [사이클 3] 연산 전과 후의 A의 부호가 같으면 위의 연산은 성공 연산이 성공이거나 A = 0 이면, Q0 1로 세트 연산이 실패이고 A ≠ 0 이면, Q0 0으로 하고 A를 이전의 값으로 복구 [사이클 4] Q에 비트 자리 수가 남아있다면, 단계 2에서 4까지를 반복 [사이클 5] 나머지 수는 A. 만약 젯수와 피젯수의 부호가 같으면 몫은 Q의 값이고, 그렇지 않으면 Q의 2의 보수가 몫 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 2의 보수 나눗셈의 예 (7 ÷ (-3)) 2018-12-31 Computer Architecture 3장
3.6 부동 소수점 표현 (Floating Point Representation) 부호를 포함한 8비트 : -128 ~ +127 부호를 포함한 16비트 : -32768 ~ + 32767 십진수 1,000,000,000,000,000,000,000를 표현하기 위해서는 70비트 이상이 필요 그러나 이 수를 로 표현한다면 적은 수의 십진수를 적은 수의 비트로 표현이 가능 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동 소수점 수 표현 수의 유효 자릿수들을 부호화된 고정 소수점 수로 나타내는 가수부(mantissa)와 소수점의 위치를 나타내는 지수부(exponent)로 표현 예를 들어 십진수 1234.56은 로 표현 유효수 123456 (가수부 : 소수점은 왼쪽에 있다고 가정) 지수 4 부동 소수 표현은 유효수와 지수만으로 가능 2018-12-31 Computer Architecture 3장
예) 2진수 1010.101을 15비트의 지수와 17비트의 가수(부호비트포함)로 표현 하면? 1010.101 = 0.1010101 가수부는 부호 비트를 포함하여 01010101 지수부는 00000100 S 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 수의 표현 부동소수점 표현(floating-point representation) : 소수점의 위치를 이동시킬 수 있는 표현 방법 부동소수점 수(floating-point number)의 일반적인 형태 N = (-1)S M × BE 단, S: 부호(sign), M: 가수(mantissa), B: 기수(base), E: 지수(exponent) 2진 부동소수점 수(binary floating-point number) 기수 B = 2 단일-정밀도(single-precision) 부동소수점 수 : 32 비트 복수-정밀도(double-precision) 부동소수점 수 : 64 비트 2018-12-31 Computer Architecture 3장
단일-정밀도 부동소수점 수 형식의 예 (single & double precision) S: 1 비트, E: 8 비트, M: 23 비트 지수(E) 필드의 비트 수가 늘어나면, 표현 가능한 수의 범위 확장 가수(M) 필드의 비트 수가 늘어나면, 정밀도(precision) 증가 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 같은 수에 대한 부동소수점 표현 같은 수에 대한 부동소수점 표현이 여러 가지 존재 0.1101 × 25 110.1 × 22 0.01101 × 26 정규화된 표현(normalized representation) 수에 대한 표현을 한 가지로 통일하기 위한 방법 ± 0.1bbb...b × 2E 위의 예에서 정규화된 표현은 0.1101 × 25 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 비트 배열의 예 (0.1101 × 25) 부호(S) 비트 = 0 지수(E) = 00000101 가수(M) = 1101 0000 0000 0000 0000 000 소수점 아래 첫 번째 비트는 항상 1이므로, 저장할 필요가 없음 가수 23비트를 이용하여 소수점 아래 24 자리 수까지 표현 가능 2018-12-31 Computer Architecture 3장
Biased number (Biased Exponent) sign bit가 같을 경우 지수로서 수의 크기 판단. Sign bit 옆에 exponent부분이 붙어있는 이유임. 지수가 음수일 경우? 수의 크기를 빨리 결정하기 어렵다. 2’complement된 음수를 양수보다 큰 수로 보일수 있다. 잦은 0 test에 대한 해결책? 지수가 매우 큰 음수라면? 0에 가까워짐. Exponent부분에 부호 비트가 필요 없다. 실제 지수 값에 바이어스 값을 더해서 표현함. 예) bias 값이 128일 경우 실제 지수 값이 +2이면 exponent에는 10000010 실제 지수 값이 -2이면 exponent에는 01111110 2018-12-31 Computer Architecture 3장
예) N= -13.625에 대한 부동소수점 표현 (실제 메모리/레지스터에 표현되는 형태) -13.62510 = - 1101.101 = - 0.1101101 24 음수 이므로 부호 비트(S)는 1 지수(E : 바이어스 128) 00000100 + 10000000 = 10000100 가수(M) 1101101 (여기서 첫번째 1은 생략 가능) 1 Sign bit (+ : 0 - : 1) 14 15 30 31 Exponent Mantissa 000000010000100 1101101000000000 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 8-비트 바이어스된 지수값들 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 수의 표현 범위 부동소수점 수의 표현 범위 0.5 × 2-128에서 (1 - 2-24) × 2127 사이의 양수들 (대략 1.47 x 10-39 ~ 1.7 x 1038) -(1 - 2-24) × 2127 에서 -0.5 × 2-128 사이의 음수들 지수 오버플로우(exponent overflow) 양의 지수값이 최대 지수값을 초과 수가 너무 커서 표현될 수 없는 상태이므로, +∞ 또는 -∞로 세트 지수 언더플로우(exponent underflow) 음의 지수값이 최대 지수값을 초과 수가 너무 작아서 표현될 수 없는 상태이므로, 0으로 세트 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 수의 표현 범위 제외되는 범위 (1-2-24) × 2127보다 작은 음수 음수 오버플로우(negative overflow) 0.5 × 2-128 보다 큰 음수 음수 언더플로우(negative underflow) 0.5 × 2-128 보다 작은 양수 양수 언더플로우(positive underflow) (1 - 2-24) × 2127 보다 큰 양수 양수 오버플로우(positive overflow) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 32-비트 데이터 형식의 표현 가능한 수의 범위 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 수의 표현 범위 가수 언더플로우(mantissa underflow) 가수의 소수점 위치 조정 과정에서 비트들이 가수의 우측 편으로 넘치는 경우 반올림(rounding) 적용 가수 오버플로우(mantissa overflow) 같은 부호를 가진 두 가수들을 덧셈하였을 때 올림수가 발생하는 경우 재조정(realignment) 과정을 통하여 정규화 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 IEEE 754 표준 부동소수점 수의 형식 부동소수점 수의 표현 방식의 통일을 위하여 미국전기전자공학회(IEEE)에서 정의한 표준 표현 방법 N = (-1)S 2E-127 (1.M) 가수 : 부호화-크기 표현 사용 지수 필드 : 바이어스 127 사용 1.M × 2E의 형태를 가지며, 소수점 아래의 M 부분만 가수 필드에 저장 (소수점 왼쪽의 표현되지 않는 1을 hidden bit라고 지칭) 64-비트 복수-정밀도 부동소수점 형식을 사용하는 경우 N = (-1)S 2E-1023 (1.M) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 IEEE 754 표준 부동소수점 수의 형식 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 예외 경우를 포함한 IEEE 754 표준 예외 경우를 포함한 정의 (32-비트 형식) 만약 E = 255이고 M ≠ 0이면, N = NaN(Not a number) 만약 E = 255이고 M = 0이면, N = (-1)S ∞ 만약 0 < E < 255 이면, N = (-1)S 2E-127 (1.M) 만약 E = 0이고 M ≠ 0이면, N = (-1)S 2-126 (0.M) 만약 E = 0이고 M = 0이면, N = (-1)S 0 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 IEEE 754 표현 예 (N = - 13.625 ) 13.62510 = 1101.1012 = 1.101101 × 23 부호(S) 비트 = 1 (-) 지수 E = 00000011 + 01111111 = 10000010 (바이어스 127을 더한다) 가수 M = 10110100000000000000000 (소수점 좌측의 1은 제외한다) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 덧셈 / 뺄셈 덧셈과 뺄셈 지수들이 일치되도록 조정 (alignment) 가수들 간의 연산(더하기 혹은 빼기) 수행 결과를 정규화 (normalization) 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 덧셈의 파이프라이닝 단계 수만큼의 속도 향상 대규모의 부동소수점 계산을 처리하는 거의 모든 슈퍼컴퓨터들에서 채택 2018-12-31 Computer Architecture 3장
Computer Architecture 3장 부동소수점 곱셈 / 나눗셈 2진수 부동소수점 곱셈 과정 가수들을 곱한다 지수들을 더한다 결과값을 정규화 2진수 부동소수점 나눗셈 과정 가수들을 나눈다 피젯수의 지수에서 젯수의 지수를 뺀다 [부동소수점 곱셈의 예] (0.1011 × 23) × (0.1001 × 25) <가수 곱하기> 1011 × 1001 = 01100011 <지수 더하기> 3 + 5 = 8 <정규화> 0.01100011 × 28 = 0.1100011 × 27 (결과값) 2018-12-31 Computer Architecture 3장
Floating Point Representation (Addition and Multiplication) 2018-12-31 Computer Architecture 3장