Computer System Architecture

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

Chapter 04 컴퓨터에서 데이터 표현. 04 컴퓨터에서 데이터 표현 2 인코딩 (encoding) – 현실세계의 정보를 컴퓨터 내부에서 처리할 수 있는 이진수로 변환하는 방법 1. 컴퓨터 속에서 데이터 표현 원리 0 - 아빠 1 - 엄마 00 - 아빠 01 - 엄마.
자료의 표현 1. 문자 자료의 표현 2. 멀티미디어 자료의 표현. 컴퓨터일반자료의 표현 학습 목표 ◆ 컴퓨터에서 사용하는 문자 데이터의 표현 방법을 이해할 수 있다. ◆ 컴퓨터에서 사용하는 멀티미디어 데 이터의 표현 방법을 설명할 수 있다.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Ⅱ. 정보의 표현과 관리. Ⅱ. 정보의 표현과 관리 2. 자료의 표현과 연산 1. 정보와 자료 구조.
제 2 장 컴퓨터의 자료 표현  2.1 자료 표현 단위  2.2 자료 표현 방법  2.3 수치형 자료 표현  2.4 비수치형 자료 표현.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
컴퓨터와 인터넷.
조원 : 김영재(코딩) 이지영(스토리) 임병욱(그래픽)
재료수치해석 HW # 박재혁.
Hamming Code 이근용. 2 Error Control Error Detection Parity Check CRC Check Error Correction Hamming Code.
Prof. Seewhy Lee Presents
Lecture #5 어셈블리어 (2) 매크로 어셈블리어 시스템프로그래밍.
제4장 조합논리회로 내용 4.1 조합논리회로 설계 과정 4.2 산술회로 : 가산기(adder)/ 감산기(subtractor)
컴퓨터 프로그래밍 기초 [Final] 기말고사
데이터의 표현 (data Representation)
데이터의 표현 컴퓨터 속에서 데이터 표현 원리 디지털 논리회로에 기반한 컴퓨터는 두 가지 상태만을 구별
Chapter 04 C 연산자의 이해.
디지털영상처리 및 실습 대구보건대학 방사선과.
Lecture #4 제3장. 컴퓨터 산술과 논리 연산.
2장. 데이터의 표현 Lecture #2.
4. 디지털 코드 디지털 코드의 종류와 의미를 알고, 이를 표현할 수 있다. BCD 코드로 표현한 자료끼리 연산할 수 있다.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
10 장 오류 검출 및 수정 10.1 오류 종류 10.2 검출 10.3 오류 정정 10.4 요약.
제1장 디지털 시스템과 수체계 내용 1.1 계수(셈)와 계산의 역사 1.2 디지털 시스템(Digital system)
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
Computer Architecture 3장
6장. printf와 scanf 함수에 대한 고찰
Chapter 03 디지털 코드.
컴퓨터의 코드 시스템.
2 데이터 표현과 컴퓨터 연산 IT CookBook, 컴퓨터 구조와 원리 2.0.
공학컴퓨터프로그래밍 Python 염익준 교수.
Microprocessor I/O Port & CLCD Noh Jin-Seok.
4부 1장 정보를 다양하게 표현하기 컴퓨터를 이용하여 매우 다양한 일들을 처리하고 있다. 컴퓨터는 정보를 어떻게 만들고 표현하며, 어디에서 어떤 이유로 사용될까요? 지금부터 정보의 세계로 들어가 보겠습니다.
Ⅱ. 정보의 표현 1. 진수 변환 2. 2진수의 연산 3. 실수의 표현 ■ 단원 학습 정리 1. 10진수와 2진수
C#.
3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산.
어서와 C언어는 처음이지 제14장.
Computer System Architecture
어셈블리어 (2) 매크로 어셈블리어 시스템 프로그래밍 - Lecture #4
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
디지털 시스템 2010년 1학기 담당교수: 최선영 연구실: 산학연구관 6층 602 ( )
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
☆ASCII☆ 김연주.
연산자 (Operator).
6. 레지스터와 카운터.
제4강 처리장치 1.
1. 2진 시스템.
CHAPTER 02. 정보의 표현 정보 체계_컴퓨터 내부의 정보 표현과 정보 처리
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
디 지 털 공 학 한국폴리텍V대학.
3 디지털 코드.
2 Chapter 자료 표현 및 연산 이렇게 준비하세요.
정보의 표현 정보 체계_컴퓨터 내부의 정보 표현과 정보 처리
계산기.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
AT MEGA 128 기초와 응용 I 기본적인 구조.
제11강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
리더 : 이동주 스토리 : 김현 그래픽 : 최혁진 코딩 : 최재근
제10강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
I. 수와 식 1. 유리수와 순환소수.
제03장 정보의 표현.
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
C로 만드는 자료구조.
3장. 데이터의 표현과 컴퓨터 연산 다루는 내용 진법과 진법 변환 연산과 보수 데이터의 표현 산술 연산 논리 연산.
Presentation transcript:

Computer System Architecture 제 3 장 데이터의 표현 컴퓨터구조 Computer System Architecture 멀티미디어공학과 김 해영 hykim@tu.ac.kr

제 3 장 데이터의 표현 진법과 진법 변환 연산과 보수 데이터의 표현 구성

제 3 장 데이터의 표현 Data Types 수치 데이터와 문자 데이터 수치 데이터 : 산술 연산 문자 데이터 : 입출력/ data processing 인간  정보 전달 : 언어, 그림, 문자, 숫자, 기호 디지털 컴퓨터 : 인간의 정보 체계 이해 못함 공통적인 데이터 표현 방식 자료의 외부적 표현 : 인간사용언어 컴퓨터 사용 데이터로 표현 자료의 내부적 표현 : 컴퓨터 내부에서 0 과 1 부호화  저장처리

진법과 진법 변환 진법 가장 일반적인 진법 10진법(Decimal), 이진법(Binary), 8진법(Octal), 16진법(Hexadecimal) 수 N의 표시 d : 디지트(digit), r (radix or base) : 기수, n : 자릿수 10진법 10개의 부호로 구성 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2진법 2개의 부호로 구성 0, 1 Bit = Binary digit N = dn-1rn-1+dn-2rn-2+ … +d1r1+ d0r0 + d-1r-1 + d-2r-2+ … + d-m r-m

진법과 진법 변환 진법 Tab. 3-1 16진법 16개의 부호로 구성 Hex Binary Decimal Oct 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 8 10 9 1001 9 11 A 1010 10 12 B 1011 11 13 C 1100 12 14 D 1101 13 15 E 1110 14 16 F 1111 15 17 진법 16진법 16개의 부호로 구성 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 진법 변환 n진수  10진수 2진수  10진수 (1011)2 = (1×23) + (0×22) + (1×21) + (1×20) = (11)10 (1011.101)2 = (1 x 23) + (0 x 22)+ (1 x 21) + (1 x 2o) + (1 x 2-1) + (0 x 2-2) + (1 x 2-3) = 810+ 0 + 210 + 110 + 0.510 + 0 + 0.12510 = 11.62510 8진수  10진수 (123)8 = (1×82) + (2×81) + (3×80) = 64 + 16 + 3 = (83)10 16진수  10진수 (1AF)16 = (1×162) + (A×161) + (F×160) = 256 + 160 + 15 = (431)10 Tab. 3-1

진법과 진법 변환 진법 변환 (10진수  n진수) 56 = 32 + 16 + 8 정수부분 : 정수부분 N을 n진수의 기수 n 으로 나눈 후 나머지를 구하고 몫이 0이 될 때 까지 계속 나눈다. 각 단계에서 나머지를 나눈 순서의 역순으로 나열한다. 소수부분 : 나머지를 기수로 곱하고 곱한 결과 정수부로 반올림이 발생되면 이 자리 올림을 순서대로 나열한다. (1) 10진수를 2의 거듭제곱으로 표현 56 = 32 + 16 + 8 = 25 + 24 + 23 = 1110002 (2) 10진수를 반복해서 2로 나눔 최하위 비트 (LSB) 56 = 111000 최상위 비트 (MSB)

진법과 진법 변환 예제 [3.2] 10진수 123.625를 2진수로 변환 소수점 변환 0.625 x 2 = 1.250 integer 1 MSB 0.250 x 2 = 0.5 integer 0 0.500 x 2 = 1.0 integer 1 LSB Read the result downward .62510 = .1012

진법과 진법 변환 2진수를 8/16진수로 변환 8/16진수를 2진수로 변환 9F216 = 9 F 2 372.548 = 3 7 2 . 5 4 = 1001 1111 0010 = 011 111 010 101 100 = 1001111100102 = 0111110101011008 1 6 4 6 = 16468 1 1 1 0 1 0 0 1 1 02 = 0 0 1 1 1 0 1 0 0 1 1 0 3 A 6 = 3A616

연산 덧셈 2진수 덧셈 8진수 덧셈 16진수 덧셈

연산 뺄셈 곱셈 나눗셈 p. 160

보수 보수(Complements) 용도 : 뺄셈 연산 r 기수 시스템(base r system) (1) r의 보수 (2) (r-1)의 보수 2진수 : 2의 보수와 1의 보수 10진수 : 10의 보수와 9의 보수 (r-1)의 보수 D의 (r-1)의 보수 = (rn-1)-D D=546700에 대한 9의 보수 (106-1)-546700 = (1000000-1)-546700= 999999-546700 = 453299 D=101101에 대한 1의 보수 (26-1)-101101= (1000000-1)-101101= 111111-101101 = 010010 r의 보수 D의 r의 보수 = rn-D D= 2389 에 대한 10의 보수 = 105-2389= 7611 D= 1101100 에 대한 2의 보수 = 0010011+1= 0010100 D : given number r : base n : digit number * r의 보수 (r-1)의 보수 +1 =(rn-1)-D+1= rn-D

보수를 이용한 뺄셈 부호가 없는 정수의 뺄셈 r의 보수를 이용한 방법, r-1의 보수를 이용한 방법 (M-N), N0 부호가 없는 정수의 뺄셈 r의 보수를 이용한 방법, r-1의 보수를 이용한 방법 ① 감수 N에 대한 r의 보수 또는 r-1의 보수를 구한다. ② ①에서 구해진 감수 N의 r의 보수 또는 r-1의 보수를 피감수 M과 더한다. ③ 자리올림이 발생되면 그 결과는 양수이다. r의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 버린다. r-1의 보수를 이용하여 피감수와 덧셈을 한 경우는 발생된 캐리를 최하위 비트에 더해준다. 즉, 덧셈을 한번 더 수행한다. ④ 자리올림이 발생되지 않으면 그 결과는 음수이다. 따라서 그 결과를 다시 r의 보수 혹은 r-1의 보수를 취해서 결과에 -기호를 붙인다.

보수를 이용한 뺄셈 r의 보수를 이용한 뺄셈 예(M-N) 1) M + (rn-N) 2) M  N : 결과는 양수 = M-N, 발생된 end carry는 버린다. 3) M  N : 결과는 음수 = - r’s complement of (N-M), No Carry 72532(M) - 13250(N) = 59282 72532 + 86750 (13250의 10의 보수) 1 59282 Result = 59282 1010100(X) - 1000011(Y) = 0010001 1010100 + 0111101 (1000011의 2의 보수) 1 0010001 Result = 0010001 M  N 13250(M) - 72532(N) = -59282 13250 + 27468 (72532 의 10의 보수) 0 40718 Result = -(40718의 10의 보수) = -(59281+1) = -59282 M  N No End Carry Discard End Carry X  Y 1000011(X) - 1010100(Y) = -0010001 1000011 + 0101100 (1010100 의 2의 보수) 0 1101111 Result = -(1101111의 2의 보수) = -(0010000+1) = -0010001 X  Y

보수를 이용한 뺄셈 r-1의 보수를 이용한 뺄셈 예(M-N) 1) M + (rn-1-N) 2) M  N : 결과는 양수 = M-N, 발생된 end carry를 한번 더 Addition 3) M  N : 결과는 음수 = - (r-1)’s complement of (N-M), No Carry 72532(M) - 13250(N) = 59282 72532 + 86749 (13250의 9의 보수) 1 59281 + 59282 Result = 59282 1010100(X) - 1000011(Y) = 0010001 1010100 + 0111100 (1000011의 1의 보수) 1 0010000 + 1 0010001 Result = 0010001 M  N 13250(M) - 72532(N) = -59282 13250 + 27467 (72532 의 9의 보수) 0 40717 Result = -(40717의 9의 보수) = -(59282) = -59282 M  N No End Carry Discard End Carry 1 X  Y 1000011(X) - 1010100(Y) = -0010001 1000011 + 0101011 (1010100 의 1의 보수) 0 1101110 Result = -(1101110의 1의 보수) = -(0010001) = -0010001 X  Y

수치 데이터 형식(numeric data) 문자 데이터 형식(character data) 데이터의 표현 수치 데이터 형식(numeric data) 문자 데이터 형식(character data) 데이터 표현 형식 수치 데이터 형식 고정 소수점 표현(Fixed-Point Representation) 레지스터에서 소수점의 위치 표현(2가지 방법) 레지스터의 가장 왼쪽에 있다고 가정(Fraction : 0.xxxxx) 레지스터의 가장 오른쪽에 있다고 가정(Integer : xxxxx.0) 고정 소수점 표현 방식 (1) Fixed Point (2) Floating Point ∵ 실제로 소수점은 레지스터 내부에 나타나지는 않으며 레지스터에 저장된 수를 정수로 취급할 것인가 혹은 소수로 취급할 것인가에 따라 소수점의 위치는 항상 고정되어 있다. Fig. 3-1 2 byte 4 byte

데이터의 표현 정수 표현 부호와 절대값(Signed-magnitude) 표현 부호 비트 0 : 양수 1 : 음수 정수 표현 부호와 절대값(Signed-magnitude) 표현 부호와 1의 보수(Signed-1’s complement) 표현 부호와 2의 보수(Signed-2’s complement) 표현 수의 범위 (n비트 레지스터) 부호와 절대값 부호와 1의 보수 부호와 2의 보수 : -0이 존재 않음 (대부분의 컴퓨터에서 사용) +14 -14 0 0001110 1 0001110 0 0001110 1 1110001 0 0001110 1 1110010 -(2n-1-1)∼(2n-1-1) -(2n-1-1)∼(2n-1-1) -(2n-1)∼(2n-1-1) 부호와 절대값 부호와 1의 보수 부호와 2의 보수 3 011 2 010 1 001 000 -0 100 111 - -1 101 110 -2 -3 -4

데이터의 표현 수치 데이터 형식 부동 소수점 표현(Floating-Point Representation) 지수 부분(exponent part) 가수 부분(mantissa part) 바이어스 값 (Bias=6410, or 4016) 지수 부분의 양수와 음수를 구분 지수값 + (6410 혹은 4016) 부호 127 양의 지수 가수부분의 유효자리수 바로 왼쪽에 소수점이 존재하는 것으로 가정하여 가수 부분의 값이 0.1에서 1사이에 있도록 정규화하여 표현 65 41 64 40 (100) (160) 63 3F 음의 지수 10진수 16진수

데이터의 표현 수치 데이터 표현의 예 32비트, 기수 r=16, -(35.5)10을 부동 소수점 표현 (1) 10진수  16진수로 변환 -(35.5)10 = -(23.8)16 (2) 정규화 (normalize) -(23.8)16 = -(0.238)×162 지수값 + 바이어스 값 = 2 + 40 = 42 부호

데이터의 표현 10진수 데이터 팩 10진법 형식 언팩 10진법 형식 양수(+) : C(1100), 음수(-) : D(1101), 부호 없는 양수 : F(1111) 언팩 10진법 형식 양수(+) : C(1100), 음수(-) : D(1101), 부호가 없는 양수 : F(1111)

데이터의 표현 문자 데이터 형식 이진 코드(binary code) 영문자, 소수점, 마침표 등의 특수 기호 포함 인코드(encode) : 어떤 숫자, 기호, 단어 등이 특별한 기호들로 표현하는 것  컴퓨터가 문자를 그대로 인식하고 처리하기 위해서는 0,1 의 조합으로 코드화 시킬 필요가 있음  문자코드 이진 코드(binary code) BCD 코드 BCD(Binary Coded Decimal) : 10진수 표현 4비트로 0~9까지의 수를 표현, 가중치 코드, 일명 8421 코드 8 7 4 (Decimal) 1000 0111 0100 (BCD) BCD와 2진수의 비교 13710 = 100010012 (Binary) - require only 8 bits 13710 = 0001 0011 0111BCD (BCD) - require 12 bits

데이터의 표현 알파뉴메릭 코드 (alphanumeric code): 문자와 숫자를 동시에 표현할 수 있는 코드 Gray 코드 : 인접 코드간에 하나의 비트만이 변화, 비트의 위치가 특별한 가중치를 갖지 않음. A/D 변환기나 I/O 장치를 제어하는 코드로 사용. 3초과 코드 BCD 코드의 각 자리수에 3 (0011)2 을 더한 코드 자기 보수(self complement) 성질(10, 01로 바꾸면 쉽게 보수를 얻음) 십진수 7의 9의 보수는 2 3초과 코드 1010 0101 알파뉴메릭 코드 (alphanumeric code): 문자와 숫자를 동시에 표현할 수 있는 코드 ASCII 코드 (American Standard Code for Information Interchange) 7비트의 데이터 비트(128개의 서로 다른 정보 표현) 에 패리티 비트 1비트를 추가 26개의 대문자와 소문자, 10개의 숫자, 7개의 마크, +,*,#,/ 등의 특수문자와 SYN, ACK, NAK, EOT 등의 통신용 제어 문자를 지원  통신용 문자 코드로 사용 : 리턴과 개행 등의 화면과 프린터 제어용 문자를 지원  마이크로 컴퓨터의 입출력에 사용 EBCDIC 코드 확장형 BCD 코드 ASCII 코드보다 더 많은 문자를 지원하기 위해 데이터 비트 8비트 검사비트 1비트 등 9비트로 구성 대형 컴퓨터에서 많이 사용하는 코드 Table 3-8 참조

데이터의 표현 ~ 에러 검출 및 정정 코드 외부 환경(잡음)으로 인한 전송 중의 정보 변질 패리티 비트 (parity bit) : 메세지 비트 + 여분 비트(odd/even) 짝수(even) 패리티 전체 1의 개수(패리티 비트를 포함)가 짝수 개 가 되도록 패리티 비트를 추가 1 1 0 0 0 0 1 1 홀수(odd) 패리티 전체 1의 개수(패리티 비트를 포함)가 홀수 개 가 되도록 패리티 비트를 추가 1 1 0 0 0 0 0 1 Transmitter Receiver ~  Added parity bit 전송 중에 두 비트가 동시에 변한다면 에러 검출이 불가능 Added parity bit

데이터의 표현 2p ≥ m + p + 1 에러 검출 및 정정 코드 해밍 코드(Hamming code) 에러 정정 코드(error correction code) 한 비트의 에러를 검출하고 정정 정보 비트의 수 m, 패리티 비트의 수 p 예 : 8비트의 정보를 갖는 짝수 해밍 코드의 예 정보 비트 m = 8, 위의 식을 만족하는 p는 최소한 4비트가 됨 패리티 비트의 위치 선정, 2p 자리, 즉 1, 2, 4, 8 등에 대응하는 수의 자리에 위치 2p ≥ m + p + 1

데이터의 표현 P8 P4 P2 P1 P의 값 결정 해밍 코드를 이용한 오류 정정 6 조사하여 1의 개수를 짝수로 되도록 구성함 P의 값 결정 P1: 1, 3, 5, 7, 9, 11, 13 위치의 비트를 점검하여 1의 개수가 짝수 P2: 2, 3, 6, 7, 10, 11, 14 위치의 비트를 점검하여 1의 개수가 짝수 P4: 4, 5, 6, 7, 12, 13 위치의 비트를 점검하여 1의 개수가 짝수 P8: 8, 9, 10, 11, 12, 13 위치의 비트를 점검하여 1의 개수가 짝수 해밍 코드를 이용한 오류 정정 1(0001), 3(0011), 5(0101), 7(0111), 9(1001), 11(1011), 13(1101) P8 P4 P2 P1 P1 = 1, 3, 5, 7, 9, 11에서 1의 수가 짝수 개이므로 0 P2 = 2, 3, 6, 7, 10, 11에서 1의 수가 홀수 개이므로 1 P4 = 4, 5, 6, 7, 12에서 1의 수가 홀수 개이므로 1 P8 = 8, 9, 10, 11, 12에서 1의 수가 짝수 개이므로 0 에러 체크 워드 1의 개수 홀수 : 1 1의 개수 짝수 : 0 6