인메모리 컴퓨팅 구조 (In-Memory Computing Architecture)
쉽게 풀면
기존 컴퓨터는 데이터를 메모리에 저장해 두었다가 필요할 때마다 연산장치(CPU)로 옮겨와 계산을 한 뒤 다시 메모리에 저장하는 방식으로 동작합니다. 이 과정에서 데이터를 오가며 옮기는 데 시간과 전력이 많이 소모되는데, 이를 흔히 '메모리 병목'이라고 부릅니다. 인메모리 컴퓨팅은 요리 재료를 창고에서 매번 꺼내 오는 대신, 창고 안에서 바로 조리까지 끝내버리는 것과 비슷한 발상으로, 메모리 자체에서 계산을 처리해 데이터 이동을 줄이는 방식입니다. 데이터를 저장하는 메모리와 연산을 담당하는 프로세서를 오가며 데이터를 주고받는 대신, 메모리 안에서 곧바로 연산을 수행하도록 만든 구조입니다.
왜 중요한가
인공지능 연산처럼 방대한 데이터를 반복적으로 다뤄야 하는 작업에서 메모리와 연산장치 사이의 데이터 이동은 큰 전력·시간 부담이 됩니다. 인메모리 컴퓨팅 구조는 이러한 병목을 줄여 에너지 효율과 처리 속도를 높일 수 있는 방안으로 반도체·컴퓨터 구조 분야에서 활발히 연구되고 있습니다.
논문에서는 이렇게 쓰입니다
연산을 메모리 내부에서 수행해 지연시간을 줄인 결과를 설명하는 예문입니다.
인메모리 컴퓨팅을 신경망 연산에 실제로 적용한 사례를 다루는 예문입니다.
조금 더 깊게 보면
인메모리 컴퓨팅은 흔히 저항변화메모리, 멤리스터, SRAM 등을 이용해 저장된 값과 입력 신호가 만나 물리적으로 연산 결과(주로 곱셈-누적 연산)를 만들어내는 방식으로 구현됩니다. 이런 방식은 특히 신경망의 행렬 연산처럼 반복적인 곱셈-덧셈 연산에 유리하다고 알려져 있습니다. 메모리와 프로세서 사이를 오가는 데이터 이동 자체가 현대 컴퓨팅에서 큰 지연과 전력 소모의 원인이 되는데, 이를 메모리 벽이라 부르며, 인메모리 컴퓨팅은 이 병목을 근본적으로 줄이려는 접근입니다.
주의할 점
인메모리 연산은 소자 특성의 편차나 잡음에 민감할 수 있어, 일반적인 디지털 연산만큼의 정밀도를 항상 보장하지는 않는다는 점에 유의해야 합니다.