Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

Similar documents
Computer Architecture

PowerPoint 프레젠테이션

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

Microsoft PowerPoint - hw8.ppt [호환 모드]

Microsoft PowerPoint - 1-2장 디지털_데이터 .ppt

8장 조합논리 회로의 응용

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - Divider2.ppt

Microsoft PowerPoint - CHAP-03 [호환 모드]

Microsoft PowerPoint - chap04-연산자.pptx

[2010 년디지털시스템설계및실험중간고사 2 답안지 ] 출제 : 채수익 1. (a) (10 pts) Robertson diagram Quotient 와 remainder 의 correction 을뒤로미루는것이 non-restoring division 이다. 즉, q =

PowerPoint Presentation

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Introduction to Computer Science

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

3 권 정답

Introductory Chemistry: Concepts & Connections 4th Edition by Charles H. Corwin

Microsoft PowerPoint - chap03-변수와데이터형.pptx

1) 8 진수를 10 진수로변환 - 진수에자릿수에서 1 을뺀숫자를지수로한후해당숫자와곱해주는방식으로 10 진수로변환 2) 2 진수를 10 진수로변환 - 10 진수의숫자를해당진수로계속나누어나머지들을역순으로읽음. - 분수나소수인경우에는곱셈의방법으로구할수있음. 3) 10 진수

OCW_C언어 기초

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

Microsoft PowerPoint - Chapter_02.pptx

PowerPoint Presentation

hwp

슬라이드 1

Microsoft PowerPoint - chap-05.pptx

중간고사

PowerPoint 프레젠테이션

창의사고력 S01호 매뉴얼.hwp

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2

초4-1쌩큐기본(정답)본지

standard form 표준양식 자리수를사용하여수를표시하는법 expanded form 확장식 수를쓸때모든인수를각각보여주는식 4 Division of Whole Numbers 4 new dividend 피젯수 나눗셈에서나눔을당하는수 divisor 젯수 한수를나누는수 r

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - Chapter_04.pptx

OCW_C언어 기초

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

<3130C0E5>

Microsoft PowerPoint - c2.ppt

버퍼오버플로우-왕기초편 3.c언어에서버퍼사용하기 버퍼는 임시기억공간 이라는포괄적인개념이기때문에여러곳에존재할수있습니다. 즉, CPU 에도버퍼가존재할수있으며, 하드디스크에도존재할수있고, CD- ROM 이나프린터에도존재할수있습니다. 그리고앞의예제에서보신바와같이일반프로그램에도

Microsoft PowerPoint - hy2-12.pptx

윤성우의 열혈 TCP/IP 소켓 프로그래밊

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

<4D F736F F F696E74202D20C1A635C0E520BCF6BDC4B0FABFACBBEAC0DA>

Microsoft Word - Experiment 5.docx

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint 프레젠테이션

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x

문서의 제목 나눔고딕B, 54pt

쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 이번장에서학습할내용 제 4 장변수와자료형 제 4 장변수와자료형 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다.

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

Computer Architecture

슬라이드 1

KNK_C03_Expr_kor

<FEFF E002D B E E FC816B CBDFC1B558B202E6559E830EB C28D9>

<4D F736F F F696E74202D2032C1D6C2F72D32C2F7BDC32028B0ADC0C7C0DAB7E D20BAAFBCF6BFCD20BFACBBEAC0DA>

PowerPoint Presentation

통신이론 2 장주파수해석 성공회대학교 정보통신공학과 1

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - Lesson2.pptx

쉽게 풀어쓴 C 프로그래밍

CHAPTER 02 데이터형과수식 JAVA Programing

untitled

Microsoft PowerPoint - chap05-제어문.pptx

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

2007백서-001-특집

00목차

(291)본문7

statistics


<BCF6C7D0BFEBBEEE2E687770>

This document is an edited reprint of the paper What Every Computer Scientist Should Know About Floating-Point Arithmetic, by David Goldberg, publishe

쿠폰형_상품소개서

<4D F736F F D C7C1B7CEC5E4C4C3C0BB20C0CCBFEBC7D B0E8BBEA20BAB8B0EDBCAD205FC3D6C1BE5F>

정수론 - (Number Theory)

Microsoft PowerPoint - KNK_C03_Expr_kor

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - [2009] 02.pptx

프로그래밍 및 연습 1

Chapter 연습문제답안. y *sin-*cos*^ep-*/sqrt. y [ ; sinpi/ ; sin*pi ; ] 혹은 [ sinpi/ sin*pi ]. a ais[- ] b et.,., sin. c.. a A는주어진행렬 M의 번째열만을표시하는새로운행렬을나타낸다.

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - 26.pptx

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Microsoft PowerPoint - D03_SpatialDomainEnhance_note.ppt [호환 모드]

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

심화 I. II. 개정

설계란 무엇인가?

EEAP - Proposal Template

PHP & ASP

Microsoft PowerPoint - M09_CPUarchi.ppt [호환 모드]

<BDC7C7E83220B0E1B0FABAB8B0EDBCAD202833C1D6C2F7292E687770>

Microsoft PowerPoint - chap-06.pptx

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선

Transcription:

컴퓨터구조 강의노트 #8: Chapter 9: 컴퓨터산술 2008. 5. 8. 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 컴퓨터시스템구조론 제9장컴퓨터산술 (Computer Arithmetic) 2 1

핵심요점들 컴퓨터산술에있어서두가지주요관심사는수가표현되는방법 (2진수형식 ) 과기본적인산술연산들 ( 더하기, 빼기, 곱하기, 나누기 ) 을위해사용되는알고리즘들이다. 이두가지는정수와부동소수점산술에모두적용된다. 부동소수점수들은어떤수 ( 가수 : significand) 에상수 ( 기수 : base) 의정수멱 ( 지수 : exponent) 을곱한수로표현된다. 부동소수점수는매우크거나매우작은수들을표현하는데사용된다. 대부분의프로세서들은부동소수점표현과부동소수점산술을위해 IEEE 754 표준을구현한다. 3/56 9.1 산술논리연산장치 (ALU) 데이터에대하여실제적으로산술및논리연산을수행하는부분 2 진수를저장하고부울논리연산들을처리하는디지털논리회로로구성 정수 (integer), 실수 (real number), 부동소수점수 (floating point numbers) 처리 산술보조프로세서 (arithmetic co-processor) 의지원을받기도함 4/56 2

ALU (Arithmetic Logic Unit) 의입력과출력 5/56 9.2 정수표현 (Integer Representation) 2진수체계에서는 0과 1, 부호및소수점을이용하여수를표현 [ 예 ] -1101.0101 2 =-13.3125 10 컴퓨터에서는 부호와소수점사용불가능 양수및음수의표현방법 부호 - 크기표현 (signed-magnitude representation) 2 의보수표현 (two s complement representation) 6/56 3

부호 - 크기표현 맨좌측비트를부호 (sign) 비트로사용 0 : 양수 1 : 음수 [ 예 ] +18 = 00010010-18 = 10010010 문제점 산술연산과정에서부호와크기부분을별도로처리해야한다 0에대한표현이두개 (+ 0과 0) 이다 0 검사 (zero test) 불편, 수의표현범위감소 7/56 2 의보수표현 음수표현방법 : 양수표현에서각비트를반전 (0 1, 1 0) 시키고, 1 을더한다 [ 예 ] +3 = 00000011 +2 = 00000010 +1 = 00000001 +0 = 00000000-1 = 11111111-2 = 11111110-3 = 11111101 8/56 4

장점 0 에대한표현이한가지이다 산술연산이용이하다 음수화가편리하다 9/56 [ 연습문제 ] -20 을부호 - 크기표현과 2 의보수표현으로표현해보자 (8bit) 10/56 5

수표현의범위 n- 비트데이터의경우 -2 n-1 N 2 n-1-1 [ 예 ] 8-비트 2의보수 : -128 N +127 2 7 1 = 01111111 = +127-2 7 = 10000000 = -128 [ 예 ] 16- 비트 2 의보수 : -32768 N +32767 2 15-1 = 011111111 11111111 = +32767-2 15 = 100000000 00000000 = - 32768 11/56 컴퓨터에서정수표현하기 부호절대값 (signed-magnitude) g 예 ) 부호절대값으로표현된 45 와 -45 12/56 6

컴퓨터에서정수표현하기 2 의보수 (2's complement) 표현 n 비트로표현할수있는수의범위 부호절대값표현 : -(2 n-1-1) ~ 2 n-1-1 2의보수표현 : -2 n-1 ~ 2 n-1-1 13/56 비트길이가다른경우의변환 ( 비트확장 ) 부호 - 크기표현 부호비트가 0 인양수의경우 : 상위비트들을 0 으로채운다 [ 예 ] +18 = 00010010 (8 비트 ) +18 = 00000000 00010010 (16 비트 ) 부호비트가 1 인음수의경우 : 부호비트만 1 로바꾼다 [ 예 ] -18 = 10010010 (8 비트 ) -18 = 10000000 00010010 (16 비트 ) 14/56 7

비트길이가다른경우의변환 ( 비트확장 ) 2 의보수표현 부호비트가 0 인양수의경우 : 상위비트들을 0 으로채운다 [ 예 ] +18 = 00010010 (8 비트 ) +18 = 00000000 00010010 (16 비트 ) 부호비트가 1인음수의경우 : 상위비트들을 1로채운다 [ 예 ] -18 = 10010010 (8 비트 ) -18 = 11111111 10010010 (16 비트 ) 15/56 9.3 정수산술 - 음수화 부호 - 크기표현 부호비트를반전 2 의보수표현 규칙 1. 정수각비트에대하여부울보수를취한다 (1은 0으로 0은 1로변환 ) 2. 결과값에 1을더한다 [ 예 ] +18 = 00010010 비트단위의보수 = 11101101 + 1 11101110 = -18 ( 최상위비트로부터올림수 (Carry) 가발생하면무시 ) -> 0 에대한 2 의보수는? 16/56 8

9.3 정수산술 - 덧셈 연산의결과가양수이면정상적인 2진수로표현된양수 연산의결과가음수이면 2의보수형태의음수를얻는다. 결과값의최상위비트를넘어가는올림수비트가발생되는경우 -> 무시 결과값이한단어로표현할수있는수의범위를초과하는경우 -> 오버플로우 (overflow) 오버플로우는올림수의유무에상관없이발생 17/56 덧셈 18/56 9

오버플로우 (overflow) 덧셈혹은뺄셈결과값이한단어로표현할수있는수의범위를초과한경우. 검출규칙 : 모두양수이거나모두음수인두수를더한결과값의부호가반대가되면오버플로우. 19/56 9.3 정수산술 - 뺄셈 어떤수 ( 감수 : subtrahend) 를다른수 ( 피감수 : minuend) 에서빼기위해서는감수의보수를취하고, 그것을피감수와더한다. 뺄셈에서도오버플로우규칙은덧셈에서와같다. 20/56 10

뺄셈 : a b = a + (-b) 21/56 2 의보수정수의기하학적표현 22/56 11

덧셈과뺄셈을위한하드웨어블록다이어그램 23/56 곱셈 (Multiplication) 곱셈은덧셈과뺄셈보다더복잡하다. 부호없는정수의곱셈과정승수 (multiplier) 의각숫자 (digit) 에대하여부분적 (partial product) 을계산 : 승수의비트가 0이면부분적도 0, 1이면부분적은피승수 (multiplicand) 와동일최종결과값은부분적을한자리수씩왼쪽으로쉬프트하고, 더하여구한다. 1 2 두 n- 비트 2 진정수를곱한결과값의길이는 2n 비트가된다. 24/56 12

곱셈의예 1011 Multiplicand (11) x 1101 Multiplier (13) 1011 0000 Partial products 1011 1011 10001111 Product (143) 25/56 곱셈기 (multiplier) 의내부블럭도 26/56 13

부호없는 2 진수곱셈과정의흐름도 27/56 실행과정의예 28/56 14

2 의보수의곱셈 방법 1 음수를양수로변환 앞의방법으로곱셈수행 승수와피승수의부호가다르면, 결과값을음수화 방법 2 Booth 알고리즘 (Booth s algorithm) 이용 29/56 나눗셈 (Division) 부호없는정수의나눗셈 Divisor 1011 Partial Remainders 00001101 10010011 1011 001110 1011 Quotient( 몫 ) Dividend 001111 1011 100 Remainder( 나머지 ) 30/56 15

부호없는 2 진나눗셈과정의흐름도 31/56 2 의보수나눗셈 교재참조.. 32/56 16

9.4 부동소수점표현 고정-소수점 (fixed-point) 표현 : 소수점이하의수를포함하는실수 (real number) 의표현가능. [ 예 ] 1001.1010 = 2 4 + 2 0 +2-1 + 2-3 = 9.625 표현범위한계 : 매우큰수및매우작은수표현불가능 부동 - 소수점 (floating-point) 표현 : 과학적표기 (scientific notation) 의지수 (exponent) 를사용하여소수점위치이동가능 표현범위확대 [ 예 ] 10 진수에대한부동 - 소수점표현 976,000,000,000,000 = 9.76 x 10 14 0.0000000000000976 = 9.76 x 10-14 33/56 2 진수의부동소수점표현 ±S x B ±E 단, 부호 (sign) : + 혹은 S : 가수 (significand) 혹은멘티사 (mantissa) B : 기수 (base) E : 지수 (exponent) 34/56 17

2 진부동소수점표현의형식과예 (bias = 127 = 01111111) 그림 : 전형적인 32 비트부동 - 소수점형식 35/56 부동소수점표현방법과예 부호 (sign) 비트 : 0 ( 양수 ), 1 ( 음수 ) 지수 (exponent) : 바이어스된수 (biased number) 지수를바이어스된수로표현하는이유는? -> 바이어스개념이없다면 8비트로표현할수있는지수의범위는 0부터 255까지고, 음의지수는표현할수없다. 지수 + 바이어스 -> 바이어스된지수예 ) 지수 : -1, 바이어스 127 을사용한다면바이어스된지수 = -1+127 = 126 126을 8비트로나타내면 01111110 36/56 18

실제지수값 --------------------------------- 지수비트패턴절대값바이어스-127 바이어스-128 ------------------------------------------------------------------------------ 11111111 255 + 128 +127 11111110 254 + 127 +126 : : : : 10000001 129 + 2 + 1 10000000 128 + 1 0 01111111 127 0-1 01111110 126-1 - 2 : : : : 00000001 1-126 -127 00000000 0-127 -128 ------------------------------------------------------------------------------ 37/56 부동소수점표현방법과예 ( 계속 ) 가수 ( 멘티사 ) : 정규화 (normalized) 표현사용 가수필드의첫번째비트가 1 이되도록지수조정 ± 1.bbbbbb.bbb x 2 ±E [ 예 ] 110 x 2 2 = 0.0110 x 2 6 = 1.10 x 2^4 ( 정규화표현 ) 결과적으로가수필드의첫번째비트가항상 1 이되므로, 저장하지않는다 (hidden bit). 위 [ 예 ] 의수에대한부동소수점표현 (bias=127) : 0 10000011 10000000000000000000000 38/56 19

IEEE 754 표준 부동소수점수의표현을위하여제정된국제표준 ± 1.bbbbb.bbb x 2 ±E 주요사항들 32- 비트 / 64- 비트형식 지수 (exponent) : 8-비트 / 11-비트, 바이어스 = 127 / 1023 가수 (mantissa) : 23 비트 /52 비트, hidden bit (= 1) 표현영역 : 10-38, 10 38 / 10-308, 10 308 39/56 IEEE 754 형식들 IEEE 에관한추가적참고사항들 : 표 8.3, 표 8.4 40/56 20

IEEE 754 표현예 (N = 13.625 ) 13.625 10 = 1101.101 2 = 1.101101 2 3 부호 (S) 비트 = 0 (+) 지수 E = 00000011 + 01111111 = 10000010 ( 바이어스 127을더한다 ) 가수 M = 10110100000000000000000 ( 소수점좌측의 1은제외한다 ) 41/56 컴퓨터에서실수표현하기예제 IEEE 754 표준 정규화 1.101 2^(-1) 지수처리 지수 (-1)+ 바이어스 (127) = 126 결과 0 01111110 10100000000000000000000 42/56 21

컴퓨터에서실수표현하기예제 바이어스 127 로아래의두수를 IEEE754 표준 (32 비트 ) 으로표현해보자. -0.001101 x 2 2 0.01110 x 2 6 43/56 컴퓨터에서실수표현하기예제 아래수를 IEEE 754 표준의 32-비트부동소수점형식으로나타내어라 (Bias 127) 384 44/56 22

부동소수점수의표현범위 (range) 32- 비트수 ( 지수 : excess-127 코드사용 ) 의경우 -(1 2-24 ) x 2 128 ~ - 0.5 x 2-127 사이의음수들 05 0.5 x 2-127 ~ (1 2-24 ) x 2 128 사이의양수들 [ 참고 ] 2 128 3.4 x 10 38 [ 비교 ] 32-비트고정-소수의경우 : 2-127 5.88 x 10-39 2 31 2.1 x 10 9 정확도 (accuracy) 가수의비트수에따른오차 (error) = LSB의가중치 (weight) [ 예 ] 23-비트가수의경우 : 2-23 1.2 x 10-7 45/56 그림 9.19 표현가능한수의범위비교 46/56 23

9.5 부동소수점산술 +, -, x, / 계산과정 (X = X S ⅹB Xe, Y = Y S ⅹB Ye ) 덧셈 : X + Y = (X S ⅹB Xe-Ye + Y S ) ⅹB Ye 뺄셈 : X - Y = (X S ⅹB Xe-Ye -Y S ) ⅹB Ye 단, X e Y e 곱셈 :XⅹY=(X )ⅹB Xe+Ye S ⅹY S 나눗셈 : X/Y = (X S / Y S ) ⅹ B Xe-Ye 47/56 10 진수에대한계산예 : X = 0.3 x 10 2 = 30 Y = 0.2 x 10 3 = 200 X + Y = (0.3 x 10 2-3 + 0.2) x 10 3 = 230 X Y = (0.3 x 10 2-3 -0.2) x 10 3 = (-0.17) x 10 3 = -170 XxY=(03x02)x10 (0.3 x 0.2) x 2+3 =006x10 0.06 5 = 6000 X / Y = (0.3 / 0.2) x 10 2-3 = 1.5 x 10-1 = 0.15 48/56 24

덧셈과뺄셈 1 2 3 4 0인지검사가수의자리수가일치하도록위치조정 (alignment) 가수들의더하기혹은빼기결과값의정규화 (normalization) [ 예 ] 부동소수점덧셈 2지수조정 0.110100 2 3 ===> 0.001101 2 5 + 0.111100 2 5 + 0.111100 2 5 --------------------- --------------------- 4 정규화 1.001001 2 5 => 1.001001 2 5 3 더하기 ( 최종결과 ) 49/56 곱셈과나눗셈 2 진수부동소수점곱셈과정 1 가수들을곱한다. 2 지수들을더한다. 3 결과값을정규화한다. [ 예 ] (0.1011 2 3 ) (0.1001 2 5 ) 1 가수곱하기 : 1011 1001 = 01100011 2 지수더하기 : 3 + 5 = 8 3 정규화 : 0.01100011 2 8 = 1.100011 2 6 ( 결과값 ) 50/56 25

부동소수점곱셈과정 51/56 2 진수부동소수점나눗셈과정 1 가수들을나눈다. 2 피젯수의지수에서젯수의지수를뺀다. 3 결과값을정규화한다. 52/56 26

부동소수점나눗셈과정 53/56 연산결과로발생할수있는문제점들 지수오버플로우 (Exponent overflow) : 양의지수값이최대값초과 + 혹은 - 로세트 지수언더플로우 (Exponent underflow) : 음의지수값이최대값초과 0으로세트 가수언더플로우 (Significand underflow) : alignment 과정에서가수비트를잃는경우 반올림 (rounding) 가수오버플로우 (Significand ifi overflow) : 두가수의덧셈결과로 MSB에서올림수발생 재조정 (realign-ment) 54/56 27

HW #4 연습문제 9.1, 9.11, 9.23, 9.24 Due Date: 다음시간전까지 55/56 질의및응답 Thank You! 수고하셨습니다. 56/56 28