감산기
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
감산기는 뺄셈을 수행하는 데 사용되는 디지털 논리 회로이다. 감산기는 반감산기와 전감산기로 나뉜다. 반감산기는 두 개의 입력 비트의 뺄셈을 수행하며, 전감산기는 세 개의 입력 비트의 뺄셈을 수행한다. 각 감산기는 차이(difference)와 빌림(borrow)을 출력한다.
더 읽어볼만한 페이지
- 디지털 전자공학 - 트랜지스터-트랜지스터 논리
트랜지스터-트랜지스터 논리(TTL)는 1961년 제임스 L. 부이에 의해 발명된 바이폴라 접합 트랜지스터 기반의 디지털 회로 기술로, 텍사스 인스트루먼츠의 7400 시리즈를 통해 널리 사용되었으며, 저렴한 비용으로 디지털 기술 발전에 기여했다. - 디지털 전자공학 - 플립플롭
플립플롭은 1비트 이상의 정보를 저장하는 디지털 논리 회로로, 에클스-조던 트리거 회로에서 기원하여 SR, D, T, JK 등 다양한 유형으로 구현되며, 컴퓨터 기억 장치의 기본 구성 요소로 사용되지만 타이밍 요소에 민감하게 설계해야 한다. - 컴퓨터 산술 - IEEE 754
IEEE 754는 부동소수점 숫자를 표현하고 처리하기 위한 국제 표준으로, 다양한 형식과 연산, 반올림 규칙, 예외 처리 등을 정의한다. - 컴퓨터 산술 - 1의 보수
1의 보수는 이진수에서 양수는 일반적인 이진수로, 음수는 양수의 각 비트를 반전시켜 표현하며, 덧셈 시 자리올림수가 발생하면 결과값에 더해야 하고, 0을 중복 표현하는 단점으로 현대에는 2의 보수가 주로 사용된다.
감산기 |
---|
2. 반감산기 (Half Subtractor)
반감산기(Half Subtractor)는 두 개의 이진 입력 비트의 뺄셈을 수행하는 기본적인 조합 논리 회로이다. 입력으로는 피감수 와 감수 를 받고, 출력으로는 두 비트의 차이(Difference) 와 빌림(Borrow out) 을 생성한다.
빌림 출력()은 에서 를 뺄 때 상위 비트에서 빌려와야 하는 경우, 즉 일 때 1이 된다. 입력 와 가 단일 비트이므로, 빌림이 발생하는 유일한 경우는 이고 일 때이다. 반감산기는 XOR 게이트, AND 게이트, NOT 게이트 등을 조합하여 구현할 수 있으며, NAND 게이트만으로도 구현 가능하다.
반감산기의 동작 원리와 구체적인 논리식, 진리표는 하위 섹션에서 더 자세히 설명한다.
2. 1. 반감산기의 구조와 원리
반감산기는 두 비트의 뺄셈을 수행하는 조합 회로이다. 그림 1과 2에서 볼 수 있듯이 조합 부울 논리 회로를 통해 설계할 수 있다. 반감산기는 두 개의 입력, 즉 피감수 와 감수 를 받아서 두 개의 출력, 즉 차이(Difference) 와 빌림(Borrow out) 을 생성한다.
빌림 출력() 신호는 에서 를 뺄 때 상위 자릿수에서 빌림이 필요한 경우, 즉 일 때 1이 된다. 입력 와 가 각각 한 비트이므로, 빌림이 발생하는 경우는 오직 이고 일 때뿐이다. 따라서 빌림 출력의 논리식은 다음과 같다.
:
이 식은 AND 게이트와 NOT 게이트를 이용하여 구현할 수 있다. 그림 1의 회로도는 연산을 수행하며, 연산과는 다르다는 점에 유의해야 한다.
차이() 비트는 XOR 게이트를 사용하여 계산된다. XOR 게이트는 두 입력이 서로 다를 때 1을 출력하는데, 이는 뺄셈의 결과 비트와 동일하다.
:
뺄셈 자체는 교환 법칙이 성립하지 않지만, 차이 비트 는 교환 법칙이 성립하는 XOR 연산으로 계산된다는 점이 중요하다.
반감산기는 NAND 게이트만으로도 구현할 수 있다 (그림 2).
반감산기의 동작을 요약한 진리표는 다음과 같다.
입력 | 출력 | ||
---|---|---|---|
X | Y | D | Bout |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
이 진리표와 카르노 맵 등을 이용하면 위에서 제시된 와 의 논리 방정식을 유도할 수 있다.
결과적으로, 교차 추적을 피하고 부정 게이트를 회피하는 간소화된 반감산 회로는 다음과 같이 표현할 수 있다.
X ── XOR ─┬─────── |X-Y|, X와 Y가 같으면 0, 그렇지 않으면 1
┌──┘ └──┐
Y ─┴─────── AND ── 빌림, Y > X이면 1, 그렇지 않으면 0
여기서 오른쪽 줄은 출력이고, 나머지(위, 아래 또는 왼쪽)는 입력이다.
2. 2. 반감산기의 진리표
반감산기는 두 개의 입력, 피감수 와 감수 를 가지며, 두 개의 출력, 차이 와 빌림 출력 을 가진다. 빌림 출력 신호는 감산기가 다자릿수 뺄셈에서 다음 자릿수에서 빌려야 할 때 설정된다. 즉, 일 때 이다. 와 는 비트이므로, 이고 일 때만 이다.반감산기의 진리표는 다음과 같다.
입력 | 출력 | ||
---|---|---|---|
X | Y | D | Bout |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
위의 표와 카르노 맵을 사용하여 와 에 대한 다음 논리 방정식을 찾는다.
:
:
결과적으로, 특히 교차 추적을 피하고 부정 게이트를 회피하는 간소화된 반감산 회로는 다음과 같다.
:
X ── XOR ─┬─────── |X-Y|, X와 Y가 같으면 0, 그렇지 않으면 1
┌──┘ └──┐
Y ─┴─────── AND ── 빌림, Y > X이면 1, 그렇지 않으면 0
여기서 오른쪽 줄은 출력이고, 나머지(위, 아래 또는 왼쪽에서)는 입력이다.
2. 3. 반감산기의 논리식
반감산기는 두 개의 입력, 피감수 와 감수 를 가지며, 두 개의 출력, 차이 와 빌림 출력 을 가진다. 빌림 출력 신호()는 감산기가 다자릿수 뺄셈에서 다음 자릿수에서 빌려야 할 때 설정되는데, 이는 일 때, 즉 이고 일 때만 이 되는 경우이다.
반감산기의 진리표는 다음과 같다.
입력 | 출력 | ||
---|---|---|---|
X ! Y ! D ! Bout | |||
0 | 0 | 0 | |||
1 | 1 | 1 | |||
0 | 1 | 0 | |||
1 | 0 | 0 |
위의 진리표와 카르노 맵 등을 이용하여 차이()와 빌림 출력()에 대한 다음의 논리 방정식을 유도할 수 있다.
:
:
여기서 차이 비트 는 XOR 게이트를 사용하여 계산된다. 뺄셈 자체는 교환 법칙을 따르지 않지만, 차이 비트 는 교환 법칙이 적용되는 XOR 연산으로 계산된다는 점이 중요하다. 빌림 출력 는 가 0이고 가 1일 때만 1이 되는 AND 연산()으로 표현된다.
결과적으로, 교차 추적을 피하고 부정 게이트를 회피하는 간소화된 반감산 회로는 다음과 같이 나타낼 수 있다.
X ── XOR ─┬─────── |X-Y|, X와 Y가 같으면 0, 그렇지 않으면 1
┌──┘ └──┐
Y ─┴─────── AND ── 빌림, Y > X이면 1, 그렇지 않으면 0
위 회로도에서 오른쪽 줄은 출력이고, 나머지(위, 아래 또는 왼쪽에서)는 입력이다.
3. 전감산기 (Full Subtractor)
전감산기(Full Subtractor)는 세 개의 입력 비트인 피감수 , 감수 , 그리고 이전 자리에서의 빌림 여부를 나타내는 빌림 입력 을 받아 뺄셈 연산을 수행하는 조합 회로이다. 이 회로는 연산 결과로 현재 자리의 차이(Difference) 와 다음 상위 자리로 빌려줘야 할지 여부를 나타내는 빌림 출력(Borrow-out) 이라는 두 개의 출력 비트를 생성한다. 즉, 전감산기는 이전 자리에서의 빌림()까지 고려하여 뺄셈()을 수행하고, 그 결과()와 다음 자리로 넘겨줄 빌림()을 계산한다.
3. 1. 전감산기의 구조와 원리
전감산기는 세 개의 입력 비트인 피감수 , 감수 , 그리고 이전 자리에서의 빌림 여부를 나타내는 빌림 입력 을 받아 뺄셈을 수행하는 조합 회로이다. 전감산기는 연산 결과로 차이(Difference) 와 다음 자리로의 빌림 여부를 나타내는 빌림 출력 이라는 두 개의 출력 비트를 생성한다. 은 이전 자릿수에서 현재 자릿수의 피감수 로부터 값을 빌려왔을 경우 1이 된다. 따라서 전감산기는 에서 뿐만 아니라 까지 빼는 연산, 즉 을 수행한다.반감산기와 마찬가지로, 전감산기는 현재 자리의 연산을 위해 다음 상위 자릿수에서 빌려와야 할 경우 빌림 출력()을 생성한다. 에서 와 을 빼야 하므로, 가 보다 작을 때() 빌림이 필요하게 되어 이 1이 된다. 빌림 출력()이 발생하면, 이는 현재 자릿수에 2 (이진법의 밑)를 더하는 것과 같다. 이는 십진법 뺄셈에서 빌림이 발생할 때 10을 더하는 것과 유사한 원리이다. 따라서 차이 는 으로 계산된다.
전감산기의 동작을 나타내는 진리표는 다음과 같다.
입력 | 출력 | |||
---|---|---|---|---|
X (피감수) | Y (감수) | Bin (빌림 입력) | D (차이) | Bout (빌림 출력) |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
위 진리표로부터 전감산기의 출력 와 에 대한 논리식은 다음과 같이 유도될 수 있다.
여기서 는 XOR 연산을, 는 의 NOT 연산을, +는 OR 연산을, 생략된 곱셈 기호는 AND 연산을 의미한다.
3. 2. 전감산기의 진리표
전감산기는 세 개의 입력 비트인 피감수 , 감수 , 이전 자리 빌림 의 뺄셈을 수행하는 조합 회로이다. 전감산기는 차이 와 다음 자리 빌림 이라는 두 개의 출력 비트를 생성한다. 은 이전 자릿수에서 로 빌림이 발생했을 때 1이 된다. 따라서 은 감수 와 함께 에서 빼야 할 값이 된다. 이를 수식으로 표현하면 이다. 전감산기는 다음 자릿수에서 빌려야 할 때 빌림 출력()을 생성하는데, 이는 일 때 발생한다. 빌림 출력이 발생하면 현재 자릿수 계산에 2가 더해진 것으로 간주한다(뺄셈 결과 ). 이는 십진법 뺄셈에서 윗자리에서 10을 빌려오는 것과 유사하다.전감산기의 진리표는 다음과 같다.
입력 | 출력 | |||
---|---|---|---|---|
X (피감수) | Y (감수) | Bin (이전 자리 빌림) | D (차이) | Bout (다음 자리 빌림) |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
진리표에 따른 논리 방정식은 다음과 같다.
3. 3. 전감산기의 논리식
전가산기는 세 개의 입력 비트인 피감수 , 감수 , 이전 자리에서의 빌림 입력 을 받아 뺄셈 연산을 수행하는 조합 회로이다. 전가산기는 연산 결과로 차이(Difference) 와 다음 자리로의 빌림 출력(Borrow-out) 이라는 두 개의 출력 비트를 생성한다. 빌림 입력 은 이전 자리의 연산에서 빌림이 필요했을 때 1이 되며, 이 값은 피감수 에서 감수 와 함께 빼지게 된다. 즉, 연산을 수행한다.반가산기와 마찬가지로, 전가산기는 현재 자리의 연산 결과, 다음 상위 자리에서 빌려와야 할 필요가 있을 때 빌림 출력 을 1로 설정한다. 빌림은 에서 와 의 합을 뺄 때, 가 보다 작을 경우() 발생한다. 빌림이 발생하면(), 현재 자리의 계산에는 2 (해당 자릿값)가 더해진 것으로 간주한다. 이는 십진법 뺄셈에서 빌림이 발생할 때 10을 더하는 것과 유사한 원리이다. 따라서 차이 는 의 관계를 만족한다.
전감산기의 입력과 출력 관계는 다음 진리표로 나타낼 수 있다.
입력 | 출력 | |||
---|---|---|---|---|
X (피감수) | Y (감수) | Bin (빌림 입력) | D (차이) | Bout (빌림 출력) |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
위 진리표를 바탕으로 전감산기의 출력 와 에 대한 논리식을 유도하면 다음과 같다.
- '''차이 (D):'''
- '''빌림 출력 (Bout):'''
여기서 는 XOR 연산을, 는 NOT 연산을, '+'는 OR 연산을, 변수들이 붙어있는 것은 AND 연산을 의미한다.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com