• 검색 결과가 없습니다.

부동소수점

N/A
N/A
Protected

Academic year: 2022

Share "부동소수점"

Copied!
6
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

부동소수점

부동소수점 연산과 연산과 데이터패스 데이터패스

성신여자대학교 IT 학부 우종정 교수

시작하면서

2

시작하면서

€ 학습목표

z 부동소수점 연산의 의미 및 표준화된 표현 방식에 대한 학습

z 정규화와 잠복 비트에 대한 개념 소개

z 부동소수점 수에 대한 사칙 연산 및 예외 처리를 학습

z SPIM 데이터패스의 단계별 기능과 개념적 데이터패스를 학습

z 명령어 종류별 데이터 이동 경로를 분석

Embedded System Lab. in Sungshin W. University

€ 목차

z 부동소수점 개요

z 부동소수점 표현

z 부동소수점 사칙 연산

z 데이터패스 개요

z 데이터패스 보행

시작하면서

3

시작하면서

€ 학습 내용의 현주소

z컴퓨터의 발전과 성능의 의미

z명령어집합구조

z프로세서: 데이터패스, 제어장치

z메모리: 주기억장치, 캐쉬, 가상기억장치

z입출력장치: 하드디스크, ODD

Embedded System Lab. in Sungshin W. University z버스 구조

z성능 향상을 위한 고급 기술:

파이프라인, RAID, 병렬처리

Processor Computer

Control (“brain”)

Datapath (“brawn”)

Memory (where programs, data live when running)

Devices

Input

Output

부동소수점

4

부동소수점 개요 개요

€ 부동소수점 연산

z 소프트웨어로 수행한다면 너무 느림

z 하드웨어로 수행한다면 많은 칩 면적을 요구

z 별도의 칩을 사용하여 구현 → coprocessor

z 1990년대 초반부터 하드웨어 기술 발전으로 동일한 프로세서 칩 에 정수 및 부동소수점 하드웨어의 배치

논점

Embedded System Lab. in Sungshin W. University

€ 논점

z 부동소수점 연산은 어떻게?

z 표현 방식은?

ƒ

정규형(normal form) z 범위(range)와 정밀도(precision)?

z 근사값 처리(rounding)는?

z 예외처리(exception)는?

z …

부동소수점

5

부동소수점 개요 개요

€ 과학적 표기

z예를 들어 6.02 * 1023 의 구성요소

ƒ

가수(mantissa 혹은 significand): 6.02

ƒ

지수(exponent): 23

ƒ

기수 혹은 밑(radix 혹은 base): 10 z일반적으로 기수는 고정 → 표현 불필요

z가수와 지수를 분리 표현할 필요

ƒ

예: 6.02E23

부동소수점

6

부동소수점 개요 개요

€ 표준화의 필요성

z 동일한 내용 다른 표현

ƒ

0.10100 * 23

ƒ

0.01010 * 24

ƒ

10.1000 * 21

z 컴퓨터 제작사마다 다른 형식의 표현 난무 IEEE 위원회에서 1985년 표준안으로 IEEE 754 채택

z IEEE 위원회에서 1985년 표준안으로 IEEE 754 채택

z 현재 IEEE 754 표준안을 대부분의 PC와 워크스테이션에서 사용

(2)

부동소수점

7

부동소수점 표현 표현

€ IEEE 754 표준화

z단일 정밀도(single precision): 32 비트 표현

ƒ

부호=1 비트, 지수=8 비트, 가수=23 비트

z2배 혹은 복수 정밀도(double precision): 64 비트 표현

ƒ

부호=1 비트, 지수=11 비트, 가수=52 비트 Short (32-bit) format

Embedded System Lab. in Sungshin W. University

Long (64-bit) format Sign Exponent Significand

8 bits, bias = 127,

–126 to 127

11 bits, bias = 1023,

–1022 to 1023

52 bits for fractional part (plus hidden 1 in integer part) 23 bits for fractional part

(plus hidden 1 in integer part)

부동소수점

8

부동소수점 표현 표현

€ 단일 정밀도

z 32 비트로 구성 (-1)S* 1.M * 2E-127

E: exponent M: mantissa

excess-127 sign+magnitude, normalized S: sign

Embedded System Lab. in Sungshin W. University

z 부호 비트 S: 0(양수) 혹은 1(음수)

z 지수 필드 E: excess-127 코드

z 가수 필드 M: 크기

ƒ

정규화(normalize)

ƒ

잠복 비트(hidden bit)

z 기수: 항상 2진법을 사용하므로 표현 불필요

binary integer binary significand w/hidden

integer bit

부동소수점

9

부동소수점 표현 표현

€ 단일 정밀도

z예제:

11000000110000000000000000000000라는 IEEE 754 표현

의 값?

ƒ

S=1, M=10000000000000000000000, E=100000012=12910

ƒ

(- 1)1* 1.10000000000000000000000* 2129-127

ƒ

따라서 –1.5 * 22= -6.0

Embedded System Lab. in Sungshin W. University

부동소수점

10

부동소수점 표현 표현

€ 단일 정밀도

z 예제: 3 * 210의 IEEE754 표현은?

ƒ

부호 비트: 0 (양수)

ƒ

가수의 2진 표현: 11 (10진법으로 3)

ƒ

정규화된 가수: 1.1

ƒ

가수의 표현(23 비트): 10000000000000000000000

ƒ

정규화 후의 지수 값: 10 +

1

Embedded System Lab. in Sungshin W. University

ƒ

정규화 후의 지수 값: 10 + 1

ƒ

지수의 excess-127 값: 10 + 1 + 127

ƒ

지수의 표현(8 비트): 10001010

ƒ

최종 표현

01000101010000000000000000000000

• 초록색: 부호 비트

검은색: 지수 필드

• 빨간색: 가수 필드

부동소수점

11

부동소수점 표현 표현

€ 단일 정밀도의 예외

z예약된 지수 표현: 00000000 혹은 11111111

z지수가 00000000일 경우 잠복 비트가 없음

ƒ

가수 필드가 모두 0일 경우는 0을 표현한 것이 됨 z지수가 11111111일 경우

ƒ

가수 필드가 모두 0이면 무한대(∞)

가수 필 가 두 0이 아니면 숫자가 아님(N N N N b )

ƒ

가수 필드가 모두 0이 아니면 숫자가 아님(NaN: Not a Number) z표현 가능한 숫자의 범위

ƒ

최소 지수 필드 : 00000001

ƒ

최소 지수 값: 1 – 127 = -126

ƒ

최대 지수 필드: 11111110

ƒ

최대 지수 값: 254 – 127 = 127

ƒ

최대 표현 가능한 수: 1.11…11 * 2127(3.4E38)

ƒ

최소 표현 가능한 수: 0.00…01 * 2-126(1.4E-45)

부동소수점

12

부동소수점 표현 표현

€ 범위와 정확도의 상호조정(tradeoff)

z 32 비트로 표현 가능한 종류는 고정

z 지수 필드의 비트 수를 증가시키면

ƒ

표현 범위 ↑

ƒ

정확도 혹은 정밀도↓

z 가수 필드의 비트 수를 증가시키면 현 범위

ƒ

표현 범위 ↓

ƒ

정확도 혹은 정밀도 ↑

z 범위와 정확도를 동시에 높이려면 64 비트를 사용하는 복수 정 밀도를 사용해야 함.

(3)

부동소수점

13

부동소수점 표현 표현

€ 오버플로우와 언더플로우

z오버플로우(overflow):

ƒ

주어진 표현 방식의 범위가 작아 표현할 수 없을 때

ƒ

심각한 오류

ƒ

예를 들면 단일 정밀도 표현에서 1.0 * 2130

z언더플로우(underflow):

Embedded System Lab. in Sungshin W. University z언더플로우(underflow):

ƒ

주어진 표현 방식의 정확도가 떨어져 소수(fraction) 부분을 정확히 표현할 수 없을 때

ƒ

심각한 오류가 아님

ƒ

예를 들면 단일 정밀도 표현에서 1.0000 0000 0000 0000 0000 0001 * 20 1.0 * 2-130

부동소수점

14

부동소수점 사칙연산 사칙연산

€ 부동소수점 뎃셈

z 덧셈할 2개의 수를 부호, 지수, 가수로 분할하고 가수에 잠복 비 트를 추가

z 지수 중 큰 것을 선택

z 작은 지수를 포함하는 수의 가수를 지수의 차이만큼 오른쪽으로 쉬프트

가수를 덧셈

Embedded System Lab. in Sungshin W. University z 가수를 덧셈

z 정규화

z 계산된 부호, 지수, 가수를 합병

여기서는 언더플로우(underflow) 혹은 오버플로우(overflow)를 고려하지 않았음

부동소수점

15

부동소수점 사칙연산 사칙연산

€ 부동소수점 덧셈

z예제: 1.000 * 2-1+ (-1.110) * 2-2

ƒ

지수 조정

큰 지수: -1

가수 정렬: -1.110 * 2-2= -0.111 * 2-1

ƒ

가수 덧셈

1 000 * 2-1+ ( 0 111) * 2-1= 0 001 * 2-1

Embedded System Lab. in Sungshin W. University

1.000 * 21+ (-0.111) * 21= 0.001 * 21

ƒ

정규화

0.001 * 2-1

= 0.010 * 2-2

= 0.100 * 2-3

= 1.000 * 2-4

부동소수점

16

부동소수점 사칙연산 사칙연산

€ 부동소수점 곱셈(나눗셈)

z 곱셈할 2개의 수를 부호, 지수, 가수로 분할하고 가수에 잠복 비 트를 추가

z 2개의 부호 비트를 exclusive or 하여 결과 부호 비트로 사용

z 2개의 지수를 합한(뺀) 후 127을 뺌(더함)

z 2개의 가수에 대하여 곱셈(나눗셈) 연산

Embedded System Lab. in Sungshin W. University z 정규화

z 결과를 합병

부동소수점

17

부동소수점 사칙연산 사칙연산

€ 부동소수점 곱셈(나눗셈)

z곱셈 예제: 1.000 * 2-1* (-1.110) * 2-2

ƒ

바이어스 없는 지수 덧셈

(-1 + 127) + (-2 + 127) – 127 = -3 + 127

ƒ

가수에 대하여 곱셈 연산

1.000 * 1.110 = 1.110 * 2-3

ƒ

정규화 오버플로우/언더플로우 점검

ƒ

정규화, 오버플로우/언더플로우 점검

ƒ

결과를 합병

-1.11 * 2-3

부동소수점

18

부동소수점 사칙연산 사칙연산

€ 근사값

z 단일 정밀도에서 표현 가능한 최소/최대 수를 벗어나는 수의 표 현은?

ƒ

이중 정밀도 사용

ƒ

Rounding

Round to nearest, round to odd, round to even, …

€ 예외

€ 예외

z 무효 연산

z 오버플로우

z 언더플로우

z 나누기-0

z …

(4)

데이터패스

19

데이터패스 개요 개요

€ von Neumann 컴퓨터 구성요소

z프로세서

z메모리

z입/출력 장치

€ 프로세서의 구성요소

z제어장치(Control Unit) 혹은 명령어장치(Instruction Unit)

Embedded System Lab. in Sungshin W. University

제어장치( ) 혹은 명령어장치( )

ƒ

메모리로부터 명령어를 가져와서 명령어를 해독한 후 자신과 시스 템 전체에게 제어신호(control signal)를 제공

z데이터패스(Datapath) 혹은 실행장치(Execution Unit)

ƒ

프로세서 저장장치(레지스터)

ƒ

명령어에 대한 산술/논리 연산을 수행하거나 주소계산을 수행하는 데 필요한 하드웨어

ƒ

상호 연결 버스와 스위치

ƒ

데이터패스

20

데이터패스 개요 개요

€ 데이터패스 설계

z 문제점: 명령어 인출을 포함한 모든 연산 과정을 하나의 블록으 로 설계하는 것은 비효율적이며 다루기 어려움

z 해결책:

ƒ

명령어 실행 단계를 여러 단계를 분할하여 설계한 후 각 단계를 연 결하여 전체 데이터패스를 완성

ƒ

작은 모듈 설계가 용이

Embedded System Lab. in Sungshin W. University

작은 모듈 설계가 용이

ƒ

다른 모듈에 영향을 주지 않고 최적화 혹은 변경 용이

데이터패스

21

데이터패스 개요 개요

€ SPIM 데이터패스 단계별 동작

z명령어 인출

ƒ

명령어 종류에 상관없이 메모리 혹은 캐쉬로부터 PC가 가리키는 32 비트를 IR로 읽기

ƒ

PC로 하여금 다음 명령어를 지시하도록 조정 z명령어 해독

ƒ

IR을 필드별로 분해

Embedded System Lab. in Sungshin W. University

ƒ

IR을 필드별로 분해

ƒ

opcode를 해석하여 명령어 형식과 필드 길이를 결정

ƒ

opcode를 해석과 동시에 메모리 혹은 캐쉬로부터 Rs와 Rt가 지시 하는 내용을 읽기

데이터패스

22

데이터패스 개요 개요

€ SPIM 데이터패스 단계별 동작

z 명령어 실행

ƒ

대부분 명령어: 실제 작업(+, -, *, / 등)을 수행

ƒ

load/store의 경우? 예를 들면

lw $t0, 40($t1)

메모리 접근 주소 계산: $t1 + 40 z 메모리 접근

l d/ t 명령어는 메모리 접근

Embedded System Lab. in Sungshin W. University

ƒ

load/store 명령어는 메모리 접근

ƒ

다른 명령어는 idle z 레지스터 쓰기

ƒ

대부분 명령어: 연산한 결과를 레지스터에 기록

ƒ

load: 읽은 내용을 레지스터에 기록

ƒ

store/branch/jump는 idle

데이터패스

23

데이터패스 개요 개요

€ 개념적 데이터패스

PC ruction emo

ry

rtrs rd

egist er s

ALU

ata m or y

inst m

e

+4

rt

re D a me m

imm

instruction

fetch decode/

register read

execute memory register write

데이터패스

24

데이터패스 보행 보행

€ 명령어 실행

z 컴퓨터 구조 및 컴퓨터 구현마다 상이함

z SPIM 명령어의 경우

ƒ

명령어의 공통 실행과정

명령어 인출

명령어 해독 레지스터 인출

레지스터 인출

ƒ

명령어 고유의 실행과정

연산 실행, 주소 계산, 분기 등

메모리 접근

레지스터 쓰기

(5)

데이터패스

25

데이터패스 보행 보행

€ 명령어 실행

명령어인출 레지스터

쓰기

R-형식, 적재

분기

저장 적재

Embedded System Lab. in Sungshin W. University

명령어 해독 레지스터 인출

연산 실행 주소 계산 분기

메모리접근

분기

적재, 저장

R-형식

데이터패스

26

데이터패스 보행 보행

€ R-format 데이터 이동 경로

z add, sub, slt 등

z 예제: add r3, r1, r2 # r3 = r1+r2

z 기계어:

00000000001 00010 00011 00000 100000 opcode r1 r2 r3

function

Embedded System Lab. in Sungshin W. University z 동작 과정

1.

명령어 인출 및 PC 증가

2.

명령어 해독 및 r1 과 r2 읽기

3.

2단계에서 읽은 r1 과 r2 더하기

4.

idle

5.

3단계에서 연산한 결과를 r3에 쓰기

데이터패스

27

데이터패스 보행 보행

€ R-format 데이터 이동 경로

z

add r3, r1, r2

# r3 = r1+r2

PC ction or y gist er s

ALU

ry

2 1

reg[1]+reg[2]

reg[1]

Embedded System Lab. in Sungshin W. University

instru c mem

+4

re g

ALU

Data memo

imm

3 reg[2]

데이터패스

28

데이터패스 보행 보행

€ I-format 데이터 이동 경로

z addi, subi, slti, lw, sw 등

z 예제: slti r3, r1, 17 # r3 = r1 < 17 ? 1 : 0

z 기계어:

00101000001 00011 0000000000010001 opcode r1 r3 17

Embedded System Lab. in Sungshin W. University z 동작 과정

1.

명령어 인출 및 PC 증가

2.

명령어 해독 및

r1

읽기

3.

2단계에서 읽은

r1

17 비교 4.

idle

5.

3단계에서 비교한 결과에 따라 0 혹은 1을

r3에 쓰기

데이터패스

29

데이터패스 보행 보행

€ I-format 데이터 이동 경로

z

slti r3, r1, 17

# r3 = r1 < 17 ? 1 : 0

PC ction or y gist er s

ALU

ry

3 1

reg[1]-17 reg[1]

instru c mem

+4

re g

ALU

Data memo r

imm

x

17

데이터패스

30

데이터패스 보행 보행

€ I-format 데이터 이동 경로

z

sw r3, 17(r1)

# MEM[r1+17] ← r3

z 기계어:

10101100001 00011 0000000000010001 opcode r1 r3 17

z 동작 과정

1.

명령어 인출 및 PC 증가

2.

명령어 해독 및

r1

r3

읽기

3.

2단계에서 읽은

r1

17 더하기

4.

3단계에서 계산한 메모리 주소에 2단계에서 읽은

r3를 쓰기

5.

idle

(6)

데이터패스

31

데이터패스 보행 보행

€ I-format 데이터 이동 경로

z

sw r3, 17(r1)

# MEM[r1+17] ← r3

PC ction mor y gist er s

ALU

a ory

3

1 reg[1]+17

reg[1]

Embedded System Lab. in Sungshin W. University

instru me

m

+4

re

ALU

Dat a mem o

imm

x

17 reg[3]

MEM[r1+17] ← r3

데이터패스

32

데이터패스 보행 보행

€ I-format 데이터 이동 경로

z

lw r3, 17(r1)

# r3 ← MEM[r1+17]

z 기계어:

10001100001 00011 0000000000010001 opcode r1 r3 17

Embedded System Lab. in Sungshin W. University z 동작 과정

1.

명령어 인출 및 PC 증가

2.

명령어 해독 및

r1

r3

읽기

3.

2단계에서 읽은

r1

17 더하기 4.

3단계에서 계산한 주소의 메모리 읽기

5.

4단계에서 읽은 메모리 내용을 2단계에서 읽은

r3에 쓰기

데이터패스

33

데이터패스 보행 보행

€ I-format 데이터 이동 경로

z

lw r3, 17(r1)

# r3 ← MEM[r1+17]

PC ction or y gist er s

ALU

ry

x

1 reg[1]+17

reg[1]

MEM[r1+17]

Embedded System Lab. in Sungshin W. University

instru c mem

+4

re g

ALU

Data memo

imm

3

17

데이터패스

34

데이터패스 보행 보행

€ 데이터가 올바른 방향으로 이동하려면?

PC

struction m emo ry

rd rt rs

re gi st er s

ALU

D ata emor y

Embedded System Lab. in Sungshin W. University

in s m

+4

D m e

imm

Controller opcode, funct

학습정리

35

학습정리

€ 평가하기

z1.510의 IEEE 754 표현은 16진수로 ( 3FC00000)이다.

zIEEE 754 표현은 정규화 과정을 사용한다. IEEE 754 표현에서 예 외 조치가 없다면 십진수로 ( 0)이라는 수를 표현할 수 없다.

z명령어 “bre r1, r2, label”을 실행할 때 2번째 단계에서 읽은 r1과명령어 , , 을 실행할 때 번째 단계에서 읽은 과 r2를 3번째 단계에서는 ( 뺄셈)한다. 여기서 bre 명령어는 r1과 r2 레지스터의 내용이 동일할 경우 label이 지시하는 장소로 분 기하는 명령어이다.

학습정리

36

학습정리

€ 정리하기

z 부동소수점 연산 개요

ƒ

부동소수점 수의 의미와 과학적 표기법

ƒ

표준화의 필요성 z 부동소수점 표현

ƒ

단일정밀도와 2배정밀도

ƒ

정규화와 잠복비트

ƒ

단일정밀도 예외 오버플로우와 언더플로우

ƒ

단일정밀도 예외, 오버플로우와 언더플로우 z 부동소수점 사칙 연산

z 데이터패스 개요

ƒ

프로세서의 구성요소와 성능

ƒ

SPIM 데이터패스의 5단계 동작과정 z 데이터패스 보행

ƒ

명령어 실행 과정

ƒ

명령어 종류별 데이터 이동 경로

참조

관련 문서

먼저 인상주의의 개념 및 대상에 대한 새로운 주제접근, 색채 표현 등을 분석하였다. 또한 이러한 인상주의의 조형적 특성을 바탕으로 일러스트레이션의 표현영역을 넓히고자

김경은(2009)은 분수에 관한 예비 초등교사의 교수학적 내용 지식을 분석하였다. 예비 초등교 사들은 학생들이 범하는 오류에 대한 지식뿐만 아니라 상황에 대한

이러한 박별님 교사의 고민은 학생이 응결 개념 을 잘 이해하지 못하는 것에 대한 실망감이나 수업 시간의 부족에 대한 불만족이라기보다는 학생의 개념 이해가 중요한데,

한 개념 및 선행연구에 대한 이해이며, 둘째, 농업 ICT융 합기술에 대한 개념 및 내용에 대한 부분이며, 셋째, 연구 주제라고 할 수 있는 귀농의사가 있는

본 연구는 초등학교 5학년 체육과 지도 영역 중 가장 어려움을 겪고 있는 리듬 및 표현운동 중 전통 춤사위 교수-학습 활동을 구안ㆍ적용하고 다양한 춤사위 표현 운동의

제2 장은 이론적 논의 및 연구문제 제시 부문이다.제2장은 다시 크게 4개의 절로 구성된다.1 절에서는 광고사진에 대한 논의로 광고사진의 개념과 유형,광고 사진의

본 방법론 연구는 현재 미국에서 운영 중인 Walking Score(WS)의 개념 및 분석절차를 소개 하고 이를 바탕으로 국내에 적용해 볼 수 있는 역 세권의 보행환경

03ㅣ 지역연계협력 사업의 모니터링과 평가 개념 및 국내외 사례 1_모니터링과 평가의 개념 1 모니터링 및 평가를 위한 기본 개념 사전평가appraisal는 사업에 대한