배열 프로세서 (Array Processor)

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

  1. 본질: 단 하나의 중앙 제어 유닛(Control Unit)의 지휘 아래, 물리적으로 독립된 수십~수백 개의 멍청한 산술논리연산장치(ALU, Processing Element)들이 2차원 격자(Array) 형태로 배열되어 동기화된 연산을 수행하는 하드웨어 아키텍처다.
  2. 가치: 파이프라인의 깊이를 늘리는 시간적 병렬성(벡터 프로세서)을 넘어, 기계 자체의 개수를 늘려버리는 공간적 병렬성(Spatial Parallelism)을 극대화하여 기상 예측이나 영상 처리 같은 거대 행렬 데이터(Matrix)를 단일 클럭에 썰어버린다.
  3. 융합: 초창기 슈퍼컴퓨터(ILLIAC IV 등)에서 출발했으나, 현재는 엔비디아(NVIDIA) GPU의 스트리밍 멀티프로세서(SM)와 구글 TPU의 시스톨릭 어레이(Systolic Array) 형태로 현대 인공지능(AI) 딥러닝 하드웨어의 가장 거대한 척추로 융합 발전했다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

배열 프로세서 (Array Processor)는 SIMD(단일 명령어 다중 데이터) 철학을 물리적인 하드웨어 물량 공세로 현실화한 극단적인 아키텍처다.

1970년대, 일기 예보나 원자력 시뮬레이션을 돌리려면 수백만 개의 픽셀(행렬 요소)을 주변 픽셀들과 곱하고 더하는 미분방정식을 풀어야 했다. 전통적인 CPU(SISD)는 너무 느렸고, 벡터 프로세서는 1차원 데이터 처리엔 강했지만 2차원 격자 구조를 처리하기엔 파이프라인에 한계가 있었다.

엔지니어들은 생각했다. "데이터가 2차원 배열(격자) 모양이라면, 아예 연산 장치(ALU) 자체를 데이터 모양과 똑같이 가로세로 격자 배열(Array)로 박아버리면 어떨까?"

[SISD 한계와 배열 프로세서(Array Processor)의 공간적 병렬성 비교]

문제: 4 x 4 픽셀 이미지의 색상을 모두 반전하라 (총 16개 픽셀)

(A) 전통적 CPU 구조 (시간적 처리)
  [ ALU 1개 ]
  - 1클럭: (0,0) 처리
  - 2클럭: (0,1) 처리
  ... 
  - 16클럭: (3,3) 처리 완료 (총 16클럭 소요)

(B) 배열 프로세서 구조 (공간적 처리 - 4x4 격자 ALU)
  [ 제어 유닛 ] "모두 반전하라!" (1번의 명령 브로드캐스트)
       ▼
  [ PE ][ PE ][ PE ][ PE ]  <-- 16개의 Processing Element(ALU)가 격자로 깔려있음
  [ PE ][ PE ][ PE ][ PE ]
  [ PE ][ PE ][ PE ][ PE ]
  [ PE ][ PE ][ PE ][ PE ]
  - 1클럭: 16개 픽셀 "동시" 처리 완료! (16배 속도)

이 발상의 전환은 혁명적이었다. 배열 프로세서는 복잡한 명령어를 해석하는 '뇌(제어 유닛)'는 딱 하나만 두고, 오직 더하기 빼기만 할 줄 아는 멍청한 '근육(PE, Processing Element)'을 수십 수백 개 칩 안에 도배해 버렸다. 결과적으로 복잡한 제어 로직에 낭비되는 전력을 없애고 순수 연산력에 트랜지스터를 몰빵한 것이다.

📢 섹션 요약 비유: 넓은 논의 잡초를 뽑을 때 농부 1명이 16번 왔다 갔다 하는 것(CPU)이 아니라, 16명의 농부를 논의 각 구역에 바둑판처럼 미리 세워두고 반장(CU)이 호각을 "삑!" 부는 순간 동시에 자기 자리의 잡초를 한 번에 뽑아버리는 군대식 제초 작업입니다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

배열 프로세서의 내부 구조는 중앙 집권적인 통제력과, 연산 유닛(PE)들 간의 데이터 교환을 위한 내부 통신망(Interconnection Network)으로 구성된다.

핵심 구성 요소역할 및 동작 원리아키텍처 특성비유
Control Unit (CU)프로그램 메모리에서 명령어를 가져와 해독(Decode)딱 1개 존재. 모든 PE에게 동일한 제어 신호(명령어)를 브로드캐스트중앙 통제 지휘통제실
PE (Processing Element)CU의 명령을 받아 자신에게 할당된 데이터를 연산제어 로직이 0에 수렴하는 순수 산술 유닛. 자신의 로컬 메모리(Registers) 보유생각 없이 망치질만 하는 로봇 팔
Data MemoryPE들이 처리할 대규모 데이터 저장인터리빙된 여러 뱅크로 쪼개져 각 PE에게 데이터를 무자비하게 쏟아부어줌원자재 보관 창고
라우팅 네트워크 (Mesh/Torus)PE들끼리 중간 계산 결과를 서로 주고받는 연결망2차원/3차원 격자 통신망. (0,0) PE의 결과를 (0,1) PE로 즉각 토스 가능작업자들끼리 물건을 던져주는 컨베이어 벨트

배열 프로세서가 진정한 힘을 발휘하는 순간은, 각 PE가 연산 결과를 중앙 메모리로 돌려보내지 않고 이웃한 PE에게 릴레이로 패스(Pass) 할 때다.

[배열 프로세서 내부 PE(Processing Element) 간의 로컬 라우팅 구조 (Mesh)]

          (위쪽 이웃)
              ▲
              │
(왼쪽) <── [ PE 5 ] ──> (오른쪽 이웃)
              │
              ▼
          (아래쪽 이웃)

* 시뮬레이션 활용 예: 일기 예보(열 이동 방정식)
  PE 5는 "자신의 온도" + "위, 아래, 왼쪽, 오른쪽 PE의 온도"를 평균 내어 내일 온도를 계산한다.
  만약 이 통신망이 없다면 모든 PE가 메인 메모리를 다녀와야 해서 버스 폭발이 일어남!
  이웃 PE와의 초고속 직결 통신망이 배열 프로세서의 핵심 병목 회피 기술이다.

배열 프로세서는 연산 유닛 자체를 2차원(행렬)으로 펼쳤기 때문에 행렬 곱셈이나 영상 합성 합성곱(Convolution)과 같은 2D 매핑 문제에서 물리적으로 완벽한 일치를 이룬다. (소프트웨어적 문제의 형태 = 하드웨어의 형태)

📢 섹션 요약 비유: 수십 명의 작업자가 책상에 바둑판처럼 앉아서 일할 때, 만든 부품을 중앙 창고(메모리)에 갖다 놓지 않고 바로 옆자리 동료에게 휙 던져주며(Mesh 라우팅) 조립을 이어가는 극한의 공장 자동화 라인입니다.


Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)

배열 프로세서는 똑같이 SIMD 철학을 따르는 '벡터 프로세서'와 자주 혼동된다. 두 아키텍처는 목표는 같지만 병렬성을 구현하는 물리적 방식이 완전히 융합/대척점을 이룬다.

벡터 프로세서 vs 배열 프로세서 심층 비교

항목벡터 프로세서 (Vector)배열 프로세서 (Array)하드웨어 판단 설계점
병렬 처리 형태시간적 병렬성 (Temporal)공간적 병렬성 (Spatial)파이프라인의 깊이 vs 칩의 넓이
하드웨어 물리 구조소수의 ALU + 깊은 컨베이어 벨트다수의 멍청한 ALU + 얕은 벨트트랜지스터 배분 전략
명령어 실행 양상벡터의 요소를 하나씩 썰며 순차적으로 들어감격자 전체가 1클럭에 동시에 타격을 입음실행 지연 은닉 vs 즉각 타격
메모리 접근거대한 벡터 레지스터에 순차 로드각 PE의 로컬 메모리에 분산 로드캐시 구조의 복잡도
현대 융합체CPU의 AVX, NEON 명령어 셋GPU의 SM 코어, 구글 TPU 텐서 코어범용 연산 vs 인공지능/그래픽 가속

타 과목 관점의 융합 시너지

  • 인공지능 하드웨어 (시스톨릭 어레이): 초창기 배열 프로세서의 단점은 모든 PE가 중앙 통제(CU)를 받아야 해서 선(Wiring)이 너무 복잡하다는 것이었다. 구글 TPU나 현대 NPU는 이를 개량한 **시스톨릭 어레이(Systolic Array)**를 채택했다. 이는 중앙 통제 없이, 데이터가 심장 박동(Systolic)처럼 첫 번째 PE로 들어와서 인접한 다음 PE로 물 흐르듯 밀려가며 연산이 누적되는(MAC 연산) 특수 목적 배열 프로세서다. AI 하드웨어 혁명은 사실상 1970년대 배열 프로세서 아키텍처의 현대적 부활이다.
  • 병렬 프로그래밍 (GPGPU, CUDA): 배열 프로세서를 제어하기 위한 소프트웨어 모델이 바로 엔비디아의 CUDA 구조다. 하나의 커널(Kernel) 프로그램(단일 명령어)을 런치(Launch)하면, 수천 개의 스레드(다중 데이터)가 배열 형태로 펼쳐진 스트리밍 멀티프로세서(SM)에 매핑되어 동시에 돈다. 배열 프로세서의 하드웨어 스펙을 소프트웨어 2D/3D 그리드(Grid)와 블록(Block) 단위로 추상화한 것이 CUDA의 핵심이다.
[배열 프로세서 철학이 GPU(CUDA)와 NPU(TPU)로 융합된 진화 계보]

초기 Array Processor (ILLIAC IV)
  -> 범용 연산 시도 (실패: 분기문(IF) 만나면 PE 절반이 먹통됨)
       │
       ▼
GPU (Graphics Processing Unit)
  -> 오직 화면 픽셀(행렬) 찍는 데만 집중하자! (대성공)
  -> CUDA 도입: 다시 일반 연산도 하게 개방하자 (GPGPU 혁명)
       │
       ▼
NPU / TPU (Tensor Processing Unit)
  -> 딥러닝 행렬 곱셈만 24시간 하네? 제어 기능마저 더 빼버리고 
     순수하게 행렬 곱(MAC)만 하는 '시스톨릭 배열 프로세서'로 극단적 최적화 달성!

📢 섹션 요약 비유: 벡터 프로세서가 총알을 끊임없이 연사하는 '기관총(시간차 공격)'이라면, 배열 프로세서는 넓은 땅에 수백 발의 산탄을 한 번에 터뜨리는 '융단 폭격(공간 타격)'입니다. AI 시대는 기관총보다 융단 폭격을 요구하고 있습니다.


Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)

실무에서 데이터 과학자나 AI 엔지니어가 텐서플로우(TensorFlow)나 파이토치(PyTorch)를 다룰 때, 코드가 배열 프로세서(GPU/TPU)의 공간적 격자에 정확히 얹혀지는지를 이해해야 메모리 부족(OOM)이나 병목을 피할 수 있다.

실무 성능 최적화 및 아키텍처 매핑 시나리오

  1. 딥러닝 텐서(Tensor) 차원(Dimension) 정렬 최적화

    • 상황: PyTorch에서 NCHW(배치, 채널, 높이, 너비) 형식의 이미지 데이터를 GPU에 올려 학습시키는데, 연산 코어(PE) 활용률(Utilization)이 30%를 밑돔.
    • 의사결정: 하드웨어 가속기(NVIDIA Tensor Core 등 배열 프로세서)의 메모리 접근 구조에 맞춰, 텐서 포맷을 NHWC(채널이 마지막)로 메모리 포맷팅을 변경하여 넘겨준다.
    • 이유: 배열 프로세서는 한 번의 클럭에 수십~수백 개의 연속된 데이터를 격자 모양(PE 어레이)으로 덮어씌워버려야(Coalesced Memory Access) 제 성능이 나온다. 픽셀 데이터가 메모리에 듬성듬성 흩어져 있으면(비연속적), 격자 절반이 텅 빈 상태로 헛스윙 연산을 하게 되어 병렬 처리의 축복이 재앙으로 바뀐다.
  2. 조건 분기(If-Else)의 수학적 평탄화 (Divergence 회피)

    • 상황: 자율주행 라이다 센서 포인트 클라우드 계산 시, GPU 커널 코드 내에 "거리가 10m 이내면 A 공식, 아니면 B 공식 적용" 이라는 if-else 문이 존재함.
    • 의사결정: 배열 프로세서에서는 if-else 분기문을 원천적으로 금지하고, 모든 수식에 수학적 마스킹(예: Result = A * (dist < 10) + B * (dist >= 10)) 기법을 적용해 로직을 일직선으로 평탄화(Flatten)한다.
    • 이유: 배열 프로세서(SIMD)는 하나의 사령관(CU) 지시만 받는다. 100개의 PE 중 50개는 A 공식을, 50개는 B 공식을 동시에 수행할 수 없다. 분기가 발생하면 일단 A를 할 때 B 팀은 멈춰있고, B 팀이 할 때 A 팀이 멈추는 직렬화(Serialization)가 터진다. 이를 워프 발산(Warp Divergence)이라 부르며, 배열 프로세서 성능 저하의 주범이다.
[실무 GPU/NPU 병목 구간 진단 트리 (배열 프로세서 관점)]

[모니터링] GPU 사용률(Nvidia-smi 등)이 낮은 원인 분석
 ├─ 커널 코드 내부에서 반복문 길이가 다르거나 조건 분기(IF)가 많은가?
 │   ├─ Yes ──> (Warp Divergence 발생 중) 
 │   │          모든 PE가 동시에 같은 일을 하도록 로직 구조 자체를 마스킹 연산으로 뜯어고쳐야 함.
 │   │
 │   └─ No ───> [질문 2] 메모리에서 데이터를 퍼올리는 보폭이 불규칙(Random Access)한가?
 │               ├─ Yes ──> (Uncoalesced Access) 데이터 전송 병목.
 │               │          배열을 연속적으로 재정렬(Memory Layout 최적화) 필요.
 │               └─ No ───> Host(CPU)와 Device(GPU) 간의 PCIe 버스 전송 구간 병목 의심.

운영 및 아키텍처 도입 체크리스트

  • 행렬 곱 연산(GEMM) 작성 시, 직접 3중 for 루프를 짜는 대신 배열 프로세서 하드웨어 구조에 극도로 튜닝된 벤더 라이브러리(cuBLAS 등)를 100% 활용하고 있는가?
  • GPU 프로그래밍 시 스레드 블록(Block)의 크기를 32의 배수(Warp 크기)로 설정하여, 물리적인 PE 어레이 격자에 남는 잉여 칸이 없도록 꽉꽉 채워넣었는가?

안티패턴: 크롤링된 비정형 텍스트 데이터나 트리(Tree) 구조 탐색 알고리즘을 억지로 배열 프로세서(GPU)에 밀어 넣는 행위. 모양이 제각각인 쓰레기를 사각 틀에 찍어 누르려는 꼴이라 처리 효율은 CPU보다 한참 뒤떨어진다.

📢 섹션 요약 비유: 수백 명의 노 젓는 사람(배열 프로세서)이 탄 대형 갤리선에서는 "동시에 노를 젓는가(메모리 정렬)"와 "방향이 일치하는가(분기 제거)"가 생명입니다. 한 명이라도 딴짓을 하거나 엇박자로 노를 저으면 배 전체의 속도가 곤두박질칩니다.


Ⅴ. 기대효과 및 결론 (Future & Standard)

배열 프로세서는 1970년대에 시대를 너무 앞서가서 빛을 보지 못하다가, 세상의 데이터가 '텍스트'에서 '픽셀과 행렬(멀티미디어, AI)'로 바뀌면서 황제로 등극한 늦깎이 대기만성 아키텍처다.

지표전통적 CPU 중심 아키텍처배열 프로세서 중심 아키텍처 (GPU/NPU)IT 패러다임 기대효과
ALU 트랜지스터 비중칩 면적의 20% 미만 (나머진 제어/캐시)칩 면적의 80% 이상을 순수 연산기에 몰빵물리적 한계 내에서 극강의 TFLOPS 획득
행렬/텐서 연산 소요$O(N^3)$ 의 끔찍한 시간 복잡도2D/3D 격자 하드웨어로 선형적(O(1)~O(N)) 분해챗GPT 같은 거대 생성형 AI 모델의 실시간 응답 실현

미래 전망: 현재의 배열 프로세서(GPU 등)는 여전히 그래픽 렌더링을 위한 약간의 범용 제어 유닛의 껍질을 남겨두고 있다. 하지만 AI 추론(Inference) 특화 하드웨어 시장이 커지면서, 칩 전체를 문자 그대로 거대한 바둑판(순수 곱셈-누적기 MAC 어레이)으로 도배해버리고 제어 로직을 완전히 소거한 AI 특화 시스톨릭 어레이 가속기 (Groq, Cerebras 등) 모델로 극단적 진화를 계속하고 있다.

📢 섹션 요약 비유: 똑똑하지만 한 번에 한 명만 상대하는 제갈량(CPU)의 시대에서, 머리는 나쁘지만 100만 대군이 명령 하나에 일사불란하게 진형을 짜서 평야(행렬)를 밀어버리는 군단 아키텍처(배열 프로세서)의 시대로 컴퓨팅 패러다임이 완전히 넘어갔습니다.


📌 관련 개념 맵 (Knowledge Graph)

  • SIMD (Single Instruction Multiple Data) | 배열 프로세서가 속해 있는 상위의 아키텍처 패러다임으로, 단일 명령으로 다중 데이터를 처리하는 구조
  • 시스톨릭 어레이 (Systolic Array) | 배열 프로세서의 진화형으로, 각 연산 유닛이 중간 결과를 릴레이처럼 다음 유닛으로 바로 넘겨 메모리 접근을 근절하는 현대 NPU의 핵심 구조
  • GPGPU (General-Purpose computing on Graphics Processing Units) | 그래픽 전용 배열 프로세서(GPU)를 일반 수학, 과학, AI 연산에 사용할 수 있게 만든 범용 프로그래밍 구조
  • 텐서 코어 (Tensor Core) | 엔비디아(NVIDIA) 볼타 아키텍처부터 도입된 기술로, 4x4 행렬 덧셈과 곱셈(MAC)을 1클럭에 하드웨어 격자 단위로 박살 내는 특수 배열 유닛
  • 워프 발산 (Warp Divergence) | 배열 프로세서 구조에서 If-Else 등 분기문 발생 시, 일괄 통제가 깨져 하드웨어 절반이 쉬어버리는 최악의 병목 현상

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

  1. 개념: 배열 프로세서는 요리사 1명이 100그릇을 만드는 게 아니라, 100명의 요리사를 커다란 체육관에 가로세로 바둑판처럼 쫙 깔아놓은 주방이에요.
  2. 원리: 중앙 방송에서 "다 같이 계란 깨세요!"라고 한마디만 하면, 100명의 요리사가 동시에 계란을 깨서 1초 만에 100개의 계란 프라이가 만들어지는 놀라운 마법이죠.
  3. 효과: 그래서 그림을 그리거나 인공지능이 계산을 할 때, 100만 명의 요리사가 동시에 일하는 것처럼 어마어마하게 빠른 속도로 문제를 뚝딱 풀어낸답니다.