비상이다 비상 교수님이 막판에 진도를 엄청 나가셨다...ㅠㅠㅠㅠ
Chpater 07 전체 구조
Chapter 07은 조합회로 + 순서회로를 실제 시스템 구조로 확장한 장이라 보면된다.
Chapter 07은 크게 3파트로 나누어진다.
- Part 1: Registers, Microoperations and Implementations
- Part 2: Counters, Register Cells, Buses, Serial Operations
- Part 3: Control of Register Transfers
간단히
파트 1: 레지스터가 뭔지, 어떻게 load/shift/transfer 하는지
파트 2: 카운터, 버스, 3-state buffer, serial adder
파트 3: datapath와 control unit, 상태기계 기반 제어, 설계 절차
Register 정의
Register란
레지스터는 여러개의 binary storage element를 묶어놓은 것이다.
예를 들어 플립플롭 1개 = 1비트 저장, 플립플롭 여러 개 = 여러 비트 저장하는 것이다.
4개의 D flip flop -> 4비트 레지스터, 8개의 D flip-flop -> 8비트 레지스터
왜 중요한가?
디지털 시스템에서 데이터는 결국 레지스터에 저장된다.
그렇기에 레지스터는 datapath의 기본 저장단위라 할 수 있다.
Register와 Load Signal
단순 D FF만으로는 부족한 이유
D flip flop은 클록이 오면 입력값을 저장한다. 그런데 실제 레지스터는 매 클록마다 무조건 값이 바뀌면 안 된다.
즉 어떤 때는 새 값을 로드(load)하고 어떤 때는 기존 값을 유지(hold)해야 한다.
그렇기에 Load Signal이 필요하다.
Load의 의미
Load = 1이면 새 데이터를 저장 Load = 0이면 현재 값을 유지한다.
레지스터의 핵심 제어 입력 중 하나가 Load다.
Register 구현 방식 2가지
- Clock Gating
클록 자체를 막거나 통과 시켜서 레지스터가 동작하게 하는 방식
Load = 1 -> 클록 전달 -> 저장
Load = 0 -> 클록 차단 -> 유지
장점 : 개념 적으로 단순 / 단점 : clock skew, 타이밍 문제, 신뢰성 저하
이론상 가능하지만 약간 위험하다.
* clock skew : 디지털 회로에서 동일한 클록 신호가 배선 길이, 온도, 공정 차이 등으로 인해 회로 내 서로 다른 위치에 서로 다른 시간에 도달하는 현상 또는 시간 차이를 의미한다.

- Load-Controlled Feedback
더 믿을 만한 방식인데 핵심 아이디어는 다음과 같다.
1. 클록은 계속 정상적으로 공급
2. 입력 쪽에서 MUX를 사용해 Load = 1 ->외부 입력 선택, Load = 0 -> 현재 출력 값 feedback 선택
즉 레지스터 입력에 새 데이터와 현재 데이터 중 하나를 고르게 만드는 방식이다.
장점 : timing problem이 적다, clock gating 보다 안정적이다, 실제 설계에 더 선호된다.

Register Transfer Operation
레지스터 전송 동작(register transfer operation)은 한 레지스터의 데이터를 다른 레지스터로 옮기거나, 레지스터 내 데이터를 처리하는 동작이다.

예를 들어 위 동작은 R1의 내용을 R2로 전송하는 것이다.
핵심 구성 요소
register transfer operation의 3요소는 다음과 같다.
- set of registers
- operations
- control of operations

Microoperations
레지스터에 대해 수행되는 기본적인 연산을 microoperation이라 한다.
다음과 같이 4개의 종류가 있다.
- Transfer - move data from one register to another
- Arithmetic - perform arithmetic on data in registers
- Logic - manipulate data or use bitwise logical operations
- Shift - shift data in registers
1) Trangister

데이터를 한 레지스터에서 다른 레지스터로 이동
2) Arithmetic

3) Logic

4) Shift
- shift left
- shift right
Arithmetic Microoperations

Logical Microoperations


Shift Microoperations

Multiplexer-Based Transfer
여러 source register 중 하나를 선택해서 destination register로 보내기 위해 MUX를 사용하는 구조다.


위와 같이 R1 또는 R2 중 하나를 골라 R0에 저장하는 선택적 전송에 MUX가 쓰인다.
chap 3에서는 MUX는 조합회로 구현 블록이었는데 여기서는 데이터 전송 구조의 핵심 부품으로 쓰인다.
Shift Register
Shift register는 저장된 데이터를 한 비트씩 왼쪽 또는 오른쪽으로 이동시킬 수 있는 레지스터다.
병렬로 한 번에 데이터 로드 가능하며 클록마다 한 비트씩 이동 가능하다.


병렬 연산 가능한 parallel load + shift 기능이 함께 있는 shift register
Counter
Counter는 클록 펄스에 따라 상태가 규칙적으로 증가하거나 변화하는 순서회로다.
즉 레지스터의 특수한 형태다.
Ripple Counter
비동기 카운터(asynchronous counter)라고도 본다.
특징
- 첫 번째 플립플롭 출력이 다음 플립플롭의 클록 역할
- carry 또는 전이가 순차적으로 전달됨
- 구조는 단순
단점
- propagation delay누적
- 속도 느림
- glitch 가능성
앞에 4장의 개념과 비슷하다.


Synchronous Counters
모든 플립 플롭이 공통 클록을 사용한다.
특징
- 동시에 상태 변화
- delay 문제 감소
- 설계가 더 바람직

Modulo-N Counter
카운터가 0부터 특정 수까지 반복하도록 만든 구조
상태수가 N개
Suicide Counter 주의
보통 비동기 clear로 특정 상태를 강제로 초기화하는 구조에서 생길 수 있는 문제를 말한다.
즉 비동기 clear방식은 위험하며 synchronous load 방식이 더 안전하다는 것이다.
Register Cell Design
레지스터를 한 번에 크게 보는 게 아니라, 1비트 cell을 설계하고 이를 반복해서 n비트 레지스터를 만든다.
즉, bit slice / replication 관점이다.
의미
- 설계 모듈화
- 반복 구조
- 확장 용이
Bus System
Bus란
여러 장치가 공유하는 공통 데이터 전송선이다.
즉 레지스터들 사이에 각각 선을 다 따로 연결하는 대신 공유된 경로를 통해 데이터를 이동시키는 방식이다.
왜 필요한가?
레지스터가 많아지면 모든 레지스터 끼리 직접 연결하는 방식은 너무 비싸고 배선 수가 증폭하기 때문이다.
Register Transfer Structure 3가지 비교
- Multiplexer-Based Transfer
각 목적 레지스터 앞에 전용 MUX를 둔다.
장점 - 유연성 큼, 원하는 source를 쉽게 선택 가능
단점 - 하드웨어 비용 큼, 레지스터 수가 많아지면 MUX 규모 커짐

- Bus-Based Transfers
공유 MUX가 버스를 만들고, 여러 레지스터가 그 버스를 통해 데이터를 받는다.
장점 - 전용 MUX를 다는 것보다 저렴, 구조 단순화
단점 - 동시에 가능한 transfer가 제한됨
- Three-State Bus
3-state buffer를 이용해 여러 장치 출력을 하나의 bus에 연결
핵심
- 한 번에 하나의 장치만 bus를 구동해야 함
- 나머지 Hi-Z(high impedance) 상태여야 함
장점 - 비용 더 줄일 수 있음
단점 - 동시 전송 제한, enable 제어 중요, bus contention 주의

Three- State Buffer
출력이 3가지 상태를 가질 수 있는 버퍼
왜 필요한가
여러 장치가 하나의 bus를 공유할 때, 선택되지 않은 장치는 bus에 영향을 주면 안된다.
그래서 출력이 완전히 분리된 것처럼 보이는 Hi-Z 상태가 필요하다.

Serial Operations / Serial Adder
Serial Operation이란?
데이터를 한 번에 여러 비트 병렬로 처리하지 않고, 한 비트씩 순차적으로 처리하는 방식이다.

Serial Adder
구성 : shift register. full adder, carry 저장 요소
즉 병렬 가산기처럼 많은 하드웨어를 쓰지 않고 한 비트씩 시간에 따라 더하는 구조다.

하드웨어 비용이 적다는 장점이 있으나 느리다는 단점이 있다.
Parallel adder : 빠르지만 하드웨어 크다.
Serial adder : 싸지만 느리다.
Datapath와 Control Unit

Datapath
실제 데이터가 저장되고 이동되고 연산되는 부분
Control Unit
Datapath가 어떤 동작을 언제 수행할지 제어하는 부분
출력 - load signal, shift signal, enable, select lines
입력 - 외부 제어 입력, datapath로부터의 status signals
Status Signal과 Control Signal
Control Signal
Control unit -> datapath로 가는 신호
예 : Load R1, Select bus source, Increment counter, Shift right
Status Signal
Datapath -> control unit으로 가는 신호
예: zero flag, compare result, timer reached, register equal
즉 control unit은 status를 보고 다음 동작을 결정한다.
Register Transfer System Design Procedure
chap03 설계 절차의 확장 느낌이다. 여기서는 어떻게 설계하느냐가 중요하다.
핵심 흐름
- system specification
- datapath 정의
- control signals 정의
- state machine 설계
- 내부 상태 / 제어식 유도
즉 그냥 논리식을 만드는 것이 아닌 datapath + control을 같이 설계하는 단계다.
DASHWATCH 예제
개념
99.99초 stopwatch 같은 시스템을 설계하는 예제
즉
- 시간 저장 레지스터
- 비교 저장 레지스터
- 제어 상태
- 시작, 정지, reset 입력을 포함한 register transfer system 설계 예다.
이 예제에서 봐야 할 것
숫자 자체보다 중요한 건 아래다.
- 상태기계로 제어를 표현한다.
- 각 상태에서 어떤 register transfer가 발생하는지 정한다.
- control signal을 상태와 입력으로 부터 만든다.
- one-hot state assignment를 사용할 수 있다.
One-Hot State Assignment
상태가 N개면 N개의 flip flop을 써서 각 상태에 대해 오직 한 비트만 1이 되게 하는 방식
장점 - 상태 해석 쉬움, 제어식 단순화 가능, FPGA나 제어회로에서 자주 사용
단점 - flip flip 수 많이 필요
Microprogrammed Control
control signal을 조합논리로 직접 만들지 않고
memory(ROM / RAM)에 저장된 microinstructuin으로 부터 생성하는 방식
즉 hardwired control의 반대 개념
제어를 논리회로로 박아 넣는 대신, 일종의 작은 프로그램처럼 control memory에 저장해서 제어한다.
장점 - 수정 / 확장 쉬움, 복잡한 제어에 유리
단점 - 하드와이어드보다 느릴 수 있음
'학부 생활 + 랩실 > Digital Circuits' 카테고리의 다른 글
| Digital Circuits(디지털 회로)(8) - Memory Basics (1) | 2026.05.10 |
|---|---|
| Digital Circuits(디지털 회로)(6) - Sequential Circuits (0) | 2026.04.12 |
| Digital Circuits(디지털 회로)(5) - Arithmetic Functions (1) | 2026.04.12 |
| Digital Circuits(디지털 회로)(4) - Combinational Logic Design (0) | 2026.04.11 |
| Digital Circuits(디지털 회로)(3) - Combinational Logic Circuits(2) Circuit Optimization (0) | 2026.04.10 |