인프런 워밍업 클럽 4기 CS - 2주차 발자국
디지털 논리 회로의 핵심 구성 요소
디지털 회로는 정보를 처리하고 저장하기 위해 다양한 논리 회로들을 사용합니다. 이 회로들은 크게 조합 논리 회로와 순차 논리 회로로 나눌 수 있어요.
1. 정보 선택 및 분배 회로
주어진 여러 정보 중 필요한 것을 선택하거나, 하나의 정보를 여러 목적지로 분배하는 역할을 합니다.
멀티플렉서 (Multiplexer, MUX)
역할: 여러 개의 입력(예: 2n개) 중 하나를 선택하여 출력합니다. 마치 여러 개의 물건 중 하나를 고르는 것과 같아요.
선택 신호: '선택 신호(Select Line)'를 통해 어떤 입력을 출력할지 결정합니다.
예시: 4:1 MUX는 4개의 입력 중 1개를 선택하며, 이를 위해 2개의 선택선이 필요해요.
디멀티플렉서 (Demultiplexer, DEMUX)
역할: 하나의 입력을 받아, 선택된 하나의 출력으로 전달합니다. 마치 하나의 물건을 여러 목적지 중 한 곳으로 보내는 것과 같아요.
선택 신호: '선택 신호'를 통해 어느 출력으로 보낼지 결정합니다.
디코더 (Decoder)
역할: n개의 입력을 받아, 2n개의 출력 중 오직 하나만 활성화(1로 만듦)시킵니다.
활성화: 특정 입력 조합에 대해 해당하는 출력 하나만 '1'이 되고 나머지는 모두 '0'이 됩니다.
예시: 3:8 디코더는 3개의 입력에 대해 8개의 출력 중 하나만 활성화됩니다.
주요 사용처: 특정 주소나 명령어를 인식하고 선택하는 데 사용됩니다.
2. 제어 및 데이터 흐름 관리 회로
제어 신호를 관리하고 데이터 흐름의 안정성을 유지하는 데 사용됩니다.
컨트롤 버퍼 (Control Buffer)
역할: 제어 신호나 제어 정보를 일시적으로 저장하거나 전달하는 완충 회로입니다.
주요 기능:
타이밍 조절: 제어 신호 전달 시 속도 차이를 조절하여 동기화 문제를 해결합니다.
안정성 유지: 제어 흐름을 안정적으로 유지하며, 경우에 따라 컨트롤 레지스터(Control Register)와 혼용되기도 합니다.
사용처: CPU 내부, 메모리 컨트롤러, 입출력(I/O) 장치 제어 등 다양한 곳에서 사용됩니다.
3. 연산 회로
이진수를 이용한 덧셈을 수행하는 데 사용되는 기본적인 회로입니다.
반가산기 (Half Adder)
역할: 두 개의 1비트 이진수(A, B)를 더합니다.
출력: 합(Sum)과 자리올림(Carry)이 있습니다.
논리식:
Sum=A⊕B (XOR 연산)
Carry=A∧B (AND 연산)
한계: 이전 자리에서 발생한 자리올림 값(Carry-in)을 처리할 수 없습니다.
전가산기 (Full Adder)
역할: 세 개의 1비트 이진수(A, B, 그리고 이전 자리의 자리올림 값인 Carry_in)를 더합니다.
출력: 합(Sum)과 자리올림(Carry_out)이 있습니다.
논리식:
Sum=A⊕B⊕Carry_in
Carry_out=(A∧B)∨(B∧Carry_in)∨(A∧Carry_in)
특징: 자리올림 입력을 처리할 수 있어 여러 비트의 덧셈(다비트 덧셈)에 활용됩니다.
4. 논리 회로의 분류
회로의 동작 방식과 기억 기능 유무에 따라 크게 두 가지로 나뉩니다.
조합 논리 회로 (Combinational Logic Circuit)
특징: 현재 입력에 의해서만 출력이 결정되며, 과거 상태를 기억하지 않습니다. (메모리 기능 없음)
동작: 입력이 바뀌면 출력이 즉시 바뀝니다. 클럭 신호가 필요 없습니다.
예시: 가산기(Adder), 디코더(Decoder), 인코더(Encoder), 멀티플렉서(MUX), 비교기 등이 있습니다.
순차 논리 회로 (Sequential Logic Circuit)
특징: 현재 입력과 과거 상태(기억된 값)에 따라 출력이 결정됩니다. 기억 기능(메모리)을 포함합니다.
동작: 클럭(Clock) 신호에 따라 타이밍 기반으로 동작하며, 출력이 시간의 흐름에 따라 변하거나 유지됩니다.
예시: 플립플롭(Flip-Flop), 레지스터(Register), 카운터(Counter), FSM(상태 기계), 메모리 등이 있습니다.
5. 순차 논리 회로의 기본 소자
순차 논리 회로의 핵심인 기억 소자들입니다.
클럭 (Clock)
역할: 디지털 회로 전체의 동작 타이밍을 결정하는 주기적인 펄스 신호입니다.
동작 기준: 클럭의 상승 엣지(↑)나 하강 엣지(↓)에서 회로가 동작하도록 설계됩니다.
래치 (Latch)
SR 래치 (Set-Reset Latch)
역할: S(Set), R(Reset) 두 입력으로 출력 Q를 제어하며, 이전 상태를 기억하는 순차 회로의 기본 형태입니다.
문제점: S=1, R=1일 때 출력이 불안정해지는 '금지 상태'가 발생합니다.
D 래치 (Data or Delay Latch)
역할: SR 래치의 금지 상태 문제를 해결했습니다.
입력: D(Data)와 Enable (또는 Clock)이 있으며, Enable이 '1'일 때만 D 값이 출력 Q로 전달됩니다.
특징: 항상 안정적으로 동작하며, 메모리 소자에 많이 사용됩니다.
JK 래치
역할: SR 래치의 금지 상태를 해결한 또 다른 형태입니다.
입력: J, K, 그리고 Clock이 있습니다. J는 Set, K는 Reset 역할을 합니다.
특징: J=K=1일 때 출력이 반전되는 특징이 있어 플립플롭 구현에 주로 사용됩니다.
플립플롭 (Flip-Flop)
역할: 1비트의 정보를 저장할 수 있는 순차 논리 회로입니다.
동작: 클럭 신호에 의해 상태가 변하거나 유지됩니다.
종류: D, JK, T 등 다양한 종류가 있습니다. (래치와는 클럭 동기화 방식에서 차이가 있습니다.)
레지스터 (Register)
역할: 여러 개의 플립플롭을 묶어 만든 구조로, 보통 8, 16, 32비트 등 데이터를 임시 저장하는 데 사용됩니다.
특징: CPU 내부에서 동기식으로 동작하며 고속 데이터 처리에 필수적입니다.
RAM (Random Access Memory)
역할: 데이터를 자유롭게 읽고 쓸 수 있는 임의 접근 메모리입니다.
특징: 전원이 꺼지면 데이터가 사라지는 휘발성 메모리입니다.
접근 방식: 주소를 지정하여 원하는 위치의 데이터를 직접 접근할 수 있습니다.
댓글을 작성해보세요.