Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer System Architecture

Similar presentations


Presentation on theme: "Computer System Architecture"— Presentation transcript:

1 Computer System Architecture
제 3 장 데이터의 표현 컴퓨터구조 Computer System Architecture 멀티미디어공학과 김 해영

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

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

4 진법과 진법 변환 진법 가장 일반적인 진법 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

5 진법과 진법 변환 진법 Tab. 3-1 16진법 16개의 부호로 구성
Hex Binary Decimal Oct A B C D E F 진법 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 ( )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) = = 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

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

7 진법과 진법 변환 예제 [3.2] 10진수 를 2진수로 변환 소수점 변환 0.625 x 2 = integer MSB 0.250 x 2 = integer 0 0.500 x 2 = integer LSB Read the result downward =

8 진법과 진법 변환 2진수를 8/16진수로 변환 8/16진수를 2진수로 변환 9F216 = F = = = = = = = A = 3A616

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

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

11 보수 보수(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) = ( ) = = D=101101에 대한 1의 보수 (26-1) = ( ) = = r의 보수 D의 r의 보수 = rn-D D= 2389 에 대한 10의 보수 = = 7611 D= 에 대한 2의 보수 = = D : given number r : base n : digit number * r의 보수 (r-1)의 보수 +1 =(rn-1)-D+1= rn-D

12 보수를 이용한 뺄셈 부호가 없는 정수의 뺄셈 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의 보수를 취해서 결과에 -기호를 붙인다.

13 보수를 이용한 뺄셈 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) (N) = 59282 72532 (13250의 10의 보수) Result = 59282 (X) (Y) = ( 의 2의 보수) Result = M  N 13250(M) (N) = 13250 (72532 의 10의 보수) Result = -(40718의 10의 보수) = -( ) = M  N No End Carry Discard End Carry X  Y (X) (Y) = ( 의 2의 보수) Result = -( 의 2의 보수) = -( ) = X  Y

14 보수를 이용한 뺄셈 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) (N) = 59282 72532 (13250의 9의 보수) + 59282 Result = 59282 (X) (Y) = ( 의 1의 보수) Result = M  N 13250(M) (N) = 13250 (72532 의 9의 보수) Result = -(40717의 9의 보수) = -(59282) = M  N No End Carry Discard End Carry 1 X  Y (X) (Y) = ( 의 1의 보수) Result = -( 의 1의 보수) = -( ) = X  Y

15 수치 데이터 형식(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

16 데이터의 표현 정수 표현 부호와 절대값(Signed-magnitude) 표현
부호 비트 0 : 양수 1 : 음수 정수 표현 부호와 절대값(Signed-magnitude) 표현 부호와 1의 보수(Signed-1’s complement) 표현 부호와 2의 보수(Signed-2’s complement) 표현 수의 범위 (n비트 레지스터) 부호와 절대값 부호와 1의 보수 부호와 2의 보수 : -0이 존재 않음 (대부분의 컴퓨터에서 사용) -(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

17 데이터의 표현 수치 데이터 형식 부동 소수점 표현(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진수

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

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

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

21 데이터의 표현 알파뉴메릭 코드 (alphanumeric code): 문자와 숫자를 동시에 표현할 수 있는 코드
Gray 코드 : 인접 코드간에 하나의 비트만이 변화, 비트의 위치가 특별한 가중치를 갖지 않음. A/D 변환기나 I/O 장치를 제어하는 코드로 사용. 3초과 코드 BCD 코드의 각 자리수에 3 (0011)2 을 더한 코드 자기 보수(self complement) 성질(10, 01로 바꾸면 쉽게 보수를 얻음) 십진수 7의 9의 보수는 2 3초과 코드 알파뉴메릭 코드 (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 참조

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

23 데이터의 표현 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

24 데이터의 표현 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


Download ppt "Computer System Architecture"

Similar presentations


Ads by Google