ROONTAMS
ROONTAMS
ROONTAMS
전체 방문자
오늘
어제
  • 분류 전체보기 (13)
    • Unity : 개발 (0)
    • 강의 (12)
      • iOS개발 강의 (6)
      • React 강의 (1)
      • 컴퓨터 구조 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ROONTAMS

ROONTAMS

카테고리 없음

논리회로 기초

2025. 9. 26. 14:00
컴퓨터구조: 논리회로 기초

컴퓨터구조: 논리회로 기초

디지털 시스템의 기본 구성 요소와 설계 원리

목차

  • 제1장. 논리회로 개요
  • 제2장. 기본 논리 게이트
  • 제3장. 확장 논리 게이트
  • 제4장. 논리회로 표현 방식
  • 제5장. 부울 대수와 논리식 간소화
  • 제6장. 논리회로의 분류

제1장. 논리회로 개요

학습목표: 논리회로의 정의와 중요성을 이해하고, 소프트웨어와 하드웨어의 연결고리로서의 역할을 파악한다.

1.1 논리회로의 필요성

소프트웨어 개발자가 논리회로를 이해해야 하는 이유는 명확하다. 모든 소프트웨어는 궁극적으로 하드웨어 위에서 실행되며, 코드의 성능 최적화와 근본적인 버그 해결을 위해서는 하드웨어 동작 원리를 이해해야 한다. 논리회로는 우리가 작성한 고수준 코드가 최종적으로 전기 신호로 변환되어 처리되는 과정의 핵심이다.

핵심 개념: 논리회로는 소프트웨어의 추상적 명령이 물리적 전기 신호로 변환되는 다리 역할을 한다.

1.2 컴파일 과정과 기계어

고급 언어로 작성된 소스 프로그램은 컴파일러를 통해 기계어로 번역된다. 이 기계어는 0과 1의 이진수로 구성되며, CPU가 직접 이해하고 실행할 수 있는 유일한 언어이다. 컴파일 과정은 다음과 같이 진행된다:

  1. 고급 언어(Python, C 등) → 어셈블리어
  2. 어셈블리어 → 기계어(이진수)
  3. 기계어 → 논리 게이트 동작
  4. 논리 게이트 → 트랜지스터의 전기 신호

1.3 전기 신호와 디지털 표현

컴퓨터는 전압의 높낮이를 통해 0과 1을 표현한다. 일반적으로 5V에 가까운 전압은 High(1, True)로, 0V에 가까운 전압은 Low(0, False)로 해석한다. 이러한 명확한 두 가지 상태만을 사용하는 시스템을 디지털 시스템이라고 한다.

논리 상태 전압 레벨 이진수 부울 값
HIGH 5V 1 TRUE
LOW 0V 0 FALSE

1.4 추상화 계층

컴퓨터 시스템은 여러 추상화 계층으로 구성된다. 논리회로는 기계어 레벨과 전자 소자 레벨 사이에 위치하며, 소프트웨어와 하드웨어 사이의 계약서 역할을 한다. 각 계층의 역할은 다음과 같다:

  • 기계어 레벨: 0과 1의 이진수로 표현되는 명령어
  • 논리회로 레벨: AND, OR, NOT 등의 논리 게이트로 구성
  • 전자소자 레벨: 트랜지스터, 저항, 커패시터 등의 물리적 부품
  • 소재 레벨: 실리콘 등의 반도체 물질

제2장. 기본 논리 게이트

학습목표: AND, OR, NOT 게이트의 동작 원리를 이해하고, 진리표를 통해 각 게이트의 특성을 파악한다.

2.1 AND 게이트

AND 게이트는 두 입력이 모두 1일 때만 1을 출력하는 가장 엄격한 게이트이다. "그리고"의 논리를 구현하며, 모든 조건이 참이어야만 결과가 참이 된다.

A B Y AND 게이트

논리식: Y = A · B 또는 Y = AB

프로그래밍: Y = A && B (논리), Y = A & B (비트)

A B Y (A·B) 설명
0 0 0 둘 다 거짓 → 거짓
0 1 0 하나만 참 → 거짓
1 0 0 하나만 참 → 거짓
1 1 1 둘 다 참 → 참

AND 게이트의 동작은 수학의 곱셈과 동일하다. 0×0=0, 0×1=0, 1×0=0, 1×1=1의 규칙을 따른다. 이러한 특성 때문에 논리식에서 곱셈 기호(·)를 사용한다.

실생활 예시: 건물 출입 시스템

학생증 소지(A)와 정상 체온(B) 두 조건을 모두 만족해야 출입이 가능한 시스템:

  • 학생증 없음(0) + 열 있음(0) = 출입 불가(0)
  • 학생증 없음(0) + 정상 체온(1) = 출입 불가(0)
  • 학생증 있음(1) + 열 있음(0) = 출입 불가(0)
  • 학생증 있음(1) + 정상 체온(1) = 출입 가능(1)

2.2 OR 게이트

OR 게이트는 두 입력 중 하나라도 1이면 1을 출력하는 포용적인 게이트이다. "또는"의 논리를 구현하며, 여러 조건 중 하나만 참이어도 결과가 참이 된다.

A B Y OR 게이트

논리식: Y = A + B

프로그래밍: Y = A || B (논리), Y = A | B (비트)

A B Y (A+B) 설명
0 0 0 둘 다 거짓 → 거짓
0 1 1 하나라도 참 → 참
1 0 1 하나라도 참 → 참
1 1 1 둘 다 참 → 참

OR 게이트의 동작은 수학의 덧셈과 유사하지만, 중요한 차이점이 있다. 일반 산술에서는 1+1=2이지만, 논리 대수에서는 1+1=1이다. 이는 "참 또는 참"은 여전히 "참"이라는 논리적 의미이다.

실생활 예시: 자동문 시스템

모션 센서(A)나 버튼(B) 중 하나만 작동해도 문이 열리는 시스템:

  • 감지 없음(0) + 버튼 안 누름(0) = 문 닫힘(0)
  • 감지 없음(0) + 버튼 누름(1) = 문 열림(1)
  • 감지됨(1) + 버튼 안 누름(0) = 문 열림(1)
  • 감지됨(1) + 버튼 누름(1) = 문 열림(1)

2.3 NOT 게이트 (인버터)

NOT 게이트는 입력을 반전시키는 단일 입력 게이트이다. 입력이 하나뿐인 유일한 기본 게이트로, "아니다"의 논리를 구현한다.

A Y NOT 게이트

논리식: Y = A' 또는 Y = Ā

프로그래밍: Y = !A (논리), Y = ~A (비트)

A Y (A') 설명
0 1 거짓 → 참
1 0 참 → 거짓

NOT 게이트의 특징은 삼각형 끝에 있는 작은 동그라미(bubble)이다. 이 동그라미는 "반전"을 의미하는 보편적인 기호로, 다른 게이트와 조합될 때도 사용된다.

중요 성질: NOT을 두 번 적용하면 원래 값으로 돌아온다. (A')' = A

실생활 예시: 자동 가로등

조도 센서의 신호를 반전시켜 가로등을 제어하는 시스템:

  • 밝음(1) → NOT → 꺼짐(0)
  • 어두움(0) → NOT → 켜짐(1)

2.4 비트 연산 최적화

논리 게이트의 원리를 활용한 비트 연산은 프로그래밍에서 성능 최적화에 중요한 역할을 한다.

// 2의 거듭제곱 판별 - 느린 방법
bool isPowerOfTwo_slow(int n) {
    if (n <= 0) return false;
    while (n % 2 == 0) {
        n /= 2;
    }
    return n == 1;
}

// 2의 거듭제곱 판별 - 빠른 방법 (비트 AND 연산)
bool isPowerOfTwo_fast(int n) {
    return n > 0 && (n & (n - 1)) == 0;
}
                        

비트 AND 연산을 활용한 최적화는 반복문을 사용한 방법보다 약 15배 빠르다. 2의 거듭제곱수는 이진수로 표현할 때 1이 단 하나만 존재하며, n과 n-1을 AND 연산하면 항상 0이 되는 특성을 활용한다.

🔍 기본 게이트 연습문제

문제 1. 진리표 완성하기

다음 논리식에 대한 진리표를 완성하시오: Y = A'B + AB'

A B A' B' A'B AB' Y
0 0 ? ? ? ? ?
0 1 ? ? ? ? ?
1 0 ? ? ? ? ?
1 1 ? ? ? ? ?

문제 2. 게이트 조합 분석

두 개의 AND 게이트와 하나의 OR 게이트를 사용한 회로가 있다. 첫 번째 AND 게이트는 A와 B를 입력받고, 두 번째 AND 게이트는 B와 C를 입력받는다. 두 AND 게이트의 출력이 OR 게이트의 입력이 된다.

  • 이 회로의 논리식을 작성하시오.
  • A=1, B=1, C=0일 때 출력값을 구하시오.

문제 3. 실제 응용

엘리베이터 안전 시스템: "문이 닫혀있고(A) 무게가 정상 범위이고(B) 비상정지 버튼이 눌리지 않았을 때(C')" 엘리베이터가 동작한다.

  • 이 시스템의 논리식을 작성하시오.
  • 8가지 입력 조합에 대한 진리표를 작성하시오.

문제 4. 프로그래밍 연결

다음 C 코드를 논리식으로 변환하시오:

if ((x > 5 && y <= 10) || z == 0) { ... }

힌트: x > 5를 A, y <= 10을 B, z == 0을 C로 치환

📝 정답 보기

문제 1 정답: Y는 XOR 게이트와 같은 동작 (0,1,1,0)

문제 2 정답: Y = AB + BC, 출력값 = 1

문제 3 정답: Y = A·B·C'

문제 4 정답: Y = (A·B) + C

제3장. 확장 논리 게이트

학습목표: XOR, NAND, NOR 등 확장 게이트의 특성을 이해하고, 실제 회로 설계에서의 효율성을 학습한다.

3.1 확장 게이트의 필요성

기본 게이트만으로도 모든 디지털 회로를 구현할 수 있지만, 확장 게이트를 사용하면 다음과 같은 이점을 얻을 수 있다:

  • 비용 효율성: 더 적은 수의 게이트로 같은 기능 구현
  • 속도 향상: 신호 전파 지연 시간 감소
  • 설계 단순화: 회로의 복잡도 감소와 유지보수 용이

3.2 XOR 게이트 (배타적 논리합)

XOR 게이트는 두 입력이 서로 다를 때만 1을 출력한다. "배타적(eXclusive)"이라는 이름처럼, 두 입력이 모두 1일 때는 0을 출력하는 특별한 OR 게이트이다.

A B Y XOR 게이트

논리식: Y = A ⊕ B = A'B + AB'

프로그래밍: Y = A ^ B (비트 XOR)

A B Y (A⊕B) 설명
0 0 0 같음 → 0
0 1 1 다름 → 1
1 0 1 다름 → 1
1 1 0 같음 → 0

XOR의 4대 핵심 성질

  1. 자기 소거: A ⊕ A = 0 (자기 자신과의 XOR은 항상 0)
  2. 항등원: A ⊕ 0 = A (0과의 XOR은 자기 자신)
  3. 교환 법칙: A ⊕ B = B ⊕ A
  4. 결합 법칙: (A ⊕ B) ⊕ C = A ⊕ (B ⊕ C)

이러한 성질들은 암호화와 오류 검출에서 핵심적인 역할을 한다. 특히 첫 번째와 두 번째 성질을 조합하면 놀라운 응용이 가능하다.

XOR 스왑 알고리즘

임시 변수 없이 두 변수의 값을 교환하는 방법:

// 초기값: a = 5 (0101), b = 3 (0011)
a = a ^ b;  // a = 0101 ^ 0011 = 0110 (6)
b = a ^ b;  // b = 0110 ^ 0011 = 0101 (5)
a = a ^ b;  // a = 0110 ^ 0101 = 0011 (3)
// 결과: a = 3, b = 5 (교환 완료!)
                        

이 알고리즘은 메모리가 극도로 제한된 임베디드 시스템이나 CPU 레지스터 내부에서 매우 유용하다.

XOR 암호화 원리

평문 ⊕ 키 = 암호문
암호문 ⊕ 키 = 평문

같은 키로 두 번 XOR 하면 원래 값이 복원되는 성질을 이용한 가장 기본적인 암호화 방식이다.

3.3 NAND 게이트 (만능 게이트)

NAND 게이트는 AND의 출력을 반전시킨 게이트이다. "NOT AND"의 줄임말로, AND 게이트 뒤에 NOT 게이트를 연결한 것과 동일한 동작을 한다.

A B Y NAND 게이트

논리식: Y = (A·B)' = (AB)'

특징: 출력 부분의 동그라미가 반전을 의미

A B A·B Y = (A·B)'
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0

NAND의 만능성 (Universality)

NAND 게이트만으로 모든 기본 게이트를 구현할 수 있다:

  • NOT 만들기: NAND(A,A) = (A·A)' = A'
  • AND 만들기: NAND(NAND(A,B), NAND(A,B)) = ((A·B)')' = A·B
  • OR 만들기: NAND(NAND(A,A), NAND(B,B)) = (A'·B')' = A+B (드모르간 법칙)
산업적 중요성: 반도체 제조 시 NAND 게이트 하나만 효율적으로 생산하면, 그것으로 모든 디지털 회로를 구성할 수 있다. 이는 생산 공정을 단순화하고 비용을 크게 절감한다.

3.4 NOR 게이트

NOR 게이트는 OR의 출력을 반전시킨 게이트이다. NAND와 마찬가지로 만능 게이트의 특성을 가진다.

A B Y NOR 게이트

논리식: Y = (A+B)'

특징: 두 입력이 모두 0일 때만 1 출력

A B A+B Y = (A+B)'
0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 0

XNOR 게이트 (참고)

XNOR은 XOR의 출력을 반전시킨 게이트로, 두 입력이 같을 때 1을 출력한다. 동등 비교기(Equivalence Comparator)라고도 불린다.

🔍 확장 게이트 연습문제

문제 1. XOR 게이트 분석

XOR 게이트를 기본 게이트(AND, OR, NOT)만으로 구현하시오.

힌트: Y = A⊕B = A'B + AB'

문제 2. NAND 만능성 증명

NAND 게이트 2개를 사용하여 XOR 게이트와 동일한 진리표를 만들 수 있는가? 없다면 최소 몇 개가 필요한가?

문제 3. 패리티 검사기

3비트 입력(A, B, C)에 대한 홀수 패리티 검사기를 설계하시오. (1의 개수가 홀수면 출력 1)

  • 진리표를 작성하시오
  • XOR 게이트를 사용한 논리식을 작성하시오

문제 4. 비트 연산 응용

다음 C 코드의 결과를 예측하시오:

int a = 12;  // 1100
int b = 10;  // 1010
int c = a ^ b;
int d = c ^ b;
// c와 d의 값은?
                        

문제 5. 암호화 실습

메시지 'H'(ASCII: 72, 이진수: 01001000)를 키 'K'(ASCII: 75, 이진수: 01001011)로 XOR 암호화하면?

📝 정답 보기

문제 1: 2개 AND, 1개 OR, 2개 NOT 필요

문제 2: NAND 게이트 5개 필요 (최소)

문제 3: Y = A⊕B⊕C

문제 4: c = 6 (0110), d = 12 (1100, 원래 a값 복원)

문제 5: 01001000 ⊕ 01001011 = 00000011 (ASCII: 3)

제4장. 논리회로 표현 방식

학습목표: 진리표, 논리식, 논리도의 상호 변환 방법을 습득하고, 각 표현 방식의 장단점을 이해한다.

4.1 진리표 (Truth Table)

진리표는 논리회로의 동작을 완벽하게 기술하는 가장 기본적인 방법이다. 모든 가능한 입력 조합에 대한 출력을 명시한다.

진리표의 구성 요소

  • 입력 변수: 회로에 들어가는 신호 (A, B, C, ...)
  • 출력 변수: 회로가 내보내는 결과 (Y, Z, ...)
  • 행(Row): 입력 변수들의 특정 조합. n개 입력 시 2^n개의 행
  • 열(Column): 각 변수의 값들

진리표 작성 5단계

  1. 입력 변수 식별: 회로의 입력 신호 정의
    예: 심판 3명의 투표 → A, B, C
  2. 출력 변수 정의: 회로의 출력 결과 정의
    예: 안건 통과 여부 → Y
  3. 행 개수 계산: 2^n (n은 입력 개수)
    예: 입력 3개 → 2^3 = 8행
  4. 이진수 순서로 입력 나열: 000부터 111까지 체계적 나열
    000→0
    001→1
    010→2
    ......
    111→7
  5. 각 입력 조합에 대한 출력 결정: 회로의 기능에 따라 출력값 결정
    예: "2명 이상 찬성 시 통과" 규칙 적용

실습: 다수결 회로 진리표

3명 중 2명 이상이 찬성(1)하면 안건이 통과(1)되는 다수결 회로:

A B C 찬성 수 Y (출력) 설명
0 0 0 0 0 기각
0 0 1 1 0 기각
0 1 0 1 0 기각
0 1 1 2 1 통과!
1 0 0 1 0 기각
1 0 1 2 1 통과!
1 1 0 2 1 통과!
1 1 1 3 1 통과!
진리표의 한계:
  • 4개 입력 → 16행
  • 8개 입력 → 256행
  • 16개 입력 → 65,536행
  • 32개 입력 → 약 43억 행 (4GB 메모리)
  • 64개 입력 → 약 1800경 행 (16 엑사바이트)
입력이 증가하면 진리표 크기가 지수적으로 폭발한다!

4.2 논리식 (Boolean Expression)

논리식은 진리표의 내용을 수학적으로 압축한 표현이다. 진리표에서 출력이 1이 되는 조건들을 최소항으로 표현하여 OR 연산으로 결합한다.

진리표에서 논리식 유도하기

  1. 최소항 찾기: 출력이 1인 모든 행을 찾는다
  2. 각 최소항을 논리식으로 표현:
    • 입력이 1인 변수는 그대로
    • 입력이 0인 변수는 NOT(') 붙여서
    • 모든 변수를 AND(·)로 연결
  3. 모든 최소항을 OR(+)로 연결: Sum of Products (SOP) 형식

예시: 다수결 회로의 논리식 유도

진리표에서 Y=1인 경우:

  • A=0, B=1, C=1 → 최소항: A'BC
  • A=1, B=0, C=1 → 최소항: AB'C
  • A=1, B=1, C=0 → 최소항: ABC'
  • A=1, B=1, C=1 → 최소항: ABC

최종 논리식: Y = A'BC + AB'C + ABC' + ABC

표현 형식

형식 설명 예시
SOP
(Sum of Products)
곱 항들의 합
출력이 1인 경우를 표현
Y = AB + BC + AC
POS
(Product of Sums)
합 항들의 곱
출력이 0인 경우를 표현
Y = (A+B)(B+C)(A+C)
언제 어떤 형식을 사용할까?
  • 진리표에서 1이 적으면 → SOP가 유리
  • 진리표에서 0이 적으면 → POS가 유리
  • 하드웨어 구현 시 사용 가능한 게이트 종류에 따라 선택

4.3 논리도 (Logic Diagram)

논리도는 논리식을 게이트 기호를 사용하여 시각화한 회로도이다. 각 논리 연산자를 대응하는 게이트 기호로 직접 변환한다.

논리식에서 논리도 그리기

  1. 입력 신호선 배치: 왼쪽에 입력 변수들을 세로로 배열
  2. NOT 게이트 배치: 부정(') 연산이 필요한 입력에 NOT 게이트 추가
  3. AND 게이트 배치: 각 곱 항(최소항)마다 AND 게이트 하나씩
  4. OR 게이트 배치: 모든 AND 게이트 출력을 OR 게이트로 결합
  5. 출력선 연결: 최종 출력을 오른쪽에 표시

예시: 반가산기 (Half-Adder)

기능: 1비트 덧셈 수행

진리표:

ABSumCarry
0000
0110
1010
1101

논리식:

  • Sum = A ⊕ B (XOR 연산)
  • Carry = A · B (AND 연산)

회로 구성: XOR 게이트 1개, AND 게이트 1개

4.4 상호 변환 실습

진리표, 논리식, 논리도는 서로 변환 가능하며, 각각의 장단점이 있다.

변환 관계

  • 진리표 → 논리식: 1 대 다 관계 (여러 동등한 식 가능)
  • 논리식 ↔ 논리도: 1 대 1 대응 관계
  • 논리도 → 진리표: 회로 동작을 역추적하여 진리표 작성

설계 프로세스

  1. 요구사항 분석 → 문제 정의
  2. 진리표 작성 → 모든 경우의 수 정리
  3. 논리식 유도 → SOP 또는 POS 형태
  4. 논리식 간소화 → 부울 대수 법칙 적용
  5. 논리도 작성 → 게이트 배치 및 연결
  6. 회로 구현 → 실제 하드웨어 제작

제5장. 부울 대수와 논리식 간소화

학습목표: 부울 대수의 법칙을 활용하여 논리식을 간소화하고, 효율적인 회로를 설계하는 방법을 학습한다.

5.1 부울 대수의 기본 법칙

부울 대수는 0과 1, 두 값만을 다루는 대수 체계이다. 주요 법칙은 다음과 같다:

법칙명 AND 형태 OR 형태
항등 법칙 A · 1 = A A + 0 = A
영/일 법칙 A · 0 = 0 A + 1 = 1
멱등 법칙 A · A = A A + A = A
보수 법칙 A · A' = 0 A + A' = 1
교환 법칙 A · B = B · A A + B = B + A
분배 법칙 A(B + C) = AB + AC
A + BC = (A + B)(A + C)

5.2 드모르간의 법칙

드모르간의 법칙은 NOT 연산을 분배하는 핵심 법칙이다:

제1법칙: (A + B)' = A' · B' (OR의 부정은 각각 부정한 후 AND)
제2법칙: (A · B)' = A' + B' (AND의 부정은 각각 부정한 후 OR)

기억 방법: "바를 끊으면 연산자가 뒤집힌다"

5.3 간소화 실습: 다수결 회로

3명 중 2명 이상이 찬성하면 통과하는 다수결 회로를 간소화해보자.

원래 식: Y = A'BC + AB'C + ABC' + ABC

1단계: ABC 항을 중복 사용 (멱등 법칙)
Y = A'BC + AB'C + ABC' + ABC + ABC + ABC

2단계: 공통 인수로 묶기
Y = BC(A' + A) + AC(B' + B) + AB(C' + C)

3단계: 보수 법칙 적용 (X + X' = 1)
Y = BC·1 + AC·1 + AB·1

4단계: 항등 법칙 적용
Y = BC + AC + AB

결과: 4개의 3입력 AND → 3개의 2입력 AND로 간소화
                        

5.4 프로그래밍 응용

부울 대수 법칙은 조건문 최적화에 직접 적용된다:

// 최적화 전
if (age >= 18 && hasID && isKorean) {
    allow();
} else if (age >= 18 && hasID && !isKorean) {
    checkPassport();
    allow();
}

// 최적화 후 (분배 법칙 적용)
if (age >= 18 && hasID) {
    if (isKorean) {
        allow();
    } else {
        checkPassport();
        allow();
    }
}
                        

제6장. 다음 시간 예고: 논리회로의 분류

다음 강의에서 배울 내용: 조합 논리 회로와 순서 논리 회로의 차이점

6.1 조합 논리 회로 (Combinational Logic)

지금까지 우리가 배운 모든 회로는 '조합 논리 회로'이다. 이 회로들의 특징은 '기억'이 없다는 점이다. 출력은 오직 현재의 입력에만 의존하며, 자판기처럼 입력이 같으면 항상 같은 출력을 낸다.

다음 시간에 배울 조합 회로들:

  • 가산기/감산기 (Adder/Subtractor)
  • 인코더/디코더 (Encoder/Decoder)
  • 멀티플렉서/디멀티플렉서 (MUX/DEMUX)
  • 비교기 (Comparator)

6.2 순서 논리 회로 (Sequential Logic) - 미리보기

컴퓨터가 정보를 '기억'하려면 어떻게 해야 할까? 바로 '순서 논리 회로'가 필요하다. 이 회로는 과거의 상태를 기억하고, 현재 입력과 과거 상태를 함께 고려하여 출력을 결정한다.

핵심 차이점:
  • 조합 회로: 출력 = f(현재 입력)
  • 순서 회로: 출력 = f(현재 입력, 과거 상태)

다음 시간에 배울 순서 회로들:

  • 플립플롭 (Flip-Flop) - 1비트 메모리의 기본 단위
  • 레지스터 (Register) - CPU의 초고속 메모리
  • 카운터 (Counter) - 클럭 신호를 세는 회로
  • RAM의 기본 구조

📚 핵심 요약 및 정리

오늘 배운 핵심 개념 체크리스트

✅ 기본 논리 게이트

게이트 기능 논리식 핵심 특징
AND 모두 1일 때만 1 Y = A·B 가장 엄격한 조건
OR 하나라도 1이면 1 Y = A+B 가장 포용적인 조건
NOT 입력 반전 Y = A' 유일한 단일 입력

✅ 확장 논리 게이트

게이트 기능 논리식 주요 용도
XOR 두 입력이 다를 때 1 Y = A⊕B 비교, 암호화, 패리티
NAND AND의 반전 Y = (A·B)' 만능 게이트
NOR OR의 반전 Y = (A+B)' 만능 게이트

✅ 표현 방식의 관계

진리표 → 논리식 → 간소화 → 논리도
(완전한 명세) → (수학적 표현) → (최적화) → (회로 설계)

✅ 부울 대수 주요 법칙

  • 항등: A·1 = A, A+0 = A
  • 영/일: A·0 = 0, A+1 = 1
  • 멱등: A·A = A, A+A = A
  • 보수: A·A' = 0, A+A' = 1
  • 이중부정: (A')' = A
  • 드모르간: (A+B)' = A'·B', (A·B)' = A'+B'

✅ 프로그래밍과의 연결

논리 연산 C/C++ 논리 C/C++ 비트 Python
AND && & and, &
OR || | or, |
NOT ! ~ not, ~
XOR - ^ ^

💡 핵심 통찰

1. 추상화의 힘

복잡한 CPU도 결국 AND, OR, NOT의 조합이다. 단순한 요소의 반복이 복잡한 시스템을 만든다.

2. 최적화의 중요성

같은 기능을 하는 회로도 간소화 정도에 따라 성능이 수십 배 차이날 수 있다.

3. SW와 HW의 연결

우리가 작성하는 if문과 for문은 결국 이러한 논리 게이트의 조합으로 실행된다.

🎯 학습 확인 문제

다음 질문에 답할 수 있다면 오늘 수업을 잘 이해한 것이다:

  1. 3개 입력 회로의 진리표는 몇 줄이 필요한가?
  2. XOR 게이트는 언제 1을 출력하는가?
  3. NAND 게이트가 만능 게이트인 이유는?
  4. A + A'의 결과는?
  5. n & (n-1) == 0이 2의 거듭제곱을 판별하는 이유는?
정답 확인
  1. 2³ = 8줄
  2. 두 입력이 서로 다를 때
  3. NAND만으로 NOT, AND, OR을 모두 만들 수 있기 때문
  4. 1 (보수 법칙)
  5. 2의 거듭제곱은 이진수에서 1이 하나만 있고, n-1과 AND하면 모든 비트가 상쇄되기 때문

맺음말

오늘 우리는 컴퓨터의 가장 기본적인 구성 요소인 논리 게이트를 학습했다. AND, OR, NOT이라는 단순한 세 가지 연산이 어떻게 복잡한 디지털 시스템을 구성하는지 이해했다.

중요한 것은 이러한 하드웨어 지식이 단순한 이론이 아니라는 점이다. 여러분이 작성하는 모든 코드는 결국 이러한 논리 게이트를 통해 실행된다. 비트 연산을 활용한 최적화, 조건문의 효율적인 구성, 알고리즘의 하드웨어 친화적 설계 등 모든 곳에서 오늘 배운 지식이 활용된다.

다음 시간에는 이러한 게이트들을 조합하여 실제로 유용한 회로들을 만드는 방법을 배울 것이다. 숫자를 더하는 가산기, 데이터를 저장하는 메모리, 신호를 선택하는 멀티플렉서 등 컴퓨터의 핵심 부품들이 어떻게 논리 게이트로 구성되는지 알아볼 예정이다.

Remember

"복잡한 것도 단순한 것의 조합이다"

- 컴퓨터 구조의 첫 번째 원칙 -

© 2025 컴퓨터구조 교재 | 논리회로 기초편

    ROONTAMS
    ROONTAMS

    티스토리툴바