새소식

컴퓨터공학 💻/디지털 시스템 회로 설계

[디지털 시스템 회로 설계] 디지털 시스템과 이진 시스템

  • -
[디지털 시스템 회로 설계] 디지털 시스템과 이진 시스템
디지털 시스템 (Digital System)

이진 형태로 나타나는 정보의 이산적 요소(discrete element)를 처리하는 시스템이다.

> 정보의 이산적 요소는 신호 (signal)라고 불리는 물리적 양에 의해 결정된다.

> 신호: 전압, 전류 같은 전기적 신호

디지털 시스템은 디지털 모듈을 서로 연결하여 구성한다.

> 여러 종류의 디지털 모듈의 동작을 이해하기 위해서는 디지털 논리 회로에 대한 지식이 필요하다.

 

기수 변환

<진수값 표>

2진수 -> 10진수

11010.11(2)

1×2^4 + 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 + 1×2^-1 + 1×2^-2 

= 26.75(10)

 

10진수 -> 2진수

41

41 / 2 .. 1

20 / 2 .. 0

10 / 2 .. 0

5 / 2 .. 1

2 / 2 .. 0

1 / 2 .. 1

= 101001

 

153

153/2 .. 1

76/2 .. 0

38/2 .. 0

19/2 .. 1

9/2 .. 1

4/2 .. 0

2/2 .. 0

1/2 .. 1

= 10011001

 

0.6875

0.6875 * 2 = 1 + 0.3750

0.3750 * 2 = 0 + 0.7500

0.7500 * 2 = 1 + 0.5000

0.5000 * 2 = 1 + 0.0000

= 0.1011

 

10진수 -> 8진수

153

153 / 8 .. 1

19 / 8 .. 3

2 / 8 .. 2

= 231

 

2진수 -> 8진수

10 110 001 101 011.111 100 000 110

=26153.7406

 

2진수 -> 16진수

10 1100 0110 1011 . 1111 0000 0110

=2C6B.F06 

 

 

보수 (complement)

컴퓨터에서 뺄셈을 간단히 하거나 논리연산을 하는데 사용된다.

기보수 : r의 보수

감소된 기보수 : (r-1)의 보수

 

감소된 기보수

기수가 r, 자리수가 n인 숫자 N이 존재할 때 N에 대한 (r-1)의 보수 : ((r^n)-1)-N

예시 1. N에 대한 9의 보수는 ((10^n)-1)-N 이다.

> 546700에 대한 9의 보수는 999999 - 546700 = 453299

> 012398에 대한 9의 보수는 999999 - 012398 = 987601 

예시 2. 2진수에 대해, r=2, r-1=1 일 때 N에 대한 1의 보수는 ((2^n)-1)-N 

> 1011000에 대한 1의 보수는 0100111

> 0101101에 대한 1의 보수는 1010010 

※ 2진수에 N에 대해 1의 보수는 !N과 같음.

 

기보수

n 자리의 숫자 N에 대한 r의 보수는 N≠0 일 때 : r^n - N. N=0 일 때 : 0

r^n - N = [(r^n - 1) - N] + 1

-> r의 보수는 (r-1)의 보수에 1을 더하면 구해짐. 

예시

> 012398에 대한 10의 보수는 987602

> 246700에 대한 10의 보수는 753300 

> 1101100에 대한 2의 보수는 0010100

> 0110111에 대한 2의 보수는 1001001 

※ 2진수 N에 대해 2의 보수는 !N +1과 같음

 

 

 

부호화된 2진수

2진수의 부호를 표시할 때 가장 앞의 1비트를 양수는 0, 음수는 1로 처리한다.

예시

8비트의 2진수로 표현된 9

> +9 = 0000 1001

> -9 = 1000 1001 (부호 크기 방식)

> -9 = 1111 0110 (부호화된 1의 보수)

> -9 = 1111 0111 (부호화된 2의 보수)

 

산술 덧셈

부호-크기 방식에서 두 수의 덧셈은 일반적인 연산방법으로 계산한다.

부호-보수 방식은 덧셈만 가능.

> 부호 비트를 더할 때 생기는 올림수는 무시한다.

> 덧셈을 한 후 합이 음수라면 그 합 또한 2의 보수 형태가 된다.

> 오버플로우(overflow): n 비트 수를 더할 때 n+1 비트의 결과가 얻어지는 현상.

 

산술 뺄셈

피감수의 부호를 바꾸어서 뺄셈을 덧셈의 형태로 바꾼다.

감수(부호 비트를 포함해서)의 2의 보수를 취한 다음, 그것을 피감수에 더한다.

(±A)-(+B) = (±A)+(-B)

(±A)-(-B) = (±A)+(+B)  

덧셈과 뺄셈에 공통된 하드웨어 회로 사용 가능하다.

 

기본 예제

(1)     3

   +(-32)

(2)   -64

   +(-64)

(3)   -100

    +  100

(4)   -100

   +(-100)

(5)    100

    + 100

더보기
  (1) -29
  0000 0011
  1110 0000
  ---------
  1110 0010
  
  (2) -128
  1100 0000
  1100 0000
  ---------
  1000 0000
  
  (3) 0
  1001 1100
  0110 0100
  ---------
  0000 0000
  
  (4) -200, overflow 발생!
  1001 1100
  1001 1100
  ---------
  0011 1000
  
  (5) 200, overflow 발생!
  0110 0100
  0110 0100
  ---------
  1100 1000

 

 

2진 코드 - BCD 코드

한자리 숫자를 표현하기 위한 4비트 코드

예시

> 185(10) = 0001 1000 0101(BCD) = 10111001(2)

BCD 코드 덧셈

BCD 코드로 이루어진 2진수의 합이 1010보다 크거나 같으면 0110을 더해서 올바른 BCD합을 만든다. 

예시

 4    0100    4    0100    8    1000
+5   +0101   +8   +1000   +9   +1001
------------------------------------
 9    1001   12    1100   17   10001
                  +0110        +0110
                  ------------------
                  10010        10111

올림수가 발생하면 올림수를 포함하여 더한다.

예시

# 347 + 658 = 1005
    0011	    0100	    0111
    0110	    0101	    1000
--------------------------------
    1010	    1010	    1111
 +  0110	 +  0110	 +  0110
--------------------------------
 1  0000	 1  0000	 1  0101
 1  0000	    0000	    0101 (결과)

 

2진 코드 - 다른 형식의 10진 코드

2421은 각 비트의 값이 2, 4, 2, 1임을 의미한다.

Excess-3은 Digit Number + 3의 값을 의미한다.

8, 4, -2, -1은 각 비트의 값이 8, 4, -2, -1임을 의미한다.

이외에도 여러가지 형식이 존재한다

 

2진 코드 - 그레이 코드

한 숫자에서 다음 숫자로 변할 때 코드의 단 한 비트만 변하는 코드. 아날로그 형태를 디지털 형태로 바꿀 때 편리할 수 있다.

회전 축이 회전할 때 회전축의 위치가 연속적으로 변화하는 것 등에 적용하며 변이 과정에서 에매함이나 오류가 발생할 확률이 적다.

 

2진 코드 - 아스키 코드 (ASCII Character Code)

오류 검출 코드 - 패러티 비트 (parity bit)

데이터를 통신하거나 처리하는 과정에서 에러를 검출하기 위해 ASCII 문자에 한 비트를 더해서 만든 비트.

  짝수 패러티 홀수 패러티
ASCII A = 1000001 01000001 11000001
ASCII T = 1010100 11010100 01010100

1의 개수를 기준으로 오류를 판단한다. 짝수 패러티에서는 1의 개수를 짝수가 되도록 더하며 홀수 패러티에서는 반대로 1의 개수가 홀수가 되도록 비트를 더한다.

 

2진 기억장치와 레지스터

2진 셀 (binary cell): 2개의 안정된 상태를 가진다.

레지스터 : 2진 셀을 모아 놓은 것.

레지스터 전이 (register transfer)

 

2진 논리 (Binary Logic)

2개의 이산적인 값을 갖는 변수와 논리연산을 다룬다.

 

논리 게이트

하나 이상의 입력 신호를 받아 출력신호를 만드는 전자회로.

디지털 시스템에는 전압이나 전류를 이용한 전기적인 신호가 두 가지 값으로 존재한다.

 

 

 

자료참조 - Digital Design 6th Morris Mano

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.