이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

9. 가산기와 오버플로 (Adder and Overflow)

  • 2020.04.24 16:48
  • 학부 수업/디지털시스템

가산기와 감산기는 컴퓨터 시스템에서 중요한 역할을 하는데, 이진수를 서로 더하거나 빼는 역할을 한다.
하나의 가산기는 한 비트에 대응하며, 16비트 연산을 위해서는 1비트 가산기 16개가 필요하다.

가산기는 반가산기와 전가산기로 나뉜다.

반 가산기Half Adder

두 2진수의 덧셈을 수행하고, 합sum과 자리올림수carry를 출력한다.

$$ S = x \oplus y \\ C = xy $$

$x$ $y$ $C$ $S$
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

반 가산기는 한 자리 2진수를 계산하는 데 쓸 수 있지만, 여러 자리를 계산하기 위해서는 두 정수 뿐만 아니라 지난 자리의 정수, 즉 carry 까지 고려를 해야하기 때문에 사용할 수 없다.

여러 자리의 2진수 덧셈을 위한 것이 바로 전가산기이다.

전 가산기Full Adder

전 가산기는 세 개의 이진수를 입력받아 합과 자리올림수를 출력한다. 이때, 세 개의 입력 중 하나를 지난 자리의 자리올림수로 하여 여러 자리의 이진수를 처리할 수 있다.

$x$ $y$ $z$ $C$ $S$
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

$$ S = x \oplus y \oplus z \\ C = xy + (x \oplus y)z $$

반 가산기를 이용해 세 정수의 덧셈을 2번에 나눠 시행함으로서 전 가산기의 기능을 수행할 수도 있다.

감산

컴퓨터에서의 감산은 음수의 덧셈으로 할 수 있다. 음수의 표현은 2의 보수를 이용한다. 즉, 아래가 성립한다.

$$ N - M = N + (\text{Two's complement of M}) = N + (2^n - M) $$

이때, 2의 보수는 각 비트를 역전시킨 1의 보수에 1을 더하여 얻을 수 있다.
이때, 각 비트를 역전시키는 과정에 XOR 게이트를 사용하면, 하나의 회로로 덧셈과 뺄셈을 모두 수행할 수 있다.

위 그림에서, $M=0$이면 덧셈을, $M=1$이면 뺄셈을 수행한다.

오버플로

가산기는 n-bit의 덧셈에서 (n+1)bit의 결과를 출력할 수 있다. 이를 오버플로라고 한다. 계산한 결과의 가장 높은 자리에 carry가 있다면, 이는 오버플로가 발생한 것이다. 이는 XOR 게이트를 통해 탐지할 수 있다.

오버플로는 가산기에 들어간 두 수가 같은 부호를 가질 때(모두 양수이거나 모두 음수일 때)만 발생한다. 같은 부호를 갖는 수를 덧셈했는데 부호가 바뀌었다면, 이는 오버플로가 발생한 것이다.

'학부 수업 > 디지털시스템' 카테고리의 다른 글

11. 디코더 (Decoder)  (0) 2020.05.15
10. 자리올림수 예측 가산기 (Carry look Ahead Full Adder)  (0) 2020.05.12
8. 조합 회로의 분석 (Combinational Circuit)  (0) 2020.04.24
7. 범용 게이트 (Universal Gates)  (0) 2020.04.24
6.SOP, POS 단순화와 카르노 맵 (Karnaugh Map)  (1) 2020.04.15

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 11. 디코더 (Decoder)

    11. 디코더 (Decoder)

    2020.05.15
  • 10. 자리올림수 예측 가산기 (Carry look Ahead Full Adder)

    10. 자리올림수 예측 가산기 (Carry look Ahead Full Adder)

    2020.05.12
  • 8. 조합 회로의 분석 (Combinational Circuit)

    8. 조합 회로의 분석 (Combinational Circuit)

    2020.04.24
  • 7. 범용 게이트 (Universal Gates)

    7. 범용 게이트 (Universal Gates)

    2020.04.24
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (283)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (49)
      • 회고 & 계획 (20)
      • 내 이야기 (9)
      • 리뷰 (4)
      • 군대에 간 공돌이 (10)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바