JINTBEAT Design Life

Barrel Shifter란? 본문

🖥️ - ARM

Barrel Shifter란?

jintbeat_design 2026. 4. 15. 22:59
반응형
디지털 회로에서 데이터를 여러 비트 단위로 "한 번에" Shift 해주는 하드웨어
쉽게 말하면, 여러번 shift 명령을 하지 않고, 한 번에 원하는 만큼 이동시키는 장치이다.

 

x = x << 1;  // 1비트 이동
x = x << 1;  // 또 1비트
x = x << 1;  // 또 1비트

 

> 3번 해야 3비트 이동

 

그런데, Barrel Shifter는?
x = x << 3;  // 한 번에 3비트 이동

 

왜 "Barrel"이라는 이름이지?

 

구조가 약간 이런 느낌이라서 그렇다. 

- 입력 비트들이 원형(Barrel)처럼 연결되어 있음.

- 선택 신호에 따라 "쭉 밀려서" 출력으로 나옴

 

RTL 관점

 

Barrel Shifter는 보통 MUX 트리 구조로 만들어진다. 

예 : 8bit shifter

- 1 bit shift stage

- 2bit shift stage

- 4bit shift stage

> 각각을 조합해서 원하는 shift량을 만든다.

 

특징

 

1. 1-cycle 동작

- 여러 번 shift 안해도 됨

- CPU ALU에서 매우 중요

 

2. 빠름 (하지만 비용이 있다)

- 속도 : 빠름

- 대신에 MUX가 많아 area 증가하고, fanout 증가해서 timing 부담이 생김.

 

용도

 

1. CPU (ARM, RISC-V)

- ALU안에 기본 포함

- 예 : LSL, LSR, ROR

 

2. Address 계산

- addr = base + (index << 2) → barrel shifter 필수

 

핵심 한 줄 요약

Barrel Shifter는 "한 사이클에 원하는 만큼 비트를 이동시키는 MUX기반 회로"

 

 

- 이 글은 Chatgpt 문답에 의해 작성되었습니다.

반응형

'🖥️ - ARM' 카테고리의 다른 글

SPI - Daisy Chain  (0) 2026.05.26
SPI - 기본 개념 (CPOL / CPHA)  (0) 2026.05.16
ELF(Executable and Linkable Format) 이란?  (2) 2026.04.12
Linker - (2)  (2) 2026.04.09
Linker - (1)  (0) 2026.04.09