핵심 인사이트 (3줄 요약)
- 본질: PIM (Processing-In-Memory)은 연산기를 메모리 가까이가 아니라 메모리 내부로 들여보내, 데이터 이동 자체를 줄여 성능과 전력 문제를 동시에 다루는 아키텍처다.
- 가치: 거대 인공지능과 데이터 분석은 계산 자체보다 데이터를 옮기는 비용이 더 커졌기 때문에, PIM은 메모리 대역폭 병목과 전력 낭비를 줄이는 현실적 해법으로 주목받는다.
- 판단 포인트: PIM은 모든 연산을 대체하는 만능 칩이 아니라, 반복적이고 메모리 바운드인 워크로드에서 특히 강하며, 범용성·정밀 제어·공정 복잡도는 여전히 트레이드오프다.
Ⅰ. 개요 및 필요성
PIM (Processing-In-Memory)은 메모리 칩 내부에 간단한 연산 기능을 배치하여, 저장된 데이터를 멀리 이동시키지 않고 바로 처리하는 구조다. 전통적인 폰 노이만 구조에서는 CPU (Central Processing Unit)나 GPU (Graphics Processing Unit)가 계산을 담당하고, DRAM (Dynamic Random Access Memory)은 데이터를 보관만 한다. 문제는 인공지능 추론, 추천 시스템, 벡터 검색처럼 데이터량이 폭증한 시대에는 연산보다 데이터 왕복이 더 큰 병목이 되었다는 점이다.
이 병목은 흔히 메모리 월 (Memory Wall)이라고 부른다. 연산기는 TFLOPS (Tera Floating Point Operations Per Second)급으로 빨라졌지만, 메모리에서 데이터를 꺼내 칩 밖 인터커넥트와 메모리 컨트롤러를 거쳐 다시 연산기로 보내는 과정은 여전히 느리고 전력 소모도 크다. 대략 8비트 곱셈 1회보다 수십~수백 배 큰 에너지가 오프칩 데이터 이동에 쓰인다는 점이 알려지면서, "계산을 더 빠르게"보다 "데이터를 덜 움직이게"가 더 중요한 문제가 되었다.
특히 LLM (Large Language Model) 추론은 다음 토큰 하나를 만들기 위해 대규모 가중치를 반복적으로 읽어야 하므로, 연산기 성능이 남아도 메모리 대역폭이 부족하면 전체 시스템이 굶는다. PIM은 이 문제를 정면으로 겨냥한다. 즉, 데이터를 연산기로 데려오는 대신, 작은 연산기를 데이터가 있는 장소로 보내는 발상 전환이다.
┌──────────────────────────────────────────────────────────────────────┐
│ 왜 PIM이 필요한가: 계산보다 이동이 더 비싸다 │
├──────────────────────────────────────────────────────────────────────┤
│ 전통 구조 │
│ [DRAM] ──읽기──> [메모리 컨트롤러] ──전송──> [CPU/GPU] ──계산──> 결과 │
│ ▲ │
│ └────────────── 대용량 데이터가 계속 왕복 ────────────────────────┘ │
│ │
│ PIM 구조 │
│ [DRAM + 소형 연산기] ──칩 내부 계산──> [요약 결과만 외부 전송] │
└──────────────────────────────────────────────────────────────────────┘
이 그림의 핵심은 PIM이 연산 성능을 마법처럼 키우는 기술이 아니라, 시스템 병목의 위치를 바꾸는 기술이라는 점이다. 연산이 느려서가 아니라 이동이 비싸서 문제가 생길 때, PIM이 의미를 갖는다.
- 📢 섹션 요약 비유: 대형 창고의 물건을 본사 책상으로 하나씩 옮겨 검사하던 방식을, 창고 안에 간이 검사대를 설치해 현장에서 바로 분류하는 방식으로 바꾼 것이 PIM이다.
Ⅱ. 아키텍처 및 핵심 원리
PIM의 핵심은 메모리 배열과 가까운 위치에 소형 ALU (Arithmetic Logic Unit) 기반 연산 블록을 두고, 대량의 내부 대역폭을 활용해 단순·반복 연산을 병렬 처리하는 데 있다. 구현 위치에 따라 DRAM 뱅크 주변 로직, 센스 앰프 (Sense Amplifier) 인접 영역, 혹은 HBM (High Bandwidth Memory) 스택 내부 로직 층에 연산기가 배치될 수 있다. 이 연산기는 범용 CPU급이 아니라 주로 MAC (Multiply-Accumulate), 벡터 덧셈, 비교, 축약(reduction), 비트 연산처럼 데이터 병렬성이 높은 작업에 최적화된다.
| 구성 요소 | 역할 | 설계 포인트 |
|---|---|---|
| 메모리 셀 어레이 | 데이터 저장 | 밀도 유지가 가장 중요 |
| 뱅크/서브어레이 | 내부 병렬성 제공 | 동시에 많은 행을 처리 가능 |
| PIM 연산 유닛 | MAC, 합산, 비교 등 수행 | 면적·발열·정확도 균형 |
| 메모리 컨트롤러 | PIM 명령 발행 및 결과 회수 | 기존 프로그래밍 모델과 연결 |
| 로컬 버퍼/레지스터 | 중간 결과 저장 | 외부 전송 최소화 |
아래 구조는 PIM이 어디에서 이득을 얻는지 보여준다. 핵심은 외부 핀 수가 아니라 메모리 내부 뱅크 병렬성을 활용하는 점이다.
┌─────────────────────────────────────────────────────────────────────┐
│ PIM 내부 처리 흐름 │
├─────────────────────────────────────────────────────────────────────┤
│ Host CPU/GPU │
│ │ PIM 명령 │
│ ▼ │
│ Memory Controller │
│ │ │
│ ▼ │
│ ┌────────────── HBM / DRAM 내부 ──────────────┐ │
│ │ Bank 0 ──┐ │ │
│ │ Bank 1 ──┼──> [PIM ALU / MAC Array] ──> [Local Buffer] ──┐ │
│ │ Bank 2 ──┤ │ │ │
│ │ Bank N ──┘ │ │ │
│ └──────────────────────────────────────────────┘ │ │
│ ▼ │
│ Small Result Out │
└─────────────────────────────────────────────────────────────────────┘
전통 구조에서 1GB 가중치와 1GB 입력을 읽어 외부 연산기에 보내면 최소 2GB 이상을 움직여야 한다. 반면 PIM은 메모리 내부에서 부분 합을 계산하고 최종 결과만 내보내므로 외부 전송량을 크게 줄일 수 있다. 물론 이득은 항상 공짜가 아니다. 메모리 공정은 저장 밀도에 최적화되어 있고, 로직 공정은 빠른 스위칭에 최적화되어 있으므로 두 특성을 한 칩 안에서 조화시키는 것은 쉽지 않다. 또한 연산기를 넣는 순간 면적 증가, 발열, 수율 저하, 메모리 용량 감소가 뒤따른다.
따라서 PIM 설계는 "얼마나 복잡한 연산까지 메모리 안으로 넣을 것인가"의 문제다. 너무 단순하면 효과가 작고, 너무 복잡하면 메모리 칩이 범용 가속기 흉내를 내다가 본래 장점인 집적도와 에너지 효율을 잃는다.
- 📢 섹션 요약 비유: 창고 안에 지게차와 계산기를 조금 들여놓으면 상하차는 빨라지지만, 창고 면적 일부를 작업 공간으로 써야 하므로 보관 공간이 줄어드는 것과 같다.
Ⅲ. 비교 및 연결
PIM을 제대로 이해하려면 PNM (Processing-Near-Memory), CIM (Computing-In-Memory), 그리고 전통적 GPU 구조와 경계를 구분해야 한다. 세 기술은 모두 메모리 병목을 줄이려는 계열이지만, 연산 위치와 구현 난이도, 범용성에서 차이가 크다.
| 비교 항목 | 전통 GPU/CPU | PNM (Processing-Near-Memory) | PIM (Processing-In-Memory) | CIM (Computing-In-Memory) |
|---|---|---|---|---|
| 연산 위치 | 메모리 외부 | 메모리 바로 옆 패키지 | 메모리 내부 | 메모리 소자 자체 |
| 데이터 이동 | 큼 | 줄어듦 | 매우 작음 | 이론상 최소 |
| 범용성 | 가장 높음 | 높음 | 중간 | 낮음 |
| 구현 난이도 | 상대적으로 성숙 | 패키징 난도 높음 | 공정·제어 난도 높음 | 정확도·아날로그 오차 큼 |
| 대표 적합 작업 | 범용 계산 | 대용량 AI 가속 | 메모리 바운드 반복 연산 | 초저전력 행렬 연산 |
PNM은 메모리 칩과 연산 칩을 인터포저 위에서 가깝게 붙여 대역폭을 높이는 전략이고, PIM은 그보다 더 과감하게 메모리 내부에 연산기를 넣는다. 즉 PNM은 "가까이 붙이기", PIM은 "안으로 넣기"에 가깝다. CIM은 한 걸음 더 나아가 메모리 셀의 물리적 특성 자체로 연산하려 하므로, PIM보다 훨씬 급진적이다.
다른 과목과의 연결도 분명하다. 컴퓨터구조 관점에서는 메모리 계층과 병목 재배치의 문제이고, 운영체제 관점에서는 어떤 연산을 어디에 오프로딩 (Offloading)할지의 자원 관리 문제다. 컴파일러와 런타임 관점에서는 PIM 가능 연산을 추출하고 명령으로 변환해야 하며, 인공지능 관점에서는 모델 구조가 메모리 바운드인지 컴퓨트 바운드인지 구분하는 일이 중요해진다.
즉, PIM은 단순한 반도체 신기술이 아니라 메모리 중심 컴퓨팅으로의 이동을 보여주는 중간 단계다. 범용 GPU가 완전히 사라지는 것이 아니라, PNM·PIM·CIM이 워크로드 특성에 따라 공존하는 방향이 더 현실적이다.
- 📢 섹션 요약 비유: PNM은 창고 옆에 작업장을 붙인 형태이고, PIM은 창고 안쪽 통로에 작업대를 둔 형태이며, CIM은 선반 자체가 자동 분류 기능을 가진 형태라고 기억하면 구분이 쉽다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서 PIM 도입 여부는 "최신 기술인가"가 아니라 "데이터 이동이 지배적인가"로 판단해야 한다. 예를 들어 임베딩 테이블 조회, 추천 시스템, 벡터 유사도 계산, 대규모 트랜스포머 추론의 일부 단계는 메모리 접근량이 매우 커서 PIM의 효과를 보기 쉽다. 반면 복잡한 제어 흐름, 높은 정밀도 요구, 분기 많은 알고리즘, 강한 캐시 재사용이 가능한 합성곱 신경망 (CNN, Convolutional Neural Network) 계열 일부 연산은 전통 GPU나 NPU (Neural Processing Unit)가 더 적합할 수 있다.
도입 판단 체크리스트
- 워크로드가 메모리 바운드인가, 아니면 연산 바운드인가?
- 동일 데이터를 반복 읽는 단순 벡터/행렬 연산 비중이 큰가?
- 낮은 정밀도(예: INT8, BFloat16)나 제한된 연산 집합으로도 목적을 달성할 수 있는가?
- 소프트웨어 스택이 PIM 명령 오프로딩을 지원하는가?
- 칩 수율·발열·디버깅 난도를 감수할 만큼 전력 절감 효과가 큰가?
채택이 유리한 경우
- 대규모 임베딩 조회와 축약 연산이 많은 추천 시스템
- HBM 대역폭이 병목인 생성형 AI 추론 서버
- 전력 예산이 빡빡한 엣지 AI 장치
회피가 유리한 경우
- 복잡한 분기와 범용 연산이 섞인 서버 워크로드
- 학습(Training)처럼 가중치 갱신과 정밀 제어가 중요한 작업
- 표준 툴체인과 디버거 의존성이 큰 환경
실무의 함정은 PIM을 "GPU 대체재"로 보는 것이다. 실제로는 특정 커널을 PIM으로 오프로딩하고, 나머지 제어·조합 연산은 CPU나 GPU가 맡는 이기종 분업 구조가 더 현실적이다. 기술사 관점에서는 성능 수치만이 아니라 프로그래밍 모델, 표준화 수준, 장애 분석 가능성, 공급망 성숙도를 함께 판단해야 한다.
┌──────────────────────────────────────────────────────────────┐
│ PIM 도입 판단의 핵심 질문 │
├──────────────────────────────────────────────────────────────┤
│ 데이터 이동이 병목인가? │
│ ├─ 아니오 ──> 전통 GPU/NPU 우선 검토 │
│ └─ 예 │
│ │ │
│ ├─ 반복적 벡터/행렬 연산인가? ── 아니오 ─> 효과 제한 │
│ └─ 예 │
│ │ │
│ ├─ 소프트웨어 스택 지원 부족 ──> 개념검증부터 시작 │
│ └─ 지원 가능 ───────────────────> PIM 검토 │
└──────────────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: PIM은 모든 요리를 대신하는 만능 주방이 아니라, 재료 손질과 대량 전처리처럼 반복 작업을 맡길 때 가장 빛나는 전문 작업대다.
Ⅴ. 기대효과 및 결론
PIM이 가져오는 가장 큰 효과는 시스템 설계의 기준점을 바꾼다는 데 있다. 과거에는 연산기를 더 많이 넣는 것이 성능 향상의 중심이었다면, 이제는 데이터 이동을 얼마나 줄이느냐가 동등하게 중요해졌다. 이런 관점에서 PIM은 메모리를 수동적 저장소가 아니라 능동적 계산 자원으로 재정의한다.
기대효과는 분명하다. 첫째, 외부 대역폭 병목 완화로 처리량이 올라간다. 둘째, 데이터 이동이 줄어 전력당 성능이 개선된다. 셋째, 메모리 중심 워크로드에서 지연시간이 감소한다. 그러나 한계도 뚜렷하다. 범용성 부족, 공정 복잡도, 소프트웨어 생태계 미성숙, 표준 명령 모델 부재는 아직 큰 장벽이다.
앞으로의 방향은 세 가지로 요약할 수 있다. 첫째, HBM-PIM처럼 기존 메모리 계층 안에 점진적으로 연산 기능을 넣는 방식이 확산될 가능성이 크다. 둘째, CXL (Compute Express Link) 기반 메모리 확장과 결합해 메모리 풀 단위의 오프로딩 구조가 발전할 수 있다. 셋째, 장기적으로는 PIM이 CIM, 뉴로모픽 컴퓨팅과 연결되며 메모리 중심 컴퓨팅 생태계의 징검다리 역할을 할 가능성이 높다.
결국 PIM은 "메모리 안에서 계산한다"는 문장보다, **"이제 병목의 중심은 연산이 아니라 이동이며, 구조도 그에 맞게 바뀌어야 한다"**는 관점으로 기억하는 것이 정확하다.
- 📢 섹션 요약 비유: 예전에는 회사 업무가 느리면 직원을 더 뽑았지만, 이제는 서류가 건물 사이를 오가는 시간이 더 길어서 문서 창구를 현장에 두는 쪽이 더 효과적인 상황과 같다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 메모리 월 (Memory Wall) | PIM이 등장한 직접적 배경으로, 연산보다 데이터 이동이 병목이 되는 현상 |
| HBM (High Bandwidth Memory) | PIM이 주로 결합되는 고대역폭 메모리 기술로, 내부 병렬성을 키우는 기반 |
| PNM (Processing-Near-Memory) | PIM보다 구현이 쉬운 인접 개념으로, 메모리 옆에서 병목을 완화 |
| CIM (Computing-In-Memory) | PIM보다 더 급진적인 형태로, 메모리 소자 자체가 연산에 참여 |
| 오프로딩 (Offloading) | CPU/GPU가 일부 커널을 PIM으로 넘기는 시스템 소프트웨어 관점 |
| 이기종 컴퓨팅 (Heterogeneous Computing) | PIM이 단독이 아니라 CPU·GPU·NPU와 협력하는 실제 운영 모델 |
📈 관련 키워드 및 발전 흐름도
전통 폰 노이만 구조
│
▼
메모리 월 (Memory Wall) 심화
│
▼
HBM (High Bandwidth Memory) · 패키징 고도화
│
├──────────────► PNM (Processing-Near-Memory)
│
▼
PIM (Processing-In-Memory)
│
▼
오프로딩 (Offloading) · 이기종 컴퓨팅 최적화
│
▼
CIM (Computing-In-Memory) · 뉴로모픽 컴퓨팅
이 흐름은 단순히 메모리를 빠르게 만드는 방향이 아니라, 메모리 주변과 내부에 점점 더 많은 계산 책임을 옮기는 진화 과정을 보여준다.
👶 어린이를 위한 3줄 비유 설명
- 큰 창고에서 물건을 멀리 사무실까지 계속 옮기면 힘들고 느려서, 창고 안에 작은 작업대를 만든 게 PIM이에요.
- 그래서 무거운 상자는 창고 안에서 바로 정리하고, 마지막 결과만 밖으로 가져와요.
- 컴퓨터도 똑같이, 데이터를 멀리 옮기지 않을수록 더 빠르고 전기도 덜 써요.