
UNIST, 메모리가 직접 계산하는 반도체 설계 자동화…AI 칩 저전력의 열쇠
데이터를 별도의 연산장치로 보내지 않고 메모리 안에서 직접 처리하는 ‘로직인메모리(Logic-in-Memory)’ 반도체의 성능을 끌어올리는 설계 자동화 기술이 개발됐다.
UNIST 전기전자공학과 박희천 교수팀은 멤리스터(‘로직인메모리’ 반도체를 이루는 메모리 소자) 기반 반도체의 회로 배치와 연결 경로를 컴퓨터가 자동으로 최적화하는 기술을 개발했다고 27일 밝혔다. 오늘날 컴퓨터는 데이터를 저장하는 메모리와 계산을 맡는 프로세서가 따로 떨어져 있어, 둘 사이를 데이터가 오가는 데 시간과 전력이 쓰인다. 프로세서가 아무리 빨라도 데이터 전송 속도가 이를 따라가지 못해 성능이 정체되는 ‘메모리 벽(memory wall)’ 문제다. AI와 빅데이터처럼 다뤄야 할 데이터가 급증하는 분야일수록 이 병목의 영향은 커진다.
로직인메모리는 메모리가 저장과 계산을 함께 맡아 데이터 이동 자체를 없애는 해법으로 주목받지만, 실제로 임의의 회로를 이 격자형 메모리에 얹는 일은 사람이 손으로 최적화하기 어려운 난제였다. 이번 기술이 의미 있는 이유는 이 배치 과정을 알고리즘이 자동으로 풀어내면서, 기존 최고 수준 기술보다 전체 동작 횟수를 평균 19.6% 줄였다는 데 있다. 하드웨어를 바꾸지 않고 ‘설계 방식’만 바꿔 효율을 끌어올린 것이다. 연구 결과는 반도체 설계자동화 분야 권위 학술지 《IEEE TCAD》에 지난달 온라인 공개됐다.
‘메모리 벽’을 넘으려는 반도체, 그런데 왜 설계가 문제였나
현대 컴퓨터는 대부분 ‘폰 노이만 구조’를 따른다. 데이터를 넣어두는 메모리와, 그 데이터를 꺼내 계산하는 프로세서가 물리적으로 분리된 방식이다. 계산을 하려면 매번 메모리에서 데이터를 꺼내 프로세서로 보내고, 결과를 다시 메모리에 저장해야 한다. 이 왕복에 드는 시간과 전력이 전체 성능의 발목을 잡는 것이 ‘메모리 벽’이다. 프로세서 속도는 계속 빨라졌지만, 데이터를 실어 나르는 통로가 그 속도를 따라가지 못하면서 병목이 갈수록 심해졌다.
이 벽을 넘으려는 대안이 로직인메모리다. 데이터를 프로세서로 옮기는 대신, 메모리가 저장과 논리 연산을 동시에 맡아 이동 자체를 없앤다. 핵심 부품은 ‘멤리스터’다. 걸어준 전압에 따라 저항 상태가 바뀌고 전원을 꺼도 그 값을 유지하는 비휘발성 소자로, 저항이 높은지 낮은지로 0과 1을 저장한다. 저장과 연산을 한 소자에서 함께 할 수 있다는 점이 일반 메모리와 다르다.
이 멤리스터들을 가로줄과 세로줄이 교차하는 바둑판(크로스바) 형태로 촘촘히 배열하면, 교차점마다 놓인 소자들이 계산에 참여한다. 여기에 ‘MAGIC’이라는 방식을 쓰면 별도의 트랜지스터 연산 회로 없이 멤리스터의 저항 상태만으로 NOR·NOT 같은 기본 논리연산을 수행할 수 있다. 모든 디지털 계산은 결국 이런 기본 연산의 조합이므로, 메모리 격자 위에서 곧바로 계산이 이뤄지는 셈이다.
문제는 여기서 시작된다. 우리가 처리하려는 계산은 복잡한 논리회로로 표현되는데, 이 회로를 바둑판 위 어느 자리에 어떻게 배치하고 서로 어떻게 연결할지를 정하는 과정을 ‘기술매핑(technology mapping)’이라 한다. 어느 소자에 입력값을 저장하고, 어느 소자들로 연산을 하고, 그 결과를 다음 연산 위치까지 어떤 경로로 보낼지를 하나하나 정해야 한다. 경우의 수가 방대해 사람이 최적으로 짜기 어렵다.
기존 자동화 기술의 한계는 뚜렷했다. 바둑판의 가로 방향으로만 여러 연산을 동시에 처리하고, 세로 방향 정렬까지는 고려하지 못해 계산을 순차적으로 처리해야 하는 경우가 많았다. 게다가 메모리 공간이 빠듯하게 제한되면 회로를 다 넣지 못하고 배치에 실패하기도 했다. 로직인메모리라는 유망한 하드웨어를 제대로 활용하려면, 이 ‘어떻게 배치할 것인가’의 문제를 먼저 풀어야 했다.

가로·세로 양방향으로 동시에 계산하게 만든 알고리즘
연구팀의 핵심 아이디어는 회로를 메모리에 ‘욱여넣는’ 것이 아니라, 여러 연산이 동시에 이뤄질 수 있도록 ‘정렬해’ 배치하는 것이다. 이를 위해 복잡한 회로를 룩업테이블(LUT·논리 함수를 진리표 형태로 표현한 기본 계산 단위)이라는 작은 블록으로 나눈 뒤, 이 블록들을 바둑판 위에 배치하고 연결하는 전 과정을 하나의 자동 설계 틀로 통합했다.
이 틀은 세 단계로 작동한다. 먼저 크로스바의 크기와 블록들의 연결 관계를 고려해 계산 블록을 크기별로 정렬해 배치할 자리를 나눈다. 다음으로 ‘정수계획법(ILP)’이라는 수학적 최적화 기법으로 각 블록과 입력값의 정확한 좌표를 정한다. 정수계획법은 여러 제약 조건을 만족하면서 가장 효율적인 답을 찾는 방법으로, 여기서 가로와 세로 양방향 정렬을 함께 달성하는 열쇠가 된다. 마지막으로 계산 결과를 다음 블록으로 보내는 이동 경로를, ‘A* 탐색’이라는 수학적 경로 탐색 기법으로 가장 효율적으로 찾아낸다.
가장 큰 차별점은 가로와 세로 방향에서 모두 여러 연산을 동시에 수행할 수 있다는 점이다. 기존 기술이 주로 가로 방향 연산만 병렬로 처리했던 것과 달리, 양방향 병렬 연산을 극대화했다. 순차적으로 처리해야 할 연산이 줄어들면 같은 계산을 끝내는 데 필요한 전체 동작 횟수가 낮아지고, 제한된 멤리스터 공간도 더 알뜰하게 쓸 수 있다.
연구팀은 효율을 더 짜내기 위한 규칙도 알고리즘에 넣었다. 연산이 끝나 더 이상 필요 없는 중간 데이터를 지우고, 아직 쓰고 있는 결과물들을 한쪽으로 정렬해 낭비되는 면적을 최소화하도록 한 것이다. 실제 사례를 보면, 같은 값을 여러 위치가 하나의 전달 경로로 공유하도록 배치를 최적화하자, 데이터 전달에 쓰는 행이 19개에서 9개로, 열이 16개에서 14개로 줄었고 경로 탐색 횟수도 32회에서 20회로 감소했다.
성능 검증 결과는 분명했다. 다양한 표준 회로(벤치마크)에 적용했을 때, 이 기술로 설계한 반도체는 기존 최고 수준 기술보다 전체 동작 사이클이 평균 19.6% 줄었다. 같은 계산을 끝낼 때까지 반도체가 작동해야 하는 횟수가 그만큼 줄었다는 뜻으로, 곧 전력 절감으로 이어진다. 또 메모리 공간을 엄격하게 제한한 조건에서도 기존 기술이 넣지 못한 회로까지 모두 배열 안에 담아냈다.
박희천 교수팀은 “회로를 메모리에 단순히 욱여넣는 것이 아니라, 병렬 연산이 가능하도록 정렬해 배치하는 것이 인메모리 컴퓨팅 성능을 좌우한다”며 “좁은 면적 제약에서도 안정적으로 동작하는 자동 설계 기술이라는 점에서 의미가 크다”고 설명했다. 별도의 연산 회로를 덧붙이지 않고 메모리 자체에서 범용 디지털 논리를 효율적으로 구현하는 이 기술은 대규모 회로까지 확장할 수 있어, AI와 엣지 컴퓨팅처럼 데이터가 몰리는 분야에서 저전력·고효율 반도체를 위한 자동 설계 도구로 활용될 전망이다.