본문 바로가기

ELECTRONIC

Register(레지스터)

반응형

레지스터(Register)플립플롭(Flip-Flop) 여러 개를 묶어서 만든 다중비트(Multi-bit) 저장 장치이다.
즉, 여러 비트의 데이터를 동시에 저장하고 유지할 수 있는 디지털 메모리 소자다.

  • 1개의 플립플롭 → 1비트(bit) 저장
  • 8개의 플립플롭 → 8비트(=1바이트) 저장
  • 16개의 플립플롭 → 16비트(=2바이트) 저장

레지스터는 CPU 내부, 제어기, 데이터 경로 등에서 광범위하게 사용되며,
데이터 일시 저장, 전송, 연산 중간 결과 보관 등의 역할을 한다.


레지스터의 기본 구조

레지스터는 여러 개의 D 플립플롭(D Flip-Flop)병렬 연결(Parallel Connection) 하여 구성된다.

 
                            ┌─────┐
D0 ─────▶ │       D-FF       │ ─────▶ Q0
D1 ─────▶  │        D-FF      │ ─────▶ Q1
      ...                                ...                        ...
Dn ─────▶  │        D-FF      │ ─────▶ Qn
                             └─────┘
                                                  ▲ Clock

 동작 원리

  • 클록(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

 
입력: 1 → 0 → 1 → 1
CLK1: Q = 1xxx
CLK2: Q = 01xx
CLK3: Q = 101x
CLK4: Q = 1101

데이터가 한 칸씩 이동하며 ‘흐르는’ 구조이기 때문에 시리얼 통신(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)로 사용되어,
데이터 전송 효율을 높인다.


타이밍 다이어그램 이해

병렬 레지스터는 클록 신호에 맞춰 입력이 저장된다.

 
Clock: ──↑────↑────↑────↑──
Input D:                  1010 1111 0001
Output Q:0000 1010 1111 0001

모든 플립플롭이 같은 클록에 동기화되어 동시 저장이 이루어진다.


요약 정리

항목 설명
정의 여러 비트 데이터를 동시에 저장하는 디지털 기억 장치
구성 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