핵심 인사이트 (3줄 요약)

  1. 본질: 시프트 레지스터(Shift Register)는 플립플롭(Flip-Flop)을 직렬로 연결해 클록마다 비트를 한 칸씩 이동시키는 순차 논리회로다.
  2. 가치: 직렬-병렬 변환과 2의 거듭제곱 연산, 지연선, 통신 인터페이스에서 매우 유용하다.
  3. 판단 포인트: SISO, SIPO, PISO, PIPO 같은 형태와 LFSR (Linear Feedback Shift Register), Barrel Shifter 응용을 함께 봐야 한다.

Ⅰ. 개요 및 필요성

시프트 레지스터는 데이터 비트를 옆 칸으로 밀어 보내는 회로다. 작은 저장소들이 줄지어 있고, 클록이 들어올 때마다 모두 한 칸씩 이동한다.

초기 하드웨어는 직렬 통신이나 비트 이동 연산을 효율적으로 처리하기 위해 이런 구조를 필요로 했다.

  • 📢 섹션 요약 비유: 시프트 레지스터는 컨베이어 벨트 위의 상자들처럼 한 칸씩 밀려가는 구조다.

Ⅱ. 동작 구조

각 플립플롭의 출력이 다음 플립플롭의 입력으로 연결된다.

SI -> [FF0] -> [FF1] -> [FF2] -> [FF3] -> SO
          ↑       ↑       ↑       ↑
        같은 CLK가 모두에 동시에 들어감

클록이 한 번 오면 모든 비트가 동시에 한 칸씩 이동한다. 이 단순한 구조가 직렬 처리를 가능하게 한다.

  • 📢 섹션 요약 비유: 줄 서 있던 사람들이 신호가 울릴 때마다 한 칸씩 앞으로 움직이는 모습이다.

Ⅲ. 종류와 방향

시프트 레지스터는 데이터 입출력 방식에 따라 나뉜다.

  • SISO (Serial-In Serial-Out): 한 비트씩 넣고 한 비트씩 뺀다.
  • SIPO (Serial-In Parallel-Out): 한 비트씩 넣고 여러 비트를 한 번에 뺀다.
  • PISO (Parallel-In Serial-Out): 여러 비트를 한 번에 넣고 한 비트씩 뺀다.
  • PIPO (Parallel-In Parallel-Out): 한 번에 넣고 한 번에 뺀다.

방향이 양쪽인 구조나, 병렬 로드가 가능한 구조도 자주 쓴다.

  • 📢 섹션 요약 비유: 들어오는 문과 나가는 문이 하나인지 여러 개인지에 따라 다른 우편함 구조가 된다.

Ⅳ. 활용과 응용

시프트 레지스터는 다양한 곳에 쓰인다.

  • 직렬 통신 버퍼
  • 지연선(delay line)
  • 산술 시프트(곱셈/나눗셈)
  • LFSR (Linear Feedback Shift Register)
  • Barrel Shifter

특히 LFSR은 난수 생성과 패턴 생성에, Barrel Shifter는 빠른 시프트 연산에 쓰인다.

  • 📢 섹션 요약 비유: 레일 위에서 짐을 조금씩 옮기다가, 필요하면 한 번에 훅 밀어 보내는 장치다.

Ⅴ. 실무 비교와 설계 관점

레지스터와 달리 시프트 레지스터는 "저장"보다 "이동"이 핵심이다. 그래서 데이터 흐름을 다루는 설계에서 중요하다.

설계할 때는 다음을 본다.

  • 입력/출력 방향

  • 비트 폭

  • 병렬 로드 필요 여부

  • 시프트 속도

  • 통신 프로토콜과의 연계

  • 📢 섹션 요약 비유: 서랍장보다 컨베이어 벨트에 더 가까운 장치다.


관련 개념 맵

플립플롭
   ↓
직렬 연결
   ↓
비트 이동
   ↓
통신 / LFSR / Barrel Shifter

관련 키워드 및 발전 흐름도

  1. 플립플롭 배열 → 기본 저장과 이동
  2. 직렬 통신 요구 → SISO/SIPO/PISO/PIPO 등장
  3. 산술 시프트 → 빠른 비트 이동 활용
  4. LFSR → 난수와 패턴 생성 응용
  5. Barrel Shifter → 고속 병렬 시프트로 발전

어린이를 위한 3줄 비유 설명

시프트 레지스터는 줄지어 선 친구들이 한 칸씩 옆으로 움직이는 거예요.
뒤에서 새 친구가 들어오면 앞사람들이 같이 밀려나요.
그래서 비트를 옮기거나 나누고 붙이는 데 아주 편해요.