레지스터(Register) 는 플립플롭(Flip-Flop) 여러 개를 묶어서 만든 다중비트(Multi-bit) 저장 장치이다.
즉, 여러 비트의 데이터를 동시에 저장하고 유지할 수 있는 디지털 메모리 소자다.
- 1개의 플립플롭 → 1비트(bit) 저장
- 8개의 플립플롭 → 8비트(=1바이트) 저장
- 16개의 플립플롭 → 16비트(=2바이트) 저장
레지스터는 CPU 내부, 제어기, 데이터 경로 등에서 광범위하게 사용되며,
데이터 일시 저장, 전송, 연산 중간 결과 보관 등의 역할을 한다.
레지스터의 기본 구조
레지스터는 여러 개의 D 플립플롭(D Flip-Flop) 을 병렬 연결(Parallel Connection) 하여 구성된다.
동작 원리
- 클록(Clock) 엣지가 들어오면,
입력 데이터(D0~Dn)가 각각의 플립플롭에 저장된다. - 다음 클록이 들어오기 전까지 저장된 데이터(Q0~Qn)는 유지된다.
레지스터의 주요 기능
레지스터는 단순한 저장 기능 외에도 다양한 형태로 응용된다.
다음은 대표적인 레지스터의 종류와 역할이다.
| 구분 | 설명 | 주요 용도 |
| Parallel Register (병렬 레지스터) | 여러 비트를 동시에 저장·출력 | CPU 내 데이터 저장 |
| Shift Register (시프트 레지스터) | 데이터를 한 비트씩 이동 | 직렬 ↔ 병렬 변환 |
| Buffer Register (버퍼 레지스터) | 데이터 임시 저장 | 입출력 버퍼, 버스 전송 |
| Counter Register (카운터) | 일정한 순서로 값 변화 | 클록 카운터, 프로그램 카운터 |
| Accumulator Register (누산기) | 연산 결과 누적 저장 | ALU 연산 결과 저장 |
병렬 레지스터 (Parallel Register)
가장 기본적인 형태로, 여러 비트의 입력 데이터를 동시에(병렬로) 저장한다.
(예시) 4비트 병렬 레지스터
| 클록 입력 | 데이터 입력(D3 D2 D1 D0) | 저장값(Q3 Q2 Q1 Q0) |
| ↑ | 1010 | 1010 |
| ↑ | 1111 | 1111 |
| ↑ | 0001 | 0001 |
각 클록 상승엣지마다 입력이 그대로 저장된다.
시프트 레지스터 (Shift Register)
데이터를 한 비트씩 이동시키는 레지스터이다.
데이터를 직렬(serial)로 넣거나 빼거나, 방향을 바꿔 전송하는 데 유용하다.
(1) 종류
| 종류 | 동작 방식 |
| SISO (Serial In Serial Out) | 한 비트씩 입력 → 한 비트씩 출력 |
| SIPO (Serial In Parallel Out) | 직렬 입력 → 병렬 출력 |
| PISO (Parallel In Serial Out) | 병렬 입력 → 직렬 출력 |
| PIPO (Parallel In Parallel Out) | 병렬 입출력 (일반 병렬 레지스터) |
(2) 예시 ― SISO Shift Register
데이터가 한 칸씩 이동하며 ‘흐르는’ 구조이기 때문에 시리얼 통신(UART, SPI) 등에서 많이 사용된다.
레지스터의 응용
(1) CPU 내부
CPU는 수십 개의 레지스터를 갖고 있으며, 연산 속도를 높이기 위해 데이터와 명령어를 저장한다.
| 종류 | 역할 |
| Program Counter (PC) | 다음에 실행할 명령어의 주소 저장 |
| Instruction Register (IR) | 현재 실행 중인 명령어 저장 |
| Accumulator (ACC) | 연산 결과 일시 저장 |
| Status Register (SR) | 조건 플래그(Zero, Carry 등) 저장 |
| General Purpose Register (GPR) | 범용 연산에 사용 |
(2) 데이터 버퍼
입출력 장치와 CPU 간 속도 차이를 보정하기 위해 데이터 버퍼 레지스터로 활용된다.
(3) 통신 시스템
시프트 레지스터는 직렬-병렬 변환기(Serial-to-Parallel Converter)로 사용되어,
데이터 전송 효율을 높인다.
타이밍 다이어그램 이해
병렬 레지스터는 클록 신호에 맞춰 입력이 저장된다.
모든 플립플롭이 같은 클록에 동기화되어 동시 저장이 이루어진다.
요약 정리
| 항목 | 설명 |
| 정의 | 여러 비트 데이터를 동시에 저장하는 디지털 기억 장치 |
| 구성 | D 플립플롭을 병렬로 연결 |
| 동작 | 클록 엣지에서 입력 데이터를 저장 |
| 종류 | 병렬 레지스터, 시프트 레지스터, 카운터, 누산기 등 |
| 응용 | CPU 내부, 데이터 버퍼, 시리얼 통신, 제어 회로 등 |
레지스터는 디지털 시스템의 기억과 제어의 핵심 단위다.
비트 단위의 플립플롭이 모여 바이트 단위의 레지스터를 이루고,
이 레지스터들이 모여 프로세서의 동작을 구성한다.
결국 레지스터는 "컴퓨터의 근육이자 단기기억"이라 할 수 있다.
빠르고 정확하게 데이터를 저장하고 전달하는 것이 레지스터의 본질이다.
'ELECTRONIC' 카테고리의 다른 글
| RAM / ROM (0) | 2017.07.05 |
|---|---|
| Counter(카운터) (0) | 2017.07.05 |
| Latch(래치) / Flip-Flop(플립플롭) (0) | 2017.07.05 |
| Sequential Circuit(순차 회로) (0) | 2017.07.05 |
| Decoder / Encoder (0) | 2017.07.05 |