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

  1. 본질: 시스톨릭 어레이 (Systolic Array)는 다수의 PE (Processing Element)를 격자로 배치해 데이터가 메모리로 되돌아가지 않고 이웃 PE 사이를 박동처럼 흘러가며 MAC (Multiply-Accumulate) 연산을 누적하는 데이터플로 하드웨어다.
  2. 가치: 핵심 이득은 연산 속도 자체보다 데이터 재사용이다. 한 번 불러온 입력과 가중치를 칩 내부에서 반복 재사용해 메모리 대역폭 병목과 전력 소모를 크게 줄인다.
  3. 판단 포인트: 밀집 행렬·텐서 연산에는 매우 강하지만, 분기·불규칙 접근·높은 희소성처럼 데이터 흐름이 깨지는 작업에는 비효율적이므로 워크로드 적합성이 채택의 기준이다.

Ⅰ. 개요 및 필요성

시스톨릭 어레이 (Systolic Array)는 동일한 연산을 반복하는 격자형 연산기 배열에 데이터를 리듬 있게 흘려보내며 대규모 행렬 연산을 처리하는 구조다. 이름의 어원인 systolic은 심장이 수축하며 혈액을 밀어내는 움직임에서 왔고, 여기서는 클럭마다 데이터가 한 칸씩 이동하는 규칙적인 파동을 뜻한다. 즉, 계산 자체보다 데이터를 어떻게 움직일 것인가에 초점을 맞춘 아키텍처다.

이 구조가 필요해진 이유는 인공지능 추론과 학습의 중심이 되는 행렬 곱셈, 합성곱, 어텐션 같은 연산이 대부분 거대한 MAC 반복이기 때문이다. 범용 CPU (Central Processing Unit)나 GPU (Graphics Processing Unit)는 연산기는 빠르지만, 필요한 데이터를 계속 레지스터·캐시·메모리에서 끌어오는 과정에서 대역폭과 전력의 벽을 만난다. 이른바 메모리 월 (Memory Wall)은 연산기를 놀게 만들고, 특히 전력 제약이 큰 모바일·엣지 환경에서는 더 치명적이다.

시스톨릭 어레이는 이 문제를 "계산하러 데이터가 왔다 갔다 하지 말고, 데이터가 흐르는 길 위에 연산기를 고정하자"는 발상으로 풀었다. 입력 행렬의 원소와 가중치가 배열의 가장자리에서 들어오면, 내부 PE는 받은 값을 곱하고 부분합을 넘기면서 결과를 만든다. 따라서 외부 메모리 접근 횟수는 줄고, 칩 내부의 짧은 로컬 연결이 반복 사용되므로 전성비가 좋아진다.

  • 📢 섹션 요약 비유: 시스톨릭 어레이는 학생 100명이 각자 창고에 공책을 가지러 뛰는 방식이 아니라, 맨 앞 학생이 공책을 받아 옆 사람에게 차례로 넘기는 교실 릴레이다. 뛰는 거리가 줄어드니 수업도 빨라지고 힘도 덜 든다.

Ⅱ. 아키텍처 및 핵심 원리

시스톨릭 어레이의 기본 단위는 PE다. 각 PE는 보통 곱셈기, 가산기, 누산 레지스터, 짧은 로컬 버퍼를 가지며, 매 클럭마다 입력값 일부를 받아 계산하고 다음 PE로 전달한다. 핵심은 모든 PE가 복잡한 명령 해석 없이 같은 템포로 움직인다는 점이며, 이 규칙성이 높은 집적도와 예측 가능한 지연시간을 만든다.

구성 요소역할설계 포인트
PE (Processing Element)곱셈·덧셈·누산 수행정밀도(Int8, BF16 (BFloat16) 등), 누산 폭
로컬 버퍼 / 레지스터직전 데이터와 부분합 유지외부 메모리 접근 최소화
인터커넥트이웃 PE 간 데이터 전달짧은 배선, 규칙적 배치
컨트롤러데이터 주입·배출 시점 제어배열 활용률, 패딩 전략

아래 그림은 "입력은 가로로, 가중치는 세로로, 부분합은 배열 안에서 축적된다"는 원리를 보여준다.

┌────────────────────────────────────────────────────────────────────────────┐
│        4×4 시스톨릭 어레이의 파동형 데이터 흐름                            │
├────────────────────────────────────────────────────────────────────────────┤
│ 좌측 입력 A(i,k)  ───────────────────────────────▶                         │
│ 상단 입력 B(k,j)  ───────▼                                                │
│                ┌──────┬──────┬──────┬──────┐                              │
│                │ PE00 │ PE01 │ PE02 │ PE03 │                              │
│                ├──────┼──────┼──────┼──────┤                              │
│                │ PE10 │ PE11 │ PE12 │ PE13 │                              │
│                ├──────┼──────┼──────┼──────┤                              │
│                │ PE20 │ PE21 │ PE22 │ PE23 │                              │
│                ├──────┼──────┼──────┼──────┤                              │
│                │ PE30 │ PE31 │ PE32 │ PE33 │ ───────▶ 출력 C              │
│                └──────┴──────┴──────┴──────┘                              │
│                각 PE: A는 오른쪽, B는 아래쪽, 부분합은 로컬에 누적        │
└────────────────────────────────────────────────────────────────────────────┘

실제 행렬 곱셈에서는 A 행렬 원소가 오른쪽으로 이동하고, B 행렬 원소가 아래로 이동하면서, 각 교차점의 PE가 해당 곱을 부분합에 더한다. 클럭이 진행될수록 데이터 파면이 대각선으로 퍼지고, 배열이 가득 차면 거의 모든 PE가 매 사이클 유효한 MAC을 수행한다. 이 상태가 되면 처리량은 매우 높아지고, 메모리에서 같은 값을 다시 읽는 낭비가 줄어든다.

대표적인 데이터플로로는 가중치 고정 (Weight Stationary), 출력 고정 (Output Stationary), 입력 고정 (Input Stationary)이 있다. 예를 들어 가중치 고정은 각 PE에 가중치를 오래 머물게 해 추론처럼 가중치 재사용이 큰 작업에 유리하고, 출력 고정은 부분합을 오래 잡아 두어 누산 이동 비용을 줄이는 데 강하다. 결국 시스톨릭 어레이의 성능은 배열 크기만이 아니라 어떤 데이터를 어디에 오래 붙잡아 둘지에 의해 달라진다.

  • 📢 섹션 요약 비유: 이 구조는 주방 조리대마다 같은 도구를 놓고 재료를 옆 칸으로 넘기는 분업 라인과 같다. 칼과 냄비를 매번 창고에서 찾지 않으니, 요리 속도는 사람 수보다 동선 설계에서 갈린다.

Ⅲ. 비교 및 연결

시스톨릭 어레이를 제대로 이해하려면 범용 병렬 구조와의 차이를 봐야 한다. GPU의 SIMD (Single Instruction, Multiple Data) 또는 SIMT (Single Instruction, Multiple Threads)는 많은 스레드를 동시에 돌리지만, 여전히 레지스터 파일·공유 메모리·캐시 계층을 폭넓게 활용하며 비교적 유연한 제어를 허용한다. 반면 시스톨릭 어레이는 제어 유연성을 줄이고 데이터 이동 경로를 거의 고정해, 특정 텐서 연산의 효율을 극단적으로 끌어올린다.

비교 항목GPU / 범용 병렬 프로세서시스톨릭 어레이
주된 강점다양한 병렬 커널 실행밀집 행렬·텐서 연산의 높은 전성비
데이터 이동메모리 계층을 폭넓게 활용이웃 PE 중심의 국소 이동
제어 구조비교적 유연한 스케줄링정형화된 파이프라인 흐름
취약한 작업작은 배치, 제어 분기 과다희소성 높음, 불규칙 메모리 접근

연결 관점에서는 TPU (Tensor Processing Unit), NPU (Neural Processing Unit), 텐서 코어 (Tensor Core)가 모두 이 철학의 서로 다른 구현이라고 볼 수 있다. TPU는 대형 배열을 통해 데이터센터 추론·학습에 집중했고, 모바일 NPU는 작은 전력 예산 안에서 영상·음성 처리용 행렬 연산을 가속한다. GPU의 텐서 코어는 범용 그래픽 프로세서 내부에 축소된 행렬 전용 유닛을 넣어, 유연성과 특화 효율 사이의 절충점을 만든 사례다.

또한 이 구조는 메모리 계층 설계와 떼어 놓고 볼 수 없다. 배열이 아무리 빨라도 온칩 SRAM (Static Random Access Memory)에 데이터를 제때 공급하지 못하면 곧장 버블이 생기고 활용률이 떨어진다. 그래서 시스톨릭 어레이는 단순 연산기 배열이 아니라, 메모리 타일링·데이터 재배치·양자화까지 함께 보는 시스템 설계 문제다.

  • 📢 섹션 요약 비유: GPU가 여러 종류의 손님을 빠르게 응대하는 대형 푸드코트라면, 시스톨릭 어레이는 햄버거만 초고속으로 만드는 전용 조리 라인이다. 메뉴가 딱 맞으면 압도적이지만, 주문이 제각각이면 오히려 답답해진다.

Ⅳ. 실무 적용 및 기술사 판단

실무에서 시스톨릭 어레이의 채택 여부는 "행렬 곱셈이 많다"만으로 결정되지 않는다. 첫째, 텐서 형상이 배열 크기와 잘 맞아야 한다. 예를 들어 128×128 배열을 가진 가속기에 작은 73×73 타일을 계속 넣으면 많은 PE가 놀게 되어 이론 성능과 실제 성능 차이가 커진다. 그래서 프레임워크 수준에서 패딩, 타일링, 연산 재배치를 통해 배열 점유율을 높여야 한다.

둘째, 정밀도와 메모리 용량을 함께 봐야 한다. Int8이나 BF16처럼 낮은 비트폭은 더 많은 PE 병렬화와 낮은 전력에 유리하지만, 정확도 저하를 감당할 수 있는 모델이어야 한다. 또한 가중치와 활성값을 온칩 버퍼에 얼마나 오래 머물게 할 수 있는지가 재사용률을 좌우하므로, 연산량만 보지 말고 SRAM 용량과 대역폭까지 함께 산정해야 한다.

셋째, 워크로드 특성을 구분해야 한다. 대규모 Dense GEMM (Dense General Matrix Multiply), 합성곱, 고정 길이 추론은 적합하지만, 희소 행렬, 그래프 신경망, 복잡한 분기 기반 후처리는 종종 CPU나 GPU가 더 낫다. 즉 "AI니까 무조건 NPU"가 아니라, 규칙적 데이터플로가 유지되는 구간만 가속기로 오프로딩하는 이기종 분할이 현실적이다.

실무 판단 체크리스트

  1. 핵심 연산이 밀집 텐서 곱셈 위주인가?
  2. 입력 형상과 배치 크기를 배열 친화적으로 고정·패딩할 수 있는가?
  3. 가중치·활성값을 온칩 버퍼에 충분히 재사용할 수 있는가?
  4. 분기·희소성 때문에 파이프라인 버블이 자주 생기지 않는가?

대표 안티패턴

  • 희소도가 높은 모델을 아무 전처리 없이 그대로 올려 0 연산을 양산하는 경우

  • 작은 배치를 계속 넣어 배열 활용률이 낮아지는 경우

  • 후처리 분기 로직까지 같은 가속기에서 해결하려다 CPU 폴백이 빈번해지는 경우

  • 📢 섹션 요약 비유: 시스톨릭 어레이는 큰 화물을 규칙적으로 싣는 컨테이너 선박과 같다. 상자가 규격에 맞고 물량이 많으면 최고의 효율을 내지만, 짐 크기가 제각각이거나 중간에 자꾸 내려야 하면 오히려 작은 트럭이 더 낫다.


Ⅴ. 기대효과 및 결론

시스톨릭 어레이의 가장 큰 효과는 메모리 접근을 줄여 연산 밀도와 전성비를 동시에 끌어올린다는 점이다. 같은 전력 예산에서도 더 많은 MAC을 수행할 수 있고, 규칙적인 배치 덕분에 칩 구현과 검증도 상대적으로 단순해진다. 이 때문에 데이터센터용 TPU, 모바일 NPU, 일부 GPU 텐서 가속 블록이 모두 이 철학을 채택하고 있다.

다만 만능 해법은 아니다. 배열이 커질수록 데이터를 채워 넣는 전처리, 온칩 버퍼 설계, 칩 간 통신 비용이 다시 병목으로 떠오른다. 특히 초거대 모델에서는 단일 어레이 내부 효율보다 여러 어레이와 메모리 스택을 어떻게 연결할지가 더 중요한 문제가 된다.

앞으로의 방향은 세 가지로 요약할 수 있다. 첫째, 저정밀도 연산과 양자화를 더 깊게 결합해 같은 면적에서 더 높은 처리량을 얻는 방향이다. 둘째, 3D 적층 메모리와 결합해 데이터 공급 거리를 줄이는 방향이다. 셋째, PIM (Processing-In-Memory)처럼 메모리 자체에 연산을 녹여 시스톨릭 철학을 더 안쪽으로 밀어 넣는 방향이다. 따라서 이 개념은 "행렬 곱셈기"가 아니라 "데이터 이동을 연산 구조에 맞게 재설계한 가속 철학"으로 기억하는 것이 맞다.

  • 📢 섹션 요약 비유: 좋은 시스톨릭 어레이는 엔진 마력만 키운 자동차가 아니라, 도로·변속기·연료 흐름까지 함께 맞춘 경주차다. 진짜 성능은 큰 엔진보다 끊기지 않는 흐름에서 나온다.

📌 관련 개념 맵

개념연결 포인트
PE (Processing Element)시스톨릭 어레이의 최소 연산 단위로, 곱셈·누산과 데이터 전달을 담당
MAC (Multiply-Accumulate)행렬 곱셈과 합성곱의 기본 연산이며, 배열의 거의 모든 PE가 반복 수행
메모리 월 (Memory Wall)시스톨릭 어레이가 등장한 직접 배경으로, 데이터 이동 비용이 연산 비용을 압도하는 현상
Weight Stationary가중치를 PE 내부에 오래 유지해 재사용률을 높이는 대표 데이터플로
TPU (Tensor Processing Unit) / NPU (Neural Processing Unit)시스톨릭 어레이를 상용 AI 가속기로 구현한 대표 사례
PIM (Processing-In-Memory)데이터 이동을 더 줄이기 위해 메모리와 연산을 더욱 밀착시키는 확장 방향

📈 관련 키워드 및 발전 흐름도

벡터 프로세서 · 배열 프로세서
            │
            ▼
메모리 월 (Memory Wall) · 데이터 재사용 요구
            │
            ▼
시스톨릭 어레이 (Systolic Array)
            │
            ├──▶ Weight Stationary / Output Stationary / Input Stationary
            │
            ▼
TPU (Tensor Processing Unit) · NPU (Neural Processing Unit) · Tensor Core
            │
            ▼
저정밀도 양자화 · 3D 적층 메모리 · PIM (Processing-In-Memory)

이 흐름도는 "배열형 병렬 처리의 계보"가 AI 시대의 데이터 이동 최적화 문제와 만나, 전용 가속기와 메모리 결합 구조로 확장되는 과정을 보여준다.

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

  1. 시스톨릭 어레이는 친구들이 네모 줄을 서서 물건을 옆 사람에게 계속 넘겨 주는 릴레이 놀이와 같아요.
  2. 필요한 물건을 매번 창고까지 뛰어가서 가져오지 않으니까 시간도 아끼고 힘도 덜 들어요.
  3. 하지만 네모 줄에 딱 맞는 물건일 때 가장 잘하고, 모양이 제멋대로면 다른 도구가 더 잘할 수 있어요.