선형 시간 시스톨릭 배열 알고리즘의 혁신

선형 시간 시스톨릭 배열 알고리즘의 혁신

초록

본 논문은 선형 시스톨릭 배열을 이용해 다항식 GCD, 이진수 GCD, Toeplitz 연립방정식, 대칭 행렬 고유값 문제 등을 O(n) 시간에 해결하는 알고리즘을 제시한다. 각 셀은 상수 크기의 메모리만을 필요로 하며, 실용적인 응용 분야로 오류 정정 코드, 신호·이미지 처리 등을 제시한다.

상세 분석

이 논문은 시스톨릭 배열(systolic array)의 구조적 특성을 활용해 전통적으로 O(n log n) 혹은 O(n²) 수준의 복잡도를 갖는 문제들을 선형 시간 O(n) 안에 해결할 수 있음을 증명한다. 첫 번째 핵심은 유한체 위에서 차수가 n인 두 다항식의 최대공약수(GCD)를 구하는 알고리즘이다. 저자들은 각 셀을 파이프라인 형태로 연결하고, 셀마다 현재 진행 중인 유클리드 알고리즘의 단계와 잔여 계수를 저장하도록 설계한다. 입력 다항식의 계수를 순차적으로 흐르게 함으로써, 셀 간에 필요한 차감 연산과 나눗셈이 동시에 진행된다. 이 과정에서 각 셀은 상수 개수의 레지스터만을 사용하므로 전체 메모리 요구량은 O(n) 셀에 대해 O(1)이다. 결과적으로 전체 연산은 입력 길이와 동일한 단계 수만큼 진행되어 O(n) 시간 복잡도를 달성한다.

두 번째로, n비트 이진수의 GCD 계산에 동일한 시스톨릭 구조를 적용한다. 여기서는 비트 단위 연산이 핵심이며, 셀마다 현재 비트와 이전 단계에서 전달된 차감 결과를 저장한다. 비트 흐름을 파이프라인화함으로써, 전통적인 유클리드 알고리즘의 반복을 병렬화하고, 전체 연산을 한 번의 순차 스캔으로 마무리한다.

세 번째 기여는 n × n Toeplitz 행렬 시스템을 O(n) 시간에 푸는 방법이다. Toeplitz 행렬은 대각선이 일정한 구조를 가지므로, 각 행/열에 대한 이동 연산을 시스톨릭 배열에 매핑할 수 있다. 저자들은 셀을 일렬로 배치하고, 각 셀에 행 또는 열의 현재 상태와 필요한 스칼라 곱 결과를 저장한다. 입력 벡터와 행/열 데이터를 순차적으로 전달하면서, 셀 간에 필요한 덧셈·뺄셈이 동시에 수행된다. 이때 각 셀은 상수 메모리만을 사용하므로, 전체 메모리 요구량은 O(n)이다.

마지막으로, 대칭 실수 n × n 행렬의 고유값 문제를 해결하기 위해 O(n) × O(n) 크기의 2차원 시스톨릭 배열을 제안한다. 여기서는 QR 분해 혹은 고유값 반복법을 파이프라인화하여, 각 셀에서 부분 행렬의 변환을 수행한다. S(n)이라는 매우 느리게 성장하는 함수(실제 구현에서는 상수 수준)만큼의 추가 연산을 필요로 하지만, 전체 시간 복잡도는 O(n S(n))으로 유지된다.

이 모든 알고리즘은 “셀당 상수 메모리”라는 강력한 제약 하에 설계되었으며, 이는 하드웨어 구현 시 면적·전력 효율성을 크게 향상시킨다. 또한, 선형 배열 구조는 데이터 흐름을 자연스럽게 파이프라인화하므로, 높은 클럭 주파수에서도 안정적인 동작이 가능하다. 논문은 이러한 이론적 결과가 오류 정정 부호(예: Reed–Solomon 부호)의 디코딩, 대규모 다항식 연산, 실시간 신호·이미지 처리 등에 직접 적용될 수 있음을 강조한다.